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

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

Send message

gRPC + Dart, Сервис + Клиент, напишем

Reading time6 min
Views15K

Привет! Меня зовут Андрей. Занимаюсь разработкой Flutter приложений.

Написание материала вызвано желанием показать пример создания сервиса c использованием технологии gRPC в экосистеме Dart и, соответственно, Flutter. Желание периодически возникает, когда приходится испытывать "боль", при переключении на проекты, в которых до сих пор применяется REST + JSON.

Это будет короткая серия из 3-4 статей.

Читать далее

Создаём королевскую форму для приёма банковских карт

Reading time8 min
Views21K


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


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


Для создания формы мы будем использовать следующие инструменты:


  1. Нативный JS
  2. BinKing — вспомогательный сервис для создания платёжных форм: https://github.com/sdandteam/binking
  3. IMask — инструмент для создания масок полей ввода: https://imask.js.org/
  4. Tippy — инструмент для создания тултипов: https://atomiks.github.io/tippyjs/

Читать дальше →

Эмулятор ИБП с протоколами Megatec и Voltronic

Reading time4 min
Views11K

Ряд наших устройств имеет встроенный порт RS-232 для считывания данных с источников бесперебойного питания (ИБП) по двум наиболее распространённым протоколам обмена – Megatec и Voltronic. Для облегчения тестирования устройств мы разработали небольшую программу-эмулятор. Именно о ней дальше и пойдёт речь.

Читать далее

Как получить доступ из одного докер-контейнера в другой докер-контейнер

Reading time4 min
Views56K

Цель этой статьи — показать как мы можем сконфигурировать два и более контейнеров, чтобы они могли взаимодействовать друг с другом. В этой статье мы сделаем следующее:

Создадим образ Docker используя простой веб-сервис с использованием Python и Flask.

Запустим два отдельных контейнера

Создадим сеть в Docker

Объединим контейнеры используя созданную сеть

Читать далее

«Скажи мне свой адрес и я скажу как зовут твоего соседа», или как дешево и быстро проверять любой объект недвижимости

Reading time3 min
Views39K

Все, что понадобится — подтвержденная учетная запись на Госуслугах и небольшая плата за сведения

СМИ время от времени сотрясают скандалы связанные с тем, что у того или иного государственного служащего находят дома, квартиры, участки и другую недвижимость. Их сменяют другие скандалы о том, что имя  чиновника в государственных реестрах зашифровывается.

Как удается узнавать собственников недвижимости? Неужели любой может узнать кто владеет тем или иным участком, домом или квартирой?

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

Все что Вам нужно для этого - подтвержденная учетная запись на госуслугах. С помощью нее заходим на официальный сайт Росреестра.

Сколько это стоит?

Официальная плата Росреестра от 1 до 5 рублей за одну выписку. Доступ к выпискам оплачивается по УИН на сайте Росреестра пакетами от 100 шт. до 500 000 шт.

Читать далее

Свой личный SMS-шлюз. Часть 2 – создаём API и форму отправки

Reading time11 min
Views28K

Представляю вам вторую часть из серии статей по созданию своего шлюза.
В первой части мы настроили Gammu, рассмотрели особо интересные параметры и успешно произвели отправку SMS сообщения. Сейчас нам предстоит задача посложнее – создать некую программную прослойку (API), для того, чтобы можно было работать со шлюзом путем отправки запросов на этот API. В первую очередь это комфорт, во вторую – большое количество дополнительных возможностей.

Если вы не знакомы с первой частью, советую сначала ознакомиться с ней:
Свой личный SMS-шлюз. Часть 1 – цели, задачи, сборка и тестирование
Читать дальше →

История разработки SDK для приема платежей в мобильном приложении на Flutter

Reading time9 min
Views9.8K

Привет, Хабр!

На связи разработчики из Mad Brains. Мы специализируемся на разработке сервисов для мобильных устройств. Имеем опыт в реализации интеграционных решений, собственные продукты в сфере мобильной электронной коммерции, а также входим в 20-ку лучших мобильных разработчиков России и СНГ. Среди наших клиентов Магнит, DNS, Яндекс, Home Credit Bank, QIWI, Pfizer, OneTwoTrip! и другие крупные бренды.

Сегодня мы хотим рассказать, как разработали SDK с открытым исходным кодом для оплаты в мобильном приложении на Flutter на основе Tinkoff Acquiring SDK для нативных приложений. 

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

За основу мы взяли нативную библиотеку Тинькофф Банка и реализовали решение на языке Dart. Настало время рассмотреть все предметно. 

Читать далее

Фоновая работа в Android: обзор возможностей WorkManager

Reading time10 min
Views40K

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

Например, в ритейле мерчендайзерам бывает необходимо в конце каждого рабочего дня отправлять фотоотчеты на сервер и удалять их из памяти телефона, чтобы не занимать место. А для работы онлайн-кассы требуется в фоновом режиме загружать актуальный справочник товаров. В этой статье мы рассмотрим один из самых популярных инструментов для реализации фоновой работы – WorkManager из Android Jetpack. 

Читать далее

Botfather: универсальный фреймворк для автоматизации

Reading time5 min
Views10K

Привет, Хабр!

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

Читать далее

Создание видеочата с помощью Node.js + Socket.io + WebRTC

Reading time8 min
Views34K

Сегодня, специально к старту нового потока по веб-разработке, поделимся с вами туториалом, из которого вы узнаете, как создать видеочат с помощью JavaScript и NodeJS. Также вы научитесь использовать PeerJS, WebRTC и Socket.io.

Читать далее

Вышел стабильный релиз Almalinux, альтернатива CentOS 8 от Red Hat

Reading time3 min
Views10K

Компания Cloudlinux выпустила первую стабильную версию дистрибутива Almalinux. Это форк коммерческого дистрибутива от Red Hat, который называется Red Hat Enterprise Linux (RHEL). Новый дистрибутив — альтернатива популярнейшему CentOS, поддержка которого была прекращена в начале года.

Несмотря на то что компания Red Hat выпустила альтернативу и сделала ее бесплатной для некоторых пользователей и компаний, множество пользователей CentOS не стали переходить на RHEL. Эта нехорошая ситуация спровоцировала активное развитие форков — альтернатив CentOS 8. Одна из них уже готова к использованию.
Читать дальше →

Как написать и опубликовать идеальный пакет для Flutter

Reading time8 min
Views6.5K

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

Перейти к делу

Символы Unicode: о чём должен знать каждый разработчик

Reading time7 min
Views442K


Если вы пишете международное приложение, использующее несколько языков, то вам нужно кое-что знать о кодировке. Она отвечает за то, как текст отображается на экране. Я вкратце расскажу об истории кодировки и о её стандартизации, а затем мы поговорим о её использовании. Затронем немного и теорию информатики.
Читать дальше →

Итак, вы хотите оптимизировать gRPC. Часть 1

Reading time10 min
Views5.3K

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

Рассмотрим простой сервис "ключ-значение", который используется несколькими клиентами. Сервис должен корректно работать при параллельных операциях изменения данных. Также должна быть возможность масштабирования. И, в конце концов, он должен быть быстрым. Для реализации подобного сервиса gRPC будет идеальным вариантом. Давайте посмотрим, как его реализовать.

Я написал пример клиента и сервера на Java. В примере три основных класса и protobuf-файл, описывающий API:

Читать далее

20 основных частей любого крупномасштабного React-приложения

Reading time6 min
Views16K

За эти годы мне посчастливилось работать над некоторыми крупномасштабными проектами, написанными на React. Сегодня я соберу важные вещи, которые нужно учитывать при создании нового проекта или расширении функциональности любого крупномасштабного приложения. Мы начнём с самых основ, а затем пойдём глубже. Так что пристегнитесь!

Приятного чтения!

PKCS#11 для самых маленьких

Reading time37 min
Views39K

В этой статье мы познакомимся со стандартом PKCS#11, предназначенным для работы с различными криптографическими устройствами. Для демонстрации мы будем использовать токены и смарт-карты Рутокен ЭЦП 2.0.

Читать далее

Как реализовать drag&drop на чистом JavaScript

Reading time9 min
Views51K

В этом туториале мы рассмотрим, как реализовать эффект drag & drop на ванильном JavaScript. Дословный перевод с английского — «потяни и брось» — отражает суть эффекта, это хорошо знакомое любому пользователю перетаскивание элементов интерфейса. Drag & drop может понадобиться при сортировке карточек в таск-трекере, переносе между списками или вообще при перетаскивании файлов в окно браузера.

Мы разберём drag & drop на примере сортировки. Для этого создадим интерактивный список задач.

Читать далее

Raspberry Pi Pico vs Arduino: какая плата лучше?

Reading time5 min
Views38K


До того, как Raspberry Foundation представила Pi Pico, сравнивать «малинку» и Arduino было некорректно. Raspberry Pi — полноценный компьютер, хотя и специфический. А вот Arduino — микроконтроллер. Но с появлением Raspberry Pi Pico все изменилось, поскольку новая плата — это тоже микроконтроллер, разница с Arduino уже не такая большая.

У Arduino и Raspberry Pi Pico есть одна общая черта — это отличные платы для разного рода проектов, включая управление освещением, приводами или сенсорами. Использовать полноценную ОС при этом не нужно. Сейчас уже можно сравнить возможности обеих плат, чем в этой статье и займемся.
Читать дальше →

Основы Bash-скриптинга для непрограммистов. Часть 2

Reading time10 min
Views41K

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

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

Читать далее

Information

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