27. June 2010

The show must go on! Alebo ako sa robí divadlo vo veľkom.

Je dobré poznať históriu. Človek tak môže získať väčší nadhľad na trendy a vývoj. Všetky tie kúl a skvelé veci, ktoré bývajú prezentované, vlastne nie sú ani tak nové, ani tak kúl. Občas vlastne vôbec nefungujú. Nezostáva nič iné ako improvizovať. Ale: The show must go on!

Ľudia majú krátku pamäť. Použijeme preto pamäť Youtubu, ktorá je trochu väčšia.

Píše sa rok 1997. Pozorne sledujte prehlásenia a myšlienky, ktoré autor prednesie hneď na začiatku. A porovnajte si to s chovaním, ktoré autor vykazuje dnes. Tiež si všimnite, ako nadšene publikum uvíta skvelé strategické rozhodnutia.

Poďme do histórie ešte kúsok ďalej – 1983. Trochu zábavy nezaškodí. :-) Za link ďakujem Tomášovi Lehutovi.

A občas sa nejaký ten skrčok dostane aj do prezentácie.

The show must go on! Publikum sa musí baviť. Napríklad South parkom ;-)

26. June 2010

Materiály zo zváračského kurzu z BarCampu

K dispozícii sú materiály z prednášky Zváračský kurz pre web – BlazeDS a Google App Engine vo formáte PDF.

V prednáške je spomínaných niekoľko zaujímavých odkazov:

25. June 2010

HTML5 na horizonte. Sú však k dispozícii nástroje?

Na horizonte sa črtajú nejasné kontúry HTML5. Sú však k dispozícii nástroje na prácu s HTML5, myslím iné ako Vim alebo Notepad? Koľko projektov neprežije jazdu po Gartnerovej Hype krivke? Kde sú skryté nebezpečenstvá HTML5, ktoré dokážu zožrať rozpočet menšej firmy? O koľko sa predraží vývoj v HTML5? Bude možné použiť silu dnešných nástrojov a prevziať funkcionalitu do HTML5? Alebo je to všetko len beh v hmle, ktorý je poháňaný politickými dôvodmi a manipuláciou s trhom? Ako to vlastne je a čomu veriť? :-)

HTML5 je na ceste. Kým dorazí, je dobré sa pripraviť. Nachystať si nástroje, ktoré zjednodušia adaptáciu a znížia mieru šoku z budúcnosti.

Cteného čitateľa si dovolím presmerovať na zaujímavé interview v on-line magazíne Edge – jún 2010.

Ako sa hovorí: Kdo chvíli stál, již stojí opodál. :-)

24. June 2010

Zváračský kurz pre web technológie bude aj na BarCampe

Radostná správa! 26.6. budem prednášať na BarCampe na FI v Brne.

Príďte povzbudzovať ;-)

A ako je dobrým zvykom, pre verných čitateľov blogu je nachystaný drobný bonus. Po prednáške sa za mnou zastavte s heslom: “Když něco rozeberem, tak leda debuggerem.” :-)

24. June 2010

Neviditeľnosť softvéru je závažný problém

Už ste si skúsili postaviť vlastný hadrónový urýchľovač? Takú stavbu si aspoň niekto všimne.

V softvérarskom svete sme na tom horšie. Môžete postaviť kompletné vesmírne stredisko a nikto si toho ani nevšimne. Ľudia vidia zo softvéru len jeho rozhranie. V tom bežnejšom prípade si ho všimnú iba keď nefunguje. Prípadne vtedy, keď im zlé zaoukrúhľovanie zožerie polku výplaty.

Skúsme sa na to pozrieť inak. Poznáte také mestá ako Košice (234 000 obyvateľov), Brno (383 000 obyvateľov), Považská (42 000 obyvateľov)? Prípadne dedinky ako Šanghaj (9 000 000 obyvateľov)?

Mesto má svoju štruktúru. Sú v ňom budovy s architektúrou, ale aj bez architektúry. Mesto rastie a mení sa. Tu ľudia niečo zbúrajú, tu niečo postavia.

A tak je to aj so softvérom. Vývojári zistia, že 10 rokov starý kód nevyhovuje požiadavkam, tak sa ho rozhodnú odstrániť. Musia postupovať opatrne. Celý proces je zložitý, pretože na tom kóde žije niekoľko stoviek klientských aplikácií. Jednoducho si nemôžu dovoliť len tak prísť a zdemolovať kus centra. Teda môžu, ale bude to mať svoje dôsledky a cenu.

Softvér so sebou nesie jeden veľký problém a tým je práve jeho neviditeľnosť. Ľudia si ho nedokážu predstaviť tak jednoducho ako mesto. Mestom sa stačí prejsť a človek získa aspoň chabý pocit, že sa tam vyzná.

Koľko vývojárskych hodín sa stratilo v uliciach systémov, pretože nikto nenechal prichádzajúcim turistom/vývojárom mapu? Veľa, veľmi veľa. Pritom každé väčšie mesto má nejakú tú turistickú kanceláriu ;-)

Tak ako mesto je živé, len pokiaľ sú tam ľudia, tak aj softvér žije, keď sa oň niekto stará. Existujú aj softvérové mestá duchov. Nič netušiaci okoloidúci vývojár do nich vlezie, pretože videl ceduľu: “Navštívte naše Sedmikráskovo, mesto kde zabudnete na pomalé web services.” Nadšený prísľubom lepších zajtrajškov vlezie do mesta. Scéna ako z westernu. Prázdne bloky modulov sa týčia okolo cesty. Napravo stojí rozpadnutý a hrdzavý message bus, ktorý už určite nikam nepôjde. Ľadový vietor si kotúľa po ceste kus balíka so slamou z XMLouvníku.

Vývojár nesmelo zavolá: “Hello world!” a najbližší blok modulov sa rozsype a zrúti sa strašným zadunením stack tracu. Strhne so sebou aj kus starého koloniálu s vývesným štítom: “Vedma G11 (TM), viem všetko aj o vašich skrytých dátach.”

Takto nejako by vyzeralo veľa softvérových produktov.

Dávnejšie som písal o jednej vizualizačnej metóde pomocou CodeCity. Zaujímalo by ma, či náhodou niekto nevie o nejakej ďalšej metóde. Myslím si, že keby bolo možné lepšie zviditeľniť softvér do obrazov reálneho sveta, tak by sa ľahšie odhadovala pracnosť a nebezpečnosť zmien.

22. June 2010

Ako zastaviť Google App Engine vo Windows na príkazovom riadku?

Testovací Google App engine server je možné naštartovať pomocou:

dev_appserver adresár

Ako ho ale zastaviť?

CTRL+C nefunguje, aplikácia zostane bežať.

Je potrebné použiť kombináciu CTRL+Break (Pause).

21. June 2010

Vyšla nová verzia Tour de Flex 2

Na stránkach Adobe Developer Connection je k dispozícii nová verzia desktop aplikácie Tour de Flex.

Obsahuje interaktívny prehľad komponent, ktoré technológia Adobe Flex obsahuje. Veľmi užitočný je aj prehľad komponent od komunity.

Aplikáciu je možné nainštalovať aj pomocou nasledujúceho odznaku:

Pre vývojárov pracujúcich na mobilných aplikáciách pridávam odkaz na Flex Mobile Framework.

20. June 2010

Skutočne zaujímavé série kešiek: Za šipkou a Klobúk

Niektoré geokešky sú skutočne tvorivé. :-)

Kúsok od Brna je séria 42 kešiek Za šipkou. Momentálne je disablovaná, ale snáď ju čoskoro obnovia.

Ďalšia zaujímavá séria kešiek je Klobúk, ktorá leží kúsok od Halenkova a Makyty.

Dávam klobúk dole pred autormi kešky Klobúk ;-)

Viete o nejakej ďalšej zaujímavej sérii kešiek?

19. June 2010

Príliš veľa vlastností zničí softvér

Á! Spravíme skvelý softvérový produkt! Super! Dáme tam autentifikáciu, notifikáciu smskami, spravím registráciu cez web formulár, kde bude administračné rozhranie. To všetko bude podporovať single sign-on. Samozrejme nesmú chýbať grafy na hodnotenie a reportovací systém, ktorý generuje všetko v PDF. Ešte to napojíme na možnosť platenia cez Paypal. Administračné rozhranie, na to nesmieme zabudnúť. Hlavne to musí byť user friendly. A ešte tam pravidelne sa budú zobrazovať výsledky z burzy a futbalových zápasov a bude tam podpora pre stromové vyhľadávanie v kategóriách. A to ešte napojíma na podnikový SAP. Hlavne tam ale musí byť táto enterprise komponenta, ktorá je totálne kúl a umožňuje generovať OLAP. A všetko to pobeží na cloude.

Uf?

Rozumiete tomu?

Za ako dlho dokážete vyvinúť takýto produkt?

Vážne, za ako dlho? Manažér sa vás pýta na časový odhad, tak mu nejaký dajte. Veď sa v tej oblasti predsa vyznáte.

Neviete? Ale veď je to úplne jasné. Fakt neviete? Za ako dlho sa dá vyvinúť takýto produkt? Rozmýšľajte, rozmýšľajte…

Ešte stále neviete?

Správna odpoveď! Uvedený príklad je dokonalou ukážkou feature soup. Pokiaľ začnete vyvíjať takýto produkt, tak si pripravte poriadny balík peňazí. Vlastne nie. Pripravte si dva. Jeden použijete na sponzorovanie vývoja a druhý si necháte ako rezervu na doťahovanie aspoň základnej sady vlastností.

V čom je problém?

Je to predsa tak jednoduché. Požiadavky uvedené na začiatku článku vôbec nie sú zadaním, je to čistý chaos.

Dobre, ale my potrebujeme nejako produkt vyvinúť. Čo s tým?

Jedným z možných prístupov je využiť princíp: Minimum feature set. V preklade: minimálna sada vlastností.

Pointou je zamerať sa na minimálne množstvo vlastností, ktoré sú kľúčové pre produkt a pracovať na nich.

Je dôležitá integrácia so SAPom? Prinesie nám niečo? Nóo to by bolo strašne kúl, ale nie. Preč s tým. Potrebujeme multidimezionálny OLAP? Nie? Preč s tým. Atď.

Proces minimalizácie nepodstatných vlastností  rozhodne nie je jednorázová záležitosť. Prehodnotenie by malo prebiehať opakovane, rádovo v týždňových iteráciach. Podpora pre minimalizáciu je často priamou súčasťou agilných metodík, ako napríklad SCRUM.

Dokonca aj Freddy Mercury na túto skutočnosť upozorňoval: Too much features will kill you.

I’m just the pieces of the manager I used to be
Too many bitter tears are raining down on me
I’m far away from goals
And I’ve been facing this alone
For much too long
I feel like no-one ever told the truth to me
About software and what a struggle it would be
In my tangled state of mind
I’ve been looking back to find
Where I went wrong
Too much features will kill you
If you can’t make up your mind
Torn between the products
And the marketing you leave behind
You’re headed for disaster
‘cos you never read the signs
Too much features will kill you
Every time
I’m just the shadow of the manager I used to be
And it seems like there’s no way out of this for me
I used to bring you sunshine
Now all I ever do is bring you down
How would it be if you were standing in my shoes
Can’t you see that it’s impossible to choose
No there’s no making sense of it
Every way I go I’m bound to lose
Too much features will kill you
Just as sure as none at all
It’ll drain the power that’s in you
Make you plead and scream and crawl
And the pain will make you crazy
You’re the victim of your crime
Too much features will kill you
Every time
Too much features will kill you
It’ll make your product a lie
Yes, too much features will kill you
And you won’t understand why
You’d give your life, you’d sell your soul
But here it comes again
Too much features will kill you
In the end…
In the end.

15. June 2010

Jednoduchá prechádzka po XML pomocou Pythonu

Taká užitočná vec, možno sa niekomu hodí. ElementTree pre Python obsahuje parser XML. V nasledujúcom príklade vyrobím zo stringu Element a následne nad ním spustím iteráciu cez for.

Je dôležité upozorniť, že find vracia prvky Element. Textový obsah z nich je možné vytiahnuť pomocou atribútu text.

Pokiaľ sa s tým chcete viac hrať, odporúčam použiť iPython shell, ktorý podporuje dopĺňnanie príkazov pomocou tabulátoru.

from xml.etree import ElementTree

xmlTest="""
<xml>
<person>
 <id>573280</id>
 <type>Supplier<type>
</person>
<person>
 <id>66172<id>
 <type>Customer</type>
</person>
</xml>
"""

tree = ElementTree.fromstring(xmlTest)

for person in tree:
    type = person.find('type')
    id = person.find('id')
    if type.text == 'Supplier':
        print "Supplier:",id.text

API k ElemenTree nájdete na python.org. Pre Debian je táto funkcionalita k dispozícii v balíčku python-elementtree.

  • Babel fish

      Translate from:

      Translate to:

  • Where’s the fish?

  • Further info

  • Twitter

    Follow @jurajmichalek on twitter.

  • Badges

  • Learning

    lynda.com online training tutorials
  • Tags

  • Topics

  • Comments