Sxore

Thanks to this post at Argolon , I’ve now enabled Sxore on Technology in Plain English.

Sxore is a way of sharing your identity (if you choose) so that you don’t have to sign in to multiple blogs to leave comments. For the blogger , it reduces blog spam by more clearly identifying who is human and who is not.

Now, if I could only find a wordpress plugin to solve my Technorati problems

Web2Ireland – almost Mainstream

Been reading the various posts by bloggers on the recent Web2Ireland event organised by Enterprise Ireland.

(Photo of Marc Canter Speaking , by Dermod)

Prize for one of the better (and concise) definitions of Web 2.0 goes to Kevin Sherry of Enterprise Ireland:

Web 2.0 is the Second Wave of Internet Business Activity.

Having said that , my view is Web 2.0 is almost , but not quite , going mainstream (in Ireland at least). Judging by the people I met (more below) and the dress standards I would judge the audience as 1/3rd Business-VC (suit and tie) 1/3rd Techie (Jeans and T-Shirt) and 1/3rd Professional Technologist (Suit but no tie). This contrasts with the last Web 2.0 event , where the audience was almost exclusively techie, despite dual business and technology marketing.

You can judge for yourself from the agenda at the Web2Ireland site, but my only gripe is that I’m not sure if Enterprise Ireland got the balance right. Aside from Marc Canter (who managed to successfuly quote Joyce in a techie presentation!) the main speakers – Judy Gibbons from Accel and Jeff Clavier (Software Only) – were either VC or Angel investors. That’s not to say that they didn’t have a lot of good, interesting and relevant things to say (more below), it just meant that you had to bear in mind their angle on things (we want to lend you money). Given the success of all the people mentioned  this paragraph, I think they are well worth listening to. Adam Green , who despite being on a blogging break, hosted a very good lunchtime session (summary: ‘everything is XML’).

The key things I learned from the above speakers were (these are paraphrased , so excuse me if the quotes get lost in translation):

  • Web 1.0 is dialup , Web 2.0 is broadband.
  • Web 2.0 is part of a virteous circle, where each technology builds on the expectations – e.g. consumers now expect to find information online , so more information becomes available.
  • Web 2.0 is still incomplete , so need to navigate around what is possible and what is not. (e.g Netflix , started with posting out DVD’s , but will stream video as that becomes widespread).
  • Content is not scalable, but user generated content is.
  • ‘The customer is only one click away from never using you again.’
  • A valid business model is (still) seeing what has worked well in the US, then implementing it in Europe before the Americans can.
  • Only exit strategy is to be bought – forget about IPO’s.
  • Innovation comes from small companies.
  • Make your website / service addictive.
  • Leverage the power of community.
  • Enterprise Web 2.0 is not there yet , but it will be.

This last point is of particular interest, given that the stuff that FirstPartners build is increasingly Web 2.0 techniques and technologies applied to the problems of the Enterprise. That’s probably worth another , separate blog post.

There a lot of good people that I met on the day, but a lot of people that I either missed, or didn’t have enough time to complete our conversations. By way of an apology , I’ll use the power of WordPress to trackback to them. Their blogs are well worth reading for further information / angles on the event.

Technorati Tags:

The 2nd most useful Java-Oracle tool this year

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!

Finding Good Ruby People

If you’re non-technical , or less technical than you used to be , it can be daunting sorting the good people from the bad (and believe me , I’ve met some of the bad ones).

This is doubly difficult for new languages like Ruby , where you might not have the expertise in house to sort out the most obvious blaggers. Java used to have this problem 5 years ago when it went mainstream , but there’s enough half-decent Java people in most companies to flag when something seems wrong with a CV / interviewee.

If you are looking for Ruby people (maybe attracted by it’s ability to do make the routine things easy , or by it being the lingua franca of Web 2.0) , then this article on O’Reilly maybe a good place to start.

Web 2.0 and Enterprise Java – move over Struts

A while back I wrote an article for an O’Reilly sister site, Java.net , on Sprinkle Some Ajax Magic into your Struts Web Application. I’m going to repeat one thing I said in this article: while coding Ajax is cool, you really want to use a framework if you have the choice. If you don’t believe me , check out some of the podcasts on Ajaxian.com. When you listen to the problems that the frameworks have overcome (What if the ActiveX XmlHttpRequest Object is turned off? What if you want to do local storage? What if the user hits the back button?), you’ll be a convert to the ‘Frameworks are better’ approach. So which Ajax enabled framework should you use as an Enterprise Java developer?

Pre Ajax, the answer to ‘which Java presentation framework should I use?’ would have been Apache Struts. Not because it was technically better than any of the other frameworks (although feel free to leave your comment!) but because everybody else is using it. This meant
(a) using Struts is good for your client, as they can replace you if you get run over by a bus and
(b) using Struts is good for you, as you can take your Struts skills to your next piece of work.

However , in this strange new Ajax and Web 2.0 world, things are beginning to change. Javascript gone from ‘has been kiddie scripting language’ to ‘coolest thing on the planet’. User expectations about what Enterprise Web applications can are going through the roof as Web 2.0 enters the mainstream. What Java framework are you going to use to deliver these expectations?

With this in mind, I did some research on the Ajax Enabled Java frameworks that are currently (Feb 06) available. I tried to pick out the best ones (best for your career, and hopefully technically best) based on the following criteria:

  • Java – Web development frameworks with Ajax capability.
  • Rating based on technical capabilites, and which is most likely to be the ‘next Struts’ (i.e. become the defacto standard for Java-Web Development).
  • Rating is based partly on downloading and running the projects and partly on evaluation of what the websites / other people say.
  • Products must be available (at least partly) in open source form with a recognised open source licence – as these are most likely to get community traction.

Before we get into the list, there a couple of items that you may think are missing:

  • Whatever you may think of non-Java frameworks (e.g. Ruby on Rails, PHP with Ajax), these are not included here. The notion of Java being replaced by Language / Framework ‘X’ is an entirely different article.
  • The list also does not include several excellent ‘server neutral’ frameworks such as BackBase, Dojo, Prototype, or JSON. While these frameworks are included with some of the toolsets listed below, we’re aiming to get an ‘out of the box’ toolkit for the Web tier of Enterprise Java applications.
  • You’ll also probably note that there are 3 implementations of the Java Server Faces (JSF) standard on this list – MyFaces , Ajax JSF and Struts (Shale).

Think we got the evaluation wrong? Leave your comments at the bottom of this post.

Ajax Java Web Presentation Frameworks

AjaxAnywhere Independent of Java framework (e.g. Struts, JSF or Spring). Closest in approach to Java.net Struts-Ajax Article. Good interim solution based on existing frameworks, but can’t see this being the main framework long term.
Apache Myfaces Apache implementation of JSF, including technology donated by Oracle from ADF / Oracle Fusion. Being Apache, will become one of the main JSF implementations in use. But is JSF the best way of doing your website?
App Fuse combines a lot of the leading frameworks (Struts, Dwr, Spring with JSF as an option) into one easy to use package. Already a very good ready to go package (for web , mid and business tiers) and the Appfuse team have a good track record in integrating the latest, most widely used frameworks.
Ajax JSF Ajax implementation of the Java Server Faces Specification. Good indication of what a full JSF Ajax implemention would be like, but implemented by only one brave developer!
Echo 2 Evolution of original Echo Framework, can run in any Servlet container. Original has cult following, but doubt if it will become the number 1 web framework.
DWR – Direct Web Remoting Acts as a proxy so that you can call Java Objects transparently from Javascript. Good solution, seems to have traction, even though it still forces you to write Javascript and keep objects in Synch with Java. Several other frameworks (e.g. Appfuse and Webwork (soon to be in Struts) integrate this.
JSP Controls Aims to be drop in (Ajax enabled) replacement for JSP Tags. Can be used both with simple JSP and other frameworks, but at the time of writing has less than 1000 downloads
JWIC Dynamically add Ajax to Java class based application – similar to Velocity concepts. A good simple framework, based on POJO’s but doesn’t (yet) seem to have much traction on sourceforge.
Struts The original, and to many, still the best. Many changes are afoot in the next version, including the integation with WebWork (which already has Ajax capabilities) and the move to the JSF compatible (‘Shale’) Struts aims to be backwards compatible, and the forthcoming JSF and Ajax capabilities look good. Pity there is no ‘offical’ milestone release yet.
Struts Layout Struts Tags, but with Ajax capabilities. Another good interim solution based on Struts, but is the Struts Event model suited for the Ajax world? (e.g. multiple events being raised from the ajax web page, instead of just the one (GET or POST) in the standard HTML model)
Swato Integration with Java Servlets through use of Servlet filters.Not a lot of documentation, nor a demo to encourage me to invest more time in it.
Tacos aimed at providing Ajax for Tapestry
Tapestry is technically a good framework, just didn’t seem to get the traction Struts did. Not sure if adding Ajax is going to change that.
Webwork Will integrate with next version of Struts (as Model – called the ‘struts action framework’). Strong contender, gives Ajax functionality through (integrated) DWR and Dojo.
WidgetDev Hybrid (Open-source/ commercial) Framework. (In my opinion) Not enough maturity / features to justify open source version with reduced features
zk8 XUL / XAML type framework , capable of being rendered in either Swing or HTMLGood Framework, might attract people who are familiar with extending Firefox using XUL, but can’t see XUL (no matter who much I think it is a good idea) being mainstream without a visual designer.

Conclusion
The New Struts is …. Struts. Some other framework may overtake Struts to become the new standard, but I would recommend the following Struts-related frameworks based on the following scenarios

Scenario 1: Adding Ajax to existing Struts Applications. Use AjaxAnywhere – closest to the approach taken in the article Sprinkle Some Ajax Magic into your Struts Web Application. Despite writing this article , I see the frameworks evolving rapidly to the point where you would only take such an approach for adding Ajax to ‘Legacy’ applications.

Scenario 2: Need Ajax Now for a new Java Application. Use Appfuse as it gives Struts, Ajax (with DWR) and the possiblity of JSF integration now, all ‘out of the box’. This fits in well with …

Scenario 3: Medium Term. Use an implementation of JSF (either MyFaces or whatever Appfuse promotes – probably Struts Shale). Struts Shale (JSF) has so far released only ‘overnight’ builds. Apache MyFaces (JSF) tool support and Ajax capabilities are likely to improve over time. Both Struts-Shale and MyFaces are likely to play well with AppFuse , making it a safe bet for investing your time checking it out.