Pull to refresh
-8
0
Александр @irbis_al

Пользователь

Send message

Запрос к API c React Hooks, HOC или Render Prop

Reading time8 min
Views39K


Рассмотрим реализацию запроса данных к API c помощью нового друга React Hooks и старых добрых товарищей Render Prop и HOC (Higher Order Component). Выясним, действительно ли новый друг лучше старых двух.

Читать дальше →
Total votes 24: ↑22 and ↓2+20
Comments49

Гибкие таблицы на CSS Grid

Reading time8 min
Views67K

Просмотр списка лидов («холодных» контактов)

Поскольку мы уже запустились, я, наконец, могу рассказать о секретном проекте, над которым работал последние два года. Одна из интересных функций Teamwork CRM — просмотр списка (list view).

Это мощный компонент, который встречается в приложении семь раз. По сути, таблица на стероидах. Я мог бы много рассказать, но не хочу вас утомлять. Сосредоточусь на том, как мы реализовали подобную гибкость с помощью всего нескольких строк CSS (Grid). А именно, как мы выкладываем тяжёлые таблицы данных, как поддерживаем изменение размера столбцов и многое другое.

Во-первых, нужно объяснить контекст, начиная с цели и задачи дизайна этих таблиц. Если это не интересует, не стесняйтесь перейти сразу к технической реализации.
Читать дальше →
Total votes 19: ↑19 and ↓0+19
Comments4

Реализовываем CircularRevealAnimation на Flutter и попутно публикуем библиотеку на pub.dev

Reading time5 min
Views3.7K

В Android есть очень интересная возможность анимации View, которая называется CircularRevealAnimation — дословно "круговое раскрытие". Flutter, в свою очередь, хотя и обладает богатыми возможностями для анимирования виджетов, не предоставляет такую анимацию из коробки.



В этой статье будет показано как реализовать такую анимацию средствами Flutter и опубликовать библиотеку на pub.dev для удобного доступа и распространения.

Читать дальше →
Total votes 16: ↑16 and ↓0+16
Comments1

Docker: невредные советы

Reading time6 min
Views34K

В комментариях к моей статье Docker: вредные советы было много просьб объяснить, чем так ужасен описанный в ней Dockerfile.


Краткое содержание предыдущей серии: два разработчика в жестком дедлайне составляют Dockerfile. В процессе к ним заходит Ops Игорь Иванович. Итоговый Dockerfile плох настолько, что ИИ оказывается на грани инфаркта.



Сейчас разберемся, что не так с этим Dockerfile.


Итак, прошла неделя.

Читать дальше →
Total votes 61: ↑57 and ↓4+53
Comments75

Unstated-next: минималистичное управление состоянием React-приложения

Reading time9 min
Views3.5K
200 байт для управления состоянием React-компонентов

  • React-хуки: это все, что нужно для управления состоянием.
  • ~200 байт, min+gz.
  • Знакомый API: просто пользуйтесь React, как обычно.
  • Минимальный API: хватит пяти минут, чтобы разобраться.
  • Написан на TypeScript, чтобы обеспечить автоматический вывод типов.

Главный вопрос: чем этот пакет лучше, чем Redux? Ну...

Читать дальше →
Total votes 10: ↑10 and ↓0+10
Comments9

RxDart: магические трансформации потоков

Reading time13 min
Views24K

Добро пожаловать — это третья часть моей серии статей об архитектуре Flutter.



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


RxDart — это реализация концепции Rx для языка Dart, за что следует сказать спасибо Frank Pepermans и Brian Egan. Если ранее вы использовали Rx в других языках, то наверняка заметите разницу в именовании ряда функций, но это вряд ли вызовет у вас затруднения.


Код для тестирования находится здесь.


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

Читать дальше →
Total votes 6: ↑6 and ↓0+6
Comments2

Fish Redux — новая Redux библиотека для Flutter

Reading time7 min
Views14K

В конце 2018 года Google, не без помощи Open-Source сообщества, сделал большой подарок для мобильных разработчиков, выпустив первую стабильную версию кросс-платформенного фреймворка для мобильной разработки Flutter.


Однако, при разработке крупных приложений, немного больших, чем одностраничные 'Hello World'ы, разработчики могли столкнуться с проблемой неопределенности. Как стоит писать приложение? Фреймворк достаточно молод, ещё не существует достаточной базы хороших примеров с открытым кодом, основываясь на которых можно было бы понять плюсы и минусы применения различных паттернов, понять что стоит использовать в данном конкрентном случае, а что — нет.


Спасает ситуацию то, что Flutter имеет определенную степень схожести с React и React Native, а значит можно перенять некоторый опыт программирования на последних. Возможно, именно из-за этого появились такие библиотеки, как Flutter Flux, Flutter Hooks, MobX, а также сразу несколько реализаций Redux. Долгое время самой популярной была версия Брайана Игана под названием Flutter Redux.


Тем не менее, пару месяцев назад первый коммит увидела библиотека Fish Redux, опубликованная под именем компании Alibaba. Библиотека за короткое время собрала большую популярность, уже на первом дне обогнав реализацию Брайана по количеству звезд, а на втором опередив её в два раза.

Читать дальше →
Total votes 18: ↑17 and ↓1+16
Comments2

Архитектура SPA-приложения биржи в 2019 году

Reading time42 min
Views17K

Приветствую, хабровчане!


Читаю данный ресурс со времени основания, но время на написание статьи появилось только сейчас, а значит пора поделиться своим опытом с сообществом. Начинающим разработчикам, рассчитываю, статья поможет улучшить качество проектирования, а опытным выступит в качестве чек-листа, чтобы не забыть важные элементы на этапе архитектуры. Для нетерпеливых — итоговый репозиторий и демо.


Читать дальше →
Total votes 32: ↑26 and ↓6+20
Comments26

Руководство по Docker Compose для начинающих

Reading time9 min
Views790K
Автор статьи, перевод которой мы сегодня публикуем, говорит, что она предназначена для тех разработчиков, которые хотят изучить Docker Compose и идут к тому, чтобы создать своё первое клиент-серверное приложение с использованием Docker. Предполагается, что читатель этого материала знаком с основами Docker. Если это не так — можете взглянуть на эту серию материалов, на эту публикацию, где основы Docker рассмотрены вместе с основами Kubernetes, и на эту статью для начинающих.

image
Читать дальше →
Total votes 40: ↑37 and ↓3+34
Comments14

Маркетинг для стартапа: как привлечь тысячи пользователей со всего мира не потратив и $200

Reading time5 min
Views5.3K


Сегодня я расскажу, как подготовить стартап к выходу на Product Hunt, какие шаги стоит предпринять до этого, и как подогревать интерес к проекту в день и после публикации.
Читать дальше →
Total votes 24: ↑23 and ↓1+22
Comments5

Стримим экран на несколько устройств по сети

Reading time4 min
Views9.3K


Возникла у меня необходимость выводить дашборд с мониторингом на несколько экранов в офисе. В распоряжении имеется несколько стареньких Raspberry Pi Model B+ и гипервизор с практически неограниченным количеством ресурсов.


По видимому Raspberry Pi Model B+ не обладает достаточной произвольностью чтобы держать постоянно запущенным браузер и отрисовывать большое количество графики в нем, из-за чего бывает, что страница частично глючит и часто вылетает.


Нашлось достаточно простое и элегантное решение, которым я и хочу с вами поделиться.

Читать дальше →
Total votes 11: ↑11 and ↓0+11
Comments5

Установка Zimbra Open-Source Edition на CentOS 7

Reading time4 min
Views15K
Во время проектирования внедрения Zimbra на предприятии, ИТ-менеджеру приходится выбирать и операционную систему, на которой будут работать узлы инфраструктуры Zimbra. На сегодняшний день с Zimbra совместимы практически все дистрибутивы Linux, вплоть до отечественных РЭД ОС и РОСА. Обычно для установки Zimbra в предприятиях выбор падает либо на Ubuntu или RHEL, так как разработкой этих дистрибутивов занимаются коммерческие компании. Однако нередко выбор ИТ-менеджеров падает на Cent OS, которая является предназначенным для работы на производстве и поддерживаемым сообществом форком коммерческого дистрибутива RHEL от компании Red Hat.

image
Читать дальше →
Total votes 9: ↑8 and ↓1+7
Comments6

Docker: вредные советы

Reading time4 min
Views38K


Когда я учился водить машину, на первом же занятии инструктор выехал на перекресток задним ходом, а потом сказал, что делать так нельзя — вообще никогда. Это правило я запомнил сразу и на всю жизнь.


Читаешь детям «Вредные советы» Григория Остера, и видишь, как легко и непринужденно до них доходит, что так делать нельзя.


О том, как правильно писать Dockerfile, написана куча статей. Но мне не попадалось инструкций, как писать неправильные Dockerfile. Восполняю этот пробел. И, может быть, в проектах, которые я получаю на поддержку, таких докерфайлов станет меньше.

Читать дальше →
Total votes 70: ↑51 and ↓19+32
Comments66

Микробиота. Какие бактерии живут в кишечниках россиян

Reading time8 min
Views29K
В первой статье мы с Атласом рассказали, что такое микробиота кишечника, как устроена толстая кишка, откуда там появляются бактерии и зачем они нам. А в этот раз делимся, какие роды бактерий живут в кишечнике россиян по статистике наших пользователей, чем они там питаются и какие функции выполняют.


Автор иллюстраций Rentonorama
Читать дальше →
Total votes 22: ↑22 and ↓0+22
Comments17

Дозвонились! Как собрать свою Web-звонилку за час

Reading time7 min
Views36K


Друзья, сегодня я хочу поговорить с вами про звонки. Для кого-то это совсем новая тема. Для других — чистой воды фан на уровне «а не зафигачить ли мне свой скайп?». Для третьих — внезапно возникшая жизненная необходимость. Последний вариант — наш вариант.


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

Уже хочу
Total votes 43: ↑43 and ↓0+43
Comments15

Управление Raspberry через websockets

Reading time4 min
Views14K
Raspberry Pi снискали огромную популярность по всему миру. Однако многие из любителей-разработчиков сталкиваются с проблемой доступа к устройству из интернета. Как правило приходится колдовать с DDNS или докупать статический IP адрес. Оба варианта предполагают настройка роутера, что не для всех и не всегда доступно. Кроме того – откртытие прямого доступа к устройству из интрента несет в себе определнные риски безопасности.

Крайне распространенным способом решения этой проблемы является использование промежуточного сервера, через который сервер и клиент подключаются друг к другую.
Схема крайне широко используется в различных пакетах удаленного доступа: VNCViewer, AmmyyAdmin и т.д.

Вариант 1-DDNS

image

Вариант 2 – статический IP адрес

image

Вариант 3 – использование промежуточного сервера

image

Эту схему подключения можно реализовать через протокол MQTT over Websockets, но мне было инетесно реализовать что-то значительно более простое, JSON-ориентированое, расширяемое, без ограничений протокола на размер сообщения и с более очевидной моделью безопасности.
Читать дальше →
Total votes 18: ↑18 and ↓0+18
Comments8

ADAM-3600 — многофункциональный промышленный контроллер

Reading time5 min
Views11K


Контроллер ADAM-3600 — универсальное устройство для дистанционного управления промышленными объектами, сбора данных, мониторинга и автоматизации процессов.
Одновременно может выступать как устройство связи с объектом (УСО), устройство сбора и передачи данных (УСПД) и программируемый логический контроллер (ПЛК).
Имеет модули расширения портов ввода-вывода, а также модули беспроводных интерфейсов Wi-Fi, 4G/3G/GPRS, ZigBee, GPS.

Устройство работает под управлением операционной системы RealTime Linux и процессора Cortex A8. Поддерживает открытые промышленные протоколы ModBus, DNP3, MQTT, HTTP REST API. Может быть интегрирован в любою SCADA-систему. Также поддерживает интеграцию в облачные системы IoT, такие как Microsoft Azure IoT Hub, Amazon AWS IoT, и другие.

В статье мы разберем основные функции устройства и познакомимся со сценариями использования контроллера в построении АСУ ТП.
Читать дальше →
Total votes 18: ↑17 and ↓1+16
Comments9

Моя система домашней автоматики. Создание образа операционной системы

Reading time4 min
Views8.7K
Вводная часть

Установка системы на Raspberry Pi 2,3

Я опишу самый простой, на мой взгляд, способ для начинающих.

Всё действие будет происходить в Ubuntu 18.04.

Для справки по командам служит команда «man» + нужная команда.

man ls

Или нужная команда с ключём --help

ls --help

Читать дальше →
Total votes 9: ↑7 and ↓2+5
Comments1

Разрабатывать приложения под Android — словно быть (демонетизированным) ютубером

Reading time14 min
Views42K
Как известно, некоторые авторы на YouTube крайне недовольны условиями, которые предлагает эта платформа. Аналогичное сражение сейчас ведут разработчики Android-приложений на платформе Google Play. Попытаюсь за 20 минут объяснить, что не так с Android.

Когда-то Android считался лучшей мобильной платформой: контроль, настраиваемость, продвинутые функции, реальная многозадачность, поддержка даже редких случаев использования и свобода разработчиков. Это была лучшая платформа для науки и образования: во-первых, инструменты разработки свободны и кросс-платформенны, во-вторых, Android был очень гибкой ОС, которая не мешала экспериментировать с инновационными концепциями и возиться с оборудованием. Теперь всё это быстро исчезает.

Раньше основные релизы Android приносили новые функции, которые радовали и разработчиков, и пользователей. Но с какого-то момента я уже начал бояться анонсов новых версий, и до сих пор ищу в себе силы (хех), чтобы посмотреть на список изменений и рекомендации для разработчиков к последнему релизу. И новые версии — это не единственная причина для нервотрёпки: изменения в политике Google Play Store тоже всегда забавно читать.
Читать дальше →
Total votes 95: ↑88 and ↓7+81
Comments169

И снова о втором мониторе из планшета…

Reading time3 min
Views36K
Оказавшись обладателем среднего такого планшета с нерабочим сенсором (старшенький сынуля постарался) долго думал, куда приспособить. Гуглил, гуглил и нагуглил (раз, два, Хакер №227), а так же много других рецептов с участием spacedesk, iDispla и некоторых других. Вот только незадача — у меня Linux. Погуглив ещё, я нашел несколько рецептов и путем несложного шаманства получил приемлемый результат.

Читать дальше →
Total votes 72: ↑65 and ↓7+58
Comments35

Information

Rating
Does not participate
Location
Украина
Date of birth
Registered
Activity