<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Tristan O'Tierney</title>
	<atom:link href="http://www.otierney.net/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.otierney.net</link>
	<description>Mac Geek</description>
	<lastBuildDate>Wed, 09 Sep 2009 17:23:35 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>GreaseKit in 64bit Safari</title>
		<link>http://www.otierney.net/articles/2009/09/05/greasekit-in-64bit-safari/</link>
		<comments>http://www.otierney.net/articles/2009/09/05/greasekit-in-64bit-safari/#comments</comments>
		<pubDate>Sun, 06 Sep 2009 05:45:56 +0000</pubDate>
		<dc:creator>tristan</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[64bit]]></category>
		<category><![CDATA[greasekit]]></category>
		<category><![CDATA[inputmanager]]></category>
		<category><![CDATA[plugin]]></category>
		<category><![CDATA[safari]]></category>
		<category><![CDATA[snowleopard]]></category>

		<guid isPermaLink="false">http://www.otierney.net/?p=356</guid>
		<description><![CDATA[After I read about SIMBL gaining (beta) 10.6 support, my first reaction was hooray! But not so fast, just because SIMBL can now load bundles doesn&#8217;t quite mean your latest and greatest plugins will actually work. You&#8217;d still have to drop Safari down to 32bit only mode, which kind of defeats the purpose since SIMBL [...]]]></description>
			<content:encoded><![CDATA[<p>After I read about <a href="http://www.culater.net/software/SIMBL/SIMBL.php">SIMBL</a> gaining (beta) 10.6 support, my first reaction was hooray! But not so fast, just because SIMBL can now load bundles doesn&#8217;t quite mean your latest and greatest plugins will actually work. You&#8217;d still have to drop Safari down to 32bit only mode, which kind of defeats the purpose since SIMBL already continues to work for apps running in 32bit mode. But, a simple recompile was the proof I needed. With a bit of work, I got <a href="http://code.google.com/p/greasekit/">GreaseKit</a> recompiled. First things first, you&#8217;ll need to go check out the source code somewhere onto your computer:</p>

<pre class="code">svn checkout http://greasekit.googlecode.com/svn/trunk/ greasekit</pre>

<p><br />
You might notice after trying to build an error like this:</p>

<pre class="code">There is no SDK with the name or path '/Developer/SDKs/MacOSX10.4u.sdk'</pre>

<p>I don&#8217;t have the 10.4 SDK installed, maybe it was removed when I installed Snow Leopard, or maybe I just never installed it. You might have it installed, and get some other set of errors.</p>

<p>First thing you&#8217;ll want to do either way though is right click on the <em>GreaseKit</em> project file and choose <em>Get Info</em>:
<center><img src="http://otierney.net/images/GreaseKitProject.png" alt="GreaseKit Project Menu" /><br /><br /><br /></center>
Change the <em>Base SDK for All Configurations</em> to <em>Mac OS X 10.6</em>. Your build should succeed now, but we&#8217;re not quite done yet. It&#8217;s only building for 32bit still. Isn&#8217;t the whole point of this to get 64bit? By default GreaseKit only builds the native architecture you&#8217;re currently on for the <em>Debug</em> build configuration. This is fine, as it speeds up development and testing so we won&#8217;t change it. Switch to the <em>Build</em> tab so we can make it build a 64bit binary. Change the <em>Configuration</em> drop down from whatever it&#8217;s on (probably <em>Debug</em>) to <em>Release</em>. Aha, there&#8217;s the problem. It&#8217;s only building an i386 and ppc version. Since this is Snow Leopard, there&#8217;s no reason to be building ppc anymore. Switch this setting to <em>Standard (32bit/64-bit Universal)</em>.</p>

<p>Before we go further make sure from now on you&#8217;re making a <em>Release</em>, and not <em>Debug</em> build. Otherwise, our changes are for naught. Unfortunately this varies a bit from setup to setup, but you&#8217;ve likely got a menu (or several menus) in the top/left of your Xcode window that says either <em>Overview</em> or <em>Active Build Configuration</em>. For either of these, click it and switch the build configuration to <em>Release</em>.</p>

<p>The GreaseKit project suffers from a common issue &#8212; some build settings are duplicated in both the Project and Target we&#8217;re trying to modify. Think of build settings as a cascading style sheet of settings, where the top level is the Project (able to dictate settings for <strong>all</strong> Targets in the project) and individual Targets inherit settings from the Project. Right click on the <em>GreaseKit</em> Target as pictured and click on <em>Get Info</em>:
<center><img src="http://otierney.net/images/GreaseKitTarget.png" alt="GreaseKit Target Menu" /><br /><br /><br /></center>
Go again to this window&#8217;s <em>Build</em> tab and change the <em>Configuration</em> to  <em>Standard (32bit/64-bit Universal)</em>. After building again, a few errors are still popping up. In particular, this one:</p>

<pre class="code">Mac OS X version 10.5 or later is needed for zerocost-exceptions</pre>

<p>This one&#8217;s a little harder to figure out, but once more we go back to the <em>GreaseKit</em> Project&#8217;s Get Info window and <em>Build</em> tab. The setting we&#8217;re looking for now is the <em>Mac OS X Deployment Target</em> which is currently set to <em>Mac OS X 10.3</em>. There&#8217;s your problem. Change that to 10.6, and it should succeed! Once you&#8217;ve put this compiled bundle in your ~/Library/Application Support/SIMBL/Plugins and installed the latest <a href="http://www.culater.net/software/SIMBL/SIMBL.php">SIMBL</a> beta you should be seeing GreaseKit show up in your Safari menus!
<br />
<hr />
<br />
<strong>Update:</strong> Since some folks requested it, here&#8217;s a finished pre-built bundle of <a href="http://otierney.net/files/GreaseKit64bit.zip">64bit GreaseKit</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.otierney.net/articles/2009/09/05/greasekit-in-64bit-safari/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>FlickrBooth for Snow Leopard coming</title>
		<link>http://www.otierney.net/articles/2009/08/29/flickrbooth-for-snow-leopard-coming/</link>
		<comments>http://www.otierney.net/articles/2009/08/29/flickrbooth-for-snow-leopard-coming/#comments</comments>
		<pubDate>Sat, 29 Aug 2009 17:13:43 +0000</pubDate>
		<dc:creator>tristan</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.otierney.net/?p=354</guid>
		<description><![CDATA[Hey blog readers and FlickrBooth fans. I&#8217;ve heard that FlickrBooth isn&#8217;t working in Snow Leopard, even when you try to run Photo Booth as a 32bit app instead of 64bit. I do know, and will be working on fixing it soon. I&#8217;ve also long put off Flickr Video uploading support which I think for this [...]]]></description>
			<content:encoded><![CDATA[<p>Hey blog readers and FlickrBooth fans. I&#8217;ve heard that FlickrBooth isn&#8217;t working in Snow Leopard, even when you try to run Photo Booth as a 32bit app instead of 64bit. I do know, and will be working on fixing it soon. I&#8217;ve also long put off Flickr Video uploading support which I think for this release, I&#8217;ll take another crack at.  More coming on this in the next few weeks!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.otierney.net/articles/2009/08/29/flickrbooth-for-snow-leopard-coming/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>TransLink Isn&#8217;t Ready</title>
		<link>http://www.otierney.net/articles/2009/08/11/translink-isnt-ready/</link>
		<comments>http://www.otierney.net/articles/2009/08/11/translink-isnt-ready/#comments</comments>
		<pubDate>Wed, 12 Aug 2009 01:34:52 +0000</pubDate>
		<dc:creator>tristan</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[bart]]></category>
		<category><![CDATA[caltrain]]></category>
		<category><![CDATA[muni]]></category>
		<category><![CDATA[sf]]></category>
		<category><![CDATA[transit]]></category>
		<category><![CDATA[translink]]></category>

		<guid isPermaLink="false">http://www.otierney.net/?p=349</guid>
		<description><![CDATA[TransLink is an ambitious project. Imagine if you had your bank or credit card information attached to one card that you could wirelessly swipe on every bay area transit system: SF MUNI, BART, Caltrain, AC Transit, and the list goes on. The service already works in its entirety with SF MUNI. BART just announced support [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.translink.org">TransLink</a> is an ambitious project. Imagine if you had your bank or credit card information attached to one card that you could wirelessly swipe on every bay area transit system: SF MUNI, BART, Caltrain, AC Transit, and the list goes on. The service already works in its entirety with SF MUNI. BART just announced support for using your SF MUNI monthly pass added to a TransLink card within the city, making it&#8217;s usefulness for in city transit nearly complete. Getting to the point where you can use these services though is where this grand idea falls flat.</p>

<p>What follows is <strong>my experience</strong> with trying to set up TransLink as a new SF local. I know my story&#8217;s not typical, but I know I&#8217;m not the only one having these sorts of issues. I&#8217;ve been warned by friends who already lived here about some of it&#8217;s failings. The worst part about my conversations has been that this is just something you expect out of TransLink. Talk about a bad brand image on a service that&#8217;s just now becoming useful with the majority not even jumping on board yet. And they shouldn&#8217;t, because TransLink would never be able to support that many people if they&#8217;re still sorting out this many issues.</p>

<h2>My first experience</h2>

<p>It&#8217;s the most important impression you can make. It&#8217;s also why I even bothered with TransLink in the first place. Being a south bay native, I didn&#8217;t need a SF MUNI monthly pass. I rode transit here and there since I only worked in the city during the day, and my commute to work is an easy walk from Caltrain. So, I set up what TransLink calls an e-cash autoload. This feature automatically deducts $20 from your bank account or credit card once your TransLink balance reaches $0. Simple enough to set up on the website despite it&#8217;s pretty poor UI, but once I navigated through the ambiguously worded website I was able to find what I needed.</p>

<p>This is where I could start to see beginning of my sour relationship with TransLink. Immediately after setting up e-cash autoload, I&#8217;m dropped back to the site&#8217;s main account portal which features absolutely zero feedback of the autoload I just added to my account. Now if you read the fine print carefully, they try to tell you that it will be several days before changes to your account show up. That&#8217;s great, but no one reads the fine print. It&#8217;s pretty much guaranteed that if you put text in big bold letters and flash it, users will still forget it once it&#8217;s gone in a short period of time. Having a one time message that tells me it will be several days before account changes show up doesn&#8217;t preclude your system from telling me <strong>somewhere, anywhere</strong> that I have a pending account change. Instead I&#8217;m presented with nothing but the same UI as the first time I visited the site telling me how to setup an autoload.</p>

<p>Thinking I must have done something wrong, I attempted the autoload setup process <strong>again</strong>. After the second try, I came to the realization that I&#8217;d get no such feedback and I&#8217;d just have to take them on their word that in &#8220;5 - 10&#8221; days I&#8217;d get acknowledgement somewhere on the site that my account changes have taken effect.</p>

<p>Sure enough, eventually, everything worked. I started happily swiping away on busses and trains for several weeks.</p>

<h2>Moving to the city</h2>

<p>This is where it all went wrong. Quynh (my girlfriend) and I intended to move into our new SF apartment by August 1st, but didn&#8217;t quite get the time until the 3rd due to iPhoneDevCamp. No worries I thought, I&#8217;ll just buy the TransLink monthly pass that day. It shouldn&#8217;t take long since my bank account info&#8217;s already verified when I setup the e-cash autoload. I go back to the trusty website, and &#8220;autoload&#8221; the SF MUNI monthly pass. Strangely, it re-asks for my bank account info. Not sure why it can&#8217;t use my existing info, but no matter it&#8217;s a few simple steps. This was August 3rd. I know ACH (direct bank to bank routing) takes a little bit longer to verify than credit/debit cards but I prefer to use it for services I want to support. They receive a larger percentage of the transfer since there are no credit card companies in between taking usually between 2-3%. I checked the status of the transfers on my bank&#8217;s website and noticed they both completed on August 6th. Thinking our transit pass would activate &#8220;any day now,&#8221; Quynh and I proceed to use the passes like crazy. Sadly, day after day goes by and each time we get dinged $2 per use. By Monday August 10th, 4 whole days after the money&#8217;s been taken out of our accounts, I decided enough&#8217;s enough.</p>

<p>At this point, I finally break down and call TransLink&#8217;s customer support. The first thing I&#8217;m presented with is a request for my account number. This is one of those things I find absurd, as should everybody. I don&#8217;t spend all day memorizing 10 digit account numbers, nor should I have to keep them readily accessible. <strong>I am not a number</strong>. If you need personably identifiable information ask for something I can recite off hand, like I don&#8217;t know: my name, or my phone number. Asking for a number I&#8217;m very likely to not know is a waste of my time and yours.</p>

<p>Eventually I get an actual human on the line, and my (summarized) conversation proceeds as follows:</p>

<p><strong>Me:</strong> I setup my TransLink SF MUNI monthly pass nearly a week ago, but am still being charged each use.<br/>
<strong>CSR:</strong> According to our systems, you setup autoload using your bank information. This can take <strong>5-10 business days</strong>.<br/>
<strong>Me:</strong> Did you think it would be prudent to even allow the purchase of a monthly pass online if it would take nearly half of the month to activate? Will I even be refunded any of the charges between now (August 10th) and the 6th, when you finalized the bank transfer?<br/>
<strong>CSR:</strong> Sorry, we say on the website it will take that long to activate. Additionally, we cannot refund any of the charges.<br/>
<strong>Me:</strong> So you have the money from my bank, you&#8217;ve verified my bank info already when I setup the e-cash autoload, but you can&#8217;t instantly activate my monthly pass now and won&#8217;t refund the charges between now and the time when the bank transfer completed?<br/>
<strong>CSR:</strong> Sorry, we cannot. Our systems aren&#8217;t setup to support that.<br/>
<strong>Me:</strong> So you&#8217;re telling me I bought a monthly pass that&#8217;s only good for half of the month, and there&#8217;s nothing you can do?<br/>
<strong>CSR:</strong> Well, you can instantly activate a monthly pass by visiting a TransLink &#8220;Add Value Machine&#8221; (AVM) in the subway stations, or at a Walgreens. We could then move the monthly passes you&#8217;ve already purchased to the next month.<br/>
<strong>Me:</strong> You can&#8217;t take my credit card information over the phone?<br/>
<strong>CSR:</strong> We can, but it will take 24-48 hours to approve the credit card transaction, and another 24 hours after that is complete the monthly pass will be activate.<br/>
<strong>Me:</strong> So you&#8217;re telling me I can&#8217;t instantly add anything from the phone or website, but I can instantly do it only in person?<br/>
<strong>CSR:</strong> Basically, yes.<br/>
<strong>Me:</strong> I guess I&#8217;ve little choice, unless I want to continue paying $4-10 dollars a day in charges (between Quynh and I&#8217;s account) while I wait another 4-5 days for the pass to activate if let you re-verify my bank info.<br/>
<strong>CSR:</strong> I need to confirm with finance that we can push your monthly passes to next month that you&#8217;ve already autoloaded using bank info. I&#8217;ll call you back today to confirm it will go through.<br/></p>

<p>This whole conversation stretches out for nearly 30 minutes. But, the fun continues.</p>

<h2>The wild goose chase</h2>

<p>Our first thought is to go to Walgreens. I had to stop by anyways, why not get my TransLink activated while I&#8217;m there. So, I go to the checkout counter (where the service rep from my prior phone call told me to go) and inquire about a TransLink MUNI monthly pass. I&#8217;m greeted with a rather dumbfounded look, saying all we can do is add cash to a card but no luck on the monthly pass. Who&#8217;s misinformed here? More on this, later. Let&#8217;s try the Add Value Machines in the subway, a mere block away. At least these remove the human factor.  Here&#8217;s my &#8220;experience&#8221; with the AVMs:</p>

<ol>
<li>Insert TransLink card</li>
<li>Find the correct menu option to add a monthly muni pass</li>
<li>Eventually get to the &#8220;checkout&#8221; phase</li>
<li>Remove the TransLink card</li>
<li>Enter the credit card</li>
<li>Remove the credit card</li>
<li>Re-enter the TransLink card</li>
<li>Wait (literally) 30 seconds while the machine performs a dialup credit card transaction over what appears to be molasses in the winter</li>
<li>Receive a completely undescriptive error message about how my card was declined, at which point I&#8217;m dropped back to a welcome screen.</li>
</ol>

<p>Um, okay. My credit card&#8217;s usually pretty reliable, but being an American Express card I&#8217;m used to 50% of people not taking it because they&#8217;re too cheap to eat the extra 1% in fees. Now here&#8217;s the bad part: this machine doesn&#8217;t take Amex which is fine and common but it provided me no feedback of that. It just simply declined me, not really bothering to check that the first two digits of my card began with either a 37 or 34 (and yes, it really is that easy to determine if an arbitrary credit card happens to be Amex). Now, repeat the whole process again but this time with my Visa debit card and all is well. <strong>Something finally goes right</strong>. A major victory. Now, on to Quynh&#8217;s TransLink card! Should be just as easy right? Would be, except entering her card into the AVM gives me an ambiguous at best error: Could not read your card, please contact TransLink customer service. This one&#8217;s a head scratcher too. Her card&#8217;s been working with <strong>no problems</strong> for the past few weeks! Hoping it&#8217;s an issue with just this machine, we proceed to try every AVM in the Powell &amp; Market station at least hoping for a different answer. Four machines later, no luck. Not much left to do other than call TransLink and hope for the best.</p>

<p>This part of the conversation occurs several hours afterwards, nearing the time when I&#8217;m sure most customer service departments close for the day. Still no phone call confirming our monthly passes will be moved to next month, but no matter I&#8217;ll inquire about that during my phone call. The new CSR tells me she can find no record of that on my account (good job first CSR) and that there&#8217;s nothing she can do to identify who the previous CSR was. Great software these guys have. Though it seems capable of nothing other than taking money - very slowly at that.  Rather than dwell on that, I get to the matter at hand. We have a card that <strong>strangely</strong> has the ability to swipe on busses and trains, but doesn&#8217;t work at an AVM. She asks me for the error message and I give her my best recollection of it. Apparently, without the exact error message she claims there&#8217;s nothing she can do. I&#8217;m sorry I don&#8217;t remember word-for-word the exact error message I saw a few hours ago, but I should have known in advance your software systems could only accept perfection. The new CSR re-suggests Walgreens, to which I reply we tried that as well. She confirms that Walgreens <strong>can</strong> add a monthly pass, and that in fact I should ask for a manager at the photo booth and not a cashier. Ugh (see above, about the cashier claiming this isn&#8217;t possible).  Who&#8217;s to blame, the original CSR who gave me misinformation or the cashier who doesn&#8217;t know what services they even offer? At this point I don&#8217;t really care. Handling one task at a time, I finally make my way to the same Walgreens. This time, talking to someone who actually knows what their doing.</p>

<p>The manager comes out of the ether and begins ringing me up. We swipe my card (Amex, I love how Walgreens will take it but not AVMs) and she charges me the $55. Great, it must have worked. Except, it didn&#8217;t. I wish I recalled precisely what the manager told me, but to the best of my recollection she claims that they can&#8217;t do anymore TransLink transactions because this store&#8217;s &#8220;reached the limit for the day.&#8221; What the hell does that even mean? This can&#8217;t be Walgreen&#8217;s fault, they just take money. Something&#8217;s failing in between Walgreens and TransLink. Oh well, now we go through the refund process. Remember, she took my money first. Eventually she tells me I can go down the block to the next Walgreens and try there instead. I walk a block down and go inside and eventually track down the manager (rinse, repeat). Except, this Walgreens doesn&#8217;t do TransLink. Great, so only some Walgreens can actually do TransLink transactions. One more block, and I make to a Walgreens I&#8217;ve confirmed can do TransLink. The manager first attempts to read my TransLink card in what I can only describe is some sort of mobile terminal. I&#8217;m glad he didn&#8217;t ring me up first, because we didn&#8217;t get much further than that. His handy TransLink card scanner simply informs us that &#8220;Error 42&#8221; has occurred, and I&#8217;m basically out of luck. I try one last time to call customer service, but I&#8217;m greeted with nothing but an automated phone system that when attempting to press 0 to get to customer service just hangs up on me. No message to call back during work hours (whatever they are), just a disconnect. A fitting end to a day of frustration.</p>

<h2>The next day</h2>

<p>Well we&#8217;re one for two. At least my multi-hour triathlon of customer-service-hurdle got us somewhere. In my last and hopefully final TransLink call we finally get back to the subject of yesterday&#8217;s attempt to move the extra monthly pass to next month. Thankfully this goes without a hitch, but the end of this phone calls leaves me doubting my entire experience even more. I describe most of yesterday&#8217;s ordeal, and finally get the word that they&#8217;ll attempt to replace Quynh&#8217;s defective TransLink card. Great! Except it comes with a catch. They won&#8217;t cross-mail me a new card, they&#8217;ll only let me send in the old card and <strong>only after testing it</strong> will they send me back a new card free of charge should they find a problem. Mind you, these things aren&#8217;t free. They&#8217;re not expensive either at $5, but it&#8217;s the principal of <strong>not paying for someone else&#8217;s mistake</strong>. My option is either wait a week or maybe even more to send them the defective card and get a new one back, in which the entire time I&#8217;d have to pay for MUNI out of pocket, or to buy a new card while I send them the defective one back. Hell, they won&#8217;t even compensate me for the $5 I&#8217;d have to spend to buy a new card should they find the one I sent them is defective. I refuse to spend <strong>my money</strong> to fix their problem. But apparently, that&#8217;s the best they can do.</p>

<p>And that&#8217;s TransLink for you. The organization seems to fail on every single level. The cards and the AVMs don&#8217;t work. The customer service department can&#8217;t refund mistakes, and has barely functional systems. The managers won&#8217;t approve account corrections. No one knows how the system works. I don&#8217;t know what&#8217;s going on there, but it&#8217;s a long ways off before anyone should consider relying on TransLink alone because the moment you need help you&#8217;re in for a bag of hurt.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.otierney.net/articles/2009/08/11/translink-isnt-ready/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Politics 08</title>
		<link>http://www.otierney.net/articles/2008/11/06/politics-08/</link>
		<comments>http://www.otierney.net/articles/2008/11/06/politics-08/#comments</comments>
		<pubDate>Thu, 06 Nov 2008 21:25:53 +0000</pubDate>
		<dc:creator>tristan</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[election]]></category>
		<category><![CDATA[obama]]></category>
		<category><![CDATA[obama08]]></category>
		<category><![CDATA[politics]]></category>
		<category><![CDATA[president]]></category>

		<guid isPermaLink="false">http://www.otierney.net/?p=343</guid>
		<description><![CDATA[This election was a markedly different one for me.  I&#8217;ve been able to vote in two presidential elections now, this being my second.  My disdain for the Bush administration stretches as far back as the infamous &#8220;hanging chad&#8221; incident in Florida that cost Gore the 2000 election, so it&#8217;s no surprise I voted [...]]]></description>
			<content:encoded><![CDATA[<p>This election was a markedly different one for me.  I&#8217;ve been able to vote in two presidential elections now, this being my second.  My disdain for the Bush administration stretches as far back as the infamous &#8220;hanging chad&#8221; incident in Florida that cost Gore the 2000 election, so it&#8217;s no surprise I voted for Kerry despite my rather indifference to him.  I didn&#8217;t really volunteer any money or time to the campaign, and if someone had asked me to I&#8217;d likely say &#8220;nah.&#8221;  This time though, I donated several times.  It certainly helped that Obama&#8217;s donation process was very simple and straight forward.  It also prided me greatly that Obama was <strong>not</strong> accepting donations from special interests at all, and only from individual Americans (of which the cap is a reasonable $2500 or so per person).  This was the most honest, and honorable campaign I&#8217;ve ever seen.  That this man was able win on merit alone, and not on disgusting political maneuvering like attack ads and pointlessly concocted scandals warms the cockles of my heart.
<br /><br />
Not only did I donate my money, but my time writing Obama &#8216;08.app.  I can&#8217;t thank everyone enough who was responsible for making it a reality.  We worked tirelessly on an impossible deadline for an application that would have a 30 day shelf life.  We did it though because this app going to go into the history books.  I&#8217;m not trying to toot my own horn, there&#8217;s good reason for it.  It marks the first time in a Presidential campaign that using the internet and technology effectively was necessary to win the election.  Obama is the Kennedy of our generation, in terms of using the latest communication channels to reach the growing youth vote.  Traditionally the internet, despite being around since the 1996 election, hadn&#8217;t been used a primary means of communication because the majority demographic of the average voter just wasn&#8217;t computer literate enough to find the latest candidate speech on YouTube (or wouldn&#8217;t necessarily think to).  Hard to do it when YouTube didn&#8217;t even exist until recently, as well.  Without the internet to motivate the young voters, who were undoubtably Obama&#8217;s most active volunteer group, he never would have been able to get such massive turnout numbers for this election.  The iPhone app we made was a first, and with nearly 39,000 phone calls and 10,000 active callers it won&#8217;t be the last.  I can already envision an army of get-out-the-vote volunteers canvassing neighborhoods and providing realtime information back to the campaign headquarters database.  This will come in &#8216;12.
<br /><br />
Why is a more streamlined canvassing system actually important? Let me give you a brief journal of my experience in Nevada on November 3rd, and 4th.  I was part of the Drive for Change Obama volunteering effort to get out the vote in Nevada, a swing state right next to California.  I&#8217;m often pessimistic &#8212; while I hope for the best, I do often assume the worst.  How could a few volunteers make a difference? The truth is it&#8217;s all in the numbers.  While one or two can&#8217;t, if everyone felt that way we&#8217;d never have gotten such a large brigade of supporters canvassing the neighborhoods of Las Vegas county.  The other side of this equation is that sadly, only 64% of registered voters turned out to vote in this historic election.  Despite that, it was the highest voter turnout in nearly <strong>100 years</strong>.  It turns out that the most difficult thing about getting a candidate elected isn&#8217;t getting the voters on your side, it&#8217;s just getting them to the polls!  Without an army of efficient canvassers to knock on every door and get them out of their houses and to the polls, there&#8217;s simply no way we could have pulled off the crushing victory in Nevada we achieved.  I truly believe this now, and I&#8217;m ecstatic to think of what we&#8217;ll do next election with a technologically superior canvassing system using an iPhone that knows where you are (CoreLocation FTW) and push notifications from HQ to command an army of mobile volunteers that can be redeployed in neighborhoods instantly.
<br /><br />
Why all this hub-bub though?  Why is all of my time, passion, and money worth it for this one man? The truth is Obama will not, and cannot, fix all the problems in this country. The power of a president is his ability to not only make good decisions, but to build a team of people who can carry out his vision.  Without respect, a leader is powerless.  If no one believes in you, how can they follow you?  Obama&#8217;s proved he can be respected as a leader.  This is <strong>true</strong> political capital that he&#8217;ll be able to cash in with the best and brightest administration this country&#8217;s seen in 100 years.  And we need it, because trying the same thing over and over while expecting different results is the mark of insanity.  This is why I voted for Obama, and why I believe this is a major inflection point for our country.  Here&#8217;s hoping. Here&#8217;s hoping the next 8 years will be filled with optimism that we will start fixing a lot of the problems that are effecting our country and our world.  Here&#8217;s hoping that the collectivism of the most inclusive leader we&#8217;ve seen can bring everyone together to achieve it.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.otierney.net/articles/2008/11/06/politics-08/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>AppStore Rejection Fears</title>
		<link>http://www.otierney.net/articles/2008/09/23/appstore-rejection-fears/</link>
		<comments>http://www.otierney.net/articles/2008/09/23/appstore-rejection-fears/#comments</comments>
		<pubDate>Wed, 24 Sep 2008 07:25:58 +0000</pubDate>
		<dc:creator>tristan</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[apple]]></category>
		<category><![CDATA[appstore]]></category>
		<category><![CDATA[fuckingnda]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[sdk]]></category>

		<guid isPermaLink="false">http://www.otierney.net/?p=342</guid>
		<description><![CDATA[For awhile this was a post I didn&#8217;t want to write out of fear.  Fear because of people like Craig Hockenberry who&#8217;ve received nasty-grams from Apple for crossing the *******NDA line.  Fear from my experience at working at Apple, and knowing what speaking out against them can do for you in the long [...]]]></description>
			<content:encoded><![CDATA[<p>For awhile this was a post I didn&#8217;t want to write out of fear.  Fear because of people like <a href="http://furbo.org/">Craig Hockenberry</a> who&#8217;ve received nasty-grams from Apple for crossing the *******NDA line.  Fear from my experience at working at Apple, and knowing what speaking out against them can do for you in the long run.  However, I feel ethics are my foundation.  If I don&#8217;t stand up for what I believe in, how can I respect myself? <br/><br/>My position on the AppStore rejections was simple: What Apple&#8217;s doing isn&#8217;t the greatest, but like almost always don&#8217;t attribute to malice what is more likely explained by ignorance.  Apple is a hectic place, I know, I&#8217;ve worked there.  More often than not, your favorite missing feature or most annoying bug is not some ulterior motive to kill babies and kick puppies.  They probably just didn&#8217;t get the time.  So, when I saw what was going on with these rejections I figured the reason was simple: The perfect policy hadn&#8217;t been put in place yet.   Not because Apple&#8217;s &#8220;Evil&#8221; but because they just hadn&#8217;t formally established criteria for inclusion into the store well enough yet.<br/><br/>That was until <a href="http://www.macrumors.com/2008/09/23/apple-extends-non-disclosure-to-app-store-rejection-letters/">rejection letters became NDA</a>.  To call this action anything less than the exact opposite of a benevolent response would be an understatement.  This is at the point that I expect a response from the Steve himself relatively shortly on all the bad publicity it&#8217;s generating.  Now mind you, I&#8217;m not writing this as an attack on a company I hate, but out of love for a company I feel so utterly passionate for that I can&#8217;t stand by and let it ruin the opportunity to change humanity forever over what I ultimately feel is just a lack of formal policy.<br/><br/>The simple truth is the current policy cannot stand, and we (third party devs) await a response as soon as possible.  We know how hectic it can be there,  but we can&#8217;t wait forever.  To all my friends at Apple: we know you&#8217;re probably annoyed by all this nagging.  We just want things to change for the better, and we think you agree too.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.otierney.net/articles/2008/09/23/appstore-rejection-fears/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Post Tapulous</title>
		<link>http://www.otierney.net/articles/2008/09/18/post-tapulous/</link>
		<comments>http://www.otierney.net/articles/2008/09/18/post-tapulous/#comments</comments>
		<pubDate>Thu, 18 Sep 2008 19:30:06 +0000</pubDate>
		<dc:creator>tristan</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[mike lee]]></category>
		<category><![CDATA[tapulous]]></category>
		<category><![CDATA[techcrunch]]></category>
		<category><![CDATA[united lemur]]></category>

		<guid isPermaLink="false">http://www.otierney.net/?p=341</guid>
		<description><![CDATA[It&#8217;s unfortunate I don&#8217;t have the time to blog more regularly, call it workaholic syndrome if you will.  This Monday was my last day at Tapulous, and I wish them the best of luck.  I came to the company because I shared a similar passion with Mike Lee, that quality matters and that [...]]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s unfortunate I don&#8217;t have the time to blog more regularly, call it workaholic syndrome if you will.  This Monday was my last day at Tapulous, and I wish them the best of luck.  I came to the company because I shared a similar passion with <a href="http://www.atomicwang.org/motherfucker/">Mike Lee</a>, that quality matters and that writing beautiful software really can change the world.  In the end, <a href="http://www.techcrunch.com/2008/08/26/tapulous-cofounder-mike-lee-ejected-from-company/">Mike and Tapulous</a> couldn&#8217;t see eye to eye and the leadership that Mike brought to this platform-specific company I feel is no longer there.</p>

<p>This leads me to what&#8217;s next: <a href="http://www.atomicwang.org/motherfucker/Index/34980A4E-090E-4C45-8E73-CD711996848B.html">United Lemur</a>.  For the time being, I&#8217;m working on an amazing project (that also happens to be very secret) and I hope to tell you more about that when the time comes.  Until then, look forward to Mike&#8217;s announcement on October 9th.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.otierney.net/articles/2008/09/18/post-tapulous/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Tapulous + Twinkle</title>
		<link>http://www.otierney.net/articles/2008/07/19/tapulous-twinkle/</link>
		<comments>http://www.otierney.net/articles/2008/07/19/tapulous-twinkle/#comments</comments>
		<pubDate>Sat, 19 Jul 2008 19:29:10 +0000</pubDate>
		<dc:creator>tristan</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[server]]></category>
		<category><![CDATA[tapulous]]></category>
		<category><![CDATA[twinkle]]></category>

		<guid isPermaLink="false">http://www.otierney.net/?p=338</guid>
		<description><![CDATA[It&#8217;s been a long while since I last updated my blog, but for good reason.  I&#8217;ve been hard at work on the next generation of software, also known as iPhone.  My first project that I get to show all of you is Twinkle, available on the app store.  The launch has been [...]]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s been a long while since I last updated my blog, but for good reason.  I&#8217;ve been hard at work on the next generation of software, also known as iPhone.  My first project that I get to show all of you is Twinkle, available on the <a href="http://tinyurl.com/gettwinkle">app store</a>.  The launch has been delayed for awhile, but it has gone pretty well overall.  We have an amazing amount of users for only 2 or 3 days of being available, but the ride isn&#8217;t quite over yet.  There are some hiccups, a few in particular, so I&#8217;d like to talk about them.</p>

<blockquote>Why do you need a Tapulous account to use Twinkle, and what exactly is it.?</blockquote>

<p>Well, the reason is we&#8217;re building a network, and using Twitter as the first of many gateways.  Many people have heard of or know this concept as &#8220;friendfeed.&#8221;  We&#8217;re shooting for nothing less, and are planning for the future by supporting multiple accounts.  We want to do certain things that friendfeed isn&#8217;t capable of, like hosting pictures for our Twinkle Shots, or embedding location information into tweets like we do for our Nearby tab.  Neither of these features would be possible or anywhere near as seamless had we not made the decision to build our own network, with Twitter as the first service.</p>

<p>What we <strong>don&#8217;t</strong> want to do however is pick favorites.  This means that even if some other service (if one exists) supported image attachments AND locationing, it still doesn&#8217;t have the number and activity of users from Twitter.  So, we went where the users are with Twitter as our first network.</p>

<p>What many people want is just a Twitter client, and I&#8217;m sorry to say as a basic design decision, that&#8217;s just not what Twinkle is or is meant to be.  You&#8217;re welcome to use it as a dedicated Twitter client and we&#8217;re trying really hard to make it a first class client for nothing but.  We aren&#8217;t there yet, and I&#8217;m happy to see all the suggestions and feedback pour in.  I&#8217;d like to address a rather common one which is: Why can&#8217;t you disable the Tapulous &#8220;stuff&#8221;?  Well, we didn&#8217;t get time to do that!  It&#8217;s definitely a popular request, and we need to consider how that will impact the application for one very important reason: Twinkle&#8217;s Nearby view depends on Tapulous network integration.  If everyone just decided to turn off the &#8220;Tapulous account&#8221; features, no one would see a thing in Nearby!  I think what a better solution might be is to simply have all twitter information (avatars, user names, pretty names, etc) take priority over the Tapulous network information, should you choose to do so.  We believe this is an ideal solution but one that takes time unfortunately.  Consider now we&#8217;ve heard everyone&#8217;s complaints, and we will address them in due time.</p>

<blockquote>What do you do with my messages after you send them? Are they on your servers too?</blockquote> 

<p>The answer is yes, they are.  In order to host nearby messages, and for features like our automatic tweet queuing while Twitter is down, we need to store your messages on our server too.  The caveat to this is we need to support Twitter&#8217;s private profiles, which we do not yet.  This is a known and unfortunately overlooked issue.</p>

<blockquote>What about feature X, Y, Z?</blockquote>

<p>We&#8217;ve taken a look at the most requested features, and we&#8217;ve already planned on implementing of few of them.  <strong>Built in web browser</strong>.  This one&#8217;s a highly requested, and particularly useful feature on a mobile app where bouncing between two applications is a painful process.  <strong>Clickable @replies</strong>.  This feature was actually in the client for awhile, but just didn&#8217;t make the cut due to time so we had to take it out. <strong>The notification sounds are too jarring/loud</strong>.  This was a large complaint, which we&#8217;ll remedy.  </p>

<p>Not all of this may make it into the next release, but this is just a few of the things we&#8217;re working on.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.otierney.net/articles/2008/07/19/tapulous-twinkle/feed/</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
		<item>
		<title>Missing Objective-C 2.0 Feature(s)</title>
		<link>http://www.otierney.net/articles/2008/05/13/missing-objective-c-20-features/</link>
		<comments>http://www.otierney.net/articles/2008/05/13/missing-objective-c-20-features/#comments</comments>
		<pubDate>Wed, 14 May 2008 06:21:32 +0000</pubDate>
		<dc:creator>tristan</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[cocoa]]></category>
		<category><![CDATA[mac]]></category>
		<category><![CDATA[objc]]></category>
		<category><![CDATA[objc2]]></category>
		<category><![CDATA[objective-c]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://www.otierney.net/?p=336</guid>
		<description><![CDATA[This post was inspired by a recent twitter that I thought I might elaborate on a bit more.  One of the nice new features of Objective-C 2.0 is dot-syntax for read/write proprerties.  For example:



Person *person = [[Person alloc] init];
person.mobileNumber = @"1-555-123-1234";


This is uber nifty, and can save you a load of time and [...]]]></description>
			<content:encoded><![CDATA[<p>This post was inspired by a recent <a href="http://twitter.com/omnivector/statuses/810821171">twitter</a> that I thought I might elaborate on a bit more.  One of the nice new features of Objective-C 2.0 is dot-syntax for read/write proprerties.  For example:
<br/></p>

<pre class="code">
Person *person = [[Person alloc] init];
person.mobileNumber = @"1-555-123-1234";
</pre>

<p>This is uber nifty, and can save you a load of time and redundant code.  However it&#8217;s often the case that I want to hide access to certain private member variables, but still expose accessors/mutators to attributes on those private variables.  Let&#8217;s say mobileNumber is actually an accessor/mutator on a sub-object, let&#8217;s call it <em>PhoneBook</em>.  Under the hood, this is implemented like so:
<br/></p>

<pre class="code">
@interface Person {
    PhoneBook *phoneBook;
}

@property (nonatomic, rertain) NSString *mobileNumber;
@end

@implementation Person
- (void)setMobileNumber:(NSString *)number {
    phoneBook.mobileNumber = number;
}

- (NSString *)mobileNumber {
    return phoneBook.mobileNumber;
}
@end
</pre>

<p>This seems far from ideal, when really I just want to pass through the implementation of this accessor/mutator to one of my instance variables.  A more clean and hypothetical implementation could look like this:
<br/></p>

<pre class="code">
@interface Person {
    PhoneBook *phoneBook;
}

@property (nonatomic, retain) NSString *mobileNumber;
@end

@implementation Person
@synthesize mobileNumber=phoneNumber.mobileNumber;
@end
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.otierney.net/articles/2008/05/13/missing-objective-c-20-features/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Flickr Video</title>
		<link>http://www.otierney.net/articles/2008/04/09/flickr-video/</link>
		<comments>http://www.otierney.net/articles/2008/04/09/flickr-video/#comments</comments>
		<pubDate>Wed, 09 Apr 2008 17:16:07 +0000</pubDate>
		<dc:creator>tristan</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[donate]]></category>
		<category><![CDATA[flickr]]></category>
		<category><![CDATA[flickrbooth]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[video]]></category>
		<category><![CDATA[youtube]]></category>

		<guid isPermaLink="false">http://www.otierney.net/?p=335</guid>
		<description><![CDATA[Well, something I had suspected and maybe secretly known for awhile was in the works landed yesterday! Flickr Video!  This is a natural feature addition to FlickrBooth that I&#8217;ll eventually be supporting.  I don&#8217;t have much time these days and lets face it, FlickrBooth being free isn&#8217;t much of a cashcow.  Is [...]]]></description>
			<content:encoded><![CDATA[<p>Well, something I had suspected and maybe secretly known for awhile was in the works landed yesterday! <a href="http://blog.flickr.net/en/2008/04/08/video-on-flickr/">Flickr Video</a>!  This is a natural feature addition to FlickrBooth that I&#8217;ll eventually be supporting.  I don&#8217;t have much time these days and lets face it, FlickrBooth being free isn&#8217;t much of a cashcow.  Is this feature something people really want?  Put your money where your mouth is and donate!  I&#8217;m not saying I won&#8217;t do this without donations or that I&#8217;m holding my FlickrBooth users hostage, but I certainly up the priority of work based on the interest of my users.  I&#8217;d be interested to hear what sort of feature(s) surrounding the new addition you guys would like.  Should uploading videos allow going to YouTube and Flickr at the same time? What if the video is over 90 seconds, should I clip at 90 seconds or split it into X number of videos? (The latter might actually be pretty tricky&#8230;).  As an aside, I&#8217;ve also tossed around the idea of FlickrBooth for the iPhone, especially with some <a href="http://www.pcworld.com/printable/article/id,143058/printable.html">big names</a> asking for it.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.otierney.net/articles/2008/04/09/flickr-video/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Photo Booth + YouTube Together At Last</title>
		<link>http://www.otierney.net/articles/2008/03/28/photo-booth-youtube-together-at-last/</link>
		<comments>http://www.otierney.net/articles/2008/03/28/photo-booth-youtube-together-at-last/#comments</comments>
		<pubDate>Sat, 29 Mar 2008 07:25:03 +0000</pubDate>
		<dc:creator>tristan</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[flickr]]></category>
		<category><![CDATA[flickrbooth]]></category>
		<category><![CDATA[objectiveyoutube]]></category>
		<category><![CDATA[video]]></category>
		<category><![CDATA[youtube]]></category>

		<guid isPermaLink="false">http://www.otierney.net/articles/2008/03/28/photo-booth-youtube-together-at-last/</guid>
		<description><![CDATA[Hot on the heels of my recent ObjectiveYouTube release, I bring you two for one! ObjectiveYouTube 0.2 for developers and FlickrBooth 2.0 for users.  As you can probably guess, the big new feature for this release is YouTube uploading of videos.  YouTube videos are big, and take awhile to upload? No problem! I&#8217;ve [...]]]></description>
			<content:encoded><![CDATA[<p>Hot on the heels of my recent ObjectiveYouTube release, I bring you two for one! ObjectiveYouTube 0.2 for developers and FlickrBooth 2.0 for users.  As you can probably guess, the big new feature for this release is YouTube uploading of videos.  YouTube videos are big, and take awhile to upload? No problem! I&#8217;ve also added a handy little upload progress window to view the status of your YouTube uploads as well as the ability to cancel them should you change your mind <img src='http://www.otierney.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .  To top it all off, FlickrBooth now automatically checks for updates.  Head on over to <a href="/flickrbooth">the download page</a> and give it a spin.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.otierney.net/articles/2008/03/28/photo-booth-youtube-together-at-last/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
