RSS
Поиск
17.11.2018


когда-нибудь я дойду до создания NameGenerate
17.11.2018


Кстати, данное изменение тоже было внесено в обе мажорные ветки. Чуть не забыл упомянуть про него.
17.11.2018


Внедрение поддержки Docker'а позволило мне в очередной раз перенести бота на другой сервер. Да, снова, уже в третий раз. Такая уж судьба у @textUtilsBot'а. У меня возникла необходимость в скором времени надолго отключить домашний сервер, так что пришлось срочно переезжать. Теперь бот должен отвечать значительно быстрее за счёт избавления от лишних промежуточных прокси-серверов (всё-таки через Tor он работает довольно медленно). Да и сам сервер должен быть помощнее. К тому же территориально располагается в Амстердаме, а не в далёком Нью-Йорке, как мой нынешний основной сервер. Ну а стал ли он действительно быстрее, я хочу спросить у вас, дорогие мои пользователи. 😊 К посту прикреплены кнопки с голосованием от «значительно быстрее» до «значительно медленее» (велосипедист означает «так же»). Как всегда, последним предусмотрен вариант для сомневающихся. Хочу выразить благодарность товарищам @Daniel0ldback за финансирование, @kiv_apple за наводку на Scaleway с их VPSками с 1 Гб ОЗУ за €2/мес и @DogeShibu за то что не дал мне сдаться и заставил всё-таки разобраться в настройке Докера до конца. Ну и напоследок небольшой спойлер: раз уж теперь я умею в контейнеризацию приложений и могу использовать последние версии Питона, ничего не компилируя на сервере, то ожидайте скоро обзор на библиотеку AIOGram, о которой я уже упоминал ранее. 😉
17.11.2018


@textUtilsBot v2.0.0 Наконец-то задеплоил релиз новой версии бота! На самом деле вышли даже две версии: — v1.1.1, в которую вошли некоторые дополнения для типографского обработчика текста; — v2.0.0, в которой, кроме вышеназванных дополнений, несколько изменилась структура файлов для поддержки запуска бота внутри Docker-контейнера. Да, теперь бота можно запускать внутри контейнера и никоим образом не зависеть от версии установленного в системе интерпретатора Пайтона! Инструкция прилагается. Для конечных же пользователей единственным важным изменением в новой версии является добавление следующих символов в модуль «Элитный типограф»: ≠ (!=), ≈ (~=), ≤ (<=), ≥ (>=), … (...). Также в последний момент, уже исключительно для второй мажорной версии, была добавлена защита от спама и флуда через команду /suggest. Спасибо @uxredbyte, завалившему меня сотнями оскорбительных сообщений, за эту фичу.
10.11.2018


Однако передо мной встала новая дилемма. В текущей реализации типографский обработчик заменяет все парные двойные кавычки (") на угловые («»). Но куда более общераспространённой практикой для такой замены является использование двойных угловых скобок (<< и >>). Например, такая замена реализована в VK. Ну и в моём KozMUL'е, конечно. 😄 Теоретически этот вариант даёт больше контроля над текстом. Стоит ли мне его реализовать вместо существующего (👍🏼) или нет (👎🏼)? Или, может, превращать вообще все кавычки в угловые (🤘🏼)?
10.11.2018


Окей, в соответствии с вашими пожеланиями (в виде результатов голосования) начал готовить следующий релиз с минорными дополнениями и исправлениями (v1.1.1). Если есть ещё какие-либо символы, которые мне следует добавить, то сейчас самое время писать свои пожелания либо в личку бота с помощью команды /suggest, либо сразу мне напрямую.
08.11.2018


Что больше у вас ассоциируется с символом приблизительного равенства (≈)? anonymous poll ~= – 12 👍👍👍👍👍👍👍 100% ~~ ▫️ 0% 👥 12 people voted so far. Poll closed.
08.11.2018


И чтобы сразу, а не рефакторить месяцы спустя.
08.11.2018


Как же хочется писать код, соблюдая принципы SOLID…
08.11.2018


SOLID - общее принципы для построения архитектуры программ: Single responsibility - a class should have only a single responsibility Open-closed - software entities … should be open for extension, but closed for modification Liskov substitution - objects in a program should be replaceable with instances of their subtypes without altering the correctness of that program Interface segregation - many client-specific interfaces are better than one general-purpose interface Dependency inversion - depend upon abstractions, [not] concretions
08.11.2018


Ну и раз уж пошла пьянка за архитектуру ПО, то напомню про принципы SOLID, чтобы больше никто не забывал про open-closed principle и сразу делал нормально 😉
08.11.2018


Хоть вчера интернет так и не отключали, но я всё равно приготовил для вас компенсацию 😃 Этой ночью я всё-таки закончил и раскатил обновление для @textUtilsBot'а. Причём не столько «фичевое», сколько архитектурное. Из нового функционала там появилась возможность Д Е Л А Т Ь Т А К О Й Т Е К С Т, а также преобразовывать обычные двойные кавычки (") и некоторые последовательности символов вроде (c), (r) и (тм) в соответствующие символы Юникода, большинство из которых Telegram трансформирует в смайлики («», ©️, ®️, ™️). Но куда важнее, что я почти полностью переписал логику выбора обработчиков текста. Это настолько важное архитектурное изменение, что я даже начеркал пару строк на сайте (в конце поста). Теперь вместо «каши» из условных операторов там используется полноценная система динамической загрузки модулей из пакета strconv при старте приложения. Таким образом, теперь каждый обработчик текста — это наследник базового абстрактного класса TextProcessor. Реализуя методы can_process и process, они определяют, какие запросы способны обработать и выдают готовый ответ. В подробностях и с примерами всё расписано в гайде на Гитхабе. Правда на английском, но в 2018 году программисты же не боятся выходить за пределы рунета? Теперь делать новый функционал для @textUtilsBot'а стало проще некуда! Так что ни у кого больше не осталось оправданий не контрибьютить в open source. 😄 Жду ваших pull request'ов! 😎
07.11.2018


Сегодня рано спать пойду
07.11.2018


Чуть не забыл предупредить! Сегодня у провайдера будут ночные тех. работы, так что @textUtilsBot может продолжительное время не работать. Приношу извинения за возможные неудобства. Вот вам и домашний хостинг ._.
06.11.2018


Monitor is UP: Orange Pi Dashboard (https://dashboard.sadbot.ru). It was down for 5 minutes and 29 seconds.
06.11.2018


Когда сервер находится в хрущёвке с плохой проводкой, и у тебя «выбивает пробки».
03.11.2018


Наконец-то дошёл черёд и до поста про модуль по созданию простых локализации для ваших скриптов, про которого я упоминал буквально в каждом посте из цикла статей про ботов. Висит в PyPI он уже довольно давно, но всё было как-то не до него: хотелось сначала рассказать про ботов, в которых он используется в том или ином виде. Тем не менее, время для него всё-таки наступило, хотя пост и является по сути своей вольным переводом README с GitHub'а с небольшим количеством дополнений.
31.10.2018


Когда любишь Kotlin, но пишешь на C# 🌝
29.10.2018


Третий выпуск про ботов для Telegram! На сей раз он посвящён деструктивному боту @textUtilsBot, находящемуся постоянно на чемоданах и зачастившего с переездами с сервера на сервер. Rjve ytvyjuj ibahjd b fcby[hjyobys&
25.10.2018


(defn fact ([n] {:pre [(<= 0 n)]} (fact n 1)) ([n m] {:pre [(<= 0 n)]} (if (= n 0) m (recur (dec n) (java.math.BigInteger. (str (* n m)))))))