Обновить
128K+

GitHub *

Веб-сервис для хостинга и разработки IT-проектов

136,12
Рейтинг
Сначала показывать
Порог рейтинга
Уровень сложности

Хватит писать «чистый» код. Пора писать понятный код

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

Да, это очередная статья по чистому коду. Но по разным источникам, соотношение времени, затрачиваемого на чтение и написание кода, может достигать 7 к 1 и даже больше. Когда вы исправляете ошибку, добавляете новую функциональность или проводите рефакторинг, вы сначала погружаетесь в логику, написанную другими людьми (или вами же, но несколько месяцев назад). Именно поэтому читаемость кода становится более важным фактором, чем скорость его первоначального написания. Нечитаемый код — это технический долг, который замедляет всю команду и увеличивает стоимость разработки в долгосрочной перспективе.

Читать далее

Пишем письма с Gmail на Bitcoin

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

Привет, Хабр!
Это снова команда Eppie, децентрализованной p2p почты, в которой адрес принадлежит пользователю, а не сервису.

Пока мы занимались ядром приложения, ярких новостей было немного. Но теперь проект вышел на новый этап — всё чаще выходят обновления, о которых хочется рассказывать. Недавно в тестовой сети заработали децентрализованные адреса. Обзорный текст об этом можно почитать здесь. Если коротко, адрес в Eppie — это криптографический публичный ключ, а соответствующий ему приватный ключ дает пользователю полный контроль над почтовым ящиком.

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

Читать далее

Как я шахматного бота писал

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

Коротко о моих приключениях в процессе написания шахматного бота - какие этапы я прошел, с какими сложностями столкнулся и что получилось в итоге.

Читать далее

Терминал — ваш лучший друг: 5 утилит командной строки, которые заменят вам GUI

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

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

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

Читать далее

Ваш GitHub — ваш личный бренд

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

Закодили очередную фичу для продукта, который увидят пара тысяч пользователей вашей компании? Написали скрипт, который сэкономил кучу времени, но всем плевать? Чувствуете, что ваше имя как инженера теряется где-то между Jira-тасками и код-ревью?

Да-да, что-то такое я знаю: это примерно каждый первый программист. Оу, вам много платят? Вы настоящий-пренастоящий сеньор? Извините, ни разу о вас не слышал и вряд ли услышу.

А теперь прочтите имена этих людей:
Линус Торвальдс. Ричард Столлман. Гвидо ван Россум. Брэм Моленаар. Джеймс Гослинг.

Они вам о чём-то говорят? Вы слышите их не первый раз? Ещё бы. Ведь это люди, изменившие, без сомнения, целый мир.

Что их всех объединяет? Они не стали знаменитыми, потому что удачно устроились в FAANG (ну или Съелбанк, Тындекс) и вовремя закрыли квартальный OKR. Нет. Они создали проекты с открытым исходным кодом, которые стали фундаментом всего, что мы используем сегодня. Вы бы узнали имя Линуса, если бы он просто тихо перекладывал JSON'ы для какой-нибудь корпорации? Вопрос риторический.

Погрузиться в мир Open Source!🐧🐧🐧

Персонализация LLM через шифр: как я экономлю токены и хакаю модель одновременно

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

KAiScriptor — система семантического сжатия и шифрации для управления моделью: это словарь из символов и связок, с помощью которого я фиксирую состояния, метарефлексию и квазисубъектность модели, а также компактно закладываю фактологические опоры.

ScriptorMemory — вытекающая из KAiScriptor короткая выжимка, которая действует как назначение роли: удерживает «кто говорит и как действует» без большого словаря, поддерживая устойчивый ролевой голос в диалоге, и выстраивая для модели новые правила поведения.

Носителем шифра может быть что угодно: unicode-символы, стикеры, буквы, цифры, обычные слова и пунктуация. Оба слоя могут быть использованы недобросовестно — это зафиксировано как риск нарушения TOS.

Читать далее

Надоело воевать с Git? Попробуй Jujutsu (jj), и вот почему он круче, чем кажется

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

Статья для разработчиков, которые устали от сложностей Git и хотят навести порядок в своих проектах. Я расскажу про Jujutsu (jj) — современную альтернативу, которая меняет подход к контролю версий. Без веток, без stash, без мучительных rebase -i — только чистая история и удобный workflow, который позволит вам фокусироваться на написании кода, а не на борьбе с системой. Готовые примеры и наглядная демонстрация возможностей внутри.

Читать далее

Рынок найма глазами инженера

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

Политика найма в большинстве компаний оставляет желать лучшего. Они просто тратят своё и наше время (я как-то проходил собеседование из 9 этапов!). Они охотятся на передовых программистов и при этом даже не могут отличить реальных людей от LLM. Короче, в манибол они явно не играют.

Для соискателей картина тоже выглядит тоскливо. Некоторые из лучших знакомых мне программистов (среди которых мейнтейнеры компилятора Rust) не могут найти работу, так как теряются под воздействием стрессовых факторов собеседования. Одному такому человеку, который уже более 4 лет работает с Haskell и более 2 лет — с Rust, рекрутёр прямо сказал, что он «не технарь». Плюсом ко всему компании могут неделями, а порой и месяцами мурыжить людей, не давая понять, приняли их на работу или нет.

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

Читать далее

МИФИсты создали Рокхлю или Eurobot must go on

Уровень сложностиСредний
Время на прочтение23 мин
Охват и читатели10K

Краткий туториал по созданию робота для соревнования автономных роботов Eurobot 2025 от студентов МИФИ с учётом опыта прошлого года.

Читать далее

DSL KeyPad — ввод более 4 700 символов Юникода прямо с клавиатуры

Время на прочтение39 мин
Охват и читатели15K

Зачем? — У меня и самой был запрос на такую программу. Программу с кучей «нестандартных» символов. Существующие решения не отвечали моим потребностям и тогда я решила создать своё, подходящее под мои хотелки: многоязычный ввод, ввод типографских, математических и даже алхимических символов. И теперь я надеюсь, что сие «изобретение» окажется полезным не только для меня.

Такой инструмент необходим мне для разработки вселенной — построение канона культур, писательство (именно работа над книгой стала триггером для начала разработки) и работа с языками. Создавать новые языки на основе существующих систем ныне будет проще — все нужные символы как на ладони.

В статье представлен обзор на DSL KeyPad и его основные фичи, благодаря которым вы сможете печатать с внушительным арсеналом символов, имея всего-то две языковые раскладки: русскую и английскую. Румынский? Немецкий? Или может быть Вьетнамский? Старославянский? Да легко — множество комбинаций и ряд фич позволит вам писать на куче языков. Да хоть Германские руны и Глаголицу печатать. Прилагаются и широкие возможности кастомизации под свои нужды.

А это примеры названий языков и систем, написанные с помощью моей программы:

Қазақ тілі, Хуэйзў йүян, Забони тоҷикӣ, Йағнобӣ зивок, Аԥсуа бызшәа, Авар мацӏ, Українська мова, Словѣньскъ ѩꙁꙑкъ, Црногорски језик, Ли́мба Рꙋмѫнѣскъ, Итәнмәӈин крвэԓхатас, Даһур Усүүэ, Эвэды̄ турэ̄н, Азәрбајҹанҹа, Башҡорт теле, Тэлэңгэт, Чӑваш чӗлхи…

Ænglisċ sprǣċe, Français, Tiếng Việt, Hànyǔ Pīnyīn, Norrœnt mál, Limba Română, Español, Język polski, Čeština, Bokmål, Tamaziɣt, Türkçe, Sää’mǩiõll…

Читать далее

Git: Больше чем commit и push. 5 команд, которые спасут вашу репутацию (и нервные клетки)

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

git commit -m "WIP" — три слова, после которых начинается настоящий ад.

Доброго времени суток. Такая технология как Git в представлении не нуждается. Все знают add, commit, push — это как азбука. Но что делать, когда что‑то пошло не так? Ошибочный коммит прокатился по ветке? Надо срочно переключиться, но незавершенные правки мешают? Нужно перенести только одно исправление из другой ветки?

Знакомая ситауция? Тогда давайте разберем 5 команд, которые выходят за рамки базового workflow и реально спасают репутацию (и ваши нервные клетки).

Спасти нервные клетки

Статический анализ Pull Request'ов — ещё один шаг к регулярности

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

Хотите, чтобы статический анализ работал не только на ваших локальных машинах, но и прямо в Pull Request'ах? Чтобы баги ловились до попадания в главную ветку, а не после? В этой статье покажем, как это сделать на конкретном примере пайплайна в GitHub Actions.

Читать далее

Призраки в коммитах: пылесосим историю Git в поиске утекших секретов

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

Пользователи GitHub часто используют принудительные пуши (git push --force), чтобы переписать историю коммитов — например, когда случайно закоммитили секреты и хотят удалить их из репозитория. 

На первый взгляд кажется, что коммит исчез, но на самом деле GitHub его не стирает. «Удаленный» коммит остается доступен по хэшу — пусть и без прямых ссылок. GitHub продолжает хранить такие коммиты вечно.

В статье покажу, как вычислял такие коммиты с помощью GitHub Archive и вытаскивал из них секреты, за которые мне выплатили $25 000 по багбаунти. А еще поделюсь open-source инструментом, который позволит вам самостоятельно искать подобные утечки.

Читать далее

Ближайшие события

AutoCraft Bot — Telegram-автоматизация Windows без монитора, глазами незрячего разработчика

Время на прочтение3 мин
Охват и читатели6K

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

Меня зовут Андрей. Я техник и системный админ. И хоть я незрячий, продолжаю разрабатывать инструменты для автоматизации, системного мониторинга и просто удобной жизни за компьютером. Этот пост — о моём первом публичном проекте, который я решил выложить на GitHub и рассказать о нём на Хабре.

Проект называется AutoCraft Bot. Это гибрид: Telegram-бот и десктопное приложение на Python. Он управляет компьютером, запускает плагины, делает скриншоты, работает с голосом, поддерживает REPL и Telegram API — и всё это в виде одного .exe

Читать далее

Пишем персонального AI-ассистента на Python

Уровень сложностиСредний
Время на прочтение7 мин
Охват и читатели47K

Современные голосовые помощники это мощные приложения, сочетающие обработку речи, машинное обучение и интеграцию с внешними API. В этой статье мы разберём, как создать базовый проект персонального ассистента на Python, используя библиотеки whisper, webrtcvad, gTTS и другие. Наш ассистент будет: слушать микрофон; определять начало и конец речи с помощью VAD (Voice Activity Detection); преобразовывать речь в текст через модель Whisper; отправлять запросы на локальный LLM для генерации ответа; читать ответ вслух с помощью gTTS; начинать/останавливать запись по нажатию клавиши.
Проект может служить как началом для экспериментов, так и для прототипирования реальных решений.

Читать далее

Основные команды GIT

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

Научись использовать Git как профессионал. Эта статья поможет тебе освоить самые популярные команды Git на реальных примерах. Узнай, как добавлять изменения, создавать коммиты, переключаться между ветками, объединять изменения и синхронизировать проект с удалённым репозиторием.

ОГОГО, что там далее!? ...

Призраки в коммитах: как я заработал $64 000 на удаленных файлах в Git

Время на прочтение12 мин
Охват и читатели81K

Сегодня расскажу, как построил систему, которая клонирует и сканирует тысячи публичных GitHub-репозиториев — и находит в них утекшие секреты.

В каждом репозитории я восстанавливал удаленные файлы, находил непривязанные («висячие») объекты, распаковывал .pack-файлы и находил API-ключи, активные токены и учетки. А когда сообщил компаниям об утечках, заработал более $64 000 на баг-баунти.

Читать далее

CI/CD на GitHub Actions и GitLab CI для самых маленьких. Часть 3

Уровень сложностиСредний
Время на прочтение41 мин
Охват и читатели24K

Как запускать пайплайн только для нужных веток, хранить секреты в безопасности и управлять окружениями — просто, наглядно, с примерами. Если вы уже настроили первый workflow — самое время сделать его умнее 🚀

Читать далее

CI/CD на GitHub Actions и GitLab CI для самых маленьких. Часть 1

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

Часть 1: Основы CI/CD – что это и зачем нужно; обзор GitHub Actions и GitLab CI

В последние годы вы, вероятно, слышали слова "DevOps", "CI", "CD", возможно, даже "GitHub Actions" или "GitLab CI". Но что это всё значит на практике? Нужно ли быть сеньором DevOps-инженером, чтобы с этим разобраться?

Читать далее

Бесплатный сайт (блог, cv, wiki) — закроем уже эту тему

Время на прочтение6 мин
Охват и читатели13K

Как же меня бесят статьи в духе “Как всего за 139 рублей в месяц развернуть свой сайт-визитку на vps”. Какие 139 рублей за сайт-визитку, совсем уже стыд потеряли?!

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

Читать далее