Marshal's channel
Photo
Спойлеры короче. Порядок ответов чета типо послушаю радио в пробке, чекну время на часах, посмотрю на салют
Marshal's channel
А ещё оооочень бы хотелось дойти до 1к за 2019 год, но поздно спохватился, вряд ли выйдет. А если выйдет, то я назову 2019 год самым удачным и даже постараюсь не грустить на НГ ✨
This media is not supported in your browser
VIEW IN TELEGRAM
Я сделал это ✨ Показываю абсолютно всё (нет) чем занимался в 2019-ом
Marshal's channel
"должно быть имбово ✨" Собсна вот сравнение до-после. Скорость на уровне, теперь уж точно можно нормально пользоваться ботом. Бот на стероидах P.S. Перед записью прогрел кэш)0) Самые глазастые увидели баг в навигации UPD. На проде медленнее чем локально…
В общем вот весь мой кэш: https://codepaste.ml/4c49c0a6/
Теперь словами. Над обёрткой запроса из моей библиотеки теперь есть обёртка с кэшем. Всё очень примитивно.
Если не надо использовать кэш для этого запроса - выполняем реальный запрос и отдаем ответ. Такое нужно, например, в лайках и дизлайках у бота. Если пользователь вдруг передумал и прожал цепочку лайк-дизлайк-лайк.
Если пришло время обновить кэш - выполняем запрос и сохраняем ответ. Обновить кэш нужно в двух случаях:
1. Время жизни кэша истекло (протух). Живет он
2. В кэше нет нужного ответа.
Иначе возвращаем результат их кэша.
Запросы идентифицируются по всему. Урл, заголовки и данные запроса. Сравниваются hash'a.
Так же у кэша помимо
Собсна вот, ничего умного, а дало такой результат ✨
Upd. Возможно, в скором будущем, открою исходный код бота. Ибо пока это выглядит больше как доказательство того, что мою библиотеку можно использовать для разработки 😆 да и это отличный пример по использованию (даа, у либы все еще нет норм примеров)
Теперь словами. Над обёрткой запроса из моей библиотеки теперь есть обёртка с кэшем. Всё очень примитивно.
Если не надо использовать кэш для этого запроса - выполняем реальный запрос и отдаем ответ. Такое нужно, например, в лайках и дизлайках у бота. Если пользователь вдруг передумал и прожал цепочку лайк-дизлайк-лайк.
Если пришло время обновить кэш - выполняем запрос и сохраняем ответ. Обновить кэш нужно в двух случаях:
1. Время жизни кэша истекло (протух). Живет он
lifetime
минут (сейчас стоит 5).2. В кэше нет нужного ответа.
Иначе возвращаем результат их кэша.
Запросы идентифицируются по всему. Урл, заголовки и данные запроса. Сравниваются hash'a.
Так же у кэша помимо
lifetime
есть size
- максимальное количество ответов, которое может сохранить кэш. Нужно конечно же для того, чтобы не выжрать всю память будучи с большим аптаймом. Собсна вот, ничего умного, а дало такой результат ✨
Upd. Возможно, в скором будущем, открою исходный код бота. Ибо пока это выглядит больше как доказательство того, что мою библиотеку можно использовать для разработки 😆 да и это отличный пример по использованию (даа, у либы все еще нет норм примеров)
Деволоплю либу я на последнем Python'e (3.8) и не проставляю определённые версии зависимостям в pipfile, ибо хочу поддерживать всё в актуальном состоянии. И вот обновил я в очередной раз все зависимости. Всё хорошо, кроме pytest.
Конечно же я пошел в ченджлоги)
Во-первых эти ребятки сделали это: #5537: Replace importlib_metadata backport with importlib.metadata from the standard library on Python 3.8+.
Во-вторых это: #6148: atomicwrites is now only used on Windows, fixing a performance regression with assertion rewriting on Unix.
Что это значит? А то, что для Python'a ниже 3.8 нужно теперь ставить мост, ибо они отказались от него в сторону встроенного в 3.8.
Ну и по второму изменению ясно, что теперь зависимость ставится только при win32 (
Конечно же я пошел в ченджлоги)
Во-первых эти ребятки сделали это: #5537: Replace importlib_metadata backport with importlib.metadata from the standard library on Python 3.8+.
Во-вторых это: #6148: atomicwrites is now only used on Windows, fixing a performance regression with assertion rewriting on Unix.
Что это значит? А то, что для Python'a ниже 3.8 нужно теперь ставить мост, ибо они отказались от него в сторону встроенного в 3.8.
Ну и по второму изменению ясно, что теперь зависимость ставится только при win32 (
'atomicwrites>=1.0;sys_platform=="win32"'
). Я разрабатываю на линухе, в pipenv.lock эта зависимость не попала. Кста, не знаю как правильно такое резолвить. Просто добавил эту зависимость... Всё равно не используется, когда не надо, благодаря ифам в pytest.GitHub
Use standard library importlib.metadata on Python 3.8 · Issue #5537 · pytest-dev/pytest
Once we update Python in Fedora to 3.8, we'd like our pytest package to use importlib.metadata from the standard library. Would you accept a PR that makes the dependency on external importl...
Короче, говорят, что канал скат, о сплошном питоне, фуу, слишком серьёзно и узконаправленно. Питона меньше не станет, НО могу разбавить инфой из жизни и просто какими-то мелкими постиками, заметками, воойсами. Нааадооо?
Anonymous Poll
71%
Дааа, так будет лучше
29%
Сейчас всё хорошо
https://cytoid.io/ у этой игры есть просто все и сделано хорошо. Это прям настоящая Osu на мобилки. Библиотека карт, их импорт, куча режимов (блаинд там всякий, онли комбо и т.д). Аккаунт, прокачка уровня, рейтинги. Офигенский современный сайт. Меня смущает только одно. Маленькая активность, обновление с фиксами в декабре 2018 и полное затишье. Приложение не является особо популярным в плей маркете... Почему такой качественный и классный продукт так низок и тих я не знаю.
Дык они ещё и с открытым исходным кодом и вообще позиционируют себя как игра, разработанная сообществом 😳 https://github.com/TigerHix/Cytoid
Дык они ещё и с открытым исходным кодом и вообще позиционируют себя как игра, разработанная сообществом 😳 https://github.com/TigerHix/Cytoid
Marshal's channel
Короче, говорят, что канал скат, о сплошном питоне, фуу, слишком серьёзно и узконаправленно. Питона меньше не станет, НО могу разбавить инфой из жизни и просто какими-то мелкими постиками, заметками, воойсами. Нааадооо?
This media is not supported in your browser
VIEW IN TELEGRAM
Недавний новый причесон. А ведь когда-то с хвостом был, ух ✨
Это ещё с поездки в Витебск. Нашел на квартире сие. Прикольно, только в интернете раньше читал про эту книгу. А вообще я сильно был связан с майном в 12-14 годах. Это то, что позволило мне заработать на комп да и прокачаться в прогерстве. Дааа, я кодил для майна
Marshal's channel
Photo
А читал ли кто условия конкурса? Я вот приофигел сколько там всего интересного и как запарились. Реальный док составили. Шоб никто прикопаться не мог. Да, компании выгоднее заплатить юристам для составления этого дерьма, чем потом в суде заплатить гораздо больше
Короче или я овощ, или у лыжи не едут. Думал релизну новую версию либы с тайп хинтами и несколькими фиксами и фичами, но неет. Шоб написать ченджлог над править .rst, а рофл в том, что он у меня не открывается в идеи.
Вообще, я меня стоит плагинос ReStructuredText Support от JetBrains! Ну там подсветка синтаксиса да и отображение в лайве справа от редактирования. Удобно короче. Думал, шо пришло время обновить идею, ибо обновы на плагин не было. Пошел, обновил. Захожу, просит обновить плагины (в т.ч. этот rst), обновил. И шо? А нишо. Не открывает. Да, конечно можно оффнуть плагин и открыть .rst, но чета уже желания чет делать в 4 утра нет.
Завтра тогда, завтра ✨
Вообще, я меня стоит плагинос ReStructuredText Support от JetBrains! Ну там подсветка синтаксиса да и отображение в лайве справа от редактирования. Удобно короче. Думал, шо пришло время обновить идею, ибо обновы на плагин не было. Пошел, обновил. Захожу, просит обновить плагины (в т.ч. этот rst), обновил. И шо? А нишо. Не открывает. Да, конечно можно оффнуть плагин и открыть .rst, но чета уже желания чет делать в 4 утра нет.
Завтра тогда, завтра ✨
JetBrains Plugin Repository
ReStructuredText - Plugins | JetBrains
This plugin enables support for reStructuredText files (*.rst).
This media is not supported in your browser
VIEW IN TELEGRAM
У меня два постоянных контрибьютора
Я и моё эго
Нефиг разные мыла и имена указывать в гите (https://t.me/MarshalC/75)
Я и моё эго
Нефиг разные мыла и имена указывать в гите (https://t.me/MarshalC/75)