← 4 июля 2025          6 июля 2025 →          А сегодня?

5 июля 2025 на Хабре было опубликовано 50 статей

GPS в городских джунглях: почему навигатор «прыгает» между небоскрёбами

Стоит только подьехать к центру города, Красной площади или Дворцовой, как ваш навигатор виснет, а GPS-точка прыгает через дороги, заводит вас во дворы и упорно считает, что вы идёте по Неве, а не по тротуару. В городских джунглях GPS сталкивается с отражениями, перекрытиями сигналов и тёмными зонами, из-за которых точность падает до нескольких десятков метров, а иногда и сотен.

Разберёмся, какие механизмы приводят к «скачкам» позиционирования и как индустрия борется с тем, чтобы вы не терялись. Детали внутри ката.

Читать далее

От PHP к Zig: как я избавился от костылей в биллинг-системе

Недавно я занялся реинжинирингом биллинг-панели для VPN, заменив legacy-PHP на Zig.

Результат: скорость выросла в 20 раз, а нагрузка упала на 70%. Но самое интересное — как мне удалось встроить Zig-код прямо в C-бинарник, хотя в интернете почти нет guides на эту тему.

Хотите узнать, как я смог избежать костылей и сделать систему в 10 раз надежнее? Тогда читайте полную статью — там всё: от боли PHP до хитростей сборки Zig в продакшене.

Читать далее

Продаешь крипту через P2P? Налоговая может потребовать 6% со всего оборота

Сколько надо заплатить налогов в российский бюджет, если ты сначала купил, а потом продал USDT? Здравый смысл подсказывает что-то вроде «ну, примерно 13–15% НДФЛ от посчитанной прибыли в рублях, если она вообще есть». Но если у вас завалялся ИП в РФ, то налоговой может больше понравиться вариант «6% от всей суммы проданных стейблкоинов, без учета расходов». В этой статье мы разберем как раз такой кейс, который произошел с криптаном из Ростова.

Читать далее

Продолжение повести о трёх мушкетёрах: какие подвиги совершили Bash, Ansible и Astrawizard

В землях, где каждый байт имеет значение и где волшебство скриптов и команд оживляет машины, продолжаются славные деяния наших героев — Bash, Ansible и Astrawizard. После первых побед они не сложили свои «мечи», а продолжили путь, полный новых вызовов и открытий.

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

Будь как дома путник, Я ни в чём не откажу

Один день из жизни ассистента: срочно перевести денег, сориентировать грузчиков и поменять скрины

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

Читать как это, быть ассистентом

Кластерные A/B-тесты: как победить эффект соседа

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

Сегодня мы рассмотрим, как спасаться от «эффекта соседа», рандомизируя не пользователей, а их кластеры в A/B тестах.

У классического AB-теста есть аксиома SUTVA: мол, результат конкретного юзера зависит только от его собственной ветки «treatment / control». Реальность улыбается и кидает в лицо соцсетью, где лайк друга поднимает и твою вовлечённость, курьером, который обгоняет коллег и заражает их скоростью, и cпасибками «приведи друга — получи бонус». Итог — наблюдения больше не независимы.

Внутрикамерный жаргон это называет network interference. Чем плотнее граф связей, тем сильнее лечение «просачивается» за контрольные границы.

Читать далее

Пишем 3D-игру весом в 600Кб для ретро-устройств…

...которая работает на первых Android-смартфонах в мире, компьютерах из 90-х и даже Mac'ах! Часть 2.

Иногда у меня лежит душа просто взять и написать какую-нибудь небольшую игрушку с нуля, без использования готовых движков. В процессе разработки я ставлю перед собой интересные задачки: игра должна весить как можно меньше, работать на как можно большем числе платформ и использовать нетипичный для меня архитектурный паттерн. Недавно я начал писать ремейк классических «танчиков» и в рамках серии статей готов рассказать о всех деталях разработки трёхмерной игры с нуля в 2025 году. Если вам интересно узнать, как работают небольшие 3D-демки «под капотом» от написания фреймворка до разработки геймплея и тестов на экзотических устройствах — жду вас под катом!

Читать далее

Алгоритм релакса: как пазлы помогают сконцентрироваться на сложных задачах и не выгореть

Привет, Хабр! Меня зовут Даша, я живу в Москве и работаю в MWS ИТ-ресечером. Одно из моих хобби — собирание пазлов. Это на удивление эффективный способ борьбы со стрессом и выгоранием, особенно если вы работаете в ИТ, где всегда нужна высокая концентрация и умственное напряжение.

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

Читать далее

[Перевод] История создания процессора ARM: от амбициозного проекта до сердца цифровой революции


В 1983 году небольшая британская компания Acorn Computers переживала свой звездный час. Успех был обусловлен контрактом с вещательной корпорацией BBC на производство компьютера BBC Micro. Машина создавалась для национального телевизионного шоу, посвященного компьютерной грамотности, и ее популярность превзошла все ожидания. Прогнозируемые объемы продаж превысили 1,2 млн экземпляров, а сам BBC Micro на долгие годы стал доминирующей силой в образовательном секторе Великобритании.

Однако на фоне этого триумфа рынок персональных компьютеров стремительно менялся. Сегмент 8-битных машин, где блистал BBC Micro, оказался перенасыщен. Из Соединенных Штатов надвигались новые, куда более мощные конкуренты — IBM PC и готовящийся к выходу Apple Macintosh. Эти устройства задавали совершенно иной стандарт производительности и возможностей… Читать дальше →

Первые анекдоты о программистах: как выглядел юмор айтишников в 1996-1998 годах?


Задолго до появления и падения Башорга, в ноябре 1995 года, в юном ещё Рунете появился сайт Анекдот.ру. Он остался в истории как первый русскоязычный ресурс с почти ежедневными обновлениями — и сразу же был завален тысячами популярных в домемную эпоху анекдотов. В отличие от многих сайтов Веб 1.0, включая возникшего позже конкурента Kulichki, он продолжает функционировать по сей день — и представляет собой старейший архив юмора Рунета ещё до появления мемов в современном понимании. Большинство из размещённых там шуток представляют собой выложенные в сети анекдоты на оффлайновые темы, бытовавшие в обществе того времени — но на Анекдоте.ру можно наблюдать, как в это пространство проникали, закреплялись и становились популярными шутки программистов и о программистах на околокомпьютерные темы. Совершим небольшую экскурсию и вспомним времена зарождения IT-юмора на русском языке с характерными чертами эпохи: боль от Windows 95, хейт к Биллу Гейтсу, вопиющая компьютерная безграмотность «юзверей», неспособных найти «эни кей», популярность DOOM-2 и прочее, прочее, прочее. Читать дальше →

Оптимизация индексов базы данных: проблемы, решения, практические рекомендации

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

Индекс — это как указатель в толстенном справочнике. Без него, чтобы найти нужный термин, вы обречены листать страницу за страницей. С ним — вы мгновенно открываете нужный раздел. Но что, если указатель сам размером с полкниги? Или ведет не туда? Такой помощник только вредит. С индексами в БД всё то же самое. Грамотная стратегия индексирования — это полет. Ошибочная — это бег в мешках по болоту.

Читать далее

PHP и Laravel дайджест новостей за июнь 2025 года

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

Сергей Пантелеев и Данил Щуцкий собрали ключевые новости PHP и Laravel за июнь. Будьте в тренде — читайте обзор! ????

Читать далее

[Перевод] Как Вселенная отличается от своего зеркального отражения

После приключений в Стране чудес вымышленная Алиса в романе Льюиса Кэрролла «Алиса в зазеркалье» (1871) прошла через зеркало над камином, чтобы узнать, чем отражённый мир отличается от её собственного. Она обнаружила, что все книги были написаны задом наперёд, а люди «жили задом наперёд», перемещаясь по миру, где следствия предшествовали причинам.

Когда предметы отличаются от своего зеркального отражения, учёные называют их хиральными. Например, руки являются хиральными. Представьте, что Алиса пытается пожать руку своему отражению. Правая рука в зеркальном мире превращается в левую, и нет никакой возможности идеально совместить их для рукопожатия, потому что пальцы сгибаются не в ту сторону. (На самом деле само слово «хиральность» происходит от греческого слова, означающего «рука»).

Читать далее

[Перевод] О мягких и жёстких ссылках в Linux

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

Читать далее

Скриншот-тестирование фронтенда: руководство по применению в 2025 году

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

Часто приходилось видеть тесты опосредовано проверяющие визуальное отображение html-элемента, что-то в стиле expect(elem.classList.contains("visible")).toBe(true). Говорить о надежности таких тестов конечно-же не приходится, так как изменив содержимое css-селектора стилизующий данный класс, данный тест все еще будет зелёным, несмотря на то что по факту элемент будет скрыт.

Результат от подобных тестов вполне ожидаемый. Обновили версию UI-библиотеки и на всем проекте поехала верстка? Тесты зелёные. Случайно переопределили CSS-переменную и теперь вместо приятной тщательно подобранной дизайнером гаммы цветов вы видите лишь кислотно-вырвиглазную солянку? “Бывает, надо было ручками протестировать” - скажет менеджер.

Решить данную проблему нам поможет добавление скриншот-тестирования на проект.

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

Читать далее

Spinlock vs. Mutex vs. Semaphore: Разбираемся в синхронизации с Zephyr OS

Всем привет! Сегодня хочу углубиться в одну из самых важных тем в мире Zephyr OS — синхронизацию потоков и задач. Если вы хоть раз работали с k_thread_create, гоняли потоки туда-сюда и ловили bus fault, вы меня понимаете.

Когда задача одна — всё просто. Но как только вырастает многопоточность, задачи начинают драться за общий ресурс — и тут без надёжной синхронизации не обойтись. У Zephyr OS есть три главных инструмента для этого: spinlock, mutex и semaphore. Каждый со своим характером и подводными камнями.

Читать далее

[Перевод] Разработка языков программирования в эру больших языковых моделей: ренессанс посредственности?

В исследовании языков программирования меня всегда наиболее привлекала их разработка.

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

Читать далее

gRPC, HTTP, Websocket — и все это один сервер

Однажды передо мной встала довольно интересная задача: обеспечить взаимодействие стороннего веб-приложения - и набора сервисов, имеющих gRPC интерфейс.
Нужно было проводить обработку данных от веб-приложения через конвейеры AI-агентов, собирать конечный результат, и отдавать его приложению. А также, что немаловажно, обеспечить наглядность мониторинга и управления всем хозяйством.
Мне потребовалось разработать собственный сервер на PHP, в котором поддержать три типа интерфейсов. Во-первых, RestAPI для веб-приложения. Во-вторых, gRPC-сервис для взаимодействия с AI-агентами. В-третьих, HTTP + Websocket для интерактивного мониторинга и управления.
Для этого пришлось создать новый продукт - который, возможно, кажется полезен и вам.

Читать далее

Практическое использование Kafka в микросервисных приложениях на примере Open Source платформы Ensi

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

Решать выше перечисленные проблемы можно разными способами. В своей работе в компании Greensight в качестве senior backend developer при разработке заказных проектов на базе Open Source платформы Ensi, я с коллегами перепробовал множество решений.

Данная статья описывает практическое использование Kafka в микросервисных приложениях для решения этих проблем.

Читать далее

Покажи свой стартап/пет-проект (июль)

Делимся в комментах ссылками на свои проекты, получаем обратную связь, знакомимся и исследуем чужие продукты!

Читать далее

Законы простоты

В книге «Законы простоты » Джон Маэда (из MIT) предлагает десять законов для баланса простоты и сложности в бизнесе, технологиях и дизайне — руководящие принципы для того, чтобы нуждаться в меньшем и на самом деле получать больше.

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

Читать далее

Система позиционирования и фиксации дрона на посадочном столе

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

Читать далее

Deepin 25: китайский дистрибутив Linux с ИИ и обновленным DDE



26 июня 2025 года вышел релиз дистрибутива Deepin 25, который продолжает развивать собственную графическую среду Deepin Desktop Environment (DDE) и предлагает около 40 пользовательских приложений. В новом выпуске появились продвинутый ИИ-ассистент с голосовыми командами, атомарные обновления с резервными снапшотами, поддержка управления жестами и интеграция со смартфонами. Рассказываем, чем примечателен Deepin 25 и почему он заслуживает внимания.
Читать дальше →

Скрэмбл для тех, кто ненавидит SQL в Go коде

Обращения к базе — одно из самых популярных действий бэкенд приложений, и чаще всего оно происходит с помощью SQL запросов. И есть несколько способов хранить запросы в коде: строка или константа непосредственно в качестве аргумента функции, билдер запросов или отдельно лежащий файл с SQL запросом, который эмбедится в Go код в момент сборки. Этот последний способ чаще всего можно найти по запросу типа «Golang embed SQL» и он действительно довольно хорош.

Читать далее

Лучшие нейросети для создания игр

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

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

Читать далее

Как подружить точку доступа Eltex с VipNet?

Привет, Хабр! Решил поделиться своей проблемой и путем ее решения.

Самое популярное коммутационное оборудование — это, конечно, Cisco. Помимо коммутаторов и маршрутизаторов, у этого вендора есть и беспроводные устройства: точки доступа (AP Wi?Fi) и контроллеры (WLC). Наша компания решила закупить всё у одного производителя, что казалось логичным и удобным решением. Однако со временем беспроводное оборудование устарело и начало выходить из строя: отказывали порты, возникали проблемы с построением CAPWAP?туннелей и сертификатами подлинности — syslog был заполнен ошибками. В итоге было предложено заменить оборудование на новое, и выбор пал на Eltex.

Читать далее

История развития школы по обучению детей IT в небольшом северном городке России

Как предпринимательница из небольшого городка в Ямало-Ненецком автономном округе шесть лет назад открыла школу программирования для детей, а сегодня вывела её на международный уровень и вошла в ТОП-3 выдающихся людей Ямала.

Читать далее

Всё про Qdrant. Обзор векторной базы данных

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

Читать далее

SOLID, DRY, KISS, YAGNI и др. принципы разработки, пугающие новичка в IT

Разработка — это не только про код, но и про подходы. В этой статье я постарался собрать и объяснить ключевые принципы проектирования, которые часто упоминают в собеседованиях, в статьях на Medium и в комментариях на GitHub, такие, как SOLID, DRY, KISS, YAGNI, APO, BDUF, бритва Оккама.

???? Что внутри:

1. Понятные объяснения без перегрузки теорией

2. Примеры на Java (но подойдут и другим разработчикам)

3. Иллюстрации и метафоры, чтобы не уснуть

Будет полезно как новичкам, которые только слышали про SOLID и др. подходы в проектировании, так и разработчикам, которые хотят освежить знания или взглянуть на принципы под другим углом.

Читать далее

Датчик утечки воды и не только, просто и почти даром

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

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

Читать далее

Как я почти продал ник за $9500 в Telegram

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

Читать далее

Как сделать любую поверхность сенсорной

Моя цель была создать из стола планшет с детскими играми, а я сделал горку, стол и стену интерактивными. Я превратил все поверхности в сенсорные.

Читать далее

Усовершенствование интерфейса дисплея Guition на ESPHome (LVGL)

Продолжаем развивать интерфейс дисплея Guition на ESPHome с использованием LVGL. Изначально планировалось просто добавить пару виджетов, но в процессе работы появилась идея кардинально изменить структуру проекта: сделать виджеты подключаемыми, вынести сущности в переменные для шаблонизации и максимально упростить использование прошивки для конечного пользователя.

Читать далее

Отревьюируй себя сам! (памятка начинающим)

«Работает - не трогай» - самый опасный принцип, который передается между разработчиками быстрее, чем баги через копипасту.
Да, код может запускаться. Да, он даже может делать то, что нужно. Но вопрос в другом - можно ли с ним работать? Понять, поправить, развить, не впадая в экзистенциальный кризис.
Эта памятка не про чистоту ради чистоты. Она про то, чтобы через неделю ты сам себе не писал комменты со словами «кто это вообще придумал». "Отревьюируй" себя пока это не сделал кто-то другой.

Читать далее

Опыт создания онлайн-настолки: от идеи до реализации

Пару лет назад единственной настольной игрой, в которую я играл онлайн с друзьями, была «Монополия». Со временем она начала надоедать, и мне захотелось чего?то нового. Моим открытием стала Machi Koro — экономическая карточная игра, где победа зависит не столько от случайности, сколько от выбранной стратегии, что выгодно отличает её от «Монополии».

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

Читать далее

VL53L0 и STM32F103C8T6

Подключение датчика VL53L0X к микроконтроллеру STM32F103 и вывод расстояния в реальном времени. Рассмотрены особенности инициализации датчика, настройка I?C-интерфейса и обработка данных. Приведен пример кода на языке C для работы с периферией STM32.

Читать далее

Метафизика мнимой единицы

Прочитав [1], хотя это и не академический материал, очень впечатлился идеей того, что мнимая единица i кодирует направление. Дело в том, что если мы имеем в формуле два скаляра, которые запрещено складывать и это - в математике, которая запросто суммирует апельсины с помидорами, происходящее должно нести какой-то смысл. Но математика не кодирует смыслов, поэтому из идеи комплексных чисел мы можем знать лишь то, что смысл в принципе существует. Найти же категориальное различие для такой фундаментальной математической абстракции, как комплексные числа - отдельная большая удача и исследование такой возможности может оказаться перспективным.

Читать далее

Лучшие игры легендарной машины: 45 лет назад на свет появилась линейка компьютеров ZX

Sinclair ZX80 по праву считается одним из родоначальников персональной компьютерной революции. Начало R&D-проекта по созданию ZX80 положено в 1979 году, когда Клайв Синклер совместно с командой инженеров приступил к проектированию. Через год мир увидел ZX81. Инженеры Sinclair буквально выжали максимум из него, стремясь удержать минимальную стоимость устройства.  А в 1982 году произошел прорыв – свет увидел ZX Spectrum, ставший впоследствии культовой моделью 1980-х годов, сыгравшей ключевую роль в революции, благодаря которой компьютеры впервые появились в домах британцев.

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

LOAD ""

Радиосвязь. На заре авиации

Я отдал системам авиационной связи и связи специального назначения 11 лет жизни — прошёл путь от линейного инженера-исполнителя и испытателя БРЭО до конструктора авиационных средств связи специального назначения. Несколько лет назад я пообещал написать статью о том, как устроена авиационная связь. Со временем материал оброс деталями, схемами, техническими историями и вырос в полноценный цикл. Что ж, так тому и быть.

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

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

Мы заглянем и в небо: посмотрим на спутниковые системы связи L-диапазон, Ku и Ka, SwiftBroadband, Iridium Certus. Поговорим о специфике передачи данных с подвижными объектами, методах множественного доступа, задержках, и о том, как в этих условиях строится надёжный канал. Отдельно обсудим бортовые терминалы, их конструкцию и взаимодействие с авионикой.

Читать далее

От магии до понятной структуры: разбираемся, как работает Change Detection в Angular

В Angular любое изменение в компоненте, которое отображается на экране, является результатом работы механизма отслеживания изменений (Change Detection, CD). За этим процессом стоит Zone.js, который можно представить в роли дирижера, сообщающего компонентам о необходимости обновить DOM.

Zone.js не запускает CD сам. Он лишь создает контекст, в котором Angular потом может его запустить. Его задача только уведомлять Angular о завершении асинхронных операций, после чего Angular решает, нужно ли проверять изменения.

Чтобы понять важность такого подхода, нужно учитывать особенности JavaScript. В JavaScript асинхронные операции, такие как setTimeout или fetch, разрывают стек вызовов. Это значит, что callback-функция, выполняемая после завершения асинхронной операции, не имеет информации о контексте, в котором она была вызвана. Для фреймворка, который отслеживает изменения, это создает определенные трудности: как узнать, что асинхронная операция завершилась и, возможно, изменила данные?

Заглянуть под капот

Оживляем данные Strava: от парсинга GPX до интерактивной карты на Python и JS

Привет, Хабр! Меня зовут Александр, я разработчик и, как многие в IT, стараюсь уравновешивать сидячую работу спортом — в моем случае, это велосипед и бег. И, как многие спортсмены-любители, я пользуюсь Strava.

В этой статье я хочу провести вас «под капот» моего проекта и показать на реальных фрагментах кода, как с помощью Python, щепотки NumPy и капли JavaScript можно построить собственный мощный инструмент для анализа спортивных данных. Это история не только про код, но и про философию открытых данных и желание сделать профессиональные инструменты доступными для всех.

Читать далее

Time&Materials вместо работы в минус: наш путь, шаблоны, цифры — и как сделать также у себя

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

Читать далее

Как ИИ помогает мне в разработке?

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

Читать далее

BASS: CI, воспроизводимые сборки и пакетный менеджер

Представьте, что вам надо поднять какую-нибудь continuous integration систему. Распространённые решения (BuildBot, Jenkins, TravisCI, ...) — относительно монструозные сложные системы, заточенные под запуск недоверенного кода в изолированном окружении. Зайти на slave и поотлаживать скрипт запуска — не дадут. Кроме того, даже те же современные версии BuildBot интерфейса уже являются web-приложением, а не HTML страницами, что серьёзное неудобство.

А можно что-нибудь попроще и полегче? И чтобы было кроссплатформенным: GNU/Linux далеко не единственная платформа на которой, к сожалению, приходится проверять работоспособность различного софта.

Читать дальше →

Устанавливаем свой сервис мониторинга Uptime Kuma в Docker с Nginx и бесплатным SSL-сертификатом

Всем привет! Сегодня я хочу поделиться полным руководством по развертыванию на своем сервере замечательного open-source инструмента для мониторинга — Uptime Kuma.

Читать далее

Taming Hard Faults in Zephyr OS: Практическое руководство для embedded-разработчиков

???? Что такое Hard Fault простыми словами

Hard Fault — это критическая ошибка процессора.
Проще говоря, это ситуация, когда микроконтроллер встречает что-то настолько «невозможное» для себя, что не может продолжить выполнение программы.

Типичный пример — попытка обратиться к памяти, которой не существует, или выполнение запрещённой инструкции.

Когда это происходит, процессор сразу передаёт управление специальному обработчику — Hard Fault Handler.

Читать далее

Инфоповоды, которых нет: что писать, когда продукт еще сырой

PR-стратегии на стадии MVP, pre-seed и stealth mode

Представьте: вы потратили полгода на разработку MVP, у вас есть несколько тестовых пользователей, продукт работает, но... что рассказать миру? «Мы сделали еще одно приложение для заметок» звучит не очень убедительно. Пресс-релиз в духе «Революционная платформа изменит мир» вызовет лишь усмешки опытных хабровчан.

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

Материал будет полезен основателям стартапов, продуктовым менеджерам и маркетологам, которые ищут способы рассказать о своем проекте до официального запуска.

Читать далее

Расследование: Почему Let's Encrypt не видит TXT-запись? Детективная история с wildcard-сертификатами на DNS Selectel

Привет, Хабр! Я разработчик сервиса Leopult.ru— платформы для создания сайтов муниципальных учреждений. Уже 11 лет мы помогаем десяткам тысяч клиентов в России запускать и поддерживать их веб-ресурсы. Сегодня я расскажу о своем расследовании загадочной ошибки при выпуске wildcard-сертификатов через Let's Encrypt.
Если вы сталкивались с acme: error: 403 :: urn:ietf:params:acme:error:unauthorized :: No TXT record found, то эта история для вас. Погрузимся в мир DNS, API и, возможно, теней РКН, чтобы понять, почему сертификаты перестали выдаваться, и как я это починил.
Спойлер: виноваты не только DNS-серверы!

Читать далее

Верстаем своего ИИ CLI агента на… GOLANG???

Все уже слышали про Gemini CLI, который позволяет взаимодействовать с мощной gemini 2.5 прямо из командной строки. Это удобно, быстро и открывает массу возможностей. Но что, если мы захотим не просто использовать готовое решение, а понять, как оно работает изнутри? А если у нас вообще нету VPN? Или, что еще интереснее, создать свой собственный, пусть и экспериментальный, аналог? Чем мы хуже? Давайте сверстаем свой вариант на... GOLANG?

Читать далее

Как задеплоить Tabby — open-source альтернативу GitHub Copilot — в PrimeWay

Tabby — self-hosted-ИИ для автодополнения кода с открытым исходным кодом.
PrimeWay закрывает больные места «самостоятельного» хостинга

Читать далее

← 4 июля 2025          6 июля 2025 →          А сегодня?