Archive for Červen, 2007
Pod poklickou pRSSreaderu - I.
Neni to tak davno, kdy jsem zacal citit potrebu udelat neco s pRSSreaderem. Ono to nejak funguje, ale obcas se vyskytne problem, ktery se bud spatne hleda nebo jeho oprava vyzaduje prilis velky zasah do stavajiciho kodu. Co s tim? Prepis to! To se lehko rekne a hur udela. Nicmene. Logika obstaravajici funkcnost je vcelku dobre napsana a celkem i odladena, takze proc nezacit s refaktoringem?
Cili, prace zacaly a postupuji dopredu. Cile jsou jasne:
- Jednodussi a unifikovane GUI.
- Dobra podpora WM5 ale i strasich (co se tyce GUI).
- Stabilni kod
- Dodelat zasadni chybejici feature hlavne co se tyka cachovani vseho moznyho
- Vyhazet zastarale a nepotrebne volby
Co uz je hotovo nebo skoro hotovo:
- Site Manager - sprava feedu. Lze pridavat, hledat, posouvat, presouvat, skupiny delat, OPML file importovat, exportovat.
- Primitivni update - updatene to kanaly, zatim neumime cachovat - vubec nic - cili jako ve verzi 1.0.0.
- Cteni zprav.
- Sousta prace co neni videt - refactoring sitove vrstvy, aj. lahudek, ktere nelze zakoupit v mlecnem baru.
Takze ted je to naprosto primitivni ctecka, se kterou si budu hrat. Pro seznam polozek ve feedu jsem musel udelat uplne zbrusu novou kontrolku - peknej opruz - zabitej jeden celej den a mouchy stale vychytavam.
Neskutecny opruz absolvovan s ArticleView (cteni zprav). Ono to proste nemuze fungovat jednoduse. Je treba udeat 1000+1 hack.
Predelano ukladani, takze konecne se neztrati neprectene, ktere uz nejsou ve feedech. Juchu!
Predelane ukladani ma za nasledek i rychlejsi nacitani. Jupi! Doufejme, ze je to cesta spravnym smerem. Bohuzel to znamena, ze pri migraci na vyssi verzi se user posere. Zase odinstal a novy instal. Mame radi nase vyvojare. Migracni kod se mi psat nechce, kdyz to pujde vyresit odinstalem + instalem.
Mnoho problemu zbyva vyresit. Hlavne co se tyce rychlosti a pohodlnosti ovladani.
Neskutecne mnozstvi featur, ktere se za ty 2 roky (ano je to jiz tak dlouho) nabalily, me primo desi. Jeste vice, nez programovani GUI, ktere bude tyto silenosti nastavovat. Naprosto nechutna bude sluzba na pozadi, ktera stahuje feedy, aniz by pRSSreader bezel. Dalsi lahudkou bude prepsani Today pluginu (chapu proc to hosi od SPB nemaji v prvnim releasu). V neposledni rade to bude kontrolka (neeee!) pro summary view. Stavajici TreeCtrl je nedostacujici.
Jiz ted me ze spani budi budouci emaily, ktere si zadaji zbytecne veci, stezuji si na bugy a rikaji, jak byla stara verze dobra a proc, ze jsem to jako prepisoval. Inu zivot je zmena.
Zemrit v kreci!
Add comment Červen 30, 2007
Co nas bavi a zabavuje
Zivot je boj. A kdo nebojuje, prohraje. V poslednich dnech jsem si nasel primo vynikajici zabavu. Bojuju s platformou pocket pc. Ne jako uzivatel, ale jako programator.
Par nametu k zamysleni:
- Psat novou kontrolku z niceho je neskutecnej opruz, kterej vam navic nikdo nezaplati. A user jen mavne rukou.
- Neni dobry nechat se inspirovat ovladanim iPhone, kdyz a) nemate multidotykovy display a b) udelat obycejny ovladani mysi s beznymi prvky jako multi-select trva den a clovek by u toho vykvetl.
- Na normalni dialogy funguje RelayoutDialog, ale jak tam flaknu HTML control, tak se mi STATIC control (ma ID jako normal control) neprekresli, mozna ani neresizne.
- Proc se STATIC control neprekresli hned po OnInitDialog, kdyz jste mu tam zmenili text pres SetWindowText?
- Opravu neni dobry snazit se vytvorit dialog, jehoz resource jste pred chvili smazali.
- Nepouzivej GetCursorPos, kdyz nejsi na Woknech, ale na Pocket PC.
- Zabranit oknu, aby se neresizelo, nestalo se full screen a proste zustalo na miste, je nadlisky ukol hodny polobohu.
- Jeden kod, ktery pracuje zaroven na QVGA a VGA displayi s podminkou, ze vysledny efekt je hezky na obou zarizenich, neni relany.
- Bez hacku pro WM5 se neobejdes. Co vypada dobre na WM2003SE je sileny na WM5 a obracene.
- Kdo moc pracuje, nemuze psat na blog.
Add comment Červen 29, 2007
Zpatky v ruzovem
Tak uz jsem zpatky doma. Vyletel jsem v 11:30 z El Pasa a pristal v 10:30 mistniho casu v Praze. S jednim prestupem v Atlante a cekanim 3 hodiny na prestupu to je naprosto zlaty spojeni.
Zatimco na ceste tam me kontrolovali uplne vsude, tak na ceste zpet jen v El Pasu, ale to je logicke, pac prestup byl stale na uzemi USA, tak proc to delat znovu. Jedina vada na krase bylo, ze jsme do Prahy leteli Boeingem 767-300, ktery mel centralni projekcni system, takze si clovek nemohl pustit co chtel, ale musel koukat na ty voloviny, co tam streamovali.
Vubec ale nejlepsi bylo tohle. Na cestu jsem nabyl uplne vsechny baterky, PSPcko, notas, PDA. Do PDA nahral videa, ktery jsem si chtel prohlidnout, a naladoval jsem tam nejaky knizky. Z El Pasa do Atlanty jsem neco precetl. V Atlante pri cekani jsem zjistil, ze se mi podelal mp3 hrator, takze to hralo 20 sekund a pak se to vyplo. No nicmene jsem to v Atlante nejak vydrzel. Vlezl jsem do letadla, pripravil PDA do kapsy prede mnou. Zacali podavat jidlo. Po dvou hodinach jsem si rekl, ze bych teda mohl zacit koukat na ty videa v PDA. Vytahnu PDA a baterky zbyva 10%. Jak to? No asi se to nejak blbe oprelo o zapinaci tlacitko, takze PDA porad bezelo. To potesi. Nastesti jsem mel jeste notas, takze jsem neco malo nasoftil a pak jsem chvili hral na PSP (cca 2h). Aspon tohle nezklamalo. Jinak to byla silena nuda. No a v srpnu me to ceka znova. To jsou teda vyhlidky…
Poznamka: Cesky letusky opet vitezi krasou.
Add comment Červen 22, 2007
Coloradem, Utahem radne si tam utahnem
Vyjeli jsme v nedeli 13.5. na sever do Colorada. Prvni cil je kamp v parku Mesa Verde vzdaleny neco malo pres 500 mil, tzn. asi 9 hodin jizdy autem. Asi hodinu a pul pred cilem jsme prijeli k mostu a na nem cedule, ze zavrenej. Silnice konci. Objet to neslo. Byli tu dva harleyari, ktery se to taky snazili objet, ale marne. Toz jsem se otocili a vratili se na nejblizsi krizovatku a cely to objeli pres Durango (coz musi byt vsem napsarot jasny, ze jinak to neslo). Zvlastni bylo, ze na zacatku ty silnice, na kterou jsme odbocovali, nebylo vubec zadny znameni, ktery by rikalo, ze je cesta uzavrena po X milich. Proste nas nechali dojet az na konec a pak se otocit. Treba nejaka mistni past :) Pokud jo, tak nevysla.
Mesa Verde

Kemp je veliky, z pulky zavreny, ale porad jeste zbyva 200 mist k taboreni :) Pochopitelne to by nebylo, aby kdybysme nekam prijeli tak neprselo. Tak sileny jako v Big Bendu to nebylo, ale sprchlo a v noci byla teplota nizko. Nu vsak jsme v horach a 2 500 m.n.m.
Rano vyrazime do parku do skalniho mesta Mesa Verde. Nasim pruvodcem je ranger Paul a vypravi nam o historii skalniho mesta. Mesto je usazeno pod skalnim previsem nad udolim a vypada to celkem uctyhodne. Po prohlidce se presouvame na Spruce Tree House, kde je pristupna Kiva (coz je dira v zemi priklopena tramkama, kde se varilo a prezimovavalo).
Pojime neco k obedu a vyrazime do Arches National Park vzdaleneho neco malo pres 2 hodiny.
Arches National Park
Mame tu cele odpoledne, tak okukujeme vsechny mozny i nemozny oblouky i neoblouky. Videli jsme South Window, North Window, Turret Arch, Double Arch, Landscape Arch a jeste par dalsich. Shodujeme se, ze nejhezci je Double Arch. Setrime se na druhy den, kdy chceme jit na Delicate Arch, coz je nejznamejsi oblouk a cesta neni jednoducha. Vsude tu je oranzovy a velmi jemny pisek a slunce sviti jako o zavod, ale to je dobre.



Ken’s Lake
Jelikoz v Arches Nat. Park je kamp plny, prenocovavame u Ken’s Lake (Kenovo jezero - na pocest mistniho starosty, ktery tu zbudoval jezero - spis bych mel psat rybnik - jezer v okoli opravdu moc neni, spis zadny). Kemp je poloprazdny, vybirame si velky plac, aby se nam tam vesly oba stany. Nedaleko je mensi vodopad, tak se tam jdeme podivat.
Delicate Arch
Rano se presouvame zpet do Arches National Park a vyrazime k Delicate Arch. Cesta tam trva neco malo pres hodinu, nikdo zadny stin. Dostatek vody je nutny a klobouk je nepostradatelny - tech 14 USD nelituji. Cesta je zprvu pohodova, pozdeji se teren meni na vice hornaty, ale s Rabbit Ears se to neda srovnavat. Samotny Delicate Arch se tyci nad srazem do jakehosi “kotle”. Osobne mi ten kotel prijde zajimavejsi nez Delicate a na Double Arch to uz vubec nema. Je tu mraky lidi, mlady, stary, cizinci, amici, proste vsichni :)
Canyonlands National Park
Po navsteve u Delicate Arch, se presouvame vic na jih do Canyonlands. Stejne jako v Arches, je mistni kamp plny, ale utociste nechazime necele dve mila od parku v soukromem kampu. Nachazi se na upati mistnich hor. Plac na kempovani si vybirame teste u skaly. Postupem dne se kemp plni. Vedle nas se ubytovali dva evropani, ale nevime jakou mluvi reci. Me to pripada jako italstina, ale Lenka mysli, ze na italstinu je to prilis pomale. Nakonec se shodneme, ze to je asi opravdu italstina a chceme to zkusit pres pozdrav. Na “bon dzorno” jsme si vzpomneli a opravdu: jsou to Italove.
Druhy den se vydavame po parku. Mistni ranger nam radi jednu cestu, ktera je sice delsi (asi 18 km), ale zato pry moc hezka. Vyrazime na pochod. Zprvu vylezeme na nahorni plosinu, po ktere jdeme vetsinu casu, po okoli se tyci skaly, na kterych lze videt, jak se ukladaly jednotlive vrstvy sedimentu - bily je pisek, hneda je naplavenina (jak jsem se dozvedel v instruktaznim videu :-D). Cesta je rozmanita, jdeme mezi skalami, po loukach, souteskami, udolimi, splahame nahoru, dolu, jedeme po rovine. Cloveku to nezevsedni. Okolo jedny odpoledne mam krizi a vubec se mi nechce pokracovat. V tu dobu celkem hodne odpocivame ve stinech (kde se da), protoze slunce to mysli vazne. Ke konci cesty padlo i nekolik kapek deste. Bylo to vysilujici, ale stalo to za to.
K veceru se do kempu vratili i nasi italsti sousedi a hned na nas “dobry den”. No cestina v Utahu od Italu, kdo by se toho byl nadal. Dovidame se, ze jeden z nich jezdi do Prahy do Ladvi. Pavel se pta, ze to tedy musi byt fyzik a od, ze ne, ze je matematik. A ted mi reknete, jaka je pravdepodobnost, ze se cesti matematici potkaji s italskymi matematiky v Utahu v Canyonlands ;) Rano se balime, Italove taky, loucime se “ari de verci” a ficime dom.
Domu jedeme pres Arizonu a na dvakrat. Prespavame v jednom kempu (jmeno jsem zapomnel). Nic zvlastniho se nedeje. Domu se vracime v patek, protoze v sobotu mi leti letadlo zpet do CR.
Fotky: Mesa Verde, Arches National Park, Canyonlands National Park
Add comment Červen 19, 2007
Prilis…
Ceho je moc, toho je prilis. To je zname prislovi. A kdyz programujete v kuse cely mesic, prumerne 10 hodin denne, prijde cas, kdy je treba vydechnout. Zastavit se. Ohlednou se zpet. Jak jinak nez na kod, ktery byl stvoren :) Zamyslet se. Co delat dal? Prace je dost a nikdo ji za vas neudela. Coz me privadi k jednomu postu na blogu msmobile. Slo o to, jake feature implementovat. Jednim ze zasadnich faktoru bylo, aby se vynalozena prace vratila. Jinymi slovy, pokud vas implementace stoji 50 tisic dolaru a vyuzije to jeden uzivatel, tak jste to mirne receno neodhadli. No tohle je pro komercni firmu zasadni. Stejne tak, ale i pro autory freeware. Druha velmi trefna poznamka byla, ze nejde o to, ze by to neslo nasoftit, ale o to, ze cas je proti nam. Za nekonecne dlouhou dobu se vam podari nasoftit vsechny feature. Ale kdo disponuje nekonecnym casem? Neco implementovat, otestovat a vypustit, stoji priserne more prace. U komercaku vam za to aspon zaplati, u freeeware vam maximalne nekdo posle mail, ze se mu to libi a neopomene upozornit na chyby a doda nezbytny seznam feature requestu.
Ale to husitske hnuti… Tak tedy odpocinek. Rano jsem se probudil a opravdu jsem nemel chut nic softit. Ano i programatori maji sve dny. Opravil jsem jeden bug, jehoz reseni me napadlo pred spanim, hned po tom, co jsem vypl pocitac. No a pak jsem to musel vypnout (rozumnej IDE, ne komp). No a jelikoz neni nic lepsiho na praci, tak jsem se dal na remeslnicinu. Mam tu jeden webovej kseft, kterej je treba napsat, toz vzhuru do toho. Tahle prace je dobra. Nic vas neprekvapi. Delate porad to samy. Zeptat se databaze na data, ulozit, vystoupit na obrazovku. Jediny, kde premyslite, je vzhled stranky. Postupy jsou porad stejne jasny. Vezmi poslana data, zjisti, co user chce, udelaj to, zobraz to. Pokud pod tim tepe dobre udelany framework, prace jde jako na dratkach. Remeslnicit je dobre, kdyz se nechce kreativne tvorit, prokopavat nove cesty, zjistovat, kde kdo zase neco vyprasil a snazit se to elegenatne vyresit. Proste kdyz neni nalada, tak je treba delat neco, co se stejne musi udelat, ale neni u toho treba moc myslet.
Ale hlavne, kdyz se nechce softit, je treba napsat neco na blog :)
Add comment Červen 19, 2007
Jak pejsek s kocickou programovali dort
Mile deti, zil byl jednou jeden programatorsky pejsek a jedna programatorska kocicka. Jednoho dne se pejsek probudil a povida kocicce: “Napadl me recept na uzasny dort. Bude 1000x chutnejsi nez ostatni dorty a bude nejlepsi na svete.” Kocicka povida: “Tak to bychom ho meli honem naprogramovat, aby nam ho nikdo nevyfoukl.” A tak se dali do prace.
“V cem ho budeme psat?” ptal se pejsek.
“No preci v C++ s COMy. Je to dnes moderni a velky buh zviratek to podporuje,” odvetila kocicka.
Na zacatek vygenerovali spousty GUID, pro kazdy objekt jeden. “Hlavne, abychom jich meli dost pro kazdy objekt,” strachoval se pejsek. Ale kocicka generovala jako diva, takze identifikatoru bylo haba dej. Ono ostatne neni nad binarni interfacy.
“Me se nechce porad opisovat ty dlouhe deklarace trid,” stezovala si kocicka.
“Pockej, napisu ti nejaka makra preprocesoru, aby se ti lepe psalo,” nabidl se pejsek.
“Uz je to celkem veliky dort,” povida pejsek.
“Tak to bychom ho meli nejak roztridit do adresaru,” odvetila kocika a udelala pro dort adresarovou strukturu.
A co se nestalo, po nekolika mesicich prace, pejsek s kocickou udelali svuj prvni release dortu. Byl krasny, vsem se libil a vsem moc chutnal. Prilakal pozornost spousty zviratek, ktera chtela pomahat, aby dalsi dort, byl jeste chutnejsi nez ten prvni. A tak se vsichni dali do spolecne prace na novem dortu.
“Ty COMy nejsou moc dobre,” povida tucnak. “Na mem systemu nefunguji. Nebylo by lepsi dodrzovat POSIX standard, aby by dort prenositelny a nemusel stat stale na jednom miste?”
“Novy dort uz je moc veliky, na to abychom ho prenaseli. A tvuj system, tucnaku, stejne pouzivas jen ty sam,” pravili pejsek s kocickou.
“Dort je prilis pomaly. Je treba jej optimalizovat, aby bezel rychleji,” postezoval si gepard a take pejskovi s kocikou vytkl nevhodne pouzivani vlaken. Pejsek s kocikou uznali chybu a zacali optimalizovat.
Mezitim priletel papousek a spustil: “Ja nepouzivam prekladac C++, ja mam jen C a potrebuju jen C. Bylo by vhodne, aby byl dort prelozitelny jen v C. Nemuzete nas nutit do C++.” A pejsek s kocickou zmenili adresarovou strukturu projektu. Oddelili casti v C a CPP, ale vnitrni zavislost C++ na C nezmizela. To ale pridelalo spousty prace polarnimu medvedovi, ktery pracoval na jinem projektu a dort vyuzival.
Jak bezel cas, soubory se v dortu presouvaly. Tu sem. Jindy tam. Obcas nejaky zmizel. A pak se zase objevil. Ale na uplne jinem miste. Pejsek s kocickou vytvorili nekolik vrstev abstrakce, takze na jadro dortu uz nebylo lehko dohlednout.
A tak to, mile deli, pokracuje az dodnes. Pejsek s kocikou lepi kod v C++, COMu se dodnes nezbavili, s tucnakem se nekamaradi a ledni medved dostal migrenu…
2 comments Červen 7, 2007
Az budu velky, budu programatorem
Byt programatorem je v dnesni dobe urcite dobre. Nejake posledni studie ukazaly, ze za par let tu bude nedostatek IT odborniku. Takze kdo bude programator, praci urcite najde. Soucasne platy jsou nyni pomerne vysoke, sedite v teple a nemusite zvedat nic tezkyho. Zeny programatoru to maji take dobre. Takovy programator sedi doma, nezlobi, je verny a moc neprekazi. Staci obcas nakrmit, aby nam neumrel. Dejte ho do mistnosti s Angelinou (nebo jinou sexbombou) a pocitacem pripojenym k internetu a prvni co udela bude, ze pujde zkontrolovat jestli mu neprisel email. Angeliny si ani nevsimne.
Ale svet neni tak ruzovy, jak by se na prvni pohled zdalo. Programatorem muze byt jen psychicky velice odolna bytost. Kupr. dneska jsem se zabyval chybou, proc se jedno XMLko neparsne. Chyba byla jasna. Kodovani XML je deklarovano jako utf-8, jenze soubor obsahuje i znaky, ktere utf-8 nepripousti. Co s tim? Tak usera pochopitelne nezajima, ze to XML nesplnuje specifikaci, on ho proste chce videt, vzdyt v mym prohlizeci se ukaze dobre. Takze koukneme co s tim. No moc toho nesvedu. Kdyz necham knihovnu (kterou na parsovani XML pouzivam) rozhodnout o kodovani (nativne umi utf-8), tak se nedostanu ke korytu, abych to XML opravil, nez ho dostane knihovna k dalsimu zpracovani. Takze rozumny reseni je zachazet se vsim jako s iso-8859-1 a az to bude zchroumany, tak to rekodovat. Vic s tim asi nesvedu. Takze krasny systemovy reseni na urovni parsovani XML se nekona.
Dalsi problemek: make. Takze tu mame uzasnou knihovnu od ktery mame debug a opt verzi. Dal mame nasi knihovnu, od ktery chceme taky debug a opt verzi a podle toho linkujeme uzasnou knihovnu. Jenze uzasna knihovna pozuiva dementni system inkludovani makefile. V makefile pochopitelne nejde inkludovat v zavislosti na zpracovavanym cili. Takze co? Takze misto 1 makefile mam 4. Jeden nadrazenej, 2 pro kazdou verzi nasi knihovny a jeden se sdilenymi dat jako seznam souboru. Bomba.
No a takhle bych mohl pokracovat hodiny. A pak, ze nam pocitace usnadnuji zivot. Nenechte se mast!
Add comment Červen 6, 2007