1 post tagged

Profile

Профиль: Splice

Splice – облачная платформа для создания музыки и совместной работы, так же предоставляет автоматическое резервное копирование с контролем версий, интегрируется с основными Digital Audio Workstations (DAW), такими как FL Studio, Ableton, ProTools, Garageband.

Дата основания: 2013 г.
Основатели: Стив Мартокси, Мэтт Аимонетти (занимает место CTO)

Стив Мартокси (GroupMe, Blade, Sympact)

Github: https://github.com/smart
Linkedin: https://www.linkedin.com/in/stevemartocci
Twitter: https://twitter.com/smart
AngelList: https://angel.co/steve-martocci
Medium: https://medium.com/@smart
Интервью для TechCrunch: https://www.youtube.com/watch?v=1I7qiEgPnY8

Мэтт Аимонетти (LivingSocial, Sony PlayStation)

Блог: https://matt.aimonetti.net
Github: https://github.com/mattetti
Linkedin: https://www.linkedin.com/in/mattaimonetti
Twitter: https://twitter.com/mattetti
AngelList: https://angel.co/matt-aimonetti
Medium: https://medium.com/@mattetti

Технологии

Уже кажется странным, но у Splice нет своей организации на Github, где я начал искать в первую очередь, они выбрали Bitbucket. На странице https://bitbucket.org/splice/ то немногое, что доступно публично и давно не обновлялось, среди которых, например, форк facebookgo/grace.

Доступен и список членов команды Splice, при желании их можно найти на Github.

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

  • AWS, Azure, EC2
  • Bitbucket, Mercurial (VCS)
  • Golang (APIs, core logic, audio, network)
  • C, C++
  • Obj-C, C# (client)
  • Ruby (web rendering)
  • MySQL, Memcached, Redis, ElasticSearch
  • Docker
  • Jenkins (CI)
  • Angular, TypeScript (UI/UX)
  • Electron (client)
  • Chef, Ansible

Клиент

По-подробнее остановлюсь на MacOS-клиенте Splice:

Клиент позволяет управлять локальными проектами, скачивать проекты для работы, управлять плагинами и семплами купленными в сервисе. Скачиваемый установщик с сайта – dmg-пакет, на самом деле является загрузчиком толстого клиента, который собран на Angular, Electron, Obj-C и, внезапно, Golang. Размер всего приложения около 150 мб, большая часть, конечно, – Electron. Приложение на Go работает в фоне от основного процесса и является gRPC-сервером со всей логикой, к которому обращается JS-клиент.

Получение JS-кода клиента:

cd /Applications/Splice.app/Contents/Resources/
npm install asar
./node_modules/.bin/asar e app.asar ./app

Получение списка строк из хэлпера, написанного на Go:

cd /Applications/Splice.app/Contents/Resources/Splice\ Helper.app/Contents/MacOS/
nm Splice\ Helper | grep github

Первое даст понять более детально, что использовалось для построения и автоматизации интерфейса, второе – информацию об использованных в проекте пакетах, доступных публично, среди них есть разработки Мэтта: github.com/go-audio/aiff, github.com/go-audio/wav, github.com/mattetti/audio. Наверное, это ответ на вопрос: Should a CTO keep on coding? :)

2017   Music   Profile