If you get grounded in virtual reality, you get grounded in real life

I keep researching the new VR stuff and thinking “this could be fun, but it’s still too expensive and impractical”. Finally took a quick jaunt to the Portland Microsoft store this morning hoping for a demo of the HTC Vive VR headset to see how it feels in practice.

Turns out they don’t have the Vive set up for demos right now because it requires a lot of setup and space for the room-scale tracking, so instead I did a quick demo with the Oculus Rift, which doesn’t require as much space set aside.

First impressions:
* They make you sign a waiver in case of motion sickness…
* Might have been able to fit over my glasses, but I opted to just go without (my uncorrected blurry vision is still slightly better than the resolution of the Rift anyway)
* Turned it on – hey that’s pretty cool!
* Screen door effect from the pixel grid is very visible at first but kinda goes away.
* Limited resolution is also noticeable but not that big a deal for the demo content. I imagine this is a bigger problem for user interfaces with text though.
* Head tracking is totally smooth and feels natural – just look around!
* Demos where I sit still and either watch something or interact with the controllers were great.
* Complete inability to see real world gave a feeling of helplessness when had to, say, put on the controllers…
* Once controllers in hand, visualization of hand/controller helped a lot.
* Shooting gallery demo was very natural with the rift controllers.
* Mine car roller coaster demo instantly made me nauseated; I couldn’t have taken more than a couple minutes of that.

For FPS-style games and similar immersion, motion without causing motion sickness is going to be the biggest problem — compared to a fixed screen the VR brain is much more sensitive to mismatches between visual cues and your inner ear’s accelerometer…

I think I’m going to wait on the PC VR end for now; it’s a young space, the early sets are expensive, and I need to invest in a new more powerful PC anyway. Microsoft is working on some awesome “mixed reality” integration for Windows 10, which could be interesting to watch but the hardware and software are still in flux. Apple is just starting to get into it, mostly concentrating (so far as we know) on AR views on iPhones and iPads, but that could become something else some day.

Google’s Daydream VR platform for Android is interesting, but I need a newer phone for that — and again I probably should wait for the Pixel 2 later this year rather than buy last year’s model just to play with VR.

So for the meantime, I ordered a $15 Google Cardboard viewer that’ll run some VR apps on my current phone, as long as I physically hold it up to my face. That should tide me over with some games and demos, and gives me the chance to experiment with making my own 3D scenes via either Unity (building to a native Android app) or something like BabylonJS (running in Chrome with WebGL/WebVR support).

Dell P2415Q 24″ UHD monitor review

Last year I got two Dell P2415Q 24″ Ultra-HD monitors, replacing my old and broken 1080p monitor, to use with my MacBook Pro. Since the model’s still available, thought I’d finally post my experience.


Picture quality: great
good for what you get and they’re cheaper now than they were last year.
mixed; some problems that need workarounds for me.

So first the good: the P2415Q is the “right size, right resolution” for me; with an operating system such as Mac OS X, Windows 10, or some Linux environments that handles 200% display scaling correctly, it feels like a 24″ 1080p monitor that shows much, much sharper text and images. When using the external monitors with my 13″ MacBook Pro, the display density is about the same as the internal display and the color reproduction seems consistent enough to my untrained eye that it’s not distracting to move windows between the laptop and external screens.

Two side by side plus the laptop makes for a vveerryy wwiiddee desktop, which can be very nice when developing & testing stuff since I’ve got chat, documentation, terminal, code, browser window, and debugger all visible at once. 🙂

The monitor accepts DisplayPort input via either full-size or mini, and also accepts HDMI (limited to 30 Hz at the full resolution, or full 60Hz at 1080p) which makes it possible to hook up random devices like phones and game consoles.

There is also an included USB hub capability, which works well enough but the ports are awkward to reach.

The bad: there are three major pain points for me, in reducing order of WTF:

  1. Sometimes the display goes black when using DisplayPort; the only way to resolve it seems to be to disconnect the power and hard-reset the monitor. Unplugging and replugging the DisplayPort cable has no effect. Switching cables has no effect. Rebooting computer has no effect. Switching the monitor’s power on and off has no effect. Have to reach back and yank out the power.
  2. There are neither speakers nor audio passthrough connectors, but when connecting over HDMI devices like game consoles and phones will attempt to route audio to the monitor, sending all your audio down a black hole. Workaround is to manually re-route audio back to default or attach a USB audio output path to the connected device.
  3. Even though the monitor can tell if there’s something connected to each input or not, it won’t automatically switch to the only active input. After unplugging my MacBook from the DisplayPort and plugging a tablet in over HDMI, I still have to bring up the on-screen menu and switch inputs.

The first problem is so severe it can make the unit appear dead, but is easily worked around. The second and third may or may not bother you depending on your needs.

So, happy enough to use em but there’s real early adopter pain in this particular model monitor.

US political parties are aconstitutional. Let’s fix that.

If you skim through the US Constitution you’ll find there are zero mentions of political parties. Party politics are, at best, an “aconstitutional” concept whose powers and influence in our country are worrisome, and I think as a nation we should question our assumptions about how legislatures work, vote, and campaign.

A lot of my fellow geeks lean libertarian and prefer the idea that parties should have less of a role so that individual gov representatives can both serve their personal missions and rep their constituents as directly as possible.

I think we should rather embrace that people feel the need to organize into blocs to advance their common interests, and think about ways to make political parties serve the people better.

One of the most basic is to consider changing the House of Representatives and/or the Senate to have proportional representation. That is, instead of pretending that each congressional district is having its own isolated election to rep the largest local bloc of voters, we recognize that people are distributed across and within physical districts. So let’s not let a 51%/49% split in every district lead to a 100% victory for one party — let it lead to a 51%/49% representation in the ongoing work of the legislature.

Proportional representation is also more amenable to multiple parties — the current system strongly favors giant parties because if you’re not #1 you have no voice, and only #2 ever has a chance of a voter turnout surge bringing it back to #1. If there’s always a few % dedicated to smaller parties, those parties and the people they represent have an opportunity to actually be heard in session, and the possibility of shifting party coalitions can help to correct imbalances of power between election cycles.

Our current system basically flip-flops between favoring one of two parties as each election has a couple percentage points difference from the last. I don’t think it’s healthy.

Chromebook Pixel first look

Screenshot 2013-03-01 at 6.25.18 PM

So, I gave in and picked up a Chromebook Pixel. I admit, I’m seduced by the high-resolution 2560×1700 screen. Nom nom nom so many tiny pixels!

The browser works like you’d expect — all the usual web stuff seems to work, just like Chrome on Linux or Mac or Windows. Like the newer MacBook Pros it has a very high-density display, which looks fantastic. Wikipedia looks great; we properly detect the density and load enhanced-resolution images. (We still have to make the logo high-res, we know that’s a problem. 🙂

The machine also correctly handles mixed-resolution situations when you plug in an external monitor. (The plug is mini-DVI, conveniently compatible with your existing MacBook VGA, DVI, or HDMI adapters. Yay!) Hook up a regular 1080p monitor and drag a browser window over — it’ll automatically switch to low-density and everything appears the correct size. Move the window back to the main screen, and it pops back into beautiful high-resolution. The main limitation is that windows can’t span screens; except during the move operation itself they display only on one monitor or the other.

But of course you’re all wondering about Chrome OS and its suitability for a medium-high-end laptop. Is it good or bad? Hard to say so far, I’m still exploring it… but be aware the machine isn’t limited to Chrome: it’s easy to unlock to developer mode and either mess with the underlying Linux system or install a stock OS distribution like Ubuntu.

Just to prove it to myself, I went ahead and followed the directions on switching to developer mode, enabling USB and legacy booting, and was able to boot an Ubuntu installer stick into the GUI. (I was stuck for a while unable to boot, but it turned out to be because I had an incomplete .iso download. Whoops!) Unfortunately the trackpad isn’t supported in the stock distro yet; some people have been working on drivers, but I might wait a bit for it to be better integrated. Ubuntu’s Unity desktop also isn’t quite “retina-ready”, and needs some more loving for high-density screens.

In the meantime, I’m trying out Chrome OS as she was meant to be spoken. As a fan of Firefox OS, the idea of a browser-centric OS already appeals to me (though they are very differently implemented under the hood)… but I also know that there are limitations.

In regular (non-developer) mode, you don’t have access to a low-level Linux shell. There is a terminal emulator (press control+alt+T) which can do ssh, so if you do all your development on a server in a shell, that might be good enough for you. 🙂

But, you can’t install anything that doesn’t run in the browser… but it’s a pretty good browser, and is extended in several ways:

  • all the usual pure HTML5 suspects we know and love
  • Flash plugin
  • special plugin for Netflix — you don’t get that on stock Linux 🙁
  • PDF viewer
  • NaCl plugin

NaCl is interesting because it allows running sandboxed native code at full speed, within the existing HTML/JavaScript security model. Sorta like Java applets but precompiled on the server. Downside is that it requires compiling to multiple platforms (x86, x86-64, and ARM), but the upside is you can apparently run some pretty fast stuff, including access to OpenGL ES for graphics. This should be pretty good for games, if developers are willing to port… A low-end example is NaClBox which is a port of DosBox to run in the NaCl environment.

(Mozilla meanwhile is pushing emscripten as a platform-neutral alternative to NaCl. This compiles C and C++ programs to JavaScript through a clang/LLVM layer. The overhead of JavaScript compilation and type-safety slows it down compared to NaCl, but it achieves reasonably good performance on modern JS engines and works in more browsers. Combined with WebGL, this is also a way to port C/C++ games to the web. There are some nice examples like the BananaBread FPS demo, which *almost* works on the Chromebook… graphics are lovely but the mouse movement seems to be misdetected.)

As for getting “real work” done… thanks to Apple’s limitations I can’t do iOS development on anything but an actual Mac OS X machine, so I won’t be using it for my current main project. But it can serve well for secondary tasks: poking the wikis, email, calendering, chat, Google Docs and Hangouts, notes in Etherpad, etc. If I can rig up an SSH key, I should be able to ssh into my own or work servers in the terminal to do some maintenance there. In theory, I can do web development through an in-browser IDE like Cloud9 — I’ll try it out on MediaWiki and see what I can report.

I’m having trouble finding a good web-based IRC chat. Freenode’s web chat interface is usable but just …. not very good. I tried Kiwi IRC which has a better UI, but I’m still not quite satisfied with it. Maybe I’ll go back to the terminal. 😉

To be continued…

Microsoft Surface / Windows RT initial review

I’m a sucker for gadgets and like having new things to test and develop on, so I preordered myself a Microsoft Surface tablet. It arrived yesterday, and most importantly I’ve confirmed that it runs my Windows 8/RT Wikipedia app correctly. 🙂

First things first

Screen resolution is noticeably lower than the Retina iPad. I’ve run Windows 8 at full res on my Retina MacBook Pro so you can’t fool me, I know how much better it would look. But it’s adequate enough, and I know more devices are coming with 1080p panels, hopefully to be followed by 2560×1440 panels… we’ll forgive this for a first-gen product perhaps.

As a tablet

I’ve already grown accustomed to the swipe and touch gestures on Windows 8; little in Windows RT is a surprise here. Switching and launching apps, tuning settings, the onscreen keyboard, all that’s pretty good.

The current application availability is limited; some players are there like Netflix and Evernote, while apps like Pandora and Gmail remain missing. Expect to use the browser and web apps as stopgaps.

There seem to be enough games to keep me occupied, both new ones for Windows 8 and ports like Cut the Rope and Angry Birds Space.

As a desktop

One of the advantages of Windows 8 over iOS and Android is the classic Windows desktop, available awkwardly on a touchscreen or in its full glory with a keyboard, mouse, and monitor attached.

The Surface has a real USB port and Bluetooth support for keyboards and mice, and a micro-HDMI port that can be hooked up to HDMI, DVI, or VGA monitors with an adaptor (not included, but I already own some). So you might be tempted to use this Windows RT machine the same way as a “real PC” when docked.

Unfortunately this is where Windows RT’s limitations strike. There’s no compatibility with x86 Windows apps, and ARM-based software for the desktop is limited to what Microsoft chose to ship for you:

  • Internet Explorer
  • Explorer
  • Notepad
  • MS Paint
  • Office
  • Task Manager

And that’s about it. You can’t install Chrome or Firefox. You can’t install LibreOffice. You can’t install git. You can’t even install an IRC client that’s not a full-screen Metro app.

Here’s where the Surface RT falls down for me as something I could use for work:

  • No ability to install native programming environments. Maybe web IDEs work for some purposes…
  • IE doesn’t allow plugins except Flash, so can’t be used for Google+ Hangout video chats. We use these extensively in Wikimedia’s mobile team, which is distributed.
  • Gerrit, the code review tool we use at Wikimedia, barfs on IE 10 due to sloppy version checks. I can’t read diffs or make reviews and can’t just switch to another browser.
  • Pandora runs in IE, but to run music in the background you have to open it on the desktop explicitly. Metro IE stops playback when you switch away.

In general, Metro-style apps are nice on the small tablet screen but get more awkward to work with on an external monitor. Evernote is just icky at 1920 pixels wide!

For people whose school or work requirements fit with what Word, Excel, and PowerPoint provide, Windows RT may be an adequate ‘dockable tablet’ to work on. For me it’ll mostly be for web surfing, games, media and testing.

Of course in theory people could create IDE apps for the Metro environment that ship a mini web server, editor, PHP, and goodies, and make it run on ARM… but so far that doesn’t appear to exist.


If you expect to do software development on a Surface or other Windows tablet, *do not* get a Windows RT device: you will be disappointed. Wait for the Windows 8 pro version or otherwise get something with an Intel inside.


The touch keyboard cover

This was one of the unique selling points of the Surface when it was announced; you can get it with a magnetically attached folding cover which doubles as a keyboard and trackpad. I’m mixed on this; it works but the keyboard is not great, my accuracy is about as bad as with the onscreen keyboard but with worse spelling correction being applied. Possibly getting used to it would improve my typing.

On the other hand it takes up no room on screen which has a certain advantage!

The touch cover only really works when you have the tablet down on a flat surface using the kickstand; sitting on the couch you’ll only be able to use the cover as a cover very well.

I’m curious to see how this ensemble fares on an airplane: will there be room for the cover and kickstand on my little tray table? We shall see.


Until next time!

Top Ten Good Things About Taking Off Your Glasses

  1. helps avoid visual distractions: you can’t worry about what you can’t see
  2. make your games run faster by cranking the resolution down
  3. gives excuse to play with browser’s zoom feature
  4. final step of all ’80s movie makeovers
  5. get to bellyache about them whippersnappers with their tiny displays that are so hard to read
  6. dovetails with nostalgia for ’80s PC and video game graphics
  7. blurry icons in your mobile app no longer concern you
  8. looks sweet if you do it all dramatic
  9. avoid that annoying line where the edge of your glasses cuts off the bottom inch of your monitor in one eye when you’re parked on the couch with your laptop
  10. leave secret identity behind to become Superman

SyncMaster P

Yo I’m SyncMaster P and I’m here to say
  your colors are all washed out but mine are bright as day!
My contrast is dynamic, 50,000:1
  but your monitor’s all washed out kid, just face it you’re done.
I got the wide screen, yeah it’s 1080p
  and you’re still impressed by that old DVD?
Just don’t be tempted by that darn technolust;
  will a 27-incher come leave me in the dust?
I ain’t got USB or DisplayPort hacks,
  but I’m still compatible with things that aren’t Macs!