Tuesday, September 21, 2010

So Qt 4.7 is out… where’s Sigil?

As the title says, Qt 4.7 is out. The trunk version of Sigil has been running on Qt 4.7 RC1 for weeks now, and any problems that I’ve noticed I’ve already fixed. But it’s not all roses…

I’ve also transitioned to Visual Studio 2010 and the MSVC 10.0 C++ compiler… and it apparently miscompiles Qt 4.7 when compiling as x64. Here’s the bug report on Nokia’s tracker. To be clear, this is not a Nokia bug, but a Microsoft bug. MS apparently has a hotfix already, and it’s about to be released any day now. They’re testing it to make sure it doesn't break most of the world’s software. :)

What does that mean for Sigil? Well I was hoping that the hotfix would be released before Qt, but that didn’t happen. So the release of Sigil 0.3.0RC1 is delayed for the time being. There were a few more bugs I wanted to fix anyway.

I’m going to give MS about a week more to release the hotfix; if it’s not out by then, Sigil goes back to MSVC 9.0 (the same version used for all Sigil releases so far) until it is. 

Sunday, September 5, 2010

Typing like crazy at 25wpm

So what have I been doing for the last few weeks? Two things: working furiously on the epub checking library and trying to transition from the QWERTY keyboard layout to Dvorak (touch typing, of course).

You have no idea how hard the latter is.

I tried to switch a couple of times this year, but failed both times. The problem is that it takes you about two to three weeks of regular, daily practice (we’re talking a couple of hours a day just typing) to get to something like 50wpm. During that time, you’re crawling like a snail. It’s absolutely insufferable when you’re used to your thoughts just flowing out of your fingers at 60wpm. And if you have something with a deadline, something you just have to get done, forget it. You’re either not going to do it, or you’re going to switch back to QWERTY. And that will kill you.

You absolutely have to go cold turkey on your old layout to be able to switch to a new one. Trying to “ease yourself into it” doesn’t work; believe me, I’ve tried twice :). You basically have to rewire your brain to the new layout, and reminding it of the old one repeatedly undoes everything you learn.

So this is a whole new world of frustration for me. But it’s worth it in the end, it’s much more comfortable to type this way. My hands used to hurt after a long day; they don’t anymore. Others have told me that after you really get used to it (a couple of months), you type about 30% faster than you did, and without pain.

But enough about that. Epub!

The epub checking library[1] is progressing quite nicely:

  • OPS checking is done (including SVG Full and OPS <switch>), except for the DTBook syntax[2].
  • OPF checking is about 90% done with fallbacks remaining plus a few other checks.
  • OCF checking is done for all six META-INF XML files as it pertains to schemas.
  • NCX checking is done at the schema level; link checking remains.
  • The CLI and GUI clients have been designed, but no code has yet been written.

Note: “done” means done to the point I’m aiming for in the first release, and which includes most of the things you care about.

All in all, it’s going well. My last “class-based” semester is starting tomorrow, so naturally things are going to slow down now. Otherwise I’d be done in a week. With classes, it’s more likely to be three weeks, barring unexpected complications.

Also, Qt 4.7 is at the RC stage, and I’m aiming to integrate Xerces as a QDom substitute for the next release of Sigil to go along with the new Qt version. So that will eat at least a week too.

Footnotes

[1] It has a name now, but for a few fairly ridiculous reasons I’m not willing to reveal it until the first release.

[2] Because nobody uses it! AFAIK it’s also scheduled for deprecation in epub 2.1. Validation for this syntax will eventually make it in for the sake of completeness, but not for the first release.