The Sweet Spot
On software, engineering leadership, and anything shiny.

Category: andrew 2.0

Deploying Janky on Ubuntu

[Janky]( is a Github-developed [Hubot]( + Jenkins control interface. It's developed to be deployed on Heroku. However, what if you need it to live on an internal VM? Here's how …

Updating max file limit on OSX Lion

I've been hitting a lot of "Maximum file limit exceeded" dialogs after a long day at work -- at any point in time I've got a kajillion Chrome tabs open, …

Backup, backup, backup

Well, the inevitable happened: I finally experienced a hard drive failure. It's pretty incredible that in the twenty-odd years I've been around computers I've never had the horror of losing …

RSpec order-agnostic array matching

What's that? [You want to write an expectation for an array but your method returns the Array in a nondeterministic ordering]( Simple. Write: my_method.should =~ See the [source](

Ohm gotchas

Here's a list of things that have been annoying, or at least a bit frustrating using [Ohm](, the Redis ORM, in a Rails app. Beware to those who assume Ohm is …

Code For Oakland Barcamp

[caption id="" align="alignnone" width="500" caption="Is that Jon Chan I see? Yes it is. Photo credit Oakland Local."][![](]([/caption] A few notes from this [one-day barcamp/hackfest]( The goal was to create mobile …

Save our souls - a Twitter art installation

Here's how the installation looked on the day of the art show. [caption id="" align="alignnone" width="333" caption="We mounted the installation on the inside of the Regeneration cafe. The Arduino lies …

The making of SOS: Intro

[![Save Our Souls - Logo](]( I'm starting a project for my church's art show that integrates Twitter, print design and light. I'm titling it "Save Our Souls". The theme of …

Using 37signals shorthand for UX flows

[]( I've found this technique useful for illustrating workflows quickly, particularly when brainstorming in teams.

On selling my soul and switching to Mac

A month ago I bought an '07 MacBook on Craigslist. No, it's not one of those sexy aluminum hot rods, but it sure is pretty. I was full of mixed …

post-review, git-svn and Review Board

Here's how to set up the excellent VMware-developed open-source [Review Board]( and its `[post-review](` command line review creation utility to work with git and git-svn on your computer. My assumption …

YUI 3 Widget lazy instantiation

At work, we make good use of [YUI 3]( It's a really well-thought-out framework, from sandboxing and deep namespaces to CSS3 selector support and lazy-loading modules through the Yahoo! CDN. …

It's official: "Web site" becomes "website"

[![](]( []( this under "Nobody is going to care", but I've always been instructed to write "Web site" in my technical communications class. I found it grating. Hooray for change!

Upgrading Wejoinin to unicorn

(Reposted from the [Wejoinin Blog]( When you run a Web app like Wejoinin on minimal VPS resources (read: we're too poor to get a beefy server), it forces you to …

Shiny font overhaul!

### [![](]( A couple of months ago I switched over to TypeKit, a cloud-hosted font service (buzzword! "cloud" gets me all warm and fuzzy). They basically take your font stack …

Thoughts on rural computing in Botswana

I'm currently in Botswana, doing volunteer work at a nonprofit Christian agency called [Love Botswana Outreach Mission]( Among my responsibilities are helping out with the organization's IT needs. I was …

First look at SproutCore and Cappuccino

One trend on the Web these days is to move away from traditional full-stack frameworks (like [Rails]( toward client-side, full-stack Javascript frameworks (among them [Dojo](, [GWT](, [SproutCore](, and [Cappuccino]( There's …

Updated portfolio... sort of.

Since I'm in the process of doing some housekeeping around the blog, I've begun moving my [old design portfolio over to Flickr]( [![](]( This is sort of an intermediary step …

A layman's guide to the OAI-ORE data aggregation protocol

In Spring 2008, I took an information architecture course in the [UC Berkeley School of Information](, taught by [Erik Wilde]( (disclaimer: I dropped the course after a month because of …

I Like Google Chrome

I have to admit, I am an unabashed fan of [Google Chrome](, the new Web browser on the block. Why? UI design that shows attention to detail and a really …

Work Series Graphics - Good Shepherd Christian Church

Part 2 of a summer series: [![Work Series](]( [![Work Series](]( [![Work Series](](

Wisdom Series Graphic - Good Shepherd Christian Church

I was commissioned to create graphics for a sermon series titled "Wisdom" at my home church, [Good Shepherd]( Some of the artists and leaders decided to go with a lantern …

Sensations - Negotiating Noise

[![Sensations - Negotiating Noise](]( I'm showing this and a few more design pieces at **Exposed**, Cal Christian Fellowship's art and performance extravaganza tonight. You can visit it today, April 26--the …

Tales from the crypt

Now I remember why I love and hate assembling computers. You've got to love the rush of building something cool. The anticipation of the new BIOS screen--blue letters on black …

After site duplication, an .htaccess redirect for old Wordpress posts

I think I must preface this post with a bit of context: A month ago I added a new blog ([]( I wanted that blog to become my personal blog …

Quad Core and the Nerd

My apartmentmate Mike just upgraded his computer to an Intel Core 2 Quad-core processor. Once he got it up and running, he opened up Task Manager and summoned me over …

Today's Geek Hijinks

### Morning: Woke up and attempted to mount a Samba file share under Ubuntu. My Gutsy server in the living room is getting a second life as a backup file …

Noam Chomsky is The Man

Why? The man is a respected thinker, theorist and activist. I've had several Mass Communications classes devote a couple of sections to his thoughts about mass media and its effect …

A new blog is coming!

I'm forking this blog in two: a design/development blog and a personal blog. I'll be keeping []( as my technical blog: if you stay with me here, you'll find me …

Wordpress Bughunt

I spent a good four hours today digging through [Wordpress]( code, trying to get our [Cal Christian Fellowship]( Web site back up. The problem: the page seemed to freeze when …

I'm ready for the winter.

Okay, I confess. I've been daydreaming about winter break: 1. Sleeping in. 2. The laughter of friends. 3. Taking a day trip with a camera to Monterey/Carmel (or anywhere awesome). …

Feeling awesome today

So for our [CS188 (Artificial Intelligence)]( project, [Capture-the-Flag Pac-Man](, I'm responsible for writing a script that does some processing and analysis on a game board, simulating a Pac-Man agent (my …

Meeting Joe Hewitt

I shook [Joe Hewitt]('s hand today (psst, he's the guy who did tons of Mozilla stuff but most notably built [Firebug]( I stammered a lot. But that's okay, because I …

More scenes

_Disclaimer: about 95% of you won't get this. The other 5% should consider getting a life._ So we're in CS lecture (this is with Prof. Papadmitrou), and one student in …


[![Sensations - Awaken the Dawn](](


[![Sensations - Rocks Cry Out](](

Yahoo! University Hack Day

So Hsiu-fan and I had floated the idea of doing a hack for [Yahoo! University Hack Day]( We had even polled some of our friends about it, and the consensus …

Crusher website

What gives you more geek fuzzies than seeing an Evite competitor with an ASCII logo? [Crusher website ~ Send invites for free]( Fun, simple, bare-bones, everything you need and nothing …

Hello, awesome

[![Hello awesome](]( Only a geek could take a picture of his computer... and be proud of it.

Thinking about writing a Rhapsody Scrobbler

_Filed under "Fun Ideas That Could Take Three Hours or Three Months"_ I want to write a [Rhapsody]( [scrobbler]( It's already been done as a [desktop application](, but I don't …

A Web Site for Word Geeks

Have you ever compiled long lists of words you thought were awesome (don't lie, I've met two or three of you)? Do you love words such as "[phthisis](" and "[tantamount](" …

Taiwan Roundup II

![]( After weeks of being stuck in a really deep rut, I've finally stumbled upon something that's decently interesting with regards to the state of the Taiwanese blogsophere (this is …

Blog habits & evolution

[Way back when I started blogging]( soph year of high school (it's been five+ years!), I pointed out that the public act of blogging helped me "get my thoughts straight" …


![last night i dreamed]( ![we were fishing together]( ![(i've never been fishing)](


Found over at "[Tiny Mix Tapes](" -- a mixtape suggestion/request service. Surprisingly poetic (well, most). Gives you a good glimpse into music uses & gratifications. > after you left i …


Do you remember? We were freckle-faced high schoolers tumbling over China, our obnoxious American mannerisms betraying our origins despite our butter skin. We had agreed to stay in shape during …


Oftentimes in [Verilog]( code, we build testbenches (test fixtures). A common thing to do is to instantiate a module and plug in wires of the same names. Now a common …


![Sensations 02: Those Who Dreamed](

Liveblogging from: the Stacks

I have friends who run a cost-benefit analysis on every decision. And they're always measuring things up against Time. Freakin, Endless, Time. I think I'm one of them, too. May …

Taiwan Roundup

So I'm writing the first part of my International Media paper on the structures of the media systems in Taiwan. Just wanted to share with you what I've been coming …

eXtreme Editing

I realized today (with a grin) that I wasn't editing my essay as much as I was [refactoring]( it.

Sensations I


GTD-izing my Thunderbird client, and other productivity things

Do any fellow geeks out there follow any [GettingThingsDone]( (GTD) practices? (I'm trying to get my life organized�a futile attempt before the sledgehammer of school and responsibilities drops. Organized as …


Many of you have wondered what it's like daily indulging in the opulence that are the FAQQLY offices. Allow me to take you on a tour. These are known as …