Hlavní navigace

Softwarová sklizeň (27. 11. 2002)

27. 11. 2002
Doba čtení: 5 minut

Sdílet

Oblíbená sonda do světa (převážně) otevřeného softwaru. Dnes tu máme pár užitečných pomocníků pro balíčkovací systém RPM, zajímavou alternativní JVM od společnosti Bea nebo třeba Tetris napsaný v shellu a awku.

Obsah

Jednoduchou, leč nadmíru užitečnou utilitku rpmrebuild ocení jistě nejeden uživatel linuxové distribuce postavených na balíčkovacím systému RPM. S její pomocí lze totiž znovu sestavit již instalovaný binární balíček, což je funkce, po které jsem už dlouho toužil. Nezřídka se mi totiž stávalo, že jsem vytvořil vlastní balíček nějaké aplikace, který jsem v záchvatech uklízení smazal s železnou jistotou pár hodin před tím, než mě o něj někdo požádal. Rpmrebuild mi v takovém případě umožní balíček vypreparovat ze systému a znovu zapakovat. Funguje to opravdu výborně, jenom doporučuji před použitím programu nastavit LC_ALL na C, neboť s českými locales se špatně vygeneruje changelog a balíček se nevytvoří. Přiložený skript rpmrebuild.sh nastavuje pouze LC_TIME, což v mém případě (RH 7.2) z neznámého důvodu nestačí.

Při vývoji webových aplikací nezřídka nastane situace, kdy potřebujete rozebrat komunikaci mezi serverem a klientem a pokusit se tak odhalit chyby, jako jsou třeba chybějící nebo nesprávně formulované hlavičky. Přesně pro tyto účely vznikl projekt Charles. Jde o javový proxy server, který obstará celou škálu užitečných úkolů. Předně monitoruje a uchovává záznam komunikace mezi oběma stranami, takže můžete jednoduše zkoumat například přesměrování, obsah cookies nebo délku požadavků i odpovědí. Zároveň si můžete udělat představu o tom, kolik dalších požadavků musí kvůli dané stránce klient poslat, aby stáhl například obrázky, styly, skripty a další externí dokumenty. Veškerá tato data jsou ukládána, takže si je lze později prohlédnout. Charles rovněž umí zjistit a reportovat, jestli se na dokumenty uplatňuje kešování. Naopak v případě, kdy kešování stěžuje ladění aplikace, jej můžete použít k odstraňování souvisejících hlaviček a kešování tak zakázat. Za zmínku stojí také schopnost pracovat s HTTPS spojením a funkce omezující datový tok na stanovenou hodnotu, díky čemuž si můžete udělat představu o tom, jak se asi u vašeho webu bude cítit například člověk připojený přes dial-up. Asi jedinou nevýhodou tohoto programu je fakt, že jde o shareware s registračním poplatkem 50 dolarů.

K výše zmíněné utilitě rpmrebuild se dobře do páru hodí výtečný program CheckInstall, který umožňuje vytvořit RPM balíček ze zdrojových kódů bez spec souboru i naprostému laikovi. Pakliže dokážete zkompilovat a nainstalovat program pomocí make && make in­stall, případně trojice ./configure && ma­ke && make in­stall, pak s CheckInstallem dokážete vytvořit i balíček – stačí jej totiž spustit namísto závěrečného povelu make install (případně jiného, který slouží k instalaci) a program se postará o vše ostatní. Je pravdou, že takto nelze řešit všechny problémy závislostí a některých dalších záludností, ale pokud si chcete udržet systém v alespoň trochu přehledném stavu, je to myslím lepší volba, než mixovat balíčky a instalace ze zdrojových kódů. Zmínil jsem se jenom o RPM, ale CheckInstall si stejně dobře poradí i s debianovským formátem DEB a slackwarovským TGZ. Pokud již CheckInstall používáte, pak se v nové verzi 1.6 můžete těšit například na možnost vytvoření balíčku bez jeho instalace a na náhled spec souboru před vytvořením balíčku.

Občas si musím psát s někým, kdo používá MS Outlook, a kromě jiných výhrad mám v těchto případech neustálé problémy s přílohami – čert ví proč se v MS rozhodli, že příloha bude buďto přímo v těle zprávy zakódována do některého sedmibitového formátu a nebo bude naopak ukryta v záhadném souboru winmail.dat. V prvním případě si už delší dobu pomáhám programem uudeview a dnes jsem našel elegantní řešení i pro druhou nastíněnou situaci. Je jím perlový skript tnefclean, který dokáže buď na požádání a nebo automaticky (například v kombinaci s procmailem či jiným MDA) překonvertovat takto postižené emaily na normální MIME zprávu s obyčejným přílohami, které zvládne takřka libovolný emailový klient.

Společnost Bea je známá díky platformě WebLogic pro vývoj webových aplikací v Javě, na jejímž vývoji se také podílí prostřednictvím Java Community Process. Jejím nejnovějším příspěvkem v této oblasti je vlastní Java Virtual Machine nazvaná WebLogic JRockit. JRockit, údajně vůbec nejrychlejší dostupná JVM, je optimalizován speciálně pro serverové aplikace, což je pro Beu samozřejmě hlavní oblast zájmu, a je k dispozici zdarma. Bea nabízí verze pro Linux a Windows.

Bojovat proti spamu se dá nejrůznějšími způsoby. Jednou cestou jsou i black listy spamujících organizací, které mohou být díky spolupráci mnoha dobrovolníků opravdu aktuální a tudíž účinné. Takovým black listem je i SPEWS.ORG, který nabízí hned několik různých způsobů filtrování od specializovaných programů, jako je třeba SpamAssassin, přes ochranu na úrovni DNS až po možnost využití speciální POP3 proxy, která zprávy testuje před stažením. Na serveru se můžete rozhodnout ještě pro jeden způsob ochrany – můžete prostě seznam spamujících IP adres „zaříznout“ už na úrovni paketového filtru. Rozhodnete-li se pro toto řešení, pak vám pomůže Spews2fw, což je perlový skript, který umí stáhnout aktuální databázi spamerů a na jejím základě připravit filtrovací pravidla pro ipchains, iptables, pf/ipf a routery Cisco.

root_podpora

Kuriozitka týdne

V jednoduchosti je síla, to je rčení, které slýcháme snad každý den a je v něm jistě hodně pravdy. Kdybych ale měl jmenovat nějaký obecně známý příklad z počítačové praxe, který toto úsloví vystihuje nejlépe, asi bych neváhal – je to podle mě Tetris. Tato hra s jednoduchými pravidly doslova dobyla svět a počet jejích implementací a odnoží se jistě počítá na tisíce. Tuto již notně dlouhou řádku rozšiřuje Tetris.sh, který se do rubriky „Kuriozitka týdne“ dostal proto, že je kompletně napsaný v kombinaci shell/awk. Přestože autoři zvolili přinejmenším nezvyklé programovací prostředky (a nebo spíš právě proto), stoprocentně potvrzuje, že Alexej Pažitnov dal světu geniálně jednoduchou hru. Na její implementaci očividně stačí takřka libovolný jazyk a přitom nijak neztrácí na hratelnosti. Ostatně při testování, jak takový shello-awkový Tetris vypadá, jsem se u něj zdržel rozhodně déle, než jsem původně chtěl – a klidně bych mohl i pokračovat, kdybych ovšem nemusel dopisovat Sklizeň :)

A to je pro dnešek vše…

Byl pro vás článek přínosný?

Autor článku