Michal Čihař - Archive for 2006

Uptime, aneb kernel se lepší

Vypadá to že kernel 2.6 se opravdu vylepšuje, dnes mám na notebooku uptime 50 dní a pořád v pohodě funguje :-). Dříve neustále ubývala paměť nebo byly jiné problémy, ale 2.6.14 zatím drží. Ještě tak by mě zajímalo jak zjistit jakou dobu počítač skutečně běžel a nespal v paměti, ale to asi nejde…

Nejhorší vlastnost phpMyAdmina

Nejhorší vlastnost phpMyAdmina je podle mnoha lidí bezpochyby to, že korektně podporuje kódování dat nastavené v MySQL. Mám pocit, že na tento dotaz jsem už odpovídal asi tisíckrát, i když poslední dobou tazatale (pokud je předpoklad, že umějí česky) odkazuji na FAQ , tak stejně je toho moc.

Proč si nikdo není schopný přečíst dokumentaci MySQL, kde je to popsáno? Proč raději někdo napíše mail přímo mně, než aby se zeptal na nějakém fóru, mailing listu nebo nedej bože použil vyhledávač a našel otázku některého z tisiců předchozích tazatelů?

Příště raději taková mail alespoň začínejte něčím jiným než něčím jako prepacte ze Vas otravujem, ale uz som bezradny . Třeba takové jsem idiot a neumím nic najít by bylo mnohem lepší. Koneckonců mailů obsahujících Dear translator: just ignore this mail. I haven't read the text above and just submitted the mail as my client displayed it... mi taky chodí dost.

Omlouvám se za tento výlev, ale prostě to muselo ven :-).

V čem psát GUI?

Tuhle otázku jsem už řešil pod Linuxem několikrát. Nejdříve vyhrálo KDE, protože jsem ho používal, při přechodu na minimalističtější WindowMaker mi došlo, že mít aplikaci závislou na takovém molochu není nejlepší nápad a porozhlížel jsem se po něčem jiném.

Už jsem věděl, že další aplikace rozhodně nebude napsaná v C/C++, ale v Pythonu, takže nutná podmínka byla podpora Pythonu. Další nutná věc byla funkčnost i na jiných platformách (i když té zatím ve skutečnosti nikdo nevyužil). V té době jsem narazil jen na Qt, GTK a wxWidgets (tehdy ještě wxWindows).

Qt mělo nevýhodu v nedostupnosti PyQt pod Windows, což bylo způsobeno licenční politikou Trolltechu. GTK zase na Windows nemá nativní widgety, takže aplikace nevypadají tak jak by měly. Takže nakonec jako ideální volba vypadaly wxWidgets resp. wxPython.

Po dvou letech používání si to už rozhodně nemyslím a kdyby to nebylo tolik práce tak už používám něco jiného. Tolik hacků jako pro různé verze wxPythona jsem už dlouho nikde vymýšlet nemusel. To že se občas třídy prostě přesunou bych ještě pochopil, ale to že se to rozumně nevypořádá s unicode textem už ne. Opravdu není zábavné řešit bugy uživatelů kdy jim aplikace v python segfaultuje kvůli tomu, že někdo zapomněl kontrolovat návratové kódy konverzních funkcí.

A co tedy používat? Nevím. Rozhodně něco na vyšší úrovni než je GTK. Dnes jsem narazil na framework Kiwi a po přečtení části dokumentace se mi to líbí čím dál tím víc. Ale mám obavy abych nedopadl jako s wxWidgets a přecejenom změna stojí dost práce… Nenajde se tu někdo kdo by s tím měl zkušenosti? Co používáte vy?

Jak přijímat peníze z ciziny?

Už několik lidí mi nabídlo poslat peníze jako odměnu za práci na open source projektech na kterých se podílím. Bohužel asi nejrozšířenější služba pro toto používaná (PayPal) neumožňuje posílat peníze do Česka, takže to je neprůchodná cesta. Nevíte o nějakém podobném spolehlivém systému, který nemá taková obskurní omezení?

Jak na řidičák?

Před Vánoci jsem si tu stěžoval na úředního šimla . Řešení nakonec bylo jednoduché – prostě si zažádat o nový a doufat, že tato informace se tam nedostane :-). Toto řešení se ukázalo jako účinné, nevím jestli díky tomu, že někdo něco přehlédnul, nebo z jiných obskurních důvodů, ale omezující formule zmizela.

Čím jsem však byl mile překvapen je možnost zjistit kdy bude řidičák připraven k vyzvednutí na webu magistrátu . Napsat tyto informace na web sice asi moc práce nedá, ale člověk na takový přístup k moderním technologiím nebývá na úřadech zvyklý.

Komunito zapoj se

Mnohdy jsou lidé prostě jenom líní a když jim člověk dá k dispozici nástroj, který jim usnadní přispět, tak to najednou jde samo. Už několik lidí se mi nabídlo, že Wammu přeloží, ale výspedek pořád nikde.

Pak stačilo Wammu zaregistrovat v Launchpadu a oznámit na mailing listu, že můžou překládat on line a najednou překlady přibývají jakou houby po dešti. Jak málo občas stačí :-).

Cenzura ala google

Já vím, že se jedná o mnohokrát propírané téma, ale když jsem to viděl v praxi, stejně jsem byl překvapen co všechno se dá pro peníze udělat. Stračí porovnat výsledky google.com a google.cn . Na druhých je krásná idylka, co?

Update: Už to tu jednou bylo ( Jeden obrazek vyda za tisice slov ), za duplikováním není úmysl, ale můj odpočinek od počítače minulý týden. Mazat už to nebudu.

Kouzla komentářů

O tom že je rozumné psát komentáře do zdrojových kódů snad nikdo nepochybuje. Statistiky různých sprostých slov jsou již dlouho známé, ale přesto občas při opravování cizího kódu člověk narazí na zajímavé perly, které opravdu pomou k pochopení kódu.

Třeba po přečtení následujícího vysvětlení v gcc je hned jasné na co že se tato hodnota používá:

 // ??? Completely unknown what this field is supposed to be for.
          // ??? Need to cache TType encoding base for call_unexpected.
          xh->catchTemp = landing_pad;

Přece není možné, aby programátoři nevěděli co píší. Ale když už se v tom gcc hrabu, tak grep na tři otazníky najde další zajímavé komentáře:

 /* ??? When is this needed?  */
  saved_function = current_function_decl;
 /* If we are supposed to return TEMP, do so as long as it isn't a MEM.
     ??? The latter test doesn't seem to make sense.  */
  else if (dont_return_target && GET_CODE (temp) != MEM)
    return temp;

Nejdůležitější je ale stejně sebereflexe a schopnost zhodnotit kód:

 /* ??? this interface is stupid - why require a pointer?  */
              result = gen_reg_rtx (Pmode);

Taky tvoříte takovéto komentáře?

Konečně stejná klávesnice pro konzoli a xka

Rozdílnost klávesových map pro xka a konzoli mě již dlouho štvala (a určitě nejsem sám, i jistý místní slavný blogger si na to stěžoval). Teď to vypadá, že to konečně někoho naštvalo natolik aby vytvořil řešení tohoto problému. Ten někdo se jmenuje Anton Zinoviev a pro Debian vytvořil balíček console-setup .

Ten umožňuje jednak snadné nastavení fontů, ale hlavně použití Xkových klávesnic v konzoli. Takže stačí zkopírovat nastavení z xorg.conf do /etc/default/console-setup a klávesnice je stejná. Nastavení klávesnice pak může vypadat třeba takto:

 XKBMODEL="pc104"
XKBLAYOUT="us,cz_qwerty"
XKBVARIANT=""
XKBOPTIONS="grp:alt_shift_toggle"

Roztříštěnost

Dnes jsem se opět podíval na rozdíly mezi Sylpheed-Claws a jeho otcem Sylpeedem. Sylpheed-Claws používám a snažím se být v obraze jakým směrem se vyvíjí jeho „otec“. Protože mi oba dva celkem vyhovují, tak o aktuálním používaném favoritovi rozhodují detaily. Vždycky mi však připadá divné, že tyto projekty jsou již samostatné a kromě společného předka moc nesdílejí.

To že se vývojáři nejsou schopní dohodnout znám velmi dobře z případu Gammu a Gnokii, ale pokaždé mne takovéto tříštění sil zklame. To jsou opravdu neshody tak zásadní, že se nejde domluvit? Sylpeed a Sylpheed-Claws se zatím vyvíjejí velmi podobným směrem, ale už je vidět, že každý klade důraz na jiné věci. Povětšinou se dokonce jedná o změny v jiných částech, takže by asi mohly žít společně a těžit z většího počtu vývojářů…