Byla vydána nová verze 10.2 z Debianu vycházející linuxové distribuce DietPi pro (nejenom) jednodeskové počítače. Přehled novinek v poznámkách k vydání. Vypíchnout lze nové balíčky Immich, Immich Machine Learning, uv a RustDesk Client.
TypeScript (Wikipedie), tj. JavaScript rozšířený o statické typování a další atributy, byl vydán v nové verzi 6.0. Příští verze 7.0 je kvůli výkonu přepisována do programovacího jazyka Go.
Christian Schaller z Red Hatu na svém blogu popsal své zkušenosti s používáním AI při vývoji open source aplikací pro Linux. Pomocí různých AI aktualizoval nebo vytvořil aplikace Elgato Light GNOME Shell extension, Dell Ultrasharp Webcam 4K, Red Hat Planet, WMDock, XMMS resuscitated (aktualizace z GTK 2 a Esound na GTK 4, GStreamer a PipeWire) a Monkey Bubble. SANE ovladač pro skener Plustek OpticFilm 8200i se mu zatím nepovedl.
Americké firmy Tesla a SpaceX postaví v texaském Austinu moderní komplex na výrobu čipů pro umělou inteligenci (AI). Součástí projektu s názvem Terafab budou dvě moderní továrny na výrobu čipů – jedna se zaměří na automobily a humanoidní roboty, druhá na datová centra ve vesmíru. Uvedl to generální ředitel těchto firem Elon Musk. Projekt by podle odhadů měl stát 20 miliard USD (zhruba 425 miliard Kč).
Byla vydána nová stabilní verze 6.11 (YouTube) multiplatformního frameworku a GUI toolkitu Qt. Podrobný přehled novinek v poznámkách k vydání.
Ubuntu 26.04 patrně bude ve výchozím nastavení zobrazovat hvězdičky při zadávání hesla příkazu sudo, změna vychází z nové verze sudo-rs. Ta sice zlepší použitelnost systému pro nové uživatele, na které mohlo 'tiché sudo' působit dojmem, že systém 'zamrzl' a nijak nereaguje na stisky kláves, na druhou stranu se jedná o možnou bezpečnostní slabinu, neboť zobrazování hvězdiček v terminálu odhaluje délku hesla. Původní chování příkazu sudo
… více »Projekt systemd schválil kontroverzní pull request, který do JSON záznamů uživatelů přidává nové pole 'birthDate', datum narození, tedy údaj vyžadovaný zákony o ověřování věku v Kalifornii, Coloradu a Brazílii. Jiný pull request, který tuto změnu napravoval, byl správcem projektu Lennartem Poetteringem zamítnut s následujícím zdůvodněním:
… více »Nové číslo časopisu Raspberry Pi zdarma ke čtení: Raspberry Pi Official Magazine 163 (pdf).
Eric Lengyel dobrovolně uvolnil jako volné dílo svůj patentovaný algoritmus Slug. Algoritmus vykresluje text a vektorovou grafiku na GPU přímo z dat Bézierových křivek, aniž by využíval texturové mapy obsahující jakékoli předem vypočítané nebo uložené obrázky a počítá přesné pokrytí pro ostré a škálovatelné zobrazení písma, referenční ukázka implementace v HLSL shaderech je na GitHubu. Slug je volným dílem od 17. března letošního
… více »Sashiko (GitHub) je open source automatizovaný systém pro revizi kódu linuxového jádra. Monitoruje veřejné mailing listy a hodnotí navrhované změny pomocí umělé inteligence. Výpočetní zdroje a LLM tokeny poskytuje Google.
TepSonic je malý, jednoduchý, rychlý, multiplatformní audio přehrávač napsaný v C++ a Qt, který bych rád představil i komunitě tady, na abíčku.
TepSonic, podobně jako třeba Amarok, podporuje kolekce. Data se ukládají do SQLite nebo MySQL databáze. Je snadno rozšiřitený formou pluginů, ale zatím má jen plugin pro spojení se službou na Last.fm. Nemá moc žádných hustodémonsky-übercool featur, cílem je, aby byl malý a uměl hlavně to, co opravdu potřebuju. Nebráním se samozřejmě návrhům na nové funkce - pokud budou mít smysl a užitek, proč ne?!
Pro načítání metadat používá osvědčenou a prověřenou knihovnu taglib. Last.fm scrobbler plugin ještě donedávna používal vlastní implementaci Last.fm API, přešel jsem ale na lastfmlib (neplést s liblastfm!), která je dokonalejší než moje vlastní implementace.
Očekávám, že se objeví v diskuzi otázky typu proč radši nepřispívám do existujících projektů, takže tu i rovnou odpovím: myslím si, že tvorbou vlastního programu se naučím víc, než jen posíláním patchů do jiného projektu - takhle se naučím i něco o návrhu aplikací. Což je pravda - většinu částí jen přepisuju, jak se postupně učím řešit věci lépe.
V současnosti TepSonic podporuje 3 základní platformy: primárně Linux, ale funguje i na Windows (ačkoliv tam jsou nějaké potíže se stabilitou), a díky Petru Vaňkovi jde přeložit i na Macovi (ale nevím, jak to běhá). Ani ne za měsíc budu na privátu mít k dispozici Macbook, takže to budu moct pořádně testovat i verzi pro Macka.
Pokud někdo budete mít chuť, budu rád, když TepSonic vyzkoušíte. Uvítal bych nějakou konstruktivní kritiku, feedback, bug reporty, rád se nechám poučit jak udělat věci lépe.
Zdrojáky: git clone http://git.gitorious.org/tepsonic/tepsonic.git
Homepage: www.tepsonic.org
Bugzilla: bugs.tepsonic.org
Chtěl jsem založit i mailinglisty, ale asi bych si v nich povídal jen sám, takže zatím pokud máte nějaké připomínky, email vratil zavináč progdansoft tečka com nebo jabber progdan@jabber.cz to jistí :)
Tiskni
Sdílej:
pak jeste takova vec, mp3 a flacy mi tepsonic normalne prehraje, ale wma ignoruje, ani je neprida do kolekce. s tim by se taky melo neco udelat, jestli to hraje pres nejakej xine backend tak ten by to mel normalne umet.
no snad sem se vyzvejk jasne a srozumitelne co mi tam chybi, ale pro jistotu to este shrnu - prehravani wma a podpora various artist v kolekci (primo nutnost pro vybery a soundtracky).co mi tam chybi ... prehravani wmaKeďže ten prehrávač je len GUI k phonon, tak musíš prehrávanie wma súborov riešiť práve tam (FFmpeg si s wma poradí, takže to je asi len vec správnych prepínačov pri kompilovaní).
a nebo z pohodlnosti zustanu u konzolovyho MOC (ten to bere podle adresaru a souboru a zadny kolekce neresi, jen playlist) 
hustodémonsky-übercoolKterej rok to bylo naposledy vtipný? Jinak program nevypadá špatně. Dokonce bych řekl, že vypadá skoro stejně dobře jako Rhythmbox. ;)
Očekávám, že se objeví v diskuzi otázky typu proč radši nepřispívám do existujících projektů, takže tu i rovnou odpovímTakové otázky vesměs pokládají přihřátí lemplové, co nikdy nikam nepřispěli. Zaráží mě, že se jim to ještě někdo snaží vysvětlovat. Když budeš chtít, můžeš si napsat třeba padesát takových programů - a jim po tom bude pořád stejné hovno.
[kotyz@behemot ~]$ tepsonic
TepSonic(7825): ""CurrencyIntroducedDate" - conversion of "" to QDate failed" " (wrong format: expected 3 items, got 1)"
TepSonic(7825): ""CurrencyIntroducedDate" - conversion of "" to QDate failed" " (wrong format: expected 3 items, got 1)"
Searching in ("/usr/bin/plugins", "/usr/lib")
()
Database revisions don't match: Found revision "5" , expected revision "6"
Collections will be rebuilt
Initializing database structure
Database revisions don't match: Found revision "5" , expected revision "6"
Collections will be rebuilt
Initializing database structure
Loading plugin "/usr/lib/libtepsonic_lastfmscrobbler.so.0.2.0"
Starting collections update...
the final supported extension list: ("*.ac3", "*.flac", "*.mp3", "*.mp4", "*.ogg", "*.wav", "*.wma", "*.aif", "*.aiff", "*.asf", "*.mp2", "*.mpc", "*.ra", "*.ram", "*.wv")
QSortFilterProxyModel: index from wrong model passed to mapFromSource
QSortFilterProxyModel: index from wrong model passed to mapFromSource
QSortFilterProxyModel: index from wrong model passed to mapFromSource
QSortFilterProxyModel: index from wrong model passed to mapFromSource
QSortFilterProxyModel: index from wrong model passed to mapFromSource
QSortFilterProxyModel: index from wrong model passed to mapFromSource
QSortFilterProxyModel: index from wrong model passed to mapFromSource
QSortFilterProxyModel: index from wrong model passed to mapFromSource
QSortFilterProxyModel: index from wrong model passed to mapFromSource
QSortFilterProxyModel: index from wrong model passed to mapFromSource
QSortFilterProxyModel: index from wrong model passed to mapFromSource
QSortFilterProxyModel: index from wrong model passed to mapFromSource
QSortFilterProxyModel: index from wrong model passed to mapFromSource
QSortFilterProxyModel: index from wrong model passed to mapFromSource
QSortFilterProxyModel: index from wrong model passed to mapFromSource
QSortFilterProxyModel: index from wrong model passed to mapFromSource
QSortFilterProxyModel: index from wrong model passed to mapFromSource
QSortFilterProxyModel: index from wrong model passed to mapFromSource
QSortFilterProxyModel: index from wrong model passed to mapFromSource
QSortFilterProxyModel: index from wrong model passed to mapFromSource
QSortFilterProxyModel: index from wrong model passed to mapFromSource
QSortFilterProxyModel: index from wrong model passed to mapFromSource
QSortFilterProxyModel: index from wrong model passed to mapFromSource
QSortFilterProxyModel: index from wrong model passed to mapFromSource
QSortFilterProxyModel: index from wrong model passed to mapFromSource
QSortFilterProxyModel: index from wrong model passed to mapFromSource
QSortFilterProxyModel: index from wrong model passed to mapFromSource
QSortFilterProxyModel: index from wrong model passed to mapFromSource
QSortFilterProxyModel: index from wrong model passed to mapFromSource
QSortFilterProxyModel: index from wrong model passed to mapFromSource
QSortFilterProxyModel: index from wrong model passed to mapFromSource
QSortFilterProxyModel: index from wrong model passed to mapFromSource
QSortFilterProxyModel: index from wrong model passed to mapFromSource
QSortFilterProxyModel: index from wrong model passed to mapFromSource
QSortFilterProxyModel: index from wrong model passed to mapFromSource
QSortFilterProxyModel: index from wrong model passed to mapFromSource
Neoprávněný přístup do paměti (SIGSEGV)
spolecne udelame z tepsonicu lepsi program! (jeste mam v rukavu par poznamek ohledne vzhledu, ale ty si necham na pozdeji, az nebudou dulezitejsi veci k predelani).
(gdb) bt
#0 0x0000000000460f23 in CollectionBuilder::insertTrack (this=0xb56780, filename=..., sqlDB=0xb64360)
at /home/vojta/scm/tepsonic/player/collections/collectionbuilder.cpp:200
#1 0x000000000045fc97 in CollectionBuilder::run (this=0xb56780) at /home/vojta/scm/tepsonic/player/collections/collectionbuilder.cpp:117
#2 0x00007ffff6b29a35 in ?? () from /usr/lib64/qt4/libQtCore.so.4
#3 0x00007ffff51a0644 in start_thread () from /lib/libpthread.so.0
#4 0x00007ffff5b8abfd in clone () from /lib/libc.so.6
#5 0x0000000000000000 in ?? ()