5. October 2010

SpringSource Tool Suite 2.5 – Error: Method has the same erasure

Java kód, ktorý bol skompilovateľný pod SpringSource Tool Suite 2.3, už nemusí byť skompilovateľný pod 2.5.

Typická chyba: Method has the same erasure.

Problém spôsobí kód, kde sa využíva preťaženie ako:

getById(List <MyClass>, String name)
getById(List <MyClassDto>, String name)

Riešenie: opraviť kód alebo použiť STS 2.3.2.

12. July 2010

Letná programátorská súťaž AIR Mobile Contest 2010

Adobe v spolupráci s JuniorInternet vyhlásilo v ČR/SR súťaž AIR Mobile Contest 2010.

Súťaží sa o hračky s názvom Google Nexus One a ďalšie zaujímavé ceny.

S technológiami ako AIR2 alebo HTML5 sa dajú robiť skutočne zaujímavé kúsky:

Ak nemáte zatiaľ dostatok skúseností s vývojom RIA aplikácií, nenechajte sa odradiť, jednoducho sa prihláste na odber informácií RIA Edge.

19. February 2010

Robot Revue – časopis o robotoch a aj o Pythone

Minulý rok sa dostal na pulty novinových stánkov nový časopis – Robot Revue. Takýto časopis zameraný na robotov a robotiku na trhu už dlho chýbal.

Na internete nájdete veľa materiálov o tom, ako si postaviť a naprogramovať robota. Jediný problém je, že väčšina týchto materiálov je v angličtine. Robot Revue hovorí zrozumiteľným jazykom. Okrem technických noviniek, návodov a zaujímavostí, tu nájdete aj seriály o programovaní. Momentálne v časopise beží seriál o programovaní robotov pomocou Javy a Pythonu. ;-)

Ešte nemáte časopis Robot Revue predplatený? Tak to napravte. Študenti môžu získať pomerne výraznú zľavu.

2. June 2009

Ako myslí vývojár?

Synchrónne.

A to je zle?

Áno, veľmi zle.

To nie je možné!

Áno je to možné a naviac spôsobuje problémy sebe aj spolupracovníkom.

:-) Tak ako to teda je?

Zoberme si nasledujúcu modelovú situáciu, na ktorej sa mladý a nádejný developer učí v škole myslieť. Algoritmus je mu podaný, akože je to niečo ako repcet:

  • múku nasypeme na pracovnú dosku, pridáme cukor a citrónovú kôru
  • do stredu rozbijeme vajce a po bokoch navrstvíme nakrájané maslo
  • pomocou noža zmes premiešavame a sekáme, kým nevznikne hrudkovitá zmes
  • potom veľmi rýchlo rukami zmes spracujeme …
  • rúre vyhriatej na 180°C pečieme asi 10 minút
  • upečené vajíčka zložíme z plechov a necháme dobre vychladnúť…

Už vidíte, v čom je problém? Tak ešte raz. Tvrdím, že veľkým problémom vývojárov je ich sklon k synchrónnemu mysleniu. Ešte stále to nie je jasné? Tak pokúsme sa recept naprogramovať.

from com.samoobsluha import flour, sugar, lemonPeel
from my.refrigerator import egg, butter

def pecenieJeHrou():
   desk.add(flour.pour())
   desk.add(sugar.pour())
   desk.add(lemonPeel.getPiece())
   desk.add(egg.smash())
   desk.add(egg.smash())
   ...
   sleep(60*10)
   eggCollection = owen.getBackedEggs()
   while(eggCollection.isHot()):
       sleep(10)
   ...

Veď ale ten program funguje, tak kde je problém? Tak si to skúste na vlastnej koži. Dajte koláč do trúby a zaspite pri nej na 10 minút. Potom keď koláč vytiahnite, tak ho pravidelne čo 10 sekúnd testujte, či už je chladný. A pozor nesmiete robiť nič iné, pretože myslíte synchrónne.

Každá gazdniká by vás s takouto implementáciou pečenia presmerovala cez okno smerom na hnoj k sliepkam. Pretože keď už sa pečie, tak si predsa nastaví minutky a popri tom ide robiť niečo ďalšie. Napríklad umyje riady, ktoré sa pri pečení použili. A keď zazvoní minutka, tak skontroluje stav koláča, vytiahne ho z trúby a vráti sa späť k upratovaniu.

Áno, pozorný čitateľ, správne identifikoval v texte o gazdninke rafinovane ukrytý inotaj vo forme minutky a zvukového signalu. Jedná sa o Event Listener.

A čo z toho pre nás plynie: Každý deň napíšeme o jednu sychnrónnu funkciu menej a o jednu asynchrónnu viac.

  • 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