Thursday, January 3, 2008

AMIP


I've been searching for a way to make using iTunes more bearable. There are only two reasons I keep it around: I need it to sync with my iPhone, and I need it to keep track of my playcounts (I don't rate my music, I just use playcounts). It's a terribly slow and bulky music player, and I would ditch it for Winamp in a heartbeat if not for the reasons I just mentioned. Winamp is much much faster and has features I need like, global hotkeys, jump-to dialog, better visualizations, and smooth fade on play/pause.

Thank God there's AMIP. AMIP is like the Swiss Army knife of plugins - it can do almost anything and is compatible with every popular music player. You need to download the version of AMIP for your player and the AMIP Configurator. Out-of-the-box you get the extremely useful search/jump feature, much like Winamp's jump-to dialog. Just press the hotkey to bring up the search/jump box, start typing the song you want and see the results filter down as you type, then hit enter to play the song and make the box go away.

AMIP's original purpose was to automatically announce the song your were playing to IRC, which is something I have no interest in. I am however, very interested in AMIP's ability to act as a server and the SDKs available to write your own client. In particular, the Java SDK makes it extremely easy to write a Java AMIP client.

You may be wondering what this means. Who cares if AMIP can act as a server? Why would you want to write a client? Well, it means that you have a substantial amount of control over your music player. It means, if you want, you never have to look at your player's slow ugly UI again; you can just keep it minimized and interact with it through your own homegrown frontend, personalized to show exactly the info you want with only the controls you want. It means you can log much more about your music listening habits, not just how many times you played each song, but when you played it, what other songs you played it with, and how much of it you listened to. It means you can control your player over a network, across your house on your LAN or across the internet (if you really wanted to).

Monday, December 31, 2007

Car Wash

Monday, December 17, 2007

Lego RCX Programming


I have two Lego RCX units sitting around as part of a large Lego collection. When I first got them about four years ago I played with them intensely. I would look at other people's designs online and then spend hours building cool things with them. This was about six months before I started college, where I didn't have access to them at all. Since I graduated, I have my Lego collection again, but I haven't really had time to do anything with them. Until now.

Four years is a long time when you're talking about technology. While I though my RCX units were the coolest thing ever four years ago, they've now lost some of their appeal (due to Lego releasing their second generation NXT based robotics kit, and me getting older among other things). Four years is also enough time to make the serial port virtually obsolete (try finding a modern-day laptop that has one, mine certainly doesn't). Of course, a serial port is exactly what I needed to connect the IR tower, which communicates with the RCX, to a computer. Luckily, I was able to find a USB to Serial adapter at Fry's for $25.

After hooking everything up and installing the Lego software, I was reminded of how outdated it was when I saw the unskippable intro movie with the terrible compression and the lame 3D graphics that was considered cool back in the day. Even four years ago, I felt Lego's programming language and IDE was overly simplistic, meant more for the 8-14 age group. Now, after three years of school to get a CS degree and half a year of working in the industry, there was no way I was going to program my RCX by dragging brightly colored blocks around, listening to a voice guide me through the tutorials, and watching that cheesy intro movie every time I wanted to edit my program!

Thankfully people have made several of their own languages for programming the RCX. NQC or Not Quite C is one such language based on a simplified version of C. I was surprised to find that the nqc binary not only lets you compile and download programs to the RCX, it also lets you sent raw commands via IR, which basically allows to remotely control everything about the RCX if you know the right opcodes! Good thing someone has compiled a list of opcodes.

As an added bonus, nqc is a command line program, so it can easily be called from other programming languages, like Java, my language of choice. This definitely opens up a whole slew of interesting possibilities.

Saturday, December 15, 2007

DIY iPhone Car Stereo


So I really wanted to listen to the latest episodes of my favorite podcasts on the road without having to burn them to a CD. In an earlier post, I lamented how the stock Sonata stereo doesn't even have a line-in jack, which I could hook up my iPhone to.

Well, the days of podcast-less driving are over. I bought an after-market head unit and mounting kit for about $150 from Car Toys (it was the cheapest one with a line-in jack). Installing the unit myself was easier than expected since I already had experience removing the existing unit. The most annoying part of the process would be having to solder about 20 wires together.

Opening the little storage compartment door makes a good tray that I can put the iPhone dock on. The dock is then connected to power and the head unit. It looks a bit messy with the wires, but it gets the job done.

Controlling the iPhone while driving is actually harder than I thought it would be. Since it's a touch screen, I have to actually look at the iPhone to make sure that I'm pressing the right button. Also, it's very easy to mess up and hit the wrong part of the screen. I think I could get used to it with practice though.

Tuesday, December 4, 2007

Snow in Bothell

From last Saturday.

Saturday, December 1, 2007

Verizon Sucks

Okay, all the things I said earlier about Verizon having good customer service are hugely offset by this. I just looked at my credit card statement and discovered that they charged me $158.88 for the FIOS in the month of November. It should be $49.99 like all the previous months. I have no idea why I was charged an extra $108.89. This has been irritating me all morning and I haven't gotten any answers.

My FIOS information doesn't show up when I log into my account at verizon.com, probably because they did something screwy when I canceled my landline with them a few months ago. I've been on hold with their customer service number for a good half hour. I guess they don't have anyone to work on the weekends.

Monday, November 26, 2007

Phoenix Wright

The Phoenix Wright games may not seem like much at first glance, but they are, in my opinion, the best games available for the DS. The games' captivating storyline, unique gameplay, colorful characters, and superb localization combine to make it one of the most enjoyable portable gaming experiences ever.

There are 3 games in the Phoenix Wright trilogy:
Phoenix Wright - Ace Attorney
Phoenix Wright - Justice For All
Phoenix Wright - Trials and Tribulations

In the game, you play a defense attorney, Phoenix Wright, who must defend your clients who have been convicted of various crimes (usually murder). Each game includes 4 or 5 separate cases, where each case takes around 2 to 6 hours to finish. The cases are all different, and played in order, they reveal a captivating backstory that rivals that of many films and novels.

The final case in the last game was so gripping, in fact, that I managed to stay up until 4am without even realizing it. Let me just say: it was awesome!