Probíhá konference Microsoft Build 2026. Microsoft představuje své novinky: kvantový čip Majorana 2, Surface Laptop Ultra a Surface RTX Spark Dev Box s NVIDIA RTX Spark, Intelligent Terminal, Coreutils for Windows (fork Rust Coreutils), AI modely MAI, AI agenta Scout, platformu pro agent-first zařízení Project Solara, …
Google Chrome 149 byl prohlášen za stabilní. Nejnovější stabilní verze 149.0.7827.53 přináší řadu novinek. Podrobný přehled v poznámkách k vydání. Vylepšeny byly také nástroje pro vývojáře.
Pluto.jl, reaktivní notebook pro programovací jazyk Julia, dospěl do verze 1.0.
Byla vydána nová verze 12.0.0 vizuálního programovacího jazyka Snap! (Wikipedie) inspirovaného jazykem Scratch (Wikipedie). Přehled novinek na GitHubu.
Počítačovou hru Gravity Circuit (ProtonDB) lze do 14. června do 19:00 získat na Steamu zdarma. Napořád.
Nejnovější X.Org X server 21.1.23 a Xwayland 24.1.12 řeší 9 bezpečnostních chyb.
npm balíčky @redhat-cloud-services byly kompromitovány.
Byly publikovány informace o zranitelnosti CVE-2026-46243 pojmenované CIFSwitch v Linuxu od roku 2007. Běžný uživatel může získat práva roota (lokální eskalaci práv). V upstreamu je již opraveno.
Nvidia na své konferenci NVIDIA GTC Taipei 2026 představila řadu novinek. Společně s Microsoftem představili superčip NVIDIA RTX Spark (až 6 144 jader GPU, 20 jader CPU, 1 petaflop AI výkonu v FP4 a 128 GB jednotné paměti). První notebooky a stolní počítače s tímto čipem od Nvidie místo Intelu nebo AMD by se měly na trh dostat na podzim letošního roku.
Na Kickstarteru běží kampaň na podporu kapesního počítače s Linuxem CardputerZero od společnosti M5Stack. Postaven je na Raspberry Pi Compute Module 0. Podporuje moduly M5. Koupit lze s rozšířeními LoRa a CC1101.
Ne, tento blog opravdu nemá nic společného s vývojem Linuxového jádra :-) Jako "Jaderný blog" jsem jej pojmenoval jen kvůli mé oblibě jaderné fyziky a chemie.
Věnovat se chci především Linuxu a Free Softwaru, prezentovat zde svůj pohled na věc a věnovat se všem palčivým otázkám a problémům, na které narazím. Určitě se zde také objeví články týkající se KDE, jelikož jsem velkým milovníkem tohoto desktopového prostředí a obecně eye-candy (k velké nevůli "pravověrných" Linuxáků ;-)).
No a když už se to tu jmenuje Jaderný blog, možná se někdy dočkáte i nějakého populárně-vědeckého příspěvku, především pokud se bude jednat o nějaké ožehavé aktuální téma...
Máte digitální fotoaparát, který ukládá zvukové záznamy přímo do fotografií (v podobě EXIF dat)? Pokud ano, může se vám hodit můj jednoduchý program wavextract napsaný v Pythonu, který umí z JPEG fotografií tato zvuková data vyextrahovat a uložit jako klasický WAV soubor.
Včera jsem si dával chvilku pauzu mezi učením a chtěl jsem stáhnout fotky z digiťáku. U pár z nich byl i zvukový záznam. Vzpomněl jsem si na svůj už skoro rok starý blogpost Získání zvukového záznamu z EXIF dat, v kterém jsem psal o objevu programu exif-tools schopného extrahovat zvuková data z JPEG obrázků. Tento program byl už léta mrtvý a zapomenutý, ale díky jednomu ze čtenářů se ho podařilo zprovoznit.
Nicméně situace okolo tohoto programu se mi vůbec nelíbila. Zaprvé ho nikdo neudržoval a zadruhé potřeboval vlastní EXIF knihovnu, jejíž název kolidoval s dnes už standardní knihovnou libexif obsaženou snad ve všech distribucích. Navíc u fotek z mého digiťáku HP M307 prováděl extrakci zvuku jaksi pochybně - zvuk byl vyextrahován bez RIFF hlavičky a tak byl problém s jeho přehráváním.
Před nedávnem jsem se tedy (v rámci mého zdokonalování se v Pythonu) rozhodl, že naprogramuji ekvivalent onoho programu. Naštěstí Cčkový kód byl vcelku jednoduchý, a tak jsem během chvilky tušil kde se ona zvuková data v EXIFu schovávají a jak je vydolovat. Napsat na to jednoduchý prográmek v Pythonu byla pro mě otázka asi jen 1 hodiny, hlavně díky využití excelentní Python Imaging Library (PIL), která EXIF data umí parsovat. Pak už šlo jen o to z příslušných segmentů EXIF dat vydolovat RIFF hlavičku a samotná zvuková data.
Pokud by někoho zajímaly přesnějí informace o způsobu uložení těchto zvukových dat (pokud ne, tento odstavec klidně přeskočte
), tak se jedná o data ve FlashPix formátu uložená v APP2 segmentu EXIFu. Specifikace EXIF jsou veřejně dostupné (např. tady: EXIF 2.2), což člověku může hodně pomoct když ví co hledat, avšak specifikace FlashPix formátu veřejně dostupné nejsou, dostupné jsou pouze po zaplacení poplatku (viz. I3A Standards). Samotnou specifikaci FlashPix formátu se mi ovšem i přesto podařilo vygooglit (i když starší verzi), nicméně specifikace FlashPix Audio Extension nikde k mání zdarma ke stažení nebyla. Ovšem díky autorovi onoho původního prastarého programu exif-tools (tedy přesněji utility extract-wave v něm obsažené) a díky KHexEditu to ani nebylo nutné 
Ale abych se vrátil k jádru věci - včera když jsem tenhle svuj prográmek znovu využil jsem si uvědomil, že by bylo opravdu dobré ho konečně zveřejnit (chtěl jsem to udělat už dříve, ale nějak jsem byl línej
). Takže jsem založil projekt na BerliOS.de, stahovat můžete odsud: http://developer.berlios.de/projects/wavextract/
Snad se někomu tenhle prográmek hodí
Testoval jsem ho na fotkách z mého digiťáku HP M307 a také na testovací fotce přiložené k exif-tools (podle EXIFu pořízené digiťákem KODAK DC290) a fungoval naprosto bezchybně (MD5 sumy vytvořených WAV souborů si odpovídaly s MD5 sumami WAV souborů vytvořených proprietárním programem EXIFutils).
Tiskni
Sdílej:
;)
Jak říkám doufám že to někdo vubec využije, u toho mého starého blogpostu moc reakcí nebylo
try:
import Image
except ImportError:
print 'glupy uzivateli PILuj! nebo tak neco...'
Prijde mi to takove "slusnejsi".
na druhou stranu uz je dostupny ebuild, takze kazde slusnejsi distro zavislost vyresi ;)
A když ho nainstalován nemá, tak holt schytá výjimku i s tracebackem, jeho smůla
Ale až vydám další verzi, tohle v ní upravím... takto ošetřené je to asi opravu lepší.
) místo klasické list comprehension tam jak sestavuju ten seznam FlashPix streamů? Pak následně na ten generátor používám ve smyčce for funkci enumerate(), tak jestli enumerate náhodou výhody generátoru oproti seznamu nezlikviduje (že by z něho rovnou udělala klasický seznam).
Ještě zas tolik do detailů Pythonu nevidim
Mohl bych si to sice sám otestovat, ale do toho se mi teď nechce
Ale jak to funguje interně nevím, takže moje otázka zda enumerate() neruší výhody generátoru trvá
- dík