Обновить
191.18

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

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

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

Миллениал и вайб-кодинг: как я делаю ИИ-анализатор новостей по инструкциям ChatGPT (Часть 2)⁠ + скринкаст прогресса

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

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

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

Читать далее

Новости

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

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

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

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

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

Type WIN

Страх и ненависть вайб-кодинга: как я сделал для ребенка игру и попал в топ приложений на android-TV

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

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

Привет, Хабр! Меня зовут Леонид Калядин, я Cluster Data lead в МТС Web Services. Я отлично разбираюсь во всем, что связано с data, но вот в мобильной разработке — полный ноль. Во всяком случае был до недавнего времени. В этом материале я расскажу, как решил спасти дочь от надоедливой рекламы и навайбкодил Adventure Mazes — игру, которая вошла в топ Android TV в Google Play. Итак, кому интересны подробности — велкам под кат. 

Читать далее

Advent of Artificial Code

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

Надвигается очередной конец очередного года, в связи с чем люди неравнодушные к своей работе — наверняка собираются принимать участие в состязаниях «Advent of Code» в своих стеках. За последние несколько месяцев существенно ожесточились споры на предмет вайбкодинга (даже термин ублюдский придумали). Мне пришла в голову тривиальная мысль: а что, если вовлечь в соревнование ваших любимых стажё^W искусственных помощников?

Я лично собираюсь решать AoC по старинке, но при этом оставляю право AI посостязаться со мной в этом соревновании и даже обойти меня в нем. В комментариях к этому тексту я предлагаю публиковать решения, выполненные лично вами, или вашими раба^W помощниками, на всех возможных языках программирования. В англоязычном интернете — полно форумов, на которых люди делятся решениями и обсуждают их; хабр (ну, как минимум тот, про который мы иногда вспоминаем в кондитерском смысле) — идеальное место для подобных обсуждений на русском языке.

Как это было в AoC 2024

Мифы, суеверия и народные мудрости в разработке игр

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

Существует довольно много распространённых «мудростей» о разработке игр на C++, различных обрядах и видах магии. И как это часто бывает с подобными сакральными знаниями, при внимательном осмотре - у части действительно есть право на жизнь, часть можно отправить в Каирский музей отбирать славу у мумий, а часть вообще оказывается родом из чужой реальности, и работать как предполагалось отказывается. Но это не мешает некоторым компаниям относиться к таким советам как к скрижалям, бережно принесённым с великой горы совещаний. Новым сотрудникам их передают почти с торжественностью обряда посвящения: «Так делали наши предки, так делаем и мы».

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

Понедельнишное

ADSM: каталоги верхнего уровня

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

Меня зовут Алекс Гусев. Я продолжаю публикацию заметок о своём персональном опыте использования агента Codex от OpenAI для разработки веб-приложений. В этой статье я расскажу о своих выводах относительно организации каталогов верхнего уровня в проектах, разрабатываемых в паре с ИИ-агентами.

Посмотреть результат применения излагаемого подхода можно в проекте "flancer64/pwa-home-call".

Читать далее

Код-гольф в Яндексе: как нерды развлекаются

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

Что такое код-гольф? Это соревнование, в котором надо решить задачу по программированию (как правило, несложную), используя наименьшее количество символов. Соревнование довольно известное. Можно поиграть, например, на одноимённом сайте, есть целая секция на CodinGame, иногда такие соревнования публикует kaggle, была такая секция на HackerRank (сейчас её я не нашёл).

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

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

Эта статья — смесь разбора задач и истории появления соревнования по код-гольфу на конференциях Яндекса.

Про нас и кодгольф

Ликбез о плавающей точке: сложение, катастрофическое сокращение и бабушка Кэхена

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

Давайте продолжим обсуждение самой неоптимизированной в мире 32-битной библиотеки для работы с плавающей запятой TinyFloat. Библиотека написана на C++ и намеренно избегает встроенных типов плавающей запятой, полагаясь исключительно на 32-битные целые числа. Цель состоит в том, чтобы сделать код максимально читабельным — без бит-хаков и хитроумных уловок.

Библиотека пишется в рамках борьбы с неграмотностью населения, поэтому, я хочу иметь подробную документацию о том, что происходит «под капотом». Оказалось, что лучший способ документировать код C++ — это полностью переписать его на Python :-)

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

Читать далее

Всегда короткий Python-код

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

Не так давно довелось спонтанно поучаствовать в активности от T‑банка. Кроме всяких «интересных» заданий, там были задачки и на кодинг. Критерием победы в задачах «Стековки» были не O(n), не микросекунды, а краткость кода, твёрдо измеренная в символах, что тоже по своему интересно. «Как написать решение используя минимальное число символов?».

С одной стороны это были задания на компактный алгоритм, с другой стороны — на знания возможностей языка. Я к такому родам задачам не готовился, но по ходу дела мне показалось, что приёмы, которые можно придуматьприменить при таких метриках, вполне стоило бы обобщить, структурировать, и применять уже с меньшими когнитивными нагрузками. Заинтересовало? Добро пожаловать за странными конструкциями и хацкер-бонусом.

Разжать статью

Простой и быстрый инструмент для сбора графиков из Grafana

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

Привет, друг. Я тут решил поделиться с тобой простым инструментом, который не требует особых навыков и больших затрат времени для развёртывания или даже использования. По большому счёту при его использовании и чаще всего всё делается один раз и забывается. Что за инструмент? На кой он нужен и чем лучше других?

Давай обо всём по порядку.

Самые необычные серверы Minecraft: от умной лампочки до микроконтроллера. Как это работает?

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

Minecraft давно вышел за рамки развлечений. Сейчас это еще и площадка для экспериментов. Энтузиасты запускают сервера игры на устройствах, которые вообще не предназначены для такого. Как вам — умная лампочка с мигающим светодиодом, роутер, забытый в шкафу, микроконтроллер ESP32 размером с марку? Подобные проекты рождаются из простого «а что, если…» и показывают, насколько гибкой стала архитектура Minecraft и как далеко можно зайти в оптимизации. В этом материале разберем, как сервер работает на уровне кода и железа и какие приемы позволяют запускать его на слабом, почти игрушечном оборудовании. Ведь классический сервер — это Java-приложение, требующее виртуальной машины и памяти, но в нашем случае правила меняются. Поехали!

Читать далее

Программист & LLM: как написать эмулятор ретро-компьютера за четыре вечера. Часть 1, вводная

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

Тон данной публикации задал товарищ @kiltum в своих статьях, начатых с этой. В самом начале был задан вопрос

может ли ИИ заменить программиста?

А действительно? Сколько вокруг этой темы хайпа, нет ни дня чтобы здесь на ресурсе не появилось 100 500 статей на тему нейросетей, LLM, ML и прочего. Пишут много и всякое. Возникло желание проверить лично, насколько решения, предлагаемые ИИ могут быть воплощены в жизнь.

Системы ИИ прочно вошли в нашу жизнь, и да, я тоже ими регулярно пользуюсь. Но мысли программировать с их помощью особо не возникало. Но что если попробовать, поставив при этом задачу из предметной области в которой ты не особо разбираешься? Похожий вопрос ставит и @kiltum, но я хочу попросить автора не ругаться на мою невольную попытку «пообезьянничать». Своей публикацией я лишь хочу подкрепить уже высказанные тезисы, на примере личного опыта. К тому же, старое железо — это всегда интересно, не правда ли? Если так, то добро пожаловать под кат.

Читать далее

Repository Pattern в управлении базами данных: пример интеграции NocoDB в Django

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

Классический сценарий: есть база данных и приложение на бэкенде. Для подключения достаточно знать адрес, порт, имя пользователя, пароль — и прямой доступ перед вами. Но что делать, если необходимо подключить no-code базу данных, которой можно управлять только через REST API? Есть ли способ интегрировать такие подключения в логику «красиво», не поломав архитектуру?

Привет, Хабр! Меня зовут Влад, в свободное время я занимаюсь разработкой. В этой статье расскажу, как мне удалось относительно нативно интегрировать работу с платформой NocoDB на бэкенде, какие можно использовать паттерны и зачем мне понадобилось разработать собственный Python-модуль. Подробности под катом!

Читать далее

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

GPT как основа low‑code‑платформ: разработка без программистов

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

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

Меня зовут Никита, я ML-разработчик в «Инфосистемы Джет». В этой статье хочу поделиться практическим опытом: как GPT + low-code помогает запускать прототипы и автоматизировать процессы без долгих циклов классической разработки.

Если вам нужно быстро проверить гипотезу, запустить внутренний инструмент или собрать простой прототип, длинные спринты и ожидание, пока IT‑отдел возьмет задачу, могут убить всю инициативу. Современные низкокодовые (low‑code) платформы в связке с генеративными моделями GPT позволяют собрать рабочий MVP буквально за выходные. Достаточно описать задачу обычным языком — и платформа генерирует бизнес-логику, сценарии интеграции и рабочие процессы.

Ниже разберёмся, как это устроено, на что действительно способен подход GPT + low-code и какие ограничения важно учитывать на старте. Статья пригодится техническим продукт‑менеджерам, аналитикам и разработчикам.

Читать далее

Парсим XML и JSON на ассемблере

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

Отобрал для вас несколько крайне интересных, но малоизвестных проектов, реализующих работу с XML и JSON. Кроссплатформенных и без зависимостей. На чистом С и ассемблере.

Читать далее

Эмуляция «тетриса» Apollo из 90-х и запуск кода на оригинальном железе

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

В этой статье я расскажу о микроконтроллерах Sunplus с ядром 6502 которые использовались в популярных в 90-е «тетрисах» Apollo, а также об их эмуляции. Отдельно опишу способ запуска своего кода на этих играх и в частности проигрыватель «Bad Apple!!», крупнопиксельный кадр из которого показан на КПДВ.

Читать далее

Делаем мыши Asus ROG полезными

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

Итак, вы потратили много денег на красивую, удобную игровую мышь. Мышь действительно хорошо сидит в руке, приятно светится, имеет целых 6 дополнительных кнопок, гибко настраивается... Стоп, гибко? Вы хотели забиндить на одну из них, скажем, F13? Разработчики ASUS против такого! Но мы не сдаёмся просто так!

Погружайтесь под кат, нам предстоит узнать все ужасы софта для игровых девайсов, познакомиться с HID сканкодами, узнать сколько на самом деле у клавиатуры клавиш и написать драйвер на python.

Читать далее

Давайте писать на Rust для DOS

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

В этой статье я покажу как получить работающую под DOS программу, написанную на Rust.

Начинаем с установки Rust. Даже если он есть системный из пакетов, его недостаточно, так как мы будем (вынужденно) использовать nightly версию. Итак, идём на https://rustup.rs/, копируем предлагаемую строку и запускаем её в терминале. Чтобы команда заработала возможно потребуется доустановить curl. Имеет смысл выбрать в качестве ветки по-умолчанию nightly. Если вы выбрали не nightly, то нужно будет доустановить nightly тулчейн:

Читать далее

С go на C++ за две недели. Переписываю эмулятор ZX Spectrum

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

В общем-то и целом, мой предыдущий эмулятор ZX Spectrum, написанный на go, работал. Показывал нужное (или очень близко к нужному) и давал чувство приближенности к программистам. Однако у него были очень фундаментальные проблемы, связанные исключительно с языком разработки. Ну по крайней мере я сейчас так думаю.

Другим движущим фактором все-таки была бесплатность БЯМок от cloud.ru (не реклама, да и бесплатности больше нет). Ну где еще можно на халяву пожечь сотни миллионов токенов и получить хоть что-то работающее?

В общем, я принял волевое решение переписать все на С++. Под катом дневник "переписчика", в котором я последовательно описываю все боли и страдания начинающего писателя эмуляторов. Желающим сразу посмотреть на конечный результат можно сходить на https://github.com/kiltum/zxcpp

Читать далее

Хакаем самую дешёвую консоль с Ozon

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

Помните статью про самую дешёвую консоль с Ozon — Sup GameBox? Тогда я рассказал вам о том, что у этого чуда инженерной мысли находится «под капотом» и почему эта консоль не так проста, как кажется на первый взгляд.

После статьи я решил написать письмо производителю процессора этой консоли. И что самое интересно — мне ответили! Даже Спустя 40 лет после релиза оригинальной NES, тайваньская компания V.R.T продолжает развивать архитектуру оригинальной NES. Мне больше ничего не оставалось, кроме как включить фен, достать программатор и хакнуть этот девайс...

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

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