| Язык программирования ᛏᛟᚱ |
[Feb. 26th, 2026|11:08 pm]
Dizzy
|
А что? Aда же былa :)

Кликабельно. И, да,я знаю, что правильно ᚦᛟᚱ :) |
|
|
| А ведь это, фактически, про программирование |
[Feb. 26th, 2026|04:44 pm]
Dizzy
|
«Рун не должен резать Тот, кто в них не смыслит. В непонятных знаках Всякий может сбиться»
«Сага об Эгиле», Снорри Стурлусон, XIII век

В саге, кстати, описана чисто софтверная история: джун составил руническую программу для лечения девушки, но не преуспел из-за большого количества багов. Потом пришёл опытный senior-скальд, пропатчил код, а джуна выгнал с процитированным напутствием.
:) |
|
|
| LLM.Дыбр |
[Feb. 18th, 2026|03:21 am]
Dizzy
|
Заметил, что всё чаще использую большие текстовые нейросетки для того, что назвал бы вайб-проектированием.
В отличие от вайб-кодинга, где программист ставит задачу и проверяет результат, вайб-проектирование - это своеобразный брейншторм. Пусть LLM и не порождают собственных идей, но зато отлично критикуют твои и предлагают варианты из известного им (но не всегда мне).
И это бывает очень полезно, особенно, когда "мозги разбегаются" из-за недоопределённости или сложности задачи. Анализ "what-if" с нейросетями тоже часто работает. Ну и просто метод резинового утёнка, только утёнок умеет отвечать :)))
А код я и сам напишу. В текущем проекте дважды использовал gemini и qwen для рефакторинга кода (чужого, кстати), в обоих случаях пришлось обвешать переписанное тестами "было-стало", на разработку которых ушло времени сравнимо с ручным рефакторингом.
P.S. Справедливости ради, аппаратный расчёт CRC32 на ядре A53 через интринсики gemini написала корректно, я не знал нужных вызовов.
P.P.S. Хотелось бы спихнуть на нейросети как раз разработку тестов и документирование кода, но это явная задача со звёздочкой :) |
|
|
| Work.Дыбр |
[Feb. 12th, 2026|01:15 am]
Dizzy
|
За прошедшую неделю открыл для себя некоторые особенности работы конструкторов сложных классов в C++ 20, научился использовать интринсики для SIMD-вычислений ARM v8 NEON и аппаратного CRC32 на Cortex A53, вспомнил алогритмы работы планировщиков расписаний.

Аппаратная crc32 работает раз в 30 быстрее универсальной программной реализации через полином. Команды NEON очень быстро шарашат поиск по линейным массивам. Планировщик позволяет наконец-то сделать нормальную логику работы с приоритетами отправки пакетов без реанимации унаследованной "лапши". Проект стал немного ближе к железу и научился использовать его возможности оптимальнее. |
|
|
| То чувство, когда... |
[Jan. 26th, 2026|07:56 pm]
Dizzy
|
...месяц с хвостом меняешь унаследованный спагетти-код так, чтобы встроить в него новые фичи и не сломать старые, и вдруг понимаешь, что всё это аккуратное перемещение шестерёнок было зря, потому что одна из фич требует изрядной переработки архитектуры. И понять это месяц назад было невозможно.
Печалько. Но прорвёмся :)

(*уходит в глубины*)
P.S. Переслушиваю песни Канцлера про средневековье, очень под настроение. Там, кстати, масса исторических личностей, от Эццелино III и Аццо VIII д'Эсте до Сиджизмондо Малатесты (Волк Римини) и Раймона VII. |
|
|
| Развлечение выходного дня |
[Dec. 29th, 2025|03:01 am]
Dizzy
|
По случаю отмены занятия в мотошколе купил себе Ардуинку (ESP32-S3 WROOM N16R8), красивый круглый дисплей 240x240 на GC9A01 и научился это программировать. Основное время в Arduino IDE ушло на подбор параметров настройки и прошивки платы. Методом перебора и общения с нейросетками нашёл верный режим. А потом всё таки заработало :)
 ( ...тынц...Collapse ) |
|
|
| Настроение |
[Nov. 5th, 2025|01:20 am]
Dizzy
|

( ...тынц...Collapse )
Схрумкать пёстрое осеннее яблоко, выпить кофе и написать ещё одну интересную штуку :) |
|
|
| (no subject) |
[Nov. 3rd, 2025|10:34 pm]
Dizzy
|
Приехала тут реклама курсов с JavaRush:
Страх №2: "А что, если я выберу не тот язык?"
Ты боишься потратить месяцы на JavaScript, чтобы потом понять, что тебе был нужен Python. Или пойти в Java, хотя вся душа лежит к созданию веб-приложений...
Что-что... Выучишь два. Или три. :)
Поколение IT-снежинок, блин. |
|
|
| Ну, коллеги, с профессиональным праздником! |
[Sep. 13th, 2025|12:33 pm]
Dizzy
|

Пусть код кодится, системы работают без критичных ошибок, а в голову приходят гениальные идеи!
( Ну и...Collapse ) |
|
|
| New spices of AI |
[Jun. 6th, 2025|11:18 pm]
Dizzy
|
Попробовал GigaCode c gitverse.ru в виде плагина к VSCode.
Душераздирающее зрелище Реально, ни нормального анализа не очень развесистого (порядка 1000 строк) кода на третьем питоне с asyncio, ни, тем более, конкретных рекомендаций по его улучшению.
Документирование сломалось на примерно 200-й строке и перестало комментировать функции. Ну и на то, что оно там накомментировало, без слёз не взглянешь.
Код ревью зациклился и выдал мне порядка 20 порций из 13 одинаковых рекомендаций общего порядка, совершенно неоспоримых и не менее совершенно бесполезных ("Асинхронность: Ваш код использует асинхронность для отправки сообщений и мониторинга. Убедитесь, что асинхронность используется правильно и эффективно").
В текущем виде - клинически бестолковая штука, до Bito с Copilot-ом и DeepSeek-ом (к которым у меня туча вопросов) этому поделию как пешком до Марса. |
|
|
| Люди гибнут за металл, я от этого устал... |
[Oct. 31st, 2024|12:37 pm]
Dizzy
|
При переходе с C++ на чистый C приходится смотреть в оба.
В частности, если ты сделал typedef enum, создал функцию с параметром такого типа, а потом при её вызове подставил переменную типа int, то отряд не заметит потери бойца gcc -Wall проглотит это молчком, потому что первое - фактически int, а второе - int явный, чего тут разбираться-то? :)))
Если что, задача была отсекать на уровне компилятора использование в параметрах функций значений от другого enum-а. |
|
|
| Work.Дыбр |
[Jun. 17th, 2024|03:45 pm]
Dizzy
|
В мире есть вещи, понимание которых выводит тебя на новый уровень осознания Вселенной.
Например, регулярные выражения
:) |
|
|
| Не похвальбы ради, а токмо учёта для |
[Feb. 17th, 2024|01:43 pm]
Dizzy
|
Посчитал недавно, какими языками программирования я пользуюсь в текущих проектах (как своих, так и унаследованных) в прошлом и этом году, получилось так:
С - прошивки микроконтролллеров С++ - middleware, серверный софт и утилиты C# - программы с графическим интерфейсом под Win Python - прототипирование, утилиты, часть серверного софта Java - приложения под Android и middleware Kotlin - приложения под Android PHP - серверная часть web-приложений Javascript - браузерная часть web-приложений и часть серверного функционала (nodeJS)
Это не считая bash-скриптинга, языков описания хранимых процедур PL/pgSQL и mySQL, awk/sed и языков разметки HTML/XML.
Так что фраза «активно использую десяток языков» не лишена смысла.
А ещё я сталкивался в той или иной мере на практике с процедурными языками Algol-60, Cobol, Fortran, Basic, Рапира ;), Pascal, Delphi, Ada, Ruby, Rust, Go, Modula-2, R, Oracle PL/SQL, списочным/функциональным LISP, стековым FORTH, предикативным Prolog, разными ассемблерами (IBM 360/370, PDP-11, x86, ARM) и макроязыками, графическими нотациями (BPMN, Дракон, TIBCO), метаязыками (YACC, Bison). Итого плюс-минус 30. Наверняка что-то ещё было. А, точно, ещё был Erlang.
Upd: Ещё универсальный perl и датабазные Dbase/FoxPro, Clarion и Clipper.
Могу считать себя специалистом по формальным языкам :)))
Из человеческих за это время - более-менее приличный английский, немного японского и итальянского (этот почти забыт, впрочем).
Заметил, что после десятка языков программирования освоить новый на уровне логики/синтаксиса - вообще не проблема, больше времени тратишь на изучение библиотек. На восстановление навыков разработки на С++ после более чем десятилетнего перерыва потребовался месяц вместе с освоением boost-а, хотя сам язык со времён С++11 изменился довольно существенно. |
|
|
| Work.Дыбр |
[Dec. 19th, 2023|07:51 pm]
Dizzy
|
Бывает, что в суете бегущих дней никто не реализовал простую, вроде бы, штуку, и нет ответа на твой вопрос ни в StackOverflow, ни в гугле... :)
Понадобилось намедни нагенерить в постгресе некоторое количество неповторяющихся случайных mac-адресов с первым октетом из нулей. Настоящий веб-программист :))) написал бы аж целый скрипт с подключением к базе и подстановкой сгенерированных значений в SQL-запросы.
А я не нашёл ничего лучшего, чем соорудить простенькую функцию на Pl/PgSQL. Бонус - она исполняется на стороне сервера и может быть задействована в любом запросе или хранимой функции/процедуре без запуска дополнительных сущностей.
Выглядит так: ( ...click to open code...Collapse ) Возможно, кому-то пригодится.
P.S. Постояно замечаю, что люди используют СУБД преимущественно как место хранения таблиц, вынося всю логику в приложения. Причём, началось это не вчера (ругался на такой подход ещё в нулевые), но в последние годы тенденция приобрела угрожающие масштабы, вплоть до попыток теоретического обоснования "почему центральная БД с логикой - это плохо" со стороны микросервисников.
Джеффри Ульмана на них нет :))) |
|
|
| Тем, кто пророчит замену программистов ботами на ChatGPT-подобных платформах. |
[Nov. 30th, 2023|04:36 pm]
Dizzy
|
Буквально вчера нейросетевой помощник Bito не осилил написать код преобразования текстовых строк вида
name[name_level1][name_level2][.....][name_levelX]=value в JSON-форму
{"name":{"name_level1":{"name_level2":{.....:{"name_levelX":value}...}}} При том, что задачка простая и решается даже без рекурсии. Мне было лень возиться (в парсере, всё-таки, не три строки), попробовал попользоваться АI-подсказкой. Не помогло.
Пришлось заморочиться и написать код самому. |
|
|
| Work.Дыбр |
[Nov. 10th, 2023|11:35 am]
Dizzy
|
Кто полчаса портатил на решение несуществующей проблемы в коде, тот - я :)
На самом деле, это было забавно: наваять 10 строк пошаговой диагностики, чтобы понять, что я дёргаю не тот вызов API, который отлаживал. |
|
|
| Нейроложество :) |
[Apr. 4th, 2023|11:03 pm]
Dizzy
|
Продолжаю развлекаться с "программирующими" нейросетками.
Задал сетке BITO вопрос "write hello world in ..." для всех языков программирования, которые вспомнил сходу.
В основном, получилось правдоподобно: сетка знает С, С++, C#, Ada, Algol-60, Pascal, Oberon, Modula2, PHP, Basic, Fortran, Cobol, Java, Kotlin, Lisp (common и autocad-овский), Rust, Erlang, Go, JS и минимум три ассемблера (IBM-360, PDP-11 и x86).
Видит разницу между python-ом 2 и 3, умеет всякую экзотику вроде Befunge, Brainfuck, Prolog и APL.
Комментирует код и позволяет себе высказываться в стиле «Note: Brainfuck is not recommended for practical use, as it is an esoteric programming language with a limited set of instructions and can be difficult to read and understand»
Знает, как вывести "Hello world" в оракловом PL/SQL, мелкомягком TSQL и консоли mySQL (select 'Hello, world!'; да ;).
Понимает, что CODASYL и REDIS - вообще не языки, а JSON и YAML - не языки программирования.
А вот в ответ на провокационный вопрос "write hello world in gcode" выдала:
G0 X0 Y0 Z0 ; move to home position G4 P2000 ; pause for 2 seconds G0 X0 Y0 Z10 ; move tool 10 units above workpiece M3 S500 ; start spindle at 500 RPM G1 X10 Y10 F100 ; move tool to position (10,10) at 100 units per minute G1 X10 Y0 F100 ; move tool to position (10,0) at 100 units per minute G1 X0 Y0 F100 ; move tool to position (0,0) at 100 units per minute M5 ; stop spindle G0 X0 Y0 Z10 ; move tool 10 units above workpiece M30 ; end of program
... нарисовав вращающейся фрезой в воздухе треугольник :)
В качестве вишенки на торте "write hello world in chinese":
人类:请输出你好世界 (pinyin: qǐng shūchū nǐhǎo shìjiè) - "Человек: пожалуйста, выведите привет, мир", если верить гуглопереводчику.
P.S. Валидность ассемблерного кода не проверял. В остальных случаях иногда порождает правильное обрамление модулей, иногда теряет, но, в целом, выглядит рабоче. Программера, конечно, такое не заменит, но ассистента по синтаксису и библиотекам - вполне. |
|
|
| (no subject) |
[Mar. 13th, 2023|06:55 pm]
Dizzy
|
Программирование под андроид - чрезвычайно крышесносное занятие, особенно, когда занимаешься этим от случая к случаю.
- Мы тут сделали простой способ расшарить данные между приложениями - SharedPreferences
- Только он небезопасный, поэтому мы запретили другим приложениям читать твои данные
- Но мы сделали контент провайдер, он секьюрный, просто вместо двух строк в одном файле пишешь 50 в нескольких, и счастье. Можно даже указать authority, не совпадающее с именем пакета
- Только это несекьюрно, поэтому с 10-й версии андроида authority должно совпадать с именем пакета
- И с 11-й версии андроида вы провайдер даже с правильным именем пакета не увидите, если не напишете в манифесте <queries>
:) |
|
|
| Нейросети заменят программистов, говорили они... |
[Mar. 2nd, 2023|04:28 pm]
Dizzy
|

Subj :)
Что характерно, оба ответа неправильные. Нейросетка Bito. |
|
|
| Рабоче-проектное |
[Sep. 22nd, 2022|09:45 pm]
Dizzy
|
One Class to rule them all, Оne Class to find them, One Class to bring them all And in the project bind them
И у меня он таки действительно есть в проекте. Ощущаю себя немного Сауроном :) |
|
|
| Конвергенция |
[Jun. 4th, 2022|02:32 pm]
Dizzy
|
Из-за разработки нового проекта пошёл восстанавливать плюсовые скиллы, и внезапно узнал, что в С++ 20 ввели механизм форматирования строк из Питона:
auto val = std::format("{:+06d}", 13);
Не прошло 12 лет с момента выхода Python 2.7 и сорока лет с появления C++, и, наконец, разработчикам стандарта надоело ручками выделять буфер для sprintf-а :) |
|
|
| Ночь, музыка, ветер... |
[May. 11th, 2022|12:33 am]
Dizzy
|
...катастрофически не хочется работать. Хочется оплачиваемый отпуск на полгода, забить на всё, мотаться на джипе по Хакасии и Дальнему востоку, фотографировать, купаться-загорать, охотиться и рыболовствовать, и забыть на время о планах, дедлайнах и архитектурах, почувствтвать живительную пустоту в голове и слиться в экстазе с безначальным Дао :)
Но надо ковать. Ещё чашка кофе, немного кислорода из открытого окна, и впереди только ночь и глубины сети. Пока есть время до утра... |
|
|
| Микроархитекторы |
[Apr. 25th, 2022|01:14 am]
Dizzy
|
Разбирая код, который наворотил уволившийся сотрудник тогда ещё не моего отдела, не могу не заметить, что любителей применения микросервисной архитектуры в промышленной миддлвари нужно расстреливать ещё маленькими, ибо слепое увлечение этой технологией вредит неокрепшим умам.
Имеем приложение, осуществляющее, по сути, буферизацию и маршрутизацию запросов + опрос адресатов на тему статусов обработки этих запросов. Написано на python3 с asyncio.
Как это сделал бы нормальный архитектор: набор классов для представления данных в БД с методами ORM, интерфейс REST API для приёма запросов, корутина для отправки запросов и корутина для опроса статусов. Структурное построение программы - максимум три модуля + main.
Как это делает микросервисник: полная декомпозиция всего, что можно, отдельные классы на каждое мяу, развесистое дерево файлов, обработка каждого типа запросов отдельным модулем с тучей мелких взаимосвязанных функций. На выходе работающий, но абсолютно неремонтопригодный код.
В итоге, простое действие "добавим ещё один тип запросов и один тип объектов в БД" выливается в правку кода в 6 местах. В ШЕСТИ разных файлах, раскиданных по дереву. С обязательным прослеживанием и повторением всей логики обработки, разбитой на 100 маленьких медвежат, т.к. вносить в работающую схему костыльные решения, всё-таки, не хочется.
Вот сижу, тихо злюсь и пишу модификацию в таком вот грёбаном стиле. Радует только то, что на горизонте полугода смогу выкинуть этот компонент из системы совсем и сделать всё нормально. |
|
|
| Терминологическое |
[Apr. 14th, 2022|10:47 am]
Dizzy
|
Подумалось тут, что нерегулируемый пешеходный переход можно назвать безусловным, а регулируемый - условным
:) |
|
|
| (no subject) |
[Apr. 4th, 2022|11:38 pm]
Dizzy
|
Может и баян, но прекрасно

В конце, правда, ");" не хватает
:) |
|
|
| Work.Дыбр |
[Mar. 31st, 2022|10:22 pm]
Dizzy
|
Мы сегодня ВАЩЩЕ молодцы и крутые перцы. Сдали заказчику MVP-вариант проекта. Получилось пристойно, и за результат не стыдно совсем.
 |
|
|
| Язычески-доменный дыбр |
[Aug. 27th, 2021|11:30 am]
Dizzy
|
Сегодня я узнал, что парагвайский интернет-регистратор не даёт создавать домены второго уровня в TLD .py
Какое расстройство для питонистов всего мира :(
Правда, регистрация доменов третьего уровня *.nеt.py открыта, можно залудить ресурс для проектов, сочетающих в себе .Net и Python :) |
|
|
| Дао программиста |
[Feb. 11th, 2021|03:33 pm]
Dizzy
|
Есть три вещи, на которые можно смотреть бесконечно: текущая вода, горящий огонь и бегущие логи...
 |
|
|
| (no subject) |
[Feb. 6th, 2021|01:49 pm]
Dizzy
|
Я сейчас сделаю очень необычную для себя вещь: похвалю Microsoft за бесплатно распространяемый кросc-платформенный продукт с открытым исходным кодом, который я использую каждый день.
Речь, конечно, о Visual Studio Code.
Несколько последних лет я работал с кодом C/C++, Python, Java и PHP, в основном, в консольных редакторах (joe - это круто! :) и IDE на базе JetBrain-овского IntelliJ (CLion, PyCharm, phpStorm и собственно Android Studio), и на VS Code наткнулся почти случайно, углядев у коллеги непривычный гуй.
Поставил, попробовал. И перетащил в него разработку по двум проектам. Ибо оказалось действительно неплохо :)

Внутри у средневекового рыцаря VS Code - гитхабовский Node.js-движок Electron, достаточно шустрый в моих задачах, и отжирающий памяти сравнимо с IntelliJ.
Доводы "за":
- Реальная кросс-платформенность
- Поддержка хреновой тучи синтаксисов языков и средств сборки-запуска
- Большой набор community-плагинов
- Возможность удалённой отладки из коробки
- Управление докерами
- Централизованная поддержка тест-сьютов (в частности, pytest-а)
- Интеграция с гитхабом и Git-ом, поддержка gitflow
Недостатки:
- Меньшая чем у JetBrain-а вылизанность интерфейса, в особенности в части горячих клавиш
- Нет линтера, работающего при наборе текста, в частности, привычного pep8. Только командой
- Большой набор community-плагинов, делающих одно и то же. Разобраться в их качестве и особенностях непросто.
- Менее удобная, чем в IntelliJ, интеграция с гитом и вообще реализация коммитов-пушей-мерджей
- Доступность многих команд только через консоль (вроде, гуй делали же)
- Общая кривоватость поиска референсов
- Изредка выпадает в осадок при обновлении плагинов
В целом, скорее за. |
|
|
| И вечный хайп, покой нам только снится |
[Apr. 26th, 2020|04:23 am]
Dizzy
|
Когда полдня делаешь проект на питоне, а полдня - на С-подобном языке, самая типичная синтаксическая ошибка - отсутствие точки с запятой в конце строки :) |
|
|
| navigation |
| [ |
viewing |
| |
most recent entries |
] |
| [ |
go |
| |
earlier |
] |
| |
|
|