Archive for March, 2009

Git More

Tuesday, March 24th, 2009

It seems like all the cool kids were already talking about Git, and now even the button-down organizations I work with are taking notice.

  1. JRuby is moving over to Kenai on a Git repository
  2. Grails is on GitHub. Yes, Graeme’s even excited about it. And Jason Rudolph is thinking he can nearly expunge his knowledge of git-svn.
  3. And my favorite Peanut butter and Chocolate story of Maven, Git and Ruby Gems is on a GitHub repo.

The folks in Minneapolis at NFJS and at the Albuquerque JUG last week had a rocking good time with Git when I presented it at both places.

Jason van Zyl of Maven fame has caught the Git bug too. And Don Brown and I work on the Maven CLI plugin in a GitHub repo, for which forking and pulling has become a way of life.

Part of this surge on Git is spurred by the fact that great new training materials are sprouting right and left. If you are hungry for more Git education, then in addition to the git bookmarks I’m constantly updating, take a look specifically at:

  1. The OGRE Git Tutorial
  2. The higher-education Git Magic eBook at Stanford
  3. The down to earth GitHub learning pages
  4. Or the brand new GitGuru

Git Going… and I’ll see you in Seattle in a little under two weeks to convince you Why Git is Better than X!

Maven Unit Tests and Continuous Integration Servers

Wednesday, March 11th, 2009

If you are running a Continuous Integration server such as Hudson, you’ll want to consider routing your SureFire outputs to the console so that they’ll appear in the build-report logs. If you leave SureFire at its default, it will output each test’s success or failure to an individual test XML and TXT file, but those are likely not in an exposed directory on your CI server. If instead, you route the output to the console, it will get reported in your failure emails that your CI server is capable of sending.

Just pass the useFile=false parameter on the command line or set it in the plugin config section of your pom.xml.

mvn test -Dsurefire.useFile=false

Before:

-------------------------------------------------------
T E S T S
-------------------------------------------------------
Running com.ambientideas.AppTest
Hello World! This is a JUnit test!
Tests run: 1, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 0.045 sec <<< FAILURE!Results :Failed tests:testApp(com.ambientideas.AppTest)Tests run: 1, Failures: 1, Errors: 0, Skipped: 0

After:

-------------------------------------------------------
T E S T S
-------------------------------------------------------
Running com.ambientideas.AppTest
Hello World! This is a JUnit test!
Tests run: 1, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 0.045 sec <<< FAILURE!
testApp(com.ambientideas.AppTest)  Time elapsed: 0.014 sec  <<< FAILURE!
junit.framework.AssertionFailedError
at junit.framework.Assert.fail(Assert.java:47)
at junit.framework.Assert.assertTrue(Assert.java:20)
at junit.framework.Assert.assertTrue(Assert.java:27)
at com.ambientideas.AppTest.testApp(AppTest.java:37)

Results :Failed tests:testApp(com.ambientideas.AppTest)Tests run: 1, Failures: 1, Errors: 0, Skipped: 0

IPC and Talend at the DOSUG March Meeting

Tuesday, March 3rd, 2009

Tonight was the Denver Open Source User’s Group March meeting.

CLIP IPC Library

First up was Clark Hobbie on the CLIP IPC Library.

First, Clark addressed the question,”Why do we need an IPC library?” . He purports you need IPC “anytime you access something outside your JVM and need to share it in a controlled and coordinated manner with another client”. Clark says that CLIP was created as an answer to the cryptic and verbose shared memory classes in the JDK.

A brief outline of what he covered in his slides is as follows:

  • What is useful about IPC?
  • When to use different IPC options
  • The example applications
  • The CLIP library
  • Shared Memory
  • Semaphores
  • Shared Queues
  • Resources
  • Where to get the slides
  • Other useful sites, etc.

Clark did a great job on his slides with funny anecdotes, images for analogies, and clear verbal examples of IPC types (props to World of Warcraft).

Talend ETL Tool

Second up was Tim Berglund speaking on the open source Talend Open Studio ETL (Extract Transform and Load) system. This French startup company is attempting to create a new price point for ETL tools with the now-common OSS business model, selling support and training while giving away the core product for free.

He neatly said this is a talk for non-DBAs but rather developers that need to work with databases. Tim admitted that there are a few negatives to the otherwise great Talend tool. Those are: the JAR is 70MB, the error messages have a French accent, and Mac Eclipse support is a work in progress.

The visual designer has a lot of off-the-shelf transforms. We also saw XML, Excel files, 10+ DB brands, and CSVs as just some of the data sources.

It was a fun set of slides that were in the vein of Slideology.

tmap.gif