Byla vydána verze 1.96.0 programovacího jazyka Rust (Wikipedie). Podrobnosti v poznámkách k vydání. Vyzkoušet Rust lze například na stránce Rust by Example.
Společnosti IBM a Red Hat představily Project Lightwell s investicí 5 miliard dolarů. Jedná se o důvěryhodné clearingové centrum pro bezpečnost open source softwaru a zabezpečení dodavatelských řetězců s novým AI modelem a globální skupinou více než 20 000 softwarových inženýrů. Služby centra budou dostupné prostřednictvím komerčních předplatných. Project Lightwell staví na iniciativách jako Anthropic Glasswing nebo OpenAI Trust Access for Cyber.
Open source 3D herní a simulační engine Open 3D Engine (O3DE) byl vydán v nové verzi 26.05. Podrobný přehled novinek v poznámkách k vydání.
Český stát by v budoucnu mohl provozovat vlastní alternativu ke komunikačním aplikacím typu WhatsApp, Signal, Telegram, Facebook Messenger a podobně. Cílem je zajistit bezpečnou datovou komunikaci pro stát a jeho důležité subjekty, jako jsou bezpečnostní složky, ministerstva a další organizace.
Už za týden, ve čtvrtek 4. června, se v Národní technické knihovně v pražských Dejvicích uskuteční další konference věnovaná tématům spojeným s IPv6 - Den IPv6. Program akce a registrační formulář jsou k dispozici na webu akce. Kapacita konference je omezená, proto organizátoři doporučují, aby se vážní zájemci přihlásili včas (k dnešnímu dni zbývá přibližně 30 volných míst). Konferenci Den IPv6 2026 organizují i letos společně sdružení CESNET, CZ.NIC a NIX.CZ.
Zařízení Steam Deck OLED bylo znovu naskladněno, ale vlivem rostoucích cen pamětí a úložišť má novou, vyšší cenovku. Steam Deck OLED 512 GB stojí nově 779 EUR (stál 569 EUR) a Steam Deck OLED 1 TB stojí 919 EUR (stál 679 EUR). Samotné zařízení se nijak nezměnilo a nové ceny tedy pouze odráží aktuální náklady na komponenty a další globální logistické výzvy, se kterými se potýká celá branže.
Český telekomunikační úřad zahajuje novou etapu využívání vysokofrekvenčního rádiového spektra v pásmu 26 GHz. Toto pásmo bude od 1. 7. 2026 otevřeno pro provoz moderních bezdrátových sítí, zejména sítí páté generace (5G), pevných bezdrátových přístupových sítí (FWA) a lokálních či průmyslových sítí určených například pro výrobní areály, logistická centra nebo technologické kampusy. Současně s otevřením pásma 26 GHz přistoupil ČTÚ ke zpřístupnění informací o využívání rádiových kmitočtů v tomto pásmu.
Logitech představil myš Signature Comfort Plus M850 L s polstrovanou opěrkou dlaně pro větší pohodlí a sadu s touto myší a klávesnicí s integrovanou opěrkou dlaní Signature Comfort Plus Combo MK880.
Gaël Duval se rozepsal o novinkách a plánech Murena a /e/OS. Počet uživatelů telefonů Murena a mobilního operačního systému /e/OS bez aplikací a služeb od Googlu se blíží 100 000. Ambicí je, aby se /e/OS stal třetí mobilní platformou v Evropě i na světě, s potenciálem dostat se i na PC. Blíží se vydání nové verze 4 s funkcemi zálohování a obnova, import e-mailů z Gmailu a rozpoznávání hlasu. Murena Workspace přinese videohovory, elektronický podpis a správu zařízení (MDM).
Dnes a zítra probíhá Ubuntu Summit 26.04. Na programu je řada zajímavých přednášek. Sledovat je lze na YouTube. Úvodní slovo měli Mark Shuttleworth a Jon Seager.
Po dlouhé době jsem si zkusil napsat nějakou prkotinu v dc pro kterou jsem potřeboval formátovat výstup. Prostředky dc jsou v tomto směru skutečně omezené. No skoro by se dalo napsat prakticky žádné. Prostě nic. Všechno si člověk musí napsat sám. Naštěstí v tomto případě toho nebylo moc.
mysql: ERROR 1005 (HY000) at line 21: Can't create table './dbname/tablename' (errno: 150)
Informativní chybová hláška, že? Z toho je na první pohled jasné, v čem je chyba. No přece ...
O víkendu jsem si vzal do vlaku na čtení Algoritmy, Datové struktury a programovací techniky od Computer Pressu. Ta kniha je plná chyb, popisky v textu nesouhlasí s obrázky, na mnoha místech nesmyslně přeložená a spousta dalších podobných nepříjemností. Část z toho vzniklo zjevně při překladu, ale dost hodně je také věcí velmi mizerné redakce. To je ale u Computer Pressu celkem obvyklé, skoro by se dalo říct, norma. Nicméně mě to přimělo si některé příklady zkusit vyřešit jen tak cvičně.
V diskusi pod článkem o lua na rootu je odkaz na jeden benchmark skriptovacích jazyků. Řekněme si na rovinu, že zvolená úloha je pro skriptovací jazyky zcela nevhodná. Nicméně mě zajímalo jak na tom bude erlnag, pro který je taková úloha snad ještě nevhodnější. Výsledkem jsem byl docela překvapen. HiPe verze erlangu se překvapivě dostala s relative speed 14.75 mezi Java 1.4.2 a Io 20070410 Vector a bez HiPe s relative speed 47.5 mezi Lua 5.1 a ocaml bytecode 3.09.2. To rozhodně není špatné.
To si jednou takhle brouzdám po CPANu a hledám binding do Erlangu a pak mě napadne kouknout se kolem. Kromě toho, že jsou tam k nalezení moduly k telekomunikačním výpočtům Erlang B a C, které vymyslel ten člověk po němž dostal Erlang jméno (jo to je ten chlápek jehož obrázek se objeví na začátku a na konci toho Monthy Pythoního filměčku Erlang The Movie), tak je tam k nalezení i takový srandovní modul jménem fp.
Jedna z výtek na adresu erlangu, co jsem zaznamenal, je nemožnost napsat rekurzivní funkci přímo v shellu. Přitom je to spíše příznak nedostatku informovanosti. Přiznám se bez mučení, že jsem to taky ze začátku nevěděl, protože k tomu je potřeba devilish ingenuity (slovy Joe Armstronga na straně 57). Ve výše odkazované disertační práci je jako ukázka výpočet faktoriálu.
Když zdrojový kód zkrátíte a zároveň vám vzroste rychlost exekuce, tak si můžete být skoro jistí, že už do toho pomalu pronikáte. Prohlížel jsem si takhle nějaký kód v erlangu a viděl jsem tam takovou hezkou vychytávku (stejná myšlenka je použita níže ve funkci mapper/2 a collector/2), kdy dotyčný procházel pomocí lists:foldl list a zároveň z něho vytvářel slovník (dict). No a pak mě napadlo jestli bych taky nemohl přepsat stavový algoritmus z mého prvního erlangového modulu na rekurzivní, ale se schopností foldl/foldr funkce a pak ostatní funkce jako map a perms přepsat se stejným trikem. Zároveň mi vrtalo hlavou jestli se to náhodou nezrychlí a byl jsem dost překvený, nárust výkonu byl více než dvojnásobný a kódu dost podstatně ubylo (dostal jsem se na 1,1 us což je ani ne 2x víc než v C napsaný Alghoritm-Permute pro perl!).
Ve funkcionálních jazycích se spousta (většina?) algorimů zapisuje jako rekurze. Nejinak je tomu i u erlangu. Jenže rekurze je pro normální dnešní CPU fuj a tak se to řeší (a nejen ve funkcionálních jazycích) tzv. tail rekurzí. Prakticky jde o nahrazení rekurze cyklem a nealokuje se kvůli tomu další paměť na zásobníku, ale různé jazyky se s tím umí vyrovnat různě.
Nedávno jsem narazil na úžasný nový (pro mě), průmyslově ověřený funkcionální jazyk. Jmenuje se Erlang. Jeho vlastnosti mě přiměly říct wow! Posuďte sami. Za pozornost stojí například distributed (no on je to taky tak trochu komplet OS co se dokáže tvářit, že jede jako by jeden homogenní OS na heterogenním HW) a Hot code upgrade (viz example 14), nebo "Mnesia is a nice example of the power of Erlang: in how many languages could you write a fully-featured industrial-strength distributed DBMS in less than 20,000 lines of code?"
Při ladění jednoho kusu kódu jsem narazil na další perlovou nechutnost. Vyzkoušejte sami:
perl -le 'sub a {@{$_[0]}}; sub b {a($_[0]), a($_[1])}; print scalar b([1,2], [3,4,5])'Jaký by jste čekali výsledek? Já jsem čekal 5 a ono 3. Skoro bych to považoval za bug. Proč 5? Protože perl -le 'sub a {@{$_[0]}}; sub b {a($_[0]), a($_[1])}; print scalar(@c=b([1,2], [3,4,5]))'
Většinou prograuju v Perlu, ale zároveň po očku sleduju Python. Můj pocit z něj se vyvýjí v takových vlnách, chvilku se mi líbí hodně, chvilku méně a tak pořád dokola. Některé věci se mi v něm líbí, ale poslední dobou je pocit spíše rozpačitý. Jeho syntaxe je, jak bych to jen řekl, příliš košatá. Ony se dělají vtípky na to, že Perlový zdroják je před komprimací k nerozeznání od stavu po komprimaci. Hloupej vtípek, ale syntaxe Perlu je vlastně strašně jednoduchá až primitivní, to se ale o Pythonu nedá říct ani omylem. Už jen těch klíčových slov! I když ke klíčovým slovům Perlu přihodím všechny ty podivné znaky se speciálním významem, tak to nebudu ani na desetině syntaktických prvků Pythonu. Jo, já vím, Lisp je Lisp, ale Perl má taky něco do sebe. (No a radši nebudu ani zmiňovat dc, že) A proč to všechno píšu?
Tak jsem uvnitř podmínky grepu potřeboval vyhodnotit nějakou složitější věc a měl jsem možnost napsat to jako annonymní sub a nebo do. Položil jsem si otázku co bude rychlejší?
Dnes to bude jen taková drobnost. Implementace basename a ověření platného jména proměné.
Občas by člověk potřeboval něco naprogramovat v BASHi a nepamatuje si, nedělá to často a tak. No a k tomu by se mu hodily nějaké tu základní konstrukce vytesané do webu.
Další z řady šíleností. Eratosthenovo síto v dc. Rychlost nic moc, ale padlé na hlavu je to dost.
dc -e '?dSavSb[SadLa+d1r:cdla>e]se[dlexsz]sd1[1+d;c0=ddlb>f]dsfx[p]sdlaSb1lfx'
Updated:
Trošku rychlejší verze inspired by Yeti.
dc -e '?dSavSb[d1r:cSadLa+dla!<e]se[ddSa2*Lad*lexszsz]sd3[d;c0=d2+dlb!<f]dsfx[p]sdlaSb2p3lfx'
Pokud někdo vyžaduje výsledek na jednom řádku tak koncovou část [p]sdlaSb2p3lfx je možné nahradit [[,]Pdn]sdlaSb2n3lfx10P
P.S.: Jsem si vědom, že zbytečně plýtvám pamětí (nad 100000 je to prakticky nepoužitelné), ale myslím, že by to hodně zpomalilo dělat nějaké přepočty indexů (nahrazením d1r:c za d2/1r:c a d;c za d2/;c se spotřeba paměti zmenší na polovinu, ale taky bohužel rychlost) a hlavně jsem línej to předělat ;-) .
Tak jsem se mrknul co dovede dc. Fakt užitečná hračička. Tak třeba jak udělat program pro nalezení největšího společného dělitele. Brnkačka:
dc -e '[r]sb[szpq]sc[sadlarla>b~d0=cldx]sd??ldx'No já vím, že jsem cvok, ale tahle věcička se mi fakt líbí.
tac v sedu sed 'x;1!H;$!d;x'už není tak c00l, už vím co chci mít v podpisu teď.
Updated: Takže to mám blbě a až budu mít čas tak to zkusím přepsat.
Updated2: Po obědě se makat nechce, tak konečně fungující verze.
dc -e '[rSadLar%d0<a]sa??laxsap'A to s použitím jediného registru. Pro ty co vyžadují GUI tu mám vylepšenou verzi :-)
dc -e '[rSadLar%d0<a]sa[a=]P?[b=]P?laxsa[result:]Pp'
Updated3: Zkrácení o jeden znak a ochrana před poškozením od uživatele.
dc -e '??[rSadLar%d0<a]dsaxsap' dc -e '[a=]P?[b=]P?[rSadLar%d0<a]dsaxsa[result:]Pp'
Updated4: Nějak nemám den nebo co. Ještě kratší verze.
dc -e '??[dSarLa%d0<a]dsaxsap' dc -e '[a=]P?[b=]P?[dSarLa%d0<a]dsaxsa[result:]Pp'
Updated5: A ještě jeden znak.
dc -e '??[dSarLa%d0<a]dsax+p' dc -e '[a=]P?[b=]P?[dSarLa%d0<a]dsax+[result:]Pp'
Nemaje klasického informatického vzdělání byl jsem toho ve škole ušetřen. O čem mluvím? Všechny ty algoritmy pro třídění a tak. No a pak to člověk potřebuje a neví. Když už to zjistí, tak si to chce vytesat do kamene. Ehm do webu. Tak taky rozšířím zbytečně duplicitní stránky, na kterých je taková, nebo onaká implementace quicksortu. Až to zas někdy budu potřebovat a jestli bude abíčko ještě existovat, tak to třeba tady najdu.
Nemám rád lidi, co se přímo rozplývají nad FF nebo Mozillou. Mám u nich pocit, že jsou přinejmenším zaslepení. Přemíra ,,chytrosti`` některých progremů je totiž na pováženou. Krom nedomyšleností, které jsem už párkrát uvedl jinde, jsem narazil na jednu, kterám mě ,,pobavila``. Kdo máte rádi FF a Mozillu raději nečtěte dále, protože se vašemu miláčkovi dostane vybraných slov.
Tak jsem zase potřeboval něco naprogramovat. Člověk by si řekl, když nevím jak na to v bashi, použij něco silnějšího, třeba perl. Ale to bych nebyl já, kdybych to aspoň nezkusil. Takže máme nějaký textový soubor s daty z měření a v něm za komentářem jsou popisky jednotlivých sloupečků. Kdyby to byla jen jedna série s jedněmi popisky, tak je to naprosto jednoduché, ale těch sérií je víc a jak na potvoru každá má jiné popisky. No a já z toho chci vytvořit příkaz pro gnuplot s tím, že si uživatel může vybrat kterou sérii a který sloupeček chce zobrazit. To vyžaduje mít možnost načíst jednotlivé popisky do proměných a pak se přes indexy k nim dostat při zpracování parametrů na příkazovém řádku.
Občas je potřeba udělat ve scriptu zpracování parametrů a když už, tak pořádně. Nejdřív jsem to dělal všechno přes bash a jeho expanze a dokázal jsem si udělat prakticky cokoli, co jsem si usmyslel, ale bylo to trošku nepřehledné a pracné. A pak jsem objevil getopt (getopts v bashi je taková hračka, která mě teda rozhodně neuspokojila).
V článku jsem se dočetl o zajímavé knížce a nejen já. Kolega ji dokonce pořídil do firmy. Tak jsem si v ní zalistoval. Narazil jsem na dobrej příklad kdy nepoužít sed. Je to hned první příklad použití editoru sed 3.4.1 Vyhledávání souborů v adresářích v PATH.