Byla vydána OpenIndiana 2026.10. Unixový operační systém OpenIndiana (Wikipedie) vychází z OpenSolarisu (Wikipedie).
Americký výrobce polovodičů onsemi (ON Semiconductor) zrušil plány na rozšíření výroby v rožnovském závodě v Česku za dvě miliardy dolarů (podle aktuálního kurzu zhruba 43,5 mld. Kč). Důvodem je vývoj na trhu.
O víkendu probíhá na FIT VUT v Brně konference OpenAlt 2026 o otevřeném softwaru a datech, IT bezpečnosti, DIY a IoT. Na programu je spousta zajímavých přednášek. Pokud jste v Brně, stavte se. Vstup zdarma. Přednášky lze sledovat i online na VHSky a YouTube.
Qualcomm uzavřel víceletou dohodu se SpaceX. Bude dodávat rádiové technologie, baseband jednotky a software pro plánovanou pozemní 5G síť Starlink Mobile. Výstavba má zahrnovat desítky tisíc základnových stanic v USA. Zahájení nasazování se očekává v roce 2027. Qualcomm dohodu označuje za svůj dosud největší 5G kontrakt.
Google rozšířil Cloud Vulnerability Reward Program. Nově nabízí odměnu až 250 tisíc dolarů za vysoce závažné architektonické bezpečnostní chyby označované jako Root-in-Cloud.
V březnu byla oznámena spolupráce GrapheneOS s Motorolou. Nejnovější vlajka Motorola Signature 27 je první Motorola s oficiální podporou GrapheneOS. GrapheneOS (Wikpedie) je varianta Androidu zaměřující se na bezpečnost a soukromí.
Omarchy (Wikipedie) je linuxová distribuce s dlaždicovým správcem oken Hyprland. Založena je na Arch Linuxu. Vydána byla v nové verzi 4.5.0. Nově také pro Apple Silicon, konkrétně pro M1/M2/M3/Neo MacBooky.
Byla vydána nová stabilní verze 8.3 webového prohlížeče Vivaldi (Wikipedie). Postavena je na Chromiu 156 s bezpečnostními opravami z Chromia 157. Přehled novinek i s náhledy v příspěvku na blogu.
Jak si můžete přečíst ve zprávičce, dnes vyšlo Pharo 1.4. Tento zápisek se ale bude věnovat tomu, co se chystá do další verze - serializeru Fuel. A protože to není úplně obyčejný serializer objektů, posouvá možnosti Smalltalku zase o kousek dál.
Způsobů, jak ukládat objekty do souborů, bylo a je ve Smalltalku celá řada. V první řadě je to samozřejmě samotná image jako obraz kompletní objektové paměti. EToys používají SmartRefStream přizpůsobený především přenášení projektů, existují serializery určené pro ukládání objektů do databází apod. Přesto se pár vývojářů rozhodlo vytvořit nový moderní rychlý serializer - a tak světlo světa spatřil Fuel.
Hlavní předností Fuelu je, že na rozdíl od většiny ostatních serializerů, se nezalekne žádného typu objektu a dokáže se úspěšně vypořádat i s takovými situacemi, kdy se například struktura třídy nahrávaného objektu změnila. A protože ve Smalltalku je vše objekt, znamená to, že serializovat lze cokoliv.
V praxi je, krom práce s běžnými datovými objekty, nejzajímavější možnost použít Fuel k přenášení tříd a metod a využít tak Fuel jako alternativní způsob nahrávání balíčků do image. Klasické soubory se zdrojovými kódy vyžadují samozřejmě kompilaci, která je sice ve Smalltalku značně přímočará a tedy i rychlá, ale přeci jen... Navíc v rukou balíčkovacího a verzovacího systému Monticello se se zdrojovými kódy provádí ještě celá řada analýz a porovnávání, takže výsledek nepatří k nejrychlejším. Pro jistotu doplním, že pokud ve Smalltalku chcete se zdrojovými kódy pracovat v rámci jeho integrovaného vývojového prostředí a nikoliv jen jako s holými zdrojovými soubory, musíte je mít zkompilovány (převedeny na objekty). Proto je možnost rychle přenášet zkompilované balíčky v binární formě mezi různými image přínosná.
Otevírá se tak například možnost do ořezané malé konzolové image rychle dohrát třeba kompletní grafické prostředí s vývojovými nástroji. Minulý týden jsem provedl test prověřující právě toto a výsledné video umístil na youtube: http://www.youtube.com/watch?v=pOyvXamn3Y4. Operace, která zde zabere přibližně 15 sekund a většina z toho je ještě inicializace, na projektovém CI serveru Jenkins s pomocí Monticella zabere přibližně 11 minut. Výslednou image lze během několika sekund ořezat zpět.
Když už máme možnost nahrát zdrojové kódy bez kompilace, znamená to, že ani nepotřebujeme kompilátor. Ten je u původního Smalltalku-80 součástí image, což znamená, že Smalltalk je program postupně kompilující sama sebe. To má celou řadu zajímavých důsledků a výhod, ale občas můžeme usoudit, že kompilátor jednoduše nechceme. Třeba pro nasazení výsledných programů nebo proto, že v rámci modularity chceme mít kompilátor jako volitelnou součást systému. Hodí se to také proto, že současný kompilátor v Pharo je už značně vousatá záležitost neoplývající zrovna moderním návrhem. Ostatně, kdy naposledy jste třeba viděli třídu Parser dědit ze třídy Scanner? Kompilátor ve Pharu proto čeká výměna za projekt Opal. Jestli to bude už v následující verzi 2.0 zatím není zcela jasné, kompilátor je jedna z nejstarších částí systému a image je jím pěkně prožraná. Nicméně i tak se mi podařilo ověřit možnost mít image s nahraným Fuelem, ze které byl odebrán kompilátor (ne zcela důsledně, ale nezůstala v ní žádná z jeho tříd). Této image bylo možné předat jako argument balíček, který nahrála a spustila. Samozřejmě tímto balíčkem může být i samotný kompilátor. Otevírá se tak cesta pro další modularizaci a čištění jádra systému.
Nahrávání balíčků se zdrojáky přes Fuel je sice užitečná věc, ale poměrně nudná a mysl smalltalkera zvyklého na všeliké zvrácenosti příliš neuspokojí. Fuel však lze použít i k zajímavějším věcem vycházejícím z toho, že ve Smalltalku i kontext zásobníku tvoří objekty. To může mít celou řadu praktických uplatnění. Pro webové aplikace to je možnost serializovat kontinuace. A možnost přenášet otevřený debugger z jedné image do druhé sice na první pohled vypadá poněkud akademicky a zběsile, ale v okamžiku, kdy používáte malou produkční image, která ani debugger třeba nemá, může být možnost při chybě přesunout stav výpočtu do jiné image a tam jej začít ladit, k nezaplacení. Vlastně stačí výjimku zpracovat pomocí jediného příkazu
FLSerializer serialize: thisContext toFileNamed: 'PharoDebug.fuel'.
a pak tento soubor v jiné image otevřít pomocí kódu:
| aContext | aContext := FLMaterializer materializeFromFileNamed: 'PharoDebug.fuel'. Debugger openContext: aContext label: 'This is the new debugger!' contents: nil
Tím ale výčet věcí, ke kterým lze Fuel použít, zdaleka nekončí. Jeho autoři nad ním například vytvořili systém, který umožňuje mít libovolný podgraf objektů v externí paměti napojené na image pomocí speciálních proxy objektů. A protože ve Smalltalku je vše objekt... ale to už je zase jiná pohádka.
Tiskni
Sdílej:
Používat GUI není nezbytně nutné (Pharo má verze bez grafického rozhraní). Také existují rozšíření pro snazší scriptování (Coral). Smalltalk je povětšinou o něco rychlejší než Ruby nebo Python, je jednodušší a má odrazující explorativní IDE
Většinou se používá ve spojitosti s webovým frameworkem Seaside. Moc si nerozumí s nativním UI. Na všechno se samozřejmě nehodí, ale použitelný je 
use Data::Dump::Streamer;
sub cl {
my $a = 0;
sub {$a++}, sub {$a--};
}
my @fun1 = (cl, cl);
Dump(\@fun1); # Sup s tim do DB
Kdyz jsem si se smalltalkem hral, tak se mi to nepodarilo, ac by clovek cekal, ze u objektoveho jazyka to bude trivialni.