I just released the first version of SearchTouch, hosted on Github at https://github.com/spoogle/SearchTouch. This is a search engine written in Objective C which compiles and runs on Mac OS X or iOS. It is designed to allow searches to be efficiently carried out on a device.
The code builds an index for a document set consisting of an inverted index for each word in a document set. The index can be stored on the device, and can be efficiently searched to produce a ranked list of every document which contains all of any given set of search terms.
There is a strict separation between the search and indexing code, and the data structures used to store indexes. This separation is mainly achieved by defining the Index class as a class cluster, although a prototcol is also used.
The main storage backend uses Core Data. There is a second back end which is purely in memory using CFTrees.
I just played Cube Runner on the train. Cube Runner is an excellent, fun, free game for the iPhone.
I was doubtful before I started, but seems it is possible to play accelerometer games on the iPhone on a train.
In fact, I just got my hiscore.
This seems counterintuitive, like breaking a bone to reset it, but it forces you out of the comfortably wrong equilibrium where you try to control everything smoothly and puts you in the rough zone where you have to respond quickly.
In fact, unstable equilibria often have significantly better responsiveness than stable ones: modern fighter jets are made much more maneuverable by being aerodynamically in an unstable equilibrium.
I had a hard time yesterday evening resisting the back door download of the new software, and told myself I would wait for the official release in the morning. In the morning… no official release. I checked a few times and nothing… nothing… nothing…
It has been released! The iPhone 2.0 software update has been released! I am downloading it now.
But something went wrong with the installation…
… and now my iPhone is bricked. Oh No!
Looking at Console log there are a number of interesting error messages, like:
7/11/08 8:43:21 AM ….com.apple.iTunes MobileDevice: AMDeviceConnect: This is not the droid you’re looking for. Move along, move along.
Update: I now seem to have installed the 1.1.4 firmware successfully, but the “contacting the iTunes store” step fails and the phone is left in emergency call only mode. It looks like the iTunes servers are down and so can’t activate the phone.
Updated update: finally, in the afternoon, I managed to successfully (and easily) install the new firmware on my phone. Awesome.
The office today is filled with squeals of delight from early adopters of the 2.0 firmware and new iPhone apps. Super Monkey Ball is unsurprisingly incredible.