Adventures with Cocoa (or my life story)
It has been a while since I posted anything worth reading, so here goes nothing…
*** Warning ***
Unless you think Apple is the best thing since sliced bread and that they are light years ahead of anyone else with the Cocoa framework. This will not be worth reading either.
Without further ado, I’ll get on with the story…
It all began about 21 years ago, I was sitting in front of a green-screen apple learning to write basic programs… little did I know that I would wear so many hats in the IT world. Sorry, back to the green-screen, so I was sitting there learning to write these trivial programs and store them on 5 1/2” floppies and it dawned on me, “This is what I want to do in life”. So through many dull days in the boredom chamber we call school, I would find some way to create problems and then solve them on a piece of paper, ( That my friends, was my first laptop ).
As time continued on I kept using my makeshift laptop, inputting everything I could with my pencil, pen, marker, and even a crayon or two. Then one day my boredom ended. I was given to the opportunity to join a few others in advanced placement courses that allowed me to actually shove these problem solving programs into a real computer.
I again started with basic and I felt that it was a bit too basic, then I moved on to a far superior machine running slack-ware and I began to bash my way into blissful freedom. But I always liked things with a soft glow so I started to string perls together until they began to look like a python. With my string of perls and my snake in the box I headed into the wild world of web development 0.1 ( yeah, I mean 0.1 ) with PHP thrown in.
Boy, was I disappointed when I found out they wanted me to use front page ( what a piece of crap ). As you can guess I was back in a jail cell down at Boredom prison ( haha! ). So I started reading books, and I mean tons of them. I broke fee of old Boredom prison and took a job answering tech support phone calls. Before long a challenge was issued within the office, a challenge I couldn’t resist. This challenge was to convert an internal Access Database based call ticketing and reporting system into a bolt on web app module for our new web based data reporting system. If anyone could do it they could get a job on the development team. Five days and a failed hard drive latter I was done and submitted my work. The next day I was on the development team. Here’s the downside, we were a M$ shop and C# was the language, SQLserver was the database and IIS served the site. Not that any of this was bad mind you, just not my cup of tea.
This continued for a while, but I became complacent. Then out of the blue the Director of the Systems and Network administration department asked if I could lend some of my time to help with the kernel configuration and compilation on an old Red Hat box so we could make use of an extra HBA card. Of course I accepted, and from that day on I was well on my way to making an extremely great friend who helped me improve in many ways, my character included. I finally felt that I had found my niche, writing systems tools, company wide backup scripts, build database servers, converting many boxes to linux ( Red Hat, Mandrake, and Gentoo ), using more and more MySQL servers etc… During this time my programming tool box continued to grow. At this point I was writing and maintaing many programs in PHP, Perl, Python, Bash, Java, C#, VB, HTML, Javascript, CSS. Then I bought a 17” PowerBook G4 and began reading the documentation for Objective-C and Cocoa. Unfortunately I was not in an environment that this knowledge could be of any use, nonetheless I continued to read about it and learn. Then a new shiny toy pushed it’s way on the scene and Kenny Rogers couldn’t have done a better job singing it’s praises ( Oh! Ruby ). Still learning ruby I wrote a queuing system in Python to back up all server and desktop computers in the company, break them down by category and sucrely and neatly file them in our Disaster Recovery site on a SAN 500 miles away across our MAN ( Boy this was neat stuff ). Then by this point I was getting pulled back into the development team and I knew enough of Ruby and Rails had just appeared, so I started proposing that we use it ( No Go!! ). So I dove deep in to the DB world, mucking about with SQLserver conversion to Oracle and MySQL and Oracle’s Mobile Sync, And that sums up those hats.
On to the next hat…
After almost five years there I decided that I would try my hand at contract web development and began building servers to host customer’s email and web sites. This idea didn’t last very long b/c I couldn’t decide what to charge my customers and I gave all the sites and hosting away for free… ( Argh! who knew that was a crappy business model ). I moved on and landed a position with a company graphically designing and coding their new website and during downtime I helped them run saws, routers, and build and design cabinets ( I know, this was a weird combination ). This lasted a year and the site was finished and I had been sucked more and more into the cabinet building side of the company ( that was their main focus anyhow ).
On to the next hat…
After that I was starting to get discouraged ( three months out of work ), thinking that I would never find a place to do what I love and then I received a call from a recruiter, offering me a job as a Database administrator, working in a castle on top of a mountain near the magnificent Biltmore Estate. In the mean time I had met my wonderful wife to be and I thought this would be a nice peaceful place for us to move, and boy was I wrong. This was anything but peaceful.. The city was crazy, I was back to dealing with C#, SQLserver, M$ etc… Eventually I started doing massive web development and design work and built a full customer support and asset management site for the company using only Merb and ExtJS. Then I re-factored it into Merb + GWT + EXTJS. Then I re-factored it into Merb + Flex.. ( can you tell, I was looking for something, just not finding it ). I kept trying to find something that felt like Objective-C and Cocoa and I couldn’t… until one day I ran across http://www.sproutcore.com and I was sold. I endured b/c I was not allowed to use SproutCore, and Eventually I found others using SproutCore. I began talking to Mike Subelsky and reading http://itsgotwhatplantscrave.com. And that wraps up this hat.
On to the next hat.
I’m just spinning my wheels at this point and out of the blue I get a call from etgryphon and onkis stating that they had been given my name and information at last year’s JSConf and wanted to test me out and then bring me on board, to work on a very large SproutCore application. Honestly I doubted my ability to take this job, but my wonderful wife was there to tell me otherwise and, boy am I glad… I’ve found myself in the best environment I have ever been in. No more working in a vacuum and we all share the load. I have learned much from this team and continue to do so, I only hope that I have been as much of a teacher as they are.
And best of all I finally found what I was looking for in the coding aspect of my life. A framework with the spirit of Cocoa ( b/c next to working @ apple and actually writing applications in Cocoa, this is the best there is out there, come-on prove me wrong! )
Just think I would not be having this experience if my wonderful wife and daughther hadn’t encouraged and supported me every step of the way. ( No, I didn’t forget you mom, you really encouraged me too, Thanks to all of you! )
And last but not least, thanks to Mike Subelsky for giving etgryphon and onkis my information and thanks to etgryphon and onkins for taking the chance on me.