Thoughts and Ramblings

General things I find of interest.

Text Compression Techniques

A friend of mine develops on an Bible application for the iPhone, BibleXpress. Since his application includes several translations with the app, he once mentioned to me the possibility of compressing them to save space. Any compression that is done must achieve a good ratio, but more importantly, decompression must be fast. I took it upon myself to find a compression algorithm that could fit the bill. In my test case, I worked with the NASB translation of the Bible.

New Car

Well, after much hassle, I now have a new car. Here are some pictures: New Car Front New Car Side The whole ordeal was mostly due to the CARS program, which is often known by “Cash for Clunkers”. Anyway, I finally got that resolved and got a lot more for my old truck than I would have ever gotten in trade-in value. So now I have a VW Jetta, and so far I’m happy with it.

Using Newer Subversion in Xcode

I use MacPorts to get a whole host of utilities. In addition, I’ve always used it to obtain later versions of subversion that the one provided with the OS. Xcode, on the other hand, is locked into using the version of Subversion which is installed in /usr (currently version 1.4.4 where as I have 1.6.3). Since I often work in the command line, eventually I will use the newer version of Subversion on a directory which I also use in Xcode.

Working With Core Data

When I redesigned Sapphire, I decided that the metadata back end would be best served by Apple’s Core Data Framework. While the framework has a lot of power, several shortcomings in the implementation hindered its potential. First, I should start with the many things that Apple did correctly in Core Data. The whole data model with relationships and properties is quite powerful. With this data model, one can represent many data sets in a simple manner, such as the example below: core-data-model This example shows part of the data model within Sapphire pertaining to TV shows, where a TV shows contains multiple seasons, each of which contains multiple episodes.

Growing Sense of Entitlement

As many of you know, I work on Open Source Software (OSS). This means I release several projects free of charge that I create using my time. I’ve gotten a large amount of appreciation from users, but there is another side that’s quite disturbing. What’s worse is it appears to be indicative of a far more serious problem. Often a user will ask for a feature that is not implemented. Sometimes I like the feature and it’s something I’ll use myself so I implement it immediately, sometimes it’s one I’ll work on if I have time, and other times I don’t care for it at all so I suggest that others work on it.