Klikk på tall for å vise stripe
Toon 1Toon 2Toon 3Toon 4Toon 5Toon 6Toon 7Toon 8Toon 9Toon 10 JavaZone JavaZone

 
(Hvordan lage) Sikre applikasjoner i Java ME

Abstract
Stadig flere applikasjoner finner veien til mobiltelefonen. Kundene forventer lik (eller bedre) sikkerhet på applikasjonen når den er på en mobiltelefon som når den er på en vanlig PC. Java ME er kjent for ha en svært strikt sikkerhetspolitikk med høy grad av ”sandboxing”, men er dette nok for å lage en sikker applikasjon? Hva er det egentlig som skal til for å lage en sikker applikasjon, og har Java ME det som trengs? Hva med "write once, run everywhere”?
Foredraget vil gi en oversikt over hvordan man lager sikre applikasjoner i Java ME med innslag av nyttige erfaringer og fallgruver.

 
Achieving greater code reuse through decoupling of feature implementations from the domain

Abstract:
In the last several years, I've taken a different approach to building software applications. Implementing various application concerns(1) generically(2) has enabled me to reuse the implementations across projects.
  • (1) concerns: such as forms construction, validation, ui navigation, search, authorization
  • (2) generically: in such a fashion that the implementation is decoupled from, or agnostic from the application's domain
Specifically, I have constructed a framework that enables a very high degree of reuse, whereby I reduce application development to little more than defining the domain. Where implementations of the persistence, user interface, and other concerns can be reused across differing applications. In this talk, I will be sharing with you my experiences with this approach, and the results it has yielded. Live demonstrations of the various reusable features will be given.

 
Adding Animation and Media to JavaFX and Java Applications

Abstract:
Rich Applications has achieved a new degree of sophistication with requirements to add multimedia and animation. With the introduction of the new JavaFX SDK and Java SE 6 update N, it is possible to incorporate the newer elements of a very rich client application into new and existing Java applications.
Attend this session to get a very brief overview of the JavaFX programming language and the animation and media APIs that make it possible to create some sexy looking GUIs which was hitherto difficult in Java.
After attending this session, attendees will walk away with a good understanding of JavaFX and Java SE 6 Update N and how to incorporate the features, such as audio, video and animation into their applications. They will also get an idea of the deployment options i.e. applets or applications.

 
Agility at Scale - Using Team Concert in a Globally Distributed Team

Abstract
The Jazz technology platform and IBM Rational Team Concert are developed by a team spread over eight sites and multiple time zones. The development is done using Agile practices based on the "Eclipse Way." For over a year our team has been using IBM Rational Team Concert to develop the product itself. This talk sheds light into how this is done and discusses best practices for using scaling up agility in a globally distributed team.

 
Amazon EC2 – Grid på 1-2-3

Thomas J. Watson (sjef for IBM ) skal ha sagt: "I think there is a world market for maybe five computers”. I tiår har folk ledd av dette utsagnet. Amazon lanserte i 2006 en løsning for ”Elastic Compute Cloud (EC2)”, dvs. virtuelle maskiner til leie. Fortsetter utviklingen med stadig mer bruk av EC2 er det ikke sikkert at Watson tok så feil…

 
An affair to remember - technology and user experience

Many developers find the user experience uninteresting. "It's easy. Just skip the interface design phase and make everything beige. You can't go wrong with beige", some might think. This presentation will look at the theory behind great user experience. We will cover and kill some myths, talk about conventions, intuition and user intentions, as we go through the "classification process model" and give an overview of the laws of interaction design.

 
Better Domain Driven Design

One of the core principles of domain driven design is that it should be focused on the domain and it’s logic, rather than the technology used to implement the system. However, many projects using the domain driven approach get tangled up in the technicalities of software development which increases complexity, reduces velocity and hurts both maintainability and reusability.
In this talk I will demonstrate how to employ software engineering principles like "Don’t Repeat Yourself" (DRY), the single responsibility principle, separation of concerns and many more to keep attention on the model and at the same time cater for the concerns that clutter the designs of many domain driven solutions.
After attending this talk, you should have a better understanding of how to separate your infrastructural con- cerns from your domain logic, build adaptable domain models that fit into many usage scenarios and keep those models maintainable throughout the entire project life-cycle.

 
Beyond the hype: OSGi in practice

Abstract:
Modularity, versioning and dynamics make OSGi an ideal candidate for deploying and running Java applications, whether small or large. However, nothing comes for free and, like in any other environment, there are "do"s and "don't"s.
In this session, we'll start by looking at OSGi (plus HK2 and JAM while we're at it) and then focus on some of the challenges that one might encounter when developing an enterprise application (containing web and data tier) in OSGi and how they can be addressed, using the lessons learned in Spring Dynamic Modules project and SpringSource Application Platform.

 
Building the Big Brother of the Java Virtual Machine

Abstract
Did you ever want to be the Big Brother of the Java Virtual Machine? Being able to do non intrusive monitoring of method calls without access to the source code, performing this in a production environment without a noticeable performance hit?
Do you want to know who is doing what to whom, that is, who invokes what method in context of which principal? Making certain that memory consumption is dynamically adjusted to avoid out of memory situations? Would you also like to use it in your legacy applications running pre Java 5 as well as utilize the new Java agent interface of the newer JVMs?
You know you have to collect vast amount of data and process it effectively and in real time. Finally you figure out that the amount of data exceeds the capabilities of a traditional data model and you decide that the only solution is a dimensional data model, using MDX for multi dimensional analysis.
There are numerous tools available for profiling and measuring your Java programs. However these tools are either: a) aimed at profiling or measuring your code in a development environment; b) expensive; c) not open source; d) requires a Ph.D. in debugging and profiling e) any combination of the above :-)
Usemon (usemon.org) attempts to alleviate this by providing an open source tool which is easy to use, collects data from environments based upon Java 1.4 through 6, has a flexible dimensional data model stored in a SQL database and attempts to be non-intrusive.
Usemon hooks into the Java virtual machine through a modified class loader on older JVMs or via the Java Agent Interface from version 5 and up. It automatically monitors Java EE components (EJBs, Servlets, MDBs, Queues, SQL Statements, etc), but can be configured to inspect any class in your JVM. Data is multicasted from agents to one or more collectors and stored in the DBMS of your choice. Usemon comes with a complete configuration for MySQL.
The overhead of running Usemon is negligible and thus you may collect run-time statistics around the clock all year, which is rather fascinating, given that you have enough disk space.
Usemon was developed for large Java EE environments at Telenor, which is one of the worlds largest telco to fulfill these requirements. You may utilize it in any environment in which you have control over the Java Virtual Machine start up parameters. For example Java EE applications, Spring based Web applications or simply your own home grown web application packaged in a .war file.

 
Bytecode Manipulation in the Real World

Abstract:
Byte code manipulation has become increasingly popular over the last years. It is used by JPA implementations, application servers, AOP libraries, web frameworks, monitoring systems, profilers, clustering solutions, scripting languages, workflow engines, and much more. In fact, most of today's applications will most probably rely on byte code manipulation, often even without realizing.
Application developers however seem to be overly careful and often frown upon byte code manipulation as an arcade art that is risky and difficult to understand. This presentation will show you that it's easier than you think. We'll go over concise examples that illustrate the concepts. Distinct patterns, coming from different domains, will give you ideas about adopting byte code manipulation for your own products. You'll learn arguments to reassure skeptics and see how the manipulation can plugged into your tool chain. We'll finish off with tips and tricks to write maintainable code with the ASM library.
After this session you'll see byte code manipulation as another tool in your arsenal and you'll have a good picture of how to start using it yourself.

 
Clean Code III: Functions

Get ready for a challenge as Robert Martin dives deep into the topic of clean Java code by examining what makes a good function.

 
Comet: Ajax-push med Jetty og Dojo

I HTTP-protokollen er det i utgangpunktet alltid klienten som initierer forespørsler. Men hva gjør du hvis en hendelse oppstår på serveren og du trenger å informere en eller mange klienter om dette så fort som mulig?

 
Comparing IoC containers (Spring, Guice, Tapestry 5 IOC, HK2)

This session will compare a range of popular IoC containers. The containers that will be compared are: Spring, Guice, Tapestry 5 IOC, HK2

 
Comprehensive Project Intelligence: Apache Maven, Nexus, Hudson and m2eclipse

Many view Apache Maven in the context of other build tools such as Apache Ant and Apache Ivy, yet Maven’s functionalities extend far beyond the efficient, enterprise-class project build. When coupled with supporting tools like Nexus and m2eclipse, Maven starts to accelerate development by reducing the level of work required to support build management and cross-department collaboration.

 
Concurrency and Performance Reloaded

Both Intel and Microsoft have recently said that we, as developers, need to start delivering more concurrency in our applications. The biggest obstacle to delivering more concurrency is the need to share data between threads.

 
Creating an assisted music composition application using a Topic Map driven Java model

Some of the promises of Topic Maps, is the possibility of being able to easily structure and rearrange the model, as well as placing semantics where they are needed. Implementing such a dynamic and rich model, is not easy with an Object Oriented language like Java.
The proposition of the authors, is that one can assist composing a song from audio fragments with the help of simple heuristics. Given that the audio is tagged with human recognisable information such as verse, refrain, lyrics, speed, starting and ending points. Storing such diverse information in a Topic Map is fairly trivial, but creating a dynamic Java model which can represent this is not, and the talk will discuss this topic further.
The audience will be introduced to simple concepts of Topic Maps and music composition theory. The talk will finally present Vaudeville, the deliverable of the Customer Driven Project, made by students at NTNU. Vaudeville showcases Java technologies, assisted music composition and other concepts behind the project.

 
Creating attractive clients with NetBeans Rich Client Platform

Abstract:
Engineer tools like the familiar IDEs (Eclipse/IDEA/NetBeans etc.) have user interfaces increasingly different from office tools like Microsoft Office. When creating applications for end users it is important to aim for the look and feel this group is comfortable with rather than what would be intuitive for the engineer. At Exie AS we have developed an open source Swing look and feel component that dramatically simplifies this task.
Just as it is important to utilize frameworks to improve productivity when developing web-based solution, so is the case with rich clients/desktop applications. A significant part of a desktop application consists of UI and IO plumbing. When should various menus, buttons and tool bars be enabled? Flexible docking frameworks, user preferences etc. There are various RCP frameworks available, however for a Swing based client the NetBeans RCP is perhaps the most complete.
How to create an NetBeans RCP client and make it look like a member of the Microsoft Office package? It is quite easy, and I am going to show you how.

 
Design Sense - Cultivating Deep Software Design Skill

Software development is hard. It takes years to become a good developer and many more years to become an expert. How much of this time is necessary? Are there any shortcuts?

 
Dokumentasjon uten pistol - går det an?

Alle er enige om at dokumentasjon i systemutviklingsprosjekter er nødvendig. De fleste synes det er et kjedelig arbeid og vil heller gjøre andre ting, som f.eks. programmering. Mange skriver lange dokumenter som blir liggende bortgjemt i skuffer og kott uten å bli lest. Kanskje heldigvis, siden dokumentene ofte blir utdaterte over tid og dermed blir både ganske verdiløse og direkte skadelige.
Dokumentasjonsarbeid er tradisjonelt både kostnadskrevende og lite lystbetont arbeid. Hvilken type dokumentasjon er den viktigste? Hvordan kan vi gjøre det både enklere, billigere og mer motiverende - og ikke minst, mer anvendelig?
Dette foredraget gir noen refleksjoner rundt temaet med konkrete eksempler på hvordan dokumentasjonen kan gjøres mer levende gjennom en wiki integrert med andre utbredte støtteverktøy som Subversion og Maven. Vi ser også litt på modellbasert dokumentasjon med UML, hvordan krav beskrives i brukstilfellemodeller, og hvordan arkitektur kan dokumenteres.

 
Dynamic languages and frameworks in an enterprise application server world - an approach with GlassFish v3

Abstract
Dynamic languages and frameworks come in different shapes and forms but they all get attention from architects looking at providing application agility and better development speed while preserving the systemic qualities of more traditional runtimes (scalability, manageability, etc...)

 
EDR-MDS "a less is more approach to SOA Master Data Management"

Abstract
Service Oriented Architecture is all over us. There seems to be some kind of consensus that one type of SOA services are services that are responsible for the core business objects - and vendors are monitoring and releasing their SOA Data Server products to close the gap. By pioneering the SOA space with EDR, we have gained lots of valuable of experiences of how to solve the Master Data challenges in SOA. This talk will discuss the main contenders for the ownership of your business objects definitions, and comment on their consequences - and then follow up with a "less is more" approach to enable companies to gain the combined advantages of all the platforms by extending the EDR pattern to also include Master Data Service (MDS) features.

 
Easy and maintainable enterprise testing with Unitils

Unit testing has become a mainstream task. Most developers do it. Most project leaders and architects expect their team to write tests. However, practice has taught us that a lot of teams write few tests, or spend too much time writing and maintaining them. Different development teams make common mistakes, run into similar issues and find their own solutions for them. This costs a lot of valuable time.

 
Effektiv kunnskapsdeling – kanskje den viktigste nøkkel til suksess?

Abstract
Utdanning og kompetanseheving er en kontinuerlig prosess, kanskje mer i IT bransjen enn i noen annen bransje. Nettopp derfor er det så viktig at kunnskapen formidles på en slik måte at alle har de beste mulige forutsetninger for å lykkes med å lære. Ulike roller og bakgrunn er med på å skape et komplekst bilde med lærende og lærere.
Gjennom foredraget trekkes det paralleller mellom kunnskapsformidling internt i bedrifter, eksternt til kunder og til Bachelor studenter. Det pekes på utfordringer og muligheter knyttet til kunnskapsformidling og hva slags lærdom man kan ta med seg fra de ulike vinklingene. Man går også i dybden på den forskningsbaserte undervisningen som er et påkrevd fundament for alle høgskoler i Norge i dag og ser hvordan forskningsbasert opplæring kan være med på å gi kunnskapsøkning i bedrifter en ny dimensjon. Praktiske teknikker presenteres for å gi tilhørerne et konkret ”produkt” å ta med seg tilbake til egen hverdag.
Gjennom presentasjonen settes det fokus på teknikker som forskningsbasert undervisning og hva det vil si både å gjennomføre dette, men også hva man får ut av det. I tillegg vies det blant annet tid til å se på prosjektbasert læring og prinsipper rundt scaffolding (stillasbygging).
Norges Informasjonsteknologiske Høgskole (NITH) utdanner Bachelor studenter innen informasjonsteknologi og driver med forskning innen flere områder blant annet for å gi grunnlag for innovative og aktuelle utdanninger. NITH er den eneste høgskolen i Norge som har spesialisering på JEE5 og EJB 3.0 for sine programmeringsstudenter. I Mesan AS er det daglige utfordringer knyttet til kompetanseoverføring til kunder og andre eksterne aktører i prosjekter. Formidling av kunnskap er en av suksessfaktorene både for å kunne ha dynamiske, fungerende team og likedan for at man skal kunne ha en inkluderende dialog med kunde.

 
Effektive samarbeidspraksiser for kravhåndtering

Abstract
Deltakerne på denne sesjonen vil få innsikt i praksiser for effektivt å kommunisere og prioritere krav, estimere kostnader og gjennomføre utviklingsprosjekter. Ettersom dette er temaer uten fasitsvar legges det opp til mye diskusjon og interaksjon.
Programvareprosjekter mislykkes ofte med å levere lovede resultater, og kostnadsoverskridelser er en stor og hyppig utfordring. Mangelfull kravhåndtering er ofte en underliggende årsak til disse utfordringene. Det finnes imidlertid en rekke indikasjoner på at gode samarbeidspraksiser kan redusere omfanget på problemet. Det har vært anslått at samarbeid og kommunikasjon utgjør opptil 70% av den totale tidsbruken i programvareprosjekter, og å anbefale en høy andel av samarbeid og kundeinvolvering er derfor ikke noe nytt. Utfordringen er imidlertid å identifisere hva som utgjør et godt samarbeid, og hvordan dette kan oppnås.
Mange utviklingsorganisasjoner benytter seg i økende grad av iterative og inkrementelle prosesser, for eksempel Scrum. Imidlertid har også de smidige prosessene, og andre prosesser slik som RUP, mangler når det gjelder å involvere sentrale aktører som kunder, interaksjonseksperter og brukertestere. De iterative og inkrementelle prosessene er unektelig bedre utrustet enn de sekvensielle prosessene (fossefall) når det kommer til å håndtere disse behovene, men de er samtidig også langt mer innstilt på å tilfredsstille behovene til utviklingsteamet.
Denne sesjonen skisserer samarbeidspraksiser vi mener øker sjansen for verdiskapning i utviklingsprosjekter. Hovedfokuset er praksiser for å:
  • Definere en prosess som forbedrer prosjektgjennomføring
  • Kommunisere og samarbeide om kravhåndtering og forretningsprioritering
  • Samarbeide om estimering og planlegging
Et overordnet prinsipp for diskusjonen vil være å skissere et rammeverk for kravhåndtering som illustreres gjennom en kommunikasjonspyramide. Denne pyramiden skiller mellom fem generiske nivåer for kommunikasjon om krav, som er nyttig i de fleste prosjekter. Disse er:
  • Forretningsmål
  • Overordnede krav
  • Detaljerte krav (f.eks. brukerhistorier)
  • Utviklingsoppgaver
  • Kildekode (f.eks. konkrete funksjoner)
For hvert nivå presenterer vi en oversikt over hvilke roller som typisk bør være involvert i kommunikasjon og samarbeid. Rollene som diskuteres inkluderer sluttbrukere, kunder, interaksjonsdesignere, utviklere, testere og prosjektledere. Det blir også presentert erfaringer fra et pågående forskning- og utviklingsprosjekt innenfor området.

 
En kort historie om nesten alt fra et smidig prosjekt

Abstract
Ved hjelp av rollespill vil Rasmus og Vidar dele sine erfaringer fra et smidig prosjekt. Sesjonen kommer til å bli delt i to:
  • I første del vil Rasmus og Vidar kronologisk fremføre prosjektets historie fra unnfangelse til realisering. De kommer til å demonstrere teknikker som er blitt brukt og hvordan disse passer inn i et smidig tankesett.
  • Tilhørerne oppfordres til å notere seg emner som ønskes diskutert under del 1. Dette kan være emner man lurer på, ønsker videre utdypet, er skeptiske til eller forslag til andre teknikker. I del 2 diskuterer vi disse temaene i plenum.
Noen stikkord: Kommunikasjon, brukerhistorier, estimering, prioritering, risikohåndtering, leveranseplanlegging, retrospektiv med mer.

 
End-to-end Continuous Integration

Abstract
With agile methodologies gaining adoption, organizations are quick to setup their CI infrastructure. Yet they soon realize that having a full CI strategy involves more than just a CI server. When is code being reviewed? Should the build break if a unit test fails? How to solve integration issues? Does your process need to go all the way up to releasing to production? In this Bird-of-a-Feather session we will share our experiences addressing these and more questions in large scale enterprise environments.

 
Enterprise-utvikling med Seam og JBPM

Abstract:
Mario Aparicio og Eirik R. Larsen fra Ciber presenterer erfaringer med bruk av webrammeverket Seam og prosessmotoren jBPM.
VRVask er et system utviklet av CIBER Norge for validering, manuell korrigering, og rapportering av store antall banktransaksjoner. Systemet er todelt og består av en batch-applikasjon og en web-applikasjon som kommuniserer gjennom en felles database.
For utvikling av web-applikasjonen ble webrammeverket Seam valgt. Bakgrunnen for dette valget er Seams abstraksjon av request / response modellen og støtte for lange brukerinteraksjoner, conversations. Batch-delen av løsningen ble utviklet som en standard Java-applikasjon med Spring og Hibernate.
Vi opplevde Seam som et godt valg av rammeverk for web-løsningen da det gav enkel integrasjon mellom webgrensesnitt, domene og database. På enkelte områder støtte vi imidlertid på utfordringer som muligens kunne vært løst bedre med andre rammeverk.
I utviklingen av batch-løsningen var Spring og Hibernate velegnede rammeverk for håndtering av database og dependency-injection. Derimot fikk vi problemer med håndtering av tilstandslogikk i batch-prosessen. Kompleksiteten ble undervurdert, og vi endte opp med å lagre tilstand i databasen og håndtere all tilstandslogikk programmatisk. Løsningen ble derfor vanskelig å utvikle og vedlikeholde. Etter å ha analysert problemene i batch-løsningen så vi at en prosessmotor med fordel kunne brukes for å håndtere tilstand. Vi valgte å se på prosessverktøyet jBPM da dette er et mye utprøvd verktøy som fungerer bra i et Java-miljø. jBPM er i tillegg godt integrert med andre JBoss-produkter som Hibernate og Seam.
I presentasjonen beskriver vi positive og negative erfaringer med Seam i prosjektet og drøfter når det er fornuftig å bruke dette rammeverket fremfor andre web-rammeverk. Videre presenterer vi hvilke fordeler vi kan oppnå ved å bruke jBPM, og hvilke alternativer man har når man skal innføre et slikt verktøy i tilstandsfulle applikasjoner. Til slutt vil vi fremføre eksempler fra opprinnelig løsning og løsning med jBPM.

 
Environment aware spring context

Abstract:
When the Spring framework hit the marked, it revolutionized the way we build our applications. Dependency injection, and inversion of control became well known terms, and it is difficult to imagine how we managed without them. But there is one aspect of the Spring framework that has been fiercely discussed for a long time; What is the best approach to configuring our applications for deployment in multiple environments?
I have struggeled with this problem since my first encounter with the Spring framework, and over the years I have tried just about all the techniques there are. Some of them turned out to be bad - some of them turned out to be really bad. In this talk I will go through some of the techniques and approaches I have tried, and discuss their strengths and weaknesses.
Based on these trials and errors, I have put together a framework that aims to enhance the Spring container - enabling it to be differently configured for different target systems. I will demonstrate how you can use this framework to make your applications dramaticly easier to configure, easier to test, and less prone to malconfiguration in production and test environments.

 
Experiences from using JSF, Spring Webflow and Ajax as a platform for rich web-applications

Through a project at NAV (The Norwegian Labour and Welfare Administration) for the pension program the presenters has significant experience using JSF, Spring Web Flow and AJAX as a platform for rich web-applications. The project is one of the largest java projects in Norway, and the presenters have been working with development of the new self-service application, and clerk administration application for NAV.

 
Extending Continuous Integration: Implementing a full value chain from development to production in Java EE

Development is about more than writing code. It is even about more than writing tests! In order to produce something of value, we have to deliver reliable software into production. In an organization where the consequence of failure is great, we need to make sure that what we deliver works as intended. At the same time, even in a seemingly static world, many problems are hidden until the very end of the project. To make matters worse, complex technology and organizational processes inhibit our ability to act to new information with sufficient speed.
The talk shows how we can implement a rigorous, yet agile process. It is based around our experiences of putting the good idea of continuous integration and other agile methods into life and using this as the basis not just for the technical process, but for the whole improvement program for our organization. We have expanded our process to cover simulated production as a part of the testing effort. This way, we can guarantee that the actual delivery day will be uneventful.
The audience will come away from the talk with a good idea on how to improve their build process. The talk will cover both practical aspects, architectural changes that improves continuous integration, and what change you need to make in your organization to streamline the value chain from a code change to production readiness.

 
FitNesse in the real world - yes, it really does work.

Abstract
FitNesse is becoming a buzz word in the Agile community. People have seen it used in small examples, but may not think it is appropriate for their project. This session will show how it has been a great success factor in a critical Norwegian banking project at BBS, and how it was valuable to both developers and domain experts. The talk will present technical tips and tricks with code examples for writing reusable and maintainable tests and code. It will take you through the obstacles we met along the way, and how we overcame them.

 
Fra kildekode til bytecode - Implementering av egne språk for JVMen

Abstract:
Alternative språk til Java som kjører på VMen er i vinden om dagen. Groovy, Jython og JRuby er eksempler på populære språk som fler og fler eksperimenterer med, og som bransjen er iferd med å ta i bruk. Felles for disse språkene er at kildekoden blir kompilert til Java Bytecode før den kan eksekveres på JVMen.
Målet med dette foredraget er å gi en oversikt over veien fra kildekode til kjørende bytecode. Dette foredraget starter med en rask gjennomgang av kompilatorteknikk, etterfulgt av en gjennomgang av den fullstendige implementasjonen av et enkelt eget-utviklet språk - som kjører på JVMen. Vi vil forklare hvordan vi parser kildekoden og sjekker syntaktisk korrekthet. Neste steg blir å vise hvordan man genererer Java assembly-kode, som vi deretter bruker for generering av eksekverbar bytecode.
Foredraget vil være en teknisk sesjon, med live-demoer av kjernekonseptene. Vi vil runde av foredraget med en kort diskusjon av mulige motiver for å ville utvikle egne språk for VMen.

 
Fri programvare - lønnsom innovasjon?

Fri programvare handler om deling, gjenbruk og samarbeid - og flere store virksomheter velger nettopp åpenhet som sin viktigste innovasjonsstrategi. Fri programvare anslås å være en viktig driver for utvikling av framtidens løsninger og ha samfunnsøkonomisk betydning. Fri programvare gir lønnsomhet for kunder, leverandører og samfunnet generelt. Fri programvare representerer allerede store businessmuligheter i Norge, og Norden kan utvikle en sterk industri knyttet til fri programvare. Hvordan skape lønnsom innovasjon for kunder og leverandører?

 
Fully Distributed Scrum: The Secret Sauce for Hyperproductive Outsourced Development Teams

Scrum was designed to achieve a hyperproductive state where productivity increases by 5-10 times over industry averages and many collocated teams have achieved this effect. The question for this presentation is whether distributed, outsourced teams can consistently achieve the hyperproductive state. In particular, can a team establish a localized velocity and then maintain or increase that velocity when distributing teams across continents.

 
Future and Present of Java ME development – Netbeans Mobility IDE

Abstract
In this session we'd like to show future and current state of Java ME development and also talk about incoming new mobile standards like MIDP 3.0. Major part of this session focus on the demos about Java ME development.

 
GridGain 2.0 – Grid Computing Made Simple

The topic of this presentation is about fastest growing open source Java grid computing framework called GridGain and how its focus on elegant simplicity and Enterprise Java integration is helping to revolutionize the grid computing for Java in the same way as Spring or JBoss have changed Enterprise Java landscape. The presentation will start with an introduction to grid computing and specifically data and compute grids. MapReduce will be discussed. Real-life examples will be discussed as well as common pitfalls, patterns and anti-patterns of using grid computing in real life. After introduction a comparison between GridGain and Hadoop (another popular MapReduce implementation) will be given with usual pros and cons of both projects. To underscore the topic of presentation it will also include live demonstration of writing a simple application and grid enabling it to run on a small grid right in front of the audience. All coding during demonstration will be done live. Detailed and in-depth explanations will highlight that grid computing in Java can be fun, simple and productive to use in everyday applications and systems.

 
Groovy, The Red Pill: The Groovy Way to Blow a Buttoned-Down Java Developer's Mind

This talk focuses on the ways that Groovy can turn a traditional Java developer's world-view upside down.

 
Groovy, the Blue Pill: Writing Next Generation Java Code in Groovy

This talk focuses on integrating Groovy with your legacy Java codebase in a way that wouldn't raise an eyebrow in the most conservative of organizations.

 
Guerrilla SOA

With the emergence of Web Services and the evolution of WS-* standards, the enterprise application integration vendors were quick to realise their traditional business model was under threat. On the back of their large installed bases, vendor products were offered to customers to help them deploy and manage their attempts to develop Service Oriented Architectures, with the implication that Web Services were of little use without additional middleware to deal with their alleged inherent complexity.

 
Hands on JavaFX

With the JavaFX SDK Technology Preview having been recently released, this session will get you up to speed on JavaFX regardless of whether you've had any experience with it.

 
How Can Amazon EC2 Benefit from the Elastic Grid Solution?

Abstract:
Amazon Elastic Compute Cloud (EC2) provides a fantastic way to deploy scalable machine images, but what to do when you want an application to scale across the machine images you have provisioned? This session discusses the Elastic Grid, an approach that provides dynamic allocation, management, and scalability of applications, using Amazon EC2 as the backbone. It also introduces the open-source technologies Elastic Grid is based on: Rio and Apache River (Jini™ network technology).
The Elastic Grid provides an architecture for developing, deploying, and managing distributed applications composed of services. Key to the architecture are a set of dynamic capabilities and reliance on policy-based and quality-of-service mechanisms. The Elastic Grid reduces the complexity surrounding the development of dynamic services by introducing Jini network technology remoting for POJOs as well as by providing a simple component model.
The Elastic Grid extends Amazon EC2's virtual grid environment, enabling users to manage and dynamically scale Amazon Machine Images (AMIs) based on declarable SLAs, as well as deal with partial failure of AMI instances. Rio reduces the complexity surrounding the development of dynamic services by introducing dynamic Jini network technology remoting for POJOs, as well as providing a simple component model.
The presentation demonstrates how IntelliJ plug-ins for Amazon EC2 and Rio ease building and deploying a sample application distributed over the Amazon EC2 grid. With the Elastic Grid solution, the application will scale on the Amazon EC2 grid by starting and stopping Amazon EC2 instances accordingly to declared SLAs (service-level agreements).

 
How I learned to love and hate web-testing

Good tools for automated web-testing have been around for quite some time, and many projects are starting to include them as a part of their build-process. We started using web-tests on Storebrand's online insurance-application back in autumn 2006, and the project is still supported by web-tests this very day. The talk gathers on experiences from this and various other Objectware projects, putting together a good bunch of experiences, recommendations, guidelines and hints for getting your project's web-testing in order.
Topics include:
  • Why web-tests are evil!
  • When should you NOT use web-tests
  • How many web-tests should you maintain?
  • How you can get the users to report bugs by writing tests for you
  • Getting a CI/testing server to run the tests for you
  • Combining web-tests with FitNesse acceptance testing
  • Behaviour Driven Development using RSpec with web-tests
  • Project testing strategy (and where web-tests fit in)

 
How to implement a dynamic map in your web page (without marrying a vendor)

4 years ago one had to spend literally millions of NOK just for the publishing rights to implement a good map solution with a detailed map of Norway. Additionally, many projects had a complex client combining javascript and a server side component for displaying the map in the browser, and probably a back end for rendering the maps. Then in 2005 Google launched Google Maps, opened its API, and one could add a map to a project in minutes. Decent map quality, free client and no need to pay a fee for publishing rights.

 
How to please your wife - The leap from strategy to implementation

As you hang up the phone after talking to your wife, you know you have to prepare an important dinner. You're not really motivated, neither sure where to find the right ingredience. But in fear for your wife you never consider objecting. Some time later, almost forgetting the task, you head for the grocery store. Since you're no expert on cooking you ask for help. Heading back home you decide to call a couple of friends to help you - since you really have more important things to do. When your wife comes home she stops suddenly with a strange look on her face; "What!? I can't serve rabit! Did you forget that we are having The Animal Foundation?". I respond weakly; "They don't like animals?". "They don't like killing them, you idiot!
This talk covers the challenges we meet from someone defines a strategy and approves developing an IT-system to when someone else actually starts implementing it. Most of these challenges do not require "rocket science", so why does it happen over and over again?
To finish of Tom will also show us a totally different approach where companies can meet these challenges and save months and millions, keep momentum and committment and gain tons of value!
NB! This talk should also be interesting for developers who hasn't been involved in the stages before implementation, since you're the one they'll blame at the end.

 
Hvorfor Læring av Erfaring er Vanskelig og Hvordan Bli Bedre (inklusiv NM i estimering)

Uten læring av egen og andres erfaring er det vanskelig å bli særlig god i programmering, prosjektledelse, estimering, kommunikasjon med kunde og andre viktige gjøremål. Gjennom flere empiriske studier har vi funnet vi at både "on-the-job" læring og tradisjonelle prosjektgjennomganger (post-mortem reviews, retrospectives, erfaringsrapportering m.m.) i mange sammenhenger har store svakheter og ofte gir feillæring og overreaksjoner i stedet for økt innsikt og bedre prestasjoner. Ønske om å lære noe fra en smertefull erfaring er for eksempel ofte større enn mulighetene og evnene, og det er derfor også viktig å vite når man ikke bør prøve å lære av erfaring! I denne presentasjonen går vi gjennom en del feilkilder og hvordan disse kan unngås for å forbedre evnen til læring av erfaring i systemutviklings. Avslutningsvis avholdes det 3. norgesmesterskapet i estimering (Tidligere vinnere er: Sindre Mehus og Tore Engvig). Som tidligere vil finalistene i estimerings-NM kunne glede seg over gavekort fra en av byens bedre restauranter.

 
I'm sick of agile theory, now tell me something useful

Begrepet "smidig" har blitt så hypet de siste årene at de faktiske verdiene i begrepet er i ferd med å bli utvannet. "Smidig" er tatt i bruk mange steder, men mange har opplevd å ikke få den ønskede effekten. I dette foredraget vil vi ikke ha noen grunnleggende gjennomgang av smidig prosjektledelse, men heller dykke dypere ned i utvalgte aspekter hvor vi ofte har sett eller begått feil, eller har sett stort forbedringspotensiale. Foredraget vil i stor grad ta utgangspunkt i eksempler fra forskjellige prosjekter vi har vært involvert i de siste årene, og belyse praktiske aspekter som vi har sett folk sliter med. I tillegg vil vi se på en grunn til å kjøre smidig som ofte ikke er godt nok belyst: *Den økonomiske*.
Trond har bakgrunn som siviløkonom. Christian har bakgrunn som utvikler. Begge har endt opp som prosjektledere med sterkt fokus på smidig prosjektmetodikk og ledelsesfilosofi. Til sammen har de ca 20 års erfaring fra bransjen, men de gjør fortsatt feil, lærer fortsatt nye ting og ser stadig forbedringspotensialer.

 
Introducing the Scala Programming Language

Scala fuses object-oriented and functional programming concepts into an elegant, statically typed programming language for the Java Platform. The name Scala stands for "SCAlable LAnguage."

 
Introduction to Behaviour Driven Development

Are you writing code that never gets used? Are you struggling to make the code fit your requirements?
Behaviour-Driven Development (BDD) is a fresh breath of air in the agile community, and its primary focus is to deliver software that matters. -For the end users. BDD builds upon several agile tools and practices like Acceptance-Test Driven Planning, Example-Driven Devlopment, FIT, User Stories and TDD, and bring them together in a consistent whole.

 
JRuby Smörgåsbord

You are a programmer on the Java platform, and you have been hearing more and more about Ruby, Ruby on Rails, and JRuby. What's this stuff all about? Why would a Java programmer care about these technologies? How will it make you, as a programmer on the Java platform, more productive?
Over the past two years. Ruby on Rails has brought the Ruby programming language into the mainstream. Ruby offers a cleaner, simpler, faster, and much more fun language for day-to-day development. Rails has changed the face of web development with legendary productivity gains and minimal configuration. The two are now available for your Java platform projects with JRuby, an implementation of Ruby for the JVM.
In this session, we'll walk through how you can get JRuby up and running. We'll demonstrate common use cases for JRuby like GUI development, web development with Ruby on Rails, and more. By the end of this session, you'll be ready to download JRuby and start adding it to your own projects, or start a few new ones. JRuby is ready for you!

 
Java 6 update 10, ease of deployment and Java SE 7

Java SE is on over 90% of desktops and Java ME is on over 90% of mobile phones. Java is also making a big dent in the consumer space such as set top boxes, Blu-Ray Disc players and so on. Although Java client technology is ubiquitous, consumer applications are not because development and deployment for consumers is still too hard.

 
Kannibaler, klassifikasjon og representasjoner av virkeligheter

Abstract
I sammenheng med utbygging av et kraftanlegg i Amazonas ble en indianer fra lokalbefolkningen trukket inn som vitne i rettsaken og stilt ovenfor den klassiske eden; "Do you swear to tell the truth, the whole truth and nothing but the truth so help you God?". Han svarer; "No, I can only tell you what I know".
Vi som jobber med teknologi er alle meningsprodusenter idet vi lager en slags virkelighet som brukerne må forholde seg til. Vi har derfor på mange måter stor innflytelse i det å konstruere en virkelighet, en sannhet som mange brukere ikke setter spørsmålstegn ved. All teknologi handler mye om klassifikasjon av objekter og relasjoner mellom objekter, kategorier etc. Klassifikasjon vil si å dele inn objekter, personer, dyr eller andre fenomener etter kategorier eller typer. Et klassifikasjonssystem er en type kunnskap og kunnskap vil alltid ha et ideologisk aspekt. Men hvor bevisste er vi dette ansvaret?
Gjennom en kort introduksjon av de tidligste sosialantropologiske studier av matklassifikasjon og totempæler vil jeg forsøke å vise at dagens semantiske web på mange måter er i tråd med disse tidligste fagteorienes hovedtanker, som for eksempel det å se det enkelte system som avgrensede enheter, som kan studeres alene. Avleggere fra tidlige forsøk på å se kunnskap i lys av klassifikasjonssystemer skinner i dag gjennom hos flere teoretiske tilnærminger som det til stadighet refereres til og jeg vil argumentere for at det er dags for å trekke inn verktøy koblet mot en metodikk som både er i tråd med tida vi lever i og som løfter blikket fra studier av avgrensende enheter og som retter blikket mer mot brukerens egenartede og unike forståelse av det samme fenomenet.
Jeg er opptatt av å formidle tungt stoff på enkle måter – og vil bruke konkrete eksempler for å få publikum med på det som kan kalles en faghistorisk charterreise med konkrete eksempler hele veien for å illustrere poengene. De fleste vil nok sitte igjen med noen aha‐opplevelser samt få ett innblikk i en fagverden man har mye til felles med til tross for at man sjelden kobler fag som teknologi og antropologi sammen. Jeg vil anta at folk vil gjøre seg en og annen tanke – og trekke litt på smilebåndet!

 
Kartløsningen i MATS-prosjektet

Dette er en erfaringsrapport fra MATS-prosjektet hos Mattilsynet, der Computas implementerer og integrerer en kartklient i webklienten og SWING-klienten. Rammebetingelsene for prosjektet var at kartserveren skulle være Java-basert og åpen kilde, slik at det ville være mulig å gjøre tilpasninger dersom det skulle være nødvendig. Videre var bare rene serverløsninger relevant siden klienten kom til å være egenutviklet. Valgmulighetene var derfor veldig begrenset; i praksis kun GeoServer.
Selve klienten bruker OpenLayers, et åpen kilde JavaScript-bibliotek som støtter de viktigste protokollene. Det ble vurdert å utvikle en egen kartklient i SWING, men dette ble forkastet på grunn av begrensningene for minneforbruk i kjøremiljøet. Dette førte på sin tur til et behov for å kunne sende kartdata fra web-basert kartklient til SWING-klient, som ble løst ved å la kartklienten gjøre et HTTP-kall til SWING-klienten via en skjult IFRAME. Dermed var det heller ikke lenger nødvendig å bruke WFS-T- protokollen for å kjøre transaksjoner med geodataene direkte mellom klient og server, slik at vi kunne begrense løsningen til WMS. Det er mulig at det senere vil dukke opp krav som gjør det likevel nødvendig å utvide løsningen med støtte for WFS-T, men dette vil ikke være et stort problem siden også WFS-T støttes av GeoServer.
Til slutt noen ord om plasseringen av GeoServer i vår arkitektur. I og med at den står ved siden av integrasjonsplattformen og er koblet direkte mot databasen bryter den med alle SOA-prinsipper, men alternativene viste seg å ikke fungere. En mulighet hadde vært å sette GeoServer foran integrasjonsplattformen, men dette hadde ført til økt risiko og mye merarbeid i prosjektet siden GeoServer er bygget opp slik at den forventer direkte tilgang til databasen. Å inkludere GeoServer i integrasjonsplattformen var heller ikke en god løsning da dette hadde ført til ekstra arbeid for å kunne deploye GeoServer i plattformen.

 
Latest debugging techniques for Swing applications

Debugging of Swing application is not always easy because it is visual toolkit and in many cases you can not just write an automated test that checks if your UI looks good, all components have right sizes, all necessary information is visible and painting done correctly. The presentation will cover some common difficulties connected to visual nature of Swing toolkit and provide fast solutions for solving them using Swing Explorer tool developed as open source project https://swingexplorer.dev.java.net. You will learn how to answer the following questions: Which component painted this pixel? In which line of code? Does your application access Swing from the correct thread ? How does Swing perform painting step by step? And even more... If you are experienced or beginner in Swing and want to increase your productivity this session is for you. The session is going to present the latest debugging know hows appeared this year.

 
Listening to Test Smells

This talk is about how to use the stresses of writing unit tests to improve your code. If I'm having trouble writing tests, it's often because the design of my target code can be improved. The trick is to listen to the tests and let them drive my development — that's a hint as to why it's called Test-Driven Development. As a developer, you can sensitise yourself to find the rough edges in your tests and use them for rapid feedback about how to improved the design of your code.

 
Managing one-to-too-many relations in rich domain models

Abstract:
Domain Driven Design with Object-Relational mapping is the state of the art for testable object oriented programming in domains with complex business rules. However, sometimes the domain contains natural relations and object graphs that are too large to fit in main memory. Even when you have sufficient memory, working with large object graphs that are naively OR-mapped can easily give you performance problems. Bjørn Bjerkeli and Eirik Maus present a few techniques they've used at BBS to handle the one-to-too-many-relations (almost) without sacrificing working on a pure domain model. These include domain object fields based on database queries, iterators that "page" entities in and out of memory and simplified methods for background fragment processing.

 
Managing wicked projects - a survival guide

This talk will focus on a special kind of wicked software projects - enhancement projects. They are very common and generally overlooked. Wicked enhancment projects exhibit many of the following characteristics:
  • The project is delivering something like version 5.7 or 6.0 of a successful software product
  • There is a large, buggy, legacy code base with little documentation
  • There is a large number of product variations (configurations)
  • The customer and user base is large and inhomogenous
  • The original development team is long gone
    • Sponsor/general management has lost interest (until something goes wrong)
    • The current development team is doing all of support, O&M, and fresh development
    • Activities other than developent consume a significant portion of the effort
    • The developer motivation is low (churn is high)
    • There is a high number of external dependencies
    • Requirements are volatile
    • Firefighting is the norm – defined processes are missing or frequently circumvented
Enhancement projects are especially hard because their origin is a successful product. The risk is generally high (chance of jeopardizing the whole customer base), but not treated as such. Success is expected, but many of the mechanisms for ensuring success are not in place.

 
Mutation testing - Code coverage 2.0

Abstract
Code coverage is a lousy test quality indicator. Mutation analysis and testing, on the other hand, provides a better technique to improve your tests. This involves mutation of source code by introducing or modifying statements in small ways. The purpose is to develop effective tests or locate weaknesses in existing tests. This session gives an introduction to mutation testing, available tools and techniques. The content will consist of many examples, demonstrating mutation testing and the effectiveness of this technique.

 
Newspeak 101 for Java Programmers

Newspeak is a new programming language being developed at Cadence. Newspeak is directly descended from Smalltalk, with heavy influences from Self and Beta. Newspeak is a principled dynamic language, and incorporates lessons drawn from a decade of experience maintaining the Java language and VM specifications.

 
Objects of Desire

Given that object orientation underpins the Java language, it would be expected that anyone using Java would also know about OO. In one sense this is true, but there is more to effective modern object-oriented development than just creating a few objects and calling a few methods.

 
Opphavsrett og datamaskinprogrammer - Kansellert pga sykdom

Kansellert pga sykdom
Datamaskinprogrammer regnes som litterære verk og vernes etter åndsverkloven. Det betyr i utgangspunktet at de reguleres av de samme bestemmelsene som f eks norsk lyrikk. Hvordan har det seg egentlig at dette ble resultatet – og er det lurt?

 
Panel: Alternative and Emerging Languages

 
Prediction Markets - A different approach to software cost estimation

Spekulative markeder (slik som aksjemarkedet og oddsen) har i mange tilfeller vist seg å være bedre enn eksperter når det gjelder å forutsi hendelser. Dette har vært tilfelle innen en rekke områder - innen alt fra estimering av oljepris fem år frem i tid til å tippe hvem som vinner årets cupfinale. I dette foredraget vil vi gå gjennom teori og praksis for å vise hvordan slike marked fungerer, og vi vil vise hvordan teknikken kan brukes til estimering i systemutviklingsprosjekter. Foredraget er basert på aktuell forskning og våre egne erfaringer fra et systemutviklingsprosjekt hvor vi innførte denne teknikken.

 
Programvare er politikk

Åpne standarder, felles offentlig IT-arkitektur og fri programvare er begreper som du etter hvert har blitt en del av ordforrådet til regjeringen. Politisk rådgiver i Fornyings- og administrasjonsdepartementet Jørund Leknes vil i foredraget gå gjennom sentrale deler av regjeringens IT-politikk, forklare hvorfor valg av programvare nå står høyt på den IT-politiske agendaen og hvordan du som utvikler kan lage løsninger som forholder seg til dette.

 
Project Hydrazine: JavaFX Open Cloud Computing Platform

Abstract:
Project Hydrazine was announced at JavaOne'08, by Sun Microsystems Inc., to accelerate the development of Rich Cloud Applications (RCA) that deliver rich content and user experience across the four screens of a consumer life (PC, mobile, setop-box, TV, car).

 
Qi4j - a new approach to old problems

In the current programming culture we have lost the OOP idea of objects containing both logic and state, the idea of reuse has largely failed due to impractical mechanisms, and combining pieces of code into larger structures using AOP has not quite delivered on its promises. Building large-scale software also gives us challenges with regard to complexity, enforcing architectural rules and codebase explosion. What if we could look at what we have and figure out a new way to address these problems, while promoting the idea from domain oriented modeling and retaining what works with what we have now? Composite Oriented Programing is a new way of dealing with these problems, and this presentation will show how the Qi4j implementation on the Java platform will enable you to get more done with less work, and in a way that allows you to avoid the mentioned problems. It will describe the COP terminology and show examples on how to use Qi4j to implement domain oriented models.

 
Quercus

Quercus is Caucho Technology's 100% Java implementation of PHP. This technology is taking off not only because of the trend toward scripting in the Java community, but also because of the performance and reliability that Java adds to PHP. In this talk, we will present the compelling reasons to use PHP on Java including availability of applications, ease of view development, and performance improvements of upto 89% over PHP with APC. We will show specific use cases of Quercus such as using popular PHP applications like MediaWiki, WordPress, and Drupal directly, bridging existing Java and PHP applications, and using PHP as a view technology for Java. We will also show the unique capabilities of the Quercus implementation such as transparent clustered sessions and use of Java objects natively from PHP. Finally, we will look at case studies of real Quercus deployments such as LiveProcess, the leader in emergency preparedness' planning for the healthcare industry, and others to see how these applications take advantage of PHP on Java.

 
RESTful Web Services with Spring

REST, the REpresentational State Transfer, is the architectural style underlying the HTTP protocol. In the last couple of years, REST has emerged as a compelling and simpler alternative to SOAP/WSDL/WS-*-based distributed architectures. In this session, Arjen will explain what REST is, how it can be used to build Web Services, and where it makes sense to use.
We will look RESTful frameworks such as JSR-311, but focus on creating RESTful Web services with the Spring framework. This will include the features included in the current release of the Spring framework, and new features that are coming in the next major release.

 
Real-world OpenESB, best practices and experiences

This talk will cover best practices for OpenESB usage and integration.

 
Refactoring Maven Projects

Abstract
This experience report will cover how our maven project moved from one single line of code in one webapp module to five webapplications and fourteen modules. There are very few best practises regarding how to organize a maven project over time. After talking to several peers and reading all available material I have not found any good solutions to this. This presentation is my effort to give something back to the java community and hopefully start a discussionon how you should organize your maven projects.
Keypoints:
  • What is the best way to keep buildtime down to a absolute minimum?
  • Should the modules be organized in vertical or horizontal modules?
  • How should you use a maven repository?
  • How do you handle releases
  • When should you create a new module?
  • What is the downsize of creating a new module?

 
Riktig feilhåndtering (og ja, checked exceptions er skadelige)

Etter mange tiår med programvareutvikling skulle man tro at de fleste applikasjoner håndterer feil på en god måte. I realiteten blir exceptions slukt, kastet på nytt, innpakket, ignorert og tilfeldig logget - om de i det hele tatt er tenkt på. Denne sesjonen viser tilnærminger som fungerer og noen tommelfingerregler for feilhåndtering, samt fallgruver og grusomme eksempler. Vi diskuterer også checked exceptions - et eksperiment i Java - og forklarer hvorfor de bør unngås.

 
SMILE! YOU’RE ON FACEBOOK The social network is the portal

Abstract:
Many are already convinced of it: the social network is bound to be the personal portal of tomorrow. Whether you are using MySpace, FaceBook, LinkedIn or Plaxo: expect a whole new wave of mini applications that are specifically build to use and access the sea of crucial information that hides in social networks. This talk will introduce you to developing applications for this exciting new world. No code. Just inspirations and all the links you can absorb to get going yourself. See you soon on FaceBook!

 
SOA Governance – 5 common mistakes and how to avoid them

As the number of services and applications inside your organization grows, it becomes increasingly hard to manage and control. When this happens it is important to start looking at implementing SOA governance. Because SOA governance is not widely understood (or is widely misunderstood), many common mistakes arise which result in duplicate efforts, less reuse, less interoperability and increased development time. During this talk we'll look at what exactly SOA governance is while exploring 5 common mistakes and how to avoid them.

 
Scala? Ruby? Erlang? Python!

Abstract:
Alternative languages like Ruby, Scala and Erlang are being picked up by the large platforms and getting ever more attention. Many feel the need to learn a new language, but how does one choose which "other" languages to learn and develop in when there are so many worthy contenders?
Pythonistas have historically not been very good at marketing. This talk will attempt to convince you that Python/Jython/IronPython deserves to be part of your developer toolbox.
Language design choices in syntax, features and semantics influence what areas a language is suited for and the community that grows around it.
Particular features and idioms of Python will be introduced and compared to choices made by other relevant languages.
Finally, a demonstration of how effective development in Python can be using the Django framework which has emerged as the premier Python web-framework.

 
Sexier Software with Java and Flex

Building sexy software that users love is usually a challenging endeavor. The open source Flex SDK and Java are a perfect combination of technologies for building rich, sexy software - for the web and the desktop. Flex applications can run in the browser using the ubiquitous Flash Player or on the Desktop using the new Adobe Integrated Runtime (AIR). In both instances Java can be used for the back-end of the application. The communication between the Java back-end and Flex front-end can utilize a number of different communication protocols, but the easiest and best performing is the open source BlazeDS library. This session will cover the basics of using Flex, Java, and BlazeDS to build sexy software for the web and the desktop.

 
Sikkerheten i norske webapplikasjoner - Føler du deg trygg?

Foredraget presenterer de vanligste sårbarheter i webapplikasjoner og trekker frem noen illustrerende skrekkeksempler hentet fra sikkerhetstester av norske webapplikasjoner. Vi vil så ta for oss hvordan Java-utviklere kan unngå å gjøre de samme feilene i sine utviklingsprosjekt.

 
Small is Beautiful – Scaling Agile to Complex Multi-Project Environments

Abstract
Over the past years, successful practitioners have applied Agile methods like Scrum and eXtreme Programming (XP) on individual projects to cut development lead times, improve product quality and reduce engineering cost. For instance, time-to-market reductions in the range of 30-50% have been reported by leading companies. Now, as these practitioners seek to expand on their initial successes, they face many complex obstacles posed by the realities of today's business environment: multiple organizational silos, distributed teams, interfacing with 'non-agile' vendors and customer organizations, continued cost cutting, complex product suites, and the pressing need for innovation.
How can agile practitioners apply the fundamental tenets of Agile - integrated small teams, small releases, sufficient-to-purpose, etc - to provide the next round of significant returns from their Agile investment? Sanjiv Augustine of LitheSpeed will lead a discussion on adopting a philosophy of smallness within bigness to allow the scaling of Agile practices beyond individual projects to deliver process improvements in complex environments with multiple projects.

 
Smidige metoder - store prosjekter

Abstract
Med lang fartstid fra store smidige prosjekter vil Thomas, Anders, Geir Magne, Kristoffer, Benjamin og Steinar dele sine erfaringer - på godt og vindt - med publikum. Først innleder de med korte lyntaler før paneldebatten bryter løs.

 
Software and Metrics – Is quality measureable? Recipes to reach bettertechnology quality!

Abstract:
What is internal quality and why are metrics helpful? A comparison with a cake will make it easy to understand: Not the optic and not the frosting on top of a cake guarantee a good taste and a healthy enjoyment. The ingredients, the recipe, the baking itself, the enjoyment of the cake, the great treat of it to keep in memory and the comfortable feeling afterwards are part of the total value and quality of the tasty cake. With the enjoyment of software is it likewise. The inner quality of software is crucial for your success in software development projects. This talk gives answers why this kind of quality is so important and how to gain better technical quality using different metrics based on the usage of the open source software XRadar (and others).

 
Son of SOA: Resource Oriented Computing and Event Driven Architectures

Resource Oriented Computing systems process resource representations, execute transformations and computations by defining processing in terms of compositions and asynchronous sequences of resource requests. Application development and deployment using SOA faces problems when organizational changes occur if the participating systems (service providers and consumers) are too tightly coupled. In SOA, messages and systems are inherently synchronous, promoting dependencies that filter to the organizational level. Resource Oriented Computing solves system and application integration issues by leveraging ESB, domain-specific languages, and shared memory mechanisms for integrating coupling points, not the applications themselves, by promoting event-driven interactions between system components, and by creating logical mappings of resources such as data or computations that are abstracted from the physical manifestation of the system deployment.

 
Spring == XML, XML == sucks therefore Spring == sucks?

Last November, Spring 2.5 was released. This version of Spring, the de-facto Java EE application platform marks the beginning of the introduction of alternative ways to configure components. In the, we've mainly focused on provided XML as the main language to perform Dependency Injection on object. Since 2.5, Spring has introduced several new ways to doing this.
This session focuses on the various ways of using the Spring container to Dependency Inject objects such as the traditional XML language, the extensible namespaces, the @Autowired and @Component annotations, but also the innovative JavaConfig project that is capable of configuring Java objects using @Bean annotations.
Each has drawbacks and advantages and this session will discuss which one you should choose in what scenario. After this code-intensive session, you will walk away with a clear understanding of when XML is a good choice for configuration and when to opt for one of the annotation-based options.

 
Swing Application Framework: One Year Later

Abstract:
In this talk we will attempt to summarize and share our experience from one year of developing commercial grade applications using JSR 296: Swing Application Framework. We will thoroughly cover the basics of Swing Application Framework, and dive into the most useful features, some best practices and potential pitfalls. Finally, we will reflect on the current state and future of SAF. The talk will act as a follow up on last years "Building Real Swing Applications", where we covered the fundamentals of building Swing applications.
With more than twenty years of Java experience between them, this presentation will be given by Escenic's Harald Kuhr, lead developer of Escenic Content Studio, and Bouvet's Swing expert Yngvar Sørensen.

 
System Thinking techniques for Agile Teams – seeing the forest and the trees

Abstract
Lean and agile methods tell us to “see the system”. System thinking skills are important for all agile teammembers. However they are not part of our day-to-day toolkit we got in school or university. This session introduces the participants to 7 practical system thinking tools and visialisation techniques that will help us map and explore the dynamic complexity of our (software) projects. These tools can be used in retrospectives, kickoffs, to look at long term consequences of policies and choices. They support the (software) management process at all stages – from specifying problems, to construction and testing of hypothesis.

 
Taking Apache Camel for a Ride

The revered Enterprise Integration Patterns (EIP) book is indispensable for handling messaging-based integration, but utilizing these patterns in your own code can be tedious, especially if you have to write the code from scratch every time. Wouldn't it be nice if you had a simple API for these patterns that makes this easier? Enter Apache Camel, a message routing and mediation engine that provides a POJO-based implementation of the EIP patterns and a wonderfully simple Domain Specific Language (DSL) for expressing message routes. This session will introduce and demonstrate the power of Camel. So go on, take a Camel ride!

 
Tapestry 5: Java Power, Scripting Ease

Apache Tapestry is an open source Java framework that combines the best features of two worlds: the heavy-duty performance and scalability of Java (not to mention its enterprise acceptance) with the productivity advantages of scripting languages such as Ruby.
Java has emerged as the language for enterprise-class development: it has the widest adoption, the largest class libraries, the best performance, and greatest degree of enterprise acceptance ... and yet, traditional web development is a painful, unproductive slog: large amounts of configuration combined with constant recompiles and redeployments.
Python and Ruby can be vastly more productive than Java but can't match Java in terms of performance and scalability, or acceptance in the enterprise.
Tapestry bridges the gap between these two worlds. It embraces convention over configuration on many levels. It enhances productivity with live class reloading (changes to classes are picked up without a redeploy or restart) and best-of-breed exception reporting. Tapestry classes and templates are small, simple and immediately understandable. Tapestry applications are fast, efficient and highly scalable. Tapestry lets you work in terms of your objects and your methods: you can build entire applications and never think about a URL or a query parameter. Things just work!
Tapestry is a component framework; we'll see how the built-in components provide broad functionality and yet are extremely extensible. Many of the components have built-in Ajax functionality, and building your own components is a snap.
This session will feature live demonstrations and even a bit of live coding. We'll demonstrate how Tapestry keeps you happy and productive like a Ruby or Python coder but still delivers the results your boss and your customers need.

 
The Double Paradox of Lean Software Development

Abstract
If you were the owner of an airline, what percentage of seats would you like to fill: 65% or 75%?
If you were developing new components, what percentage should succeed: 50% or 100%?
Surprisingly, a lean company would target the lower percentages and be more successful.
How can this be? The first paradox of lean development is that by doing one thing at a time instead of trying to do many things simultaneously, everything will get done faster. The second paradox of lean development is that if you never fail, you never learn, and learning is the essence of product development.
Come to this talk to hear why it is better to focus on throughput rather than utilization, and why you want to try lots of stuff and keep what works, rather than picking the winners in advance.

 
The Enterprise Service Bus: Silver Bullet or Golden Hammer?

The Applicaton Server is dead. But what about the Enterprise Service Bus? Are we facing phantom requirements and vendor-driven architecture all over again or does the ESB provide useful middleware services needed for enterprise development? Well, it depends on your requirements. In this talk we explore a real-world case and show how to implement a solution with and without an ESB. As it turns out, there are very good alternatives to typical ESB features. We consider pros and cons and present guidelines for the process of selecting the right tool for the job.

 
The Enterprise without a Database

For decades, enterprise systems have been built around the database - the original canonical data structure that everything had to integrate to. The DBA was the most powerful person in the enterprise, even messages standards were based on the database structures and it seemed everything had to have a table associated with it. The time has come to think about an enterprise free from the RDBMS - not free from persistence altogether, but free from the lock-in of the classic RDBMS. John will talk through some recent projects at several large financial institutions now building global trading systems without a database in sight.

 
The Scalability Pitfall of the Real-Time Web (and How To Fix It!)

Abstract
The Web as we know it is about to change. Welcome to the event-driven Web—a system that addresses the architectural flaws of the Web, and facilities uninitiated server-side messaging. That's right! The event-driven Web does not necessitate a "click" to deliver content.
With this new paradigm, developers can initiate messages and events on the server—messages that are delivered to any type of Web client, including clients such as the iPhone, without the need for browser plug-ins or traditional polling. End-users receive streams of data, in real-time, making it possible to deliver data to clients as it arrives without the need to wait on a pool interval. Low latency delivery of information makes the Web an accommodating place for applications once thought to only be possible on the desktop, e.g., financial trading, auctions, sports betting, tools for analytics, business activity monitoring.
To understand the concept of event-driven Web, you first must understand its origins, the technologies and requirements behind it, its place in your applications, and the pitfalls. In this session, we will introduce you to all of the above with special focus on the pitfalls related to reversing the Web with an event-driven paradigm.
Considerations that we will discuss include connection limitations, network flooding, and scalability. In addition, attendees will be introduced to the various architectural options that are available to address these concerns. The techniques and technologies covered in this session include, but are not limited to Comet/Push implementations, Asynchronous Request Processing (ARP), and Java/JMS.

 
Top 10 Patterns for Scaling Out Java Applications

Abstract
This presentation explores the challenges and solution patterns for managing data and compute tasks in scale-out environments. It is based on experiences with using a wide assortment of software solutions for compute and data management in scale-out environments, including newer scale-out technologies such as data grids and compute grids as well as getting the best results out of traditional database and messaging solutions.

 
User Story Mapping gjør kunden din gladere

Abstract:
Mange smidige prosjekter opplever problemer med å holde oversikt over et stadig voksende antall brukerhistorier. Dette medfører ofte at prioritering og planlegging blir vanskelig og frustrerende, noe som kan føre til at vi tar feil beslutninger ift hva som bør inngå i hver leveranse.
User story mapping er en enkel måte å samle og organisere brukerhistorier på. Teknikken fokuserer på hva brukerne forsøker å oppnå og hjelper oss å forstå hvordan vi kan skape leveranser som gir umiddelbar effekt. Brukerhistoriekart er et kraftig kommunikasjonsverktøy som sprer forståelse for hvilket problem som løses, hvordan og i hvilken rekkefølge.

 
What's new and cool in Portlet 2.0

Four years after the release of the Portlet 1.0 specification, the new Portlet 2.0 specification introduces many new features that will greatly improve the interactivity of portlet applications and portals. The specification introduces advanced coordination features such as portlet events standardizing inter portlet communication and public render parameters which allows several portlets to share the same render parameters. The new resource serving feature allows a portlet to deliver personalized resources to the browser such as images or PDF documents based on the current user preferences and profile, it also offers the capability to serve markup fragments from a portlet providing support for ajax portlet development. Portlets are now allowed to interact with the portal request and response with the possibility to read or write HTTP headers and insert markup elements to the head section of the portal page. Others important features such as enhanced content caching and portlet filtering have been also introduced in the specification.

 
Who needs standards in an open source world

Standards make the world go round. It would be impossible to mail a package or send an email message, drive a car or take an airplane trip, shop for food in a supermarket, obtain medical treatment in a hospital, watch TV or movies, enjoy a sports game, or do any of the other things the modern world offers without standards.

 
Writing Domain-Specific Languages with Groovy

Abstract
Domain-Specific Languages are an "architectural hot-spot", as coined recently by InfoQ editors. With dynamic languages such as Groovy, it is easy to create a mini-language modelling a particular business domain. Thanks to these DSLs, developers and subject matter experts will be able to share a common metaphor, to deliver, hand in hand, the final application to the end users.

 
Zero Turnaround in Java Development

Abstract
Turnaround is the time it take for the changes in code to propagate to the running application. It includes build time, deploy time and initialization time. Recently some developments in the Java ecosystem and IDEs made it possible to develop software with zero turnaround. This talk is an overview of these developments, which include dynamic languages like Groovy, JavaScript and JRuby, framework support for reloading like Tapestry 5 and RIFE, module approach in OSGi and generic class reloading approaches like HotSwap, JavaRebel and FastSwap.With each approach we discuss benefits and limitations. We also review how to set up your build environment to get least possible turnaround whether you program legacy code or start from scratch.

 
iLabs mobile toolbox: J2ME applications without intolerable pain

The iLabs mobile toolbox is a an open source (Lesser Gnu Public License) java library for J2ME that makes it simple to make programs for social interaction on mobile phones.  The library is quite portable, since it abstracts away some of the notorious problem spots in J2ME programming: Keyboard handling, camera and sound handling.  It provides ready-made interfaces to Facebook, XMPP (Jabber), Blogger and other APIs necessary for social interaction.  The library includes a web browser library written entirely in J2ME that has proven extremely useful both for web browsing, and for user interface development when embedded in applications (clicking on an image on a "webpage" can for instance start a camera for image capturing). During the talk we will outline the anatomy of an application, the main elements of the library, and we will demonstrate how to build and deploy several small applications.

 
map - reduce og andre teknikker for parallellisering

Abstract:
Har du en snikende følelse av at din trygge serielle hverdag er truet og at parallellisering antagelig er noe du bør ha et forhold til før eller siden, da er målet med denne enkle introduksjonen til parallellisering å kunne vise at dette ikke nødvendigvis trenger være veldig vanskelig.
Noen ganger har man behov for å splitte opp større jobber for eksempel for å utnytte datakraften som er tilgjengelig over flere prosessorkjerner, prosessorer og servere. Teknikker, infrastruktur og rammeverk finnes for dette, men de er ofte komplekse å sette opp, vanskelig å forstå og påvirker designet i for stor grad.
Jeg ønsker å gi en enkel (teknologi og produktuavhengig) introduksjon til parallellisering, hvilke forutsetninger som må være på plass for at oppgaver gjøres i parallell, noen problemstillinger knyttet til å parallellisere, teknikkene master - worker, og map og reduce, og eksempler på en del typiske problemer som er egnet for parallellisering.
Dersom du allerede jobber med storskala parallellisering er nok ikke dette presentasjonen for deg, dette er heller ikke en presentasjon av googles MapReduce rammeverk.
Etter en introduksjonen til parallellisering vil jeg beskrive noen konkrete problemstillinger fra BBS hvor vi har hatt behov for å parallellisere jobber. Jeg kommer til å forklare hvorfor vi trengte å splitte opp og parallelisere jobbene, hvordan vi gjorde det, samt hva vi oppnådde rent konkret ytelsesmessig.

 
”Sikker? Sikkert nok!” - Fra Silo til SOA

Abstract
Det utarbeides flere og flere selvadministrasjonsløsninger og det er et sterkt behov for å lage løsninger som gjør det mulig å tilby selvadministrasjon også får svært sensitive opplysninger, for eksempel helse opplysninger eller lignende. Data lagres ikke lenger i siloer slik som før og slik som Datatilsynet gjerne skulle ønske det. Denne presentasjonen gir deg konkrete råd om hvordan du kan lage et system som vil bli godkjent av Datatilsynet. Foredaget vil ikke bare ha hovedfokus på java men den omkringliggende infrastrukturen som er nødvendig. Utviklere vil få forståelse av hva som bør være deres ansvar i en applikasjon og hva infrastrukturen bør støtte dem med for at systemet skal håndtere alle risikoer.