Šestice firem označovaných jako „MAMAAN“ – tedy Meta (Facebook, Instagram), Alphabet (Google), Microsoft, Apple, Amazon a Netflix – je zodpovědná za více než padesát procent světového internetového provozu. Dalšími velkými hráči jsou TikTok a Disney+. Společně tak zásadně určují podobu digitálního prostředí, spotřebitelského chování i budoucích trendů v oblasti technologií. I přesto, že se podíl těchto gigantů od roku 2023 o něco snížil, jejich dominantní postavení zvyšuje volání po regulaci.
Evropská komise (EK) navrhuje zavést plošný poplatek ve výši dvou eur (zhruba 50 Kč) za každý malý balík vstupující do Evropské unie. Poplatek se má týkat balíků v hodnotě do 150 eur (zhruba 3700 Kč), které v EU nepodléhají clu. V loňském roce bylo do EU doručeno kolem 4,6 miliardy takovýchto balíků. Poplatek má krýt náklady na kontroly rostoucího počtu zásilek levného zboží, které pochází především z Číny.
Dnes a zítra probíhá vývojářská konference Google I/O 2025. Sledovat lze na YouTube a na síti 𝕏 (#GoogleIO).
V Bostonu probíhá konference Red Hat Summit 2025. Vybrané přednášky lze sledovat na YouTube. Dění lze sledovat na síti 𝕏 (#RHSummit).
Společnost Red Hat oficiálně oznámila vydání Red Hat Enterprise Linuxu 10. Vedle nových vlastností přináší také aktualizaci ovladačů a předběžné ukázky budoucích technologií. Podrobnosti v poznámkách k vydání.
Tuto sobotu 24. května se koná historicky první komunitní den projektu Home Assistant. Zváni jsou všichni příznivci, nadšenci a uživatelé tohoto projektu. Pro účast je potřebná registrace. Odkazy na akce v Praze a v Bratislavě.
Troy Hunt představil Have I Been Pwned 2.0, tj. nový vylepšený web služby, kde si uživatelé mohou zkontrolovat, zda se jejich hesla a osobní údaje neobjevily v únicích dat a případně se nechat na další úniky upozorňovat.
Microsoft představil open source textový editor Edit bežící v terminálu. Zdrojové kódy jsou k dispozici na GitHubu pod licencí MIT.
V Seattlu a také online probíhá konference Microsoft Build 2025. Microsoft představuje své novinky. Windows Subsystem for Linux je nově open source. Zdrojové kódy jsou k dispozici na GitHubu pod licencí MIT.
Z příspěvku Turris Sentinel – co přinesl rok 2024 na blogu CZ.NIC: "Za poslední rok (únor 2024 – únor 2025) jsme zachytili 8,3 miliardy incidentů a to z 232 zemí a z jejich závislých území. Tyto útoky přišly od 6,2 milionu útočníků (respektive unikátních adres). SMTP minipot je stále nejlákavější pastí, zhruba 79 % útoků bylo směřováno na tento minipot, 16 % útoků směřovalo na minipot Telnet, 3 % útoků směřovaly na minipot HTTP a 2 % na minipot FTP. Dále jsme zaznamenali 3,2 milionu unikátních hesel a 318 tisíc unikátních loginů, které útočníci zkoušeli."
Došlo k tomu, čemu jsem dlouho odolávala: předplatila jsem si Spotify. A vzápětí jsem začala řešit, jak zvuk dostat v rozumné kvalitě do velkých reproduktorů připojených k mé audiověži. Dočasným řešením byla malá bluetooth zvuková kartička, ale jaksi to nebylo ono; i přes kvality kodeku LDAC a přes to, že nejsem netopýr, mi další ztrátové kódování po cestě přijde z principu nadbytečné. Navíc dávám přednost D/A převodníkům integrovaným ve věži.
Edit 23.11.2024:
Z nějakého důvodu mi začal blbnout spotify-connect a na ostatních klientech není instance, spuštěná níže uvedeným způsobem, vidět. Pátrala jsem po řešení a nakonec jsem zakotvila u klienta spotifyd, který funguje celkem bez problémů a s menší námahou. Sice má od léta 2024 drobný problém s přihlášením kvůli změnám u Spotify, ale to je řešitelné. Zbytek blogpostu je tedy už asi bezpředmětný a nechávám ho tu jen pro archivaci...
Jen ještě přidám systemd unitu pro spuštění pod uživatelem pro případ, že by v domácnosti bylo uživatelů více:
[Unit] Description=A spotify playing daemon Documentation=https://github.com/Spotifyd/spotifyd Wants=sound.target After=sound.target Wants=network-online.target After=network-online.target [Service] ExecStart=/usr/local/bin/spotifyd --no-daemon Restart=always RestartSec=12 User=%i Group=%i PermissionsStartOnly=true PrivateTmp=false [Install] WantedBy=default.target
Až doposud nové nahrávky standardně putovaly do adresáře s hudbou na mém domácím serveru, kde v LXC kontejneru běží MPD. To přehrávané skladby posílá na optický výstup starší levné zvukovky Xonar DSX a z ní už signál bliká optikou do receiveru Onkyo R-1045 na druhé straně pokoje. Celkem přímočaré řešení, které se nechá ovládat z kteréhokoli počítače s MPDčkovým klientem. Jak něco podobného udělat se Spotify?
Chvilku jsem koketovala s UPnP, než jsem zjistila, že mi gentoovské pulseaudio-dlna na mém notebooku proti debianímu minidlna na serveru běží buď celkem stabilně přes výchozí MP3 kodek, ovšem ztrátově s menším bitrate, nebo přes bezeztrátový FLAC s permanentními drop-outy, kterých se mi podařilo zbavit jen brutálním navýšením bufferů. Ani jedna varianta pro mě nebyla zajímavá.
Zkoušela jsem i Kodi; televizí sice nedisponuji, takže většina funkcí je pro mě nadbytečná, ale bylo mi řečeno, že pro něj existuje plugin pro podporu Spotify a jde to ovládat i přes webové rozhraní. Plugin existoval, ale tři roky na něj nikdo nesáhl, standardní cestou už nešel nainstalovat a když už se mi ho podařilo do instalace dotlačit násilím, ovládání bylo značně nepraktické a webové rozhraní se kousalo.
No a nakonec mi došla věc, kterou jsem měla před očima od začátku - pokud mám spuštěno více klientů Spotify nad jedním účtem, vidí na sebe a jdou mezi sebou ovládat, takže si ze svého počítače můžu pustit playlist klidně třeba na mobilu položeném ve vedlejší místnosti. A nebo na headless instalaci v debianovém LXC kontejneru na serveru se zvukovkou.
Cílem tedy je nainstalovat aplikaci Spotify do LXC kontejneru s přístupem ke zvukové kartě a bez přístupu ke grafice, v této aplikaci se trvale přihlásit na účet služby Spotify a zajistit její automatické spouštění po startu kontejneru. Nakonec jsem se dobrala k následujícímu postupu, který by se snad mohl hodit i někomu dalšímu:
V prvním kroku je potřeba zprovoznit LXC kontejner s přístupem na zvukovku. Přípravu LXC kontejneru popisovat nebudu, prostě předpokládám, že máte připravený neprivilegovaný kontejner s Debianem Buster, v mém případě v adresáři /mnt/lxc/spotify-test
. V tomto adresáři si vytvoříme podadresář s názvem snd-100000
, do něj nakopírujeme z hostitelského systému obsah /dev/snd
bez podadresářů a přepíšeme v něm vlastnictví tak, aby uid a gid odpovídaly vlastníkovi root:audio
v kontejneru. Já mám uid/gid v kontejneru posunuté o sto tisíc, gid skupiny audio
v kontejneru je 29
, obsah adresáře tedy následně vypadá takhle:
hostitel ~# ls -lh /mnt/lxc/spotify-test/snd-100000/ celkem 0 crw-rw---- 1 100000 100029 116, 6 30. kvě 10.54 controlC0 crw-rw---- 1 100000 100029 116, 3 30. kvě 10.54 pcmC0D0c crw-rw---- 1 100000 100029 116, 2 30. kvě 10.54 pcmC0D0p crw-rw---- 1 100000 100029 116, 5 30. kvě 10.54 pcmC0D1c crw-rw---- 1 100000 100029 116, 4 30. kvě 10.54 pcmC0D1p crw-rw---- 1 100000 100029 116, 1 30. kvě 10.54 seq crw-rw---- 1 100000 100029 116, 33 30. kvě 10.54 timer
Major device number, jak vidno výše, je 116, do konfiguračního souboru kontejneru tedy přidáme tyto dva řádky:
lxc.mount.entry = /mnt/lxc/spotify-test/snd-100000 dev/snd none bind,optional,create=dir lxc.cgroup.devices.allow = c 116:* rwm
Po spuštění kontejneru bychom měli uvnitř v adresáři /dev/snd
vidět něco takového:
hostitel ~ # lxc-attach -n spotify-test spotify-test ~ # ls -lh /dev/snd/ celkem 0 crw-rw---- 1 root audio 116, 6 kvě 30 16:37 controlC0 crw-rw---- 1 root audio 116, 3 kvě 30 16:37 pcmC0D0c crw-rw---- 1 root audio 116, 2 kvě 30 16:37 pcmC0D0p crw-rw---- 1 root audio 116, 5 kvě 30 16:37 pcmC0D1c crw-rw---- 1 root audio 116, 4 kvě 30 16:37 pcmC0D1p crw-rw---- 1 root audio 116, 1 kvě 30 18:19 seq crw-rw---- 1 root audio 116, 33 kvě 30 18:19 timer
Drobná odbočka: osobně moc nestojím o sklony Debianu instalovat i věci, které nejsou nutné, takže normálně vypínám instalaci doporučovaných a navrhovaných balíčků. Ve své standardní šabloně to mám přednastavené, vy si to kdyžtak nastavte:
cat << EOF > /etc/apt/apt.conf.d/99-suggested-packages APT::Install-Recommends "false"; APT::Install-Suggests "false"; EOF
Zkusíme, jestli z LXCčka skutečně vidíme na zvukovku:
apt install alsa-utils aplay /nejakyzvukovysoubor.wav alsamixer
Doinstalujeme si remote display server xpra a věci potřebné k připojení k němu:
apt install openssh-server xpra python-pil xauth
Podle návodu na stránkách Debianu doinstalujeme Spotify plus komponenty, bez kterých odmítá startovat (včetně mnohými nenáviděného Pulseaudia, protože klient Spotify by sice teoreticky měl běhat i s čistou Alsou, ale v praxi mi pak aktuální verze končila segfaultem; po nainstalování PA sice klient nesegfaultoval i když PA nebylo spuštěné, ale často pro změnu začal po ukončení přehrávání vytěžovat procesor na 100%).
apt install gnupg python-dbus dbus dbus-x11 pulseaudio apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 4773BD5E130D1D45 echo deb http://repository.spotify.com stable non-free | tee /etc/apt/sources.list.d/spotify.list apt update apt install spotify-client
Vzhledem k tomu, že počítáme s možností spouštět více instancí aplikace Spotify (případně i MPD), je lepší mít Pulseaudio spuštěné v samostatném procesu pod samostatným účtem.
V /etc/pulse/default.pa
tedy odkomentujeme řádek load-module module-alsa-sink
a společně s řádkem load-module module-native-protocol-unix
je upravíme do následující podoby:
load-module module-alsa-sink device=hw:0,0 load-module module-native-protocol-unix auth-group-enable=true auth-group=pulse-access socket=/tmp/pulse-server
Vytvoříme soubor /etc/pulse/client.conf.d/socket.conf
.
cat << EOF > /etc/pulse/client.conf.d/socket.conf autospawn = no default-server = unix:/tmp/pulse-server EOF
Nastavíme práva uživatele, pod kterým poběží služba Pulseaudia.
gpasswd -a pulse pulse-access gpasswd -a pulse audio
No a nakonec vytvoříme unitu /etc/systemd/system/pulseaudio.service
s tímto obsahem:
[Unit] Description=PulseAudio system server [Service] PermissionsStartOnly=true ExecStartPre=/bin/rm -f /tmp/pulse-server ExecStartPre=/bin/mkdir -p /var/run/pulse/ ExecStartPre=/bin/chown -R pulse /var/run/pulse ExecStart=pulseaudio --disallow-exit=yes User=pulse Group=pulse-access [Install] WantedBy=multi-user.target
Ještě nastavit automatické spouštění a můžeme se vrhnout na samotné Spotify.
systemctl daemon-reload systemctl enable pulseaudio.service reboot
Přidáme uživatele, pod kterým se bude Spotify spouštět:
useradd -m -s /bin/bash spotify gpasswd -a spotify pulse-access
Doplníme svůj klíč pro SSH do konfiguračního souboru uživatele spotify; SSH používáme pro úvodní konfiguraci klienta, v běžném provozu může být shozené:
cd /home/spotify mkdir .ssh touch .ssh/authorized_keys chown -R spotify:spotify .ssh chmod 0500 .ssh chmod 0400 .ssh/authorized_keys echo nejakymujklic >> .ssh/authorized_keys
Je vhodné si připojení přes SSH ze svého počítače na kontejner se Spotify vyzkoušet.
Nyní si vytvoříme soubor /etc/systemd/system/spotify@.service
s následujícím obsahem:
[Unit] Description=Spotify Wants=pulseaudio.service [Service] ExecStartPre=/bin/bash -c "/bin/mkdir -p /run/user/$(/usr/bin/id -u %i)" ExecStartPre=/bin/bash -c "/bin/chown %i /run/user/$(/usr/bin/id -u %i)" ExecStart=/usr/bin/xpra start --start-child=/usr/bin/spotify --daemon=no --systemd-run=no --exit-with-children=yes User=%i Group=%i PermissionsStartOnly=true [Install] WantedBy=multi-user.target
No a teď si to spustíme:
systemctl daemon-reload systemctl start spotify@spotify.service
To spotify
za zavináčem je jméno uživatele, pod kterým klienta Spotify spouštíme. Můžeme klidně spustit víc instancí pod více uživateli, třeba extra pro každého člena rodiny, pokud jsou schopni akceptovat, že přehrávat by měl vždy jen jeden z nich.
Pokud na svém počítači nemáme xpra
, doinstalujeme ho*) a pak se připojíme k aplikaci Spotify ve vzdáleném kontejneru a nastavíme přístupové údaje ke službě Spotify, kvalitu streamu, případně zrušíme normalizaci atd.
mujpocitac ~ # xpra attach ssh://spotify@123.45.6.78/
Pozor, pokud po nastavení klasicky zavřete okno Spotify, aplikace na vzdáleném serveru se ukončí. Místo zavření okna je nutné se jen pomocí ikony v trayi odpojit, jinak budete muset restartovat spotify.service
v LXC kontejneru.
Nyní stačí nastavit automatické spouštění spotify@.service
pro uživatele spotify
při startu kontejneru:
systemctl enable spotify@spotify.service
Případně je možné v konfigurácích upravit kvalitu resamplování pulseaudia nebo výchozí vzorkovací frekvenci. V mém případě to vypadá takto:
spotify-test ~ # egrep -v '^\s*(;|#|$)' /etc/pulse/daemon.conf resample-method = speex-float-10 avoid-resampling = yes enable-remixing = no flat-volumes = no default-sample-format = s32le default-sample-channels = 2 default-channel-map = front-left,front-right
Pro jistotu vyzkoušíme reboot kontejneru, služba Spotify by měla nastartovat.
spotify-test ~ # reboot ... hostitel ~# lxc-attach -n spotify-test spotify-test ~ # pstree systemd─┬─5*[agetty] ├─2*[dbus-daemon] ├─pulseaudio───{pulseaudio} ├─rsyslogd───2*[{rsyslogd}] ├─sshd ├─systemd-journal ├─systemd-logind ├─systemd-udevd └─xpra─┬─Xorg───9*[{Xorg}] └─spotify─┬─spotify───spotify───16*[{spotify}] ├─spotify───13*[{spotify}] └─38*[{spotify}]
Start Xorg může na pomalejších procesorech chvilku trvat, na mém Avotonu C2750 naběhne v řádu sekund.
Nyní bychom u sebe měli vidět LXC kontejner spotify-test
v seznamu zařízení připojených k účtu a můžeme případně přehodit přehrávání na tento vzdálený počítač.
No a to je vše. Hudba hraje a my můžeme zase pro změnu jít dělat něco užitečného...
*) Variantou je připojit se pro nastavení přímo přes SSHčkový X11 forwarding, já mám xpra nainstalovaný, takže se raději připojuji přímo k běžící unitě.
Tiskni
Sdílej:
127.0.0.1 adclick.g.doublecklick.net 127.0.0.1 *.doublecklick.net 127.0.0.1 adeventtracker.spotify.com 127.0.0.1 ads-fa.spotify.com 127.0.0.1 analytics.spotify.com 127.0.0.1 audio2.spotify.com 127.0.0.1 b.scorecardresearch.com 127.0.0.1 bounceexchange.com 127.0.0.1 bs.serving-sys.com 127.0.0.1 content.bitsontherun.com 127.0.0.1 core.insightexpressai.com 127.0.0.1 crashdump.spotify.com 127.0.0.1 d2gi7ultltnc2u.cloudfront.net 127.0.0.1 d3rt1990lpmkn.cloudfront.net 127.0.0.1 desktop.spotify.com 127.0.0.1 doubleclick.net 127.0.0.1 ds.serving-sys.com 127.0.0.1 googleadservices.com 127.0.0.1 googleads.g.doubleclick.net 127.0.0.1 gtssl2-ocsp.geotrust.com 127.0.0.1 js.moatads.com 127.0.0.1 log.spotify.com 127.0.0.1 media-match.com 127.0.0.1 omaze.com 127.0.0.1 open.spotify.com 127.0.0.1 pagead46.l.doubleclick.net 127.0.0.1 pagead2.googlesyndication.com 127.0.0.1 partner.googleadservices.com 127.0.0.1 pubads.g.doubleclick.net 127.0.0.1 redirector.gvt1.com 127.0.0.1 s0.2mdn.net 127.0.0.1 securepubads.g.doubleclick.net 127.0.0.1 spclient.wg.spotify.com 127.0.0.1 tpc.googlesyndication.com 127.0.0.1 v.jwpcdn.com 127.0.0.1 video-ad-stats.googlesyndication.com 127.0.0.1 weblb-wg.gslb.spotify.com 127.0.0.1 www.googleadservices.com 127.0.0.1 www.googletagservices.com 127.0.0.1 www.omaze.com--- Dete s tim guuglem dopice!
si ji ripni a jeto jako ;D
V tomto adresáři si vytvoříme podadresář s názvem snd-100000, do něj nakopírujeme z hostitelského systému obsah /dev/snd bez podadresářů a přepíšeme v něm vlastnictví tak, aby uid a gid odpovídaly vlastníkovi root:audio v kontejneruJá udělal bind-mount celého
/dev/snd
(a /dev/dri
), R/W přístup pro uživatele uvnitř LXC stačilo přidat pomocí setfacl
Já udělal bind-mount celého /dev/snd (a /dev/dri), R/W přístup pro uživatele uvnitř LXC stačilo přidat pomocí setfaclPřežije to restart? U mě tenhle adresář, pokud se nepletu, vytváří za běhu udev, ale můžu se mýlit, teď to nemám kde vyzkoušet. Mně to takhle na hulváta nakopírované drží už pár let, takže to používám.
/etc/fstab
.
root:audio
tam měl přístup i uživatel 100000
a skupina 100029
z neprivilegovaného kontejneru.
se tam připiše gid uid a takový tydlety hele třeba jako :O ;D
udělat novou skupinu proně provšecky a pro ti to tam ve fstab nastavit jinak jako nevim :O :O
mount -o bind
do jiného adresáře, ale tam právě parametry uid
a gid
nefungují, mount je sice neodmítne, ale na výsledku se nijak neprojeví.
Každopádně já to nepotřebuju řešit. Moje řešení funguje se statickou kopií, trekkerovo řešení s hookem při spouštění kontejneru funguje, patrně by fungovalo i to uvažované pravidlo do udevu. Jen mi prostě nebylo jasné, jak má fungovat to připojování přes fstab. A není mi to jasné stále.
samozřejmě na hostitelském systému jde vytvořit skupinu s GID 100029, jen to považuji za nežádoucíPro ten Steam je to nutné, protože
xhost
nebere UID. Jestli to vytvoří nějakou skulinu, to nevím, taky mě žádná nenapadla. Ale dávám proprietární aplikaci přístup k /dev/dri
, tudíž mě malinké skulinky vlastně nemusí zajímat noa jozef kufner co stim fstab přišel tady vod tý doby několikrát byl a nic sem nenapsal takže asi taky jako neví :O ;D
toje přeci přemenovaná johanka už si si s ní jako povidal v tom svým blogísku vo muzice :O :D :D ;D
nóóó jestli sem jako famózně poetická nevim ale anička se jako určitě nemenuju :D ;D
amigu znám jenom z emulátoru :O ;D
ale jako nedivila bych se amigoj kdyby tendelten chaos trošičku přiživoval a tys mu to jakoby žral i s navyjákem :O :D ;D ;D
jackd
napojený na ovladač dummy
. Nic to nezpracovávalo, nebylo to napojené na žádný HW, stačilo to jen spustit a okamžitě se mi zvedla spotřeba a začalo to topit.
Jinak stable je momentálně 5.4.38.