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.

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.

AC3 Passthrough Compatibility Matrix

Since some parts of AC3 passthrough work, and others do not, I decided to create a bit of a compatibility matrix to summarize it. I’ve added the related bug id’s I’ve reported, which have gone unanswered, in parentheses. The latest version of perian (to be released soon), will choose between using the hack method for passthrough, and Apple’s method. Anywhere labeled “Hack” will never work with Apple’s method, so it is bypassed to avoid their broken code.

Java in Xcode

Well, I have had reason with my research to do some Java development. No biggie, Xcode supports Java too, right? Wrong! well mostly. This all came to a head when I downloaded the latest beta of Xcode (which I am only using because these fix a serious performance issue with the non-beta releases). After the last download, I found 4 distinct bugs in 2 hours, and I’m still finding them. Two of these are Java related, so I gave up, and looked for alternatives.