Marshal's channel
902 subscribers
288 photos
46 videos
8 files
327 links
About me: @ilya_marshal
Download Telegram
Набрел случайно на статью рандомную на хабре, ничего полезного, но реализацию на путоне схороню

Код: https://codepaste.ml/e2d24cd2/
Че за код: Расстояние Левенштейна

Upd. Игорь не заценил, говорит лучше на такую реализацию даже не смотреть
Media is too big
VIEW IN TELEGRAM
Интересный проект Quantum League, который авторы описывают как мультиплеерный FSP Time Loop в реальном времени.

Сначала можно ничего не понять, но вот как это работает. У каждого раунда (best of 3) есть 3 временных петли. В первой вы и ваш соперник сражаетесь первый раз, во второй добавляются клоны, которые клонируют ваше поведение в прошлой петле. К третьей петле все это превращается в 3 на 3, где настоящих игроков всего двое, а все остальные — клоны, имитирующие прошлые петли.

Это, безусловно, сразу же заставляет задуматься о временных парадоксах. А что, если убить клона противника до того, как он убьет твоего клона? Вместо смерти здесь desync, который отключает персонажа от временной петли, позволяя продолжать записывать действия игрока. Так что, если клон не умрет в следующем раунде, все действия во время desync будут повторяться живым клоном.
Marshal's channel
Photo
Спойлеры короче. Порядок ответов чета типо послушаю радио в пробке, чекну время на часах, посмотрю на салют
Marshal's channel
"должно быть имбово " Собсна вот сравнение до-после. Скорость на уровне, теперь уж точно можно нормально пользоваться ботом. Бот на стероидах P.S. Перед записью прогрел кэш)0) Самые глазастые увидели баг в навигации UPD. На проде медленнее чем локально…
В общем вот весь мой кэш: https://codepaste.ml/4c49c0a6/

Теперь словами. Над обёрткой запроса из моей библиотеки теперь есть обёртка с кэшем. Всё очень примитивно.

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

Если пришло время обновить кэш - выполняем запрос и сохраняем ответ. Обновить кэш нужно в двух случаях:
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 ('atomicwrites>=1.0;sys_platform=="win32"'). Я разрабатываю на линухе, в pipenv.lock эта зависимость не попала. Кста, не знаю как правильно такое резолвить. Просто добавил эту зависимость... Всё равно не используется, когда не надо, благодаря ифам в pytest.
Короче, говорят, что канал скат, о сплошном питоне, фуу, слишком серьёзно и узконаправленно. Питона меньше не станет, НО могу разбавить инфой из жизни и просто какими-то мелкими постиками, заметками, воойсами. Нааадооо?
Anonymous Poll
71%
Дааа, так будет лучше
29%
Сейчас всё хорошо
https://cytoid.io/ у этой игры есть просто все и сделано хорошо. Это прям настоящая Osu на мобилки. Библиотека карт, их импорт, куча режимов (блаинд там всякий, онли комбо и т.д). Аккаунт, прокачка уровня, рейтинги. Офигенский современный сайт. Меня смущает только одно. Маленькая активность, обновление с фиксами в декабре 2018 и полное затишье. Приложение не является особо популярным в плей маркете... Почему такой качественный и классный продукт так низок и тих я не знаю.

Дык они ещё и с открытым исходным кодом и вообще позиционируют себя как игра, разработанная сообществом 😳 https://github.com/TigerHix/Cytoid
Ля, шо это. Давно тут иконка директорий? Ну хотя я тока шо обновился до актуала 🧐
А шо ещё надо на паре? Понятное дело, не заниматься самой парой. И это, не пейте эту гадость. Я от неё отказался, НО, когда не за свой счёт, то сложно не взять 🌚
Завалялась фотка HR-a с линкида. Капец я потёк
Это ещё с поездки в Витебск. Нашел на квартире сие. Прикольно, только в интернете раньше читал про эту книгу. А вообще я сильно был связан с майном в 12-14 годах. Это то, что позволило мне заработать на комп да и прокачаться в прогерстве. Дааа, я кодил для майна
Marshal's channel
Photo
А читал ли кто условия конкурса? Я вот приофигел сколько там всего интересного и как запарились. Реальный док составили. Шоб никто прикопаться не мог. Да, компании выгоднее заплатить юристам для составления этого дерьма, чем потом в суде заплатить гораздо больше
Как это я забыл запостить пикчу со смыслом 🧐