Aug 18

After taking a step back to have a think about my situation, I have regretfully pulled out of organizing the IJTC conference in Dublin this year. Putting together a conference is a hugely involved activity and I just do not have the time to spare on it this year. I wish the remaining organizers the best of luck and hope the event works out to be a success.

Jul 30

After much pain and suffering trying to get ternary relationships working correctly using the JPA annotations, I finally hit upon this post. The secret sauce: it makes use of the (rather poorly documented) @CollectionOfElements Hibernate annotation to annotate the set of link objects in the primary class, and makes the link class @Embeddable. No primary key class in the link.

JPA 2.0 supposedly manages to make this cryptic nonsense, including the ability to associate additional information with a link table, much easier.

Jul 12

It’s that time of the year again. We are just starting to ramp up getting this year’s conference in Dublin together for November. A good few months this time, as opposed to our insane 3 month schedule last year. There are a bunch of themes that we are looking to cover in this year’s line-up, but the crux of it will be around addressing common problems and how the tools can help to support that effort, rather than being a bog-standard tech showcase. It’s kind of a reverse point of view from what other other events take.

It was a great buzz putting it all together last year, and I know this one’s going to be even more fun, both for the delegates and speakers. We already have our scheming hats on :)

Jul 10

So, why no blog posts lately? Most of the interesting stuff that folks blog about are those issues and ideas which have currency, those at the forefront at their minds. Tech blogs too deal with the everyday. Issues that we have come across, interesting ideas, problems and techniques. However, in this day of corporate non-disclosure agreements and overly keen security departments sometimes it’s just not prudent to scratch that blogging itch, regardless of how tangential the topic might be.

On the flipside, if you didn’t know, Eclipse 3.4 aka Ganymede is out! With a whole bunch of new goodies as standard. After my first cursory test drive, the concensus is… very nice.

Jul 5

An unfortunately pessimistic, yet topical, post this time. You only have to walk past the news stands any given day to see the topic of the month. Knife crime is increasing, with the victims typically being teenagers. What were a couple of isolated incidents now appear to be accelerating into a sustained trend. Anyone who has read Malcom Gladwell’s Tipping Point would not be surprised to see the similarities between the case studies described, and what’s going on. Ironically, bringing media attention to the issue, and staging marches in unity against knife crime only serves to validate this behaviour as an appropriate way to resolve disputes. Seeing one’s peers behaving in a particular way serves to validate that behaviour as an acceptable form of expression. The current trend will only be stopped by applying lessons from past equivalents. In the meantime, we can unfortunately expect it to accelerate.

Jun 4

After 3 months in London without having a net connection at home I am finally on that interweb thing that all the kids are into these days with their Bebos and their Facebooks and things. Yaay! It’s amazing just how disconnected you feel when you don’t have access to your email - not to mention Skype! I am working in a banking environment these days so webmail is not an option (at the threat of being fed to the angry information security people - who do a fantastic job, thanks guys). So back to blogging, organizing mad conference schemes and keeping up with friends again.

What did happen to all those old digital age terms? They really seem as twee as grandma’s tea cosy these days. I will try to throw in at least one phrase dropped from the vernacular each month into a blog post :)

May 9

I just got this in the mail this morning

“The JavaOne conference team has been notified by the San Francisco Department of Public Health about an identified outbreak of a virus in the San Francisco area. Testing is still underway to identify the specific virus in question, but they believe it to be the Norovirus, a common cause of the “stomach flu”, which can cause temporary flu-like symptoms for up to 48 hours. Part of the San Francisco area impacted includes the Moscone Center, the site of the JavaOne conference which is being held this week. We are working with the appropriate San Francisco Department of Public Health and Moscone representatives to mitigate the impact this will have on the conference and steps are being taken overnight to disinfect the facility. We have not received any indication that the show should end early, so will have the full schedule of events on Friday as planned. We hope to see you then.

Please see the attached notification from the Department of Public Health.

For further information, as well as Frequently Asked Questions related to the Norovirus, please visit the San Francisco Department of Public Health website at http://sfcdcp.org/norovirus.cfm

 

Well, that sucks.

May 8

From the Pimp My Build session by the Atlassian guys.

  • Use Ant imports. The imported stuff can check for preconditions and fail cleanly using the <fail unless=”…”> tag.
  • Use macros.
  • Don’t build stuff you don’t need using the <uptodate> task. Use <outofdate> from ant-contrib, which is even better.
  • You can use audio snippets to tell you when you screw it all up :)
  • You can filter messages in builds using the Unix shell to notify you of actually important stuff rather than the standard boiler plate.
  • Don’t be afraid to write tasks - everyone should know how the build works. Don’t be precious about it. If you have repetitive tasks, why not script it?
  • Use scripts. You can embed Javascript directly into your Ant build via a <[CDATA[..]]> block
  • Use conditional tasks (ant-contrib) <if> <then> <else>
  • Don’t do one-off analysis. PMD, Checkstyle and Findbugs can be scripted! I found this to be particularly useful. Much easier to find issues, especially if coupled with continuous integration.
  • Document your build! Ant targets have descriptions. You do it with your code, why not your build artefacts? Use the -target_name convention for private targets.
  • Use continuous integration. This has been an absolute life changing thing for me as a developer.
  • Test in your builds!!! JUnit, TestNG et al.
  • Maven tips:
    • Use a remote repository proxy - caches are good (Apache Archiva). Helps performance and stability - make sure you can run when the net goes down.
    • Create a local repository for private artifacts
    • Local repository for public artifacts - third party Jars or commercial stuff not available in public repositories

Oh yeah, Ivy is good when you aren’t using Maven.

May 8

I went to an awesome session yesterday evening that did a rapid fire listing of small tools that you should know about if you are working with Java. The breakdown is on the Dublin JUG site.

May 7

The nice thing about JavaOne is that if you can’t get into the session that you wanted, the fall-back option probably kicks butt anyway :) Having missed out on the Grails/JFX/Android combo, I had the pleasure of getting the low down on Apache Tuscany, an open source Service Component Architecture(SCA) implementation. Tuscany is really about empowering the domain developer to produce and integrate local and remote services in the same way without caring about the underlying transport details.

Think dependency injection where the services that your class uses being accessible on some remote point in the cloud, and exposed using web services. As far as you are concerned, you use the interface, and let Tuscany take care of the rest. Likewise, if you want to expose your service classes to the cloud, you code up the business logic, and leave Tuscany to weave its magic. Great stuff!

« Previous Entries