Обновить

Разработка

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

Flutter, Google, Fuchsia, Zircon, Linux, Starnix, Magma, Microfuchsia, будущее Андроида и других ОС

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

С момента появления загадочного репозитория на GitHub с описанием «Pink + Purple = Fuchsia» прошло десять лет. За это время медиа-пространство успело пережить несколько циклов хайпа: от «Убийцы Android» до «Мертвого проекта Google».

На календаре январь 2026 года. В магазинах нет коробок с надписью «Fuchsia Phone». Однако, если у вас дома стоит Nest Hub второго поколения, вы уже пользуетесь этой ОС. Если вы разработчик под Android, вы, возможно, уже взаимодействуете с её компонентами через виртуализацию.

Fuchsia не умерла. Она совершила то, что в биологии называется метаморфозом. В этой статье мы отбросим маркетинговую шелуху и разберем архитектуру системы "под микроскопом". Поговорим о том, как Google решает фундаментальные проблемы ядра Linux, что такое Starnix на уровне системных вызовов, зачем нужен FIDL и почему 2024–2025 годы стали переломными для проекта, переведя его из стадии R&D в стадию инфраструктурного фундамента.

Читать далее

Кроим ДНК на Python — CRISPR gRNA finder, Часть I: Введение и базовый поиск

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

Несколько лет назад я наткнулся на статью про CRISPR‑Cas9 и домашние биолаборатории — люди буквально у себя дома экспериментировали с редактированием генов. Я бэкенд‑разработчик, биологию последний раз открывал в школе, но желание разобраться никуда не делось. В этой статье разберёмся, как работает CRISPR на минимальном уровне, и напишем CLI‑утилиту на Python для поиска потенциальных guide RNA — «наводчиков» для молекулярных ножниц Cas9.

Читать далее

Ключевые слова в иностранном языке или как увеличить свой словарный запас?

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

Рассмотрим две проблемы при изучении иностранного языка. Это освоение грамматики и увеличение словарного запаса. Они не единственные, но важные. Про способы погружения в грамматику, на языке оригинала, можно прочитать в моей статье: «Уроки французского и пересоздание данных для изучения иностранного языка с помощью обучающей программы «L'école»», в https://habr.com/ru/articles/972594/ .

Там идея простая. Мы берем хороший учебник на языке оригинала, разбиваем текст на короткие смысловые фразы, снабжаем их фонетическим слогоделением и буквальным контекстным переводом (БКП). Затем, озвучиваем данные, например, с помощью TTS, для, в данном случае, обучающей программы «L'école» и создаем двуязычные html-тексты с транскрипцией (фонетическим слогоделение) или, другими словами, небольшую книгу в формате html.

Идея изучения грамматики основана на двух принципах:

– Мы читаем, громко, вслух фонетическую транскрипцию (предварительно осваиваем фонетический алфавит с помощью представленных уроков) и смотрим подстрочный перевод. Это для html-книг. А при работе в обучающей программе, мы можем, при желании, еще набирать текст руками (используя метод «запоминание руками», в режиме «Конспект»), слушать и проговаривать вслед интерактивную озвучку. При этом, не обязательно даже стремиться запоминать текст, при наборе его руками и повторении озвученной речи, уроки запоминаются «сами собой», особенно, если к ним периодически возвращаться.

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

Читать далее

Достижение целей с технической точки зрения

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

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

Таким образом, если задать текущее состояние строкой Sтек и желаемое состояние строкой Sцель, то достижение цели можно назвать: работу по переводу ситуации в строке Sтек в строку Sцель.

Читать далее

Пользователям Linux посвящается. Генератор паролей из /dev/random: от one-liner'а к Rust CLI

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

Генератор паролей из /dev/random: от one-liner'а к Rust CLI

В этой статье хочу поделиться процессом написания собственного генератора паролей, использующего энтропию /dev/random. От pipe команды до Rust утилиты.

Читать далее

Лазерный тир, версия 3.0 на ESP32

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

Много-много лет назад делал я простенький лазерный тир с raspberry и камерой.

Технологии с тех пор сильно шагнули вперёд, и захотелось сделать новую, максимально дешёвую версию. В качестве основы взял ESP32 с камерой OV2640 — стоит около 5 евро на AliExpress. Серьёзно переживал за производительность, но её у этого малыша оказалось более чем достаточно. В нём два ядра: одно полностью отдано под обработку изображения, второе — под веб-сервер.

Идея следующая: 60 раз в секунду делаем снимок и ищем на нём пятно от лазера. Параллельно крутится веб-страничка, где на canvas рисуются мишень, попадания и очки. Поскольку полноценный OpenCV на ESP32 не запустить, всё сделано максимально просто. Камера выдаёт чёрно-белые JPEG-кадры, которые я распаковываю в пиксели и ищу те, что превышают порог яркости. Да, камера умеет работать и с RAW-форматами, но там есть нюанс — частота кадров в таком режиме ограничена примерно 15 FPS. А вот распаковывать JPEG «на лету» для ESP32 оказалось посильной задачей, и благодаря этому удалось выжать почти 60 FPS при разрешении 240×240. Для надёжности детектирования у камеры дополнительно задаётся смещение экспозиции.

Но просто найти пятно на картинке недостаточно — нужно сопоставить его с координатами мишени. И вместо того чтобы нагружать микроконтроллер сложной математикой, это можно переложить на пользователя. Поэтому предусмотрена разовая ручная калибровка: на отдельной странице в браузере нужно выбрать четыре маркера на изображении по часовой стрелке. По ним строится матрица обратного перспективного преобразования. Благодаря этому камера может смотреть на мишень под любым углом — математика всё компенсирует.

Читать далее

Настройка статического ip на CentOS 7 для чайников

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

Привет, Хабр! Холодным зимним вечером мне понадобилось настроить статический ip-адрес на CentOS 7. В этой статье я делюсь своим опытом по настройке статического ipv4. И путем от Destination Host Unreachable до полностью работающего интернета.

Читать далее

НеОсознанный вайб-кодинг (с примером RDF Grapher)

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

Статья -  комментарий / возражение к статье Осознанный вайб-кодинг. Осознанный вайб-кодинг наверное лучше не Осознанного, но последний тоже работает.

Читать далее

Создаем свой проектный фреймворк автотестирования API [Часть 1/3]

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

Автоматизированное тестирование API часто начинается с простых решений в виде коллекций Postman или скриптов на коленке. Такой подход работает на старте, но быстро исчерпывает себя.

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

Статья поделена на три части.

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

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

Читать далее

Joomla-дайджест. 2-е полугодие 2025 года

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

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

Читать далее

Универсальный автогенератор тестов API на базе Schemathesis

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

Универсальный автогенератор тестов API на базе Schemathesis

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

Читать далее

Линейная и полиномиальная регрессия на C++

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

В статье я (немного фривольно) решил исследовать связь количества прочитанных книг и средней зарплаты программиста. Проанализируем эту связь, построив уравнение линейной регрессии и полиномиальной регрессии (2-й степени)

Читать далее

Minecraft на Unity. Построение одного чанка

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

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

Далее предоставлю полный скрипт для построения чанка.

Читать далее

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

Законы логики для начинающих программистов

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

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

Читать далее

Под капотом многопоточной синхронизации в Java: как потоки договариваются через Mark Word

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

Когда вы пишете synchronized(obj), под капотом происходит целая цепочка событий, которую можно отследить до Mark Word — восьмибайтового служебного поля в каждом Java-объекте. В современных реализациях JVM (таких как HotSpot, OpenJ9, GraalVM) используется динамическая, адаптивная система, которая выбирает наиболее эффективную стратегию блокировки в зависимости от реального поведения потоков.

Читать далее

Как защищаться от ИИ-психоза: гайд даже для тех кто думает что их это не коснется

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

Я провёл неглубокое исследование научных публикаций 2023-2025 годов о влиянии ИИ-чатботов на психическое здоровье. Спойлер: влияние есть, но доказательная база пока слабая. Зато практические рекомендации по защите -> вполне конкретные.

Читать далее

Это главная ошибка ИИ на сегодняшний день

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

Весь год мы хоронили классическое обучение ИИ. Оказалось, рано.

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

Считалось, что этот путь развития зашел в тупик. Теперь единственное, что имеет значение - обучение с подкреплением, метод «проб и ошибок», который обеспечил большую часть прогресса за последний год.

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

Предварительное обучение (pre-training), классический метод обучения ИИ через имитацию, не просто живо - оно готовится к настоящему ренессансу в 2026 году. И это важно для вас при выборе ИИ-продуктов или принятии инвестиционных решений.

Читать далее

Сегментация LAN: почему она почти никогда работает

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

Сегментация локальной сети давно считается базовой практикой в области информационной безопасности. VLAN, firewall, отдельные зоны доступа — всё это выглядит логично и убедительно на схемах и в документации. Но в реальной инфраструктуре сегментация почти никогда не работает так, как задумано. Исключения множатся, легаси-системы требуют полного доступа, бизнес настаивает на удобстве, а контроль за правилами постепенно исчезает.

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

Читать далее

Строим свой остров: как создать минимальный Linux для Raspberry Pi

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

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

Linux для встраиваемых систем, включая Raspberry Pi, и Linux для PC имеют ряд различий. Различия касаются используемых загрузчиков, платформо-зависимого кода ядра, файловых систем и прочего. Для встраиваемых систем большое значение имеет Board Support Package (BSP), который обычно сопровождает различные системы на кристалле (System on Chip — SoC) или одноплатные компьютеры (Single Board Computer — SBC).

Чтобы сделать статью интереснее и полезнее, я рассмотрю создание Linux для Raspberry Pi 3 и для Raspberry Pi 4 и укажу на различие этих одноплатных компьютеров в контексте загрузки и сборки ядра Linux. Также мы соберём и запустим downstream и upstream Linux-ядра для Raspberry Pi.

Под Raspberry Pi 3 и Raspberry Pi 4 подразумеваются модели Raspberry Pi 3 Model B и Raspberry Pi 4 Model B соответственно. А обе модели называются в статье Raspberry Pi.

Как и в моей прошлой статье по сборке Linux для PC собирать мы будем без использования Buildroot или Yocto Project, только сделаем его более практичным, так как он будет поддерживать работу с SD-картой.

Такие сборки минимального Linux без Buildroot и Yocto Project мне чем-то напоминают высадку на необитаемый остров, где вы вынуждены минимальным набором инструментов благоустраивать свою жизнь. Да, вашей жизни ничего не угрожает, но определённая закалка в виде полученных базовых знаний остаётся. Поэтому системе Linux, создаваемой в статье, я дал кодовое название Robinson Linux.

Я надеюсь, что после прочтения статьи вам будет гораздо проще собрать Linux для другого одноплатного компьютера, например, Orange Pi.

Кому интересно погрузиться в embedded-разработку, добро пожаловать под кат.

Читать далее

Искусственный интеллект… и Третья Мировая война

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

Не раз встречал мнение, что война - двигатель прогресса. Радар, реактивная авиация, компьютеры и медицина - продукты WW-II, а новые сплавы, спутниковая связь и интернет - тоже продукты войны, но уже холодной. Может ли война снова стать драйвером, только в области ИИ?

Читать далее