Byla vydána nová verze 1.58 sady nástrojů pro správu síťových připojení NetworkManager. Novinkám se v příspěvku na blogu NetworkManageru věnuje Josephine Pfeiffer. Vypíchnout lze možnost nmtui zobrazit nastavení Wi-Fi jako QR kód nebo podporu CLAT (464XLAT) a tunelů GENEVE (Generic Network Virtualization Encapsulation).
Zákaz používání mobilních telefonů a dalších elektronických komunikačních zařízení ve školách, jehož uzákonění navrhli jako poslanci premiér Andrej Babiš (ANO) a ministr školství Robert Plaga (za ANO), dnes podle očekávání vláda podpořila. Novinářům to oznámil Babiš, podle Plagy byla podpora kabinetu jednomyslná. Účinnost předkladatelé navrhují od 1. září 2027. Podle opoziční ODS je plošný zákaz líbivé populistické opatření namířené proti digitální gramotnosti dětí.
Vládní CERT upozorňuje (𝕏) na zranitelnost ve WordPress Core: CVE-2026-63030 s přezdívkou wp2shell. Zranitelnost typu vzdálené spuštění kódu (RCE) bez nutnosti autentizace umožňuje útočníkovi spouštět libovolný kód prostřednictvím endpointu WordPress REST API Batch. Ke zneužití není vyžadován platný uživatelský účet ani interakce uživatele. Úspěšné zneužití může vést ke kompletnímu kompromitování webové stránky a souvisejících dat. Zranitelnost postihuje verze WordPress 6.9.0 až 6.9.4 a 7.0.0 až 7.0.1.
Evropská komise (EK) vyměřila čínskému internetovému prodejci AliExpress pokutu 550 milionů eur (13,3 miliardy korun) za porušení povinností vyplývajících z nařízení o digitálních službách (DSA). Platforma podle EK řádně neposuzovala a neomezovala rizika související s prodejem nelegálních, nebezpečných nebo padělaných výrobků na svém internetovém tržišti. Komise zároveň firmě nařídila přijmout nápravná opatření. Podle AliExpressu je pokuta nepřiměřená.
Ruffle, tj. open source emulátor Flash Playeru napsaný v Rustu, byl vydán ve verzi 0.4.0. Ke stažení je také na Flathubu. Přímo ve webovém prohlížeči lze vyzkoušet online dema nebo vlastní swf soubory.
HollowByte je zranitelnost typu Denial of Service (DoS) v kryptografické knihovně OpenSSL. Útočník může odesíláním škodlivého payloadu o velikosti pouhých 11 bajtů zaplnit paměť serveru. OpenSSL před ověřením dat vyhradí nepřiměřený blok paměti (až 131 KB). Server pak čeká na data, která nepřišla. Zranitelnost je opravena ve verzích OpenSSL 4.0.1, 3.6.3, 3.5.7, 3.4.6 a 3.0.21.
Ve španělské A Coruñě probíhá GUADEC 2026, tj. letošní konference vývojářů a uživatelů desktopového prostředí GNOME. Videozáznamy přednášek jsou k dispozici na YouTube.
Společnost Collabora ve spolupráci s Valve vyvíjí Holo Core, tj. port Arch Linuxu pro ARM64 procesory (AArch64), který bude pohánět VR headset Steam Frame. Pro testování Arch Linuxu pro AArch64 jsou k dispozici binární balíčky, zdrojové kódy i kontejner pro Docker nebo Podman.
Mikroprocesor Zilog Z80 byl oficiálně uveden na trh před 50 lety, tj. v červenci 1976. Výroba mikroprocesoru skončila v roce 2024.
Výzkumníci ze společnosti ESET objevili 11 zapomenutých UEFI shim zavaděčů, které byly podepsány společností Microsoft, a které umožňují útočníkům obejít ochranu UEFI Secure Boot na většině zařízení. Microsoft je zneplatnil (přidal jejich hash do databáze dbx) v rámci aktualizace Patch Tuesday dne 9. června 2026. Uživatelé Linuxu mohou databází aktualizovat pomocí LVFS. Ověřit zneplatnění zavaděčů lze pomocí skriptu uefi-dbx-audit. Jedná se o CVE-2026-8863 a CVE-2026-10797.
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:
from c in customers, o in c.Orders
where o.OrderDate.Year == 2005
orderby o.Total descending
select new { c.Name, o.OrderID, o.Total }
se vlastně převede na něco takového:
customers.
SelectMany(c =>
c.Orders.
Where(o => o.OrderDate.Year == 2005).
Select(o => new { k1 = o.Total, v = new { c.Name, o.OrderID, o.Total } })
).
OrderByDescending(x => x.k1).
Select(x => x.v)
Což je mix všelijakých anonymních implicitně typovaných lambda-udělátek
. Ještě pro zajímavost, tato rozšiřující metoda:
public static T[] Slice<T>(this T[] source, int index, int count)
{
T[] result = new T[count];
Array.Copy(source, index, result, 0, count);
return result;
}
umožní dělat plátky ze všech typů s indexerem, tedy například:
int[] digits = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
int[] a = digits.Slice(4, 3); // Same as Extensions.Slice(digits, 4, 3)
A teď to přijde: skoro si myslím, že je to celé blbě

Ty fíčury jsou mocné a asi i užitečné. O tom nemíním polemizovat, to ukáže čas. Problém je, že tenhle nános dělá z C# úplně jiný jazyk.
Myslím, že je krásné a dokonce důležité mít mocný ale zároveň jednoduchý "minimalistický" jazyk. Jazyk, kde jsou konstrukce ortogonální, kde nejsou žádné temné kouty. Takové jazyky mají šanci být nadčasové, neskončí se svým hype.
Dobrým příkladem takových jazyků je Lisp a SmallTalk. Ale taková Java se tomu hodně blíží (nebo spíše blížila, taková konstrukce pro výčtový typ z jazyka trochu "čouhá"). A C# ve verzi 1.0 byl prostě skvělý - jednoduchý, řešil některé problémy Javy a to obvykle velmi elegantně, zkrátka dílo génia.
Jenže toto nabalování fíčur z něj dělá míň uspořádanů hromádku vlastností (jako Object Pascal v posledních verzích), nemůžu si pomoct.
Podle mne jedna z nejlepších vlastností platformy .net je možnost efektivně kombinovat různé jazyky. Kdysi před mnoha zimami jsem psal pod Win32 program, kde různé moduly byly v C++ ala Borland, C++ ala Microsoft a Delphi. Dosažení kompatibility nebylo jednoduché. Když se tehdy objevily první informace o .netu, byl jsem z možného mixování jazyků nadšen. (Pozn: Java bytecode je dost natvrdo navržen pro Javu, překládat do něho jiné jazyky není jednoduché.) CLR rocks!
Jak už jsem naznačil, proti LINQ a funkcionálním udělátkům nic nemám, ba právě naopak. Jenže proč přidávat tyto věci do "dokonalého" jazyka a tím ho destabilizovat. Není lepší udělat nad dotnetem nové dotazovací/funkcionální jazyky? Když je platforma pro absobci nových jazyků dobře naladěna? Takové nějaké jazyky už jsou, třeba Python, F# a Boo.
Více jazyků v jednom projektu je sice možné, ale ne vždy úplně pohodlné. Ale to se dá vyřešit velmi elegantně, v C# je konstrukce #region, která slouží k oddělování úseků kódu. Stačí ji doplnit o popis syntaxe a rázem je možnost mít v jedné třídě každou metodu v jiném jazyce. Třeba:
class Pokus
{
// C# je takové "lepidlo", jeho syntaxe je implicitní
public static void Main()
{
System.Console.WriteLine(pow(10));
}
#region syntax("Ada")
function pow(a : integer) returns integer is
begin
return a*a;
end;
#endregion
}
Samozřejmě to není úplně bez problémů, spolupráce jazyků je sice CLR teoreticky zajištěna, ale "Devil is in the details". Každopádně využívat různé jazyky dle potřeby (vlastně jako dnes lepíme na projekty knihovny) by nemuselo být špatné. Pamětníci z časů DOSu zavzpomínají na oblíbenou kombinaci Turbo Pascal + vkládaný assembler.
Tiskni
Sdílej:
pre mňa sú java aj c# obmedzené deriváty inak skvelého, no nepochopeného, jazyka. Okrem toho ešte uznávam aj perl (ktorý, uznávam, je takisto ťažký na pochopenie).
nevraviac napr okrem spomínaných Lisp a Smalltalk o Objective C, Prolog, ... 1000 ľudí 1000 chutí (resp, ako sa nás isté trendy snažia presvedčiť 1000 ľudí, len jedna správna chuť)
Koncepce oddělených jazyků má jeden dost podstatný problém, a to je ten, že mezi jazyky se pak musí komunikovat pomocí "interface", který zvyšuje režii a složitost programu. Je to tentýž problém, který řešil Linus při návrhu Linuxu. Proč Linus nedělal Linux jako mikrojádro s oddělenými moduly, ale zvolil makrojádro? Protože prostě koncepce "vše v jednom" (systému, programovacím jazyce) vede k vyšší efektivitě a omezuje režii "interfaců". Ve svém důsledku je i zvládnutí jednoho složitého programovacího jazyka jednodušší a efektivnější, než několika oddělených. Takže s Vaším názorem, že je levnější mít několik oddělených jazyků s danými koncepcemi musím silně nesouhlasit. V praxi totiž vidím, že právě tento koncept je výrazně dražší a mnohdy vede k manažerským rozhodnutím jazyky sjednotit, případně omezit jejich počet na minimální. Takové velmi známé rozhodnutí je rozhodnutí NASA, která se po ekonomické analýze rozhodla vyvinout vlastní univerzální programovací jazyk, který a jen tento bude používat. Tak se zrodila Ada. A rozhodně zapomeňte na to, že by Ada trpěla nějakou minimalistickou koncepcí. Podle mého časem (i když třeba za hodně let) se ukáže, že právě koncepty minimalistických a ořezaných programovacích jazyků jsou příčinou značných ztrát a manažeři postupně přejdou k jazykům komplexnějším.
IL je sice zásobníkový assembler, který se dá ohnout různě, ale trpí závislostí na určitém formátu metadat a dalších věcí. A je tu plno předpokladů, které možnosti ohnutí velmi shazují. Ale to je na jinou debatu.
.
Jinak s tou mezijazykovou režijí máte samozřemě pravdu. Ve svém příspěvku píšu, jak nepříjemné bylo kombinovat kód ze dvou překladačů C++ a Delphi. Jenže mé návrhy vycházejí z předpokladu, že kooperace mezi jazyky je na dotnetu mnohem (řádově!) lepší.
Můžem diskutovat nakolik je tento předpoklad podložený...
Něco se už přeci jen zlepšilo, o Jave 1.5 jsem osobně schopný i uvažovat...
Je ale pravda, že s těmi operátory jsou trošku paličatí.
...pochopí to každý středoškolák...Nepochopí. Nechápou to ani vysokoškoláci na elektrofakultě. (A pro rejpaly jde i o absolventy průmyslovek)
Ale Graham razí Lisp, jak to sedne ke stoupenci C++? Že by pragmatismus používání v dnešním prosíťovaném, proknihovnovaném, prowindowsovaném světě?

za "úspechom" javy je princíp návrharov "čo neviem používať ja, to nevie používať nikto iný", resp, "tomuto by idiot porozumieť nemusel, toto by mohol zle zapísať, toto vyhodíme"
)
while (...) {
Integer i = hashtable.get (key);
int ii = i.intValue ();
ii++;
hashtable.put (key, new Integer (ii));
}
toto bol posledný klinec vo vzťahu java a ja. jednoducho mi vadilo, že základné datové typy (int, double, ...) nie sú objekty, ale reťazec už ano
BTW, funkce jako data...dejte mi vědět, až v C++ bude lambda...
Ta anonymní třída aspoň simuluje uzávěr, jak se v C++ dělají uzávěry?
class Phone; class FMRadio; class MP3Player; class PhoneWithFMRadio extends Phone, FMRadio;samozrejme, dá sa to napísať aj ako:
class PhoneWithFMRadio {
Phone phone;
FMRadio radio;
}
ale tým stratím možnosť
PhoneWithFMRadio my_nokia = new ...; t_mobile.registry (my_nokia); cz_republic."zaplat koncesionarske poplatky" (my_nokia);
Mám pocit, že právě kvůli jeho existenci se v Javě na vícenásobnou dědičnost implementace (nikoli rozhraní) vykašlali. A zdá se, že jsou i stoupenci mixinů pro C++.
"Functional Style in C++: Closures, Late Binding, and Lambda Abstractions"
http://okmij.org/ftp/cpp-digest/Functional-Cpp.html
Ani tak bych ji nepovažoval za ideální, ale takhle je to celkem bída. Myslím, že kdybychom odřízli prostředí, knihovny a podporu dodavatelů a ponechali jen jazyky a jejich kvality, byla by na tom o dost hůř.
Osobně mám pocit, že zastánci Pythonu a Javy se tak chovají, zatímco C++kaři a rubisté jsou příjemnější lidi...
BTW, ten odkaz už mám docela dlouho na seznamu k přečtení...
)
Že někteří railsaři mohou být fanatici, to bude ten "poturčenec horší turka"-syndrom. (To ale nemění nic na tom, že koleje jsou jako prostředí podstatně lepší než PHP...
) To se stává.
Jinak s kolegy pythonisty v okolí vycházíme bez problémů, koukáme tak nějak všichni na oboje a bereme si ponaučení. A ještě si navzájem pomáháme.
(On má Raymond s tím přínosem znalosti více jazyků, i kdyby je člověk aktivně nepoužíval, doclea pravdu.)
Nechápu, co má Turingův stroj společného s "rekurzivními jazyky", ať už ten termín znamená cokoliv...to je trida jazyku v Chomskeho hierarchii ( http://en.wikipedia.org/wiki/Chomsky_hierarchy ), jsou to prave ty jazyky, ktere turinguv stroj prijima, rekursivne spocetne jsou ty, u kterych je navic schopen ( v polynomialnim case ) rozhodnout, ze je neprijme... ;) v praxi (ehm... teorii ;) ) to funguje tak, ze nejaky problem zakodujes nejakou abecedou (pro jednoduchost vem 0 a 1 jako celou abecedu ;) ) a pak zkoumas, pomoci turingova stroje, jestli dane slovo (mnozina znaku) odpovida tvym predstavam (definovanymi pomoci gramatik). Jestli je turinguv stroj po precteni vstupniho slova ve vystupnim stavu, slovo prijima a odpovida tedy programu turingova stroje (resp. gramatice podle ktere vznikl). doporucuji: http://ktiml.mff.cuni.cz/~bartak/automaty/prednaska.html btw. taky se mi zda, ze Ruby-isti jsou mnohem militantnejsi nez python-isti - osobni zkusenost (viz take http://www.artima.com/weblogs/viewpost.jsp?thread=141312 )
). Snad téměř v každé diskuzi o Ruby či Pythonu sem narazil na rubysty kteří bezdůvodně začali na Python házet špínu a hnůj. Asi se Pythonu bojí, tak jsou proti němu tak vyhrazení
Možná sem se s tím setkal hlavně díky tomu, že jsem se rozhodoval mezi Ruby a Pythonem, takže sem četl hlavně články kde byly vlastnosti těchto jazyků srovnávány. Ale prostě ten zealotismus rubystů byl naprosto očividný... a možná to trošku i přispělo k tomu, že sem se rozhodl tradši pro Python (ale je to jen podružná věc, ty důvody byly racionální, né tohle
).
I generování přes XML má své meze
preto pri návrhu používam práve tento spôsob, núti ma premýšľať multiplatformovo. samozrejme, že mám možnosť obchádzať svoje vlastné mantinely. no a implementačným obmedzením je to, že generujem medzivrstvu (v mojom prípade Class::DBI). z xml navyše generujem len limitované featuresky, ak sa dajú (napr view). je to zošívané na mieru mojej súčastnej práce.
ale z-do ste kľudne mohol spomenúť