Google Chrome 136 byl prohlášen za stabilní. Nejnovější stabilní verze 136.0.7103.59 přináší řadu novinek z hlediska uživatelů i vývojářů. Podrobný přehled v poznámkách k vydání. Opraveno bylo 8 bezpečnostních chyb. Vylepšeny byly také nástroje pro vývojáře.
Homebrew (Wikipedie), správce balíčků pro macOS a od verze 2.0.0 také pro Linux, byl vydán ve verzi 4.5.0. Na stránce Homebrew Formulae lze procházet seznamem balíčků. K dispozici jsou také různé statistiky.
Byl vydán Mozilla Firefox 138.0. Přehled novinek v poznámkách k vydání a poznámkách k vydání pro vývojáře. Řešeny jsou rovněž bezpečnostní chyby. Nový Firefox 138 je již k dispozici také na Flathubu a Snapcraftu.
Šestnáctý ročník ne-konference jOpenSpace se koná 3. – 5. října 2025 v Hotelu Antoň v Telči. Pro účast je potřeba vyplnit registrační formulář. Ne-konference neznamená, že se organizátorům nechce připravovat program, ale naopak dává prostor všem pozvaným, aby si program sami složili z toho nejzajímavějšího, čím se v poslední době zabývají nebo co je oslovilo. Obsah, který vytvářejí všichni účastníci, se skládá z desetiminutových
… více »Richard Stallman přednáší ve středu 7. května od 16:30 na Technické univerzitě v Liberci o vlivu technologií na svobodu. Přednáška je určená jak odborné tak laické veřejnosti.
Jean-Baptiste Mardelle se v příspěvku na blogu rozepsal o novinkám v nejnovější verzi 25.04.0 editoru videa Kdenlive (Wikipedie). Ke stažení také na Flathubu.
TmuxAI (GitHub) je AI asistent pro práci v terminálu. Vyžaduje účet na OpenRouter.
Byla vydána nová verze R14.1.4 desktopového prostředí Trinity Desktop Environment (TDE, fork KDE 3.5, Wikipedie). Přehled novinek i s náhledy v poznámkách k vydání. Podrobný přehled v Changelogu.
Bylo vydáno OpenBSD 7.7. Opět bez písničky.
Čistě pro zábavu jsem si udělal benchmark tří počítačů, které mám momentálně v dosahu. Jedná se v zásadě o tři generace procesorů Intel. Benchmarků je sice plný internet, ale málokdy člověk narazí na přímé srovnání starého a nového hardwaru. Zříkám se vědeckých ambicí: testované počítače mají různé pevné disky, různé verze OS a různé verze programů použitých pro měření (Python, GCC). Ovšem stáří HW v mém případě koresponduje se stářím SW, takže měřím vlastně obecný pokrok v IT. (Zároveň ale platí Wirthův zákon: “Software is getting slower more rapidly than hardware becomes faster." )
Python jakožto virtuální mašina není deterministický. Obvyklým zdrojem nahodilosti je plánování vláken, v Pythonu ale můžete mít korektní jednovláknový program, který vám dá pro jeden vstup pokaždé jiné výsledky. Může za to hashování, hash objektu může být odvozen od jeho adresy v paměti, což je (stejně jako rozvrhování vláken) neuchopitelná záležitost o kterou se stará operační systém.
Mám zde jeden tip pro všechny, co při programování používají jako IDE konzoli a shell.
Své výlety po jiných operačním systémem jsem zakončil u OpenSolarisu.
Po svých experimentech s LFS mi jemně stouplo sebevědomí, tak jsem si řekl, že zkusím opravdový Unix a tedy FreeBSD. Zde je pár poznámek.
...a dva dny jsem díky tomu udělal do práce i do školy kulové .
Jeden můj známý v jakési internetové konferenci kdysi popisoval sen, že byl že byl kus kódu v assembleru a kopíroval řetězec. Z nějakého důvodu skončil v nekonečném cyklu. Nejděsivější ale bylo, že procesor měl zakázána přerušení, takže nebylo nic, co by jeho trápení ukončilo.
Co se týče programovacích jazyků, snažím se udržet si přehled. Z takových těch běžně používaných věcí toho znám dost, ale nejedná se o žádné velké hrdinství, kdo zná 5 imperativních programovacích jazyků, naučit se šestý je velmi snadné, trvá to od jedné hodiny do jednoho týdne. Kdo zná C++, naučí se Javu snadno a rovnou umí C# do verze 2. Kdo zná Python a viděl z vlaku Smalltalk a Perl, zná i Ruby .
Vývoj platformy .Net a jazyka C# sleduji od naprostých prvopočátků. Dílo Anderse Hejlsberga je se mnou v podstatě celý můj programátorský život (od Turbo Pascalu přes Delphi až po C#).
Když se tady tak rojí zápisky o Pythonu a C++, musím přispěchat se svou troškou do mlýna - totiž s postem, který je o obojím.
Občas zde prudím se svojí Žirafou, což je indexátor souborového systému, prostě parodie na locate
. Používám ji převážně jako "media library" k XMMS.
Taková grafická aplikace, to je soft-realtime záležitost. Na čase odpovědi totiž záleží, pokud se to zasekne, uživatel (tedy já) sice počká, ale je naštvaný. Žirafa navíc zobrazuje výsledky vyhledávání hned během psaní dotazu - takže na výkonu záleží, protože mezi dvěma stisky kláves je tak desetina sekundy.
Žirafa je celá v Pythonu (+GTK). Ze snahy napsat rychlou aplikaci v "pomalém" Pythonu jsem získal některá ponaučení, o která se teď hodlám podělit.
Tak jsem zase zapracoval na svém quick'n'dirty vyhledávači Žirafa, přitom bych měl dělat hromadu jiných věcí.
Novinky jsou tak neuvěřitelně zásadní, že jsem zvedl minor verzi, z 0.0.4 jsem šel rovnou na 0.1.0, tedy "skoro hotovo". Ne, vážně, teď už umí asi všechno, co jsem potřeboval.
Starý drak se nám nějak dere na povrch... Tohle jsem vyfotil mobilem cestou na autobus, schválně, kdo to místo pozná. Kdo identifikuje oba názvy, má u mě Žirafu
Tak jsem jemně zapracoval na svém vyhledávači Žirafa. Trochu jsem zoptimalizoval, něco vylepšil. Také jsem přidal podporu Windows(!).
Zásadní zlepšení spočívá v tom, že když poklikáte na nalezený soubor, tak se tento otevře v asociované aplikaci. Osobně to používám jako "media-library", napíšu "Yesterday" a kliknu.
Když jsem bydlel na koleji, napsal jsem vyhledávač, který běžel na kolejním serveru a indexoval obsah FTP serverů okolo (rozumněj, semestrálky a tak . Byla to Java+Tomcat+Lucene a s oblibou jsem ho používal na vyhledávání svých vlastních mptrojek.
Zcela mimoděk jsem spáchal takový malý benchmark programovacích jazyků a jejich překladačů.
Tak jak to dělají v Nasa jsem potřeboval ověřit, že jistý kód je správně. Řekněme, že ten kód je jednoduchá funkce s(a,b,c,d)
, která sérií přiřazení čísla a, b, c, d uspořádá. Kód vypadá asi takto (Python):
fork()
modulu _stackless
. Co tahle funkce dělá? Inu přesně to, co její jmenovkyně z pravého Unixu, jen nevytvoří nový proces, ale korutinu (takové lehkotonážní vlákno, které nemá preempci a musí se přepínat explicitně).
Minule jsem tu psal o Pypy, implementaci Pythonu v jazyce samém, a o neuvěřitelné flexibilitě, kterou tato hračka nabízí.
Též jsem psal, že Pypy umí variaci na Stackless Python, tedy oprostění se od limitů systémového zásobníku. Rekurze omezená jen velikostí paměti je jen začátek. Program může explicitně manipulovat se svým zásobníkem. Je možné rozličným způsobem přepínat zásobníkové rámce funkcí atd. Následující kód mi hlava dost dlouho nebrala :
V programování a programovacích jazycích se vrtám roky rokoucí a proto se málokdy stane, že mě něco překvapí. Ale přesně to se před pár týdny stalo. Narazil jsem totiž na pypy a připomněl si, co znamená hackerství ve svém nejlepším významu.
Co je vlastně pypy? Pypy je implementace jazyka Python v Pythonu samotném. Na první pohled je to pěkná divočina, vlastně až nesmysl. Standardní interpreter Pythonu je napsán v jazyce C (říkejme mu CPython), pypy je do jisté míry prostá reimplementace CPythonu, akorát napsaná v Pythonu.
Tak jsem si řekl, že zkusím programování v nějakém tom „skriptovacím“, opravdu vysokoúrovňovém jazyce, což mi přinese obrovskou produktivitu a pravděpodobně i sex-appeal. Už nějaký čas jsem chtěl prozkoušet Python ale řekl jsem si, že půjdu se současným hype a zkusím Ruby.
Před pár dny jsem narazil na tento článek o API ke sledování javovského virtuální stroje verze 5. Článek je docela dlouhý, přotože popisuje celou architekturu i API, ale pokud člověk nechce psát nějaký svůj diagnostický nástroj, může použít velice jednoduché hotové řešení. (Hezky česky "out of the box"
Kdysi jsem ty psal o tom, jak udělat z Javy Smalltalk. Šlo o to, že jsem obyčejné volání metod obalil mechanismem posílání zpráv. Ale byla to jen taková onanie, protože to mělo dvě nevýhody.
Tuhle jsme s vedlebydlou rozjímali nad C# a jeho novou verzí 3.0. V této verzi je spousta zajímavých novinek. K anonymním funkcím přibyly anonymní struktury (struct), lambda-výrazy, implicitně typované proměnné, rozšiřující metody (extension methods) atd. Většina těchto nových vlastností byla přidána kvůli zázraku jménem LINQ (Language INtegrated Query). LINQ by měl zlepšit integraci s externími daty (databáze, XML). Vypadá to docela zajímavě. Tento LINQ výraz:
Je mi líto, zase to bude o C++ (ale i o Adě. Při programování člověk občas udělá chybu. A obvykle ocení její přesnou diagnostiku, neboť to je velice dobrý předpoklad k nápravě.
Některá prostředí poskytují velmi vtipný popis chyby - například překladač Ady GNAT poté, co nalezne neznámý identifikátor v následujícím kódu:
Ne, nebojte se s mou nesnášenlivostí to není tak horké. Jen mám rád miblog
Každý program obsahuje alespoň jednu chybu. A každý program v C++ obsahuje alespoň jednu zradu.
Včera se mi moc nechtělo pracovat na diplomce, tak jsem "z nudy" trochu potrápil svůj Debian.
Do teď jsem používal Etche (testing) s tím, že některé balíky jsem stejně tahal z unstablu. To obvykle když jsem toužil po nějaké nové desktopové fíčurce.
Skoro všichni používáme objektově orientované jazyky. Ale nekteří lidé vidí dál a používají objektové jazyky. Skoro všichni říkáme "volám metodu", ale někteří říkají "posílám zprávu". Skoro všichni si myslí, že na volání metod není nic zábavného. Někteří ale považují posílání zpráv za zábavnou hru. Skoro všem kontroluje jména metod při volání překladač, někteří ale nemají rádi, když jim do toho někdo kecá.
Do diplomky potřebuji trošku grafického uživatelského rozhraní. Budu tam mít taky nějaký legacy (češtináři prominou) kód v plain C. Své rozšíření budu psát v C++. Chci si to vyvíjet v Linuxu, ale musí to běžet i na Windows, protože s tím budou pracovat studenti a nemůžu nikoho diskriminovat.
Tak jsem měl konečně možnost pohrát si Windows Vista. Velmi jsem o to stál, protože mě zajímá vývoj softwaru na desktopu. Známý si to nainstaloval na vmware a já jsem si stáhl jeho obraz.
Když píšu program, identifikátory dělám zásadně anglické. Komentuji taky anglicky a zjistil jsem, že mě to nutí líp programovat.
Samozřejmě se anglicky vyjádřuji hůř, než česky. Takže pokud jsem schopen napsat dobrý (jednoduchý) anglický kometář, znamená to, že mám program rozumně strukturovaný a komentované celky mají jasně vymezenou funkci.
Občas takový kometrář nejsem schopen napsat. To má zpravidla dva důvody.
Refactoring v Eclipse rulez!-)
O zásadním nedostatku běžných programovacích jazyků a jeho drzém řešení.
Minule jsem psal, jak jsem vyrostl z C++. Protože jsem asi nějak postižený při programování semestrálky v Javě se mi vybavil jeden krásný C++ hack.
Nedávno se tu psalo o fork-bombě. Velmi mě to zaujalo, tak jsem si takového milánka zkompiloval a spustil.
Jako IRC klienta používám výborný program xchat. Rád bych tento program občas používal i pod Windows. Bohužel ačkoliv je software GPL, windozí binárka je třicetidenní shareware. Jelikož jsem nedávno po windows zkoušel překládat jednoduchou GTK aplikaci pomocí mingw, řekl jsem si, že bych si mohl vyrobit vlastní freewarovou binárku. Jak u mě bývá ve windows v poslední době zvykem, zvrhlo se do v drsné hackování
Zrovna jsem poslal jeden mail z Gmailu. Neznal jsem přesnou adresu adresáta, ale našel jsem ji podle pár písmenek z domény v seznamu kontaktů. Napsal jsem zprávu, nechal zkontrolat na překlepy. Příloha se nahraje hezky na pozadí a vše se automaticky uloží pro případ výpadku spojení nebo prohlížeče.
Před pár týdny jsem narazil na zprávu o novém operačním systému od Microsoft Research jménem Singularity. Mělo to být něco nového, bezpečného, navrženého od nuly, žádné tweaklé Windows ani Unix. Neodolal jsem a vrhl jsem se na studium příslušného reportu. Předpokládám, že ne každý má dost času a chuti číst takové reporty, tak přináším pár postřehů.
Brouzdal jsem na disku a narazil na jeden svůj starý projekt. Něco přes 10k řádek v C++ a něco málo v Object Pascalu.
Tuhle jsem seděl ve školní knihovně a četl dobrou knížku o návrhových vzorech, která byla ovšem příšerně přeložena*. Když v tom jsem od vedlejšího stolu zaslechl jakou si "technickou" diskusi. Seděla tam parta lidí, evidentně zobáci-prváci, měli před sebou notebook a nějakou knížku o Linuxu pro začátečníky. Na noťasu běžely obligátní XPéčka a na nich cygwin.
Ti lidi se hádali, jestli je Linux case-sensitive při práci se soubory, či nikoliv. V příručce psali, že ano, ovšem chlapečkovi před notebookem se podařilo vymazat soubor příkazem rm POKUS
soubor, jež před tím vytvořil příkazem touch pokus
. A nešlo mu to do hlavy.
Dostal se mi do ruky adresář plný *.c
a *.h
souborů. Jinak nic, žádný Makefile
. Ale je to program, který by měl chodit, jak to zkompilovat?
Použil jsem to nejjednodušší, co (v dané chvíli) ještě funguje:
gcc *
Překladač bez řečí vyblil a.out
, které dokonce funguje.
Vyzkoušel jsem live CD Zeta OS, opět na doporučení OS News.
Zeta je potomek operačního systému BeOS. Otcem BeOS je Jean-Louis Gassée, bývalý zaměstnanec Apple, který jej vyvinul za použití peněz Seymoura Craye, slavného tvůrce superpočítačů. Tedy samý vizionář . Současná situace je taková, že Zetu vyvíjí německá společnost yellowTab, která sice má práva na původní zdrojové kódy, ale nevlastní značku BeOS. Taky existuje snaha o opensource reimplementaci - Haiku.
Tak jsem na radu OS News vyzkoušel demo k eComStation, což je pohrobek OS/2 od IBM. Byl jsem na ten kus softu docela zvědavý, kdysi (tak před deseti lety) jsem viděl na Invexu prezentaci OS/2 Warp jakožto konkurence Windows 95. Od té doby OS/2 živoří, znám jen jednoho aktivního uživatele (a to mám asi ještě štěstí), IBM se přeorientovala na Linux a tohle prodala.
Tak jsem si přečetl jeden skvělý článek (nejraději bych použil anglický výraz "paper" - případovou studii vývoje projektů Apache a Mozilla, na který jsem narazil v této zprávičce.
Tuhle jsem při googlení narazil na starý článek o GNOME 1.0. Byl tam i screenshot, ze kterého se mi udělalo zle.
Zatímco děrné štítky z padesátých let jdou dnes bez problémů přečíst, dnešní vypálená DVD jdou do pekla za dva roky...
Včera jsem četl pár článků, o co nevidět příchozích KDE 3.5, o plánech do KDE 4 a velmi zajímavou věc o porodních bolestech Longhornu. A vzpomněl jsem si při tom na Katedrálu a tržiště (cz).