Older blog entries for nik (starting at number 6)

dmerrill: Case insensitive sorting in XSLT is relatively simple. Consider this simple XSLT fragment:

<xsl:variable name="ucletters"
  select="'ABCDEFGHIJKLMNOPQRSTUVWXYZ'"/>
<xsl:variable name="lcletters"
  select="'abcdefghijklmnopqrstuvwxyz'"/>

<xsl:template match="entry"> <xsl:sort select="translate(title, $lcletters, $ucletters)"/> <-- Do stuff --> </xsl:template>

Which will process something like

<entry>
  <title>Foo</title>
  <title>Bar</title>
  <title>Baz</title>
</entry>

In <title> order, not document order.

Stuck down in the land of XML, SOAP, XSLT, and LDAP.

I've added a project page for the DocBook Open Repository, the home of the DocBook XSL and DSSSL stylesheets. Which then spurred me on to commit some minor changes to the DSSSL stylesheets.

deekayen:

I haven't heard anything recently about the US sending people over to a country and just blowing up shit without a reason.

No. Your country just funds them.

Spent chunks of the last few days getting in to XSLT, after the indoctrination at the O'Reilly conference. Have now incorporated this in to the infrastucture of the FreeBSD web site.

The front page now sports an automatically generated list of most recent 20 news articles from the newsflash page. This is done by keeping the news information in news.xml, and using a stylesheet, index.xsl to do the work. Another stylesheet, news-rdf.xsl is used to generate an RDF format file, news.rdf containing the headlines which can then be syndicated to other websites, like Daily DaemonNews.

Now to start scattering XML/XSLT around the rest of the site as necessary -- this should help remove many of the Perl scripts that are littering the tree doing useful things with the content.

Work on the FreeBSD Handbook continues apace, as we prepare to get it ready for the second printed edition. Anyone that wants to help contribute to this effort is encouraged to look at the task list of outstanding items.

Open Source Conference. San Diego. Sun. Hot. People. Presentations. Presenting. DocBook. XML. XSL. XSLT. Perl. Keynote. Wall. <ding>. Orwant. Quiz show. Press ganged. Lost (we were robbed). Exhibition. O'Reilly. Meetings. Faces to Names. Cookies. Freebies. T-shirts. BoFs. BSD.

Tired.

Number of messages flagged as "must respond to" in freebsd-doc: 666

Spending the day (and most of yesterday) tucked up recovering from a nasty stomach bug I think I picked up in Barcelona. Everything is fine until I eat something, at which point it all gets a bit hairy. Still, I could stand to lose a few pounds. And it gives me the opportunity to catch up one some e-mail.

Spent part of last week at the NordU2001 conference. BSDi were a sponsor, which meant that we got to do a presentation. Figuring that most people wouldn't want to sit through a standard vendor presentation, I gave an introduction to DocBook, where it fits among the sea of documentation formats already available, and what its benefits are compared to those formats. It seemed to go down well, and I'm exchanging e-mail with some of the people who attended to help them up the learning curve.

The documentation infrastructure on FreeBSD has taken another leap forward -- inline images are now supported, without requiring the end user to pull down all of ImageMagick (and its dependencies). The author can write something like this

    <mediaobject>
      <imageobject>
        <imagedata fileref="figure1" format="EPS">
      </imageobject>

<textobject> <literallayout class="monospaced">+-----+ | A | +------+</literallayout> </textobject>

<textobject> <para>A box with an 'A' in it</para> </textobject> </mediaobject>

and the Makefile's and stylesheets automatically handle converting the image from its source format (EPS or PNG) to the correct format for the output (EPS, PNG, or PDF), scaling the image correctly as necessary, and so on. It's also possible to build plain text versions of the documentation, without any images -- in this case, the first textobject, with the ASCII art, will be used. This is pretty useful.

With this done I could bring in something else that's been sat in my tree for a while. Addison Wesley have very kindly allowed us to excerpt chapter 2 of the book "The Design and Implementation of the 4.4BSD Operating System" for the FreeBSD Documentation Project. This contains a couple of images, and it's been the image support that's been holding it back.

Spent some time reordering http://www.freebsd.org/docs.html, which I'll commit later. Hopefully it makes the information clearer.

Going back and forth with Adam di Carlo in the docbook-apps mailing list. Looks like we might have the beginnings of commonality between the FreeBSD doc. infrastructure and that of (some) Linux (distributions). Which is good.

dyork: Any chance you'll publicise your DSSSL stylesheets?

An interesting week. First off, there's been all the stuff for BSDi in EMEASA that's going very nicely. Naturally, I can't talk about that, so I'll skip it.

In my CFT I've been playing with a new toy, a Sony Vaio PCG-F709. This little beast is a 750MHz PIII with 128MB of RAM and an 18GB hard disk. Somewhat overspecced for the stuff that I have to run, but it's the stuff that's interesting to run that's important.

In particular, I've decided to drag myself out of the X11 darkages and see what the current state of the art Unix desktop environment is, and whether or not all the fuss over GNOME and KDE is really warranted. Anecdotal evidence suggested that equipping myself with a powerful machine would be a good thing to do before tackling this. My main desktop is a 200MHz PII, and it's been struggling somewhat recently.

Now, my idea of a usable desktop is CTWM with a few virtual desktops (bound to F1 -> F5), a couple of copies of xbuffy, an xload, and some custom menu bindings to throw up some shells on different hosts. Oh, and a few keybindings -- to wit, ALT+Mouse 1 should raise/lower, ALT+Mouse 2 should resize, and ALT+Mouse 3 should move the window. Those have been in my window manager environment for years, and are ingrained in my fingers. If that doesn't work on any new system then I don't want to know.

Right now I'm experimenting with Gnome.

# cd /usr/ports/x11/gnome
# make install

is easy enough to do, even if it does take an age and then some to download and build. I've been playing around with this for about 48 hours now, and I'm not entirely sure I appreciate the point. Yes, the integration between all the bits and pieces is nice, but this whole concept of dropping icons and programs on to the desktop is still somewhat alien. I've been fighting it on Windows for years, and don't really want to return to it on a Unix system. When you spend 95% of your time in a CLI anyway, it's much less arduous to "cd ~/docs; xemacs" than it is to pick up the mouse, click on the foot, and point and fumble until you hit the correct icon. Which means that as soon as I work out how to get all those annoying copies of gmc gone they're going to be gone.

Also (and something I've never seen adequately discussed anywhere) when you've got umpteen different applications all running, with various windows all over the screen, it's impossible to see anything on the desktop anyway. Which makes moving windows out of the way in order to be able to doubleclick an icon incredibly tedious. "Just say no to icons on the desktop."

Sawfish seems quite nice, with the default theme being eminently usable on the laptop. I miss my list of hosts that used to pop up on the right mouse button however. A few minutes digging hasn't shown how to create user-defined menus to overide the one it insists on showing, so that will have to be a task for another day. But 10 out of 10 for making it easy for me to bring my favourite key bindings over. Lisp-ish languages aren't my preferred choice, but diddling ~/.sawfish/custom was relatively painless, and certainly no more traumatic than the same changes for .ctwmrc.

The jury's still out on the panel. I never got on with CDE when I was using Solaris, and this doesn't inspire me with confidence. I'm not sure I want to give up the bottom 48 lines of precious real estate for information that could be stratigically scattered around the screen. I can't see a way to only partially extend it either, so I can claw back some of my screen. Of course, this isn't helped by gnome-help-browser crashing at every available opportunity.

Still, responses remain snappy. Then again, at 750MHz I'd damn well expect them to. I suspect that running this little lot on the P200 is going to be an interesting exercise in patience, not least while the stuff builds. X plus the Gnome components seems to be taking the better part of 32MB of resident memory at the moment, which strikes me as being a little on the heavy side. jade(1)'s reaction when I try to run it some large documents (megabyte+) should be interesting.

Overall, nice try. As a desktop it doesn't feel egregiously bad, and I suspect some of the smaller utilities (in particular the calendar and contact information stuff, if the Palm synching works properly) will prove very useful. But the requirement to pull in all the additional libraries for Gnome is onerous, and I'm still undecided whether it's going to be worth the effort.

Meanwhile, in another window, a KDE snapshot from late July is building itself. It'll be interesting to see how the two compare -- particularly as I'm unlikely to be developing under either of them any time soon, so the vaunted C/C++ differences between them doesn't really bother me.

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!