Наша команда недавно выпустила небольшой продукт — открытую платформу для создания мессенджеров — Actor Messaging Platform.
Всего за несколько дней после запуска мы оказались на главной Hacker News (кто из разработчиков не читает — зря), на Reddit и собрали больше 600 звезд на GitHub от разработчиков со всего мира. У нас появилось небольшое сообщество, участники которого помогают друг друге в работе и улучшении продукта. Один из участников уже реализовал несколько важных вещей, необходимые Актору. Например, достаточно высококачественные звонки.
Если вы хотите поднять у себя платформу, то сделать это можно очень просто с помощью двух команд в Docker. Также вы можете сразу заходить в группу Actor Open Source и спрашивать совета по работе с платформой (общение идёт на английском).
Также мы проводили эксперимент и создали публичные группы для обсуждения различных вопросов вокруг технологических проектов. Даже я, человек который уже больше 6 лет программирует под Android, подчерпнул для себя что-то новое. Наверняка, сможете и вы.
Комментарии (66)
miolini
21.07.2015 20:13У вас есть аудио/видео звонки?
brainsmith
21.07.2015 20:18+3Мы сделали интеграцию с voximplant (пока без документации), а один разработчик из турции реализовал аудио, интегрировав платформу с SIP. В течение нескольких недель эта функциональность будет в основном репозитории.
aylarov
22.07.2015 21:52Коллеги, если нужна будет помощь с VoxImplant — пишите, проект у вас очень интересный, будем рады помочь.
P.S. Через VoxImplant с SIP тоже можно интегрировать при желании — все для этого есть
mr47
21.07.2015 20:17+1Я продолжу задавать вопросы если это вас не раздражает.
Почему выбрали sass о переходе на bem и postcss думали?
Не страшно использовать context с react 0.13.3 ведь context обещали только после 0.14?
Почему не использовали flexbox ведь у вас автопрефиксер на последние три версии браузеров?
Зачем использовали свой css grid, а не взяли существующий?
PS: Простите, простите, мне правда очень интересно :)olegshilov
21.07.2015 20:37+1Почему выбрали sass о переходе на bem и postcss думали?
С sass, так сложилось исторически. Про postcss сейчас думаем, возомжно позднее перейдем на него.
Зачем использовали свой css grid, а не взяли существующий?
Своего грида нет, используется flexboxgrid
alff31
21.07.2015 23:41+6Ну раз описываете продукт, могли бы уж в статью короткое описание добавить с возможностями и требованиями. А то описание звезд и прочего, а про продукт ничего нет.
А как связан данный продукт с Telegram? Вроде протокол называется MTProto V2 и при этом «MTProto V2 doesn't contain any kind of encryption and securing data is implemented by encapsulating of MTProto V2 in TLS.»
Довольно странно.traneblow Автор
22.07.2015 14:31Только историей. Я работал в Телеграме (этот акк не мой — мой забанен) и мы хотели сделать более developer-friendly телеграм что бы мы могли делать с ним какие-нибудь интересные штуки. MTProto V2 потому что это и етсь MTProto, только без шифрования. MTProto главным образом интересен своей структурой, а не шифрованием. Слой шифрования можно и заменять.
Мы доработаем доки в будущем. Хотя у нас никто кроме как в рунете не спрашивали это.alff31
10.08.2015 10:01Сомнительное решение. Взяли чужой протокол, урезали функционал и назвали это второй версией. А если команда телеграма доработает протокол и выпустит MTProto V2, то что будете делать? Будет два протокола с одинаковым названием?
DigitalSmile
22.07.2015 09:21+1Очень бы хотелось больше технических подробностей, Ваша документация достаточно скудна, особено по серверной части.
traneblow Автор
22.07.2015 14:32Просто мало кто про нее спрашивал что. Мы и не писали.
DigitalSmile
22.07.2015 14:39+1Просто Ваш заголовок и статья намекают, что у Вас готовый к использованию продукт — качай (покупай), ставь и работай. А получается, что это не так, взять и развернуть просто так не получится.
Документация очень важна, хотя бы базовая, и особенно по серверной части (системные требования и требования к окружению, javadoc и пр.).
malroc
22.07.2015 10:14А насколько это именно платформа? Пока я вижу скорее вполне конкретный готовый продукт, который, да, можно развернуть на своём сервере и т.д.
А насколько реально создать на этой основе свой проект БЕЗ переписывания собственно кода актора? Ну или скажем встроить в существующую ERP или что-то подобное, желательно не iframe-ом.traneblow Автор
22.07.2015 14:32Вы можете взять веб-версию и адаптировать ее. Конечно нужна работа для этого (которую, кстати, можем сделать мы), кудаже без этого?
brainsmith
22.07.2015 14:39Как я уже писал ниже, имеется headless JS библиотека, реализующая апи всего месседжинга.
В процессе интеграции можно как раз получившееся выделить в апи виджетов, чтобы иметь возможность легко интегрироваться с другими продуктами, не разрабатывая UI.malroc
22.07.2015 15:04Ну headless js библиотека — это понятно, она в принципе и не так нужна если есть нормальный API.
Просто получается, что если нужна какая-то минимальная кастомная функциональность (не на уровне весь UI переписать, а буквально пару элементов добавить), есть всего два варианта:
1) переписывать существующий код и получить кучу проблем с обновлением и т.д.
2) вообще выкинуть существующий front-end код и писать его с нуля под себя
Как-то оба варианта выглядят немного странно.
Вот виджеты или компоненты или что-то такое — было бы хорошо. Или наоборот, гибкая система плагинов. То есть чтобы или 1) код актора можно было относительно безболезненно встроить в существующее окружение, или 2) наоборот, кастомную функциональность можно было дописать поверх существующего кода. Второй вариант выглядит лучше, т.к. предоставляет больше возможностей, но видимо сложнее в реализации.traneblow Автор
22.07.2015 16:40-3Если вы боитесь совместимости, то вы явно не слишком увлеченный разработчик. Месседжинг — большая штука и над ней надо думать и думать много. В бесконечности может быть и появится что-то, но пока нет. Второй вариант — это и есть сделать форк и разрабатывать, а потом регулярно делать rebase.
Почему-то целому ряду проектов это оказалось полезным, а Вам кажется что нет. Сомневаюсь, что с таким подходом вы можете платить деньги.malroc
22.07.2015 16:49+2Слушайте, ну это несерьёзный ответ. Речь вообще не о том, полезно это или нет. Речь о том, что вы себя позиционируете как ПЛАТФОРМУ.
Из ваших ответов я понимаю, что речь идёт не о платформе, а просто об опенсурсном мессенджере. Что тоже неплохо и полезно и т.д., но просто совершенно другая по сути вещь. Не было бы слова «платформа» в заголовке темы, я бы и вопросы эти задавать не стал.traneblow Автор
22.07.2015 17:28Платформа позволяющая реализовывать новые проекты на базе наших технологий. Грубо говоря вы берете Актор и на его базе строите любую возможную коммуникационную платформу. Для начала можно на отдельных вкладках держать месседжинг и ERP. А приложения точно должны быть отдельными.
malroc
22.07.2015 17:33Нет, всё что я хотел выяснить я уже выяснил, в принципе можете дальше не объяснять, концепция понятна.
Можем разве что поспорить по формулировкам, хотя думаю большой пользы в этом нет. Но: если я могу создать новый продукт на базе вашего только путём форка и изменения его кода — то это не платформа, а классический опенсурсный продукт.
malroc
22.07.2015 17:38+1Ну то есть: я могу взять любой опенсурсный проект, форкнуть его и на его базе создать новый. В этом вся суть опенсурса. Но это не делает из любого опенсурсного проекта платформу для создания <нужное подставить>.
Но ещё раз, это чисто терминологическая претензия, никаких других вопросов у меня не осталось.traneblow Автор
22.07.2015 17:45Вопрос в подготовленности системы к изменениям, Актор готов для любых доработок и в ближайшем будущем появится определенная модульность.
malroc
22.07.2015 17:48Ну то есть модульность планируется всё-таки? Боюсь даже спрашивать когда и в каком объёме, чтобы не перевести снова разговор на вопрос о том насколько я увлечённый разработчик и сколько могу платить.
brainsmith
22.07.2015 18:03Подозреваю, что traneblow спутал контекст с соседней дискуссией. Перейду к конструктиву.
Да, модульность планируется.
Сервер уже разбит на модули, готовится апи для удобной разработки и подключения своих модулей без вмешательства в основную кодовую базу.
С клиентами, особенно мобильными, все сложней, но, конечно, мы активно работаем и в этом направлении. Нам самим не супер удобно поддерживать разные кодовые базы под разных клиентов.malroc
22.07.2015 18:11Ну вот гляньте мой комментарий к ветке ниже, не знаю насколько будет полезно в вашем конкретном случае, но в теории проблем с такой реализацией не вижу.
malroc
22.07.2015 17:09И да, я не понял в какой момент и на каком основании разговор перешёл на деньги. Я что-то упустил в этом тексте?
Actor OpenSource edition and Cloud solutions will be always free. We believe that communications can't have any limits.
Или я уже что-то должен вам заплатить?
В общем довольно странно вы реагируете на вопросы, которые вытекают из ваших же размытых формулировок.
DigitalSmile
22.07.2015 17:14Кстати да, про деньги не очень уловил. На гитхабе указана лицензия распространения MIT. За что и куда еще надо платить?
PaulMaly
23.07.2015 08:35Присоединяясь к вопросу про «платить деньги». Вообще, это конечно нормально и все такое, но все же лучше в таком случае озвучивать ценик и условия. А то сперва говорите, мол «пользуйтесь кто хочет, велком», а потом вместо ответов на простые вопросы начинаете сегментированием заниматься, типа «так, этот скорее всего платить не будет, можно не отвечать». Не красиво.
traneblow Автор
23.07.2015 16:17Актор бесплатный и всегда будет, но нам нужно дорабатывать функционал что бы всем было хорошо. Когда человек с пеной у рта с первых слов начинает обвинять проект в том что он бесполезный, то такой человек просто напросто не сможет а) доработать опенсурс проект самостоятельно б) он никогда не заплатит что бы команда спецов для него что-то сделала. В данных запросах сквозит то, что Актор ему что-то должен. Но Актор никому не должен. Тем более, мы видим большое число тех, кто реально ставит себе решение и пользуется им и доволен и дорабатывает его. В данном случае мы должны кому-то что-то сделать. В нормальном мире — no money, no honey. Это, конечно, не привычно русскому человеку осознавать. Без денег — можете проголосовать о фиче и когда-нибудь мы ее сделаем, да и если еще увидим большое число запросов. Данный человек не готов инвестировать сравнительно немного сил в то что бы встроить такой жирный и сложный функционал как мессенджер. Точнее estimate его вложений — это не больше недели чистого времени одного программиста. Это довольно типичное желание в россии — не хочу ни за что платить, не хочу ничего делать — принесите мне сразу готовое.
Интересен тот факт, что это единственое во всем интернете обсуждение правомерности называть Актор платформы, тк никто (кто действительно чего-то добился во всем мире) не считают это слово неправомерным. К слову, Телеграм — это тоже платформа, на базе которой можно много чего делать.DigitalSmile
23.07.2015 16:27Один я не увидел обвинений в бесполезности?
Ребят, без обид кончено, опенсорс это очень круто и спасибо вам, но у вашей компании слегка завышено самомнение.
malroc
23.07.2015 17:32Ну я примерно понимаю за что вам предыдущий аккаунт забанили.
Такой поток неадеквата (на уровне неумения читать комментарии так как они написаны, а не как они вам привиделись) в ответ на вполне нейтральные (а вообще-то даже благожелательные изначально) по тону вопросы — это показатель того, что вам явно противопоказано общаться с аудиторией.
В общем я в этом сеансе публичной психотерапевтии дальше участвовать не готов, так что adieu, далее оставляю тему в ваше полное распоряжение.
PaulMaly
23.07.2015 17:57На самом деле также не увидел обвинений в бесполезности. Сорри. Не уверен, что вообще есть Open-Source код, который делает что-то понятное всем, который можно было бы назвать бесполезным и к вам это точно не относиться.
kohus
22.07.2015 10:30+1Идея прекрасная, но английский текс на сайте ужасен. Нужно вычитывать и исправлять
samodum
22.07.2015 10:32+2Для чего это нужно и как это можно использовать?
vladon
22.07.2015 10:44Чтобы сделать, например, свой корпоративный телеграм
с блекджеком ина своём сервере.
Alexeyco
22.07.2015 10:47Для любителей поразмыслить профессор Инъязов, нынешний, как мне известно, завкафедрой антиконспирологической конспирологии НИИ Истинной Истины советует мне сообщить вам, что возможно спрашивать «зачем» в этом случае не совсем корректно. Возможно, стоит спросить не «зачем это стало публичным», а «почему это стало публичным».
kekekeks
22.07.2015 11:16Подозреваю, что сделать сделали, а вот продать никому не смогли. Распространённая ситуация у стартапов разного рода.
traneblow Автор
22.07.2015 14:40Не совсем. Мы действительно не смогли продать. Точнее почти смогли, но мы просто не выглядим серьезно и нужно больше времени для компании.
Open Source оказалось лучшим решением которое мы принимали и делалось оно не как «способ выжить», а как опробация идеи. Через это любая компания проходит и должна проходить. Вынудило нас действительно то, что кончаются деньги, но скорее просто потому что мы были глупы и ничего не делали, а тут начали делать. С инвесторами мы вообще с самого начала обсуждали что будем скорее всего делать Open Source.
samodum
22.07.2015 18:32прежде чем спрашивать «почему это стало публичным» надо сначала понять что это такое и для чего нужно.
darii
22.07.2015 11:42+1Я не очень понял сущность продукта и хотел бы запросить у автора краткое описание, что именно понимается под open-source messaging platform.
Я прочел эту статью, просмотрел промо-лэндинг, воодушевился и сразу же захотел поднять у себя эту самую открытую платформу для создания мессенджеров. Вот задача: у меня на сегодняшний день имеется некоторая сложная аппаратно-программная инфраструктура, её мониторит система мониторинга, подключенная к собственному жаббер-серверу. Если чего-то происходит, мониторинг пишет мне в жаббер, оборачивая сообщения в OTR.
Вроде бы, все работает, но мне бы хотелось вместо протокола jabber использовать более современный протокол, хотя бы тот же mproto — 2015 год на дворе. Ну и OTR для меня так уж не принципиален, ибо шифруюсь не от спецслужб, а просто от чужих любопытных глаз. Так вот, вопрос: может ли Actor Platform полноценно заменить в данной конфигурации старый добрый jabber-сервер?darii
22.07.2015 12:06Я бы даже уточнил свой последний вопрос – какие примерно шаги следовало бы выполнить, чтобы Actor Platform полностью заменила в данной конфигурации старый добрый jabber-сервер?
traneblow Автор
22.07.2015 14:40Все просто, вы можете создать группу и там есть токены интеграции (лучше всего сделаны только в Android/iOS приложениях) и туда можно посылать простым POST-запросом любое сообщение в этот чат.
darii
22.07.2015 19:53Стоп-стоп-стоп, а можно не так стремительно? Где создать группу, что такое токены интеграции, и что этому предшествует?
Я пока что споткнулся на шаге
You can install server with
[ ] Docker
[x] Directly to local machine
xakpc
22.07.2015 22:16+1Вы можете воспользоваться Leecero — там такой сценарий строиться за пару минут.
Более того, можно нарисовать что-то посложнее, чтобы вы спрашивали бота «что с со стойкой номер 134543» и он вам отвечал
Но он денег стоит конечно и через себя сообщения прогоняет.
malroc
22.07.2015 11:48+4Вот да. Люди, опишите пожалуйста подробно с самого начала: что это вообще, зачем, что умеет и как с ним работать.
На всякий случай: нет, сайт и документация на эти вопросы не отвечают.malroc
22.07.2015 12:17+1Лучше всего сделайте несколько готовых примеров использования.
Реквестирую вот такой: нужен мессенджер, интегрированный в некоторый абстрактный корпоративный портал.
Интегрирован — это в плане:
1. Использует уже существующие аккаунты
2. Содержит элементы UI этого портала, ну в простейшем случае — главное меню хотя бы
3. Скажем отображает какую-то кастомную информацию у контактов, вроде: должность, отдел, непосредственный руководитель
4. Ну и получает какие-то хуки, хотя вот этот пункт я в документации как раз нашёл
Если что-то из этого сейчас невозможно, планируется ли реализовывать?brainsmith
22.07.2015 14:32Спасибо за конструктивный интерес к проекту!
1. Имеется поддержка oauth, на данный момент – только для gmail. Доработка поддержки других провайдеров – вопрос пары часов.
2. Имеется JS-библиотека с апи для всех функций месседжинга. Авторизация, прием-отправка сообщений, статусы сообщений, статусы пользователей, операции с группами, с контактами и т.д. Планируется создание апи виджетов.
3. Много думаем над этим, но пока не очень понятно, как это сделать универсально. Кому-то нужно общение внутри компании – там должность, отдел, непосредственный руководитель. Кому-то – b2c сервис, с информацией вроде «Клиент», «Админ», «Модератор». Очень вероятно, что скоро что-то такое будет сделано под одного из наших клиентов. Если получится сделать это универсально, смержим с открытой платформой.
4. Входящие хуки есть, да. Исходящие в планах на ближайшее будущее.malroc
22.07.2015 18:073. Много думаем над этим, но пока не очень понятно, как это сделать универсально.
В теории довольно просто, не знаю насколько это так в применении к вашему конкретному случаю (могут быть какие-то ограничения со стороны реакта или вашей конкретной имплементации и т.д.): перед отрисовкой любого из основных элементов (контакт, сообщение и т.д.) кидаете эвент на который может подписаться внешний обработчик. Эвент синхронный, содержит логическое представление объекта (aka модель) и его html или dom-структуру. Во внешнем обработчике я могу отловить эвент и поменять html/dom по своему усмотрению. После этого происходит собственно отрисовка уже изменённого (ну или неизменённого если никто не менял) объекта.brainsmith
22.07.2015 18:17Я писал проблеме универсальности не столько на уровне интерфейса, сколько на уровне API, его сущностей, методов управления ими.
Для CRM это одно, для оргструктуры организации – это другое, для массового клиентского сервиса – третье.
И управлять этим где-то нужно через интеграции, где-то явными действиями в клиентах.
В общем, пока непонятно, как это выделить в универсальную абстракцию так, чтобы ее было просто использовать и расширять.malroc
22.07.2015 18:29Ну я это предложил именно как относительно простой в реализации способ расширять почти произвольным образом UI, возможности чего я так понимаю сейчас нет.
Ну то есть это концепция системы плагинов именно для фронтенд-части.
Oval
22.07.2015 15:07+1сделайте мессенджер в котором будут интегрирован голос и текст распознанный по голосу (хотя бы и средствами iOS).
aylarov
22.07.2015 21:58А сколько человек задействовано в работе над проектом, если не секрет?
brainsmith
22.07.2015 23:10+1Не секрет. Пятеро.
aylarov
23.07.2015 08:49А территориально где все находятся?
mr47
Это называется открытая платформа github.com/actorapp/actor-js/blob/master/actor.nocache.js?
И можно много много вопросов к вашему фронтенду, github.com/actorapp/actor-js-old. Чем был аргументирован выбор coffescript?
Почему не использовали AMD, CommonJS, es2015 (requirejs, browserify, webpack/requirejs)?
И
гдекогда же можно посмотреть исходники веб версии?PS: выглядит очень интересно и даже очень очень.
brainsmith
actor-js и actor-js-old – устаревшие репозитории. Все актуальные исходники лежат в github.com/actorapp/actor-platform.
Весь фронтенд написан на ReactJS, Flux собирается с использованием Webpack.
github.com/actorapp/actor-platform/tree/master/actor-apps/app-web
mr47
brainsmith спасибо!
Вот другое дело, есть где подсмотреть бестпрактис что собственно и хотел с самого начала :)malroc
В документации написано Angular, кому верить?
actor.readme.io/docs/apps#section-web
brainsmith
Устаревшая инфа, спасибо, поправили.
olegshilov
del
mr47
Спасибо нашел уже — копаюсь…