Как стать автором
Обновить
5
0
Богдан Остапчук @Bogdan92

web developer / pm

Отправить сообщение

Kincony KC868-A8: старший брат из Ханчжоу. Часть 1. ESP32 + Ethernet

Время на прочтение7 мин
Количество просмотров10K


Пока мы с вами разбирались с универсальным контроллером начального уровня на ESP32 для DIY автоматизации Kincony KC868-A4 1, 2, 3 «подъехал» его старший брат Kincony KC868-A8 — значительно более серьёзное устройство с 8-ю оптоизолированными цифровыми входами, 8-ю реле на борту для управления различным оборудованием, выведенным на плату I2C разъёмом, встроенным Ethernet-интерфейсом на LAN8270A и прочими интересными возможностями.

В этой статье мы подробно разберём устройство этого контроллера, но сразу хочется отметить, что одновременное наличие и сочетание двух интерфейсов — беспроводного Wi-Fi и проводного Ethernet делает KC868-A8 очень интересным решением — контроллер может работать по Wi-Fi или Ethernet и использовать альтернативный интерфейс как резервный или работать одновременно по двум интерфейсам (проводному и беспроводному) и взаимодействовать с разными сетями и т. д.

В общем, устраивайтесь поудобнее — вас ожидает очередное увлекательное путешествие в удивительный мир микроконтроллеров и DIY автоматизации…
Читать дальше →
Всего голосов 32: ↑32 и ↓0+32
Комментарии31

Как создать работающий Impact Map

Время на прочтение6 мин
Количество просмотров7.9K

Больше 8 лет я использую Impact Map для аналитики IT-продуктов. Я довольно активно делился знаниями об этом подходе: писал статьи, выступал на конференциях с докладами и мастер-классами, рассказывал студентам в университетах и интернам в компании. Слушатели и участники мастер-классов легко улавливают, как создавать и использовать Impact Map, т.е. с теорией нет проблем. Тем не менее, я вижу большие затруднения с применением этого подхода в реальной практике, когда нужно придумать и описать идеи для сложного IT-продукта.

В этой статье я сделаю попытку объснить, каким образом формулируются идеи, которые являются самой сложной и самой ценной частью Impact Map, а также поделюсь своим видением, как наиболее эффективно воспринимать каждую из частей Impact Map.

Читать далее
Всего голосов 8: ↑8 и ↓0+8
Комментарии2

Настройка VSCode для отладки китайского RISC-V SoC

Время на прочтение8 мин
Количество просмотров7.1K

Я всей душой люблю малоизвестных производителей. Зачастую их продукты имеют фичи, недоступные у их более именитых конкурентов, по очень интересной цене (однажды меня очень выручило наличие встроенной в SoC полуамперной зарядки для аккумулятора и нескольких LDO, способных запитать всю периферию). Кроме того, сроки и условия поставки какого-нибудь Nanjing Qinheng Microelectronics могут приятно удивить разработчиков, привыкших за последние два ковидных года к конскому ценнику и 52+ неделям доставки на ST, TI, Nordic и прочие привычные вещи. Логистика становится особенно приятной, если массовое производство планируется в Китае и на площадке присутствует ваша китайская команда, способная разрулить возникающие проблемы. Да и доставка из Шеньчженя в Шеньчжень проще и предсказуемей, чем со склада глобального дистрибьютора и растаможка в России.

Погрузиться в дивный мир
Всего голосов 20: ↑17 и ↓3+14
Комментарии7

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

Время на прочтение32 мин
Количество просмотров23K

Введение


В этом посте мы расскажем об UART, UBoot и USB, а нашей целью станет игровой автомат Arcade 1UP Marvel. Серия автоматов Arcade 1Up предоставляет возможность за приемлемую цену приобрести домашнюю аркадную машину. С момента выпуска этих автоматов появилось множество модов, демонстрирующих, как заменить внутренние компоненты автомата для запуска стандартного ПО MAME. В посте мы исследуем оборудование автомата и узнаем, как извлечь его прошивку.

Читать дальше →
Всего голосов 18: ↑18 и ↓0+18
Комментарии6

Kincony KC868-A4: ультимативный гайд. Часть 3: управление контроллером через Telegram-бота

Время на прочтение9 мин
Количество просмотров9.9K


В предыдущей статье цикла о Kincony KC868-A4 было рассмотрено «атомарное» программирование компонентов этого контроллера, в этой статье будем разбирать более продвинутый пример работы с KC868-A4 — управление вашей (IoT) системой через интернет.

Способов управления контроллером через интернет существует множество, сегодня мы поговорим об управлении при помощи популярного мессенджера Telegram. Если у вас на смартфоне установлен Telegram, то вы сможете очень удобно получать информационные сообщения от вашей системы и отдавать ей управляющие команды, где бы вы ни находились.

Ну и, конечно, когда вы добавите к основной функциональности вашего контроллера ещё и удалённое управление, то возможности вашей системы выйдут на совсем другой, более высокий, уровень.
Читать дальше →
Всего голосов 34: ↑33 и ↓1+32
Комментарии11

Основы внутреннего устройства JavaScript

Время на прочтение6 мин
Количество просмотров40K
image

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

Введение


Почти все уже слышали о концепции движка V8 и большинство людей знает, что язык JavaScript однопотоковый или что он использует очередь обратных вызовов.

В этом посте мы подробно разберём эти концепции и объясним, как же работает JavaScript. Благодаря знанию этих подробностей вы сможете писать более оптимальные приложения, надлежащим образом использующие API. Если вы работаете с JavaScript относительно недавно, этот пост поможет вам понять, почему JavaScript настолько «странный» по сравнению с другими языками. А если вы опытный разработчик на JavaScript, то он позволит вам по-новому взглянуть на внутреннее устройство JavaScript Runtime, с которым вы работаете каждый день.
Читать дальше →
Всего голосов 35: ↑32 и ↓3+29
Комментарии5

Твикаем VS Code: убираем визуальный шум, доводим до совершенства

Время на прочтение2 мин
Количество просмотров22K

Как при помощи небольших твиков можно улучшить интерфейс VS Code, убрав ненужные визуальные элементы интерфейса.

Читать далее
Всего голосов 34: ↑21 и ↓13+8
Комментарии17

Kincony KC868-A4: ультимативный гайд. Часть 2. Программирование компонентов

Время на прочтение18 мин
Количество просмотров8.7K


Продолжаем ультимативный гайд по контроллеру Kincony KC868-A4, начатый в предыдущей статье. Сегодня мы подробно разберём распиновку KC868-A4 и познакомимся с принципами программирования компонентов (функциональных блоков) этого контроллера. Все примеры будут сопровождаться готовым рабочим кодом, который вы можете использовать в своих проектах.

Начнём мы с распиновки центрального модуля ESP32-S и разбора того, что и как подключено к нему инженерами компании Kincony.
Читать дальше →
Всего голосов 31: ↑31 и ↓0+31
Комментарии11

Как писать условия в JSX

Время на прочтение7 мин
Количество просмотров24K

Добрый день, меня зовут Павел Поляков, я Principal Engineer в каршеринг компании SHARE NOW, в Гамбурге в 🇩🇪 Германии. А еще я автор телеграм канала Хороший разработчик знает, где рассказываю обо всем, что обычно знает хороший разработчик.

Сегодня я хочу поговорить про React и JSX. Почти в каждом проекте мы пишем JSX шаблоны, которые рендерятся в зависимости от условий. Делаем ли мы это правильно? Это перевод оригинальной статьи.

Читать далее
Всего голосов 13: ↑10 и ↓3+7
Комментарии3

Kincony KC868-A4: ультимативный гайд. Часть 1. Обзор и железо

Время на прочтение9 мин
Количество просмотров18K


Как-то длинным зимним вечером я сидел перед монитором и просматривал интернет на предмет чего-нибудь интересного вообще и чего-нибудь интересного микроконтроллерного в частности. К сожалению, интернет ничем особенным не радовал и на глаза попадались либо уже набившие оскомину стандартные отладочные платы, либо вариации на тему «коробочка с ESP8266/ESP32 c 1–4 реле».

ESP32 c 4-я реле это, конечно, хорошо, но хотелось чего-то большего и тут мне на глаза попалась плата Kincony KC868-A4. Неплохо! подумал я и надел очки, чтобы получше её рассмотреть…
Читать дальше →
Всего голосов 61: ↑61 и ↓0+61
Комментарии55

Улучшаем дизайн React приложения с помощью Compound components

Время на прочтение9 мин
Количество просмотров21K

Сегодня я хочу рассказать про один не очень популярный но очень классный паттерн в написании React приложений - Compound components.

Что это вообще такое

Compound components это подход, в котором вы объединяете несколько компонентов одной общей сущностью и общим состоянием. Отдельно от этой сущности вы их использовать не можете, тк они являются единым целым. Это как в BEM нельзя использовать E - элемент, отдельно от B - блока.

Самый наглядный пример такого подхода, который знают все фронты - это select с его option в обычном HTML.

Читать далее
Всего голосов 16: ↑15 и ↓1+14
Комментарии9

Латунирование, это просто

Время на прочтение7 мин
Количество просмотров36K

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

Читать далее
Всего голосов 133: ↑131 и ↓2+129
Комментарии75

30 команд Git, необходимых для освоения интерфейса командной строки Git

Время на прочтение9 мин
Количество просмотров385K

Git — самая популярная в мире распределённая система контроля версий. Линус Торвальдс, разработчик ядра ОС Linux, создал этот инструмент ещё в 2005 году, а сегодня Git активно поддерживается как проект с открытым исходным кодом. Огромное количество открытых и коммерческих проектов используют Git для контроля версий.

В данной статье перечисляются самые основные команды, которые следует знать разработчику, чтобы освоить управление репозиториями GitHub на высоком уровне. Ознакомиться с ними будет полезно как новичкам, так и опытным разработчикам.
Читать дальше →
Всего голосов 84: ↑69 и ↓15+54
Комментарии63

Пакеты Flutter, которые я использую в каждом проекте

Время на прочтение4 мин
Количество просмотров15K

В этой статье я просто хочу познакомить новых пользователей с моими любимыми пакетами. Речь пойдет о некоторых из лучших пакетов Flutter, которые могут сократить время разработки и повысить производительность вашего приложения Flutter в кратчайшие сроки. Эти пакеты и библиотеки Flutter используются для различных аспектов технологии Flutter. Итак, давайте с них начнем.

Читать далее
Всего голосов 13: ↑11 и ↓2+9
Комментарии4

Как пирамида Пола Грэма помогает отделять конструктивный фидбэк от токсичных комментариев

Время на прочтение4 мин
Количество просмотров19K

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

Сегодня делюсь очень полезным инструментом - пирамида аргументации от основателя YCombinator Пола Грэма, которая помогает работать с критикой, избегать бессмысленных споров и не грустить из-за существования хейтеров.

Пирамида аргументации Грэма, описанная им в эссе «Искусство возражать» — хороший инструмент, помогающий вырваться из этого порочного круга. Она четко структурирует возможные варианты критических комментариев – и связывает их с истинными намерениями оппонента. Теперь вы всегда можете идентифицировать "ступень" и понять: стоит ли критика вашего внимания — или это грязь под ногами, которую просто надо перешагнуть.

Читать далее
Всего голосов 25: ↑19 и ↓6+13
Комментарии8

По-настоящему яркий, надёжный и безопасный источник света для растений

Время на прочтение15 мин
Количество просмотров29K

Я люблю выращивать всякую экзотику и долго не мог решиться на организацию нормального освещения. Какое-то время у меня висели старые люминесцентные лампы, но света они давали немного, и вот, с приобретением венериной мухоловки я понял, что дальше оттягивать нельзя, сформулировал критерии и начал искать реализации.

В результате длительных сессий по курению мануалов и древних форумов, экспериментов и медитаций удалось создать светильник, ровно с теми характеристиками которые мне были нужны.

В посте приводится относительно длинный текст про причины, выбор, технологию производства, слегка разбавленный фотографиями того, что там растёт.

Читать далее
Всего голосов 47: ↑47 и ↓0+47
Комментарии51

React.js: размышления об управлении состоянием и повторном рендеринге

Время на прочтение14 мин
Количество просмотров16K



Привет, друзья!


В этой статье я хочу поговорить с вами об управлении состоянием и повторном рендеринге в React.js.


Что такое состояние и зачем им управлять?


Состояние/state можно определить как любые данные, которые влияют на рендеринг/rendering компонентов. Состояние хранится в реактивных переменных/reactive variables ](в терминологии RxJS).


Управление состоянием/state management — это механизм, позволяющий создавать реактивные переменные, фиксировать изменения их значений и уведомлять об этом "заинтересованные" компоненты. Как правило, такой механизм реализуется с помощью паттерна Издатель-Подписчик/Publisher-Subscriber/Pub-Sub.


Реакция компонентов на изменение состояния часто, но далеко не всегда завершается добавлением/модификацией/удалением HTML-элементов в/из DOM. Как известно, операции, связанные с манипулированием DOM, являются очень медленными. Это обуславливает необходимость грамотного управления состоянием приложений.

Читать дальше →
Всего голосов 7: ↑6 и ↓1+5
Комментарии18

«Мобилизация» сайта: внедряем AMP-страницу

Время на прочтение4 мин
Количество просмотров3.1K

Для удобства отражения сайта на мобильных устройствах зачастую нужно внедрить в проект страницу Accelerated Mobile Pages (AMP). Делимся примером, как можно выполнить эту задачу, если вы работаете с приложением на React.

Начнем с того, что AMP — технология ускоренных мобильных страниц от Google с открытым исходным кодом. Этот способ позволяет оперативно загрузить веб-страницу при низкой скорости подключения к сети.

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

Именно такая задача появилась в одном из наших проектов, где стек технологий включал в себя Next.js, React, Styled components и Effector, при этом не было доступа к стору на стороне клиента. Большинство инструкций и гайдов по внедрению AMP, в свою очередь, были ориентированы на обычные html-страницы.

Читать далее
Всего голосов 2: ↑2 и ↓0+2
Комментарии5

Elementary: новый взгляд на архитектуру Flutter-приложений

Время на прочтение6 мин
Количество просмотров12K

Elementary — это архитектурный пакет, который создали в Surf на основе опыта разработки приложений на Flutter и лучших практик современной разработки.

Решение позволяет чётко разделить слои согласно ответственностям, сделать код прозрачнее, а тестирование проще. На примере реального приложения показываем, как использовать Elementary.

Читать далее
Всего голосов 13: ↑12 и ↓1+11
Комментарии12

Отладка React для самых маленьких

Время на прочтение3 мин
Количество просмотров17K

Эта статья для тех, кто только начинает свой путь в написании больших React приложений, но все еще использует только console.log для их дебага. Мы с вами рассмотрим работу с расширением для браузера "React Developer Tools" на простом примере, который в дальнейшем вы сможете применить в своих проектах. Это расширение дает возможность просмотра дерева компонентов, их props, состояния и контекста. Также достаточно просто отловить неэффективные компоненты, которые подвергаются повторному рендерингу, посмотреть сколько на это уходит времени и построить графики для визуализации эффективности компонентов. Благодаря этой информации вы не только сможете оптимизировать ваше приложение, но и более глубоко изучить React и понять все тонкости работы с ним.

Читать далее
Всего голосов 5: ↑4 и ↓1+3
Комментарии1
1
23 ...

Информация

В рейтинге
Не участвует
Откуда
Киев, Киевская обл., Украина
Дата рождения
Зарегистрирован
Активность