OpenSearch (Wikipedie) byl vydán ve verzi 3.0. Podrobnosti v poznámkách k vydání. Jedná se o fork projektů Elasticsearch a Kibana.
PyXL je koncept procesora, ktorý dokáže priamo spúštat Python kód bez nutnosti prekladu ci Micropythonu. Podľa testov autora je pri 100 MHz približne 30x rýchlejší pri riadeni GPIO nez Micropython na Pyboard taktovanej na 168 MHz.
Grafana (Wikipedie), tj. open source nástroj pro vizualizaci různých metrik a s ní související dotazování, upozorňování a lepší porozumění, byla vydána ve verzi 12.0. Přehled novinek v aktualizované dokumentaci.
Raspberry Pi OS, oficiální operační systém pro Raspberry Pi, byl vydán v nové verzi 2025-05-06. Přehled novinek v příspěvku na blogu Raspberry Pi a poznámkách k vydání. Pravděpodobně se jedná o poslední verzi postavenou na Debianu 12 Bookworm. Následující verze by již měla být postavena na Debianu 13 Trixie.
Richard Stallman dnes v Liberci přednáší o svobodném softwaru a svobodě v digitální společnosti. Od 16:30 v aule budovy G na Technické univerzitě v Liberci. V anglickém jazyce s automaticky generovanými českými titulky. Vstup je zdarma i pro širokou veřejnost.
sudo-rs, tj. sudo a su přepsáné do programovacího jazyka Rust, nahradí v Ubuntu 25.10 klasické sudo. V plánu je také přechod od klasických coreutils k uutils coreutils napsaných v Rustu.
Fedora se stala oficiální distribucí WSL (Windows Subsystem for Linux).
Společnost IBM představila server IBM LinuxONE Emperor 5 poháněný procesorem IBM Telum II.
Byla vydána verze 4.0 multiplatformního integrovaného vývojového prostředí (IDE) pro rychlý vývoj aplikaci (RAD) ve Free Pascalu Lazarus (Wikipedie). Přehled novinek v poznámkách k vydání. Využíván je Free Pascal Compiler (FPC) 3.2.2.
Podpora Windows 10 končí 14. října 2025. Připravovaná kampaň Konec desítek (End of 10) může uživatelům pomoci s přechodem na Linux.
Vyšlo PHP 5.3.0. Obsahuje několik novinek a opravuje přes 140 chyb. Mezi novinky patří jmenné prostory (namespaces), goto, podpora ternárního operátoru ?: a garbage collector pro cyklické reference. Vizte kompletní seznam změn.
Tiskni
Sdílej:
Nekompatibilit mezi 5.2 a 5.3 je dost malo, spis jde o cekani na prvni nebo druhou 5.3.X verzi.
Nicmene se na nej tesim jako dite na lizatko ... late static binding a lambda funkce - no konecne!
$a = $x ?: $y;znamená
$a = $x ? TRUE : $y;
$a = $x ? $x : $ycoz je neco malinko jineho, protoze TRUE v PHP muze byt cokoliv ruzne od nuly (a tusim prazdneho pole) ...ale uz jsem v php nejakou dobu neprogramoval....
&$promenna?:$promenna2
, tedy, aby se výsledek přímo přiřadil do $promenna
a nemuselo se psat $promenna=$promenna?:$promenna2
, jako při ošetřování checkboxů, které mají tu pitomou vlastnost, že při zaškrtnutí vracení 'on':
$this->alarm = $this->alarm ? 1 : 0;vs
&$this->alarm ? 1 : 0;a bude to úplně skvělé.
Syntaktickým cukrom k neprehladnosti perlu?
$this->alarm = !!$this->alarm;Není to teda 1/0 ale true/false.
checkbox má tu pitomou vlastnost, že když mu nenastavíš value, tak v php dostaneš default "On"
Priznam se, ze jsem si toho nikdy nevsiml (vzdy value nastavuji), ale proc je to pitoma vlastnost? "On" se vyhodnoti na true uplne stejne jako retezec "1". Mimoto stejne musite otestovat, zda je promenna vubec definovana (pokud neni checkbox zaskrtly).
Naštěstí goto není neomezenéto je prave ta nuda... kdyby to goto udelali poradne... to by byla aspon sranda...
if(isset($_GET["checkbox"])
$value = 1;
else
$value = 0;
mysql_query("UPDATE `table` SET `column` = " . $value);
Versus
mysql_query("UPDATE `table` SET `column` = " . (isset($_GET["checkbox"] ) ? 1 : 0);
Popr. jina varianta (na dva radky). Co je pak prehlednejsi? U takto trivialnich kodu se to zda byt jedno, ale v pripade rozsahlejsich projektu hraje v prehlednosti roli i delka kodu.
mysql_query("UPDATE `table` SET `column` = ".(int)$_GET["checkbox"]);
to ti vygeneruje notice (když nebude zaškrtnutej)
mysql_query("UPDATE `table` SET `column` = ".(int)isset($_GET["checkbox"]));
echo $val ? "Hodnota: ".$val : "Hodnota neni uvedena";
Jiste, neni nutne jej pouzit .. jde o to, ze tohle pretypovani boolean na int je IMHO mene prehledne nez ternarni operator ... ktery clovek nekde vyse oznacil za neprehledny.
<li>co robi operator ?: ternarnym? - ved ma len dva operandy!
<li>ten nejmspejsovy backslash je ohavnost
<li>late static binding je u mna zatial jediny dovod na prechod na 5.3
<li>je to binarni varianta ternarniho operatoru :)
<li>mne se nahodou libi, je to IMHO dost intuitivni (ala adresarova struktura)
<li>uz se tesim na singleton baseclass
ad 2. new-namespace-separator-moaning (vymena separatora za ':::' ).
ako ukazka je to sice pekne, ale je to iba uplatnenie principu "tisenia bolesti inou, este vacsou bolestou" ;)
Muzu se tedy zeptat, co vy povazujete za "pekny" oddelovac namespace?
Co je na :: neprehladne? Scope resolution operator je uz snad vymysleny aj v PHP. A namespace je len pomenovany scope.
je Linux::getLast() volani staticke metody tridy Linux nebo volani funkce z namespace Linux?
To bohuzial nie je odpoved na moju otazku. Ze si pri rozhodovani niekto takto zdovodnil backslash nie je pre mna dostatocnym zdovodnenim preco nepouzit syntax z c++, c# a dalsich jazykov. Minimalne stavajuca podpora editorov a IDE normalneho operatoru pre scope resolution prevazi nad takymto zdovodnenim.
V pripade takehoto volania je to totiz uplne jedno -> vyrazne to nezprehladnuje kod, len to jemne osvetli kontext -> a to iba v niektorych pripadoch. A ak niekto povolil deklaraciu rovnakeho mena triedy ako menneho priestoru v rovnakom scope (neviem - nezistoval som), tak je to dokonca viac nez ohavne.
To bohuzial nie je odpoved na moju otazku. Ze si pri rozhodovani niekto takto zdovodnil backslash nie je pre mna dostatocnym zdovodnenim preco nepouzit syntax z c++, c# a dalsich jazykov. Minimalne stavajuca podpora editorov a IDE normalneho operatoru pre scope resolution prevazi nad takymto zdovodnenim.
Mozna vam unika fakt, ze PHP neni dialekt C++ ani C# ani niceho jineho. Tedy to, ze se rozhodli jinak nez tvurci jinych jazyku je naprosto irelevantni. Pochybuju, ze by nekdo prohlizel PHP skripty s C++ zvyraznovanim a nebo v C++ IDE, takze tento argument je uplne mimo.
je Linux::getLast() volani staticke metody tridy Linux nebo volani funkce z namespace Linux?
A koho to zajímá?
Mě je to úplně fuk!
Hlavní důvod, proč se statické metody tvoří je proto, aby byly v „namespacu“ tvořeném názvem třídy.
Ano, nicmene mate informaci o tom, zda Linux je trida nebo namespace. Netvrdim, ze je to nejak extra uzitecne, ale myslim, ze jsem tohle nekde videl jako zduvodneni.
Já vím, že se to takto odvůvodňuje.
Přesto ve většině jazyků tohle odlišení nemáte. Není to rozlišováno v C++, ani v Javě, ani v C#, ani v řadě jiných jazyků.
Osobně si myslím, že v jedné z dalších verzí PHP se udělá čtyřtečka jako plnohodné synonymum i ke zpětnému lomítku. Nebude to hned, ale oni k tomu dojdou.
try, throw, catch, finally
jsi slyšel?
Musi zachovat kompatibilitu knihovny se starymi programy. Myslim, ze v takovem SPL se uz vyjimky pouzivaji.
goto
neumi byt samo o sobe uzitecne ...
Jejich jediny problem je ten, ze znacne ztezuji optimalizaci (minimalne eval, goto nevim). Nicmene PHP stejne neni zatim nijak extra optimalizovane ...
Mě se moc líbí, jak spoustě lidem vadí goto.
Ono sice velmi zřídka, ale vyjímečně goto velmi zpřehlední program. A co se mu nedá upřít je jeho efektivita (na rozdíl od try/catch).
Ale líbí se mi, jak lidé jednají jako naprogramovaní roboti. Přečtou si někde: „goto je špatné“ a hurá vytáhnout do boje proti goto. Přečtou si „GPL je nejlepší licence“ a jdou demonstrovat na všechny strany aby vše bylo pod GPL. Je sranda, jak spousta lidí jen papouškuje.
Možná vám to není dostatečně jasné, ale: POKUD NECHCETE POUŽÍVAT GOTO, FAKT NEMUSÍTE.
Věřím, že je to pro spoustu lidí překvapivý poznatek, že opravdu nemusejí (fakt ne, věřte mi) používat vše co je v jazyce. Pro jistotu ještě znovu: Nikdo nikoho nenutí používat všechny vlastnosti jazyka.
for (kazdy snimek) { for (kazdy radek) { for (kazdy sloupec) { if (neco_spatne) { goto dalsi_snimek; //tady by slo "break pres dva cykly" // ... kdyby to C/C++ umelo ... } neco_delej(); } } dalsi_snimek: }Resit tohle bez goto muze byt ponekud krkolomne ....
Presne na tohle jsem GOTO v C++ taky pouzival ... neexistoval tam mene prasacky zpusob, jak to udelat.
Nicmene PHP taky umi onen vicenasobny break a continue, vyborna vec.
Java je jediná, co to vyřešila rozumně.
Jestli si někdo myslí, že psát break číslo, a počítat o kolik cyklů máte vyskočit, když jich je několik vnořených do sebe, tak je to velmi nepřehledná věc, navíc nechutně chyby přitahující. stačí se seknout o jedno číslo a pak se dlouho divit, proč to funguje špatně.
takže při výskoku z několika cyklů v jazycích, kde je break číslo okamžitě dávám návěští a používám goto. je to výrazně přehlednější a výrazně lépe udržovatelnější, jasnější, zřejmější, a po všech stránkách to má jenom plusy
main
a v ní Shakespearův román". RMS (tuším) někdy oponoval názoru, že 8 znakové odsazení je moc (nevejde se to na obrazovku) tím, že pokud potřebujete víc než 3 úrovně odsazení, tak je chyba někde jinde.
A teď konstruktivně, tohle bych řešil 3 samostatnýma třídama, které by implementovaly iterátor. Vyjímka NecoSpatneException
by probublala z třídy Sloupec
až do hlavní metody, kde by se ve finally
bloku zavolalo snimek = snimky.next();
. Je to mnohem přehlednější, každá část logiky se provádí ve třídě, do které patří (nemusim krotit složené závorky abych zjistil, jestli pracuju s řádkem, nebo se sloupcem) a že je to neefektivní? Čas programátora je dražší, než procesorový čas!
for (int i=0;i<neco;i++)
" nebo iterator "for(Iterator i=cosi.begin();i!=cosi.end();i++)
" je vcelku jedno, na prehlednosti kodu to moc nemeni. Ale cpat tam extra try/catch blok misto goto na prehlednosti moc neprida. Pribyde jedna uroven odsazeni, jedna specialni vyjimka, radku kodu bude vice, prehlednost spise nizsi.
Čas programátora je dražší, než procesorový čas!I tahle poucka ma sve meze. Pokud se neco nasazuje na jednom stroji, tak to nekdy lze vyresit upgradem HW a tim, ze s rychlosti se moc nepatlam, ale pokud jde o SW ktery bude nasazen na vetsim mnozstvi pocitacu, pripadne nasazen "mezi plebs" (napr. krabicovy SW, pripadne opensource SW), tak konstatovani "ty tisice pocitacu si upgradnete aspon na core i7, muj cas je drahy" neobstoji a programator to musi aspon trochu optimalizovat. Pokud je to prilis pomale ....
Čas programátora je dražší, než procesorový čas!Zatim ano, ale programatoru z indie a podobnych zemi je cim dal vice.
Ono sice velmi zřídka, ale vyjímečně goto velmi zpřehlední program.jelikoz
break
umi vyskocit z vice cyklu, pocet opravdu praktickych se limitne blizi nule.
A co se mu nedá upřít je jeho efektivita (na rozdíl od try/catch).resit efektivitu na teto urovni... je v pripade PHP hodne sverazny humor...
Možná vám to není dostatečně jasné, ale: POKUD NECHCETE POUŽÍVAT GOTO, FAKT NEMUSÍTE.opravdu jej pouzivat nemusime... ale co veci, ktere uz nekdo s tim naprogramoval... myslim, ze hodne projektu v PHP ma uz sve fundamentalni designove problemy i bez goto. navic goto v teto podobe skoro nic neumi... kdyby to udelali poradne a minimalne umoznili navesti jako elementy prvniho radu... a neco jako explicitni prace s aktualnim pokracovanimi by byla asi na spoustu programatoru fakt moc...
opravdu jej pouzivat nemusime... ale co veci, ktere uz nekdo s tim naprogramoval... myslim, ze hodne projektu v PHP ma uz sve fundamentalni designove problemy i bez goto.
Pokud se nekdo rozhodne programovat prasacky, omezeni jazyka ho nezastavi.
jelikoz break
umi vyskocit z vice cyklu, pocet opravdu praktickych se limitne blizi nule
nicméně není nula
resit efektivitu na teto urovni... je v pripade PHP hodne sverazny humor...
věcí názoru
opravdu jej pouzivat nemusime... ale co veci, ktere uz nekdo s tim naprogramoval...
Prasit kdokoli může milióny způsoby. Svádět to na goto je poněkud …
myslim, ze hodne projektu v PHP ma uz sve fundamentalni designove problemy i bez goto
Tato věta platí pro jakýkoli programovací jazyk a technologii. Nemá to moc souvislost se syntaxí jazyka.
navic goto v teto podobe skoro nic neumí
Umělo by víc, kdyby nebyli debilové, co považují goto za nebezpečnější, než AIDS a LSD dohromady. Právě kvůli těmto debilům se to hodně očesalo. Myslím, že tohle je jasné.
takze do jazyka nacpeme kazdou zbytecnost, protoze by se to nahodou mohlo hodit...jelikoz break umi vyskocit z vice cyklu, pocet opravdu praktickych se limitne blizi nulenicméně není nula
no, videl jsem pajsl PHP... a uz jenom letmy pohled na praci s promennyma a jeho sileny overhead rika, ze goto toho opravdu moc nevytrhneresit efektivitu na teto urovni... je v pripade PHP hodne sverazny humor...věcí názoru
souhlas... nicmene, ja ocenuji prinos PHP v tom, ze dokazalo prijit s uplne novyma skupinama spatnych programatorskych navykumyslim, ze hodne projektu v PHP ma uz sve fundamentalni designove problemy i bez gotoTato věta platí pro jakýkoli programovací jazyk a technologii.
takze do jazyka nacpeme kazdou zbytecnost, protoze by se to nahodou mohlo hodit...
Problém je, že slovo zbytečnost je silně subjektivní slovo s konotací extrémně závislou na tom kterém člověku.
no, videl jsem pajsl PHP... a uz jenom letmy pohled na praci s promennyma a jeho sileny overhead rika, ze goto toho opravdu moc nevytrhne
Pro výroky jako Váš platí: „Stokrát nic umožilo osla“. Jedno zlepšení nic neřeší.
Jinak to, že jste viděl pajšl neznamená, že tam bude vypadat za rok. Nebo že kompilace do byte kódu nezoptimalizuje natolik, že řada toho co jste viděl je zcela jinde.
souhlas... nicmene, ja ocenuji prinos PHP v tom, ze dokazalo prijit s uplne novyma skupinama spatnych programatorskych navyku
Já zase oceňuji, že Vy do toho nekecáte. Možná, že to chlapci momentálně to PHP nevedou úplně nejlépe, ale určitě lépe, než kdybyste to vedl Vy.
U goto je sranda, že všechny jazyky (běžně používané), které se gota zřekly ho zase honem rychle zavedly aspoň pro určitou množinu případů. Ono to taky něco říká.
A pokud nedokážete psát jinak, než jako prase jenom proto, že jazyk má goto, pak si myslím, že určitě najdete jinou technologii. Já nemám pocit, že by moje návyky byly až tak moc ovlivňované syntaxí jazyka (pokud není extrémně přiškrcená).
Problém je, že slovo zbytečnost je silně subjektivní slovo s konotací extrémně závislou na tom kterém člověku.tak uvedte _nekolik_ _praktickych_ prikladu, nejlepe v kodu, kdy se goto hodi a nejde to vyresit jinak elegantneji....
Pro výroky jako Váš platí: „Stokrát nic umožilo osla“. Jedno zlepšení nic neřeší.to je naprosto zavadejici tvrzeni... protoze bottlenecky jsou v PHP uplne nekde jinde...
Jinak to, že jste viděl pajšl neznamená, že tam bude vypadat za rok. Nebo že kompilace do byte kódu nezoptimalizuje natolik, že řada toho co jste viděl je zcela jinde.to co jsem (mimojine) videl byla koncepcne nezvladnuta prace s hodnotami a promennymi a necemu takovemu pomuze jedine prepsani od nuly...
Já zase oceňuji, že Vy do toho nekecáte. Možná, že to chlapci momentálně to PHP nevedou úplně nejlépe, ale určitě lépe, než kdybyste to vedl Vy.no mate pravdu, ja bych to posral uz uplne...
Nikdo nikoho nenutí používat všechny vlastnosti jazyka.Kromě toho prasete, co dělalo na projektu předemnou (a určitě se někdo takovej najde, až se php 5.3 rozšíří).
A na co se asi podle tebe prelozej vsechny podminky, cykly a rekurze? Skonci to jako soutava goto s podminkama.