Jihokorejská Národní daňová služba (NTS) zabavila kryptoměnu Pre-retogeum (PRTG) v hodnotě 5,6 milionu dolarů. Pochlubila se v tiskové zprávě, do které vložila fotografii zabavených USB flash disků s kryptoměnovými peněženkami spolu se souvisejícími ručně napsanými mnemotechnickými obnovovacími frázemi. Krátce na to byla kryptoměna v hodnotě 4,8 milionu dolarů odcizena. O několik hodin ale vrácena, jelikož PRTG je extrémně nelikvidní, s denním objemem obchodování kolem 332 dolarů a zalistováním na jediné burze, MEXC [Bitcoin.com].
Komunita kolem Linuxu From Scratch (LFS) vydala nové verze knih s návody na instalaci vlastního linuxového systému ze zdrojových kódů Linux From Scratch 13.0 a Beyond Linux From Scratch 13.0. Pouze se systemd.
Byla vydána nová stabilní major verze 25.12 linuxové distribuce primárně určené pro routery a vestavěné systémy OpenWrt (Wikipedie). Jedná se o nástupce předchozí major verze 24.10. Přehled novinek v poznámkách k vydání. Podporováno je více než 2200 zařízení.
Na čem pracují vývojáři webového prohlížeče Ladybird (GitHub)? Byl publikován přehled vývoje za únor (YouTube). Odstraněn byl veškerý kód napsaný ve Swiftu. JavaScriptový engine LibJS byl reimplementován v Rustu.
Byla vydána verze 1.94.0 programovacího jazyka Rust (Wikipedie). Podrobnosti v poznámkách k vydání. Vyzkoušet Rust lze například na stránce Rust by Example. Zveřejněny byly výsledky průzkumu mezi vývojáři v programovacím jazyce Rust: 2025 State of Rust Survey Results.
Google zveřejnil seznam 185 organizací přijatých do letošního Google Summer of Code (GSoC). Dle plánu se zájemci přihlašují od 16. do 31. března. Vydělat si mohou od 750 do 6600 dolarů. V Česku a na Slovensku je to 900 dolarů za malý, 1800 dolarů za střední a 3600 dolarů za velký projekt. Další informace v často kladených otázkách (FAQ). K dispozici jsou také statistiky z minulých let.
Byla vydána únorová aktualizace aneb nová verze 1.110 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.110 vyjde také VSCodium, tj. komunitní sestavení Visual Studia Code bez telemetrie a licenčních podmínek Microsoftu.
Apple představil 13palcový MacBook Neo s čipem A18 Pro. V základní konfiguraci za 16 990 Kč.
Kalifornský zákon AB 1043 platný od 1. ledna 2027 vyžaduje, aby operační systémy požadovaly po uživatelích věk nebo datum narození a skrze API poskytovaly aplikacím informaci, zda je uživatel mladší 13 let, má 13 až 16 let, má 16 až 18 let nebo má alespoň 18 let. Vývojáři linuxových distribucí řeší, co s tím (Ubuntu, Fedora, …).
Konference LinuxDays 2026 proběhne o víkendu 3. a 4. října v Praze v areálu ČVUT v Dejvicích na FIT. Čekají vás desítky přednášek, workshopy, stánky a setkání se spoustou chytrých lidí.
Žiadna aplikácia nie je ideálna tak, ako ju distribuuje výrobca. To platí aj pre rozšírenia pre Firefox. Aby si užívateľ mohol doladiť vlastnosti rozšírenia a programátor nemal veľké starosti s obsluhou nastavení, ponúka Mozilla kompletný systém správy nastavení.
O existencii nastavení musíme Firefox informovať na dvoch miestach: v
súbore install.rdf a v súbore content.rdf v obsahu rozšírenia. Do oboch
stačí pridať jeden riadok, ktorý obsahuje adresu dialógu s nastaveniami.
Informáciu o nastaveniach dodáme Firefoxu v súbore install.rdf tagom
<em:optionsURL> a v súbopre content.rdf tagom <chrome:settingsURL>. Tieto tagy sa vkladajú do tagu <RDF:Description> a môžu byť použité ako atribúty tohto tagu tak, ako to povoľuje špecifikácia RDF.
Všimnite si, že som do tagov zapísal aj ich XML menný priestor. Menné priestory sú "em:", "chrome:" a "RDF:" v uvedených tagoch. Tieto slovíčka v tagoch treba samozrejme prispôsobiť XML súboru, do ktorého ich vkladáme.
V prípade nášho rozšírenia z tretieho dielu seriálu pridáme do súboru
install.rdf vysvietený riadok:
<em:description>Tutorial AbcLinuxu.cz</em:description>
<em:optionsURL>chrome://abc5/content/abc5settings.xul</em:optionsURL>
<em:file>
<Description about="urn:mozilla:extension:file:abc5.jar">
Menný priestor RDF tagov v našich RDF súboroch sme spravili predvoleným
priestorom (to sa robí atribútom xmlns). Preto tag
<RDF:Description> zapisujeme ako <Description>. Do súboru
chrome/contents/content.rdf vložíme nasledovný riedok
<Description about="urn:mozilla:package:abc5"
chrome:displayName="Abc Tutorial 5"
chrome:name="abc5"
chrome:description="Multi-functions for tabbed browsing."
chrome:extension="true"
chrome:settingsURL="chrome://abc5/content/abc5settings.xul" />
Mozilla 1.8 má špeciálny typ dialógu pre nastavenia, ale na starších verziách Mozilly by jeho použitie spôsobovalo problémy. My preto použijeme obyčajný dialóg, naučíme sa s ním pracovať a rozšírenie sprístupníme väčšiemu počtu užívateľov.
Dialóg nastavení je obyčajný XUL súbor. Vkladáme do neho bežné GUI prvky, ako do iných XUL okien. Výborná referenčná príručka k XUL elementom sa nachádza na stránkach XUL Planet. Pri tvorbe XUL aplikácií sa na XUL Planet môžete vždy spoľahnúť.
Ovládacie prvky dialógu môžeme z programátorského hľadiska rozdeliť na tri druhy: rozloženie, vysvetlivky a nastavenia. Rozloženie sú XUL tagy, ktoré určujú pozíciu ostatných tagov na dialógu.
Vysvetlivky sú nápisy (tag <label>) a rôzne bublinkové nápovedy,
ktoré užívateľovi hovoria niečo o nastaveniach.
Nastavenia sú zaškrtávacie políčka, prepínacie tlačidlá, textové polia a podobne, ktoré určujú samotné nastavenia. Mozilla 1.8 pridáva tomuto druhu ovládacích prvkov schopnosti nastavovať aplikáciu bez použitia JavaScriptu, ale znova sa objavuje problém so spätnou kompatibilitou.
Ovládacie prvky nastavení musíme prepojiť s JavaScriptom, aby boli funkčné na čo najväčšom počte aplikácií. Zväčša je dobré si najprv vytvoriť štruktúru dialógu a až potom pridávať k nastavenia funkcie.
Pri jednoduchých nastaveniach je táto úloha triviálna. Stačí celému dialógu pri jeho otvorení nastaviť ovládacie prvky do stavu, ktorý zodpovedá nastaveniam aplikácie, a pri potvrdení dialógu hodnoty nastavení nastaviť v aplikácii.
V ukážke vytvárame dialóg, ktorý umožní vybrať si spôsob zoraďovania odkazov z bočnom paneli a vypnúť zobrazovanie adresy odkazov:
<?xml version="1.0"?>
<?xml-stylesheet href="chrome://browser/skin/"?>
<dialog xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
xmlns:html="http://www.w3.org/1999/xhtml"
title="Tutorial AbcLinuxu 5 - Nastavenia"
centerWindowOnScreen="true"
ondialogaccept="accept_settings();"
onload="init_settings();">
<script src="chrome://abc5/content/abc5settings.js" type="application/x-javascript"/>
<dialogheader id="abc5header" title="Tutorial AbcLinuxu.cz" description="abc5"/>
<groupbox>
<caption label="Zobrazovanie odkazov"/>
<checkbox id="abc5-show_url" label="Zobraz URL odkazov"/>
<radiogroup id="abc5-sort_rule">
<grid>
<columns><column/><column/></columns>
<rows>
<row>
<label value="Zoradovat odkazy:"/>
<radio id="abc5-sort_rule.none" value="0" label="Nijak"/>
</row>
<row>
<spacer flex="1"/>
<radio id="abc5-sort_rule.alpha" value="1" label="Abecedne"/>
</row>
<row>
<spacer flex="1"/>
<radio id="abc5-sort_rule.length" value="2" label="Podla dlzky"/>
</row>
</rows>
</grid>
</radiogroup>
</groupbox>
</dialog>
V balíku s tutoriálom nájdete bohaté komentáre k XUL kódu v súbore
abc5settings.xul.
Ako sme si povedali, pri jednoduchých nastaveniach stačí naplniť dialóg pri
jeho otvorení a uložiť nastavenia pri jeho potvrdení. Na to nám stačia dve
funkcie JavaScriptu: init_settings() a accept_settings().
Firefox udržiava svoje nastavenia a nastavenia všetkých rozšírení pomocou
JavaScriptu v súbore prefs.js, ktorý sa nachádza v adresári s profilom
Firefoxu. Všetky nastavenia spravuje komponent preferences-service
(správca nastavení), ktorý je prístupný pre JavaScript cez XPConnect.
XPConnect je systém, ktorým sú komponenty XPCOM spájané s JavaScriptom. Je to zložitý systém a pre tento článok je podstatný len spôsob, ktorým sa dostaneme ku správcovi nastavení. Správca je objekt, ktorý môžeme vložiť do premennej (1 riadok):
var gPref = Components.classes["@mozilla.org/preferences-service;1"]
.getService(Components.interfaces.nsIPrefBranch);
Správca má metódy, ktoré slúžia na prístup priamo k nastaveniam. Popis
týchto metód nájdete na stránkach
XUL Planet a popis tých najdôležitejších v balíku s dnešným tutoriálom
v súbore abc5settings.js.
Tak a teraz musíme napísať funkciu init_settings(), ktorá pri otvorení
dialógu nastaví jeho ovládacie prvky do požadovaného stavu:
function init_settings() {
var show_url = gPref.getBoolPref("abc5tutorial.appearance.show_url");
document.getElementById("abc5-show_url").checked = show_url;
var sort_rule = gPref.getIntPref("abc5tutorial.appearance.sort_rule");
var sortrb = "none";
if(sort_rule == 1) sortrb = "alpha";
if(sort_rule == 2) sortrb = "length";
document.getElementById("abc5-sort_rule." + sortrb).setAttribute("selected", "true");
}
Rozhodli sme sa nastavenie pre zobrazovanie adresy odkazu nazvať
"abc5tutorial.appearance.show_url" a nastavenie zoraďovania odkazov
podobne, len s príponou "sort_rule" namiesto "show_url".
Kód tejto funkcie je pomerne jednoduchý, až na spôsob, akým nastavujeme triedenie odkazov. Všetky prepínacie tlačidlá som v dialógu nazval rovnako, až na ich príponu, a podľa čísla v konfiguračnom súbore zostavím meno toho tlačidla, ktoré chcem zapnúť.
Po potvrdení dialógu musíme nastavenia uložiť. Na to potrebujeme funkciu
accept_settings.js:
function save_settings() {
var show_url = document.getElementById("abc5-show_url").checked
var sort_rule = document.getElementById("abc5-sort_rule").value;
gPref.setBoolPref("abc5tutorial.appearance.show_url", show_url);
gPref.setIntPref("abc5tutorial.appearance.sort_rule", sort_rule);
}
Táto funkcia je ešte jednoduchšia! Objekt document je náš dialóg a môžeme s
ním pracovať ako so stránkou. Vyberieme hodnoty nastavení a odovzdáme ich
správcovi nastavení.
Teraz je potrebné použiť nastavenia v správaní rozšírenia. Nebudem ale uvádzať časti kódu z tutoriálu, ktoré nie sú všeobecne použiteľné. Všetky vyššie uvedené príklady sú použiteľné aj v iných rozšíreniach bez väčších úprav.
Táto úloha je už aj tak veľmi jednoduchá. V JavaScripte, ktorý ovláda rozšírenie, stačí použiť rovnaké techniky na prístup k hodnotám nastavení, ako v JavaScripte, ktorý ovláda dialóg nastavenia. Tieto hodnoty použite v podmienkach alebo algoritmoch, ktoré vaše rozšírenie ovládajú, a nastavovanie je hotové.
Rozšírenie by malo definovať predvolené nastavenia, ktoré Firefox vytvorí pri inštalácii rozšírenia. Ak by sme tieto nastavenia nepridali k rozšíreniu, museli by sme vždy v JavaScripte kontrolovať, či existujú.
Predvolené nastavenia sa umiestňujú do súboru
defaults/preferences/subor.js v balíku rozšírenia. Je to normálny
JavaScript, ktorý môže obsahovať aj logiku.
Predvolené nastavenia nastavuje funkcia pref(nastavenie, hodnota).
Parameter nastavenie určuje názov nastavenia a jeho hodnotu.
V prípade našich nastavení vyzerá súbor defaults/preferences/abc5.js
nasledovne:
pref("abc5tutorial.appearance.show_url", false);
pref("abc5tutorial.appearance.sort_rule", 1);
Stiahnite si balík Tutoriál Abclinuxu 5 - rozšírenie pre Firefox, v ktorom nájdete doplňujúce informácie a konkrétnu ukážku použitia nastavení v ozajstnom rozšírení.
Hlavné zmeny sa udiali v súbore abc5sidebar.js, ktorý generuje obsah
bočného panelu. V logike som zohľadnil nastavenia, ktoré pridali súbory
abc5settings.xul a abc5settings.js.
Pribudol súbor abc5.js v adresári default/preferences/, v ktorom sú
definované predvolené nastavenia. Ostatné zmeny sa udiali v súbore
install.rdf a v súbore content.rdf v adresári chrome/content/.
Zmenené boli aj komentáre, ktoré poskytujú informácie užitočné pri písaní odlišných rozšírení.
Dnes sme si vysvetlili ako pridať dialóg nastavenia do rozšírenia a ako k týmto nastaveniam pristupovať pomocou štandardných postupov. Dodali sme tým nášmu rozšíreniu modulárnosť, ktorú používateľ ocení.
Témou ďalšieho dielu bude lokalizácia rozšírení. Ukážeme si, ako umožňuje Mozilla lokalizovať texty pomocou štandardu DTD. Bočný panel nášho rozšírenia prerobíme a HTML súbor, ktorého obsah generuje JavaScript, nahradí XUL súbor.
Nasledujúci článok bude posledný teoretický článok. Po ňom budú nasledovať články s referenčnými príručkami k témam prebratým v predchádzajúcich článkoch. Referenčné príručky budú sprevádzané ukážkami použitia.
Verím, že dnešný diel série sa vám páčil a bude rovnako užitočný ako všetky predchádzajúce.
Nástroje: Tisk bez diskuse
Tiskni
Sdílej: