Red Dwarf Search dokončen!

Tak, a je to za mnou. Dnes, 20. ledna 2006 jsem dokončil svůj (další) webový projektík nazvaný Red Dwarf Search. Je to prohledávač scénářů Červeného trpaslíka. Jednoduchou logikou „co denně potřebuji já, bude možná potřebovat taky někdo jiný“ jsem se cirka před týdnem rozhodl, že si ho naprogramuji. Následující zbytek vět bude patřit rekapitulaci vývoje.

Pro nedočkavé odkaz už teď: Red Dwarf Search!

Než se začne pracovat, je třeba myslet. To já vím, a tudíž jako první jsem si promyslel systém prohledávání. Jelikož nic jiného, žádný fulltext, žádné sofistikované algoritmy neovládám, založil jsem vyhledávání na jednoduchém principu:

"SELECT ... FROM ... WHERE text LIKE '%$query%'"

Během víkendu jsem si napsal administrační rozhraní, které zvládá

  • přidávání/úpravu dílů
  • login/logout

Měl jsem jednu MySQL tabulku a téměř až do konce jsem si myslel, že další nebudou potřeba :). No to jsem se šeredně zmýlil, neboť později jsem se vykašlal na radu Steva Kruga

Nepřidávejte další a další funkce.

…a nakonec z toho bylo tabulek čtyři nebo pět.

V prvních dnech čerstvého týdne jsem si promyslel, jakým způsobem budou vypisovány výsledky vyhledávání. Prostý výpis dílů, ve kterých se hledaný výraz vyskytuje, by sice bylo neuvěřitelně snadné, ale také by to bylo neuvěřitelně uživatelsky nepříjemné, a přínos RDS by byl nevýrazný. Proto jsem se rozhodl s každým nálezem (a v jednom díle jich může být víc) vypisovat také okolí nálezu, pár vět před výskytem a pár po výskytu.

Možná bych měl objasnit, proč lidé, tedy přinejmenším já, prohledáváme scénáře Trpaslíka. Z jednoho prostého důvodu – chceme si připomenout kultovní fráze, dialogy, nadávky a oslovení. Proto potřebujeme okolí nálezu – abychom si mohli přečíst celou větu, a pokud možno si uvědomit její kontext.

„Vyříznutí“ ideálního množství textu bylo překvapivě jedním z největších oříšků projektu. PHP programátorských znalostí jsem k tomu měl dostatek, i v algoritmu jsem měl jasno, ba dokonce práci s webem php.net zvládám na jedničku. Ten oříšek byl v tom, že jsem se ve skriptu pro výpis úryvku dopustil několika chyb, které se velmi těžko odhalovaly :). Mimo jiné za usnadněný debug děkuji funkci array2table.

Vyříznutí jsem zvládl, i označení pouze jednoho výskytu hledaného řetězce v úryvku jsem relativně snadno překonal. Dalším oříškem… co oříškem, ba přímo ořechem bylo zprovoznění CoolURI pomocí mod_rewrite. Ale jak jistě tušíte, i tento vořech byl rozlousknut a tentokrát bych poděkoval sérii článků na Intervalu , které se mod_rewrite věnují. Děkuji, díky nim je Red Dwarf Search ještě více cool.

Design… no, RDS si nezaslouží tak honosné označení – tedy vzhled jsem udělal během pár hodin ve Photoshopu. Základem vzhledu se stal jeden wallpaper z trpaslíkovské oficiální anglické stránky. Všimněte si prosím mých sympatií k čtyř až pěti pixelovým lajnám kolem stránky. Pravděpodobně to není poprvé, co jsem jich použil, nelíbí se mi, můj zrak na ně nepříliš rád pohlíží, no jsem líný do designu opět zasahovat, uživatelé snad tímto grafikovým komplexem trpět nebudou.

Všechny scénáře RD mají přibližně 1,5 milionu znaků (kolem 30 000 na jeden díl), což se mi zdá poměrně dost, starost o rychlost vykonávání skriptů byla tedy dalším typickým rysem vývoje tohoto projektu. Tarkovo měření trvání skriptu mě však uklidnilo, většina dotazů je zpravidla zodpovězena za zlomek vteřiny. Pro jistotu jsem ale zakázal vyhledání příliš frekventovaných slov, jejichž vyhledávání nemůže mít pro nikoho žádný význam. „Rimmer“-a tedy nehledejte :).

Na co vlastně slouží ty ostatní MySQL tabulky? Jedna zaznamenává vyhledávané výrazy a počítá je, zapisuje čas posledního hledání a tak dále, ve druhé jsou uloženy texty (abych je mohl upravovat přes administrační rozhraní) a v další jsou uloženy zakázané dotazy – třeba zmíněný Rimmer.

Tak, a je to za mnou. Po týdnu je Red Dwarf Search dokončen. Ačkoli vím, že několik chyb ještě jistě bude nalezeno, většina práce je za mnou. Jako poslední věc, kterou jsem zprovoznil, je variabilní titulek stránky, ve kterém se mimochodem skoro vždy vyskytuje cool entita » tedy ?.

Pro milovníky čísel dodám, že RDS obsahuje téměř

  • 30 KB kvalitního neobjektového PHP kódu
  • 2,5 KB kvalitního neobjektového CSS kódu
  • půl kila kódu v .htaccessu
  • necelých 50 KB obrázků
  • a 1,5 MB má nekomprimovaná záloha databáze.

No, končit se má s písní na rtech.

Já teď jsem sám, jen sám. Volba zemřít, či s vámi žít, co dál? Komu, komu jen se svěřit mám, jen sám. Jsem sám…


Komentáře (9)

k formuláři

RSS kanál komentářů

    • Komentář číslo: 1
    • *
    • Jméno: Huggi
    • Odesláno:
      21.1. 2006 — 22:31

    pekna prace..jako ilovnika RD me to moc potesilo :))
    zvlatst hlaska To se fakt nedá. Jak jde najít něco, co se může proměnit v cokoliv? :)))

    • Komentář číslo: 2
    • *
    • Jméno: Kahi
    • Odesláno:
      22.1. 2006 — 1:48

    děkuju mockrát. href=„http://­rds.kahi.cz/sce­nare/24/ELVIS:/“ rel=„nofollow“>http:/­/rds.kahi.cz/sce­nare/24/ELVIS:/
    A pokud jde o tu hlášku… asi tak po tejdnu se vymění za jinou… 8-)

    • Komentář číslo: 3
    • *
    • Jméno: Ondřej Pohorský
    • Odesláno:
      25.1. 2006 — 18:22

    Super práce Kahi, povedené.

    • Komentář číslo: 4
    • *
    • Jméno: Crabtree
    • Odesláno:
      26.1. 2006 — 14:18

    pěkně udělané

    • Komentář číslo: 5
    • *
    • Jméno: Martianno
    • Odesláno:
      3.11. 2006 — 1:01

    Jestě jednou díky za výborný nápad a brilantní uskutečnění:)

    • Komentář číslo: 6
    • *
    • Jméno: Prcek
    • Odesláno:
      21.3. 2009 — 23:16

    Asi je to trochu s křížkem po funuse a možná si toho mýho žbleptu už nikdo nevšimne, ale přesto :-).

    Pokud zadám v Konqueroru hledání slova s diakritikou, tak hledání selže s výpisem mysql warningů ze skriptu /home1/akvarkon/pu­blic_html/kahi­.cz/_rds/_inc/fun­c.php na řádcích 104, 70 a 137. Pokud to slovo i s diakritikou zadám do adresního řádku, tak je vše OK. Systém mám v UTF-8, ale v jiných prohlížečích to funguje normálně i přes ten formulář. Nevím kde je chyba, ale na jiných stránkách my formuláře v Konqueroru fungují s diakritikou normálně…

    • Komentář číslo: 7
    • *
    • Jméno: Kahi
    • Odesláno:
      22.3. 2009 — 15:49

    [6] Prcek: díky za zmínku. Zkusím si na to udělat čas.

    • Komentář číslo: 8
    • *
    • Jméno: blazinek
    • Odesláno:
      31.5. 2011 — 13:55

    vyhledávač je geniální, jen se chci zeptat jestli tam přibudou scénáře a hlášky z dílů „zpátky na zem“ díky

    • Komentář číslo: 9
    • *
    • Jméno: Kahi
    • Odesláno:
      31.5. 2011 — 17:30

    [8] blazinek: V seznamu scénářů jich je, jestli dobře počítám, 52, takže to bude asi jeden z nich :-) http://rds.ka­hi.cz/scenare/36/

Přidat komentář

Nápověda ke psaní komentářů

Zde formátuje Texy!

  • *zvýraznění*
  • **silné zvýraznění**
  • > citace
  • "odkaz":http://kam
  • [4] reakce na komentář
  • zdrojové kódy a více

komentáře

úplně nahoru