ar
Feedback
Никита Федькин - мысли, заметки, анонсы

Никита Федькин - мысли, заметки, анонсы

الذهاب إلى القناة على Telegram

Связаться со мной - @nixel2007. Никита Федькин (ранее Грызлов). На канале не публикуется платная реклама.

إظهار المزيد
2 872
المشتركون
+824 ساعات
+327 أيام
+4230 أيام
أرشيف المشاركات
А помните, была такая штука как... ОБЫЧНЫЕ ФОРМЫ
+1
А помните, была такая штука как... ОБЫЧНЫЕ ФОРМЫ

Порог возможностей Конфигуратора преодолён. Кажется, EDT тоже где-то рядышком уже.
+2
Порог возможностей Конфигуратора преодолён. Кажется, EDT тоже где-то рядышком уже.

Говорят, я 1сник. Спорно, конечно, даже в те годы, когда я писал на 1С :D Но ради движухи...

Почти 8 лет назад (без пяти дней) мы с @Labotamy засели в скайпе с вопросом "что бы такое клёвое совместно написать". И решили запилить плагин для поддержки 1С в IntelliJ IDEA. Взяли в руки официальный гайдбук по разработке плагина, черновик грамматики в формате jflex, которую незадолго до этого напилил @dmpas и начали творить. Это привело к тому, что через неделю в проекте появился класс BSLLanguageServer и заверте... Плагин пытался одновременно работать поверх BSL LS и BSL Parser путем скрещивания через хитрый antlr adaptor (я не опечатался, автор так назвал свое детище), по страдал от двух вещей: 1) antlr в BSL Parser притерпевал регулярные изменения: то мы жили на ванильном antlr4, то переехали на optimized fork с несовместимым API, то переехали обратно, в итоге вообще остановились на собственном форке за авторством @TheShadoWCo, который героически перенёс все оптимизации из optimized fork в ванильный antlr, сохранив обратную совместимость. А antlr adaptor так и оставался в версии что.то.там.релиз.кандидат.спаншот.на.коленке. 2) Отсутствие фич в BSL LS типа автодополнения и контекста платформы. То есть пилить плагин для IDEA было прикольно, но при это было и понимание, что усилия надо сосредоточить на самом BSL LS, обогатив его фичами, которые растекутся потом по всем редакторам. За это время я успел поработать над несколькими различными плагинами подключения языковых серверов в IDEA: и старый intellij-lsp на scale с мэйтнейнером на подводной лодке, появляющемся на GitHub раз в полгода на пару недель, и с lsl4intellij - хард-форке, который я начинал делать совместно с шри-ланкийскими ребятами из WSO2/Ballerina Lang, и (теперь уже бес)платным клиентом в IntelliJ IDEA Ultimate, и наконец плагином lsp4ij от RedHat. Последний хоть и содержал несколько детских болячек, которые вскрывал подключенный к нему BSL LS на раз, но заодно имел и активных мэйтнейнеров, которые быстро приходят в созданные баг-репорты и, что совсем уж удивительно, быстро чинят обнаруженые баги! А ещё у них в документации был подробный гайд, как запускать LSP-сервер поверх грамматики textmate для быстрой раскраски кода. А textmate - это как раз то, с чего вообще начинался проект 1c-syntax в 2014-2015. И вот, спустя почти 8 лет и трех переписываний с нуля, Language 1C (BSL) плагин для семейства IntelliJ Platform наконец опубликован в JetBrains Marketplace: https://plugins.jetbrains.com/plugin/32659-language-1c-bsl- Если маркетплейс у вас не работает, то установочный zip-архив можно забрать с релизов на GitHub. P.S. Не без помощи нейросеток конечно. P.S.S. А что вы мне сделаете, я в другом городе (с)

Вышла "полная" версия. Вот зачем нужны нейросети, а не вот это вот все ваше программирование. https://youtu.be/pSrx3_V-nws?is=Sx_Iu5PbCxaULuXY

Инструкция по настройке MCP в плагине bsl ls для VS Code 🛠️ 1️⃣ Обновите плагин (обновление должно установиться автоматически). 2️⃣ В настройках плагина включите опцию запуска MCP. 3️⃣ В настройках плагина укажите порт, на котором будет запускаться MCP. 4️⃣ Откройте любой файл bsl, чтобы запустить прогрев BSLLS. 5️⃣ Настройте используемого агента: добавьте MCP через http streamble по адресу http://localhost:port/mcp. 6️⃣ Можно начинать работу: все инструменты, поставляемые с bsl ls, теперь доступны агенту. ✅

В BSL LS 1.0 появился не только standalone-режим запуска MCP-сервера, но и теоретическая возможность поднять MCP из уже запущенного bsl-плагином BSL LS. Один бинарник (и один общий контекст, не тратя лишние гигабайты памяти) работает одновременно и по LSP и по MCP. Но в сам плагин эта функциональность не приехала. А сегодня Дима сделал допилку в плагине и набросал инструкцию по подключению. Тестируем!

Ещё из недавних улучшений - в плагине для vsc появилась настройка для передачи дополнительных параметров джавы при запуске BSL LS, которая работает как для external jar, так и для обычных дистрибутивов. И она *переживает* обновление BSL LS. Один раз задаёте, и оно просто работает. Сейчас там установлено значение -Xmx4g для выделения четырёх гигабайт оперативной памяти.

Масштаб релиза можно оценить вот тут: https://github.com/1c-syntax/bsl-language-server/pull/4157 35к из этих 130к - это сгене
Масштаб релиза можно оценить вот тут: https://github.com/1c-syntax/bsl-language-server/pull/4157 35к из этих 130к - это сгенеренные JSON'ы. Остальное - новый код и тесты и ресурсы. Раскладка по размеру: https://sonarcloud.io/component_measures?metric=lines&id=1c-syntax_bsl-language-server

https://github.com/1c-syntax/bsl-language-server/releases/tag/v1.0.0 У меня просто нет слов, ребята. Проект, начатый 8 лет назад, наконец-то выполнил (и очень-очень перевыполнил) план, намеченный на версию 1.0.0. 8 лет назад я сказал себе, что 1.0 выйдет тогда, когда в vsc-плагине можно будет отключить ВСЕ языковые возможности в пользу BSL LS. И вот, сегодня, вместе с релизом vsc-language-1c-bsl 2.0.0, это наконец осуществилось. Плагин по умолчанию больше не "наполняет свой кэш" для внутренней системы типов. Вся логика делегируется в BSL LS. Новых возможностей в релизе 1.0.0 ОЧЕНЬ много. Система вывода типов, которой так не хватало для работы автодополнения, в разы умнее моих самых смелых фантазий 8 лет назад. Я набросал новый раздел сайта с множеством гифок по каждой языковой фиче. Залетайте на сайт: https://1c-syntax.github.io/bsl-language-server/capabilities/

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

В удивительное время мы живём, конечно... 2 часа оффлайновой работы с llm, и есть кандидат на то, чтобы на гитхабе заработала подсветка редактирования файлов. https://1c-syntax.github.io/codemirror-lang-bsl/

Что-то грядет
Что-то грядет

#какэтоесть Противоречивое
#какэтоесть Противоречивое

Надо было рекламу впаять конечно перед анонсом...

Решил я тут выйти из зоны комфорта и проверить себя в малознакомой для меня части айтишечки - игрострое. Вспомнил Женю Шилова, его разработку игр по Чистой Архитектуре и прочим DDD, и решил, что надо по говну повайбкодить. Знаете, есть такие идеи фикс, приследующие вас всю жизнь? Старые пет-проекты, которые вы начинали ещё в школе/универе, и надеялись когда-нибудь вытащить из стола? Вот у меня таким проектом является ремейк старенькой игры для Symbian под названием Atomic. Другое её название - Chain reaction. При отсутствии мультиплеера я с другом играл в неё в режиме хот-сит по домашнему телефону :D Так вот, пускай ботяра за меня постарается, а я ему вводных накидаю... Правила игры, от 2 до 4 игроков, хот-сит, игру против бота с тремя уровнями сложности, редактор уровней, локализацию и то, чего мне не хватало в школе - онлайна. Чтобы с комнатами, лобби, режимом наблюдателя и прочими фичами, которые будут использоваться разве что Ваней Смирновым, который в университете рисовал мне графоний для delphi-версии этой игры. Ещё из технических вводных - я попросил использовать Kotlin Multiplatform в качестве стека. С одной стороны мне было интересно посмотреть, на что способен KMP в паре с новым графическим фреймворком Compose. С другой стороны в код я все равно особо не смотрел, так что какая разница :) Лишь бы не Electron. Зато на сборке я оторвался: сделал сборку под андроид, десктопы (под три операционных системы) и веб-версию. Плюс веб-версию/relay-сервер для онлайна собрал в докер-образ и опубликовал в Railway.app. Выводы? 1) Концепция писать себе приложения под личные нужды с помощью нейросетей - реальность, а не далёкое будущее. За три сессии Клода у меня было работающее приложение с оффлайном и онлайном. 2) Даже сильно не заглядывая в итоговые сорцы видно, что выхлоп нейросетей все ещё сильно зависит от общей грамотности человека по ту сторону терминала. Там, где я понимаю, как все устроено, я на берегу вижу, где нейросеть косячит, и как надо подстелить, чтобы не было мучительно больно потом. А там, где моих знаний недостаточно, я ухожу в долгую и тупую петлю промпт-результат-не-работает-промпт даже там, где агент вроде бы говорит, что локально все работает. Просто он не проверил половины кейсов :) 3) Антропики совсем охренели со своими подписками и лимитами. Первый раз попробовал взять тариф на 20 баксов, и явно в последний на ближайшее время. 5 часовой лимит улетает за 10 минут. Сидел я на GitHub Copilot, вот и нечего было рыпаться по сторонам, всё хорошо у Майкрософта. Ссылочки? https://github.com/nixel2007/atomic Веб-версию в комменты скину, чтобы боты не задудосили сервер на бесплатном тарифе. З.Ы. Дистрибутивы можно будет чуть позже забрать в релизах, если кому-то хочется нативочки. З.Ы.Ы. Зачем? Because it's fucking awesome!

Раз уж этот ностальгический пост набрал столько лайков, вот вам жемчужина, мягко ЖОСКО ласкающая мою чип-тюновскую душонку: https://www.youtube.com/watch?v=KbDj5zcIlJs&list=WL&index=2 P.S. Если вы еще не слышали Machinae Supremacy, то настоятельно рекомендую.

Я смотрю, давно я не погружался в новости devops мира 1С, если 1С для самых маленьких содержит скрипты по развертыванию Дженк
Я смотрю, давно я не погружался в новости devops мира 1С, если 1С для самых маленьких содержит скрипты по развертыванию Дженкинса в Кубере!

Силами сообщества значительно обновлёны базовые образы для 1С: https://github.com/firstBitMarksistskaya/onec-docker Обновлена используемая версия Ubuntu, практически с нуля переписана работа с s6 overlay, client-vnc наконец-то нормально расширяет образ client, а не перекачивает 1ску ещё раз; добавлена поддержка 8.5, фиксы работы под 8.3.27. В общем куууча всего. Огромное спасибо всем причастным: Дима, Егор, Антон, Андрей, Кузя (?) - я очень рад, что разработка образов стала чем-то, над чем работает сообщество грамотных специалистов. P.S. Не забудьте переехать на новый Docker Swarm Plugin от Андрея - он проверен и точно работает с новыми образами!