Zemřel Rob Grant, spolutvůrce kultovního sci-fi seriálu Červený trpaslík.
Apple oznámil, že iPhone a iPad jako první a jediná zařízení pro koncové uživatele splňují požadavky členských států NATO na zabezpečení informací. Díky tomu je možné je používat pro práci s utajovanými informacemi až do stupně „NATO Restricted“, a to bez nutnosti instalovat speciální software nebo měnit nastavení. Žádné jiné běžně dostupné mobilní zařízení tak vysokou úroveň státní certifikace dosud nezískalo.
Americký provozovatel streamovací platformy Netflix odmítl zvýšit nabídku na převzetí filmových studií a streamovací divize konglomerátu Warner Bros. Discovery (WBD). Netflix to ve čtvrtek oznámil v tiskové zprávě. Jeho krok po několikaměsíčním boji o převzetí otevírá dveře k akvizici WBD mediální skupině Paramount Skydance, a to zhruba za 111 miliard dolarů (2,28 bilionu Kč).
Americká společnosti Apple přesune část výroby svého malého stolního počítače Mac mini z Asie do Spojených států. Výroba v závodě v Houstonu by měla začít ještě v letošním roce, uvedla firma na svém webu. Apple také plánuje rozšířit svůj závod v Houstonu o nové školicí centrum pro pokročilou výrobu. V Houstonu by měly vzniknout tisíce nových pracovních míst.
Vědci Biotechnologické společnosti Cortical Labs vytvořili biopočítač nazvaný CL1, který využívá živé lidské mozkové buňky vypěstované z kmenových buněk na čipu. Po úspěchu se hrou PONG se ho nyní snaží naučit hrát DOOM. Neurony přijímají signály podle toho, co se ve hře děje, a jejich reakce jsou převáděny na akce jako pohyb nebo střelba. V tuto chvíli systém hraje velmi špatně, ale dokáže reagovat, trochu se učit a v reálném čase se hrou
… více »Pro testování byl vydán 4. snapshot Ubuntu 26.04 LTS (Resolute Raccoon).
Ben Sturmfels oznámil vydání MediaGoblinu 0.15.0. Přehled novinek v poznámkách k vydání. MediaGoblin (Wikipedie) je svobodná multimediální publikační platforma a decentralizovaná alternativa ke službám jako Flickr, YouTube, SoundCloud atd. Ukázka například na LibrePlanet.
TerminalPhone (png) je skript v Bashi pro push-to-talk hlasovou a textovou komunikaci přes Tor využívající .onion adresy.
Před dvěma lety zavedli operátoři ochranu proti podvrženým hovorům, kdy volající falšuje čísla anebo se vydává za někoho jiného. Nyní v roce 2026 blokují operátoři díky nasazeným technologiím v průměru 3 miliony pokusů o podvodný hovor měsíčně (tzn., že k propojení na zákazníka vůbec nedojde). Ochrana před tzv. spoofingem je pro zákazníky a zákaznice všech tří operátorů zdarma, ať už jde o mobilní čísla nebo pevné linky.
Společnost Meta (Facebook) předává React, React Native a související projekty jako JSX nadaci React Foundation patřící pod Linux Foundation. Zakládajícími členy React Foundation jsou Amazon, Callstack, Expo, Huawei, Meta, Microsoft, Software Mansion a Vercel.
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];