Jared's Weblog

Main Page - Books - Links - Resources - About - Contact Me - RSS

Jared Richardson Most Popular
Help! I've Inherited Legacy Code
Testing Untestable Code
Continuous Integration... Why Bother?
Mock Client Testing
The Art of Work
Technical Idiot Savants
Targetted Skills Aquition vs Free Range Chickens
The Habits of Highly Effective Developers

Blog Archive

Sun, 25 Sep 2005

The CruiseControl Quick Start Edition!

The CruiseControl team made a huge leap forward by releasing a quick start version of CC. (Okay, the team called it a "binary" version but I like Quick Start Edition better!) They bundled Jetty (a very cool Java servlet container) with their 2.3 release.

You can download the 2.3 binary release (found here), extract it, then start cruisecontrol.bat (or cruisecontrol.sh) to run CruiseControl on a sample project. The reporting engine is running as a part of CruiseControl. Just hit http://localhost:8080/cruisecontrol/ (after you're running CC of course) and you're viewing live build results less than a minute after your download. Not bad.

This should jump start anyone whose been thinking about trying out CruiseControl but didn't have time to come up to speed on the configuration and deployment.

A few suggestions to the CC team for future releases?

The Control Panel tab is present but isn't enabled. JMX is turned off. It should be on for the sample application to let people see what it can do.

The xsltlogpublisher (a publisher plugin) should have a sample XSL file that generates the same HTML as the JSP, eliminating the need for a servlet engine altogether. I started to tinker with that this evening but I don't know XSTL, I tend to create really ugly HTML, and realized that there are probably dozens of people who've already done this better than I ever could. I couldn't find anything on the web but I'll bet someone on the user's mailing list would submit a decent sample. Then the xsltlogpublisher can publish a nice HTML interface as it's default transform.

CruiseControl gets better every release! Thanks a lot guys!


posted at: 19:54 | path: | permanent link to this entry

Pop Quiz

I saw an interesting blog entry by Jimmy Nilsson this week and it made me stop and think.

The entry discusses a few current development topics and the buzz around each one, and I wondered how many people I knew would be familiar with each of the subjects. The people that I think would know are also the most effective and well-rounded developers I know.

How well read are you? Are you staying up to date on the latest developments outside of your own silo of work? (There's a blog entry in the whole silo idea... if time permits I'll write that one up in the next week.) Are you slowly becoming a Technical Idiot Savant or are you staying current in your field?

Here's Jimmy's blog entry: Language innovations aren't unimportant after all?

Before you think I'm just pointing fingers, I hadn't heard of one of the topics either! :)



tw, Will and I got a nice interview printed in the October edition of Software Development Magazine. It's a page within a nice article by Mike Reilly titled The Proof Is Out There. It's a portion of the podcast interview we did with Mike a month or two ago. Last month's edition had a very favorable review of the book as well! -jrr

posted at: 00:06 | path: | permanent link to this entry

Mon, 19 Sep 2005

Ship It! enters it's second printing!

This probably isn't a huge event for established authors, but I'm enjoying it! I can't believe the first printing is already selling out. Our publishers are sending out the latest version of the book to the printers this week. The second printing will have a lot of corrected errata and an expanded "praise" page.

If you've reported a typo, thanks very much. An extra thanks goes out to Kim Shrier... you should moonlight as a copy editor! ;) I can't believe we all missed some of the stuff you caught!

If you haven't gotten a copy of the (ah-hem) historic first edition, time is running out! Order soon so that you can see all those typos for yourself! (kidding!)

Seriously though, if you bought the PDF version of the book, visit the Reship Ship It! page later in the week and you can download the latest version for free.

We'd like to thank everyone who bought, reviewed and/or blogged about Ship It! Thanks for the support! Will and I really appreciate it!


posted at: 21:14 | path: | permanent link to this entry

Speaking of Tracer Bullets...

I'll be talking about Tracer Bullets at the RTP SPIN (Software Process Improvement Network) on Thursday, September 22nd.

If you are in the area, drop in and say "Hi"! We'll be at EMC in RTP (62 T.W. Alexander Drive) from 10:20 until noon.


posted at: 21:14 | path: | permanent link to this entry

Building your own JDK?

I stumbled across this link today and I just have to say, all the ~real~ geeks are building their ~own~ JDKs! You're not one of those developers who lets someone else build their compilers for them are you?

It doesn't look trivial, but it's not insane either... how cool is that? Someone do this and let me know if it's as easy as it sounds!

Here's the link


posted at: 21:14 | path: | permanent link to this entry

Sun, 18 Sep 2005

Subversion on Windows Quick Start guide

I've been preparing a presentation for an upcoming No Fluff Just Stuff conference about vital software tools. Of course, source code management will be discussed. However, given the very practical nature of the conference, I want to provide practical examples with the talk, so I put together a very short Subversion quick start guide. It's the basis for the live demo I'll give during the talk.

This tutorial doesn't try to teach you about good source code management practices or try to sell you on the concept of source code management. It shows you how to set up Subversion on your Windows box and then teaches some basic operations. The basic operations will work with Subversion on any platform. (Maybe I should break those out into a separate doc at some point?)

The tutorial can be found here

Please let me know if there's information you think should be added or some of the information doesn't make any sense to you. :)



posted at: 21:40 | path: | permanent link to this entry

Thu, 08 Sep 2005

Continuous Sin Looks Intriguing!

I saw a link to Sin today and I couldn't help but check it out! And I think I like it!

Get your minds out of the gutter everyone! Sin is a Continuous Integration product.

It's got two interesting ideas in it.

First, everyone pushes code to a branch. The Sin system itself compiles (and maybe runs test?) the new code, and after the new code is validated, it's automatically moved over to the "main branch". This means your main code tree can never be non-compiling. Most CI systems notify you when your code breaks and they want you to fix the problem. This one does that as well, but it doesn't promote the code to the production level until it sees that it's clean.

Very nice concept!

The other intriguing feature is that it's distributed. Each of the nodes that does the validating is stand alone. It uses SOAP to communicate between nodes and spread the work out. They claim it scales linearly with the hardware.

Again, a very nice idea!

However the Sin web page was very thin, so I'm asking the community... is anyone using Sin (the product, not the moral concept). ;) Does it really scale? Do you like it?

Let me know!


posted at: 20:43 | path: | permanent link to this entry

Tue, 06 Sep 2005

Microclimates and Software Development

Have you ever experienced a small microclimate? It's when you walk into the edge of a forest and feel the cool air the shade. Even a medium-sized tree can provide this affect. It's why people sit under trees... they like it there! :)

Something creates a microclimate when it affects the atmosphere in it's proximity independent of the rest of the region.

Merriam-Webster Online Dictionary defines a microclimate as the essentially uniform local climate of a usually small site or habitat.

What's your development microclimate?

Independent of the rest of your organization, are you tinkering with new technology? Are the guy who introduced Nunit tests to your team? When people talk to you over lunch, do you talk about Andy Hunt's latest podcast or Ted Neward's latest blog entry?

The question is not how well read you are but how far out do you limbs reach each day? Are you so engrossed in today's problems that you don't have the time to look around?

Here's a quick litmus test for you. If each software blog you read this week was a leaf, what kind of tree would you be? A tree that provides shade or a scraggly old hulk that looks half-dead?

Strive to be the person who picks up one or two new ideas each week. Ask people what they think about the ideas over lunch or try to implement the ideas during the day. You don't have to change the world today to make a big difference a year from now. Little changes add up!

What are some practical ways to get started?

Artima.com's Buzz forums is a great blog aggregator. I catch everyone from Martin Fowler to Andy Hunt.

The Buzz can be perused as sub-categories as well. They are .Net, Agile, Design, Java, Linux, MacOS, Open Source, PHP, Perl, Python, Ruby, Web, Windows, Wireless, and XML.

If you can't find one a category that applies to your work, then move to Artima's blog page. There you'll find people like Bruce Eckel and Michael Feathers.

Still haven't found what you're looking for? Then visit Technorati and type in your favorite author, speaker or topic. Find out who else is talking about the books, authors and practices that you are. Search on junit or Ruby on Rails to see whose talking about these topics.

The information you need is out there and it's accessible. The only question is whether or not you're going to go get it and generate a nice localized microclimate of best practices and interesting ideas. Or will you sit back, let the industry pass you by and have to say "Oh crap! My Job Went to India (And All I Got Was This Lousy Book).



posted at: 21:41 | path: | permanent link to this entry

Mon, 05 Sep 2005

Blitzkrieg Testing in Action

On Tony Semana's blog we find a great example of Blitzkrieg testing in action. You can read about it here.

Here are a few quotes:

...we had rebuilt basic coverage of the existing features and planned release features prior to the start of the testing cycle, and a good picture of what needed to be accomplished when the application was built into our test environment. Our testing cycle was still very short and effective because we knew where to focus our manual tests, integration bugs were found and resolved quickly, and we added automated tests to cover many of the bugs found manually to address bug regression. In the end it allowed 3 of the 5 main project members, including myself, to keep vacations this week that were booked out months in advance.


This process captures a very effective way of implementing the practice of automated testing (in this case acceptance/integration testing) in an environment/project where none exists.


Technorati Profile

posted at: 19:50 | path: | permanent link to this entry

Very Short JUnit Tutorial

I wrote a very short JUnit tutorial with developers in mind who are very competent, understand Java quite well, but haven't seen JUnit before. These people are smart but also very busy and probably won't take a few hours to investigate JUnit. I hope this can give them just enough information to get moving and let them see the potential. Feel free to forward it around.

If you like JUnit, there are lots of additional books and articles you can go to for more detailed information, like Pragmatic Unit Testing or the JUnit.org articles page.

The tutorial is located here.



posted at: 10:17 | path: | permanent link to this entry

Thu, 01 Sep 2005

Keeping your back to the wall

One of the magazines I started reading recently is Fast Company. They have a good mix of articles in a wide mix of industries.

Fast Company recently published an article on Chrysler and how the company has traditionally done so well in a crisis and so poorly when times are good. The article is called "Keeping the Crisis in Chrysler".

Chrysler's current management has isolated three key points from the company has instinctively adopted in the tough times. Now they are trying to adopt the same attitudes, even in the boom times, to keep their edge. I think these points map rather well to the software space, so here are the points with my commentary. :)

We are all in this together
No matter how much the guy up the hall annoys you, he is really trying to ship great software too. He's probably not really trying to tank the company, it just feels that way to you sometimes. The disagreement you're having with him is probably really about direction or tactics, but you share a common goal. Once you realize that, it's easier to find common ground and work together.

Every nut and bolt counts-
I love this one. It's a variation on "Quality is Job One" or "the devil's in the details". The work you do every day adds up to create the products we ship. Software, and life, is cumulative. If you can't be bothered to turn out solid work today, don't be surprised if three months down the road, your entire product is shoddy. Don't gloss over that problem or tolerate broken windows. Fix it today.

Remember the driver
Our job is not to code or test software. It's to ship software! Never forget that someone will be using your product, running your code. Is your product running slow enough to bother you? Then remember Chrysler and fix it for your "driver". Is the GUI clunky? Is it only "good enough"? Work on it! Contact a co-worker for a second opinion. Make it great!

There's nothing blindingly new here for most of us, but it's a good reminder.

How would you try to instill each of the three points to your team mates? Or would you? Do you need to keep a sense of urgency alive to do your best work? Is it true that most people perform best with a deadline? Or are these just good principals to remember all the time?


btw, I'd like to encourage everyone to take a moment and donate some amount to a relief agency of your choice. Hurricane Katrina has pummelled a lot of people, but they'll probably be another problem for the same agencies to deal with too soon. Let's be sure these agencies have what they need to help those in need! Next time it might be one of us!


posted at: 16:40 | path: | permanent link to this entry