Balisage 2022, Closing Notes

Balisage 2022 is over, and I had a great time.

I’ve said it before (I think) but the real power of Balisage is that it invigorates me because it reminds me of what I love about my chosen field.

Most years, following the closing of the conference I go back to work, straight away. Yup. Could be a particularly tricky problem, or maybe an alternative to something I have been pondering, but most years it’s just been sheer inspiration. I like what I do, and I like talking to, and listening to, people in my field. They provide inspiration, and they make me want to do more.

It’s a wonderful thing when a conference can remind me of all this, and it’s what Balisage does.

Balisage 2022 Is Upon Us

It’s the first day of Balisage 2022 (online only), and I’ve been enjoying every minute.

Now, my holiday ended yesterday. I’m still in holiday mode. Lots of golf, relaxing, BBQs, meeting friends and family. Stuff. And I have not been particularly interested in markup, beyond some initial XProc and XQuery (and a few bugs I needed to sort out) during week #1. I was not super happy to start working again, and let’s not talk about this morning.

Luckily Balisage is online and a six-hour time zone difference away, so I worked the day and then logged on to Balisage for today’s talks. There’s been a few interesting ones. My favourite so far was a talk on Invisible XML or iXML, as they call it. It wasn’t as much a talk as it was an overview of where the standard (yes; I do consider Community Group specs standards) is now. I specifically liked the demos, with every single implementation astonishingly good. Did I already use “super”?

I can’t find fault with the other talks today, but you do get favourites. Mine was this, but also a chat session afterwards.

See, following the last talk for the day, I logged on to a “birds of a feather” session about conversions from and to MS Office and Open Office formats. It was a bunch of people talking about MS Office (etc) conversions and their approaches, tools, etc for doing the job. Right then and there I rediscovered my love for what I do for a living.

We all share an understanding about markup and the use of angle brackets, and the session was all about that. Tricks, tips, libraries, tools, shared experiences. Enough to make me remember what it is that made me choose this path in the first place. For a first day back at work, I could not be happier, and it’s what Balisage is all about.

Audio and Lossless Formats

Recently got fed up with Spotify. Not the Rogan thing, mind. I think that one is an overreaction – cancel him just because he invites contrarians and uses the N-word? Or that -god forbid – you disagree with him? Seriously? But I digress.

I’ve grown accustomed to the Spotify ecosystem and their playlists, their ever-so-subtle big brother watching me to generate new playlists based upon flawed metadata on the songs themselves, because every now and then they do offer something new that’s genuinely good. Well, not new, just something I missed. That part isn’t perfect but I like it.

The problem is their abysmal sound quality.

They’re running Ogg Vorbis files on a maximum of 320 kbps, which they label as “very high”. A true 320 kbps source losslessly reproduced could be a decent start, but I think that’s never happening. I think their audio is a compromise directed at people who don’t care.

They announced a “Spotify HiFi” about a year ago, though, and there were whispers about hi-res before that, so I’ve been patient. The music I cared about I bought on CD or better, and I sort of made do on that “very high” setting. But 2021 went by and morphed into 2022, and a few days ago or so, I had enough. I’m not exactly sure why; I simply had enough.

I’ve been fed with Tidal ads the last year or two on all of my social media. Big Brother does know me. So I did a couple of Google searches. Tidal was certainly one, but so was Qobuz. The other day I installed them both on my Android phone with one-month trials.

My Android phone, a Pixel 6 Pro, produces decent sound on my wireless Bluetooth Sennheiser cans, so both sounded good enough on a first listen. The Qobuz Windows app on my work laptop sounded even better – a dedicated DAC and a decent set of speakers powered by a Denon pre-amp goes a long way – so I was suitably impressed, especially when playing hi-res FLAC tracks. Classical music, to me, is a necessity, much of the time, and now I found myself discovering music again. Vivaldi, Mozart, Wagner… so many recordings to choose from, and all of them sounded better than Spotify ever could.

And no – I don’t like laptop soundcards. They’re all inferior and noisy and low-res. I bought a FiiO DAC last year to avoid them. My trusty PC sound system – Cambridge Audio, 25 or so years old – gave up the ghost early last year and after an eternity of procrastination (three weeks), I bought a set of Dali speakers and revived a Denon pre-amp I had kept because I knew I’d need it some day. Call it an awakening, but soon after I realised I’ll need a proper DAC to bypass the laptop soundcard. Enter the FiiO DAC, and enter the winter of discontent with Spotify while writing XSLT.

My personal laptop is a Linux box. The Qobuz install on Windows was fabulous, so how would it fare on Linux?

There was no Linux app. The web player was unreliable at best – it would keep the lower-res settings if running mixed-resolution lists, so I had to do a lot of tweaking, every time. No fun if you want to listen to a playlist while working. Adding it to Strawberry, my media player of choice, was no fun either. The bitrates would be correct but finding songs… just no.

Tidal was no better. There most certainly isn’t a Linux solution, and their desktop is limited to “HiFi”, which is not the hi-res option but the one below.

And here’s where this story took a dark turn familiar to anyone as invested in open source as I am. See, Tidal reserves its highest-quality settings and subscription fees to something usually appearing as “MASTER” or just “M” next to their listings. I tested some of them, and sure enough, I thought I did hear a difference. There was no bitrate given, though, nothing that actually gave the stream settings away, which I thought was a bit weird.

So I did another Google search while listening to Tidal versions of the Qobuz recordings I already had compared to Spotify. This is where I found out that MQA, the audio format behind Tidal’s master quality, is proprietary. You cannot independently verify any of its claims because you cannot access the format itself. That is to say, you cannot access the digital, bit-by-bit, output. You cannot read the specification. You just have to trust them.

Now, I don’t like closed source. I’m not opposed to people making money on their inventions, but I also don’t like unverifiable claims. The MQA format is unverifiable. You cannot read the spec, and you cannot access an output MQA digital stream to compare it to the source of that same stream. You just have to trust the people who sell you the licenses.

This was not OK, so I did some additionsl research. Long story short, here’s what you should watch next:

I’m not a bit-by-bit audiophile, I just listen very carefully because I have perfect pitch. I also care about open source, a lot. The former is because  have no choice; the latter is all about conscious decisions the last 27 years or so. Open source is what allows me to write this in the first place, and this is where I’m now. Tidal is out, Qobuz is in, and at least my music sounds better.


Markup UK and XML Prague 2022

If you’ve checked the web pages of either Markup UK or XML Prague, you’ll know that Markup UK is not happening this year but XML Prague is, in June. Next year, 2023, MUK will happen while XML Prague will not.

This came about because the XML Prague organisers realised that February is not going to be a great time to gather in person but really wanted to organise the conference later, if at all possible. June was their preferred option. However, since we at MUK were hoping to see everyone in London in May, they thought they’d better talk to us. Two conferences set one month apart was an option when XML was new and hot – maybe – but not today.

See, while we and XML Prague are both about meeting everyone, live, in person, talking, sharing ideas, sharing a pint, the nominal reason to gather is always to listen. We need papers. We need presenters. It’s a lot of work to get people to spend their free time to produce those papers, and hard enough when the conferences are a couple of months apart.

Try doing that when they are right next to each other.

So we decided that we shouldn’t. XML Prague is driving this year while we grab the wheel in 2023. I know I’m going to Prague in June, hopefully to listen AND to talk, and I hope you will, too.

Lenovo Customer Support, Again

You’d think that my Lenovo customer support issue (wrong configuration delivered) would have been solved by now, more than seven months after I bought the laptop.


The current email exchange with Digital River, the company handling Lenovo in Europe, stands at 32 messages as of today. Add to that a dozen or so emails exchanged with other Lenovo representatives. This is what they look like:

Thank you for contacting the Lenovo Online Store.

We apologize for any inconvenience this may be causing. We are currently looking to find a resolution for you. We will keep you updated until this has resolved. If you do not receive an email from us, please check your junk/spam folders.

We apologize for any inconvenience this may be causing. If you need Customer Service assistance, please call +353 61725061 to speak to one of our representatives.

John B.

This is a form email – they’ve probably not added a single word of their own. The person signing the email is never identified by his or her full name. For all I know, these names could be made up.

It also really doesn’t matter what you write to them. The reply is more or less the same: we’re working on a resolution, we’ll update you, check your spam folders if you don’t hear from us. Etc. And nothing happens until I contact them again.

Why do I even bother?


As I write this, Balisage 2021 is four days away and my presentation less than a week away.

I am writing this instead of the presentation.

My paper is about this recent SGML project of mine. It’s a war story, really, and, to a large degree, a rant. It’s about all the reasons to why SGML is no longer a viable solution and why everyone should do XML instead, and I’m procrastinating endlessly about the presentation, to the extent it feels like being back at the uni, studying for an exam, and how I found the time to (finally) do the dishes and reorganise the bookshelf.

I know what I want to be in it, but the contents differ from the paper that was approved, so I’m a bit hesitant. Not that I don’t always do this before Balisage, I do, but this time feels special and different, and I am wondering where to draw the line. How different from the paper can the presentation be, really? Where’s the line? Is it just the title? The structure? The fact that I have evolved from the me that submitted the paper, that I now know what I didn’t know then, that my views have changed a bit and I really can’t (and won’t) go back?

Is this (shudder) an existential crisis?

I should probably do the dishes now.

Lenovo Customer Support, Part Two

After a month of very little action but me being sent back and forth between support and sales at Lenovo to address what should have been a trivial problem for them to solve, I decided to write a review. See, they’ve sent me these “Following your recent purchase…” emails about once a week after I bought the laptop in April, asking for a few words to be published on their website, and I decided to comply:

Great Laptop But Abysmal Customer Support
The laptop as such is great, but Lenovo’s customer support is among the worst I have ever experienced. They’re slow, they like to pass around your case to each other to cover their tracks and play the blame game, and they don’t respect European consumer legislation. You’d think paying for 3-year premier support would help you avoid this sort of thing, but apparently not.

Of course, they turned it down. I replied to ask them what they thought was inaccurate in my review, but of course, the reply-to email address bounced. They encouraged me to write more content, though, so I copied the original review and my follow-up questions into one, and hit Publish.

They refused it again, using the same form letter and the same no-reply address, so I figured it’s all worth a blog post, at the very least. Lenovo, if you’re reading this, I will make my best effort to spread the word.

New Laptop

(If you’re not into Linux and don’t know what “Wayland” is, I’d suggest you to skip this post.)

I’ve bought a new laptop to replace my aging Dell XPS 15, a Lenovo ThinkPad X1 Carbon Gen 9. The XPS is good, make no mistake about it, but I wanted something lighter with a better battery life on Linux, and the X1 Carbon fit the bill. I also went full Linux this time. No Windows partition this time, just the latest Ubuntu, even though I’ve been trying out different desktops because I want Wayland rather than X11, and Cinnamon is not moving to Wayland anytime soon.

A few obstacles:

The Lenovo customer support is atrocious. My 4k screen was delivered with the standard black lid rather than the carbon fiber woven one, which does seem like a very minor complaint, and initially I treated it like one. Lenovo did the same. First no-one wanted to take responsibility, then I was told I was wrong because a screenshot of the current state of the Lenovo web shop suggested otherwise, and finally I was sent back and forth between sales and support, and this is where I am right now. They’ll get back to me really soon now, I’m sure.

The new Intel graphics chip is not well supported on Linux. It lags behind, with a characteristic wait-what-did-he-just-click-on half a second when deciding to use the touchpad. A mouse connected through a dock doesn’t have this problem.

Gnome 40 (which I installed through a PPA since Ubuntu 21.04 doesn’t include it) is just too different. I like the gestures, and the Wayland implementation actually feels like it’s getting somewhere, but the PPA is buggy and the DE is just too different.

KDE 5.22 on Wayland (installed through a backport PPA) is very cool but XWayland doesn’t seem to scale properly if your laptop is HiDPI, which mine is, so anything rendered through it is blurry if scaled. Non-scaled output is great, though. KDE 5.22 on X11 does look good, though, and I am thinking about moving back to KDE again.

Cinnamon looks great on X11, of course, but there is no Wayland. Also, there is that weird lag.

I guess 2021 won’t be the year of the Linux desktop either.


Sublime Text Part Two

Having spent a couple of days trying to get used to Atom, I decided to simply upgrade Sublime Text. While full of neat features, Atom was huge. Also, the Markdown customisations were simply too different from what I am used to.

Text Editors

For the last several years, I’ve been using Sublime Text as my main text editor. It’s got a nice UI, it works on all of my platforms, and the license is user-based, meaning that a single license can be shared on any machine I happen to work on, provided the user is me. It didn’t cost an arm and a leg either.

Recently the app asked if I wanted to update. It’s done it every now and then, so I was expecting another bugfix and thought little more of it. I just hit Update. The app was upgraded from version 3 to version 4, however, and an all-caps text on the title bar said “LICENSE UPGRADE REQUIRED”.

Say what?!?

A version upgrade that costs money is fine by me but something I want to know about before I upgrade, not after. There should have been something pointing this out, allowing me to decide if I wanted the hassle now or later. Instead, I now need to downgrade if I want to keep the app.

This is not OK, so I’m now moving to Atom.