Dnes a zítra probíhá Ubuntu Summit 26.04. Na programu je řada zajímavých přednášek. Sledovat je lze na YouTube. Úvodní slovo měli Mark Shuttleworth a Jon Seager.
Lazygit byl vydán ve verzi 0.62.0. Jedná se o TUI (Text User Interface) nadstavbu nad gitem.
Jiří Eischmann se v příspěvku na svém blogu o rozepsal o tom, kam se vyhledávání v jeho očích posledních 10 let posunulo, jaké má zkušenosti s AI vyhledáváním, proč na něm nechce záviset a jaké vyhledávací služby ho v poslední době zaujaly.
Wayland kompozitor Labwc byl vydán ve verzi 0.20.0. Labwc je inspirován správcem oken Openbox. Postavený je na wlroots.
AlmaLinux OS byl vydán ve verzích 9.8 s kódovým jménem Olive Jaguar a 10.2 s kódovým jménem Lavender Lion. Podrobnosti v poznámkách k vydání (9.8 a 10.2). Opraveny byly zranitelnosti Copy Fail (CVE-2026-31431), Dirty FRAG, Fragnesia (CVE-2026-46300), nginx Rift (CVE-2026-42945) a SSH Keysign Pwn (CVE-2026-46333).
Seznam.cz vykázal za rok 2025 tržby v celkové hodnotě 6,454 miliardy korun. Oproti roku 2024 nárůst o 3,68 %. Zisk před zdaněním oproti předcházejícímu roku poklesl, a to o 11,21 % na 1,330 miliardy korun. Vlastní velké jazykové modely SeLLMa najdou dnes uživatelé téměř na všech seznamáckých službách. Na všechny obsahové služby byla zavedena technologie text-to-speech, díky níž si mohou uživatelé přehrát články v audio verzi namluvené
… více »Vláda představila strategické digitalizační projekty. Roadmapa zahrnuje celkem 55 projektů napříč státní správou, z toho 22 prioritních projektů vycházejících přímo z programového prohlášení vlády a 33 projektů založených na platné legislativě. Portfolio pokrývá oblasti financí, zdravotnictví, digitální identity, dat, registrů, dopravy, krizového řízení, sociálních agend i kybernetické bezpečnosti.
Vyjádřeni Software Freedom Conservancy (SFC) k porušování licence AGPLv3 společností Bambu Lab v jejich softwaru Bambu Studio pro 3D tisk. Bambu Studio vychází z PrusaSliceru. Ten zase z Slic3ru. Spuštěn byl projekt baltobu, který kombinuje několik strategií pro řešení problému. SFC zastřeší vývoj svobodné náhrady proprietární knihovny libbambu_networking pomocí reverzního inženýrství a reimplementace, forku OrcaSliceru pro Bambu Lab tiskárny od Paweła Jarczaka a forku celého Bambu Studia pod názvem Viscose.
Správce souborů GNOME Commander (Wikipedie) byl přepsán do Rustu a vydán v nové verzi 2.0.0.
Sway (Wikipedie), dlaždicový (tiling) správce oken pro Wayland kompatibilní s i3, byl vydán ve verzi 1.12. Do vývoje se zapojilo 50 vývojářů. Přehled novinek na GitHubu. Sway 1.12 závisí na wlroots 0.20.0.
Diskuse byla administrátory uzamčena.
Valu bych nepouzival na nic jinyho nez aplikace nad gobject.Tak nad GObject se dá postavit cokoli a spousta věcí je na tom reálně postaveno. Má to spoustu (většinu?) vlastností, které jinak nabízí objektové modely jazyků typu Python, je to podstatně rychlejší (pokud se využívá možností, prasit se dá všude), je to dobře ovladatelné i z C, ale i z těch dynamických jazyků jako Python a Javascript. Já tím, že dělám na NetworkManageru, tak tam píšem všechno nad GObjectem v C. Dá se to, nevidím v tom problém, ale fakt je, že mnohým by pomohlo psát (a hlavně číst!) tyhle věci v jazyce, který má syntaktický cukr na OOP.
public int age { get; set; }
Toto je inspirovano z delphi, ze ?
property age:integer read get write set
já bych sázel spíš na JavuAFAIK Java nemá speciální syntaktickou podporu pro vlastnosti.
person.set_age(person.get_age() + 1);
což předpokládám měl být kód v Javě.
+1 Tohle by chtělo v článku opravit, protože takhle se v Javě opravdu nepíše (podtržítkový fujtajbl).Uznávám, solidní programátor by to v Javě napsal jinak, ale mám pocit, že pro ukázku možností *Valy* tohle opravdu není kritické.
Děkuji moc za článek.Není zač, já děkuji za nějaká ta pozitivní slova.
Co se GTK+ týče, kdo zkoušel C++ binding (gtkmm), nebo Python binding, tak Vala mě přijde naprosto snadná, lehká a velmi dobře použitelná.Teď budu možná trochu sám proti sobě, ale s Gtk3, a tím pádem GObject introspekcí, je použití Gtk z Pythonu v podstatě totožné s psaním programu ve Vale. Plus s jednou velkou výhodou -- TAB TAB doplňováním v ipythonu.
--profile=posixAvsak za cenu ztraty nektere funkcionality (casto te podstatne
).
OT: Byla by moznost zahrnout do serialu i porovnani s jazykem NULLC? Chapu, ze by zde mohl mit kazdy takove prani pro kazdy existujici jazyk, ale NULLC povazuji za jeden z nejpovedenejsich vyssich jazyku dneska a snad i budoucnosti (je dost novy a neznamy, ale to se doufam zmeni
).
.
OT: Byla by moznost zahrnout do serialu i porovnani s jazykem NULLC? Chapu, ze by zde mohl mit kazdy takove prani pro kazdy existujici jazyk, ale NULLC povazuji za jeden z nejpovedenejsich vyssich jazyku dneska a snad i budoucnosti (je dost novy a neznamy, ale to se doufam zmeniBohužel už teď můžu s klidným svědomím odhadnout, že na tohle nebudu mít čas. Samozřejmě ale budu rád, pokud někdo článek na tohle téma napíše.).
Map<String, List<Integer>> var = new HashMap();
kompilátor bude sice prskat, ale bez problému to projde.
Zase nechci tvrdit, že někdy není java zbytečne ukecaná nebo používá návrhy jen pro návrhy ne pro použití.
Deklarovaná proměnná var, ale přináší problémy při automatickém přetypování a přetěžování operátorů, které není schopen potom odhalit kompilátor/preprocesor. Co když tu inicializaci někdo přepíse, třeba s čísla na řetězec, to potom bude radost tu chybu hledat.
Jediný příklad, krerý je k něčemu, je že logický výraz musí mít oba operandy typu bool a if, for a while musí obshovat podmínku typu bool. Potom je jednoduché odhalit chyby typu if(i=1) a je to schopný zjistit už kompilátor/preprocesor.
Samozřejmě tohle je můj prvotní pocit a realita může být jiná. Ty příklady mi ale příjdou jako příklady k ruby on rails (nebo komponent k .NETu), kde vytvoří blog za půl hodiny a pak se plácají po zádech jak jeto super. Bohužel ale už nezmíní, že pokud je třeba uďekat trochu něco jiného tak to jde stuha nebo vůbec.
nevíhody, ďelá, sožiťejšíhojsem už dál nečetl. Odkdy je čeština složitější než Java? Ale jo, četl. Příklad z hash mapou je podle mě špatně. V Javě sice nedělám, ale předpokládám že něco jako
typedef má. Jinak souhlasím se shodnocením blogu. Ukazuje pár detailů a prohlašuje to za "úvod". Já jsem se o tom jazyku nedozvěděl vůbec nic.
Jinak kdybych v kódu, který mám udržovat, našel
if (/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i.match(email))
{
....
tak si autora najdu a uškrtím ho ve spánku. Co ten kód dělá? Validuje mail? Vybírá maily s číslem na začátku? Já netuším, ale hlavně že ušetřil jeden řádek kódu:
bool valid_email_rfc822 = /^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i.match(email);
if (valid_email_rfc822)
{
....
Není toto o dost čitelnější?
interface MyMap extends Map<String, List<Integer>> {
}
Je to ale celkem zbytečné, protože podle definice proměnné je potom IDE schopno doplnit generiky do inicializace proměnné. A taky je otázka, jestli to nezhorší čitelnost. Po takové definici potom musí člověk dohledávat co tím myslel a pro to Map rozhraní potom musí dohledat jednotlivé implementace s java knihovny.
Ja toto riesim v Jave tak, ze mam v kode nieco ako
a potom volam len
public class Maps {
public static <K, V> HashMap <K, V> newHashMap () {
return new HashMap <K, V> ();
}
// atd pre ostatne mapy
}
Podobne mam aj triedy Sets a Lists.
Map<String, String> map = Maps.newHashMap();
Tyjo, no teď budu za strašného nacistu, ale po perlách typuPevně věřím, že alespoň někdo se dozvěděl, jaké zajímavé vlastnosti a syntaktické zkratky Vala přináší. Tento článek je určen jen jako motivační ukázka možností Valy. Nebudeme se snad přít o tom, že programovací jazyky jsou o něčem jiném než o syntaktických zkratkách. Pokud vím, tak vyjadřovací sílu mají všechny stejnou, od (turingovsky úplných) konfiguráků sendmailu až po Javu.nevíhody, ďelá, sožiťejšíhojsem už dál nečetl. Odkdy je čeština složitější než Java? Ale jo, četl. Příklad z hash mapou je podle mě špatně. V Javě sice nedělám, ale předpokládám že něco jakotypedefmá. Jinak souhlasím se shodnocením blogu. Ukazuje pár detailů a prohlašuje to za "úvod". Já jsem se o tom jazyku nedozvěděl vůbec nic.
Jinak kdybych v kódu, který mám udržovat, našelMyslím, že přidání komentáře by bylo naprosto dostačující. Nicméně tento článek není o psaní "pěkného, čitelného a dobře udržovatelného" kódu a pevně věřím, že pro ukázku jednoduchosti používání regulárních výrazů není třeba zbytečných řádků navíc.tak si autora najdu a uškrtím ho ve spánku.if (/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i.match(email)) { ....
Co ten kód dělá? Validuje mail? Vybírá maily s číslem na začátku? Já netuším, ale hlavně že ušetřil jeden řádek kódu:Vzhledem k části, ve které se tato ukázka nachází, bych rád podotknul, že z této podoby by možná vstávaly vlasy na hlavě některým "Perlistům". A ať si taky trochu rýpnu -- uvádět v názvu proměnné číslo RFC mi připadá trochu overkill; když už, tak možná uložit reg. výraz jako konstantu.Není toto o dost čitelnější?bool valid_email_rfc822 = /^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i.match(email); if (valid_email_rfc822) { ....
Nebudeme se snad přít o tom, že programovací jazyky jsou o něčem jiném než o syntaktických zkratkách.A snad se nebudeme přít ani o tom, že že syntaktické zkratky mají pomoct čitelnosti a udržovatelnosti kódu. Pravda je že coby člověku odchovaném na c++ mi takové
open(FILE, "file.txt") || die ("Cannot open file file.txt, exitting.");
mimo Bash nahání husí kůži, zatímco pro programátora v Perlu se jedná o používaný idiom. "Co je pro jednoho idiom..."
když už, tak možná uložit reg. výraz jako konstantu.Pravda.
A ať si taky trochu rýpnuNerýpu, kritizuju.
Samozrejme, že ten regex je zlý, ale ten druhý zápis nie je o nič lepší. Veľa ľudí totiž nemá tušenia aké to je komplikované.
Jediný správny regex podľa RFC je:
http://www.ex-parrot.com/pdw/Mail-RFC822-Address.html
a tuším ani ten nie je 100% korektný :)
Map<String, List<Integer>> var = new HashMap(); kompilátor bude sice prskat, ale bez problému to projde. Zase nechci tvrdit, že někdy není java zbytečne ukecaná nebo používá návrhy jen pro návrhy ne pro použití.V Javě (7) můžeš napsat:
List<String> list = new LinkedList<>();U toho
var = … mi přijde jako hlavní nevýhoda, že se používá příliš konkrétní typ. Např. vím, že někde chci mít obecnou mapu (Map) a v aktuální verzi použiji HashMapu – kvůli var bych pak ve zbytku kódu pracoval s konkrétní implementací místo s obecným rozhraním, což komplikuje budoucí změny (např. budu chtít použít jinou mapu).
Ale jinak nic proti této funkci – on to člověk používat nemusí a deklarovat si typy přesně, jak chce.
var je asi vzato ze C#, objevilo se to tam společně (a kvůli) LINQ ve verzi 3.0
Tiskni
Sdílej: