Pull to refresh
4
0
Сергей @sketcompani

User

Send message

Распределенные Workflow на PHP. Часть 1

Reading time8 min
Views13K

Мы занимаемся разработкой огромного количества сложного ПО для автоматизации и энтерпрайза и Workflow для нас — это большая и больная проблема. Если для вас тоже — я расскажу, как писать и оркестрировать очень сложные процессы на масштабах, и как убедиться, что они не падают. А также как делать таймеры на 30 дней внутри процессов. И самое главное, как всё это пилить на PHP.

Меня зовут Антон Титов. Я более 17 лет занимаюсь коммерческой разработкой. Являюсь соавтором Spiral Framework, RoadRunner и Cycle ORM. Основной стек: PHP и Golang. Разговор пойдет про нашу разработку Temporal PHP SDK, которая и помогает решать все вышеперечисленные сложные задачи.

Читать далее

Kincony KC868-Server: не контроллер, а просто атомная бомба. Часть 1

Reading time9 min
Views21K


И вот мы, наконец, добрались до вершины технического творчества компании Kincony — её флагманского контроллера 868-й серии KC868-Server. Когда я первый раз увидел этот контроллер, у меня просто не было слов — кажется, это воплощённая мечта любого «автоматизатора» и гика — чего там только нет: ESP32, Raspberry Pi и ARM Cortex M3 в одном флаконе и всё это снабжено кучей периферии, разъёмов, антенн и т. д.

Подобная платформа может стать основой для разработки любого, даже самого изощрённого проекта по автоматизации — такой концентрации возможностей на одной плате я просто не встречал ранее, одних только модулей Wi-Fi на KC868-Server 3 штуки, 2 проводных Ethernet, 2 MCU и плюс полноценный Linux-компьютер — как говорил один известный персонаж «да это просто праздник какой-то».

Я бы сказал, что Kincony KC868-Server — это не контроллер, а просто атомная бомба и, конечно, мы не сможем отказать себе в удовольствии поближе с ним познакомиться, разобрать его устройство и, возможно, даже «запилить» на нём несколько умопомрачительных IoT проектов.

Итак, начнём…
Читать дальше →

Кто круче rsync? Интересные алгоритмы для синхронизации данных

Reading time7 min
Views25K

Тридж, автор rsync

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

Если без шуток, то все знают rsync — инструмент для быстрой синхронизации файлов и каталогов с минимальным трафиком, который пришёл на замену rcp и scp. В нём используется алгоритм со скользящим хешем, разработанный австралийским учёным, программистом и хакером Эндрю Триджеллом по кличке Тридж (на фото).

Алгоритм эффективный, но не оптимальный.
Читать дальше →

Шьём HDMI-USB Video capture

Reading time1 min
Views9.2K

Где-то в нете читал, что HDMI-USB Video capture 2.0(кит) на ms2109 можно прошить eeprom от HDMI-USB Video capture 3.0(кит) и качество улучшится. Но я так и не нашел слитых прошивок. Это скорее не обзор, а отчет о проделанном эксперименте. Надеюсь он кому-то поможет. Были куплены несколько карт для теста.

Читать далее

Инструменты выполнения фоновых задач в Go

Reading time11 min
Views20K

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

Go →

Не Raspberry единым: мощные и не очень одноплатники конца весны 2022 года

Reading time4 min
Views39K

Мы часто пишем о «малинках», поскольку являемся поклонниками этой линейки устройств. Но кроме Raspberry есть и другие одноплатники, на которые стоит обратить внимание. Среди них есть как не очень производительные системы, так и устройства, которые вполне способны на решение серьезных задач. О тех и о других сегодня поговорим — все самое интересное под катом.
Читать дальше →

Готовимся к собеседованию по PHP: Что такое «DI», «Container», «Auto-wiring» за семь простых шагов

Reading time10 min
Views50K

Статья написана для начинающих разработчиков на языке PHP, чтобы помочь им усвоить понятия, нужные для понимания того, как устроены и работают современные фреймворки на PHP: Dependency Injection, Container, Auto-wiring.

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

Статья продолжает цикл статей под условным названием "Готовимся к собеседованию".

Читать далее

Используем SQLite в KPHP и PHP через FFI

Reading time19 min
Views4.3K


Сегодня я расскажу о новой библиотеке, которая позволяет использовать SQLite сразу из PHP и KPHP.


Создавать FFI пакеты — не просто. Под катом будут ответы на следующие вопросы:


  • Как упростить установку и сделать библиотеку кроссплатформенной?
  • Как не допустить утечек ресурсов?
  • Как сделать библиотеку совместимой с KPHP и PHP?
  • Какова производительность FFI решений?

Мы не только попробуем новую библиотеку в действии, но и выработаем ряд практик, которые при широком распространении могут улучшить ситуацию с FFI пакетами в сообществе.

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

Наши сервисы для бесплатного распознавания речи стали лучше и удобнее

Reading time3 min
Views12K

image


Сейчас для всех желающих доступны два наших сервиса для распознавания речи:


  • Бот в телеграме для коротких и не очень длинных аудио (мы не стали обходить ограничения телеграма, основная задача бота — распознавать голосовые сообщения);
  • Сервис audio-v-text.silero.ai для более длинных аудио, в котором можно скачать отчет в виде эксельки.

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


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

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

Беглый взгляд на Go Workspaces в Go 1.18

Reading time3 min
Views23K

Скоро выходит версия Go 1.18, и в массовом сознании она, скорее всего, будет ассоциироваться с Generic-ами. Но помимо них туда попадает еще несколько вкусных фичей. Например, Go Workspaces.

Читать далее

Пишем «Hello, world!» для Zepp OS и часов Amazfit GTS 3

Reading time4 min
Views35K


Совсем недавно Amazfit (партнёр Xiaomi) представила новое поколение умных часов, в линейку которого вошли модели GTR 3 Pro, GTR 3 и GTS 3. Эти часы официально продаются и теперь можно без проблем купить. Я бы обошёл новинку стороной, ведь есть модели и подешевле с практически теми же возможностями, например Bip S. И всё же главной изюминкой новых часов можно назвать новую операционную систему Zepp OS.
Для меня самой интересной особенностью новой ОС стала возможность запускать на часах приложения на JavaScript, чем мы сегодня и займёмся и напишем нашу самую первую программу.
Читать дальше →

Разработка hexapod с нуля (часть 12) — новое ядро передвижения

Reading time11 min
Views9.6K

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

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

В этой статье расскажу, насколько простая может быть математика ядра передвижения гексапода и какие красивые движения можно выполнять с помощью неё. Разработка продолжается, и я переписал около 80% математики. Это позволило выкинуть явное указание координат точек назначения во время движения — траектории теперь строятся в реальном времени. Все технические подробности в статье. Как всегда, вас ждёт фото и видео.
Читать дальше →

Максимально просто о распознавании речи при помощи NeMo

Reading time10 min
Views20K

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

Читать далее

Ирина — опенсорс русский голосовой помощник. Offline-ready

Reading time9 min
Views63K

- Ирина, таймер...
- Ставлю таймер на пять минут.

Вполне себе обыденная история из моего быта. Я таки сделал собственного автономного голосового помощника.

TL;DR> Ирина вполне неплохо работает дома 24x7.

Потребуется установить Python 3.5+ и зависимости через pip (немного знаний Python).

Скиллы "из коробки": таймер, погода, контроль медиа (громче/тише/дальше), контроль плеера MPC-HC, запуск медиа из папки, расписание ближайших электричек, "подбрось кубик/монетку".

Плагинами добавляются: другие скиллы, Text-to-Speech и Speech-to-Text движки.

Интересно? Поехали >

Новые и не очень одноплатники для работы и дома: подборка устройств разного типа

Reading time4 min
Views35K

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

В новой подборке — несколько новых и не очень одноплатных компьютеров, на которые стоит обратить внимание.
Читать дальше →

График платежей с напоминалкой в Telegram с помощью Google Sheets & JavaScript

Reading time4 min
Views16K

Меня заинтересовал челлендж: в течение 26 недель откладывать N+100 руб, где N - сумма, вложенная на прошлой неделе. Я решил откладывать деньги по средам, составил такую табличку в Google Sheets

Читать далее

Агрегация данных во времени с Kafka Streams

Reading time10 min
Views7.9K

В FunBox мы делаем продукты для мобильных операторов: различные порталы, геосервисы, платежи, мобильную рекламу и многое другое.  Один из наших проектов построен на микросервисной архитектуре. Основная функциональность связана с обработкой потоков событий, поэтому мы выбрали событийно-ориентированную архитектуру. Для организации централизованного, масштабируемого и быстрого механизма обмена сообщениями используем Apache Kafka. Это популярная платформа для решения подобных задач, плюс у неё есть интерфейс для организации потоковой обработки событий.

Читать далее

Как получил оффер от Microsoft

Reading time6 min
Views54K

О чем эта статья

Это продолжение моих похождений по ФААНГ. Предыдущая статья была о моем опыте собеседования в Амазоне.

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

К слову, все собеседования тоже сейчас проходят онлайн, и никаких онсайт интервью нет.

Читать далее

Information

Rating
Does not participate
Location
Воронеж, Воронежская обл., Россия
Date of birth
Registered
Activity