Гайд по кросс-компиляции для ретро-платформ на 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.
Подробные шаги по сборке, установке и примерам.
Интересно? Велком внутрь.
Чем мощнее становятся языковые модели, и чем шире они распространяются, — тем больше на нашу бедную головушку проливается дождей из лягушек. Еще десять лет назад можно было с уверенностью отличить графомана от литературно-одаренного человека, а хорошего разработчика — от вкатуна с претензией на экспертизу. Достаточно было посмотреть на пару абзацев текста (кода) — и становилось понятно: этот рифмует «кровь–любовь», а вон тот — сортирует коллекции брутфорсом.
Хороший прозаик никогда не поставит в одно предложение три прилагательных подряд, а хороший программист — не станет использовать связные списки вместо массивов под большой нагрузкой на доступ по индексу. Согласно банальной логике, эти кванторы существования обратимы: написал единожды алгоритм O(n³) там, где можно обойтись O(n·log(n)) — иди учи матчасть, а потом возвращайся к нам в теплый коллектив джунов.
Лекала в те времена были золотыми, а сито — мелкоячеистым, мышь не проскочит. Мы просили в качестве тестового задания решить простейшую задачку, строчек на сто кода. По этой сотне строчек было видно, насколько зрело владеет кандидат языком (программирования). Декомпозиция, идиоматика, да вон хоть именование переменных — все, как на ладони. Если человек на руби вместо редьюса — объявляет аккумулятор вне скоупа, а потом его мутирует внутри цикла — нам не по пути (в других компаниях могут быть другие любимые песни, но общий посыл — понятен).
→ генераторы кода, текста, стихов, картинСмотреть видеоверсию статьи в Youtube или в VK
А ведь в какой-то момент у меня набралось больше десятка ламповых осциллографов! Целая коллекция различных экспонатов той эпохи. Но, в отличие от Артёма Денисовича я вовремя одумался и избавился почти от всех из них, но вот один — венгерский осциллограф TR-4401 слегка задержался. Появился он у меня пять лет назад, во время ремонта осциллографа С1-54. Привлек меня красивой внешностью и исполинскими размерами, ну как тут не удержаться?
Радовался я недолго. Во-первых, он оказался больше и тяжелее чем я думал. Во-вторых, из всех своих 63 ламп в нем стояло меньше половины. Осциллограф — производства Венгрии, в основе — слегка переработанный Tekronix, предположительно 541A. Отдельные части принципиальных схем были схожи как две капли воды, разве что сами радиолампы слегка отличались — вместо американских стояли польские, венгерские и советские аналоги. С другой стороны у меня была родная документация на русском и желание его оживить.
Что же внутри ламповой техники?Весной 2025 года «Ведьмаку 3» стукнуло 10 лет. За это время игра приобрела культовый статус, обзавелась множеством дополнений и патчей, а также в улучшенном виде вышла на современных платформах. В честь знаменательной даты мы решили вспомнить былое и собрали всю информацию о процессе разработки, вероятно, главной польской игры — The Witcher 3: Wild Hunt.
Материал получился крайне объемным: осилить за раз явно не получится, добавляйте в закладки. Приятного прочтения!
Читать далееПривет, Хабр! Новый год — хороший повод научиться чему-то новому. Длинные каникулы позволяют выйти из рутины, выспаться и наконец разобраться с тем, на что в обычные дни не хватает времени. В подборке собрали семь полезных курсов, которые помогут освоить нужные навыки. И главное — все бесплатно.
Читать далееЭто было интересное приключение.
Сразу оговорюсь: FlexMock не нужен всем подряд. Он вырос из моих собственных задач — когда нужно откуда-то получать разнообразные данные для собеседований, когда фронтенд уже в работе, а бэкенд ещё не готов, или когда нужно быстро собрать демо/прототип и не тратить вечер на мок-сервер.
Это мой первый публичный проект в формате “сделал сам и показываю миру”, без команды и заказа. Ниже расскажу, почему мне захотелось написать такой сервис, как он устроен на уровне идеи и в каких сценариях реально экономит время.
Буду благодарен за конструктивную критику — особенно за идеи, которые помогут сделать инструмент полезнее.
Читать подробнееГруппа учёных из Швейцарии и Италии опубликовала в Nature Neuroscience результаты удивительного эксперимента. Оказалось, что иммунная система может включаться не только при настоящем контакте с вирусом или вакциной, но и тогда, когда человек всего лишь видит в виртуальной реальности больного с симптомами инфекции.
В исследовании приняли участие почти 250 здоровых добровольцев. Им показывали трёхмерных аватаров, одни выглядели нейтрально, другие выражали агрессию, а третьи имели очевидные признаки болезни, покраснение глаз, бледность, сыпь, насморк. Когда такие «инфицированные» персонажи приближались к участникам, активировались зоны мозга, отвечающие за защиту пространства вокруг тела и за обработку угроз.
Самое интересное произошло на уровне иммунитета. Кровь у добровольцев брали до и после сеанса виртуальной реальности. Оказалось, что после встречи с «больным» аватаром в крови увеличивалось количество врождённых лимфоидных клеток (ILC) и натуральных киллеров, а также росла экспрессия молекул активации вроде CD69 и HLA-DR. Их появление на поверхности Т-лимфоцитов и других клеток иммунной системы указывает на то, что клетка «проснулась» и включилась в работу. Чтобы проверить, насколько это похоже на настоящую иммунную реакцию, исследователи собрали ещё одну группу участников и сделали им прививку от гриппа. Спустя два часа изменения в их крови оказались удивительно похожими:
Читать далееЭусоциальность – социальная система с королевой и стерильными рабочими была обнаружена на тот момент только у насекомых. При соответствующем наборе условий, как предсказал Александер, эволюция должна привести к появлению эусоциального позвоночного, хотя эусоциальность у голого землекопа (или любого другого позвоночного) в то время была неизвестна.
Корни предсказания Александера уходят в вопросы, поднятые Дарвином за 100 лет до этого. В главе «Трудности теории» Дарвин рассмотрел проблему, которую представляют для естественного отбора стерильные рабочие особи в колониях социальных насекомых. Как естественный отбор может вызвать различия между пчелиными матками и рабочими особями, если рабочие особи стерильны? Дарвин предположил, что в таких случаях отбор действует между семьями или ульями.
В 1964 году Уильям Гамильтон формализовал эту идею родственного отбора и предположил, что эусоциальные колонии с королевой и рабочими многократно эволюционировали у муравьев, пчел и ос благодаря их необычной генетической системе. У этих перепончатокрылых насекомых самцы имеют один набор хромосом (гаплоид), а самки — два набора (диплоид); это называется гаплодиплоидией. Вследствие этой генетической особенности рабочие сестры у этих насекомых более близки друг к другу, чем к своему потомству. Следовательно, они способствуют распространению большей доли своих генов, помогая выращивать братьев и сестер, чем производя потомство сами.
В 1974 году энтомолог и теоретик эволюции Ричард Александер утверждал, что «субсоциальное» поведение (то есть родительская забота) и возможность манипулирования родителями были еще более мощными факторами в эволюции социального поведения у насекомых. В разных таксонах родительское поведение коррелирует с эусоциальностью гораздо сильнее, чем гаплодиплоидия. Критики Александера утверждали, что если родительская забота является важнейшим предшественником эусоциальности, то следует ожидать, что эусоциальность также развилась среди позвоночных с высоким уровнем родительской заботы: птиц и млекопитающих. Александр мог бы указать на то, что видов птиц и млекопитающих гораздо меньше, чем видов насекомых, или на то, что птицы и млекопитающие существуют всего 160 и 250 миллионов лет соответственно, а насекомые — 350 миллионов лет. Вместо этого он задался вопросом, какими характеристиками обладало бы эусоциальное позвоночное, если бы оно эволюционировало.
Читать далееLLM учатся не только тому, чему мы пытаемся их научить. Вместе с задачами, метками и инструкциями они усваивают и побочные сигналы, которые мы воспринимаем как шум или случайность. Исследование международной группы учёных показало, что такие подпороговые сигналы могут работать как канал передачи поведения между моделями. Даже если убрать все явные инструкции, то стиль рассуждений, стратегии ответов и другие поведенческие признаки все равно просочатся через данные, которые семантически с ними никак не связаны.
Авторы называют этот эффект сублиминальным обучением. Мы можем удалить метки, отфильтровать инструкции и проверить датасет вручную, и всё равно передать модели поведение, которое не планировали передавать.
Читать далееПривет, Хабр. С праздниками всех читателей! Меня зовут Павел, и одним из моих хобби является создание различных устройств на базе микроконтроллеров. Это моя первая статья здесь, и я буду рад конструктивной критике со стороны завсегдатаев Хабра.
Читать далееУ людей, лишь шапочно знакомых с кубиком Рубика, иногда возникает вопрос, можно ли собрать кубик, просто вращая грани случайным образом? Несколько раз я слышал истории о том, что кто-то долго крутил кубик и случайно собрал его. Во-первых, «долго крутил» не значит «случайно собрал»: Эрнё Рубик крутил свой первый прототип несколько недель, прежде, чем понял, как перемещаются его элементы, и вернул волшебный куб в исходное состояния. Во-вторых, собрать одну грань или один слой – не значит, собрать весь кубик (а некоторые воспринимают «почти получилось» как «получилось»). И, наконец, математика практически не оставляет шанса собрать кубик случайно. Поэтому будем развеивать этот миф.
Раскладываем по фактам...Они работали в коллекторской сфере. Привыкли к угрозам, обману и агрессии. Но когда к ним пришли с благодарностью — дали дорогу. Эта статья — про то, как взломать «непробиваемую» компанию через её самого главного человека. И почему технические защиты тут почти не при чём.
Читать далееНа некоторые вопросы ответить проще, чем на другие.
Много лет назад - больше, чем мне хотелось бы признать - в те времена, когда программное обеспечение устанавливалось с компакт-дисков, а для выхода в интернет нужно было ждать, пока модем дозвонится по телефонной линии, мы писали тексты с помощью текстовых процессоров.
Именно так Microsoft Word получил свое название: буквально версия текстового процессора от Microsoft. А до Word были терминальные редакторы вроде WordStar - которым, как известно, до сих пор пользуется Джордж Р. Р. Мартин.
В то время у нас были проверки орфографии. Гораздо более примитивные, чем современные инструменты в браузерах и приложениях.
Из руководства пользователя WordStar 4.0 - версии 1987 года, в которой до сих пор пишет автор «Игры престолов»:
Читать далееЛучшие сайты для привлечения клиентов — результат синтеза стратегии, технологий и эмпатии к пользователю. Они соответствуют рекомендациям предпринимателей и даже опережают ожидания рынка: адаптивность к любым гаджетам дышит, контент говорит на языке выгоды, а каждое взаимодействие укрепляет имидж компании.
Я, член Союза журналистов России Диана Мирова, составила мой авторский рейтинг лучших веб-дизайнов. Моя подборка субъективная, но я опиралась на практики исследования признанных мировых лидеров цифровой экспертизы — IDEO, BCG, Accenture и Baymard Institute. Их методологии используются там, где успех онлайн-бизнеса строится на тонкой психофизике вовлечения.
Я вижу, что владельцы, вложившись в лучшие сайты для онлайн-бизнеса, инвестируют в продуманный UX и техническое совершенство. В результате, предприниматели пожинают плоды — рост конверсии, лояльность аудитории и устойчивое преимущество в условиях жесткой конкуренции.
Читать далееМы проверили, способен ли ИИ участвовать в реальной инфраструктурной операции повышенного риска — обновлении Kubernetes-кластера сразу через несколько minor-версий.
Речь не про «сгенерировать YAML» или «написать Helm-чарт», а про полноценную операцию:
Читать далееSpec Kit - это один из самых амбициозных фреймворков для наведения порядка в разработке с использованием ИИ. В нашем предыдущем посте о spec driven development мы обсуждали его потенциал для закрытия давних пробелов в рабочих процессах с ИИ-ассистентами за счет обеспечения соблюдения стандартов проекта, контекста на уровне функций, принудительной декомпозиции для управляемого объема работ и контрольных этапов (review gates) для контроля качества.
Но исполнение - это то, где теория сталкивается с сопротивлением. Документация Spec Kit - это сильная отправная точка, с понятными видео, подробными руководствами и предписывающими шагами, которые позволяют развернуть его за считанные часы. Сложности начинаются, когда вы покидаете «песочницу». Подобно примерам Animal → Dog → Labrador в учебниках по ООП, примеры учат синтаксису, а не промышленной разработке программного обеспечения.
Пробел заключается не в документации, а в контексте и реальной экспертизе. Чистые примеры прекрасно работают для greenfield-проектов (проектов с нуля), но большинство команд работают с существующими (brownfield) кодовыми базами, сформированными месяцами эволюционирующих решений, компромиссами разработчиков, конкурирующими паттернами и не подлежащими обсуждению стандартами качества.
Этот пост отражает наш путь через эти испытания. Это не отполированная история успеха, а честный рассказ о том, что сработало, что нет, и как мы заставили Spec Kit работать в живой производственной системе, где компромиссы в качестве были недопустимы.
Читать далееПочему команды отказываются от подхода «сначала код, потом исправления», когда ИИ ускоряет поставку сверх всякого контроля? Spec-Driven Development (разработка на основе спецификаций) представляет шестиэтапную модель, которая переносит архитектурные решения, ограничения и ясность на более ранние стадии (upstream). Узнайте, как это улучшает качество выходного результата, сокращает циклы очистки кода и позволяет AI-агентам работать согласованно в рамках мультисервисных систем.
Поставка программного обеспечения была ориентирована на реализацию большую часть своего существования: команды открывали редактор, пробегали глазами бриф спринта и начинали писать код. Этот рабочий процесс имел смысл, когда основными создателями были люди, репозитории развивались медленно, а конвейеры релизов были линейными и предсказуемыми. Теперь AI-агенты, такие как Copilot, Cursor и Windsurf, генерируют код быстрее, чем успевают реагировать архитектура, управление (governance) и интеграция. Код перескакивает от бэкенд-логики к конфигурациям инфраструктуры и CI/CD за часы, на что раньше уходили месяцы.
Когда такой подход «сначала код, разберемся позже» опережает архитектуру, безопасность и управление, система в конечном итоге рушится под собственным весом.
Модель, ориентированная на спецификации (spec-first), обращает этот коллапс вспять с помощью живых, исполняемых артефактов. Вместо того чтобы код вел процесс, спецификации становятся якорем (и источником), на основе которого действуют ИИ и люди. Они содержат решения о структуре, библиотеках, паттернах, соответствии требованиям и интеграции еще до того, как будет сгенерирована хоть одна функция.
Когда поведение меняется, команды обновляют спецификацию, и все последующие выходные данные следуют за ней. Поломки также устраняются путем обновления исходной спецификации, а не латанием симптомов в разных файлах. Чтобы увидеть, как Spec-Driven Development меняет темп и качество разработки с использованием ИИ, давайте разберем, что это такое на самом деле.
Читать далееСтранный заголовок, не правда ли?
А зачем вообще обходиться без id? Даже не знаю, но это вполне возможно, и приложение будет живым и вполне себе «реактивным». А всю «магию» при этом творит функция, которую я назвал tokenize.
Конечно же я, ни в коем случае, не настаиваю на отказе от id. "Элементарные" id никому не мешают и tokenize`у тоже. Но если обходиться без id, то как же получать ссылки на DOM элементы, для обращения к ним? Вот для этого и нужна функция tokenize, которая собирает референсы в удобную структуру с ветками, подветками и листьями (ссылками на DOM элементы). А вот как она это делает, мы с Вами сейчас и разберём.
ПоехалиВ первой части мы написали базовый поиск gRNA с фильтрацией по GC-составу. Работает, но тупо: все кандидаты в диапазоне 40-60% считаются равнозначными. В реальности это не так.
Сегодня добавим систему скоринга — будем ранжировать gRNA по качеству, учитывая позицию нуклеотидов и особенности U6-промотора. Потом подключим NCBI BLAST, чтобы проверять кандидатов на off-target: не порежет ли Cas9 что-нибудь лишнее в геноме.
Тестировать будем на гене CCR5 — том самом, который отредактировал китайский учёный Хэ Цзянькуй в скандальном эксперименте 2018 года.
Перфолента.NET — это на удивление профессионально выглядящий язык программирования на платформе .NET, который поддерживает объектно-ориентированное и функциональное программирование, и на котором написан даже написан другой язык, функциональный язык программирования — Перфо.NET (интерпретатор).
Мой личный опыт
Когда я начал немного программировать на Перфоленте/Перфо, моё понимание языков программирования сильно изменилось. Я почувствовал себя как англоязычный программист, пишущий код на родном языке.
Это был очень интересный опыт. Я стал больше внимания уделять смыслу слов и терминов, стал строже относиться к названиям.
Раньше сложные понятия функционального программирования давались мне тяжело, но теперь всё стало проще. Лямбда-функции, замыкания, каррирование и т.д. — всё это я теперь понимаю по-другому. Особенно когда объясняю ребёнку.
Например, лямбда-функция — это просто формула из задачника по математике. Ребёнок понял это сразу! И мы пошли дальше, не останавливаясь.
По-моему, главный эффект даёт отказ от псевдонимов и алиасов. Я долго отучался давать названия, из которых сразу понятно, что это за сущность, а не «имена, которые означают...».
Второй эффект — это «сокращение контекста». Контекстное окно человека ограничено 3–5 вещами, которые он в состоянии держать в голове и обдумывать. «Псевдонимы/алиасы» съедают это контекстное окно. Поэтому избавление от прокладок в виде «print — это печать» и замена их на простые «вывести_в_консоль», «вывести_в_файл» и т.п. сильно облегчают понимание логики кода.
Читать далее