Michal Čihař - Archive for Jan. 1, 2006

Můj free software 0. - jak to začalo

Zanedlouho tomu bude na den přesně bez mála pět let, kdy jsem poprvé přispěl do free software. Od té doby uplynulo docela dost času, tak jsem se rozhodl pro menší rekapitulaci :-). Při jejím psaním jsem si uvědomil, že je dobrá i pro mě, protože většinu věcí už si nepamatuji a tady to snad vydrží déle :-).

Začalo to kdysi dávno psaním v Basicu. Po pravdě si už moc výtvorů z té doby nepamatuji a pravděpodobně ani nikde nepřežily. Poté již následovala éra Pascalu. Mnohá díla z této doby se již dochovala a můžete si je stáhnout . Jediná věc která snad stojí za zmínku je poměrně chytrá kalkulačka calc , která ovšem skončila verzí s všeprozrazujícím názvem 1.5-chaos.

Pak již doba pokročila a objevily se věci jako internet a Windows. Tomu se přizpůsobila i moje tvorba. Začal jsem psát v PHP a jednoduché aplikace pro Windows . Vždy se jednalo o napsání funkce, která mi ve Windows chyběla. Kromě CodeConvu o kterém bude řeč příště snad stojí za zmínku jen související program Updater, což je program pro online aktualizace.

Takže úvod by byl hotový a teď se budu snažit každý týden dodat další zápis do této historie.

CZECH OPEN SOURCE 2006

Tak nám root.cz uspořádal pěknou anktetu ve které vybírají to nejlepší z českého open source. Čtenáři (a potencionální hlasující) se do nich okamžitě pustili, protože výběr projektů se jim nelíbí.

Neříkám, že já bych vybral ty samé, ale je věc pořadatele jaké budou možnosti hlasování. Například prohlásit LinuxEXPRES za nejlepší projekt z českého opensource se mi ani trochu nezamlouvá, ale v této oblasti asi není moc co vybírat. V software je zase výběr rozhodně širší, ale stejně se mi vybraný vzorek nelíbí. Obzvlášť podivný je výskyt dvou variací Linksu…

Ovšem ještě lepší jsou reakce čtenářů s argumentací že ten či onen projekt má více výsledků při vyhledávání v Googlu. Pokud by bylo kritérium toto, pak bych o jednom kandidátovi věděl, ale nebudu si dělat reklamu :-).

No co, anketa je vyhlášena, tak hlasujte a můžete dát hlas třeba Leošovi :-).

Ukolovnik 0.3

Ukolovnik 0.3 has been just released. New features:

  • Several bugfixes.
  • Configurable language and style.
  • Improved timestamp display.
  • Icons for some actions for more copact view.
  • Added some statistics.
  • Implemented category deleting.

Na co SEO?

Při občasném prohlížení statistik mého webserveru se docela podivím, co tam lidé najdou :-).

To že někdo hledající alcatel 501 uvidí moje stránky jako první výsledek je už několik let trvající fakt a asi to mám předplaceno do konce života serveru. Kupodivu se u mě dá najít i alcatel 765 (jenom v prvním desítce), přestože si nejsem vědom, že bych o něm někdy něco napsal :-). Trochu víc bych asi měl ještě zapracovat na vyhledávání informací o mp3 přehrávači Diva, protože druhé místo po zadání diva mp3 player se pořád ještě dá vylepšit.

No ale pojďme pryč od hardwaru. Potřebujete zdroják MD5? Samozřejmě se na něj dostanete po zadání md5 c source nebo md5 c code .

Je zajímavé, že věci o které člověk nijak nestojí se u něj najdou, ale s hledáním mých vlastních výtvorů je to už o trochu horší codeconv předběhla nějaká pochybná java a Wammu je někde hluboko schované ve výsledcích . Že bych se přeci jen o nějaké SEO měl pokusit? :-)

„Ekologická“ energie

Původně jsem to psal jako komentář k zápisu o OpenSource energii , ale nakonec jsem to dal sem. Předem podotýkám, že se mi nijak nezamlouvá současné spotřebování přírodních zdrojů, i když to možná podle zbytku textu vyzní opačně.

Po pravdě řečeno moc nechápu boj za používání dnes nabízené „ekologické“ energie. Co nám ekologičtí aktivisté nabízejí?

Větrné elektrárny

Pěkná hračka. Nevím kolik stojí a nehodlám rozebírat ekonomickou (ne)výhodnost. Ale viděli jste někdy krajinu posetou těmito elektrárnami? Totálně zničit krajinu, tomu tedy říkám ekologické chování. Ještě štěstí že u nás většinou nejsou dobré podmínky pro jejich provozování.

Sluneční energie

Pro získání rozumného množství elektrické energie by to dopadlo ještě hůže než v případě větrných. Pravda můžeme někde zastavět poušť, stejně pro ni nemáme jiné využití. Ale aspoň se slunce dá použít na ohřev vody a případně vytápění, kde energii umíme využít efektivněji, není potřeba takové plochy a stačí dát kolektor na střechu.

Biomasa

Pravda je to o něco lepší než spalování fosilních paliv, ale znečištění vzduchu z toho je stejně je. Z globálního pohledu sice svět trpí nedostatkem jídla, ale vyspělé země jsou bohaté, tak ho dovezou odjinud a volná plocha se může využít na pěstování této ekologické energie.

Jsem sám komu připadá, že tudy cesta k výrobě energie nevede?

Debian má mc s utf-8

Pravda tato informace je už měsíc stará, ale dřív jsem si toho nevšiml. V experimentalu se 24. ledna objevila verze s podporou utf-8. Trvalo to sice déle než v mnoha jiných distribucích, ale konečně jsme se dočkali :-). Takže konečně se opět tento program stal na Debianu rozumně použitelný.

Teď ještě aby se vývojáři mc konečně odhodlali tyto patche začlenit, ať to každá distribuce nemusí řešit samostatně.

Konečně pokrok

Zase jsem se rozhodl vyzkoušet jak funguje OpenOBEX s mým (dnes už postarším) telefonem Alcatel 535 . Neočekával jsem žádné zázraky, protože to dlouho nefugovalo (přestože oficiální aplikace výrobce pro Windows používá OpenOBEX). Moje překvapení proto bylo neuvěřitelné, když tentokrát to bez jakéhokoliv přesvědčování zafungovalo.

 $ obexftp -i  -l
No custom transport
Connecting...done
Receiving "(null)"...\<?xml version="1.0"?>
<!DOCTYPE folder-listing SYSTEM "obex-folder-listing.dtd">
<folder-listing version="1.0">
<folder name="User Data" size="1093840" modified="20000829T125420Z" user-perm="R"/>
</folder-listing>
done
Disconnecting...done
$ obexftp -i  -l 'User Data'
No custom transport
Connecting...done
Receiving "User Data"...\<?xml version="1.0"?>
<!DOCTYPE folder-listing SYSTEM "obex-folder-listing.dtd">
<folder-listing version="1.0">
<parent-folder />
<folder name="Sound" size="1093840" modified="20000829T125420Z" user-perm="RW"/>
<folder name="Photo" size="1093840" modified="20000829T125420Z" user-perm="RW"/>
</folder-listing>
done
Disconnecting...done

Teď ještě rozchodit nějaký pěkný filesystém (nejspíš přes FUSE), který mi umožní s daty rozumně pracovat. Znáte něco?

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ářů…

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"

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?