Childish, I know…
March 11th, 2008
So, just writing a quick note while I wait for Skyler, Colin, and Jay to fix this error on one of our development servers, since I can’t really continue to debug the thing I was currently debugging in Grooveshark Lite until it’s fixed.
I’d like to share this error with you:

Apparently this is an error that we’re throwing. A typo, of course, but an unintentionally hilarious one.
Edit: Ah. Apparently it’s more of an Easter Egg than a typo, albeit one that a user would never see on the production server.
FINALLY got Flex Builder and SVN to play nice
March 7th, 2008
So for the longest time (a few months now), I had *not* been able to get Flex Builder to play nicely with version control. At Grooveshark we use Subversion.
First, naively, I tried just committing the whole project folder to the repo. Then I realized all the various hidden files that Eclipse makes (like .project, etc) would also be committed, and if any other developers also starting committing work, we’d break each others projects every time one of us updated after the other committed.
So then I committed only the /source folder where the actual code lives. However, then all the hidden .svn folders that SVN created showed up in the tree view of Flex Builder’s Navigator. I could ignore that, except it also completely broke Flex’s code hinting, Outline view said nothing but ! Root, and Design mode (which I almost never use, but still…) would say nothing but, “An unknown item is declared as the root of your MXML document. Switch to source mode to correct it.”
Looking up the Design mode error on Google found a lot of people mentioning it, but no real solutions, except really stupid stuff like, ‘delete all the whitespace in your code.’ (Which, when I tried it on a small test project, surprisingly did work, until you closed Flex Builder and opened it again. Then you’d have to delete all your whitespace all over again. Obviously, this is NOT a viable solution.)
The only solution I found that looked promising was to install Subclipse into Flex Builder, and create a new project by checking the code out from the repository. So I went about trying to install Subclipse.
New Toy
March 4th, 2008
Today I got a digital voice recorder (Sony ICD-B5000). It’s fairly basic as voice recorders go, but I think it will suit my needs, especially since it was under $50. It doesn’t have USB to transfer notes to computer, but since a lot of the USB voice recorders I saw were significantly more expensive, had less record time, and weren’t necessarily compatible with Macs anyway, I decided it wasn’t worth it. If I really want to back up a note off the recorder I can hook its line out to my computer’s line in and just record it with Audacity or something.
I was also considering the Olympus 4100 (not the 4100-PC, since the only difference is about $20 and non-Mac-compatible USB), or one of those things that turns your iPod into a digital recorder by plugging into the dock slot. Those were tempting, as I already carry an 80gb iPod video everywhere I go, but most of the reviews implied they drained the iPod battery super fast, and I also want to be able to easily use the recorder at work (where my iPod is usually already plugged into my computer). So if I wanted to record something, I’d have to unmount the iPod, wait for the “do not disconnect” indicator to go away, unplug it from the USB cable, plug it into the recorder adapter, wait for the iPod to change to record mode, and honestly by then whatever I had wanted to record would probably be gone.
Both the Sony and the Olympus are pretty similar in feature set. I picked it up at Best Buy, so if I decide I want to compare the two before making a final decision, I can easily return/exchange it in the next couple weeks.
There’s a lot of things I plan on using this little recorder for. One is better dream retention. Lately I’ve been having a lot of dreams in which I solve some sticky programming issue that’s been bugging me, except by the time I’m fully awake, the actual solution is gone, and all I can remember is that whatever I came up with was really cool. Hopefully I can train myself to hit the recorder when I’m still half asleep and mumble something useful into it. If nothing else, I’ll find out that my subconscious is full of crap, and my insightful sleepy solutions are actually worthless. At least I’ll know.
Another use, of course, is as a ubiquitous capture system. I can just dump whatever comes to mind into it, and then later process the notes, GTD-style, so I don’t have to worry about forgetting them later. Even easier than pulling out a pen and notebook, I can just ramble into the mic and worry about sorting it out it later.
And then there’s the number one use I have planned, the one that pushed me to finally go buy a recorder in the first place: lately at Grooveshark we’ve been having a lot of discussions of processes and organization, and I find that while talking to/ranting with other people I can easily come up with many ideas, but later on when the time comes to try to explain these ideas in an email I get so caught up in grammar, semantics, and word choice, that my passion (and often my entire point) gets lost in the shuffle. I’m hoping that if I can record these discussions in the heat of the moment, that later on I’ll be better able to distill them into something that is both meaningful and constructive.
Fun with OS X defaults and launchd
February 7th, 2008
Here’s a nifty little prank you can pull on a friend (or coworker) with a Mac (works in both Tiger and Leopard). You should be fairly comfortable with working on the command line before you play with this. Also, follow these instructions at your own risk. While this procedure is pretty safe, we are going to be messing with the internal defaults of OS X. I am not responsible if you break your Mac.
Imagine this: You accidentally left your computer unlocked when you left for the evening. When you came back the next day, your wallpaper has been changed to something …humorous. So you sigh, and change your wallpaper back. Except, a few minutes later, the wallpaper is back. No matter how many times you change your wallpaper, the other image just keeps coming back a few minutes later. Restarting does not help. You also notice other little inconsistencies, like, whenever you go to reset your wallpaper, System Preferences still says it’s set to your original wallpaper, even though that’s obviously not what’s being displayed. And every couple of minutes, the Dock flickers. What’s going on?
Office Snapshots covers Grooveshark
February 6th, 2008
If you’d like to see where I work, look no further! Office Snapshots, a very cool blog that showcases the offices of various tech and web 2.0 companies from around the world, has posted some pictures of Grooveshark’s offices.
Tech startups tend to be full of really creative people, and it’s awesome to see what various places have done with their space. It gives you a little insight into the sort of people that work there, and the culture they’ve created. Some of the featured offices are truly inspiring.
PS: My desk is visible in the 3rd and 4th pictures. It’s the one with the plant, but not the plant with the lamp.
Hello!
February 4th, 2008
So, I’ve decided that Tumblr’s really not my thing, and have finally gotten my Slice up and running, so Things that Work is now officially resurrected.
Theme is forthcoming – I’ve actually been working on it all afternoon. I’ll probably have it applied in the next few days, and will continue to tweak it from there. Here’s a little preview of what I’ve got so far:

I tried to get sIRF working for a nice handwritten font on the headers, but it doesn’t seem to want to play nice, so I think I’ll stick with plain old boring browser fonts for now. Hmm, I really don’t want sIFR to be my first “Things that Don’t Work” post. I’ll mess it around with it more some other time.
So welcome to Things that Work!
Things that Work: Slicehost
February 4th, 2008
I just wanted to give a little shoutout to my VPS provider: Slicehost.
I used to have a couple of shared hosting accounts with Hurricane Electric. Now, if you just need a basic shared hosting account, I highly recommend them. In all the years they hosted my sites, I never had any problems, and I really appreciated their no fuss, no muss approach. Yeah, no cpanel or plesk or whatever, but I didn’t need those things, and in my experience, those all-in-one control panels are usually more trouble then they’re worth, and in the end you wind up with fewer options and less control over your site than if you had it hosted somewhere without them.
So I was very happy with HE.net, except that if I wanted to set up any more domains, I’d have to sign up more accounts, and honestly, none of the sites I wanted to build were really worth paying more money per month just to play with. Plus, I wanted an opportunity to learn more about how to set up a web server in the first place. So I started looking into VPS and dedicated server solutions. None of them particularly grabbed my attention until a friend found a link to Slicehost.
Both their philosophy and their prices caught my eye. They say that they’re a VPS provider for developers, by developers, and so far I’ve seen nothing to the contrary. They offer a variety of Linux flavors that you can install on your slice, and experimenting is encouraged – worst case scenario, you log into the admin panel and click the button to rebuild your slice from scratch. Five minutes later, you have a brand new shiny root password and a fresh start. Their wiki and forums are full of advice, guides, and tutorials from fellow slicehosters, so even if you’re new to linux server administration, you’ll be able to figure out how to set up the environment of your choice, regardless of whether you prefer PHP, Ruby on Rails, or even Django. They’ll even take care of your DNS for you, with a handy-dandy web form that makes adding records a snap, even if you’ve never done it before.
So I can’t recommend Slicehost enough. I’m saving money, getting to host whatever sites I want, AND learning all at the same time. Win-win.
Slicehost Works.