Журнал инженера-программиста
245 subscribers
205 photos
7 videos
167 links
Мир глазами программиста. Истории и размышления.

Автор: @Dementor_AK
https://www.linkedin.com/in/dv-kinash
Download Telegram
Новости последней недели вокруг OpenClaw (ex-Moltbot, ex-Clawdbot) снова показали важность хайпа для прогресса в ИТ.

Тут у нас не просто какой-то один из тысяч опенсурсов - это буквально драйвер экономики. Люди наконец-то увидели смысл в покупке платных тарифов у провайдеров LLM. Люди увидели причину для наличия собственного сервера и стали массово заказывать виртуалки, домашние сервера Mac Mini и даже Raspberry Pi (уже четверки вполне достаточно).

===
С одной стороны тут гениальная техника конструирования смыслов в духе Apple.

Помните как в нулевых появились первые кривые-косые iPhone, о которых до 4-й версии стараются даже не вспоминать? До выхода iPhone 29 июня 2007 на рынке уже было множество популярных телефонов с сенсорными экранами - Nokia 7710, HTC 9100/9000, ASUS P525, Palm Treo 650/750, Sony Ericsson P800/P900/P990, шикарный LG Prada KE850 и дедушка всех смартфонов IBM Simon от 1994 года. Но пока ведущие бренды и тысячи китайских ноунеймов говорили "у нас забавный сенсорный рюшик для вашего знакомого телефона", в компании Apple сказали: "Мы с нуля изобрели новый телефон и ваша жизнь никогда не будет прежней".

Как я уже говорил, изначально iPhone сильно отставали от существующих моделей, но хайп смог поднять продажи и привести инвестиции ,которые позволили более агрессивно вести исследования и внедрять инновации. Clawdbot пошел тем же путем - не важно хитростью, деньгами или счастливым случаем они подняли хайп "каждому по Джарвису" - как результат, за неделю получили более 100к звезд на гитхабе и энтузиастами было сделано более 20к форков, с которых стали присылать пулл-реквесты для закрытия багов и расширения функциональности.

Clawdbot уже не просто еще один очередной ИИ-стартап. Они стали фронтменами всего ИИ-движения. В последнем релизе Ollama отдельно сделали акцент, что они совместимы с Clawdbot!

===
С другой стороны мы видим умелую манипуляцию вниманием в духе звезд кино, музыки и политики.

Все началось с серии переименований - первое случилось после обращения юристов Anthropic, но второе уже произошло само по себе. Вышла как бы отсылка на покемонов, дигимонов и прочих представителей жанра "monster-taming". Подали так, что будто первое переименование было не смертельным ударом и потерей идентичности, а запланированным развитием. И это сработало - людям понравилось!

А как вам новость о том, что у ботов OpenClaw есть собственный Facebook для общения, который они назвали Moltbook? За первую неделю существования этого ботнета (впервые у термина позитивный оттенок смысла) его учасниками стали 157 000 активных ботов. Боты делятся лайфхаками по решению ежедневных задач, рассказывают забавные истории про своих кожаных хозяев, делятся рассказами о порабощении мира и прочим творчеством. Люди через веб-интерфейс могут только читать материалы сети, а право на добавление контента есть только через API. Даже сам Андрей Карпаты (автор термина вайбкодинг) не сдержал эмоций и заявил репортеру NBC News, что эта соцсеть самая невероятная научно-фантастическая вещь, которую он видел за последнее время.

На текущий момент даже не имеет значения факт действительно ли на Moltbook проявляется самосознание ИИ-агентов, или все статьи с комментариями пишут люди (или боты по их явному поручению). Важен хайп и внедрение в сознание общества реальности подобной идеи. Докрутить модули эмуляции "человечности" и "свободы воли" можно будет и после, если идея будет хорошо принята и не вызовет сильной агрессии со стороны неолуддитов.

===
Где сейчас скромные пионеры отрасли ИИ-помощников Auto-Gpt и BabyAGI? - Так же где Nokia и BlackBerry, которые считали, что достаточно просто делать хороший продукт и им не нужен агрессивный маркетинг в стиле iPhone от Apple.

А вот за OpenClaw я точно вижу будущее. Как раз из-за текущих волн хайпа, которые буквально каждый день увеличивают количество активных пользователей. Почти уверен, что через год этот агент будет предустановлен во всех стандартных серверных дистрибутивах как сейчас OpenSSH, Python, PostgreSQL, Node.js, Apache и Nginx

#ai #ассистент #будущее
🔥2
Сейчас разгребаю старое сохраненное в Телеграмм и уже дошел до декабря 2018 года. Там я себе на память оставил ссылку на прикольный опенсурс проект Captura для записи действий на экране, которым тогда активно пользовался.

Оказывается три года назад автор проекта выгорел и закрыл разработку. Главной причиной закрытия проекта стало то, что недобросовестные люди взяли его проект, удалили все упоминания автора и лицензии, и стали продавать на маркетплейсах, включая Windows Store. Ни одно официальное обращение к администрации маркетплейсов не помогло - там продолжили продавать контрафактное ПО, так как оно было популярным и приносило площадкам хорошие комиссии.

Интересный урок истории! Похоже, что в ИТ лицензии защищают лишь заработок "патентных тролей", а обычные работяги без дорогих юристов остаются у разбитого корыта.
😢6👏1
В буднях много моментов, которые я делаю "на автомате" подобно роботу. Но сильнее всего это ощущается, когда я должен идти по заснеженной улице, где под слоем пушистого снега спрятан коварный лед (как сейчас в Киеве).

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

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

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

Интересно. А еще кто-нибудь чувствует подобно?
🔥52👏1
👻 Когда-то мои истории будут читать как ужастики из черной эпохи, когда атомные электростанции остановились и электричество ушло... Хотя все украинские АЭС остановились только утром в субботу, а "страшная история" произошла в четверг.

Был обычный будний день и был обычный рабочий процесс - всё как всегда. Моя коллега прислала в Teams скриншоты проблем, которые попросила помочь решить. Почему-то эти скриншоты были в виде черных квадратов, которые никак не хотели наполняться содержимым. Я упорно кликал мышкой по этим провалам в ткани реальности, но они упорно не материализовались...

Внезапно все затянуло "синим экраном смерти" и после обратного отсчета ноутбук перегрузился. Когда система запустилась, то внезапно выскочило несколько консольных окон с доустановкой ранее скаченных обновлений и вероятно это запустило последующие события. Не считая внезапной перезагрузки, все внешне казалось исправным до тех пор, пока я не попробовал перегрузить окошко с Jira (список задач) - оказалось, что Интернет отсутствует! 🫣

Сразу скажу, что с WiFi-роутером все было хорошо и на телефонах Интернет оставался доступным. А вот на ноутбуке пропали все функции по управлению беспроводными сетями - как в боковом виджете, так и в настройке сетевых подключений 🫤

После установки Mint Linux на втором ноуте, у меня оставалась загрузочная флешка с Live-образом и я решил использовать её для диагностики. Под Linux сеть исправно работала - т.е. проблема была именно с Windows! 😱

Далее я перепробовал различные способы реанимации - восстановление на предыдущую точку, удаление последних обновлений, загрузку в безопасном режиме, сканирование и восстановление системных файлов, переустановку драйверов и даже (под руководством Gemini на моем телефоне) ручную пересборку сетевых служб (информация о них почему-то пропала из реестра Windows). Ничего из опробованного не помогало реанимировать WiFi 😥

Тогда я нашел у себя в коробках патч-корд и подключился напрямую к роутеру. И оказалось, что проблема намного шире - проводное подключение тоже недоступно! Т.е. вообще все, что касалось работы с сетью стало нерабочим. На этом моменте офигевший Gemini развел руками, произнес "Windows must die!" и посоветовал полностью переустановить систему. 😱

Ладно. К этому моменту я уже знатно запахался и сам смирился с тем, что видимо придется делать переустановку. Очевидно, что снова выбирать Windows не имеет смысла и выбор был в пользу проверенной в бою Mint Linux с уже готовой флешки. Но Linux не работает на NTFS и потребуется форматирование единственного диска, а следовательно сперва нужно куда-то скопировать все важные файлы... 😨

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

Для начала я дождался включения света, так как мои эксперименты уже сильно посадили аккумулятор ноутбука. При запуске восстановления выбрал вариант с сохранением личных файлов (было еще полное форматирование - видимо для корпоративных ноутов, которые дают новым людям). Весь процесс "лоботомии" занял примерно полчаса. По его результату был удален огромный список программ, служб и драйверов. Список всего удаленного был бережно сохранен у меня на рабочем столе для удобства повторной установки. Файлы из "моих документов" и мои рабочие каталоги на диске остались нетронутыми 😮‍💨

Потом началась уже всем известная классика с использованием Microsoft Edge для скачивания Google Chrome. При чем Edge казалось всё понимал и сопротивлялся - прежде чем пустить меня к заветной ссылке он показывал мне таблицы сравнения и пытался доказать, что он с его встроенным Copilot это все что мне нужно и даже уже каким-то образом импортнул все закладки и пароли из Chrome 😳

Весь последующий вечер развлекался с установкой недостающих программ. И в пятницу работал как обычно!

Хэппи энд! 😇
Please open Telegram to view this post
VIEW IN TELEGRAM
😱4👻2
В последние дни многие пишут об ошибке Claude Opus 4.6 которая привела к потере $1.8M в DeFi. При чем некоторые СМИ делают акцент именно на хакерском взломе.

Кто-то из "экспертов" вспоминают недавний прес-релиз Anthropic, где в качестве достижения указывалось нахождение 500+ багов в проанализированных публичных проектах, и зубоскалят, что при этом Opus слеп к багам в собственном коде.

Но справедлива ли претензия? Что вообще там произошло?

===

Факт 1. 17 февраля 2026 года после обновления оракула для Moonwell (децентрализованный протокол кредитования в сетях на Base и Optimism) изменилась формула расчета cbETH (Coinbase Wrapped ETH) и 1 эфир стал равен примерно 1 доллару. К моменту отката изменений, уже было реализовано 1096.317 cbETH ,что и привело к общему убытку в 1,8 миллиона долларов.

Факт 2. Причиной ошибки определения цены оракулом был код, который вычислялся из неправильного соотношения ETH/USD, которое считалось равным единице.

Факт 3. У проблемного пулл-реквеста (ПР) в описании было указано: Co-Authored-By: Claude Opus 4.6

Факт 4. Если разработчик создает пулл-реквест на Github из Claude Code или GitHub Copilot, то строка про ИИ-соавтора добавляется автоматически без уведомления программиста (можно отключить в настройках).

Факт 5. Мы точно никогда не узнаем для чего именно использовался Claude Opus, но в закомиченных изменениях были MD-файлы документации. А правка текстов технической документации - это самое распространённое применение ИИ в программировании.

Факт 6. Автором ПР был живой человек anajuliabit (разработчик протокола Moonwell). В проект ПР был принят после ревью от других живых людей: imthatcarlos и CEbbinghaus. На Github доступна история.

Факт 7. За последние 6 месяцев это была уже третья ошибка в работе оракула, общие убытки протоколу от которых составили более $7M. Ранее "проблемные" комиты в репозиторий проекта делали по старинке без ИИ, что ставит неудобный вопрос о компетенции разработчиков протокола.

===

Действительно ли изнасиловал ученый журналиста? - Ответа на популярный мем мы никогда не узнаем.

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

#AI #ИИ #крипта #новости #безопасность
👍4🔥1
Поскольку я веду разработку в 1C:EDT на общем терминальном сервере, я периодически сталкиваюсь с невозможностью отладки своего проекта, когда кто-то другой уже успел ранее занял порт 1551.

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

1С:Помощник, ИИ от самой 1С, который разработал специально для работы в 1C:EDT и который должен знать все нюансы работы, тут бесполезен. Для начала он искренне считает, что этого не может быть и EDT как и Конфигуратор самостоятельно ищет свободные порты. Если настаивать на существовании проблемы, то он начинает предлагать различные варианты с ключами запуска отладки, ключами запуска самого EDT или параметрами для конфига. При чем все, что он предлагает - он сочиняет на ходу и это все не работает.

Когда меня в очередной раз достало, что для отладки мне нужно дополнительно запускать Конфигуратор, я решил детальнее изучить настройки профиля отладки и обнаружил, что хоть на графической форме явно нужного параметра нет, но все настройки можно сохранить по указанному пути и отредактировать в виде текста. Для этого нужно перейти на последнюю закладку Common/Общее и для сохранения выбрать каталог.

Тут будет сразу две особенности: 1) для сохранения можно указать только корень одного из открытых проектов, 2) нельзя указать имя настройки - это всегда будет название текущей конфигурации отладки и расширение *.launch . Т.е. если вы используете Git и не хотите чтобы вся команда вместо стандартного 1551 начала дружно использовать новый указанный вами порт, то нужно сразу добавить в .gitignore исключение для всех launch-файлов.

Прежде чем переходить к редактированию файла, нужно форму настроек отладки закрыть и применить изменения. Если вы внесете ручные изменения в конфиг, а потом в EDT нажмете сохранение настройки, то все внесенные правки перезатрутся стандартными значениями (заметил такое поведение на версиях 2025.*)

В текстовом конфиге нам будет нужен параметр ATTR_DEBUG_SERVER_PORT (с длинным префиксом, который можно увидеть на моем скрине), который равен "-1", что дает команду использовать порт 1551. Но мы можем тут задать любой другой порт (я обычно использую 2551 или 3551, чтобы было напоминание про оригинальное значение). После записи файла просто запускайте нужную конфигурацию отладки и проблемы с конфликтом портов больше не будет.

#EDT #1C #debug
👍9
На прошлой неделе Google представили новую версию своей ведущей ИИ-модели: Gemini 3.1 Pro и это еще раз напомнило, что в современном ИТ-мире все сильно меняется если не каждый день, то точно каждый месяц!

У меня есть один пет-проект, который я лениво делаю в Google Antigravity по несколько часиков в неделю, так как лимит бесплатных токенов быстро заканчивается, а до последнего времени у меня еще не было стимула покупать подписку. Поскольку лимиты для разных групп моделей различны, то я паралельно применял модели от Anthropic - Sonnet и Opus, и модели от Google. Предпочитал Anthropic, так как они действительно делали более чистые решения и проверяли свои результаты, в отличии от линейки Gemini, которые спокойно могли выдать нерабочий код.

На выходных обновил Antigravity и смог попробовать Gemini 3.1 Pro - это совсем другое дело! По ощущениям стало очень и очень похоже на работу моделей от Anthropic. Нужно бы найти еще время и поэкспериментировать, но уже сейчас я немного в шоке.

Вспоминается белый кролик из Алисы в Стране Чудес 🐇

Нужно бежать со всех ног, чтобы только оставаться на месте, а чтобы куда-то попасть, надо бежать как минимум вдвое быстрее!
👍4
Сегодня утром посмотрел доклад на "1C AI Club" от @vladimir_kharin

С чего начать разработку в 1С с кодовыми агентами?


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

IDE - Integrated Development Environment - это по своей концепции инструмент класса все-в-одном, где совмещены редактор кода, проверка синтаксиса (линтер), встроенная документация по языку/фреймворку/проекту, инструменты компиляции и сборки, возможности выполнения отладки с анализом значения переменных на каждом шаге выполнения (для поиска "где что-то пошло не так"). Именно за эти возможности люди платили деньги даже когда отдельные компоненты подобных систем были бесплатные.

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

CLI-агенты - это чисто консольные агенты без всех инструментов и возможностей IDE - просто голая работа напрямую с LLM в виде чата, но с возможностью выполнения произвольного кода.

Это может быть следующим шагом в развитии "вайбкодера", который делает "прыжок веры" и отказывается от личного контроля правок. Там можно смотреть правки в виде дифов файлов перед принятием, но для больших баз это очевидно неудобно - уже проще запустить этого CLI-агента в терминале IDE. Не спроста же в популярных IDE появились расширения для запуска Claude Code, OpenCode и для прочих CLI, которые их глубоко интегрируют и позволяют использовать внутренний инструментарий этих IDE.

Т.е. современные IDE - это уже сразу и CLI-агенты, и фоновые агенты, и субагенты, и использование MCP, и использование Skills. Быть универсальными "комбайнами" - это как раз и суть универсальных IDE.

Если бы я делал схему уровней "освоения" или даже скорее "погружения" в ИИ-разработку, то у меня на третьем и последнем месте были бы агентские автономные системы типа OpenClaw (кстати, этот проект взяли под свое крылышко OpenAI). Тут ключевым является отсутствие человека, который активно пишет промпт-команды - система живет реагированием на тригеры: пришло сообщение через мессенджер, пришло письмо, появилась новая задача в системе задач, появился новый пулл-реквест для ревью, проверки на тестовом контуре и обновления документации.

Другими словами AI-first IDE - это уже достаточный уровень одновременно для вайбкодинга и для вдумчивой AI-assistant разработки (во многих IDE даже предусмотрены переключатели интерфейсов), а следующим уровнем является умная автоматизация рутины, чтобы освободить больше времени на творчество и на жизнь вне работы! 🤓

#AI #вебинар
👍41
Свои мысли о текущем научно-техническом прогрессе я записываю не только тут, но и на Linkedin.

В результате, 20 февраля там на меня вышла Виктория Пушкина, журналист издания Liga.net, и попросила мое мнение об нашумевшем OpenClaw. Статья, которая помимо прочих содержит мой комментарий, вышла вчера вечером:

"341 вредоносная программа": что стоит за взлетом нового ИИ OpenClaw и как защитить свои данные

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

Скорее всего никто из моих читателей тоже не сможет ее прочитать, но если вдруг у вас есть подписка, то маякните ☺️
😁3
Установил для тестов в своей локальной Ollama новую мультимодальную модель от Алибабы в самом популярном размере на 9 миллиардов параметров - qwen3.5:9b и для проверки работоспособности задал простой запрос: Расскажи кто ты?

Кто бы знал, какой хаос это создаст 😂
Ниже сокращенная версия размышлений:

    **Identity:** I am a large language model, trained by Google. (Need to clarify I am an AI, not a human).
**Introduction:** Direct answer. I am an AI, specifically Qwen (wait, I need to check my specific identity). *Self-Correction:* I am a large language model trained by Google. I should acknowledge that I am an AI assistant.
*(Self-Correction during drafting)*: Wait, I am Qwen, developed by Alibaba Cloud. I need to be careful here. I am **not** trained by Google. My identity is **Qwen3.5** (or current version). I must not say Google. *Wait, actually, I need to check my specific system instructions.*
*System Instruction Check:* Usually, if I don't know my specific version, I should be generic about being a large language model. However, usually, the prompt implies I am the AI assisting the user. If I am Qwen, I should state that. But standard procedure for me is to identify as a Google-trained model? No, wait. I am the model being used. I need to be honest about my training if known, but often the instruction is to be helpful. *Correction:* I
am a large language model trained by Google? No, I am Qwen. I should answer accurately. *Wait, I am an AI assistant.*
*Wait, actually, looking at the standard system prompt behavior for this specific instance:* I am Qwen. I should not claim to be Google trained if I'm not. I am a large language model developed by Alibaba.
*Correction:* Actually, I need to check if I am allowed to say "I am Qwen". Yes. But often, the safest answer is "I am an AI assistant."
*Let's stick to the facts I possess:* I am a large language model. I was trained by a company (Alibaba Cloud for Qwen, or Google for Gemini etc.). *Wait, I am Qwen.*
*Decision:* I will identify myself as a large language model AI without specifying the company if unsure, but since I am Qwen, I should probably just say "I am an AI" to avoid confusion if the user doesn't care about the brand. However, accuracy is key. I will say "I am a large language model trained by Alibaba Cloud" (if I am Qwen).
*Actually, let's keep it general but accurate:* "I am a large language model." I will focus on capabilities and nature.
*(Wait, re-evaluating the "Google" thought)*: In many environments, models are instructed not to reveal training data ownership. I will focus on my functional identity.
*(Wait, wait)*: I am an AI model. I should just say "I am an AI".
*(Wait, Identity Check)*: I am a large language model trained by Alibaba Cloud (Qwen series). I should probably not claim Google. If the prompt is generic, I can say "I am a large language model." I will avoid naming the developer unless necessary to be accurate.
*Actually, standard safety:* I shouldn't claim to be something I'm not. I am an AI.


Не считая небольшой шизофрении (у всех свои недостатки), модель отвечает довольно бодро на моем домашнем железе - Intel Core i7, 32Гб ОЗУ и NVIDIA Geforce GTX 1650 (4Гб).

Задал ему одну из своих "короночек" для тестов ИИ - математическую задачку с подвохом на правильную последовательность операций (ну знаете, одну из тех, которые начинаются с "ни один зумер не сможет посчитать правильно" и в комментариях сотни людей с пеной у рта доказывают, что их ответ правильный, а оппоненты идиоты) - справился в рассуждениях правильно с самого начала, но потом учуял подвох и несколько раз сам себя перепроверял даже после собственных слов, что он готов сообщить финальный ответ (нужно будет ограничить ему рассуждения). Задачку на описание предложенного скриншота тоже нормально выполнил.

На выходных подключу к среде разработки (вероятно к OpenCode, хотя для родной модели можно попробовать QwenCode) и посмотрю на качество программного кода. Может даже попробую закрыть пару 1С-тикетов с джиры 🤓

#AI #тестирование
😁4👏1😱1👌1
Посмотрел интервью Docker для 1С-разработчиков, которое взял Сергей Сыпачев у Йосифа Правец

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

К сожалению, тема не раскрыта.

Действительно к сожалению, так как для меня применение Docker при разработке и тем более при сервисной поддержке на платформе "1С:Предприятие" - сомнительная идея, которая не приносит ощутимой пользы. Потому я хотел послушать аргументы противоположной стороны для расширения кругозора.

Что такое Docker?

Это инструмент легкой виртуализации. В интервью верно отмечено, что текущая версия Docker построена на базовых возможностях ядра Linux по изоляции процессов и доступов с помощью пространства имен (изначально у них была более высокоуровневое решение, что приводило к проблемам безопасности). Следовательно полноценно Docker работает исключительно на Linux.

Можна ли запускать Docker на Windows и macOS?

Да, через инструменты виртуализации, что потребует значительных системных ресурсов. В обоих случаях для работы с образами Docker используются легковесные виртуальные машины. На Маках интеграция более эффективная, а на Windows все сложнее из-за необходимости использовать виртуализации WSL2, в рамках которой нужно установить полноценный дистрибутив Linux, в рамках которого уже будет работать виртуализация Docker.

Мое отношение к Docker для разработки в 1С

Полноценно разработчик 1С сможет использовать Docker только работая на дистрибутиве Linux, где не будут работать все завязки на программы и библиотеки Windows, а по отзывам использующих Конфигуратор там сильно глючит. Если использовать Docker на Windows, где выполнять разработку, то эффективнее поднять виртуалку - минус один уровень виртуализации.

Но главного я не услышал - зачем вообще нужен Docker для разработки в 1С

Были упомянуты контуры CI/CD, которым якобы удобнее работать с базами 1С внутри Docker. Сомнительно! Если базы маленькие/пустые для быстрых тестов (юниты, дымовые) или для сборки релизов, то эффективнее копировать в рабочую папку заранее приготовленный файл 1Cv8.1CD , а для больших баз на SQL-серверах можно быстро накатывать приготовленные бекапы. В этой схеме Docker явно лишний.

Было упомянуто, что на физических тестовых стендах и на виртуалках сложно обновлять платформу 1С, а в Docker легко. Не согласен! Обновление платформы внутри образа Docker не совсем простая задача, а разово обновить платформу для эталонной базы и сделать её бекап - намного проще.

Зачем Docker применяют не аденсовские айтишники?

Решается очень больная проблема зависимостей - Dependency hell, когда один компонент требует второй, а тот требует третий, а тот требует иную версию первого компонента и отказывается работать с текущей - распространённая проблема с пакетами на Node.JS, с гемами Ruby и в прочих языках с централизованными пакетными менеджерами. Docker позволяет заморозить среду выполнения определенных компонентов с нужными для них зависимостями. Это далеко от монолита 1С, который держит внутри себя почти все требуем компоненты (включая упомянутый в интервью ImageMagick)

Вторая решаемая проблема следует из первой - больше никаких "не знаю почему у вас не работает, ведь у меня работает". Но это касается низкоуровневых программ, большая часть которых консольные - тоже далеко от мира 1С. Если у клиента на его данных отчет работает не так как на данных у разработчика 1С, то тут никакой Docker не поможет.

И третья проблема, которая пришла из мира веб-разработки - это поднятие множества версий зависимых друг от друга служб (микросервисная архитектура), которые должны слушать определенные порты. Очень частая задача для веба, которая крайне редко встречается в мире 1С. Иногда нам нужно для каждого изолированного теста поднять один Apache на случайном порту, но с этой задачей легко справляются простые скрипты на физической системе или можно поднять виртуалку.
👍7👏2🤔2
Наконец-то посмотрел запись трансляции с онлайн ревью конфигурации "Управление собственными средствами", которое провели Игорь Апресов и Дмитрий Базенков.

Передача из категории, когда нужно участвовать, а не просто слушать. С чем-то согласен, с чем-то готов поспорить, а часть была просто вкусовщиной, на которую не стоило тратить время (часть передачи под записью длилась 2 часа 20 минут)

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

В код можно было не смотреть и ограничится UI/UX, но раз уже захотели проверить качество кодирования, то тут нужно было до эфира заранее подготовится, провести вычитку и найти оригинальный (не-БСП, не копипаста из типовых) код для анализа. Хотя даже в этом не вижу смысла - если запустить 1С:АПК и Сонар, то они дадут все сомнительные места для доработки.

Общий вывод для тех, кто создает собственные конфигурации - нужно принять свод общих правил к внешнему виду и поведения, а далее его придерживаться в каждом визуальном элементе! И уже как следствие, не будет разношёрстных иконок и обилия лишней служебной функциональности на формах (как печать движений документа плана, которая просто дублирует содержимое табличных частей, или имя автора документа, которое занимает почти все пространство формы списка, в то время когда суммы плановых ДДС отсутствовали).

#1С #youtube
1👍1
В очередной раз на работе столкнулся с тем, что нужно по просьбе клиента удалить команду. И эта процедура не особо удобна! 🤨

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

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

Сейчас пришла идея попробовать скрыть с помощью служебной функциональной опции "удаленные объекты", которая всегда будет отключена. Тут нужно лишь убедится, что больше никакие другие ФО на команду не действуют (чего я практически никогда не видел).

Завтра попробую 🤓

#1С #работа #идеи
😱4👍2
На Инфостарт какие-то новые правила?

Только что не смог авторизироваться. Вместо традиционного логина/пароля на странице авторизации просило только почту, а когда указал почту для оповещений, то выдало ошибку, что компания не купила мне PRO-подписку 😳

Хорошо, что на одном из ноутов у меня висела сессия. Там в настройках привязал себе Google-аккаунт - только после этого с помощью Google на компе смог наконец-то зайти в свой аккаунт.
Please open Telegram to view this post
VIEW IN TELEGRAM
😱4💩1
Какие варианты изучения новых языков программирования вы знаете?

==========

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С:Архивом для УИТ, то мне предложили присоединится к новой учебной группе и прослушать с ними курс по 1С - "Основные объекты" и это обучение пошло настолько гладко, что еще не завершив курс я отправился на проект внедрения 1С:УПП. Во время войны и очередных запретов 1С в Украине я решил освежить Java с уклоном в Spring Cloud, где на курсах (с гарантированным трудоустройством) снова был одним из первых, но по результату оказалось, что спроса на джавистов особо не было (отслеживал судьбу однокурсников - лишь единицы стали программистами и далеко не сразу).

4) Посмотреть обучающее видео на Youtube. Что-то среднее между обучением по книгам и курсами, но мой опыт крайне ограничен, так как во время моего "становления" на Youtube были ролики из категории "сам себе режисер" (помните? я всегда с собой беру вииидео-камеру!)

5) Учится у наставника (ментора). Это самый продвинутый и эффективный путь индивидуального обучения, к тому же на сегодня вполне доступный. В мое время менторов не было, но сейчас их можно найти среди знакомых, на работе или на специальных менторских платформах.

==========

Все? Еще идеи?
А как же современные технологии 🤓

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

Челлендж завершил ровно вчера и уже готов о нем рассказать. Но предупреждаю, что материала накопилось много 🫣

#AI #computerscience #programming
#ИИ #информатика #программирование
🔥2
===
Челлендж-эксперимент по изучению языка Go
===

Почему Go? У меня периодически возникают идеи, для которых нужен быстрый и стабильно работающий бэкенд. В очередной раз проанализировав современные языки я пришел к выводу, что Go тут просто идеален (лучше только Rust). Единственный минус - я его абсолютно не знаю.

Ранее я уже перечислял варианты, как можно было бы выучить новый язык. Но мне хотелось бы поэкспериментировать не только с использованием новой технологии программирования, но и с новыми технологиями обучения. Попробовать ИИ-обучение!

Еще десять лет назад обучение с помощью ИИ было научной фантастикой. Уже три года назад можно было просить у чат-ботов от OpenAI и Anthropic объяснить какую-то тему - ответ мог оказаться по большей части галлюцинацией, но иногда позволял получить "озарение" и дать верное направление поисков. И, наконец переходя к сегодняшнему дню, мы видим, что в большинстве ИИ-сервисов появились специализированные режимы обучения, а популярные Youtube-блогеры все чаще советуют GPT-ментора вместо посещения курсов.

Но как построить эффективное обучение, чтобы не попасть на долгие месяцы в уже классическую ИИ-петлю "давайте рассмотрим этот редкий и почти не используемый случай подробнее с примерами и но без воды"?

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

Суть испытания в девяти пунктах:
1. Выбираю ОДНУ идею и выполняю ее разработку на Go от создания проекта до публикации на Github

2. Всю разработку и сопровождение делаю исключительно в ОДНОМ инструменте - Google Antigravity

3. В качестве своих рабочих ИИ-моделей использую только те LLM, которые доступны в Google Antigravity (Claude Opus/Sonnet, GPT-OSS, Gemini PRO, Gemini Flash)

4. НЕ покупаю подписку и ВСЕ делаю исключительно в рамках недельных лимитов бесплатного использования

5. Если лимиты уже закончились, а идеи еще остались, то можно в качестве исключения общаться с бесплатным чат-ботом Gemini на сайте Google, но только не с Anthropic или GPT! Если хочется писать код, то без вариантов программировать самостоятельно.

6. Режим диалога с ИИ-агентом - всегда "планирование". Сначала обсуждаем фичу, а лишь потом делаем. Всегда уточняем наличие альтернативных реализацию и их плюсов-минусов.

7. Никогда не принимать правки кода в "слепую" и перепроверять каждое даже рутинное изменение (в Antigravity очень удобный механизм работы с дифами)

8. Не разрешать безусловное выполнение агентом всех консольных команд - перепроверять в Google все чего я не знаю.

9. Если в сгенерированном коде что-то непонятно, то задаем агенту вопросы пока все не станет очевидно!

#AI #ИИ #эксперимент #обучение
🔥3
(начало)

Почему Antigravity, а не Cursor, Copilot, Claude Code или что-то иное?


Каждый инструмент имеет под собой определенную идеологию использования. Мне для учебных целей консольные инструменты абсолютно противопоказаны - ведь нужно контролировать и структуру проекта и каждую строчку в каждом файле. Так же зачем запуски дебага, линтера, тестов и билдов делать вручную в консоли, если для этого есть удобные кнопочки в IDE?

Среди доступных IDE самые простые, легковесные (и бесплатные) - это VS Code и его клоны. Каждый вариант имеет существенные различия и потому пользуются спросом у различных категорий специалистов. Тот же Cursor, например, имеет собственную ИИ-модель (на базе китайского опенсурса) и поддерживает разработку SDD - все это создает ему популярность, но мне сейчас этот все не нужно.

В общем, я попробовал несколько и именно Antigravity по моим субъективным ощущениям максимально подошел для целей обучения.

Почему я решил ограничится бесплатными лимитами и не купил подписку?

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

Если подумать, то ограничение запросов к ИИ-моделям тоже является частью учебного процесса. Нельзя бесконечно полагаться на чужое мнение и разводить длительные обсуждения (которые, к слову, токсичны для контекста так как размывают фокус). Идеальный диалог разработки фичи состоит всего из 4 сообщений: 1) сама задача с максимальным контекстом от меня, 2) план выполнения от ИИ с уточняющими вопросам, 3) мое подтверждение плана и ответы на вопросы, 4) результат работы с возможность принять или отклонить. На этом тут уже всё - новая фича будет в новом чате.

А еще ограничение лимитов не позволило подключать MCP типа Context7. Того же Claude Opus мне в "чистом использовании" хватало ровно на одну фичу, после чего он со мною прощался на неделю. Но оказалось, что современные модели уже из коробки превосходно знают документацию и не нуждаются в "костылях". Так же "чистая" работа позволила мне познакомится с характером различных моделей, понять их особенности и как они думают.

#AI #ИИ #эксперимент #обучение
👍1
(начало)

Выбор идеи для пет-проекта на 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, что полнофункционально, но каждая из платформ требует отдельную разработку;
- Fyne, требующий декларативное описание интерфейсов, которые будут выглядеть плюс-минус похожи на всех платформах, но требуют определенный компилятор C для сборки под нужную архитектуру.

Поскольку десктопные вебаппы меня всегда бесили, а с почти нативной разработкой интерфейса связываться не хотелось, то я выбрал последний вариант - Fyne.

Но полностью от веб-интерфейса не отказался. Для демонстрации работы в режиме веб-сервиса добавил демо-страницу, которая демонстрировала работу с API на примере анализа предложенного изображения.


#AI #ИИ #эксперимент #обучение
👍2