Monday, July 23, 2007

Every developer, or at least those who really love what they do, has a few side projects to work on. They're the palate-cleansers you turn to when you want to sink your coding teeth into a different problem for a while... they're your sorbet projects. 

itunesexportsolution Well, one of the side projects I've worked on this year has been iTunesExport - a .NET app that can export playlists from your iTunes library. It exports them in a variety of formats (M3U, EXT, WPL), can copy tracks to a new location, and has both GUI and command-line interfaces. I got involved earlier this year when I wanted to export playlists in a file format that it didn't yet support. I contacted Eric Daugherty, who owns and hosts the project's site, and jumped in to add the additional export type. Since then, I've added additional features and tweaks and it's been a pretty fun project to work on.

Yesterday, productivity blog LifeHacker did (another) post on it with some examples for using it. It was a cool surprise as LifeHacker is one of the feeds I subscribe to, so I came across their post randomly in my feed reading.

I added a comment to that post, but since it was my first comment to LifeHacker my registration is sitting in an approval queue somewhere and the comment's not yet visible. The other comments on that post had a number of questions about iTunesExport and I wanted to answer those and/or clarify what the tool does.

First, iTunesExport does NOT modify your tracks in any way, shape, or form. It won't convert to or from any file format and it won't strip DRM from purchased tracks. The only time it does anything with actual song bits is when you choose to copy tracks to a new location for your exported playlist(s)... and in that case, it's just doing a straight, bit-for-bit file copy.

Second, the purpose of iTunesExport is simply to let you export playlists OUT of iTunes and into a file format that can be read by another player (WinAmp, Windows Media Player, etc). In my case, I use it to make my iTunes Smart Playlists available through the Tivo Home Media interface on our television. With this in mind, we're very careful to NOT modify the iTunes library XML file. We're simply reading the playlists/songs out of it and then writing another file in the format you want. So the exporter doesn't do anything to play count, last played, or any other data in the iTunes library.

Finally, Eric and I are always interested in hearing suggestions and feedback for the app. Some of the recent changes/fixes, especially around internationalization and Unicode,  have come via testing and feedback from others.  Those are always the things that are most fun to work on because you know someone can use it right away. So while I've got a few ideas for things I'd like to add (including saving/restoring your settings, improved documentation, and some better reporting/feedback on what was exported), we'd love to hear other ideas for things the tool might do... so please send those along via the project's site or through SourceForge.

posted on Monday, July 23, 2007 12:41 AM Mountain Daylight Time  #    Comments [0]
 Sunday, July 22, 2007

I'm not much into the Harry Potter phenomenon, but I am in the middle of trying to learn WPF (Windows Presentation Foundation). I'm currently tackling WPF via Adam Nathan's "WPF Unleashed" book and plan to read the Petzold WPF book next (followed, perhaps, by the Sells/Griffiths book). WPF is conceptually very different from Winforms or other UI technologies that I've used, which makes the learning curve steeper than would be normal for "just another platform update". Anyway, you may be wondering what Harry Potter has to do with WPF...

blackfamilytree Well, a month or two ago, the folks at Vertigo Software released a WPF reference sample application called Family.Show. The application is a genealogy tool that let's you manage a family tree, along with information and photos about the people in the tree. It's since been updated with more features and it's simply a great-looking application. If, like me, you're trying to learn WPF then the coolest part of Family.Show is that they've made the source available for download. Sweet.

Earlier today, Liam Molloy (of Vertigo) published a post about a family tree he created for the "Black family" from the Harry Potter series. Using Wikipedia, Liam was able to piece together a fairly large family tree for Sirius Black, including photos (of the actors/actresses from the films) and the background stories for many of the characters.

You can download Liam's data files for this family tree, load them up on your machine, and go to town with the info-browsing. Note Liam's warning at the bottom of his post -- while he made an effort to remove any spoilers for the just-released book, he says it's possible that there's still one or two in there. Not having read any of the books, I wouldn't know either way... I just think this was a very cool thing to do from a data visualization perspective.

So... whether you're into WPF or Harry Potter (or both?), you've got a reason to go check it out.

(Side Note: The only drawback I've found with the app Vertigo built for Microsoft is that the background whitepaper for it was published in the XPS file format... and even though I've got Office 2007 installed, I still had to download a separate "essentials pack" to view it. What's wrong with a simple PDF?)

posted on Sunday, July 22, 2007 10:55 PM Mountain Daylight Time  #    Comments [0]
 Friday, July 20, 2007

One of the side-effects of having surgery earlier this week is that I've had time on my hands to get some reading done. I can't lift anything heavy yet and I'm having to take some pain meds... so my options are pretty much limited to reading, watching television, playing some Xbox, and using the computer. Even that last one can be dicey as I don't want to be anywhere near important code while taking these prescriptions. 

managinghumanscover On the reading front, I started reading "Managing Humans" by Michael Lopp (also known via his nom de blog, Rands) the other day and am nearly done with it now. The subtitle of the book is "Biting and Humorous Tales of a Software Engineering Manager", which I think provides a good idea of the book's overall "vibe".

I know I've mentioned his site, Rands in Repose, a few times in previous posts and it's one of the top feeds in my subscriptions. He writes from plenty of real-world experience on managing developers, development projects, and most importantly, managing organizations on behalf of those developers and development projects.

His is one of those sites that you go to as soon as you see a new post has arrived. The writing and insights are just that good... so when I learned he was publishing a book, I knew that it'd be a must-read.

A lot of the material in the book comes from his blog, though it's been re-worked to some degree to flow better in book form. The humor, edginess, and "bite," however, all remain intact. This is NOT your typical management advice book -- it's focused squarely at people who manage development teams that are building software products.

The book is broken into three sections --

  • The Management Quiver, where each chapter discusses tools (or "arrows in your quiver") for surviving the manager-employee relationship (from either direction). Detecting agendas, handling someone in the middle of a freak-out, and saying "no".
  • The Process is the Product, where processes and approaches for getting a product out are discussed. Status reports to monitor progress, capturing the context for work being done, and the all-important version 1.0.
  • Versions of You, which contains chapters that discuss the various personality types that are common in a software team. The Organics, the Incrementalists, and the Free Electrons. If you've been a developer (or managed developers) for any period of time, you can't read through these chapters without laughing out loud at the way he describes these familiar personalities.

The chapter on saying "no" is particularly hilarious, as it describes the process by which a manager becomes a manager -- essentially, pixies arrive and provide you with an elegant top hat that has the words "I'm The Boss" emblazoned on the front. Of course, the key thing that you don't immediately recognize as a new manager is that the back of the hat reads, "For Now." And so begins the lesson about a manager NOT being infallible and truly needing a team to push back for the improvement of the process/product/company. Team members forget the "For Now" part and let the title and position of "The Boss" get in the way of fighting for good ideas.

Saying no forces an idea to defend itself with facts. It forces a manager under the influence of his top hat to stop and think. Yes, I know that top hat can be intimidating, and yeah, I know he's the guy who signs the checks, but each time you allow your manager to charge forward with unchecked blind enthusiasm, you only reinforce his perception that he's never wrong. That's a ticket straight to Crazy Town.

As the subtitle suggests, the book is aimed squarely at software engineering managers. But one of the things I really like about his style is the dual angles for the advice he provides. While he's suggesting an approach for handling a problematic situation with your manager (the President, CEO, CTO, whatever), he's also providing advice on how to not be that problematic manager as you manage your own team.

The book does so well with this multi-angle approach, that I'd also recommend it for people other than engineering managers, including developers of all levels and non-technical folks who regularly work with a development team.

posted on Friday, July 20, 2007 10:21 PM Mountain Daylight Time  #    Comments [0]

One of the cool features of FeedDemon, the news reader I use, is called "News Bins" -- it's essentially a place you can drag and drop items that come through your feeds to save or organize them for later. I used to use them essentially as "bookmark folders" for items I wanted to come back to.

In the latest version, News Bins can now be sync'd with NewsGator Online in the same was as all the rest of my feeds and folders can be. Even cooler, Nick Bradbury (the primary FeedDemon developer) set it up to create an RSS feed for any synchronized News Bin. So anything I drop in there is exposed via a syndicated feed to anyone who's interested in seeing the things I've come across.

With that, I've created a "Link Blog" and the feed for it is in the navigation items on the left. Right now, I've created only one and will use it for development-related items, plus the occasional 'general tech' tidbit.

I can see how this feature would be useful in a few ways, though... creating a link blog for "family", another one for "work", and so on. FeedDemon has keyboard shortcuts for dropping items into the feed easily so I can quickly share items that people in my family or at the office might find interesting.

Nick has a post from just after the 2.5 release that also discusses this feature and there's also a screencast with a walkthrough.

Technorati tags: , ,
posted on Friday, July 20, 2007 9:30 PM Mountain Daylight Time  #    Comments [0]

business2sos Here's today's blogosphere bummer... word is that print magazine Business 2.0 is on its last legs and could be publishing their last issue later this summer.

I've been a subscriber for just a couple of years, but in that time it made the cut when I did a serious "print subscription purge" a while back. It filled the gap nicely between two other magazines I subscribe to - Wired (for tech coverage with little "business" angle) and Business Week (for the decidedly non-tech business-y stuff). The closest thing I've found to Business 2.0 has been "Inc" magazine, which doesn't have as strong a tech angle and isn't usually one I read from cover to cover.

Most telling, it's one of the few magazines I've had where people who see it on my desk want to read the issue when I'm done with it... guess I should have told them to buy their own.

It sounds like Business 2.0 has actually been on the upswing (no small feat for a print magazine in these "content wants to be online... oh, and free to access" days), but its publishers (those AOL-acquiring, 3.2-billion-wasting, internet-music-hosing geniuses at Time Warner) decided that B2.0's new numbers may be coming at the expense of Fortune. Can't have that, so the smaller tech rag gets the thumbscrews.

The coverage today doesn't make it clear whether this deal is 100% done and there was an effort to get a "show your support" FaceBook group going. If it is a done deal, I guess I'll have to look at the silver lining here -- a shorter to-read stack on my nightstand.

posted on Friday, July 20, 2007 3:07 PM Mountain Daylight Time  #    Comments [0]
 Thursday, July 19, 2007

After posting over the weekend about my recent Dell woes, I received a comment from "John @ Dell" who works in their Customer Advocate group. John looked up the system I'm having issues with and agreed that it's overdue to be replaced.

After confirming the service tag and my shipping information, he commented again to let me know that an exchange machine is on its way. That's GREAT news... I look forward to posting again once it arrives and I can confirm that all's well and I'm back on track.

I gotta hand it to Dell... between the Customer Advocate program and the Direct2Dell blog program, they look to be pretty serious about being proactive with customer issues that arise. It's a bummer that it took blogging about it publicly before it was dealt with, and I'd have liked to have seen more responsiveness using the "traditional" support channel... but the end result is what's most important to me in this case as the machine's pretty much unusable as it is. Thanks again, John, for picking up on the post and taking some steps to get this resolved.

 

PS... ironically, I finally got a response to an email I'd sent in middle of last week wherein I wondered about the replacement panel that didn't appear to have been shipped. The response was a very short and generic message, stating simply that it "looks like the part should ship on 7/20".

Technorati tags: , ,
posted on Thursday, July 19, 2007 11:26 PM Mountain Daylight Time  #    Comments [0]

The last DasBlog release under ASP.NET 1.1 went out a couple of weeks ago, so I decided to give that a run. It all seemed to go well when running it locally, which was a good sign... and seems to be the standard for the last few updates I've done. Once I have it running locally, it's just a few config changes to get it going on the server. This one was just slightly different because there were some script files moved around and I initially had it running under ASP.NET 2 on my local machine. In any case, the site's using it now and no hassles.

I've been lurking on the DasBlog developer mailing list for a couple months now and there's a good deal of activity. Currently, the project's dev team is working on the initial ASP.NET 2.0 release, including support for Medium Trust. As I mentioned previously, there's also a theme contest going which should yield some cool new looks for folks to use.

I keep meaning to check out some of the "open source template" sites out there, but then I get sidetracked with other things... with this update, I'm settling for a few new navigation links and an updated blogroll.

Technorati tags: , ,
posted on Thursday, July 19, 2007 11:06 PM Mountain Daylight Time  #    Comments [0]
 Sunday, July 15, 2007

I've been a Dell guy for the last ten years. Over that time, I've had just one non-Dell machine and that's because it was purchased for me prior to starting a new job and the company was then standardized on IBM machines. That machine was a Thinkpad T series and it wasn't too bad a machine.

Otherwise, machines for home and business have been Dell boxes (one every couple of years at home and who knows how many business machines) and I've always suggested to friends and family that they go with Dell also. You get a machine that's ready to go out of the box and their prices usually compare well with other options-- assuming you don't want to go the build-your-own route. When it comes to my personal machine, I prefer a laptop so the DIY thing isn't really an option.

That allegiance is beginning to wane. About a year ago, I bought an Inspiron E1705 for my home/personal machine and it is pretty much loaded (at to the extent that an Inspiron configuration could be). Lots of RAM, fast disk, 1920x1200 17" display, DVD burner, NVidia graphics, and so on. Not a lower-end machine and not inexpensive either. It ran fine for the first few months but then the issues began.

It started at the end of last year when I noticed that it was running really hot. Areas on the bottom were nearly too hot to touch. Then early this year, it started randomly giving me the BSOD with a general hardware failure.

I had next-day warranty coverage, so I gave them a call... they decided it was the CPU burning out and sent another one out. This is when I learned that Dell's "next day" service really isn't "next day". What they mean is that they'll ship the part(s) out to some local contractor in your area and then the contractor should be out to fix it the "next day" after they get the part. So it's more like 3 days... whatever, I could get by with that and the CPU was replaced.

So far so good for a couple months... but then suddenly the screen would go black (as if the display shut off) when the machine was on AC power. On battery, it was fine. The machine was continuing to run and I could use Remote Desktop from another box to get into it even when it was on AC power. So another phone call... this time, they said they'd ship out a new "main system board". Three days later, a tech's out to replace it - but the problem isn't fixed.

So he calls Dell that day and they ship a new LCD panel out... another week goes by and then the screen gets replaced. Seems OK for a few days, but then...

laptopdarknessthumb The left edge of the screen begins to fade (see image to the left)... it's gotten more pronounced since that picture was taken, to the point that the fading now comes all the way into the middle of the screen. It also seems to get darker the longer the machine is on and, after 30 minutes or so, the left half of the screen is unusable. Another phone call... this time, they'll replace the LCD panel and the NVidia adapter ("just in case," says the tech).

All of this was frustrating, but now it's worse... because there's been no progress. After a few days, I don't hear from anyone. So I call to see what's up and am told the part is on backorder for a day or two and I'll get an email with a tracking number once it ships. Nothing for a couple days... so I email the tech, who emails a tracking number back to me and says the part(s) are on their way. However, Fedex doesn't recognize that number at all.

I emailed the tech again last week, along with the tech supervisor for the incident and the Dell Customer Advocate email alias... still no response.

I've got surgery scheduled for this week, but my wife will end up having to call them and nag again about getting this fixed.

I also have to wonder -- at what point does Dell declare this thing a lemon and replace it? This will be the FOURTH time in a few months that a tech has had to come out to replace parts on this machine. All these support calls, replacement parts, shipping, and paying contractors to come to the house -- that's gotta add up. I've got nearly the same machine at the office for business use, as do several of my colleagues,  and nobody has had any problems. Clearly this box has some problems.

In any case, their handling of this support problem may just be what changes me over to Lenovo... or HP. Or Toshiba. It's kinda ridiculous to think that, over the last few months,  my machine has been out of commission for weeks.

posted on Sunday, July 15, 2007 3:18 PM Mountain Daylight Time  #    Comments [4]
 Wednesday, July 11, 2007

usestairwell Christopher Hawkins has a post from last Friday wherein he describes his "dream" software projects. The funny thing is that he refers to them as "silly", but they seem like pretty real and useful projects to me. The film production system, in particular, sounds like a fun project to work on.

While I wouldn't say that mine are quite "dream" projects, there are a couple of systems I've always thought would be a lot of fun to work on.

Poker Machines for Casinos -- Partially because I enjoy playing some poker myself and partly because I think there would be some interesting problems to solve. There have been a number of products announced that bring the "automated" world of online poker into casinos, bars, or other hangouts.

Note that this is NOT video poker of the "Jacks or better" variety. In some cases, the game is still "regular" poker, but everyone around the table plays the hand via a touchscreen and there's no dealer. In other cases, it might be a small table where two people can play heads-up while they wait for a seat at a regular table or while hanging out at a bar and watching a game. There are enough differences between these "electronic tables" and regular online poker software to make it pretty interesting.

Elevator Control Systems (for high-rises) -- This is the one that usually gets a laugh when I tell people about it. But if you imagine a tall building with multiple tenant types (retail, offices, or residential apartments, etc), then there are some intriguing things to consider. How do you optimize the flow and availability of a car at any given time? If an car's at rest, do you send it to a certain floor to wait for a call? During the morning, you have one type of flow (from the ground floors up to the offices) and in the late afternoon it's the opposite. What about lunch hours? How do you handle things like redundancy or failover if a car has to be taken out of service for repair? What can you provide facilities and security with in the way of monitoring and management?

Both of these seem interesting to me as intellectual projects... but I think what intrigues me is that they both offer a lot of opportunity for data visualization and some infoporn. In both cases, you can imagine administrative/monitoring interfaces that provide all sorts of interesting views of data (historic poker hands) and state (elevator state).

I'm interested in reading what sort of "dream" projects others write about.

  Technorati: , , ,
posted on Wednesday, July 11, 2007 11:07 PM Mountain Daylight Time  #    Comments [0]
 Sunday, July 08, 2007

Ben Scheirman is running a themes design contest to get some new looks in the themes list for DasBlog. To encourage designers to submit their original designs, he and Scott Hanselman are putting up a $100 gift certificate for Amazon.com.

While I "know what I like" when it comes to design, I've got virtually no talent for creating a web theme from scratch... This could be a good opportunity for someone with talent, though, and a hundred bucks at Amazon.com? As I've said since we signed for Amazon Prime, "If I can't get it at Amazon using Prime, it's probably not worth buying..."

Speaking of DasBlog, the last ASP.NET 1.1 update went up a couple weeks ago. I'm running it on my local machine and it seems to be fine... so I'll update the server soon. On the other hand, an ASP.NET 2.0 version that supports Medium Trust is in the works. Maybe it's worth waiting... either way, I'm stoked to see all the renewed activity on the dev mailing list (where I've just lurked for a few months now).

  Technorati: , , ,
posted on Sunday, July 08, 2007 10:50 PM Mountain Daylight Time  #    Comments [0]