Nové verze webových prohlížečů Chrome a Firefox jsou vydávány každé 4 týdny. Aktuální verze Chrome je 145. Aktuální verze Firefoxu je 148. Od září přejde Chrome na dvoutýdenní cyklus vydávání. V kterém týdnu bude mít Chrome větší číslo verze než Firefox? 😀
Apple představil nové čipy M5 Pro a M5 Max, MacBook Pro s čipy M5 Pro a M5 Max, MacBook Air s čipem M5 a Studio Display a nový Studio Display XDR.
Bylo spuštěno hlasování o přednáškách a workshopech pro letošní Installfest, jenž proběhne o víkendu 28. a 29. března v Praze na Karlově náměstí 13.
Byla vydána (Mastodon, 𝕏) třetí RC verze GIMPu 3.2. Přehled novinek v oznámení o vydání. Podrobně v souboru NEWS na GitLabu.
Apple představil iPhone 17e a iPad Air s čipem M4.
Byla vydána verze 1.0 editoru kódů Gram. Jedná se o fork editoru Zed bez telemetrie a umělé inteligence.
Byla oznámena spolupráce GrapheneOS s Motorolou. Podrobnosti v tiskové zprávě. GrapheneOS (Wikpedie) je varianta Androidu zaměřující se na bezpečnost a soukromí.
Armbian, tj. linuxová distribuce založená na Debianu a Ubuntu optimalizovaná pro jednodeskové počítače na platformě ARM a RISC-V, ke stažení ale také pro Intel a AMD, byl vydán ve verzi 26.2.1. Přehled novinek v Changelogu.
Volí se dvě místa v Radě openSUSE. Seznamte se se čtyřmi kandidáty. Členové projektu openSUSE mohou hlasovat od 1. do 8. března. Výsledky budou oznámeny 9. března.
Společnost OpenAI uzavřela dohodu s americkým ministerstvem obrany o poskytování technologií umělé inteligence (AI) pro utajované sítě americké armády. Firma to oznámila několik hodin poté, co prezident Donald Trump nařídil vládě, aby přestala využívat služby společnosti Anthropic.
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 ?? ()