Putting lisp through its paces

Was up till 2am the other night getting my lisp environment set up and tested. I’m using emacs, slime, and SBCL on a Fedora Core 4 laptop. This produces a very nice environment to run, debug, and test lisp on.

As I mentione earlier, I’ve picked a little test application that I’m trying out in different languages. This application involves running a little application server that accepts http requests for counting. There is a very simple api that involves /addCount?key. Each time addCount is called a count is added for that key. Then there is a corresponding api to retrieve the counts later. The counts are persisted to a repository so that they are not lost.

This simple little application just needs to be able to do a couple of things, but covers a wide variety of real world areas. Text processing, networking, and database access. I would say that these areas are the bare minimum to be able to do real work in the real world.

In my initial findings with lisp it appears that there are libraries available to handle the networking and database access portions of the requirements, but it appears that there is little standardization in how you deploy and integrate these libraries.

How movie downloads should work

Over the last year, I’ve definitely bought into the Apple product offerings hook, line, and sinker. The ipod dragged me in. Then I purchased an ibook, next an imac for the home, and now I’ve just upgraded to a macbook. I hate DRM, but for right now the Apple itunes DRM in permissive enough that it doesn’t stop me from doing anything that I would want to do. With the release of movies and tv shows on itunes there’s a whole host of new opportunities and problems.

The imac that I use at home to manage all of our digital content has 100Gb of disk. My wife and I sync our ipods against this with a collection of about 30Gb of music. There is already some concern in the back of my mind about what would happen if the disk in the imac died a sudden horrible death as disk drives have a tendency to do. To counter this threat, I have another server that I regularly back up to in the garage. Of course this solution doesn’t cover a house fire or other catastropy and is already more involved than the average computer user is going to get.

The problem is magnified even more with movies. Looking at itunes it appears that the average movie size is 1.5-2Gb. This would mean that I could buy ~40 movies. Beyond this point I’ve got to start looking into better ways to store the files, ie. home terabyte file server. The main issue being that since I’ve purchased the file I can’t really delete it. Deleting or losing the file is the same as throwing $12.99 away. It appears that itunes allows you to burn the files to disk to back them up. So, you could pay $12.99 for the movie, plus the amount for a blank dvd, plus the time it takes to burn each movie. Or, you could just buy the dvd off of amazon and stick it in the dvd player. Itunes isn’t really winning the argument here especially since it takes 2+ hours to download in the first place.

The better option is to rent the movies. With movies you don’t watch them over and over again the way you listen to music anyway. My proposal is a partnership between Tivo and Netflix, I had heard rumors that they were talking. Tivo already handles DRM, making it difficult for you to take the files and upload them to the internet. Netflix has the library and the low monthly charge. What you would do is to manage your Netflix queue and then instead of mailing dvds, your Tivo would download 4 movies in the middle of the night. When you’re finished watching the movie you just delete it off the Tivo. Once you delete the movie the Tivo starts to download the next one. This would provide all of the benefits with little of the downside. Netflix‘s operations would be vastly simplified. Consumers don’t have to care about storing and backing up massive digital files. Tivo cements it’s role as the gateway to your tv. Everyone but Microsoft and Apple are happy.

Produce something

I was watching a show on NPR this weekend where they had a little spotlight on Dean Kamen, the creator of the Segway. The segment showed him at work in his own little workshop tinkering with different projects. Of course the workshop that he has in his house is a little different than what anyone else might have. But the view of his workshop as well as a bit about his work with kids, developing programs to get them interested in science and engineering, got me thinking. I really liked his take on the world, that our society had taken the ingenuity out of the average person. The average person is to happy to just sit back and have things fed to them.

All too often we focus too much on consuming. Taking in what corporations produce, paying for goods and media. With the rise of service industries the average person doesn’t really produce anything for themselves anymore. Not that I’m advocating that we should go back making everything for ourselves from scratch but tinkering in an area that you find interesting and trying to make something better has a lot of benefits.

Far too many people don’t have the confidence in themselves that they could make something that someone else would want. There’s a whole lot of satisfaction to be had in having other people enjoy something that you’ve made. People are also afraid to start a project because they won’t be able to complete it. I think this attitude in particular holds a lot of poeple back from doing really interesting work. It’s not often that a product is created exactly as it was invisioned. There is usually a whole lot of tweaks and changes that need to occur before you get to a successful finish. The biggest obstacle to this whole problem is just starting.

Dean Kamen’s programs aim to combat these attitudes. To get kids doing things for themselves and finding that sometimes they can do it better.

Folders and Streams

In working with CloudGrove, my personal search engine, I’ve found it necessary to take another look at how I manage the UI. The current implementation uses folders to group RSS feeds. This way it’s easy to logically group feeds together. It works well for a very basic implementation, but to do more complicated things, you need to consider the importance of time in the browsing experience. With folders the only states are read and unread. Once you read a feed, how do we provide an interface to go back through the content of the feed?

Feeds have to deal with time, new content is always streaming in. In browsing though you often have the desire to move both forward and backward. To handle this in a UI sense I’m refactoring the display to present as streams instead of folders. By doing this logically you could actually do some creative things by piping one stream into other streams.

And best of all, this will actually make the development of the UI simpler.

Upgrading WordPress

It’s been awhile since I’ve upgraded. Figured it’s about time. Don’t think there were any issues with the upgrade, but I’m still poking around.

Update: Just added the akismet plugin to see how it does with comment spam. I’m actually surprised to see that I’ve actually got 95 posts.