На одном собеседовании меня спросили про VIEW. Я ответил честно: в живых проектах они мне почти не попадались; для агрегатов надёжнее держать отдельную таблицу; а сами представления - вещь настолько нишевая, что за карьеру пригождались считанные разы. Разделение прав, долгие миграции, совместимость со старым ПО - вот и весь список. Ответ приняли прохладно. Один из собеседников сказал: “Ничего ты не понимаешь во VIEW” - и все посмеялись.
Прошло много времени. VIEW в моём коде так и не прибавилось, а вопрос остался, а вдруг с тех пор всё изменилось? Движки вышли новые. Поэтому я поднял MySQL 8.4 и PostgreSQL 17, залил одинаковые данные и прогнал основные сценарии один за другим.
Читать далее Я полез в данные соревнования Pokemon TCG AI Battle посмотреть, кто там выигрывает, и залип на другом. На публичной таблице 6806 команд. Самая поздняя отправка решения датирована 16 августа, 23:58:53. После этой секунды не отправил никто
1668 команд из 6806, почти четверть поля, сделали финальную отправку именно в этот день: 824 из них после шести вечера, 350 в последний час. Похоже, немалая часть узнала про срок в тот же день, когда он истекал
У астрономов свои холивары — и покруче, чем Linux версус Windows. Уже два с половиной столетия они спорят, существует ли закон, определяющий расстояния планет от Солнца. В 1766 году немецкий профессор естествознания Иоганн Тициус переводил с французского популярный в те годы двухтомник Шарля Бонне «Созерцание природы», и в главу о планетах и небесной гармонии вставил два абзаца от себя: без подписи, без пометки «примечание переводчика», словно они изначально принадлежали Бонне. В его врезке, если очистить её от витиеватых оборотов и неуместных в науке теологических реверансов, утверждается, что все известные тогда планеты, от Меркурия до Сатурна, располагаются на строго гармоничных промежутках друг от друга, и прирост к расстоянию каждой следующей планеты увеличивается ровно в два раза.
С тех пор научное сообщество разделилось на два непримиримых лагеря. Сторонники утверждают, что это закон природы. Планетные системы формируются именно так, говорят они, просто иногда что‑то идёт не по плану: вот между Марсом и Юпитером планета так и не сформировалась, а Нептун и вовсе не там, где должен быть. Противники отвечают: «Вы нумерологи, а не учёные. Для любых нескольких точек всегда можно подобрать какой‑нибудь полином. Можете объяснить физический смысл этого вашего ряда?» Как фундаментальный закон природы, формула Тициуса‑Боде не работает, это ясно. Но и геометрическая прогрессия большинства орбит никуда не делась вместе с отвергнутой формулой. Я хочу рассказать, почему расстояния всё‑таки растут не как попало. И насколько близко к краю устойчивости находимся мы прямо сейчас.
Читать далееХороший руководитель встречается не всегда, а быстро сменить работу удаётся не каждому. За карьеру я работал с десятками начальников и смежников и убедился: понимание их рабочих «характеристик» почти всегда выгоднее открытой конфронтации. Разбираю, где адаптация помогает сохранить силы, а где уже пора признать, что цена среды слишком высока.
Разобраться с руководителемOpenAI создает свой чип Jalapeño: конец монополии Nvidia на инференс?
SemiAnalysis выпустили разбор собственной аппаратной разработки OpenAI под кодовым названием Jalapeño. Пока все обсуждали закупки тысяч GPU Nvidia Blackwell, команда Сэма Альтмана совместно с Broadcom втайне проектировала специализированный ASIC на техпроцессе TSMC N3P, заточенный исключительно под инференс моделей масштаба GPT-4.5 и GPT-5.
Читать далееМедицинская организация одновременно работает с электронными медицинскими картами, результатами исследований, врачебными заключениями, клиническими рекомендациями, внутренними регламентами, отчётностью и аналитическими витринами. Проблема состоит не только в объёме информации. Эти данные имеют разную структуру, обновляются с разной скоростью и доступны разным группам пользователей.
BI-система хорошо показывает показатель и его изменение, но обычно не отвечает на вопросы, какие документы связаны с отклонением, что происходило с конкретным процессом и на какие источники опирается объяснение. Большая языковая модель умеет формулировать связный ответ, но без контролируемого контекста может использовать устаревшие сведения, смешивать факты и правдоподобные предположения.
Здесь появляется RAG, или Retrieval-Augmented Generation. Но в медицинской среде я бы рассматривал его не как чат-бота и тем более не как автономного медицинского советника. Более полезная модель - управляемый слой между данными, документами, аналитическими системами и пользователями.
Читать далееПривет!
Заметка о правильности названий ETL процессов. Расставим точки над i.
Всегда было же нормально, коротко и звучно ETL. Теперь все чаще мелькает ELT, ETLT, EtLT.
Традиционный паттерн ETL, применяет бизнес-логику во время преобразования, до загрузки в хранилище. Выбрал данные, преобразовал, положил в хранилище. ELT меняет эту последовательность, сначала загружая сырые данные в хранилище, а преобразование выполняет уже внутри. ELT подход сокращает нагрузку на систему источник, позволяет итеративно совершенствовать логику преобразования. Имеем два противоположных метода.
Но мы то с вами знаем, что на проектах, в жизни оба метода применяются одновременно. Более того, они могут одновременно применяться в одном потоке. Выбрал данные, преобразовал, положил в хранилище на первый уровень, преобразовал и положил на второй уровень.
Например, в потоке выполняется экстракция из базы данных, непосредственно при выборке происходят предварительные преобразования (отсечение миллисекунд у столбца времени), далее загрузка в цель - выполнился процесс ETL. Вторым этапом идут бизнес преобразования - процесс T, а вместе ETLT.
Таким образом и получается, что в большинстве случаев используется процесс ETLT, но исторически так сложилось называть все подобные процесcы просто и звучно ETL.
В аббревиатуре первая трансформация обозначается маленькой первой буквой t, и это не случайно. На данном шаге выполняются только предварительные преобразования данных: очистка, приведение типов. А вот уже вторая - это полноценная трансформация: бизнес преобразования, обогащения, расчеты и тд. Еще я встречал проставление индексов к буквам трансформаций ET1LT2.
Так же есть такое понятие как ETL++, но об этом в другой раз :-)
Читать далееСовременный JavaScript / TypeScript сегодня, предоставляет мощный инструмент для асинхронного программирования, который знаком каждому - async/await на основе Promise. Он позволяет писать последовательный код и легко обрабатывать ошибки. Однако за простотой скрываются серьёзные ограничения, которые становятся критичными в высоко-нагруженных системах, играх, сложных пользовательских интерфейсах и приложениях, требующих предсказуемой производительности.
Представьте себе сервер, обрабатывающий тысячи запросов одновременно. Все они конкурируют за процессорное время. Как гарантировать, что запрос от клиента выполнится раньше, чем фоновая синхронизация? Как отменить долгую операцию, если клиент разорвал соединение? Как избежать пауз сборщика мусора при создании миллионов временных объектов? Нативный async/await не даёт ответов на эти вопросы - он лишь оборачивает асинхронные операции в удобный синтаксис.
В этой статье мы разберём, как кооперативные корутины (Coroutines) решают эти задачи на примере моей библиотеки ts-adaptive-coroutines, изучив каждый аспект по кирпичикам, посмотрев на инструмент, который добавляет в TypeScript адаптивные приоритеты, арены памяти, каналы, семафоры и много-поточность.
Читать далееДоброго времени суток, Хабр! Сейчас у меня творческие каникулы и я решил немного вернуться к теме, которой занимался большую часть своей жизни, поиску информации. Хотя последние пару лет я старался максимально отойти от прошлого, углубившись в разработку серверной части сложных приложений, машинное обучение, агентных систем на LLM, и всего такого «гражданского».
Но недавно наткнулся на новость о том, как мошенники использовали старую как мир схему «Мамонт» и вымышленный бренд «Топливо24», предлагая бензин, газ, и дизельное топливо на 20–30% дешевле рынка через фишинговые сайты. И самое печальное, что за неделю жулики заработали не менее 3.7 млн. рублей. А ведь у всех таких сайтов есть определенные метрики, технические характеристики, по которым можно выявить риски, и более того, собрать полезную информацию для дальнейшего расследования.
На этом моменте я вспомнил про свои наработки для тестирования веб-приложений и решил доработать до инструмента анализа доменов, и оценки фишингового риска.
Получилось легковесное приложение на Python, не требующее в стандартной комплектации ничего, кроме стандартных библиотек. И чтобы получить первый отчет достаточно скачать репозиторий с GitHub, перейти в директорию, и запустить scan.py:
Читать далееКак астронавты «Аполлона» поддерживали связь с Землёй, находясь на пути к Луне в 240 000 милях от неё? Для этого использовался усилитель весом 32 фунта, построенный на электронной лампе особого типа – лампе бегущей волны (ЛБВ). В этой статье я загляну внутрь такого усилителя и расскажу, как работает ЛБВ.
Заглянуть внутрь«Как думаете, вы проработаете в айти до пенсии? Если ещё не работаете, сможете ли найти работу в айти и проработать в этой сфере до пенсии?»
Опрос с таким текстом я опубликовал в своём телеграм-канале. Из 3713 проголосовавших (спасибо дружеским каналам за репосты и охваты) только 21% выбрали вариант ответа «Скорее да». 66% — не уверены. 13% — не в счёт, так как не из айти и переходить в эту сферу не планируют.
Как вышло, что многие айтишники сейчас сомневаются в том, что продолжат работать в айти? Как выделиться на общем фоне, когда вакансий сильно меньше, чем соискателей, рынок зрелый, а исполнители взаимозаменяемы (а также заменяемы ИИ)? Как сохранить себя, если ИИ всё-таки отжал у вас работу в айти?
Читать далееЕсть бизнес-процессы, которые на схеме выглядят элементарно. Например, оформление пропуска.
Есть сотрудник. Есть автомобиль. Есть объект заказчика. Нужно проверить документы и оформить допуск.
Что здесь вообще автоматизировать?
Примерно так задача выглядела до тех пор, пока мы не начали разбираться, как этот процесс реально устроен в транспортно-строительной компании на Ямале.
Читать далееВНИМАНИЕ! LLM не вовлечен, опечатки и прочие ошибки сохранены.
Предыстория
С самого начала как я попал в enterprise я знал — карьера идет не туда. Кнопки, круды, общаться людьми. Все не то, общаться с машиной интереснее. Но все не было времени к этому подойти. Непонимание как выглядит индустрия, недостаток опыта, неуверенность в себе, переезды.
Когда жизнь улеглась у меня появилось свободное время и скука. Так я начал программировать в свободное время. Очень много, иногда больше чем в рабочее время.
Началось летом 2022.
Читать далееЛюблю родной русский язык. Но слово Вайбкодинг вообще не лезет на скрепные русские щи.
Идея пришла, потому что я вижу реальное смещение в некоторых подходах к разработке проектов. Это все еще можно назвать "запилить что-то" уже нельзя назвать "закодить", так как по факту ты не кодишь. Хотелось придумать веселый и легко произносимый в разных вариациях термин. В результате я пришел к этому варианту.
Короче. Отныне и навсегда предлагаю всем профессиональным сообществом называть это Вибрированием. Вот список возможных вариаций в обиходе.
Навибрировать — создать код (накодить).
Повибрируем — предложение сделать код (покодить).
Навибрировал — создал код (накодил).
Довибрирую — скоро закончу код
Довибрировать — закончить начатый код.
Довибрировал — закончил код.
Перевибрировал — намудрил что-то с кодом.
Завибрировать — начать кодить.
Завибрировал — закодил проект.
Подвибрировать — слегка поправить или дополнить код.
Вибрёжка — процесс молотилки кода. (например: жесткая Вибрежка)
Больше мне сказать нечего. Если есть варианты лучше для удобного обиходного названия - добро пожаловать в обсуждение. Всем удачи!
Больше читать нечегоЭто пересказ моей скопусовской статьи. Оригинал на английском, там более строгие формулировки и немного подробнее. Для прикладных целей вполне достаточно этого обзора.
Конструкции типа look for, look after, depend on часто относят к фразовым глаголам, но в действительности это обычные глаголы с предлогом. Называть их фразовыми – это всё равно, что считать фразовыми глаголами русские сочетания «смотреть за» или «зависеть от».
Словари содержат фразовые глаголы (далее ФГ), состоящие из трёх компонентов. Например, close in on, put up with. Но, строго говоря, третий компонент в них – просто обычный предлог, поскольку ФГ, так же, как и обычные, имеют управление (используются с определёнными предлогами).
ФГ состоит из двух компонентов: собственно глагола (далее «базовый глагол») и образованной от предлога «частицы» (часто её называют «послелог») – in, up, off и т.д. Частица либо передаёт буквальное пространственное перемещение (come in, walk out, spill 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 здесь – частица-наречие.
Читать далееЕсть презентация и текст лекции — нужен MP4, где каждый слайд висит ровно столько, сколько звучит озвучка. Прототип собирается за час, а дальше начинается интересное: LibreOffice отдаёт один PNG на всю колоду вместо кадра на слайд, OCR превращает лекцию в чтение оглавления вслух, LLM возвращает N−1 чанк и ломает синхронизацию, а наивная схема «озвучить всё → закодировать всё» держит кодировщик в простое всю фазу TTS. Разбираю пайплайн по этапам: кеш слайдов по хешу содержимого, vision вместо распознавания текста, валидация контракта с моделью по счёту элементов, стриминг TTS→FFmpeg через as_completed и склейка через concat -c copy. С кодом, замерами и разделом про грабли — включая дедлок, который не падает, а просто висит.
Читать далееМы пришли за инференсом?
“RTX PRO 6000 обгонит новый Mac Studio почти во всём, кажется что пропускная способность памяти - единственное, где Apple конкурентоспособна”, но мне кажется для собственного использования - однозначно рассматривать!
Читать далееПривет! С вами Александр Трифанов, руководитель направления Application Security в Авито. Я почти десять лет занимаюсь пентестами и созданием решений для продуктовой безопасности. В этой статье расскажу про security gates: что это такое, зачем они нужны и как построить проверки, после которых разработчики не будут проклинать команду безопасности (либо я просто не в курсе).
Наш опыт будет полезен тем, кто строит безопасную разработку в большой компании и пытается не превратить все это в боль для разработчиков. Я буду говорить не только про техническую часть, но и про пользовательский опыт: в области гейтов он часто оказывается важнее, чем кажется на первый взгляд.
Читать далееЭта статья является прямым продолжением этой статьи, посвящённой декларативной разметке диска через disko.
Что мы будем делать сегодня?
Мы с вами составим минимально-рабочий конфиг для нашей системы. Под "минимально-рабочим" я имею в виду: без графического окружения(XFCE, GNOME и прочее), углублённых настроек(установка zsh, например). Мы настроим: загрузчик, сеть, пользователя, звук, локализацию, подключим наш файл disko-config.nix.
Читать далееЕсть у IT-стартапов один странный момент. Команда может два года строить сильный продукт, собирать сложную архитектуру, искать первых пользователей и переживать бессонные ночи. А потом выйти на рынок и сказать: «Мы делаем AI-native платформу для интеллектуальной оркестрации данных». И ждать, что все сразу поймут, о чём речь. Не поймут, так как не ищут такой продукт, не обсуждают его с коллегами и не закладывают под него отдельный бюджет. У продукта может быть ценность, но для рынка она пока выглядит как набор функций. Тут и появляется нарратив категории.
Читать далее