A Django site.
September 26, 2007
» Amazon Launches MP3 Music Store

I was excited to read about Amazon's beta launch of their new MP3 music store (read about it on Reddit or Slashdot). The music store offers high quality MP3 (so, no DRM) files, most for 0.99 per track or $8.99 per album.

This is a big deal, I think. I tried the iTunes music store a few years ago and didn't like it. The encoding quality was sub-par and the file format (AAC) doesn't work on my portable devices. Needless to say, the DRM didn't make me like the iTunes music store much either. Amazon's music store does a lot of things right. The files are MP3s and will therefore be compatible with the widest range of devices. The quality is excellent (see below). And the selection seems good - all of the artists I searched for in a quick test had albums available to buy.

I listen to my music almost exclusively in digital form - I buy the CD, rip and encode it, and then listen on a portable MP3 player or off an external hard drive at work. For a long time, I've wanted to buy the music directly in digital form without losing much quality or ability to play the file in different scenarios. Amazon's new music store may be just what I've waited for. For sure, Amazon's store isn't perfect. For now, it's available to U.S. customers only and to buy full albums you must install a Windows-only piece of software. Some reviewers are also complaining of poor selection (although I didn't find that to be the case). It will be interesting to watch how popular this new service becomes and see whether Amazon addresses some of the initial flaws.

I tried the music store out by purchasing Spoken's new album that was just released. To download full albums, Amazon currently requires you to install Windows-only album downloader software:

The software is used only for the (quite fast) download.

The MP3s turn out to be encoded in amazing quality, which is probably the best aspect of this new service:

Amazon is using LAME 3.97 with very high quality VBR encoding settings. This is the same encoder and essentially the same settings that I use to encode my CDs when I rip them in. Here's the LAME tag values:


The files are properly tagged, and, even better, include embedded album art:


Kudos, Amazon!

January 10, 2007
» 5 Things

My coworker Ed recently tagged me for 5 things. Thanks Ed! Hopefully I will use this as some motivation to start blogging again.

Here are 5 things you may or may not know about me:

1) I don't watch TV or movies. My wife and I have never had a TV in our house and plan to keep it that way. This is for a myriad of reasons, not the least of which is that I feel it's a total time-waster. Although in case that sounds too high and mighty, I should note that I still seem to find lots of ways to waste time that don't involve TV or movies.

2) I used to run a tiny business installing car stereos and other car electronic equipment. I was registered as a sole proprietorship in Wisconsin and never really made much money to speak of, although I had a ton of fun and learned an immense amount. One of the highlights happened when a local cell phone company contracted me to install new cell phones in all of the local police squad cars. Another "highlight" happened when a customer lowered the electric convertible top for the first time after I installed new rear speakers, and the mechanism arm collided with the speaker frame. Oops!

3) I cut my own hair. I like to keep my hair short, and at some point I realized that paying $15-$20 for a "buzz cut" or "crew cut" once every 2 or 3 weeks at the barber shop was a waste of money when I could do basically the same thing myself. It started as kind of a challenge, but now I do it because I find it much more convenient than paying someone else to cut my hair.

4) My early programming experiences were somewhat interesting. I started programming when my dad brought home an 8088 "XT" computer from work. I remember playing around with DOS, LanManager, and QBasic. At some point I discovered DOS Shell and thought that was pretty cool to be able to run multiple programs at the same time. A little later I started to get into C programming, and my parents bought me this book as a gift. I read it cover to cover and was "pretty good" at ANSI C. In fact one of my first jobs ever involved spending a summer writing a label management program in C for a local manufacturing company. (It was a console program and used ANSI.SYS escape sequences to present a colorful user interface). In college I programmed a little bit of everything. I remember really enjoying a semester spent with Lisp in my AI class. I didn't really get into Java until my first "real" job after college. When I started that job I still did all my programming in a simple text editor but after a few weeks of scorn from my coworkers I decided to give this thing called "Eclipse" a try.

5) In college, I was hugely into computer security. For reasons that are a long story I didn't go into security as a career, but I wanted to at the time. I spent probably way more time than was healthy researching various security issues. I wrote a few pen-testing tools for Windows that didn't have any public equivalents at the time. At the zenith of this computer security phase, I discovered a new local privilege escalation exploit in Windows. I reported the vulnerability to Microsoft who eventually confirmed and fixed it in a patch for Windows. It was pretty cool - I got advance review of the security bulletin and was credited by name in the "thanks" portion.

Since I feel that I'm toward the bottom of this pyramid scheme I choose to not tag anyone else :-).

July 3, 2006
» Virtual Desktops and Productivity (on Windows)

Reading a blog post by Oren Eini reminded me of how much more productive I've been since I started using virtual desktop software on my day-to-day development machine (Windows). I used to set my taskbar to be 2 rows high, and it was almost always full (Oren set his 3 lines high and I probably would have too but I couldn't stand losing that much real estate).

At some point I got sick of an order N search through the taskbar buttons to try to find the window I was looking for, and decided to get set up with virtual desktops. There are quite a few utilities out there to provide this functionality under Windows - even Microsoft offers an option as a powertoy. I ended up using a program called Virtual Dimension which is great. You can define as many virtual desktops as you like, and the software has all the features you'd expect like customizable hotkeys and on-screen displays.

I set my hotkeys to be Ctrl+Alt+[number], which seems convenient to type quickly. I typically use 4-5 virtual desktops, but I'll increase to more if I'm doing a lot of multitasking on a given day. There's no pattern to which windows go where - on a given day I group the windows in whatever way seems most efficient at the moment. Just for fun, here's what I have on each desktop right now:

-- Desktop 0: Campfire browser window, Thunderbird, FeedDemon, a few assorted Firefox windows
-- Desktop 1: Reflector, an explorer window, a few text editor windows
-- Desktop 2: Eclipse, SQL Server Management Studio Express
-- Desktop 3: Word, more explorer windows, a text editor window
-- Desktop 4: VMWare Server Console, Visual Studio, more text editors

I expected a slight gain in productivity when I switched to using virtual desktops, but I was blown away by how much of a difference it made. If you like to multitask, or just find yourself having lots of applications open at a time, give it a try.

May 15, 2006
» Assorted Items


  • Teamprise, the company I work for, is hiring a Java developer. This is an amazing company to work for, but don't take only my word for it. I'd be happy to answer any specific questions about the opening: email me at ben AT teamprise DOT com.


  • I've been using Technet magazine as a resource a lot lately for some side projects. It's all about Microsoft technologies, of course, but it has some really in-depth articles about Windows administration. What's nice is that all of the issues are available for download. The article on PNP driver slipstreaming in the latest article is the best resource I've found on the topic.


  • Nero has made their AAC encoder available free of charge. This is a really good encoder that used to be bundled with the Nero suite of programs. I'm using MP3 and LAME because of hardware compatibility, but it's still nice to see this. Lots of discussion at hydrogenaudio.


  • I'm a sucker for data analysis and pretty graphs. This is a cool site.


  • The Consolas monospace font, now available as a download from Microsoft, is a really, really nice programming font. I've switched.


  • A couple of books available for download: a new book on Maven2, the Java build management tool, and Nicholas Wirth's "Compiler Construction".


  • Share your OPML is a good concept. But almost every time I've tried using it I get database errors (including SQL statements with syntax errors in them). If they can get the problems ironed out, I hope it turns into a del.icio.us for feeds. For now, I've put my tech feeds OPML (exported from FeedDemon) up here.


  • A couple of interviews I enjoyed: Ted Neward and Dave Thomas. I've been able to hear both of these guys speak in person before and they are both extremely interesting (and contrarian) speakers.


  • Floyd Patterson, one time heavyweight boxing champion: “They said I was the fighter who got knocked down the most, but I also got up the most.”


  • I just finished reading The Wal-Mart Effect. Highly recommended. It would make a good pair of books to read along with Trading Up.


  • Managed Stack Explorer is turning out to be a really good reverse engineering tool for .NET applications. It works very well in conjunction with Reflector when exploring a large codebase.



May 9, 2006
» Free CD / DVD image tools for Windows

There are a number of tools I use to create, manipulate and burn CD / DVD images on Windows, and a lot of people I talk to aren't aware of at least some of these utilities. Nero and other commercial packages are nice, but it's amazing how much functionality is available for free.

To mount CD or DVD images and make them appear as virtual CD drives, there's nothing I like better than Microsoft's virtual CD control panel. There's lots of software out there to do this (daemon tools is also good), but the Microsoft tool is simple, small, and works great.

To read and extract CD or DVD images, the tool I like best is called cdmage. Unfortunately the development on this tools seems to have stopped, but it's still unbeatable in the freeware category. It also has support for lots of different types of image formats. IsoBuster is another good tool for image manipulation - it has a freeware version that includes all the basics and a payware version with advanced features.

For creating CD or DVD images from files on a filesystem, I use mkisofs. It's easy to use mkisofs to create a hybrid CD or DVD that contains ISO9660, Joliet, and RockRidge metadata. Lots of help and tips are available for it on the Internet. There have been lots of compiles of this tool for Windows - it shouldn't be too hard to find a copy.

On occasion, I've used a Microsoft premastering tool called cdimage.exe. However, I'm not sure if Microsoft condones use of this tool - you can find it all over the Internet, but it's not officially available from Microsoft anywhere I've seen. It basically does everything that mkisofs does.

To capture bootsectors from CDs, I use a tool called BBIE, or Bart's Boot Image Extractor. I don't know of any other tool that is command-line based and can extract images from both CDs in the drive and ISO images on the filesystem. When I'm making a custom Windows installation CD, I'll use BBIE to capture the bootsector from a standard Windows installation CD.

CD and DVD media can differ greatly in quality, and looking at the brand the media is sold as doesn't tell you anything. The only reliable way to tell where media came from is to look at the media ID that's put onto the discs when they're made at the factory. There are lots of programs that can read the media ID - I like DVD Identifier. I also use CDRID, which you'll have to search for to find a copy.

For burning CD or DVD images, I use ImgBurn almost exclusively. ImgBurn works great for burning CDs and DVDs, and I haven't run into any problems with it yet. It's nice and small, fast, and has a good interface. ImgBurn only burns ISO images, and it can't create the images from files on the filesystem, so you'll have to use another tool to do that. I sometimes use burnatonce to do image burning, as it's more full-featured than ImgBurn. However, burnatonce doesn't support DVD burning (out of the box) and it seems like development has stopped on it.

Once the image is burned to media, it's a good idea to verify that the burn was solid and the media is OK. To do this I use CDCheck, which is free for personal use. CDCheck scans the burned media to make sure that all the data can be read off of it. I've found that especially with DVDs this is important to do since even high quality DVD media usually contains a few lemons in a package.

The nice thing is that most of the tools I mentioned can be run from a single executable, or at least don't require installation. They're easy to copy around and don't clutter up a system. I don' t know of any CD or DVD image manipulation tasks that you can't do with free software on Windows.

March 31, 2006
» MDD

To partially atone for my lack of posting in the past 2 weeks, I'll point your attention to this:

Meeting Driven Development

Simply hilarious. I dare you to read it through without laughing out loud at least a few times. Sadly, it is all too true for many software shops out there.