November 14, 2008

In Defense of the IPhone API Limitations; the Compatibility Contract

The iPhone API is new. It has yet to mature. Yes, it does use a very mature 20-year-old foundation steeped in the NeXTSTEP heritage as its foundation, there's a lot that was removed or didn't make the translation from AppKit/Cocoa (The Mac OS X API) to UIKit/Cocoa Touch (The iPhone OS API). This even includes things like the tools, where Interface Builder is limited in what it can do for iPhone files as opposed to Mac files. It's a matter of time before things improve, and they are improving. But it's frustrating, despite there being very good reasons for it.

Sometimes it's simply a case of the code not being there, that iPhone controls resemble Mac controls in function and name, but are instead cousins, with a mismatch of abilities and feature support. Other times, it's classes and code that are outright missing because they have no use in the new OS. An obvious example would be Applescript. Sometimes, it's a case that code is depreciated on the MacOS, and rather than adding depreciated code, it's missing outright on the iPhone. Then there is the code that is in the private frameworks, undocumented but with names that provide more than just a hint that promises cool features and abilities that would solve things.

Because we can see them, on the other side of the fence, that makes them all the more tantalizing. Honestly, it's not even a fence, more a line in the sand, because none of the reasons to not use them are technical in nature. It's simply a case of Apple hanging a "Do not touch" sign on them. But it's best to respect this. This is part of the contract between the API and our code.

Continue reading "In Defense of the IPhone API Limitations; the Compatibility Contract" »

September 25, 2008

No maps of the forest, only pictures of trees

Writing iPhone apps are hard. True, it could be much worse, and as cocoa developers, we're spoiled by the MacOS, but the iPhone App Store is quickly gaining notoriety as full of crappy apps and flashlight programs. A great deal of blame is laid at the feet of those rushing in without cocoa backgrounds, especially by the old guard. Even more is laid at the feet of the NDA, which limits idea exchange, and this has a lot of truth. But I've come to believe that the NDA causes an even more subtle issue. That of reliance on demo code.

Continue reading "No maps of the forest, only pictures of trees" »

September 11, 2008

Sutters Mill Again

It's interesting, this iPhone rush. People that have never before touched a Mac suddenly are jumping into this fray because of the buzz of the iPhone. As a Cocoa developer, it's a wonderful feeling of "Our time has come!" For years, everyone focused on Java, or .Net. Because of Apple's decision to use only Cocoa or native app development, the vast majority of the industry is ill-prepared. It's as if Objective C was this ugly girl in school, the one who shows up at the reunion and her success has suddenly made her the center of attention.

I keep joking that someone should make an iPhone app that simulates a pan of water, so people can actually pan for gold with the iPhone.

Off the Market

How time flies. The last article was posted in late may, and soon afterwards, I was hired for a neat little startup. I joke about how towing and software engineering are so closely related, but going from a large company to a small company is almost a study of polar opposites. It's to be expected, of course, from a job with clearly delineated start and stop times to a calling where clocking in isn't as important as getting the tasks done. There's still a lot of adjusting to do.

May 20, 2008

Frigidaire ads, written in Inuit

This morning, while driving, the radio was playing. The station that was on not only had the paid advertising of pre-recorded clips, but also where the DJ will evangelize a product, in that they use it, etc. etc. I don't exactly consider it astroturfing because there is no attempt to hide that it's a paid product announcement. Instead, it harkens back to the older commercials, when whole shows were sponsored by one company. It's rather quaint in a way. Only, this time around, it was for the Microsoft Zune.

It's no secret that I ally myself with Apple and their products; I have several macs, an iPod, and am looking into making programs for the iPhone. So it's easy to write off that I would not be amenable to this specific product placement. Perhaps I was inserting my own biases in that the DJ sounded awkward, forcing themselves to hit all the right paid buzzwords, trying to turn the adjective "Social" into a noun. But regardless of how well or poorly the advertising went, one thing stuck in my mind. I couldn't recall any iPod advertisements on the radio.

Continue reading "Frigidaire ads, written in Inuit" »

May 11, 2008

Mea Culpa

Logistically speaking, it's impossible for a towing service to cover the entire nation single-handedly. Instead, CSAA, and all AAA clubs subcontract out to towing companies already in place. Where you call from determines which tow company shows up. However, the AAA logo is still emblazoned on the truck, along with the specific tow company's name, to give an impression of cohesion. Every once in a while, one tow company is unable to service members in a timely fashion, either through manpower or equipment issues. In those cases, other companies can take those calls, and service the member outside their usual territory.

I've run quite a few of these calls, and they are the most challenging in terms of customer service. By the time I'm even aware of the call, the member has been badly treated or has been left waiting for a long time. So what is the first thing I do when I finally show up?

I apologize.

This is something that much of the computer industry has yet to learn.

Continue reading "Mea Culpa" »

April 25, 2008

Language Barrier

I have often joked that my first language isn't English, as I'm more fluent in C. Truth be told, while I can't claim to be bilingual in any real sense (I understand some french, and have picked up only a few spanish words), I do pride myself in being a polyglot in that I know several computer languages. Of course, C is my core language, as I can claim consistent coding proficiency in it all the way back to my college years. But beyond that, I know quite a few other languages, including assembly, C++, and as of late, Objective-C.

Not only that, but on the languages that I have used but have since forgotten, I've made sure to remember a few of the design patterns from them. For example, the Eval/Apply loop used in Scheme's interpreter. There's an aphorism to the effect of "A language which doesn't change the way you think isn't worth learning." I'm a firm believer in the contrapositive: All languages worth learning will change the way you think.

With that in mind, it makes me really wonder and ponder about this list that was pointed to in this article.

Continue reading "Language Barrier" »

April 11, 2008

Making C++ and Objective C play nice

Ah, sibling rivalry. C++ is one year older than Objective C, and while they have the same parent, C, they're quite different. But, sometimes, you want to harness code written in C++ from your nice and comfy Cocoa-based app. Sure, you can try Objective C++, the hybrid as of late, but you risk losing Objective C's pure superset abilities, and the compiler takes a speed hit trying to be bilingual. And if other coders either can't or won't handle C++, well, then it's time to break out some pure C wrappers and contain things. Here's a few tips I've learned the hard way.

Continue reading "Making C++ and Objective C play nice" »

April 2, 2008

On the market

Almost as if on instinct, I updated my resume last month. And yesterday, I discovered that the local office of the towing company will be closing its doors. Sure, I could move to where the office is relocating. But I really can't justify the commute, especially at a driver's pay rate. Furthermore, I've been really eager to focus on programming full-time as of late. So, while it's been fun to drive a tow truck, and I definitely have gotten my exercise, it's time to return to the software industry.

So. I'm looking for employment and freelancing. My experience is posted in pdf, text, and word doc.

(Entry was edited to updated resumes)

March 29, 2008

It's like a mountaintop, but with more grease and the guru swears a lot

I am a computer programmer, a software engineer if you will, but I've had a different job of late. As the story goes, I graduated in '99, was in the industry full time for a few years, and was laid off. Then, after a while of contract work, I was job hunting and my car broke down. I'm a AAA member, and when I jokingly asked the tow truck driver if they were hiring, he said yes. I applied, and for the last four years, I've been driving a tow truck.

It's been fun, and I've gotten a lot of exercise, but I do want to fully return to the computer industry. One of the hardest parts, however, is selling myself, and explaining these last few years. To be honest, it's not mutually exclusive; I have been programming all this time. But at the same time, this is definitely the path less traveled by. For the most part, the computer industry is one of specialization, where there's more call for people with a specific set of knowledge than for people who are generalists.

This is a shame, because I believe that those who focus on one tiny subset of the field are at a disadvantage. I remember, years ago, a time back at my first job. It was a great company — small, with a lot of open communication — and I was rather fresh out of college. Their primary product ran on Windows NT exclusively, and was the brainchild of the CTO. Believe me when I say the CTO was a brilliant man, who knew both Windows and the product inside and out.

So believe my surprise when, during a group brainstorming for a new product that would be cross-platform, he admitted to having no knowledge of how Unix did file permissions, the read/write/execute bits that can be changed with chmod. Me, a new hire, knew something the CTO didn't!

Continue reading "It's like a mountaintop, but with more grease and the guru swears a lot" »