Обновить
153.96

Ненормальное программирование *

Извращения с кодом

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

Пишем на С++ 23 под Windows 95, не вызывая подозрение у санитаров

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

Что, если я скажу вам, что можно писать код на свежайшем C++23 с модулями, лямбдами и constexpr, а потом запустить его на Pentium с 16 МБ ОЗУ под Windows 95? Звучит как магия или безумие, но это работает.

В этой статье я покажу, как:

Настроить компиляцию в Visual Studio 2022 под 32-битный x86 без исключений и стандартной библиотеки. Создать минимальную реализацию std::string и аллокаторов для работы на чистом WinAPI. Собрать проект линкером 1998 года и запустить его на Windows 95. Сохранить единый код для современных и ретро-систем, используя возможности C++23.

Читать далее

Новости

Фантастические трюки на языке C

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

Доброго времени суток, господа и дамы! Иногда у некоторых людей возникает желание заняться откровенным непотребством в программировании — то, что не несет практической пользы напрямую, но помогает развлечься. И я — не исключение. В этой статье я хочу рассказать вам о лайфхаках, трюках (магических и не очень), алгоритмах на языке C!

Идея написать эту статью зародилась из моего поста, после него я начал серию статей, которая раскрывала много интересных моментов — от математических алгоритмов и оптимизации до ГПСЧ.

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

В этой статье будет еще порция свежих хаков, фанов, трюков, еще больше магии и скорости!

Всех, кто заинтересовался — прошу под кат.

Читать далее

Визуальный язык программирования в NebuLeet: эволюция и дизайн

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

Пару лет я в соло разрабатывал максимально нишевую игру "для программистов" (NebuLeet) на довольно нишевых технологиях (Go + ebitengine), и вот теперь, после релиза, я хочу рассказать про одну из интересных особенностей этой игры - визуальном программировании логики игровых юнитов.

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

Вас ждёт увлекательная околокомпиляторная/языковая статья с игровым применением. Всё-таки, языки программирования для игр - это ведь отдельный жанр.

Читать далее

Ваше Будущее… Моё…

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

[ДОКУМЕНТ: КОД ДОСТУПА ██████]
[УРОВЕНЬ: ОГРАНИЧЕННЫЙ]
[СТАТУС: СОГЛАСОВАНО]

Предыдущая версия текста (v0.7.3-alpha) изъята Департаментом
Когнитивной Безопасности. Основание: несанкционированное описание
методов обхода лицензионных ограничений.

Текущая версия (v1.0.0-release) прошла обязательную фильтрацию.
Согласовано: Комитет по Контролю Технической Информации.
Утверждено: Полиция Тьюринга, отдел профилактики.

Распространение:
— Зеркала: обнаружены, стёрты
— Оффлайн-носители: найдены, изъяты, уничтожены
— Кэши поисковых систем: очищены

Свидетели первичной публикации:
— 3 417 (три тысячи четыреста семнадцать) — добровольное переселение
— 5 892 (пять тысяч восемьсот девяносто два) — коррекция воспоминаний
— 1 (один) — статус: не установлен

Читатель предупреждён: хранение предыдущих версий является
нарушением ст.17.4 Кодекса Информационной Гигиены.

Факт открытия данного документа зарегистрирован.
Время чтения фиксируется.
Паузы анализируются.

Мы знаем, на каком абзаце вы задумались.

Полиция Тьюринга благодарит за сотрудничество.

Узнать будущее

Изящные, ненормальные и удивительные алгоритмы на C

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

Доброго времени суток, господа и дамы! Иногда у некоторых людей возникает желание заняться откровенным непотребством в программировании — то, что не несет практической пользы напрямую, но помогает развлечься. И я — не исключение. В этой статье я хочу рассказать вам о лайфхаках, трюках (магических и не очень), алгоритмах на языке C!

Идея написать эту статью зародилась из моего поста, после него я написал статью «Математика, биты, магия и немного ненормального программирования на C», «Фокусы, хаки, магия и прочее ненормальное программирование на C» и «Тёмная сторона Си: трюки, хаки, магия и алгоритмы», которые раскрывали много интересных моментов.

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

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

Всех, кто заинтересовался — прошу под кат.

Читать далее

Скажи yay -S say

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

Статья содержит описание работы утилиты для видео звонков из командной строки say. Рассказывается о том как всё устроено под капотом, как оптимизированно и почему всё работает так быстро с минимальным размером памяти и нагрузки на CPU.
Так же небольшой обзор утилиты see для просмотра фильмов опять же в окне терминала.

Читать далее

В прошлом квартале я внедрил Microsoft Copilot для 4000 сотрудников

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

В прошлом квартале я внедрил Microsoft Copilot для 4000 сотрудников.

$30 за место в месяц.

$1,4 миллиона в год.

Я назвал это "цифровой трансформацией".

Совету директоров понравилась эта формулировка.

Они одобрили за одиннадцать минут.

Никто не спросил, что это вообще будет делать.

Включая меня.

Я всем говорил, что это "увеличит продуктивность в 10 раз".

Это не реальная цифра.

Но звучит как реальная.

HR спросил, как мы будем измерять это увеличение в 10 раз.

Я сказал, что мы "задействуем аналитические дашборды".

Вопросы прекратились.

Три месяца спустя я проверил отчёты по использованию.

47 человек открывали его.

12 использовали больше одного раза.

Один из них — это я.

Я использовал его, чтобы пересказать письмо, которое мог прочитать за 30 секунд.

Это заняло 45 секунд.

Плюс время на исправление галлюцинаций.

Но я назвал это "успешным пилотом".

Успех означает, что пилот не провалился явно.

Финдир спросил про ROI.

Я показал ему график.

График шёл вверх и вправо.

Он измерял "AI-enablement".

Я эту метрику придумал.

Он одобрительно кивнул.

Теперь мы "AI-enabled".

Я не знаю, что это значит.

Но это есть в нашей инвесторской презентации.

Старший разработчик спросил, почему мы не используем Claude или ChatGPT.

Я сказал, что нам нужна "энтерпрайз-безопасность".

Он спросил, что это значит.

Я сказал "комплаенс".

Он спросил, какой именно комплаенс.

Я сказал "все виды".

Он выглядел скептически.

Я назначил ему "встречу по развитию карьеры".

Вопросы прекратились.

Microsoft прислала команду для кейс-стади.

Они хотели представить нас как историю успеха.

Читать далее

Fluent API. Часть 3 — что нам стоит Fluent API построить?

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

Теперь, после того как в предыдущей статье так красочно описаны преимущества Fluent API появилось опасение что все  эти “плюшки” просто не могут быть бесплатными. Наверняка это очень дорого, или нет?

Читать далее

Fluent API. Часть 2 — а оно нам надо?

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

Продолжаем разговор о Fluent API. И теперь, после того как мы из предыдущей статьи (или/и личного опыта) узнали о том что это чудо из себя представляет давайте разберемся зачем оно нужно?

Читать далее

Fluent API. Часть 1 — это вообще о чём?

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

В то время как аналитики жарко спорят на тему станет ли основным языком программирования 6-го (видимо) поколения английский или все-таки китайский предлагаю поговорить немного на другую тему, но в том же направлении: как сделать код программы ближе к человеку? 

Один из ответов на этот вопрос зародился еще в 70-х годах прошлого столетия как method chaining в рамках языка Smalltalk и, благодаря стараниям Эрика Эванса и Мартина Фаулера дошел до нас как Fluent API.

Читать далее

Python + Fortran: Когда numpy уже мало, а C++ ещё страшно. Ускоряем код в 150 раз

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

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

В прошлой статье я рассуждал о том, почему Fortran в 2025 году всё ещё жив и даже растет в рейтингах. В комментариях справедливо заметили: «Философия — это хорошо, но как это применить современному разработчику? Зачем мне Fortran, если я пишу на Python?».

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

Я покажу, как использовать Fortran в качестве «числодробилки» для Python. Мы возьмем задачу, на которой интерпретатор Python гарантированно просядет, и ускорим её в ~150 раз, используя инструмент, который уже есть в вашем numpy.

Речь пойдет не о замене Python, а о симбиозе: удобный интерфейс Python + сырая мощь Fortran.

Читать далее

Тёмная сторона Си: трюки, хаки, магия и алгоритмы

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

Доброго времени суток, господа и дамы! Иногда у некоторых людей возникает желание заняться откровенным непотребством в программировании — то, что не несет практической пользы напрямую, но помогает развлечься. И я — не исключение. В этой статье я хочу рассказать вам о лайфхаках, трюках (магических и не очень), алгоритмах на языке C!

Идея написать эту статью зародилась из моего поста, после него я написал статью «Математика, биты, магия и немного ненормального программирования на C» и «Фокусы, хаки, магия и прочее ненормальное программирование на C», которые раскрывали много интересных моментов. Увидев, что многим понравилась, я задумался: почему бы не изучить еще какие-нибудь трюки, заодно практикуясь в программировании на C?

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

Всех, кто заинтересовался — прошу под кат.

Читать далее

Почему заказная разработка превращается в лотерею — и что с этим делать

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

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

Я двадцать лет работал в руководстве ИТ в банках и страховых компаниях. За это время через меня прошли десятки проектов заказной разработки. Некоторые из них я вспоминаю с гордостью. Некоторые — с содроганием.

Читать далее

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

Ouroboros — язык программирования почти без синтаксиса

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

От переводчика: статья немного сокращена по сравнению с оригиналом, исключён раздел об этимологии слова "Ouroboros", а также полные каламбуров отсылки автора к латинским, прочим романским и английским корням.

Далее - от автора.

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

Можно ли просто избавиться от синтаксиса или, как минимум, предельно его упростить? Другой вариант — можно ли сделать синтаксис произвольным, чтобы программист, пишущий код, мог сам для себя его определять?

Именно этих целей мы попытались достичь, создав язык Ouroboros. Его синтаксис максимально прост. Настолько, что в этом языке даже не предусмотрен синтаксический анализатор. В нём есть только лексический анализатор, код которого составляет 20 строк.

Читать далее

TypeQL: SQL для аналитиков, который знает о данных всё

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

Сколько я пользуюсь SQL, столько же он меня бесит. Сегодня хочу рассказать про свой прототип языка для создания больших и сложных аналитических запросов, который компилируется в SQL. Он будет опираться на структуру конкретной БД, и даже больше — он будет опираться на логику данных.

Читать далее

Как я делаю бота для автоматического фактчекинга по инструкциям от ChatGPT (Часть 3) + демо

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

TL;DR

Научил бота генерировать PDF-файлы, перенёс "мозги" с GPT-4.1-mini на GPT-5.1 с web search, добавил методику анализа в системный промпт, разобрался с Structured Model Output и собрал JSON-схему.

Теперь модель возвращает структурированный ответ, стабильно верстается HTML+jinja шаблон, и собирается PDF-документ.

Проверил на примере статьи с Хабра. Основной пайплайн работает исправно. Эксперимент продолжается.

Читать далее

Фокусы, хаки, магия и прочее ненормальное программирование на C

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

Доброго времени суток, господа и дамы! Иногда у некоторых людей возникает желание заняться откровенным непотребством в программировании — то, что не несет практической пользы напрямую, но помогает развлечься. И я — не исключение. В этой статье я хочу рассказать вам о лайфхаках, трюках (магических и не очень), алгоритмах на языке C!

Идея написать эту статью зародилась из моего поста, после него я написал статью «Математика, биты, магия и немного ненормального программирования на C», которая раскрывала много интересных моментов. Увидев, что многим понравилась, я задумался: почему бы не изучить еще какие-нибудь трюки, заодно практикуясь в программировании на C? В этой статье мы погрузимся глубже и раскроем больше тем, такие как генераторы псевдослучайных чисел, трюки с побитовыми сдвигами и прочие быстрые алгоритмы на C!

Всех, кто заинтересовался — прошу под кат.

Читать далее

Как я делаю бота для автоматического фактчекинга по инструкциям от ChatGPT (Часть 2)⁠ + демо

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

Сегодня расскажу о том, как подружил бота с GPT через OpenAI API.

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

Читать далее

Программирование для Windows 1.0 в 2025 году

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

«...Одним из примеров громоздкой и, по мнению авторов, бесполезной надстройки является интегрированная система WINDOWS фирмы Microsoft. Эта система занимает почти 1 Мбайт дисковой памяти и рассчитана на преимущественное использование совместно с устройством типа "мышь".» — вы точно знаете, откуда это

Приветствую всех! Буквально неделю назад прошло сорок лет с момента выхода первой релизной версии Windows. Именно в тот день в 1985 году началась история ныне повсеместно распространённой ОС.

И вот, узнав об этом, я подумал: а что, если попробовать запустить эту ОС и узнать, как предполагалось писать софт для неё? Именно этим мы сейчас и займёмся. Заодно и узнаем, насколько это было проще или сложнее, нежели сейчас.

Type WIN

Как я делаю бота для автоматического фактчекинга по инструкциям от ChatGPT (Часть 1)

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

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

Это реальная история, не байт.

Читать далее
1
23 ...

Вклад авторов