Habr.com

Syndicate content Хабр
Все публикации подряд на Хабре
Updated: 55 min 46 sec ago

Меня подняли на смех за ответ про VIEW. Я поднял MySQL 8.4 и PostgreSQL 17 и померил

13 hours 38 min ago

На одном собеседовании меня спросили про VIEW. Я ответил честно: в живых проектах они мне почти не попадались; для агрегатов надёжнее держать отдельную таблицу; а сами представления - вещь настолько нишевая, что за карьеру пригождались считанные разы. Разделение прав, долгие миграции, совместимость со старым ПО - вот и весь список. Ответ приняли прохладно. Один из собеседников сказал: “Ничего ты не понимаешь во VIEW” - и все посмеялись.

Прошло много времени. VIEW в моём коде так и не прибавилось, а вопрос остался, а вдруг с тех пор всё изменилось? Движки вышли новые. Поэтому я поднял MySQL 8.4 и PostgreSQL 17, залил одинаковые данные и прогнал основные сценарии один за другим.

Читать далее

Соревнование замерло 16 августа, а таблица поехала дальше. Разбираю, что из этого настоящее

13 hours 53 min ago

Я полез в данные соревнования Pokemon TCG AI Battle посмотреть, кто там выигрывает, и залип на другом. На публичной таблице 6806 команд. Самая поздняя отправка решения датирована 16 августа, 23:58:53. После этой секунды не отправил никто

1668 команд из 6806, почти четверть поля, сделали финальную отправку именно в этот день: 824 из них после шести вечера, 350 в последний час. Похоже, немалая часть узнала про срок в тот же день, когда он истекал

Читать далее

Кто расставил планеты по линейке?

13 hours 55 min ago

У астрономов свои холивары — и покруче, чем Linux версус Windows. Уже два с половиной столетия они спорят, существует ли закон, определяющий расстояния планет от Солнца. В 1766 году немецкий профессор естествознания Иоганн Тициус переводил с французского популярный в те годы двухтомник Шарля Бонне «Созерцание природы», и в главу о планетах и небесной гармонии вставил два абзаца от себя: без подписи, без пометки «примечание переводчика», словно они изначально принадлежали Бонне. В его врезке, если очистить её от витиеватых оборотов и неуместных в науке теологических реверансов, утверждается, что все известные тогда планеты, от Меркурия до Сатурна, располагаются на строго гармоничных промежутках друг от друга, и прирост к расстоянию каждой следующей планеты увеличивается ровно в два раза.

С тех пор научное сообщество разделилось на два непримиримых лагеря. Сторонники утверждают, что это закон природы. Планетные системы формируются именно так, говорят они, просто иногда что‑то идёт не по плану: вот между Марсом и Юпитером планета так и не сформировалась, а Нептун и вовсе не там, где должен быть. Противники отвечают: «Вы нумерологи, а не учёные. Для любых нескольких точек всегда можно подобрать какой‑нибудь полином. Можете объяснить физический смысл этого вашего ряда?» Как фундаментальный закон природы, формула Тициуса‑Боде не работает, это ясно. Но и геометрическая прогрессия большинства орбит никуда не делась вместе с отвергнутой формулой. Я хочу рассказать, почему расстояния всё‑таки растут не как попало. И насколько близко к краю устойчивости находимся мы прямо сейчас.

Читать далее

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

13 hours 56 min ago

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

Разобраться с руководителем

[Перевод] OpenAI Jalapeño: Персональный чип OpenAI, который обогнал NVIDIA Blackwell

14 hours 13 min ago

OpenAI создает свой чип Jalapeño: конец монополии Nvidia на инференс?

SemiAnalysis выпустили разбор собственной аппаратной разработки OpenAI под кодовым названием Jalapeño. Пока все обсуждали закупки тысяч GPU Nvidia Blackwell, команда Сэма Альтмана совместно с Broadcom втайне проектировала специализированный ASIC на техпроцессе TSMC N3P, заточенный исключительно под инференс моделей масштаба GPT-4.5 и GPT-5.

Читать далее

RAG в медицинской аналитике: как построить управляемый контур вместо очередного чат‑бота

14 hours 34 min ago

Медицинская организация одновременно работает с электронными медицинскими картами, результатами исследований, врачебными заключениями, клиническими рекомендациями, внутренними регламентами, отчётностью и аналитическими витринами. Проблема состоит не только в объёме информации. Эти данные имеют разную структуру, обновляются с разной скоростью и доступны разным группам пользователей.

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

Здесь появляется RAG, или Retrieval-Augmented Generation. Но в медицинской среде я бы рассматривал его не как чат-бота и тем более не как автономного медицинского советника. Более полезная модель - управляемый слой между данными, документами, аналитическими системами и пользователями.

Читать далее

ETL + ELT = EtLT

14 hours 49 min ago

Привет!

Заметка о правильности названий ETL процессов. Расставим точки над i.

Всегда было же нормально, коротко и звучно ETL. Теперь все чаще мелькает ELT, ETLT, EtLT.

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

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

Например, в потоке выполняется экстракция из базы данных, непосредственно при выборке происходят предварительные преобразования (отсечение миллисекунд у столбца времени), далее загрузка в цель - выполнился процесс ETL. Вторым этапом идут бизнес преобразования - процесс T, а вместе ETLT.

Таким образом и получается, что в большинстве случаев используется процесс ETLT, но исторически так сложилось называть все подобные процесcы просто и звучно ETL.
В аббревиатуре первая трансформация обозначается маленькой первой буквой t, и это не случайно. На данном шаге выполняются только предварительные преобразования данных: очистка, приведение типов. А вот уже вторая - это полноценная трансформация: бизнес преобразования, обогащения, расчеты и тд. Еще я встречал проставление индексов к буквам трансформаций ET1LT2.

Так же есть такое понятие как ETL++, но об этом в другой раз :-)

Читать далее

Управляемые корутины в TypeScript: как получить контроль над асинхронностью и памятью. Разбираемся во всех аспектах

14 hours 58 min ago

Современный JavaScript / TypeScript сегодня, предоставляет мощный инструмент для асинхронного программирования, который знаком каждому - async/await на основе Promise. Он позволяет писать последовательный код и легко обрабатывать ошибки. Однако за простотой скрываются серьёзные ограничения, которые становятся критичными в высоко-нагруженных системах, играх, сложных пользовательских интерфейсах и приложениях, требующих предсказуемой производительности.

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

В этой статье мы разберём, как кооперативные корутины (Coroutines) решают эти задачи на примере моей библиотеки ts-adaptive-coroutines, изучив каждый аспект по кирпичикам, посмотрев на инструмент, который добавляет в TypeScript адаптивные приоритеты, арены памяти, каналы, семафоры и много-поточность.

Читать далее

Написал OSINT инструмент для проверки сайтов и оценки фишингового риска PhishIntel

15 hours 20 min ago

Доброго времени суток, Хабр! Сейчас у меня творческие каникулы и я решил немного вернуться к теме, которой занимался большую часть своей жизни, поиску информации. Хотя последние пару лет я старался максимально отойти от прошлого, углубившись в разработку серверной части сложных приложений, машинное обучение, агентных систем на LLM, и всего такого «гражданского».

Но недавно наткнулся на новость о том, как мошенники использовали старую как мир схему «Мамонт» и вымышленный бренд «Топливо24», предлагая бензин, газ, и дизельное топливо на 20–30% дешевле рынка через фишинговые сайты. И самое печальное, что за неделю жулики заработали не менее 3.7 млн. рублей. А ведь у всех таких сайтов есть определенные метрики, технические характеристики, по которым можно выявить риски, и более того, собрать полезную информацию для дальнейшего расследования.

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

Получилось легковесное приложение на Python, не требующее в стандартной комплектации ничего, кроме стандартных библиотек. И чтобы получить первый отчет достаточно скачать репозиторий с GitHub, перейти в директорию, и запустить scan.py:

Читать далее

[Перевод] Внутри 20-ваттного усилителя на лампе бегущей волны из программы «Аполлон»

Tue, 08/25/2026 - 23:25

Как астронавты «Аполлона» поддерживали связь с Землёй, находясь на пути к Луне в 240 000 милях от неё? Для этого использовался усилитель весом 32 фунта, построенный на электронной лампе особого типа – лампе бегущей волны (ЛБВ). В этой статье я загляну внутрь такого усилителя и расскажу, как работает ЛБВ.

Заглянуть внутрь

Не сойти с айти

Tue, 08/25/2026 - 23:00

«Как думаете, вы проработаете в айти до пенсии? Если ещё не работаете, сможете ли найти работу в айти и проработать в этой сфере до пенсии?»

Опрос с таким текстом я опубликовал в своём телеграм-канале. Из 3713 проголосовавших (спасибо дружеским каналам за репосты и охваты) только 21% выбрали вариант ответа «Скорее да». 66% — не уверены. 13% — не в счёт, так как не из айти и переходить в эту сферу не планируют.

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

Читать далее

17 000 документов, 2000 сотрудников и 450 машин: как мы автоматизировали пропускной режим на Ямале

Tue, 08/25/2026 - 22:59

Есть бизнес-процессы, которые на схеме выглядят элементарно. Например, оформление пропуска.

Есть сотрудник. Есть автомобиль. Есть объект заказчика. Нужно проверить документы и оформить допуск.

Что здесь вообще автоматизировать?

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

Читать далее

[Перевод] Год баз данных: как я снова полюбил программировать

Tue, 08/25/2026 - 22:39

ВНИМАНИЕ! LLM не вовлечен, опечатки и прочие ошибки сохранены.

Предыстория

С самого начала как я попал в enterprise я знал — карьера идет не туда. Кнопки, круды, общаться людьми. Все не то, общаться с машиной интереснее. Но все не было времени к этому подойти. Непонимание как выглядит индустрия, недостаток опыта, неуверенность в себе, переезды.

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

Началось летом 2022.

Читать далее

Заканчиваем с англицизмами в русском языке. Принимаем всем инженерным сообществом термин «вибрировать»

Tue, 08/25/2026 - 22:25

Люблю родной русский язык. Но слово Вайбкодинг вообще не лезет на скрепные русские щи.

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

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

Навибрировать — создать код (накодить).

Повибрируем — предложение сделать код (покодить).

Навибрировал — создал код (накодил).

Довибрирую — скоро закончу код

Довибрировать — закончить начатый код.

Довибрировал — закончил код.

Перевибрировал — намудрил что-то с кодом.

Завибрировать — начать кодить.

Завибрировал — закодил проект.

Подвибрировать — слегка поправить или дополнить код.

Вибрёжка — процесс молотилки кода. (например: жесткая Вибрежка)

Больше мне сказать нечего. Если есть варианты лучше для удобного обиходного названия - добро пожаловать в обсуждение. Всем удачи!

Больше читать нечего

Природа и классификация фразовых глаголов английского языка

Tue, 08/25/2026 - 22:12

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

Конструкции типа look for, look after, depend on часто относят к фразовым глаголам, но в действительности это обычные глаголы с предлогом. Называть их фразовыми – это всё равно, что считать фразовыми глаголами русские сочетания «смотреть за» или «зависеть от».

Словари содержат фразовые глаголы (далее ФГ), состоящие из трёх компонентов. Например, close in onput up with. Но, строго говоря, третий компонент в них – просто обычный предлог, поскольку ФГ, так же, как и обычные, имеют управление (используются с определёнными предлогами).

ФГ состоит из двух компонентов: собственно глагола (далее «базовый глагол») и образованной от предлога «частицы» (часто её называют «послелог») –  inupoff и т.д. Частица либо передаёт буквальное пространственное перемещение (come inwalk outspill over), либо несёт один из исторически более поздних переносных смыслов.

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

The coin dropped out of my pocket не содержит ФГ: out of здесь – предлог, как и в Mary came out of the house. Но:

I lost the coin – it dropped out.
I am not a student anymore – I dropped out.

В этих двух предложениях drop out – полноценный ФГ с двумя самостоятельными значениями: «выпасть» [из кармана] и «вылететь» [из учебного заведения].

The stain won’t come off the surface не содержит ФГ: off the surface здесь – предложная фраза и off – предлог. Но:

The dress is ruined: the stain won’t come off содержит ФГ come off с самостоятельным значением, отражённым в словарях – «сходить» [о пятнах], а off здесь – частица-наречие.

Читать далее

PPTX → озвученный MP4: как устроен пайплайн, который не ждёт сам себя

Tue, 08/25/2026 - 22:05

Есть презентация и текст лекции — нужен MP4, где каждый слайд висит ровно столько, сколько звучит озвучка. Прототип собирается за час, а дальше начинается интересное: LibreOffice отдаёт один PNG на всю колоду вместо кадра на слайд, OCR превращает лекцию в чтение оглавления вслух, LLM возвращает N−1 чанк и ломает синхронизацию, а наивная схема «озвучить всё → закодировать всё» держит кодировщик в простое всю фазу TTS. Разбираю пайплайн по этапам: кеш слайдов по хешу содержимого, vision вместо распознавания текста, валидация контракта с моделью по счёту элементов, стриминг TTS→FFmpeg через as_completed и склейка через concat -c copy. С кодом, замерами и разделом про грабли — включая дедлок, который не падает, а просто висит.

Читать далее

Больше памяти — не значит быстрее: prefill, decode и релиз Apple M5 Ultra

Tue, 08/25/2026 - 21:54

Мы пришли за инференсом?

“RTX PRO 6000 обгонит новый Mac Studio почти во всём, кажется что пропускная способность памяти - единственное, где Apple конкурентоспособна”, но мне кажется для собственного использования - однозначно рассматривать!

Читать далее

Через гейт без слез: безопасность для живых людей

Tue, 08/25/2026 - 21:46

Привет! С вами Александр Трифанов, руководитель направления Application Security в Авито. Я почти десять лет занимаюсь пентестами и созданием решений для продуктовой безопасности. В этой статье расскажу про security gates: что это такое, зачем они нужны и как построить проверки, после которых разработчики не будут проклинать команду безопасности (либо я просто не в курсе).

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

Читать далее

Простая декларативная установка NixOs, часть 1 — Настройка конфигурации

Tue, 08/25/2026 - 21:31

Эта статья является прямым продолжением этой статьи, посвящённой декларативной разметке диска через disko.

Что мы будем делать сегодня?

Мы с вами составим минимально-рабочий конфиг для нашей системы. Под "минимально-рабочим" я имею в виду: без графического окружения(XFCE, GNOME и прочее), углублённых настроек(установка zsh, например). Мы настроим: загрузчик, сеть, пользователя, звук, локализацию, подключим наш файл disko-config.nix.

Читать далее

Что такое нарратив категории и зачем IT-стартапу занимать нишу раньше конкурентов

Tue, 08/25/2026 - 21:05

Есть у IT-стартапов один странный момент. Команда может два года строить сильный продукт, собирать сложную архитектуру, искать первых пользователей и переживать бессонные ночи. А потом выйти на рынок и сказать: «Мы делаем AI-native платформу для интеллектуальной оркестрации данных». И ждать, что все сразу поймут, о чём речь. Не поймут, так как не ищут такой продукт, не обсуждают его с коллегами и не закладывают под него отдельный бюджет. У продукта может быть ценность, но для рынка она пока выглядит как набор функций. Тут и появляется нарратив категории.

Читать далее

Who's online

There are currently 1 user and 6 guests online.