Обновить
1660.08

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

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

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

Технарь пишет статью с AI: пайплайн, слои и чеклист

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

У вас 20 лет опыта, но ни одной статьи на Хабре. Знакомо? «Не умею писать», «нет времени на оформление», «получается сухо». AI обещает решить эту проблему — но между «скормил тезисы в ChatGPT» и «написал сильную статью» лежит огромный путь.

В статье — конкретный пайплайн из семи шагов: от тезисов в рабочем чате до публикации. Разбираем три слоя технической статьи и честно определяем, где AI реально полезен, а где наверняка галлюцинирует. Отдельно — про фактчекинг: почему чат с веб-поиском проверит лишь 5–10 утверждений из 50, и чем AI-агент принципиально отличается от обычного диалога.

Статья не про «AI напишет за вас», а про то, как превратить экспертизу в текст, не потратив на оформление втрое больше времени, чем на саму работу.

Читать далее

Память в JavaScript: Stack и Heap

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

Последние пару лет изменили то, как пишется код. Copilot, Cursor, ChatGPT, Claude - все это генерирует вполне работающий JavaScript быстрее, чем успеваешь сформулировать задачу. Это удобно. Но у этого удобства есть обратная сторона, сгенерированный код работает правильно в смысле делает что просили, но не всегда правильно в смысле не течет по памяти и не роняет прод под нагрузкой.

Модели хорошо знают синтаксис и паттерны. Они значительно хуже разбираются в том, что происходит под капотом конкретного движка. Closure, захватывающий лишние данные. Event listener, который никогда не снимается. Объект, который непреднамеренно продлевает жизнь половине DOM дерева. Все это - настоящие ошибки, которые реально встречаются в проде и ни один линтер их не поймает.

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

Эта серия состоит из трех частей. Первая - про то, как V8 вообще организует память, что такое Stack и Heap, чем они отличаются и что такое pointer. Вторая - про сборщик мусора, как он определяет, что живо, а что нет и как делает это, не останавливая программу надолго. Третья - практическое применение, откуда берутся утечки памяти, как их искать и как писать код, который не создает лишней работы для GC.

Смотреть под капот

Отражаем атаку на IOMMU

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

Что вы знаете об атаках на графические процессоры? Наверняка ничего приятного: они крайне распространены на мобильных устройствах, классические «песочницы» от них не защищают, и компрометация лишь одного драйвера может поставить под угрозу все ядро…

Меня зовут Денис Молодяков, и я — лид команды графики в KasperskyOS. Идея этого текста возникла во время одного моего выступления на конференции по системной разработке. Тогда из зала задали вопрос, который касался безопасности работы драйверов GPU. Слушатель ссылался на кейсы с «подламыванием» механизма управления видеопамятью драйверов на Android для интегрированных ускорителей семейства ARM Mali и спросил, как наша ОС сможет этому противостоять.

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

Читать далее

Оптимизация Java-приложений для Arm64 в облаке

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

JVM в первую очередь процесс операционной системы. Но важно понимать, что требования к этому процессу на production отличатся от требований на workstation-е разработчика. 

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

В новом переводе от команды Spring АйО разберем, какие существуют базовые настройки кучи, GC и CPU помогают синхронизировать JVM с лимитами контейнера и не переплачивать за простаивающие ресурсы.

Читать далее

Почему мы в Профи.ру выбрали монорепозиторий, а не микрофронтенды

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

История о том, как мы в Профи.ру перешли на монорепозиторий. 

Расскажу, как к этому пришли, почему не стали ударяться в микрофронтенды и как строили-строили архитектуру и наконец построили.

Читать далее

Инженерия данных: паттерны проектирования

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

Приветствуем вас, Хабр.

В течение минувшего года мы серьёзно прорабатывали тему инженерии данных (Data Engineering), поскольку остались очень довольны читательским интересом к вышедшей у нас книге «Основы инженерии данных: как создавать надёжные системы обработки данных» Джо Риса и Мэтта Хоусли (оригинал — издательство "O'Reilly"). В январе вышла её допечатка.

Кроме того, у нас уже переведена и ушла в редактуру более продвинутая книга, также от O'Reilly, написал которую Бартош Конечны (Bartosz Konieczny); она называется «Data Engineering Design Patterns: Recipes for Solving the Most Common Data Engineering Problems».

Читать далее

Я научил свою собаку играть в Vibe Code Games

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

Разработчик рассказал о необычной задумке — он решил научить свою собаку создавать игры с помощью инструментов вайб-кодинга. Вот как это было.

Читать далее

Open Source-джентльмены 2026: Обзор самых ярких GitHub-проектов, определивших начало года

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

2025 год стал переломным для open-source-сообщества. Согласно ежегодной статистике GitHub, количество публичных репозиториев перевалило за 395 миллионов, а аудитория платформы выросла до 180 миллионов разработчиков. Но главная интрига развернулась на пьедестале языков программирования: TypeScript впервые сместил Python и JavaScript, став самым быстрорастущим языком с годовым приростом в 1 миллион новых разработчиков.

Мы вступили в 2026 год, и тренд на «агентность» и «интеграцию с ИИ» перестал быть просто хайпом. Теперь это архитектурный стандарт. В этой статье я собрал проекты, которые буквально «взорвали» GitHub в конце 2025 и начале 2026 года. Это не просто игрушки, а реальные инструменты, меняющие ландшафт разработки.

Читать далее

Подключаем дешёвый USB-сканер отпечатков пальцев Chipsailing CS9711 в Linux

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

Многие современные ноутбуки оснащаются сканерами отпечатков, но что делать, если ваш рабочий ПК или старый ноутбук такой возможности не имеет? Китайские маркетплейсы предлагают огромное количество USB-сканеров по цене 1000–2000 рублей. Однако при попытке использовать их в Linux пользователя ждёт сюрприз: официальные драйверы отсутствуют, а встроенная поддержка libfprint часто не работает.

В этой статье я расскажу, как заставить работать сканер Chipsailing CS9711 (ID 2541:0236) в Ubuntu и других дистрибутивах. Мы скомпилируем форк libfprint с поддержкой этого устройства, настроим демон fprintd и подключим аутентификацию по отпечатку в KDE (а также дадим подсказки для других окружений).

Читать далее

Как за сутки обойти миллиард веб-страниц

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

TL;DR:

1,005 миллиарда веб-страниц

25,5 часа

$462

По какой-то причине уже долгое время никто не писал о том, что требуется для краулинга большой части веба: последним обнаруженным мной источником был пост Майкла Нильсена за 2012 год[1].

Очевидно, что за это время много изменилось. Всё стало больше, лучше и быстрее: у CPU появилось намного больше ядер, на смену жёстким дискам пришли твердотельные накопители NVMe, скорости ввода-вывода которых сравнимы со скоростями RAM, существенно выросла ширина сетевых каналов, существенно расширился список типов инстансов EC2 и так далее. Но в чём-то ситуация и усложнилась: гораздо бóльшая часть веба стала динамической, а контент теперь более тяжёлый. Как поменялось состояние Интернета? Теперь узкие места стали другими, и для создания своего Google по-прежнему нужно около 41 тысячи долларов? Мне захотелось это узнать, поэтому я собрал и выпустил собственный веб-краулер1 в условиях похожих ограничений.

Читать далее

S3 Архипелаг: как мы в Диасофте построили свое объектное хранилище

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

Лет десять назад объектное хранилище было экзотикой. Крупные компании обходились NFS‑шарами и надеждой, что RAID не развалится в самый неподходящий момент. Средний бизнес в целом не понимал, зачем это нужно. Но сегодня все изменилось. S3 API стал таким же стандартом, как REST или JSON. Мы в Диасофте построили «Фабрику данных» (Digital Q.DataFactory) в архитектуре Data Lakehouse на основе S3 Архипелаг, которая объединяет гибкость Data Lake с надежностью хранилища данных. В этой статье расскажем, как построили слой хранения.

Читать далее

Согласованность API по принципу единого источника истины

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

Представим ситуацию: идет тяжёлый спринт, вы выполнили кучу задач, написали тонну нового функционала, готовитесь к релизу и вдруг обнаруживайте, что часть фич перестала работать! Идёте разбираться и обнаруживайте, что оказывается бэкендер Вася в последний момент решил переименовать поля в json-е, а вам об этом не сказал!

Ситуация образная, но позволяет быстро обрисовать одну из болей во время разработки. В этой статье я бы хотел рассказать об одном из вариантов её решения в коде с помощью подхода Единого источника истины(Single source of truth).

Читать далее

ZIO Mock не может — ScalaMock поможет

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

Если вы пишете тесты на ZIO, то с моками, скорее всего, уже сталкивались. И почти наверняка — с ZIO Mock. Формально он решает задачу, но на практике ломает Arrange‑Act‑Assert, «краснит» в IDEA и иногда падает так, что вы видите только InvalidCallException: null. В Яндекс Вертикалях мы довольно долго жили с этой библиотекой — пока количество таких тестов не перевалило за пару сотен и они не расползлись по десятку команд.

Меня зовут Женя Веретенников, я тимлид в Яндекс Вертикалях и последние годы занимаюсь инструментами для Scala‑разработчиков и инфраструктурой бэкенд‑монорепозитория. Когда стало ясно, что ZIO Mock больше мешает, чем помогает, мы решили отказаться от него полностью — и подружить ZIO Test с классическим ScalaMock. Он даёт более предсказуемый синтаксис и понятные ошибки, но из коробки с ZIO не работает.

В этой статье я расскажу не о том, как пользоваться новой библиотекой, а о том, как мы её делали: какие ограничения ZIO‑стека пришлось учитывать, где пришлось лезть под капот ScalaMock и ZIO Test и во что в итоге превратилась эта инженерная затея. Это история про построение собственного test tooling в большой Scala‑кодовой базе — с честными компромиссами и практическими выводами.

Читать далее

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

BASIC не умер. Пора развеять мифы о Basic

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

Автор оригинала: Chris Boss, Опубликовано 16 ноября 2022 года
Оригинал статьи на www.codeproject.com
Перевод

Я программирую на языке BASIC с 1975 года и думаю, что пришло время объяснить, что такое BASIC на самом деле и чем он не является. На протяжении десятилетий BASIC подвергался критике из-за мифов о нём. Кто, как не программист, который профессионально использует BASIC на протяжении десятилетий, сможет объяснить, что такое BASIC на самом деле? Слушайте, как я рассказываю о том, как я узнал о языке Basic, о разных версиях Basic, которые я пробовал, и о том, чего мне удалось достичь за эти годы с помощью Basic.

Читать перевод

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

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

Система типов в TypeScript может творить чудеса, но на практике многие используют ее едва ли на десять процентов. Признайтесь, мы все хотя бы раз лепили any просто чтобы компилятор отстал и дал собрать проект. Проблема в том, что такие компромиссы рано или поздно приводят к неожиданным падениям в рантайме.

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

Читать далее

CodeWiki Skill: как заставить AI-агента написать документацию к вашему коду

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

В этой статье я расскажу о том, как был создан CodeWiki Skill для Claude Code (и не только) - инструмент, который автоматически генерирует полноценную структурированную документацию для любого репозитория, используя мультиагентный подход.

Читать далее

Множество Мандельброта. 32-бит TrueColor. 60 FPS. 80-бит long double. OpenMP. Суперсэмплинг 2x2 (4 прохода). И цвета

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

Множество Мандельброта. 32-бит TrueColor. 60 FPS. 80-бит long double. OpenMP. Суперсэмплинг 2x2 (4 прохода). И цвета. Я хочу сказать. Это самая нужная вещь во Вселенной. Самая глубокое. И я сейчас за всю жизнь наконец стал писать код и сделал. Довольно сложное. И самое прекрасное. Скачайте и посмотрите! Это экзешник, в ГитХаб.

github: Download Latest Version Windows And Source code

Читать далее

Три стакана на двоих: самая эффективная коммуникация

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

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

Наиболее эффективная техника, реализующая подобное взаимодействие, известна как тройная буферизация (Triple Buffering). Именно о ней и о её небольших обобщениях пойдет речь в данной статье.

Читать далее

Забыть про Backprop: Как я собрал «Термодинамический Мозг» с фазой сна и митозом, который влезет в Arduino

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


Мы (человечество) очень хотим создать разум. Инопланетян мы пока не нашли, поэтому пытаемся собрать его сами из кремния и электричества. Но то, куда свернула индустрия сегодня, вызывает вопросы. Мы греем планету мегаваттами энергии, перемножая гигантские матрицы в дата-центрах, чтобы обучить LLM. Backpropagation и современный инференс - это непозволительно дорого и энергозатратно.

А что если вернуться к истокам? Что если интеллект — это не градиентный спуск, а кристаллизация связей под давлением информации?

В этой статье я расскажу о концепте Термодинамического Мозга. Это самоорганизующийся граф, который обучается в один проход O(1), непрерывно адаптируется к новым данным, спит по ночам, чтобы не сойти с ума, и настолько нетребователен к ресурсам, что его можно запустить хоть во вкладке браузера, хоть на Arduino.

Запустить митоз

Фотонный проц на одной инструкции: как Akhetonics строит комп из чистого света. И почему это куда сложнее, чем кажется

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

Представьте, что вы читаете громкий заголовок: «Самая простая Turing‑complete архитектура SUBLEQ (всего одна инструкция!) и реализовали её на фотонных логических вентилях». Звучит как настоящий прорыв из научной фантастики — один‑единственный тип команды, и вот уже у нас полноценный универсальный компьютер, работающий на скорости света, без кремния, без транзисторов, с терагерцевыми частотами и энергопотреблением в разы ниже.

Но если копнуть глубже, сразу вылезают два больших «но». Первое — SUBLEQ действительно может быть Turing‑полной, но только при очень конкретных условиях. Второе — реализовать даже такую «простую» архитектуру на настоящих фотонных вентилях в железе оказывается совсем не тривиальной задачей. И именно об этом мы сегодня поговорим подробно, без хайпа, но и без излишнего скепсиса.

Эта статья — разбор реальной истории, которая происходит прямо сейчас, в 2026 году. Немецкий стартап Akhetonics из Мюнхена всерьёз взялся за all‑optical general‑purpose processor и выбрал для доказательства концепции именно SUBLEQ. Мы пройдёмся по всем нюансам: от теории одной инструкции до проблем фотонной памяти, от лабораторных прототипов до того, почему чистый SUBLEQ, скорее всего, останется красивым PoC, а в реальном продукте придётся расширять набор команд.

Готовы? Поехали.

Полетели!