Work & Beer Balance
1.54K subscribers
117 photos
5 videos
4 files
182 links
Авторский канал @Akiyamka
Поддержать автора можно здесь:
buymeacoffee.com/cherrytea
Download Telegram
Решил посмотреть видео снятое на DJI Osmo в встроенном плеере windows

Результат убил
🤣4
Mediabunny - Complete media toolkit

Mediabunny - тулкит для работы с медиа прямо в браузере. Склеивание, перекодирование, комбинирование и тд и тп. В общем, ffmpeg но только в браузере и в виде библиотеки для JS.

Библиотека работает быстрее других реализаций, а также хорошо декомпозирована - можно подключать только нужные вам модули.


https://mediabunny.dev/

#development #javascript #media #library
👍143🥰1
По информации инсайдеров сотрудникам Google запретили использовать другие AI инструменты, кроме Gemini для задач не связанных с кодом.
Так же менеджеры требуют отчитываться как и где используется AI в рабочих задачах, и поощряется его внедрение в рабочие процессы.

Внутри у них уже есть Cider (агент на базе Gemini) который включает в себя Goose - модель тренированная на внутренних технических данных компании.
🤔5🙏1
Как по мне весьма симпатичный UI кит с figma компонентами в придачу
reshaped.so

Не может не радовать наличие десятков готовых компонентов и даже пачки хуков
6
В разработке любой новый инструмент для разработчика делается для того чтобы облегчить ему жизнь. А именно - меньше тратить времени, умственных усилий, снижать вероятность ошибки.
Я думаю можно сказать, что если не каждый, то многие инструменты пытаются уменьшить влияние человеческого фактора в той или иной степени.

LLM в этом смысле нечто новое. Он не делает работу за разработчика, он не страхует его от ошибок, как бы нам не хотелось - он не делает какую-то законченную часть полностью за человека.

Но модель может сделать ее черновой набросок.

Главный момент который постоянно ускользает от наших обезьяньих мозгов - результаты работы LMM не детерминированы и об этом ни в коем случае нельзя забывать когда у нам в голову приходит мысль заменить какие-то инструменты которые защищают от ошибок человеческого фактора (т.е. от не детерминированного поведения человека)

У LLM совершенно другая ниша, в рабочем процессе он имеет самую низкую степень корректности, это самый сырой результат. Инструмент LLM помогает нам начинать не с чистого листа а уже с какого-то теста, которое человек доведет до ума, а автоматика проверит на опечатки.

Может быть в будущем когда LLM будут эффективнее в 50 раз относительно того что мы имеем - пачка конкурирующих сетей сможет достаточно надежно отсмотреть код и даже прийти к консенсусу того как все же правильно и лучше (тем самым компенсируя галлюцинации друг друга). Хотя у меня есть очень серьезные сомнения в том, что LLM могут эффективно вести переговоры друг с другом и договариваться
👍8🙏1
Странно, но я почему-то не обнаружил такого готового хука:
 useAsyncEffect(
async (signal, onAbort) => {
}
, [params])

на глаза попадается какая-то дичь

Поэтому написал свою наивную реализацию, критика велком

const isAbortError = (e: unknown) => e && typeof e === 'object' && 'name' in e && e.name === 'AbortError';

const useAsyncEffect = (cb: (signal: AbortSignal, onAbort: (cb: () => void) => void) => Promise<void>, deps?: React.DependencyList) => {
useEffect(() => {
const controller = new AbortController();
(async () => {
try {
const onAbort = (cb: () => void) => {
if (controller.signal.aborted) {
cb();
} else {
controller.signal.addEventListener('abort', cb, { once: true });
}
};
await cb(controller.signal, onAbort);
} catch (e) {
if (!(isAbortError(e))) {
queueMicrotask(() => {throw e});
}
}
})();
return () => controller.abort();
}, deps);
};
5
Work & Beer Balance
Я был уверен что это случится, но не думал что так скоро. Согласно утечкам AMD скоро презентует новый класс устройств - дискретный NPU. Ждём-с
Интересное решение от XCENA на эту же тему.

Они представили платку на которой процессор находиться на одной плате с слотами для памяти. Прямое соединение мимо матери не только намного быстрее, но так же позволяет выделить больше линий процессора под память, что существенно поднимает лимиты на максимальный объем памяти.

Естественно никто кроме него ей пользоваться не сможет. Тем не менее им удалось - это не распаянная память которая в тоже время очень близко к ЦПУ.

Кстати о нем - это in house разработка с тысячами RISC-V ядрами.

Вставляется это чудо в PCIe 6 (модель MX1) либо сразу в два таких сорта (MX1S).

Про софтверную часть ничего не известно, будет ли она работать в роли CUDA устройства или как то иначе. Но было бы интересно иметь такую карточку с 4мя планками 128 GB
👍1
А в знали что можно определить был ли ваш модуль импортирован динамически или нет?
// init.js

export function then(resolve, reject) {
reject('Nope! Import this statically please')
}
🤯182
Если вдруг по какой-то причине вам надо будет рендерить только css и html без js (ну например - почтовый клиент) то есть такая вот штука Blitz.
Так же он умеет рендерить markdown.

Через раcширения поддерживает - canvas, fetch (для подтягивания ресурсов извне), svg и так далее.
👍51
Мне тут на глаза попался продукт со смешным названием
Nvidia Jetson Orin Nano Super Пупер

При этом спека совсем не шуточная:
В этом девайсе скрестили ARM с Nvidia Карточкой Ampere! (1024 CUDA и 32 тензорных ядер)

В итоге получилась штука для запуска AI моделек с 67 INT8 TOPS и очень быстрой памятью (102 GB/s)

Правда памяти этой всего 8GB так что больше чем 8B модельки на ней не запустить, но если вам важна именно скорость (например VLM - Vision Language Models) это отличный вариант.

Стоит кстати всего $249

Для сравнения - NVIDIA AGX Orin 16GB уже обойдется в $2052
👍21🌚1
Вольный TLRD пересказ доклада с ReactConf2025 о том как реакту улучшали перф.

Сначала был сделан бенчмарк для измерения:
- В реакт контексте лежит Map c координатами
- Инпуты добавляют туда значения
- Компоненты в цикле пробегают мапу и селектят по пропу оттуда координаты которые используют в своих стилях.
Реакт рендерил это дело 4 секунды

Потом они прогнали это через реакт компайлер
Рендер стал занимать ~1.2 секунды (благодаря мемоизации)

Потом они переписали реакт на сигналы (на графике - React Forest)

И оказалось что компайлер лучше справляется.
Они даже взяли сигналы кем-то уже написаные (преактовские?) - non React signals на графике - чтобы убедиться наверняка.

Потом два года они делали React Fir - novel hybrid eager / lazy incremental rendering, суть которого в том что бы икрементально вычислять изменения в доме (т.е. отказаться от vdom) от изменений в стейте.

Получилось быстро, хотя они так и не реализовали все фичи реакта.

И тут они решили положить в контекст стор вместо мапы
👍10😁10
Work & Beer Balance
Вольный TLRD пересказ доклада с ReactConf2025 о том как реакту улучшали перф. Сначала был сделан бенчмарк для измерения: - В реакт контексте лежит Map c координатами - Инпуты добавляют туда значения - Компоненты в цикле пробегают мапу и селектят по пропу…
Т.е. вот такой вот объект благодаря которому вместо того чтобы селектить значения из контекста - позволяет подписаться на них в конечном компоненте (т.е. получаем ререндер только того что эти значения использует). И оказалось что это быстрее чем React Fir (React + Compiler + Store) на графике

И хотя React Fir еще и со стором очень быстрый, оказалось что если взять бенчмарк более приближенный к реальности - время именно рендера (т.е. то что оптимизирует Fir) там мало на что влияет, так что эксперимент был закончен и были сделаны выводы что
а) Реакт и так достаточно быстрый
б) Тупит не реакт а ваша модель данных (то как вы их обновляете и то как сообщаете реакту об этом)

В итоге реакт тима сосредоточилась на том чтобы дать больше крутых и классных апи для интеграции сторонних сторов с реактом
22
Мастзев набор утилит поверх преактовских сигналов
https://www.npmjs.com/package/@preact-signals/utils
🔥1
Вот пишешь такой на typescript проект, а потом он становиться все больше и больше и в конце концов перф падает до того что вывод типа надо ждать 2 минуты.
А еще позже и вовсе случается это
  error TS7056: The inferred type of this node exceeds the maximum length the compiler will serialize. An explicit type annotation is needed.

И где-то вот тут начинаешь думать что может ворчуны в твиттере были правы и в перспективе больших проектов typescript и правда игрушечный язык, и может стоило все таки взять reasonml
👍9😁5