Zápisník

// Nový hosting, už zase!

Když jsem si u nově zřízené domény registroval freehosting u pipni.cz, tušil jsem, že to nebude na dlouho. Na free variantu jsem slyšel ne příliš lichotivé reference. Ty se mi opravdu během dvou měsíců potvrdily. Jeden server pro všechny free hostingy je zřejmě málo, dobou odezvy DokuWiki se mohl rovnat s Webzdarma. Navíc, během července se potýkal s velmi častými výpadky.

Oproti tomu na placené programy pipni.cz jsem slyšel i pozitivní názor. Jenže cena za placený hosting se mi zdála pro můj pidiweb příliš, navíc zdejší konfigurace PHP příliš nesedla DokuWiki. Takže jsem spíš uvažoval o jiném hostingu.

Marek mi minulý čtvtek večer předhodil hosting klenot.cz. Prý mají dobré reference a jsou levní. 30 Kč měsíčně mě dost rychle rozhoupalo a po zkontrolování php nastavení jsem si ještě téhož dne hosting objednal. 350 Kč ročně už mi přišlo málo natolik, abych to mohl risknout. Zhruba za 10 minut přišel potvrzovací mail a účet byl vytvořen. Podle obsahu a hlavičky emailu bylo poznat, že byl odeslán ručně. Za registraci v půl desáté večer mají provozovatelé bod. V noci ze čtvrtka na pátek jsem pak přesouval celý web, zprovoznil wiki (narozdíl od pipni až na detail funguje úplně) a přepsal DNS záznamy. Druhého dne probublaly změny přes cache DNS serverů a bylo přesunuto.

Jediné, čím se nemůže nový hosting pipni rovnat, je administrační rozhraní. To je u klenot.cz omezeno jen na editaci emailových účtů a změnu hesel. Dále chybí různé vychytávky jako Subversion nebo WebDAV, jenže to jsou věci, které momentálně nemám důvod používat. Absence administračního rozhraní zatím nevadí, provozovatelé reagují rychle. Mojí žádosti na zrušení přesměrování z non-www URL na www bylo vyhověno ve velmi krátkém intervalu a tak i URL zůstalo při starém.

Nyní běží tento web na novém hostingu celý týden. Za tuto dobu neměl jediný výpadek, což na starém bylo téměř nemožné. Jen čas ukáže, zda-li to byl dobrý tip, nebo jen vyhozené peníze.

// Můj první plugin pro DokuWiki

Před několika měsíci jsem kompletně updatoval svoji website. Vybral jsem si DokuWiki jako velmi flexibilni engine rozšiřitelný spoustou pluginů.

Též jsem použil Blog plugin a další k vytvoření svého občasníku. Ale chyběla mi jedna vlastnost. Tou bylo zobrazení data vytvoření a autora na stránce příspěvku podobně, jako to vkládá Include plugin v seznamu. Ano, DokuWiki standardně tiskne zápatí, ale pokud je použit Discussion plugin, vloží se až pod všechny komentáře hodně hodně dolů.

Takže jsem spáchal jednoduchý plugin, který informace vkládá těsně pod příspěvek, nad komentáře. Stačí se podívat například na stránce tohoto příspěvku dolů. Musel jsem ale hrábnout do proměnných event handleru (které by v jiném jazyce velmi pravděpodobně byly privátní), abych plugin udělal prvním listenerem události TPL_ACT_RENDER_AFTER, tj. ještě před Discussion pluginem. Důsledkem toho je vždy text před komentáři. Nutno přiznat, že tento trik mi naťuknul Vity. Plugin lze stáhnout na stránce DokuWiki goodies.

// Photobase, nová verze, další featury

Po nějaké době jsem se dokopal k dalším inovacím na mojí fotogalerii. Stalo se tak vlastně až na základě okolností a potřeby nahrát do galerie cca 50 fotografií. Původní způsob jsem ihned zavrhl, protože bych se zřejmě uklikal k smrti. Světlo světa tak spatřil primitivní upload souborů přes FTP. K tomu jsem již dříve pracoval na systému pro lokalizaci, takže nyní mohu psát PhotoBase v angličtině a zachovat i českou verzi. Nemluvě o možnosti jednoduchého překladu do téměř jakéhokoli jazyka.

Lokalizace

PhotoBase

Abych si lokalizaci co nejvíce usnadnil, použil jsem jednoduše asociativního pole. Jednotlivá hesla k překladu jsou klíči pole a přeložená hesla pak obsahem jednotlivých položek. Tvorba nové lokalizace pak spočívá v založení nového souboru v podadresáři /inc/lang podle již existujícího exempláře a následného přeložení hodnot v poli. Jedinou nevýhodou je nutnost zachování korektní PHP syntaxe.

V kódu pak volám pro vložení hesla příslušnou funkci, která zajistí překlad, případně nahlásí debugovací komponentě neexistenci překladu a použije původní text. Pro složitější konstrukce s proměnlivými položkami existuje funkce, která po překladu provede nahrazení výrazů %1, %2 apod. hodnotami uvedenými jako parametry funkce. Tento fígl je použit snad ve všech aplikacích, které znám.

FTP upload

FTP upload

FTP upload

Jak bylo již řečeno, důvodem pro uspíšení vytvoření této funkce byla hromada fotek, které ulpěly na paměťové kartě mého mobilu po dovolené na Vysočině. Upload přes FTP není úplně to, co bych si představoval, pro někoho může být postup příliš složitý nebo nepohodlný, ale je to asi nejjednodušší řešení, kterého jsem byl schopen dosáhnout.

Jak to zhruba funguje … Administrátor musí každému uživateli, který chce nahrávat fotky přes FTP, vytvořit adresář pro uploady nesoucí jeho přihlašovací jméno a příslušný účet, pomocí kterého může uživatel do adresáře fotky nahrát. Tento požadavek je asi ze všeho nejvíc „zdržující“ a navíc je nutno při vytváření účtu dát pozor na přístupová práva, aby nebyla ohrožena bezpečnost aplikace (přístup do jiného než adresáře pro upload). Uživatel potom adresář naplní fotkami, které chce přidat. Pomocí příslušného odkazu přejde k hromadnému vkládání. Skript načte všechny soubory a zkontroluje jejich mime-typy, případně upozorní na neobrázkové soubory, které je nutno před nahráním z adresáře odstranit. Uživatel vybere galerii, do které chce fotografie nahrát a potvrdí.

V tuto chvíli nastává další z problémů tohoto řešení. Skript by měl správně soubory přesunout do adresáře pro fotografie. Ale důsledkem toho, že má FTP uživatel většinou jiná práva než webserver, je fakt, že skript soubory z adresáře pro upload odstranit nemůže. Proto je pouze zkopíruje a na tuto „chybu“ upozorní a varuje před možným opětovným nahráním v případě ponechání oněch souborů.

V budoucnu bych chtěl tuto nepohodlnou funkci nahradit mnohem sofistikovanější. Jako nejhezčí řešení se jeví Java applet. Bohužel v tuto dobu jednoduše prostě netuším, jak to přesně funguje. Například Facebook má velmi povedený. Asi začnu o této alternativě zjišťovat víc. Další možností je uploadovat fotografie v jednom souboru, například jako ZIP nebo TAR. Jenže to naráží na omezení v podobě maximální velikosti dat odesílaných metodou POST, takže se to jeví jako slepá ulička.

Nicméně ...

nové funkce jsou na světě. A to ještě před půl rokem to vypadalo, že tento mini-projekt bude jako spousta jiných zapomenut pod záplavou ostatních věcí a povinností. Takže pro zájemce odkazuji na stránky projektu PhotoBase. Pokud byste se přeci jen rozhodli galerii vyzkoušet, přivítám Vaše odezvy a případné hlášení chyb. Enjoy!

// Dva týdny na Vysočině

V sobotu jsem se vrátil z rodinné dovolené na Vysočině, konkrétně od Pilské nádrže u Žďáru nad Sázavou. Zpočátku to s počasím nevypadalo až tak moc nadějně. V sobotu 9. srpna bylo věčně zataženo a v noci klesla teplota na 8 stupňů, skoro jsem zapomněl, že je srpen. Naštěstí později počasí nastavilo vlídnější tvář.

Rozhledna u Rosičky

Rozhledna u Rosičky

Takže došlo i na výlety. Po roce pachtění ve škole jsem oprášil bicykl a jal se zdolávat zvrásněné okolí Žďáru. Nejprve jsem navštívil rozhlednu u Rosičky (vlevo), o které jsem se dozvěděl náhodou při nějakém hledání na internetu. Jedná se o celkem novou stavbu. Byla dokončena 2001 i s anténami je vysoká 42 metrů a spravuje ji obec Sázava.

Hamroň

Hamroň

Po cestě jsem narazil na několik zajímavých artefaktů. V okolí Žďáru je rozmístěno několik plastik v podobě strašidel, ale i koňského spřežení nebo mamuta. Některé jsou opravdu kouzelné, nejvíce asi Hamroň vpravo na obrázku.

Další výlet směřoval do Přibyslavi. Bohužel se mi podařilo cestou celkem slušně zabloudit (i s mapou), takže díky zdržení jsem se na náměstí jen otočil, po pravici si všiml zámku a nechal Přibyslav za zády. Cestou jsem jel okolo konce světa, patníku značícího historickou hranici Čech a Moravy. Podle cedule byl aktuálně strážný na dovolené a na stráži jej zastoupila jeho sličná družka. V souvislosti výlety na kole bych chtěl pochválit zodpovědné osoby za vybudování cyklistických stezek po Žďáru, ale i velmi pokárat za značení cyklostezek v jeho okolí. Některé důležité odbočky prostě nebyly značené, i s mapou to občas bylo obtížné, takže bylo výhodnější předejít bloudění jízdou po hlavní silnici.

Konec světa

Konec světa

Další místa jsem navštívil motorizovaně. Zajímavá byla expozice věnovaná lyžím Horáckého muzea v Novém Městě na Moravě, nebo návštěva hradu Pernštejn. Počasí zpětně dokázalo, že je opravdu teprve srpen, takže jsem se také v aquaparku v Jihlavě dokonale spálil při čtení denního tisku. Ale dozvěděl jsem se, že Usain Bolt vyhrál stovku s rozvázanou tkaničkou od tretry :-).

Poslední cyklovýlet druhou středu na Devět skal moje vůbec netrénované tělo totálně odrovnal, díky čemuž jsem už ani nemohl pohodlně spát. Ale aspoň zbyla vzpomínka na pěkný výhled. Nakonec si na počasí ani stěžovat nemůžu. Pršelo všeho všudy jediný den, a nejteplejší svršek představovala fleecová mikina od Centra. No, srpen je pomalu pryč, je čas začít se věnovat slíbené práci na diplomce.

// Nová doména a hosting

Dnes jsem definitivně přestěhoval svůj webík na novou doménu a tím i na nový hosting. Prozatím jsem zvolil free variantu hostingu na pipni.cz a až na menší výhrady jsem zatím spokojen. V souvislosti s přesunem jsem zároveň updatoval DokuWiki na novější verzi a doplnil několik drobných featur. Některá specifická nastavení hostingu mě však stála nějaký ten čas na doladění.

Safe mód a DokuWiki

Kvůli specifikům PHP safe módu na hostingu nefunguje DokuWiki korektně. Příčinou je nemožnost vytvářet v PHP ve filesystému adresáře a následně do nich vkládat soubory (problém je popsán zde). Existuje sice jakýsi safe mode hack, který vytváření provádí přes FTP a tak umožní zápis do dotyčných adresářů, ale ještě jsem jej nezkoušel. Prozatím jsem se spokojil s omezenou funkčností, kdy nelze vytvářet nové namespacy (tedy podadresáře) prostřednictvím systému, ale jen ručně z FTP klienta. Výraznější problém to způsobilo s cache, která používá adresáře. Naštěstí existuje google a výše citovaná stránka. Stačilo dané podadresáře cache 1 2 3 4 5 6 7 8 9 a b c d e f vytvořit a povolit do nich zápis.

URL v fopen() funkci

Pro některé miniskriptíky jsem využíval funkci fopen pro stahování vzdálených souborů přes HTTP. Na pipni.cz je ovšem featura allow_url_fopen zakázaná a nelze povolit tak, jako v případě předchozího ic.cz. Naštěstí existuje ještě několik dalších způsobů, jak soubory stahovat (curl, sockety), takže tento problém jsem lehce vyřešil pomocí třídy pro HTTP klienta, která je v DokuWiki přibalena.

Další dojmy

Hned včera po aktivaci účtu jsem sem překopíroval stávající instalaci z ic.cz a zkoušel přenést databázi z mojí fotogalerie. V tu chvíli jsem naštvaně zíral na minutu načítající se PHPMyAdmin a vztekle nadával na rychlost (ale co byste chtěli zadarmo). Naštěstí se mi databázi povedlo nahrát a zdá se, že rychlost je spíš jen problém u PHPMyAdmina, moje galerie (pravda, max. 4 dotazy na stránku) se hýbe docela svižně. Jinak prozatím (2 dny …) jsem se nesetkal s výpadkem.

Taky se začínám prohrabávat spoustou konfiguračních možností hostingu a dolaďovat jej podle mých představ. Uvidíme, zda budu s novým freehostingem spokojen do té míry, že se nebudu poohlížet po alternativě.