Журнал инженера-программиста

Журнал инженера-программиста

@software_engineer_notes

Мир глазами программиста. Истории и размышления.Автор: @Dementor_AKhttps://www.linkedin.com/in/dv-kinash

244подписчиков
Несколько раз в неделю🇷🇺

Похожие каналы

Все →

Последние посты

Журнал инженера-программиста — пост в ТГ канале

Увидел интервью с Джорджем Мартином, автором "Игры Престолов". Любопытно, что уже успел забыть про него и про то, что в книжной истории должно быть еще два тома - ведь автор 14 лет никак не закончит "Ветра Зимы" (предпоследний согласно плану).Мартин говорит, что написал для этого тома уже много. Так много, что сам запутался в собственном материале:Я написал главу о Тирионе, которая мне очень понравилась, но потом понял, что она изменит всю книгу. Я готов был превратить ее в серию снов, но это бы тоже не сработалоЕще он жалуется на давление от сериала, который экранизировал его книгу. С одной стороны у него есть реакция читателей на некоторые сюжетные ходы, с другой стороны он сам пересмотрел отношение к некоторым персонажам под влиянием харизмы актеров:Я собирался убить больше людей и не тех, кого убили в сериале. Я не вижу счастливого конца для Тириона. Вся его история с самого начала была трагичной. Я собирался убить и Сансу, но она была такой привлекательной в сериале, что, может быть, оставлю ее в живыхАвтор рассказал, что во время ковида уехал в лесную хижину с желанием закончить книгу, но почувствовал, что изоляция отдалила его от жены и он решил отложить книгу и вернуть семью на первое место. Еще автор жаловался на неблагодарных фанатов, которые ставят ему в упрек, что он безответственный и скорее умрет от старости, чем закончит книгу. Это его очень разозлило, так как многие его друзья уже умерли, включая Роберта Редфорда, который тоже его пинал на счет завершения книги.=====Можно было бы пожалеть Мартина, от которого на старости лет требуют слишком многого, но только если забыть, что он паралельно рубит бабло на других книгах, сценариях к сериалам и творческом контроле над "Домом дракона" и "Рыцарем Семи Королевств" (сериалы-приквелы к "Игре престолов"). Если закрыть глаза на факты и только читать интервью, то да - он старый, нет сил на творчество...

7 апр. 2026 г.209В Telegram
Журнал инженера-программиста — пост в ТГ канале

🚗 Еще один баг платформы.А вы знали, что если перехватывать в расширении процедуры из привилегированного модуля, то они выполняются в режиме без привилегий?Дело в том, что в общих модулях в расширениях не предусмотрели свойство "Привилегированный" (Privileged), а потому механизм расширений выполняет код как обычный. Если чесно, то выглядит как глюк, а не как взвешенное архитектурное решение.Если у вас далее по коду есть проверка привилегий и вы не хотите получить ошибку, то вам придется явно повысить привилегии:#InsertSetPrivilegedMode(True);#EndInsert

6 апр. 2026 г.191В Telegram

Я попробовал вайбкодить (точнее писать код выше уровня учебного пет-проекта на языке, который практически не знаю) в среде Google Antigravity. В целом все получилось, но были нюансы.Сразу о плюсах:0) Antigravity - это VS Code, а следовательно крутые общие плагины, из которых я сразу установил: работу с Go, GitHub, Markdown, Mermaid (диаграммы Markdown) и специфический Antigravity Cockpit для анализа использования токенов.1) чат агента поддерживает простую смену LLM - если закончились токены на Claude Opus, то работу можно заканчивать с GPT или моделями Gemini.2) можно вести несколько чатов и переключаться между ними из истории (например, для параллельных взаимозависимых робот, когда не хочешь перегружать контекст конкретного агента суммарным описанием задач)3) агенты мультимодальны, а не чистый текст - я не доверял голосовому управлению, но очень часто отправлял скриншоты проблемных ситуаций и модели их отлично понимали.4) даже при завершении лимитов всех моделей, умное редактирование кода продолжает работать (автодополнение имен переменных, автозавершение типовых блоков кода, перемещение по умному Tab и так далее)5) когда программа падает с ошибкой или выводит в консоль отладочную информацию, то содержимое консоли можно выделить и тут же задать агенту вопрос по проблеме или даже просто потребовать исправить.6) когда синтаксический контроль подсвечивает ошибку в коде, то при наведении мышкой можно не только прочитать описание ошибки, но прямо тут нажать кнопку исправления и тем самым запустим агент на исправление проблемного места.Но были и минусы:1) Режими работы иногда не работали - если Claude Opus/Sonnet в режиме Плана еще как-то придерживались правил и сперва предлагали на утверждение свои работы, то родные для системы Gemini (и PRO, и Flash) очень часто плевать хотели на условности и сразу начинали что-то менять в коде, не спросив разрешения и не показав план.2) В какой-то момент сломалась история чатов и я мог перейти только в некоторые из старых, а все новые

5 апр. 2026 г.182В Telegram

Чем интересен язык Go1. Прост и лаконичен. Он настолько прост, что в языке всего 25 ключевых слова (для сравнения 50 в Java, 90 в C++, а в 1С даже не считая языка запросов и языка СКД - целых 151). 2. Обратно совместим. Уже с самой первой версии языка, разработчики Go пообещали, что любой написанный код будет успешно выполняться на всех последующих версиях языка. Всем знакомы примеры, когда код перестал работать при переходах Python 2 -> Python 3, PHP 3 -> PHP 4 -> PHP 5, 1C 7.7 -> 1C 8.0/8.1 -> 1C 8.3/8.5... А на Go можно найти репозиторий десятилетней давности и он сразу будет работать на текущем компиляторе!3. Единый стиль. С языком поставляются стандартные проверки оформления и стиля кода - "go fmt" (правильное форматирование), "go vet" (проверка на ошибки и подозрительные места) и "golint" ("дотошник" по стилю, который отругает даже за лишний перенос строк или его отсутствие). Как результат, большинство проектов на Go выглядят очень похоже и для программистов не проблема переключатся между проектами и заняться чем-то новым.4. Уникальные конструкции. По сути это местный синтаксический сахар и возможно подобное есть в других языках, но я встречаю такое впервые. Ключевое слово Defer описывает команды, которые нужно выполнять при завершении текущей процедуры - т.е. если вы явно открыли файл, то тут же можете оставить завершающую команду по его закрытия, чтобы бы не забыть и далее описывать только логику чтения/записи. Slice как уникальный динамический массив, чтобы явно не выделять память и потом не заниматься явным переносом данных на новое место, когда нужно добавить элемент в уже переполненный массив.5. Особая обработка ошибок. Большинство функция возвращают два результата - сам результат и ошибку (если ошибки не было, то nil), а разработчик в точке вызова сам думает что с этим дальше делать. Исключений и Try-Catch тут как таковых нет, но можно бросить "панику", которую нужно в текущем потоке (горутине) обработать в блоке defer или вся программа упадет. А еще ту

1 апр. 2026 г.203В Telegram
Журнал инженера-программиста — пост в ТГ канале

За прошедшие два дня я уже достаточно сообщил предысторию проекта и пора заканчивать с интригами 🤓Результат моего экспериментального обучения языку Go тут: https://github.com/DementorAK/photometaГотовые бинарники можно взять из раздела релизов. Но сразу предупреждаю, что это консольная утилита и для запуска GUI варианта все равно нужен запуск из консоли с указанием ключика (в README.md все детально описано).Если среди моих двух сотен читателей еще кто-то кроме @ellavs знает язык Go, то буду признателен за ваш фидбек.Но это еще не все. До конца недели будут еще три материала, чтобы подвести черту:1) впечатления от Go, его идеологии и базовых утилит2) Google-вабкодинг - что могло пойти не так? проблем хватило3) неделя попыток задеплоится на Github - взрывы мозга из-за CI #эксперимент #обучение #Go #AI #ИИ

31 мар. 2026 г.202В Telegram

(начало)Выбор идеи для пет-проекта на GoЯ как раз в новостях прочитал про очередное OSINT-расследование по GPS-координатам из фоток. Любопытно. Почему бы не анализировать EXIF и прочие метаданные?К тому же это не накладывало на меня никаких обязательств, так как это хоть и не создание 100500-й версии ToDo-списков или домашних финансов, но различных бесплатных EXIF-сервисов в интернете просто море, практически в каждом графическом редакторе есть просмотр и изменение мета-тегов, уже не говоря про мегапопулярную опенсурсную утилиту ExifTool.Собрал для реализации короткий список типов изображений, которые поддерживают именно EXIF мета-теги: JPEG, TIFF, PNG и WebP. Небольшой список. Ведь некоторые популярные форматы (такие как BMP) вообще не содержат встроенных метаданных. А другие же (как GIF) могут содержать лишь метки XMP, но их можно засунуть почти всюду и я решил не распыляться.Хотя именно для GIF я хотел сделать исключение и даже добавил его в детектирование типов файлов для извлечения меток, но потом о нем позорно забыл. Это к слову, о необходимости иметь проигнорированный мною PRD (концепция, требования и поведение) даже на микро-уровнях пет-проектов.Поскольку я все равно "вскрывал" бинарники картинок и вытаскивал EXIF, то решил заодно вытащить другие популярные (благодаря Photoshop) форматы: IPTC и XMP.Библиотечные функции анализа файлов сами по себе не интересны и потому к ним нужен интерфейс. Я выбрал все возможные варианты: работа в консоли с аргументами командной строки, работа в консоли в режиме каналов (Piping), работа как web-сервер и работа в привычном оконном графическом интерфейсе.Я старался максимально опираться на стандартную библиотеку, но там не предусмотрели работу с GUI и пришлось выбирать среди ряда популярных вариантов: - Wails, что-то типа Electron - нужно описать HTML-интерфейс, который будет работать поверх встроенных WebView2/WebKit;- Gio, который использует нативные графические элементы из DirectX, Metal и Vulkan/OpenGL, что полнофункциона

30 мар. 2026 г.181В Telegram

===Челлендж-эксперимент по изучению языка Go===Почему Go? У меня периодически возникают идеи, для которых нужен быстрый и стабильно работающий бэкенд. В очередной раз проанализировав современные языки я пришел к выводу, что Go тут просто идеален (лучше только Rust). Единственный минус - я его абсолютно не знаю.Ранее я уже перечислял варианты, как можно было бы выучить новый язык. Но мне хотелось бы поэкспериментировать не только с использованием новой технологии программирования, но и с новыми технологиями обучения. Попробовать ИИ-обучение!Еще десять лет назад обучение с помощью ИИ было научной фантастикой. Уже три года назад можно было просить у чат-ботов от OpenAI и Anthropic объяснить какую-то тему - ответ мог оказаться по большей части галлюцинацией, но иногда позволял получить "озарение" и дать верное направление поисков. И, наконец переходя к сегодняшнему дню, мы видим, что в большинстве ИИ-сервисов появились специализированные режимы обучения, а популярные Youtube-блогеры все чаще советуют GPT-ментора вместо посещения курсов.Но как построить эффективное обучение, чтобы не попасть на долгие месяцы в уже классическую ИИ-петлю "давайте рассмотрим этот редкий и почти не используемый случай подробнее с примерами и но без воды"?Мой эксперимент поставлен как попытка эффективно использовать современную мощь ИИ, но при этом не позволять "ментору" перехватывать инициативу и лично контролировать каждый шаг обучения. Суть испытания в девяти пунктах:1. Выбираю ОДНУ идею и выполняю ее разработку на Go от создания проекта до публикации на Github2. Всю разработку и сопровождение делаю исключительно в ОДНОМ инструменте - Google Antigravity3. В качестве своих рабочих ИИ-моделей использую только те LLM, которые доступны в Google Antigravity (Claude Opus/Sonnet, GPT-OSS, Gemini PRO, Gemini Flash)4. НЕ покупаю подписку и ВСЕ делаю исключительно в рамках недельных лимитов бесплатного использования5. Если лимиты уже закончились, а идеи еще остались, то можно в качестве исключения о

29 мар. 2026 г.161В Telegram

(начало)Почему Antigravity, а не Cursor, Copilot, Claude Code или что-то иное? Каждый инструмент имеет под собой определенную идеологию использования. Мне для учебных целей консольные инструменты абсолютно противопоказаны - ведь нужно контролировать и структуру проекта и каждую строчку в каждом файле. Так же зачем запуски дебага, линтера, тестов и билдов делать вручную в консоли, если для этого есть удобные кнопочки в IDE? Среди доступных IDE самые простые, легковесные (и бесплатные) - это VS Code и его клоны. Каждый вариант имеет существенные различия и потому пользуются спросом у различных категорий специалистов. Тот же Cursor, например, имеет собственную ИИ-модель (на базе китайского опенсурса) и поддерживает разработку SDD - все это создает ему популярность, но мне сейчас этот все не нужно. В общем, я попробовал несколько и именно Antigravity по моим субъективным ощущениям максимально подошел для целей обучения.Почему я решил ограничится бесплатными лимитами и не купил подписку?Все просто. В покупке для меня не было смысла. Я иногда даже не использовал все бесплатные токены - ведь на эксперимент я выделял вечера после работы и выходные, а следовательно не особо много времени. Так же паузы в ожидании возобновления лимитов - это тоже важное время, когда можно погуглить вспомогательные статьи на тему. А еще это время просто поразмышлять над уже полученной информацией, дать ей время "утрястись" в голове. Если подумать, то ограничение запросов к ИИ-моделям тоже является частью учебного процесса. Нельзя бесконечно полагаться на чужое мнение и разводить длительные обсуждения (которые, к слову, токсичны для контекста так как размывают фокус). Идеальный диалог разработки фичи состоит всего из 4 сообщений: 1) сама задача с максимальным контекстом от меня, 2) план выполнения от ИИ с уточняющими вопросам, 3) мое подтверждение плана и ответы на вопросы, 4) результат работы с возможность принять или отклонить. На этом тут уже всё - новая фича будет в новом чате.А еще огранич

29 мар. 2026 г.160В Telegram

Какие варианты изучения новых языков программирования вы знаете?==========1) Пойти в технический ВУЗ на разновидность кафедры автоматики (или лицей, где школьникам уже преподают программирование). Я так на протяжении семестров в формате лекций и лабораторных изучал C, C++, Pascal, Prolog, SQL, ESQL/C и так далее. С одной стороны мы хорошо знали базы изучаемых языков, но с другой стороны почти ничего из этого не пригодилось никому из моих однокурсников (кроме ребят, которых пригласили писать вирусы на C++, но там отдельная история)2) Прочитать книгу по программированию. Лично я так изучил многие языки, с помощью которых зарабатывал деньги. Тут поинтересней, так как я сам выбирал, что учить:2.1) Сперва в универе меня заинтересовал ASM, которого не было в моей учебной программе, но который я выучил дома по книге в летние каникулы между первым и вторым курсом (компа у меня не было), а потом зарабатывал написанием лабораторных и курсачей для "безопасников". 2.2) Далее меня заинтересовал PHP (у меня была книга по 3-й версии и я на своем опыте набивал шишки при переходе на 4-ю): а) сделал прототип форума, в котором структурированное содержимое базы с помощью XSLT преобразовывалось в HTML-странички, б) делал прокси-портал для 1С:Архива, в) кастомизировал для OpenCart обмен с 1С 2.3) Когда я ради прибавки к степендии пошел программировать на Foxpro, то изначально я не знал о нем ничего, но очень быстро продвинулся именно по книгам, обойдя коллег.2.4) По книге Брюса Эккеля я освоил Java, которая пригодилась мне чуть позже для разработки Android-приложений (когда мобильной платформы 1С еще не было)2.5) Как-то купил карманный справочник по WEB и углубленные знания HTTP, CSS и JavaScript мне пригождались довольно часто и на разных работах.3) Пойти на курсы. Вероятно это самый "правильный" путь, но все зависит от качества самих курсов. У меня всего два опыта - позитивный и не совсем. Когда я писал на PHP надстройку над 1С:Архивом для УИТ, то мне предложили присоединится к новой

29 мар. 2026 г.151В Telegram
Журнал инженера-программиста — пост в ТГ канале

На Инфостарт какие-то новые правила?Только что не смог авторизироваться. Вместо традиционного логина/пароля на странице авторизации просило только почту, а когда указал почту для оповещений, то выдало ошибку, что компания не купила мне PRO-подписку 😳Хорошо, что на одном из ноутов у меня висела сессия. Там в настройках привязал себе Google-аккаунт - только после этого с помощью Google на компе смог наконец-то зайти в свой аккаунт.

27 мар. 2026 г.174В Telegram