Обновить
128K+

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

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

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

Запуск Open-Sora на 15 ГБ VRAM: Реверс-инжиниринг, monkey-patching и борьба с NaN-ами

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

Запуск современных Text-to-Video моделей локально — задача не для слабонервных. Когда китайские исследователи из PKU-YuanGroup выложили в open-source свою модель Open-Sora-Plan, энтузиасты бросились её тестировать. Но есть нюанс: оригинальный пайплайн рассчитан на кластеры уровня H100/A100. Веса модели в полном разрешении занимают десятки гигабайт.

Моя цель заключалась в том, чтобы запустить инференс Open-Sora-Plan (v1.3.0) в спартанских условиях — на абсолютно бесплатном инстансе Google Colab с видеокартой NVIDIA T4 (15 ГБ VRAM, архитектура Turing 2018 года) и 12.7 ГБ системной ОЗУ.

Спойлер: скрипт отработал от начала и до конца без OOM (Out of Memory). Но для этого нам пришлось вскрывать исходники, бороться с аппаратными лимитами GPU и в прямом смысле делать нейросети математическую «лоботомию».

Читать далее

Новости

ПМК и Кастанеда. Часть 6. Искусство сновидения

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

Продолжение серии статей о параллелях между недокументированными особенностями советских ПМК и концепциями Карлоса Кастанеды, начало — тут..

Первые восемь книг я успел прочитать встарших классах школы. Девятая книга попала мне в руки с большим перерывом, уже в официальном издании от Киевской «Софии», когда я учился в универе, и ПМК использовался в основном для обсчёта лаб с физпрактикума. Прочитав её, я снова вспомнил про исследования «электронного океана».

В этой части мы продолжим знакомство с неорганическими существами из глубин электронного океана, описанных в журнале Техника‑Молодёжи, а я расскажу о тех аналогиях, которые увидел в девятой книге Кастанеды — «Искусство сновидения».

Читать далее

OpenGL в PHP не привлекая внимания санитаров: Привет, OpenGL

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

В предыдущей статье мы открыли окно. Теперь давайте его не просто игнорировать.

Как на счёт вкорячить в него поддержку OpenGL?

Читать далее

OpenGL в PHP не привлекая внимания санитаров: Hello Window

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

Это ведь когда-то должно было произойти...

В мире уже есть примерно бесконечное количество туториалов формата "OpenGL Tutorial" (раз, двас).

Возникает логичный вопрос: Зачем ещё один?

Ответ: Чтобы наконец перевести их!

Так что я просто их решил перевести с С/С++ на PHP. А вы что подумали? Я с английского их переводить собрался?

Читать далее

ПМК и Кастанеда. Часть 5. Точка сборки

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

Продолжение серии статей о параллелях между недокументированными особенностями советских ПМК и концепциями Карлоса Кастанеды, начало — тут...

Читать далее

ПМК и Кастанеда. Часть 4. Второе внимание

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

Продолжение серии статей о параллелях между недокументированными особенностями советских ПМК и концепциями Карлоса Кастанеды, начало — тут...

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

Читать далее

Как я переводы видео автоматизировать собирался

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

2 года назад переводил я локальными моделями WoW на русский язык (https://habr.com/ru/articles/818513/) и тут недавно возобновил канал свой на YouTube-ах этих ваших, но выкладывая нарезки со стримов про прогу (https://www.youtube.com/@the_homeless_god). И в тестовом режиме переозвучил видео от Fireship про OpenClaw. Да и на тех же стримах возник концепт про цифровые замещения и аватары.

И вот сижу я и думаю, что, например, владея английским языком смотреть могу видео в оригинале, но, тот же Veritasium смотрел в оригинале всего несколько раз, так как мне ближе адаптационная озвучка от Vert Dider. А я чем хуже? Правильно, мне лень этим заниматься на стабильной основе. Что я могу сделать? Автоматизировать за несколько часов часть процесса, который по-хорошему должен занимать 15 минут, зачем тогда десятый год я программирую?

В общем, статья написана как всегда в стиле (б|в)лога, потому заваривайте чай, мы начинаем писать cli и десктоп для переозвучки с помощью локальных моделей ollama!

Ну чё погнали

ПМК и Кастанеда. Часть 3. Неорганические существа

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

Следуя традиции древних видящих, статьи КЭИ (Клуб Электронных Игр) из журнала ТМ, фактически, содержали две части. «Обучение для правой стороны» давалось в виде повести Михаила Пухова «Путь к Земле» и серии «космических программ», позволявшим вместе с героями повести совершить перелёт с Луны на Землю. 

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

Находки исследователей советских ПМК были не менее впечатляющими, чем открытия шаманов древней Мексики. Поэтому, с моей точки зрения, они вполне заслуживают чести называться советскими видящими.

Настойчивые и неуклонные исследования советских видящих привели их к открытию «электронного океана».  Вот цитата из того памятного номера:

Читать далее

Безумие препроцессора: внедряем do-нотацию для монад из Haskell в C++

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

Добро пожаловать в чистилище препроцессора — место, где здравый смысл уступает место макросам. Сегодня мы заставим C++ притвориться Haskell-ем и внедрим do-нотацию, за которую любой адепт «чистого языка» предаст нас анафеме.

Программисты на C++ делятся на два типа: те, кто боится препроцессора, и те, кто познал сие древнее чудо с сишных времён.

Сегодня мы перейдем черту. Функциональное программирование манит своими абстракциями, но когда дело доходит до цепочек вычислений в монадах, C++ встречает нас бесконечными лямбдами и вложенностью, от которой рябит в глазах. В Haskell эта проблема решена элегантным do-синтаксисом. А что, если я скажу, что мы можем получить то же самое в C++, используя лишь тёмную магию макросов, простые шаблоны и полное пренебрежение здравым смыслом?

Приготовьтесь: мы будем дорабатывать парсер и превращать ваш код в нечто, что заставит коллег вызвать экзорциста. Это история о том, как затащить чистую красоту монад в суровый мир C++.

Запустить конвейер безумия

VRack2 — Кот аристократ в мире локальной автоматизации

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

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

По сути это компиляция моей работы за последние несколько лет. Важно подметить - моей и только моей.

Если какая-то тема не привлекает - просто переходите к следующей, скорее всего на что-нибудь интересное наткнетесь.

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

Ну что, поехали!

Режим отладки правил для ИИ-агентов

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

Проблема, которую ощущают многие, но решают немногие.

Вы запускаете Zed, Kiro, Cline, Claude Code или Qwen. Описываете задачу. Агент создаёт код. И вот он перед вами... Иногда качественный. Иногда — беспорядочная смесь чужих стандартов, случайных шаблонов и игнорирование структуры вашего проекта.

Вы поправляете. Объясняете снова. Поправляете. Через час понимаете: вы тратите больше времени на управление агентом, чем на саму задачу. А всё потому, что у вас нет режима отладки агента.

Знакомо?

Цифровая капсула времени на чистом Go: почему для вечности не нужны базы данных и фреймворки

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

А что, если современные технологии для большинства вещей избыточны? В проекте «ЭХО» я решил проверить это на практике, создав цифровую капсулу времени для потомков. Цель — позволить людям оставить память о себе (фото и мысли) в максимально простом и «вечном» формате.

Технически это эксперимент по созданию системы на 250 млн анкет без баз данных, фреймворков и лишних слоев — только чистый Go и минималистичный Linux. В этой статье я поделюсь опытом, как заставить обычный ПК работать с такой нагрузкой, используя лишь стандартную библиотеку и файловую систему.

Читать далее

Гит в Телеграм?

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

На своем тг-канале я предлагаю подписчикам выбор, какую бредовую идею запилить следующей. На этот раз подписчики выбрали новый челлендж: сделать Git в Telegram. Чтобы можно было через бота инитить проекты, пушить файлы, коммитить — и всё это в публичном канале с тредами.

С практической точки зрения этот проект нахуй не нужен. Есть гитхаб, есть гитлаб, есть куча нормальных инструментов. Но как эксперимент — почему бы и нет? Чисто посмотреть, можно ли заставить Telegram работать как VCS.

Я тогда подумал: «Ну, бот на aiogram, база данных, пара команд — делов то))»

Словари, датаклассы и прочая е*атория

Когда я только начинал, первая мысль была: «Положу всё в JSON, на кой мне база данных?» Ну серьёзно, проектов мало, пользователей немного, файлы текстовые че заморачитватся.

Подергал JSON туда-сюда пару дней и понял: не варик.

Во-первых, конкурентный доступ. Два юзера одновременно коммитят — один из них перезаписывает файл другого. Во-вторых, целостность данных. Если бот упал в середине записи — JSON остаётся в невалидном состоянии. В-третьих, версионность. Хранить историю изменений в JSON — это просто перенести проблему из кода в структуру файла.

Короче, JSON — для конфигов, а не для данных, которые меняются каждую секунду.

Выбор пал на SQLite.

Почему:

Читать далее

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

Нескучное программирование. Обобщения (ч.1)

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

Представьте на минуту, что C++ — это не набор странных ключевых слов и ошибок линковки, а всего лишь ещё один способ поговорить о мире вокруг нас: о людях, числах, цветах, событиях и котах. Мы привыкли думать о программировании как о чём‑то сугубо техническом, где важно запомнить синтаксис, расставить точки с запятой и “угадать”, чего сейчас хочет компилятор. 

Но если задать себе вопрос «а чем вообще оперирует программа?», внезапно выясняется, что за всеми этими int, struct и template прячутся довольно простые и понятные идеи: вещи, их свойства, группы похожих вещей и правила, по которым одни вещи превращаются в другие.

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

Когда философы и логики говорят об абстрактных сущностях, они имеют в виду индивидуальные вещи, которые не существуют в пространстве и времени так, как существуют стол, человек или компьютер, а как нечто неизменное: например, число 13 или сам по себе синий цвет не родились в какой‑то момент и не "умирают" через какое‑то время, это не объекты физического мира, а идеи, с которыми мы работаем в голове и в математике. 

Читать далее

ПМК и Кастанеда. Часть 2. Тональ и Нагваль

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

Продолжая исследование возможностей ПМК, по ночам я зачитывался Кастанедой. Привожу здесь эти цитаты, потому что недокументированные операции, чем дальше тем больше, напоминали мне слова Дона Хуана. Рутинные процедуры использования ПМК, описанные Руководством по эксплуатации, были «областью известного» или «тоналем». А всю деятельность с использованием недокументированных операций я, вполне естественно, называл «нагвалем», или «походами в неизведанное».

Аналогия казалась мне вполне подходящей, «недокументированные операции» назывались так именно потому, что никак не были описаны в Руководстве. О них писали только в журнале Техника‑Молодёжи, но и там никто точно не представлял, почему и как работают эти ритуалы с ЕГГОГами.

Читать далее

Неизвестные известные алгоритмы и трюки на языке C

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

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

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

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

Добро пожаловать в новую часть. Прошу под кат — там будет жарко, быстро и очень, очень интересно.

Читать далее

Видеорежимы в восьмибитных компьютерах. Coolsystem — Часть 2

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

В данной статье кратко рассмотрены видеоконтроллеры для следующих ретро-компьютеров: ZX Spectrum, Вектор 06Ц, Commodore 64, Commodore PET, Микроша, Радио-86РК, БК-0010, Агат (модели 7 и 9) и Апогей БК-01Ц.

Поскольку мой будущий самодельный компьютер их косвенно поддерживает, необходимо собрать информацию в одном месте.

Читать далее

ПМК и Кастанеда. Часть 1. Союзник

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

Что для тебя действительно необходимо – это постараться заполучить «союзника»

Карлос Кастанеда. Учение_дона_Хуана.

Моё знакомство с советскими программируемыми микрокалькуляторами (ПМК) оказалось заочным и состоялось в школьной библиотеке. Листая подшивку журнала Техника-Молодёжи за 1985 год в поисках очередного фантастического рассказа, я наткнулся на строчки странного шифра из смеси букв, цифр и непонятных символов. Выглядели они необычно...

Читать далее

Бойтесь буквы «M». Самый странный баг в моей жизни

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

Вечером в пятницу коллега, назовем его Мститель, спросил, не сталкивался ли я с проблемой, что route возвращает 400... но «если сменить название на сильно другое», то всё ок. Я сперва не обратил внимание на слово «сильно». Может быть, где-то дублируется регистрация этого рута? Или мститель перепутал GET и POST. Или какой-то баг в общем на создание хэндлеров?

Милости просим

Как обычному разработчику попасть в сообщество открытого ПО и стоит ли это делать

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

На дворе 2026 год. Сообщество открытого ПО больше не про энтузиастов в подвалах или душных стариков, которые часами спорят за Pull Request +1/--1. Современная разработка открытого ПО напоминает толкучку: одни срочно переписывают код на Rust, другие так же срочно его оттуда выкидывают, а корпорации скупают проекты за миллиарды.

Наблюдая за всей этой вакханалией, я поймал себя на мысли, что сообщество открытого ПО выглядит, мягко говоря, непритязательным для новичков. Какие-то там роли, правила, коммерциализация, нейрослоп. Но именно здесь и сейчас люди продолжают делать работающие продукты. Зачем и как? Попробуем разобраться.

Я сам — разработчик и популяризатор открытого ПО, а также организатор сообщества питонистов в Новосибирске. Создаю свои проекты и активно помогаю dishka, faststream, wemake-python-styleguide и другим.

Я собрал знакомых контрибьюторов, записи с митапов и последние новости, чтобы рассказать, как устроено сообщество открытого ПО изнутри и нужно ли вам туда вообще. А если нужно — то с чего начать, если кнопка отправки запроса до сих пор внушает иррациональный страх.

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