Monday, 21 April 2008

DisplayLink video adaptor on the Mac

At the ACCU conference this year I was lucky enough to pick up a DisplayLink USB video adaptor (the beast is pictured here). This was particularly interesting as the guys at DisplayLink have just released a beta Mac driver for their products, and these days I'm a big Mac weenie.

For some time I (and the rest of the world) have been impressed at the technology they've produced; you can get DisplayLink technology wrapped up in everything from a laptop docking station to a USB monitor itself. And - up till now - it's worked on PCs very well indeed. There's clearly some clever stuff going on under the hood.

But how well does it work on the Mac?

The answer is: pretty darn well. Considering this is a beta driver, it's a fairly polished beast. The install went very smoothly (although, unfortunately, this is one of those few installs that requires a MacOS reboot). The Mac has always coped gracefully with multiple monitors, and the DisplayLink adaptor appears like any other USB monitor - plug the device in and MacOS detects another display. It just works!

I have had no stability issues with the driver, it works over all colour depths and screen sizes, and it's a really useful extension to have. My MacBook pro now has three displays: the LCD screen, the VGA output, and the DisplayLink card.

There are downsides...
  • The driver doesn't work on PPC machines, which is understandable, but a bit of a shame.
  • And it's not particularly well accelerated at the moment (there's no 2D or 3D acceleration). Dragging windows has noticeable tearing and video playback on the USB screen is somewhat shaky. But it's perfectly usable given those constraints. Naturally, DisplayLink will be working on the acceleration (it requires some close work with Apple to get at the relevant MacOS crown jewels and so, knowing what it's like trying to get info out of Apple, this could take a while to appear).
If you have a mac and want more screen real estate, I'd heartily recommend a DisplayLink device. The technology is very exiting, and the ability to add an arbitrary number of monitors to one machine is very compelling.

I can't help but be excited about what the future holds for DisplayLink products. They have some very clever guys working there, and will most certainly be looking far out into the future to work out what they can do with the technology. I can't wait to see a wireless USB monitor, for example - imagine placing your laptop on a desk, switching it on, and your three monitors wake up and appear as extra displays with no plugging or button pushes required.

It can't be far off...

Friday, 18 April 2008

April "Professionalism in Programming" column is out now

The latest "Professionalism in Programming" column has been published in ACCU's April C Vu magazine.

It completes a two part mini-series on software design that started in the February issue. Pick up a copy and read about The Town Planner's Triumph - a case study in good software design.

If you're an ACCU member you can read it online at the ACCU website.

Saturday, 5 April 2008

ACCU 2008 (Day 4)


ACCU 2008. Saturday. More of the same - but with slightly fewer people attending on the Saturday it's a bit easier to get at the wireless network.

Many people are looking a little bleary eyed from last night's fun, and we've been regaled with tales of John Lakos' 41 one-armed push ups in the hotel bar at 4am.

Roger Orr's keynote on debugging showed us the seven deadly sins of debugging. and the seven (deadly?) corresponding virtues.

And now I'm off on holiday...

ACCU 2008 (Day 3)

So is it Friday or Wednesday yet? We've been held captive in a zoo of programmers for far too long, and the toll is starting to show. We're all going slowly mad, or technical, or both.

Friday at ACCU 2008 was just as rammed full of tech as the previous days, with another full track of functional programming sessions nestling alongside the traditional C++ talks, as well as sessions on rewriting code, packaging with RPM, development process issues, and more, and more.

Highlights for me included Andei Alexandrescu's talk on grafting functional support on top of an imperative language - an excellent trip into the D language's core facilities that support programming in a functional style in the same codebase as imperative code. If you're even slightly interested by that concept, or by language design, I highly recommend you check his material out. Towards the end of Andrei's talk I was left disappointed by the design of invariant constructors which didn't seem anywhere near as neat and regular as the clever use of the D type system to enable the functional and imperative code to coexist and share state. It seems that the design is still in flux, and it'll be cool to see how it develops.

Kevlin Henney gave a typically amusing and insightful talk on software testing. An excellent Henney quote: "In faliure the software will reveal itself". That is, when it goes wrong, you will learn about the structure and nature of a software system.

The day finished, and the night began (and - as ever - it was a looooong night) with the speakers dinner - another excellent ACCU tradition. That was rounded off with another new ACCU tradition, the boat race (that's a boat race, not a boat race) which solved once and for all which brace placement style is the One True Way - a score that the squash players earlier had spectacularly failed to settle. K&R lost, and so it has now been

    void established::that()
    {
        this->
is_the_only(way, 2);
        do
        {
            it();
        }
    }

And now we can all sleep at night. Except that they didn't shut the bar, and very few people did.

Friday, 4 April 2008

ACCU 2008 (day 2)

Day two of the ACCU 2008 conference... another barrage of technical information and geeky entertainment.

The Keynote: Simon Peyton Jones

Thursday's timetable had a refreshing functional programming track, which was headlined by Simon Peyton Jone's keynote: Caging the Effects Monster. Great stuff. I can only admire the man for being a fellow bare foot presenter! Simon took us on an entertaining journey into functional programming and how it can be used to minise the risks of "effects" (or rather, dangerous side-effects) in our software. He also made amusing reference to my "object tickling" metaphor from the presentation I gave yesterday.

We saw how the "useful but dangerous" languages are gaining more "pure" functional capabilities and the "useless but safe" pure functional languages are gaining "side-effect"s to get actually stuff done.

Joe Armstrong unpacks Erlang

The functional programming track continued with Joe Armstrong (self-confessed quirky Englishman) explaining the motivation for Erlang, and finishing with an 11 minute introduction to the language syntax delivered in minutes.

Favourite Armstrong quotes:
  • the operating system is for the stuff they forgot to put in the programming language
  • designing code for fault tolerance is the same things as designing code to scale
  • No one's ever done an MRI scan of the brain whilst you're writing a concurrent program
  • I'll do the 11 minute introduction to Erlang in about 5 minutes, and then do a 1 minute encore
  • Defensive programming is evil - you don't do any defensive programming in Erlang
Later the day included John Lakos on a heroic romp through 564 slides in 90 minutes whilist providing a classification model for objects, in order to aid testing, and to validate the new C++ scoped allocator model.

The conference sessions closed with a geeky version of Just a Minute. Great fun, and I'm obliged to mention it mostly because not only was I on the panel, I won :-)

Thursday, 3 April 2008

ACCU 2008 pictures


There are a few of my random ACCU 2008 conference pictures available on Flickr. I've tagged them with the "accu2008" tag - check them out here.

I love this picture of me giving my talk on "A Tale of Two Systems" yesterday (as taken by Tim Green). Turns out I mostly talk whilst floating in mid-air :-)

ACCU 2008 (Day 1)

It's Thursday morning and it seems like the delegates at the ACCU conference have recovered from the effects of John Lakos's presence at the hotel bar last night. He has a unique gift for buying a whole room multiple rounds of drinks (and holding the entire order in his head at once).

One day in, and the 2008 ACCU conference has proven to be another excellent event in the usual tradition. High quality sessions, and a great atmosphere combine to make a quite unique event. Compared to the other conferences I've been to there is something special about the ACCU conference; a lot of this is the focus of the talks and the people that come - people come here because they care about programming and want to learn how to do it better.

Here's a taster of day one...

Day one (the story so far)

Wednesday kicked off with a keynote by Tom Gilb. This was a thought provoking talk on his thoughts on software development process and his Evo methodology. He managed to tread on the toes of the agile contigent, and interestingly suggested using Evo as envelope around an agile process. One of his beautifully inflamatory statements was that "agile programming does not attempt to quantify the value of various pieces of work, so you are not able to pick the pieces of work that have the highest value, and so agile processes fail to deliver (as much) value." Or something like that. I'm not sure I agree.

Ric Parkin's talk on software design walked us through Alexander's seminal architectural books and considered their applicability to software design. Not new ground, but very though provoking. Jez and I on the back row took this to the logical conclusion and came up with "Grade 1 listed software" - the kind of thing that should not be touched without written planning consent.

Ric's most amusing quote, which will be repeated back to him many times over during the conference was "I don't mind introducing bugs". Thanks for that Ric. I can't dig him too much, though - he did give my book a free plug.

Steve Love's talk after lunch played to a packed room and followed this design thread and lead us to consider a snowflake soffware architecture.

I gave a talk in the following session, which (although I may be biased) went down pretty well, and was great fun.

The 19th Hole

That's a flavour of the sessions, but so much of the conference takes place away from the power point projector. The conversations over coffee, dinner, and beer (that stretched very, very late into the night) are the high-point of the conference.

Tuesday, 1 April 2008

Fun with DocBook

I'm contributing to a book for O'Reilly that will be coming out later this year.

It's been great fun to get back into writing in DocBook format. As a geek, any book that has a makefile and that you can keep under sensible version control is heavenly. It takes me back to the joys of writing Code Craft. I wrote that entirely in DocBook, and it made my life much, much easier.

But then, I'm a geek. So perhaps it's a perverse kind of pleasure.

Microsoft Word (or Open Office, or Apple's Pages, or whatever) are great tools for the great unwashed, but if you're writing any kind of technical documentation, or if you want a programatic degree of control over your document, I strongly suggest you try out DocBook. It's not for the feint of heart, but it's a very rewarding writing technology.