July 18, 2019

Macbook out

So Apple stopped selling the Macbook. The one-ported, fanless computer which was also first with everyone's favorite too-thin-for-its-own-good-keyboard. The computer on which I happen to be typing this.

Strange, really. I bought this machine pretty much as soon as I could, and it has been my main personal computer ever since. My first-generation machine lasted all through the life of the entire product line, as it were. I had a short period of one key being wonky, but other than that I have not had a single problem. It has been chugging along through many, many podcast recordings and even more editing sessions.

MP3 encoding must rank unusually high among this machine's total CPU cycle usage.

I have rarely missed additional ports, seeing it as more of a challenge and finding that I rarely need to plug things (especially more than one thing) in when away from my own desk. A more common wish has been for that port to be more powerful, like a proper thunderbolt port, so that I could connect more things more reliably when working through a dock or other hub-like thing. That could also have meant me buying a 4K monitor years ago, so perhaps my wallet is secretly grateful …

Yes, I want a faster machine sometimes. Most often when encoding those long podcast files.

But I am still completely in love with the size, weight, and complete silence of this machine. Every other computer feels like a battleship next to it, and sometimes sound like one as well.

When the time comes to replace this machine, I have a very hard time seeing the replacement being anything but the smallest and lightest laptop Apple makes at the time. If I am to own a laptop, I want it to shine at being easy to take with me. So if it broke down today, a Macbook air would be the obvious choice.

Perhaps more interesting to think about is what would happen if I decided I could stick with an Ipad for portable needs. Suddenly, a whole new world of questions would open up about which kind of desktop Mac would be best, or most fun, for my needs.

No, it would not be a Mac pro. But both the modern Mac minis and plenty of Imacs are definitely within the reasonable-if-you-squint-range.

I will drink one up (pour one out? Around a computer? Are you out of your mind?) for the Macbook adorable. It is a great thing the whole Mac lineup feels exciting again.

June 15, 2019


I have had a great deal of fun with my Playstation VR, but I have always wanted more as well. More options, more experiences, improved featuers, and, of course, the ability to not have to worry about cables. Had I owned a suitably powerful Windows PC I would probably have got myself a Oculus rift or HTC Vive at some point, but being a user of Macs (and a very slow one outside of work at that) the combined price of headset and powerful PC made it quite easy to resist.

Then I heard talk of the Oculus quest, and my curiosity clearly became much too great. I ordered it pretty much as early as I could, and I was deeply impatient waiting for delivery (especially since a first delivery attempt failed and was blamed on nobody at the well-manned office answering the call at the door).

There will be a lot of comparison with the Playstation VR here, simply because that has been my most used VR experience by far.

Why so excited?

So it's another VR headset. I already have the Playstation VR, so why did I splurge for the Oculus quest?

This is a big part of the reason:

Oculus quest in carrying case Oculus quest in carrying case

That case (which is a separate purchase) is larger than it appears in pictures, but it does fit everything. The headset, the two wireless controllers, the charger with cable (which also has enough power to charge my Macbook), and the earbuds I throw in so as not to broadcast games to everyone around me. If you skip the earbuds, this is a completely wireless, completely untethered VR experience. Somewhat baked into this is the fact that the Quest tracks its own position in the room, you are not required to set up beacons or cameras or other exernal points of reference.

When you start the Quest in a new location, a camera in the headset shows your surroundings and all you need to do is confirm or adjust the floor level (which you do by putting one controller on the floor), then point and click to draw the area within which you want to move around. The process is fun and only takes seconds. It has an Apple-level of polish to it, and I feel that stretches throughout the whole Quest experience.

Okay, to be fair, Apple would probably have designed the straps differently, but I am not sure they would automatically have worked better. The Quest straps are sturdy rubber and use velcro for seamless adjustment. Not an Apple feel, but it works really well. There is also enough bultin give that you can easily take the headset off and put it back on without needing to readjust it, which feels surprisingly liberating compared to the Playstation VR where some adjustment is always necessary.

I also find it easier to get a good, sharp picture in the Quest than in the Playstation VR. I have no problems wearing glasses, and I also think the sharp picture I see has more detail on average. I think the two main factors are somewhat increased resolution, and more use of antialiasing. I would not bet on there actually being more details in the way of polygons or texture resolution, but the Quest makes good use of what it does have.

The Playstation VR headset is more comfortable though. It sits much lighter on the face and head, and spreads its weight more evenly. It also does not get warm when in use, while the Quest noticeably heats up itself and part of my face. I am also pretty sure I can hear a fan whirring inside the Quest when I start it. In short: the Playstation VR makes the most of not needing to pack all its hardware (and power supply) into the headset itself.

The controllers

Oculus quest controller Oculus quest controller

The Quest includes two of these … things. The controllers are mirrored, so there is a dedicated left and right controller, and during initial setup the headset can point out which controller is where so you never have to switch around inside a game. They are powered by a single AA battery each, somewhat to my surprise. I had half assumed builtin batteries and USB charging, but no.

On top of each is a thumb stick, X and Y buttons and a Oculus button use to re-center (when held down) and to return to the home screen/room (by tapping). On front is a trigger for your index finger and another button for your long finger.

The thumb stick and top buttons are not pressure sensitive, but they do register a touch. This enables the controllers to simulate quite a bit of hand movement, which is used in several games I have tried. Without touching any buttons, the hand will be fully open. Place the thumb on a top button and the thumb is moved down. Press the trigger to bend the index finger, then press the long finger button to bend the other fingers. Voila, closed hand. Release the trigger button to point at stuff using just the index finger. It all feels very natural pretty much right away, and games make good use of the possibilities.

Vader: immortal

It is only 40 minutes or so, the first of a series of "episodes", but Vader: immortal is a ILM-made Star wars story you should play as soon as you can. You get to use those finger possibilities of the controllers immediately, as you enter the game an unnamed smuggler seated in the pilot's seat of your ship while your robot co-pilot tells you it is time to jump to hyperspace. How? Flip those nice switches on the left up using your index finger, then grab that nice big lever on the right and push it forward.

That felt neat.

Now, imagine just how good it feels when you get to wield a light saber.


Some things need no tutorials.

May 30, 2019

Podcast chapters 1.5 is here

… and 1.5.1 is right around the corner. (Correction: it too is out! App review is not as slow as it used to be.) Podcasters are clearly very good at delivering encouragement and eminently detailed problem reports, often in the exact same Twitter message. In this case @davidarribas provided not only a text description, but also a screen recording, screenshots, and the exact MP3 files involved in the process.

Not even I could manage to not find the error quickly with such excellent data. And so 1.5.1 is coming, submitted only two days after the big 1.5.

So what is the thing with 1.5?

A rewrite of most code handling reading and, especially, writing of ID3 metadata from and to MP3 files.

You know, the main thing the app actually does.

Both Thomas and I had been thinking independently of starting this job before I even took over. Podcast chapters used a surprisingly wide array of libraries and techniques to get metadata out of and into files, and while it worked well there was a lot of room for a cleaner solution. The major downside was in doing a lot of work for no immediate benefit to users, but the upside would be a nicer codebase and greater ease of adding new featuers. A little difficult to motivate in the moment, but of great possible benefit in the future. And I had another good driver to get me going: learning about the domain.

I now know where stuff is and how it fits together.

Doing the rewrite has had the great benefit of opening a lot of black boxes for me. If I knew all about the ID3 standard and working with files at the byte-level, I may have been able to move very fast with the old codebase. But I did not, and writing code to handle it has taught me the ins and outs and, eventually, increasingly, made them feel easier to work with. I have removed a lot of uncertainty in the form of code I did not know very well, and I have added the knowledge and excitement of being able to change and add things easily.

The black box is open, and I have a pretty long list of fun stuff to look into.

Restoring episode summaries, for example. I thought this would be like working with any other text, but it turns out to be a little bit more interesting, especially if I want to be a good metadata citizen and not remove other text a user may have put in the file through some other app. Before, that kind of thing looked strange, error-prone, and somewhat tiring. Now that the box is open, it is plain fun to think about how to do it best. (And then fiddle back and forth with reading and writing actual bytes, reading the ID3 spec with a magnifying glass trying to figure out what exactly is happening and why.)

May 12, 2019

Podcast chapters 1.5 approaching

It has been a little while now since I took over development of Podcast chapters. Close to two months, in fact.

From the outside the only visible events have been one minor update fixing a small bug and a couple of changed references to owner and contact details. On the inside, I have been slowly but surely (well, sometimes quite hesitantly, to be honest) hammering away at the core of the app, mainly doing work I hope no end user will ever notice other than there being slightly fewer problems. The real point is cleaning up some technical debt and make a whole lot of fun stuff possible going forward.

So: 1.5 is coming. Big thing for me, hopefully not for anyone else.

Well, okay, it will also fix a couple of bugs and add a minor feature or two.

For those excited by code like myself, I do plan to talk about the story so far once this version is out. But first things first: finish thing, then talk about it.

The thing I really wanted to write about was having a couple of those wonderful moments where a bug is finally found, things click and become just that much clearer than they were before. Being in such unfamiliar territory, I have had minor moments like that along the whole way, but the last few days they were of the kind where that one minor problem is fixed and a whole chunk of code starts to just work. No matter how small the fix was, the combined relief and sense of accomplishment is just incredible.

(And in this particular case, once found the fixes have been truly minimal. We are talking being off by a byte and such things.)

If you read this and happen to be into podcast production involving chapters and other ID3 metadata: what would you like in a good chapter editing app for the Mac? What should it do to fit well into your workflow (new or old)?

May 01, 2019

Books I have read

Books and other literature I have read, in, somewhat uncertain, reverse chronological order. The list starts from the summer of 2008, and my main purpose with it is to be able to see what I have actually been reading. I do feel that I read many quite good books, but I never seem to be able to recall what I have recently read when asked for recommendations.