Just recently, I decided to attempt to pick up some manuals and tutorials in order to instruct myself in the ways of Cocoa application construction. Unfortunately, going into this I had no idea how to understand the underlying programming Objective-C in Cocoa. After picking up a text from the local B&N, I’ve found that going through it that it is not all that different syntax-wise from Perl and my really old days of C++ (shoot, about 7-8 years ago I played with teaching myself?). The coding syntax is great…I just need to get my head wrapped around this object-oriented programming so I can visualize this while I code. It’s a bit foreign to me this policy of using classes and objects for modifying data and/or sets of data, but at the same time it all sounds pretty cool.

This endeavor to teach myself how to program for Cocoa stemmed from a problem in the lab that I’m trying to negotiate and remediate. We have a massive collection of bacterial strains frozen down in our -80˚C storage freezers. In order to keep track of everything in there, we obviously have some kind of log/database for this. Over the years, the electronic database that was established has become more and more unkempt due to the flawed design when they set it up. The file was originally setup as a flat-file database in FileMaker, and the searching capabilities of the database/software is horrendous. It’s nigh impossible to find anything in the database unless you enter just the exact piece of text. So, logically, we want to clean this electronic database up to a standard we find fit (everything is recorded by hand as it’s created in a massive binder as a working hardcopy) with adequate amounts of information and good to exceptional searching capabilities (basically searching any string/entry for a piece of text).

Playing around with some other software, and reading up on relational databases, it seems that FileMaker was just an overkill piece of software for what the lab was using it for…a flat-file spreadsheet. It’s a relational database tool, and it was far from being used as such. Granted, I could try to reconstruct a FileMaker database and beat my head against a wall until I found out how to properly integrate a search function into the database, but that just would not be any fun! FileMaker/Apple’s home-entry database software Bento is a really simplistic database tool, using a simple flat-file setup with a bunch of flashy Mac OS X 10.5 features, as it’s Leopard-specific software. The searching in this software is fantastic for how we query it to find our entries, but it lacks so blasted much in what we want the database to eventually do. I’m thinking this will serve as an interim tool for managing our database until option three has made itself ready.

Yes, option three is me trying to write a small Cocoa app that will create, manage and interface with the database. I’m relatively impressed with the Core Data capabilities to date, just in what I’ve seen from Bento and iBank (despite iBank’s sluggish response when its database gets large) and I’d like to utilize it if I could. In addition to all this, I just think it’d be far more fun to write my own application for this kind of thing. I can ultimately add or remove features at will (provided I don’t spontaneously forget how to code it), and it’s free! Well, it’s costing my time, but it’s time I’m wiling to give up for it. I think I’m comfortable enough with the Apple platform that I’d be willing to learn how to write small apps for it to carry on with me over time. It’s just a matter of taking the time to suck it all in, get my head around object-oriented programming, and then learn how to interface it all with a user interface. That last part is what I think may ultimately kill me…I sure hope Xcode has some wimpy simple tool for building and interfacing with a UI setup.

Luck will have it, I’ll get this all finished before I graduate, and then Apple will restructure Cocoa so much that I will not have a clue what I’m doing anymore in it. I’m crossing my fingers that this doesn’t happen!

P.S. I don’t think there’s enough researchers out there willing to write their own applications for tools…at least I never meet enough that aren’t already computationally-focused.