Обновить

Разработка

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

Кросс-компиляция и запуск консольного Go‑приложения на Android, Windows, macOS и Linux

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

Делюсь опытом кросс-компиляции и запуска консольной программы на Go из-под Linux в другие ОС: Android, Windows. Для сетевых сервисов, утилит, криптопрограмм и других решений без GUI это может быть весьма полезно.

Читать далее

«Фамипия». Венгерские домофоны в подъездах Питера

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

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

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

Во время разговора кнопку держать нажатой

Marathon OS: экспериментальная мобильная ОС на Qt6 и Wayland с фокусом на производительность

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

Разработчик Патрик Куинн недавно запустил проект Marathon OS. Это мобильная ОС на базе postmarketOS с полностью переработанным интерфейсом под Qt6, QML и собственным Wayland-композитором. Основная идея заключается в полном отказе от виртуальных кнопок в пользу жестового управления, вдохновленного BlackBerry 10, где все действия выполняются свайпами от краев экрана.

Сейчас система тестируется на базе OnePlus 6 и 6T, показывая стабильные 60 кадров в секунду, загрузку за 20–25 секунд и задержку ввода в пределах 10–15 миллисекунд. На устройствах со Snapdragon 845 приложения запускаются за 200–250 миллисекунд, что для чистого Linux выглядит весьма убедительно без каких-либо Android-подложек.

Читать далее

Сколько воды в бочке?

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

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

Читать далее

Зоопарк строк в вашем C++ коде?

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

CryEngine2 использовал класс собственный CString для реализации работы со строками и немного использовал строки из стандартной строковой библиотеки Windows. Насколько я помню, последняя версия CryEngine всё ещё использует те же самые CString, она кардинально поменялась внутри, но как дань истории название класса менять не стали, зато сильно расширили функционал. Я не на 100% уверен, применялся ли CString только в редакторе или в рантайме игры тоже, вы можете сами это посмотреть в исходниках, которые все еще доступны на гитхабе. Это один подход к работе со строками, довольно распространенный в мире игростроя - когда мы все нужное пишем сами, не оглядываясь... хотя, тут больше уместно слово поглядывая, на существующие реализации и утаскивая в проект все самое лучшее.

Есть и другой подход... Я работал в команде над некоторым проектом, который должен был выйти на консолях, и в какой‑то момент на проект пришел эффективный тимлид, который хорошо умел в красивые презентации, и продавил использование std::string из sdk. Все очень опытные программисты, синьоры и руководство важно кивали на совещании и согласились всё перевести на std::string… не такие уж они оказались опытные, как выяснилось. В итоге мы заменили большую часть CString на std::string. Не сказал бы, что это сильно повлияло на время компиляции — плюс‑минус минута к проекту, который собирается двадцать минут, особой погоды не делают, но это также превратило наш довольно понятный базовый код в запутанный кошмар. Возможно, для переносимости это было лучше, но ни наш проект, ни CryEngine2 Editor так и не были портированы ни на Linux, ни на какую‑либо другую платформу.

Прошло десять лет, я вижу ровно туже ситуацию на текущем проекте — новый тимлид решил перевести местный MySuperPupeString на std::string, уже предчувствуя «нижней чуйкой» последствия — запасаюсь попкорном и беру отпуск на следующий месяц после принятия решения. Но не это интересно, а то — какие вообще строки могут быть в вашем с++ коде.

Строка, на строке и строкой погоняет

Docker для начинающих: что это такое и как пользоваться

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

Статей про Docker много не бывает.

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

Освоить рабочую базу Docker →

Домашний поверхностный монтаж: путь к своей мини-фабрике

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

Картинка — Youtube-каналы: Tobi, StuckAtPrototype

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

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

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

Читать далее

Аппаратные брейкпойнты: для чего они нужны и как устроены в Linux

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

Всем привет! Наша группа занимается RISC-V Linux и загрузчиками в компании «Синтакор». Однажды перед нами возникла задача — реализовать поддержку аппаратных триггеров в ядре Linux и OpenSBI. Она стала началом исследования, в ходе которого я изучил смысл аппаратных триггеров с точки зрения отладчика, их устройство и использование для вотчпойнтов и брейкпойнтов, а также принял участие в совершенствовании поддержки аппаратных триггеров в RISC-V Linux и OpenSBI. 

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

GDB хрясь!

«Паяем правильно и точно» — тест-драйв набора DIY для детей

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

Привет, хабровчане! На связи руководитель проектов редакции компьютерной литературы издательства «БХВ» @Holmogorov Признаюсь честно: паять я люблю, но не сказать, что умею это делать профессионально. Так, в состоянии починить ёлочную гирлянду или водрузить на место отвалившийся конденсатор в блоке питания. Поэтому когда у нас в «БХВ» придумали детский набор «Паяем правильно и точно. Уроки мастера + 4 набора для пайки», я сразу решил взять его на тест-драйв. Благо, все необходимое для «ходовых испытаний» у меня в наличии имеется: ребенок мужского пола, никогда до этого не державший паяльник в руках, и я, который хотя бы приблизительно помнит, как этот самый паяльник выглядит. Тем более, набор изобретали совершенно другие люди в совершенно другом подразделении нашей компании, поэтому я могу без особых угрызений совести изучать его более-менее непредвзято и писать про него гадости обзоры.

Погнали!

Нейро-дайджест: ключевые события мира AI за 3-ю неделю ноября 2025

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

Привет! Это новый выпуск «Нейро-дайджеста» — коротких и полезных обзоров ключевых событий в мире искусственного интеллекта и технологий.

Неделя выдалась насыщенной: OpenAI тихо обновили пятёрку до GPT-5.1, Google вытащили Gemini 3 Pro на первые места топовых бенчмарков, Anthropic заключили сделку с Microsoft и Nvidia на десятки миллиардов долларов. Измены с чат-ботами уже приводят к разводам, а в пакистанской газете засветилась подсказка от нейронки.

Всё самое важное — в одном месте. Поехали!

Читать дайджест →

Twake Drive. Опенсорсный клон GDrive на своём сервере

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

Французская компания Linagora продвигает облачный сервис Twake Workplace как опенсорсную и безопасную альтернативу Google Workspace и прочим корпоративным платным облакам. В комплект с чатом и почтой входит Twake Drive — защищённое файлохранилище.

В Twake Workplace код открыт, используются защищённые протоколы JMAP и Matrix, шифрование по умолчанию. В публичном облаке бесплатно дают 5 ГБ на файлы. Но самое главное, что Twake Drive можно установить на собственном сервере, с неограниченным дисковым пространством.

Читать далее

Код-гольф в Яндексе: как нерды развлекаются

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

Что такое код-гольф? Это соревнование, в котором надо решить задачу по программированию (как правило, несложную), используя наименьшее количество символов. Соревнование довольно известное. Можно поиграть, например, на одноимённом сайте, есть целая секция на CodinGame, иногда такие соревнования публикует kaggle, была такая секция на HackerRank (сейчас её я не нашёл).

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

Временами мы развлекаемся таким форматом. В какой-то момент на внутренних ивентах подняли свою платформу для соревнований, а потом она протекла и на внешние конференции.

Эта статья — смесь разбора задач и истории появления соревнования по код-гольфу на конференциях Яндекса.

Про нас и кодгольф

Excel-лайфхаки, о которых не знают «эксперты»

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

Я наблюдал, как мой опытный коллега-финансист целый час колупался в Excel. Он гуру экселя, работает с ним 20 лет. Но увидев, как он печатает формулы, я не выдержал и показал пару простых трюков, от которых он пришёл в восторг.

Это была проблема незнания — незнания о функциях, которые лежат в Excel годами, экономят часы работы, но о которых просто никто не рассказывает.

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

Читать далее

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

Аморальный патч для Intel DRM

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

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

А значит снова пришло время карать и патчить!

Читать далее

Щёлк-щёлк — и поехали: как релейная автоматика стала прообразом IIoT. Часть 2

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

Напомню, что мы исследуем историю релейной автоматики и, неразрывно связанной с ней, релейной логики. И пытаемся понять, как в первой половине ХХ века огромные заводы работали, выполняли сложнейшие операции и почти не сбоили. Хотя все современные инженеры IIoT на тот момент еще даже не родились, а устройства ПЛК только шли в разработку. 

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

Читать далее

Космотекст: отправляем статьи в космос — и объявляем победителей 🚀

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

Привет от Хабра! Несем вам буквально космическую новость — мы подвели итоги конкурса космических статей и выбрали те, что отправятся в настоящий КОСМОС 🛸. А еще отобрали автора лучшей статьи за время существования Хабра, который забирает экскурсию на Байконур! 

Рассказываем, какие авторы стали космическими победителями и о чем они написали.  

Читать далее

Астероид для IT-индустрии: как пережить AI-апокалипсис

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

Всем привет! Меня зовут Николай Губин, являюсь Backend-разработчиком в Авито уже четыре года. Я тот, кто за пятнадцать лет пережил несколько революций в индустрии, каждая из которых выглядела как конец безбедной и счастливой жизни каждого разработчика. В этой статье поделюсь своим субъективным мнением на самый холиварный вопрос: с развитием ИИ что ждет IT- специалистов? Закат или новое начало?

Читать далее

Хватит писать CSS с нуля: как Chakra UI экономит время и нервы разработчика

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

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

В данной статье мы рассмотрим одну из таких библиотек — Chakra UI V3 в связке с React, так как она не особо большая и проста в изучении. В разных библиотеках синтаксис может немного отличаться, но в основном они все решают одни и те же проблемы. Давайте разберёмся, как она способна помочь нам в разработке.

Читать далее

Как оптимизация перформанса Debezium JDBC Sink Connector помогла улучшить Open-source версию решения

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

Debezium — популярный фреймворк для Change Data Capture (CDC), позволяющий отслеживать изменения в источниках данных (таких как базы данных) и передавать их в потоковые платформы вроде Apache Kafka. Одним из компонентов Debezium является JDBC Sink Connector, предназначенный для записи данных из Kafka в реляционные базы данных посредством интерфейса Java Database Connectivity (JDBC). 

Debezium JDBC Sink Connector может решать множество задач: от репликации данных между БД и синхронизации обновлений между микросервисами до создания резервных копий данных для целей тестирования или разработки. Мы в VK Tech используем Debezium JDBC sink connector, чтобы строить перформанс-интеграции. Но в нагрузочных тестах столкнулись с проблемой производительности, которая не решалась никакими обходными путями. Поэтому нам пришлось детально погрузиться в нюансы обработки событий в Debezium JDBC connector.

Привет, Хабр. Меня зовут Артём Дубинин. Я старший разработчик Backend в команде Tarantool CDC — решения для репликации данных в реальном времени между системами управления базами данных (СУБД). В этой статье я изложу свою интерпретацию создания Debezium, расскажу о том, как работает Debezium JDBC connector, а также о нашем варианте оптимизации перформанса, который попал в Open-source версию.

Читать далее

Как инженер-программист сделал синтезатор для дочери с помощью Arduino и 3D-принтера

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

На свой первый день рождения моя дочь получила развивающую доску Монтессори, полную переключателей и светодиодов. 

Наблюдая за тем, как она крутит ручки и переключает тумблеры, я вспомнил о панели управления синтезатором и задумался, а можно ли создать музыкальную версию доски Монтессори? Что-то простое, тактильное и креативное, не требующее нажатия кнопок для поддержания звука. 

Год спустя я решился воплотить эту идею в жизнь. И так как у меня не было опыта в создании такого рода устройств, то проект стал для меня поводом изучить микроконтроллеры, САПР, проектирование печатных плат и 3D-печать.

В результате получилась музыкальная игрушка, в которой есть встроенный синтезаторный модуль, динамик, элементы управления темпом, громкостью, тональностью и инструментами (ползунки и «крутилки»), OLED-экран с танцующей пандой. И всё это в корпусе, напечатанном на 3D-принтере.

Прототип вы видите на фото, а демонстрация финальной версии в конце статьи.

Читать далее