Softwarová sklizeň (4. 10. 2000)

4. 10. 2000
Doba čtení: 9 minut

Sdílet

Pravidelná sonda do světa (převážně) Open Source softwaru.

Pondělí 2. 10.
Projekt apacompile vlastně není program, ale postup, jak dosáhnout požadované funkčnosti jiného programu, a tím je Apache. Manuál apacompile pomůže začínajícím i zkušenějším uživatelům s jedním poměrně tvrdým oříškem, kterým je kompilace Apache s moduly mod_ssl (SSL), mod_perl (vkládání perlového kódu do stránek a psaní modulů v Perlu), mod_dav (správa webového prostoru bez FTP apod.), mod_auth_ldap (autorizace proti LDAP serveru), mod_auth_mysql (totéž, ale proti MySQL databáze), mod_dynvhost (automatické zakládání virtuálních serverů vytvořením adresáře), mod_roaming (hostování konfigurace a bookmarků prohlížečů od Netscapu), mod_jserv (provoz javových servletů) a mod_php (PHP s podporou MySQL, PgSQL, pdflib a IMAP). Pokud dodržíte uvedený postup, měla by se kompilace stát hračkou. Samozřejmě, že tohoto návodu se lze držet i tehdy, chcete-li instalovat pouze některé moduly z uvedeného seznamu.
AxKit je další Open Source aplikační server. Tentokrát je určen přímo pro spolupráci s Apachem a mod_perlem a je založen na konverzi XML (obvykle do HTML nebo WML). Konverzi lze provádět dvojím způsobem, buď pomocí standardizovaných prostředků XML, jako je XSLT, a nebo přímo pomocí vlastních skriptů.
Programy, jako je třeba findimagedupes, mě vždy fascinovaly. V tomto případě jde totiž o vizuální analýzu a porovnání obrázků. Findimagedupes je perlový skript, který dokáže porovnat dva (nebo více) obrázky a posoudit, zda jsou shodné (případně velmi podobné). Program používá velmi jednoduchý algoritmus, nicméně i tak je prý jeho přesnost přibližně 98 %, což je skutečně dost.

Neděle 1. 10.
Za tu dobu, co píšu Sklizeň už tu bylo dost poměrně neobvyklých projektů, včetně jednoho systému na řízení veterinární kliniky. Nepamatuji si ale, že bych psal o nějakém projektu pro vytvoření webového systému pro online objednávání pokrmů. Pokud třeba provozujete restauraci a chtěli byste umožnit objednávání jídel po Internetu, pak už nemusíte nic programovat, spokojíte-li se s možnostmi programu GotLaunch. Zatím toho mnoho neumí, i když vlastně většinu toho, co by takovýto program měl dělat, už dokáže.
Jednou z možností, jak se vyhnout potenciálním bezpečnostním rizikům ve vašem programu, je analýza zdrojových kódů. Teď nemyslím samozřejmě to, že si sednete a pročtete si několik desítek tisíc řádek kódu (i když, i to je možnost a možná občas ta nejlepší :). Mluvím o programech, které prozkoumají váš kód a pokusí se v něm najít více či méně nebezpečné konstrukce, jako je volání některých notoricky známých problémových funkcí (třeba gets()), či chybné operace s pamětí (přístup k dealokované paměti) a tak dále. Jedním takovým programem je i ITS4. Jeho hlavní nevýhodou je fakt, že jej lze zdarma používat pouze pro nekomerční účely.
Tiskárny Lexmark se v poslední době těší poměrně velké oblibě, jejíž hlavní příčinou bývá velmi nízká cena nižších modelů. Snad i díky tomu jsou tyto Lexmarky jedněmi z mála tzv. GDI tiskáren (tj. tiskáren, za něž většinu práce odvádí software), které alespoň částečně fungují v Linuxu nebo dalších un*xech. Je to logické, čím více uživatelů, tím větší naděje, že se mezi nimi najde někdo, kdo bude mít chuť a čas rozebrat komunikační protokol tiskárny a napsat potřebný ovladač. Dalším modelem z produkce Lexmarku, který je díky nadšení dobrovolníků použitelný i ne-windowsoidním prostředí, je 2050 Color Jetprinter. Ovladač, který zvládne barevný tisk v rozlišení 300×300 dpi je určen ke spolupráci s ghostscriptem.
Na scéně se objevil nový prohlížeč nazvaný BrowseX. Je napsaný v Tcl s cílem dosáhnout co nejvyšší rychlosti a nejnižších hardwarových nároků. Po letmém vyzkoušení mohu říci, že autoři asi nelžou, když tvrdí, že se na projektu pracovalo již delší dobu. Prohlížeč nabízí dle mého názoru velmi slušný rendering (mě osobně ale chybí podpora CSS) a jeho rychlost je opravdu vynikající. Na druhou stranu, jak známo, nic není dokonalé a u BrowseXu narazíte asi na problém s češtinou ve stránkách. Program zarputile používá ISO-8859–1 fonty a jakákoliv snaha změnit je na ISO-8859–2 u mě vedla k zatuhnutí font serveru (pravda, moje sbírka fontů je svým rozsahem poněkud nadstandardní). Pokud se rozhodnete BrowseX vyzkoušet, doporučuji společně s autory upgrade Tcl na verzi 8.3.2, protože jinak se mohou objevit potíže s některými ovládacími prvky.

Sobota 30. 9.
Security-script je linuxový port skriptu /etc/security známého z FreeBSD. Jeho úkolem je vyhledávat potenciální bezpečnostní chyby či oslabení a informovat o nich správce. Security-script momentálně umí vyhledávat setuid programy a adresáře, kontroluje, jestli nějací uživatelé nemají UID=0, kontroluje stav počítadla paketů, které skončily na filtrovacích pravidlech a vyhledává v logu problematické hlášky od jádra, neúspěšná přihlášení do systému a odmítnutá spojení (v důsledku filtrování pomocí /etc/hosts.(a­llow|deny)). Docela šikovná pomůcka, co říkáte?
Pokud programátor překousne svou hrdost a začne používat ve svých projektech již hotové knihovny, může si značně usnadnit život. Pravda, není to jednoduché (mě trvalo asi sedm let, než jsem pochopil, že asi nemá cenu vynalézat kolo :), ale ušetřený čas lze věnovat vlastnímu programu, což pravděpodobně povede k jeho vyšší kvalitě, a to by mělo být vždy primárním cílem. Dnes se chci zmínit o knihovně dot.conf, která umožňuje používat konfigurační soubory ne nepodobné těm z Apache. Jejich hlavní výhodou je možnost strukturování dat, což je často mnohem pružnější, než použití „plochých“ konfiguračních souborů. Zajímavé je na dot.conf zejména to, že podporuje i dynamické přidávání „známých“ konfiguračních direktiv za běhu, což je velmi šikovné, pokud třeba projekt podporuje použití zásuvných modulů.
Opět jsem narazil na jednu v celku povedenou Open Source hru. Jde o klasické cihličky, neboli Breakout. Cílem je samozřejmě pomocí vozíčku (nebo jak to nazvat) odrážet míček, který bourá cihličky. Míček vám nesmí spadnou, cílem je zbořit vše a pak se jde do dalšího levelu. Tato konkrétní implementace se jmenuje LBreakout a nabízí poměrně zdařilou grafiku, zvukové i vizuální efekty, několik stupňů obtížnosti, konfigurovatelné ovládání, zkrátka asi vše, co se od podobné hry čeká. Jako bonus je zde i možnost tvorby vlastních levelů. Hra je postavená nad knihovnou SDL.
Ze stejné líhně pochází i další hra. Tentokrát jde o Tetris nazvaný LTris a kdybych ho měl podrobné popisovat, zřejmě bych jenom opakoval to, co jsem řekl o LBreakoutu. Pěkná grafika, zvuky, zajímavé vizuální efekty (exploze, prolínání, průhlednost) atd. Oproti jiným tetrisům nabízí dva herní režimy a hru dvou hráčů.

Pátek 29. 9.
Jeden z nejznámějších XML parserů, Expat, který původně napsal James Clark, převzal pod svá křídla nový vývojový tým. Jeho cílem je tento velmi rychlý a snadno použitelný parser, který si našel cestu i do projektů, jako je Apache, Mozilla či PHP, dále rozvíjet a přidávat rozhraní pro další programovací jazyky. Prvním krokem bylo hlavně přepsání Expatu do podoby sdílené knihovny a usnadnit jeho kompilaci přechodem na autoconf/automake.
Kolikrát už se vám stalo, že jste si přehrávali v počítači nějakou hudbu a zazvonil vám telefon, takže jste honem přepínali pracovní plochu a hledali okno přehrávače, abyste hudbu pozastavili? Třeba právě pro tyto případy vznikají různá vzdálená ovládání, která jsou obvykle zaparkovaná v podobě ikonky na nějakém panelu, docku, wharfu či jak se to všechno jmenuje, takže je máte stále na očích a vždy připravené k použití. Jedno takové ovládání se jmenuje Kxmms a je určeno pro KDE.
Webware for Python je aplikační rozhraní pro vývoj webových aplikací v Pythonu (překvapivě :). Kromě výkonného prvku (aplikačního serveru) nabízí soubor již hotových komponent, usnadňujících vývoj. Další komponenty lze podle potřeby bez problémů přidávat. Vše je důsledně objektově orientované. Součástí je i dokumentace (prý velmi dobrá) a množství vzorových příkladů.
Pokud potřebujete vykazovat svou činnost na určitých projektech, ať už pro šéfa nebo pro účely fakturace, mohla by se vám hodit utilitka tt (což asi znamená něco jako time tracking). Jde o konzolový program, který spustíte při zahájení a ukončení projektu a on zaznamená čas na něm strávený. Pak samozřejmě umožňuje generovat detailní výkazy. Tt samozřejmě podporuje práci na více různých projektech.

ict ve školství 24

Čtvrtek 28. 9.
CVS je velmi důležitým prvkem všude tam, kde na společném projektu pracuje více lidí, lhostejno, jestli jde o programování, psaní dokumentace nebo tvorbu www stránek. O CVS je ovšem také nutno se starat, zejména o administraci uživatelů. A právě tyto úkony usnadňuje program cvs admin, který dokáže jednoduše uživatele přidávat i mazat a měnit jim hesla. Již brzy by měl být navíc schopen i administrace vzdálených CVS serverů a budou přibývat i další funkce.
Společnost Citrix dodává už i linuxového klienta pro své serverové produkty WinFrame a MetaFrame. Licence umožňuje volné použití. WinFrame a MetaFrame jsou produkty umožňující vzdálený přístup ke grafickému desktopu.
wmAppKill je applet pro WindowMaker, který zobrazuje seznam všech běžících procesů a umožňuje je jednoduše ukončovat.
Řadu Open Source MP3 přehrávačů rozšiřuje projekt xine. Kupodivu nepoužívá knihovnu SMPEG, jako většina podobných projektů, ale libmpeg2. Další věcí, která xine odlišuje od ostatních přehrávačů je funkční synchronizace obrazu a zvuku.
Příznivcům staré dobré kolové strategie WarLords by mohla udělat radost nově vzniklá Open Source hra FreeLords, která se snaží této legendě přiblížit. Ale pozor, pokud nechcete sledovat projekt od jeho počátků, raději ještě pár verzí počkejte. Ačkoliv je hra již hratelná, zdaleka ne vše je hotové a grafikou se rozhodně svému vzoru ani nepřibližuje.
Projekt Reiser-Debian tvoří základ pro bezproblémové splynutí těchto dvou prvků – distribuce a žurnálového souborového systému. Kromě diskety umožňující instalaci Debianu Potato na oddíl s reiserfs naleznete na jeho domovské stránce i potřebné utility v debianovském balíčku.
Linuxové kapesní počítače nabývají čím dál tím jasnějších obrysů a tak není divu, že se sem tam objeví i projekt, který s touto oblastí úzce souvisí. Jedním takovým projektem je i XMerlin, systém rozpoznávání rukou psaného písma pro X11.

Středa 27. 9.
Jednou z cest, jak urychlit odezvu HTTP serveru je vypnutí resolvování IP adres, neboli jejich překladu na jména. Potíž je v tom, že se tak ochudíte o informace, které lze při analýze logu ze jména získat. A proto existují programy a skripty, které převedou adresy na jména najednou v době, kdy server není tolik vytížen. Při vhodné implementaci lze provést převod velmi solidní rychlostí. A právě rychlost by měla být doménou programu fastresolve. Na jeho domovské stránce si můžete přečíst, kolikrát je tento program rychlejší, než všechny možné konkurenční projekty :)
Neomail je webový emailový klient, který kromě pohledného zpracování, nabízí i jednu zajímavou změnu. Nepoužívá totiž ani POP3 ani IMAP server, pracuje přímo s mailboxy. Ne vždy je to možné, ale s pomocí Neomailu se tak lze zbavit další síťové služby. Jak už jsem podotkl, Neomail vypadá velmi pěkně. Ale to není vše, jeho vzhled lze přizpůsobovat a to buď pomocí barevných schémat a nebo přímo vytvořením vlastních šablon. Další zajímavé funkce jsou například podpora práce s více složkami (uživatel si je může podle potřeby i zakládat), podpora MIME, odesílání zpráv s přílohami či uživatelské adresáře (s možností importu CSV formátu). Neomail je přeložen do několika jazyků, čeština bohužel chybí (ale zato je tu slovenština :)
Pod dlouhým a všeříkajícím názvem RedHat ATA/66/100 Install Disk se ukrývá (překvapení) disketa, umožňující provést instalaci Red Hat Linux 7.0 na disk připojený k řadiči ATA/66 nebo ATA/100. Na domovské stránce projektu najdete jak seznam podporovaných řadičů, tak i postup, který musíte dodržet, abyste dosáhli kýženého výsledky (pozor, disk umožňuje pouze instalaci a bootování přes loadlin, pro běžný provoz si pak musíte zkompilovat příslušně upravené jádro s podporou ATA/66 a ATA/100).

Autor článku