Sugar CRM lands in Dublin (Irish Times Jobs)

We’re big fans of Sugar CRM, and have recommended it to clients in the past. It does Customer Relationship Management (CRM) – basically the numbers you have in your mobile, but at a corporate rather than an individual level. We proposed integrating it with a (Java Based) billing system – we didn’t want to have to build (yet another) contact management system, as the value add was integration. Getting PHP (the web scripting language that Sugar is written in) to work with Java is getting easier but not straightforward. But hey, that’s what we do.

Sugar CRM Logo

So it in Friday’s Irish Times Business section (main part), I was surprised to see Sugar advertising for people for their Dublin European HQ (I obviously missed this press release back in March announcing the opening). The ad in the main part says ‘look at page 19 of the jobs section’. Page 19 exists, but no Sugar CRM ad. Strange.

Michele (him of Blacknight) talks a lot about Sugar CRM, from the hosting point of view.

Update: Link to the Sugar CRM Careers page (includes CRM Jobs in Dublin)

What's better than a blog for getting more visitors to your site? A Wiki

Regular readers know that there are three parts to this site:

  • The blog (the part you are now reading) – aimed at business people with a passing interest in technology.
  • A wiki (more later) – undiluted techiness, and a scratchpad for various projects in progress.
  • The ‘corporate‘ site – the usual ‘happy people in front of PC site’, with standard ‘about us’ , ‘contact us’ and ‘what we do sections’. This is the part that thankfully, Eoghan is working to update.

If you don’t know already, a wiki is an easy to update website that almost anybody can edit. The most famous is Wikipedia, we use the same software , Mediawiki, on our site. It’s good / free /open software, and if you’re able to setup a blog , you should be able to get this working with little of no problems.

Looking at the stats for the last 18 months , I’ve noticed the following:

  • At the moment , traphic to these is split roughly 60-30-10 (should keep all you MBA types out there happy). 60% goes to the blog, 30% to the wiki and 10% to the corporate site.
  • Visitors to each section are looking for very different things – people tend to hit the blog via cross posting and general search terms (e.g. Java Dublin). People come to the wiki looking for very specific terms (e.g. Apache Lucene Exception). People come to the ‘corporate’ site, either after personal contact, or reading my CV from other channels.
  • The writing styles in each are very different. The wiki gets updated most , but is often a series of technical notes in various stages of completion. The blog is updated (on average) 2-3 times a week , with more composed items. The corporate site get’s updated roughly every 3-6 months and has a much ‘dryer’ official style.

All of which brings us back to why a wiki is even better than a blog for getting people to your site.

  1. The current wiki has only been working 7 months (since our last web hosts big crash) and already (without any serious promotion) is getting half as many hits as the (heavily promoted) blog. This is before we get into implementing Richard’s Search Engine Optimisation tips. From previous experierence, I would expect to get 4 times as many hits without too much effort.
  2. Wiki’s are updated even more often then blogs. Google loves frequent updates. Therefore wiki’s are even better than blogs for SEO.

Build your Web2 site quicker – Free Ruby Book

Ruby has a lot of buzz around it. The idiots version of what Ruby is:

  • It’s a programming language (like Java) that allows you to tell computers what to do.
  • Used with the Rails framework , it allows you to churn out your latest Web 2 site faster than you can pitch it to your friendly VC.

InfoQ has a good link to a Free Ruby Book that has just become available. The author of the book (Jeremy) blogs here.

Free Ruby Book Link

We have two main reasons why we’re interested in Ruby:

  1. Java is great for scalable , Enterprise systems used by thousands of people. Sometimes we just want something quick and dirty to try out an idea.
  2. If your idea proves successful , you want a migration path (i.e. not to have to throw away all your original work). Ruby gives you this as the way it is organised means it is less likely to fall into a heap (Object Orientated)
  3. So Why not PHP (the way this blog, using wordpress, is built)?  Ruby has a companion tool called JRuby. This means that you can run Ruby code anywhere you can use Java. Anything that Java can do , Ruby can do as well.

We’re also going down the free book route on Enterprise Web 2.0. Only it’s taking us a lot longer to get there. Currently the problem is a techie version of writers block.

I'm not used to this from a hosting company

I’m in shock. I don’t normally get this kind of treatment from a hosting company.

Normal Version (for more see this post)

  1. Try something vaugely technical and fail
  2. Post support ticket on website
  3. Have support ticket ignored
  4. Post another support ticket , have it ignored
  5. Have credit card billed for hosting
  6. Repeat steps 2-5 until hosting company dies (it actually happened).

Java and Linux VPS Hosting by RimuHosting

New Version

  1. Try to upgrade to PHP5 (latest version of the language the website is written in)
  2. Find good script on support section of hosting company website
  3. Script fails near end (these things happen), raise support ticket.
  4. Get response within 6 hours (hmm , that’s strangely fast!).
  5. Shock! Not only have the updated the script, but they’ve actually gone and performed the upgrade for me , saving me about 2 hours work.
  6. Still not believing 5 , I double check the upgrade , and yes, they’ve actually done it!

Now , if only they could do something about the name (I’ve lived in New Zealand , so I know Rimu is actually a type of tree, but a lot people just think it’s rude!).

Sxore is the spawn of the Devil

Alternative title: if you left a post in recent weeks, and it hasn’t appeared, I’m sorry.

Sxore Logo

(don’t click on the link. It will only make it worse).
I dabbled with Sxore a while back for this site. At first it was great, users didn’t have to login to leave comments. Then , for some reason, sxore stopped letting me login, and didn’t have a ‘lost your password?’ link to save the day. Hundreds of insightful / witty / cutting comments got lost in the ether.

I bit the bullet and turned it off. The problem being that my ‘last known good’ version of this blog had sxore as part of the backup. So , every time I restored the website (you’re looking at version number 3), sxore came back again.

So , if you left a comment and it’s not here, I’m sorry. It only makes me feel slightly less bad that Conor from Argolon (the Sxore dealing merchant that he is 🙂 has turned it off as well.

JRuby – Web 2.0 in the Enterprise Java world

On a recent project , the choice was between Enterprise Java (using frameworks such as DWR and Struts) , or Oracle Forms. The newest latest Java technology , versus a 15 year old technology that Oracle is comitted to phasing out (and moving to ADF / Oracle fusion). No contest , you think , until you hear that the decision was made (and rightly so) to us Oracle Forms.

‘What?!’ I hear you say – how could this happen? The project in question was fairly simple – get information and store it in a database. The problem is , despite being mainstream for the last 6 years, there is no standard, easy ‘drag and drop’ method of doing these applications in Java. C# does it in Visual Studio. Oracle does it with Forms. With Java (and despite having doing 10 or so of these projects), there is still too much plumbing that the developer needs to know.

I’m expecting a deluge of ‘have you tried project X’ on this post. And yes, I expect that an Eclipse based tool will probably fill the gap. But for these simple applications , there is no standard way of doing this (standard being a solution that dominates the market in the way Struts did the Web App framework space, until recently). But we’ve been waiting 6 long years!

ruby on rails logo

All of which brings me to Ruby. Ruby on Rails’ sweet spot is exactly these kind of simple, ajax enabled , no frills ‘get info from web and store it on database’ applications. Enterprise Java’s sweet spot is the heavy lifting workflow , Rules , Calculations, Integration with Legacy and other systems , web services and basically anything to do with Business logic. The two are a perfect complement to each other, which is why the news that JRuby now runs Ruby on Rails is especially interesting.

JRuby is a version of Ruby that runs in the Standard Java Virtual Machine (JVM). It means that (1) You don’t have to install Ruby, which might meet resistance in a corporate environment. It also means (2) that all the methods you have available in Java you have available in Ruby. The O’Reilly Ruby site and this Javaworld Article are good places to start learning more about Ruby and linking it into Java.

What you missed at the Dublin Java Meetup

15 people turned up to talk about Java yesterday evening in the Forum Bar Dublin. Actually we talked about the World Cup (Ireland didn’t make it , but we had the choice of 6 other teams, including Jakub who was very selfish and had two!), Ruby (which is going to eat Java’s lunch in some areas), PHP, Naked Objects (write in Java, deploy in .Net), JavaKicks (a Digg like service, targetted at Java), .Net, Enterprise and Financial software, Spring , EJB 3.0, Apache, Blogging , Web 2.0 , Ajax , Service Orientated Architecture, Government Tenders, the Dublin Contract market and a little bit about Java.

Can’t make it along in person? We’re going to do a 2nd Java meetup, but in a ‘virtual pub’ for people who find it hard to get to Dublin. We’ll still carry on with the existing (face to face) meetups. As an extra, at 7.30pm the last Tuesday of the month we’ll have an open chat session (We’ll setup chat software on this or another website).

So, for 7.30pm on Tuesday 25th July I’ll be online. We’ll start with ‘What technologies should I be learning in the next 12 months?’ and let things develop from there.

Fancy a job at Google Dublin?

As posted on the Irish Linux User Group mailing list:Google Logo

Data Center Linux Systems Administrator – EU Headquarters
This is a permanent, full time position based in Dublin
Google is the premier provider of Internet search and has the most advanced
search technology in the world.

We are looking for exceptional System Administrators, at all levels of
experience,
to support our growing server infrastructure.

The ideal candidate will
– work effectively alone, as part of a team or as the technical lead in a
small group of technicians.
– be goal-oriented
– be able to handle interrupts while fluidly switching between several
projects
– take a “work smarter, not harder” approach.
– enjoy looking for opportunities to come up with solutions to difficult
problems.
Responsibilities:
– Configure systems and network devices
– Monitor system stability and performance
– Help develop tools to monitor and maintain systems
– Ensure 24×7 operation
– Proactively scale systems to meet anticipated demand
– Write comprehensive documentation
– Assist in the training of other systems administrators

Requirements:
– BS or MS in Computer Science or equivalent experience
– Multiple years of Linux or UNIX system administration experience
– Working knowledge of TCP/IP networking
– Knowledge of webservers, firewalls/security, DNS, MTAs etc.
– Programming/scripting ability: Python, Bash, Perl, C
– Excellent verbal and written skills with outstanding customer service

For further information please visit http://www.google.com/jobs or email your CV
jobs@google.com. In the subject box you must include the job title: Data
Center Linux Systems Administrator – EU Headquarters.

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.