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.
pico-usb-wifi je open source firmware pro Raspberry Pi Pico W, který jej promění v USB Wi-Fi adaptér. Po připojení k počítači se objeví jako zařízení USB CDC-NCM.
Americká společnost Google ze skupiny Alphabet bude muset podle nových požadavků Evropské unie umožnit společnosti OpenAI i dalším konkurentům v oblasti umělé inteligence (AI) a internetových vyhledávačů přístup ke svým službám. Ve svém rozhodnutí o tom včera informovala Evropská komise (EK). Opatření má zajistit dodržování pravidel, jejichž cílem je omezit v EU tržní sílu velkých technologických firem. Google s tím nesouhlasí.
… více »Nové verze webových prohlížečů Chrome a Firefox jsou vydávány každé 4 týdny. Aktuální verze Chrome je 150. Aktuální verze Firefoxu je 152. V březnu bylo oznámeno, že od září přejde Chrome na dvoutýdenní cyklus vydávání verzí. To by znamenalo, že Chrome v číslování verzí Firefox brzy přeskočí. Vývojáři Firefoxu proto také od září přecházejí na dvoutýdenní cyklus vydávání verzí. :-)
Microsoft Comic Chat (Wikipedie), tj. grafický IRC klient z devadesátek, který převáděl konverzace na IRC do podoby komiksových panelů, a který zpopularizoval font Comic Sans, je dnešním dnem open source. Zdrojové kódy jsou k dispozici na GitHubu pod licencí MIT.
Objavil som zaujímavý skriptovací jazyk zo sveta HPC: Julia . Syntax je podobná jazyku LUA (kto programoval v MATLABe, alebo Pythone, tiež sa v ňom nestratí), ale inak je to jazyk z úplne iného súdka: dynamický, strong typed - orientovaný na rýchlosť a efektivitu – používa JIT compiler. V určitých typoch výpočtových úloh dokáže Julia dosiahnuť vyšší výkon než C/C++, pričom je často porovnateľná s Fortranom a Chapelom – najmä pri numerických operáciách a prácou vektormi a maticami, ktoré si vie compiler dobre zoptimalizovať).
No a čím je tento jazyk výnimočný? Je to jeden z mála jazykov obsahujúci skutočný implicitný paralelizmus (podobne ako iný statický HPC jazyk Chapel ktorý sme si spomínali v minulosti), podporuje vykonávanie kódu na CPU aj GPU (GPGPU). Okrem toho podporuje SIMD (počas jednej inštrukcie sa spracováva viacero hodnôt) a distribúciu výpočtov medzi viac počítačov (Grid computing – keď jeden počítač nestačí).
Taktiež má vlastnosti ako broadcasting (v jazyku Chapel sa tomu hovorí „propagácia“), čo znamená, že pracujeme pomocou operátora bodka "." s celým poľom či inou kolekciou (napr. range) ako by to bola jedna hodnota:
arr = [1:5...] # [1, 2, 3, 4, 5] arr1 = arr .^ 2 # Operátor "^" je mocnina – keď použijeme operátor ".^", bude to druhá mocnina všetkých položiek poľa. # Namiesto: `map(a -> a ^ 2, arr)` – platí aj pre iné operátory. println(arr1) # [1, 4, 9, 16, 25]
Samozrejme, dajú sa použiť aj knižničné funkcie ako map, filter, fold atď., ale broadcasting je rýchlejší, lebo si to JIT kompilátor zoptimalizuje tak, že sa spracováva viac hodnôt naraz (SIMD). Má to aj makrá, takže jazyk sa dá „ohýbať“. Tiež sú tam rôzne druhy cyklov, ktoré sa dajú optimalizovať na rýchlosť.
Julia obsahuje viacrozmerné polia (väčšina moderných jazykov vychádzajúcich z C obsahuje len pole polí, ale nie skutočné viacrozmerné polia. Pokiaľ ste ale niekedy programovali v Basicu, Pascale či Fortrane istotne si viacrozmerné polia pamätáte.
arr = [
1 2 3
4 5 6
]
println(arr[2, 1]) # vypíše 4, keďže polia sa indexujú od 1
Jazyk má pár zvláštností, napríklad že polia sa indexujú od 1 a najprv začínajú riadkami (Y), až potom stĺpcami (X) (podobne ako v matematike, naopak ako v mainstreamových jazykoch). Faktom ale je, že práca s jednotkou je prirodzenejšia a hlavne nám to skracuje kód.
Všadeprítomný je multiple dispatch. OOP to nemá – má to len štruktúry, nad ktorými voláme funkcie. Zapúzdrenie sa robí cez moduly, ale tie moc nezapúzdrujú (moduly sa mi v Julii vôbec nepáčia).
Pokiaľ chceme v Julii napísať rýchly backend a k tomu spraviť GUI, môžeme komunikovať napríklad cez HTTP, sockety, gRPC, ale ja som použil ZeroMQ (package ZMQ), ktoré je rýchle ako sockety, ale pritom jednoduché na použitie ako HTTP.
Tiskni
Sdílej:
using JuMP using HiGHS M = [0 8 2; 1 0 5; 1 4 0;;; 0 4 3; 9 0 4; 3 7 0;;; 0 1 2; 5 0 8; 2 2 0] model = Model( HiGHS.Optimizer) x= @variable(model, x[1:3,1:3,1:3] ≥ 0) @constraint(model, diagonal[i=1:3], sum(x[i,i,1:3]) == 0) from_c = @constraint(model, sum(x,dims=1) .== sum(M,dims=1)) to_c = @constraint(model, sum(x,dims=2) .== sum(M,dims=2)) time = @constraint(model, sum(x,dims=3) .== sum(M,dims=3)) @objective(model, Min, sum(x .^2 )) optimize!(model) @show solution_summary(model)
Faktom ale je, že práca s jednotkou je prirodzenejšia a hlavne nám to skracuje kód.Jestli je indexování pole od jedničky přirozenější je asi subjektivní, ale o tom, že to zkracuje kód bych dost pochyboval. Implementoval jsem relativně dost algoritmů pro práci s vícerozměrnými poli paralelně v Matlabu a Pythonu a v Matlabu furt někde honím jedničku.
Já bych neřekl, že nové jazyky jsou variací na Céčko.Ale jsou. Bud je to assembler s trochou syntaktickeho cukru (proc asi je "unsafe" v Rustu), nebo n-ta varianta LISPu. Ostatni inovativni pristupy se moc neuchytily, nebo je odval cas (treba Algol, nebo "pictures" v COBOLu a PL/1)...
Chapel ale umožňuje explicitně zvolit jakoukoli dolní mez pole.To umí i Fortran, ale nijak extrémně užitečné mi to nepřijde. Napadá mě třeba symetrický index kolem nuly (nějaké FFT třeba) nebo snaha sladit zápis matematiky (např. při použití nějakých konkrétních polynomů). Ale spíš je v tom pak akorát bordel. Zas si ale člověk může změnit výchozí spodní mez z jedničky na nulu, takže je to vlastně fajn...
array[18..120]Uzasny. Takze ti to rozbijou lidi soudem uznani za zletile, podobne az se nejaka baba dozije 120 (coz s rostouci delkou doziti muze klidne nastat, rekord je neco okolo 115).
Takový kód je přehlednější.To je asi otázka názoru. Hlavně bude záležet na tom kdo a jak ten kód píše. A protože znám své kolegy, mám raději jazyky, které neumožňují být příliš kreativní... Tu motivaci ale pochopitelně chápu, ale jak píšete víše:
...Je to mapování n-tice hodnot na výslednou hodnotu. Funkce to dělá algoritmem, pole to dělá tabulkou hodnot - jinak je to to samé...Pro mě je indexování pole jakási low-level operace, pokud potřebuji nestandardní index, volím raději funkci. Ono u možnosti měnit spodní mez nemusíte chtít skončit. Třeba byste rád index, který se neinkrementuje o jedničku, či není lineární, motivace by se asi našla. Ale nemám pochopitelně nic proti tomu, aby to jazyk podporoval, zejména pokud to jeho uživatelé využívají.
V tom, že je potřeba špatným programátorům přistřihnout křídla, máte samozřejmě pravdu. Je třeba se přizpůsobit té které situaci.To se bohužel snadněji řekne, než udělá... Se zbytkem pochopitelně souhlasím snad jen s poznámkou, že řídká pole sice obsahují hromady nul, ale obsahují je, tzn. není to ekvivalentní poli, které ten index nemá vůbec (viz ten příklad sudých indexů). Sice netuším, jak jsou interně implementována, ale nějaký overhead tam bude muset být. Pokud jde o ta asociativní pole, tak přesně ta jsou podle mého názoru vhodná pro zobrazení/mapování netriviálních indexů. Pole jako taková mají podle mě uplatnění především tam, kde provádíte nějaké náročné operace na větším množství dat, kde – přesně, jak píšete – využijete s výhodou možnosti paralelizace. Alespoň tak to mám já. Pole je hromada dat, kterou je třeba zpracovat a index je více méně podružný, pro data, kde má index nějaký význam používám asociativní datové typy.
Chapel ale umožňuje explicitně zvolit jakoukoli dolní mez pole.Pascal také, ale lidé se do něj moc nehrnou. To je škoda, odnaučili by se dělat spoustu blbostí
A co se C týče:
int array[201]={0}, *teplota=&array[100];