TypeScript (Wikipedie), tj. JavaScript rozšířený o statické typování a další atributy, byl vydán v nové verzi 6.0. Příští verze 7.0 je kvůli výkonu přepisována do programovacího jazyka Go.
Christian Schaller z Red Hatu na svém blogu popsal své zkušenosti s používáním AI při vývoji open source aplikací pro Linux. Pomocí různých AI aktualizoval nebo vytvořil aplikace Elgato Light GNOME Shell extension, Dell Ultrasharp Webcam 4K, Red Hat Planet, WMDock, XMMS resuscitated (aktualizace z GTK 2 a Esound na GTK 4, GStreamer a PipeWire) a Monkey Bubble. SANE ovladač pro skener Plustek OpticFilm 8200i se mu zatím nepovedl.
Americké firmy Tesla a SpaceX postaví v texaském Austinu moderní komplex na výrobu čipů pro umělou inteligenci (AI). Součástí projektu s názvem Terafab budou dvě moderní továrny na výrobu čipů – jedna se zaměří na automobily a humanoidní roboty, druhá na datová centra ve vesmíru. Uvedl to generální ředitel těchto firem Elon Musk. Projekt by podle odhadů měl stát 20 miliard USD (zhruba 425 miliard Kč).
Byla vydána nová stabilní verze 6.11 (YouTube) multiplatformního frameworku a GUI toolkitu Qt. Podrobný přehled novinek v poznámkách k vydání.
Ubuntu 26.04 patrně bude ve výchozím nastavení zobrazovat hvězdičky při zadávání hesla příkazu sudo, změna vychází z nové verze sudo-rs. Ta sice zlepší použitelnost systému pro nové uživatele, na které mohlo 'tiché sudo' působit dojmem, že systém 'zamrzl' a nijak nereaguje na stisky kláves, na druhou stranu se jedná o možnou bezpečnostní slabinu, neboť zobrazování hvězdiček v terminálu odhaluje délku hesla. Původní chování příkazu sudo
… více »Projekt systemd schválil kontroverzní pull request, který do JSON záznamů uživatelů přidává nové pole 'birthDate', datum narození, tedy údaj vyžadovaný zákony o ověřování věku v Kalifornii, Coloradu a Brazílii. Jiný pull request, který tuto změnu napravoval, byl správcem projektu Lennartem Poetteringem zamítnut s následujícím zdůvodněním:
… více »Nové číslo časopisu Raspberry Pi zdarma ke čtení: Raspberry Pi Official Magazine 163 (pdf).
Eric Lengyel dobrovolně uvolnil jako volné dílo svůj patentovaný algoritmus Slug. Algoritmus vykresluje text a vektorovou grafiku na GPU přímo z dat Bézierových křivek, aniž by využíval texturové mapy obsahující jakékoli předem vypočítané nebo uložené obrázky a počítá přesné pokrytí pro ostré a škálovatelné zobrazení písma, referenční ukázka implementace v HLSL shaderech je na GitHubu. Slug je volným dílem od 17. března letošního
… více »Sashiko (GitHub) je open source automatizovaný systém pro revizi kódu linuxového jádra. Monitoruje veřejné mailing listy a hodnotí navrhované změny pomocí umělé inteligence. Výpočetní zdroje a LLM tokeny poskytuje Google.
Cambalache, tj. RAD (rapid application development) nástroj pro GTK 4 a GTK 3, dospěl po pěti letech vývoje do verze 1.0. Instalovat jej lze i z Flathubu.
Vynecham jak snadne je spustit thread, pouziti slova synchronized a rovnou skocim na "lahudky". Swing
Problem swingu (GUI toolkitu v Jave) je ze je jednovlaknovy. K prostredkum se muze pristupovat pouze z jednoho thread (AWT event dispath thread). Pokud se v tomhle vlakne dela delsi operace, GUI se nemuze prekreslovat a "zamrzne", je to spolecny problem i C++ aplikaci.
Skvela je knihovna Foxtrot ktera umoznuje "odskocit" si do sousedniho threadu. Pritom pocka nez se uloha dokonci a neblokuje GUI thread. GUI se tedy normalne prekresluje. Skvele je jak snadne je tohle "odskoceni".
Priklad:
{
//nacti URL v GUI thread
URL url = new URL(text.getText());
//stahni data bez blokace GUI
String data = (String) Worker.post(new Job(){
public Object run(){
return URL.stahniData()
}
}
//a zobraz data
page.setData(data)
}
Podobne funguje napriklad SwingWorker
A totalne "cool" je Spin ktery obali objekt proxy, ktera se stara o thrading sama.
Concurrent utils
Od jre 1.5 je mozne pouzivat knihovnu obsahujici locky, queue, semafory, executory... Vice v java docu
Literatura
Velmi dobre jsou dve knizky. Obe jdou stahnout z netu...: Tahle probira zaklady multithreadingu a utility v jave, dobre pro zacatecniky,
Java Concurrency in Practice By Brian Goetz, Tim Peierls, Joshua Bloch, Joseph Bowbeer, David Holmes, Doug Lea Publisher: Addison Wesley Professional Pub Date: May 09, 2006 Print ISBN-10: 0-321-34960-1 Print ISBN-13: 978-0-321-34960-6 Pages: 384
A tato dava teoreticko/prakticke znalosti. V Java komunite je to best seller
Concurrency: State Models & Java Programs, 2nd Edition byJeff MageeandJeff Kramer John Wiley & Sons 2006 (432 pages) ISBN:0470093552
Tiskni
Sdílej:
). Tedy ne že bych nesouhlasil, že je to prasárna. Osobně si myslím, že tenhle problém může krásně řešit návrh lexikálních uzávěrů pro Javu 7 od Neala Gaftera a spol.
To se dá bez problémů řešit jedním zámkemTeoreticky jistě, ostatně jak už jsem psal, jiné GUI systémy nepoužívají systém vlákna určeného ke zpracování událostí, ale události zpracovává kterékoli vlákno. Ale v AWT/Swingu je k tomu určené vlákno (vlákna), a zavést do toho nějaký zámek by znamenalo, že musí všichni začít ten zámek používat. Což můžu udělat třeba ve svém kódu, ale těžko budu takovému zámku přizpůsobovat knihovny třetích stran nebo dokonce runtime knihovnu. Dokumentace k AWT vláknům začíná větou: „Unless otherwise noted all AWT listeners are notified on the event dispatch thread.“ Takže cokoliv, co tenhle předpoklad naruší, má dobře našlápnuto k tomu, aby to někde něco rozbilo.
Java ma oproti C++ vyhodu je ze je od zacatku navrzena jako vicevlaknova. Vedet zda objekt je immutable a thread safe je k nezaplanaceni.Když dám v C++
const, tak je objekt taky immutable.
Problem swingu (GUI toolkitu v Jave) je ze je jednovlaknovy. K prostredkum se muze pristupovat pouze z jednoho thread (AWT event dispath thread).To není problém, to je vlastnost. Má totiž tu zásadní výhodu, že se nemusí používat synchronizace a nevzniká tedy ani s ní spojená režie, která by byla mnohdy úplně zbytečná. Kdo chce pracovat se Swingem ve více vláknech, může buď použít nějakou nadstavbu nebo si to udělat přímo podle potřeby (tj. sahat do GUI přes
invokeLater(), invokeAndWait() a podobně).
Problem swingu (GUI toolkitu v Jave) je ze je jednovlaknovy. K prostredkum se muze pristupovat pouze z jednoho thread (AWT event dispath thread).Tohle není tak docela pravda. Se Swingem (resp. AWT) by se mělo manipulovat pouze z vlákna AWT, to ano, ale to vlákno nemusí být jen jedno, může jich být víc.
to vlákno nemusí být jen jedno, může jich být víc.Aktivnich v jednom okamziku? Poslal bys prosim nejaky odkaz? Nechci polemizovat, jen se divim. Dost metod jak ve Swingu tak v AWT zamyka AWT tree lock. Pristup z vice vlaken si primo rika o deadlock s nejakym uzivatelovym zamkem. Nebo mas na mysli nahrazeni
EventQueue jinou pres metody push() a pop()?
isDispatchThread() vrací true právě jen v případě, že se jedná o to aktivní vlákno na vrchu zásobníku. Ale stejně to znamená, že by člověk měl vždy pracovat s metodami z EventQueue a ne se pokoušet jednou na začátku si EventQueue vlákno zapamatovat a pak už pracovat vždy s ním. A taky to znamená, že je nesmysl pokoušet se zpracovávat události ve vlastním vlákně, abych mohl zablokovat vlákno událostí. EventQueue už má tenhle mechanizmus zabudován v sobě a pokud už bych opravdu chtěl déletrvající zpracování události provádět ve vlákně událostí, je rozumnější před vlastním zpracováním vytvořit nové vlákno fronty zpráv, dát ho na vrchol zásobníku, pak si v původním vlákně můžu dělat co chci a když skončím, nově vytvořené vlákno zase odstraním.
EventQueue.