Привет, Хабр! Я разработчик сервиса Leopult.ru— платформы для создания сайтов муниципальных учреждений. Уже 11 лет мы помогаем десяткам тысяч клиентов в России запускать и поддерживать их веб-ресурсы. Сегодня я расскажу о своем расследовании загадочной ошибки при выпуске wildcard-сертификатов через Let's Encrypt.
Если вы сталкивались с acme: error: 403 :: urn:ietf:params:acme:error:unauthorized :: No TXT record found, то эта история для вас. Погрузимся в мир DNS, API и, возможно, теней РКН, чтобы понять, почему сертификаты перестали выдаваться, и как я это починил.
Спойлер: виноваты не только DNS-серверы!
Все уже слышали про Gemini CLI, который позволяет взаимодействовать с мощной gemini 2.5 прямо из командной строки. Это удобно, быстро и открывает массу возможностей. Но что, если мы захотим не просто использовать готовое решение, а понять, как оно работает изнутри? А если у нас вообще нету VPN? Или, что еще интереснее, создать свой собственный, пусть и экспериментальный, аналог? Чем мы хуже? Давайте сверстаем свой вариант на... GOLANG?
Читать далееPR-стратегии на стадии MVP, pre-seed и stealth mode
Представьте: вы потратили полгода на разработку MVP, у вас есть несколько тестовых пользователей, продукт работает, но... что рассказать миру? «Мы сделали еще одно приложение для заметок» звучит не очень убедительно. Пресс-релиз в духе «Революционная платформа изменит мир» вызовет лишь усмешки опытных хабровчан.
В этой статье разберем, как рассказывать о продукте, когда говорить, казалось бы, не о чем. Покажу на реальных примерах, какие темы «выстреливают» на раннем этапе, и поделюсь шаблонами, которые помогли десяткам стартапов получить первое медиа-внимание.
Материал будет полезен основателям стартапов, продуктовым менеджерам и маркетологам, которые ищут способы рассказать о своем проекте до официального запуска.
Читать далееПривет! Любишь фотографировать? Тогда менеджер фотографий digiKam — это именно то, что тебе надо. В новой версии digiKam 8.7.0 появилось несколько полезных функций, которые пригодятся как профессионалам, так и обычным пользователям. Никогда не поздно навести порядок в своей коллекции! :)
Одно из главных новшеств digiKam 8.7.0 — новый AI-плагин для поворота изображений. Также с прошлой версии (digiKam 8.6.0) была значительно доработана функция распознавания лиц. В последнее время функция распознавания лиц стала золотым стандартом во всех более менее серьезных программах и сервисах для работы с изображениями, и разработчики digiKam здесь тоже не отстают.
( читать дальше... )
Спустя 3 года после предыдущей версии вышел игровой движок OpenMW версии 0.49.0. Это самый объёмный выпуск OpenMW за последние 5 лет.
OpenMW – это OpenSource-реализация движка для игры The Elder Scrolls III: Morrowind. OpenMW нативно доступен на Windows, MacOS (Intel и Apple Silicon), Linux и chromeOS (доступна только x64-версия от Linux). На данный момент Morrowind полностью играбелен на OpenMW, судя по сайту Open Source Game Clones.
( читать дальше... )
Всем привет! Сегодня я хочу поделиться полным руководством по развертыванию на своем сервере замечательного open-source инструмента для мониторинга — Uptime Kuma.
Читать далееНедавно я занялся реинжинирингом биллинг-панели для VPN, заменив legacy-PHP на Zig.
Результат: скорость выросла в 20 раз, а нагрузка упала на 70%. Но самое интересное — как мне удалось встроить Zig-код прямо в C-бинарник, хотя в интернете почти нет guides на эту тему.
Хотите узнать, как я смог избежать костылей и сделать систему в 10 раз надежнее? Тогда читайте полную статью — там всё: от боли PHP до хитростей сборки Zig в продакшене.
Читать далееПривет, это снова oldzoomer, и сейчас я расскажу, как ИИ помогает мне освободить себя от рутинных задач, и заниматься исключительно любимым делом.
Читать далееКак устроена наша система на практике: от первого звонка и сметы до актов, допников и еженедельных отчётов. Подойдёт студиям, разработчикам и продактам
Читать далееПривет, Хабр! Меня зовут Александр, я разработчик и, как многие в IT, стараюсь уравновешивать сидячую работу спортом — в моем случае, это велосипед и бег. И, как многие спортсмены-любители, я пользуюсь Strava.
В этой статье я хочу провести вас «под капот» моего проекта и показать на реальных фрагментах кода, как с помощью Python, щепотки NumPy и капли JavaScript можно построить собственный мощный инструмент для анализа спортивных данных. Это история не только про код, но и про философию открытых данных и желание сделать профессиональные инструменты доступными для всех.
Читать далееВ Angular любое изменение в компоненте, которое отображается на экране, является результатом работы механизма отслеживания изменений (Change Detection, CD). За этим процессом стоит Zone.js, который можно представить в роли дирижера, сообщающего компонентам о необходимости обновить DOM.
Zone.js не запускает CD сам. Он лишь создает контекст, в котором Angular потом может его запустить. Его задача только уведомлять Angular о завершении асинхронных операций, после чего Angular решает, нужно ли проверять изменения.
Чтобы понять важность такого подхода, нужно учитывать особенности JavaScript. В JavaScript асинхронные операции, такие как setTimeout или fetch, разрывают стек вызовов. Это значит, что callback-функция, выполняемая после завершения асинхронной операции, не имеет информации о контексте, в котором она была вызвана. Для фреймворка, который отслеживает изменения, это создает определенные трудности: как узнать, что асинхронная операция завершилась и, возможно, изменила данные?
Заглянуть под капотЯ отдал системам авиационной связи и связи специального назначения 11 лет жизни — прошёл путь от линейного инженера-исполнителя и испытателя БРЭО до конструктора авиационных средств связи специального назначения. Несколько лет назад я пообещал написать статью о том, как устроена авиационная связь. Со временем материал оброс деталями, схемами, техническими историями и вырос в полноценный цикл. Что ж, так тому и быть.
В этом цикле мы вместе разберём физические принципы работы авиационных систем связи: от элементарных основ радиопередачи до архитектуры современных спутниковых комплексов. Мы проследим эволюцию технических решений: от аналоговых передатчиков с амплитудной модуляцией до программно-определяемых SDR-систем, в которых частота, модуляция и логика работы задаются кодом. Поговорим о том, как устроены приёмники, как работают тракт передачи, какие модуляции применяются, и почему в авиации до сих пор живы старые диапазоны.
Эволюция протоколов передачи данных отдельная тема. От первых телеграфных радиограмм и азбуки Морзе до цифровых протоколов ACARS и CPDLC, по которым борта сегодня обмениваются сообщениями с центрами управления. Мы разберём, как формируются цифровые пакеты, какие методы коррекции ошибок применяются, как обеспечивается криптографическая защита и надёжность, и как всё это интегрируется с другими бортовыми системами.
Мы заглянем и в небо: посмотрим на спутниковые системы связи L-диапазон, Ku и Ka, SwiftBroadband, Iridium Certus. Поговорим о специфике передачи данных с подвижными объектами, методах множественного доступа, задержках, и о том, как в этих условиях строится надёжный канал. Отдельно обсудим бортовые терминалы, их конструкцию и взаимодействие с авионикой.
Читать далее...которая работает на первых Android-смартфонах в мире, компьютерах из 90-х и даже Mac'ах! Часть 2.
Иногда у меня лежит душа просто взять и написать какую-нибудь небольшую игрушку с нуля, без использования готовых движков. В процессе разработки я ставлю перед собой интересные задачки: игра должна весить как можно меньше, работать на как можно большем числе платформ и использовать нетипичный для меня архитектурный паттерн. Недавно я начал писать ремейк классических «танчиков» и в рамках серии статей готов рассказать о всех деталях разработки трёхмерной игры с нуля в 2025 году. Если вам интересно узнать, как работают небольшие 3D-демки «под капотом» от написания фреймворка до разработки геймплея и тестов на экзотических устройствах — жду вас под катом!
Читать далееПривет, Хабр!
Сергей Пантелеев и Данил Щуцкий собрали ключевые новости PHP и Laravel за июнь. Будьте в тренде — читайте обзор!
Проще всего понять, как это, быть — ассистентом предпринимателя, можно по формату «Один мой день». Аня — мой ассистент в контент-бюро, но, подозреваю, что в любой нише движ примерно такой же.
Читать как это, быть ассистентомСтоит только подьехать к центру города, Красной площади или Дворцовой, как ваш навигатор виснет, а GPS-точка прыгает через дороги, заводит вас во дворы и упорно считает, что вы идёте по Неве, а не по тротуару. В городских джунглях GPS сталкивается с отражениями, перекрытиями сигналов и тёмными зонами, из-за которых точность падает до нескольких десятков метров, а иногда и сотен.
Разберёмся, какие механизмы приводят к «скачкам» позиционирования и как индустрия борется с тем, чтобы вы не терялись. Детали внутри ката.
Читать далееSinclair ZX80 по праву считается одним из родоначальников персональной компьютерной революции. Начало R&D-проекта по созданию ZX80 положено в 1979 году, когда Клайв Синклер совместно с командой инженеров приступил к проектированию. Через год мир увидел ZX81. Инженеры Sinclair буквально выжали максимум из него, стремясь удержать минимальную стоимость устройства. А в 1982 году произошел прорыв – свет увидел ZX Spectrum, ставший впоследствии культовой моделью 1980-х годов, сыгравшей ключевую роль в революции, благодаря которой компьютеры впервые появились в домах британцев.
Игры для ZX Spectrum загружались с помощью кассетного проигрывателя и выводились на экран телевизора. В отличие от своего монохромного предшественника, они были цветными. Давайте вспомним несколько наиболее – на мой взгляд – знаковых и популярных тайтлов игровой индустрии этой легендарной серии.
LOAD ""Прочитав [1], хотя это и не академический материал, очень впечатлился идеей того, что мнимая единица кодирует направление. Дело в том, что если мы имеем в формуле два скаляра, которые запрещено складывать и это - в математике, которая запросто суммирует апельсины с помидорами, происходящее должно нести какой-то смысл. Но математика не кодирует смыслов, поэтому из идеи комплексных чисел мы можем знать лишь то, что смысл в принципе существует. Найти же категориальное различие для такой фундаментальной математической абстракции, как комплексные числа - отдельная большая удача и исследование такой возможности может оказаться перспективным.
Читать далее