Как стать автором
Обновить
12
0

Пользователь

Отправить сообщение

Jujutsu — новая система контроля версий

Уровень сложностиПростой
Время на прочтение2 мин
Количество просмотров22K

Кому нужная новая VCS, когда уже есть Git, Mercurial, SVN, Perforce, Darcs и прочие? Автор проекта Jujutsu считает, что ещё есть куда рости. Знакомтесь — Martin von Zweigbergk из Google работает над проектом Jujutsu, или для краткости jj.

Чем он лучше чем ваша система контроля версия?

Читать далее
Всего голосов 33: ↑31 и ↓2+41
Комментарии43

История Git: на этот раз не так весело

Время на прочтение23 мин
Количество просмотров31K

Линус Торвальдс как-то написал в своей книге, что создавал Linux для развлечения, но в итоге это привело к революции. Git, его второе творение, также оказалось «случайной революцией» — и сегодня это стандартный инструмент для людей в ИТ. Однако процесс его создания был уже не таким «весёлым» — по крайней мере, для самого Линуса. 

Читать далее
Всего голосов 99: ↑98 и ↓1+114
Комментарии56

Анонимная сеть в 100 строк кода на Go

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров26K

Прошло уже более года с тех пор как я написал статью - Анонимная сеть в 200 строк кода на Go. Пересмотрев её однажды осенним вечером я понял насколько всё в ней было ужасно - начиная с самого поведения логики кода и заканчивая его избыточностью. Сев за ноутбук и потратив от силы 20 минут у меня получилось написать сеть всего в 100 строк кода, используя лишь и только стандартную библиотеку языка.

Читать далее
Всего голосов 32: ↑32 и ↓0+39
Комментарии11

Давайте работать с proto ошибками правильно :)

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров5.5K

В программировании всегда есть несколько способов решения одной и той же проблемы. Но не все они одинаково эффективны. Сегодня поговорим о способах обработки ошибок в gRPC — удачных и не очень.

Разобраться подробнее
Всего голосов 21: ↑20 и ↓1+22
Комментарии2

Применения Continuation-passing style в Go

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров4.9K

В этой статье мы рассмотрим концепцию программирования в стиле передачи продолжений и примеры его применения, исследуем, как этот стиль может улучшить читаемость и поддержку кода в приложениях на Go. Также обсудим потенциальные подводные камни и ограничения, чтобы дать полное представление о том, как и когда использовать его в практике разработки.

Читать далее
Всего голосов 20: ↑18 и ↓2+18
Комментарии8

Настройка мониторинга XRay в Grafana

Уровень сложностиСредний
Время на прочтение4 мин
Количество просмотров6.6K

У меня как и многих айтишников был свой VPS сервер с настроенным OpenVPN, работоспособность которого я отслеживал на бесплатном инстансе Grafana Cloud. В начале года "по неизвестным причинам" (tm) OpenVPN стал работать нестабильно. Было принято решение поднять и настроить XRay, который с тех пор работал без проблем.

Но был у него недостаток. К нему не было нормального и простого мануала по настройке мониторинга, в итоге контролировать его работу я мог только косвенно, по изменению общего сетевого трафика всего сервера.

Спасибо @vsviridov, который подсказал подходящий экспортер.

Но так как на данный момент информация по настройке мониторинга разбросана по нескольким документам, то решил кратко свести всё в один документ. В первую очередь для себя, но может пригодится кому-то ещё.

Читать далее
Всего голосов 7: ↑7 и ↓0+9
Комментарии9

Иллюзия сеньора: ожидания vs. реальность

Время на прочтение8 мин
Количество просмотров4K
В годы джуниорства у меня сложились какие-то дикие представления о программистах-сеньорах. В моих глазах они были эдакими супергероями от кода: способны устранить любой баг, всегда в курсе, как действовать дальше, и вообще ходячие энциклопедии по IT. Я думал, что продвижение по карьерной лестнице до уровня сеньора дает доступ к неограниченному объему знаний и гарантирует безбедное существование в компании.

Помню, как на первой своей работе наблюдал за тем, как мой наставник разбирается с проблемой на Java, которую мне никак не удавалось одолеть. Строки кода и терминальные команды так и вылетали у него из-под пальцев, я будто смотрел, как Let me solo her гасит Малению в Elden Ring (а сам я типа слился и отсиживаюсь в роли зрителя). Это произвело на меня сильное впечатление. Мне захотелось тоже стать таким скоростным и умелым.

С тех пор прошло больше девяти лет, и я стал смотреть на реальность более ясным взглядом: карьерное продвижение не сводится к тому, чтобы всё лучше управляться с командной строкой. Речь идет о том, чтобы принимать целые серии новых сложных вызовов. Конечно, стандартные баги вы действительно станете устранять быстрее, но основную часть времени будете заниматься вовсе не этим. Можно сказать так: с развитием способностей возрастает и сложность проблем, которые вам предстоит решать.
Читать дальше →
Всего голосов 18: ↑14 и ↓4+13
Комментарии8

ХрюХрюКар: как перестать беспокоиться, начать создавать сервисы и обзавестись друзьями

Уровень сложностиПростой
Время на прочтение28 мин
Количество просмотров8.3K

Привет, Хабр!

Мы хотели научиться создавать сервисы от момента возникновения идеи и до этапа эксплуатации, попутно освоив новые технологии.
В итоге получился экспериментальный проект "ХрюХрюКар" — сервис для борьбы с неправильной парковкой, работающий под лозунгом "Хорошие ребята говорят 'Bla-Bla' и не ставят машину на зелёной зоне".

В этой статье мы расскажем, как выбирали проект, на решение каких задач нацелен "ХрюХрюКар", какие технологии мы использовали, какие трудности возникали и что получилось в итоге.

Ну и поделимся всеми исходниками, конечно.

Припарковаться правильно
Всего голосов 63: ↑55 и ↓8+67
Комментарии143

О блокировке Youtube

Время на прочтение4 мин
Количество просмотров159K

Комментарий активиста Профсоюза IT насчёт блокировки Youtube и об ограничении свободного доступа к информации вообще. Коллектив профсоюза полностью разделяет это мнение.

Я работаю в IT уже 17 лет (написал и сам ужаснулся). Я начинал с протирания доски в кабинете информатики (должность называлась «лаборант»), сейчас работаю в достаточно крупной IT-компании.

С самого начала я жадно впитывал знания. Интернет, коллеги, собственный опыт. Любой источник знаний был хорош, любая информация годилась. Я читал книги на экране размером 128х128 точек. Я качал учебники по dial-up. Я просил коллегу научить меня обжимать коннектор RJ-45. Я купался в море информации. С каждым новым местом работы, с каждой новой областью деятельности становилось всё труднее находить рядом того, кто может расширить мой кругозор достаточно для удовлетворения неутихающей жажды. Жажды знать больше. Всё чаще и чаще я слышал «загугли». И гуглил, гуглил, читал и снова искал новое. Это как дышать, как пить воду. Я потребляю информацию утром, во время обеда и перед сном. Со временем я понял, что для большей эффективности нужно потреблять информацию разного профиля. Плотницкое, слесарное, столярное дело, электрика, физика, сельское хозяйство, история, логика, философия. Всё это — информация. Всё это может утолить жажду. И я искал. Разумеется, для того, в чём не нужна справочная точность, я стал использовать Youtube.

Читать далее
Всего голосов 465: ↑436 и ↓29+480
Комментарии1072

Кнопка

Уровень сложностиПростой
Время на прочтение1 мин
Количество просмотров2.2K

Перевод комикса о Милана Роско о безопасности ИИ (оригинал). Осторожно, много больших картинок, много траффика!

Читать далее
Всего голосов 16: ↑13 и ↓3+14
Комментарии4

Object Pascal в 2024-м

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров7.7K

Всем привет! Меня зовут Сергей!

В данной статье речь будет идти больше о FPC/Lazarus, но так же многое, вероятно, можно будет отнести и к Delphi. Это будет что-то вроде обзора возможностей Lazarus вперемешку с начальными уроками. Многого я тут не раскрою (по моему мнению) и надеюсь читатель не будет надеяться что я смогу полностью раскрыть все секреты программирования (не надо, не надо меня за эти слова бить) в одной статье. Я надеюсь что данная статья поможет новичкам, а так же даст некоторую информацию не совсем новичкам.

В течении всей статьи я буду ссылаться на видеоролики, дабы упростить создание статьи. Было бы наверно лучше делать скриншоты и прикладывать их, но на это уйдёт намного больше времени, чем на подготовку видеороликов (учитывая что часть видеороликов уже готовы) и текст статьи вырастет в несколько раз.

перейти к статье
Всего голосов 40: ↑37 и ↓3+51
Комментарии82

Полный гайд о стиле для IT-специалистов: как выглядеть актуально и чувствовать себя комфортно

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров46K

Всем привет! Меня зовут Маша, я девушка программиста и хотела бы поделиться опытом, как легко выглядеть актуально сегодня имея любой бюджет и количество времени. 

Читать далее
Всего голосов 186: ↑83 и ↓103-4
Комментарии353

Одиночество убивает мужчин — и без надлежащей поддержки и вмешательства ничего не изменится

Время на прочтение4 мин
Количество просмотров15K

Многих мужчин воспитали так, что для них приоритетом является независимость и стоицизм, поэтому им трудно открываться и устанавливать эмоциональные связи.

В прошлом году я прочитал книгу Ричарда Ривза «О мальчиках и мужчинах». В своём исследовании Ривз описывает различные факторы, приводящие к тому, что мальчики и мужчины чувствуют себя исключёнными из общества и не справляются с различными системами, будь то образование или работа. В одном из разделов говорится о том, как мужчинам тяжело после развода или разрыва отношений, особенно если они не находят нового партнёра. Все эти сведения не новы, но они заставили меня обратить внимание на растущее количество обращений от мужчин, которые поступают в мою клинику каждую неделю.

Читать далее
Всего голосов 21: ↑17 и ↓4+21
Комментарии110

Выжимаем из Go максимум производительности

Уровень сложностиСредний
Время на прочтение11 мин
Количество просмотров20K

Разработчики, которые используют Go, сталкиваются с задачей выжать максимальную производительность из каждой строки кода. Но что делать, если оптимизировать уже нечего, а увеличивать скорость всё равно надо?

Меня зовут Никита Галушко. Я старший программист-разработчик в отделе высоконагруженных систем и оптимизации ВКонтакте. В статье поделюсь, какие хитрости помогут использовать Go на полную мощность.

Читать далее
Всего голосов 76: ↑74 и ↓2+87
Комментарии40

Кофе по SSH, сайты в zip-архивах. Чистый HTML лучше всего

Уровень сложностиСредний
Время на прочтение5 мин
Количество просмотров13K

Очень интересная штука — интернет-магазин в консоли. Он позволяет авторизоваться в магазине и заказать товар (кофе), не выходя из терминала. Говорят, кофе из командной строки даже вкуснее, чем обычный.

Просто заходим в магазин по SSH:

ssh terminal.shop

или

ssh 172.65.113.113
Читать дальше →
Всего голосов 52: ↑51 и ↓1+66
Комментарии20

Я тебя с вертухи сломаю, если ещё раз заговоришь об ИИ

Уровень сложностиПростой
Время на прочтение15 мин
Количество просмотров51K

Последние инновации в сфере ИИ, наиболее примечательными из которых стали проекты наподобие GPT-4, очевидно, могут иметь далеко идущие последствия для общества: от утопического избавления от монотонного труда до антиутопического ущерба для работы художников в капиталистическом обществе, а также до экзистенциальных угроз самому человечеству.

Лично я получил формальное образование дата-саентиста, даже выиграв в высококонкурентном конкурсе по машинному обучению в одном из лучших университетов Австралии и написав магистерскую, для которой создал в MATLAB с нуля собственные библиотеки. Я не гений в этой сфере, но, очевидно, лучше большинства конкурентов, то есть практиков вроде меня; я не могу, сидя в пещере, создавать собственные библиотеки на C, но умею читать учебники, реализовывать готовые решения на языках высокого уровня и использовать библиотеки, написанные элитными организациями.

Поэтому с глубочайшим сожалением должен объявить, что следующий человек, который начнёт говорить мне о реализации ИИ, получит от меня сеанс живительных процедур над позвоночником; иными словами, я сломаю ему нафиг шею. Мне очень-очень жаль.

Читать далее
Всего голосов 203: ↑185 и ↓18+202
Комментарии217

Кот, меняющий строки

Уровень сложностиСредний
Время на прочтение21 мин
Количество просмотров5K

Первая и пока единственная сказка из серии cказкок для инженеров-программистов младшего уровня .

Эта статья была опубликована на моём личном блоге. Эта статья практически полностью её повторяет, лишь отредактирована под Хабр (частично).

Что же насчёт самой статьи, я думаю она достаточно вычитана, чтобы показать её широкой публике.

Редактор Хабра подсказывает, что на чтение статьи у вас уйдёт около 21 минуты. Спешу обрадовать, это не так. Хорошо бы запастись как минимум часом.

Читать далее
Всего голосов 14: ↑13 и ↓1+14
Комментарии6

Macroni: рецепт поступательного улучшения языка программирования

Уровень сложностиСложный
Время на прочтение12 мин
Количество просмотров4.2K


Хотя, Clang и используется в качестве инструмента для рефакторинга и статического анализа, у него есть серьёзный недостаток: в абстрактном синтаксическом дереве не предоставляется информации о происхождении конкретных расширений-макросов на CPP, за счёт которых может надстраиваться конкретный узел AST. Кроме того, Clang не понижает расширения-макросы на уровень LLVM, то есть, до кода в формате промежуточного представления (IR). Из-за этого оказывается запредельно сложно конструировать такие схемы статического анализа, при которых учитывались бы макросы. Сейчас эта тема активно исследуется. Но ситуация налаживается, поскольку прошлым летом был создан инструмент Macroni, упрощающий статический анализ именно такого рода.

В Macroni разработчики могут определять синтаксис новых языковых конструкций на C с применением макросов, а также предоставлять семантику для этих конструкций при помощи MLIR (многоуровневого промежуточного представления). В Macroni используется инструмент VAST, понижающий код C до MLIR. В свою очередь, инструмент PASTA позволяет выяснить, откуда те или иные макросы попали в AST, и на основании этой информации макросы также удаётся понизить до MLIR. После этого разработчики могут определять собственные MLIR-конвертеры для преобразования вывода Macroni в предметно-ориентированные диалекты MLIR, чтобы анализировать предмет с учётом многочисленных нюансов. В этой статье будет на нескольких примерах показано, как Macroni позволяет дополнять C более безопасными языковыми конструкциями и организовать анализ безопасности C.
Читать дальше →
Всего голосов 15: ↑15 и ↓0+26
Комментарии1

Памяти Кевина Митника — хакера, ломавшего ФБР, АНБ и Кремниевую долину. Часть 7: призрак в маске мертвеца

Уровень сложностиПростой
Время на прочтение9 мин
Количество просмотров19K

Итак, настал декабрь 1992 года. Хитроумному Митнику не удалось увернуться от того, чтобы суд в последний момент его условного срока выписал ордера на его арест. Шестерни правоохранительной машины США раскручивались по его душу медленно, но верно — и агенты ФБР относились к задержанию хакера даже с некоторой ленцой и пофигизмом. Вероятно, они считали, что 100%-й компьютерный гик, при всех его умениях обводить систему вокруг пальца, не решится на уход в бега и жизнь в подполье. Они недооценили то, насколько Митнику не понравилось в тюрьме — и насколько он не желал вновь угодить за решётку.
Читать дальше →
Всего голосов 77: ↑76 и ↓1+101
Комментарии7

Вечный покой .env: как эффективнее удалять закомиченный файл .env из Git-репозитория

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров23K

Разрабатывая различные приложения, я часто сталкиваюсь с тем, как после очередного коммита, в репозитории я вижу один из важнейших файлов, когда я работаю с переменными окружениями, оказалась на странице репозитория на Github. Речь идет о файле .env, чья общедоступность может быть очень опасным. И для того, чтобы обезопасить хранение конфигурационных переменных и настроек моего приложения, используется данный текстовый файл.

Я работаю на VS Code, и я, to be honest, так и не понял, с какой стати .gitignore "не игнорирует" .env. Причем спокойно "игнорирует" другие файлы, директории.

Всё же, нужно действовать, исходя из конкретного кейса, но если вы не хотите, чтобы какой-нибудь John Doe воспользовался данными из вашего .env, то вы перешли по верной ссылке. Вы же не отдаете ключи грабителю с фразой "Грабьте мой дом", верно?

Читать далее
Всего голосов 56: ↑38 и ↓18+26
Комментарии64
1
23 ...

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность

Специализация

SRE
Senior