<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
   <channel>
      <title>Code and cars</title>
      <link>http://unlogica.com/blog/</link>
      <description>Documenting the two closely related fields of programming and towing.</description>
      <language>en</language>
      <copyright>Copyright 2009</copyright>
      <lastBuildDate>Fri, 30 Jan 2009 19:17:40 -0800</lastBuildDate>
      <generator>http://www.sixapart.com/movabletype/</generator>
      <docs>http://blogs.law.harvard.edu/tech/rss</docs> 

            <item>
         <title>Just what you always wanted</title>
         <description><![CDATA[Printable templates for designing iPhone interfaces, in PDF form. The screens have 20-pixel grids, as well as guide lines for the status bar, nav bar, toolbar, tab bar, wet bar, and picker or keyboard.

<a href="http://unlogica.com/bhamon/1phone.pdf">1 phone/page</a>
<a href="http://unlogica.com/bhamon/2phones.pdf">2 phones/page</a>
<a href="http://unlogica.com/bhamon/6phones.pdf">6 phones/page</a>

And it's not even your birthday.]]></description>
         <link>http://unlogica.com/blog/2009/01/just_what_you_always_wanted.html</link>
         <guid>http://unlogica.com/blog/2009/01/just_what_you_always_wanted.html</guid>
        
        
         <pubDate>Fri, 30 Jan 2009 19:17:40 -0800</pubDate>
      </item>
            <item>
         <title>Disconnects</title>
         <description><![CDATA[One minor annoyance about iPhone development, especially with someone already versed in Mac development, is that the classes are mostly the same, but every once in a while, there's a land-mine, pothole, or other surprise when what works for the Mac doesn't work the same for the iPhone.

Bindings have been a part of the MacOS since 10.3, and are a very useful and valuable feature. And they're missing on the iPhone. I've tried a few techniques to make up for the lack, but none of them are as elegant as I'd like. And then, in the shower, I came across a brilliant idea, involving a way to keep track. It'd involve making an NSObject subclass, and using +poseAsClass:, but it'd work!

It's now 4:30 am, and having the class not exactly work has led me to discover that not only has 10.5 depreciated +poseAsClass:, and has it missing from the 64-bit version, it's gone outright from the iPhone. And now I'm updating for no other reasons than to vent. Core Data and bindings have made me soft, but I <em>like</em> soft.]]></description>
         <link>http://unlogica.com/blog/2009/01/disconnects.html</link>
         <guid>http://unlogica.com/blog/2009/01/disconnects.html</guid>
        
        
         <pubDate>Wed, 14 Jan 2009 04:24:59 -0800</pubDate>
      </item>
            <item>
         <title>Marketing Immunization</title>
         <description><![CDATA[There are a few words or phrases that rub me the wrong way. One is to 'go viral'. A virus is something that latches onto a host and uses the host. The results are for the benefit of the virus and not the host. In short, it implies to me that the general public, the host, will actively do something for a company, the virus, with little or no benefit to the hosting public. And it means that the average person will somehow be compelled to spend time, money, and effort to advertise or otherwise add more value to an item then he gets back out.

Who works this way? What mental model makes this possible? If our fictional user is selfish, they would only do what is necessary for themselves, and not bother with working or a company without pay. If our fictional user is caring and charitable, they would focus on charities and causes they care about, and working or a company without pay is not one of them. And in reality, it's not a case of being selfish, it's a case of being busy. I have a limited amount of time on my hands, and if something isn't for the good of myself, my friends and family, or the general good, well, someone else has to do it.

However, even if I had a time machine, I wouldn't be helping random companies owned by strangers. No, the first thing I'd do is to show off. I'd take a modern laptop, or iPhone, or even a gameboy, travel back to the 50s, or even seek out Babbage in 19th century London and go, "Look what I've got! In the future, we get cool stuff like this!" I would travel to the 70s and 80s, find a company with a supercomputer, and show off a handheld consumer device that crunches more numbers than their multimillion-dollar behemoths. <b>And!</b> And I'd inform them that future computing power is so cheap, we toss the CPU cycles away rendering Mario in realtime.

This is why I am fortunate to not have a time machine. I'd end up with a broken nose.]]></description>
         <link>http://unlogica.com/blog/2008/12/marketing_immunization.html</link>
         <guid>http://unlogica.com/blog/2008/12/marketing_immunization.html</guid>
        
        
         <pubDate>Tue, 23 Dec 2008 09:29:00 -0800</pubDate>
      </item>
            <item>
         <title>I was at a meeting</title>
         <description>I was at a meeting of various javascript developers. I do not know javascript enough to claim proficiency. I don&apos;t want to know javascript; my biases are for Objective C and the desktop environment. It&apos;s a long story as to why I was there in the first place, and I left early.

However, one thing stood out to me was one of the presentations, done by some Yahoo employees. In it, they are talking about the myriad of frameworks, collectively known as YUI, built for the site. And I don&apos;t mean to demean it, because it is impressive. And lets them do some fancy things with their front page, showing all sorts of news and information. But that&apos;s where they didn&apos;t get it.

In full disclosure, I know people who work at Yahoo, and I know people who work at Google. They&apos;re all great and brilliant people. I mean this only as an example, although it&apos;s one I feel Yahoo could learn from.</description>
         <link>http://unlogica.com/blog/2008/12/i_was_at_a_meeting.html</link>
         <guid>http://unlogica.com/blog/2008/12/i_was_at_a_meeting.html</guid>
        
        
         <pubDate>Mon, 22 Dec 2008 22:18:10 -0800</pubDate>
      </item>
            <item>
         <title>In Defense of the IPhone API Limitations; the Compatibility Contract</title>
         <description>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&apos;s a lot that was removed or didn&apos;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&apos;s a matter of time before things improve, and they are improving. But it&apos;s frustrating, despite there being very good reasons for it.

Sometimes it&apos;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&apos;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&apos;s a case that code is depreciated on the MacOS, and rather than adding depreciated code, it&apos;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&apos;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&apos;s simply a case of Apple hanging a &quot;Do not touch&quot; sign on them. But it&apos;s best to respect this. This is part of the contract between the API and our code.</description>
         <link>http://unlogica.com/blog/2008/11/in_defense_of_the_iphone_api_l.html</link>
         <guid>http://unlogica.com/blog/2008/11/in_defense_of_the_iphone_api_l.html</guid>
        
        
         <pubDate>Fri, 14 Nov 2008 12:57:46 -0800</pubDate>
      </item>
            <item>
         <title>No maps of the forest, only pictures of trees</title>
         <description>Writing iPhone apps are hard. True, it could be much worse, and as cocoa developers, we&apos;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&apos;ve come to believe that the NDA causes an even more subtle issue. That of reliance on demo code.</description>
         <link>http://unlogica.com/blog/2008/09/no_maps_of_the_forest_only_pic.html</link>
         <guid>http://unlogica.com/blog/2008/09/no_maps_of_the_forest_only_pic.html</guid>
        
        
         <pubDate>Thu, 25 Sep 2008 12:57:20 -0800</pubDate>
      </item>
            <item>
         <title>Sutters Mill Again</title>
         <description>It&apos;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&apos;s a wonderful feeling of &quot;Our time has come!&quot; For years, everyone focused on Java, or .Net. Because of Apple&apos;s decision to use only Cocoa or native app development, the vast majority of the industry is ill-prepared. It&apos;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.</description>
         <link>http://unlogica.com/blog/2008/09/sutters_mill_again.html</link>
         <guid>http://unlogica.com/blog/2008/09/sutters_mill_again.html</guid>
        
        
         <pubDate>Thu, 11 Sep 2008 12:56:18 -0800</pubDate>
      </item>
            <item>
         <title>Off the Market</title>
         <description>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&apos;s to be expected, of course, from a job with clearly delineated start and stop times to a calling where clocking in isn&apos;t as important as getting the tasks done. There&apos;s still a lot of adjusting to do.</description>
         <link>http://unlogica.com/blog/2008/09/off_the_market.html</link>
         <guid>http://unlogica.com/blog/2008/09/off_the_market.html</guid>
        
        
         <pubDate>Thu, 11 Sep 2008 12:55:33 -0800</pubDate>
      </item>
            <item>
         <title>Frigidaire ads, written in Inuit</title>
         <description>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&apos;t exactly consider it astroturfing because there is no attempt to hide that it&apos;s a paid product announcement. Instead, it harkens back to the older commercials, when whole shows were sponsored by one company. It&apos;s rather quaint in a way. Only, this time around, it was for the Microsoft Zune.

It&apos;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&apos;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 &quot;Social&quot; into a noun. But regardless of how well or poorly the advertising went, one thing stuck in my mind. I couldn&apos;t recall any iPod advertisements on the radio.</description>
         <link>http://unlogica.com/blog/2008/05/frigidaire_ads_written_in_inui.html</link>
         <guid>http://unlogica.com/blog/2008/05/frigidaire_ads_written_in_inui.html</guid>
        
        
         <pubDate>Tue, 20 May 2008 12:41:27 -0800</pubDate>
      </item>
            <item>
         <title>Mea Culpa</title>
         <description>Logistically speaking, it&apos;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&apos;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&apos;ve run quite a few of these calls, and they are the most challenging in terms of customer service. By the time I&apos;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.</description>
         <link>http://unlogica.com/blog/2008/05/mea_culpa.html</link>
         <guid>http://unlogica.com/blog/2008/05/mea_culpa.html</guid>
        
        
         <pubDate>Sun, 11 May 2008 12:41:06 -0800</pubDate>
      </item>
            <item>
         <title>Language Barrier</title>
         <description><![CDATA[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 <a href="http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html">this list</a> that was pointed to in <a href="http://www.psynixis.com/blog/2008/04/25/did-apple-make-a-mistake-choosing-objective-c-for-iphone-sdk/">this article</a>.]]></description>
         <link>http://unlogica.com/blog/2008/04/language_barrier.html</link>
         <guid>http://unlogica.com/blog/2008/04/language_barrier.html</guid>
        
        
         <pubDate>Fri, 25 Apr 2008 12:40:50 -0800</pubDate>
      </item>
            <item>
         <title>Making C++ and Objective C play nice</title>
         <description>Ah, sibling rivalry. C++ is one year older than Objective C, and while they have the same parent, C, they&apos;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&apos;s pure superset abilities, and the compiler takes a speed hit trying to be bilingual. And if other coders either can&apos;t or won&apos;t handle C++, well, then it&apos;s time to break out some pure C wrappers and contain things. Here&apos;s a few tips I&apos;ve learned the hard way.</description>
         <link>http://unlogica.com/blog/2008/04/making_c_and_objective_c_play.html</link>
         <guid>http://unlogica.com/blog/2008/04/making_c_and_objective_c_play.html</guid>
        
                  <category domain="http://www.sixapart.com/ns/types#tag">Advanced programming</category>
                  <category domain="http://www.sixapart.com/ns/types#tag">Aside</category>
                  <category domain="http://www.sixapart.com/ns/types#tag">Cocoa</category>
                  <category domain="http://www.sixapart.com/ns/types#tag">Code</category>
        
         <pubDate>Fri, 11 Apr 2008 12:38:34 -0800</pubDate>
      </item>
            <item>
         <title>On the market</title>
         <description>Almost as if on instinct, I updated my resume last month. And today, 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&apos;t justify the commute, especially at a driver&apos;s pay rate. While it&apos;s been fun to drive a tow truck, and I definitely have gotten my exercise, it&apos;s time to return to the software industry.

UPDATE: Off the market again. And since there&apos;s been a server crash, I haven&apos;t uploaded the old files.</description>
         <link>http://unlogica.com/blog/2008/04/on_the_market.html</link>
         <guid>http://unlogica.com/blog/2008/04/on_the_market.html</guid>
        
        
         <pubDate>Wed, 02 Apr 2008 12:37:30 -0800</pubDate>
      </item>
            <item>
         <title>It&apos;s like a mountaintop, but with more grease and the guru swears a lot</title>
         <description><![CDATA[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 &mdash; small, with a lot of open communication &mdash; 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!]]></description>
         <link>http://unlogica.com/blog/2008/03/its_like_a_mountaintop_but_wit.html</link>
         <guid>http://unlogica.com/blog/2008/03/its_like_a_mountaintop_but_wit.html</guid>
        
        
         <pubDate>Sat, 29 Mar 2008 12:37:14 -0800</pubDate>
      </item>
            <item>
         <title>Security Update</title>
         <description><![CDATA[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, <a href="http://daringfireball.net/linked/2008/march#fri-28-miller">Daring Fireball</a> 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.]]></description>
         <link>http://unlogica.com/blog/2008/03/security_update.html</link>
         <guid>http://unlogica.com/blog/2008/03/security_update.html</guid>
        
        
         <pubDate>Fri, 28 Mar 2008 12:29:35 -0800</pubDate>
      </item>
      
   </channel>
</rss>
