В принципе можно, просто GIF удобней был тем, что можно гарантировать FPS – там задержка между кадрами прямо в файл записывается. При генерации каждого кадра, по идее, достаточная порция времени будет уходить на генерацию картинку, и высчитать, сколько реально осталось ждать до следующего кадра будет не сильно тривиально. Хотя стоит попробовать, конечно, всё равно.
Там крутая технология, я пробежался по обоимпатентам – если вкратце, то картинку они могут какую угодно рендерить (не обязательно этот шарик с частицами). Они анализируют усреднённое изменение в luminance (светимости), и передают данные именно через этот параметр, а вот chrominance (цветовая составляющая) там всё равно какая. Гениальность в том, что человеческий глаз гораздо более чувствителен к изменениям в цветовой составляющей, чем в светимости, и не видит тех изменений, но софт очень надёжно может из изменений светимости вытащить данные.
Ну, я не особо хочу озвучивать свою позицию про JS, чтобы не провоцировать холивары, но язык программирования это слишком важный и сложный инструмент, чтобы лепить его за пару недель и хаотически развивать. Есть такая известная цитата:
We become what we behold. We shape our tools and then our tools shape us
Инструменты, которые мы используем для решения задач, формируют то, как мы их решаем, наши дальнейшие решения, принципы и ценности, и, в итоге, всю экосистему. То, во что превратил наспех созданный язык для скриптиков, индустрию разработки софта – это сильнейший удар по борьбе с добавленной сложностью, с которой боролись пионеры computer science, такие как Дейкстра и Хоар, ещё в 70-е.
Поэтому да, моя главная претензия не столько к самому языку (что можно ждать от быстрой поделки), а к тому, что благодаря историческим недоразумениям это стало единственным языком доступным на внезапно ставшей основной платформе, и сформировало очень поломанную экосистему и целые поколения разработчиков, выращенных на поломанных принципах, сильно далеких от основного мейнстрима мира программирования. Эх, всё равно холиварно получилось.
Хаха, но нет. QR коды не читаются в отражении (точнее, некоторый софт для декодера умеет распознавать отражённые QR-коды и исправлять перед считыванием, но вообще нет). Ну и протокол не готов к двустороннему общению. Но идея забавная.
Центрировать что-то в веб UI это ужасно, да. Я лично очень жду пришествия Qt на wasm – вот уже есть даже Go-bindings: therecipe.github.io/widgets_playground
Но не могу согласиться, что костыльность HTML/CSS инвалидирует костыльность JS – мне кажется, они как раз очень гармонично смотрятся. Вот даже опыт с Vecty показывает, что с DOM/CSS на порядок проще работать, когда есть возможность легко и просто абстрагировать сложность, рефакторить и внятно описывать компоненты.
Про ресурсы по центрированию в CSS не подскажу, к сожалению, но на ответы подпишусь :D
Ммм, интересный вопрос. Замедленный режим позволяет снимать с высоким FPS, но скорость с которой AVFoundation может распознавать коды на кадрах, по идее, константа и будет определять реальную скорость. При этом, полагаю, slow motion режим как-то особенно реализован и в нём детект лиц и кодов выключен, поэтому придётся записывать, а потом проигрывать на оптимальной скорости – что уже удлиняет и усложняет весь процесс. Но идея интересная.
Ну, такой задачи не стояло, и я, конечно, тестировал для идеальных условий, чтобы оценить вообще порядок. Но сам детект QR кода реализован непосредственно в OS (AVFoundation умеет автоматически много чего распознавать – я так полагаю, с помощью нейросетки), и при ручных тестах у меня сложилось впечатление, что легкое дрожание и изменение ракурса вообще не влияет – главное, чтобы код оставался в кадре. Вполне допускаю, что на более старых телефонах это не так хорошо – но iPhone XS всё таки по мощности сравним с Macbook Pro, так что неудивительно.
Насчёт wasm — сам сильно жду, и это в ближайших планах, уже висит PR открытый. Я так понимаю, это будет политическое решение – уход от gopherjs к wasm, поскольку поддержка обоих вариантов там не сильно получается – нужно API менять немного.
Вы правы, мой аргумент был не о том, что анализаторы проще писать для Go, а не на Go. Но простота Go (которая делает его удобной мишенью для статических анализаторов) она не только в грамматике, но и в тулинге, скорости, опыте использования, вероятности контрибьютинга, стабильности языка и т.д. Я знаю, что если я напишу анализатор на Go, то через 4 года он будет всё так же работать, код будет всё так же читабелен, и с ним будет так же удобно работать.
Выше вот удивляются, почему в Go обилие линтеров и металинтеров – и это как раз потому, что их чертовски легко писать (в сравнении с другими языками). Немного опыта работы с AST плюс фантазия и можно автоматизировать нахождение и исправление очень много чего – вплоть до линтеров специфичных для конкретного проекта. Проблема как раз в diminished returns – чем больше линтеров, тем больше оверхед на каждый из них, и тем больше время линтинга в целом. То есть, если я хочу добавить 15 линтеров, каждый из них будет парсить исходный код и колдовать над ним, и затраты на это могу превысить порог, когда это вообще оправданно. Я так, понимаю, линтер собранный lintpack-ом берет задачу парсинга и прохода по коду на себя, а линтеры ответственны только за саму проверку и ничего больше. Это сильно уменьшает затраты на написание (и включение в pipeline) нового линтера.
С моей точки зрения, то что вы написали (про «давайте переименуем работу») уж никак нельзя называть «конструктивным диалогом». Сам факт того, что вы называете это так уже намекает на троллинг.
Более того, десятки ваших предыдущих, неадекватных, с моей точки зрения, комментариев, сильно кредит доверия к вам, как к собеседнику, убрали.
У меня есть две интерпретации вашего комментария – либо это откровенный троллинг, либо уровень интеллекта ниже уровня, с которым стоит общаться. Я поставил на первый вариант, но вы, похоже, утверждаете, что это было неверно.
В любом случае, вероятность того, что вы вдруг проявите признаки адекватного общения уже давно приблизилась к нулю, поэтому я и не вижу смысла продолжать. Вам со мной общаться непонятно, а мне с вами неприятно и скучно.
Извините, но вы в принципе не понимаете о чём говорите, лишь придумываете зацепки за аргументы, в надежде выиграть бессмысленный спор. Тема экономических потерь от gender inequality обсуждается на мировых экономических форумах, имеет вполне конкретные цифры, и если бы действительно хотели в этом разобраться, то нашли бы все ответы.
Давайте вы сначала попробуете сами узнать это (подсказка: гугл), и лишь потом попытаетесь возложить на меня ответственность за какие-то ваши новые знания.
Спасибо )
В принципе можно, просто GIF удобней был тем, что можно гарантировать FPS – там задержка между кадрами прямо в файл записывается. При генерации каждого кадра, по идее, достаточная порция времени будет уходить на генерацию картинку, и высчитать, сколько реально осталось ждать до следующего кадра будет не сильно тривиально. Хотя стоит попробовать, конечно, всё равно.
Там крутая технология, я пробежался по обоим патентам – если вкратце, то картинку они могут какую угодно рендерить (не обязательно этот шарик с частицами). Они анализируют усреднённое изменение в luminance (светимости), и передают данные именно через этот параметр, а вот chrominance (цветовая составляющая) там всё равно какая. Гениальность в том, что человеческий глаз гораздо более чувствителен к изменениям в цветовой составляющей, чем в светимости, и не видит тех изменений, но софт очень надёжно может из изменений светимости вытащить данные.
Инструменты, которые мы используем для решения задач, формируют то, как мы их решаем, наши дальнейшие решения, принципы и ценности, и, в итоге, всю экосистему. То, во что превратил наспех созданный язык для скриптиков, индустрию разработки софта – это сильнейший удар по борьбе с добавленной сложностью, с которой боролись пионеры computer science, такие как Дейкстра и Хоар, ещё в 70-е.
Поэтому да, моя главная претензия не столько к самому языку (что можно ждать от быстрой поделки), а к тому, что благодаря историческим недоразумениям это стало единственным языком доступным на внезапно ставшей основной платформе, и сформировало очень поломанную экосистему и целые поколения разработчиков, выращенных на поломанных принципах, сильно далеких от основного мейнстрима мира программирования. Эх, всё равно холиварно получилось.
Но не могу согласиться, что костыльность HTML/CSS инвалидирует костыльность JS – мне кажется, они как раз очень гармонично смотрятся. Вот даже опыт с Vecty показывает, что с DOM/CSS на порядок проще работать, когда есть возможность легко и просто абстрагировать сложность, рефакторить и внятно описывать компоненты.
Про ресурсы по центрированию в CSS не подскажу, к сожалению, но на ответы подпишусь :D
Насчёт wasm — сам сильно жду, и это в ближайших планах, уже висит PR открытый. Я так понимаю, это будет политическое решение – уход от gopherjs к wasm, поскольку поддержка обоих вариантов там не сильно получается – нужно API менять немного.
Выше вот удивляются, почему в Go обилие линтеров и металинтеров – и это как раз потому, что их чертовски легко писать (в сравнении с другими языками). Немного опыта работы с AST плюс фантазия и можно автоматизировать нахождение и исправление очень много чего – вплоть до линтеров специфичных для конкретного проекта. Проблема как раз в diminished returns – чем больше линтеров, тем больше оверхед на каждый из них, и тем больше время линтинга в целом. То есть, если я хочу добавить 15 линтеров, каждый из них будет парсить исходный код и колдовать над ним, и затраты на это могу превысить порог, когда это вообще оправданно. Я так, понимаю, линтер собранный lintpack-ом берет задачу парсинга и прохода по коду на себя, а линтеры ответственны только за саму проверку и ничего больше. Это сильно уменьшает затраты на написание (и включение в pipeline) нового линтера.
Буду пробовать, спасибо!
Более того, десятки ваших предыдущих, неадекватных, с моей точки зрения, комментариев, сильно кредит доверия к вам, как к собеседнику, убрали.
У меня есть две интерпретации вашего комментария – либо это откровенный троллинг, либо уровень интеллекта ниже уровня, с которым стоит общаться. Я поставил на первый вариант, но вы, похоже, утверждаете, что это было неверно.
В любом случае, вероятность того, что вы вдруг проявите признаки адекватного общения уже давно приблизилась к нулю, поэтому я и не вижу смысла продолжать. Вам со мной общаться непонятно, а мне с вами неприятно и скучно.
Блин, вам говорят, что несёт, а вы упёрлись – «я большинство и считаю, что не несёт». Поймите, что есть другие люди вокруг вас.
Вы, как всегда, мудры и проницательны. И как всегда, не в тему.
"Законы России" это оксюморон.
Давайте вы сначала попробуете сами узнать это (подсказка: гугл), и лишь потом попытаетесь возложить на меня ответственность за какие-то ваши новые знания.