RSS
Поиск
11.03.2023


В связи с этим небольшая загадка: если заменить deprecated asyncio.get_event_loop() на простой новомодный asyncio.run() или даже тупо на asyncio.new_event_loop() код стопорится на первом await'е и не идёт дальше. Вопрос: какого х%я?
11.03.2023


Упаковал в контейнер старенький скрипт товарища @kiv_apple по удалению всех сообщений пользователя из определённого чата: https://github.com/kozalosev/tg-wipe
11.03.2023


В такие моменты выгодно быть майнером
11.03.2023


2023 продолжает традицию 2022-го и напоминает, что не существует стейблкоинов, надёжных инструментов, компаний или государств. Вся жизнь — это риск и игра на понижение
10.03.2023


Bot API 6.6 Localized Descriptions • Bots now support localized descriptions that are shown based on the user's language. • Added the methods setMyDescription and setMyShortDescription to set the bot's localized description and short description. • Added the methods getMyDescription and getMyShortDescription to obtain the bot's description or short description for a given language. Stickers and Emoji • Bots can now create custom emoji sticker sets with createNewStickerSet. • Added support for adaptive custom emoji colors via the needs_repainting parameter in the createNewStickerSet method. • Added the ability to specify search keywords for stickers added to sticker sets. • Improved editing options for sticker sets, including changing the title, deleting a pack, editing emoji lists and more. https://core.telegram.org/bots/api-changelog#march-9-2023 Note: Mentions of thumb across all methods and classes have been updated to thumbnail.
10.03.2023


Сначала позволили добавлять команды не руками, теперь мультиязычные описания. Не прошло и 10 лет! Мб когда-нибудь и аналитику по использованию бота добавят из коробки
08.03.2023


Наверное, одна из тупейших ошибок за последнее время. Пока поправил ad-hoc на сервере, потом внесу в какой-нибудь релиз
08.03.2023


Выбери фракцию
08.03.2023


08.03.2023


С праздником, дамы! Чтоб у вас всегда были крепкие волосы, коты, самые новые iPhone'ы, яркая помада и цветы в вазах и горшках!
03.03.2023


Говорят, что сегодня ещё день писателя. Так что с праздником всех причастных! 😄🫡
03.03.2023


Занимаясь серверами в пост-санкционное время, постоянно думаешь о том, как быстрее создавать новые виртуалки и переносить конфигурацию со старых. При этом я очень люблю свою конфигурацию для работы в терминале. Oh-my-zsh и Vim с кучей плагинов позволяют работать на удалённом сервере в простом текстовом терминале пусть не совсем так же удобно, как в полноценной IDE, но весьма и весьма комфортно. Да ещё и доставляют эстетическое наслаждение! И каждый раз, создавая новый дистрибутив в WSL, я проделывал все шаги по настройке заново, пусть они и неплохо мною описаны. И это при существующем, но давно не обновляемом KozConfigurator'е! Поскольку на дворе 2023 год пора бы автоматизировать это дело! Начал составлять плейбук для Ансибла: https://github.com/kozalosev/dotfiles-playbook Там пока возможны огрехи, но со временем буду дописывать
03.03.2023


На всю уходящую неделю я перевоплотился из разработчика в начинающего девопсера: разбирался с системами мониторинга и настраивал инфраструктуру с нуля на отечественном сервере, расположенном в Питере. Ох, как же было ссыкотно прошлым летом, когда оказалось, что я не могу оплатить иностранный хостинг. Решение этого вопроса потребовало дальней дороги, времени, денег и сил, но стоило того. Тем не менее, считаю, что нужно продолжать курс на создание изолированных окружений в обеих частях Интернета, чтобы быть готовым к любому стечению обстоятельств. Настройка VPS — это каждый раз очень интересный процесс, повторяющийся раз в несколько лет. Если не считать первые shared хостинги, где вся конфигурация сводилась к закидыванию файлов через FTP или веб-морду (и немного манипуляций с .htaccess), то за всё время я прошёл через 3 итерации (и все до сих пор работают!): 1) полностью нативный софт на хост-системе (или стоит их называть хост-виртуалками?); 2) завёрнутые в контейнеры приложения, проксируемые всё тем же system wide nginx'ом; 3) полностью переносимая конфигурация из набора docker-compose.yml файлов и Makefile'а, создающая контейнеры как под приложения, так и под всю инфраструктуру. Я всё ещё отстаю от всего прогрессивного мира, использующего Kubernetes, но для пары серваков это всё же был бы перебор. При этом кажется, что ниша нищебродских решений для ИТ-бомжей представлена хуже всего: есть чёткие решения для начинающих и куча готовых решений для больших взрослых дядей с кучей серверов, терабайтами дискового пространства и сотнями гигабайт оперативной памяти, но вот когда хочешь что-то среднее, то постоянно натыкаешься на какие-либо грабли и не находишь на 100% подходящих решений. Либо я плохо искал. Традиционный ELK стэк оказался очень тяжёлым. Для запуска одного Elastic Search рекомендуется иметь не менее 2 Гб ОЗУ. Широко известный cAdvisor тоже с лёгкостью отжирал треть памяти на гигабайтовой бич-машинке. Пришлось от них отказаться и поставить тупо Prometheus, чтобы собирать хотя бы метрики. Кажется, правильно я сделал, что вместо Спринга решил писать новый проект на Кваркусе и компилировать в нативный код с помощью GraalVM. При этом оказалось, что собрать логи со всех контейнеров, не связанных оркестратором и приблудами вроде Istio, — тоже процесс весьма нетривиальный. После потраченного на поиски дня я плюнул и написал простой shell-скрипт, выставляющий метрики, напрямую вызывая docker logs: https://gist.github.com/kozalosev/4bfa8f07fb48df66136c53f5391b219f (даже немного удивительно, что создать простейший HTTP-сервер можно с помощью базовых консольных утилит) Но есть и хорошие моменты: nginx-proxy и его acme-companion — шикарные штуки. Автоматически генерируемые виртуальные хосты с автоматически выпускаемыми сертификатами — это прекрасно! Рекомендую. Watchtower, который проверяет наличие новых образов для всех или указанных контейнеров, ещё не успел распробовать, но должно быть тоже офигенно. Последний кирпичик по автоматизации деплоя, чтобы просто создать релиз в Гитхабе и случилась магия!
28.02.2023


Топовый сайт: https://explainshell.com/ Не знал, что можно настолько легко понять, какие ключи используются в команде ░░░Пример
27.02.2023


Привет космополитам! Pulling elastic-search (docker.elastic.co/elasticsearch/elasticsearch:8.6.2)... ERROR: error pulling image configuration: download failed after attempts=1: error parsing HTTP 403 response body: invalid character '<' looking for beginning of value: "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \" http://www.w3.org/TR/html4/loose.dtd\">\n<HTML><HEAD><META HTTP-EQUIV=\"Content-Type\" CONTENT=\"text/html; charset=iso-8859-1\">\n<TITLE>ERROR: The request could not be satisfied</TITLE>\n</HEAD><BODY>\n<H1>403 ERROR</H1>\n<H2>The requ est could not be satisfied.</H2>\n<HR noshade size=\"1px\">\nThe Amazon CloudFront distribution is configured to block access from your country.\nWe can't connect to the server for this app or website at this time. There might be too mu ch traffic or a configuration error. Try again later, or contact the app or website owner.\n<BR clear=\"all\">\nIf you provide content to customers through CloudFront, you can find steps to troubleshoot and help prevent this error by re viewing the CloudFront documentation.\n<BR clear=\"all\">\n<HR noshade size=\"1px\">\n<PRE>\nGenerated by cloudfront (CloudFront)\nRequest ID: OMJTVk6DsSa8gC-Xyh7yAVVuu2SWCGHyg46O8iGb66sJi7K7-y0cPQ==\n</PRE>\n<ADDRESS>\n</ADDRESS>\n</BO DY></HTML>" А ведь когда принимали закон о суверенном интернете, никто не верил в благие намерения и все пугали цензурой. А оно вон как вышло…
26.02.2023


26.02.2023


Стоит же сюда постить не только про ИТ, но и про интересные места?