Jak si zobrazit pomocí Chrome a na Chromiu založených webových prohlížečích stránky s neplatným certifikátem? Stačí napsat thisisunsafe.
V repozitáři AUR (Arch User Repository) linuxové distribuce Arch Linux byly nalezeny a odstraněny tři balíčky s malwarem. Jedná se o librewolf-fix-bin, firefox-patch-bin a zen-browser-patched-bin.
Dle plánu by Debian 13 s kódovým názvem Trixie měl vyjít v sobotu 9. srpna.
Vývoj linuxové distribuce Clear Linux (Wikipedie) vyvíjené společností Intel a optimalizováné pro jejich procesory byl oficiálně ukončen.
Byl publikován aktuální přehled vývoje renderovacího jádra webového prohlížeče Servo (Wikipedie).
V programovacím jazyce Go naprogramovaná webová aplikace pro spolupráci na zdrojových kódech pomocí gitu Forgejo byla vydána ve verzi 12.0 (Mastodon). Forgejo je fork Gitei.
Nová čísla časopisů od nakladatelství Raspberry Pi zdarma ke čtení: Raspberry Pi Official Magazine 155 (pdf) a Hello World 27 (pdf).
Hyprland, tj. kompozitor pro Wayland zaměřený na dláždění okny a zároveň grafické efekty, byl vydán ve verzi 0.50.0. Podrobný přehled novinek na GitHubu.
Patrick Volkerding oznámil před dvaatřiceti lety vydání Slackware Linuxu 1.00. Slackware Linux byl tenkrát k dispozici na 3,5 palcových disketách. Základní systém byl na 13 disketách. Kdo chtěl grafiku, potřeboval dalších 11 disket. Slackware Linux 1.00 byl postaven na Linuxu .99pl11 Alpha, libc 4.4.1, g++ 2.4.5 a XFree86 1.3.
Ministerstvo pro místní rozvoj (MMR) jako první orgán státní správy v Česku spustilo takzvaný „bug bounty“ program pro odhalování bezpečnostních rizik a zranitelných míst ve svých informačních systémech. Za nalezení kritické zranitelnosti nabízí veřejnosti odměnu 1000 eur, v případě vysoké závažnosti je to 500 eur. Program se inspiruje přístupy běžnými v komerčním sektoru nebo ve veřejné sféře v zahraničí.
Antico 0.1 je jednoduchý správce oken a desktopu připravený v Qt 4. Řídí se pravidlem KISS - vše musí být nastavitelné přes několik souborů a výsledek by měl být svižný. Antico byl zatím vyvíjen jen pár měsíců a hledá další programátory.
Tiskni
Sdílej:
layman -a qting-edge emerge antico
To víš. teď když to bude LGPL tak se všichni přetrhnou
Hura, odlehcene KDE!
Od KDE to ma teda dost daleko ...
[sekce] klíč = hodnota
A stromovou strukturu nebo validaci hodnot tam uděláš jak?
Např. u stromové nabídky programů:
<složka>
<název>Programy</název>
<ikona>programy.png</ikona>
<složka>
<název>Video</název>
<ikona>video.png</ikona>
<program>
<název>Kaffeine</název>
<ikona>kaffeine.png</ikona>
<příkaz>kaffeine</příkaz>
</program>
</složka>
<program>
<název>Gimp</název>
<ikona>gimp.png</ikona>
<příkaz>gimp</příkaz>
</program>
</složka>
Zkus tohle nacpat do INI souboru… nakonec z toho vyleze nějaká prasárna se specifickou syntaxí, kterou nikdo nezná → musí se ji učit. Zatímco XML má syntaxi velmi jednoduchou (základ – dvě závorky a jedno lomítko) a stojí na jednoduchých pravidlech (značky se nesmí křížit).
Když udělám úpravy v konfiguráku, ocením, pokud si ty změny mohu zkontrolovat – k tomu se skvěle hodí validace XML. Nestandardní textové konfiguráky jde taky validovat – programem, ale to je právě rozdíl: u XML jednou deklarujeme formát (DTD, Schéma…) a validátor použijeme už hotový, zatímco při validaci programem ten validátor píšeme pokaždé znova, používají se různé formáty atd.
A kdo by naříkal, že XML editory jsou jen pro GUI, může klidně použít VIM jako XML editor.
Sice existují i nějaké jednoduché úkoly, kde si člověk s dvojicemi klíč=hodnota vystačí, ale pro konfiguraci desktopového prostředí bych určitě volil XML.
to co napisu ve Fluxboxu na 1 radek, by mi v Openboxu v XML zabiralo minimalne 3.
Z hlediska diskových kapacit i přenosů po síti je dneska celkem jendno, jestli má konfigurák jeden nebo tři řádky. Klávesnici si taky neošoupeš, protože dobrý editor ti značky doplňuje, takže stačí napsat tu první. Navíc ti editor radí použitelné značky ze schématu, takže ani moc nemusíš studovat manuály, abys napsal správný konfigurák -- taková online nápověda .
<regexp id="těžká pornografie"> <alternation> <iteration>a</iteration> <iteration>b</iteration> </alternation> </regexp>To žeru! Vážně: kdyby do toho neměli hrabat lidi, mohl bych klidně serializovat celou runtime reprezentaci konfigurace do podobného formátu. Včetně těch regexpů – i když tam bych serializoval samozřejmě ten automat. Ne že by XML bylo na podobné hrátky to nejlepší, ale přinejmenším bych mohl použít hotové a spolehlivé knihovny. Je to už trochu extrémismus, ale co už. Na druhou stranu mám poslední dobou čím dál radši přístup, kdy kód je konfigurace. Jako u toho vimu.
<shortcuts> <shortcut name="KWrite" cmdline="/usr/bin/kwrite" keys="Super_L+E" /> </shortcuts>před tímhle
[shortcuts] shortcut.1.name=KWrite shortcut.1.cmdline=/usr/bin/kwrite shortcut.2.keys=Super_L+ECož je pravda dané tím, že jediné API pro práci s ini soubory, které znám, je to z Borland Delphi, a to bylo dost děsivé. XPath nad DOMem je pohodlné velmi. Jistě, vůbec nejlepší by bylo
configure_shortcuts do |shortcuts| shortcuts.add :name => "KWrite", :cmdline => "/usr/bin/kwrite", keys => "Super_L+E" end
Tohle nikdy nebude víc než trojice řetězců
Vtip je v tom, že XML má standardní syntaxi – koukneš a vidíš – ale jinde musíš zkoumat syntaxi, kterou si každý autor udělá trochu jinak, zkoumat, co je oddělovač, jaké jsou escapovací znaky (jsou-li vůbec), když chceš použít znak vyhrazený pro oddělovač v textu atd. atd.
stačilo by natáhnout CSV soubor
CSV je fajn, ale dokáže popsat jen tabulku a maximálně záhlaví sloupců, nacpeš do něj jen homogenní strukturu (záznamy mají stejné sloupce – atributy), takže bys musel mít spoustu souborů, pro každý typ dat jiný. A pak můžeš mít nějaké vnořené struktury: např. adresář, kde máš X osob a každá osoba má Y e-mailů a Z adres… to už do CSV nedostaneš.
BTW: taky už jsem viděl spoustu mizerných použití XML, někdy to byly jen struktury klíč=hodnota zaobalené do <závorek>, jindy nevhodné použití atributů nebo např. nabastlení více hodnot oddělených středníkem do jedné značky/atributu, místo aby to bylo několik značek/atributů… a jiné sra*ky… dobré DTD/Schéma prostě neumí navrhnout každý, ne každé využití XML je užitečné, ale tyhle smutné případy dokládají neschopnost autorů, nikoli nevhodnost XML. Tak se tím nenechte strhnout.
Tohle nikdy nebude víc než trojice řetězcůTak to právě není pravda, třeba KDE umožňuje mít globální zkratky dvě, a naopak nespouští přímo daný příkaz, ale příkaz, který obsahuje položka menu, na kterou se klávesová zkratka odkazuje. A tak. Všechny tři formáty, které jsem uvedl jako příklad, umožňují rozšiřování (i když v případě toho ini souboru je to rozšiřování ve směru pravé nohy za levým uchem). CSV? Ani boha.
Praví můži si napíšou gramatiku a pak pomocí flexu a yacca a trochu nativního kódu vyrobí parser.
To jsou zbytečnosti -- stačí si uvědomit, že nastavení načtené v paměti je nějaká struktura objektů. A objektům velmi dobře odpovídá XML -- stačí je serializovat na disk. Ta serializace se dá udělat více či méně sofistikovaně -- buď se použijí standardní funkce jazyka (tím ztrácíme některé výhody XML) nebo si napíšeme vlastní serializátor objektů do XML -- tam výhody XML formátu plně využijeme, ale zároveň je to méně pracné a standardnější, než si psát vlastní gramatiku. Navíc uživatel, který chce náš konfigurák editovat, se nemusí novou gramatiku učit a nemusí si pořizovat zvlášní* editor pro náš formát, prostě použije nějaký standardní XML editor.
*) jasně, může použít obyčejný textový editor, ale to znamená nulovou podporu pro specifický formát, nulové usnadnění práce.
Vy byste si vazne mel precist http://www.defmacro.org/ramblings/lisp.html, pak by vas to XML rychle preslo.
Jeste pred mesicem jsem si myslel totez. Ale pak me prednaska a knizka Practical Common Lisp otevrela oci. "Zavorkove peklo" je jenom povrchni pohled.
Přijde mi to jen, nebo tam opravdu srovnávají jablka s hruškami?
int add(int arg1, int arg2) { return arg1 + arg2; } vs. <define-function return-type="int" name="add"> <arguments> <argument type="int">arg1</argument> <argument type="int">arg2</argument> </arguments> <body> <return> <add value1="arg1" value2="arg2" /> </return> </body> </define>
Programovací jazyk (definice funkce/metody) je přece něco zcela jiného než dokument (objekty).
Ne, oni jen ukazuji, jak by vypadal programovaci jazyk zapsany v XML. A dokonce davaji priklad takoveho jazyka - Ant.
Smichanim programovaciho jazyka (maker) a dokumentu dostanete daleko lepsi nastroje na validaci, nez poskytuje XML. To je cesta Lispu. Inu, nekdo to pochopi, a osviti ho, a nekdo ne, a neosviti ho. Vas asi neosviti.
Programovat v XML je nepraktické, to bych ani já nechtěl (zlatá Java) Ant není jediný, podobně je na tom JSPX, ale to je v první řadě dokument, proto se hodí XML a programování je tam minimum (pár IFů, jednoduchý cyklus…), protože aplikační logika se odehrává v beanách a JSP jen prezentuje výsledek (kdo si stěžuje, že se mu v JSP špatně programuje, tak ho většinou špatně pochopil).
Míchat data a programování (zpracování těch dat) do jednoho se mi nelíbí a většinou to považuji i za chybu. Dávám přednost čistým datům, která může zpracovat kdokoli, nezávisle na platformě nebo programovacím jazyku. Na ty nejjednodušší případy se dá použít CSV nebo texťák klíč=hodnota, na cokoli složitějšího je pak celkem logickou volbou XML.
Co jsou ty daleko lepší nástroje na validaci? Ty si přece musím napsat sám – pochybuji, že by existoval nějaký standardní validátor, který by pochopil změť dat a kódu a věděl, které operace s daty jsou správné a které datové struktury platné – tohle totiž má v hlavě programátor, u XML to může vyjádřit pomocí DTD nebo Schématu, ale jak to vyjádří u Lispu? Jak tam deklaruji, jak má vstup (dokument, konfigurák) vypadat?
Nikdo ti ho nenutí Uznávám, že XSLT už je trochu složitější na zvládnutí. Ale naštěstí máme možnost volby: XML buď zpracuješ pomocí XSLT nebo si ten převodník napíšeš v nějakém vlastním jazyce. XSLT může (ale nemusí) být pracnější, ale zase má výhodu v přenositelnosti – převodník napíšeš jednou a pak se dá používat různých jazycích, kdežto když si napíšeš převodník třeba v pythonu*, musí na cílové platformě python být nebo to musíš celé přepisovat.
Podobně je to s XML – je to standard použitelný na různých platformách a v různých programovacích jazycích, narozdíl od nějakého proprietárního textového konfiguráku, který se používá jen v jedné aplikaci a jeho syntaxe nebývá nikde deklarovaná – zná ji ten programátor a je zadrátovaná do kódu programu.
*) v javě, céčku… v čemkoli.
Programovat v XML je nepraktické, to bych ani já nechtěl (zlatá Java)JSP je turingovsky úplné, i bez skriptletů, přes dispatcher by se měla dát udělat rekurzeAnt není jediný, podobně je na tom JSPX, ale to je v první řadě dokument, proto se hodí XML a programování je tam minimum (pár IFů, jednoduchý cyklus…)
Míchat data a programování (zpracování těch dat) do jednoho se mi nelíbí a většinou to považuji i za chybu.Tak to já už jsem na dalším levelu, už si uvědomuju, jak užitečné to je a jakou flexibilitu to přináší
Na JSP se předně není dobré dívat jako na programování porogramování by se mělo odehrávat jinde a JSP má jen prezentovat, dělá minimum práce.
XSLT taky nepovažuji za programování, je to jen transformace z jedněch značek na jiné, já jsem v tom např. napsal převodník mezi XML a LaTeXem (viz příloha).
Jak už jsem tu někde psal, použití XSLT má výhody (přenositelnost) i nevýhody (nejde v tom napsat všechno, něco je pracné), je to o volbě, někdy XSLT použiji, jindy to napíšu do kódu třeba v Javě nebo jiném jazyce, ale to nijak nezpochybňuje vhodnost XML pro uložení dat – dokumentů.
Relax NG znám, asi myslíš jeho kompaktní syntaxi. Tady je rozdíl mezi dokumentem (data) a jeho popisem (schéma) – na popis nám stačí relativně omezené prostředky, které by na vlastní data nestačily (tam potřebujeme víceřádkový text, různá kódování, escapování znaků, mezery, tabulátory…)
už si uvědomuju, jak užitečné to je a jakou flexibilitu to přináší
Flexibilitu to na jedné straně přináší a na druhé bere – když přimíchám k datům kód, jsem závislý na nějakém jazyce, potřebuji jeho interpret, kdežto když mám čistá data, můžu si je zpracovat kdekoli a přenášet je mezi programy, jazyky, platformami… Taky je otázka, jestli se na data dívat jako na něco statického (sama od sebe nic nedělají, veškeré zpracování a změny jsou iniciované zvenku, nebo jako na nějaké živé objekty, které se nějak chovají, nejsou to jen hloupé přepravky (get/set), ale mají vlastní logiku – což je sice hezké, ale pak nastává problém, když tuhle logiku potřebuji změnit, když s daty chci dělat něco jiného, než zamýšlel jejich autor. Proto mi přijde lepší data a kód oddělit a mít např. DTOčka a k nim různé třídy, které s nimi pracují, což znamená, že se stejnými daty mohu pracovat různými způsoby – což je, alespoň pro mě, flexibilnější, než když mám data a kód neoddělitelně spojená.
nic podobného nejspíš nikdy nebudu používat v praxi
čím to asi bude?
čím to asi bude?To bude tím, že zdaleka nejsem takový guru jako Paul Graham a podobní
Proti datům jako kódu bych ještě přidal jeho nebezpečnost.
V okamžiku, kdy mám turingovsky úplný datový formát, tak problémem se stává už jen jeho zpracování, protože z principu nelze zjistit, jestli se mi data nezacyklí (pro příklad stačí poslat vhodný soubor postscriptové tiskárně).
Poznamenávám si: překladač Ady umí rozhodnout problém zastavení ;)
Jistě že lze nastavit časový limit a po jeho překročení vstupní data odmítnout. Jenže to jaksi postrádá jednoznačnost, kdy poznám, jestli mám jen pomalý počítač nebo ta data jsou chybná.
No, u konfiguráků patrně není třeba se bát, že by někdo podstrčil cyklící data schválně, a legitimní uživatel si to holt nějak zdebuguje, takže tady bych to asi aji zanedbal (předpokládám, že řeč je stále primárně o konfiguraci*). Jinak jo, no, problém to je.
*Ale zase konfigurace, pokud má něco fakt konfigurovat, často prostě stejně hodně silná být musí.
Podlé mého by konfigurace měla být statická, jak ji napíšeš, takové je, a ne aby se měnila -- skript. Protože když je konfigurace skriptem a potřebuješ, aby se nějak měnila, nebyla statická, supluješ tím nějakou chybějící funkcionalitu toho programu. A od čeho máme open source? Abychom si tam ty funkce mohli dopsat :-)
(tedy do programu, ne abychom museli vymýšlet workaroundy v podobě dybamických konfiguráků)
Zrovna dneska jsem si na tuhle diskusi vzpomněl Při upgradu jsem teď musel pracně dávat dohromady (slučovat) změny provedené na datech (uživateli, v produkčním prostředí) a změny provedené v kódu (programátorem). Tohle jsem si mohl odpustit, kdybychom důsledněji oddělili data a programový kód.
Programovací jazyk (definice funkce/metody) je přece něco zcela jiného než dokument (objekty).To právě pro konfiguraci neplatí. (Ono to teda neplatí pro nic, ale tady to neplatí ještě víc.)
Za predpokladu, ze niekde sedi tlupa programatorov, ktori nemaju do coho pichnut to staci
a existuje nějaký návod, či ještě lépe udělátko , jak ponechat nezbytné minimum?
Kedysi existoval projekt KDElight, ktory ako vznikol, tak aj zanikol (casty pripad takychto one-man forkov)
škoda. Já měl představu nějaké škály od KDEmini po KDEmax, ale už vidím, jak vzniká na toto téma nějaký konsensus.. Každopádně budu rád, když se někdo svou mini verzí pochlubí
Až bude pro Qt Gimp, tak o tom možná začnu uvažovat. Do té doby...
Navíc závislost značné části QT aplikací na půlce KDE (K3b, K9Copy,...) značně snižuje význam této lehkotonážní alternativy...
Misto amaroKu zkusim MPD + nejakou nastavbu apod.a co Qmmp? - tisíce spokojených uživatelů, stovky děkovných dopisů!
Až bude pro Qt Gimp, tak o tom možná začnu uvažovat.
A nestačí, když vypadá, jako by byl?
Jednoduche a rychle bylo KDE 1 take. A to je ten trik.
Wau.. prave bezim na Antico.. je to daco uzasnee... co povedat.. super... inac idem prave skompilovat Antico Deluxe.. ktory vyzera ako macosx
To lidem nevysvětlíš, že čím je prostředí rychlejší, tím méně toho zpravidla umí... Oni prostě chtějí nekonečno funkcí v nulové rychlosti. A to je ten trik.
Oni prostě chtějí nekonečno funkcí v nulové rychlosti.já chci nekonečno funkcí v nekonečné rychlosti - jsem vadnej?
Nejde jenom o tohle. Take jde o to, ze Antico muze byt klidne pomalejsi nez KDE, pokud bychom porovnavali porovnatelne.