Při vytváření služby nalezen.cz (která agreguje nabídky práce ze stránek zaměstnavatelů) jsme, s výjimkou Oracle Javy, nepoužili žádný proprietární software. Linux, Eclipse, ekosystém Java knihoven, Ruby, … Moc daleko bychom asi projekt nedotáhli kdybychom museli koupit:
Díky OSS je však možné realizovat poměrně komplexní projekt ve 2 lidech a s minimálními náklady. Úžasné – jsem rád, že můžu žít v takové době.
Abychom jen nebrali, ale také něco vrátili, rádi bychom některé z vyvinutých nástrojů uvolnit pod svobodnou licencí. Prvním nesmělým krůčkem budiž zveřejnění knihovny Diffator - jednoduché Java knihovny pro porovnávání a diff textového obsahu.
[caption id="" align=„aligncenter“ width=„288“ caption=„ukázkový výstup jednoduchého HTML zapisovače (přibalen)“][/caption]
Píšu „nesmělým krůčkem“ protože:
Hm, já vím … proč znovu vynalézat kolo, že? A ještě hranaté. Když ono to ale bylo složitější…
Původně jsme chtěli vyrobit jednoduchou a rychlou metodu pro porovnání dvou textových dokumentů která vrací podobnost vstupů (v rozsahu 0.0 až 1.0). Rychlost je v případě použití ve webovém crawleru upřednostněná před dokonalostí. Když jsme měli metodu hotovou, zjistili jsme, že po rozšíření o callbacky (jako při parsování XML v SAX-stylu) může být použita pro jednoduchý diff obsahů. Toho jsme vydatně využili při ladění. Pak se nám nezdál výkon a tak jsme vyzkoušeli několik metod implementace porovnávacího algoritmu. Vybrali jsme nejlepší, ale ostatní zůstaly zachovány (výkon je závislý na povaze vstupních dat, takže na jiná data se může hodit jiná metoda). Pak bylo třeba vyrobit jednoduchý výstup diffu do HTML. A tak dále.
Nějaké pozitivní aspekty se tedy najdou:
Nakonec jsme došli k přesvědčení, že výsledek vydá na knihovnu. Možná není úplně beznadějná a někomu se bude hodit. Mrkněte na github projektu.
Jaroslav Kuboš vystudoval informatiku na FIT VUT v Brně, pracuje v IT a ve volném čase tvoří inovativní server s nabídkami IT práce – nalezen.cz