Category: it

Category was added automatically. Read all entries about "it".

Железный транскодер Flussonic Coder

Мы в этом году сделали и сейчас начинаем продавать свою собственную железку: аппаратный транскодер.

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

Я не буду пока что рассказывать про все страдания от процесса разработки железа, но хочу немного поделиться про софтверную часть того, что называется appliance (как это будет по-русски?)

В отличие от продажи софта на сервер, который админим не мы, тут всё начиная от ядра готовим мы.

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




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

Во-вторых, всплыла пачка интересных сложностей с линуксом.

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

При этом навыки программиста помогают делать простые и стабильные решения (типа положить файлик в /etc/что-то-там.d вместо sed-редактирования /etc/что-то-там)


В-третьих, очень непривычна невозможность внятного полноценного тестирования иначе кроме как руками.

Очень во многом эта работа перекликается с нашим Flussonic Iris (напоминаю, это прошивка для IP-камер, таким занимается буквально пара команд в стране). Нужно постоянно решать, как пользоваться линуксом: использовать системный код или писать своё.

Collapse )

Ржавая камера получила WebUI

В прошлом году я наконец смог выделить нормальное количество денег на разработку своей прошивки для IP камер. Эта идея у меня была года так с 2013, но не было сил и денег на это.

Теперь у меня целая команда занимается этим проектом и мы активно продвигаемся.

Ситуация такая: на сегодняшний день в хроме/лисе нельзя зайти ни на одну IP камеру из известных мне и посмотреть, чего она видит. Есть некоторые российские проекты типа polyvision или trassir, которые пихают flash, но они опоздали на несколько лет. Флеш уже списан, похоронен и перестал смрадно вонять.

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


Сейчас мы собираем прошивку, которая встает на камеры на hi3516a + imx178, но в планах конечно вся линейка хайсиликона.

Для затравки видео из веб-интерфейса: 


Flussonic Iris 18.04

Наша альтернативная прошивка для IP камер на базе hisilicon вышла в первую запускаемую публичную версию.


Ставить её в продакшн конечно категорически нельзя (рутовый пароль на ssh фиксирован для начала), но запустить посмотреть можно.

Требуется: камера на hi3516, sony imx 178, распаянный uart.

Инструкция по установке по запросу в комментариях.

Rust

У меня появился первый репозиторий с кодом на Rust, который делает пользу.

Что-то мне подсказывает, что это очень полезное начинание, с правильно выбранными ограничениями и парадигмами.

Т.е. он сложный, но он правильно сложный, такой же сложный, как правильно написанная программа на С.

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

Collapse )

Опыт с React, проблемы и т.п.

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

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

Когда админ заходит в админку, из C получается json J (C состоит из бинарей, мапов и чисел, так что здесь должен отрабатывать простой jsx:encode).

Из этого J рендерится вся админка, которая в лучших традициях реакта рисует большой JSON объект через свои вложенные view.

Collapse )

Куда переносить сложность?

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

Ситуация такая: редактор оформлен в виде вложенных компонент Reactjs: Stream -> StreamOutput -> StreamOutputProtocols, есть даже 4-й уровень. Верхний компонент держит кучу данных, вниз спускает данные и коллбек на их изменение. Никаких рефлюксов и прочих венерических заболеваний у нас нет.

Collapse )

webrtc

Реализация webrtc в нашем Flussonic это уж очень длинная, но нужная история.

Напомню: webrtc это комплекс технологий и решений, позволяющих в браузере получить почти SIP клиент, т.е. риалтайм аудио и видео без заморочек флеша.

Зато с заморочками гугла, что не особо облегчает жизнь, потому что пидоры из гугла решили, что h264 это зло и вместо него надо всем, кто неаккуратно нагнется в бане, пихать vp8.

Доставляет ещё то, что ни одна из технологий, требуемых в webrtc по сравнению с простым SIP, в эрланге публично не реализована. STUN нет, DTLS в полном виде нет, SRTP в гарантированно рабочем виде нет.

Collapse )

(no subject)

Немного расскажу про React.js, раз уже можно сравнить его с Ангуляром.

Для начала небольшая вводная для тех, кто не в курсе. Это два яваскриптовых фреймворка, которые пытаются решить задачу упорядочивания кода и бардака на одном из самых ублюдочных сегодняшних языков: яваскрипте. Проблема решается действительно сложная: нужно написать интерактивную прослойку между сетью (данные из html+аякс+вебсокеты) и клиентом, при этом здорово дублируя серверную логику.

Collapse )

(no subject)

Вчера наконец удалил последние следы whmcs. Есть такая страшная говнокодинка на PHP, которую ставят себе разные хостеры (типа того же fastvps). У нас оно по инициативе одного человека обслуживало часть лицензий.
Я для себя вынес из опыта с whmcs следующие вещи:

1) пресловутого рынка предложений среди PHPшников нет. Поиск человека, который бы написал модуль интеграции whmcs к серверу лицензий занял полгода.
2) доверять авторам закрытого PHP кода нельзя. Супппорт они не оказывали, исходников не давали, и вообще не отвечали на письма.
3) нет смысла брать подобное говнище. Нельзя надеяться на то, что кто-то написал что-то, во что ляжет ваш бизнес. Брать какой-то код за основу — возможно. Но брать комплексный биллинг по управлению услугами с закрытыми исходниками?! Ни за что =)

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

Вакансия Ruby on Rails

Наша потребность в разработке на рельсах выросла до необходимости найма на постоянную работу программиста.

Мы делаем видеостриминговый сервер Flussonic (серверное ПО), один из лучших в мире (со слов наших клиентов) и нам нужно развивать нашу сервисную часть.

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


Можно работать у нас в офисе в Зеленограде, можно удаленно. У нас в команде есть люди со всей страны, так что мы привыкли.

Вилка: 70 - 120 тыс рублей. Оформление, отпуск, больничный.

Надо уметь программировать на рельсах, работать с git, postgresql. Очень важно быть в состоянии из бутстрапа собрать приемлемый интерфейс самостоятельно. React мы тоже теперь используем.


Резюме присылайте мне на max@erlyvideo.org с темой rails erlyvideo

http://hh.ru/vacancy/13785072