Обновить

Разработка

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

Особенности ALL как модификатора CALCULATE и как «создателя» новой таблицы в FILTER

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

DAX содержит гибкие возможности фильтрации, и важными функциями являются ALL и REMOVEFILTERS. При использовании ALL и REMOVEFILTERS в качестве модификатора CALCULATE они ведут себя одинаково, т.к. в этом случае REMOVEFILTERS является псевдонимом ALL, однако ALL в FILTER возвращает «новую таблицу» и очищает влияние всех фильтров, что важно учитывать с точки зрения производительности и результатов.

Интересующимся особенностями ALL и сравнением ALL и REMOVEFILTERS  — добро пожаловать под кат :)

Читать далее

Погружение в typing: Как сделать Python почти типизированным

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

Динамическая типизация — это весело, пока ваш проект не вырастает до 100к строк и вы не начинаете ловить AttributeError: 'NoneType' object has no attribute 'get' в три часа ночи. В 2026 году аннотации типов в Python — это уже не «бюрократия», а вопрос выживания и адекватного рефакторинга.

Читать далее

От PDP-11 до Windows: как кросс-компилировать ретро-код на macOS без машины времени

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

Гайд по кросс-компиляции для ретро-платформ на macOS с Apple Silicon.
Описаны настройка и использование:

Open Watcom v2 — для DOS (16/32-бит), OS/2, Windows 3.x/9x/NT, с примерами сборки .com, .exe и функцией для переключения таргетов в shell.

Amsterdam Compiler Kit (ACK) — компиляция ANSI C под PDP-11, с запуском крестиков-ноликов на Unix Version 7 в эмуляторе open-simh (включая создание лент, mkfs, restor, mknod).

msvc-wine — полноценный MSVC-тулчейн для Windows (x86/x64/arm64) через LLVM Clang и LLD, без MinGW-зависимостей.

Дополнительно: тестирование через Wine, DOSBox-X, OrbStack; фиксы для Apple Silicon.

Подробные шаги по сборке, установке и примерам.
Интересно? Велком внутрь.

Читать далее

Диагноз «SLOP» — новый аргумент «Ad Hominem»

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

Чем мощнее становятся языковые модели, и чем шире они распространяются, — тем больше на нашу бедную головушку проливается дождей из лягушек. Еще десять лет назад можно было с уверенностью отличить графомана от литературно-одаренного человека, а хорошего разработчика — от вкатуна с претензией на экспертизу. Достаточно было посмотреть на пару абзацев текста (кода) — и становилось понятно: этот рифмует «кровь–любовь», а вон тот — сортирует коллекции брутфорсом.

Хороший прозаик никогда не поставит в одно предложение три прилагательных подряд, а хороший программист — не станет использовать связные списки вместо массивов под большой нагрузкой на доступ по индексу. Согласно банальной логике, эти кванторы существования обратимы: написал единожды алгоритм O(n³) там, где можно обойтись O(n·log(n)) — иди учи матчасть, а потом возвращайся к нам в теплый коллектив джунов.

Лекала в те времена были золотыми, а сито — мелкоячеистым, мышь не проскочит. Мы просили в качестве тестового задания решить простейшую задачку, строчек на сто кода. По этой сотне строчек было видно, насколько зрело владеет кандидат языком (программирования). Декомпозиция, идиоматика, да вон хоть именование переменных — все, как на ладони. Если человек на руби вместо редьюса — объявляет аккумулятор вне скоупа, а потом его мутирует внутри цикла — нам не по пути (в других компаниях могут быть другие любимые песни, но общий посыл — понятен).

→ генераторы кода, текста, стихов, картин

EMG TR4401: Оживляем Венгерский Осциллограф

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

Смотреть видеоверсию статьи в Youtube или в VK

А ведь в какой-то момент у меня набралось больше десятка ламповых осциллографов! Целая коллекция различных экспонатов той эпохи. Но, в отличие от Артёма Денисовича я вовремя одумался и избавился почти от всех из них, но вот один — венгерский осциллограф TR-4401 слегка задержался. Появился он у меня пять лет назад, во время ремонта осциллографа С1-54. Привлек меня красивой внешностью и исполинскими размерами, ну как тут не удержаться? 

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

Что же внутри ламповой техники?

Полная история разработки «Ведьмака 3»: от препродакшена до пострелизной поддержки

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

Весной 2025 года «Ведьмаку 3» стукнуло 10 лет. За это время игра приобрела культовый статус, обзавелась множеством дополнений и патчей, а также в улучшенном виде вышла на современных платформах. В честь знаменательной даты мы решили вспомнить былое и собрали всю информацию о процессе разработки, вероятно, главной польской игры — The Witcher 3: Wild Hunt.

Материал получился крайне объемным: осилить за раз явно не получится, добавляйте в закладки. Приятного прочтения!

Читать далее

Какие навыки прокачать IT-специалисту на новогодних каникулах: подборка курсов от Selectel

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

Привет, Хабр! Новый год — хороший повод научиться чему-то новому. Длинные каникулы позволяют выйти из рутины, выспаться и наконец разобраться с тем, на что в обычные дни не хватает времени. В подборке собрали семь полезных курсов, которые помогут освоить нужные навыки. И главное — все бесплатно. 

Читать далее

FlexMock — мок без морок

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

Это было интересное приключение.

Сразу оговорюсь: FlexMock не нужен всем подряд. Он вырос из моих собственных задач — когда нужно откуда-то получать разнообразные данные для собеседований, когда фронтенд уже в работе, а бэкенд ещё не готов, или когда нужно быстро собрать демо/прототип и не тратить вечер на мок-сервер.

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

Буду благодарен за конструктивную критику — особенно за идеи, которые помогут сделать инструмент полезнее.

Читать подробнее

Скрытые сигналы: как модели учатся тому, чего нет в данных

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

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

Авторы называют этот эффект сублиминальным обучением. Мы можем удалить метки, отфильтровать инструкции и проверить датасет вручную, и всё равно передать модели поведение, которое не планировали передавать.

Читать далее

Двухканальная паяльная станция на базе STM32

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

Привет, Хабр. С праздниками всех читателей! Меня зовут Павел, и одним из моих хобби является создание различных устройств на базе микроконтроллеров. Это моя первая статья здесь, и я буду рад конструктивной критике со стороны завсегдатаев Хабра.

Читать далее

Можно ли собрать кубик Рубика случайно? 10 фактов о вероятности, стремящейся к нулю

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

У людей, лишь шапочно знакомых с кубиком Рубика, иногда возникает вопрос, можно ли собрать кубик, просто вращая грани случайным образом? Несколько раз я слышал истории о том, что кто-то долго крутил кубик и случайно собрал его. Во-первых, «долго крутил» не значит «случайно собрал»: Эрнё Рубик крутил свой первый прототип несколько недель, прежде, чем понял, как перемещаются его элементы, и вернул волшебный куб в исходное состояния. Во-вторых, собрать одну грань или один слой – не значит, собрать весь кубик (а некоторые воспринимают «почти получилось» как «получилось»). И, наконец, математика практически не оставляет шанса собрать кубик случайно. Поэтому будем развенчивать этот миф.

Раскладываем по фактам...

Если в LinkedIn у CEO открыт номер телефона — считайте, компания уже взломана

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

Они работали в коллекторской сфере. Привыкли к угрозам, обману и агрессии. Но когда к ним пришли с благодарностью — дали дорогу. Эта статья — про то, как взломать «непробиваемую» компанию через её самого главного человека. И почему технические защиты тут почти не при чём.

Читать далее

Что мы теряем, когда ИИ пишет за нас

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

На некоторые вопросы ответить проще, чем на другие.

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

Именно так Microsoft Word получил свое название: буквально версия текстового процессора от Microsoft. А до Word были терминальные редакторы вроде WordStar - которым, как известно, до сих пор пользуется Джордж Р. Р. Мартин.

В то время у нас были проверки орфографии. Гораздо более примитивные, чем современные инструменты в браузерах и приложениях.

Из руководства пользователя WordStar 4.0 - версии 1987 года, в которой до сих пор пишет автор «Игры престолов»:

Читать далее

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

Kubernetes 1.29 → 1.33 за 30 минут: реальный апгрейд кластера с помощью ИИ под контролем инженера

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

Мы проверили, способен ли ИИ участвовать в реальной инфраструктурной операции повышенного риска — обновлении Kubernetes-кластера сразу через несколько minor-версий.

Речь не про «сгенерировать YAML» или «написать Helm-чарт», а про полноценную операцию:

Читать далее

Внедрение Spec-Driven Development в существующие проекты

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

Spec Kit - это один из самых амбициозных фреймворков для наведения порядка в разработке с использованием ИИ. В нашем предыдущем посте о spec driven development мы обсуждали его потенциал для закрытия давних пробелов в рабочих процессах с ИИ-ассистентами за счет обеспечения соблюдения стандартов проекта, контекста на уровне функций, принудительной декомпозиции для управляемого объема работ и контрольных этапов (review gates) для контроля качества.

Но исполнение - это то, где теория сталкивается с сопротивлением. Документация Spec Kit - это сильная отправная точка, с понятными видео, подробными руководствами и предписывающими шагами, которые позволяют развернуть его за считанные часы. Сложности начинаются, когда вы покидаете «песочницу». Подобно примерам Animal → Dog → Labrador в учебниках по ООП, примеры учат синтаксису, а не промышленной разработке программного обеспечения.

Пробел заключается не в документации, а в контексте и реальной экспертизе. Чистые примеры прекрасно работают для greenfield-проектов (проектов с нуля), но большинство команд работают с существующими (brownfield) кодовыми базами, сформированными месяцами эволюционирующих решений, компромиссами разработчиков, конкурирующими паттернами и не подлежащими обсуждению стандартами качества.

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

Читать далее

Внутри Spec-Driven Development: на что способен Spec Kit

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

Почему команды отказываются от подхода «сначала код, потом исправления», когда ИИ ускоряет поставку сверх всякого контроля? Spec-Driven Development (разработка на основе спецификаций) представляет шестиэтапную модель, которая переносит архитектурные решения, ограничения и ясность на более ранние стадии (upstream). Узнайте, как это улучшает качество выходного результата, сокращает циклы очистки кода и позволяет AI-агентам работать согласованно в рамках мультисервисных систем.

Поставка программного обеспечения была ориентирована на реализацию большую часть своего существования: команды открывали редактор, пробегали глазами бриф спринта и начинали писать код. Этот рабочий процесс имел смысл, когда основными создателями были люди, репозитории развивались медленно, а конвейеры релизов были линейными и предсказуемыми. Теперь AI-агенты, такие как Copilot, Cursor и Windsurf, генерируют код быстрее, чем успевают реагировать архитектура, управление (governance) и интеграция. Код перескакивает от бэкенд-логики к конфигурациям инфраструктуры и CI/CD за часы, на что раньше уходили месяцы.

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

Модель, ориентированная на спецификации (spec-first), обращает этот коллапс вспять с помощью живых, исполняемых артефактов. Вместо того чтобы код вел процесс, спецификации становятся якорем (и источником), на основе которого действуют ИИ и люди. Они содержат решения о структуре, библиотеках, паттернах, соответствии требованиям и интеграции еще до того, как будет сгенерирована хоть одна функция.

Когда поведение меняется, команды обновляют спецификацию, и все последующие выходные данные следуют за ней. Поломки также устраняются путем обновления исходной спецификации, а не латанием симптомов в разных файлах. Чтобы увидеть, как Spec-Driven Development меняет темп и качество разработки с использованием ИИ, давайте разберем, что это такое на самом деле.

Читать далее

Реактивность без React или как обойтись без id в html элементах

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

Странный заголовок, не правда ли?

А зачем вообще обходиться без id? Даже не знаю, но это вполне возможно, и приложение будет живым и вполне себе «реактивным». А всю «магию» при этом творит функция, которую я назвал tokenize.

Конечно же я, ни в коем случае, не настаиваю на отказе от id. "Элементарные" id никому не мешают и tokenize`у тоже. Но если обходиться без id, то как же получать ссылки на DOM элементы, для обращения к ним? Вот для этого и нужна функция tokenize, которая собирает референсы в удобную структуру с ветками, подветками и листьями (ссылками на DOM элементы). А вот как она это делает, мы с Вами сейчас и разберём.

Поехали

Кроим ДНК на Python — CRISPR gRNA finder, Часть II: Скоринг, off-target и реальный ген

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

В первой части мы написали базовый поиск gRNA с фильтрацией по GC-составу. Работает, но тупо: все кандидаты в диапазоне 40-60% считаются равнозначными. В реальности это не так.
Сегодня добавим систему скоринга — будем ранжировать gRNA по качеству, учитывая позицию нуклеотидов и особенности U6-промотора. Потом подключим NCBI BLAST, чтобы проверять кандидатов на off-target: не порежет ли Cas9 что-нибудь лишнее в геноме.
Тестировать будем на гене CCR5 — том самом, который отредактировал китайский учёный Хэ Цзянькуй в скандальном эксперименте 2018 года.

Читать далее

Как изучить программирование за 7 дней (до конца новогодних праздников)?

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

Перфолента.NET — это на удивление профессионально выглядящий язык программирования на платформе .NET, который поддерживает объектно-ориентированное и функциональное программирование, и на котором написан даже написан другой язык, функциональный язык программирования — Перфо.NET (интерпретатор).

Мой личный опыт

Когда я начал немного программировать на Перфоленте/Перфо, моё понимание языков программирования сильно изменилось. Я почувствовал себя как англоязычный программист, пишущий код на родном языке.

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

Раньше сложные понятия функционального программирования давались мне тяжело, но теперь всё стало проще. Лямбда-функции, замыкания, каррирование и т.д. — всё это я теперь понимаю по-другому. Особенно когда объясняю ребёнку.

Например, лямбда-функция — это просто формула из задачника по математике. Ребёнок понял это сразу! И мы пошли дальше, не останавливаясь.

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

Второй эффект — это «сокращение контекста». Контекстное окно человека ограничено 3–5 вещами, которые он в состоянии держать в голове и обдумывать. «Псевдонимы/алиасы» съедают это контекстное окно. Поэтому избавление от прокладок в виде «print — это печать» и замена их на простые «вывести_в_консоль», «вывести_в_файл» и т.п. сильно облегчают понимание логики кода.

Читать далее

Как начать путь в кибербезопасности: от первых шагов до осознанной карьеры

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

Вообще, методы в статье подходят и для любого IT-направления, но давайте сделаем акцент на безопасности.

В последнее время всё чаще вижу одни и те же вопросы:

«С чего начать в кибербезопасности?» или «Всем привет, хочу работать в инфобезе в Red Team, посоветуйте книжки, курсы и т. д., чтобы я через месяц стал чемпионом джунов и уже работал по профессии!» В какой-то момент понял, что пора собрать свои мысли (и не только мои) в один текст. Возможно, он поможет тем, кто только начинает.

Читать далее