Обновить

Все потоки

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

Водоснабжение в Древнем Риме

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

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

Читать далее

Мы делали продукт, они — презентацию. Угадайте, кто выиграл полмиллиона

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

Мы сделали продакшен-решение под сложное ТЗ, собрали всё — от FastAPI и PostgreSQL до ELK и CI/CD. А победили ребята с презентацией в Figma и пустым сайтом.

Жюри сказало, что «всё по бизнес-требованиям».

Рассказываю, как проходил «самый масштабный хакатон страны» и почему он стал фарсом.

Читать далее

Как работают федеративные системы: рассказываем на примере YDB

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

YDB — отказоустойчивая геораспределённая СУБД класса Distributed SQL. Она появилась в недрах Яндекса более десяти лет назад и прошла длительный путь от узкоспециализированного хранилища, применявшегося в поисковом движке, до полновесной СУБД общего назначения. Открытие исходного кода YDB в 2022 году стало одной из наиболее ярких опенсорс-инициатив Яндекса.

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

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

Читать далее

Забудьте про print(): Современное и красивое логирование в Python с помощью Loguru

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

Все мы начинали с print() для отладки, но в серьезных проектах это превращается в хаос. Стандартный logging? Мощно, но громоздко. Пора это исправить.

Loguru — это библиотека, которая делает логирование простым, как print(), и мощным, как logging, но без боли и десятков строк конфигурации. В статье покажу, как одной строкой настроить цветные логи, автоматическую ротацию файлов и ловить исключения с полным контекстом переменных. Заходите, чтобы сделать свою отладку в разы приятнее.

Читать далее

Проблемы контурных карт: анализ графики Europa Universalis 5

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

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

Читать далее

Что было бы, если OS/2 от IBM выиграла у Windows 95

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

В конце 80-х IBM и Microsoft сообща трудились над операционкой будущего — OS/2, но их пути разошлись. В итоге триумф достался Windows 95, ставшей новым стандартом для ПК. Но давайте представим альтернативный сценарий, в котором корпоративный мир в 90-х сделал выбор в пользу OS/2. 

Читать

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

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

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

Читать далее

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

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

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

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

Читать далее

Реверс-инжиниринг шифрования прошивки радиостанции

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

Любительские радиостанции — интересный способ знакомства с работой радиоспектра; что ещё более важно, это встроенные устройства, на которых могут быть установлены странные чипы/прошивки! Мне стало любопытно, насколько просто взломать мою Yaesu FT-70D, поэтому я приступил к расследованию. Единственный ресурс по радиостанциям Yaesu — это пост на Reddit о кастомной прошивке для Yaesu FT1DR.

Пользователь Reddit написал, что если выполнить процесс обновления прошивки через USB, то радиостанция раскрывает микроконтроллер Renesas H8SX, флэш-память которого можно изменить при помощи Renesas SDK. Отличное многообещающее начало, но SDK было не так легко настроить, а я не был даже уверен, сможет ли он сдампить прошивку... поэтому долгое время не брался за него.

Читать далее

«Чтоб никто не дозвонился»: как работает аппаратура защиты таксофона

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

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

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

Вставьте карту или наберите спецслужбу

Как я бросил курить за день, но потратил на это год

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

Мой стаж как больного человека, зависимого от никотина, 11 лет. С июня сего года я больше не употребляю никотин никаким образом. Отказ произошёл одним днем без абстинентного синдрома и отката. Но есть важный нюанс — для этого мне понадобился год. Мне удалось освободиться не совсем стандартным способом, который оказался самым действенный из всего, что я пробовал.

Читать далее

Как я разрабатывал плагин для синхронизации погоды на Minecraft-сервере и в Санкт-Петербурге

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

Привет, Хабр! На связи Владимир Туров, разработчик в Selectel. В этом году разработчики Paper решили, что пора стать самостоятельным проектом. Теперь с каждой новой версией Minecraft, вероятно, интерфейсы Spigot и Paper начнут расходиться. Это значит, что пора изучить, как разрабатывать и отлаживать плагины для ядра Paper.

В статье расскажу, как разрабатывать собственные плагины для Minecraft, — на примере задачи синхронизации погоды в игре с погодой в Санкт-Петербурге.

Читать далее

Поделюсь с вами всем, что успел изучить о градиентном шуме

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

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

Чтобы глубже и результативнее понять градиентный шум, мы сначала изучим его одномерную версию (в литературе этот случай обычно не рассматривается), а затем медленно пойдём вверх по лестнице измерений в сторону усложнения задачи. Эту тему мы будем рассматривать с точки зрения графического процессора (GPU), а не с точки зрения обычного ЦП. Все примеры кода и анимации, приведённые в этой статье, реализованы на WebGL2/GLSL (надеюсь, это будет не слишком сильно сказываться на производительности). Примеры должны работать на большинстве современных устройств.

Читать далее

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

А кто у вас отвечает за kube-api? Безопасность Kubernetes при помощи CIS Benchmark

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

Kubernetes в IT-инфраструктуре — это не просто про удобство деплоя. Это критическая часть сервиса. Одна неправильная настройка kube-apiserver или etcd — и вместо кластера вы получите бублик с дыркой, через который утекут и данные, и бизнес-процессы.

В этой статье разберем, какие стандарты защищают контейнерные среды, почему CIS-бенчмарк часто становится первой точкой опоры, какие практики дополняют его и как Managed Kubernetes превращается в автоматизированный рабочий процесс. Детали внутри.

Читать далее

HTML и CSS антипаттерны

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

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

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

Только по какой-то причине сложно найти антипаттерны по языкам HTML и CSS. Может, потому что они не языки программирования?

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

Давайте посмотрим, что я вам подготовил.

Читать далее

«Он же айтишник, у них всем платят по триста»: проверяем легенды IT-рынка с Патриков

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

Айтишники стали новой легендой Патриков. Джуны на S-классе, сеньоры на Бали, миллионеры из 1С: всё звучит красиво, пока не заглянешь в цифры. И мы это сделали.

Читать далее

Вайб вместо звука: как я за вечер собрал вибровариометр на ESP32, а Gemini и ко сгенерировали всё, кроме пайки

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

Парапланеризм - это про спокойствие, свободу и медитативный полет. Но в этой идиллии есть один назойливый артефакт: звук вариометра.

Традиционные приборы - звуковые. Они меняют тональность в зависимости от скороподъемности. И когда часами часами летаешь под облаками это постоянное пикание слегка надоедает.

Однажды мой друг, с которым мы летали на соревнованиях, бросил фразу:
«Было бы круто, если бы вариометр просто вибрировал - как телефон в кармане. Чтобы я чувствовал поток рукой или запястьем, а не ухом».

Я тогда просто кивнул. А через годик, болтаясь по Алиэкспрессу я увидел на сайте часы Watchy на ESP32-PICO-D4 с Е-ink и в голове щелкнуло: А что, если превратить эти open-source часы в вибровариометр?

Читать далее

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

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

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

Читать далее

Мои любимые CSS-трюки, которые вы могли упустить

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

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

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

Ничего против них не имею. Просто хочу рассказать о нескольких приёмах, которые вы могли упустить. Они помогут вам в разных ситуациях.

Давайте посмотрим, что я вам подготовил.

Читать далее

Семь стадий зрелости программиста: от энтузиаста до архитектора-отшельника

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

Когда-то ты спорил на форумах о том, что лучше — tabs или spaces, а теперь просто настраиваешь .editorconfig и идешь пить кофе. Этот текст — не про карьеру, не про зарплаты и не про мотивацию. Это про то, как постепенно меняется восприятие кода, ответственности и хаоса, когда годы коммитов превращают энтузиазм в инженерное спокойствие. Здесь не будет морали — только наблюдения, немного иронии и чуть-чуть боли.

Читать далее