Posted by Hans-Jürgen Jacobs at 13:27 on Tuesday 4 July
Good news for those who weren’t able to attend JavaOne this year. Sun has made the audio and slides from the JavaOne Presentations available for download. [javalobby]
Tags: JavaOne 2006
Posted by Hans-Jürgen Jacobs at 22:00 on Friday 19 May
Het is snel gegaan, zo zit je bij een baseball wedstrijd en zo ben je de laatste sessies aan het bloggen. Het was een interessante, leuke en vermoeiende JavaOne. Bij elkaar hebben wij meer dan 30 sessies gevolgd en deze staan nog niet allemaal op deze blog. Het kan zijn dat een aantal nog worden uitgewerkt. Wij gaan jullie in ieder geval op 27 juni a.s. bijpraten over de JavaOne. Dit wordt een gecombineerde sessie met de deelnemers aan de SpringOne. Een uitnodiging zal binnenkort worden verstuurd.
Volgend jaar is de JavaOne op 8 – 11 mei.
Voor een overzicht van alle posts:
- General Sessies staan hier.
- Technische Sessies staan hier.
- BOF Sessies staan hier.
- Paviljoen staat hier.
Vrijwel alle presentaties zijn beschikbaar in de vorm van een pdf.

Tags: JavaOne 2006
Posted by eag at 16:46 on Friday 19 May
Tijdens deze JavaOne conferentie viel op dat er veel presentaties waren over Ajax, die zeer druk bezocht werden. Voor aanvang van de conferentie waren een aantal van deze presentaties al volgeboekt via de Schedule Builder. Dit gold ook voor de sessie ‘Introduction to AJAX’. Omdat de belangstelling enorm was, heeft de organisatie besloten deze sessie te herhalen op de vrijdagmiddag. Zodoende kregen wij alsnog de kans om geintroduceerd te worden in de wereld van Asynchronous JavaScript Technology and XML, tegenwoordig ook wel DHTML genoemd.
De presentatie begon met een demo waarin op hello world nivo een voorbeeld werd gegeven van hoe Ajax toegepast kan worden. In een eenvoudig stuk HTML werden twee input velden opgenomen, een postcode en een woonplaats. Vervolgens werd gedemonstreerd hoe je met Javascript asynchroon de woonplaats kan ophalen van een server. Hierna werd uitgebreid uitgelegd wat je kunt doen met het magic AJAX object XMLHttpRequest. Dit object wordt gebruikt om asynchrone http-requesten uit te voeren. Er zijn drie manieren om respons terug te geven: gewone tekst, HTML die via de DOM API ingebracht kan worden in de HTML die in de browser getoond wordt, en Javascript dat vervolgens uitgevoerd kan worden.
Nadat de hello world voorbeelden waren toegelicht, werd getoond hoe AJAX in de praktijk gebruikt wordt. Google Maps, Google Suggest en Housing Maps illustreren goed wat AJAX kan betekenen voor je webpagina’s. Tenslotte werd er nog ingegaan op de voor- en nadelen van AJAX, en werden de mogelijkheden met AJAX vergeleken met de mogelijkheden met desktop applicaties. Een aantal zaken die genoemd werden:
- AJAX is niet moeilijk. Er zijn tegenwoordig betere boeken over Javascript, en frameworks die het werken met AJAX makkelijker maken. Bijvoorbeeld Prototype en script.aculo.us.
- Issues in verband met verschillen tussen browsers worden weggenomen door frameworks.
- Desktop applicaties zijn beter als het gaat om snelheid en security.
De introductie in Ajax werd bijzonder goed gepresenteerd door Ben Galbraith, waarbij hij regelmatig interactie zocht met het publiek. Het was de moeite waard om hiervoor nog een uurtje langer in het Moscone Center te blijven.
(TS-4489)
Tags: JavaOne 2006
Posted by eag at 13:43 on Friday 19 May
Sinds Java SE 5.0 is JMX een standaard onderdeel van het Java Platform. De presentatie van vanmiddag begon met een introductie van JMX in het algemeen. In het kort werd uitgelegd wat MBeans zijn, hoe je die kunt registreren in een MBeanServer, en welke zaken je met MBeans kunt instrumenteren.
JMX wordt toegepast in:
- De JVM. Om JMX actief te maken is het nodig de JVM te starten met Dcom.sun.management.jmxremote. Vanaf Mustang is dit niet meer nodig.
- De JEE container. JSR 77 beschrijft het management model volgens welke vendors het J2EE platform moeten instrumenteren. Een voorbeeld van een J2EE server waarin support is voor de JSR 77 is Geronimo.
- JSE en JEE applicaties. Voorbeelden van toepassingen zijn: configuratie, monitoring en control.
In de presentatie werd verder nog dieper ingegaan op naamgevingsconventies, parent en child MBeans en best practices voor wat betreft design patterns.
Tenslotte werden er nog wat frameworks genoemd die ondersteuning bieden bij het het ontwikkelen met JMX:
- Op nummer 1 staat het Spring framework (de spreker was Rob Harrop van Interface21)
- Glassbox Inspector
- MC4J, een management client
(TS-1956)
Tags: JavaOne 2006
Posted by Hans-Jürgen Jacobs at 13:15 on Friday 19 May
In deze onderhoudende presentatie gaat Paulo Merson van het Software Engineering Institute vertellen over welke informatie in een software architectuur document hoort te staan. Na een korte introductie over architectuur heeft hij het over de verschillende views om naar een architectuur te kijken.
- Module view: How is it structured as a set of code units?
- Runtime view: How is it structured as a set of elements that have runtime presence?
- Deployment view: How are artifacts organized in the file system and how is the system deployed to hardware?
- Data model: What is the structure of the data repository?
Paulo laat zien hoe “eigen” diagrammen in UML tot uiting komen. Hij sluit af met een template voorstel voor een Software Architectuur Document en wat algemene tips. Het gaat tever om alles wat Paulo heeft vertelt hier te herhalen. De presentatie is beschikbaar op aanvraag (1.8Mb).
(TS-4619)
Tags: JavaOne 2006
Posted by eag at 11:04 on Friday 19 May
In Mustang zal de standaard API support bieden voor scripting, zoals beschreven in JSR 223. De meegeleverde ScriptingEngine in Mustang is Mozilla’s Rhino implementatie van JavaScript. Daarnaast biedt het framework de ruimte voor implementaties van ScriptingEngine’s door derden. Voorbeelden van toepassing van deze nieuwe API (javax.script package) zijn:
- customizable applications
- implementatie van business rules
In de sessie werd uitgelegd hoe je een implementatie van een ScriptEngine kunt opvragen bij een ScriptEngineManager. Een ScriptEngine kan een stuk script uitvoeren, vanuit de programmacode en / of een file. Via Bindings kun je parameters meegeven, of terugkrijgen. Bindings kunnen een globale scope hebben (beschikbaar voor alle ScriptEngine’s), of een engine scope.
Een ScriptingEngine kan de Compilable en de Invocable interface implementeren, hetgeen het geval is bij de standaard JavaScript engine. Met de Compilable interface kun je vooraf een stuk script één maal compileren, en daarna meerdere malen evalueren. Doordat op deze manier het script niet steeds opnieuw geinterpreteerd hoeft te worden, wordt de performance aanzienlijk verbeterd. De Invocable interface kan gebruikt worden om script functions te definieren, die daarna vanuit de Java programmacode aangeroepen kunnen worden.
In Mustang wordt ook het jrunscript tool meegeleverd. Hiermee kun je vanaf de command line (Java)script uitvoeren. Ook in deze sessie ontkwamen we niet aan de NetBeans promotions. NetBeans zal binnenkort JavaScript supporten.
Een aantal script talen waarvoor in de toekomst implementaties van de ScriptEngine te verwachten zijn:
- Groovy, JSR 241
- BeanShell, JSR 274
(TS-1382)
Tags: JavaOne 2006
Posted by Hans-Jürgen Jacobs at 10:45 on Friday 19 May
Tijdens deze sessie wordt ingegaan om de nieuwe mogelijkheden die zijn toegevoegd aan Mustang om het deployen van een Java Web Start applicatie eenvoudiger te maken. Er is een JavaScript mechanisme bijgeleverd die het in zowel IE als Firefox mogelijk maakt te achterhalen of en welke versie van Java is geinstalleerd en indien nodig de JRE gaat downloaden en installeren. Daarnaast heeft men op verzoek van de gebruikers het eenvoudiger gemaakt om een applicatie te updaten via het web. Er is voor Netbeans een Web Start module beschikbaar die het ontwikkelen en testen eenvoudiger moet maken. Tenslote kan de download groote worden verkleint door gebruik te maken van Pack200 compressie en de mogelijkheid van lazy downloading (pas ophalen wanneer nodig).
(TS-1319)
Tags: JavaOne 2006
Posted by eag at 10:39 on Friday 19 May
Vrijdagochtend stond als eerst de Sun General Session op het programma. John Gage verwelkomde ons en begon de sessie met een video met beelden van mensen die de afgelopen dagen op de conferentie rondliepen. Daarna werd tijdens de sessie teruggekeken, vooruit geblikt en er waren een aantal boodschappen.
Terugkijkend op de conferentie werd vermeld dat sommige technische sessies enorm druk bezocht waren, met soms wel 2000 tot 2500 toehoorders. De drukst bezochte sessies waren ‘Simpler, Faster, Better: Concurrency Utilities in JDK Software Version 5.0′, ‘Java Technology, AJAX, Web 2.0 en SOA’ en ‘Effective Java Reloaded’. Verder had John de gebruikelijke boodschappen zoals ‘Join the Sun Developers Network’.
Tweede spreker was Scott McNeally, die 20 jaar CEO bij Sun is geweest. Als eerste reikte hij de prijs uit aan degene die de ‘Bike to Work Week’ uit, een door Lance Armstrong gesigneerd t-shirt. Scott bracht verder onder de aandacht hoe groot Java inmiddels is geworden. Acht van de tien mobiele telefoons zijn Java enabled, er zijn inmiddels meer dan 5 miljoen Java developers. Homeshopping en thuisbankieren is een normale gang van zaken geworden. Onder het motto ‘Bridging the Digital Divide’ vertelde Scott overigens ook dat 3 van de 4 mensen op deze planeet nooit on-line is. De boodschap hier was ‘get everybody connected’, hetgeen nog een aantal keer herhaald werd gedurende de hele presentatie. Tot slot riep hij iedereen op lid te worden van een JUG.
De volgende spreker was James Goshling. James starte met een video, waarin allerlei prominenten uit de java wereld hun mening over hem gaven. Uiteraard had iedereen alleen maar positieve dingen over hem te melden. Hierna overhandigde James aan Scott de Golden Duke, omdat hij twintig jaar CEO is geweest.
Na dit luchtige gedeelte van de General Session, was het tijd voor wat technische demo’s. James nodigde een aantal sprekers uit die achtereenvolgens wat te vertellen hadden over:
- NetBeans 5.0. We kregen een demo te zien van de Jackpot Refactory Manager (zie ook elders in de blog). Er werd getoond hoe je zelf refactoring rules kunt schrijven, om bijvoorbeeld redundant cast’s te werwijderen.
- Alweer Netbeans 5.0. Deze IDE biedt ook support voor ‘Java on small devices’. Je kunt makkelijk Java ME applicaties bouwen, deployen en runnen.
- Alweer NetBeans 5.0. NetBeans biedt support voor de JSR 209: Advanced 2D Graphics and UI. En passent werd verteld dat je in Java ME nu ook met threads kunt werken, hetgeen gedemonstreerd werd met een mobiele telefoon.
- Alweer NetBenas 5.0, nu de GUI Builder Matisse (zie elders in de blog voor meer info).
- Java RTS 2.0 Real Time Garbage Collection (RTGC).
- Sun Java Real Time Application Server
Tenslote werd er een video vertoond van de uitreiking van één van de Duke’s Choice Awards, in de category ‘emerging technologies’. De winnaar had robot voertuig gemaakt met Java technology.
Tags: JavaOne 2006
Posted by Hans-Jürgen Jacobs at 22:00 on Thursday 18 May
Vanavond was de After Dark Bash met de jaarlijks terugkerende t-shirt hurling contest. Dit jaar mede gepresenteerd door de Mythbusters. De winnaars hebben een 6-shooter apparaat gebouwd die de t-shirts aan de overkant van de zaal. Verder was er nog de mogelijkheid om te gamen met een professionele gamer Johnathan “Fatal1ty” Wendel.

Tags: JavaOne 2006
Posted by Hans-Jürgen Jacobs at 14:45 on Thursday 18 May
In deze sessie worden wij via de hoofdzonden geleidt naar 12 beveiligings valkuilen. De achterliggende gedachte is dat iedereen zijn/haar acties moet begrijpen en weten wat moet worden opgebiecht. Een programmeur maakt fouten die de software in gevaar brengen:
1. Software security can be handled as a sequence of bugs
2. Failure to understand how the system works
3. Failure to consider what could go wrong
Hier volgen de 12 valkuilen uit:
1. SQL Injectection
2. Cross-site Scripting
3. Bad credential management
4. Bad error handling
5. Test code goes to production
6. Native methods
7. Concurrency/Synchronization
8. Missing access control
9. Bad Session Management
10. Cookies and other headers
11. Logging sensitive data
12. Trusting the configuration
Om deze valkuilen te voorkomen moet ervoor worden gezorgd dat beveiliging niet optioneel is en dat iedereen wordt opgeleid. Suggesties zijn: code review en test op beveiliging.
(TS-1660)
Tags: JavaOne 2006