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.

We didn’t have a local bank

For the past few years we’ve banked with USAA, who do not have physical locations. Thinking about how you bank, how often do you need to walk into a branch, anyway? My paycheck comes direct deposit. If someone mails me a check, I take a picture of it to deposit it. Bills are paid by credit card, by bill pay, or paper check on the odd occasion. If I need cash, I visit any ATM, and USAA will even reimburse me the $2 or $3 ATM fee.

It’s a decent arrangement, right up until you need cash quickly. For us, that was Thursday before last, when the property manager for the home we’re looking to rent said we were approved and could we bring a cashier’s check tomorrow for the security deposit.

I have the money for the security deposit. I like to stay heavily invested, so there’s usually not a lot of cash sitting around, but I just so happened to have the money in a money market due to a recent stock sale. So even better, right? I’ll just wire them the money, they’ll get it today or tomorrow, and life will be good.

Turns out, the property manager’s bookkeeper wouldn’t accept a wire transfer. Inside I’m saying to myself, “Do… you… know what a wire transfer is?” but out loud I’m saying approximately “Hmm, I well that’s a real pickle.”

So I find out that I need a cash-equivalent $3500 in 3 days. While on the phone, I quickly do the mental math and ask if we can come in on Monday instead of Friday to sign the lease. No problem, he says. Thus Operation Shady Drug Dealer is born.

After the call on Thursday I visit a 7-11 ATM and pull out $400 (the transaction max) from two accounts. Total: $800. In the evening I have a class meet up at the Faultline Brewing Company, so I hit their ATM and pull another $200 per account, so that I’m up to the daily max of $600 per account. Total: ($400 x 2) + ($200 x 2) == $1200. That’s a nice stack of $20’s, and we’re only getting started.

On Friday I had to get another $1200 at some point. This time I went to a Chase ATM at a CVS. It too had a $400 limit, but I realized I could just put my card in again and get the other $200 right then for the $600 per account total. There I am at the front of the CVS looking dodgy as shit pulling out $1200 in cash and cramming it into my pockets before someone can see me. But mission accomplished, and we’re up to $2400 total now.

On Saturday I take the giant stack of 20’s and proceed to count it at the dining room table while dressed in a white T-shirt and boxer-briefs. At least it wasn’t a wife-beater, right? I add $100 we had from selling stuff on Craigslist, bringing the grant total to $2500. I didn’t have rubber bands so I divided it into $500 stacks and put them in sandwich bags, which just seemed right at the time but also seems drug dealer-ish for some reason.

Now I have my 5 sandwich bags of currency but nothing to put them in, so I grab a beat-up old USPS envelope (like this) to shove the money into. Now I’m off to the bank looking like someone mailed me a bunch of 20’s.

I still need another $1000, so I hit up the ATM at the Bank of America. That’s done, so into the bank I go, where they turn my cash into a piece of paper that says Bank of America will pay the property management company $3500. That’s the piece of paper I need to hand-carry across town on Monday. This process is somehow better than me calling Vanguard and telling them, “Hey, can you send this person $3500? Yes, it’s really me.” followed by a minute or two of typing and it’s done.

The fact that the real estate industry is a party to this transaction suddenly makes this story understandable, doesn’t it? The whole thing created a lot more stress than necessary in the electronic age. Regardless, I’ve opened a cheapo BOA checking account, just so we’ll have a local account in case this happens again. Vanguard can wire to BOA, then I can walk into BOA and get my cashier’s check.