Lots of companies are working on VR, and we’re led to believe that this is the defining technology of the near future. I’m an optimist when it comes to new technologies, so I wanted to try it out to get a status of where we are today.

My background in VR is not great - I tried a giant helmet once in the 90s at a technology fare. It was a very pixelated rollercoaster, it was all very interesting, and nothing became of it. I tried a VR setup in a Medialogy lab ca 2007, and it looked better but it was mostly a very expensive way of doing storytelling with better immersion.

The reason I find VR interesting today is that it has become cheap, because you can use your smartphone for all the tech and just add some lenses via Google Cardboard. A DIY kit can be had for a dollar or two on Amazon, and complete headsets can be had for $20. To really give it a shot, I bought what I thought was a high-end one for $59, that according to the reviews I read had the best immersive experience. It was the BoboVR Z4 from HyperShop

The BoboVR Z4 comes with a headset for 3D surround sound (how this is not just plain stereo, I don’t know), and the connector was neatly tucked on the left hand side of the device, very easy to connect. That requires, though, that the iPhone 6S Plus that I connected is oriented in one orientation. Such a shame that virtually every app I installed required the phone to be oriented the exact opposite way. Oh well, I ordered an extension cord from Amazon and that was that. It also comes with a button I can tap on my helmet, but that button was extremely unreliable, working the first tap or two and then working less and less. But it’s the wrong place for a button anyway, so I ordered a game controller via eBay that I can hook up. I have no idea if this is the preferred setup for VR, but this is what I explore the VR world through.

Now, what do I want from VR? I’m a developer, so I’d love to treat it as a giant monitor and have a window manager that would let me juggle terminals and text editors in a more productive way than I do at my 5K iMac today. I expect this VR experience to be roughly the VR equivalent of what fvwm and xterms were for a desktop experience back in the days where X11 was my environment.

Other than that, seeing videos in 3D, or where it makes sense, 360 degrees videos, would be interesting. And although I’m not much of a gamer, I know there is much VR exploration going on there, so I’d love to be blown away with a good game that really utilises the immersiveness in a (to me) novel way.

I searched the App Store for VR and downloaded about 200 apps and games (for the rest of the post I’ll just call them apps), some paid, some free. I wanted a good mix to see what was going on in this landscape. I won’t call out many apps in particular, but give you my general experience.

There are many not particularly good apps in the app store, and the VR apps are no different. I expect there is a blog that could help me sort to the cruft, but I had already dived head first in before thinking of this. ;-)

Input is something that needs working on, especially head input from head movement. Most of the apps I got expected you to do rather large head movements. That means more work for the user, more chance to bump into things, and you needing more space. I want more fine-grained control with smaller movements, so that I can do most things sitting on my couch instead of having to stand beside my couch to be able to turn all the way round.

Even though mobile phones aren’t heavy, wearing it together with lenses and headset feels a bit heavy in total. That limits how long a user can use a VR application before being fatigued. Speaking of fatigue, wearing a setup like this for an hour is both eye straining and warm. I have no input on how that could be solved, so for now, doing serious work on a virtual 3D-space of terminal windows seem illusive.

While the idea of using a mobile phone to power the VR experience seems good, it won’t be really good until the operating system on the phone embraces VR. At the moment there are annoyances to downright interruptions from having notifications come in, the occasional vibrating of the phone when a mail arrives, or even worse - people calling you (it’s a phone - that’s what people do). So to get a good experience, you need a dedicated phone for VR apps, which totally defeats the purpose of a cheap entry-level VR system.

Another part where the need for OS-level VR integration is glaringly obvious is that many apps move back and forth between VR and non-VR interaction. This is really bad, because that means taking the headset off, putting my glasses back on, opening the headset, disconnecting the audio cable, taking the device out, fiddling with the interface while holding the headset, putting the device back in, connecting the audio cable, closing the headset, removing my glasses and putting the headset back on again. What kinds of stuff do they require this for? Clicking away from an ad, choosing a new level or scene, settings, etc.

Lastly, I have a QR code that about half of the apps want me to scan on first launch so they know what headset I have and can configure accordingly. The OS should know, and I should not have to carry a QR code around. To fix that last issue, I’ve glued it to my VR headset. Guess what headset doesn’t look all nice anymore? ;-)

Remember I told you about the giant pixels in the 1990s? Well, the pixels are still here. Not as giant, but still very, very visible. I was using an iPhone 6S Plus which has a Retina display of 1920x1080, or 401 DPI. Retina is marketing speech for not being able to see individual pixels in the distance you’re expected to have the device from your eyes. Having the device in a VR headset changes this distance dramatically, so this is not a Retina VR experience at all. So we should expect the resolution game to continue at least until we reach Retina level for VR. This must frighten my iPhone 6S Plus, because when running VR experiences, it runs pretty hot doing all this GPU work - and I just told it that it needs to do a whole lot more. And it needs to stop running as hot, because VR is quickly eating up my battery. That needs fixing too.

One experience I liked a lot is apps that use the camera to give me an augmented reality experience. This can become nice a whole lot nicer when we get more wide-angle lenses on the phone and photo sensors allowing more wide-angle video than what the current crop of phones do.

So this is what I’ve found so far. My experiment is of course not done yet, so I’ve ordered a VicoVR Sensor that has an estimated delivery time in november 2016. For wanting more fine-grained motion for input, attaching a full-skeletal tracking system is probably going the wrong way, but it’ll be interesting to try out.

I’m an iOS developer at Snapsale, and I spend some time on the road, either travelling to our main office in Oslo, or to conferences. For my out-of-office work, I chose the entry-level Macbook.

The specs were not very powerful: a 1,1Ghz dual-core Broadwell Core-M with 8GB of RAM and 256GB SSD. But then again my expectation was mainly to do meetings and notes, UI review and the occasional Xcode hacking. Thus I chose 12” to optimize for being able to “comfortably” work from the flight seat and the coach seat, and retina for working on UI together with our designer.

Optimizing for the screen is something I would not have expected to do five years ago, and I must admit to being a bit hesitant to how the Macbook would deal with Xcode. The answer is: surprisingly well. What I had not factored in was that the SSD is actually a quite fast SSD, and since development work is quite I/O intensive, that made a significant difference.

One of the big benefits of this Mac that is easily overlooked is no fans. I actually didn’t notice for the first couple of weeks until my colleagues Macbook Pro spun up to a whine. Of course, the worst part is that the CPU is not powerful enough to need those fans, but buying a Macbook, you should be very aware of this going in.

Macbook and Xcode

So how is the Macbook for Xcode? It’s decent: I’d say about half the speed of my Skylake iMac (2015 model). The amount of stuff on my screen is of course limited, but laptop development work usually has this drawback, and dealing with that is not hard.

So instead of only occasional Xcode work, I use it heavily for Xcode even when I’m not travelling: at home when I don’t want to go into my home office but be in the living room, and even in my office when I want to run another branch of the git repo in parallel.

With this in mind, I expect to be able to recommend a Skylake Macbook (the rumoured early 2016 model) as an all right Xcode environment.

Welcome to my website. The reason I have a website is that I like to maintain a space where you can find my content. But the way I use the internet, which is not so different from so many others, I leave much of my original content in places like Facebook and Twitter. I don’t mind sharing, if I did I’m sure this content would have been behind a paywall and no-one would read it, but I do like to remain in control of it. When I give it to Facebook and Twitter, they can do more or less what they would like with it.

I’d therefore like to put it out there that I’m investigating options to have what I write there appear here also. Either as a carbon-copy, or even better, with this space as the original source. I could do that as a separate micro-blog feed, but I think that I perhaps prefer embedding it between the blog posts. We’ll see, that’s what I’m thinking so far anyway

Let me know what you think and how you deal with this, preferably as a post that you have full control over on your own site :-)

I started using a treadmill under my desk August 21st 2015. Today, January 6th 2016, I did my 1.000.000th step at the end of my working day. (or 425 kilometers in 45 days - yes I have been travelling much)

I wrote about my first impressions of using the treadmill, and since then I have really been loving it. I’d like to use this opportunity to give you my impressions one million steps in. :-)

First of all: I’m being at least as productive working while walking on a treadmill as I was before. I believe I’m being more productive, but if that is because of the treadmill, better tooling, better architecture or what is hard to say.

My ambition was 15.000 steps a day, but my daily average is about 23.000 steps a day, and that is a little less than 10km a day. I’ve settled in to a speed of around 3.5 km/hour, but I vary from 2.8 km/hour to 4.5 km/hour. So you can already guess my biggest surprise, it is that I don’t get more hours walking than I do. Apart from obvious stuff like bathroom- and coffee-breaks, I stop the treadmill often while debugging, while having meetings and while talking on the phone. Then I stand on the treadmill instead. I haven’t lowered my desk to sit since the end of August.

I used to be very happy to work from home, so if the weather was bad and I didn’t have a specific reason for being in the office, I would just work from home. Since getting the treadmill, it is not that I make a point of going to work, but I actually really want to get to work so I get to use the treadmill there. I’ve switched jobs in this period, and this want to get in has been the same in both places.

My iPhone still doesn’t get all the steps I take since it’s on my desk and my Apple Watch is on my wrist and my wrist is resting on the desk. So my move metrics are often way below what they actually have been. This sucks, but I have stopped caring as much. I hope a good solution will present itself, preferably as an integration from the treadmill software. The included Lifespan treadmill software is still rubbish.

The treadmill is just as loud as it used to be, even after being lubricated well. However, I’ve found just how much difference the office can make to the sound. I used to think my former office wasn’t that resonant, but now that I’m in a larger office, the treadmill doesn’t sound as bad, even though the treadmill itself hasn’t changed.

While I did get a bit sweaty when I began using the treadmill, I don’t find I do that anymore. I attribute this to it being winter now and I started using it in the summer, we’ll see if half a years time.

I’ve become a big advocate for the treadmill, and I really do think it is one of the best things I’ve done for my work life. If you are nearby Tarp, come by and try it and see how you like it.

November 2nd I started working at Snapsale as the head of iOS development. At the moment that means the head of me, so I get to do all the fun stuff myself. :-)

In that context I’m setting up an iOS test lab, that I’ve called “Snapsale iOS Lab” (yes, I’m that original in my naming). For my own sake, to remember with future devices, and to inspire other iOS developers (this might even apply to some degree to other mobile app devs), here is the list of tasks I do for each device.

When setting up a new iOS device:

  • Set it up with the labs iCloud account
  • Set no TouchID or PIN code
  • Turn off key sound
  • Give it a name with the template “iOS Labs [iOS/iPhone/AppleTV] [modelNumber] w/iOS [version]”
  • Turn off automatic screen lock
  • Turn on automatic downloads and updates of apps
  • Set up email with Gmail account associated with the labs iCloud account
  • Download all the purchased apps from the app store, remembering especially
    • TestFlight
    • Facebook
    • Instagram
  • Install the latest apps from TestFlight and say yes to notifications
  • Set up Facebook
  • Set up Instagram
  • Attach to test server, remember to trust the device on the Mini and the other way around, including Watch if paired
  • Grab the device UDID and register in Apples Developer Member Center
  • If this was the last device, update the developer and ad-hoc provisioning profiles to all registered devices. Download the provisioning profiles, put them in the servers “Provisioning Profiles” Dropbox folder, and replace them in the repos that have them committed

I expect the last two steps can be automated through Fastlane.io, but I haven’t come around to that yet.

I also expect that many of these steps can be fast-forwarded by taking a backup with encryption enabled through iTunes on the test server and then restoring it onto the new device