Palo Alto

Almost nobody will care, but I’ve boiled it down to several possible choices for getting to work.

If I want to drive, I need to leave Los Altos around 8:15 and take 280 N to Page Mill to Alma North. No other route will suffice.
If I want to take the train, I need to leave Los Altos no later than 8:25, take 85 N to Evelyn, and get to the Mountain View train station no later than 8:44. This is the only way to get a parking space. The train arrives at nine. Sometimes I intentionally miss the nine o’clock train and wait until 9:30. This allows me to camp in a coffee shop I like near the train station, and the train is an “express style” (read: much more comfortable, much less crowded) than the nine o’clock.

On Fridays in the Valley all bets are off. People here are weird on Friday. I can roll into the Mountain View train station during primetime and still snag a spot, no problem. It’s a delight. So now I’m establishing a pattern of easy parking in Mountain View around 8:30 and then coffee shopping it until 9:30 when I can leisurely take the express train. Some would say I get more done in that hour between when I park and when I board the train, as opposed to being in the (noisy) office.

The office is much too cramped, but we’re working on it. In the meantime, I do enjoy working in downtown Palo Alto. I’m two blocks from Stanford, a block from the train station, and every conceivable type of cuisine is a short walk away. I’ve bought 4 phones from the T-Mobile store a block away, so they’re starting to like me. The people at the Mediterranean restaurant are probably starting to think I visit too often; it’s the same at Subway.

Oddly, I’m not doing a lot of virtual reality at the new (virtual reality) company, but I’m hoping that improves. In the meantime I’m insanely busy, but it’s with standard IT stuff… backups, servers, networks, systems, etc. Virtual reality is almost here, I just need more time to shove it into your faceholes.

(Photo credit to Flickr user Peter Thoeny.)

New job, new commute

One of the challenges of starting a new job is figuring out unfamiliar traffic patterns. My new job with Jaunt VR takes me to downtown Palo Alto, which is a fantastic place to be. The office is a block from the train station. If only things were as simple as parking at the Mountain View Station in the morning and hopping the train. Unfortunately, unless you get to the station before 7:45a or so, parking is an issue (*). I drop daughter off between 8:00 and 8:15 every weekday.

Given all that, here are the route I’m considering, starting at daughter’s preschool and ending at the office:

  1. Foothills Expy to Arastradero to Alma
  2. Foothills Expy to Page Mill to Alma
  3. 280 to Arastradero to Alma
  4. 280 to Page Mill to Alma
  5. 85 to Evelyn to Caltrain Mtn View
  6. Grant to Phyllis to Calderon to Caltrain Mtn View
  7. Homestead to Sunnyvale-Saratoga to Caltrain Sunnyvale
  8. Homestead to Mary to California to Caltrain Sunnyvale
  9. 85 to 101 to Embarcadero to Alma
  10. 85 to 101 to University
  11. 85 to El Camino
  12. Grant to El Camino
  13. Private helicopter from De Anza Park

I want to be a train guy; I’m just not sure about the parking situation in Mtn View in the morning, and I feel like Sunnyvale is too far in the wrong direction. I’m doing another recon mission tomorrow morning to check out Caltrain parking. Note that this isn’t even factoring in the various costs of these scenarios. Caltrain has station parking and train pass costs, while driving will incur gas, wear and tear, and Palo Alto parking costs.

* – Someone clued me in to a possible “hack” to this, but I need to confirm it tomorrow morning.

Photo courtesy Creative Commons and Flickr user nzdave.

Strange Kerberos / sudo error

We were seeing the following error today when trying to run sudo:

sudo: kerb5: Cannot verify TGT! Possible attack!: Clock skew too great

Clocks were synchronized, so it wasn’t that, and the Internet wasn’t helpful for this issue beyond insisting we had a clock problem. Turns out the Kerberos “replay cache” (or “rcache”) had become corrupt somehow on multiple hosts. The issue was fixed by removing /var/krb5/rcache/root/hosts_0. After that, success!

Minecraft screenshots

One of the nightly routines I have with the kids is to play Minecraft while they eat ice cream and watch me and tell me to give carrots to the piggies. I started up our own private server with the hopes that other kids and parents might join at some point. In the meantime, here’s what we’ve been working on. You can click on the pictures to make them bigger.

We found a nice mountain and decided to make it ours. There is a rail line about halfway up that leads to our “country cottage”, and a rail line leading down from the very top that used to be just for fun but now leads to our “lava house” in the valley.

This is a screenshot from the outside of one level of what we call the apartment.

Here is the inside of one floor of the apartment. I like the way sandstone looks.

We call this our Lava House since it has a nice view of a tall lava flow.

Next to our apartment is a lagoon. We built an aquarium in the lagoon for looking at the sea creatures!

There is also a guest room at the aquarium for people who want to stay over.

We were building a tunnel leading from our aquarium and found this cavern. We are starting to put a path and a rail line in along the right side.

Linux networking with DSR and the NOARP flag

Seeing something odd at work with Linux networking using DSR and wanted to share it. It has to do with the NOARP flag on an interface. It’s not affecting my work, but I try to delve into strange things in an effort to better understand. I don’t think it’s a bug, per se, and I’m sure someone will eventually respond here letting me know it’s WAD.

Take this snippet:

[bhart@a-dns-server ~]$ sudo sysctl -a | grep all.arp
net.ipv4.conf.all.arp_filter = 0
net.ipv4.conf.all.arp_announce = 2
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_accept = 0
net.ipv4.conf.all.arp_notify = 0
[bhart@a-dns-server ~]$ ifconfig lo:0
lo:0 Link encap:Local Loopback
inet addr: Mask:

Note the absence of a NOARP flag in the ifconfig, and the arp_announce and arp_ignore settings. The lo:0 config script looks like:

[bhart@a-dns-server ~]$ cat /etc/sysconfig/network-scripts/ifcfg-lo:0

If I down and then up the interface, I pick up the NOARP flag.

[bhart@a-dns-server ~]$ sudo ifdown lo:0
[bhart@a-dns-server ~]$ sudo ifup lo:0
[bhart@a-dns-server ~]$ ifconfig lo:0
lo:0 Link encap:Local Loopback
inet addr: Mask:

Importantly, the behavior appears the same whether the flag is there or not; we are not ARPing out, and we’re not responding to requests for that address. I just find it peculiar. Thoughts?

“What VR Could, Should, and Almost Certainly Will Be Within Two Years”

Michael Abrash is a member of the virtual reality team at Valve. During this past week’s Steam Developer Days, he gave a talk entitled “What VR Could, Should, And Almost Certainly Will Be Within Two Years.” In his own words, the talk is summed up with:

Compelling consumer-priced VR hardware is coming, probably within two years. It’s for real this time – we’ve built prototypes, and it’s pretty incredible. Our technology should work for consumer products. VR will be best and will evolve most rapidly on the PC. Steam will support it well. And we think it’s possible that it could transform the entire entertainment industry.

Euro Truck Simulator 2

I just want to sleep.

I don’t even know where I’m going. All I know is I picked up a trailer in Verona and I’m heading west with it, wearing my Oculus Rift. And this stupid country road I’m on doesn’t have anywhere to sleep and my guy keeps yawning at me and I’m getting messages that I should sleep and he’s yawning again and where the hell are the rest stops and oh god I just dozed off and hit the guardrail and WHY CAN’T I FIND A PLACE TO REST?

And so it goes with my first experiment with Euro Truck Simulator 2 in Oculus Rift VR mode.

I should back up. I bought ETS2 based on some rave reviews from the Rift community. Naturally, I jumped right in with Rift support and was promptly smashing and crashing my way around southern Europe, racking up damages and frustration. I disabled Rift mode for the time being so I could learn the game, playing probably 5 or 6 (ok, 12) realtime hours without my HMD — but able to read things like, you know, signs, my speed, my fuel, and my sleepiness level. During this time I became familiar with the keyboard (basically required for the game), and was able to navigate by touch by the end.

Then I donned the Rift again. WOW. A fantastically more satisfying game. The sense of depth offered by the Rift makes this a compelling experience. The issues I ran into before still exist, but at least this time I have a rough idea of how much fuel I have and when I need to sleep, so I’m not as worried about not being able to make out those pixels in the HMD display. It’s pretty much impossible to see icons or read signs from within the Rift, but the overall experience dictates that you’ll settle for pulling off the HMD to read that data from your regular monitor so that you can drive in 3D. It’s annoying, but there’s there’s a fair amount of data that needs to be conveyed to the player, so I don’t think it’s something that can be fixed until a higher resolution Rift comes along.

Personally, Euro Truck Simulator 2 is one of the best Rift experiences. However, it’s not without significant drawbacks at this point. The screen door effect is front and center, and as mentioned you’ll spend a lot of time pulling your Rift off to read text on your regular monitor. Of all the games I’ve played so far, ETS2 should see a vast improvement in playability with a higher resolution display. Since this game is my new addiction, I’m anxious to try it out with the DK2 or consumer Rift.

To enable Rift support:

  1. Launch Steam.
  2. Go to Games -> View Games Library.
  3. Right-click on Euro Truck Simulator 2 and choose Properties.
  4. On the General tab, click Set Launch Options. Enter “-oculus” into the textbox.
  5. On the Betas tab, choose “oculus – Experimental support for Oculus Rift”.
  6. Click Close, and then launch the game.

I love I’m using the word love here, I know, but it fills a huge hole in the Rift experience so far.

We had the good fortune of having Matt Sonic, creator of, present at the last Silicon Valley Virtual Reality meetup. Matt is a confident and engaging speaker, but more importantly, he’s also a talented artist, designer, and software developer.

In the Rift community there are app sites (Oculus Share and RiftEnabled come to mind) and launchers (such as VR Launchpad). What does is bring both of those together.

The key features are:

  • Browse. From within the Rift, you can browse through the list of approved(a), compatible apps. The interface is gorgeous, and as Matt stated, we shouldn’t be so quick to discard 2D motifs we’re used to.
  • Download. Click the Download button next to an app and it starts downloading. Files are staged at a CDN so downloads are quick and reliable.
  • Launch. Run it! And when you’re done, you can exit any app using Shift-Tab.
  • Review. This one of the most interesting aspects of the marketplace. You can only review apps that you’ve tried. Granted, you can go into an app for a few seconds, exit, and then be allowed to submit a review, but the effects of this should be netted away as more reviews are submitted. You are prompted to submit a review right after exiting the app, when impressions are freshest.

What I find particularly interesting is the usage data that’s available. Since a user starts an app from the launcher and then ends up back there once they’re done, data about how long the app was used is captured. As Matt stated in his talk, if a user spends a short amount of time in an application, that can suggest that perhaps they had a bad experience because 1) the game sucks, or 2) there was motion sickness. Either way, that’s valuable information for the app developer.

It would be interesting to add a feedback mechanism (as opposed to a review) that would notice when a user was only in an app for a short period of time and try to capture why that was the case, perhaps with a quick one or two question survey if the user returned within 1 to 3 minutes of launching.

Overall, I’d obviously suggest that you try After all, it’s free and good! But beyond that, I was impressed with Matt’s stated goals of 1) making VR profitable, 2) improving VR design, and 3) bringing VR to the masses. Making VR profitable for hardware and software developers means that more money and players will enter the market. This validates this burgeoning industry, and means that we as users get cooler technology even sooner. Hooray for capitalism!

(a) There are pros and cons to having a moderated app marketplace, but that’s a blog entry for another day.

Oculus Rift thoughts

The killer app for the Oculus Rift has yet to be written. And when it is, I don’t think it will be a game in the traditional sense.

I received my Rift in early July, a few days before the wife and kids left for Nova Scotia for a month. Their departure meant I was able to spend a lot of time with the device in a short amount of time without ignoring family duties. I logged many hours in Lunar Lander, Tuscany+Hydra, Qbeh, and whatever else I could download. Life wasn’t too stressful at that point, so I put myself into somewhat stressful games like Lunar Lander as an escape.

Then I accepted a job at LinkedIn and began the process of moving our family from Florida to California. Stress was at an all-time high, free time was few and far between, and Rift went into a box for a few months.

Life in a new state at a new job wasn’t any less stressful, but at least I was able to pull the Rift out of storage and play periodically. This time, however, I favored relaxing games over Half Life 2 and Lunar Lander. I’d sit back and explore the solar system in Titans of Space. Or I’d play a rampaging elephant in Dumpy. Or I’d climb up to the second floor of my Tuscan mansion, don the headphones, and soak in the sights and sounds while standing on my virtual balcony. Games like Half Life 2 are a fantastic escape, but so is Tuscany, in a different way.

I blinked awake last night at 1am (as I am sometimes wont to do) and my brain started spinning. I pondered the psychiatric applications of a Rift. Could it be prescribed to help someone with a mental illness, such as schizophrenia or depression? What would the software applications look like that aid with various afflictions? How long would someone need to be in the Rift before seeing results? Would the experience be mainly visual, or would audio play an important part? And so on.

From there, I considered what it would take to make the Rift widely accessible. For mass adoption, it has to 1) provide a compelling visual experience, 2) make it simple to set up initially, 3) make it simple to configure for each player’s vision and IPD, and 4) make it simple to choose and launch applications. Right now it’s an intimidating collection of cords, lenses, and utilities. I’m not faulting Oculus here; after all, what I have is clearly advertised as a development kit (which is a fantastic dev kit, for the record).

It basically boils down to whether or not the Rift could pass the “grandma test”. There are a lot of moving parts to the grandma test. I believe the following would need to occur for my subject grandma, my wife’s grandmother Joy, to use a Rift… and she’s actually pretty decent with the computer.

  • A cooperative operating system
  • High(er) resolution display
  • Headset that automatically calibrates position
  • Headset that automatically scans and adjusts lenses for vision correction (20/20, near-sighted, far-sighted)
  • Headset that automatically scans and adapts to different IPD’s
  • Simple Rift connections (though USB and HDMI are pretty fool-proof)
  • Simple application discovery
  • Simple application launching
  • Simple application updating
  • Less jarring transition from desktop to Rift and back
  • Support for an augmented reality mode, which would let you wear the headset but see your environment so you can grab your STEM controllers, headphones, XBOX controller, etc.

Karl Krantz has a fantastic head start on simple application launching with VR Launchpad. If it was expanded to include app discovery and updating, it would be the go to app for simple Rifting. Oculus has the ball on most of the other items; we can only wait for the consumer version to see how polished it is. Beyond that it’s up to application developers to think beyond the normal into the surreal, bizarre, and awe-inspiring.

Along those lines, if you’re a developer who is creating content specifically for the Rift, I’d like to speak with you. I’m looking to invest financially in this growing space, and can offer feedback as well. I can be reached at

Update 2013-Dec-16: Regarding a launcher that would include app discovery and updating, see my blog entry about It fills the important role of app discovery, and updating is coming later.

I love Waze

I love Waze. It’s great for here in the San Francisco Bay area where there are so many technologically-inclined people, and so much traffic.


There’s a “feature” that I simply can’t understand. If I fire up the app on my iPhone when I climb into my car to go to work, it’s smart enough to recognize that I’m at my home location, it’s the morning, that I might be headed to work, so it asks me if I’m heading to work. It gives me some time to answer… maybe 10 seconds? If I don’t answer YES or don’t answer it in time, it then “helps” me by starting up navigation to my work location. It’s the same at night as I’m heading home.

The fact that it wants to help me drive to work is a good thing. But what I can’t figure out is 1) why it does it compulsively, with no (apparent) option to disable this behavior, and 2) why it wants to give me turn-by-turn directions to someplace I drive every single work day. At a minimum, this behavior should be configurable. Better, it should be more intelligent.

My suggestion:

  • Calculate a time for the usual way to work by looking through recent history, taking traffic into account. I typically take the same route to work. Call this “Route A”.

  • Calculate the fastest route to work using normal logic, taking traffic into account. Call this “Route B”.

If Route B is faster than route A, then ask me if I want to take the alternate route due to traffic. If I answer Yes, then enable turn-by-turn. If the normal route is fastest, then don’t give me turn-by-turn, but still show the navigation screens and ETA.

As I stated from the outset, I’m a huge fan of Waze. I run it every time I travel. I report accidents, hazards, and will even update gas prices if I’m sitting at an intersection. But I do think there’s an opportunity here for improvement.