Monado, tj. multiplatformní open source implementace standardu OpenXR specifikujícího přístup k platformám a zařízením pro XR, tj. platformám a zařízením pro virtuální realitu (VR) a rozšířenou realitu (AR), bylo vydáno ve verzi 25.1.0. Přehled novinek v poznámkách k vydání.
Byla vydána listopadová aktualizace aneb nová verze 1.107 editoru zdrojových kódů Visual Studio Code (Wikipedie). Přehled novinek i s náhledy a videi v poznámkách k vydání. Ve verzi 1.107 vyjde také VSCodium, tj. komunitní sestavení Visual Studia Code bez telemetrie a licenčních podmínek Microsoftu.
Pornhub zveřejnil podrobné statistiky za rok 2025. V části věnované zařízením a technologiím se lze dočíst, že 87 % přenášených dat směrovalo na telefony, 2 % na tablety a 11 % na desktopy. Operační systém Linux běžel na 6,3 % desktopů. O 22,4 % více než před rokem. Firefox má na desktopu 8,4 % podíl.
Chcete vědět, co se odehrálo ve světě techniky za poslední měsíc? Nebo si popovídat o tom, co zrovna bastlíte? Pak dorazte na prosincovou Virtuální Bastlírnu s mikrofonem a kamerou, nalijte si něco k pití a ponořte se s strahovskými bastlíři do diskuze u virtuálního piva o technice i všem možném okolo. O čem budou tentokrát strahováci referovat? Téměř každý už si všiml významného zdražení RAM a SSD, jsou zde ale i příjemnější zprávy. Průša uvádí
… více »Národní úřad pro kybernetickou a informační bezpečnost (NÚKIB) podporuje vyjádření partnerů ze Spojeného království, kteří upozorňují na škodlivé aktivity společností Anxun Information Technology (též „I-S00N“) (pdf) a Beijing Integrity Technology (též „Integrity Tech“) působících v kyberprostoru a sídlících v Čínské lidové republice (ČLR). Tyto společnosti jsou součástí komplexního ekosystému soukromých subjektů v ČLR,
… více »Společnost Pebble představila (YouTube) prsten s tlačítkem a mikrofonem Pebble Index 01 pro rychlé nahrávání hlasových poznámek. Prsten lze předobjednat za 75 dolarů.
Společnost JetBrains v listopadu 2021 představila nové IDE s názvem Fleet. Tento týden oznámila jeho konec. Od 22. prosince 2025 již nebude možné Fleet stáhnout.
Byl vydán Mozilla Firefox 146.0. Přehled novinek v poznámkách k vydání a poznámkách k vydání pro vývojáře. Řešeny jsou rovněž bezpečnostní chyby. Nový Firefox 146 bude brzy k dispozici také na Flathubu a Snapcraftu.
Před rokem převzala Digitální a informační agentura (DIA) vlastnictví a provoz jednotné státní domény gov.cz. Nyní spustila samoobslužný portál, který umožňuje orgánům veřejné moci snadno registrovat nové domény státní správy pod doménu gov.cz nebo spravovat ty stávající. Proces nové registrace, který dříve trval 30 dní, se nyní zkrátil na několik minut.
IBM kupuje za 11 miliard USD (229,1 miliardy Kč) firmu Confluent zabývající se datovou infrastrukturou. Posílí tak svoji nabídku cloudových služeb a využije růstu poptávky po těchto službách, který je poháněný umělou inteligencí.
Již delší dobu jsem zde nic nenapsal o svých zkušenostech s PHP, jelikož jsem na svůj projekt neměl moc času. Teď se mi ale podařilo přijít na lepší způsob, jak vytvořit strukturovanou diskusi, nebo menu.
Předchozí pokus byl mým prvním zápisem v blogu o PHP. To se mi však pro složitost moc nezamlouvalo a tak jsem se snažil při psaní strukturované diskuse přijít na něco lepší a myslím, že se mi to i povedlo. Ostatně posouzení nechávám na vás v diskusi pod tímto zápisem.
V datazázi musí být uložené údaje od id komentáře, jeho úrovni(level) a předchůdci(parent) a další věci jako text nadpisu, komentáře, nebo cokoliv dalšího. Celé toto pole načítám v jednom SQL dotazu, kde zadám uspořádání podle úrovně(level). Druhým a posledním SQL dotazem zjistím maximální hodnotu úrovně komentářů.
Pokračuju vytvořením zdrojového a cílového pole. Ve zdrojovém poli si v cyklu vytvořím pro každou úroveň podpole a do nich v následujícím cyklu doplním komentáře se shodující se úrovní:
// Resulting array of comments
$cmnt = array ();
// Source array
$child = array ();
// Generate subarray for each comment level
for ($i = 0; $i <= $lmax; $i ++) {
$child[$i] = array ();
}
// Add comment's to subarrays by level.
for ($i = 0; $i <= $lmax; $i ++) {
// Cross db array
for ($lv = 0; $lv < count($rows1); $lv ++) {
// If level of db array is the same as source subarray, then add comment's to this subarray.
if ($rows1[$lv]["level"] == $i) {
array_push($child[$i], $rows1[$lv]);
$rows1[$lv] = null;
}
}
}
Tím mám připravené zdrojové pole, následně zavolám funkce godown a goup v tomto pořadí. Zdrojové a cílové pole předávám odkazem. První funkce vypadá takto:
function godown($childs, $max, $start, $cmnt) {
// Parse level from $start to $max
for ($i = $start; $i <= $max; $i ++) {
$exist=0;
// If is set first comment in current level
if (isset ($childs[$i][0])) {
// Check if exist's parent of this comment. If so, then we counldn't add this comment into resuling array
// and delete from source array, because we need add it after parent and if parent exists, then wasn't parsed
// and added into resulting array yet.
for ($k = 0; $k < count($childs); $k ++) {
if ((!empty ($childs[$k])) && ($childs[$i][0]["parent"] == $childs[$k][0]["comm_id"])) {
$exist = 1;
}
}
// If parent don't exist then we add this comment on the end of resulting array and delete it from source array.
if ($exist == 0) {
array_push($cmnt, $childs[$i][0]);
array_shift($childs[$i]);
}
}
}
}
Do jejich parametrů předávám zdrojové pole- $childs, maximální úroveň-$max, první úroveň-$start, která je při prvním volání 0 a později se nastavuje z funkce dgoup. Posledním parametrem je cílové pole.
Jako první v cyklu procházejícím komentáře podle úrovně testuju, jestli první komentář v dané úrovni existuje-postupně totiž komentáře odebírám pomocí array_shift, k tomu ale až za chvilku. Pokud tedy komentář existuje, tak ještě testuji jestli neexistuje jeho předek, protože pokud by existoval(ještě by nebyl zrušený), znamenalo by to, že by se komentář vypsal u jak na něj přijde řada u jiného rodiče.
Pokud zjistím, že komentář žádného rodiče nemá, tak jej přidám na konec cílového pole $cmnt a odeberu ze zdrojového pole $childs.
function goup($childs, $max, $cmnt) {
// Parse level from max to 0 - first level of comment.
for ($j = $max; $j >= 0; $j --) {
$exist = 0;
// Check if is set first comment in current level
if (isset ($childs[$j][0])) {
// Check if exist's parent of this comment. If so, then we counldn't add this comment into resulting array
// and delete from source array, because we neet add it after parent and if parent exists, then wasn't parsed
// and added into resulting array yet.
for ($k = 0; $k < count($childs); $k ++) {
if ((!empty ($childs[$k])) && ($childs[$j][0]["parent"] == $childs[$k][0]["comm_id"])) {
$exist = 1;
}
}
// If parent don't exist then we add this comment on the end if resulting array and delete it from source array.
if ($exist == 0) {
array_push($cmnt, $childs[$j][0]);
array_shift($childs[$j]);
}
// If exist comment in upper level, then we call funcion godown with current level - 1 in params.
if (isset ($childs[$j-1][0])) {
godown(& $childs, $max, $j-1, & $cmnt);
}
}
}
}
Funkce pro průchod komentáři směrem nahoru je velmi podobná té předchozí, jenom je zde přidána kontrola jestli existuje první komentář nižší úrovně a jestli ano, tak se zavolá funkce godown.
Nakonec vypisuji strukturovanou diskusi, menu, nebo cokoliv jiného.
Na závěr bych vás chtěl požádat, abyste mi do diskuse napsali, co si o tomto řešení strukturovaného výpisu myslíte, případně nějaké návrhy na vylepšení
Tiskni
Sdílej:
PS: Jako zarytému perlistovi mi zásadně vadí, že komentáře jsou delší než vlastní kód!U nas ve firme se naopak rika, ze komentar musi byt delsi nez metoda (Java)... sice trochu nadsazka, ale v podstate jde o vyjadreni principu, ze spatne komentovany kod muze byt super dobry, ale kdyz k nemu nekdo po case prijde a musi ho studovat, tak produktivita prace jde do haje.
A největší chuťovka jsou "herní programátorská fóra"...tam se člověk občas najde takový hlody, že nestačí koukat.
(BTW, Vy přeci jste PHPkář, ne? Není tohle Vaše? Ač tedy pokud ano, asi by zasloužil CPress vyčinit za jméno autora.
)
Můj nápad, že jim napíšu knížku o LISPu se u CPressu nesetkal s pochopením
Právě si studuju CL-SQL, které mělo "LINQ" roky před Microsoftem...
Ne to je samozřejmě legrace. LISP je úžasný jazyk, ale co je mu platné, že má spoustu nádherných věcí, když v praxi hraje někde vzadu. Ale LINQ se mi líbí, však taky Microsoft svůj jazyk příšerným způsobem zhackoval, aby to tam nacpal - ale mám pocit, že ten C# už je dnes totální balast ve stylu pejsek s kočičkou vařili dort. Jde tam spoustu věcí, ale je to už totální smetiště nekonzistentních věcí hala bala nad sebou.
Za poslední tři-čtyři roky aktivita kolem CL, zvláště na common-lisp.net, povážlivě vzrostla. Třeba to jednou neskončí na smetišti dějin - ostatně je to jeden z mála jazyků, co je schopný celkem bez problémů rozběhnout čtyřicet let starý program (jeden takový pravidelně používám
), a to nikoli v čtyřicet let starém runtimu, ale v letošním kompilátoru používajícím nejnovější technologie.
Jsem zvědav, kde bude za čtyřicet let Java nebo PHP. Ale to už jsme hodně mimo...
), C++ (zatím příliš mladé), Ada, Objective C - to jsou všechno jazyky, které se důsledně o zpětnou kompatibilitu starají.
Osobně naprosto nachápu, proč některé jazyky ruší zpětnou kompatibilitu a ještě to obhajují, jako jsou třeba - Python, Ruby, Perl, ... atd., což mě moc mrzí a považuji to za obrovskou hovadinu.
A PHP o tom ani nemluvte, to je stále nekompatibilní a každá další verze to totálně překope a donutí Vás to často dost přepsat. Nehledě na to, že v poslední době si autoři PHP nedělají problémy se stabilitou a chybovostí. Lidi to snesou, tak co
Jenže nic srovnatelného s PHP pro tento účel nenajdete, takže se to trpí.
No a Javě se tak zcela zpětnou kompatibilitu taky zachovat nikdy nepovedlo, přes všechny proklamace. Řekl bych, že Java je hlavně věc enterprise aplikací.
No aktivita možná vzrostla, ale nikde to nevidět.No když už si toho všiml i takový bulvár jako DDJ, tak na tom něco bude...
Jak pise Elliot Harold (Elliotte Rusty Harold on native XML data servers):
Roughly 80% of the world’s data cannot plausibly be stored in a relational database. The 20% that does fit there is important enough that we’ve spent the last 20 years stuffing it into relational databases and doing interesting things with it. I’m still doing a lot of that. But there’s a lot more data out there that doesn’t look like tables than does.
I když zrovna to STX mi připomíná XSLT, a jak bych podle toho chtěl postavit dostatečně funkční databázi, na to už mi fantazie nestačí... (Ale to neznamená, že bych se to nechtěl rád dozvědět
) Leda že bych měl nějaké velké XML soubory a nad nimi tyto příkazy prováděl.
A nebo rovnou objektovou databázi.A nebo. Ale mam pocit, ze ty se prosazuji jeste pomaleji nez XML storage. Je nejaka objektova DB, ktera by byla podobne rozsirena jako ZopeDB?
I když zrovna to STX mi připomíná XSLT, a jak bych podle toho chtěl postavit dostatečně funkční databázi, na to už mi fantazie nestačí... (Ale to neznamená, že bych se to nechtěl rád dozvědětSTX v podstate (z uzivatelskeho hlediska) je XSLT. Zmente namespace a odstrante nutnost stavet kvuli transformaci cely XML strom do pameti a mate STX (zhruba) Leda že bych měl nějaké velké XML soubory a nad nimi tyto příkazy prováděl.
) Kdyz se kolem toho motaji lide jako Michael Kay a Petr Cimprich, tak celkem verim, ze z toho neco bude.
Pokud bude STX na urovni XSLT 2.0, bude jeho sila dost velka -- i kdyz nejaky rozumny nastroj na UPDATE/INSERT chybi. XUpdate se jaksi neujalo, umi ho snad jen 4Suite a mozna Saxon?
Takže pro ty zoufalce, co nutně potřebují dělat grafové algoritmy v praxi nad desítkami gigabajtů dat, si můžou firmy jako Franz (AllegroCache, AllegroGraph) a Gemstone (Gemstone/S) nasadit cenu o dost výše.
To, že relační databáze přejímají objektové prvky, je sice pěkné, ale z velké části je to dobré do marketingových materiálů. Objektová databáze bez pořádné integrace do klientského jazyka mi přijde jako mírně kvadruplegický software. Relační kalkul je natolik omezený, že serializovat jeho dotazy do SQL a posílat na server ke zkompilování a spuštění není až takový problém. Ale třeba u toho AllegroGraphu by to bylo lámání přes koleno, nemluvě o tom, co všechno by nefungovalo.
Myslím, že současný stav ještě nějakou dobu vydrží... "Objektově-relační databáze", "STX" a "Pes přeoperovaný na chobotnici" z mého pohledu patří do téže množiny (a sice do množiny obskurností).
, jen o situaci, kdy do kvalitního OODBMS nacpete "tabulky". BTW, AllegroCache se tváří, že terabajty zvládá. Ale cenu nechtějte znát...
"Objektově-relační databáze", "STX" a "Pes přeoperovaný na chobotnici" z mého pohledu patří do téže množiny (a sice do množiny obskurností).Rozvedte to s tim STX trochu. Jak si predstavujete reseni nejvetsiho problemu XSLT a dalsich dnesnich technologii na transformaci/dotazovani do XML -- tedy nutnosti reprezentovat cely XML strom v pameti? (krome nazoru "tahnete s XML do haje"
)
Takže dokonce i vůči STX mám svoje výhrady, i když se mi to samozřejmě líbí kvůli závorkám.
Ale flat-namespace humor stranou...já nevím. Nedávno jsem prostě našel zajímavé, jednoduché a funkční (funkcionální?
) technologie, které mě definitivně přesvědčily, že lidi ve W3C jsou asi placeni od kilogramu popsaného papíru nebo co. Esli se mi podaří dostat se v psaní nějakých těch schematických článků k SSAX/SXML (což by byl tak třicátý až šedesátý díl
), třeba se o tomhle zmíním, včetně možných řešení.
Já si osobně taky myslím, že XML je dost o problémechKdyz ho razite nekam, kam se nehodi, tak jo. Ale ja i kdyz jsem narazil na problemy, tak nikdy nebyly takove, abych se musel divat po alternative -- ona totiz srovnatelne rozsirena a podporovana alternativa pro praci se stromovymi daty neni (ne, YAML opravdu neni alternativa k XML, pokud nechcete zustat u ukladani konfiguracku pro pristup do DB
). Kombinace XML a XSLT mi proste osobne mnohokrat pomohla a usetrila velkou sposutu casu (generovani statickych webu v kombinaci s Antem, datova zakladna pro dynamicke vicejazycne weby v kombinaci s DB etc...). Nemluve o tom, ze to reseni je prenositelne a kdyz se rozhodnu pouzit ho misto v Pythonu nebo PHP v Jave, tak muzu.
ale je in a každý kdo jí používá je happy a cool. Ale dost humoru.No tak u XML myslim tohle uz opada. Ted se na nej spise hazi spina a roli ruzovoucke in super technologie prejima uz zmineny YAML, ktery nemalo lidi (hlavne railsistu) povazuje za spasitele...
, ale na data typu "tabulka uživatelů" a podobně mi přijde pořád ještě lepší YAML, obzvlášť pokud do toho člověk musí lozit editorem ručně.
Zatímco na XML tam najdu hned minimálně 3 různé knihovny pro práci.Ano, a všechny tři jsou odporné a použitelné jen s krajním sebezapřením. Pro mě jako kdyby tam vůbec nebyly, já jsem rád, že tam pořád ještě jsou, jen kvůli zpětné kompatibilitě se softwarem, co je používá. Jediná pořádná XML knihovna pro Python, kterou jsem aspoň trochu ochoten vzít na milost, je lxml. ElementTree API je ještě rozumně použitelné, ale v "referenční implementaci" mi chybí pořádný XPath, takže od lxml mě nikdo neodtrhne.
ale na data typu "tabulka uživatelů" a podobně mi přijde pořád ještě lepší YAML, obzvlášť pokud do toho člověk musí lozit editorem ručně.To byste se divil. Me je XML na editaci moc prijemne a to z jedhono duvodu -- ze je vizualne symetricke. Vidim, kde tag konci a kdyz to mam rozumne zformatovany, tak vim, k cemu ze tenhle koncovej tag patri. U YAMLu tezko.
Pokud se dotyčný výraz vejde na jednu obrazovku, což se mi většinou děje, zvlášť u kódu
, tak je pro mě uniformní indentace mnohem lepším vizuálním pomocníkem než koncová značka. Samozřejmě u stromové struktury přes celý velký soubor můžou koncové značky začít být výhodné, ale to jsou právě ty dokumentové soubory, u kterých, jak píšu, mi XML nevadí.
Nicméně kolem sebe zvláště od Vimařů
slyším, že dotyční XML nepoužívají, pokud nemusejí. (Čestnou výjimkou je DocBook, což je ovšem pochopitelné, protože to je případ, kdy se kladivem opravdu zatlouká hřebík a ne vrut, a tehdy si rozumní lidé to kladivo opravdu vezmou.)
Nicméně kolem sebe zvláště od Vimařů<flame>Vim neumi automaticky uzavirat tagy nebo zvyraznovat XML syntaxi?slyším, že dotyční XML nepoužívají, pokud nemusejí.
</flame>
Ale jinak jsem vděčný aspoň za ten XML Copy Editor, i když by mohl umět trošku víc. Celkově to je škoda, ale deduktivně mi přijde, že absence pořádného XML režimu pro Vim se dá vysvětlit jedině nenávistí vimařů vůči XML. (Ovšem jestli mi teď nějaký vimař neexistenci pořádného vimího balíku pro XML vyvrátí sporem, nebudu se ani trošku zlobit.
)
...YAML se nemusíme bavit, to je prostě směšná záležitost typu, jakých si u Ruby vymysleli spousty, YAML je IMHO velmi nedomyšlená a nedotažená věc.Ale? Že o tom tolik víte...
FYI, YAML rozhodně nevymysleli rubisté, ti ho jen přijali.
) databáze, a tomu bych XML databáze neříkal - proč to omezovat na XML...
Lepsi vtip nez tvuj zdrojovy kod asi dlouho neuvidim,
)))