☕️ Мерлин заваривает τσάι 🐌
1.09K subscribers
3.53K photos
64 videos
94 files
2.42K links
Merlin makes a slice
Merlin iterates it's twice
Happy compiling!
Download Telegram
Вот уже месяц я живу #selfhosted стримингом музыки.

Дело было вечером субботы: я зашёл в свой плейлист на Spotify и увидел прекрасное — почти весь экран треков был помечен как недоступный по легальным причинам. За почти десяток евро в месяц я всё‑таки ожидаю, что смогу слушать набранную музыку вне зависимости от того, забыл провайдер переподписать контракт со стримингом или нет.

С недавних пор я начал восстанавливать свой флот серверов — поэтому решил немного поизвращаться с доморощенным вариантом.

Вместо простого советского «что там сейчас люди поднимают для self‑hosted музыки» я схватился за golang.org/x/net/webdav, написал read‑only адаптер к os.Root и получил простенький файловый сервер.

Оказалось, foobar2000 живёт и здравствует на iOS, умеет и понимает WebDAV — так что от задумки до результата у меня прошло где‑то минут сорок. После этого — пара дней на поиск, скачивание и выгрузку музыки на мой сервер.

Итоговый сетап: WebDAV‑сервер сидит внутри контейнера, к которому примонтирована в RO‑режиме директория с музыкой, и раздаёт файлы внутри Tailscale‑сетки.
Я немножко психанул, поэтому музыка бэкапится, как и всё остальное, по схеме 3‑2‑1.

Опыт использования с технической стороны:

- интернета на Кипре хватает, чтобы стримить FLAC даже в горах на 1600 метров;

- foobar2000, на удивление, неплох — вполне приличный интерфейс, надёжно работает;

- Opus хуже всего для стриминга — там нужен бинарный поиск по файлу для seek по времени, так что плеер делает пять–шесть HTTP‑запросов на каждое начало воспроизведения файла, если файл больше размера одного чанка скачивания;

- M4A + AAC очень хорош для стриминга, если поставить moov в начало — иначе foobar2000 не может вытащить часть метаданных длинных треков;

- WireGuard VPN, включённый 24/7, тратит мало ресурсов и не греет iPhone 16 Pro.


Опыт с точки зрения музыкального опыта: я стал более осознанно слушать музыку. Если раньше я включал на Spotify динамический плейлист и слушал алгоритмическую смесь моих и новых треков, то сейчас я выбираю альбом или собранный мной плейлист и слушаю от начала до конца, потом выбираю следующий. Отсутствие рекомендаций тоже пока не мешает — достаточно раз в неделю позалипать в Википедии на странице жанра или группы, послушать пару сэмплов на YouTube — и я получаю представление, нравится мне альбом или нет.

Чего не хватает и прочие неудобства:

- foobar2000 не умеет кэшировать файлы автоматически — для прослушивания офлайн музыку надо скачивать в отдельном, очень кривом окне;

- метаданными треков надо заниматься отдельно — спасибо MusicBrainz Picard, это довольно просто;

- не хватает UI. Можно было бы раздавать webdav‑js как статическую страничку — но, кажется, вложение не стоит усилий.


Итогами перехода я скорее доволен. Скорее всего, в течение ближайшего месяца я подниму Navidrome — я обнаружил под него гораздо более широкий выбор плееров, чем есть на iOS с поддержкой WebDAV и Samba.
9❤‍🔥4🎉2🍌1🤨1👾1
☕️ Мерлин заваривает τσάι 🐌
Я люблю питон. Честно. На всех моих машинах постоянно открыт терминал с ipython. Если мне нужно обработать табличку, какие-то числовые данные или текст — я беру jupyter, pyplot, pandas и numpy. Питон незаменим, когда нужно накидать прототип или другой одноразовый…
я у стеклесс корутин с async/await и аналогов вижу ещё такой мощный плюс - их относительно легко прикрутить к языку, при создании которого про конкурентность не думали вообще

но у них есть и минус: async/await стеклесс корутины прикручивают к зыкам, при создании которых про конкурентность не думали вообще
1810🌚4🥰3
Со вторым днём космонавтики! 👩‍🚀🛰🌒
🤝10🕊2🌚1💋1
хех

они тупо GoPro прикрутили к солнечным панелям снаружи чтобы снимать таймлапс

дожили до того, что консумерская электроника достаточно space grade

So there’s one camera each affixed to each of Orion’s solar arrays. And those GoPro cameras will give us live views from space. And we’ll probably take the best views we have possible.


https://www.nasa.gov/podcasts/houston-we-have-a-podcast/artemis-ii-bringing-the-mission-to-you/
the spaceposting will continue until morale improves
🥰4