Posted on September 18, 2007 in Software Development by Rob Di Marco2 Comments »

Gave a presentation tonight to the Philly JBoss Users Group about using Embedded JBoss.

For the unaware, Embedded JBoss allows a developer to embed much of the functionality of the JBoss application server (EJB, Messaging, JNDI, Security, Transactions) in another application.  A great use for the technology is in the creation of unit tests that can actually test Session, Entity, and Message Driven Beans.  At Health Market Science, we heavily used the Embedded EJB container (a predecessor to Embedded JBoss) connecting to a in-memory Hypersonic DB for improving out unit tests.  It made developing and debugging significantly easier and all of the developers loved doing it.  I highly encourage any developer that is developing using EJB3, and especially anyone using JBoss, to use the combination of Embedded JBoss.

Full Presentation can be found at http://www.innovationontherun.com/presentation-files/Intro%20to%20Embedded%20JBoss.pdf

Popularity: 47% [?]

Posted on August 20, 2007 in Software Development by Rob Di Marco2 Comments »

For the past few days, I have been doing a little work with embedded JavaScript within the HtmlUnit project.  HtmlUnit is a really cool project that is a headless web browser written in Java that is really useful if you are trying to do automated testing or web scraping and want to simulate how a real browser works.  One of the neat features is that it supports JavaScript execution within the HTML page so scripts that modify the DOM can be supported.  One site that I was trying to automate a script for uses the YUI JavaScript libraries and I was having some problems with HtmlUnit, so I volunteered to have a shot at trying to get all of the unit tests to pass.

The hardest part of the development has been trying to debug why the hell all of the scripts have been failing.  Most of the problems seem to fall into one or more of a few categories:

  • Hacks in the YUI libraries to deal with the fact that IE and Firefox both operate differently and NEITHER is fully compliant with the DOM specification.  That has made for lots of fun times.  I have found a certain irony that I am cursing the Yahoo developers for the hacks that they wrote while probably cursing
  • Bugs with the Rhino JavaScript libraries.  For example, I could not even start the YUI tests until I upgraded to 1.6R6.  Also, I think I found a subtle bug that is causing one of the unit tests to fail related to the for…in syntax, but it has been a bitch to reproduce.
  • No integrated debugging of the JavaScript code.  The only way I can diagnose what is really breaking is by liberal use of the alert() method and then a review of the output.  Hopefully this will change in Rhino 1.7.  Huge problem.
  • Unhelpful error messages.  For example, I was getting a NullPointerException being thrown from SOMEWHERE in a script, but the stack trace was lost when it was transformed to a ScriptException.  The only way I was able to debug the problem was to put a breakpoint on the constructor for NullPointerException and then look at the runtime stack when it was thrown, then grep through the Yahoo JavaScript to try to figure out where the problem could possibly be.

So if you ever having to work with the implementation

  • Make sure you are using a good IDE with a debugger.  I cannot stress this enough.  I have had to put breakpoints all over the damn place.  And integrate as much of the source code around as you can and integrate it with the debugger.
  • If you are using Java 6, I would STRONGLY RECOMMEND NOT USING THE DEFAULT SCRIPTING IMPLEMENTATIONS!!!  I have now worked with both the JRuby and JavaScript libraries.  It is way easier to upgrade versions of your libraries to work around bugs if you are using the standalone implementations rather than the versions built into the JVMs.  By the way, how much fun will it be when a later version of Java comes out with new scripting libraries that I am sure will not be 100% backwards compatible.
  • Take Mozilla, MSDN, and especially W3C reference documents with a grain of salt.  They may not fully describe the behavior that you are seeing in the browser.

Popularity: 22% [?]

Posted on August 4, 2007 in Software Development by Rob Di MarcoNo Comments »

Just ran across a couple of articles on distributed data processing.  InfoQ is discussing the need for a new paradigm for scaling processing at the same time development on an open source solution is progressing as Yahoo! seems to be gearing up development on Hadoop (Tim O’Reilly’s take).  When you get to a certain size of data, you have to think about solving problems outside of the traditional application server talking to database server way.  If you want to complex processing against millions to billions of entities, your data access time on the traditional database system is way too slow no matter how many boxes or how fast your processing logic is.  More and more organizations will start to face this problem, and there is a definite need for an open-source distributed processing framework that can become a standard and allow for developers to start building tools on top of it.  Maybe it will be the Hadoop library, maybe it will be someone else.

At my previous employer, we (by we, I mean a bunch of other smart people on my team) have built out a framework to manage this sort of distributed programming.  I advocated strongly that the organization should open source the project using many of the reasons discussed earlier.  Now that I have left, I hope someone can pick up the torch and get the MapReduce project released.

Popularity: 9% [?]

Posted on July 23, 2007 in Uncategorized by Rob Di Marco1 Comment »

Was just reading an article at cio.com that talks about How to Recruit in a Hot Market.  One of the points they talk about is marketing your IT organization, mentioning that some large corporation employ full time marketers for their IT team.  But how is a smaller team to compete?  One overlooked method is how an organization can leverage open source to market their development team.

How Can You Be Marketing A Development Team?

First, everyone should take an hour and read The 22 Immutable Laws of Marketing.  I’ll wait…..

Wasn’t that an hour well spent.  Okay, now that we know what marketing is and what to think about when building a marketing plan, we can dig into marketing your IT team.

When you recruit, you are selling a product.  To be precise, you need to sell to the consumer (the qualified job candidate) that your product is one they should buy (they should work for you rather than working for someone else).  From our previous discussion on building teams, I know that you are looking to hire great developers so they will shortly have multiple job offers.  Heck, they may already have a job and not be actively looking (lack of awareness of your product).  So your competition is fierce.  One way to compete is on price (in this example, by offering a higher salary).  But most discerning consumers are also concerned about the quality of the good and how satisfied they will be with it.  This is where your marketing plan kicks in.

What Must Our Marketing Plan Communicate

We want our consumers, potential hires, to know:

  • That a stellar product exists in the form of a great IT team
  • That it is available to them as positions are available
  • That they will be satisfied with their purchase as others who have bought in continue to enjoy their work.

So how can we let our customers know about our wonderful product.  Well the traditional way is by posting classified ads online.  While that may let some people know of the availability, it will attract only those that are looking for jobs (missing candidates that do not know they should be looking) and does nothing to help with the other two bullet points.

How Does Open Source Help

If your company either sponsors an interesting open source project or, at a minimum, encourages developers to submit patches and improvements back to open source projects, it can serve to notify the development community about what your team is doing and the quality of work that is going on.  It makes people realize that there is something interesting brewing in your company and can easily drive people to your site (a fair percentage of requests to Health Market Science’s home page come from http://jackcess.sourceforge.net/).

Now Leverage Your Superstars

Now that people can look at a bit of your work, you can encourage your team to speak at conferences and user groups about the technologies.  Again, it helps to spread the brand name for your IT team, make potential candidates aware of what you are doing, is rewarding to your current team, and costs little to nothing.

In a future blog post, I’ll talk about how to find projects to open source and how to try and sell it to superiors (I know that I have not been as successful in the selling as I would have hoped, but I do believe it matters). 

Popularity: 9% [?]