Турбокодер
337 subscribers
68 photos
1 video
9 links
Блог инди-разработчика Болсуна Михаила.

Автор проектов TurboConf, FastCode 1С, Нетленка 1С и т.д.

Админ каналов @FastCodeIM, @TurboConf и других.

Дневник разработчика, идеи, мысли, маркетинг, монетизация, ИИ, GPT, нейросети
1С, C#, Telegaram, Web...
Download Telegram
Залил обновление на сервер, все прошло по плану. 😄
😁7😱1
Пользователи упорно не хотели вставлять изображения прямо в поле редактора текста тикета, а прикрепляли в виде файла.

Для того чтобы их просматривать приходилось каждый раз скачивать файл и открывать отдельно.

Писал разные подсказки, но бесполезно. Устал сражаться с UI, UX и просто удалил кнопку прикрепления файла 🙂

Нет кнопки - нет проблемы. 😉
👍9🤣2
Столкнулся с интересным багом.

По какой-то причине переставал записываться отладочный лог.

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

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

Лог я просматривал. ошибок никаких в логе нет.

После перебора всех возможных вариантов, я задумавшись смотрел на окно лога и мое внимание привлекла последняя строка

[22.01.24 16:02:14:072] lastKeyChar =

И тут мне все стало ясно!

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

Вот такое бывает 😉
👍8
Пятница. Поздний вечер. Доделываем одну полезную функцию для Навигатора TurboConf.

Возможность перехода к модулю объекта конфигурации при установленном отборе.

Скоро во всех во многих конфигураторах страны 😉
🔥5👍1👏1
Поток тикетов с багами по TurboConf 6 немного иссяк. С момента релиза, весь январь тикеты плодились как кролики, но я безжалостно расправлялся с ними.

Сегодня почти был день без новых тикетов по TurboConf 6. Правда за 30 минут до полуночи пользователь написал об одном баге в личку, но это же не считается 😉
🔥10👍3
Что-то в последнее время активизировались спамеры на сайте FastCode

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

Хотя 90% из них не подтверждает учетку по email, часть подтверждает и пытаются создать пост.

Добавил ручную модерацию.

Также заменил гугловскую Recaptcha на Яндекс капчу и пока ни одного нового спамера больше не зарегистрировалось 🙂
👍14
Когда выложил тестировщикам самую первую технологическую версию нового TurboConf 🙂
😁7
Мне написали из Яндекса, что хотели бы опубликовать мой пост про капчу в своем канале Yandex Security
и опубликовали https://t.iss.one/YandexCloudSecurity/3415/4799

Вот так дела, выходит я теперь знаменитость 😎

P.S. значит кто-то среди нас агент Яндекса, хм... 🤔
🔥8👍2🍾1
5 лет работал дома. Теперь пришлось снять небольшой офис-кабинет за 18 тысяч в месяц. И тут я осознал какие все таки расходы у организаций с сотрудниками и офисом. Даже если их пара-тройка: один разработчик, бухгалтер и еще кто-нибудь. Не говоря уже об фирмах побольше и крупных организациях.

И что удивительно, мне часто пишут, что руководство не согласовывает продление или покупку TurboConf и разработчики покупают его за свои деньги. Парадокс 🙂
👍11🤷‍♂1💯1
Пытался нарисовать картинку с помощью ИИ, на которой изображен старый монитор с кареткой в виде символа нижнее подчеркивание "_ "
Но никак не получается, все время он что-то добавляет от себя или понимает не так.
Картинка должна была символизировать художников и работников творческих профессий в будущем.
Видимо я не настоящий художник 😄
😁3
Как не нужно делать интерфейс

Там где заказывал еду "улучшили" интерфейс и пару раз я уже оставался без соуса 🙂

При добавлении позиции через пару секунд кнопки сдвигаются и следующее нажатие уже выполняет отмену.

Написал в поддержку 😉
😁7🔥2
Как вам идея такого бота для поддержки🙂
😁12🔥4
Понадобился мне алгоритм для объединения пересекающихся интервалов на C#. Погуглил, не нашел ничего толкового. Пришлось писать самому. Час писал, получилось так себе. 🙂

Вспомнил, что у меня есть же подписка на ChatGPT 4! Задал вопрос и он мне за 20 секунд написал код, пример и объяснение как действует алгоритм.
Затем сам подкорректировал, под мой конкретный класс и это все работает!

Блин, почему я сразу не спросил у него 😄
🔥7👾2
Вспомнил забавный случай.
Когда я работал в ИТ отделе одной компании, у секретаря сломался компьютер и она попросила его починить водителя-экспедитора.
Мимо проходил директор и спросил, почему водитель чинит комп и звонила ли она в поддержку.
Секретарь сказала, я не звонила, т.к. они все равно скажут перезагрузить компьютер, а это не поможет, ведь компьютер, то не включается 😄
True story.
😁9
Разрабатываю ИИ для программистов 1С.
Изначально решил делать все на .NET, т.к. хорошо знаю это стек.
Пришлось использовать порт питоновской библиотеки для ИИ LangChain.
Уже вроде многое написал на С# и кое-что работает, но все таки решил переписать API на Python.
Во первых Python - это стандарт для работы с нейросетями. Во вторых порт совсем не поспевает за быстрыми изменениями библиотек.

Язык был знаком, но совсем немного. Уже два дня, прямо чувствую как новые нейронные связи образуются в мозгу 😄
Много вопросов, как сделать то или это. Постоянно возникают ошибки из-за устаревшей документации по библиотекам.
То, что я бы сделал на C# за 5 минут, занимает пару часов, пока разберешься.
Очень помогает ChatGPT и "помощь друга" ))

Но в целом что-то заработало, на портирование первой части кода с .NET ушло 2 дня, надеюсь дальше пойдет быстрее 🙂
🔥19
Когда решили готовить версию к релизу 😄
😁12
Столкнулся с интересной проблемой.

При клике на ссылку, обработчик то срабатывает, то нет. В зависимости от текста. Очень стало интересно решить эту задачу.

Бился с ней долго и упорно 🙂

1. Сначала подумал, что какой-то символ кириллицы неправильно кодируется и портит формат RTF.
Пробовал по разному кодировать, но связи не нашел.
2. Потом подумал, что я неправильно формирую RTF формат.
Тоже разные варианты не помогли.
3. Погуглил, понял что проблема популярная. Стал заменять редактор на другие реализации, якобы помогающие формировать ссылки.
Безрезультатно.
4. В результате в гугле нашел информацию, что это оказывается баг в элементе управления RichTextEdit! 😡

В зависимости от длины текста, может не срабатывать клик 😄
И судя по обсуждениям, проблема популярная и затронула многих разработчиков.
Интересно сколько человеко-часов на планете тратится программистами на решение таких вот багов? 😉
😁13
Есть такой антивирус McAfee, его используют некоторые пользователи TurboConf.

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

И вот сегодня пришел ответ, что программу добавили в белый список 🙂

Dear Sir/Madam,

Thank you for contacting us.

We have reviewed your submission for whitelisting of your software and the submitted file named ['TurboConf.zip'] have been Whitelisted.

Regards,
McAfee Data Submission Team


Ну, как говорится, лучше позже чем никогда 😄
🔥61🌭1
Пользователь прислал ошибку.

Ну из описания ошибки все понятно, длина файла больше 260 символов. Добавляю усечение имени до 260, нет ошибка сохраняется.

А ну сказано меньше, значит до 259 - тоже нет.

А полное имя, значит с расширением .txt, значит, все таки 260-4=256 и число красивое. Уменьшаю до 256. Не работает.

Пошел гуглить. На сайте Microsoft опять говорится про 260. На StackOverfliow много версий. 259, 257, 255, 256, 240.
Попробовал 240 - работает. Стало интересно, какое все-таки, попробовал 255 - ошибки нет. А при чем тут тогда 260???

Пошел снова читать документацию. Оказывается Windows добавляет к имени файла невидимую сроку <NUL> 🙂 Отсюда и получается 260-5=255.
Ну и все таки даже с учетом этого <NUL>, длина должна быть не "меньше 260", а "не больше 260".

Все таки важно грамотно составлять текст ошибки. Берегите время других разработчиков! 😉
👍7😁3
Столкнулся с очередным детективом в разработке 😱

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

Задача: определить масштабирование для каждого монитора в системе (т.е. 100%, 125% и т.д.)
Это нужно для того, чтобы правильно размещать элементы TurboConf в конфигураторе 1С.

Задача непростая. Как таковой готовой функции в WinApi и .NET нет. В последних версиях .NET появилось что-то похожее, но работает только для Windows 10 и выше, и то не на всех билдах и в определенных условиях.

Для Window 7 свой метод получения, для 8 тоже, для 10 разных версий тоже, ну и для 11 конечно по своему. А еще есть разные флаги, которые тоже влияют на это, в общем как обычно.

Получилось написать библиотеку, которая должна вроде работать во всех случаях. Если возможно она получает виртуальное разрешение монитора и сравнивает с реальным, если нет то другими способами, вплоть до реестра с разными ключами.

Но она никак не работала в TurboConf...

В этот раз я решил не сдаваться и довести дело до конца. 🔍

Чтобы способ заработал, приложению нужно выйти из песочницы. Для этого требуется настроить манифест программы, чтобы система знала, что можно отдавать реальный DPI приложению, а не виртуальный.

Добавил манифест - не заработало.

Я создал тестовое приложение из одной формы и манифестом. Тоже.

Я выяснил, что для моего типа приложений (WinForms) оказывается нужен не манифест, а app.confg. ОК.

Не заработало.

Попробовал на тестовом приложении с app.confg - работает! Интересно.

Я начал сравнивать и менять все настройки приложений на одинаковые. Не помогает.

Я начал удалять из проекта все что можно, все зависимости, библиотеки т.д. Безрезультатно.

Я удалил практически все, оставил одну форму как в тестовом. Результат тот же.

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

Я создал, новую чистую папку для проекта, и заново собрал - не работает. 😥

В чем же дело?! Это были две полностью одинаковые копии, кроме одного различия...

Названия сборки!

Одно называлось TestDpi.exe, а второе TurboConf.Application.exe
Убираю точку из названия и все работает!!! 😅

Что это было??? Из-за точки в названии я никак не мог долгое время заставить работать функцию! Мораль - никогда не сдавайтесь!

В общем хеппи энд, работаем дальше... 😉
🔥16👍91🤯1👾1