negamaxi

negamaxi

На Пикабу
2395 рейтинг 39 подписчиков 3 подписки 15 постов 1 в горячем
Награды:
5 лет на Пикабу
2222

Децентрализованный музыкальный проигрыватель

Всем привет. Хочу рассказать о проекте, над которым работаю в свободное время. Назвал я его «Патефон» и это полностью децентрализованный, распределённый, безсерверный, p2p музыкальный проигрыватель. Вот так выглядит актуальная версия программы:

Децентрализованный музыкальный проигрыватель

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


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


P2P-системы известны своей устойчивостью к цензуре, блокировкам и региональным ограничениям. «Патефон» не исключение, поэтому будет работать хоть за Великим Китайским Фаерволом, хоть в КНДР, хоть на Марсе (наверное, не проверял).


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


Всё описанное выше доступно в актуальной версии приложения. Дальше я расскажу о запланированных нововведениях.


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


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


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


Кроме того, есть планы на «безголовую» версию приложения, которую можно будет запустить на домашнем медиасервере и подключаться к ней с остальных устройств через браузер. Если вы пользуетесь Plex, то знаете, насколько это удобно.


А теперь о недостатках:


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


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


- «Патефон» не обеспечивает анонимности пользователя. Не составит большого труда посмотреть, что вы раздаёте, и «вычислить вас по IP».


- Приложение всё ещё на ранней стадии развития, так что если словите баг - не удивляйтесь а смело репортите issue на GitHub.


- - - - - - - - - - - - - - -


Вот и всё. Если проект вас заинтересовал, то добро пожаловать на:


Сайт приложения

Твиттер

GitHub


Актуальные версии программы доступны как на сайте, так и на GitHub. Есть сборки для Mac, Linux и Windows.


- - - - - - - - - - - - - - -


Технические детали


«Патефон» использует современный протокол распределённого обмена данными IPFS («МежПланетарная Файловая Система»). Если вы смотрели «Кремниевую долину», то что-то очень похожее разрабатывают главные герои последние два сезона.


Само приложение написано на Electron.js — популярном кроссплатформенном фреймворке для создания десктопных приложений при помощи стандартных веб-технологий.


Спасибо за внимание! Отдельная благодарность @DEgITx за помощь в разработке и подготовке статьи к публикации.

Показать полностью 1
3

Вопрос экспертам

Сижу на трамвайной остановке, никого не трогаю, и тут в паре метров от меня на стыке двух рельс вспышка как от сварочного аппарата с характерным звуком. Пять секунд потрещала и пропала. Ближайший трамвай был в 300 метрах. От чего это может быть?

Реалити шоу "Как стать айтишником", отчёт за 2 недели

Продолжаю эпопею http://pikabu.ru/story/iz_nedozhurnalistov_v_nedoprogrammist.... Если вкратце, я решил забить на диплом журналиста, попробовать в программирование и сделать из этого видео-блог.


Что я скажу. Не так всё просто. Понтов было на "сайт за пол недели", а закончилось вот только на днях. Сперва я решил сделать выпуск о том, как оформить шустрое рабочее окружение из голой Ubunt'ы. Честно скажу, первая версия этого выпуска меня настолько выбесила, что я снёс к чертям всё, что сделал за два с лишним часа (в том числе и установку Убунты) и на следующий день устанавливал, настраивал и записывал всё с самого начала. Как думаете, во второй раз получилось лучше? Нет, и это меня выбесило. Я впал в апатию, но внезапно это сыграло мне на руку: положив на свой бесконечный перфекционизм немного похуизма я выложил выпуск в таком виде и с тех пор больше не парился.


Кстати, вот такой рабочий стол у меня по итогу:

Потом пару дней пришлось потратить на то, чтобы по-нормальному создать YouTube канал, о чём тоже записал отдельный выпуск. Только к третьему выпуску я наконец подобрался к сути дела - начал писать свой первый (с оговорками) сайт - draftup.org.


Несмотря на то, что базовые вещи мне удалось осилить уже в первом выпуске, постоянно что-то мешало довести дело до конца, и деплой сайта на сервер постоянно откладывался. В итоге создание сайта растянулось на 5 выпусков (~8 часов), плюс отдельные выпуски под настройку Git'а и создание логотипа в GIMP / Inkscape (угнал у MaterialUp / last.fm).

Самое смешное (кому как), что многие из возникших по ходу дела проблем были на самом деле не проблемами, а моими загонами. Половину 5 выпуска я подбирал цвет двум строчкам - как это по-другому назвать? Лишний раз убедился, что терпеть не могу всё, что связано с графическим дизайном. Никаких чётких целей и задач, надо что-то там "видеть".


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

Из более серьёзных проблем - отдельные css-правила, особенно flexbox. Его поведение разбито на большое количество отдельных правил, что постоянно сказывается на производительности мыслительных процессов. Особенно когда пишешь в час ночи. В одном из выпусков я минут пять искал причину одного косяка, пока не допёр, что забыл перезагрузить страницу.


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


Ну и собственно, что в итоге по цифрам:

- 81 строчка HTML

- 326 строчек CSS (включая промежутки)

- 8 строчек JS (серверная часть)


И выглядит всё это дело вот так:

Примитивная хтмл-страничка со стилями, без клиентского javascript'а. Серьёзные сайты так не делаются, но, как сказали в одном фильме, сперва изучи классику, а лишь потом берись за современное искусство. Само собой, я не перестану над ним издеваться, у меня ещё много вопросов осталось, которые неплохо было бы разобрать (оптимизация загрузки, например). Но графу "Наши проекты" тоже надо как-то заполнять. Пока там одни единственный проект, который мы пилим с друзьями, и этого маловато. По этой причине я решил не ходить вокруг да около, а начать пилить со следующей недели социальную сеть. Ба.


В этот раз всё будет по-взрослому: Webpack для разработки, React для клиента, возьмусь за серьёзные базы данных и вообще пущу бороду и куплю велосипед. Такие дела, ждите новостей.

Показать полностью 4

ItGum 1 : Настройка рабочего окружения Linux для работы на старом ноуте

В продолжение http://pikabu.ru/story/iz_nedozhurnalistov_v_nedoprogrammist...


Перед тем как с головой погрузиться в мир фротненд-разработки решил настроить для себя шустрый и легкий рабочий стол, бо работать придётся на старом лаптопе. За основу взял Федору Убунту Линукс, причём мини-издание, чтобы в комплекте шло лишь минимально-необходимое, а всё остальное я доставлял ручками.


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

ItGum 1 : Настройка рабочего окружения Linux для работы на старом ноуте

Ссылка на выпуск: https://www.youtube.com/watch?v=HXwizAEGvUk


БЗВ. пришлось пересоздать канал на ютубе.

Показать полностью 1
1

Devin Townsend Project - Transcendence (2016)

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


На днях зашёл привести себя в порядок, как обычно. Меня направили к какому-то новичку. У парня была роскошная густая борода, и я понял, что он разбирается в музыке. Пять минут спустя мы уже сравнивали звучание разных моделей кассетных плееров. Начиналось всё хорошо, но быстро выяснилось, что он слишком хорошо разбирается в музыке. Меня это выбесило и я решил, что если меня ещё раз к нему направят, я подам жалобу.  


Я это всё к чему... Да ни к чему. Так, накипело. А в центре моего внимания сегодня Человек-Вселенная - лысый черепок всея Канады Девин Таунсенд, и его новый студийник.

Единственный на этой планете музыкант, которого я без запинки готов обозвать гением. Слушаю его лет пять, и всё никак не могу расслушать. Его музыкальный мир как rar-архив, в котором другой rar-архив, а там ещё шесть. Один запаролен, в другом смехуёчки, в третьем расчленёнка, четвёртый - битый, в пятом небо, в шестом бесконечная пустота с чьими-то голосами. Степень сжатия разная.


Transcendence - лучшая его работа в рамках DTP, и однозначно самая вылизанная по звучанию (в своих новых наушниках слушал бы её на репите днями, но нельзя). Тут нет попыток заигрывать с откровенной попсой, как на позапрошлогоднем Sky Blue. Альбом больше похож на попытку сделать сиквел Ghost, только с гитарами и вокалом. Это целостная, гипнотическая работа, прогрессивный метал во всей своей красе - мелодии не насилуются, быстро сменяют одна другую. Лично для себя я нашёл лакомый кусочек в 8 из 10 треков. Это пиздец как много, это пиздец какой праздник на моей улице.


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


На видосы я всё ещё не насобирал, так что ловите ссыль: https://www.youtube.com/watch?v=44TzcehU0V8

Показать полностью 2
Отличная работа, все прочитано!