Pull to refresh
32
Karma
0.3
Rating

Человек настоящий

11 хитростей Chrome DevTools, которые помогут Вам стать Senior FrontEnd-разработчиком

Такая глупенькая кликбэйтовость заголовка "помогут Вам стать Senior". Будто у людей "стать Senior" - это самоцель и они читают статьи только явно направленные на это =) Можно же было сказать "упростят процесс отладки", например.

Как я создаю игры на своём 3D движке в одиночку

Смотрю, и никак не могу поверить, что сделано "вечерами и на выходных". Просто потрясающе. Да даже на фулл-тайме осилить такое силами одного человека - это фантастика, какое же должно быть сочетание технических и творческих способностей. У меня к вам только лучи уважения. Дальнейших успехов вам в ваших проектах!

Совместные конфиденциальные вычисления на пальцах

Тут стоит добавить важное замечание: не допускается сговор участников и способ разбиения исходного числа на сумму должен быть непредсказуем для других.

Энтузиаст увеличил кэш-память второго уровня у процессора AMD K6-2+ с 128 до 256 КБ с помощью паяльника

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

Реверс-инжиниринг железа: находим UART и извлекаем прошивку при помощи UBoot

Это нераспаянный ethernet контроллер + трансформатор

картинка

Whoosh — минималистичный менеджер состояний React

С редьюсерами такая ситуация, что относительно простые состояния (например, представляемые одним фундаментальным объектом JS без вложенностей) на них реализовать проще/понятнее и субъективно красивее. Именно на такие случаи в первую очередь и рассчитана эта библиотека: когда приложению требуется простое состояние с глобальной видимостью.

Сложная же логика с кучей акшенов и состоянием представляемым множеством связанных объектов удобнее реализовывается через класс / объект с методами.

Как и везде, нет универсального решения лучшего во всех случаях.

Whoosh — минималистичный менеджер состояний React

Добавил в документацию соответстующее предупреждение.

Whoosh — минималистичный менеджер состояний React

И не спорю, не чистая. Я о том, что в конкретном use-case это несущественно, т.к. не вызовет каких-либо неприятностей.

Whoosh — минималистичный менеджер состояний React

Извините пожалуйста, но разрешите докопаться.

Благодарен, что вы решили это сделать.

Редьюсер по определению своему - это чистая функция.

toLocalStorage ведет себя как чистая функция. Он только записывает текущее значение состояния в localStorage не читая ничего обратно (это делает инициализатор) и не модифицируя состояние. Да, формально, это не чистая функция и, например, мемоизация невозможна (но и бессмысленна).

Своим именованием вы ломаете их eslint плагин, devtools

Упустил из виду, что средства разработки опираются на конвенции именования. Протестирую с eslint и devtools.

А зачем вы фризите входной объект? С одной стороны понятно, чтобы его никто не вздумал мутировать, но с другой стороны, это должно решаться иными средствами, например, типами.

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

К сожалению, типами это не решить. Да и plain JS пользователи, на сколько мне известно, существуют.

Асинхронный scheduling внушает опасение. Можно попать в infinite loop, который очень сложно сдетектить

Асинхронный вызов подписчиков был введен в основном как debouncing. В dev режиме планируется добавить детекцию бесконечного цикла обновлений с выводом предупреждения. (Эвристикой: считать количество вызовов подписчиков в единицу времени. Должно поймать основной процент проблем.)

По-хорошему, лучше делегировать обновление стейта самому фреймворку. Сделать один Provider c useState, use-хук будет писать и читать из этого провайдера, а react сам разберется с порядком обновлений

Пользователю тогда придется явно оборачивать корневой компонент в этот провайдер... Но может это действительно разумный трейд-офф.

Whoosh — минималистичный менеджер состояний React

Просто сначала подумал, что store.text явно указывается в списке зависимостей до его использования (и пока не указан, не доступен пользователю). Интересная фитча. Попробую поиграть с оборачиванием store в `Proxy` для автоматического детектирования чтения свойств. Еще раз благодарю за пример.

Whoosh — минималистичный менеджер состояний React

Спасибо за комментарий.

Кейсы с возможными устаревшими пропсами и зомби-чилдами не проверяли?

На сколько смог разобраться, данные "баги" больше на плечах пользователя, чем на библиотеке. Ну я повторюсь, что в частности с МобХ не достаточно знаком.
В первом случаи пропсы должны быть указаны в списке зависимостей (и, соответственно, акшен зависящий от пропов должен запускаться синхронно через эффект).
Во втором случаи, при использовании не-локального состояния лучше не делать никаких предположений о текущем состоянии, оно может быть любым (в рамках объявленного типа).

подписка на стейт по факту использования в отличии от безусловной подписки в хуке

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

 

ATSHA204A: маленький гигант большого крипто. Часть 1: ой, какой он у вас маленький

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

 

Малоресурсное шифрование

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

Малоресурсное шифрование

Для чего, не понял? "MAC"?

Малоресурсное шифрование

Для слабых микроконтроллеров посмотрите еще в сторону TEA / XTEA
Очень компактный код, работает на месте, никаких таблиц. Использую его в бутлоадерах на AVR, функция расшифровки компилируется в ~400 байт (память программ).

Компьютер на логических микросхемах: исполнение инструкций

Спасибо, очень круто! Интересно посмотреть схему формирования видео сигнала.

Есть чем зашить AVR'ку?

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

На этот программатор только не лишним по питанию поставить конденсатор на ~100мкф рядом с ногами сокета. А то программирование иногда срывается, пришлось сверху подпаять. Как я понимаю, не один с этой проблемой сталкивался.

Таблицы в react

А как насчет варианта на контексте без внешнего стейт-менеджера?

Information

Rating
1,516-th
Registered
Activity