16. července 2009

Super myšlenka učení programovat na škole - programovat open source projekt

Když jsme byli na jOpenSpace 2009 tak jsme v hloučku zainteresovaných vedli diskusi na téma: "Co by měla vysoká škola dělat, aby naučila své studenty programovat?". V této diskusi byl hodně aktivní Petr Adámek, který jako učitel na Masarykově univerzitě, měl k tématu hodně co říci.

Já jsem šel do diskuse s nosnou myšlenkou, že škola musí více do svého programu zatáhnout komerční sféru (u nás ve firmě pracuje řada studujících), aby se studenti dostali do kontaktu s realitou. Pracovali na skutečných projektech, se skutečným zadáním, spolupracovali s již protřelými programátory atd.

Petr se mnou de facto souhlasil, ale tvrdil, že to je nemožné zrealizovat, že zájem firem není.

Dneska jsem poslouchal Java Posse #263 - Interview with Cay Horstmann (profesor na universitě), kde zazněla ona geniální myšlenka. Jak pracovat na reálném projektu, když firmy nemají zájem. No přeci pracovat na open source projektu. Cay Horstmann řekl, že mají na universitě předmět, jehož náplní je pracovat na již existujícím open source projektu (existujícím - dle výběru studenta). Student se naučí psát kvalitní kód, spolupracovat s kolegy, číst cizí kód, inteligentně se ptát atd.

Řekl bych, že tato myšlenka rozsekla onen pomyslný gordický uzel, který vznikl v diskusi mezi mnou a Petrem.

25. června 2009

Byl jsem na Scrum Master Training

A stal jsem se certifikovaným Scrum Masterem.

O tom, ale nechci psát, chci psát o tom jak moc bylo toto školení prospěšné a co vše mi přineslo. Školení vedl Boris Gloger, který se ukázal jako perfektní přednášející. Přednášenou oblast dokonale zná, nejenom z již uskutečněných školení, ale i z praxe. Navíc jeho skušenosti se zaváděním Scrumu byly hodně veliké, takže na jakoukoliv otázku byl velmi promptně připraven odpovědět a vždy si věděl rady. Opravdu perfektní školitel.

Školení bylo dvoudenní a konalo se na jihu Čech. Provedlo nás postupně všemi částmi Scrumu, které se Scrum Mastera týkají, o všem jsme si příjemně popovídali a řadu věcí jsme si díky šikovně vybraným cvičením i vyzkoušeli.

Co si ze školení odnáším? Především jde o to, že Scrum Master ze mě zatím nebude, protože vývoj softwaru mám moc rád a hodně těžko bych se bez něj obcházel. A Boris striktně nedoporučuje, aby Scrum Master byl zároveň vývojářem, protože Scrum Master má za úkol podporovat a chránit team před okolními vlivy a to by zároveň jako vývojář nemohl dělat na 100%.

Dále jsem si odnesl velmi důležitou část Scrumu a to: čím více jsou lidé z teamu zatáhnuti do možnosti určovat si práci, rozhodovat o ní jak ji udělají a kolik ji udělají (kolik stihnou udělat za následující sprint), pak se o to více snaží, aby to co slíbili také zvládli. Pokud to rozhodne někdo za ně, pak nebojují za svou čest, ale za čest někoho jiného a to se bojuje podstatně laxněji.

To jsou hlavní poznání, které mi školení přineslo. Pak jsem si ještě odnesl pár drobností: neohodnocovat požadavky (Story) pomocí člověkodnů, ale pomocí bodů (díky tomu, že se určí kolik bodů je schopen team zvládnout za jeden sprint, ví se kolik udělá požadavků), skvělá je metodika ohodnocování složitosti požadavků (opět to dělá team pomocí Planning Pokeru), team v jeden okamžik vždy pracuje na jednom požadavku (aby byl software co nejméně rozvrtaný a aby si vzájemně pomohl, protože chce mít požadavek co nejdříve hotový) atd.

Vřele všem podobné školení doporučuji, i když nehodláte být Scrum Master, ani nehodláte vyvíjet software podle Scrumu. Proč? Protože chytrých nápadů je ve Scrumu spousta a spousta se jich dá použít.

7. května 2009

Tapestry 5. 1 je mezi námi

A je to ... verze 5.1.0.5 prošla hlasováním a stala se finální verzí Tapestry 5.1. Co je nového? Především na straně výkonu aplikace bylo podniknuto hodně kroků: zrychleni vykreslení složitých stránek, sloučení více statických JavaScriptových knihoven do jedné, gzipová komprese statického i dynamického obsahu atd. (blíže viz. release notes).

8. dubna 2009

Google App Engine & Java + Groovy

Skvělé partnerství!

Od mé účasti na Google Developer Day 2008 jsem si říkal, že se musím na Python podívat, abych mohl Google App Engine vyzkoušet a ejhle, už nemusím. Google App Engine podporuje Javu a Groovy!

3. března 2009

Jak jednoduše v groovy implementovat rozhraní s jednou metodou?

Vše je až trapně jednoduché (např. FilenameFilter):


{ dir, name -> name.endsWith(".txt") } as FilenameFilter

Miluju jednoduché věci.

23. února 2009

Tapestry 5.1 - co se na nás chystá?

Pro ty co nečtou Howardův blog, přináším odkaz na zajímavý příspěvek týkající se novinek, které nás čekají v oblasti výkonu v chystané verzi 5.1.

Howard chystá zrychlení vykreslování stránek, především díky optimalizaci volání metod jednotlivých stavů komponent. Zrychlení se bude týkat i vytváření instancí komponent. V profileru Howard zjistil, že volání jistých metod se neustále při vytváření komponent opakuje, takže jejich vytváření bude rozděleno na dvě fáze: fáze analýzy a fáze vytváření. To pomůže stránkám s velkým množstvím komponent.

A co zrychlení na klientu. Context assets (soubory uložené v kontextu aplikace) budou moci být poskytovány pomocí URL, které bude obsahovat verzi a tudíž budou moci být agresivně cachovány (dlouhá doba expirace). Dále Tapestry bude podporovat kompresi posílanáho obsahu (snížení objemu přenášených dat), navíc se chystá cachování zakompreseného obsahu na servru, čímž se ulehčí procesoru od opakované komprese.

A to vše téměř bez porušení zpětné kompatibility. SUPER!

iPod Touch - nechám si ho, je super!

Tak už i já, a to jsem tak dlouho "odolával". Ale vezmu celý příběh hezky popořadě.

Na konci ledna mě zase po letech přepadla myšlenka, že nahradím svům aktuální mobil nějakým tím chytrým modelem. Samozřejmě, že první volba padla na telefon s Androidem. Ale pak jsem zjistil, že jediným dostupným je model G1 od T-Mobilu. Už jsem byl skoro rozhodnut, když mi kolega povídá, že by to nedělal, že to není moc hardwareově povedený mobil a že by volil raději iPhone.

Tak jsem začal své myšlenku ubírat tímto směrem. Ovšem bál jsem se koupit si tak velký telefon, nechtěl bych takovou "plachtu" nosit všude s sebou. Takže jsem zvolil variantu zkouška. Zašel jsem na aukro a vydražil jsem nový iPod Touch.

Je to 14 dní co jsem majitelem a jaký je závěr. Začnu negativní stránkou věci. iTunes fungují pouze pod Mac Os X a Windows. A výhody? Skoro všechny audio podcasty co poslouchám, jsou na iTunes a stahují se mi přímo do iPodu automaticky (pánové z CZpodcastu, je ještě co zlepšovat). Ale co spatřuji jako opravdu skvělou věc je sledování videa. Funguje skvěle, displej je prostě super. Dále jsem se pomocí pluginu do Firefoxu naučil stahovat Flashová videa ze stránek (jako YouTube a InfoQ). Ty jsem pomocí softwaru na konvertování videa pro iPod zkonvertovat do MP4, které je přehratelné na iPodu. A už mám konečně čas se na tato videa podívat (dřív jsem neustále řešil, kdy se na ně kouknu - v práci i doma to byla škoda času), protože cestou v autobuse je to docela příjemná zábava. Druhou skvělou funkčností je prohlížení webu, které přes wifi funguje opravdu super. Především čtení novinek v Google Readeru je promakané na jedničku s hvězdičkou.

Takže můj závěr. Jednoznačně mohu doporučit, jenom velká škoda, že iTunes nejsou i pro Linux. Ale jak dopadne rozřešení mého problému s telefonem? Asi počkám na nějaký Androidí telefon, protože iPhone bych musel jailbrakenout, abych do něj dostal všechen software co bych chtěl, což u Androidu není potřeba. Dále si spíš napíšu aplikaci pro Android než pro iPhone (jako javista).