Old stuff still has value

I was just surprised, and somewhat delighted, by a LinkedIn connection request. Not that receiving connection requests from LinkedIn is in itself an unusual thing – I get several a week from various sources. This one was unusual because the sender made reference to liking a Java Ranch forum post I made over sixteen years …

Continue reading ‘Old stuff still has value’ »

Functional Testing, BDD and domain-specific languages

I love Test Driven Development (TDD). If you look back through the posts on this blog that soon becomes apparent. I’m pretty comfortable with using TDD techniques at all levels of a solution, from the tiniest code snippet to multiply-redundant collaborating systems. Of course, the difficulty of actually coding the tests in a test-driven design …

Continue reading ‘Functional Testing, BDD and domain-specific languages’ »

This blog may be a bit quiet, I’m busy elsewhere

Sure, quiet is relative. Over the years I have gone through enthusiastic patches and months with nothing but the occasional scrap of a link. At the moment, though, the quietness here has a reason: I’m too busy having fun messing with software and hardware on my Raspberry Pi. If you don’t know already, Raspberry Pi …

Continue reading ‘This blog may be a bit quiet, I’m busy elsewhere’ »

Charles Moore on Portability

Portability Don’t try for platform portability. Most platform differences concern hardware interfaces. These are intrinsically different. Any attempt to make them appear the same achieves the lowest common denominator. That is, ignores the features that made the hardware attractive in the first place. Achieve portability by factoring out code that is identical. Accept that different …

Continue reading ‘Charles Moore on Portability’ »

Tracking configuration changes in Jenkins

Continuous Integration is a pretty common concept these days. The idea of a “robot buddy” which builds and runs a bunch of tests across a whole codebase every time a change is checked in to the source code repository seems a generally good idea. There are a range of possibilities how to achieve this, and …

Continue reading ‘Tracking configuration changes in Jenkins’ »

Kent Beck on incremental degradation (“defactoring”) as a design tool

Thanks to @AdamWhittingham for pointing out a great post from Kent Beck in which he suggests an “if you can’t make it better, make it worse” approach to incremental development. This is a habit that has been a part of my development process for a long while, and I have needed to explain it to …

Continue reading ‘Kent Beck on incremental degradation (“defactoring”) as a design tool’ »

Baruco 2012: Micro-Service Architecture, by Fred George

A fascinating presentation from Barcelona Ruby Conference. Fred George talks through the history and examples of his thinking about system architectures composed of micro services. I found this particularly interesting as it has so many resonances with systems I have designed and worked on, even addressing some of the tricky temporal issues which Fred has …

Continue reading ‘Baruco 2012: Micro-Service Architecture, by Fred George’ »

Assembla on Premature Integration or: How we learned to stop worrying and ship software every day

An excellent article from Michael Chletsos and Titas Norkunas at Assembla, which reminded me how important it is to keep anything which might fail or need rework off the master branch. It’s a truism about software development that you never know where the bugs will be until you find them. This can be a real …

Continue reading ‘Assembla on Premature Integration or: How we learned to stop worrying and ship software every day’ »

Do You Really Want to be Doing this When You’re 50?

I just read an article (Do You Really Want to be Doing this When Youre 50?) from James Hague, who describes himself as a “Recovering Programmer“. I understand his experience, and his reasons for deciding that it’s not the job for him. I even like that he has blogged about it. What I really don’t …

Continue reading ‘Do You Really Want to be Doing this When You’re 50?’ »

Experimenting with VMware CloudFoundry

Yesterday evening I went along to the Ipswich Ruby User Group, where Dan Higham gave an enthusiastic presentation about VMware CloudFoundry. The product looked interesting enough (and appropriate enough to my current project) that I decided to spend a few hours evaluating it. On the whole I’m impressed. After poking around the web site a …

Continue reading ‘Experimenting with VMware CloudFoundry’ »

The 2012 JavaZone video is out and it’s absolutely brilliant

The JavaZone conference has a reputation for the quality and cleverness of its promotional videos, but this year’s takes it to a whole new level. Don’t watch this if you are offended by some (OK, quite a lot of) swearing. It may be coarse, but it’s very much in keeping with the style they have …

Continue reading ‘The 2012 JavaZone video is out and it’s absolutely brilliant’ »

Thinking of homeschooling?

Peter Kim of CollegeAtHome.com has put together a neat infographic highlighting the differences between home schooling and the public school system in the USA. Seems pretty convincing. I wonder what the equivalent numbers might be here in the UK? Graphic included with permission.

“Decisions, Decisions” a great presentation about software design

Following a recommendation from Jon Woods, I just checked out Decisions, Decisions, a recorded QCon presentation. Well worth watching, and thinking about, and putting into practice. I don’t want to spoil it, as he has a fun, interactive, style of presentation, but if you have any experience in software development you will get his point …

Continue reading ‘“Decisions, Decisions” a great presentation about software design’ »

Build pipelines with Jenkins

Continuous Integration is a great idea, and usually pretty simple to implement for simple projects. However, these simple projects don’t really exercise the “integration” aspect of the idea. As he build and test process for a project grows in complexity, it almost always grows in duration, too. Typical enterprise Java projects, for example, might fetch …

Continue reading ‘Build pipelines with Jenkins’ »