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 VirtualReality.io. 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 VirtualReality.io, 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 VirtualReality.io 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 VirtualReality.io. 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 bbhart@bbhart.com.

Update 2013-Dec-16: Regarding a launcher that would include app discovery and updating, see my blog entry about VirtualReality.io. 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.

Replacement Oculus Rift power adapter

I left the power adapter for my Oculus Rift in Florida by accident when I moved to California. It was harder than I expected to find out what kind of replacement adapter I need.

Hopefully this will help someone else. You need:

Input: 100-240V~ 50-60Hz 0.3A
Output: 5V 1500mA
Type M Barrel 5V DC Power (This is what connects into the control box)

This is straight from Oculus support.

Figuring out California

Today was the start of my third week of work. Life is getting better as I learn a new schedule, a new company, and a new home.

On my first day of work, I woke up at 4:30am, because in my mind it was 7:30 and I’d already overslept by half an hour. I went to the gym at 5:45a for some elliptical. Went to work at 8:30 and then was in new hire orientation all day. Orientation was over at 5pm. Shoreline Amphitheater is next door to our offices, and it turns out there was a Black Sabbath concert that evening, which made traffic a mess. To make things worse, I was trying to get to San Jose as quickly as possible to buy a car.

I finally make it to San Jose airport at 6:30 to drop off my rental car, and then the salesperson from the service I bought the Pathfinder through picked me up. Went to his office about 10 minutes away, bought the car, and then had to drive back to Sunnyvale. Dropped the car off at the apartment and went across the street for a bite to eat. A very long day ended around 10pm.

The rest of the week was less chaotic but no less stressful. It sucks being the new guy. It really sucks. Even in a terrific atmosphere like LinkedIn, not knowing who other people are or what you’re supposed to be doing or where you’re supposed to be going is stressful and unsettling. I dreaded going to work the rest of the week. The sheer volume of information being thrown at me was sobering. There was a lot of self-reflection this week, I can tell you that.

Weekends are no better. I don’t know other people and I don’t know what I’m supposed to be doing or where I’m supposed to be going. I’ve watched more cable TV in the past three weeks than in the preceding two years. I’ll drive around for awhile, but with no real destination in mind and with the price of gas, it’s mostly wasted effort.

The second week — especially towards the end of the week — was better. First off, it was only a four day week on account of Labor Day. But besides that, I started to settle into a routine towards the end of the week.

I typically leave the house around 8-8:15, putting me at work around 8:30 or 8:45. The rest of the team works a later schedule, so I’m usually the first or second person in. I drop my bag at my desk, grab my laptop, and head to the cafeteria. More on the cafeteria in a moment. I grab some breakfast and coffee, and work in the cafeteria until 10:30 or so. I work at my desk for an hour until lunch, and then I wander back to the cafe for lunch with a few of my teammates. After lunch, I’ve been going for walks around the campus, just to get away from the laptop for a bit and clear my mind. Then I work all afternoon until around 5:30 and head home.

A few words about the cafeteria. It opened on my first day of work. Prior to that, a catering company would bring in steam trays of food every day. I had the steam tray lunch when I was interviewing earlier in the summer and it was not great. Perhaps I was there on a bad day? It was nice it was free, but if the food was always like that I think I’d be having more lunches out than I am. Now the food is amazing. For breakfast I usually have a croissant, strawberries, melon, and strawberries. They have bacon and sausages and eggs, but I generally avoid them successfully. For lunch they have a number of stations to choose from: Chinese, Indian, Vegetarian. There’s also a well-stocked salad bar (1), pizza station, roasted chicken, and I think I’ve seen pork ribs at one of the stands every day. The point is: it’s awesome. And it’s free. Definitely one of the best perks about working at LinkedIn. I’m sure I’m saving a bundle by not hanging out at Starbucks, Thai Thani, Seito, Imperium, and the Tavern all the time.

A law went into effect here in California recently that effectively barred stores from providing free bags for purchases. I’m not sure if it’s just grocery stores, but that’s where the biggest impact is felt. If you do want a bag, the store has to charge 10 cents each. The intended effect of this is to reduce the number of bags going into landfills. The actual effect is that, so far, each of my trips to the grocery has been a visit to Awkwardtown. I’m getting the hang of it, but I wouldn’t say I’ve had a “clean trip”, where nothing goes wrong, yet.

There’s sooooo much traffic here. When we were here for the interview, we never encountered bad traffic, even the day of the interview when I headed down 85 to Shoreline. It was deceiving. I saw four-lanes-each-way freeways and thought that perhaps they had overbuilt their infrastructure. When I arrived on August 24 for good, it was at 9:30am on a Saturday, so I cruised from SFO to Sunnyvale without a second thought about traffic. Driving around Sunnyvale and Mountain View on the weekend was a breeze. I have since learned that, no, CA has not in fact overbuilt their infrastructure, and that it’s kind of the opposite. The only day I haven’t encountered wicked traffic on my way to work was the Friday before Labor Day. Every other day I can be guaranteed to be in stop-and-go traffic at some point, either on the 101 or trying to exit 101 onto Shoreline Drive. And because of Moffett Field being right next to work, there are no side streets to take. I have yet to determine if riding my bike to work would be lethal; I need to attempt it early one weekend morning when the traffic isn’t insane.

So finally, I’m into my third week. The dread about going to work, felt in the first week, has been banished. I finally felt comfortable enough to go to the gym mid-day and do elliptical for half an hour. I skipped the cafeteria lunch today because I was — gasp — right in the middle of something. And I’m starting to become more comfortable being around my teammates, even if we don’t seem to have much in common yet.

Progress is being made. I’m feeling fairly confident that I’ve made the right decision about CA and LinkedIn. I’ll feel extremely confident once I actually find a place for us to live.

(1) – Though tomatoes are hard to come by, surprisingly. Doubly surprising since this is California.