This media is not supported in your browser
VIEW IN TELEGRAM
Зацените снежок на WebGL. Выглядит очень реалистично!
Вот исходники френдли для подключения к себе на сайт (блог). Весят около 18кб, причем большая часть это бейс64 картинка, можно поменьше свое что-то подставить.
Вот исходники френдли для подключения к себе на сайт (блог). Весят около 18кб, причем большая часть это бейс64 картинка, можно поменьше свое что-то подставить.
🎄29👍3❤1
Big State Managers Benchmark от автора $mol.
Тест там намеренно сложный и пытается проверить большинство возможных фич реактивной библиотеки, а за неимением каких-то выдает пенальти.
Тест проверяет только скорость перевычислений, не учитывая остальные паказатели. Так, реатом потребляет меньше памяти чем мобых (!), ну и бандлсайз имеет в 8 раз меньше.
Интересно, что в моих прогонах этого теста реатом практически догоняет мол по перфу и значительно обгоняет мобых. Но в моем упрощенном бенче мол заметно быстрее реатома (мобых вообще на дне).
Тест там намеренно сложный и пытается проверить большинство возможных фич реактивной библиотеки, а за неимением каких-то выдает пенальти.
Тест проверяет только скорость перевычислений, не учитывая остальные паказатели. Так, реатом потребляет меньше памяти чем мобых (!), ну и бандлсайз имеет в 8 раз меньше.
Интересно, что в моих прогонах этого теста реатом практически догоняет мол по перфу и значительно обгоняет мобых. Но в моем упрощенном бенче мол заметно быстрее реатома (мобых вообще на дне).
🔥3🤡3❤1
Эффектор.
Кто я такой? Тут про общий опыт. Я был примерно пятым человеком в мире который начал писать на эффекторе прод, когда он еще только появился. Было прикольно, сильно лучше редакса. Я много его тестировал и экспериментировал с ним, изучал исходники и даже записывал туториалы на ютубе. Это еще в 2019 было.
С самого начала эффектор заявлялся как быстрое решение, там использовался достаточно интересный алгоритм для топсорта и решения проблемы глитчей. Были бенчи, эффектор был на хорошем уровне. Заголовок про перф так и остался, но потом что-то пошло не так и об этом мы еще поговорим.
Сначала скажу по тех части.
- Используемая концепция вечногорячих обсерваблов наиболее предсказуемая и “просто работает” - это хорошо. Плохо то что это может негативно сказываться на перфе (вычисляется вообще все и всегда, для всех загруженных страниц, которые уже не показываются) и чинить это фабриками считается плохой практикой и чревато мемори ликами, нужно в этом случае очень хорошо понимать как и что делать.
- Атомарности нет вообще и лично для меня это катастрофический недостаток. Я не верю в то что непредвиденных ошибок в вычислениях в проде не может быть, как заявляют пользователи эффектора. Требование к идеальному тестированию для использования библиотеки мне кажется очень странным.
- Декларативное апи - птичий язык, позволяющий красиво описать простые кейсы и страдать (городить чрезмерные конструкции, с точки зрения процедурного программирования) при попытках описать что-то сложное. Это мое мнение. Кому-то такое апи кажется прекрасным балансом между выразительностью и количеством кода, я же вижу в этом избыточную сложность, которая накладывает ограничения не там где надо. Постоянные баги с типизацией это доказывают, нет? Мне говорят что такое апи близко к естественному языку бизнеса, но покажите мне заказчика не программиста, который поймет в этом коде хотя бы что-то. Говорил давно и скажу опять, хотите хорошее декларативное апи - делайте свой DSL с упрощенным синтаксисом.
- Производительность. Она в целом лучше чем у редакса и достаточная для множества случаев. Околомобыксовая, зависит от кода конечно. Хотя есть множество публичных и не публичных (тут мне на слово придется поверить) случаев, когда авторы заявляли про максимальный перф, а потом оказывалось все сильно иначе. Бенчей нет и текущий тейк от ментейнеров про “перф нормально невозможно замерить” для меня выглядит как очевидная отговорка что бы замять тему.
И тут мы приходим к ответу на вопрос “А какое тебе вообще дело?”. Агресивность, токсичность и необъективность фанатов эффектора постоянно переходят все границы. Я не могу это спокойно воспринимать, а приходится, тк сталкиваюсь с этим периодически. Это очень похоже на религию - есть только один верный путь, остальному - джихад. Ужасно.
Представители комьюнити эффектора часто не воспринимают мнение человека, унижая его идеи и даже факты от него, без попыток объективного анализа и доказательства, оперируя субъективными терминами “красиво” или “интуитивно” (и десятком других), без анализа всей картины.
Сотни случаев советовать эффектор не к месту бьют все рекорды, пользователи других библиотек так не делают.
Агресивные наезды на мнение о каких-либо недостатках эффектора - норма.
Агрессия к тем кто переиспользует код из репозитория эффектора без указания авторства (лицензия MIT). Речь о нескольких десятках строк, этот инцидент произошел со мной давно, но мне кажется он хорошо илюстрирует проблему.
Пост, наверное, еще будет дополнятся, но я надеюсь что мне не придется больше учавствовать в прямых дискуссиях со сторониками эффектора в их привычной агресивной манере. У меня больше нет сил на это.
Я хочу что бы эффектор развивался и задавал здоровый конкурентный тон экосистеме нашей индустрии. Я хочу увидеть обещанные несколько лет назад девтулзы, которые перевернут мое представление о дебаге. Я правда хочу что бы его перф соответсвовал реалиям 2022, а не 2020 - нам еще многое предстоит сделать в этом направлении и конкуренция здесь необходима. Я хочу видеть больше крутых идей и их реализаций. В дружественной среде.
Кто я такой? Тут про общий опыт. Я был примерно пятым человеком в мире который начал писать на эффекторе прод, когда он еще только появился. Было прикольно, сильно лучше редакса. Я много его тестировал и экспериментировал с ним, изучал исходники и даже записывал туториалы на ютубе. Это еще в 2019 было.
С самого начала эффектор заявлялся как быстрое решение, там использовался достаточно интересный алгоритм для топсорта и решения проблемы глитчей. Были бенчи, эффектор был на хорошем уровне. Заголовок про перф так и остался, но потом что-то пошло не так и об этом мы еще поговорим.
Сначала скажу по тех части.
- Используемая концепция вечногорячих обсерваблов наиболее предсказуемая и “просто работает” - это хорошо. Плохо то что это может негативно сказываться на перфе (вычисляется вообще все и всегда, для всех загруженных страниц, которые уже не показываются) и чинить это фабриками считается плохой практикой и чревато мемори ликами, нужно в этом случае очень хорошо понимать как и что делать.
- Атомарности нет вообще и лично для меня это катастрофический недостаток. Я не верю в то что непредвиденных ошибок в вычислениях в проде не может быть, как заявляют пользователи эффектора. Требование к идеальному тестированию для использования библиотеки мне кажется очень странным.
- Декларативное апи - птичий язык, позволяющий красиво описать простые кейсы и страдать (городить чрезмерные конструкции, с точки зрения процедурного программирования) при попытках описать что-то сложное. Это мое мнение. Кому-то такое апи кажется прекрасным балансом между выразительностью и количеством кода, я же вижу в этом избыточную сложность, которая накладывает ограничения не там где надо. Постоянные баги с типизацией это доказывают, нет? Мне говорят что такое апи близко к естественному языку бизнеса, но покажите мне заказчика не программиста, который поймет в этом коде хотя бы что-то. Говорил давно и скажу опять, хотите хорошее декларативное апи - делайте свой DSL с упрощенным синтаксисом.
- Производительность. Она в целом лучше чем у редакса и достаточная для множества случаев. Околомобыксовая, зависит от кода конечно. Хотя есть множество публичных и не публичных (тут мне на слово придется поверить) случаев, когда авторы заявляли про максимальный перф, а потом оказывалось все сильно иначе. Бенчей нет и текущий тейк от ментейнеров про “перф нормально невозможно замерить” для меня выглядит как очевидная отговорка что бы замять тему.
И тут мы приходим к ответу на вопрос “А какое тебе вообще дело?”. Агресивность, токсичность и необъективность фанатов эффектора постоянно переходят все границы. Я не могу это спокойно воспринимать, а приходится, тк сталкиваюсь с этим периодически. Это очень похоже на религию - есть только один верный путь, остальному - джихад. Ужасно.
Представители комьюнити эффектора часто не воспринимают мнение человека, унижая его идеи и даже факты от него, без попыток объективного анализа и доказательства, оперируя субъективными терминами “красиво” или “интуитивно” (и десятком других), без анализа всей картины.
Сотни случаев советовать эффектор не к месту бьют все рекорды, пользователи других библиотек так не делают.
Агресивные наезды на мнение о каких-либо недостатках эффектора - норма.
Агрессия к тем кто переиспользует код из репозитория эффектора без указания авторства (лицензия MIT). Речь о нескольких десятках строк, этот инцидент произошел со мной давно, но мне кажется он хорошо илюстрирует проблему.
Пост, наверное, еще будет дополнятся, но я надеюсь что мне не придется больше учавствовать в прямых дискуссиях со сторониками эффектора в их привычной агресивной манере. У меня больше нет сил на это.
Я хочу что бы эффектор развивался и задавал здоровый конкурентный тон экосистеме нашей индустрии. Я хочу увидеть обещанные несколько лет назад девтулзы, которые перевернут мое представление о дебаге. Я правда хочу что бы его перф соответсвовал реалиям 2022, а не 2020 - нам еще многое предстоит сделать в этом направлении и конкуренция здесь необходима. Я хочу видеть больше крутых идей и их реализаций. В дружественной среде.
1👍59🔥8❤4💩3🤡1
transferables
Подписан на создателя https://bundlejs.com в тви (twitter.com/okikio_dev).
У него вышла новая либа для проверки возможности передачи объекта между потоками - почитайте доки и исходники, там интересно!
Закинул ему пару мелких ПРов по улучшению производительности, простые и наглядные: раз, два.
Подписан на создателя https://bundlejs.com в тви (twitter.com/okikio_dev).
У него вышла новая либа для проверки возможности передачи объекта между потоками - почитайте доки и исходники, там интересно!
Закинул ему пару мелких ПРов по улучшению производительности, простые и наглядные: раз, два.
GitHub
GitHub - okikio/transferables: Utility library that lists out all transferable objects (https://developer.mozilla.org/en-US/do…
Utility library that lists out all transferable objects (https://developer.mozilla.org/en-US/docs/Glossary/Transferable_objects) that can be transfered between Workers and the main thread - okikio/...
👍8
Forwarded from kirjs_ru
На внезапном стриме через 2 минуты с @artalar посмотрим недавно вышедшую вторую версию менеджера управления состоянием reatom
🐶 Напишем игру с цветами
📺 Посмотреть: twitch.tv/kirjs | youtu.be/SdOPCKXhc0k
🎫 Доки: reatom.dev
🐶 Напишем игру с цветами
📺 Посмотреть: twitch.tv/kirjs | youtu.be/SdOPCKXhc0k
🎫 Доки: reatom.dev
Итоги года
Сложно 😐
Пройдусь только по тех части.
Канал (this) для меня оказался невероятно интересным и успешным проектом. Помогал не сойти с ума, самое стабильное и регулярное что было за этот код. Рекомендую 🙂
Дневник / заметки / каждодневная рефлексия помогают видеть результат своих трудов, а стабильность предыдущих заметок внушает чувство стабильности в будущем.
Лучшие / большие посты я все время добавлял в пост в закрепе. Не все, но то что мне больше всего понравилось.
Больше полутысячи сообщений в канале за год 😬
С ~нуля до 1.3к подписчиков - очень приятно, спасибо вам ❤️
И спасибо за ценные вопросы и комментарии!
Первая публикация на хабр - Что такое состояние, достаточно много просмотров и лайков😊 .
Про mono я рассказывал, как этот проект помог мне не перегореть. Но главный результат года, конечно, https://www.reatom.dev. В этом плане, год завершается отлично:
- стабильная версия в проде🔥
- 2к строк доков (без учета лайнбрейков!) и видео тутор🔥
- отличный перф, архитектура и фичи🔥
И планы на следующий год максимально эпичные!
Всем добра, терпения, прощения, жертвенности, любви и мира! 🙏
Сложно 😐
Пройдусь только по тех части.
Канал (this) для меня оказался невероятно интересным и успешным проектом. Помогал не сойти с ума, самое стабильное и регулярное что было за этот код. Рекомендую 🙂
Дневник / заметки / каждодневная рефлексия помогают видеть результат своих трудов, а стабильность предыдущих заметок внушает чувство стабильности в будущем.
Лучшие / большие посты я все время добавлял в пост в закрепе. Не все, но то что мне больше всего понравилось.
Больше полутысячи сообщений в канале за год 😬
С ~нуля до 1.3к подписчиков - очень приятно, спасибо вам ❤️
И спасибо за ценные вопросы и комментарии!
Первая публикация на хабр - Что такое состояние, достаточно много просмотров и лайков
Про mono я рассказывал, как этот проект помог мне не перегореть. Но главный результат года, конечно, https://www.reatom.dev. В этом плане, год завершается отлично:
- стабильная версия в проде
- 2к строк доков (без учета лайнбрейков!) и видео тутор
- отличный перф, архитектура и фичи
И планы на следующий год максимально эпичные!
Всем добра, терпения, прощения, жертвенности, любви и мира! 🙏
Please open Telegram to view this post
VIEW IN TELEGRAM
🎉58👍12❤8🕊2🐳2
JPEG XL
Текст не мой, анрол этого треда, который мне показался очень полезным. Igor Strebz пишет:
Меня не волновала монополия Google Chrome, ведь браузеры итак поддерживают достаточно стандартов для комфортного сёрфинга.
Отношение изменилось, когда Google заблокировало развитие формата JPEG XL по надуманной причине. Смотрите, каким с ним станет веб: https://youtu.be/UphN1_7nP8U
1. Уже после 50 килобайт (8%) браузер уже смог бы что-то показать, не дожидаясь окончания загрузки
2. Оптимальный по весу, на 30% меньше чем JPEG
3. Можно пережать JPEG → JPEG XL без потери качества, сэкономив место
4. Мемы станут стабильнее, даже 2000 пересохранений спустя картинка не меняется, в отличии от других форматов: https://pbs.twimg.com/media/FljpjyUXEAEV-hp?format=jpg&name=large
5. Можно использовать для фотографий космоса с колоссальным разрешениями и весом файлов за 100 Мб
6. Без патентов, чистый open source
Как ни крути, формат отличный.
Google решили так продвигать свой AVIF ≃ стоп-кадр видео-кодека AV1. Из-за чего есть ограничения, сравните: https://pbs.twimg.com/media/FljqLokXoAUMH46?format=jpg&name=large
Для webdev'a безумно много фичей, снимающих головную боль:
- альфа канал
- жмёт loseless лучше чем PNG
- параллельный decoding
- 10x быстрее encoding по сравнению с AVIF
- XYB color space, больше тёмных цветов
- браузеры с progressive decoding автоматом могли бы получать @1x из @2x
Сообщество взбунтовалось, ответ Google убил:
> The new image format does not bring sufficient incremental benefits over existing formats
🤨⁉️
> There is not enough interest from the entire ecosystem to continue experimenting with JPEG XL
😕 тоже ложь
https://bugs.chromium.org/p/chromium/issues/detail?id=1178058#c64
Там буквально пришёл principal engineer из Intel и указал им, что последнее утверждение не подтверждается на практике: Adobe, Serif, Krita и Intel — в своих продуктах внедрили поддержку JPEG XL из-за HDR и предлагают использовать по умолчанию 🤷🏻♂️
Текст не мой, анрол этого треда, который мне показался очень полезным. Igor Strebz пишет:
Меня не волновала монополия Google Chrome, ведь браузеры итак поддерживают достаточно стандартов для комфортного сёрфинга.
Отношение изменилось, когда Google заблокировало развитие формата JPEG XL по надуманной причине. Смотрите, каким с ним станет веб: https://youtu.be/UphN1_7nP8U
1. Уже после 50 килобайт (8%) браузер уже смог бы что-то показать, не дожидаясь окончания загрузки
2. Оптимальный по весу, на 30% меньше чем JPEG
3. Можно пережать JPEG → JPEG XL без потери качества, сэкономив место
4. Мемы станут стабильнее, даже 2000 пересохранений спустя картинка не меняется, в отличии от других форматов: https://pbs.twimg.com/media/FljpjyUXEAEV-hp?format=jpg&name=large
5. Можно использовать для фотографий космоса с колоссальным разрешениями и весом файлов за 100 Мб
6. Без патентов, чистый open source
Как ни крути, формат отличный.
Google решили так продвигать свой AVIF ≃ стоп-кадр видео-кодека AV1. Из-за чего есть ограничения, сравните: https://pbs.twimg.com/media/FljqLokXoAUMH46?format=jpg&name=large
Для webdev'a безумно много фичей, снимающих головную боль:
- альфа канал
- жмёт loseless лучше чем PNG
- параллельный decoding
- 10x быстрее encoding по сравнению с AVIF
- XYB color space, больше тёмных цветов
- браузеры с progressive decoding автоматом могли бы получать @1x из @2x
Сообщество взбунтовалось, ответ Google убил:
> The new image format does not bring sufficient incremental benefits over existing formats
🤨⁉️
> There is not enough interest from the entire ecosystem to continue experimenting with JPEG XL
😕 тоже ложь
https://bugs.chromium.org/p/chromium/issues/detail?id=1178058#c64
Там буквально пришёл principal engineer из Intel и указал им, что последнее утверждение не подтверждается на практике: Adobe, Serif, Krita и Intel — в своих продуктах внедрили поддержку JPEG XL из-за HDR и предлагают использовать по умолчанию 🤷🏻♂️
👍37🤔1
Act
Самая-самая библиотека для описания реактиных связей!
Сделал по приколу. Но я серьезно. Треть килобайта, Карл! По перфу в топе топов, причем не в простых кейсах, а с разруливанием всех пограничных случаев условных переподписок… На простых кейсах оно в космос улетает.
Апишка намеренно максимально простая. Это современное перерождение легендарного S.js.
А в чем секрет? Аллочка ты сума сойдешь! Вместо сложных проверок инвалидации кеша я просто пересоздаю весь граф на каждый апдейт, оказывается это быстрее, иммутабельный подход быстрее! А учитывая то что графы в рядовых приложениях редко бывают большими, скорее множество отдельных и мелких - проблем с этим не возникнет. Вообще в 2023 память работает очень хорошо, на мобилках (критичном сегменте) используется SoC и за счет этого там скорости побыстрее ваших i7 бывают.
Биндингов нет, сами пишите, мне не охото. У меня отпуск.
Самая-самая библиотека для описания реактиных связей!
Сделал по приколу. Но я серьезно. Треть килобайта, Карл! По перфу в топе топов, причем не в простых кейсах, а с разруливанием всех пограничных случаев условных переподписок… На простых кейсах оно в космос улетает.
Апишка намеренно максимально простая. Это современное перерождение легендарного S.js.
А в чем секрет? Аллочка ты сума сойдешь! Вместо сложных проверок инвалидации кеша я просто пересоздаю весь граф на каждый апдейт, оказывается это быстрее, иммутабельный подход быстрее! А учитывая то что графы в рядовых приложениях редко бывают большими, скорее множество отдельных и мелких - проблем с этим не возникнет. Вообще в 2023 память работает очень хорошо, на мобилках (критичном сегменте) используется SoC и за счет этого там скорости побыстрее ваших i7 бывают.
Биндингов нет, сами пишите, мне не охото. У меня отпуск.
GitHub
GitHub - artalar/act: Act is the most efficient reactive state library in both: speed, size, correctness.
Act is the most efficient reactive state library in both: speed, size, correctness. - artalar/act
👍18😁8🔥7🫡4
https://www.youtube.com/watch?v=yy8jQgmhbAU
По рекомендация из чата:
По рекомендация из чата:
помню доклад, года 2017 на cppcon, где часть браузера с OOP на DOP переписали и код стал в 450 раз быстрее
YouTube
CppCon 2018: Stoyan Nikolov “OOP Is Dead, Long Live Data-oriented Design”
http://CppCon.org
—
Presentation Slides, PDFs, Source Code and other presenter materials are available at: https://github.com/CppCon/CppCon2018
—
For decades C++ developers have built software around OOP concepts that ultimately failed us - we didn’t see…
—
Presentation Slides, PDFs, Source Code and other presenter materials are available at: https://github.com/CppCon/CppCon2018
—
For decades C++ developers have built software around OOP concepts that ultimately failed us - we didn’t see…
artalog
Как бы я не любил перф и нативку, но бандлинг css мне нанес столько боли за все эти лета, что я очень склонен к css-in-js, у которого ну очень уже много крутых преимуществ просто из коробки. Но что с перфом делать? Вы наверняка слышали что SC и так быстрый.…
Видимо, время пришло.
GitHub
GitHub - hudochenkov/postcss-styled-syntax: PostCSS syntax for CSS-in-JS like styled-components
PostCSS syntax for CSS-in-JS like styled-components - hudochenkov/postcss-styled-syntax
😢3👍2🔥2💩2
artalog
Video
За час сделали поддержку условного рендеринга для act!
Посмотреть можно тут. Принцип act-jsx: рендер один раз (мемоизировать ничего не надо), в значения прокидываем акты (обсерваблы) и происходит очень точечная автоподписка на все свойства. Все очень ленивое и быстрое, но стейт нужно хранить вне компонентов. К счастью с act с этим проблем нет, смотрите пример, в общем 🙂
P.S. этот же пример на реакте занимает в 2 раза больше кода и в десятки раз больше памяти и бандлсайза. act + act-jsx всего 700 байт.
Посмотреть можно тут. Принцип act-jsx: рендер один раз (мемоизировать ничего не надо), в значения прокидываем акты (обсерваблы) и происходит очень точечная автоподписка на все свойства. Все очень ленивое и быстрое, но стейт нужно хранить вне компонентов. К счастью с act с этим проблем нет, смотрите пример, в общем 🙂
P.S. этот же пример на реакте занимает в 2 раза больше кода и в десятки раз больше памяти и бандлсайза. act + act-jsx всего 700 байт.
GitHub
GitHub - artalar/act: Act is the most efficient reactive state library in both: speed, size, correctness.
Act is the most efficient reactive state library in both: speed, size, correctness. - artalar/act
🔥17👍2
artalog
За час сделали поддержку условного рендеринга для act! Посмотреть можно тут. Принцип act-jsx: рендер один раз (мемоизировать ничего не надо), в значения прокидываем акты (обсерваблы) и происходит очень точечная автоподписка на все свойства. Все очень ленивое…
GitHub
Add types for act-jsx · Issue #2 · artalar/act
Follow this repl you could see errors for using acts as properties. We need to allow for all native element properties the both types of values: primitives and the save ActValue. It could be done b...
👍6