Red Rocks

Convenience or Quality?

February 15, 2007

37Signals has a (somewhat) recent entry Convenience over Quality. This is a debate I’ve had several times with people, and I feel that the decision about quality or convenience depends greatly on the medium or function we are talking about.

There is no doubt that the trend in audio is towards convenience. Compressed audio (MP3, etc.) has taken over, and high quality audio formats such as DVD-Audio have been failures. I think this is largely because listening to music is a secondary activity. Very few people spend significant amounts of time listening to music as their primary activity. They listen while they exercise, drive, work, etc.

Video, especially TV and movies is different. People are buying HDTVs in large numbers and paying additional money for HD content from providers (cable, satellite). People are buying up-converting DVD players, and now Blue-Ray and HD-DVD players are out. I think the major difference here is that watching TV or a movie is a primary activity.

There are always trade offs. TiVo is a disruptive enough force that initially people traded picture quality for the convince of digital time shifting. With the evolution of new TiVo devices that is now (mostly) unneccessary.

So, for primary activities, quality is very important. For secondary activities, convenience is much more important. There are still exceptions in both of these cases, where the change in quality or the change in convenience tips the scales.

iTunes Export 1.1.0 Released

February 13, 2007

I released a new version of my iTunes Export utility.

iTunes Export exports your iTunes playslists as .m3u files, allowing you to setup playlists in iTunes and use them with other software or devices.

This release adds the ability to copy the music files in a playlist to an output directory. This was requested by several people, including Jason Clarke.

This release also excludes files that are just web links from exported playlists.

http://www.ericdaugherty.com/dev/itunesexport

An interesting note on this release: I found Jason’s post in my referrer logs and added a comment asking for additional information on what they were looking for. I received a couple email responses and was able to understand what their needs were.

This project started because I had specific need (an ‘itch’). As it continues to develop over time I begin to understand what other people are looking for and address their needs. I have a couple of other feature requests I still need to work on as well, so look for more new release. Don’t be afraid to ask for features (eric@ericdaugherty.com).

Proprietary Apple

February 10, 2007

I’ve been thinking about this post for a while, but unfortunately Rolling Stone beat me to it. It makes some interesting points, but it doesn’t really target what I was thinking.

Apple is VERY proprietary. Now, this is a double edged sword. Apple components (iPods, Wireless Routers, Music Players, etc.) all play very well together, and can be setup very easily. However, many of these systems are very locked down.

iTunes Music Store -> iTunes -> iPod is a closed system. You can add your own MP3s to iTunes (prohibiting that would be a non-starter for nearly everyone), but beyond that, you can’t really swap any of these parts. Want to buy from another music store? Too bad. Want to listen to your music on a different device? Too bad. Want to sync your non-iPod with iTunes? Too bad. There is no doubt that this drives the popularity of the iPod. Syncing your iPod with iTunes is easy, and much better than the compatible experiences. Using a Dell DJ, even with additional 3rd party software still doesn’t compare.

Contrast this to my D-Link Media Player. It comes with its own server software, but there are also several open source servers I can use to stream music/video/pictures to the device. The same is true of my Rio Receiver. But I keep my music in iTunes, so I had to write a utility (iTunes Export) to share my playlists with these devices.

The iPhone is another example. In a recent post I pointed out some reasons why I don’t think the phone is great for me. There was a lot of excitement about the phone initially, but I find it interesting that while they tout that it runs OS X, it is also a closed platform, or at least its undefined how 3rd party apps could be added.

The amazing thing is how Apple gets a free pass on this. Microsoft is the ’evil empire’ partially because they are said to leverage their market domination in one area (Windows/Office) to compete unfairly in others. I’ve always contended that developing using Microsoft technologies can be great as long as you stay on the Microsoft path. Use all the MS tools and follow their conventions and you can be extremely productive. With Microsoft, at least you CAN stray off the path.

I think it will be very interesting to see how Apple copes with its increasing market share and product line. I expect there to be a backlash at some point as Apple goes from being a cool niche to mainstream. I think we’ve already started to hear a growing frustration with Apple, and time will tell whether they will be able to handle the increased popularity.

That said, I’ve seriously considered switching to a MacBook before, and now that they are on the Intel platform it is even more appealing. OS X is becoming a very popular OS among Java developers, and I even have a friend who develops on Windows running in Parallels on his Macbook Pro. For now, I’ll stay an Apple watcher from the sidelines.

Apple's Position on DRM

February 7, 2007

Apple is at an interesting place with DRM. Some have implied (Cory Doctorow) that it is in Apple’s best interest to use DRM because it locks users in. Since iPods already have a huge market penetration, this is a real effect, whether intentional or not.

However, Steve Jobs recently suggested that Apple would prefer to distribute the content DRM Free. This is an interesting position for Apple to take, and one could assume it is simply a bluff.

I could give a full analysis of this, but it would simply be a rehash of John Gruber’s post at Daring Fireball.

Go read that. What I would say is that I personally think the call is more or a bluff than a serious desire to release the music DRM Free. I think this is a response to the growing chorus of complaints (mostly in Europe) raised to open up Apple’s DRM. I agree with John’s analysis that this is unrealistic and something Apple won’t do. This feels like a way to respond to those complaints without really having to do anything.

I’ve been planning on writing a post about how Apple is really very proprietary, and I think even more so than Microsoft. Cory’s position about DRM certainly added fuel to that fire, although John does make some effective arguments against it as a major motivation. Regardless, I still think my position has some meat, and I’ll work on getting that post out.

Cancel or Allow

February 6, 2007

OK, in case you think I’m an Apple basher because of my iPhone post, I thought I’d pass along the new ‘Get a Mac’ commercial. The newest commercial, entitled Security, depicts the new Vista security enhancements, which prompt users asking if they want to allow a program to execute an action that may be risky. While this is a good concept, apparently it is a little too aggressive in Vista based on what I’ve read.

Either way, it is a great commercial.

No iPhone for me

February 4, 2007

About a month has passed now since the announcement of the iPhone, and I think enough information has leaked out of the Jobs’ Reality Distortion Field to begin to talk rationally about what it is and what it isn’t.

The iPhone is the next gen iPod. It is first and foremost a media device, capable of listening to music, watching movies, pictures, etc. It will be less effective at the music portion than an iPod, but will be much better at video than the current generation of iPods.

It happens to have phone and internet features added as well, but don’t mistake it for being a smartphone, ala a Treo or Blackberry. The iPhone can make calls, and you can browse the internet, but that isn’t what this device is about.

Smartphones are primarily used by so called ‘business users’. People who use the device to track their schedules, communicate via emails, and track information specific to their industry or organization. They also use their phone all day long. The iPhone is not targeted at these users.

I’m not exactly sure who the target audience is for the iPhone. The price of the iPhone $499 or $599 with a 2 year contract is pretty expensive. An iPod nano of the same capacity sells for $199 and $249. That leaves a $300 premium for the phone and video features. Cingular sells the Palm 680 smartphone for $199 with a contract. Price however is just part of the story.

The iPhone, just like the iPod, has no removable battery. This may be acceptable in a device that simply plays music, but in a phone that plays videos, accesses Wi-Fi and cellular networks, and also plays music, it just doesn’t cut it. Apple claims a battery life of 5 hours when watching video or using the network. For an active business user, or even someone on a trip, this just doesn’t cut it.

Also, I’m very curious to see how the touchscreen keyboard works in real life. I’m a big fan of tactile feedback in my devices, as it allows me to use them without looking where I’m typing, etc. Palm did an excellent job to make the Treo navigable using one hand (using the 5-way button). When you need to type you use two hands (or thunbs really), but to navigate the menus, applications, etc, the 5-way works great one handed. Also, as winter slams us this February, I wonder how will the touch screen will work with gloves (if at all). Again, the Treo works (well enough) with gloves to keep my hands from getting frostbitten.

Also, Apple chose to use the relatively slow EDGE network instead of the CDMA EVDO network, or Cingular’s own 3G network. For a communication device, this seems to be an odd choice. Apple is obviously choosing to focus on the multi-media experience over the phone experience.

Finally, they have a long term (5 years?) exclusive agreement with Cingular. Maybe I’m just lazy, but I don’t plan on switching my cellular provider just for a chance to own a specific phone.

Apple has had some amazing successes. Their Powerbook laptops are second only to the (now defunct) IBM Thinkpads. iPods of course are second to none. However, Apple isn’t foolproof either. The Newton, the Cube were both aggressive failures. However, even if the iPhone’s first version does fail, it is hardly down for the count. Apple can and will innovate, and with their existing iPod market domination, they will have several chances to make this concept successful. I’ll be tracking how this develops (from my Treo).

Development Frameworks

February 2, 2007

It seems that Java has as many development frameworks as it does developers. While that is an exaggeration, it is only a minor one. The .Net platform has a growing number of frameworks, although a large number are ports of existing Java frameworks. (It is interesting to look at the two communities and see why this exists (or if it isn’t accurate, then why this is my perception), but that is a topic for a later post.)

Over time, I’ve been guilty of writing a framework or two. However, as time passes my opinions about frameworks have changed.

First, one basic tenant about productivity is that it is faster to use a good enough tool that your development team is familiar with than the perfect tool. Whether it is Java vs. .Net, Struts vs. JSF, etc. For every application you write, there is probably a different ‘perfectly suited’ framework.

Second, you should almost never write your own framework. This is an offshoot of the the previous tenant. You may come up with a framework perfectly suited to your problem domain. However, your developers will be unfamiliar with it, it will be untested in a production environment, and most likely, someone has already written something good enough.

I’m also becoming a bigger fan of agile (or at least iterative) development. This also helps drive the decision to use off the shelf or existing tools/frameworks. Otherwise, the deliverables from your first several phases will simply be framework components that you will need to assemble later. This prohibits you from getting valuable feedback from the business/requirements owners early on, which is a major value of iterative development.

There are times where the investment and cost may be justified. This may be true if you will be building and actively maintaining the system for a long period of time, and you require very fine grain control over how it works. If you are developing a system that will be delivered to someone else, it is even more important that you utilize well known tools and approaches to enable easy support and maintenance.

Finally, when electing whether or not to use a framework, you need to carefully weigh the cost of learning and working with it compared to the theoretical time savings gained. For smaller applications, it may often be worthwhile to use a more traditional brute force approach than to get elegant.

Java Servlet url-pattern - Exclude Me

January 31, 2007

Recently I was investigating one of the many Java web frameworks, and came across an old frustration. First though, I should give some background.

The Java Servlet specification provides for the ability for developers to map various URLs to specific Servlets (request handlers). You can map ‘.do’ to your Struts request dispatcher to enable the framework to handle all the requests for pages that should be served by the framework. Basic wild cards are supported, but only positive matching, no excludes.

One of the basic tenants I have adopted is that the URLs in an applications should be technology agnostic. If I can look at your website and tell what technology you are using, that is ‘bad’. Of course, I didn’t come up with this wisdom on my own, it is mostly guided by the W3C Cool URLs Article. So if your app has cgi-bin, .pl, .jsp, .asp, or .aspx files, etc, I consider that bad form. Of course, I can setup my Java application with all the pages named .aspx, but I find it much better to keep it generic to begin with.

One of the main issues I face when I use a web framework is how to integrate the main request dispatcher without manually mapping every valid URL. What I would like is the ability to map everything EXCEPT certain URLs.

For example, I’d like to map /
to my dispatcher, with the exception of *.html, *.gif, *.jpg, *.css, and *.js. This allows me to have all the dynamic requests served by the dispatcher, while the static content is served normally. In a production environment, I can accomplish this using Apache to only pass through the URLs I define to Tomcat (Apache does have the ’except’ logic in it’s mapping).

Another common example is applying Servlet Filters. Using Servlet Filters you can apply security or any type of logic to a large set of requests. Maybe I would like to secure all the pages in my site except for / and /login. Today I map the filter to all the URLs, and then in code define any URLs that should be excluded. However, in doing this I’ve mixed my configuration between my web.xml file and my source code.

The ability to define a Regular Expression, or more complex rules (match ‘a’ except ‘b’) would give much greater flexibility.

A few Google searches have yielded some mildly interesting work-arounds but, nothing that I really find satisfyingly. Let me know if you have any better solutions.

UPDATE: Thanks for the many work-arounds in the comments. There is another option as well, see my new post for details.

Joining the online revolution

January 29, 2007

I’ve been a bit of a skeptic when it came to embracing hosted services. I could setup and run my own email server, web server, etc. and didn’t see the need or justification to pay someone else to do it. In fact, I actually wrote my own Java Email Server.

However, as I look back of the last couple of months, I’ve moved to a much greater dependence online services.

I moved my email and web servers from my own hosted box to a hosting provider. The services offered are so cost effective that it isn’t worth the time or hassle of worrying about maintaining it. But hosting was just the beginning.

In addition to moving to hosted services, I’ve also moved to online applications. I was a big user of SharpReader, a RSS reader written in C# (hence the name). I looked at Bloglines a long time ago, as well as Google Reader when it first came out. Neither seemed that impressive, and being able to browse my feeds offline seemed appealing. However, when Google Reader recently came out with an upgraded version I switched. One key is the keyboard shortcuts (which bloglines has as well now). Another big reason I like it is the ability to view each post individually, something that I didn’t see how to do on Bloglines (at least when I looked initially).

Additionally, I also moved my email from Thunderbird to Google Mail. I still maintain my email address (@ericdaugherty.com), but the emails all get forwarded to my gmail account, and emails sent appear to come from my @ericdaugherty.com account. The searching and labeling (tagging) have reduced my need (and time) to organize my emails into folders, which is liberating (although a bit of a leap of faith initially). And the spam filtering is great (although I have had one false positive, which is worrying).

Overall, I’m extremely happy with the new arrangements. I think when you boil it down, there are really two reasons it works for me.

1. Keyboard Shortcuts. I can navigate gmail and Google Reader entirely from the keyboard.
2. Ubiquitous network access. WiFi is nearly everywhere, and where there is no WiFi, I can use my cell phone as a modem. This works great on Metra, allowing me to read email and rss anywhere.

An honorable mention goes to the gmail interface on the Treo, which provides better access than the POP client I used for my old email. There is also an Google Reader site optimized for the Treo, although I don’t find myself using that very often.

A second honorable mention goes to Google Desktop, and the integration of my gmail search with my desktop search (something I had with Thunderbird).

I’ve even played with Google’s Docs & Spreadsheets application. For a lot of simple uses, it is good enough to use over Excel and Word. It is certainly slower, although having access to it anywhere is nice. The one use I really found useful was sharing the document with a colleague and both editing it simultaneously, something that is not easily reproducible in Excel. It isn’t a Office killer yet, but the potential is there.

All in all, I’m very happy with this arrangement, and will be much more willing to look at hosted solutions for other applications.

Tag Clouds

January 28, 2007

Tag Clouds are a ’new’ way to display information. Specifically, it is a visual way to depict the occurrences or popularity of a specific word. Apparently this started with Flickr, although it is now common, especially among Web 2.0 companies.

I really dislike tag clouds. OK, they aren’t really offensive, but I’m a numbers guy, and I’d much rather see the information displayed in a table or graph than as a tag cloud. I don’t find it really accurate or useful.

Like any good fad, they are now being applied to everything you can think of. For example, a tag cloud of presidential speeches.