Hlavní navigace

Softwarová sklizeň (20. 8. 2008)

20. 8. 2008
Doba čtení: 3 minuty

Sdílet

Oblíbená sonda do světa (převážně) otevřeného software. Dneska si povíme, co je to perceptuální hashování, připomeneme si relační algebru a ukážeme si paralelní bunzip2. Pak se chvíli podíváme na hry. Jednak na gamebooky, a pak na to, jak si udělat vlastní retro hru. Na závěr si ukážeme, jak schovat data do mp3 souborů. A hádejte, jestlipak dneska bude blbinka?

pHash

pHash je implementací perceptuálních hashovacích algoritmů. U klasického hashování (MD5, SHA1) dojde při malé změně na vstupu k dramatickému rozdílu na výstupu. Perceptuální hashování má ovšem opačný požadavek: Aby drobná změna na vstupu vyvolala jenom nepatrnou změnu na výstupu. Vstupní data nejsou tedy brána jako proud bytů, ale jako celistvé objekty. Obrázek, který je otočen o 90 stupňů nebo obrázek, který byl otitulkován, bude mít velmi podobný fingerprint jako obrázek původní. Perceptuální hashe není vhodné používat pro bezpečností aplikace. Ale je vhodné je použít jako vyhledávací engine pro obrázky, nebo vyhledávání chráněného obsahu („Najdi mi obrázek podobný tomuto.“). pHash o sobě tvrdí, že je „kolekcí“ různých algoritmů, ale já jsem si všiml jenom algoritmu pro hashování obrázků. Je jasné, že pro hashování zvuku nebo videa bude asi nutné zvolit jiné algoritmy. Jestli se v tomto programu objeví časem, je otázkou.

http://www.phash­.org/, 0.1, GPLv3

Relational

Relational je skvělý nástroj na výuku relační algebry. Ta je stále základním kamenem pro výuku relačních jazyků, ale je pravda, že demonstrace některých operací je únavná. Aby demonstrace za něco stála, musí relace obsahovat několik n-tic a ty musí mít alespoň dva atributy, ale raději více. A to už vyžaduje hodně křídy a/nebo hodně mazání a přepisování a mnoho příkladů tak nestihnete projít. Proto mě zaujal program Relational, který umí načíst relaci z textového souboru a poskytuje krásné GUI, kde můžete psát dotazy v relační algebře a okamžitě je vyhodnocovat nad načtenou relací. To, že program poskytuje pythoní knihovnu pro práci s relační algebrou a umí konvertovat dotaz napsaný v relační algebře do pythonu, už beru jenom jako příjemný bonus.

Relational

http://galile­o.dmi.unict.it/wi­ki/relational/, 0.5, GPLv3

Lbunzip2

Lbunzip2 je paralelní implentací bunzip2 nepoužívající systémové volání lseek(). Co to znamená? Jelikož nepoužívá lseek(), tak může fungovat jako filtr (čte data ze STDIN a posílá na STDOUT) – to většina paralelních bunzip2 implementací neumí. A jelikož je paralelní, tak můžete efektivně využívat všechna jádra vašeho procesoru a snížit tak čas dekomprese skoro lineárně s počtem zapojených jader.

Lbunzip2

http://phptes­t11.atw.hu/, 0.01, GPLv3

The Gamebook Engine

Pamatujete si někdo ještě na gamebooky? Ať už se jedná o edici Lone Wolf nebo Vyber si vlastní dobrodružství? Ty knížky byly populární v devadesátých letech. Jejich děj nebyl lineární a v některých místech jste se mohli rozhodnout za hlavního hrdinu. Vypadalo to asi takto: Chceš-li vědět, co je v pouzdru, pokračuj na straně 84. Jestliže ses rozhodl požádat o radu profesora Burnse, pokračuj na straně 110. (citováno z knihy Vetřelci z nitra Země). Na psaní takovýchto knih existuje Hyena gamebook formát a k jeho interpretaci můžete použít The Gamebook Engine. Kromě textu umí zobrazovat i obrázky a do textu můžete vkládat i lua skripty, takže některé volby můžou být dostupné jenom za určitých podmínek (našli jste klíč, mluvili jste s určitým člověkem). Dokonce si můžete ukládat a načítat své pozice ve hře. Hra – to je fakt – už není ani tak gamebook, jako spíše textová adventura.

http://www.fre­egameengines.or­g/gamebook-engine/, 0.1.3, GPL

O.H.R.RPG.C.E

Official Hamster Republic Role Playing Game Construction Engine (O.H.R.RPG.C.E) je nástroj pro tvorbu retro her (rozuměj z doby 16 bitových počítačů). Jako demonstraci obsahuje hru „Vikings of Midgard“. Psaní hry je velmi jednoduché (pokud máte alespoň potuchu o procedurálním programování a víte, co asi může dělat příkaz if) a tak jediné, co budete potřebovat, je: umět kreslit – nástroj na kreslení spritů je součástí O.H.R.RPG.C.E – a v neposlední řadě mít talent a trpělivost na psaní takových her.

RPG

http://hamste­rrepublic.com/oh­rrpgce/index.php/Ma­in_Page.html, 2008–08–16, GPLv2

Mp3nema

MP3nema vám umožní ukládat a číst informace, které jsou ukryty mezi jednotlivými bloky dat v mp3 proudu. Mezi těmito bloky můžou být libovolná data (ačkoliv je doporučeno je předtím uencodovat) a mp3 přehrávače tyto data přeskakují (např. Shoutcast takto tuším ukládá své metadata), takže byste neměli mít problém výsledný mp3 soubor přehrát.

root_podpora

http://www.757lab­s.com/projects/mp3ne­ma/, 0.01, GPLv3

Blbinka

Statistika: jak roste Linux (a hlavně jeho vývojáři).

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

Autor článku

Autor pro Root.cz psal převážně Softwarové sklizně. Dnes je zaměstnán ve firmě Red Hat, kde se věnuje vývoji nástrojů pro správce balíků.