Author Archives: admin

Linux Ready for the Desktop and All That

My recent XML Prague presentation ran from a Linux partition, the first time in a while I’ve used Linux for presenting anything. The reasoning was simple; I’d developed the accompanying demo on Linux, on a server on localhost, so it would be much easier to just write a presentation in Open Office than to move the demo to something else.

It wasn’t.

I’d fixed every bug in the demo, styled my web pages in an aesthetically pleasing manner (well, for me), and carefully prepared an XML Prague presentation project in oXygen with only the files I would need to show, making sure that they’d fit without scrolling when projected in a lower resolution. I’d bookmarked the important code, and I’d folded everything else. My demo was in great shape.

What I didn’t do beforehand (even though I actually meant to) was to test my Linux laptop in dual screen mode, mirroring the laptop screen to an external monitor using that lower projector resolution. That, of course, was what failed.

My talk was immediately after a coffee break so I figured I’d hook up my laptop immediately after the last talk before the break and test all this. How hard could it be?

Well, no mirroring in that lower resolution. Mirroring in a higher one (the laptop’s native resolution) was possible but of course, the projector wouldn’t work in that resolution. They usually don’t. Dual screen mode, outputting two different screens, didn’t work because I wouldn’t be able to see on my laptop’s screen what was being projected for the audience. I tested pretty much every setting there was but to no avail.

And then the (Gnome) window manager decided it couldn’t take the abuse any longer and crashed.

I rebooted into KDE, hoping it would fare better, but all I got for my troubles was another crash. Not the same software, mind, but something or the other in KDE. I hadn’t really tried anything very dramatic, I’d simply changed the display modes a few times.

So I rebooted again and accepted my faith, booting into Gnome and using the dual screen mode where I’d be flying blind unless twisting my head all the way back like that poor girl in The Exorcist, trying to run the demo from the laptop’s touchpad in front of me while hurting my neck to see the results on the large screen behind and above me.

If you’ve watched the conference video (second day, about 7 or 8 hours into the file), you now know why.

My laptop is not particularly fancy or modern. It’s a 3-yo Thinkpad with an Nvidia Optimus graphics card, the kind that includes what was then a high-end Nvidia card and a low-end Intel card, the idea being that you use the former for the graphics-intensive stuff while reserving the latter for the 2D desktop stuff. It still doesn’t work properly in Linux so I only use an Nvidia only mode. It’s not something I blame the Linux developers for–the Optimus is proprietary and thus not something easily handled in open source–but it is what it is and quite common.

But other than that, there is nothing very special about my laptop. It just works, mostly. Well, it should.

So is Linux ready for the desktop yet?

On the Importance of Free T-shirts

My friends at SyncRO Soft, the makers of the oXygen XML Editor, frequently hand out oXygen t-shirts to their users at XML conferences, and the recently concluded XML Prague was no exception. I’m wearing my new one as I write this. It’s a very nice shirt, the quality is good, and while the oXygen brand is clearly visible, it is unobtrusive and has a non-commercial feel to it.

I also plan on decorating my laptop with some of the stickers they gave away, and I’m always backing up my data on their USB sticks.

Free t-shirts are a difficult art to master. There’s the issue of quality, obviously, and we don’t really need to go there, do we? Then there’s the issue of the logo, the basic message, and the key here is unobtrusiveness. Yes, it will have to be visible, but that’s about it. I’m not a commercial message, I’m a pro, and want to be regarded as one. Your logo is fine but keep it simple, please.

But most importantly, I need to like the brand.

Here, the oXygen people have a unique advantage. Their product is used almost universally in my chosen field. It’s used by my peers, pretty much every single one of them, and it’s used by our customers. The fact that it is a terrific product and we all rely on it helps, but that’s not really why. A lot of people use Windows every day but would never dream of wearing their shirts.

I think the real reason to why I like the product is that it always feels as if oXygen is updated based on our feedback and what we need. Part of the reason is that they are as much XML geeks as we are; they are a knowledgeable bunch. It really helps if you know your market, basically.

They also sponsor markup conferences which, to me, makes a lot of business sense. Our field is highly specialised and rather small, so these gatherings are hugely important. I do think that without them, eventually development would stop or be taken over by the really commercial entities.

But even more importantly, they participate. They show up at conferences and they present papers. They share what they know and are glad to listen to us share what we know. They are the most non-commercial commercial entity I know of, because while I certainly know that they are selling a product, I don’t really care. See it’s not really us and them, it’s just us, license fees or no license fees.

When you are in a position like that, a t-shirt is an opportunity not to be missed. For all of us.

There’s another company that I like, MarkLogic, that sells what’s probably the most expensive XML database in the world. Lots of people I like and respect work there, which is why I noticed them in the first place. They also participate, they sponsor, and they frequently help develop the standards we all rely on. I have yet to try their product more extensively, but there are free developer licenses for non-commercial purposes and so I will, at some point.

They also hand out t-shirts, and even though I have yet to test MarkLogic Server more extensively, I wear them. And at one point they handed out this awesome USB stick slash bottle opener, a true collector’s item.

They key here, though, is participation, not the nice give-aways. They show up and they share, and so I’m much more inclined to share back.

This Year’s XML Prague…

…was fabulous. It always is, don’t get me wrong, but this one was the best yet. It’s all on video at the conference website, which, all things considered, is a pretty decent substitute for being otherwise engaged, but Prague this time of year is the XML capital of Europe and the place to be.

For one thing, I think I finally actually understand some of the streaming part of the up-and-coming XSLT 3.0 spec, thanks to Abel Braaksma and Michael Kay, who both presented papers on the subject.

John Lumley presented a paper on lessons learned when finalising a standard library for XSLT/XPath extensions to manipulate binary data, a brilliant talk.

George Bina showed oXygen on mobile devices with the crowd cheering his every swipe of the iPad screen, in what was probably one of the most memorable demos ever at XML Prague.

And there was me, lastly (literally; I was the last scheduled speaker, right before a concluding interactive talk led by Robin Berjon), showing my ProXist demo. It all went surprisingly well, except for a slight problem with Linux and Gnome.

You should have been there.

Trust

With the advent of digital projection comes the age of explicit distrust.

In the olden days, when 35mm projection was the norm and 70mm what you hoped for, the film distributors would usually send the prints to the cinemas well in advance, mostly because the boxes were heavy and the distributors had little control over the actual physical distribution, but also because they imagined it would take the projectionist some time to assemble a 35mm print for a show.

Balancing the tip in the opposite direction was the fact that they also feared that a new film might be illegally scanned at a cinema. Never mind the fact that it wasn’t easy to set up a reasonable scanning facility at a cinema without the managers noticing, nor do the actual deed, as it would invariably involve actually projecting images for however long the film was.

It was not common; most new feature films that ended up on Pirate Bay, or whatever the VHS precursor was called, were, in fact, pirated by employees of the production company or by a very early link in the distribution chain, long before the films reached the cinemas.

Today, when films are digital and delivered to cinemas in hot-swappable hard disk drives, the industry uses every means at their disposal to stop the illegal copying.

Unfortunately, as evidenced by the many bittorrent sites on the internet, they mostly focus on the wrong targets.

Modern digital films are frequently encrypted, meaning that they require a digital key to unlock them for a show. This key is matched to not only a specific theatre but also a specific digital projector and server at that theatre. The key is dated, with a start date and time, and an end date and time, so that it will only be valid for the screenings and, usually, for a limited time before and after them.

Now, many producers and distributors will send unencrypted films to film festivals such as the Göteborg Film Festival, their reasoning being that digital keys are not always reliable and can cause problems, but also because sometimes the venue needs to be changed at a short notice. Others send their films encrypted but with liberally timed keys, lasting for days, weeks or even months, to help minimise problems.

Which we appreciate. None of us is against the companies protecting their property; while digital keys are a hassle, the actual license files are small and can easily be distributed through email, FTP, etc.

But not every film distributor or production company will understand or even care about what we think or what problems they help create.

Last night, I screened the Spanish film Living Is Easy with Eyes Closed, a charming story about what happened when John Lennon came to Almeria, Spain, to act in a film. About halfway through, I noticed that the server’s screen warned that the film’s license key had expired. It stated that the show contains “one or more unlicensed clips”.

Someone, somewhere, had decided that since it was the only screening at my cinema, the Draken, there was no need to wait until the show was over, which was around 1 AM. As if, after a 17-hour workday, I would stick around to scan the film, never mind the fact that the server manufacturer, Dolby, has other arrangements in place to prevent me from doing so.

Yet, the film is already available on the internet (I checked).

Now, if someone had fainted in the auditorium during the film (which happened two nights ago, by the way) and I had been forced to pause the film, I would not have been able to continue the show. The key will allow us to finish an ongoing show but not to interrupt it and finish it later.

I’m sure the director, who was present at the screening for a midnight Q&A, would have been thrilled to explain why the audience didn’t get to see the conclusion of his film.

Last year, we screened Spring Breakers, one of Hollywood’s many attempts at making money from showing bikini-clad teens, in this case Selena Gomez (in spite of the fact that I hear it’s easier to watch moving images of scantily clad females on the internet). The license key was timed between fifteen minutes before the screening started and one hour forty-five minutes after, making any kind of check by me to check the image format and noting a curtain call cue an impossibility, not to mention the fact that had something happened during the screening and we had been forced to stop it, we again had risked not being able to finish the show.

The production company didn’t stop there, however. They also distributed night vision binoculars to the ushers, with strict orders to monitor the audience during the show. They also wanted to place a guard in the projection booth for the duration of the screening, but I refused, informing the festival that said guard would also have to run the show since I wouldn’t be there.

We do our utmost to run beautiful shows. We take pains to ensure that the screening is as good as we can possibly make it, running a few minutes of every film to see that it’s OK, that the key works, that the image aspect ratio is the correct one, that the audience gets value for their money – tickets are quite expensive these days and most of us regard the audience as our true employers – but the production companies and film distributors aren’t helping.

I think I speak for most of us when saying that we don’t do what we do for them. Had it only been them I doubt I would have bothered at all, to be honest.

Trust is earned; it’s not given freely and they haven’t done anything to earn mine.

T-2 Days and Counting

The annual Göteborg Film Festival is almost upon us, with only two days left when I write this. 11 days of film and, for me, 11 days of clicking Play because it’s all digital now, with the exception of one (1) film.

I’ve written about the advent of digital film before, but also about the death of a profession, and while I briefly considered another stab at these two subjects, I quickly came to my senses; I feel that I’ve said pretty much everything I have to say on the subject. This year’s festival is merely a confirmation of those two blog posts, and there is little reason to reiterate any of it.

So I’ll write about the death of a cinema instead. More specifically, my cinema, the Draken, until recently the last surviving Cinerama theatre with its original appearance intact, until last summer mostly unchanged by both the ravages of time and pitiful small-screen multiplexes. It survived them both, although Svensk Filmindustri, Sweden’s only cinema owner of note, did have plans to convert the theatre into a double-screen abomination in the early seventies.

What it didn’t survive, in the end, was the long-planned “renovation” by its owner, Folkets hus, a k a Sweden’s working class movement. The original 1950s chandeliers were thrown away and holes cut into the marble walls to lead the way to toilets forced into the space under the auditorium. Light riggings were carelessly hung up in the auditorium  itself and computer-controlled fluorescent lights with only nominal dimming capabilities were allowed to replace the old auditorium lighting.

And in the large upper foyer, the maritime-themed painting that used to be the pride of the cinema has now been replaced by a motorised conference screen. My cinema has now been reduced into a pathetic two-screen cinema. Or, rather, conference hall. Well done, Folkets hus.

Those closest to you are the ones that can hurt you the most.

Oh, and…

…most of the ProX stuff is available at Github. Not the eXist web pages, yet, but that’s because I’m still experimenting with them and there’s some work left. There’s the Balisage demo, and there’s the basic ProXist stuff, with pipelines and XQueries and such, and there’s the authoring environment (with Relax NG schema, FO, etc), but no instructions on how to get any of it to run, yet.

I have a test app running locally, a little something that is about as simple as I can make it, but since I am not a web developer (I’m a markup geek), the HTML is awkward, the CSS nonexistent apart from the default eXist stuff, and the XQueries somewhat painful. I do think it’s going to be pretty cool, though, and look forward to presenting it at XML Prague.

ProXist and My XML Prague Paper

I recently submitted the final version of my XML Prague whitepaper about my eXist implementation of ProX, called ProXist (with apologies for the tacky name). While I’m generally pleased with the paper, the actual demo implementation I am going to present at the conference is not quite finished yet and I wish I had another week to fill in the missing parts.

Most of the ProXist stuff works but there are still some dots to connect. For example, something that currently occupies the philosophical part of my brain has to do with how to run the ProX wrapper process, the one that configures the child process that actually does stuff to the input. ProX, so far, has been very much about automation and about things happening behind the scenes, and so I have aimed for as few end user steps as possible.

My Balisage ProX demo was a simple wrapper pipeline that did what it did in one go. Everything was fitted inside that pipeline: selecting the input, configuring the process that is to be applied to the input in an XForm, postprocessing the configured process and converting it to a script that will run the child process, running the child process, saving the results. Everything.

But the other day, while working on the eXist version and toying with its web application development IDE, it dawned on me that there doesn’t have to be a single unified wrapper process. If its components are presented on a web page and every one of them includes logic to check if the information from a required step is available or not (for example, a simple check to confirm that an input has been chosen before the process can be configured), they don’t have to be explicitly connected.

The web page that presents the components (mainly, selecting input and configuring the process to be applied on the input) then becomes an implicit wrapper. The user reads the page and the presentation order and the input checks are enough. There is no longer a need a unified wrapper process.

Now, you may think this is obvious, and I have to admit that it now seems obvious to me, too. But I sometimes find it to move from one mindset (for example, that automation bit I mentioned, above) to another (such as the situation at hand, the actual environment I implement things in) as easily as I would like. If this is because I’m getting older or if it’s who I am, I don’t know. In this particular case, I was so convinced that the unified wrapper was the way to go that it got in the way of a better solution.

At least I think it’s a better solution. If it isn’t, hopefully I can change my mind again and in time.

See you at XML Prague.