negamaxi

negamaxi

На Пикабу
поставил 64 плюса и 0 минусов
отредактировал 0 постов
проголосовал за 0 редактирований
Награды:
5 лет на Пикабу
2394 рейтинг 41 подписчик 3 подписки 15 постов 1 в горячем

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

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

Децентрализованный музыкальный проигрыватель P2P, Децентрализация, Музыка, Плеер, Халява, Open Source, Приложение, Длиннопост, Скриншот

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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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

Твиттер

GitHub


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


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


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


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


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


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

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

А зачем вы заходите на pornhub?

А зачем вы заходите на pornhub? Pornhub, Длиннопост, Без перевода, Скриншот, Комментарии
Показать полностью 1

Ваш ребёнок атеист?

Ваш ребёнок атеист?

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

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

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

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


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


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

Реалити шоу "Как стать айтишником", отчёт за 2 недели Программирование, Веб-дизайн, Длиннопост

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


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

Реалити шоу "Как стать айтишником", отчёт за 2 недели Программирование, Веб-дизайн, Длиннопост

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


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

Реалити шоу "Как стать айтишником", отчёт за 2 недели Программирование, Веб-дизайн, Длиннопост

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


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


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

- 81 строчка HTML

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

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


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

Реалити шоу "Как стать айтишником", отчёт за 2 недели Программирование, Веб-дизайн, Длиннопост

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


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

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

А это идея

Диалог с другом:


- Тебе зарплату в конвертах дают?

- Нет, на карточку.

- А банкомат в конвертах выдаёт?

Бизнес это...

...когда у тебя есть деньги платить налоги.

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

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


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


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

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

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


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

Отличная работа, все прочитано!