subscribe  |   archive ↓

living in L.A. without a car

I’ve never been into cars or driving. I’ve owned exactly one car in my lifetime, a stock 1999 Honda Civic. It served me well for 16 years. It was relatively cheap, fuel efficient, and got me where I needed to go. And it never broke down on me, despite my subpar driving skills that put it through 4 accidents.

Since 2011, I’ve lived within 2 or 3 miles of my workplace, so I started cycling to work. My car got less and less use, usually one or two short trips per week at the most. It seemed like a waste to pay for insurance and all the other costs of maintaining a car when I was using it so infrequently. Conventional wisdom says you need a car in LA, but with the rise of car sharing (Uber, Lyft, Zipcar) and delivery services (Amazon Prime/Fresh), it is starting to become more feasible to get by without one. As fate would have it, I got into an accident that while not too serious, caused enough damage to be a total loss. I was fed up with driving and didn’t want to deal with it anymore. The insurance paid out $3500, and it was the perfect opportunity to try out life without a car. Instead of using the money to buy another car, I wanted to see how far it would take me using the alternatives. After 4 and a half months of this experiment, I’ve gotten by just fine and can confidently say that I prefer not owning a car.

read more

introducing river

Is a blog really a blog if you only update it once a year? Anyway for my annual site update, I’m doing a more personal post about my awesome cat River.

River was born on June 5, 2013. Her mom was a stray found on the street, and fostered by a kind woman named Wendy. After taking her in, she discovered the cat was pregnant and soon gave birth to 3 kittens, all female. Right around that time, I decided on a whim that I wanted a pet cat to keep me company. I had been living in my own place since 2006, and while I’m an extremely independent person, we all get a little lonely sometimes. I’ve always been fond of furry animals, but was never allowed to have one as a kid, so I didn’t know the first thing about how to care for one. Luckily the internet exists now, and a cat sounded like the perfect balance of a fun and low maintenance pet. I scoured craigslist for a few days, and eventually came across a listing with 3 adorable gray tabby kittens. There were two left when I went to meet them, one was very hyper, the other very chill. I chose the hyper one, and took this picture with her.


read more

mobile first

So this is the second year in a row I barely avoided going a year without updating my site. Maybe I should just make this an annual thing.

This year I decided to spend part of my July 4 break updating my site to look better on mobile devices. It’s pretty clear that mobile is going to overtake desktop usage pretty soon, if it hasn’t already. When I’m at home, I do most of my browsing on an iPad now, unless I have something else to do that requires the desktop. I originally designed my site with only desktop in mind. The cool thing about updating for mobile, is that it encouraged me to simplify things, and overall I’m happier with the more basic and minimal look. I also added a light theme for easier reading. It’s a pretty ghetto client side only implementation, so you might see some flashing, but for the most part it works ok. So go ahead, take a look at the site on your phone or tablet if you’re not there already!

switching views in backbone.js

I’ve been developing with Backbone.js at work for about a year now, and it’s been an adventure converting from a traditional Java server application to an all-AJAX single page application. I’ve run into quite a few challenges, especially with transitioning between views. There is not much information in the documentation about what steps need to be taken when matching a route and simulating a page change. Here are a few tips that might be helpful when getting started with switching views in Backbone.

read more

the future of education

My all time favorite TED Talk is Salman Khan on education from 2 years ago.

His book The One World Schoolhouse is also a great read. With the technology we have available to us today, there is absolutely no reason to continue with our fundamentally flawed school system.

Our current system is based on a model from Prussia, where the government mandated a standard education, and kids needed to be sorted and ranked to determine their role in society. That’s why schools spend a fixed amount of time on a topic and give students varying grades. The more natural method of learning is the exact opposite of this. The grade should be fixed to “A” or mastery, and the amount of time needed to achieve this may vary among students. You should not be forced to move on to more difficult material until the prerequisites have been mastered.

read more

scraping with node.js

Last year, I wrote a post about web scraping. The app I was working on was using PHP, so the HTML parsing code required a library that is probably not too well known. Since then I’ve started using node.js more, which makes scraping much easier. I thought I’d do another example with node, where it’s possible to use the more common jQuery syntax for HTML parsing.

For this example, I’ll be scraping song lyrics from LyricWiki. By exploring the site, I found that the URL pattern for a given track is[artist_name]:[track_name]. So for this example, I’ll pass the artist and track as arguments to my script.

read more

MiFi and iCloud

I recently took a family vacation to China, and decided to rent a MiFi hotspot device so we could all share a cellular internet connection. This is a really great service for travelling internationally in a group. If you split the cost, it’s very reasonable, and you don’t have to deal with wonky hotel WiFi. It just works everywhere. I went through 3gsolutions and everything worked as expected.

One thing I forgot to take into account though is that when iCloud enabled devices connect through WiFi, they assume they have unlimited data and start backing up anything and everything. If the data plan is limited, as most of these services are, you’ll start eating through your allocation fairly quickly. Thankfully we figured it out before I hit any big overage charges. So before you connect your iPhone or iPad, make sure to turn off iCloud backup and photo stream to avoid exceeding data limits.

still alive

It’s pretty depressing to see that I haven’t updated anything here in nearly a year. Obviously I’m not good at the whole blogging thing. I think I’m a decent writer, just very slow. I get overly self conscious at times and try to make things too perfect. I end up running out of time in the day and eventually abandon it.

Luckily(?), Twitter has forced my hand to do a site update, since they are nixing their public API and requiring authentication now. I opted to just use their iframe widget, which I’m not thrilled about, but it’s easier to set up. Not that it really matters since I’ve tweeted 4 times in the past 8 months. I figured it was a good time to update the blog before a full year passed. Here’s a lightning round of the past year:

read more

truncating blog posts in Jekyll

I was working on my Jekyll blog page and noticed some funky output. It turns out that the content variable returns rendered HTML, and the truncate filter in Liquid was cutting it off in the middle of a <ul> element. I had previously thought the filter operated on the unrendered markdown content.

I wanted a way to just display the first part of longer posts for the blog page without breaking/invalidating my HTML. I googled around and found a couple of hacks, but they seemed unnecessarily complicated. It turns out that a split function was added to the Liquid filters a few months back, so what you can do is insert an HTML comment into your posts, split on the comment, and just display the first element of the resulting array. If you don’t need to truncate, it will display the full post. I had to update my local Jekyll to get the (not so) new split function.

sudo gem update
read more

3 rule changes for the NBA

NBA playoff season is here, one of my favorite times of the year. As always, I’ll be rooting for my Lakers to win #17, and Kobe to win #6. I will be hating on Lebron and the Miami Heat. I seriously loathe that team, even more than the Celtics. Anyway, as much as I love NBA basketball, there are a few rules that really bug me, and could easily be changed to improve the game.

1. No more jump balls

All of my rule changes take a cue from college basketball. The jump ball is such a silly mess. I don’t know why they even bother with it. First of all, it’s too hard to toss the ball perfectly straight and at the right height. Most of the time, the toss is horrible, and they either have to redo it, or whoever happened to be closer to the lopsided toss gets it. Other times, people will be jostling for position, and the ref has to stop and make sure there are no violations. And then even if someone controls the tip, there’s often a lot of contact among the other players, and it ends up going to the other team. The solution to this problem is simple. Just alternate possessions like they do in college. It’s much simpler and more fair than a jump ball. The height and jumping ability of players involved in a held ball shouldn’t dictate who gets it. Neither should a bad toss.

read more


04 Oct 2015living in L.A. without a car
12 Jul 2015introducing river
05 Jul 2014mobile first
12 Jul 2013switching views in backbone.js
10 Jul 2013the future of education
21 Jun 2013scraping with node.js
09 Jun 2013MiFi and iCloud
27 Apr 2013still alive
06 May 2012truncating blog posts in Jekyll
03 May 20123 rule changes for the NBA
31 Mar 2012how to scrape the web
31 Dec 20112011 / a career change in less than a year
21 Oct 2011what i've been reading
18 Oct 2011ron paul for president
06 Oct 2011thank you steve jobs
04 Oct 2011let's talk iphone
01 Oct 2011apple is the best company in the world
27 Sep 2011an essay on alfred hitchcock's vertigo
07 Sep 2011why you should hire me
03 Sep 2011why i quit my corporate IT job
31 Aug 2011number one