1. Trust Your Ability!

    Think! Don’t follow!

  2. JFokus-summering

    SÄ var JFokus slut för den hÀr gÄngen, och jag tyckte det var en vÀldigt givande konferens. En utvecklar-hjord pÄ 650 personer (nytt rekord) gjorde att det blev lite trÄngt i korridorerna ibland, men i det stora hela sÄ var det ett himla lyckat arrangemang. HÀr Àr mina fem mest minnesvÀrda stunder:
    (LĂ€s mer…)

  3. KrisWorld

    NÀr man skall ge sig ut pÄ en lÄngflygning sÄ brukar man alltid oroa sig för att tristessen skall komma krypande efter en timme eller tvÄ. Oftast har man dÄ laddat upp med en kortlek, bok eller en liten spelkonsol. Annars fÄr man förlita sig pÄ flygplanets IFE (in-flight entertainment) system.

    En flygtur pĂ„ 12,5 + 8 timmar stĂ€ller dĂ„ vĂ€ldigt höga krav pĂ„ IFE-systemet för att man som passagerare inte skall bli rejĂ€lt uttrĂ„kad. Med förhoppningar om just detta, valde vi Singapore Airlines som flyger Airbus A380 pĂ„ strĂ€ckan London – Singapore – Sydney. Vi blev inte besvikna!
    (LĂ€s mer…)

  4. JFokus: Speaker’s Dinner

    En trevlig sak med att prata pĂ„ JFokus Ă€r att arrangörerna bjuder pĂ„ middag. Vanvettigt gott pĂ„ Fredsgatan 12, i kategorin ”hemgjort kvittengelĂ©, ingefĂ€rsinlagd rĂ€ttika, halvrĂ„ pilgrimsmussla med kardemumma, frostad löjrom och wasabikrĂ€m”. Som en halv special, fast tvĂ€rtom.

    En Ànnu trevligare sak med middagen var det fantastiska sÀllskapet. Löjligt smarta mÀnniskor till höger och vÀnster, med attityd och begÄvning. Oerhört roliga att prata med, Àven för en katt bland dessa hermeliner (som man onekligen kÀnner sig som).

    Ska bli kul att lyssna pÄ dessa mÀnniskors presentationer.

  5. Puke pÄ JFokus

    För en liten tid sedan skrev jag fulhackets lov i en bloggpost (Men fulhacka dÄ!). DÀr introducerade jag Dukes mindre kÀnda kusin Puke.

    Nu har jag och Tomas Trolltoft gjort ett litet lÀttsamt men sant femtonminutersföredrag pÄ detta tema. Detta kommer vi att hÄlla pÄ JFokus, nu pÄ onsdag 28 januari kl 15:10.

    VÄrat fina abstrakt finns tillsammans med bio och ansikten kan du avnjuta hÀr.

    Vi ses dÀr, eller hur?

  6. PDFRenderer och iText

    Detta blir inget djuplodande, utan bara ett kort och konsist tips för den som behöver hantera PDF med java.

    Vill du lÀsa, hantera, skapa, och förÀndra PDF-filer: se pÄ iText! Det Àr ett fungerande API för att göra allt detta med hjÀlp av java. Jag har anvÀnt det med framgÄng för att skala om PDF-dokument, sÀtta samman PDF-dokument, rita vattenstÀmplar, infoga dynamiska försÀttsblad mm.

    http://www.lowagie.com/iText/

    Vill du rendera XML, CSS, och HTML i form av PDF, sĂ„ titta pĂ„ ”The Flying Saucer” (Ă€ven kĂ€nt som ”xhtmlrenderer”). Det Ă€r en vĂ€g jag rekommenderar framför att anvĂ€nda Apaches ”FOP renderer” (som bygger pĂ„ XSL Formatting Objects. Om ditt projekt krĂ€ver XSL-FO, sĂ„ Ă€r naturligtvis Apaches FOP rĂ€tt vĂ€g att gĂ„, men om det bara rör sig om HTML eller XML till PDF (med hjĂ€lp av CSS istĂ€llet för XSL-FO) sĂ„ anvĂ€nd ”The Flying Saucer”.

    http://xmlgraphics.apache.org/fop/
    https://xhtmlrenderer.dev.java.net/

    Vill du visa PDF-filer i en swing-applikation (eller i en Applet, eller i en JavaFX-applikation) sÄ kan du anvÀnda PDFRenderer. Tre rader kod, sedan har du en JPanel som visar PDF, och gör det snyggt!

    https://pdf-renderer.dev.java.net/

  7. JSDoc- och licenshjÀlp med maven

    VÀrlden Àr full av möjligheter. Maven Àr fullt av plugins. De senaste jag stött pÄ som gett mig nytta Àr maven-license-plugin och maven-jstools-plugin. Den första Àr tillrÀckligt dokumenterad för att komma igÄng snabbt, den andra nÄgot sÀmre men fungerar.

    (LĂ€s mer…)

  8. MultitrÄdning i Java och C

    I mitt förra inlÀgg angÄende mitt Äterbesök i C sÄ var det ju en och annan som ville se lite C in action relaterat till multitrÄdning. Med detta i tanke tÀnkte jag visa lite hur man skapar trÄdar i Java och hur man gör motsvarande i C. Jag kommer att beskriva hur man skapar en trÄd i med hjÀlp av POSIX biblioteket som finns tillgÀngligt i de flesta operativsystem vÀrda sitt namn. All felhantering i koden nedan har jag medvetet skippat för att göra det lite tydligare.
    (LĂ€s mer…)

  9. Skriv IPhone applikationer i Java

    Det finns ett projekt som heter XMLVM som tar olika bytekod format och trollar om dom till ett mellan assembler sprÄk i XML. Detta mellansprÄk anvÀnder dom sen för att generera tex Objective-C kod.

    PÄ detta sÀtt kan man skriva en IPhone applikation i Java som man sedan kors kompilerar till Objektive-C. Men som vanligt med sÄna hÀr sprÄköversÀttare sÄ blir debuggningen omöjlig och felsökningen vÀldigt svÄr. Men om man nu fallit för IPhone hypen och köpt en telefon och samtidigt tycker att Objective-C stinker (för det gör det) sÄ kan man koda lite i Java istÀllet.

    Kolla in den hÀr lÀnken för mer info samt en video presentation: klicka hÀr
    (LĂ€s mer…)

  10. The Parallel Collector, Vi glömmer den yngre generationen

    Vi lever i en allt mer parallell vĂ€rld. Gamla applikationer vĂ€xer i storlek och krĂ€ver mer prestanda, mer minne och mer konfigurering. Den sista delen brukar ju de flesta ha koll pĂ„, gĂ€llande dess egna applikation och dess properties. Gamla applikationers hĂ„rdvara som tidigare kanske bara hade en processor har nu uppgraderats till flera processorer som i sig innehĂ„ller flera kĂ€rnor. Men JVM:n glöms av. (LĂ€s mer…)

  11. Intressanta workshops

    Nu börjar det fyllas pÄ med intressanta workshops och halvdagskurser under OpenEvent delen av Scandinavian Developer Conference. Varför inte passa pÄ nÀr du ÀndÄ Àr i stan för att gÄ pÄ Ärets stora utvecklarkonferens?

    Eller du kanske sjÀlv vill ordna ett OpenEvent under konferensveckan?

  12. Vad Àr tjusningen med JavaPuzzlers?

    Nu skall jag sticka ut hakan lite, och jag kommer nog fĂ„ nĂ„gra klockrena uppercuts misstĂ€nker jag… Punch away!

    NÀstan alla röster jag har hört frÄn branchkollegor och bloggare om fenomenet JavaPuzzlers Àr översvallande och överförtjusta. Jag har sÀllan sett nÄgot fenomen mottas sÄ ensidigt positivt! Det Àr fantastiskt att sÄ mÄnga har hittat nÄgot de gillar! Verkligen!

    Men för egen del sĂ„ upplever jag hela fenomenet som ganska underligt, och jag kĂ€nner ett rĂ€tt sĂ„ stort ointresse för sjĂ€lva problemtypen. Eftersom sĂ„ mĂ„nga i branschen tycker att JavaPuzzlers Ă€r det bĂ€sta sen skivat bröd sĂ„ har jag funderat en del pĂ„ varför jag inte tycker likadant…

    (LĂ€s mer…)

  13. return null?

    Efter lÀst en bok, Clean Code, har jag börjat reflektera mer över de fulheter som finns i legacy-kod som jag sett.

    Ett exempel pÄ en sÄdan Àr att returnera null frÄn metoder.
    Bra mycket snyggare att returnera t.ex. en tom lista eller objekt och risken att fÄ NullpointerException minskar ocksÄ.
    Sen sÄ fÄr man förstÄs byta if (obj == null) satser som if(obj,isEmpty()) eller passande för det som returneras till.
    Har man foreach-loop över returnerade listan kanske man inte ens behöver  det.

    Om return null signalerar fel kanske det Àr ett Exception man ska kasta istÀllet.

    Dock kan det vara svÄrt att Àndra i gammal kod som Àr uppbyggt med null-vÀrde by-design.
    DÀremot skriver man nytt har man oftast ingen bra ursÀkt att skriva return null;
    Det vore vÀl skönt att skriva defensivt med att alltid kolla om vÀrdet Àr null?

    Kan vara svÄrt att lÀra gamla hundar att sitta för jag hittar fortfarande nyskriven kod med return null och annan fulare kod.

  14. Google Code Search

    Det Àr sÀker mÄnga som kÀnner till Google Code Search men jag tÀnkte skriva om den lite ÀndÄ. Jag har sjÀlv kÀnt till den ett bra tag, men det Àr mest pÄ sistone som jag faktiskt haft mycket nytta av den. Nedan följer en lista pÄ nÀr det Àr bra att ha google code search:

    * NÀr man lÀr sig ett nytt API och vill veta hur det anvÀnds i verkligheten. (ibland lÀttare Àn att lÀsa dokumentationen)

    * NÀr man lÀr sig ett nytt API och vill se hur det Àr implementerat för att förstÄ hur man kan anvÀnda det pÄ bÀsta sÀtt.

    * NÀr man fÄtt en elak bugg och Àr sÀker pÄ att det Àr fel i API:et, dÄ kan man kolla implementationen och fÄ reda pÄ att API:et har rÀtt :-)

    All kod som finns pÄ google search Àr ju givetvis sÄdan kod som Àr öppen men de flesta bibliotek och framework man anvÀnder Àr ju oftast baserad pÄ nÄn form av öppen licens.

    Tips: NĂ€r man klickat fram ett stycke i en fil sĂ„ kan man trycka pĂ„ ”Outline” lĂ€ngst upp i toppen pĂ„ det vĂ€nstra fĂ€ltet för att lista alla funktioner och typer.

  15. ORM-godis frÄn JBoss

    Sist jag jobbade med Hibernate (var ett tag sedan tyvĂ€rr) sĂ„ sĂ„g jag inget stöd för det som JBoss nu ordnat med ”Easy Entity Versioning” – enkel versionshantering av bönor genom annoteringar. @Audited (var förut @Versioned men Ă€ndrades för att undvika förvĂ€xling med JPA:s @Version) tycker jag ser ut som ett vĂ€lkommet tillskott. Har ingen aning om det kommer dyka upp i nĂ„gon JSR för JPA. UtifrĂ„n Hibernates bugglista sĂ„ ser det ut som att det finns ganska mĂ„nga frĂ„getecken kvar att reda ut, t ex ”how to support bulk updates”. För enklare modeller (eller tidigare faser av ett projekt, prototyping) tycker jag det verkar lovande.