Reviews Archives

Paul Browne

AddThis Social Bookmark Button

Which IDE is best for writing Java code? Leaving aside NetBeans (a big assumption given that it now has excellent Ruby and JRuby integration), the choice was between Intellij or Eclipse. IntelliJ while commercial, wasn’t too expensive and ‘just worked’ out of the box. Eclipse, if you were willing to install multiple plugins, could be more powerful but more intimidating.

My way around this was to install JBoss IDE. Whether or not you used JBoss , it gave a good set of standard plugins on top of the standard Eclipse to get productive immediately. But it hadn’t been updated in 12 months - until a couple of weeks ago when it was relaunched as Red Hat Developer Studio (RHDS). If you’re interested in the detail, my notes on getting started with Red Hat Development Studio (RHDS) are here.

So, having waited for 12 months, is it Red Hat Development Studio any good? The answer is ‘yes but…‘ . The good bits are:

  • It has excellent Seam , Ajax and JSF integration - a product of the Red Hat Partnership with Exadel.
  • It’s stable (hasn’t crashed on me yet) and is based on the latest Major Eclipse release (3.3 Europa). I found less conflicts when installing plugins compared to the (now 12 months old) JBoss IDE.
  • It has a good set of standard plugins - for Spring , JBoss workflow (jBPM), Web Tools - already installed.

and the bad bits

  • The size: a 524mb Download is bigger than some of the early Red Hat Distros of Linux.
  • What’s missing: No Maven integration. No Subversion Integration. Although these can easily be added, their omission seems odd given that both are becoming a defacto Java Development Standard.
  • JBoss Rules is missing. Or maybe I’m stupid and can’t find it (but I’ve looked long enough). This is a step backward from the previous version, and especially disappointing given my personal interest in Drools and Rule Engines (blog link).

Credit where credit is due; It’s only in Beta. Already it’s very good. Here’s hoping that it can be great.

Shashank Tiwari

AddThis Social Bookmark Button

Before I start talking about this book which inspired me to blog about it, let me bring up the topic of books for advanced level programmers in general.

It may be best to begin with a bunch of questions. We know of a lot of real good books that introduce various programming and software development topics but are there many books that deal with advanced topics? Is it that real experienced developers rather try it out and learn, or read up the manual, or talk to friends and strangers (on the discussion groups) and get their insight or read articles that discuss the advanced topics? Is it that the market for such books is limited and hence it’s not worth a good business idea? Is it that the thrill of gleaning from the heaps of data (good, bad and junk) on the internet is far more exciting? I certainly don’t know the answers but I do know that books on advanced topics are not that many.

It so happens that I was actively looking for a book that discussed the real world scenarios of how Adobe Flex could effectively work with server side Java. Part of the reason for this search was that in my attempt to architect and build Flex apps with existing other components, perhaps some of them already live and working fine, the complexity got beyond the available standard books fairly quickly. This wasn’t unusual since such things had happened with me with other technologies as well. Also at this stage, as many others may have experienced, I started finding the tons of information on discussions groups and blogs online as primary source for any useful suggestions. However, more recently I found this book called “RIA with Adobe Flex and Java“, which is authored by these bunch of folks (one of whom is a person I have had the pleasure of working closely with) who do RIA for a living, surprisingly helpful when dealing with pesky problems of real world application development. I am going to talk a bit about what in the book is so different or good, but before that I would digress for a bit and say that in any way I am not , in this blog post, alluding to the thought that the books that deal with fundamentals are not useful or not necessary. On the contrary they are extremely important and great places to get started with a technology. If you are a beginner in the world of Flex and Java, I would recommend that you certainly look at the following books -

Programming Flex2 - http://www.oreilly.com/catalog/9780596526894/index.html

ActionScript 3.0 Cookbook- http://www.oreillynet.com/catalog/actscpt3ckbk/

Adobe Flex 2 - training from the source - http://www.amazon.com/Adobe-Flex-2-Training-Source/dp/032142316X/ref=pd_bbs_sr_2/104-9044143-7247959?ie=UTF8&s=books&qid=1178454037&sr=8-2

Each one of these three books is extremely well written and very approachable.

Now let me talk a bit more about the book - “Adobe Flex and Java”. It is a big and bulky book, almost 700 odd pages. It has tons of code within the book, a lot of it reusable. Not all of it is well written (especially I thought the introductory chapters could have been better - In my opinion it may be a good idea to read the books on basics, I mentioned earlier, and then start reading this book chapters 5 or 6 onwards), but it has some amazing chapters on advanced topics. There are 4 or 5 chapters that have a lot of new and original content that is very good for a developer on a real project. Here I am going to talk about those. Chapters 6 and 7 talk about something the authors call “data management services”. It illustrates the techniques and ideas of extending the remoting capabilities, auto generation of the plumbing code that glues java and flex together and patterns for leveraging database definitions for creating not only data access objects but pretty much all other related artifacts. Chapter 10 and 15 are “Working with large applications” and “Integration with external applications” respectively. Both these are gems. The one on integration has an elegant illustration of how Flex and Microsoft Excel could be used together. Then there is a chapter on developing custom charts - another truly exceptional chapter. And of course there are chapters that talk about extending widgets and controls, discuss the data grid, explain the asynchronous data population techniques and talk about debugging. All in all a very useful resource for advanced Flex and Java developers.

Let me ask another question to complete this post - Have you had similar, better, worse or contrary experiences with books on advanced topics, books on flex, books on flex and java or this book in particular?

Shashank Tiwari

AddThis Social Bookmark Button

The desktop transformed user experience through the last 20 years and has been the entry point for applications for a long time now. Come to think of it, even the browser is an application that resides in the desktops of users. The browser helps us access sites that run applications and that may be an aggregation itself, like a portal. The web applications, which traditionally were database centric and form, based data entry and reporting, email and ecommerce type applications are maturing into online office and collaboration applications (the offerings from Google), online gaming and online drawing applications (Gliffy). Interestingly enough though, the desktop has not changed fundamentally in its many years of existence and is still focused on file management, document creation and deletion, and local storage of documents type of functionality. Of course there has been the inclusion of web technologies into the desktops. More recently, Microsoft and Adobe (with its Adobe Apollo) may be examples of companies that are bringing the concepts and technologies of the web to the desktop. An important question then is, what is the future of the desktop and that of the web? Would the desktop be replaced by the web or would the web pervade throughout the desktop? These and related ideas were brought-up by David Temkin (www.davidtemkin.com), the co-founder and CTO of Laszlo Systems as a part of his presentation at the AjaxWorld in New York. David seemed very bullish about the web outperforming the desktop in being the center of user experience in the long run. Guess that is why, Laszlo is taking the desktop to the web with its Webtop offering and betting on it being a preferred solution going forward. Of course they are not the only ones doing it neither are they the first to do it. Laszlo Webtop is a solution that provides the infrastructure to build a web-desktop or a “webtop”. It leverages Java on the server side and is built to take advantage of the established server side java frameworks and mechanisms. (I tried the initial release of this product and maybe would talk about it sometime later or try and compare and contrast it with similar offerings from other vendors.)

Now we are not sure if the Laszlo Webtop is the winner in the long run and I am not trying to present David Temkin’s presentation verbatim here, but I think the questions he has raised and his opinion on the matter are indeed something for us to ponder about. Considering that java developers may still be struggling between old Apache Struts type web frameworks and the numerous hybrid choices that AJAX/RIA have presented to them, are they thinking about where the web-desktop convergence is going and the role they want to play in shaping this convergence’s destiny. Or is it that some of us are happy that such concepts could theoretically be partially or fully implemented as Applets even some 10 years back. Or is it that we are waiting for a JSR to be initiated for such a purpose :)

Robert Cooper

AddThis Social Bookmark Button

So, Sun Tech Days is blowing through the dirty south. Today was “NetBeans Day” (with a parallel Open Solaris event).

Boy it was unimpressive. The opening was actually kind of funny. The speakers were pretty obviously preaching to a hall of the converted already, so the kind of “Yay us!” marketing opening seemed almost funny. Things really got hilarious when people started asking Tim Cramer and co. actual technical questions at the end of a “look at our market growth!” speech. Honestly, I felt the questioners’ pain. Given the nature of the people in the room, I think there was much more of a desire for a heads down technical session than it turned out to be.

All in all, the content seemed dry. It was the identical pitches given at the last NetBeans World Tour and at J1 last year, which kind of stunned me. Given the cool stuff we have seen coming from Tor and Charles on JRuby, the whole Groovy 1.0 events and the revamped editor framework, I was really hoping to see a lot of “Look at the awesomeness that will be 6.” In stead we got a rehash of stuff that is kind of old news. Yeah, the JEE support is cool. Yes, the UML tool is free and round trips (in spite of the fact that graphically it is ugly and it is impossible to get the lifeline titles lined up right in a state diagram). This all would have led to a somewhat disappointing day… then came the last few presenters.

Here’s a tip: get an engineer to do these. They might not be the most charismatic speakers, but at least they will likely know how to use the product. Watching people with less knowledge of NetBeans than I have fumble through a presentation was almost painful.

OH, and Note to Sun: Making a JSF page that submits a form to another page that renders a prepopulated Google Maps component is *not* making an AJAX application. Please stop giving this demo as an example of “AJAX” development. I have seen it three times now and it makes me want to womp someone on the head every time I see it.

Tomorrow is the “big” event day. They have another Pimp my Swing session, I assume it will be the same one as J1. There is something else on Tango scheduled. I was really hoping NB Day would be a place where I could get some real questions answered, and I would love to pound someone from Sun with questions about Tango and JAX-WS. At this point, I am actually thinking about going into the Solaris sessions though. I figure I might actually walk away with new knowledge that way.

Norbert Ehreke

AddThis Social Bookmark Button

Modelling business processes often involves manipulation and visualization of directed graphs. In a recent project our Java client software needed such a visualization tool, yet we had no time delving deep into these topics. Plus, reinventing the wheel is never such a great idea. After some googling I came up with a tool called yEd.

Tim O

AddThis Social Bookmark Button

Technology adoption is an unpredictable process - part theater, part academic review, part marketing. In Java it is especially confusing becuase we have so many different “channels” to watch for new anouncements, there are conferences, there are web sites like Slashdot and TheServerSide, there are a zillion personal blogs like DHH, and O’Reilly’s Radar. An interesting technology might generate a huge buzz one week only to see this buzz fall off as people notice that the product wasn’t ready for prime time.

For a product to make it into the mainstream, early adopters have to like a product enough to undertake the often impossible task of convincing more cautious developers that new technology X is worth adopting. Technologies such as Hibernate or the Spring Framework take years to become established products. Some products, like Maven, have a hard time becoming established because they either lack sufficient documentation or have difficulty challenging well established products like Ant. I’m interested in this blind spot in the process, the time between the buzz producing introduction and early adoption to large-scale adoption usually takes months to years, and is difficult to chart because, in many ways, it is viral. HIbernate didn’t take the world by storm as much as it slowly reached a critical mass of self-sustaining adoption. A failed project like OJB certainly generated a buzz at one time, but it failed to make good on promises - in that case early adopters actively discouraged others from using it in favor of Hibernate. Turning our attention to the Google Web Toolkit (GWT)

Where is GWT in this process?

GWT seems to be in the middle of this early-adopters stage. The initial buzz has worn off, we saw a flurry of articles and blog posts about GWT, and it appears that we’re waiting for this first class of GWT adopters to report back on experiences with the GWT. We’re waiting for the first public site to show us what is possible with the GWT. My more cautious colleagues are avoiding it altogether, actively disparaging it as a bad idea altogether. Risk averse developers tend to criticize most new technologies until they have been demonstrably proven to work in a real-world situation - “Maven ‘Sucks’ until they see that IBM is using it, etc”. Those developers that have the ability to take risks are taking the framework out for a test drive. Of these early adopters one has sworn it off completely as inappropriate for his organization, “It reminded him too much of Swing”. Another colleague has embraced the idea in principle, but doesn’t have the time to integrate it into his existing web application. In terms of adoption where is the Google Web Toolkit? What is the experience of the early adopter crowd?

To answer this question I spoke with Michael Podrazik of Grassroots Technologies, a consulting group based in New York City. Through his work with Grassroots, Michael has been using the Google Web Toolkit (GWT) for a new web application currently under development. In the following interview I asked him to communicate his own experiences with this product in an attempt to help others currently considering the GWT. I specifically asked him for an objective opinion of GWT, and to describe, in detail, the challenges he faced when developing with the GWT framework. Hopefully, this information will help you decide whether or not GWT is the right choice for your projects.

Read on, read the interview and share some of your own real experiences with GWT in the comment thread.

Steve Anglin

AddThis Social Bookmark Button

This is a recap of sessions attended at JBoss World 2006, held recently:

Steve Anglin

AddThis Social Bookmark Button

This is a conference report of JBoss World 2006, held in Las Vegas, NV. This one focuses on the news highlights from the show. More coverage next week.

Tim O

AddThis Social Bookmark Button

Try the latest Callisto Release Candidate

Whenever I upgrade Eclipse, I’m tempted to download the latest development release. Instead of clicking on the production release, I tend to look for other versions and download the latest release candidate or integration build. I’ve been running a Eclipse 3.2 integration build since last November, and it worked so well I forgot that I was using an early integration build. I finally upgraded this week, and in doing so I decided to try the latest release candidate of the Callisto Simultaneous Release. Verdict? It’s official, Eclipse is no longer just an IDE, it is a powerful platform, and I was surprised at the breadth and quality of this release. Read on for an account of my own experience.

Tim O

AddThis Social Bookmark Button

Mergere just released “Better Builds with Maven”, a free book focusing on Maven 2.0. It was written by Vincent Massol, Jason van Zyl, Brett Porter, John Casey, and Carlos Sanchez, all core members of the Apache Maven Project Management Committee. If you are using Maven 2, or if you are starting to use Maven 2, you will want to read this book. It’s free, go download it now.

Paul Browne

AddThis Social Bookmark Button

The 2nd most useful Java-Oracle Tool that I’ve used this year is schema spy.

How often have you taken over a project without any documenation? Even worse , there is a database involved, and everybody just ‘knows’ (or pretends to know) where things are. What if all the orginal developers are gone and nobody is left to explain things? I can find my way around most legacy Java code , but databases leave me cold.

Still not convinced - take a look on the Schema Spy website. The level of information that this tool gives you takes you from knowing nothing about the database to knowing almost everything.

Interested in trying it out? Follow these simple steps
- Download it from http://schemaspy.sourceforge.net/
- Change the configuration to point to your database
- Install the Graphviz component (available here)
- Run the tool and await your fully documented database.

Just to shame the commercial competition , as well as Oracle , Schema Spy supports DB2, hsqldb , Microsoft SQL Server, MySQL, PostgreSQL and Sybase. It’s written by John Currier and is well worth a donation.

In case you’re wondering, the most useful Java-Oracle tool for 2006 is Oracle’s project raptor. Schema spy runs it a very close second. Considering that it’s a Billion dollar company Vs one man , I’d chalk that up as a victory for the little guy!

More Technical Blogs in Technology in Plain English

Steve Anglin

AddThis Social Bookmark Button

Here is my coverage of TheServerSide Java Symposium, held in Las Vegas, NV from Mar 23 thru Mar 25:

Thu Mar 23 Sessions Attended

Advanced Testing Techniques with TestNG: TestNG is a recent open source lightweight testing framework built on annotations that offers advanced testing functionalities such as test groups, method parameters, dependent methods and time-outs. This presentation offered a short introduction to TestNG as well as examined some testing scenarios typically encountered by programmers in various software areas and how TestNG does seemingly help create elegant and simple testing designs and serves as a viable testing alternative to unit testing.

RAD That Ain’t Bad: Domain Driven Development with Trails: The open source lightweight Trails framework aims to take a new approach to Rapid Application Development in Java using proven frameworks like Spring, Tapestry, and Hibernate. By eliminating redundant steps in the development process and stressing convention over configuration, Trails can greatly accelerate development of RDBMS persistent web applications. In this session, the speaker gave a real Trails application in a few minutes, and then dived into the details of how Trails works. While Trails seems quite powerful, it’s still nascent as it relies only on heavy integration and use of Tapestry along with Spring. You can’t use other Web frameworks like Spring MVC, Struts, etc. If you’re already using Spring, I think Trails becomes superfluous, imo. While configuration with Spring may take longer initially, it should be smooth sailing with Spring, which also caters naturally to Domain Driven Development anyway. Trails currently is an extra layer, but long-term may be different. We’ll see. Trails is an open source project on Java.net.

Spring Update: What’s New and Cool in Spring 2: Spring 2 is a major release that makes the open source lightweight Spring Framework both more powerful and easier to use. In this presentation, Rod Johnson surveyed the new features of Spring 2, before focusing on two of the most important: the introduction of extensible XML configuration, and significant enhancements to Spring AOP. Spring 2 allows Spring configuration to be enhanced with custom XML tags, which can provide valuable abstraction for repeated or complex configuration tasks. Rod showed how to define new tags, and how this capability would benefit all Spring users. Spring 2 makes Spring AOP both simpler and far more powerful, and marks a major milestone for AOP in general. In conjunction with AspectJ 5, Spring 2 provides a complete roadmap for AOP usage, from dynamic proxies up to full use of AspectJ weaving, using the same programming model. It becomes possible to use the powerful AspectJ pointcut expression language in Spring AOP, as in AspectJ. Spring AOP can even run AspectJ annotation-style aspects within its proxy based runtime, with the same low cost of adoption as Spring AOP. For more, visit SpringFramework.org.

Fri Mar 24 Sessions Attended

Introduction to JBoss Seam: JBoss’ Gavin King talks about EJB 3 and JSF as they are perhaps the most exciting new developments in the Java EE 5 platform. Seam is an innovative new open source lightweight enterprise Java EE 5 application framework that integrates the EJB 3.0 component model with JSF as a presentation tier. Seam builds upon the standard extension points provided by both specifications and provides a set of Java Annotations that extends the standard annotations defined by the EJB specification. In addition, Seam introduces several innovative new ideas: managed conversations, declarative and contextual application state management, bijection - a generalization of the notion of inversion of control and integrated business process management. As King illustrated, JBoss Seam seemingly tackles all these problems, and provides a uniform model for stateful components in Java EE 5. For more, check out JBoss.org.

Apache Geronimo Prime-time: the open source, and now becoming lightweight, Apache Geronimo is the latest open source application server to achieve J2EE 1.4 certification, making it ready for prime time in the Enterprise. It is now a real contender in the open source application server market and offers a unique architecture making different open-source projects pluggable and capable of building customized stacks. This session by author Jeff Genender presented an overview of Apache Geronimo, its architecture, its major open source components, how it works, and how to configure and use the application server. This covered Geronimo’s different concepts such as the kernel, GBeans, deployment and different configurations, and running the application server. Apache Geronimo 2 is also in the early works, which will allow Java EE 5 deployment once Geronimo is Java EE 5 certified. Lastly, Apache Geronimo is IoC compliant, and can currently deploy Spring-based developed applications. For more, go to the Geronimo.Apache.org site.

Sat Mar 25 Keynote and Sessions Attended

Keynote Panel: Enterprise Java Trends with Rod Johnson, Bruce Tate, Floyd Marinescu, and more…

“The Web-tier is broken… In 3 years, (Java-based) Web frameworks will be obsolete.” — Rod Johnson
“Java is in trouble on the low end.” — Bruce Tate

These quotes were an admission that Java is not best for all things. It’s best for the core domain model, but in terms of the Web-tier, Java just does not offer enough of a lightweight solution or flexibility as PHP and Ruby (on Rails) offers, currently. That’s why we are starting to see Spring lead the way with integration offerings to Java-based scripting languages. The need for Java-based scripting is clearly growing in demand according to the keynote panel. Rod represented the moderate view. Bruce Tate tood the more extreme view that Java is just not right at all now and that’s why Java developers should move to Ruby on Rails. And Floyd Marinescu represented the other side and most likely the JBoss view that Java isn’t broken in the Web-tier as much as Rod and Bruce may make of it.

And the sessions started up again with Persistence with iBATIS - Hands On: In this session, iBATIS lead Clinton Begin actually used only a Java IDE and real-world examples to demonstrate how iBATIS is used to create an effective persistence layer for your application. There were no code snippets here, the persistence layer was seemingly coded and tested from scratch. Seemingly, iBATIS is easy to learn and use. It’s one to watch, but Hibernate is still the leading adopted persistence framework, followed by the big potential that the Java Persistence API (JPA) in EJB 3 offers. However, Spring does use and integrate iBATIS along with Hibernate.

Building Quality Applications with Ajax Frameworks: According to Dion Almaer and Justin Gehtland, Ajax techniques can lend tremendous richness to your Web UIs. But Ajax can be tedious and difficult to implement from scratch. Fortunately, there are a number of powerful frameworks that can make it much easier to do Ajax, including some that integrate with Java-based Web frameworks. This session demonstrated (through live coding): The popular Prototype, Dojo, MochiKit, DWR and Scriptaculous Ajax frameworks, each of which offers unique abilities to enhance your applications. These frameworks can be used with any server-side framework and their use with Struts and JavaServer Faces applications. This talk also discussed the state of Ajax support for JavaServer Faces via third-party JSF components and JSF-specific frameworks. Lastly, they showed how to easily add amazing Ajax effects to Java-based Web application.

Java Persistence API: One of the key results of the work on EJB 3.0 has been the introduction of a new, standard API for Java persistence and object/relational mapping. This work initially began as part of the EJB 3.0 and, in response to the urging of the Java community, has been expanded to include use in Java SE environments (”outside the Java EE container”). The talk covered key aspects of the Java Persistence API, including use of the EntityManager API, persistence units and persistence contexts, object/relational mapping using Java metadata annotations, extensions to EJB QL, and use of Java Persistence in Java SE environments. Also, from the show in general, we learned that an open source JPA effort, OpenJPA, is perhaps being accepted as a proposal into the Apache Software Foundation, and will go into the Apache incubator. IBM, Spring, BEA and others are apparently planning on backing this open source effort.

And I ended the show by perusing XQuery for Java Geeks by Jason Hunter and Bruce Tate’s Beyond Java session, which focused more or less on Ruby on Rails. All in all, it was a good show. If you missed it, you have another chance as TSS Java Symposium goes overseas to Barcelona, Spain. For more, visit TheServerSide.com and/or TechTarget.com.

Tim O

AddThis Social Bookmark Button

Related link: http://www.etsy.com

Having trouble explaining concepts like Folksonomy and Web 2.0 around the table during the holidays? Look no further than Etsy.com. This site provides an online exchange for handmade goods and crafts. It provides a fully-Web 2.0-compliant buyer and seller community for everything from vintage jewelry and wookworking to quilts and papergoods. It is Paper Source meets Flickr and it is the perfect vehicle to explain Web 2.0 concepts to a cynical audience. Read on…

Advertisement