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:

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).

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?

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.

11. June 2010

OCR priamo z web kamery

Paráda. Pôsobivé.

Postavené na AIR 2. Ďalšie informácie na blogu Michaël Chaize.

10. June 2010

BlazeDS Introspection Error

BlazeDS je šikovný kus technológie. Ako to s IT technológiami chodí, tak obsahujú skryté chytáky. Tento stál za všetky drobné.

Nakonfigurujem BlazeDS (prípadne EngineDS, čo je upravená verzia pre Google App Engine), zvolím Connect to Data/Service. Flash Builder zobrazí dostupné služby.

Zaškrtnem vybrané služby a zvolím Finish.

Namiesto očakávaného prehľadu importovaných funkcií dostanem veľmi poučnú a usmerňujúcu chybovú hlášku:

Cannot refresh service. Destination ID and some other properties are missing for the service. Please delete this service, deploy the model (.fml file) in the server, and re-import it via Connect to Data/Service. Try importing by unselecting destination ProductService.

Há a čo teraz?

Prešiel som všetky konfiguračné súbory. Niekoľko krát som preveril messaging-config.xml, remoting.xml a stále nič. Po niekoľkých hodinách som úspešne našiel príčinu problému.

V nastaveniach projektu pod položkou Flex Server bol Context Root nastavený prázdny reťazec. Stačilo predefinovať Context Root a introspection zbehla bez najmenších problémov.

Jeden obyčajný znak ‘/’ a človek nad tým strávi niekoľko hodín. Typická softvérová enterprise chyba.

Chyba je nareportovaná na bugs.adobe.com. Som zvedavý, či na ňu zareagujú. 🙂

5. June 2010

Ako zabrániť inštalácii nežiadúcich balíkov na Debiane

Občas sa stane, že je potrebné nainštalovať balík. Ten ale pritiahne so sebou pár ďalších nechcených balíkov.

Nežiadúce balíky sa dajú zablokovať jednoducho. Do súboru /etc/apt/preferences pridáme nasledujúce riadky s menom balíku:

Package: openjdk-6-jre
Pin: version 1.0*
Pin-Priority: 1001

Ďalšie informácie na túto tému nájdete na stránkach Live in X.

4. June 2010

Materiály z prvého dielu Zváračského kurzu na BlazeDS

Ako som sľúbil, materiály nájdete v sekcii Prednášky. 😉

  • Where’s the fish?

  • Translations

  • Further info

  • Twitter

    Follow @jurajmichalek on twitter.

  • Comments

  • Tags

  • Topics