Набрел случайно на статью рандомную на хабре, ничего полезного, но реализацию на путоне схороню
Код: https://codepaste.ml/e2d24cd2/
Че за код: Расстояние Левенштейна
Upd. Игорь не заценил, говорит лучше на такую реализацию даже не смотреть
Код: https://codepaste.ml/e2d24cd2/
Че за код: Расстояние Левенштейна
Upd. Игорь не заценил, говорит лучше на такую реализацию даже не смотреть
Forwarded from Геймдев, который мы заслужили
Media is too big
VIEW IN TELEGRAM
Интересный проект Quantum League, который авторы описывают как мультиплеерный FSP Time Loop в реальном времени.
Сначала можно ничего не понять, но вот как это работает. У каждого раунда (best of 3) есть 3 временных петли. В первой вы и ваш соперник сражаетесь первый раз, во второй добавляются клоны, которые клонируют ваше поведение в прошлой петле. К третьей петле все это превращается в 3 на 3, где настоящих игроков всего двое, а все остальные — клоны, имитирующие прошлые петли.
Это, безусловно, сразу же заставляет задуматься о временных парадоксах. А что, если убить клона противника до того, как он убьет твоего клона? Вместо смерти здесь desync, который отключает персонажа от временной петли, позволяя продолжать записывать действия игрока. Так что, если клон не умрет в следующем раунде, все действия во время desync будут повторяться живым клоном.
Сначала можно ничего не понять, но вот как это работает. У каждого раунда (best of 3) есть 3 временных петли. В первой вы и ваш соперник сражаетесь первый раз, во второй добавляются клоны, которые клонируют ваше поведение в прошлой петле. К третьей петле все это превращается в 3 на 3, где настоящих игроков всего двое, а все остальные — клоны, имитирующие прошлые петли.
Это, безусловно, сразу же заставляет задуматься о временных парадоксах. А что, если убить клона противника до того, как он убьет твоего клона? Вместо смерти здесь desync, который отключает персонажа от временной петли, позволяя продолжать записывать действия игрока. Так что, если клон не умрет в следующем раунде, все действия во время desync будут повторяться живым клоном.
https://plus.yandex.by/newyear2020 чета из рекламы инсты
plus.yandex.by
Яндекс Плюс
Плюс ко всему
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
А читал ли кто условия конкурса? Я вот приофигел сколько там всего интересного и как запарились. Реальный док составили. Шоб никто прикопаться не мог. Да, компании выгоднее заплатить юристам для составления этого дерьма, чем потом в суде заплатить гораздо больше