rick's blog

Topfield Puppy for Ubuntu 9.10 (with Linux 2.6)

The Topfield PVR has long been distinguished for its USB interface that allows archiving of you recordings etc. Access to this USB port from a Linux device is achieved via Puppy or Ftpd-topfield (the latter is not discussed here).  Puppy is an old dog now (comments by its author).

Software for Continuous Integration - Cruise Control & Hudson Compared

Cruise Control is a well-established continuous integration (CI) server and is doing a good job. So why would we even consider using something else – and all the upheaval of changing? The author was fortunate to operate the two systems side-by-side for a while for a busy development team. This review presents a comparison with Hudson and will attempt to provide some answers.

Serving XHTML as application/xhtml+xml

It's nearly a decade since W3C produced the first XHTML standard. In all that time, very few sites adopting it have gone as far as to serve the preferred MIME type (application/xhtml+xml). This is because it has been difficult to do well, and text/html sort-of works, so most website administrators don't bother. Here are some tips to make things easier.

BlockingQueues and Communicating Sequential Processes

A particularly important objective for developers producing of concurrent systems is to produce designs that always give consistent results and cannot deadlock (see The Four Horsemen on why this can be difficult).

XML Catalogs & Catalog Resolvers

XML documents typically refer to external entities, for example the public and/or system ID for the Document Type Definition. These external relationships are expressed using URIs, typically as URLs. However, if they're absolute URLs, they only work when your network can reach them. Relying on remote resources makes XML processing susceptible to both planned and unplanned network downtime. Conversely, if they're relative URLs, they're only useful in the context where the were initially created.

The Four Horsemen of the Test-Driven Apocalypse

Test-driven development (described on Wikipedia) is now widely accepted as the preferred way to develop software, especially Java software. I'm an enthusiastic supporter of this predilection - but there is a problem people seem often to overlook. I call it the Four Horsemen (also on Wikipedia) because there are four potentially major dynamic problems unreachable by testing alone.

The problems are:

The Single Assignment Pattern

'final' - underused or overrated?

Keeping It Simple

I've always been one of those perhaps slightly annoying people who don't easily accept propositions that seem overly intricate. It's not that I'm a stroppy person - I'm pretty relaxed really - I just don't like wastefulness, and that can mean I'm unhappy when I see other people wasting their time doing things the hard way.

Interfaces - no need to know exactly who you're talking to

I wrote about the Spring Framework Mission Statement earlier. This article follows it by examining the second Spring mission statement bullet, which concerns the use of interfaces in Java:

  • It's best to program to interfaces, rather than classes. Spring reduces the complexity cost of using interfaces to zero.

Everyone knows this is a Good Thing - but why is it good? 

Syndicate content