193 symposiums and 30,000 attendees since 2001

Dion Almaer

CTO of Adigio

Dion Almaer
Dion Almaer is the founder and CTO of Adigio, Inc. He is an architect, mentor, pragmatic, and evangelist of technologies such as J2EE, JDO, AOP, and Groovy. He is the Editor-in-Chief of TheServerSide.com J2EE Community and enjoys working in the community. He is a member of the Java Community Process, where he participates on various expert groups.

Blog

Browser User Agent Strings

Posted Monday, June 18, 2007

I more »

GeoSense: I wish I had this in Geography class

Posted Friday, June 15, 2007

Geography was always a let down for me in school. It was like history. It could be so interesting, but the teachers somehow managed to skirt the interesting topics, and instead have you learning ina more »

GSpreadsheet: JavaScript Helper for Google Spreadsheets

Posted Wednesday, June 13, 2007

I am finding that more and more little applications that I have use Google Spreadsheets to store some data that I use in an Ajax app. After using the core API, you find yourself looking at fun more »

Custom Search Engine that automatically knows what to site restrict

Posted Wednesday, June 13, 2007

I have been waiting for this for awhile. You can now create the list of sites for a custom search engine on the fly. This search below should search through my blogroll on the left (which I never update but that is another issue to do w more »

Safari on Windows

Posted Monday, June 11, 2007

This was an obvious step. Adobe has had to port WebKit to Windows for Apollo^H^H^H^H^H^H AIR. Apple had to port some of more »

JRuby 1.0: Congrats to the team

Posted Sunday, June 10, 2007

A 1.0 release is a major decision, and you can do it too soon, or too late. I am glad that we a more »

Google Developer Day 2007 Wrapup Video

Posted Thursday, June 7, 2007

The good folks put together footage from around the world on Google Developer Day 2007. They even put in a cameo with me in it. Bonus points to anyone more »

iPhone v1: Get burned like Apple TV?

Posted Wednesday, June 6, 2007

I am really torn on the iPhone. I do want one. It looks like they are changing their tune on an SDK (sounds like Flash) so we will see cool third party a more »

Rails on IronRuby == Rails on Windows Server

Posted Tuesday, June 5, 2007

I disagree with Charlie on one point: This is a good friend's belief, but he's won me over: we don't believe Microsoft would ever willingly allow IronRuby to get to the point of running Rails, since that would directly compete with their A more »

TIBCO on Rails

Posted Tuesday, June 5, 2007

I got into another "chat" with someone who was mocking Rails due to the fact that he keeps seeing a cat when he tries to use Twitter. "This app is slow, therefore Rails can't scale" This is an old argument of course. The problem is that more »

The importance of Iron Ruby

Posted Monday, June 4, 2007

Ola Bini (JRuby and ThoughtWorks) has written about the importance of Iron Ruby and how he fears it is going to take forever unless Microsoft changes how they do open source: For example, what is a compliant Ruby implementation? Since there more »
Read More Blog Entries »

Presentations

Clean scalable builds with Maven

Our build systems have migrated from make to Ant. While Ant does a good job in many ways, is it the right tool for the job? This session talks about taking builds to the next level, looking at tools such as Maven to make your life easier. more »

How to be Groovy

What? Another programming language? Are you kidding me? more »

JDO 2.0: Another shot at transparent persistence

Java Data Objects offers a standard model for transparent persistence (or close to it). The 2.0 version of the specification has given us many new features. more »

Rules Engines

Rules engines are powerful beasts which allow you to program in a way in which you specific rules and facts, rather than a linear set of instructions. Learn about how you can use Rules Engines in Java development to take care of complicated problems. more »

Enterprise AOP

Aspect-oriented programming (AOP) has become a hot topic for enterprise development, with recent news of support by IBM, JBoss, BEA, Oracle, Eclipse, and IntelliJ. Behind the news headlines, however, are critical questions: How real is AOP for the enter more »

Give the DB a break!: Performance and Scalability

What do we really mean by "performance" and "scalability"? This talk gets into the meat of problems which cause our applications to degrade. We will focus on issues such as problems caused by the database being a bottleneck for our application, and see ho more »

Ajax: Creating Next-Generation, Highly Dynamic, Off-line Capable Web Applications with HTML and JavaScript

Web applications have traditionally been a sort of Faustian bargain, yielding the high-quality user experience that desktop applications can deliver in exchange for incredibly easy deployment and lower support costs. With Ajax we can get a lot of the bes more »

Case Study: TheServerSide.com: Scaling out, and keeping up to date

TheServerSide.com has gone through many changes over the years. This case study talk goes over the technical problems that occured when management came in and told everyone that we would have to scale the community site across application servers from mul more »

Case Study: JUGCentral.com: Building a modern community with the latest technology

JUGCentral.com is a new user group community site, sponsored by No Fluff Just Stuff and Javalobby. The site was built with the new 'Better, Faster, Lighter' technology stack: WebWork2 as the web framework, SiteMesh as the look and feel decorator, Spring more »

WebWork 2: Strutting the OpenSymphony Way

Many web frameworks suffer from being tightly coupled to the Servlet spec when it is not necessary, especially Struts. This makes both unit testing your Actions and reusing them outside a web application very difficult or impossible. With WebWork 2. more »

Apache Beehive

The Apache Beehive project came out of BEA, and is starting to thrive. The goals of Beehive are to make J2EE programming easier by building a simple object model on top of J2EE. Using the new JSR-175 and JSR-181 metadata annotations Beehive reduces the co more »

Clean scalable builds with Maven

close

Dion Almaer By Dion Almaer

Our build systems have migrated from make to Ant. While Ant does a good job in many ways, is it the right tool for the job? This session talks about taking builds to the next level, looking at tools such as Maven to make your life easier.



Our build systems have migrated from make to Ant. While Ant does a good job in many ways, is it the right tool for the job?

You often see a lot of copy 'n paste reuse as people jump from project to project, and we think there is a better way. Maven gives you reuse via its plugins.

Are you sick of having 25 copies of someapp.jar in various lib directories? Maven gives you a clean way to handle dependencies, and you will always know which version your project is using.

Maven is built to be simple to get up and running for small projects, yet flexible enough to manage multiple sub projects. It builds on Ant, so you can drop down to that level to tweak the builds for your needs.

Check out this session if you wish to explore a better way to progress on your own builds.


How to be Groovy

close

Dion Almaer By Dion Almaer

What? Another programming language? Are you kidding me? That is what we often feel when something new comes around, and is something you may be feeling about Groovy. However, Groovy could fit a niche for you in your daily toil. It is the swiss army nice that Perl/Ruby are, yet lets you work in a more structured way, and plays nice with the millions of lines of code already written on top of the Java Virtual Machine.



What? Another programming language? Are you kidding me? That is what we often feel when something new comes around, and is something you may be feeling about Groovy. However, Groovy could fit a niche for you in your daily toil. It is the swiss army nice that Perl/Ruby are, yet lets you work in a more structured way, and plays nice with the millions of lines of code already written on top of the Java Virtual Machine.

This talk discusses a pragmatic view of Groovy where we start off going into detail on the Groovy language, and how it fits into the Java world. Then we will move to examples of how it can help you with tasks such as file IO, SQL access, the web tier, GUIs, Unit Testing, Web Services, and more. If nothing else, you will also see how it has changed the way I program in Java!


JDO 2.0: Another shot at transparent persistence

close

Dion Almaer By Dion Almaer

Java Data Objects offers a standard model for transparent persistence (or close to it). The 2.0 version of the specification has given us many new features. For one, it attacks the OR view, with a standard OR mapping schema. It has also learnt from other practical issues that have come out of the use of JDO 1.x. Now you are not locked into JDO-QL (which has been improved), and bytecode twiddling isn't required anymore. This talk discusses what JDO is, and isn't; what JDO 2.0 is all about, and how it can help you scale out your data tier.



Java Data Objects offers a standard model for transparent persistence (or close to it). The 2.0 version of the specification has given us many new features. For one, it attacks the OR view, with a standard OR mapping schema. It has also learnt from other practical issues that have come out of the use of JDO 1.x. Now you are not locked into JDO-QL (which has been improved), and bytecode twiddling isn't required anymore. This talk discusses what JDO is, and isn't; what JDO 2.0 is all about, and how it can help you scale out your data tier.


Rules Engines

close

Dion Almaer By Dion Almaer

Rules engines are powerful beasts which allow you to program in a way in which you specific rules and facts, rather than a linear set of instructions.

Learn about how you can use Rules Engines in Java development to take care of complicated problems.



Rules engines are powerful beasts which allow you to program in a way in which you specific rules and facts, rather than a linear set of instructions.

It takes awhile to get used to "Thinking in Rules", but it gives you immense power for particular logical problems. You pass control HOW the rules are applied to the rules engine, and just give it the information it needs to get the job done.

Rules based systems are often great solutions for enterprise problems, and are uniquely useful for building so-called ""business rules"". Now you have an external view of your business, and can change behaviour via the rules rather than hard coding your application.

Learn about the power of Rules based thinking in this talk, as we go through and show real examples of how it can help you out in your daily toil.


Enterprise AOP

close

Dion Almaer By Dion Almaer

Aspect-oriented programming (AOP) has become a hot topic for enterprise development, with recent news of support by IBM, JBoss, BEA, Oracle, Eclipse, and IntelliJ.

Behind the news headlines, however, are critical questions: How real is AOP for the enterprise? What problems can it solve today? How does it apply to enterprise applications? How can one make an informed decision about trying to use AOP? What is the best adoption strategy? What are the long term possibilities for AOP in the enterprise?

This sessions tries to tackle those questions.



Aspect-oriented programming (AOP) has become a hot topic for enterprise development, with recent news of support by IBM, JBoss, BEA, Oracle, Eclipse, and IntelliJ.

Behind the news headlines, however, are critical questions: How real is AOP for the enterprise? What problems can it solve today? How does it apply to enterprise applications? How can one make an informed decision about trying to use AOP? What is the best adoption strategy? What are the long term possibilities for AOP in the enterprise?

This session tackles these questions and show developers, architects, and technical managers how AOP can be used for enterprise Java application development. We provide a refresher of AOP concepts and show enterprise examples of how AOP works and where it can be beneficial, as well as discussing anti-patterns (i.e., how not to use AOP).

Examples discussed include error handling, policy enforcement, tracing, systems management with JMX, and more. The examples are implemented in the AspectJ programming language (a popular and seamless aspect-oriented extension to Java) and incorporate major J2EE technologies such as servlets, JSPs, and EJBs. We will also demonstrate using the AspectJ tools to work in an enterprise environment. At the end of the tutorial, participants will have a better understanding of both the potential and the pitfalls for applying AOP in a J2EE context. The tools used in the tutorial are all freely available as open source software, so participants will be able to use the techniques shown in their own projects.


Give the DB a break!: Performance and Scalability

close

Dion Almaer By Dion Almaer

What do we really mean by "performance" and "scalability"? This talk gets into the meat of problems which cause our applications to degrade. We will focus on issues such as problems caused by the database being a bottleneck for our application, and see how we can architect our solutions to bypass the issues, resulting in a solid system which scales with the increased load.

Not only will we look at the factors, but I will delve into a couple of case studies to show how real world problems were solved!



What do we really mean by "performance" and "scalability"? This talk gets into the meat of problems which cause our applications to degrade. We will focus on issues such as problems caused by the database being a bottleneck for our application, and see how we can architect our solutions to bypass the issues, resulting in a solid system which scales with the increased load.

Not only will we look at the factors, but I will delve into a couple of case studies to show how real world problems were solved!


Ajax: Creating Next-Generation, Highly Dynamic, Off-line Capable Web Applications with HTML and Java..

close

Dion Almaer By Dion Almaer

Web applications have traditionally been a sort of Faustian bargain, yielding the high-quality user experience that desktop applications can deliver in exchange for incredibly easy deployment and lower support costs.

With Ajax we can get a lot of the best of both worlds. Now our web applications can be powerful, usable, an easily deployed!



Web applications have traditionally been a sort of Faustian bargain, yielding the high-quality user experience that desktop applications can deliver in exchange for incredibly easy deployment and lower support costs (i.e., no client software to install, upgrade, and test on every conceivable desktop configuration).

It turns out that these qualities need not be mutually exclusive. As several recent high-profile web applications such as Google's GMail have shown, modern browsers (e.g., Internet Explorer 6, Mozilla/Firefox, and Safari) are capable of rendering web applications with highly dynamic and compelling user interfaces -- fetching data from a server without page refreshes, animating and manipulating page contents on-the-fly, and all without resorting to third-party plug-ins like Flash. The line between a ""web"" application and a ""desktop"" application is blurring.

Let's blur it some more. Another major limitation of web applications is the lack of ability to function in a disconnected (i.e., off-line) mode. It turns out that this too is quite possible with the right architecture -- a web application can continue to function in a modern browser even in the absence of an Internet connection. And when the connection is re-established, data collected while in off-line mode can be uploaded to a server.

In this session, experienced web developer Dion Almaer (editor of TheServerSide.com) and noted Java desktop expert Ben Galbraith will explain in lucid (and entertaining) detail the techniques powering this new breed of web application. As part of the talk, they will demonstrate a non-trivial sample web application that makes use of the techniques.

One of the arguments against creating rich HTML/JavaScript has been how difficult they can be to write and maintain. Dion and Ben will illustrate how to adapt modern Java web frameworks such as JavaServer Faces and Tapestry to ease both the creation and maintenance of these types of applications.

Developers seeking practical, real-world advice for creating next-generation, rich web applications won't come away from this presentation disappointed.


Case Study: TheServerSide.com: Scaling out, and keeping up to date

close

Dion Almaer By Dion Almaer

TheServerSide.com has gone through many changes over the years. This case study talk goes over the technical problems that occured when management came in and told everyone that we would have to scale the community site across application servers from multiple vendors (BEA, Oracle, Novell, Sun).

Then there was the migration to a .NET front-end for the TSS.NET web community, and most recently was the migration of everything to use Tapestry and JDO, from a traditional EJB system.

Come to have a laugh at some of the problems, and a look at the solutions.



TheServerSide.com has gone through many changes over the years. This case study talk goes over the technical problems that occured when management came in and told everyone that we would have to scale the community site across application servers from multiple vendors (BEA, Oracle, Novell, Sun).

Then there was the migration to a .NET front-end for the TSS.NET web community, and most recently was the migration of everything to use Tapestry and JDO, from a traditional EJB system.

Come to have a laugh at some of the problems, and a look at the solutions.


Case Study: JUGCentral.com: Building a modern community with the latest technology

close

Dion Almaer By Dion Almaer

JUGCentral.com is a new user group community site, sponsored by No Fluff Just Stuff and Javalobby.

The site was built with the new 'Better, Faster, Lighter' technology stack: WebWork2 as the web framework, SiteMesh as the look and feel decorator, Spring as the business services layer, Hibernate as the data access ORM, and more.

Come listen to us talk about the architecture choices.



JUGCentral.com is a new user group community site, sponsored by No Fluff Just Stuff and Javalobby.

The site was built with the new 'Better, Faster, Lighter' technology stack: WebWork2 as the web framework, SiteMesh as the look and feel decorator, Spring as the business services layer, Hibernate as the data access ORM, and more.

Come listen to us talk about the architecture choices, learn about the technologies, and find out the 'gotchas' that we came across when building this system out, that you shouldn't run into yourself!


WebWork 2: Strutting the OpenSymphony Way

close

Dion Almaer By Dion Almaer

Many web frameworks suffer from being tightly coupled to the Servlet spec when it is not necessary, especially Struts. This makes both unit testing your Actions and reusing them outside a web application very difficult or impossible. With WebWork 2.0, the OpenSymphony team went back to the drawing board to separate the core command pattern implementation, which has become the XWork project, from the web framework specific code, WebWork 2.0, which leverages the power of XWork at its core.



Many web frameworks suffer from being tightly coupled to the Servlet spec when it is not necessary, especially Struts. This makes both unit testing your Actions and reusing them outside a web application very difficult or impossible. With WebWork 2.0, the OpenSymphony team went back to the drawing board to separate the core command pattern implementation, which has become the XWork project, from the web framework specific code, WebWork 2.0, which leverages the power of XWork at its core.

In this talk we'll cover the powerful features XWork provides including Interceptors, per-class and per-property type conversion rules, i18n localization, XWork IoC (a simple Inversion of Control container), the XWork Validation Framework, the OGNL (Object Graph Navigation Language) expression language, and more.

We'll also take a look at the features added by WebWork on top of XWork, including view support for Velocity, JasperReports, and FreeMarker, as well as our custom JSP taglib. We'll look in depth at the templating system behind the JSP tags, how to build your own templated JSP tags and components, and how the tags interact with the ValueStack using OGNL.

We will also look at other technologies which marry nicely with WebWork such as SiteMesh, the powerful API that allows you to decorate a look and feel on your application.


Apache Beehive

close

Dion Almaer By Dion Almaer

The Apache Beehive project came out of BEA, and is starting to thrive. The goals of Beehive are to make J2EE programming easier by building a simple object model on top of J2EE. Using the new JSR-175 and JSR-181 metadata annotations Beehive reduces the coding necessary for J2EE. You want to make something a web service? @WebService and be done! No more deployment descriptors!



The Apache Beehive project came out of BEA, and is starting to thrive. The goals of Beehive are to make J2EE programming easier by building a simple object model on top of J2EE. Using the new JSR-175 and JSR-181 metadata annotations Beehive reduces the coding necessary for J2EE. You want to make something a web service? @WebService and be done! No more deployment descriptors!

The initial Beehive project has three pieces.

  • NetUI PageFlows – A web application framework built on top of Struts allowing easier tooling as well as automatic updating of Struts configuration files with the use of metadata.
  • Controls – Lightweight component framework that helps programmers build components that incorporate metadata into their programming model. This project comes with a few pre-made controls as well, for example, see the Database Control Sample.
  • Web Services – An Implementation of JSR-181, an annotation driven programming model for web services.