abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 12:44 | IT novinky

    Počítačová hra Kingdom Come: Deliverance 2 českého studia Warhorse získala cenu BAFTA v kategorii nejlepší příběh. V konkurenci pěti dalších nominovaných děl porazila i úspěšnou francouzskou hru Clair Obscur: Expedition 33, která v letošním ročníku získala cenu za nejlepší hru roku.

    Ladislav Hagara | Komentářů: 0
    dnes 12:22 | Komunita

    Projekt KDE oslaví v říjnu 30 let. Matthias Ettrich poslal 14. října 1996 do diskusní skupiny comp.os.linux.misc zprávu, která započala historii projektu. Důležité milníky jsou zobrazeny na časové ose KDE.

    Ladislav Hagara | Komentářů: 0
    dnes 02:55 | Komunita

    Byly vyhlášeny výsledky letošní volby vedoucí/ho projektu Debian (DPL, Wikipedie). Poprvé povede Debian žena. Novou vedoucí je Sruthi Chandran. Letos byla jedinou kandidátkou. Kandidovala již v letech 2020, 2021, 2024 a 2025. Na konferenci DebConf19 měla přednášku Is Debian (and Free Software) gender diverse enough?

    Ladislav Hagara | Komentářů: 10
    dnes 00:55 | Nová verze

    Byla vydána nová verze 10.3 z Debianu vycházející linuxové distribuce DietPi pro (nejenom) jednodeskové počítače. Přehled novinek v poznámkách k vydání. Přidána byla podpora Orange Pi 4 LTS. Přibyl balíček Prometheus.

    Ladislav Hagara | Komentářů: 0
    včera 18:55 | Nová verze

    Implementace VPN softwaru WireGuard (Wikipedie) pro Windows, tj. WireGuard pro Windows a WireGuardNT, dospěly do verze 1.0.

    Ladislav Hagara | Komentářů: 2
    včera 16:11 | IT novinky

    V Pekingu dnes proběhl 2. ročník půlmaratonu humanoidních robotů. První 3 místa obsadili roboti Honor Lightning v různých týmech. Nový rekord autonomního robota je 50 minut a 26 sekund. Operátorem řízený robot to zvládl i s pádem za 48 minut a 19 sekund. Řízení roboti měli časovou penalizaci 20 %. Před rokem nejrychlejší robot zvládl půlmaraton za 2 hodiny 40 minut a 42 sekund. Aktuální lidský rekord drží Jacob Kiplimo z Ugandy s časem 57 minut a 20 sekund [𝕏].

    Ladislav Hagara | Komentářů: 2
    17.4. 17:11 | Zajímavý článek

    Stanislav Fort, vedoucí vědecký pracovník z Vlčkovy 'kyberbezpečnostní' firmy AISLE, zkoumal dopady Anthropic Mythos (nový AI model od Anthropicu zaměřený na hledání chyb, který před nedávnem vyplašil celý svět) a předvedl, že schopnosti umělé inteligence nejsou lineárně závislé na velikosti nebo ceně modelu a dokázal, že i některé otevřené modely zvládly v řadě testů odhalit ve zdrojových kódech stejné chyby jako Mythos (například FreeBSD CVE-2026-4747) a to s výrazně nižšími provozními náklady.

    MakeIranBombedAgain❗ | Komentářů: 6
    17.4. 12:44 | IT novinky

    Federální návrh zákona H.R.8250 'Parents Decide Act', 13. dubna předložený demokratem Joshem Gottheimerem a podpořený republikánkou Elise Stefanik coby spolupředkladatelkou (cosponsor), by v případě svého schválení nařizoval všem výrobcům operačních systémů při nastavování zařízení ověřovat věk uživatelů a při používání poskytovat tento věkový údaj aplikacím třetích stran. Hlavní rozdíl oproti kalifornskému zákonu AB 1043 a kolorádskému SB26-051 je ten, že federální návrh by platil rovnou pro celé USA.

    MakeIranBombedAgain❗ | Komentářů: 12
    17.4. 12:33 | Nová verze

    Qwen (čínská firma Alibaba Cloud) představila novou verzi svého modelu, Qwen3.6‑35B‑A3B. Jedná se o multimodální MoE model s 35 miliardami parametrů (3B aktivních), nativní kontextovou délkou až 262 144 tokenů, 'silným multimodálním vnímáním a schopností uvažování' a 'výjimečnou schopností agentického kódování, která se může měřit s mnohem rozsáhlejšími modely'. Model a dokumentace jsou volně dostupné na Hugging Face, případně na čínském Modelscope. Návod na spuštění je už i na Unsloth.

    MakeIranBombedAgain❗ | Komentářů: 1
    17.4. 11:00 | Nová verze

    Sniffnet, tj. multiplatformní (Windows, macOS a Linux) open source grafická aplikace pro sledování internetového provozu, byl vydán ve verzi 1.5. V přehledu novinek je vypíchnuta identifikace aplikací komunikujících po síti.

    Ladislav Hagara | Komentářů: 4
    Které desktopové prostředí na Linuxu používáte?
     (14%)
     (8%)
     (1%)
     (12%)
     (30%)
     (3%)
     (6%)
     (2%)
     (15%)
     (25%)
    Celkem 1360 hlasů
     Komentářů: 30, poslední 3.4. 20:20
    Rozcestník

    Rozšírte si Firefox a Thunderbird - sami! - II

    9. 8. 2005 | Matej Gagyi | Programování | 9151×

    Ako sme si povedali v minulom diele, vývojári Mozilly chceli vytvoriť čo možno najmodulárnejšiu aplikáciu, ako sa len bude dať. Špeciálne na tvorbu GUI preto navrhli jazyk XUL (XML User-interface Language).

    XUL priniesol do Mozilly úplne nový rozmer rozšíriteľnosti, ktorý vývojári horlivo využívajú. XUL je praktický aj pri vývoji webových stránok a aplikácií, ako je napríklad Google: http://www.google.com/mozilla/google.xul.

    XUL je témou dnešného článku, ale nie jeho cieľom. XUL je len prostriedkom, ktorý nám umožní posunúť sa v sérii ďalej. Mozilla skrýva množstvo zaujímavých technológií a nepochybujem, že XUL bude pre vás vynikajúce lákadlo.

    Základy XUL

    XUL sa z časti podobá na DHTML. Vzhľad jednotlivých ovládacích prvkov určujú CSS štýly a o ich interaktivitu sa stará JavaScript. XUL je navrhnuté na tvorbu GUI, preto ponúka odlišnú funkcionalitu.

    XUL súbor predstavuje aplikačné okno, alebo dialóg, alebo iný druh okna, ktorý môže existovať nezávisle na okolí. Aplikačné okno je tvorené správcami rozloženia a ovládacími prvkami usporiadanými do hierarchickej štruktúry.

    Jedna aplikácia často pozostáva z viacerých okien a dialógov, ktoré pozostávajú z podobných častí. Zbytočné duplikovanie kódu XUL redukuje technológiou XUL overlay, čo sa dá preložiť ako "vrstvenie XUL".

    Rovnaké komponenty okien sa ukladajú do samostatných súborov XUL s koreňovým elementom <overlay>. Do tohto súboru sa vkladajú len tie časti okna, ktoré sú spoločné.

    Spoločné časti XUL okien sú označené identifikátorom, atribútom id v koreňovom tagu. V okne, v ktorom chcete použiť XUL overlay, uložíte rovnaký element s rovnakým atribútom id. Gecko engine preloží XUL definície okien vrstvami definovanými v XUL overlayoch.

    To, ktoré XUL okná sa majú preložiť ktorými XUL overlaymi, je definované v RDF súboroch, ktoré sa nachádzajú vo všetkých aplikáciách a rozšíreniach. Okrem znovupoužiteľnosti kódu XUL overlay umožňuje aj rozšíriteľnosť GUI.

    Vzhľad XUL aplikácií

    XUL je predovšetkým multi-platformová technológia a v implementácii Mozilly je viazaná len na renderovaciu vrstvu Gecko enginu - presne tak, ako aj HTML. Tým pádom odpadá množstvo kódu, ktorý by sa staral o GUI, všetkú prácu robí Gecko.

    RenderOvanie XUL je zabezpečené. Teraz chceme vyťažiť čo najviac funkcionality z konceptu, ktorý sme zvolili. Vzhľad HTML riadia CSS štýly, prečo by teda aj XUL nemohlo byť riešené rovnako?

    Odpoveď znie: CSS nie je vhodné na tvorbu GUI, pretože na ňu nebolo dizajnované a neponúka potrebnú funkcionalitu. Programátori by boli čiastočne obmedzení. Riešenie je však rozšíriť štandardné CSS, pričom jadro zostane nedotknuté a plne vyhovujúce štandardu.

    Mozilla používa CSS na definovanie všetkých vlastností GUI prvkov, ktoré sú pomocou CSS ľahko realizovateľné. Najzaujímavejším príkladom je rozširovanie hotových ovládacích prvkov pomocou jazyka XBL.

    Správu rozloženia CSS nerobí, na to sú správcovia rozloženia, ktorých je v XUL dosť. Vďaka tomu jednotlivé ovládacie prvky GUI neskáču po okne ako text na HTML stránkach. Nie je to však pravidlo a polohovanie pomocou CSS je možné vykonávať aj v XUL.

    Logika XUL aplikácií

    Ovládacie prvky XUL majú svoje správanie už naprogramované. Ale dva rovnaké prvky by môžu mať rôznu funkcionalitu. Tá je implementovaná v JavaScripte. Tlačidlá v XUL majú atribút oncommand, ktorého hodnota je JavaScript, zvyčajne len volanie externej funkcie, ktorá sa vykoná po jeho stlačení.

    Externý JavaScript sa do XUL vkladá elementom <script>, čo si ukážeme v tutoriáli. Logika XUL je založená na vysielaní udalostí, na podnet ktorých sú spúšťané funkcie implementované v JavaScripte.

    Rozširovanie správania ovládacích prvkov XUL je realizované prepájaním udalostí s JavaScriptom, ktoré je na nižšej úrovni realizované pomocou jazyka XBL. V ďalších dieloch si všetky aspekty JavaScriptu v rozšíreniach vysvetlíme podrobne.

    Tutoriál

    V dnešnom tutoriáli si ukážeme, ako sa vytvárajú tlačidlá pre nástrojový panel a pridáva do XUL JavaScript. Nebudeme sa pokúšať vylepšiť rozšírenie z predchádzajúceho dielu, lebo to bude dobrá domáca úloha.

    Z tutoriálu z minulého týždňa ste si mohli všimnúť, že rozšírenie sa zle odinštaluje. Ak tomu chceme predísť a vydať plne funkčnú stabilnú verziu rozšírenia, musíme všetky dáta v adresári chrome zabaliť programom zip.

    Naša nová adresárová štruktúra vyzerá takto:

    install.rdf
    chrome/abc2/content/contents.rdf
    chrome/abc2/content/abc2overlay.xul
    chrome/abc2/content/abc2.js
    chrome/abc2/content/abc2.css
    chrome/abc2/content/abc2.png
    chrome/abc2/content/abc2-small.png

    Ak dáta rozšírenia niesú zbalené v jar súbore, FF bude mať problémy s odinštalovaním rozšírenia. Napísal som pre vás Makefile, ktorý celý balík prevytvorí sám. Stačí ak do Makefilu napíšete meno rozšírenia, aby vedel, aký súbor má vytvoriť:

    PKGNAME=abc2

    Nasledovné výpisy prosím skopírujte do súborov, ktorých názov zodpovedá ich nadpisu:

    install.rdf

    <?xml version="1.0"?>
    
    <RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
                    xmlns:em="http://www.mozilla.org/2004/em-rdf#">
    
            <Description about="urn:mozilla:install-manifest">
                    <em:name>Abc tutorial 2</em:name>
                    <em:id>abctutorial-2</em:id>
                    <em:version>0.1</em:version>
                    <em:description>Tutoril AbcLinuxu.cz</em:description>
    
                    <em:file>
                            <Description about="urn:mozilla:extension:file:abc2.jar">
                                    <em:package>content/</em:package>
                            </Description>
                    </em:file>
    
                    <em:targetApplication>
                            <Description>
                                    <em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id>
                                    <em:minVersion>0.9</em:minVersion>
                                    <em:maxVersion>1.0+</em:maxVersion>
                            </Description>
                    </em:targetApplication>
            </Description>
    </RDF>
    

    contents.rdf

    <?xml version="1.0"?>
    
    <RDF:RDF xmlns:RDF="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
             xmlns:chrome="http://www.mozilla.org/rdf/chrome#">
    
      <RDF:Seq about="urn:mozilla:package:root">
        <RDF:li resource="urn:mozilla:package:abc2"/>
      </RDF:Seq>
    
      <RDF:Description about="urn:mozilla:package:abc2"
            chrome:displayName="Abc Tutorial 2"
            chrome:name="tabmix"
            chrome:description="Multi-functions for tabbed browsing."
            chrome:extension="true"/>
    
      <RDF:Seq about="urn:mozilla:overlays">
        <RDF:li resource="chrome://browser/content/browser.xul"/>
      </RDF:Seq>
    
      <RDF:Seq about="chrome://browser/content/browser.xul">
        <RDF:li>chrome://abc2/content/abc2overlay.xul</RDF:li>
      </RDF:Seq>
    
    </RDF:RDF>
    

    abc2overlay.xul

    <?xml version="1.0"?>
    
    <?xml-stylesheet href="chrome://abc2/content/abc.css" type="text/css"?>
    
    <overlay id="abc2overlay"
                    xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
    
            <script type="application/x-javascript" src="chrome://abc2/content/abc.js"/>
    
            <toolbarpalette id="BrowserToolbarPalette">
                    <toolbarbutton
                            id="abcToolbarButton"
                            type="menu-button"
                            class="toolbarbutton-1"
                            oncommand="abcAction();"
                            label="abclabel"/>
            </toolbarpalette>
    </overlay>
    

    abc2.js

    var count = 0;
    
    function abcAction() {
            count++;
            alert("Ahoj, po " + count + "-raz.");
    }
    

    abc2.css

    @namespace url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul");
    
    #abcToolbarButton {
            list-style-image: url(chrome://abc2/content/abc2.png);
    }
    
    toolbar[iconsize="small"] #abcToolbarButton {
            list-style-image: url(chrome://abc2/content/abc2-small.png);
    }
    

    abc2.png, abc2-small.png

    abc

    abc-small

    Záver

    Dnešný diel našej série o rozširovaní aplikácií založených na Gecko engine bol viac teoretický. XUL je veľmi rozsiahly jazyk a ponúka množstvo možností, ktoré nie som schopný v priebehu týždňa spísať do zrozumiteľnej príručky.

    Keď si o metódach rozširovania Mozilly porozprávame viac, niektorý diel venujem referenčným príručkám špecifických vlastností technológií používaných v Mozille.

    V ďalšom diele si ukážeme lepší JavaScript, ktorý už bude pracovať s HTML dokumentami, ktoré užívateľ zobrazuje v prehliadači. Okrem toho sa budeme venovať výhradne tutoriálu a každý riadok, ktorý napíšeme, aj poriadne vysvetlíme.

    Dnes som vynechal komentáre a vysvetlivky k uvedenému kódu vám nechávam na domácu úlohu. Posnažte sa kód pochopiť a o týždeň si budete môcť skontrolovať, či ste postupovali správne.

    Dúfam, že som vás potešil a že sa vám ďalší diel bude páčiť.

    Nejčtenější články posledního měsíce

    Týden na ScienceMag.cz: Modely umělé inteligence založené na fyzice místo na jazyce by se mohly stát hnací silou vědeckých objevů
    Týden na ITBiz: Nová technologie dokáže sledovat lidi podle toho, jak narušují signály Wi-Fi
    Událo se v týdnu 12/2026

    Nejkomentovanější články posledního měsíce

    Jaderné noviny – přehled za únor 2026
      všechny statistiky »

    Seriál Rozšírte si Firefox a Thunderbird - sami! (dílů: 8)

    Rozšírte si Firefox a Thunderbird - sami! (první díl)
    <—« Rozšírte si Firefox a Thunderbird - sami!
    »—> Rozšírte si Firefox a Thunderbird - sami! - 3
    Rozšírte si Firefox a Thunderbird - sami! - 8 (Záver) (poslední díl)

    Související články

    Rozšírte si Firefox a Thunderbird - sami!
    Rozšírte si Firefox a Thunderbird - sami! - 3
    Rozšírte si Firefox a Thunderbird - sami! - 4 (JavaScript)
    Rozšírte si Firefox a Thunderbird - sami! - 5 (Nastavenia)
    Rozšírte si Firefox a Thunderbird - sami! - 6 (Lokalizácia)
    Rozšírte si Firefox a Thunderbird - sami! - 7 (XHTML)
    Rozšírte si Firefox a Thunderbird - sami! - 8 (Záver)
    Rozšiřte si Firefox!
    Rozšiřte si Thunderbird!
    Rozhovor s Pavlem Cvrčkem z týmu CZilla
    Sunbird
    Thunderbird I
    Thunderbird II
    Firefox
    Liber Mozillae aneb tajemná Kniha Mozilly
    Kde známé projekty ke svým jménům přišly...

    Odkazy a zdroje

    Extension Developer's Extension
    Firefox Application Extensions
    Extension development
    Mozilla Update

    Další články z této rubriky

    LLVM a Clang – více než dobrá náhrada za GCC
    Ze 4 s na 0,9 s – programovací jazyk Vala v praxi
    Reverzujeme ovladače pro USB HID zařízení
    Linux: systémové volání splice()
    Programování v jazyce Vala - základní prvky jazyka
           

    Hodnocení: 89 %

            špatnédobré        

    Nástroje: Tisk bez diskuse

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    Komentáře

    Vložit další komentář

    9.8.2005 10:50 nvj
    Rozbalit Rozbalit vše chybička se vloudila
    Ako sme si povedali v minulom dieli ...
    9.8.2005 15:14 karol matis | skóre: 1
    Rozbalit Rozbalit vše Re: chybička se vloudila
    "V ďalšom diely"... správne má byť v ďalšom dieli. Je to úplne dole v závere.
    9.8.2005 15:48 Robert Krátký | skóre: 94 | blog: Robertův bloček
    Rozbalit Rozbalit vše Re: chybička se vloudila
    Díky za upozornění. Nakonec jsem se na základě rady (díky Dušan) a Slovníku slovenského jazyka rozhodl pro kompromis: http://www.forma.sk/onlines/slex/index.asp?key=diel.
    10.8.2005 17:37 Jů Helé
    Rozbalit Rozbalit vše Re: chybička se vloudila
    Nebuc mudry, dobre ? :DDDD
    Yin avatar 10.8.2005 18:55 Yin | skóre: 39 | blog: Yinotopia | Slovesnko, Košice
    Rozbalit Rozbalit vše 5-ty diel

    Prajem pekný deň milý čitatelia.

    Práve sa rodí tretí diel seriálu a ten štvrtý už má svoju tému vybranú. Ak Vás zujíma nejaká konkrétna téma, o ktorej by ste sa chceli dočítať, napíšte mi a ja ju zaradím do piateho dielu.

    Piaty diel bude kratší a omnoho zrozumiteľnejší ako všetky ostatné a nemusí byť zaujímavý pre každého. Nechcem veľmi miešať témy, ale keď musím, tak aspoň tie, ktoré sa budú hodiť Vám.

    Nikdy nie je tak zle, aby to jeden poharik nemohol ešte zhorsiť.

    Založit nové vláknoNahoru

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.