artalog
4.24K subscribers
542 photos
40 videos
40 files
913 links
Развернутые ответы на вопросы в чатах, мысли от рабочих процессов.
Вопросы - @artalar.
Download Telegram
Итоги года

Сложно 😐
Пройдусь только по тех части.

Канал (this) для меня оказался невероятно интересным и успешным проектом. Помогал не сойти с ума, самое стабильное и регулярное что было за этот код. Рекомендую 🙂
Дневник / заметки / каждодневная рефлексия помогают видеть результат своих трудов, а стабильность предыдущих заметок внушает чувство стабильности в будущем.

Лучшие / большие посты я все время добавлял в пост в закрепе. Не все, но то что мне больше всего понравилось.
Больше полутысячи сообщений в канале за год 😬
С ~нуля до 1.3к подписчиков - очень приятно, спасибо вам ❤️
И спасибо за ценные вопросы и комментарии!

Первая публикация на хабр - Что такое состояние, достаточно много просмотров и лайков 😊.

Про mono я рассказывал, как этот проект помог мне не перегореть. Но главный результат года, конечно, https://www.reatom.dev. В этом плане, год завершается отлично:
- стабильная версия в проде 🔥
- 2к строк доков (без учета лайнбрейков!) и видео тутор 🔥
- отличный перф, архитектура и фичи 🔥
И планы на следующий год максимально эпичные!

Всем добра, терпения, прощения, жертвенности, любви и мира! 🙏
Please open Telegram to view this post
VIEW IN TELEGRAM
🎉58👍128🕊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 и предлагают использовать по умолчанию 🤷🏻‍♂️
👍37🤔1
Act

Самая-самая библиотека для описания реактиных связей!

Сделал по приколу. Но я серьезно. Треть килобайта, Карл! По перфу в топе топов, причем не в простых кейсах, а с разруливанием всех пограничных случаев условных переподписок… На простых кейсах оно в космос улетает.

Апишка намеренно максимально простая. Это современное перерождение легендарного S.js.

А в чем секрет? Аллочка ты сума сойдешь! Вместо сложных проверок инвалидации кеша я просто пересоздаю весь граф на каждый апдейт, оказывается это быстрее, иммутабельный подход быстрее! А учитывая то что графы в рядовых приложениях редко бывают большими, скорее множество отдельных и мелких - проблем с этим не возникнет. Вообще в 2023 память работает очень хорошо, на мобилках (критичном сегменте) используется SoC и за счет этого там скорости побыстрее ваших i7 бывают.

Биндингов нет, сами пишите, мне не охото. У меня отпуск.
👍18😁8🔥7🫡4
Live stream started
Немного поделаем самую быструю (?) либу для работы с JSX
🔥81
Live stream finished (1 hour)
artalog
Video
За час сделали поддержку условного рендеринга для act!

Посмотреть можно тут. Принцип act-jsx: рендер один раз (мемоизировать ничего не надо), в значения прокидываем акты (обсерваблы) и происходит очень точечная автоподписка на все свойства. Все очень ленивое и быстрое, но стейт нужно хранить вне компонентов. К счастью с act с этим проблем нет, смотрите пример, в общем 🙂

P.S. этот же пример на реакте занимает в 2 раза больше кода и в десятки раз больше памяти и бандлсайза. act + act-jsx всего 700 байт.
🔥17👍2
Live stream scheduled for
Live stream started
Live stream finished (35 minutes)
Новостей много, но не успеваю их расписать на посты :)

Вот вам первая демка @reatom/form-web: https://codesandbox.io/s/reatom-form-web-tefn82?file=/src/App.tsx

Этой ночью запаблишил альфа версию, там ещё могут быть баги. Фичи кмк наивкуснейшие:

- апи специально задизайнено для наилучшего решения всех простых и сложных случаев: максимальный вывод типов и возможность легко работать с динамически добавляемыми полями
- фреймворк агностик, более того, используются стандартные биндинги из пакета npm-react, те не нужен еще пакет биндингов для формы, как у tanstack распространено
- построен поверх @reatom/form - абстрактной либы для фабрикации филдов, включающей в себя менеджемент фокуса и валидации. Достаточно просто можно писать свои филды (актуально для react-native, сложных автокомплитов, дарг&дропов и вообще чего угодно)
- естественно, работает на @reatom/core, что дает кучу слажанных фич: зависимые поля, динамические филды, лайфсайкл хуки и куча оптимизаций производительности
- весит всего 3кб
- по скорости инициализации как react-hook-form (мб еще ускорю), ререндеров вообще нет даже при срабатывании логики зависимых полей

Это лишь сухой список фич. Попозже понаделаю примеров и покажу как рвать в хлам другие библиотеки.
🔥19
Давайте минут через 10 войсом расскажу о дерти-чекинге внутри реатома
🔥2🆒1
Live stream started
Live stream finished (23 minutes)
Вот вам маленькая задачка.
У вас нет ссылки на эту только что созданную и немедленно вызванную функцию, она и ее содержимое вам никак не доступны. Убьет ли ее сборщик мусора? если да, то когда? Если нет, то почему?

Ответ: вопрос вас намеренно запутывает. Принцип работ GC прост - чиститься все на что нет ссылки во внешнем мире. Внешний мир - не только вьюшка и ваш код, это любое IO. В данном случае ссылка на функцию всегда доступна через замыкание создаваемого для авейта колбека, который хранится в очереди таймаутов.
👍12🤯42