Так какую проблему вы решали? Если родителю нужно знать состояние вашего компонента, ну так вытесните это состояние полностью в родителя. Часто в реальности родителю нужно не только "сигнализировать" о изменении стояния, но и он должен иметь возможность его инициализировать или даже менять. Т.е. Ваш первый вариант станет чем-то таким
Плюс в приложении не будет двух копий одного состояния — в текущем компоненте и в родителе.
Если же прямо хочется передавать только колбэк в пропы, то useReducer, например, может помочь привязать колбэк к изменению состояния более собрано (в одном месте кода, а не состояние + обертка).
К useCallback() это ситуация вообще никак не относится. Вы вот пишите:
элементы input и button заменим компонентами Input и Button, которые потребуют обернуть обработчики событий хуком useCallback
А почему до замены не нужно было оборачивать? Я сейчас не к тому, зачем вообще useCallback, я к тому, что это не связанные вещи.
Новость отличная, однако от проприетарных зависимостей нужно избавляться, конечно. Интересно, хватит ли ресурсов у мощных микроконтроллеров, чтобы потянуть этот кодек. "Классические" решения в плане ультрасжатия голоса — speex и codec2 работают на STM32F4 @180MHz (speex вообще даже на bluepill stm32f103 @72MHz запускал в некоторых конфигурациях).
Спасибо за привлечение внимания к проекту, но тема заслуживает нормальной статьи! Основные вопросы:
Там кросс-компиляция в неявном виде (для каждой платформы на самом деле запускается свой код) или идет трансляция всех системных вызовов? Если второе, то какие ограничения.
Что с подключением внешних библиотек (статических, понятно, что магии не бывает)?
Как возможна заявленная работа на разных архитектурных с разной системой команд (x86/64, ARM)?
Работа на bare-metal какие ограничения накладывает? Работает ли оно как IncludeOS или ее (или аналог) можно/нужно подключить? Что в этом случаи с драйверами (ФС, сеть)? Можно ли без MMU?
На оригинальной странице написано, что не предназначено для программ с GUI (что оправданно), но есть же кроссплатформенные GUI библиотеки, реально ли что-то подружить?
А как решена заявленная проблема с DMA? Теперь выделенную в RTOS память нельзя передать функциям, которые используют DMA или они должны проверять какую память им передали и перебуферизовывать ее?
Как пользователю ts+react+styled-component решение мне нравится! Конечно, для использования в рабочих проектах, хочется сначала увидеть хотя бы небольшую, но сформировавшуюся, стайку пользователей. А вот для ближайшего pet-project попробую. Успехов!
Как владелец такого "актива" может реализовать свое право собственности? (Кроме как перепродать.) Я сначала подумал, что покупатель сможет изменить твит по своему желанию, тогда это бы имело смысл в рекламных целях, но как я понял, "владелец" даже удалить его не сможет.
Для небольших файлов. Если файл несколько Мб, то зачем лишний раз напрягать компилятор? (И хранить сам файл в двух вариантах: оригинал и с-массив.) Лучше сделать через objcopy, как замечено в комментарии ниже. Да и xdd нет под виндой из коробки.
На двоично-десятичных счетчиках сделать конечно можно. Решений к задаче существует больше одного, а описанный способ далеко не по всем критериям оптимален.
статья ведь об этом
Одна из основных целей статьи — побудить на эксперимент (в том числе, мысленный) по поиску наиболее элегантного решения в условиях искусственных ограничений. (=
С двоично-десятичными счетчиками вижу один большой плюс: значение больше не ограничено 254 и может быть до 998. Однако, без выходного регистра будут мерцания: дело в том, что "прямой ход" счетчика случается 4 раза в секунду (хоть и занимает несколько миллисекунд). А увеличить количество опросов мы можем максимум до 16 (ограничение датчика), что все равно будет заметно глазу. К тому же, при частых опросах, дерганья показаний в младших разрядах будут дополнительно мешать.
Нули не гашу, все знакоместа горят с хорошей одинаковой яростью. Я понимаю, что выход ПЗУ скорее всего перегружен по току, но что поделать. Плохо быть ПЗУ =(
Фото
Для душевного спокойствия можно увеличить резисторы на анодах до 2.2к, индикатор даже на низких токах читается, хотя выглядит не так красиво, конечно.
Минимальное значение, которое я видел на индикаторе — 2. 0 и 1 вообще ни разу не было. Датчик 5v. Если поверхность отражения "плохая", слишком близко или слишком далеко, то уходит в зашкал. Для ровных поверхностей в допустимом диапазоне работает вообще без "неудачных" измерений. Не знаю, может условия случайно хорошо сложились, но датчик мне показался довольно стабильным.
Да, РТ7 интересная штука, подошла бы по адресному пространству в точности. Выбор микросхем был продиктован двумя желаниями: чтобы были в DIP корпусе и широко доступы в продаже.
ДШ рекомендует не более ~16 раз в секунду, в схеме ~4 раза в секунду. Эхо от предыдущих измерений отсекается внутри датчика путем игнорирования нового сигнала запуска измерения, если он был выдан слишком рано.
Так какую проблему вы решали? Если родителю нужно знать состояние вашего компонента, ну так вытесните это состояние полностью в родителя. Часто в реальности родителю нужно не только "сигнализировать" о изменении стояния, но и он должен иметь возможность его инициализировать или даже менять. Т.е. Ваш первый вариант станет чем-то таким
Плюс в приложении не будет двух копий одного состояния — в текущем компоненте и в родителе.
Если же прямо хочется передавать только колбэк в пропы, то
useReducer
, например, может помочь привязать колбэк к изменению состояния более собрано (в одном месте кода, а не состояние + обертка).К useCallback() это ситуация вообще никак не относится. Вы вот пишите:
А почему до замены не нужно было оборачивать? Я сейчас не к тому, зачем вообще
useCallback
, я к тому, что это не связанные вещи.Новость отличная, однако от проприетарных зависимостей нужно избавляться, конечно. Интересно, хватит ли ресурсов у мощных микроконтроллеров, чтобы потянуть этот кодек. "Классические" решения в плане ультрасжатия голоса — speex и codec2 работают на STM32F4 @180MHz (speex вообще даже на bluepill stm32f103 @72MHz запускал в некоторых конфигурациях).
Ждем когда будет наоборот: проброс GPU из windows в WSL, тогда с CUDA будет одни удобства.
О как оно! "Компилятор", очень редкоиспользуемое и незнакомое на хабре слово.
Это до подорожания? Что-то не верится. Сейчас минимум ~1000RUR, но и раньше она вряд ли сильно дешевле была, SAM'ы далеко не самые дешевые ARM МК.
Спасибо за привлечение внимания к проекту, но тема заслуживает нормальной статьи! Основные вопросы:
Круто! Микросхемы с ebay заказывали или у нас кто перепродает? Есть вообще на 2600 игры в которые интересно играть дольше 3 минут?
А как решена заявленная проблема с DMA? Теперь выделенную в RTOS память нельзя передать функциям, которые используют DMA или они должны проверять какую память им передали и перебуферизовывать ее?
Как пользователю ts+react+styled-component решение мне нравится! Конечно, для использования в рабочих проектах, хочется сначала увидеть хотя бы небольшую, но сформировавшуюся, стайку пользователей. А вот для ближайшего pet-project попробую. Успехов!
Как владелец такого "актива" может реализовать свое право собственности? (Кроме как перепродать.) Я сначала подумал, что покупатель сможет изменить твит по своему желанию, тогда это бы имело смысл в рекламных целях, но как я понял, "владелец" даже удалить его не сможет.
Для небольших файлов. Если файл несколько Мб, то зачем лишний раз напрягать компилятор? (И хранить сам файл в двух вариантах: оригинал и с-массив.) Лучше сделать через
objcopy
, как замечено в комментарии ниже. Да и xdd нет под виндой из коробки.Спасибо, поправил.
Точно обычный 5v, пробовал его на ~3.3v запускать — не работает. Вот, достал ссылку из истории покупок али: aliexpress com/item/32894521376.html
На двоично-десятичных счетчиках сделать конечно можно. Решений к задаче существует больше одного, а описанный способ далеко не по всем критериям оптимален.
Одна из основных целей статьи — побудить на эксперимент (в том числе, мысленный) по поиску наиболее элегантного решения в условиях искусственных ограничений. (=
С двоично-десятичными счетчиками вижу один большой плюс: значение больше не ограничено 254 и может быть до 998. Однако, без выходного регистра будут мерцания: дело в том, что "прямой ход" счетчика случается 4 раза в секунду (хоть и занимает несколько миллисекунд). А увеличить количество опросов мы можем максимум до 16 (ограничение датчика), что все равно будет заметно глазу. К тому же, при частых опросах, дерганья показаний в младших разрядах будут дополнительно мешать.
Нули не гашу, все знакоместа горят с хорошей одинаковой яростью. Я понимаю, что выход ПЗУ скорее всего перегружен по току, но что поделать. Плохо быть ПЗУ =(
Для душевного спокойствия можно увеличить резисторы на анодах до 2.2к, индикатор даже на низких токах читается, хотя выглядит не так красиво, конечно.
Минимальное значение, которое я видел на индикаторе — 2. 0 и 1 вообще ни разу не было. Датчик 5v. Если поверхность отражения "плохая", слишком близко или слишком далеко, то уходит в зашкал. Для ровных поверхностей в допустимом диапазоне работает вообще без "неудачных" измерений. Не знаю, может условия случайно хорошо сложились, но датчик мне показался довольно стабильным.
Ой, нет, там примем аналогового сигнала, АРУ, фильтры, фильтры. Я с таким совсем не дружу =)
До 100 см "шатает" +1 (т.е., например, 100/101). Более 100 см — уже +2 (т.е. 100/101/102). Для датчика за $1 я считаю это просто волшебством.
Да, РТ7 интересная штука, подошла бы по адресному пространству в точности. Выбор микросхем был продиктован двумя желаниями: чтобы были в DIP корпусе и широко доступы в продаже.
ДШ рекомендует не более ~16 раз в секунду, в схеме ~4 раза в секунду. Эхо от предыдущих измерений отсекается внутри датчика путем игнорирования нового сигнала запуска измерения, если он был выдан слишком рано.