středa 23. března 2005

Jak pohřbít diskusní server zaživa?

Server Builder.cz nabízí unikátní soubor několika velice zajímavých mailovo-webových diskusních fór. Pardon, chtěl jsem napsat nabízel, ale pěkně po pořádku. Na serveru Builder.cz jsem byl aktivním členem několika diskusních fór, namátkou JavaScript, Java, Web, XML, Problémy algoritmů. V poslední době se stávalo, že Builder občas vypadnul, nebylo se ovšem čemu divit vzhledem k již dřívějšímu ukončení publikací článků a vedoucího k uvedení do stavu hibernace.

V průběhu včerejšího dne se dostavil výpadek, kdy bylo zřejmě možné přidávat příspěvky přes webové rozhraní, ale mailové pokusy selhávaly. Dnes v 15:18 přišlo emailem vskutku originální vysvětlení problémů posledních dní, cituji:

Změny emailového odběru diskuzních fór provozovaných na serveru grafika.cz, digineff.cz, fotografovani.cz, builder.cz, mujmac.cz:

Přejeme Vám hezký den,

tento e-mailem Vám zasíláme coby uživateli přihlášenému k odběru e-mailových konferencí na serverech grafika.cz, digineff.cz, fotografovani.cz, builder.cz a další serverů provozovaných společnostmi Institut digitální fotografie a Grafika Publishing.

Protože původní systém e-mailové konference byl velmi neflexibilní a často zneužívaný, byla včera zprovozněna nová verze diskuzního fóra s odlišným systémem e-mailových konferencí. Z principu budou e-mailové konference fungovat stále stejně, nicméně k odběru se mohou přihlásit pouze registrovaní uživatele.

Chcete-li se e-mailových konferencí nadále účastnit, je třeba abyste se do odběru přihlásil/-a znovu. Na staré e-mailové adresy již diskuze bohužel nemohou být distribuovány.

Návod jak se zaregistrovat do fóra naleznete na adrese: http://pas.idif.cz/public/forum-registrace.php

Po registraci se můžete opět přihlásit k e-mailovému odběru jednotlivých fór. Návod jak na to naleznete na adrese: http://www.idif.cz/art/info/emailove-diskuze.html

Omlouváme se za způsobené komplikace, nicméně situace se starým systémem již vyžadovala takovou míru dohledu a neustále asistence, že již situace nebyla udržitelná.

Věříme, že zůstanete diskuzi věrní. V případě jakýchkoliv problémů či upozornění na chyby použijte prosím formulář na adrese http://helpdesk.idif.cz

S pozdravem, Administrátoři fóra

Má první reakce byla celkem podrážděná. Proč budu muset opět absolvovat proces přihlášení do všech těch diskusních fór a s tím spojených radovánek? Už jenom přenastavení pravidel pro rozehrávání pošty mě obtěžuje. Proč nebylo možné udělat převedení stávajících účtů? Proč se to dovídám až s křížkem po funuse, že taková změna proběhla? Nevadí, nemá cenu malovat čerta na zeď, zkouším onu registraci. Prodleva mezi zasláním potvrzovacího emailu mě trochu nabrousí, aby mě posléze dorazil fakt, že do bývalého serveru Builder.cz, po novu zóny Buidler.cz, se nedá přihlásit k odběru příspěvků, prostě vůbec v nabídce nefiguruje.

Mezi chvilkovým stavem naštvání, se nezávisle na sobě objevuje PM2K a NKD pohrávajíc si s myšlenkou vůbec se neregistrovat. Tento stav je posléze střídán pocitem frustrace nad chybějícím Builder.cz a konče naštváním na stupidní systém s novou registrací. Samozřejmě chápu a plně respektuji právo provozovatele čelit problémům virů a spamu, ale proč se to udělalo bez špetky tolerance k cílovému uživateli? Bylo by tak těžké udělat ten převod alespoň trochu bezbolestně?

Doufám, že se nenaplní scénář, který vykresluje NKD. V tomto smutném příběhu se počet frustrovaných uživatelů zvětší do té míry, že se z kdysi výstavních fór serveru Builder.cz stanou krásně nespamovatelné, nezavirovatelné a také neaktualní smetiště. Pakliže se tak stane, odpočívej v pokoji drahý Buildere.cz.

Aktualizace: v průběhů psaní se objevil v zónách Buildder.cz, ale teď se nemohu pro změnu přihlásit.

pondělí 21. března 2005

Rozjímání nad úsporou a psaním kódu

Kdysi dávno jsem četl, že programátor je od přírody tvor líný. Když občas někde zaslechnu a nebo si přečtu, co by bylo dobré mít v Jave, protože to má ten a ten jazyk a nebo protože to zjednoduší kód ze třech řádek na jednu, vyvolává to ve mě mírné chvění. Stejně tak citlivý jsem na jakékoliv podněty týkající se rozšíření sémantiky vlastního jazyku, ale to je na jinou diskusi.

Opravdu netuším jestli si všichni ti novátoři uvědomují, jaká je cena úspory kódu? Odpovím si sám, asi těžko. Největší problém vidím v čitelnosti lépe řečeno srozumitelnosti kódu a vždycky si vzpomenu na zlaté pravidlo, že kód se jednou dvakrát píše, ale osmkrát čte. Proto například nesdílím orgastické chrochtání nad anonymní vnitřní třídou implementovanou na jednom řádku. Není vůbec sranda takový kód po někom luštit nebo nedej bože trasovat. Právě trasování je při jedno-dvou řádkových komprimacích problém.

Každý z nás má nějaký rukopis kódu, možná ještě jinak, zápis kódu každého z nás se mění postupem času a zkušenostmi, samozřejmě v závislosti na daném programovacím jazyku. Nováčci v týmu mají většinou kód odpovídající jejich zkušenostem, nesprávné odsazení, dlouhé řádky, otevírací závorky na novém řádku apod. Kapitolou samou pro sebe jsou emigranti z jiných jazyků, přeučit takového člověka, aby dodržoval konvence daného jazyku je jako s tím pověstným házením hrachu na zeď a nebo jako v pohádce o starém psovi a nových kouscích.

Možná se vám to zdá jako prkotina, ale konzistence těchto relativních drobností, tvoří minimální základ pro sdílení kódu mezi skupinou vývojářů. Některé projekty mají vlastní standardy pro psaní zdrojového kódu, což považuji za známku jisté profesionality. Každý kdo zkoušel merge, diff a nebo patch na "heterogenním" kódu mi dá jistě za pravdu. Pokud se to dobře podá a vývojáři pochopí, že společné konvence nejsou zavedeny pro jejich terorizování, je napůl vyhráno.

Vždycky když se řeč stočí na téma základní konvence psaní kódu, nedá mi to a připomenu, že existuje velice kvalitní dokument Java Code Conventions, který by si měl pročíst každý kdo chce v Jave programovat déle než jeden semestr na vysoké škole.

Na závěr bych se rád zmínil o mém postoji k nástrojům pro automatické formátování kódu. Ač se jedná o nástroje velice užitečné, nesdílím optimismus některých kolegů v přístupu, kdy se před commitem do CVS provede autoformát těmito nástroji. Zastávám názor, že kód by se měl psát z hlediska čitelnosti na první pokus. Uplatnění pro nástroje jako Jaloppy vidím v rovině zkultivování nekonvečně zapsaného kódu.