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" »

March 28, 2008

Security Update

I'm not sure if anyone ever reads these posts (Save for spambots and the search hits for wanting to break into Fords. Seriously) but there's been a sizable gap of posts. And honestly, I started writing Bit Rot back in February. Since then, there's been the iPhone release, and just this morning, Daring Fireball linked to Charlie Miller owning (in both senses of the word!) a MacBook Air. He also was able to already find exploits for the iPhone.

So why do I mention this? Well, in many ways, the iPhone is going to be a whole new data point. Since it's so popular, the argument of market share is going to be removed. And the user base is going to be so diverse as to make PEBKAC a real threat. So how is Apple going to ensure security on the iPhone? 100% unbreakable software is like magic pixie dust. You can get close to it, and it definitely shows up in advertisements, but it's not really feasible. And, for better or for worse, Apple keeps its cards really close to its chest. Perhaps for the better, because otherwise armchair iCEOing would be much less fun.

Continue reading "Security Update" »

March 20, 2008

Bit Rot

Several years ago, John Gruber suggested one reason for the virus gap. Namely, that PC users are used to their computers loaded with adware, the sorts of things pre-installed on consumer-level Dells, HPs, and Sonys when they buy them. And so when malware arrives, it takes strong root, and isn't hunted down.

This is a very important difference, one thing that needs to be addressed before Windows becomes truely secure. But for better or worse, it won't. Simply clean installs won't solve the issue. A Mac user, or at least a large portion of them, expect their Mac to perform, to perform right, to 'just work.' For the PC, however, I've come to a theory, a theory which is great flame-bait, but an interesting theory nonetheless.

I think most PC users expect their computers to fail, and hold them to no standards of working. Not only that, but they view the PC as a machine, one that's supposed to break down.

Continue reading "Bit Rot" »

February 16, 2008

And now, how to determine the mouse location as a CGPoint

There's a saying in regards to Mac OS X programming, and it's proven useful time and time again. "If it's getting too difficult, stop and back up. You're probably going about it all wrong." And, well, this is another one of those times. I've been working on a pet project, a user-level driver for a toy called Space Navigator (Long story there), and one of the parts to work on is emulating a mouse. Of course, that requires knowing the current mouse location, so that I can set a new location relative to it.

With the multi-OS and API heritage of Classic, Carbon, and Cocoa, there's quite a few ways to do this, but they have drawbacks. Since this was emulating an input device, CGEvent.h is used, to create events, adjust them, and post them. This calls for CGPoints, which are floating point values, and from the top left corner.

Continue reading "And now, how to determine the mouse location as a CGPoint" »

February 10, 2008

PEBKAC

We all know the old saying about 7 different eskimo words for snow, and the implications that items that are important in a culture tend to have more words about it in a language. Anyone who's knowledgeable with computers, especially in tech support, knows there's quite a few ways to convey when the user is not understanding what to do, and that it is not a functional bug in the software.

PEBKAC- Problem exists between keyboard and chair. The ID ten T error, spelled idiot. Newb, n00b, newbie, luser, pilot error. Trying to find the any key, or use the computer's cupholder. My father has a saying, in terms of bad drivers, of a "Loose nut behind the wheel."

With the rise of social engineering, nigerian 419 scams, phishing, malware, spyware, and other online attacks that rely more on psychological insecurities than buffer overflows, the user has become more and more the weak link in software security. Unfortunately, I see much of the security debates focus on technical aspects, when we should be looking at personal ones.

Continue reading "PEBKAC" »