Printing Design and Layout

printing-layout-and-designInasmuch as it was written in 1948, “Printing Design and Layout” by Vincent Steer could never be one of those ‘typography’ books that explain everything in terms of dialog boxes for a particular program, and I like that.  There’s a wealth of detail (only some of which is dated), and I don’t know if it’s indicative of the author or the time and place where it was written, but the text also has a wonderful tone that I like.

For example, since Dave Cramer, author of the “Requirements for Latin Text Layout and Pagination” document from the “Latinreq” task force of the W3C Digital Publishing Interest Group, was most recently working on initial capitals, that was one of the sections of “Printing Design and Layout” that I looked at when I got my copy last Friday, where I found this gem:It is entirely wrong to set swash italic initials in this careless manner. Any printer who does this sort of thing should be spoken to rather severely. It is wrong and does not show common sense. Don't put up with it.

Multi-stage XSLT in Ant

Inasmuch as Ant is good at re-running an XSLT transformation or a series of transformations when the XML source changes but not so good at re-running when one of the transformations’ stylesheets’ sub-modules changes, it’s a simple thing to generate on-the-fly a temporary build file containing paths listing the dependencies of each stylesheet so Ant can do the right thing. Continue reading “Multi-stage XSLT in Ant”

XSL 1.1 properties

Inasmuch as I find it useful and 50% of the people that I’ve shown it to find it useful, the XSL 1.1 Properties quick reference is now available at It crams all the properties, their values, and their defaults into two A4 pages for when you just want to know the allowed value of a particular property. When printed, it works best when the pages flip along the long edge, and when viewed online, the property names link to their definitions in the XSL 1.1 spec. Continue reading “XSL 1.1 properties”

Oxygen add-on hosted on GitHub

Inasmuch as I’m going to be authoring test files for the XSLT 3.0 testbed, I wanted an easy way to use Wendell’s oXygenJATSFramework. The easiest way would have been as an Oxygen framework add-on, but there wasn’t yet one. Since (unsigned) framework add-ons can be Zip archives and I’d recently downloaded archived releases from other GitHub projects, I did some experimenting and got GitHub to host the framework descriptor and the framework add-on itself. Continue reading “Oxygen add-on hosted on GitHub”

XSLT 3.0 testbed

Inasmuch as few people yet have much (or any) experience using XSLT 3.0 on more than toy examples, is a public, medium-sized XSLT 3.0 project where people could try out new XSLT 3.0 features on the transformations to (X)HTML(5) and XSL-FO that are what we do most often and, along the way, maybe come up with new design patterns for doing transformations using the higher-order functions, partial function application, and other goodies that XSLT 3.0 gives us. Continue reading “XSLT 3.0 testbed”

Is there life after libXSLT 1?

Inasmuch as I was talking at Balisage about adapting the Saxon-CE event model to XSL-FO, I ended up talking with Lauren Wood and Matt Patterson about the general case for a XSLT 2.0 processor, or a processor for a subset of XSLT 2.0, that could be used in language bindings and web browsers as a replacement for the stuck-at-XSLT-1.0 libXSLT processor.

Since we were going to talk about it more at the XML Summer School anyway, I did a five-minute lightning talk (slides) at the “unconference sessions”. Happily, it got more people at the Summer School trying things. Michael Kay of Saxonica was at the presentation, and not only did he welcome the idea of compiling Saxon to C, Saxonica now state that they’re looking at the possibility.

XML Summer School 2013

Inasmuch as the offer’s open a bit longer, you can still use the XML13 discount code for a 10% discount on your fees for this year’s XML Summer School.

This year, with Patricia Walmsley, I’m teaching Improv­ing stylesheets through the use of advanced features in the XSLT and XQuery track:

Most XSLT developers stick to a famil­iar core set of XPath and XSLT instruc­tions and func­tions. There are a num­ber of advanced fea­tures, many of them intro­duced in ver­sion 2.0, that appear only rarely in stylesheets even though they can be very use­ful in cer­tain situ­ations. In this course, we will explore some of these less-used fea­tures, show­ing inter­act­ively how they can be applied to improve exist­ing XSLT stylesheets. XPath fea­tures covered will include oper­at­ors like inter­sect and except, << and >>, quan­ti­fied expres­sions, and 2.0 func­tions that can sig­ni­fic­antly sim­plify your stylesheets. XSLT fea­tures covered will include group­ing, reg­u­lar expres­sion match­ing and advanced mod­u­lar­iz­a­tion using modes and instruc­tions like xsl:apply-imports and xsl:next-match.

Other sessions in the track are XSLT Effi­ciency and Effectiveness taught by Michael Kay, Query­ing XML Data­bases with XQuery taught by Adam Ret­ter, and Trends in XSLT/XQuery taught by Florent Georges, while the other tracks during the week are XML Primer, Hands-on Introduction to XML, Publishing With XML, Semantic Technologies, Trends and Transients, and Hands-on Web Publishing. There's also the evening events, such as punting, the formal dinner, and the unconference session, where I'm lined up to present a lightning talk.

Whither Mentea?

Inasmuch as the last twelve months of on-site contracting has been more remunerative than any twelve month period of my usual mix of mostly-off-site consulting and on-site training, it’s time to consider what’s next for Mentea and what I’ll be doing come September: will I be a consultant, a contractor, or (gasp) even an employee?

I have enjoyed the work and the company of my co-workers, but there’s a few points to note:

  • Going “across the water” to England to work may be almost an Irish tradition, yet it has shown the undesirability of living away from home for extended periods
  • Since I’ve not known what I’ll be doing after the contract ends, I’ve kept doing work for some of my consulting clients at nights and weekends, but that hasn’t always got them results as quickly as they would like and, frankly, it made a very poor lifestyle choice
  • There’s been little time left for side projects (or, you may have noticed, for blog posts), yet I have many side projects related to XML, XSLT, and XSL-FO and would have more if I had the time – I don’t aspire to it, but I was interested to see that the .net awards has elevated side projects to being an award category of their own
  • As a contractor rather than an employee, I don’t get sick leave or holiday pay, so catching a cold can (and did) cost me money, but I’m able once the contract ends to have a long break visiting family on the other side of the world and then going to Balisage
  • As a contractor, I’ve also had the freedom to go to XML Prague and to the MultilingualWeb workshop in Rome without having to fret about departmental training budgets, how the events align with corporate goals, or using precious holiday days and my own money (though in a sense it was) if I did out of my own pocket, though I did miss the W3C “eBooks and I18n” workshop last week in Tokyo because of pressures of work, so to be a contractor isn’t to be a completely free agent, and if I was still or again a member of an active W3C WG, then multiple face-to-face meetings a year would strain my finances more than they would a large corporation’s

So what am I looking for? Firstly, a good, long break before I address the question for real after Balisage in August. Secondly, to be based back in Ireland, at least most of the time. Beyond that, it’s undecided. I’m not running away from consulting nor running towards either employment or more contracting. Consulting has been good to me, and been good for me since I can use a wide range of skills with different clients, but the difficulty has always been getting the right amount of work to arrive at just the right intervals so that I’m neither swamped nor starved for work.