Výzkumníci ukazují, jak mohou otevřené tunely a IPv6 Extension Headers synchronizovat pakety do krátkých provozních špiček. V kontrolovaném experimentu naměřili přes 180násobnou koncentraci paketového toku vůči průměrné rychlosti odesílání — nikoli 180násobné zvětšení objemu dat. Článek obsahuje metodiku, limity měření i mitigace pro GRE, IPIP a další tunely.
Po velkém úspěchu prvního MobileLinux Hackdaye se vracíme do Českých Budějovic s druhým ročníkem. V pátek 30. října 2026 od 10:00 se v prostorách Jihočeské univerzity uskuteční Embedded & MobileLinux Hackday #2. Těšit se můžete na témata jako Immutable Linux na telefonech (BengalOS), U-Boot a upstream vývoj, AI optimalizace pro embedded systémy nebo otevřený hardware. Nebude chybět praktické hackování, sdílení zkušeností a možnost … více »
Dne 21. října 2026 vydal projekt Node.js bezpečnostní aktualizace opravující deset zranitelností, včetně jedné umožňující potenciální vzdálené spuštění kódu (RCE). Nejzajímavější je CVE-2026-111497, chyba dekodéru Brotli, kterou objevili výzkumníci využívající OpenAI Codex Security. Chyba je v nativním dekodéru Brotli, nikoli v samotném JavaScriptu. Speciálně vytvořený komprimovaný vstup způsobí, že dekodér zamění
… více »Francouzský výrobce kabelů Nexans upozornil na napjaté dodávky elektrických kabelů. Výstavba nové výrobní linky pro některé typy kabelů může trvat přibližně tři roky. Datacentra potřebují rozsáhlé nízkonapěťové a středněnapěťové rozvody. Poptávka roste současně s modernizací elektrických sítí. Někteří odběratelé proto uzavírají výrazně delší dodavatelské smlouvy [Reuters].
Představena byla (𝕏) virtuální platforma FLYBENCH FPV, která nováčky provede zapojením a konstrukcí dronů.
Google Chrome 156 byl prohlášen za stabilní. Přehled novinek v poznámkách k vydání. Opraveno bylo 353 bezpečnostních chyb. Vylepšeny byly také nástroje pro vývojáře.
Indická společnost eMudhra po bezpečnostním incidentu, tj. kompromitaci soukromých klíčů osmi mezilehlých certifikátů své certifikační autority, opouští globální byznys s SSL/TLS certifikáty.
Dle Phoronixu zveřejnila společnost Trend Micro prostřednictvím programu Zero Day Initiative (ZDI) několik hlášení bezpečnostních zranitelností přímo na veřejném mailing listu LKML, přestože některé chyby dosud nemají opravu začleněnou do hlavní větve jádra. Mezi hlášenými problémy jsou dvě zranitelnosti s hodnocením CVSS 9.0, týkající se SMB Direct a KSMBD, které mohou umožnit vzdálené spuštění kódu. Další hlášení se týkají … více »
Správce hesel KeePassXC byl vydán ve verzi 2.8.0. Přechází na Qt 6, podporuje vkládání hesel s Waylandem, rychlé odemykání pomocí Polkitu nebo možnost nastavení klávesových zkratek (seznam změn).
Databáze DuckDB (Wikipedie) byla vydána ve verzi 2.0.0 LTS. S kódovým názvem Cinnamon Teal (čírka skořicová). S vyladěným protokolem Quack.
Brendan Eich, mj. autor JavaScriptu, spoluzakladatel Mozilly a její několikadenní CEO (zprávička), představuje v článku From asm.js to WebAssembly na svém blogu společný projekt Googlu, Microsoftu, Mozilly a dalších s názvem WebAssembly (GitHub, FAQ), jehož cílem je zvýšit výkon webových aplikací použitím univerzálního webového bajtkódu.
Tiskni
Sdílej:
podporovat i static typing (guards a trademarks)Koukal jsem na to a není mi jasné, jak budou fungovat parametrizované typy (například generika)?
Spise to vypada, ze oni ten jazyk opravi.Moc tomu nevěřím – nebude vůle udělat změny, které poruší zpětnou kompatibilitu. Spíš to dopadne tak, že k těm starým a špatným věcem přidají paralelně nové a lepší věci. V praxi se pak bude používat oboje a jazyk bude velice komplikovaný (na to, co umí, je komplikovaný už nyní). Například do ES 6 přidali generátory, což je IMO krok špatným směrem, uvažuje se o přidání async a await, což je IMO další krok špatným směrem. Pak třeba zjistí, že oboje vede na duplikaci kódu (viz příklad s
IEnumerable z mého zápisku Algebraické efekty), a přidají vymezené kontinuace, které subsumují generátory i async a await.
Například do ES 6 přidali generátory, což je IMO krok špatným směrem, uvažuje se o přidání async a await, což je IMO další krok špatným směrem.Proč? Ten blog jsem více/méně četl, ale stejně mi to z toho není jasné.
Array.prototype.forEach).
Druhý způsob generování prvků: Generátor – vrací objekt iterátor, jehož metodu next můžeme volat, když chceme další prvek.
Výhodou prvního způsobu je, že takové funkci je snadné programovat. Jeho nevýhodou je, že cizí funcke řídí náš kód (inversion of control) – v některých případech může být těžké takovou funkci použít.
Naopak výhodou druhého způsobu je snadnost použití generátorů, jeho nevýhodou je, že se generátory těžko programují.
Aby ECMAScript odstranil nevýhodu druhého způsobu, přidal speciální podporu pro generátory. Tato podpora umožňuje psát generátory jako funkce z prvního způsobu – hlavní rozdíl je, že místo volání předané funkce voláme yield a funkce je deklarována pomocí function*.
Tato speciální podpora však neřeší nevýhodu prvního způsobu. Pokud máte například API, kde je pouze map, tak vám podpora generátorů nepomůže – musíte počkat, až autor API přidá generátor.
Existuje však jiné řešení, které žádné generátory nepotřebuje a odstraní obě nevýhody. Tím řešením je převést první způsob na druhý. Je mj. snadné převést druhý způsob generování na první způsob. Převod naopak lze uskutečnit pomocí vymezených kontinuací nebo pomocí vlákna, mutexu a proměnné sdílené vlákny. Pokud ECMAScript bude podporovat green thready, nepotřebuje generátory.
To, co mi tedy vadí na generátorech je, že řeší problém jen napůl (neodstraňují nevýhodu prvního způsobu generování), komplikují jazyk a možná budou zbytečné, protože stejnou službu udělají green thready.
Kromě toho jsou tu otázky ohledně časové složitosti – jakou bude mít například ES analog následujích enumerátorů časovou složitost? Lineární nebo kvadratickou?
static IEnumerable<int> LeftAssocEnum(int i)
{
var acc = Enumerable.Empty<int>();
while (i > 0)
{
acc = Enumerable.Concat(acc, new int[] { i });
i--;
}
return acc;
}
static IEnumerable<int> RightAssocEnum(int i)
{
var acc = Enumerable.Empty<int>();
while (i > 0)
{
acc = Enumerable.Concat(new int[] { i }, acc);
i--;
}
return acc;
}
Mj. v C# mají oba enumerátory kvadratickou složitost a oba z nich způsobí přetečení zásobníku pro dostatečně velké i. Nicméně v rozumné implementaci by RightAssocEnum měl mít lineární časovou složitost a k žádnému přetečení zásobníku by u něj dojít nemělo.
function*, navíc se takto označené funkce chovají jinak než klasické funkce označené function. Green thready jsou tedy obecnější.
Když mám green thready, nemusím dopředu rozhodovat, zda nějaká funkce bude generátor – například map mohu, jak jsem zmínil, použít jako generátor (bez toho abych něco přepisoval) – tj. vytvořím funkci, která vrací iterátor a tento iterátor uvnitř používá map.
function*.
Stejne tak preteceni zasobniku - implementace muze pouzivat segmented stack a tim se presune problem s alokaci do heapu.Oboje lze implementovat s konstantním zásobníkem a s lineární časovou složitostí. Je jen otázkou, jak chytrá je implementace. Příkladem takové implementace je knihovna scalaz-stream.
novy standard programovani vyrazne zjednodusujeMožná zjednodušuje programování, nicméně pochybuji, že zjednodušuje jazyk. Například verze 5 specifikuje jazyk na 100 stranách, verze 6 na 260 stranách.
Mozna koukate na jiny standard, ale verze 5.1 ma 258 stran, a verze 6.0 ma 566 stran.Bral jsem jazyk bez standardní knihovny – přijde mi to lepší pro odhad složitosti jazyka – a také jsem se spletl, v případě ES 6 to je více stran. Například oproti specifikaci Standard ML, která má pod 100 stran, je to celkem výrazný rozdíl.
v dalsich revizich muze byt vyjmuta.Jen dobře, pokud bude.
Například oproti specifikaci Standard ML, která má pod 100 stran, je to celkem výrazný rozdíl.To je nesmysl srovnavat podle stran, nebot se nejedna o dokumenty vytvorene pro jednu standardizacni instituci podle stejnych pozadavku. Lepsi priklad by byl treba Dart.
Koukal jsem na to a není mi jasné, jak budou fungovat parametrizované typy (například generika)?Pouzijete guards, ktere zajisti, ze v danem bloku kodu se pouziva pouze deklarovany trademark (typ). Kompilatoru pak zoptimalizuje genericky blok kodu pro dane typy. Stale je to otevrene, ale staticke typy v nejake forme budou.
a jazyk bude velice komplikovanýHorsi nez C++ ci rust to nebude.
Například do ES 6 přidali generátory, což je IMO krok špatným směrem, uvažuje se o přidání async a await, což je IMO další krok špatným směrem.Vsechno to ma byt postavene nad spawn, ktery ma bezet na green threads, takze blokovani neni az tak velky problem.
Pokud zarizeni nepodporuje WebAssembly - bude jich jeste dlouho plno, je Javascript fallback a nikdo to nebude psat dvakrat.Jako fallback muze byt interpretace WebAssembly pomoci JS. Nebo JIT preklad WebAssmebly do JS, ktery pak bude prolozeny JIT do nativniho kodu. ;-]
Spise to vypada, ze oni ten jazyk opravi.IMHO je JS FUBAR. Jak uz psal Radek Micek, ten jazyk obsahuje spoustu spatnych vlastnosti od zacatku a nikdo nebude mit odvahu rozbit zpetnou kompatibilitu... uz jenom kvuli tomu velkemu mnozstvi programatoru. Leda, ze by zavedli nejakou direktivitu (ala Perl), ktera by rikala, ze kod je napsany pro konkretni verzi JS.
"use more strict"
IMHO je JS FUBAR.To jsem si myslel take, a kdyby se mi zdalo o programovani v javascriptu, musel bych memit pyzamo, jak bych byl zpoceny hruzou. Rozdil oproti jinym jazykum je v tom, ze JavaScript se zatim pouziva v prostredi, kde zivotnost aplikaci beze zmen je v radu mesicu, zivotnost zarizeni v radu let, a prohlizec se updatuje kazdy mesic. To jim umoznuje delat i zpetne nekompatibilni zmeny, kde se kompatibilita docasne vyresi, jak bylo naznaceno vyse, pridanim dalsi direktivy.
Pokud zarizeni nepodporuje WebAssembly - bude jich jeste dlouho plno, je Javascript fallback a nikdo to nebude psat dvakrat.Dneska je v módě psát překladače do javascriptu.
Pokud používáte staticky typovaný jazyk, tak kód budete moci psát v něm, přeložit do WAsm a ono to poběží rychleji, než kdybyste to napsal přímo v ECMAScriptu. Kdo by pak používal ECMAScript?Určitě se počítá s tím, že JS se bude do WebAsm taky překládat. Jinak JS mi přijde jako celkem dobrý jazyk. Má svoje mouchy, ale určitě to není špatný jazyk ve smyslu skutečně špatných jazyků, jako třeba PHP...
Jinak doporučuji tento článek: Why Does JavaScript Suck?
V čom sú prototypy dobré? Neberte to ako hate príspevok, len ma to zaujíma. V js istý čas robím, čítal som mnoho blogov ako v tom napr. napísať dedičnosť a stále neviem ako na to.
Jinak doporučuji tento článek: Why Does JavaScript Suck?Mně právě tyhle quirks vůbec nepřijdou tak hrozné. Když píšu v JS, používám kontrolu typů, operátor
=== a podobně. Souhlasim s tim automatickým středníkem, to mě taky onehdá vytočilo. Ten scoping nevidim jako problém - stejně je to jazyk s GC. Ten odstavec o globálních proměnných mi přijde přehnaný, nevim o tom, že bych musel používat globální proměnný vyjma window. Jako jo, v JS určitě jsou nepříjemnosti, ale ten jazyk alespoň celkově nějak dává smysl a má nějakou koncepci narozdíl od PHP.
Uz ted vznikaji ruzne prekladace pres LLVM do JSTo je hrozně pomalé a výsledná velikost je většinou taky dost špatná. O dost použitelnější jsou překladače přímo do JS, jako třeba brython.