На чем сегодня деплоят в продакшн традиционные wsgi/gevent Flask приложения? Мы пытались использовать gunicorn но он просто не стабилен под нагрузкой (1, 2).
Сегодня деплоим на gevent.pywsgi но у меня складывается впечатление что этой связкой вообще никто не пользуется, и живого коммьюнити почти нету.
Вторая проблема - это скорость работы всего стэка. Тут скорее проблема не Flask а его экосистемы, но приложение на Flask + SQLAlchemy + Marshmallow + что-то там еще, работает ну ОЧЕНЬ медленно. Примерно раз в 15 медленнее чем аналогичное API на каком-нибудь .NET.
В целом за многие годы работы с Flask я так и не встретил кого-либо, кто использовал его на нормальных production high-load проектах, и был готов поделиться инсайдами. Зато встречал тех, кто пытался, и они были согласны что это не работает и либо перешли на другой стэк, либо испытывают такую-же боль.
Наверное, если кто-то сумасшедший хочет сделать такую посудину у себя в гараже и утонуть, то это его право. Но продавать это за 250 тысяч, людям которые возможно не разбираются в безопасности плавательных средств (и у которых, видимо, отсутствует инстинкт самосохранения), это конечно верх дичи и безумия.
Забыли добавить: батискаф не открывается изнутри, и даже если он аварийно всплыл то люди внутри не смогут его открыть и подать сигнал бедствия (для подачи которого устройств или маячков на борту тоже нету).
Насколько я понял, даже если не произошло катастрофы и батискаф не схлопнулся под давлением и система аварийного всплытия сработала, то он не может полностью "вынорнуть", и бОльшая часть судна будет находится под водой. Небольшой кусочек батискафа, торчащий из под воды и дрейфующий где-то посреди океана, еще надо найти. А открыть его изнутри невозможно.
А вот исправить их, не сломав попутно половину игры - бич большинства консольных гейм разработчиков, наковырявших во время предрелизного кранча в коде костылей, лишь бы оно хоть как-то работало, когда уйдет на голд (а дальше можно забыть этот кошмар и начинать работать над новой игрой).
С контейнерами это разные задачи. А когда софт установлен нативно в систему через тот же apt, обновить систему не обновив пакеты (или наоборот) невозможно.
Новые версии ПО часто не поддерживают старые версии ОС, а старые версии ПО не работают на новых версиях ОС.
Модно и молодежно, потому что запуск каждой программы в своей изолированной песочнице - это не только защита от потенциального вредоноса и уязвимостей, но и гарантия того, что пакет А не будет конфликтовать с пакетом Б из-за общих зависимостей, не сломает вам конфигурацию системы, ну итд.
Жертвуя disk space / memory за счет того, что некоторые зависимости могут быть установленны и запущены несколько раз, вы сохраняете себе время и нервы.
Конечно, curl слишком простой и зависимостей почти не имеет, но вы когда-нибудь пытались обновить Linux сервер 10и летней давности, в котором все было установлено через apt? Я не помню ни одного случая, что бы оно просто заработало. А контейнеры перенести на другой хост занимает минуту.
Иногда очень хочется, что бы Microsoft выкинули весь этот легаси и сделали бы с нуля свою UNIX based операционную систему, в которой UI/UX был бы на уровне Windows 10 и можно было бы в режиме совместимости запускать Windows программы (Windows subsystem for Linux?).
Генерация текста, и мышление - это разные вещи. В моем понимании мышление - это способность решать задачи, которые никто до вас не решал. Для этого необходимо самообучение, и постороение нейронных связей в процессе решения.
ChatGPT это генератор текста. Он может решить за вас задачу, которая уже была решена кем-то, и в интернете есть это решение, либо что-то очень близкое к нему.
Всеми силами за осмысление и переосмысление, изучение где такие (и любые другие) технологии могут быть опасны, а где нет. В споре рождается истина, и возможно что я не прав и подбор следующего токена/слова в предложении, это и есть интеллект.
Но пока что это не звучит убедительно, а призывы остановить разработку и исследования, звучат как попытка заткнуть рот тем с кеми вы не согасны и перетянуть на себя research funding одеяло.
Чуваки собрали кучу текста из интернета и сделали алгоритм, который ищет в нем ваш вводный текст и говорит "с наибольшей долей вероятности, следующее слово - вот такое".
В этот момент начинается истерия и призывы остановить разработку, разговоры о ядерном оружии и апокалипсисе.
Всё это напоминает средневековых алхимиков, которые, научившись растворять металлы, решили что они в одном шаге от превращения меди в золото, или создания гомункула.
Конечно, LLM и трансформеры это круто и сложнее в реализации чем я описал, и развитие нейронных сетей позволит людям улучшить наши инструменты и быть эффективнее. Но AGI (и искусственным интеллектом в целом) там даже еще и не пахло.
Придумали конкурента Steam Deck, который по заверениям в два раза более производительный, при этом с full hd экраном на 120 Hz вместо ужасного 720p/60hz итд.
Основных два вопроса, это цена и длительность жизни батареи.
Экран - это цельный объект, в котором может быть много разных UI элементов. Например, окно прокачки персонажа - экран. Инвентарь - экран. Полоска прогресса производственного генератора - не экран, а вот окно с генератором и его настройками - экран. Экран сам руководит своими UI элементами: может их показывать, скрывать, менять у них настройки и тд
Слишком условное деление. Что если я хочу сделать экран в экране? Что если нужны модальные окна? Что делать с элементами вроде статичного меню которое всегда вверху или внизу? Что если в одном случае UI элемент является экраном, а в другом встроен внутрь меню?
Что за интерфейсIGameData ? В статье нигде не упоминается.
Зачем нужен не дженерик Bind(object model); и для чего вообще нужен BaseScreen который вроде как имеет в себе концепцию модели, но ничего с ней не делает? Выглядит как лишний уровень абстракции.
В чем вообще смысл всей этой свзяки с моделью через ViewModel, если по сути вызовы логики типа AddHealth() проксируются через аж 3 класса в нужный?
Как это все работает с юнит, интеграционным тестированием? C# не позволяет делать mocks для абстрактных классов, чем обусловлен выбор их а не в пользу интерфейсов? Какие элементы из MVVM планируется покрывать тестами?
Проблема с кастомными реализациями MVC, MVP, MVVP и прочими паттернами в Unity и не только, заключается в том что структура копируется без оглядки на смысл. Если делать столько слоёв абстракции, то нужно понимать, зачем они нужны.
Например, в Xamarin.Forms структура MVVM нужна для (и предоставляет) множество полезных фич, таких как Two-Way Binding. В вашем примере ничего этого нету.
Ответ, "потому-что так написано в англоязычной википедии по запросу MVVM" не является на мной взгляд достаточным.
Как по мне, выбор любых паттернов или фрейморков очень сильно зависит от нужд проекта. Не существует серебряной пули, которая бы отлично подходила всем. В 3D игре с экраном настроек и главным меню, требования к структуре UI совсем другие, чем в сложном 2D ui-driven проекте с сотней различных экранов.
Для игр с большим колиеством UI элементов, я советую начать с изучения Dependency Injection и IoC, эти концепции на мой взгляд довольно хорошо сочетается с ECS.
Наилучшее, что может сделать DevOps команда, это никогда не использовать Jenkins для CI/CD.
Выбросьте этот мерзкий клубок из вечно ломающихся и конфликтующих друг с другом Java плагинов и используйте CI/CD здорового человека в виде Gitlab Pipelines или Github Actions.
> Ну не факт, что там плацебо, да и плацебо-контролируемые эксперименты вполне нормальны
Существуют золотые стандарты проведения клинических испытаний, такие как RDBPC, с рассчетами p-value, учетом нулевой гипотезы, и последующей публикацией, проверкой и критикой результатов другими людьми и независимыми организациями.
Эти стандарты существуют именно потому, что человек не идеален и по огромному ряду причин проводящие исследования люди могут очень легко совершать ошибки в нужную им сторону, часто сами даже не осознавая этого.
Можно (и нужно) эти стандарты обсуждать и улучшать, а можно выкинуть десятилетия науки в помойку и сказать "нет времени на клинические испытания, люди же гибнут". Но тогда не надо удивляться когда окажется, что этим только навредили и косвенно привели к смерти тысяч людей.
То о чем говорите вы и о чем говорю я по суди - одно и тоже.
Не смогу сейчас найти сорс и сравнивать трудно, но вот согласно википедии по данным вроде как от 2004года, в РО было зарегистрировано 25 миллионов человек. В Ultima на 2003й было около 250 тысяч. Не уверен что данные верны, но в Азии в РО играло просто огромное количество человек, и он есть в списке самых популярных игр.
Лень искать нормальные пруфы, сути сказанного это не меняет.
Была такая игра в начале 2000х, Ragnarok Online. В свое время носила звание самой популярной MMORPG в мире, пока ей на смену не пришли WoW и L2.
Её разработчик, Gravity Co ($GRVY), зарабатывал на RO и прочих MMORPG около $40-50 миллионов в год.
А потом в 2016м году они вышли на мобильный рынок и теперь на мобильных казинычах с NFT, которые они собирают из ассетов 2001го года, зарабатывают $300+ миллионов в год. За последние несколько лет они на них заработали больше, чем за предыдущие ~15 лет и за всю историю RO вместе взятую.
На чем сегодня деплоят в продакшн традиционные wsgi/gevent Flask приложения? Мы пытались использовать gunicorn но он просто не стабилен под нагрузкой (1, 2).
Сегодня деплоим на gevent.pywsgi но у меня складывается впечатление что этой связкой вообще никто не пользуется, и живого коммьюнити почти нету.
Вторая проблема - это скорость работы всего стэка. Тут скорее проблема не Flask а его экосистемы, но приложение на Flask + SQLAlchemy + Marshmallow + что-то там еще, работает ну ОЧЕНЬ медленно. Примерно раз в 15 медленнее чем аналогичное API на каком-нибудь .NET.
В целом за многие годы работы с Flask я так и не встретил кого-либо, кто использовал его на нормальных production high-load проектах, и был готов поделиться инсайдами. Зато встречал тех, кто пытался, и они были согласны что это не работает и либо перешли на другой стэк, либо испытывают такую-же боль.
Наверное, если кто-то сумасшедший хочет сделать такую посудину у себя в гараже и утонуть, то это его право. Но продавать это за 250 тысяч, людям которые возможно не разбираются в безопасности плавательных средств (и у которых, видимо, отсутствует инстинкт самосохранения), это конечно верх дичи и безумия.
Забыли добавить: батискаф не открывается изнутри, и даже если он аварийно всплыл то люди внутри не смогут его открыть и подать сигнал бедствия (для подачи которого устройств или маячков на борту тоже нету).
Насколько я понял, даже если не произошло катастрофы и батискаф не схлопнулся под давлением и система аварийного всплытия сработала, то он не может полностью "вынорнуть", и бОльшая часть судна будет находится под водой. Небольшой кусочек батискафа, торчащий из под воды и дрейфующий где-то посреди океана, еще надо найти. А открыть его изнутри невозможно.
Поиск багов это дело недурное.
А вот исправить их, не сломав попутно половину игры - бич большинства консольных гейм разработчиков, наковырявших во время предрелизного кранча в коде костылей, лишь бы оно хоть как-то работало, когда уйдет на голд (а дальше можно забыть этот кошмар и начинать работать над новой игрой).
Забыли лишь упомянуть про js кейлоггер, который они инъецировали во все WebView, открываемые внутри приложения.
С контейнерами это разные задачи. А когда софт установлен нативно в систему через тот же apt, обновить систему не обновив пакеты (или наоборот) невозможно.
Новые версии ПО часто не поддерживают старые версии ОС, а старые версии ПО не работают на новых версиях ОС.
Модно и молодежно, потому что запуск каждой программы в своей изолированной песочнице - это не только защита от потенциального вредоноса и уязвимостей, но и гарантия того, что пакет А не будет конфликтовать с пакетом Б из-за общих зависимостей, не сломает вам конфигурацию системы, ну итд.
Жертвуя disk space / memory за счет того, что некоторые зависимости могут быть установленны и запущены несколько раз, вы сохраняете себе время и нервы.
Конечно, curl слишком простой и зависимостей почти не имеет, но вы когда-нибудь пытались обновить Linux сервер 10и летней давности, в котором все было установлено через apt? Я не помню ни одного случая, что бы оно просто заработало. А контейнеры перенести на другой хост занимает минуту.
Иногда очень хочется, что бы Microsoft выкинули весь этот легаси и сделали бы с нуля свою UNIX based операционную систему, в которой UI/UX был бы на уровне Windows 10 и можно было бы в режиме совместимости запускать Windows программы (Windows subsystem for Linux?).
Что такое по-вашему мышление, и как определить что у существа есть способность мыслить?
Генерация текста, и мышление - это разные вещи. В моем понимании мышление - это способность решать задачи, которые никто до вас не решал. Для этого необходимо самообучение, и постороение нейронных связей в процессе решения.
ChatGPT это генератор текста. Он может решить за вас задачу, которая уже была решена кем-то, и в интернете есть это решение, либо что-то очень близкое к нему.
Всеми силами за осмысление и переосмысление, изучение где такие (и любые другие) технологии могут быть опасны, а где нет. В споре рождается истина, и возможно что я не прав и подбор следующего токена/слова в предложении, это и есть интеллект.
Но пока что это не звучит убедительно, а призывы остановить разработку и исследования, звучат как попытка заткнуть рот тем с кеми вы не согасны и перетянуть на себя research funding одеяло.
Чуваки собрали кучу текста из интернета и сделали алгоритм, который ищет в нем ваш вводный текст и говорит "с наибольшей долей вероятности, следующее слово - вот такое".
В этот момент начинается истерия и призывы остановить разработку, разговоры о ядерном оружии и апокалипсисе.
Всё это напоминает средневековых алхимиков, которые, научившись растворять металлы, решили что они в одном шаге от превращения меди в золото, или создания гомункула.
Конечно, LLM и трансформеры это круто и сложнее в реализации чем я описал, и развитие нейронных сетей позволит людям улучшить наши инструменты и быть эффективнее. Но AGI (и искусственным интеллектом в целом) там даже еще и не пахло.
Придумали конкурента Steam Deck, который по заверениям в два раза более производительный, при этом с full hd экраном на 120 Hz вместо ужасного 720p/60hz итд.
Основных два вопроса, это цена и длительность жизни батареи.
Слишком условное деление. Что если я хочу сделать экран в экране? Что если нужны модальные окна? Что делать с элементами вроде статичного меню которое всегда вверху или внизу? Что если в одном случае UI элемент является экраном, а в другом встроен внутрь меню?
Что за интерфейс
IGameData
? В статье нигде не упоминается.Зачем нужен не дженерик
Bind(object model);
и для чего вообще нуженBaseScreen
который вроде как имеет в себе концепцию модели, но ничего с ней не делает? Выглядит как лишний уровень абстракции.В чем вообще смысл всей этой свзяки с моделью через ViewModel, если по сути вызовы логики типа
AddHealth()
проксируются через аж 3 класса в нужный?Как это все работает с юнит, интеграционным тестированием? C# не позволяет делать mocks для абстрактных классов, чем обусловлен выбор их а не в пользу интерфейсов? Какие элементы из MVVM планируется покрывать тестами?
Проблема с кастомными реализациями MVC, MVP, MVVP и прочими паттернами в Unity и не только, заключается в том что структура копируется без оглядки на смысл. Если делать столько слоёв абстракции, то нужно понимать, зачем они нужны.
Например, в Xamarin.Forms структура MVVM нужна для (и предоставляет) множество полезных фич, таких как Two-Way Binding. В вашем примере ничего этого нету.
Ответ, "потому-что так написано в англоязычной википедии по запросу MVVM" не является на мной взгляд достаточным.
Как по мне, выбор любых паттернов или фрейморков очень сильно зависит от нужд проекта. Не существует серебряной пули, которая бы отлично подходила всем. В 3D игре с экраном настроек и главным меню, требования к структуре UI совсем другие, чем в сложном 2D ui-driven проекте с сотней различных экранов.
Для игр с большим колиеством UI элементов, я советую начать с изучения Dependency Injection и IoC, эти концепции на мой взгляд довольно хорошо сочетается с ECS.
Наилучшее, что может сделать DevOps команда, это никогда не использовать Jenkins для CI/CD.
Выбросьте этот мерзкий клубок из вечно ломающихся и конфликтующих друг с другом Java плагинов и используйте CI/CD здорового человека в виде Gitlab Pipelines или Github Actions.
> Ну не факт, что там плацебо, да и плацебо-контролируемые эксперименты вполне нормальны
Существуют золотые стандарты проведения клинических испытаний, такие как RDBPC, с рассчетами p-value, учетом нулевой гипотезы, и последующей публикацией, проверкой и критикой результатов другими людьми и независимыми организациями.
Эти стандарты существуют именно потому, что человек не идеален и по огромному ряду причин проводящие исследования люди могут очень легко совершать ошибки в нужную им сторону, часто сами даже не осознавая этого.
Можно (и нужно) эти стандарты обсуждать и улучшать, а можно выкинуть десятилетия науки в помойку и сказать "нет времени на клинические испытания, люди же гибнут". Но тогда не надо удивляться когда окажется, что этим только навредили и косвенно привели к смерти тысяч людей.
То о чем говорите вы и о чем говорю я по суди - одно и тоже.
Ну, запуская в 2021м вакцины КовиВак и ЭпиВакКорона рассказывать о том, что "проводить исследования с плацебо в РФ неэтично", им было не стыдно.
Все эти люди к науке не имеют отношения (как и РАН, года так с 2013го)
Не смогу сейчас найти сорс и сравнивать трудно, но вот согласно википедии по данным вроде как от 2004года, в РО было зарегистрировано 25 миллионов человек. В Ultima на 2003й было около 250 тысяч.
Не уверен что данные верны, но в Азии в РО играло просто огромное количество человек, и он есть в списке самых популярных игр.
Лень искать нормальные пруфы, сути сказанного это не меняет.
Была такая игра в начале 2000х, Ragnarok Online. В свое время носила звание самой популярной MMORPG в мире, пока ей на смену не пришли WoW и L2.
Её разработчик, Gravity Co ($GRVY), зарабатывал на RO и прочих MMORPG около $40-50 миллионов в год.
А потом в 2016м году они вышли на мобильный рынок и теперь на мобильных казинычах с NFT, которые они собирают из ассетов 2001го года, зарабатывают $300+ миллионов в год. За последние несколько лет они на них заработали больше, чем за предыдущие ~15 лет и за всю историю RO вместе взятую.