Обновить

Все потоки

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

Адский эксперимент: личный сайт на нищих микросервисах

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

Микросервисы тут, микросервисы там… Из каждого утюга доносится дивный сказ про прекрасный мир микросервисов. А ведь это всего лишь один вид из десятка архитектурных стилей, который имеет свои достоинства и недостатки.

В этом эксперименте мы внедрим микросервисы в личный сайт, нарушив ключевые принципы DDD. Я создам антипаттерн «бедных сервисов» (Anemic Domain Model) и покажу, чем опасен прямой доступ к данным между микросервисами.

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

Читать далее

Снимаю на советские фотообъективы и радуюсь

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

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

Читать далее

Как я сделал senior-стол за $1000

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

Я решил сделать стол из дубового слэба толщиной 10 см и весом 340 кг. С точки зрения сложности: это senior стол. Вот мои выводы, ошибки, инженерные решения и расходы.

Читать далее

Что происходит, когда вы добавляете строку в PostgreSQL

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

Привет, Хабр! Меня зовут Александр Гришин, я руководитель по развитию продуктов хранения данных в Selectel. Сегодня я предлагаю продолжить разбираться с PostgreSQL и заглянуть еще глубже в эту кроличью нору. Посмотрим, что происходит под капотом СУБД во время записи строк, поверхностно разберем, как устроены страницы памяти, что такое tuple, tuple chain, fillfactor, VM и FSM. Эти знания помогут разработчикам не только понимать, как работает база данных, но и эффективно управлять ее производительностью в продакшене.

Если вы начинающий DBA, разработчик, инженер или архитектор облачной инфраструктуры, эта статья для вас. Погнали?

Погнали!

Мультитул для инженера: волшебная коробочка с I2C/SPI/UART/JTAG за 1.000 рублей

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

Будучи творческим человеком и техногиком, я обожаю при первой возможности апгрейдить своё оборудование. Время от времени я мониторю маркетплейсы в поисках чего-то новенького и в этот раз я наткнулся на настоящий мультитул для Embedded-разработчика — контроллер I2C/SPI/UART/JTAG в одной коробочке и всё это всего за 1.000 рублей... Конечно я не смог пройти мимо этой штучки и в рамках сегодняшней статьи хочу рассказать что оно из себя представляет и как с ним работать. Жду вас под катом!

Читать далее

Разбираемся с композитным видеосигналом NTSC, и стоит ли изучать его в 2025 году. Часть 1

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

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

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

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

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

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

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

Читать далее

В кэше — фотка, в ней payload: новый метод скрытой доставки зловредов

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

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

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

По сути, атака умело сочетает две техники: принуждение к локальному исполнению (ClickFix/FileFix) и контрабанду кэша (Cache Smuggling). В статье я подробно разберу каждый из этих приемов и покажу, как можно сделать доставку полезной нагрузки еще более незаметной.

Читать далее

Сказ о том, как сделать самый большой флот автономных грузовиков в России с нуля…

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

Сегодня достаточно скачать с GitHub-a открытый стек автопилота, прикрутить пару камер или лидаров с AliExpress к небольшой электрической платформе, прокатить ее по парковке — и проект уже называют «автономным». Но заставить машину без водителя в реальных условиях выполнять задачи бизнеса, например, перевозить тонны груза в -30 °C и +50 °C, и, при этом, зарабатывать деньги — это совсем другая лига, где сходят с дистанции даже стартапы с сотнями миллионов долларов инвестиций. 

Я — Дмитрий Куликов, последние 2,5 года руковожу разработкой ПО в Evocargo. Мы с нуля разрабатываем, проектируем, производим и внедряем автономные электрогрузовики максимально высокого на сегодня серийно-эксплуатируемого уровня автономности. Уже 5 лет они работают на десятках коммерческих объектов по всей России. Как пробиться в лигу успешных проектов в автономном вождении, как мы приняли решение строить собственную платформу и почему Маск всё ещё не прав — расскажу в этой статье.

К сказу...

Главная проблема «чистых архитектур»

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

Откройте любой пулл‑реквест в проекте с любой «чистой архитектурой» и вы скорее всего увидите не обсуждение бизнес‑логики, а срач. «Это нельзя класть в UseCase, это логика домена!», «Зачем тут еще один DTO, мы же просто поле прокидываем!», «Этот интерфейс не нужен, у нас никогда не будет другой реализации!». Полагаю, очень много людей с таким сталкиваются.

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

Читать далее

Дни недели в честь планет: почему в Англии, Индии, Японии и других странах с древности используют одну и ту же схему?

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

В XVI веке японцы, не отрываясь от бесконечных войн феодальных домов, познакомились с пришельцами из-за морей с далёкого запада. Европейцы обладали многими полезными знаниями и технологиями наподобие мушкетов и заводных механизмов — и японские интеллектуалы стали увлечённо изучать языки, науку и культуру иноземцев. Одной из удививших их вещей стало то, что в английском, голландском и испанском языках дни недели назывались в той же самой смысловой последовательности, что и в японском, и в китайском. Воскресенье везде было днём Солнца (или Бога), понедельник — днём Луны. Далее чуть сложнее, с участием древних богов и даосских стихий, но в целом в той же астрономической логике небесных тел или связанных с ними божеств. Как получилось, что одна и та же схема именования дней недели уже не первое тысячелетие присутствует в языках очень разных и отдалённых друг от друга стран? Попробуем разобраться.

Читать далее

Простой LC-пробник с e-ink дисплеем

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

Приветствую, Хабр!

Как вы уже поняли, я не равнодушен к дисплеям. В одной из своих прошлых статей я делал книжку на e-ink с диагональю 2,13 дюйма. Потом была статья про будильник на ЖКИ. Дальше — дисплей от Nokia 3310. А много лет назад — думаю, не менее десяти — я купил e-ink 1,53 дюйма, но так и не нашел, к чему его применить, так как это довольна старая модель и не поддерживает полноценного обновления всего изображения сразу.

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

Читать далее

Как я уменьшил Docker-образ Go-приложения с 1.92 GB до 9 MB

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

Первый Docker-образ для моего Go-приложения весил 1.92 GB. Для микросервиса на 100 строк — абсурдно. Решил разобраться, куда именно уходит место и как добиться максимально лёгкого образа.

Читать далее

Почему библиотеки на С такие кривые

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

Библиотеки на С слишком сложны. И в этой статье я хочу подробно описать что конкретно под этим имеется в виду и почему оно происходит

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

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

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

Но по какой-то причине в реальности всё совсем не так и тут нужно смотреть на примеры

Типичным примером можно считать репозиторий OpenSSL. Взгляните на (ЧАСТЬ) того что видит перед собой человек, который хочет использовать OpenSSL:

Читать далее

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

Сербия застряла в прошлом? О жизни в стране, похожей на Россию 2010-х

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

Сколько в Нови-Саде стоят аренда квартиры и продукты? Чем медлительность, ставшая национальной чертой сербов, нравится приезжим, а когда уже напрягает? Как узнать наших в толпе и при чём тут Россия 2010-х? 

Слово Валентине, дизайнеру продукта Collabis, которая живёт в Нови-Саде больше двух с половиной лет. 

Читать далее

Страх и ненависть вайб-кодинга: как я сделал для ребенка игру и попал в топ приложений на android-TV

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

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

Привет, Хабр! Меня зовут Леонид Калядин, я Cluster Data lead в МТС Web Services. Я отлично разбираюсь во всем, что связано с data, но вот в мобильной разработке — полный ноль. Во всяком случае был до недавнего времени. В этом материале я расскажу, как решил спасти дочь от надоедливой рекламы и навайбкодил Adventure Mazes — игру, которая вошла в топ Android TV в Google Play. Итак, кому интересны подробности — велкам под кат. 

Читать далее

Взламываем Аэродромный Метеоиндикатор

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

Я питаю двоякие чувства к метеостанциям. Терпеть не могу многочисленные Arduino-проекты с мелким экраном, зато люблю что-то эдакое. Например в коридоре уже пять лет как висит метеоиндикатор на базе блинкерного табло для автобуса, что случайно попалось на просторах авито. Так вышло и на этот раз, и в моем распоряжении оказался аэродромный индикатор погоды Комплексной Радиотехнической Аэродромной Метеорологической Станции.

Читать далее

Как менялись фотокамеры в телефонах и почему мегапиксели — не главное

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

Камера. Сложно представить жизнь без неё. От фразы «Что купить?», до фразы «А что это такое?», она опишет ситуацию лучше слов. Камера, наверное, входит в топ 5 критериев по важности при выборе телефона. 

Вот вы листаете маркетплейс или гуляете по магазину электроники и видите «200 Мп» на коробке. Звучит впечатляюще, но реальная картинка часто далека от рекламного слогана. Давайте пройдём путь от первых камерофонов до современных устройств и посмотрим, так ли влияет количество МП на итоговую картинку. Детали под катом.

Читать далее

Почему тормозят AMD Epyc

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

Нам надо было закупить High-CPU, но так, чтобы это было одинаковое корпоративное железо для всех наших дата-центров по миру.

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

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

Мы давно придерживаемся принципа использовать только настоящее серверное железо, то есть корпоративный класс. У нас в основной линейке стоят проверенные серверные Intel, которые в пике выдавали 3,7 ГГц. И мы-то знали, что наши 3,7 ГГц по реальной производительности легко обгоняют многие разогнанные решения конкурентов.

Но как это донести до человека, который просто сравнивает цифры на лендинге?

Поэтому мы стали искать серверный процессор с высокой тактовой частотой, чтобы соответствовать нашей внутренней политике и при этом не проигрывать в слепом сравнении.

Решили затестить AMD Epyc. Нашли модель с отличными ТТХ: много ядер, высокая частота. Купили партию железа.

Думали, что сейчас включим, и он просто разорвёт наш текущий Intel.

Это наш первый опыт с AMD. Нас немного смущал тренд на Реддите «Почему тормозят AMD Epyc», но казалось, что всё должно пойти хорошо.

Конечно же, хорошо не пошло, иначе я этого не писал бы.

Читать далее

Открывашка из трубки домофона

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

Всем привет! Я Андрей, в Яндексе работаю над IoT‑железками в Городских сервисах. Но сегодня речь пойдёт не о них. Эта история началась с неожиданной находки в новой квартире — с обычной, на первый взгляд, трубки домофона. Кажется: ну трубка и трубка. Но вот что бросилось в глаза: она была подключена по Ethernet. А если есть Ethernet, значит, внутри что‑то с TCP/IP, то есть уже маленький компьютер.

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

Я давно увлекаюсь железками и автоматизацией дома — эдакий «полу‑умный» дом, который вроде бы и работает сам, но иногда всё же требует вмешательства человека. Поэтому, обнаружив Ethernet‑домофон, я и решил разобраться в нём. 

Основная цель эксперимента — научить трубку открывать дверь по решению автоматизации в Home Assistant. Побочная — внести вклад в сообщество и, возможно, помочь самому вендору, если в процессе вскроются любопытные особенности или проблемы. 

Открыть дверь

В поисках компактного ЛБП

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

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

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

Читать далее