Access Keys:
Skip to content (Access Key - 0)
blog entry  2009/06/10
Last changed: 10 jun, 2009 21:38 by Signe Kongsgaard

Skulle nogen have bemærket en sitrende stemning et sted i nærheden af ITU, så er det fordi 36 studerende i disse dage bliver eksamineret af Jakob Bendsen og undertegnede (overtegnede?). Faget er BOSK, dvs det er deres andet fag med objektorienteret programmering.

Vi kommer vidt omkring i såvel Java som karakterskalaen. Alle er bestået og vi har givet en stribe flotte 12-taller. Af hensyn til de 12 som skal op i morgen kan vi naturligvis ikke røbe spørgsmålenes karakter, men vi har idag hørt om tråde, JDBC, et væld af design-patterns (og tak til en studerende der kom med et udemærket kaffebaseret eksempel på decorator-pattern omend han bør vide at det hedder eSpresso og ikke eXpresso) og så har vi upcastet og downcastet til vi var polymorfe i hovederne.

Alt i alt går det strygende. Vi har behagelig selskab af censor Finn Gustafsson, som var så venlig ikke at tage det ilde op, da Signe tabte hans morgencroissant ned i et glas vand. Stemningen er god. De studerende er dygtige og kun lidt nervøse. Vi nyder at snakke med dem på gangen i pauserne og især Jespers cykelstyrt på YouTube vakte begejstring. 

Nu er der én dags eksamen tilbage og på fredag vil undertegnede gå på 11 ugers orlov som mestendels skal tilbringes på Bali. Mon ikke jeg også runder Java nu jeg er i nabolaget? Det er næsten for oplagt en mulighed for at få "fod på Javaplatformen" :-) 

Posted at 10 jun @ 9:29 PM by user Signe Kongsgaard | comment 0 comments
blog entry  2009/06/09
Last changed: 09 jun, 2009 21:23 by Jakob Bendsen

Efter at have motioneret studerende på ITU gennem semestrets pensum hele dagen, var det tid til selv at blive motioneret. I een af de dejligt varme sommerdage i april, havde Jesper fået den idé, at vi skulle deltage i Computerworlds stafetløb i Ballerup. Dengang lød det som en fantastisk idé, og 4x2.5 km var vel en overkommelig distance. I løbet af dagen trak skyerne mere og mere sammen og efterhånden som regnen tog til, syntes ideen mere og mere tvivlsom. Men OK, L&B-løbetrøjen forventede at blive luftet, så afsted det gik til Ballerup sammen med datteren, som ikke lod sig hyle ud af regnvejret. Jesper, Kenn og Avlund havde alle trodset vejret og stillede også frejdigt op. De 4 x 2.5 km blev tilbagelagt i hæderlig tid - synes vi selv. Vi vendte rimeligt hurtigt snuderne hjemad efter gennemførelsen, men nåede at hilse på en del kunder og tidligere studerende fra RUC og ITU, så alt i alt var det en glimrende udflugt, som om ikke andet viser, at der skal mere end lidt regn til at skræmme IT-folket.

Posted at 09 jun @ 9:16 PM by user Jakob Bendsen | comment 0 comments
blog entry  2009/06/08
Last changed: 08 jun, 2009 09:27 by rasmus

Her de vigtige pointer, jeg fik ud af den sidste halvdel af Java One:

  • JAX-WS og Metro
    • Metro har support for rigtig mange forskellige sikkerhedskonfigurationer. Sessionen forklarede mange af dem. Harold Carr lovede at lægge figurer der forklarer principperne på [http://weblogs.java.net/blog/haroldcarr/ ] asap (det var nogle rigtig gode figurer)
    • Metro er testet grundigt mod MS-stakken (ligesom mange andre af Javas WS-stakke er). Jeg spurgte Harold, hvorfor alle Java-stakkene kun testede mod MS-stakken - hans svarede, at det var fordi, det var det kunderne efterspurgte (altså hvor godt stakken integrerer med .NET)
    • Det så ud til, at der allerede er rigtig god support for konfiguration af Metro i Netbeans, og et plugin til Eclipse er tilsyneladende på vej.
  • Filhåndtering i Java 7
    • Gode gamle java.util.File har aldrig rigtig slået til, hvilket der bliver der lavet om på med Java 7
    • Der kommer en række nye klasser, som gør det muligt at gøre alle mulige skumle ting med filsystemer - omend ikke alle operationer vil være supporteret af alle filsystemer
    • Et service provider interface (SPI) gør det muligt at implementere support for nye filsystemer
    • Det bliver fx muligt at flytte filer med en atomisk operation, det bliver muligt at tilgå alle mulige fil-attributter (fx owner, permissions mm.) og symbolske links bliver undersøttet
    • Det bliver nemmere at arbejde med stier (er fx automatisk opdelt i dele for hver mappe)
    • Der kommer også support for en smart visitor-funktionalitet (kaldet walkFileTree)
    • Man vil kunne registrere listeners på filer og mapper, hvis man er interesseret i at få at vide, hvis de ændrer sig (fx touch på fil eller ny fil i mappe)
  • Der var en spændende session om tuning og debugging af fil-IO. Sessionen handlede om et værktøj kaldet [JPicus ], som kan give en masse informationer om fil-IO på en JVM. Kræver blot JVM'en startes med en Java-agent
Posted at 08 jun @ 9:03 AM by user rasmus | comment 0 comments
Last changed: 16 jun, 2009 16:12 by Jesper Teglgaard Pedersen

Tilbage efter JavaOne, som har været en absolut inspirerende og motiverende oplevelse. Jeg har været til super interessante sessions præsenteret enormt pædagogisk (Best practices for Large Scale Web sites: Lessons from e-bay), men også på egen krop prøvet, hvor frustrerende det er at sidde til en hands-on session, hvor setup'et ikke spiller og øvelsesbeskrivelserne ikke passer i forhold til hvad man egentlig skal lave. Der er mangt og meget som jeg kunne vælge at skrive om. I stedet kommer et lille udvalg af oplevelser og tanker.

JSR: 314: JavaServer Faces 2.0

Den nye spec på JSF 2.0 lukker basalt set en lang række huller, der indtil videre har været håndteret af andre frameworks, eksempelvis Seam, Facelets og diverse JSF Ajax frameworks. Der er blandt andet kommet Ajax support (og dertil partial state saving) Forbedret exception håndtering, forbedret navigation, support for bookmarkable pages samt håndtering af browser back button problematik mm.  Dertil er der kommet håndtering af System Events, hvilket er virkeligt fedt. Det løser et par problemer som jeg det sidste halve år har været med til at løse på meget uskøn facon i en JSF 1.2 applikation. Man kan med system event listeners hooke ind i Application lifecycle og eksempelvis eksekvere kode før og/eller efter komponenttræet bliver bygget op. (Det specificeres ikke i JSF om dette foregår i restore view eller render response fasen, hvilket betyder forskellig opførsel i forskellige implementationer).

2 andre fede forbedringer er, at Facelets er blevet foretrukne view teknologi fremfor JSP sider, samt at hele konceptet omkring komponentkreering har fået en overhaling. Jeg fik indtryk af, at meget inspiration på dette punkt er hentet fra Facelets.

  

JSR 303: Bean Validation
Ikke noget banebrydende nyt i forhold til hvad jeg so fare havde Googlet mig til. Men fik dog introduceret en række ekstra annotationer med attributter som kan bruges til konfiguration af om bean attributter skal valideres ved søgninger, updates, deletes etc. Det fjernede så en bekymring jeg havde haft på CSC projektet inden afgang til San Francisco. Jeg fik mig desuden en snak med spec lead Emmanuel Bernard om hvordan bean validering integrerer med JSF 2.0 og JPA 2.0, hvilket gav stof til eftertanke i forhold til CSC projektet. Basalt set foretages validering i både web-lag og business logic. Rationalet er, at det giver så lille et performance overhead, at det ikke skader. Til gengæld bliver det meget nemmere at knytte valideringsfejl til JSF input felter. Desværre var det ikke helt som jeg havde ønsket mig, men nu må jeg hjem og læse CPR requirements igennem og se om det overhovedet er et stort problem.

Cross site scripting (XSS)
Torsdag hørte jeg en session om cross site scripting (XSS). Egentlig ikke fordi emnet overhovedet interesserer mig, men fordi web-udviklere/-konsulenter bør bekymre sig om XSS. Jeg fik præcist hvad jeg havde brug for. En forklaring af hvilke XSS-angreb jeg bør bekymre mig om, en gennemgang af do's and dont's og en præsentation af en række nyttige værktøjer.

JCP og JBoss fester

Mikkel og jeg smuttede tirsdag til JCP fest og minglede med de kendte. Mikkel skaffede Bill Venners underskrift og fik sig en snak med Gavin King. Jeg fik mig en snak med Ed Burns henover snack bordet og forklaret hvordan brødrene price mis(bruger hvidløg i Van Helsings navn. Interessant nok havde Ed kendskab til den årlige Californiske hvidløgsfestival men dog ikke deltaget endnu.

Torsdag var det så JBoss festen, der stod for skud. Vi rendte igen ind i Dan Allen (som også var til JCP festen). Dan og Kasper havde en længere snak om blandt andet Maven 2.0 brug og Seam. Sidstnævnte underviser Kasper i.

Posted at 08 jun @ 8:12 AM by user Jesper Teglgaard Pedersen | comment 0 comments
blog entry  2009/06/04
Last changed: 04 jun, 2009 09:44 by rasmus

Nu hvor de første 2 dage af JavaOne er vel overstået, er det tid til at gøre en lille status.

Oracle
Vi er stadig ikke meget klogere på, hvad det kommer til at betyde, når Oracles køb af Sun træder i kræft. Godt nok var Larry Ellison (Oracle CEO) på besøg - men det var ikke meget konkret han havde at sige. Han nævnte 5 ting, som man måske kan lægge noget i:

  1. Oracle har tænkt sig at bruge JavaFX til nogle af deres brugergrænseflader (JavaFX er en Java-baseret konkurrent til MS Silverlight og Adobe Flex). Dette kan måske tolkes til at Oracle synes JavaFX skal leve videre.
  2. Larry ville opfordre Open Office folkene til at bygge en JavaFX-baseret UI. Dette tyder yderligere på, at Oracle synes JavaFX er godt, og at de næppe har tænkt sig at sælge / dræbe Open Office
  3. Larry gjorde klart, at alt det Oracle bygger ovenpå deres database (al deres middleware), er baseret på Java (Fusion). Derfor ville Oracle selvfølgelig gøre alt hvad de kan, for at holde sundt og godt. Men om det betyder sundt og godt for ALLE, der bruger Java, eller hvad der mere præcist ligger i det - det ved vi endnu ikke noget om.
  4. Larry forventede også, at Java ville blive ved med at køre "everywhere". Som jeg forstår det, har Sun ikke tjent meget på Java SE og Java EE, mens de faktisk har tjent en del på licenser mht. Java ME - så det kommer næppe som nogen overraskelse, hvis Oracle vil holde fast i den del.
  5. Larry sagde også følgende ord: "Don't expect to see a lot of changes" - det vil jeg måske godt se, førend jeg tror det

De fleste jeg har snakket med, er dog ret sikre på, at både NetBeans og GlassFish går en yderst usikker tid i møde. Oracle har allerede deres eget Java-IDE (JDeveloper), og supporterer desuden Eclipse. På Java EE-serversiden, har de allerede WebLogic fra BEA og stopper udviklingen på deres egen OC4J - så de ønsker næppe en Java EE-server mere. Derfor er jeg ret sikker på, at Glassfish ikke kommer til at overleve. Hvad fremtiden er for fx Metro o.a. open source teknologier hos Sun, er jeg også meget i tvivl om.

Interessante bidder fra sessioner

  • Java 6 har introduceret en række værktøjer, som kan bruges til at inspicere en kørende JVM uden at genstarte den. Se fx kommandolinjeværktøejer som jps, jstat, jmap, jhat og jstack (findes i JDK'ens bin-mappe). Der er også det grafiske monitoreringsværktøj VisualVM, som erstatter JConsole. Ser alt sammen meget spændende ud.
  • Jeg snakkede med folkene bag Metro - og også nogle folk fra Microsoft. Begge parter siger, at man kan lave en Metro-baseret WS-provider, som kræver at WS-consumeren har en SAML-token med, og at man vil kunne bruge næste version af Active Directory (AD) til at producere en sådan - spændende, da rigtig mange allerede bruger AD til authentication. MS-folkene sagde i øvrigt, at de havde gode erfaringer med at få både Metro og Axis til at spille sammen med deres WS-stak, mens det fx stod noget mere trægt til med den WS-stak, der er indbygget i WebSphere.
  • Jeg har hørt på og snakket med spec-lederne for både EJB 3.1, JPA 2.0 og Java EE 6. Det har afsløret flg. interessante ting:
    • Der er opstået tvivl om, hvorvidt JSR-299 Web Beans http://jcp.org/en/jsr/detail?id=299 overhovedet bliver en del af Java EE 6. Den er på mange måder baseret på Seam, og jeg tror Gavin King har båret en stor del af den. Problemet er, at SpringSource og Google for 7 dage siden, har indgivet et konkurrerende JSR-forslag...
    • Java EE-folkene sagde, at jeg ikke skulle forvente, at Java EE kommer til at understøtte en programmeringsstil, a la det Fowler kalder en rigtig domænemodel. Java EE-folkene holder fast i det Fowler kalder en Anemic Domain Model er den bedste programmeringsstil - og de sagde lige ud, at Fowler er helt galt på den. Måske en lidt firkantet holdning set fra min synsvinkel - måske kunne man understøtte begge programmeringsstile, frem for at tvinge folk til den stil Java EE-folkene selv mener er bedst.
    • EJB 3.1 introducerer singletons (1 instans per JVM per app) som endvidere giver mulighed for at få kørt kode ved startup og shutdown af EJB-app'en.
    • Servlet-spec'en udvides til at understøtte asynkrone udgående kald - fx af andre web services. Det kan fjerne en del belastning fra servlet containerens thread pool, hvis de udgående WS-kald man laver er lang tid om at svare tilbage. Desuden laver de en del hooks, som frameworks kan hooke sig ind på, uden at man som web-app-udvikler selv skal tilføje en masse frameworkspecifikke ting i web.xml-filen. Derudover kommer man også til at kunne bruge annotations frem for deployment descriptors.
    • JPA 2.0 får en masse fede udvidelser. Bl.a. et criteria API, hvor entity-felter kan angives vha. en typestærk metamodel, der genereres vha. en annotationsparser under design time. Desuden kommer der diverse interessante og relevante udvidelser af mapping-delen, query-sproget og pessimistiske låsemekanismen. Der kommer API til integration med 2nd level cache, og der bliver indbygget support for den nye bean validation specifikation. En god del af det kender vi allerede var Hibernate, men jeg synes det ser ud til, at det er strammet en del op set i forhold til Hibernate - ligesom det også var tilfældet med de faciliteter, som var med i JPA 1.0.
    • Sidst - men ikke mindst - har jeg snakket med dem om schedulering, batch og tråde. Timer-service'en i EJB bliver udbygget, men med mit kendskab til scheduleingsbehov, mener jeg stadig ikke det er godt nok. Selvfølgelig er der mulighed for vendor-specifikke udvidelser. Der er slet ikke noget på vej mht. hjælp i retningen af håndtering af batchjob - fx mht. at skære dem ned i mindre bidder og fordele dem over et cluster endsige over flere tråde. Og platformen tilbyder stadig heller ingen standardiseret måde at starte tråde på, som fx kunne bruge til håndtering af store batchjobs.
  • Rod Johnson holdt en session om nyheder i Spring 3.0. Der var nu ikke meget i det, som jeg ikke allerede kendte til på forhånd. Det eneste er et nyt modul de har lavet til hugtig udvikling kaldet Spring Roo, som er baseret på kodegenerering - efter sigende inspireret af Rails, Grails og Seam. Det skal jeg i hvert fald have kigget nærmere på.
  • Jeg var til en session om avancerede ting i GWT. Den omhandlede både oprettelse af egne komponenter, kald af native JavaScript og en hjemmelavet drag'and'drop-ting. Det var dejlig simpel kode, der lå bag det. Jeg skal helt sikkert kigge meget mere på GWT - det ser fedt ud.
Posted at 04 jun @ 8:01 AM by user rasmus | comment 0 comments
Last changed: 15 jun, 2009 13:00 by Jesper Teglgaard Pedersen

De første dage i San Francisco inden JavaOne konferencen, har vi turistet den. Søndag kastede vi os ud i en sporvognstur fra Centrum til Fishermans warf efterfulgt af en cykeltur til og over Golden Gate og tilbage rundt i Golden Gate Park. Allerede efter denne tur er vi blevet klogere og kan drage en række konklusioner:

  • Sender man 7 Trifork og Lund og Bendsen folk afsted på en 35 - 40 km cykeltur vil et par stykker nå syregrænsen. 
  • Lombard Street som er kendt for dens store hældning skal IKKE nedstiges med 1 hånd på styret. Resultatet kan ses på Youtube.

Toppen af Lombard street var host for en mindre Geo Cache success. Team Hobbit and co was here!!!

  

Posted at 04 jun @ 4:34 AM by user Jesper Teglgaard Pedersen | comment 0 comments
blog entry  2009/06/02
Last changed: 02 jun, 2009 16:00 by Kasper Sørensen

Første dag på JavaOne var en blandet oplevelse - emnerne spandt fra (lidt for) detaljeret gennemgang af OpenSolaris' muligheder for at læse flash-harddiske, hvordan Terracotta kunne benyttes til at nedbringe database-roundtrips i Hibernate, bling-bling applikationer i Adobe Flex og så det for mig mest interessante: Hvordan Open Source software (OSS) havde udviklet sig de seneste 20-30 år. Sidstnævnte var en session med Simon Phipps fra Sun, der hed The Third Wave of Open: Open Source and Business Models. Simon Phipps præsenterede hvad man kan kaldte for 3 eraer i historien om OSS. Frit oversat var det noget á la:

  1. Pioner-tiden: Da OSS startede som en bevægelse, henholdsvis som en moralsk bevægelse hos Richard Stallman og et pragmatisk, kode-delings projekt hos Bill Joy.
  2. Apache-tiden: Da NCSA web-serveren overgik fra at være et individuelt projekt til at være et "sammenskudsgilde" med involverede fra hundredevis af server-administratorer fra hele verden - Hvad der i sandhed var "a patchy server".
  3. Ubuntu-tiden: Da det lykkedes at stable en forretningsmodel på benene og hæve Open Source fra en nørdet ting til noget, som en slutbruger også kunne forstå.

Til sidst lavede Simon en hurtig opsamling på Sun Microsystems OSS-historie. Jeg fik lejlighed til at stille ham et par spørgsmål vedrørende hvordan han mente at branding-strategien havde fungeret i Sun vs. andre OSS-firmaer. Sun har jo haft en strategi hvor deres projekter var ganske betydeligt mærket af at være brandet og styret af Sun og det har ikke altid været problemfrit ifht. communitiet. Andre firmaer (ex. Canonical eller Mozilla) har haft en mindre "corporate" branding strategi, men har muligvis også mistet kunde-tække på den konto? Hans umiddelbare reaktion var, at han gerne ville have gjort flere ting anderledes hvis han kunne gentage arbejdet hos Sun, men at han ikke mente at det havde været signifikant ifht. den overordnede linie de havde kørt med OSS.

Man kan se hele sessionen fra JavaOne som webcast på Sun's hjemmeside.

Posted at 02 jun @ 4:00 PM by user Kasper Sørensen | comment 0 comments
blog entry  2009/05/27
Last changed: 27 maj, 2009 22:06 by Jakob Bendsen

Velkommen til L&Bs blog

Her på bloggen vil vi løbende bringe artikler, indlæg m.m. af faglig interesse.

Posted at 27 maj @ 9:49 PM by user Jakob Bendsen | comment 0 comments
Adaptavist Theme Builder (3.3.6-conf210) Powered by Atlassian Confluence 3.0.2, the Enterprise Wiki.