A year out of Sun

I was going to do this on the day of the anniversary of my leaving Sun but, you know, I was too busy at the time.

In the past year I have:

  • Helped companies and organisations in the USA, England, and France with their XSLT, XSL, and XML, including:
    • Making transforming to HTML go faster for an online retailer
    • Reviewing XSLT stylesheets and suggesting improvements for a major library
    • Writing XSLT for XML-XML transformations for a journal publisher
    • Specifying and implementing XSLT transformations for an archive service
    • Augmenting a XSLT-based automated schema documentation system that produces both HTML and PDF
    • Providing expert help to get a Perl XML::LibXSLT project off the ground
  • Presented on XSLT profiling and unit testing at XTech 2007 in Paris in May
  • Been selected to present training sessions on transitioning to XSLT 2.0 and on testing XSLT at XML 2007 in Boston in December
  • Rejoined the W3C XSL FO subgroup as an invited expert
  • Made four xmlroff releases, with another happening any day now
  • Learned more about VAT and PRSI than I ever wanted to know (okay, maybe that’s not such a high point)
  • Participated in the Workshop of the W3C Japanese Layout Taskforce in Tokyo in September
  • Helped kids by completing two projects with the International Telementor Program

This is also the point at which I retire the “RIF” blog category as it has become irrelevant.

Two training sessions at XML 2007

I have been selected to present two back-to-back training sessions at the XML 2007 conference in Boston in December: except, for, some, ne, \w, xsl:function: XSLT 2.0 for XSLT 1.0 practitioners and Testing XSLT.

The first one will, as the title says, be for people who know XSLT 1.0 and want to transition to using XSLT 2.0, and the second one will be a more practical expansion of the material covered in my XTech 2007 talk, My Stylesheet Runs, But….

Signs of the long-term Tokyo resident

In a week in Tokyo, I observed these signs that a foreigner may be a long-term resident:

  • Carries an umbrella on the same days as everyone else
  • Uses a “Suica” smartcard instead of individual tickets on JR trains
  • Carries a flip-style phone (though may not spend entire train trips sending and receiving messages, as many Japanese do)
    • Extra points are awarded for having trinkets dangling from the phone

My camera’s battery is flat, there’s nothing for me here

In Tokyo for the W3C Japanese Layout Taskforce meeting, I went to the first day of the Sumo basho with a friend. Firstly, I was amazed by the number of foreigners in the audience (as opposed to the number of foreigners competing), and secondly I was flabbergasted when one North American told his friends just as the top division was getting started that he was going to leave because his camera battery was going flat.

Whatever happened to experiencing something for its own sake? Is the experience only real if you can take photos of it? Is it only real if you can put photos of it on your social networking site? What about just staying with your friends while you all watch something unique to the country you are visiting and that you may never see again?

Buying maple syrup in the fishmongers

In Montréal for Extreme Markup 2007, I went to Marché Atwater to buy some maple syrup. When I wanted to know the weight of a pack of 8 cans of syrup, the syrup seller took me and the 8-pack next door to the fishmongers, and the fishmonger put the cans on her scale. She even set the price to $2.20/kg so I could see the weight in pounds if I’d wanted.

Since it was at that point I agreed to make the purchase, I’d say I did buy the maple syrup in the fishmongers.

Changed webhosts

After quite a few years with Hostway, I’ve changed over to WebFaction.

The good news is that the menteith.com website is now a Trac so I can host the tdtd code in public for the first time (and possibly also host the xslide code here), plus I expect better spam filtering and the blog software is more fully featured.

The bad news is that URLs to existing pages have had to change because I’m using a Trac and that I couldn’t properly export my blog entries from the previous benighted blog software, so blog entry URLs also changed and I lost the few non-spam comments that the entries had received.

Goldratt’s “Student Syndrome”

While reading Steve McConnell’s Software Estimation: Demystifying the Black Art (ISBN 0-7356-0535-1, and excellent, BTW), I found a reference to the magnificently named “Goldratt’s ‘Student Syndrome'”, characterised in the book as:

If developers are given too much time, they’ll procrastinate until late in the project, at which point they’ll rush to complete their work, and they probably won’t finish the work on time.

It’s almost worth not finding out more about it just so I can invent my own inaccuracies. You can imagine the cooperative response of a teacher the first time the following note is received:

Please do not penalise Johnny for late submission of his assignment. He was unable to finish on time as he suffers from Goldratt’s Syndrome.

It might almost work, once. It obviously wouldn’t work if the rest of the class who also evince the syndrome tried their luck the same way.

(And if you do want to find out more, there’s Wikipedia and Google.)

Ubuntu, Nvidia, and dual screens: what not to do

I spent far more time last week making two monitors not work than I did making them work, so here’s I few things I have learnt:

  1. Don’t use the “nv” driver. I couldn’t get it to drive two screens at once, much as I would have liked it to.
  2. Don’t use ‘Option “ConnectedMonitor” “dfp”‘ with the “nvidia” driver. I did RTFM rather too well and put that in as a hint to the driver. While ever it was in the xorg.conf file, only one screen at a time would work.

The eventual solution was, surprise, surprise, to download the latest version of the Nvidia driver — which was released partway through this epic battle — and follow its instructions to the letter — including removing existing Ubuntu packages as directed. I don’t know whether the driver had improved or my technique had improved by the time I tried that third version, but it worked for me.

Of course, the first thing I did when both screens worked was see how many 80-column Emacs frames would fill the screens: over 600 lines of Emacs visible at once, now that makes it all worthwhile!

I started out using the two monitors as separate X screens but I’m now using Twinview so it’s easy to Alt-Tab amongst the Emacs frames. The X startup log shows that X thinks the combined screen is too wide to be allowed, so it starts at a lower resolution, but once I’ve logged in, I can jigger the “NVIDIA X Server Settings” tool to get it back to it’s highest resolution.

In keeping with the long tradition of filling the Internet with example configuration files that are all purported to work but are all somehow puzzlingly different, here’s the xorg.conf file that’s working for me:

# nvidia-settings: X configuration file generated by nvidia-settings
# nvidia-settings: version 1.0 (buildmeister@builder26) Mon Feb 26 23:38:28 PST 2007

Section “ServerLayout”
Identifier “Layout0″
Screen 0 “Screen0″ 0 0
InputDevice “Keyboard0″ “CoreKeyboard”
InputDevice “Mouse0″ “CorePointer”
EndSection

Section “Files”
RgbPath “/usr/lib/X11/rgb”
EndSection

Section “Module”
Load “dbe”
Load “extmod”
Load “type1″
Load “freetype”
Load “glx”
EndSection

Section “ServerFlags”
Option “Xinerama” “0″
EndSection

Section “InputDevice”
# generated from default
Identifier “Mouse0″
Driver “mouse”
Option “Protocol” “auto”
Option “Device” “/dev/psaux”
Option “Emulate3Buttons” “no”
Option “ZAxisMapping” “4 5″
EndSection

Section “InputDevice”
# generated from default
Identifier “Keyboard0″
Driver “kbd”
EndSection

Section “Monitor”
# HorizSync source: edid, VertRefresh source: edid
Identifier “Monitor0″
VendorName “Unknown”
ModelName “Apple Cinema HD”
HorizSync 49.3 – 98.5
VertRefresh 60.0
Option “DPMS”
EndSection

Section “Device”
Identifier “Videocard0″
Driver “nvidia”
VendorName “NVIDIA Corporation”
BoardName “Quadro FX 1500″
EndSection

Section “Screen”
Identifier “Screen0″
Device “Videocard0″
Monitor “Monitor0″
DefaultDepth 24
Option “TwinView” “1″
Option “metamodes” “DFP-0: 2560×1600 +2560+0, DFP-1: 2560×1600 +0+0; DFP-0: 1280×800 +1280+0, DFP-1: 1280×800 +0+0″
SubSection “Display”
Depth 24
Modes “1600×1200″ “1280×1024″ “1024×768″ “800×600″ “640×480″
EndSubSection
EndSection