Nový způsob navigace pro katalog Seznamu

01.02.2005 20:35

Dnes proběhlo spuštění nové navigace pro katalog na Seznamu. Rozhodně bych tento krok neoznačoval jako „experiment“, ale jako krok vpřed k pohodlnějšímu a snazšímu hledání v katalogu pro méně zdatné uživatele.

Marek Prokop píše:

„Abych byl upřímný, o formulaci odvážný experiment jsem svedl tuhý vnitřní boj. Původně mne napadala zcela jiná sousloví. Ve skutečnosti totiž nic takového, jako abecedně řazený katalog neexistuje - byl by to protimluv. Z pohledu informační architektury tedy Seznam žádný nový katalog nevytvořil, nýbrž ten původní bez odpovídající náhrady zrušil.“

Rozhodně se nemůžeme bavit o zrušení původního katalogu. Došlo jen ke změně v prvotní navigaci z HP. Katalog je stále stejný včetně klasické struktury, která je např. vidět po kliknutí na odkaz „více kategorií“, katalog nebo na kteroukoliv sekci. Pouze v případě, že uživatel klikne na písmeno, tak se dostane na abecední výpis sekcí. Z toho je tedy jasné, že abecedně nejsou řazeny přímo odkazy nebo firmy, ale pouze sekce, což např. Daniel Dočekal, podle svého příspěvku, evidentně nepochopil.

Tato změna logicky vychází z přecházející změny v lednu, kdy Seznam změnil výpis svých služeb v horní části stránky. Došlo k odstranění kategorií a zároveň všechny služby byly seřazeny abecedně. Tato změna je téměř nepozorovatelná, ale velmi podstatná – uživatel nyní velmi snadno (intuitivně) najde službu, kterou hledá (díky abecednímu řazení bez sekcí).

Určitě se jedná o velmi výraznou změnu a pro některé uživatele jde doslova o „šok“ - na první pohled „zmizel katalog“, ale po několika okamžicích se uživatel dokáže velmi snadno zorientovat a při druhé návštěvě už ví, co má kde a jak hledat (když nechce použít fulltext).

Napsali také:


Mám o tom napsat nebo ne? Toť otázka

15.01.2005 23:49

Musím se přiznat, že frekvence příspěvků na mém blogu není taková jakou bych si představoval. Čas od času mě některý z kolegů v práci občas otestuje větou: “Už jsi dlouho nic nenapsal, něco by si s tím měl udělat…". Jediné štěstí, že si svůj blog řídím sám a podle sebe :)

Proč se mi nedaří psát příspěvky pravidelně má asi tři hlavní příčiny:

  1. Práce (hlavní příčina): Celý den v práci mě tak vyčerpá, že večer nejsem schopen dělat nic jiného než koukat na filmy, zahrát si nějakou hru nebo se samozřejmě věnovat přítelkyni :) Prostě si po celém dnu vyčistit hlavu a zregenerovat se na následující den. Tudíž největší pravděpodobnost vzniku příspěvku je o víkendu nebo o dovolené. Bohužel, dovolená moc často není a víkend je krátký (zvlášť když spím do odpoledne).
  2. Know-how (vedlejší příčina): Poměrně často se dostávám do situace, kdy na něco zajímavého přijdu, vymyslím nebo najdu a mám ihned nutkání o tom napsat pár řádků do blogu. Zde se ovšem lehce dostávám do konfliktu se svojí profesí.
    Pokud něco napíšu dřív než to použiji v praxi, vystavuji se nebezpečí, že konkurence (která nikdy nespí ;) ) může danou věc realizovat rychleji než to stihnu já. A to připustit by podle mně byla chyba, protože v konkurenčním prostředí se dost často hraje na toho, “kdo byl první" (víte kdo doplul jako druhý do Ameriky? ;) ). O druhých se už příliš nemluví, ty už danou věc (nápad) prostě “jen kopírují".
    Myslím, že je vhodné si svoje know-how udržet a informace pustit na svět až v pravou chvíli + navíc jen ve správném množství. Těžko by jste našli člověka, který by byl ochoten všem zdarma sdělit svoje znalosti a zkušenosti.
  3. Zbytečné příspěvky: Byla by spousta možností napsat plno příspěvků, reagovat na všechny možné “aktuality", ale spíše by to byla ztráta času. Já raději preferuji kvalitu před kvantitou, ale výjimka potvrzující pravidlo se může najít.

Domnívám se, že jsem se rozepsal až dost (nemám rád dlouhé příspěvky), a tak doufám, že vás tento příspěvek alespoň donutil k zamyšlení i přesto, že jsem nenapsal nic kloudného :)

HOT: Ve středu si Ivo Lukačovič začal psát svůj blog: ILblog. Především se můžete těšit na zajímavé informace z “kuchyně" Seznamu. IMHO ILblog bude rozhodně přínosnější než starý známý PR blog Seznamu.


Používám nový blogovací systém

09.01.2005 20:26

Přisel nový rok a začínají se dít nové věci. Já osobně jsem přešel z offline blogovacího systému EasyBlog na on-line systém WordPress.

Už se hodně debatovalo o výhodách a nevýhodách offline/online systémů, ale já jsem přešel na on-line systém protože jsem hledal snadný a funkční systém, který mi umožní psát jak blog, tak vytvářet samostatné stránky a to s minimem námahy. Bez dlouhého hledání jsem si nainstaloval WordPress, který se mi zalíbil. Schopnost vytvářet samostatné stránky se mi bude hodit při vytváření příkladů, a také u připravované knihovny JavaScriptu, kterou jak doufám, co nejdříve připravím ke zveřejnění.

A s přechodem na WordPress jsem přebral i výchozí design, který jsem trošku upravil. Původní design už mi přišel poměrně okoukaný a suchý. Nicméně nejsem žádný grafik, takže jsem rád za to, co mám :) Navíc je už možné pod příspěvky psát i komentáře, a to myslím velmi chybělo.


Funkce serialize (převedení objektu nebo pole do řetězce) v javascriptu

22.12.2004 01:12

Je dost možné, že jste se již někdy setkali s funkcí serialize, která je myslím dobře známa např. z PHP, kde ji hojně využívám při ukládání pole hodnot do cookies. A co čert nechtěl - v javascriptu podobná funkce není, takže si nějak jednoduše uložit pole hodnot nebo objekt je výrazný problém. Musím říci, že v tomto případě ani pan Google neuspěl. Sice jsem nalezl několik “serialize" funkcí, ale všechny byly příliš složité a náročné. Tudíž nezbylo nic jiného, než si danou funkci napsat (nebo o to někoho požádat :) )

Implementace funkce serialize a unserialize

Po vzoru funkce z PHP můj kolega z práce (Petr Doležal), vytvořil požadovanou funkci, která převádí pole (nebo objekt) do řetězce, který lze poté snadno uložit třeba do cookie. Je to vcelku jednoduchá rekurzivní funkce, která se stále zanořuje až do nejnižší úrovně pole (objektu) a na konci vrátí pěkný řetězec, ve kterém je uloženo dané pole.

Samozřejmě je potřeba i funkce opačná, tzn. něco co nám z tohoto řetězce opět vytvoří použitelné pole nebo objekt. K tomu účelu poslouží funkce unserialize, která je opravdu velmi jednoduchá. Její celý fígl spočívá v zavolání funkce eval na daný řetězec. Všechny testované prohlížeče neměli problém s parsováním a vytvořením reálného pole (objektu). Jediné, co se nedá zaručit je posloupnost jednotlivých položek objektu, tzn. položky mohou být proházené, ale to už záleží jak si s daným výrazem poradí prohlížeč.

Ukázka použití:

var pole = Array();
pole['a'] = 'hodnota a';
pole['b'] = 'hodnota b';
pole['c'] = 'hodnota c';
pole['sub'] = Array();
pole['sub'][0] = 'sub-a';
pole['sub'][1] = 'sub-b';
pole['sub'][3] = 'sub-c';

var serialized = serialize(pole);

// Obsah proměnné serialized:
document.write(serialized);
// vystup: 
// {'a':'hodnota a','b':'hodnota b','c':'a hodnota c',
sub:{'0':'sub-a','1':'sub-b','3':'sub-c'}}

var novePole = unserialize(serialized);
document.write(novePole['sub'][0]);
// vystup:
// sub-a

Odkazy


Teng - perfektní šablonovací nástroj

20.10.2004 16:03

Teng (Template Engine) je univerzální šablonovací systém, který lze využít pro snadné oddělení aplikační a prezentační vrstvy. Autorem této technologie je vývojový tým portálu Seznam.cz, pričemž se vydán pod licencí GPL. Seznam v současné době používá Teng na většině svých aplikací, tudíž se nejedná o výkřik do tmy, ale o vyladěný produkční a denně používaný nástroj.

O co jde? K čemu šablovací systém?

Pokud nějaký tým lidí (nebo i jednotlivec) vytváří jakoukoliv webovou aplikaci, která je trošku na úrovni, je téměř nezbytně nutné použít šablonovací systém, aby bylo možné oddělit kód aplikace od designu. Poměrně často lze na webu potkat stránky napsané v PHP takovým způsobem, že PHP přímo generuje HTML kód. Pro webdesignera je to utrpení, protože musí lovit v PHP ten svůj kousek HTML, který potřebuje změnit a navíc hrozí nechtěné “poničení" aplikace.

V případě použití šablonovacího systému lze velmi efektivně tyty dvě složky oddělit. Programátor si píše aplikaci, přičemž webdesigner se stará o svoje šablony a může provádět změny nezávisle na aplikaci a naopak.

Teng - nástroj pro tvorbu šablon webových stránek

Jak jsem již zmiňoval, Teng je univerzální šablonovací nástroj, který je především využitelný na webu, tzn. pro tvorbu šablon stránek. Nyní je implementováno rozhraní pro skriptovací jazyky PHP, Python a samozřejmě i pro C++, ve kterém je celý šablonovací nástroj napsán.

Teng je navrhován s maximálním ohledem na výkon, ovšem i přes to umožňuje pokročilou práci se šablonami (funkce pro práci s řetězci, podmíněné bloky, vlastní proměnné, použití slovníků apod.) Teng je obecně podobný například systému Smarty. Smarty je šablonovací systém pro PHP, který je napsán přímo v PHP, tzn. není to zkompilovaný modul do PHP na rozdíl od Tengu. Tento velice významný rozdíl dává Tengu největší výhodu - rychlost, kdy se Smarty (ani jiný podobný systém) nemůže s Tengem rovnat.

Zpracování šablon pomocí Tengu zabírá minimum procesorového času, takže není problém vytvářet dynamické aplikace, které musí zvládat velkou zátěž. Teng je rychlý i díky inteligentní práci se šablonami, kdy se všechny šablony načtou do paměti v podobě bite kódu a poté se s nimi pracuje.

O způsobu práce a funkčnosti Tengu by se dalo napsat hodně, ale to je na samostatný příspěvek. Veškeré informace o Tengu naleznete na webu teng.sourceforge.net, kde si můžete prohlédnout jednoduchý příklad, manuál nebo si rovnou stáhnout zdrojový kód a začít nástroj zkoušet. Knihovny jsou zatím bohužel pouze pro Linux. Portace na Windows by určitě nebyla na škodu … nenašel by se někdo ze zkušených Windows programátorů, který by to zkusil?

Pro širší použití Tengu by bylo skvělé, kdyby nějaký významný webhoster Teng nainstaloval na své stroje a začal ho nabízet zákazníkům. Myslím, že zanedlouho by to mohla být dobrá konkurenční výhoda :)

Související články: