Обновить
1660.39

Программирование *

Искусство создания компьютерных программ

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

Транслятор РПГ М-220. Рукописи не горят

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

Со мной опять произошла какая-то мистика.

С тех пор как начал писать  серию статей под названием «Пятьдесят лет по стезе программирования», особенно когда готовил третью статью, мне хотелось найти рукопись с исходными кодами, написанного мною транслятора с языка РПГ (RPG) для ЭВМ М-220:

Читать далее

Интеграция утилиты Artistic Style в скрипт сборки прошивки

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

Есть утилита для автоматического выравнивания отступов в исходных кодах. Называется astyle.exe.

В этом тексте я покажу, как работать с утилитой Astyle.

Читать далее

Как стандарты W3C и блокчейн формируют цифровое доверие в России

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

Технологии децентрализованной идентификации и верифицируемых данных перешли от концепций к промышленной эксплуатации. И ключевой драйвер этого перехода – не отдельные продукты или вендоры, а стык между международными стандартами (прежде всего W3C) и адаптированными под наше регулирование блокчейн-решениями. Статья объясняет, как эти два слоя взаимодействуют на практике, где уже применяются и какие вызовы остаются на пути массового внедрения.

Читать далее

Нужна ли программисту пассионарность

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

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

Читать далее

Как мигрировать кусочек Яндекс Такси с PostgreSQL на YDB и перестать считать подключения к шардам

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

Привет, Хабр! Меня зовут Игорь Березняк, и мы с командой делаем Техплатформу Городских сервисов Яндекса. Я уже писал на Хабре про архитектуру платформы, рассказывал на «Хайлоаде» (и на Хабре) про шардирование и миграцию на YDB.

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

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

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

В моём рассказе переход на YDB — это в первую очередь смена одних ожидаемых сценариев работы на другие. Со своими последствиями, компромиссами, необходимостью адаптировать и переписывать код.

Читать далее

Нет времени на тесты — через неделю релиз

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

«На автотесты нет времени — релиз через неделю!» говорит зарубежная компания со штатом 500+ человек, зарплатами 5 000 €, баг-репортами по ISO. Разбираю, откуда берётся эта фраза, почему разработчики не могут объяснить бизнесу очевидное.

Читать далее

Литания: создаем свой язык программирования с лексером, парсером и интерпретатором

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

В наше время программирование стало очень доступным из-за развития инструментов и языков. Написать «привет, мир» может практически каждый, а количество фреймворков для JavaScript уже воспевается в шутках. Теперь, чтобы выделиться и впечатлить друзей и коллег, нужно спускаться глубже. Придумаем свой язык шуточный программирования! 

В этой статье кратко рассмотрим базу компиляторов и мемные эзотерические языки программирования. В конце придумаем свой язык и попробуем его реализовать. 

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

Читать далее

Запуск DOOM на Siglent SDS5000X

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

Приветствую! В этой статье я расскажу, как мне удалось запустить DOOM на осциллографе Siglent SDS5034X. Для этого пришлось найти шелл (вендор получил мой репорт), адаптировать систему ввода игры под энкодеры на лицевой панели и вывести звук на встроенную «пищалку».

Читать далее

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

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

Сегодня утром я прошёл лайв-кодинг в одну англо-продуктовую компанию. Написал ноль строчек кода руками. Задеплоил результат на свою VPS прямо во время звонка. Интервьюер сказал: "It's so wonderful just how much everything has changed." А неделю назад другая компания не зачла мне тестовое, потому что я забыл про запрет AI.

20+ собесов за последние месяцы. Фронтенд, бэкенд, фулстек, AI-инженер. Python, TypeScript. Разные рынки, разные компании, совершенно разное отношение к одному и тому же инструменту. Я не теоретик, который рассуждает о будущем. Я прямо сейчас хожу на эти собесы и вижу, как рынок разламывается пополам.

Читать далее

Вайбкодинг для ленивых: читаем видео на YouTube

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

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

Что ж. Настал тот день и час, когда обстоятельства и звезды сложились должным образом. За полчаса я сделал работающее полезное расширение для браузера. Эта немного ироничная статья о том, как я ко всему этому пришел, что и как делал и что в итоге получилось.

Погрузится в немного ироничный вайбкодинг

Мелочи ИИ-шной жизни. Как GitHub Copilot Hook может помочь совершенствовать ваш английский параллельно с вайбкодингом

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

Вы, читатель, как и автор, тоже досадуете, когда в промтах проскакивают досадные опечатки или грамматические конструкции, которые заставляют даже терпеливую LLM «задумчиво» переспрашивать: «What do you mean?»

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

Читать далее

Как не поехать кукухой и всё успеть: выстраиваем рабочую систему из привычек

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

Уже вечер, ты активно пишешь код. Тревожность вместе с тобой. Утром на дейли сказал, что добьёшь таску: да она не сложная, каких‑то 2 стори поинта. Но вот вечер, и ты точно не успеваешь. Завтра на дейли спросят статус задачи, а ты — не сделал. Да, ты общался с архитектором по решению, отвечал на вопросы поддержки и помогал решать проблемы с тестовым окружением. Ещё был синк с другой командой, помог решить проблему с локальным окружением другому разработчику и готовил контракт для фронта для будущей таски. И на обед ты не сходил. Но кого это заботит, если твоя задача все ещё в InDev? Точно придётся посидеть ещё пару часов ночью, чтобы закрыть должок.

Или другой вариант. Ты — менеджер. У тебя за день от 5–6 встреч. Всё нужно решить. Ну и текучка не отпускает: нужно решить конфликт в команде «А», есть запрос на согласование обучения для Иванова, нужно ещё согласовать технические работы и выдать пару доступов. А ещё Сергей из команды «B» недостаточно открыто ответил на вопрос своего коллеги, и тут просят твоего внимания. И, кстати, ещё нужно запланировать изменение процесса и предложить расчёт новой метрики.

Знакомо?

Тогда тебе точно нужен курс по time management ряд привычек, которые каждый может внедрить в свою работу.

Читать далее

Пространства имен: как не устроить войну имен в своем проекте

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

Представьте огромную библиотеку, где все книги — от кулинарных рецептов до квантовой физики — свалены в одну гигантскую кучу на полу. Чтобы найти книгу «Война и мир», вам придется перерыть весь завал, и высока вероятность, что вы достанете «Войну миров» Герберта Уэллса или методичку «Как сдать мир на войне». Примерно так выглядит глобальное пространство имен в C++ без использования namespace.

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

Читать далее

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

Вайбкодинг – не для гуманитариев? Юрист сделал кривой поиск по PDF и просит помощи…

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

Я столкнулся с простой (как мне изначально показалось – даже очень) задачкой. Мне в последнее время потребовалось часто проводить поиск в 4-х словарях. Государство мне их дало в виде 5 PDF файлов, выложенных онлайн. Это нормативные словари русского языка, слова из которых можно использовать в публичном пространстве.

Например, cash - можно использовать на русском как кэш, а не переводить как тайник или склад, поскольку в Словарь иностранных слов это слово уже включено. И это слово нам еще пригодится далее по тексту)

Читать далее

Сборка мусора в V8: Scavenger, Mark and Sweep и Tri-color Marking

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

В части 1 мы выяснили, что объекты в Heap не освобождаются сами по себе этим занимается Garbage Collector. Но как именно GC решает, что можно удалить? Если подумать, задача не такая очевидная: объект не нужен - понятие логическое, а GC работает с физическим графом ссылок.

Ответ в том, что GC не пытается угадать намерения программы. Он задаёт более простой вопрос: можно ли добраться до этого объекта из работающего кода? Если нельзя объект недостижим, и никакой код уже не сможет его использовать. Значит, память можно вернуть.

Алгоритм, реализующий эту логику, называется Mark and Sweep.

Читать далее

Что нового в OpenIDE 2025.3: Java 25, Spring MCP, Go, Docker и JavaScript/TypeScript

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

Состоялся релиз OpenIDE 2025.3 на базе IntelliJ IDEA Platform 2025.3. В релизе — поддержка Java 25, автодополнение действий IDE через двойную точку (Command Completion), Spring MCP для LLM-агентов, обновления для Go и фронтенд-стека, улучшения HTTP-клиента Connekt и доработки Docker-плагина. 

Читать далее

Documentation-Driven Development: как мы генерируем Go-код из OpenAPI-спецификаций

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

Привет, Хабр. Я Матвей Лихота, старший Go-разработчик из МТС Web Services. По моему опыту, документация, которую пишут руками отдельно от кода, устаревает уже в момент следующего коммита. Из-за этого мы в команде тратили до 20% времени на поддержание актуальности swagger-документации в десятке микросервисов. И когда ошибки интеграции уже стали привычным фоном, мы все-таки решились и перевернули всё с ног на голову: внедрили Documentation-Driven Development (DDD) — подход в разработке, когда процесс начинается с документации. 

Что за подход и что он дал в итоге, зачем понадобилась утилита oapi-codegen и как мы генерируем Go-код из OpenAPI-спецификаций — подробно рассказал и показал под капотом. 

Читать далее

Veai 5.5: поддержка Skills, режимы агента Plan и Review, авторевью и ограничение зоны редактирования

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

В свежем релизе Veai 5.5 (плагин к IntelliJ IDEA со своим AI агентом для написания кода, тестирования и отладки) работа с агентом становится более управляемой, безопасной и расширяемой. SKILLs — это полноценная поддержка открытого стандарта навыков: их можно хранить в проекте, переиспользовать между задачами и инструментами, и агент будет подключать их автоматически.

Добавлены новые режимы агента Plan и ReviewAuto Review — для быстрых проверок сгенерированных изменений, Edit Scope — для ограничения области редактирования, а также возможность создавать свои режимы агентов под конкретные роли и сценарии. Для персональных пользователей добавлена поддержка Claude 4.6 Opus.

Читать далее

ИИ бот-модератор 2 — Формирование структуры

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

Наверняка после первой части вы думали: «Ну всё, uv настроили, сейчас быстренько накидаем хэндлеров в main.py и запустим».

Не тут-то было! Мы пойдем по «взрослому» пути и начнем сразу с хардкора — с архитектуры проекта. Почему? Потому что хороший дом начинается не с поклейки обоев, а с надежного фундамента и подробного чертежа. Если мы пропустим этот этап сейчас, через месяц разработки наш проект превратится в запутанный клубок кода, который страшно трогать.

Читать далее

От диплома до продакшена: Часть 2: Как я проектировал опыт пользователя

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

Всплески в аудиосигнале
Когда я глазами просматривал результаты разбора звука, я понял, что ещё происходит всплески по голосу.

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

Читать далее