<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">

  <title>MASON MARK (.COM)</title>
  <link href="http://masonmark.com/feed/" rel="self"/>
  <link href="http://masonmark.com/"/>
  <updated>2013-05-11T14:41:24+09:00</updated>
  <id>http://masonmark.com/</id>
  <author>
    <name>MASONMARK.COM</name>
    
  </author>

  
  <entry>
    <title>cloud backup sucks less now</title>
    <link href="http://masonmark.com/cloud-backup-sucks-less-now/"/>
    <published>2013-05-01T05:05:00+09:00</published>
    <updated>2013-05-01T05:05:00+09:00</updated>
    <id>http://masonmark.com/cloud-backup-sucks-less-now</id>
    <content type="html">&lt;p&gt;In the (very) boring world of backing up your computer(s), something genuinely cool happened recently: it finally became feasible to back up &lt;strong&gt;the whole computer&lt;/strong&gt; to the cloud. Feasible, at least, for people with a first-world income and a decent Internet connection. (&lt;strong&gt;Sorry&lt;/strong&gt;, bandwidth-challenged US residents! (Where by &lt;strong&gt;sorry&lt;/strong&gt;, I of course mean &lt;strong&gt;neener neener&lt;/strong&gt;.))&lt;/p&gt;

&lt;p&gt;Until the end of 2012, there were two problems with trying to back up all one's bits to the cloud:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;too fucking &lt;strong&gt;slow&lt;/strong&gt;, or:&lt;/li&gt;
&lt;li&gt;too fucking &lt;strong&gt;expensive&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;Happily, it is now 2013, and &lt;strong&gt;both of those problems have been ameliorated!&lt;/strong&gt;&lt;/p&gt;

&lt;!-- more --&gt;


&lt;p&gt;For several years, there have been cheap solutions that &lt;strong&gt;purport&lt;/strong&gt; to be able to back up your computer to the cloud: Mozy, Backblaze, CrashPlan, etc. But in &lt;strong&gt;my&lt;/strong&gt; real-world experience, &lt;strong&gt;none&lt;/strong&gt; of these are actually capable of backing up more than &lt;strong&gt;a few piddlebytes&lt;/strong&gt; of data. CrashPlan is said to be the best of the consumer-priced services, but the only time I ever used it in real life, it took &lt;strong&gt;more than a week&lt;/strong&gt; to restore a mere 60GB of files (and, it fucked up all my folder mod dates for good measure).&lt;/p&gt;

&lt;p&gt;It's &lt;strong&gt;debatable&lt;/strong&gt; whether the software 'worked' in that case. Let's be generous, and say I didn't need my data in a hurry and didn't care about restoring the metadata accurately, so it 'worked' for backing up a 60GB home dir. Still, there is &lt;strong&gt;no fucking way&lt;/strong&gt; you can say it 'works' when confronted with a whole computer's worth of data:&lt;/p&gt;

&lt;p&gt;&lt;img class='center ' src='http://masonmark.com/stuff/crashplan-fails.jpg' width='' height='' alt='' title=''&gt;&lt;/p&gt;

&lt;p&gt;If your backup has been running for weeks, and still has &lt;strong&gt;11.1 months remaining&lt;/strong&gt;, it is not going to be very helpful when one of your hard drives dies next month.&lt;/p&gt;

&lt;p&gt;The size of &lt;strong&gt;&quot;a computer's worth of data&quot;&lt;/strong&gt; depends, of course; my Mac Pro holds a lot more data than my notebook, which in turn has a lot more than my sister's iMac. But I'll use my creaky old Mac Pro at home as a guide:&lt;/p&gt;

&lt;p&gt;&lt;img class='center ' src='http://masonmark.com/stuff/mac-pro-disks-in-2013.jpg' width='' height='' alt='' title=''&gt;&lt;/p&gt;

&lt;p&gt;The &lt;strong&gt;pain&lt;/strong&gt; of the caveman backup systems of yesteryear is reflected in my drive/partition scheme. The whole point of the JUNK volume is to store shit that doesn't really need to be backed up: Internet downloads, pr0n, anything easily replaced. Then I have a (poorly-named) &lt;em&gt;BACKUP&lt;/em&gt; volume for OS X's built-in Time Machine snapshot system.&lt;/p&gt;

&lt;p&gt;So what really needs backing up? SSD and STUFF. Potentially &lt;strong&gt;3TB and change&lt;/strong&gt;, although STUFF is actually only using 1.12TB of data right now.&lt;/p&gt;

&lt;p&gt;Until recently, I've used the &lt;a href=&quot;http://masonmark.com/arq-good-mac-backup-app/&quot;&gt;previously raved about&lt;/a&gt; backup tool &lt;a href=&quot;http://www.haystacksoftware.com/arq/&quot;&gt;&lt;strong&gt;Arq&lt;/strong&gt;&lt;/a&gt;, to encrypt and back up my data to Amazon S3. Arq has a fairly efficient storage scheme, and it does a decent job of de-duplicating the data prior to transmission, so actual storage on S3 is substantially less than the actual amount of data being backed up: a month's worth of daily backups of my 1.12TB STUFF drive above actually uses &lt;strong&gt;836.5 GB&lt;/strong&gt; of storage in Amazon's cloud. (UPDATE: Oh oops, the actual size is 893 GB, so dedup is only saving 60GB. But still.)&lt;/p&gt;

&lt;p&gt;That's &lt;strong&gt;nice&lt;/strong&gt;, but still, 836.5 * $0.10/GB/month * 12 months ==  $1,004 per year to back up all this stuff. Maybe that would make sense if this computer was storing the &lt;strong&gt;irreplaceabe manuscript&lt;/strong&gt; for my &lt;strong&gt;three-hundred-million-page novel&lt;/strong&gt;. But what is actually stored on this Mac is mostly gigabytes of &lt;strong&gt;multi-angle video footage of me cooking&lt;/strong&gt;, and shit like that.&lt;/p&gt;

&lt;p&gt;&lt;img class='center ' src='http://masonmark.com/stuff/multi-angle-tonkatsu-frying.jpg' width='' height='' alt='' title=''&gt;&lt;/p&gt;

&lt;p&gt;&lt;img class='center ' src='http://masonmark.com/stuff/tonkatsu.jpg' width='' height='' alt='' title=''&gt;&lt;/p&gt;

&lt;p class=&quot;caption&quot;&gt;Mmm... とんかつ...&lt;/p&gt;


&lt;p&gt;So since that was &lt;strong&gt;too expensive&lt;/strong&gt;, I didn't do that. I just &lt;strong&gt;dealt with&lt;/strong&gt; having local backups and spent time &lt;strong&gt;futzing around&lt;/strong&gt; with them every once in a while, getting more hard disks, configuring rsync to clone my shit to a spare machine at work (which is technically off-site, but not off-site enough to withstand a Godzilla attack on Tokyo), then having to debug why rsync would sometimes fail, &lt;strong&gt;etc&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Then one magical day, &lt;strong&gt;all that shit was solved&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Amazon came out with &lt;a href=&quot;http://aws.amazon.com/glacier/&quot;&gt;&lt;strong&gt;Glacier&lt;/strong&gt;&lt;/a&gt;, their slow-by-design, long-term archival-oriented version of S3. &lt;a href=&quot;http://www.haystacksoftware.com/arq/&quot;&gt;Arq&lt;/a&gt;, naturally, released an update to support it.&lt;/p&gt;

&lt;p&gt;The end result is: &lt;strong&gt;now I just back up all my shit to the cloud. The end.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;img class='center ' src='http://masonmark.com/stuff/arq-glacier.jpg' width='' height='' alt='' title=''&gt;&lt;/p&gt;

&lt;p&gt;&lt;img class='center ' src='http://masonmark.com/stuff/glacier-arq-bill.jpg' width='' height='' alt='' title=''&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;$10.98&lt;/strong&gt;. That is the total AWS charge for the month of March 2013, to back up that &lt;strike&gt;1.12TB&lt;/strike&gt; terabyte-or-thereabouts. So, roughly &lt;strong&gt;$132 a year not to have to think about it&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Well worth it to me.&lt;/p&gt;

&lt;p&gt;以上&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Why iCloud can't ever be as good as Dropbox</title>
    <link href="http://masonmark.com/why-icloud-cant-ever-be-as-good-as-dropbox/"/>
    <published>2012-12-18T17:17:17+09:00</published>
    <updated>2012-12-18T17:17:17+09:00</updated>
    <id>http://masonmark.com/why-icloud-cant-ever-be-as-good-as-dropbox</id>
    <content type="html">&lt;p&gt;John Gruber has a &lt;a href=
&quot;http://daringfireball.net/linked/2012/12/17/dropbox-linchpin&quot;&gt;blurb on DF&lt;/a&gt; today about how Apple should buy Dropbox, in part because iCloud sucks major asshole and Dropbox is OK (to paraphrase).
&lt;/p&gt;

&lt;p&gt;That second bit, at least, is accurate, and even if iCloud is someday engineered to synchronize files more quickly, easily, and reliably than Dropbox, it will still always be fundamentally worse than Dropbox. That is because iCloud comes with an intrinsic show-stopping, shit-splattering, critical flaw: &lt;b&gt;vendor lock-in&lt;/b&gt;.
&lt;/p&gt;

&lt;p&gt;There are a lot of good things about Apple's integrated-hardware-and-software way of doing things. It is a key reason that they've consistently made the best PCs in the world for almost a decade now, and also the least-shitty overall smartphone OS yet developed. 
&lt;/p&gt;

&lt;p&gt;But, of course, this approach isn't optimal for every possible goal. Competing with a product[1]  like Dropbox is something that Apple is fundamentally disincentivized to do, and consequently sucks at (cf. every online service and every cross-platform app that Apple has ever produced).
&lt;/p&gt;

&lt;p&gt;Dropbox is awesome because -- even with some fairly glaring flaws (sporadically abysmal performance, data duplication/corruption on platforms that have symlinks) -- it provides this awesome cloud filesystem that works across all kinds of devices and platforms. I can create a document on my Dell XPS notebook running Ubuttnu 12.4, edit it on my toilet using my iPad, then later email it to somebody from my Nexus 7, incorporate their feedback while on the train with my iPhone, and then open it on my Mac Pro when I get to work. Oh, and if I had to boot Windows 8 for some reason, the document would be there, too. 
&lt;/p&gt;

&lt;p&gt;iCloud will &lt;b&gt;never&lt;/b&gt; work well on other platforms. I'd love to be proven wrong about that, but I'm not wrong, so I won't. Furthermore, iCloud doesn't even fully work on Apple's &lt;b&gt;own&lt;/b&gt; OS X platform -- it only works for apps that submit to the fairly onerous financial terms and severe technical limitations dictated by Apple's app store.
&lt;/p&gt;

&lt;p&gt;
Apple wants their awesome features to be available exclusively on their platforms, and exclusively on their terms. That innate characteristic of Apple completely prevents them from making certain kinds of awesome in the first place. Like the Dropbox kind.
&lt;/p&gt;

&lt;p&gt;There's nothing necessarily wrong with that; it's just the difference between a platform vendor wanting a feature, and a software vendor trying to reach a larger audience. But, for this kind of idea at least, one approach produces something a lot more useful and interesting than the other.
&lt;/p&gt;

&lt;p&gt;So if Apple were to buy Dropbox, that might help Apple, but it would be bad for the world, and a fucking disaster for Dropbox users. Gruber frets that Dropbox might get acquired by Google, Microsoft, Amazon, or Facebook. But as a daily Dropbox user, I'd be more concerned for its future if it were acquired by Apple than any of the first three of those companies[2]. Dropbox is the kind of product that Apple just wouldn't be able to restrain itself from fucking up.
&lt;/p&gt;

&lt;p&gt;-----
&lt;/p&gt;

&lt;p&gt;[1]: Steve Jobs was completely wrong (or perhaps more likely, lying) about Dropbox being a 'feature' instead of a product. It is exactly because it is not a feature of one device or OS that makes it really cool, and life-changing for a lot of people (like &lt;a href=&quot;http://warrenellis.tumblr.com/post/37219471014/god-only-knows-why-but-people-have-asked-for-this&quot;&gt;the guy Gruber is linking to&lt;/a&gt; in the piece above)&lt;/p&gt;

&lt;p&gt;[2]: Of course, if &lt;i&gt;Facebook&lt;/i&gt; bought Dropbox I would just cancel my account and switch to Google Drive or something.&lt;/p&gt;</content>
  </entry>
  
  <entry>
    <title>Version 2.0a1</title>
    <link href="http://masonmark.com/version-2-dot-0a1/"/>
    <published>2012-11-14T05:05:00+09:00</published>
    <updated>2012-11-14T05:05:00+09:00</updated>
    <id>http://masonmark.com/version-2-dot-0a1</id>
    <content type="html">&lt;p&gt;Although admittedly a dilettante when it comes to evolutionary algorithms, I've been poking around (ahem) in that area, and recently managed to produce a new release.&lt;/p&gt;

&lt;p&gt;&lt;img class='center ' src='http://masonmark.com/stuff/ax-2.0a1.jpg' width='' height='' alt='' title=''&gt;&lt;/p&gt;

&lt;p&gt;Strictly pre-alpha functionality at this point, but I expect the final 2.0 to be ready around Q3 2047.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>QRWTF</title>
    <link href="http://masonmark.com/qrwtf/"/>
    <published>2012-03-16T15:57:00+09:00</published>
    <updated>2012-03-16T15:57:00+09:00</updated>
    <id>http://masonmark.com/qrwtf</id>
    <content type="html">&lt;p&gt;So let's talk about the weird &lt;strong&gt;hating on QR codes&lt;/strong&gt; thing that's going on.&lt;/p&gt;

&lt;p&gt;As a former (and future(!) (just not this year (&lt;em&gt;sigh&lt;/em&gt;))) Mac software developer, I tend to end up on a lot of Mac-related websites when out traversing the tubes.&lt;/p&gt;

&lt;p&gt;Via these sites, I've gradually become aware me of a strange memetic condition that seems to be metastasizing to various organs of the macosphere: &lt;strong&gt;&quot;Dude, QR codes are like, lame-o robot barf, dude.&quot;&lt;/strong&gt; (I think the epidemiology of this outbreak of hateritus probably goes back to a mass googallergenic reaction to the QR code that was &lt;a href=&quot;http://www.nexusoneforum.net/forum/nexus-one-general-discussion/80-whats-qr-code-back-nexus-one.html&quot;&gt;printed&lt;/a&gt; on the back of the original Nexus One, but that's speculation.)&lt;/p&gt;

&lt;p&gt;At any rate, I was reminded of this while shirking some boring responsibilities and plowing through my RSS feeds earlier today. I came across this &lt;a href=&quot;http://inessential.com/2012/03/13/each_generation_is_doomed_to_reinvent_th&quot;&gt;opinion&lt;/a&gt; from Brent Simmons, on his &lt;a href=&quot;http://inessential.com/&quot;&gt;inessential&lt;/a&gt; blog:&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;Here’s the thing about the &lt;a href=&quot;http://en.wikipedia.org/wiki/CueCat&quot;&gt;CueCat&lt;/a&gt;: it wasn’t that the hardware sucked, it’s that people aren’t going to scan things to go to a web page&lt;/p&gt;&lt;p&gt;And yet now we have QR codes, which we’re laughing at, and which will disappear like an American Idol contestant.&lt;/p&gt;&lt;/blockquote&gt;


&lt;p&gt;I like Brent (everybody likes Brent), but I think he's wrong on this one. (And, judging from the hilarious &lt;a href=&quot;http://wtfqrcodes.com&quot;&gt;wtfqrcodes.com&lt;/a&gt;, perhaps &lt;strong&gt;America as a whole&lt;/strong&gt; is doing QR codes wrong.)&lt;/p&gt;

&lt;p&gt;I don't think QR codes are going away, nor would I want them to.&lt;/p&gt;

&lt;p&gt;Because here's the thing: &lt;strong&gt;QR codes are simple and great&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;img class='center ' src='http://masonmark.com/stuff/qr-code.png' width='' height='' alt='' title=''&gt;&lt;/p&gt;

&lt;p&gt;Originally for Toyota to track vehicles throughout the manufacturing process, they were popularized (in Japan, years ago) for the purpose of &lt;strong&gt;avoiding having to type shit into your phone on its dinky and shitty little keypad&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;And they've been working great for years and years, here in Japan; long before the iPhone existed -- before 'smartphone' was even a thing, really -- pretty much every phone in Japan could point its camera at a QR code and bookmark the URL. (Virtually always a URL, though QR codes can carry an arbitrary text payload.)&lt;/p&gt;

&lt;p&gt;So I'd say that it &lt;strong&gt;was&lt;/strong&gt; the CueCat hardware that sucked. Or rather, &lt;strong&gt;the concept of needing special hardware to scan URLs sucks&lt;/strong&gt;. But when it can be done easily with the one generic piece of hardware that everybody carries with them all the time, I think that a 2-second barcode scan beats fucking around with a dinky little keyboard hands down.&lt;/p&gt;

&lt;p&gt;Yes, yes, QR codes are for machines, not humans. But &lt;strong&gt;machines are for serving humans&lt;/strong&gt;. So I don't see an &lt;strong&gt;inherent&lt;/strong&gt; problem. Just like with karaoke, maybe Americans are discovering the QR code a decade late and aren't good at it. Plastering your promo -- or your clothing for fuck's sake -- with QR codes doesn't make you look like a hip high-tech  badass the way some seem to think it does. But blaming the harmless and useful QR code for that is like blaming the colors green and pink for &lt;a href=&quot;http://www.flickr.com/photos/crunchytoast/2565669763/&quot;&gt;this guy&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;img class='center ' src='http://masonmark.com/stuff/scan.app.jpg' width='320' height='480' alt='' title=''&gt;&lt;/p&gt;

&lt;p&gt;One of the quirky deficiencies of the iPhone is that it&lt;strike&gt;'s the only phone I know of (in Japan) that&lt;/strike&gt; doesn't grok QR codes out of the box. A plethora of QR code scanning apps are available for iOS (most of them insufferably shitty and ad-ridden, of course). The app I use is &lt;a href=&quot;http://scan.me/apps/scan/download/&quot;&gt;Scan&lt;/a&gt; -- mostly because I can easily remember its name, the three or four times per year that I actually want to bookmark a website that I see on an ad in the subway. But it's also fast&lt;sup&gt;[☠]&lt;/sup&gt;, simple, and fuckery-free -- much like the &lt;a href=&quot;http://en.wikipedia.org/wiki/QR_code&quot;&gt;Quick Response Code&lt;/a&gt; itself.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;UPDATE 2012-03-16: Horf tells me that many US or Korean Android phones sold in Japan also tend to make you install an app to get QR code scanning functionality.&lt;/em&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;[☠] So fast that it took me five tries to take that screen shot above, because the first four times by the time I could snap the shot, it had already recognized the code and moved on to the website.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>More Xcode4 Fuckery...</title>
    <link href="http://masonmark.com/more-xcode4-fuckery/"/>
    <published>2012-01-17T11:11:11+09:00</published>
    <updated>2012-01-17T11:11:11+09:00</updated>
    <id>http://masonmark.com/more-xcode4-fuckery</id>
    <content type="html">&lt;h6&gt;2012-01-17 after work:&lt;/b&gt; updated for ranty tone, petulance, spelling&lt;/h6&gt;

&lt;p&gt;&lt;em&gt;This post describes a bug in Xcode 4.2.1, and a way to work around it. If you find it useful (for debugging the source code of your IDE, say) please come to my house and clean the grout in my shower.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;This is not what a day's work should look like:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;http://masonmark.com/stuff/a_day_wasted.jpg&quot; alt=&quot;A day wasted.&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Today I enountered a [expletive] bug in Xcode, uncomfortably similar to the last serious&lt;sup&gt;①&lt;/sup&gt; &lt;a href=&quot;http://masonmark.com/the-xcode-fairy/&quot;&gt;Xcode bug that submitted me via rear naked choke&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;Executive summary:&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Xcode 4.2.1 (and I think maybe all 4.x versions so far released) will shit all over itself and become unable to edit .xib files, &lt;em&gt;if&lt;/em&gt; there is header file that exists somewhere in your source tree (even one not actually included in your project), that contains an unterminated comment in it.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The symptoms are that you add an outlet to a class in code (e.g. in a MyViewController.h), but the outlet does not appear in the UI editor. So you cannot connect the outlet to whatever view or entity it is supposed to point to. If you quit and re-launch Xcode it tends to fix the problem. But you will end up having to quit and re-launch Xcode every single time you add any outlet to anything.&lt;/p&gt;

&lt;p&gt;That's a workaround much like eating a piece of dogshit is a workaround for being hungry.&lt;/p&gt;

&lt;!-- more --&gt;


&lt;p&gt;You can look at the &lt;a href=&quot;https://github.com/masonmark/XcodeXibEditBugDemoApp&quot;&gt;bug reproduction demo project&lt;/a&gt; for an example.&lt;/p&gt;

&lt;p&gt;That's it. You can stop reading here. If you can't edit .xib files in Xcode4, look for a stray header in your source tree, and not in your project, that has an unterminated comment in it. Or maybe some other sort of fuckery going on with it.&lt;/p&gt;

&lt;p&gt;What follows are just my own posts on Apple's dev forum from today as I figured out what the fuck was going on with  this bug, for the benefit of present and future search automatons&lt;sup&gt;②&lt;/sup&gt;.&lt;/p&gt;

&lt;h3&gt;More Extended Blather&lt;/h3&gt;

&lt;p&gt;Last time, what made the bug heinous was how hard it was to debug and find out which esoteric implementation detail of my Xcode project was triggering the issue. I couldn't reproduce the issue in some of my projects, but could in several others.&lt;/p&gt;

&lt;p&gt;It turned out that some unknown thing Xcode does at &lt;em&gt;launch time&lt;/em&gt; determined whether or not the bug would occur during that launch. The &lt;em&gt;next&lt;/em&gt; time Xcode launched, it would again &lt;em&gt;randomly&lt;/em&gt; determine whether or not the bug would occur. So to test any change you made, and see if that change helped prevent the bug from occurring, you had to quit and relaunch Xcode &lt;em&gt;TEN MOTHERFUCKING TIMES&lt;/em&gt;. (And of course, by the time you figured this out, you would have already been fucking with it for some hours.)&lt;/p&gt;

&lt;p&gt;It thus took me several hours to figure out that we could easily work around that bug by making sure that the project name did not contain the name of any command line tool that the project built. (So if your project builds a tool called &quot;DiskEncrypter&quot;, you just have to make sure that the name of your project file is &quot;Disk_FUCKYOUXCODE_Encrypter&quot; or similar, and you're safe. Simple to work around; quite hard to find the workaround.)&lt;/p&gt;

&lt;p&gt;Today I met another Xcode bug that completely broke a key IDE feature: editing the .xib files that define the UI for modern Mac applications. Once again, the underlying trigger is simple; once you know what to look for, you can work around the bug easily. But if you don't know what to look for, figuring it out will cost you about a day.&lt;/p&gt;

&lt;p&gt;The main reason I write posts like this one is so that future people suffering from the same problem as me can just google the answer and save themselves the horror of wasting hours on pointless fuckery like I had to do. (And, obviously, to indulge in some cathartic ranting.)&lt;/p&gt;

&lt;p&gt;This time, I'm too tired to embellish the bug report with a gripping human drama about magical fairies, sexism, and recreational drug use, so below, I'm just going to paste the series of my own comments from the thread I started on Apples (lame, slow, closed, un-googleable, etc, sigh) developer forum.&lt;/p&gt;

&lt;p&gt;(Like most things Apple, that thread exists in a closed, walled garden that you may only access with Apple's permission and in ways they approve of: &lt;a href=&quot;https://devforums.apple.com/message/605066&quot;&gt;https://devforums.apple.com/message/605066&lt;/a&gt;)&lt;/p&gt;

&lt;h3&gt;How to manually force IB to reload a class definition&lt;/h3&gt;

&lt;p&gt;IB's automagic reloading of class files doesn't work, and it wastes a lot of my time. I hope there is a manual way.&lt;/p&gt;

&lt;p&gt;Suppose I have FooViewController as the owner of FooView.xib. I add an IBOutlet to FooViewController.h, but it doesn't show up in IB. IB's notion of the class is generally some previous version that does not reflect the current contents of the class header.&lt;/p&gt;

&lt;p&gt;This happens almost every day, and the only way I know to fix the situation is to quit and relaunch Xcode, which takes a long time. I often have to quit and relaunch Xcode each time I add any type of outlet to a view controller. This means quitting and relaunching Xcode dozens of times per day.&lt;/p&gt;

&lt;p&gt;Is there any trick to force IB to re-examine a class's header? I know it is supposed to work magically, but it doesn't (and has never worked reliably on any of my machines on any Xcode 4 release; I am using 4.2.1 currently).&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;I see this behavior even for new classes, with no cruft in the header.&lt;/p&gt;

&lt;p&gt;I notice, though, that if I select the File's Owner and then show the Connections inspector (View→Utilities→Show Connections Inspector), below the incorrect list of outlets in the &quot;Outlets&quot; section there is a small spinning progress indicator labeled &quot;Updating...&quot;. It spins forever... the updating never finishes, and the newly added outlets don't appear in the .xib editor until I quit and relaunch Xcode. So the spinner never gets done, for me.&lt;/p&gt;

&lt;p&gt;Sigh. Filed as bug #10698256.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks for the suggestion. That didn't actually solve, but it is a clue. And, although the bug hits seemingly at random, I've now managed to create a test project that seems to reliably trigger the bug within a minute or two of adding outlets to a .xib's File Owner object.&lt;/p&gt;

&lt;p&gt;After nuking the Derived Data dir manually, I notice that Xcode's car-dashboard display gets stuck saying something like &quot;Scanning Classes | Processed 151 of 1072 files&quot;. Once in this borked state, .xib editing no longer works. The exact number where it stops changes from launch to launch. A screen shot is below -- Xcode never gets past this stuck state. If I quit and relaunch, it will get stuck again at a different point, but the outlets added the previous launch will show up in the .xib editor.&lt;/p&gt;

&lt;p&gt;So it seems like you are suggesting that if Xcode cannot generate the project index -- or perhaps if Xcode corrupts the index -- the .xib editing features might stop working as I've described. And that seems to be corroborated by my experience.&lt;/p&gt;

&lt;p&gt;If so, for me the next step would be try to figure out why Xcode cannot index my project. I have no idea -- nothing strikes me as too unusual about it. But nib editing does work in a trivial project (the default Cocoa.app, adding outlets to the nib) and doesn't work (as described in my bug report) in any of my real projects. What's the difference? All my real projects:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strike&gt;use git submodules. So some of the code being indexed is in repo A, and some is in repo B which is a git submodule of A.&lt;/strike&gt; (I tested this theory by creating a non-version-controlled copy of the demo project; bug still hit.)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;use .xcconfig files, which inherit from a base .xcconfig file.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;??? (Any suggestions of things that might affect Xcode's indexing process would be very welcome.)&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;


&lt;p&gt;I guess I can also attach my bug demo project to the bug report, for ease of reproduction, though I'll have to get approval to share the source code with Apple.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;http://masonmark.com/stuff/xcode_busted.jpg&quot; alt=&quot;screenshot&quot;&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Searching the web, I find a &lt;a href=&quot;http://twitter.com/#!/stevestreeting/status/149899821942181888&quot;&gt;tweet&lt;/a&gt; from Steve Streeting (whose &lt;a href=&quot;http://www.stevestreeting.com/2011/10/09/on-being-acquired/&quot;&gt;fucking awesome work&lt;/a&gt; coincidentally happens to be showcased in the first screenshot in this blog post): &quot;I'll make you a deal Xcode: if you don't leap into 'Scanning Classes X of 1670 files' again today, I won't punch you in the face.&quot;&lt;/p&gt;

&lt;p&gt;Also, one solitary Stack Overflow &lt;a href=&quot;http://stackoverflow.com/questions/8681683/xcode-project-broken-freezes-while-scanning-classes&quot;&gt;post&lt;/a&gt;, wherein the author had the same problem (Xcode getting borked in the 'Scanning Classes' phase), and then answered his own question. The cause was a malformed header file that was choking Xcode. Unfortunately, he said he basically had to use trial and error to find the header file.&lt;/p&gt;

&lt;p&gt;So maybe there is a file or files in my source tree causing this problem. Probably a file used in most of my projects, that being the reason I tend to see this bug all the time in various projects.&lt;/p&gt;

&lt;p&gt;I checked what files Xcode has open right now, in its borked state, but unfortunately no clue there...&lt;/p&gt;

&lt;hr /&gt;

&lt;pre&gt;&lt;code&gt;1/17/12 11:33:11.169 AM Xcode: _AMDDeviceAttachedCallbackv3 (thread 0x104f9e000): Device 'AMDevice 0x400315900 {UDID = 0f00d513253e35c985daffd8f3663a1b1939dceb, device ID = 11, location ID = 0xfa410000, product ID = 0x129f}' attached.
1/17/12 11:33:12.210 AM Xcode: _AMDDeviceAttachedCallbackv3 (thread 0x109439000): Device 'AMDevice 0x40139ac20 {UDID = 0f00d513253e35c985daffd8f3663a1b1939dceb, device ID = 11, location ID = 0xfa410000, product ID = 0x129f}' attached.
1/17/12 11:33:12.275 AM Xcode: Unable to find either a loadable database or a Nodes.xml configuration file
1/17/12 11:33:12.277 AM Xcode: Error loading docSet file://localhost/Developer/Documentation/DocSets/com.apple.ADC_Reference_Library.DeveloperTools.docset/: Error Domain=com.apple.DADocSetAccess Code=12 &quot;Documentation set could not be read.&quot; UserInfo=0x4001db180 {NSLocalizedDescription=Documentation set could not be read., NSLocalizedFailureReason=Unable to find the database or 'Nodes.xml' configuration file.}
1/17/12 11:33:12.552 AM Xcode: _GCDSearchPthreadOnceRoutine (thread 0x109439000): Looked up GCD symbols, got addresses: 8e42f884, GCD_AVAILABLE is 1
1/17/12 11:33:12.665 AM Xcode: &amp;lt;DVTSplitView: 0x4019f9280&amp;gt;: the delegate &amp;lt;DVTSplitView: 0x4019f9280&amp;gt; was sent -splitView:resizeSubviewsWithOldSize: and left the subview frames in an inconsistent state:
1/17/12 11:33:12.665 AM Xcode: Split view bounds: {{0, 0}, {600, 325}}
1/17/12 11:33:12.665 AM Xcode:     Subview frame: {{0, 0}, {260, 500}}
1/17/12 11:33:12.665 AM Xcode:     Subview frame: {{261, 0}, {378, 500}}
1/17/12 11:33:12.665 AM Xcode:     Subview frame: {{640, 0}, {260, 500}}
1/17/12 11:33:12.665 AM Xcode: The outer edges of the subview frames are supposed to line up with the split view's bounds' edges. NSSplitView is working around the problem, perhaps at the cost of more redrawing. (This message is only logged once per NSSplitView.)
1/17/12 11:33:13.101 AM Xcode: The class 'IBLibraryObjectTemplate' overrides the method identifier.  This method is implemented by class 'NSView'
1/17/12 11:33:13.101 AM Xcode: The class 'IBLibraryObjectTemplate' overrides the method setIdentifier:.  This method is implemented by class 'NSView'
1/17/12 11:33:14.129 AM mds: (Error) Task: Can't init &amp;lt;MDSClient 0x7fbf94c09a50 shutdown:NO got shutdown notification:NO&amp;gt; -- too many objects for MDSTaskRegistry
1/17/12 11:33:14.130 AM Xcode: BUG in libdispatch: 11C74 - 1819 - 0x4
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;The above is what Xcode logs when opening the project and getting into its borked state.&lt;/p&gt;

&lt;p&gt;~~~&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Interesting... I just noticed that after adding an outlet to my view controller, it did not appear in the .xib editor, per the bug. But after about 30 minutes of waiting, it &lt;em&gt;did&lt;/em&gt; finally show up. So it isn't hanging infinitely, it is just hanging for 30 minutes or so. That made me wonder what Xcode is doing when it is in this borked state, since it seems not to actually be permanently hanging the process. I omit the irrelevant-looking threads in the sample below, but these are similar to two more samples five mintes apart, and looks like something is just making the indexing process take an extreeeeeeemely long time, rather than failing completely:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;2035 Thread_15942608   DispatchQueue_1251: com.apple.dt.Xcode.IBHeaderScanningClassProvider  (serial)
+ 2035 start_wqthread  (in libsystem_c.dylib) + 13  [0x7fff84fdcb85]
+   2035 _pthread_wqthread  (in libsystem_c.dylib) + 316  [0x7fff84fdb3da]
+     2035 _dispatch_worker_thread2  (in libdispatch.dylib) + 198  [0x7fff8e42c760]
+       2035 _dispatch_queue_invoke  (in libdispatch.dylib) + 54  [0x7fff8e42cf66]
+         2035 _dispatch_queue_drain  (in libdispatch.dylib) + 264  [0x7fff8e42d10a]
+           2035 _dispatch_call_block_and_release  (in libdispatch.dylib) + 18  [0x7fff8e42b8ba]
+             2035 __block_global_5  (in IDEInterfaceBuilderKit) + 630  [0x10542fa41]
+               2035 -[IBSourceCodeParser parseFile:errors:]  (in IDEInterfaceBuilderKit) + 136  [0x10537db6a]
+                 2035 -[IBObjcParser parseData:fromFile:errors:]  (in IDEInterfaceBuilderKit) + 165  [0x10537d821]
+                   2035 nextRealToken  (in IDEInterfaceBuilderKit) + 83  [0x10537c9f6]
+                     2035 IBObjCLexerNextToken  (in IDEInterfaceBuilderKit) + 31  [0x10537a4bb]
+                       909 skipSpacesAndCR  (in IDEInterfaceBuilderKit) + 141  [0x10537b7a1]
+                       ! 909 parseGetc  (in IDEInterfaceBuilderKit) + 18,67,...  [0x10537b81f,0x10537b850,...]
+                       724 skipSpacesAndCR  (in IDEInterfaceBuilderKit) + 141,193,...  [0x10537b7a1,0x10537b7d5,...]
+                       402 skipSpacesAndCR  (in IDEInterfaceBuilderKit) + 171  [0x10537b7bf]
+                         402 parseGetc  (in IDEInterfaceBuilderKit) + 11,0,...  [0x10537b818,0x10537b80d,...]

2035 Thread_15948863   DispatchQueue_2425: com.apple.dt.Xcode.IBHeaderScanningClassProvider  (serial)
+ 2035 start_wqthread  (in libsystem_c.dylib) + 13  [0x7fff84fdcb85]
+   2035 _pthread_wqthread  (in libsystem_c.dylib) + 316  [0x7fff84fdb3da]
+     2035 _dispatch_worker_thread2  (in libdispatch.dylib) + 198  [0x7fff8e42c760]
+       2035 _dispatch_queue_invoke  (in libdispatch.dylib) + 54  [0x7fff8e42cf66]
+         2035 _dispatch_queue_drain  (in libdispatch.dylib) + 264  [0x7fff8e42d10a]
+           2035 _dispatch_call_block_and_release  (in libdispatch.dylib) + 18  [0x7fff8e42b8ba]
+             2035 __block_global_5  (in IDEInterfaceBuilderKit) + 630  [0x10542fa41]
+               2035 -[IBSourceCodeParser parseFile:errors:]  (in IDEInterfaceBuilderKit) + 136  [0x10537db6a]
+                 2035 -[IBObjcParser parseData:fromFile:errors:]  (in IDEInterfaceBuilderKit) + 165  [0x10537d821]
+                   2035 nextRealToken  (in IDEInterfaceBuilderKit) + 83  [0x10537c9f6]
+                     2035 IBObjCLexerNextToken  (in IDEInterfaceBuilderKit) + 31  [0x10537a4bb]
+                       905 skipSpacesAndCR  (in IDEInterfaceBuilderKit) + 141  [0x10537b7a1]
+                       ! 905 parseGetc  (in IDEInterfaceBuilderKit) + 18,67,...  [0x10537b81f,0x10537b850,...]
+                       749 skipSpacesAndCR  (in IDEInterfaceBuilderKit) + 157,141,...  [0x10537b7b1,0x10537b7a1,...]
+                       381 skipSpacesAndCR  (in IDEInterfaceBuilderKit) + 171  [0x10537b7bf]
+                         381 parseGetc  (in IDEInterfaceBuilderKit) + 0,28,...  [0x10537b80d,0x10537b829,...]
2035 Thread_15950867   DispatchQueue_5158: com.apple.dt.Xcode.IBHeaderScanningClassProvider  (serial)
+ 2035 start_wqthread  (in libsystem_c.dylib) + 13  [0x7fff84fdcb85]
+   2035 _pthread_wqthread  (in libsystem_c.dylib) + 316  [0x7fff84fdb3da]
+     2035 _dispatch_worker_thread2  (in libdispatch.dylib) + 198  [0x7fff8e42c760]
+       2035 _dispatch_queue_invoke  (in libdispatch.dylib) + 54  [0x7fff8e42cf66]
+         2035 _dispatch_queue_drain  (in libdispatch.dylib) + 264  [0x7fff8e42d10a]
+           2035 _dispatch_call_block_and_release  (in libdispatch.dylib) + 18  [0x7fff8e42b8ba]
+             2035 __block_global_5  (in IDEInterfaceBuilderKit) + 630  [0x10542fa41]
+               2035 -[IBSourceCodeParser parseFile:errors:]  (in IDEInterfaceBuilderKit) + 136  [0x10537db6a]
+                 2035 -[IBObjcParser parseData:fromFile:errors:]  (in IDEInterfaceBuilderKit) + 165  [0x10537d821]
+                   2035 nextRealToken  (in IDEInterfaceBuilderKit) + 83  [0x10537c9f6]
+                     2035 IBObjCLexerNextToken  (in IDEInterfaceBuilderKit) + 31  [0x10537a4bb]
+                       855 skipSpacesAndCR  (in IDEInterfaceBuilderKit) + 141  [0x10537b7a1]
+                       ! 855 parseGetc  (in IDEInterfaceBuilderKit) + 18,67,...  [0x10537b81f,0x10537b850,...]
+                       740 skipSpacesAndCR  (in IDEInterfaceBuilderKit) + 155,141,...  [0x10537b7af,0x10537b7a1,...]
+                       440 skipSpacesAndCR  (in IDEInterfaceBuilderKit) + 171  [0x10537b7bf]
+                         440 parseGetc  (in IDEInterfaceBuilderKit) + 0,67,...  [0x10537b80d,0x10537b850,...]
&lt;/code&gt;&lt;/pre&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks for your responses. I will definitely file additional info in the bug report -- I'm just sort of &quot;live blogging&quot; the bug here while I figure out what's what.&lt;/p&gt;

&lt;p&gt;My first priority is to work around this Xcode issue -- because this is a show-stopping bug that is preventing me from getting the work of my actual job done, since I really can't develop these apps if I have to reboot Xcode every time I modify a .xib. (I'm modernizing a set of legacy apps, with dozens of nibs, so re-creating all the UIs in code isn't really feasible).&lt;/p&gt;

&lt;p&gt;So posting here might actually garner some useful feedback that will help me find a workaround (and later I'll write this up on my blog where it can be googled, unlike this forum). I've very rarely gotten any feedback from a bug report other than an autogenerated &quot;Thanks for the report, this is a known issue, closed as Duplicate.&quot;&lt;/p&gt;

&lt;p&gt;Secondary to an immediate workaround, though, I'd love to see this fixed and so I will do what I can, including updating the bug with the best repro case I can come up with, samples, etc. But I really need Xcode to work ASAP -- I assume Apple isn't going to fix my bug release a new version of Xcode tomorrow.&lt;/p&gt;

&lt;p&gt;Doing a binary search does indeed sound arduous but I don't see any other choice, except maybe for reverting the .xib format on the files and using Xcode3 to edit .xibs.&lt;/p&gt;

&lt;p&gt;So I will probably try it. What does make it especially arduous, and very similar to the previous major bug I discovered in Xcode in December, is that to see if the bug manifests or not takes a couple of minutes. You have to do the following process to see if a change you made causes the bug to disappear:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Quit Xcode, then re-launch it.&lt;/li&gt;
&lt;li&gt;Open MyViewController.h and add an IBOutlet in code.&lt;/li&gt;
&lt;li&gt;Open the .xib and see if the outlet appears.&lt;/li&gt;
&lt;li&gt;Go back to the header and add an outlet.&lt;/li&gt;
&lt;li&gt;Go back to the .xib and see if the outlet appears.&lt;/li&gt;
&lt;li&gt;repeat steps 3 and 4 three more times.&lt;/li&gt;
&lt;li&gt;If an outlet added in code didn't appear in the .xib editor, the bug has manifested. If all the outlets you added in code did appear, then the bug did not manifest.&lt;/li&gt;
&lt;/ol&gt;


&lt;p&gt;So performing that process for every change I try is going to make a binary search take at least the rest of the day, unless I am very lucky...&lt;/p&gt;

&lt;p&gt;Therefore, before the binary header-elimination search, I'm first going to try the 'take a 20 minute nap while listening to rainstorm sounds and see if anything comes to you after you wake up' debugging technique.&lt;/p&gt;

&lt;p&gt;Whew. OK, I found the culprit. It was indeed a malformed header, from 2006, similar to the one reproduced below.&lt;/p&gt;

&lt;p&gt;The bogus header doesn't even have to be included in the Xcode project, it apparently just has to exist anywhere Xcode looks for headers. If such a header is present, the .xib editing features of Xcode 4.2.1 completely break. If you delete the header from disk, or fix the problem with it, things work again.&lt;/p&gt;

&lt;p&gt;This particular header was in a work source tree that I use for almost all project -- that's why to me it seemed that Xcode4 was just totally broken, since this bug hit almost all my various projects.&lt;/p&gt;

&lt;p&gt;For people encountering this bug, finding the malformed header might still be a challenge. Also I don't know that this particular kind of syntax error -- a typo-induced unterminated comment -- is necessarily the only type of malformed header that will bork Xcode, but it was in my case. A header with nothing but comments in it was accidentally terminated with &lt;code&gt;/*&lt;/code&gt; instead of the proper closing &lt;code&gt;*/&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Because the header was not part of the project, and wasn't imported, so I never got any &quot;unterminated comment&quot; compile errors. This header would cause an error (or a warning, depending on how you roll with with your build settings) if it was actually included or imported by your project's code.&lt;/p&gt;

&lt;p&gt;So if you have this problem and need to fix it, I recommend that you start by looking for header files that are not part of your project, but exist in the source tree next to headers that your project does use.&lt;/p&gt;

&lt;p&gt;I've updated the bug report ( &lt;a href=&quot;rdar://10698256&quot;&gt;rdar://10698256&lt;/a&gt; ) to include a reproduction demo app, screenshot, and sample output, and I have also uploaded the bug demo project to github just in case anybody not working at Apple is interested:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/masonmark/XcodeXibEditBugDemoApp&quot;&gt;XcodeXibEditBugDemoApp&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;As a final note, if you do hit the bug and then delete or fix the header file triggering it, you do indeed need to delete the Xcode &quot;DerivedData&quot; directory. Just deleting the header but leaving the (presumably corrupted) index data around will not fix the problem.&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;/*

    THIS MALFORMED HEADER WILL COMPLETELY BREAK XCODE'S .XIB EDITING

    This is a bug report demo app for Apple Problem ID: 10698256 

    If this header is included in your project the .xib editor will
    stop seeing newly added outlets. For this demo app, follow these
    steps:

    1. Quit and re-launch Xcode.
    2. Navigate to XcodeBugViewController.h and add an outlet, like
       &quot;IBOutlet NSView *foo1&quot; and save the header file.
    3. Navigate to XcodeBugViewController.xib and right click the &quot;File's.
       Owner&quot; icon to pop up the list of outlets.
    4. Note whether or not the outlet appears in the list.
    5. Repeat steps 3 and 4 five times. 

    You should see that outlets are no longer showing up in Xcode.

    If you delete this header, then quit and relaunch Xcode,  the problem 
    will go away.  (You have to literally delete the file from disk. It does
    not need to be included in the project to trigger this bug.)

    BONUS BUG: Editing this header within Xcode will cause it to crash or freeze.
/*
&lt;/code&gt;&lt;/pre&gt;

&lt;hr /&gt;

&lt;p&gt;①: -ly annoying, at least.&lt;/p&gt;

&lt;p&gt;②: I assert that this is the correct American spelling.&lt;/p&gt;

&lt;h3&gt;以上&lt;/h3&gt;
</content>
  </entry>
  
  <entry>
    <title>UFC 141 Predictions</title>
    <link href="http://masonmark.com/ufc-141-predictions/"/>
    <published>2011-12-31T11:57:00+09:00</published>
    <updated>2011-12-31T11:57:00+09:00</updated>
    <id>http://masonmark.com/ufc-141-predictions</id>
    <content type="html">&lt;p&gt;I've been meaning to commit my predictions to the ether for the last few UFCs, but this is the first time I've managed to do it. I think this is largely because the UFC &lt;em&gt;FINALL-FUCKING-LY&lt;/em&gt; has a decent web-based pay-per-view system. It's really great; the adaptive quality claims to support up to 3000Kbps and on my typical Japanese fiber line it looks great--as good or better than the bootleg 720p PPV rips that one might find out there on the interweb tubes.&lt;/p&gt;

&lt;p&gt;The UFC's new system means that I can reliably watch the bouts LIVE (for $20, which feels a lot more reasonable than $50), whereas before I was always having to somehow procure a decent copy of the event after the fact, meaning that the matches had actually already happened by the time I got around to thinking about who would win, at which point 'predicting' them seemed pretty stupid, even if I knew not the outcome.&lt;/p&gt;

&lt;p&gt;So without further ado:&lt;/p&gt;

&lt;h3&gt;Alistair Overeem will beat Brock Lesnar&lt;/h3&gt;

&lt;p&gt;Overeem will dominate Lesnar, exposing him for what he actually is: a massive, ultra-athletic monster of a human specimen -- but still an inexperienced fighter who gets concerned and loses his focus when he starts getting smashed in the face by another huge man's fists (or kicks). Gotta think Overeem's strikes are gonna be the actual killing advantage, even if it ends up that a barrage of strikes leads to a sumbmission. Overeem is bulkier than I remembered, too: 263 lbs (119.3 kg) at the weigh-in to Lesnar's maximum allowed fighter weight of 265 lbs (120.2 kg).&lt;/p&gt;

&lt;!-- more --&gt;


&lt;p&gt;I am excited about this fight on its own merits, but also because it begins the process of seeing how good Overeem really is. A lot of top-teir fighters from other promotions suddently look a lot more human when they get to the UFC. (Mirko Cro Cop, Wanderlei Silva, and virtually all Japanese fighters who, with the exception of Yushin Okami, consistently get their asses kicked around the octagon... )&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Confidence: $100&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Wife disagrees: &quot;What! What. What is thaaat...?!&quot; I'm not sure if she was talking about the hulking Lesnar himself, or the alien-seeming muscle ripple he did as he stepped to the scale. But she picked the decidedly meaner-looking Lesnar to win the bout.&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;Nate Diaz will beat Donald Cerrone&lt;/h3&gt;

&lt;p&gt;This should be an awesome fight, and I can see it going the distance. The UFC has recently (and sensibly) decided that main-event fights should be 5 rounds instead of 3... does that apply to &quot;co-main event&quot; fights like this one? Hope so.&lt;/p&gt;

&lt;p&gt;Diaz can submit people but Cerrone knows what he's doing, both of them can brawl and both can take a beating. I think Diaz has slightly better come-back-from-getting-beat-on-and-choke-you-out skills, though. The madder he gets, the more fun the fight is to watch.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Confidence: $50&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Wife agrees: &quot;Huh, 'Nate'... I like that name. Nate will win.&quot;&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;Jon Fitch will beat Johnny Hendricks&lt;/h3&gt;

&lt;p&gt;Happy Beard Guy is good, but you know he'll never be the champion. Still, the beard make me wantto root for him. But it's not impossible to imagine Fitch wearing the belt. I mean, you can conceive of it. If St. Pierre like, fell out of an airplane or something. Fitch is a grinder, who I can't remember ever knocking anybody out, so I expect a decision. Hendricks does knock people out but I have never seen him fight anyody awesome. Fitch has fought St. Pierre and BJ Penn, although he didn't win. Still I predict he'll ground and pound Hendricks and take a decision victory.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Confidence: $20&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Wife agrees.&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;Vladimir Matyushenko will beat Alexander Gustafsson&lt;/h3&gt;

&lt;p&gt;This is just a gut call, as I have never seen Gustafsson fight or even heard of him. But the Janitor is a wily old (older than me!) Soviet National Wrestling Champion with tons of MMA eperience. Gustafsson will be faster I am sure, and probably more technical, but then if it gets out of the first round, which it should because Matyushenko is tough, then the old dude will start to wear on him and at some point get a dominant position leading to a ground-and-pound referee stoppage.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Confidence: $3&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Wife agrees.&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;Nam Phan will beat Jimy Hettes&lt;/h3&gt;

&lt;p&gt;Nam Phan prepped for this fight by watching Nacho Libre, so of course he will win.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Confidence: $0.75&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Wife: Yep, Nam.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Well, event starts in 3 min. so no time to predict the undercard--and you need to log into facebook to watch the prelims anyway, so fuck that.  No time to proofread, posting this to the tubes as-is! ☆&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>'droid ragers make me sigh</title>
    <link href="http://masonmark.com/droid-ragers-make-me-sigh/"/>
    <published>2011-12-29T11:53:11+09:00</published>
    <updated>2011-12-29T11:53:11+09:00</updated>
    <id>http://masonmark.com/android-ragers-make-me-sigh</id>
    <content type="html">&lt;p&gt;Mini-Gruber Siegler, over on his &lt;a href=&quot;http://parislemon.com/post/14908566270/the-definition-of-open-is-missing&quot;&gt;personal blog&lt;/a&gt;, gets his panties all knotted and sticky over Andy Rubin apparently deleting a comment he had posted on Walmart.com or somewhere like that, about Android being open and how to check out the source code.&lt;/p&gt;

&lt;p&gt;220 melodramatic and pointless words and one failed attempt at a snarky joke about 'open' later, we find out that yep, the comment was deleted, because the open source &lt;a href=&quot;https://plus.google.com/117377434815709898403/posts/c5Zhg1S6e9N&quot;&gt;repo had been relocated&lt;/a&gt; and the instructions included in the comment were no longer accurate.
&lt;/p&gt;

&lt;p&gt;Of course, Android is still open, for any reasonable value of open, and you can still &lt;a href=&quot;http://source.android.com/source/downloading.html&quot;&gt;check out the source&lt;/a&gt; if you're so inclined.&lt;/p&gt;

&lt;p&gt;(Unfortunately, though, Android's still not that great at running one's pocket computer/phone gizmo. Maybe in Android 5.0, Turducken Potato Pizza? Here's hoping.)&lt;/p&gt;

&lt;p&gt;&lt;em&gt;[via professional Apple frother &lt;a href=&quot;http://daringfireball.net/linked/2011/12/28/rubin-open&quot;&gt;John Gruber&lt;/a&gt;]&lt;/em&gt;
&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>merry atheistmas! ♬</title>
    <link href="http://masonmark.com/merry-atheistmas-2011/"/>
    <published>2011-12-25T05:05:05+09:00</published>
    <updated>2011-12-25T05:05:05+09:00</updated>
    <id>http://masonmark.com/merry-atheistmas-2011</id>
    <content type="html">&lt;p align=&quot;center&quot;&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: 30px; font-family: 'Lucida Grande';&quot;&gt;☃&lt;/span&gt;
&lt;span style=&quot;font-size: 30px; font-family: Meiryo;&quot;&gt;☃&lt;/span&gt;
&lt;span style=&quot;font-size: 30px; font-family: 'MS Gothic';&quot;&gt;☃&lt;/span&gt;
&lt;span style=&quot;font-size: 30px; font-family: Menlo;&quot;&gt;☃&lt;/span&gt;
&lt;/p&gt;

&lt;p&gt;2011 was a good one for me... we enjoyed a secular xmas celebrated in the finest Japanese tradition: by flying to Hawaii to play in the ocean and buy ourselves lavish and unneccessary presents in an orgy of 円高-fueled consumerism. &lt;b&gt;A+++ WOLUD LUXURIATE AGIAN!!!&lt;/b&gt;
&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;http://masonmark.com/stuff/fuck_yah_xmas_2011.jpg&quot; /&gt;
&lt;br /&gt;
&lt;em&gt;&quot;Holy shit, fifty feet from shore and I'm already  exhausted... maybe Heineken and Sno-balls &lt;b&gt;isn't&lt;/b&gt; the breakfast of champions??&quot;&lt;/em&gt;&lt;/p&gt;</content>
  </entry>
  
  <entry>
    <title>the interwebs are down</title>
    <link href="http://masonmark.com/the-interwebs-are-down/"/>
    <published>2011-12-12T11:40:11+09:00</published>
    <updated>2011-12-12T11:40:11+09:00</updated>
    <id>http://masonmark.com/the-interwebs-are-down</id>
    <content type="html">&lt;p&gt;OMG github is down:&lt;/p&gt;

&lt;img src=&quot;http://masonmark.com/stuff/github-is-down.jpg&quot; alt=&quot;AAIHHGH!&quot; /&gt;

&lt;br /&gt;
&lt;br /&gt;
&lt;p&gt;OMFG downforeveryoneorjustme.com is ALSO down!!&lt;/p&gt;

&lt;img src=&quot;http://masonmark.com/stuff/downforeveryoneorjustme-is-down.jpg&quot; alt=&quot;AIEEEGGH!&quot; /&gt;

&lt;p&gt;Maybe the US government's internet kill switch installation isn't going as planned?&lt;/p&gt;</content>
  </entry>
  
  <entry>
    <title>The Xcode Fairy</title>
    <link href="http://masonmark.com/the-xcode-fairy/"/>
    <published>2011-12-05T11:11:11+09:00</published>
    <updated>2011-12-05T11:11:11+09:00</updated>
    <id>http://masonmark.com/the-xcode-fairy</id>
    <content type="html">&lt;p&gt;
This post describes a bug in Xcode 4.2.1 and a simple way to work around it. If you find it useful, please send me $5,000.00.
&lt;/p&gt;

&lt;p&gt;
Xcode 4.2.1 has a bug (actually a set of related bugs) that can break the automated testing functionality for a project in certain conditions, such that the following things happen:
&lt;/p&gt;

&lt;p&gt;
0.) Xcode gets confused, and uses the wrong executable for the project's Test action. &lt;b&gt;This prevents the automated tests from being executed.&lt;/b&gt; This is the actual core of the bug.&lt;/p&gt;

&lt;p&gt;
1.) Compounding things somewhat, when this bug manifests, &lt;b&gt;Xcode will tell the programmers that all their tests passed, when in fact Xcode didn't actually run any of their tests.&lt;/b&gt; That's bad, because it can easily go unnoticed for a while. The programmers may waste significant time writing code, thinking all tests are passing, only to then have to backtrack and rewrite when they realize that their new code is actually all wrong (something the failure of their existing tests would have alerted them to, had the tests actually been run).
&lt;/p&gt;

&lt;p&gt;
&lt;img src=&quot;http://masonmark.com/stuff/xcode_pass_which_is_fail.png&quot; alt=&quot;Xcode is lying.&quot; /&gt;
&lt;/p&gt;

&lt;p&gt;
2.) But those things are nothing compared to &lt;b&gt;the insidious violence that this bug visits upon the programmers who try to figure out the cause and make it stop happening.&lt;/b&gt; This software defect can snare its victims in a web of deception that can take hours to unravel, and can result in the brutal and premature demise of any keyboards, mice, and even monitors that happen to be nearby.
&lt;/p&gt;

&lt;p&gt;
A professional programmer has to have automated tests. Programmers argue about what kinds of tests to write, and when to write them, but not having tests at all is pure fuckery. &lt;b&gt;Writing serious code without tests is for dilettantes and winos.&lt;/b&gt; Programmers need tests, which are typically run automatically by the programming toolchain when the code is built or run.
&lt;/p&gt;

&lt;p&gt;
Mac programmers (and those iOS programmer weenies, too, as far as I've heard) pretty much have to use Xcode. There are insane convolutions that one might go through to avoid Xcode -- and indeed, most Mac programmers fantasize about this from time to time -- but generally speaking, Xcode is really the only game in town.
&lt;/p&gt;

&lt;p&gt;
Mac programmers need Xcode and they need tests, so naturally they want Xcode to run their tests.
&lt;/p&gt;

&lt;p&gt;
Therefore, when the programmers eventually notice that Xcode isn't running their tests, they will likely &lt;b&gt;stop whatever else they are doing and try to fix it&lt;/b&gt;, by fiddling with the project settings. Most programmers would start by editing or recreating the project's Xcode schemes, which is logical, because the Xcode scheme controls, among other things, how and when to run the tests. They'll make a change or perhaps give up and rebuild the scheme from scratch (a minor pain in the ass), or maybe quit Xcode and revert the project file to the last checked out version. Most likely, they will see that after their changes, Xcode again properly runs their tests. The programmers will resume their work, and life will once again be fine, or at least okay.
&lt;/p&gt;

&lt;p&gt;
But Xcode isn't through with those poor assholes.  No, &lt;b&gt;it has only just begun to fuck with them.
&lt;/b&gt;
&lt;/p&gt;


&lt;!--more--&gt;


&lt;p&gt;
A bit later -- minutes, hours, days in some cases -- the bug will hit them again. With a little bad luck, their git commit log might end up looking something like this:
&lt;/p&gt;

&lt;p&gt;
&lt;figure class='code'&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;table&gt;&lt;tr&gt;&lt;td class=&quot;gutter&quot;&gt;&lt;pre class=&quot;line-numbers&quot;&gt;&lt;span class='line-number'&gt;1&lt;/span&gt;
&lt;span class='line-number'&gt;2&lt;/span&gt;
&lt;span class='line-number'&gt;3&lt;/span&gt;
&lt;span class='line-number'&gt;4&lt;/span&gt;
&lt;span class='line-number'&gt;5&lt;/span&gt;
&lt;span class='line-number'&gt;6&lt;/span&gt;
&lt;span class='line-number'&gt;7&lt;/span&gt;
&lt;span class='line-number'&gt;8&lt;/span&gt;
&lt;span class='line-number'&gt;9&lt;/span&gt;
&lt;span class='line-number'&gt;10&lt;/span&gt;
&lt;span class='line-number'&gt;11&lt;/span&gt;
&lt;span class='line-number'&gt;12&lt;/span&gt;
&lt;span class='line-number'&gt;13&lt;/span&gt;
&lt;span class='line-number'&gt;14&lt;/span&gt;
&lt;span class='line-number'&gt;15&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;&lt;td class='code'&gt;&lt;pre&gt;&lt;code class=''&gt;&lt;span class='line'&gt;[broham@IT-PC-MACPRO-01 my-rad-tool (master)]$ git log --pretty=format:&quot;%h%x09%x09%ad%x09%s&quot;
&lt;/span&gt;&lt;span class='line'&gt;6ce5b76  Mon Dec 5 15:27  SOLVE, really this time, the Xcode random project corruption problem.
&lt;/span&gt;&lt;span class='line'&gt;114b116  Sun Dec 4 21:50  FUCK XCODE FUCK XCODE FUCK XCODE FUCK XCODE FUCK XCODE FUCK XCODE FUCK XCODE FUCK 
&lt;/span&gt;&lt;span class='line'&gt;0d87a5f  Sun Dec 4 21:46  die xcode die
&lt;/span&gt;&lt;span class='line'&gt;1010c1e  Sun Dec 4 21:24  What the fuck is the deal with Xcode
&lt;/span&gt;&lt;span class='line'&gt;08e67fb  Sun Dec 4 20:57  Document the way I finally seem to have worked around the Xcode unfixable project 
&lt;/span&gt;&lt;span class='line'&gt;6b5dfb4  Sun Dec 4 20:49  Xcode 4 is just garbage.
&lt;/span&gt;&lt;span class='line'&gt;a878a75  Sun Dec 4 20:31  Rename the Xcode scheme and document the two things you can do that will cause Xco
&lt;/span&gt;&lt;span class='line'&gt;9b19a92  Sun Dec 4 20:17  Rename project 'objj-indexer project.xcodeproj'. It seems Xcode doesn't shit on it
&lt;/span&gt;&lt;span class='line'&gt;3c0fa9c  Sun Dec 4 20:13  Get fucked in ass by Xcode again. Renamed project file to 'project.xcodeproj'.
&lt;/span&gt;&lt;span class='line'&gt;71d2d13  Sun Dec 4 18:32  Attempt to convince Xcode to please stop corrupting the project.
&lt;/span&gt;&lt;span class='line'&gt;7296a96  Sun Dec 4 17:33  Resolve the Xcode issue by giving up having the command line tool be the executabl
&lt;/span&gt;&lt;span class='line'&gt;608bc70  Sun Dec 4 17:24  Fuck Xcode to hell. I think it is working now, though.
&lt;/span&gt;&lt;span class='line'&gt;2bdc22b  Sun Dec 4 17:09  Fuck with Xcode for 4 hours to try to get it to stop corrupting this project such 
&lt;/span&gt;&lt;span class='line'&gt;39f396e  Sun Dec 4 14:08  Waste several hours fixing Xcode self-corruption and rebuilding project from scrat&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;/p&gt;

&lt;p&gt;
That's a whole Sunday there. Looks like they (*cough* &lt;em&gt;I&lt;/em&gt;) didn't get any actual work done all day. That's because this bug is a motherfucking son of a bitch. It comes and goes on a whim, at random, which makes it hard initially to figure out what is going on. A programmer might try something, test it, see that the problem is gone, and think they fixed it. But really what they did had nothing to do with anything. And then the bug comes back. Over and over and over.
&lt;/p&gt;

&lt;p&gt;
&quot;Which of you jackasses merged the beer-goggles topic branch without running the test suites?&quot; one programmer might call out. &quot;Five tests fail. FAIL!&quot;
&lt;/p&gt;

&lt;p&gt;
&quot;No way dude, I ran the tests before I pushed the code. Maybe something... ah, shit, it's not fucking running the tests again. It just says 'Test Succeeded' and 'No issues'. Again! Xcode is a lying ass bitch!&quot;'&lt;/p&gt;

&lt;p&gt;
Maybe at this point a mouse or empty soda can gets thrown against the wall.
&lt;/p&gt;

&lt;p&gt;
&quot;Okay man, look, tests are working on my machine, let's diff the project files and see if we can find something that might be why its not working on your machine but is on mine.&quot;
&lt;/p&gt;

&lt;p&gt;
&quot;Man, this file is just a list of thousands of UUIDs, we're not gonna make sense of this... let me just get a copy of your project file and replace mine. I'll quit Xcode and move it into place... Okay, that worked. Fuck though, why does the project keep getting corrupted? I don't see anything that looks like a clue when I diff the good one and the bad one either.&quot;
&lt;/p&gt;

&lt;p&gt;
&quot;Well, at least it's working now.&quot; 
&lt;/p&gt;

&lt;p&gt;
By that time, though, it might be 4:00 PM, and with energy waning, they might just commit what they've done so far with a message like &quot;Work around Xcode bugs&quot; and leave early to go get drunk.
&lt;/p&gt;

&lt;p&gt;
The next day, though, the situation might well begin to rapidly deteriorate.
&lt;/p&gt;

&lt;p&gt;
&quot;Motherfucker!&quot; one of them might scream. &quot;Did you fuck with the scheme definition in your last commit? Now I have to delete it and re-create it again.&quot;
&lt;/p&gt;

&lt;p&gt;
&quot;No, bitch,&quot; the other might retort indignantly. &quot;I didn't change jack shit, except for turning off parallel builds. And it is still working fine for me. If you broke the build again, you fix it. Revert your Xcode project file again, it was working fine an hour ago.&quot;
&lt;/p&gt;

&lt;p&gt;
&quot;I already did that, genius! There aren't any changes to the project file. Check out the diff right here on the screen, asshole.&quot;
&lt;/p&gt;


&lt;p&gt;
At this point, the programmers would probably decide that something is just irredeemably fucked with their on-disk project file itself. It wouldn't be surprising; the project file in question was originally created with the older Xcode 4.0, a notably buggy and half-baked release, and has also been subjected to dozens of instances where Xcode crashed while various operations were in progress. Maybe something got borked.
&lt;/p&gt;

&lt;p&gt;
Concerned about their slipping productivity and the growing amount of time lost to fucking with their IDE settings, they embark on the unenviable task of recreating the project from scratch. Create the project bundle, add each target, set each target's build settings, set the Bundle Loader and the Test Host, the Info.plist path, and other such drudgery.
&lt;/p&gt;

&lt;p&gt;
Finished, they quit Xcode and painstakingly move all the little niggly .xcscheme and .pbxproject files into the correct places within the .xcproj bundle. 
&lt;/p&gt;

&lt;p&gt;
&quot;All tests pass, fuck yeah, commit that shit.&quot; 
&lt;/p&gt;

&lt;p&gt;
And so, back to work.
&lt;/p&gt;

&lt;p&gt;
With a gray and gloomy tone having already been set for the week, what with all this hapless rejiggering of settings and a marked lack of in-the-zone progress, the shit will likely hit the fan and splatter all over everything in the room the next morning, when one of the programmers git-pulls and sets to work.
&lt;/p&gt;

&lt;p&gt;
&quot;What the fucking motherfuck who fucking added another build target to the motherfucking scheme and broke the motherfucking goddamn tests again! Jesus motherfucking Christ!&quot; 
&lt;/p&gt;

&lt;p&gt;
&quot;The fuck are you on about? I don't know what you're doing, but you're fucking Doing It Wrong, dude. It works fine on my machine.&quot;
&lt;/p&gt;

&lt;p&gt;
&quot;Motherfucker, stop lying! You added another fucking target to the scheme! Look, it's right fucking here in the Build panel! LOOK!&quot;
&lt;/p&gt;

&lt;p&gt;
&quot;Hey man, fuck you--&quot;
&lt;/p&gt;

&lt;p&gt;
&quot;NO FUCK YUO!!!&quot;
&lt;/p&gt;

&lt;p&gt;
Now, the reason that these hypothetical hackers are on the verge of breaking into fisticuffs is that this bug hides itself like fucking octopus in a coral reef. It's really not their fault; it's a hard bug to track down.
&lt;/p&gt;

&lt;p&gt;
Since they live in imagination-land, though, we can just help them out.
&lt;/p&gt;

&lt;p&gt;
&lt;em&gt;Programmer:&lt;/em&gt; &quot;Ohmyfuckinghgod, dude, look out for that huge fucking bug above your head!&quot;
&lt;/p&gt;

&lt;p&gt;
&lt;em&gt;Programmer:&lt;/em&gt; &quot;If you hit me in the head with that rolled up newspaper I'm gonna kick you in the balls, jackass.&quot;
&lt;/p&gt;

&lt;p&gt;
&lt;em&gt;Programmer:&lt;/em&gt; &quot;I'm serious, dude!&quot;
&lt;/p&gt;

&lt;p&gt;
&lt;em&gt;Magic Fairy:&lt;/em&gt; &quot;I'm not a bug. I'm a magical fairy from the Kingdom of Menlo. I'm here to help you out with your Xcode problem.&quot;
&lt;/p&gt;

&lt;p&gt;
&lt;em&gt;Programmer:&lt;/em&gt; &quot;Oh shit, you weren't lying. What the fuck is that!&quot;
&lt;/p&gt;

&lt;p&gt;
&lt;em&gt;Programmer:&lt;/em&gt; &quot;Look, sweetheart, thanks for the offer and everything, but we're professionals here. I don't believe in fairies, and even though I now see that I am obviously wrong about that, I still don't think there's a whole lot that a flying miniature hottie with butterfly wings and a wand can tell us about--&quot;
&lt;/p&gt;

&lt;p&gt;
&lt;em&gt;Magic Fairy:&lt;/em&gt; &quot;Change the name of your Xcode project.&quot;
&lt;/p&gt;

&lt;p&gt;
&lt;em&gt;Programmer:&lt;/em&gt; &quot;Look, we already did that, and more. It had no effect. We rebuilt the project, we renamed the project, the targets, the schemes, etc. and it had no--&quot;
&lt;/p&gt;

&lt;p&gt;
&lt;em&gt;Magic Fairy:&lt;/em&gt; &quot;Change the name of your Xcode project file.&quot;
&lt;/p&gt;

&lt;p&gt;
&lt;em&gt;Programmer:&lt;/em&gt; &quot;I told you, we--&quot;
&lt;/p&gt;

&lt;p&gt;
&lt;em&gt;Programmer:&lt;/em&gt; &quot;Dude, this shit's been biting us in the ass for days on end. If a fucking magical fairy from another dimension appears and tells us to rename our Xcode project file, we might as well fucking try it. Here, I'll do it. What should I rename the project to?&quot;
&lt;/p&gt;

&lt;p&gt;
&lt;em&gt;Magic Fairy:&lt;/em&gt; &quot;I'm not from another dimension.&quot;
&lt;/p&gt;

&lt;p&gt;
&lt;em&gt;Programmer:&lt;/em&gt; &quot;Okay. Rename the project. Here, I'll append 'v2' to the name.&quot;
&lt;/p&gt;

&lt;p&gt;
&lt;em&gt;Magic Fairy:&lt;/em&gt; &quot;No. Change it to my name.&quot;
&lt;/p&gt;

&lt;p&gt;
&lt;em&gt;Programmer:&lt;/em&gt; &quot;She's totally fucking with you, dude. Come on, now.&quot;
&lt;/p&gt;

&lt;p&gt;
&lt;em&gt;Programmer:&lt;/em&gt; &quot;Fine! Whatever. What's your name?&quot;
&lt;/p&gt;

&lt;p&gt;
&lt;em&gt;Magic Fairy:&lt;/em&gt; &quot;My name is Slut.&quot;
&lt;/p&gt;

&lt;p&gt;
&lt;em&gt;Programmer:&lt;/em&gt; &quot;Sloot?&quot;
&lt;/p&gt;

&lt;p&gt;
&lt;em&gt;Magic Fairy:&lt;/em&gt; &quot;Yeah, Slut. S-l-u-t.&quot;
&lt;/p&gt;

&lt;p&gt;
&lt;em&gt;Programmer:&lt;/em&gt; &quot;Wow, that's not how we'd tend to pronounce it. But I mean that's cool, totally cool, and stuff. How did you uh, come by that name?&quot;
&lt;/p&gt;

&lt;p&gt;
&lt;em&gt;Magic Fairy:&lt;/em&gt; &quot;My name used to be Alianna, but as soon as I entered this programming-related blog post, my name was transformed. An evil golem named Choad'wan cast a spell on the whole IT industry to make sure it remains a totally sexist bro-fest for all eternity.&quot;
&lt;/p&gt;

&lt;p&gt;
&lt;em&gt;Programmer:&lt;/em&gt; &quot;Yeah, I've been reading a lot about that lately.&quot;
&lt;/p&gt;

&lt;p&gt;
&lt;em&gt;Programmer:&lt;/em&gt; &quot;But dude, she is actually pretty hot though! I mean kinda too small to uh, I mean, anyway you should really put on your glasses, dude.&quot;
&lt;/p&gt;

&lt;p&gt;
&lt;em&gt;Programmer:&lt;/em&gt; &quot;Seems like Choad'wan's spell is working fine. Can we get back to the Xcode thing.&quot;
&lt;/p&gt;

&lt;p&gt;
&lt;em&gt;Magic Fairy:&lt;/em&gt; &quot;You say it like you're the one waiting for me.&quot;
&lt;/p&gt;

&lt;p&gt;
&lt;em&gt;Programmer:&lt;/em&gt; &quot;Okay, should I rename the file in the Finder, or do it in Xcode?&quot;
&lt;/p&gt;

&lt;p&gt;
&lt;em&gt;Magic Fairy:&lt;/em&gt; &quot;In Xcode.&quot; 
&lt;/p&gt;

&lt;p&gt;
&lt;em&gt;Programmer:&lt;/em&gt; &quot;Okay,  s-l-u-t it is. But you know, we did this before.&quot;
&lt;/p&gt;

&lt;p&gt;
&lt;em&gt;Magic Fairy:&lt;/em&gt; &quot;You named your program after me before?&quot;
&lt;/p&gt;

&lt;p&gt;
&lt;em&gt;Programmer:&lt;/em&gt; &quot;No, but we renamed it at some point.&quot;
&lt;/p&gt;

&lt;p&gt;
&lt;em&gt;Magic Fairy:&lt;/em&gt; &quot;Why?&quot;
&lt;/p&gt;

&lt;p&gt;
&lt;em&gt;Programmer:&lt;/em&gt; &quot;Well, at some point when the project file got corrupted again, I uh, renamed the project FUCKXCODE.xcodeproj because I thought that Xcode was maybe internally referring to different types of entities by name, instead of uuid, and getting confused. Since the project was named after the the command-line tool it builds, they had the same name. So I changed it to 'FUCKXCODE' and things the tests started running again.&quot;
&lt;/p&gt;

&lt;p&gt;
&lt;em&gt;Magic Fairy:&lt;/em&gt; &quot;Well, wasn't that a clue?&quot;
&lt;/p&gt;

&lt;p&gt;
&lt;em&gt;Programmer:&lt;/em&gt; &quot;I thought so, but no, because later I changed the name back and everything still worked. So it wasn't the project name. But just in case I appended ' project' to the name. But the problem came back. And then later, we renamed all the targets and that fixed it. For a while. Tweaking the target or the scheme seems to fix it for a while, but somehow the project is getting corrupted when Xcode writes it out to disk. But we can't figure out exactly how it's getting corrupted, or why.&quot;
&lt;/p&gt;

&lt;p&gt;
&lt;em&gt;Magic Fairy:&lt;/em&gt; &quot;My spiritual guru used to say something from time to time that I think applies to your situation.&quot;
&lt;/p&gt;

&lt;p&gt;
&lt;em&gt;Programmer:&lt;/em&gt; &quot;Who's your spiritual guru?&quot;
&lt;/p&gt;

&lt;p&gt;
&lt;em&gt;Magic Fairy:&lt;/em&gt; &quot;Microsoft Word 6.0.1 for Macintosh.&quot;
&lt;/p&gt;

&lt;p&gt;
&lt;em&gt;Programmer:&lt;/em&gt; &quot;I get it, fuckface. You put LSD in my Dr. Pepper. Really fucking funny.&quot;
&lt;/p&gt;

&lt;p&gt;
&lt;em&gt;Programmer:&lt;/em&gt; &quot;Wait, your spritual guru is Microsoft Word 6.0.1 for Macintosh?&quot;
&lt;/p&gt;

&lt;p&gt;
&lt;em&gt;Magic Fairy:&lt;/em&gt; &quot;She liked to remind me--&quot;
&lt;/p&gt;

&lt;p&gt;
&lt;em&gt;Programmer:&lt;/em&gt; &quot;Wait, Microsoft Word is a chick?&quot;
&lt;/p&gt;

&lt;p&gt;
&lt;em&gt;Magic Fairy:&lt;/em&gt; &quot;Sometimes things that go away by themselves--&quot;
&lt;/p&gt;

&lt;p&gt;
&lt;em&gt;Programmer:&lt;/em&gt; &quot;--can come back by themselves! Of course! Dammit! How could I be so stupid!&quot;
&lt;/p&gt;

&lt;p&gt;
&lt;em&gt;Programmer:&lt;/em&gt; &quot;The fuck are you guys talking about?&quot;
&lt;/p&gt;

&lt;p&gt;
&lt;em&gt;Programmer:&lt;/em&gt; &quot;I think she's saying all our debugging of this issue has been a total fucking waste of time.&quot;
&lt;/p&gt;

&lt;p&gt;
&lt;em&gt;Magic Fairy:&lt;/em&gt; &quot;Right.&quot;
&lt;/p&gt;

&lt;p&gt;
&lt;img src=&quot;http://masonmark.com/stuff/things-that-go-away.jpg&quot; alt=&quot;Sometimes things that go away by themselves can come back by themselves.&quot; /&gt;
&lt;/p&gt;


&lt;p&gt;
&lt;em&gt;Programmer:&lt;/em&gt; &quot;Okay, I renamed the project like you said. What's next.&quot;
&lt;/p&gt;

&lt;p&gt;
&lt;em&gt;Magic Fairy:&lt;/em&gt; &quot;Add a single test that asserts 1 equals 0, so tests shouldn't pass. Then relaunch Xcode. Hit Command-U to run the Test action.&quot;
&lt;/p&gt;

&lt;p&gt;
&lt;em&gt;Programmer:&lt;/em&gt; &quot;Tests fail.&quot;
&lt;/p&gt;

&lt;p&gt;
&lt;em&gt;Magic Fairy:&lt;/em&gt; &quot;Quit Xcode. The do it again.&quot;
&lt;/p&gt;

&lt;p&gt;
&lt;em&gt;Programmer:&lt;/em&gt; &quot;Tests fail again.&quot;
&lt;/p&gt;

&lt;p&gt;
&lt;em&gt;Magic Fairy:&lt;/em&gt; &quot;Again.&quot;
&lt;/p&gt;

&lt;p&gt;
&lt;em&gt;Programmer:&lt;/em&gt; &quot;Tests fail again. Okay, we get it, it works with your name.&quot;
&lt;/p&gt;

&lt;p&gt;
&lt;em&gt;Magic Fairy:&lt;/em&gt; &quot;Again!&quot;
&lt;/p&gt;

&lt;p&gt;
&lt;em&gt;Programmer:&lt;/em&gt; &quot;Okay! Fuck! Tests fail again! Quit, relaunch, test, fail! Quit, relaunch, test, fail! Same thing again! Again! Again! Again! I've done it ten times now. It's working!&quot;
&lt;/p&gt;

&lt;p&gt;
&lt;em&gt;Magic Fairy:&lt;/em&gt; &quot;Now rename it back.&quot;
&lt;/p&gt;

&lt;p&gt;
&lt;em&gt;Programmer:&lt;/em&gt; &quot;Okay. Renamed it back to the original babe-rater.xcodeproj.&quot;
&lt;/p&gt;

&lt;p&gt;
&lt;em&gt;Magic Fairy:&lt;/em&gt; &quot;Wait, the name of your program is babe-rater?&quot;
&lt;/p&gt;

&lt;p&gt;
&lt;em&gt;Programmer:&lt;/em&gt; &quot;Uh...&quot;
&lt;/p&gt;

&lt;p&gt;
&lt;em&gt;Magic Fairy:&lt;/em&gt; &quot;You're writing a command line UNIX utility to rate babes?&quot;
&lt;/p&gt;

&lt;p&gt;
&lt;em&gt;Programmer:&lt;/em&gt; &quot;Never mind that! Look! Launch Xcode, test, the tests fail as they should. So what does that prove?&quot;
&lt;/p&gt;

&lt;p&gt;
&lt;em&gt;Magic Fairy:&lt;/em&gt; &quot;Again.&quot;
&lt;/p&gt;

&lt;p&gt;
&lt;em&gt;Programmer:&lt;/em&gt; &quot;Fail.&quot;
&lt;/p&gt;

&lt;p&gt;
&lt;em&gt;Magic Fairy:&lt;/em&gt; &quot;Again.
&lt;/p&gt;

&lt;p&gt;
&lt;em&gt;Programmer:&lt;/em&gt; &quot;Fail!&quot;
&lt;/p&gt;

&lt;p&gt;
&lt;em&gt;Magic Fairy:&lt;/em&gt; &quot;Again!&quot;
&lt;/p&gt;

&lt;p&gt;
&lt;em&gt;Programmer:&lt;/em&gt; &quot;Tests... the tests pass. Shit. It didn't run any of the tests. But the project file hasn't changed at all. The project was never actually corrupt in the fist place!&quot;
&lt;/p&gt;

&lt;p&gt;
&lt;em&gt;Programmer:&lt;/em&gt; &quot;Motherfucking motherfucker! What the fuck!&quot;
&lt;/p&gt;

&lt;p&gt;
&lt;em&gt;Programmer:&lt;/em&gt; &quot;So the bug can go away by itself...&quot;
&lt;/p&gt;

&lt;p&gt;
&lt;em&gt;Magic Fairy:&lt;/em&gt; &quot;And come back by itself. Yeah.&quot;
&lt;/p&gt;

&lt;p&gt;
&lt;em&gt;Programmer:&lt;/em&gt; &quot;And the project file doesn't change at all. So all our recreating he targets and build schemes, which seemed to fix it for a while, wasn't really doing anything.&quot;
&lt;/p&gt;

&lt;p&gt;
 &lt;em&gt;Magic Fairy:&lt;/em&gt; &quot;Yeah.&quot;
&lt;/p&gt;

&lt;p&gt;
&lt;em&gt;Programmer:&lt;/em&gt; &quot;And you're saying that once the bug goes away, it won't come back until you quit and relaunch Xcode. And vice versa.&quot;
&lt;/p&gt;

&lt;p&gt;
&lt;em&gt;Magic Fairy:&lt;/em&gt; &quot;Yeah.&quot;
&lt;/p&gt;

&lt;p&gt;
&lt;em&gt;Programmer:&lt;/em&gt; &quot;And that the bug actually never actually affects the project file on disk.&quot;
&lt;/p&gt;

&lt;p&gt;
&lt;em&gt;Magic Fairy:&lt;/em&gt; &quot;Right. The bug exists only in the spirit world.&quot;
&lt;/p&gt;

&lt;p&gt;
&lt;em&gt;Programmer:&lt;/em&gt; &quot;You mean the computer's volatile memory.&quot;
&lt;/p&gt;

&lt;p&gt;
&lt;em&gt;Magic Fairy:&lt;/em&gt; &quot;Whatever. You can use any abstraction that let's you wrap your little mind around it.&quot;
&lt;/p&gt;

&lt;p&gt;
&lt;em&gt;Programmer:&lt;/em&gt; &quot;So to really test whether something -- a scheme setting, a target name, the project name -- affects whether or not this bug manifests and breaks Xcode's test functionality, you have to make the change and perform the quit-relaunch-test sequence a bunch of times.&quot;
&lt;/p&gt;

&lt;p&gt;
&lt;em&gt;Magic Fairy:&lt;/em&gt; &quot;Ten times.&quot;
&lt;/p&gt;

&lt;p&gt;
&lt;em&gt;Programmer:&lt;/em&gt; &quot;Ten times.&quot;
&lt;/p&gt;

&lt;p&gt;
&lt;em&gt;Magic Fairy:&lt;/em&gt; &quot;Yeah.&quot;
&lt;/p&gt;

&lt;p&gt;
&lt;em&gt;Programmer:&lt;/em&gt; &quot;So how did &lt;em&gt;you&lt;/em&gt; figure this out?&quot;
&lt;/p&gt;

&lt;p&gt;
&lt;em&gt;Magic Fairy:&lt;/em&gt; &quot;Well, &lt;em&gt;chicks&lt;/em&gt; tend to be more methodical about this kind of thing. No need get all furious like some testosterone-overloaded roid-rager and smash your mouse down on the desk, or throw your beverage can against the wall. We don't tend to get so... &lt;em&gt;emotional&lt;/em&gt;. I mean, it's just a software bug. That makes it easier to keep a clear head and debug what is really going on.&quot;
&lt;/p&gt;

&lt;p&gt;
&lt;em&gt;Programmer:&lt;/em&gt; &quot;We don't really have to name the project after you, do we.&quot;
&lt;/p&gt;

&lt;p&gt;
&lt;em&gt;Magic Fairy:&lt;/em&gt; &quot;No.&quot;
&lt;/p&gt;

&lt;p&gt;
&lt;em&gt;Programmer:&lt;/em&gt; &quot;But the name cannot be the same as the command line executable.&quot;
&lt;/p&gt;

&lt;p&gt;
&lt;em&gt;Magic Fairy:&lt;/em&gt; &quot;Correct.&quot;
&lt;/p&gt;

&lt;p&gt;
&lt;em&gt;Programmer:&lt;/em&gt; &quot;How about 'babe-rater project.xcodeproj'?&quot;
&lt;/p&gt;

&lt;p&gt;
&lt;em&gt;Magic Fairy:&lt;/em&gt; &quot;No. The project name must not even &lt;em&gt;contain&lt;/em&gt; the name of the command line tool that it builds. Otherwise this bug will be summoned. Sometimes.&quot;
&lt;/p&gt;

&lt;p&gt;
&lt;em&gt;Programmer:&lt;/em&gt; &quot;But that's fucking lame! The project builds a tool called 'babe-rater'. Doesn't it make sense that the project should be named 'babe-rater.xcodeproj', or at least 'babe-rater something'?&quot;
&lt;/p&gt;

&lt;p&gt;
&lt;em&gt;Magic Fairy:&lt;/em&gt; &quot;It's not a matter of what makes sense. It's a matter of what stops the bug from being summoned.&quot;
&lt;/p&gt;

&lt;p&gt;
&lt;em&gt;Programmer:&lt;/em&gt; &quot;Well, did you at least file a bug?&quot;
&lt;/p&gt;

&lt;p&gt;
&lt;em&gt;Magic Fairy:&lt;/em&gt; &quot;&lt;em&gt;Sigh.&lt;/em&gt; No I did not file a bug. I find Apple's bug reporting process pretty odious, to be frank. Their system is slow and cumbersome. Most bugs are marked 'Duplicate' and they don't even show you the courtesy of giving you read permissions on the bug that yours is a dupe of. It's like throwing your effort into a black hole. A black hole with no &lt;em&gt;manners&lt;/em&gt;.&quot;
&lt;/p&gt;

&lt;p&gt;
&lt;em&gt;Programmer:&lt;/em&gt; &quot;Well, I don't want to have to keep giving my Xcode projects names that don't reflect what the project actually builds!&quot;
&lt;/p&gt;

&lt;p&gt;
&lt;em&gt;Magic Fairy:&lt;/em&gt; &quot;Then why don't &lt;em&gt;you&lt;/em&gt; file a fucking bug, sweetheart.&quot;
&lt;/p&gt;

&lt;p&gt;
&lt;em&gt;Programmer:&lt;/em&gt; &quot;Big mouth for such a little girl, eh?&quot;
&lt;/p&gt;

&lt;p&gt;
&lt;em&gt;Programmer:&lt;/em&gt; &quot;Shut up, dude. Okay, I'll file a bug.&quot;
&lt;/p&gt;

&lt;p&gt;
&lt;em&gt;Programmer:&lt;/em&gt; &quot;Okay, let's see... bugreporter.apple.com. Okay, here we go:
&lt;/p&gt;

&lt;figure class='code'&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;table&gt;&lt;tr&gt;&lt;td class=&quot;gutter&quot;&gt;&lt;pre class=&quot;line-numbers&quot;&gt;&lt;span class='line-number'&gt;1&lt;/span&gt;
&lt;span class='line-number'&gt;2&lt;/span&gt;
&lt;span class='line-number'&gt;3&lt;/span&gt;
&lt;span class='line-number'&gt;4&lt;/span&gt;
&lt;span class='line-number'&gt;5&lt;/span&gt;
&lt;span class='line-number'&gt;6&lt;/span&gt;
&lt;span class='line-number'&gt;7&lt;/span&gt;
&lt;span class='line-number'&gt;8&lt;/span&gt;
&lt;span class='line-number'&gt;9&lt;/span&gt;
&lt;span class='line-number'&gt;10&lt;/span&gt;
&lt;span class='line-number'&gt;11&lt;/span&gt;
&lt;span class='line-number'&gt;12&lt;/span&gt;
&lt;span class='line-number'&gt;13&lt;/span&gt;
&lt;span class='line-number'&gt;14&lt;/span&gt;
&lt;span class='line-number'&gt;15&lt;/span&gt;
&lt;span class='line-number'&gt;16&lt;/span&gt;
&lt;span class='line-number'&gt;17&lt;/span&gt;
&lt;span class='line-number'&gt;18&lt;/span&gt;
&lt;span class='line-number'&gt;19&lt;/span&gt;
&lt;span class='line-number'&gt;20&lt;/span&gt;
&lt;span class='line-number'&gt;21&lt;/span&gt;
&lt;span class='line-number'&gt;22&lt;/span&gt;
&lt;span class='line-number'&gt;23&lt;/span&gt;
&lt;span class='line-number'&gt;24&lt;/span&gt;
&lt;span class='line-number'&gt;25&lt;/span&gt;
&lt;span class='line-number'&gt;26&lt;/span&gt;
&lt;span class='line-number'&gt;27&lt;/span&gt;
&lt;span class='line-number'&gt;28&lt;/span&gt;
&lt;span class='line-number'&gt;29&lt;/span&gt;
&lt;span class='line-number'&gt;30&lt;/span&gt;
&lt;span class='line-number'&gt;31&lt;/span&gt;
&lt;span class='line-number'&gt;32&lt;/span&gt;
&lt;span class='line-number'&gt;33&lt;/span&gt;
&lt;span class='line-number'&gt;34&lt;/span&gt;
&lt;span class='line-number'&gt;35&lt;/span&gt;
&lt;span class='line-number'&gt;36&lt;/span&gt;
&lt;span class='line-number'&gt;37&lt;/span&gt;
&lt;span class='line-number'&gt;38&lt;/span&gt;
&lt;span class='line-number'&gt;39&lt;/span&gt;
&lt;span class='line-number'&gt;40&lt;/span&gt;
&lt;span class='line-number'&gt;41&lt;/span&gt;
&lt;span class='line-number'&gt;42&lt;/span&gt;
&lt;span class='line-number'&gt;43&lt;/span&gt;
&lt;span class='line-number'&gt;44&lt;/span&gt;
&lt;span class='line-number'&gt;45&lt;/span&gt;
&lt;span class='line-number'&gt;46&lt;/span&gt;
&lt;span class='line-number'&gt;47&lt;/span&gt;
&lt;span class='line-number'&gt;48&lt;/span&gt;
&lt;span class='line-number'&gt;49&lt;/span&gt;
&lt;span class='line-number'&gt;50&lt;/span&gt;
&lt;span class='line-number'&gt;51&lt;/span&gt;
&lt;span class='line-number'&gt;52&lt;/span&gt;
&lt;span class='line-number'&gt;53&lt;/span&gt;
&lt;span class='line-number'&gt;54&lt;/span&gt;
&lt;span class='line-number'&gt;55&lt;/span&gt;
&lt;span class='line-number'&gt;56&lt;/span&gt;
&lt;span class='line-number'&gt;57&lt;/span&gt;
&lt;span class='line-number'&gt;58&lt;/span&gt;
&lt;span class='line-number'&gt;59&lt;/span&gt;
&lt;span class='line-number'&gt;60&lt;/span&gt;
&lt;span class='line-number'&gt;61&lt;/span&gt;
&lt;span class='line-number'&gt;62&lt;/span&gt;
&lt;span class='line-number'&gt;63&lt;/span&gt;
&lt;span class='line-number'&gt;64&lt;/span&gt;
&lt;span class='line-number'&gt;65&lt;/span&gt;
&lt;span class='line-number'&gt;66&lt;/span&gt;
&lt;span class='line-number'&gt;67&lt;/span&gt;
&lt;span class='line-number'&gt;68&lt;/span&gt;
&lt;span class='line-number'&gt;69&lt;/span&gt;
&lt;span class='line-number'&gt;70&lt;/span&gt;
&lt;span class='line-number'&gt;71&lt;/span&gt;
&lt;span class='line-number'&gt;72&lt;/span&gt;
&lt;span class='line-number'&gt;73&lt;/span&gt;
&lt;span class='line-number'&gt;74&lt;/span&gt;
&lt;span class='line-number'&gt;75&lt;/span&gt;
&lt;span class='line-number'&gt;76&lt;/span&gt;
&lt;span class='line-number'&gt;77&lt;/span&gt;
&lt;span class='line-number'&gt;78&lt;/span&gt;
&lt;span class='line-number'&gt;79&lt;/span&gt;
&lt;span class='line-number'&gt;80&lt;/span&gt;
&lt;span class='line-number'&gt;81&lt;/span&gt;
&lt;span class='line-number'&gt;82&lt;/span&gt;
&lt;span class='line-number'&gt;83&lt;/span&gt;
&lt;span class='line-number'&gt;84&lt;/span&gt;
&lt;span class='line-number'&gt;85&lt;/span&gt;
&lt;span class='line-number'&gt;86&lt;/span&gt;
&lt;span class='line-number'&gt;87&lt;/span&gt;
&lt;span class='line-number'&gt;88&lt;/span&gt;
&lt;span class='line-number'&gt;89&lt;/span&gt;
&lt;span class='line-number'&gt;90&lt;/span&gt;
&lt;span class='line-number'&gt;91&lt;/span&gt;
&lt;span class='line-number'&gt;92&lt;/span&gt;
&lt;span class='line-number'&gt;93&lt;/span&gt;
&lt;span class='line-number'&gt;94&lt;/span&gt;
&lt;span class='line-number'&gt;95&lt;/span&gt;
&lt;span class='line-number'&gt;96&lt;/span&gt;
&lt;span class='line-number'&gt;97&lt;/span&gt;
&lt;span class='line-number'&gt;98&lt;/span&gt;
&lt;span class='line-number'&gt;99&lt;/span&gt;
&lt;span class='line-number'&gt;100&lt;/span&gt;
&lt;span class='line-number'&gt;101&lt;/span&gt;
&lt;span class='line-number'&gt;102&lt;/span&gt;
&lt;span class='line-number'&gt;103&lt;/span&gt;
&lt;span class='line-number'&gt;104&lt;/span&gt;
&lt;span class='line-number'&gt;105&lt;/span&gt;
&lt;span class='line-number'&gt;106&lt;/span&gt;
&lt;span class='line-number'&gt;107&lt;/span&gt;
&lt;span class='line-number'&gt;108&lt;/span&gt;
&lt;span class='line-number'&gt;109&lt;/span&gt;
&lt;span class='line-number'&gt;110&lt;/span&gt;
&lt;span class='line-number'&gt;111&lt;/span&gt;
&lt;span class='line-number'&gt;112&lt;/span&gt;
&lt;span class='line-number'&gt;113&lt;/span&gt;
&lt;span class='line-number'&gt;114&lt;/span&gt;
&lt;span class='line-number'&gt;115&lt;/span&gt;
&lt;span class='line-number'&gt;116&lt;/span&gt;
&lt;span class='line-number'&gt;117&lt;/span&gt;
&lt;span class='line-number'&gt;118&lt;/span&gt;
&lt;span class='line-number'&gt;119&lt;/span&gt;
&lt;span class='line-number'&gt;120&lt;/span&gt;
&lt;span class='line-number'&gt;121&lt;/span&gt;
&lt;span class='line-number'&gt;122&lt;/span&gt;
&lt;span class='line-number'&gt;123&lt;/span&gt;
&lt;span class='line-number'&gt;124&lt;/span&gt;
&lt;span class='line-number'&gt;125&lt;/span&gt;
&lt;span class='line-number'&gt;126&lt;/span&gt;
&lt;span class='line-number'&gt;127&lt;/span&gt;
&lt;span class='line-number'&gt;128&lt;/span&gt;
&lt;span class='line-number'&gt;129&lt;/span&gt;
&lt;span class='line-number'&gt;130&lt;/span&gt;
&lt;span class='line-number'&gt;131&lt;/span&gt;
&lt;span class='line-number'&gt;132&lt;/span&gt;
&lt;span class='line-number'&gt;133&lt;/span&gt;
&lt;span class='line-number'&gt;134&lt;/span&gt;
&lt;span class='line-number'&gt;135&lt;/span&gt;
&lt;span class='line-number'&gt;136&lt;/span&gt;
&lt;span class='line-number'&gt;137&lt;/span&gt;
&lt;span class='line-number'&gt;138&lt;/span&gt;
&lt;span class='line-number'&gt;139&lt;/span&gt;
&lt;span class='line-number'&gt;140&lt;/span&gt;
&lt;span class='line-number'&gt;141&lt;/span&gt;
&lt;span class='line-number'&gt;142&lt;/span&gt;
&lt;span class='line-number'&gt;143&lt;/span&gt;
&lt;span class='line-number'&gt;144&lt;/span&gt;
&lt;span class='line-number'&gt;145&lt;/span&gt;
&lt;span class='line-number'&gt;146&lt;/span&gt;
&lt;span class='line-number'&gt;147&lt;/span&gt;
&lt;span class='line-number'&gt;148&lt;/span&gt;
&lt;span class='line-number'&gt;149&lt;/span&gt;
&lt;span class='line-number'&gt;150&lt;/span&gt;
&lt;span class='line-number'&gt;151&lt;/span&gt;
&lt;span class='line-number'&gt;152&lt;/span&gt;
&lt;span class='line-number'&gt;153&lt;/span&gt;
&lt;span class='line-number'&gt;154&lt;/span&gt;
&lt;span class='line-number'&gt;155&lt;/span&gt;
&lt;span class='line-number'&gt;156&lt;/span&gt;
&lt;span class='line-number'&gt;157&lt;/span&gt;
&lt;span class='line-number'&gt;158&lt;/span&gt;
&lt;span class='line-number'&gt;159&lt;/span&gt;
&lt;span class='line-number'&gt;160&lt;/span&gt;
&lt;span class='line-number'&gt;161&lt;/span&gt;
&lt;span class='line-number'&gt;162&lt;/span&gt;
&lt;span class='line-number'&gt;163&lt;/span&gt;
&lt;span class='line-number'&gt;164&lt;/span&gt;
&lt;span class='line-number'&gt;165&lt;/span&gt;
&lt;span class='line-number'&gt;166&lt;/span&gt;
&lt;span class='line-number'&gt;167&lt;/span&gt;
&lt;span class='line-number'&gt;168&lt;/span&gt;
&lt;span class='line-number'&gt;169&lt;/span&gt;
&lt;span class='line-number'&gt;170&lt;/span&gt;
&lt;span class='line-number'&gt;171&lt;/span&gt;
&lt;span class='line-number'&gt;172&lt;/span&gt;
&lt;span class='line-number'&gt;173&lt;/span&gt;
&lt;span class='line-number'&gt;174&lt;/span&gt;
&lt;span class='line-number'&gt;175&lt;/span&gt;
&lt;span class='line-number'&gt;176&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;&lt;td class='code'&gt;&lt;pre&gt;&lt;code class=''&gt;&lt;span class='line'&gt;Title: Xcode randomly uses wrong executable for
&lt;/span&gt;&lt;span class='line'&gt;Test, runs no tests, reports tests pass
&lt;/span&gt;&lt;span class='line'&gt;
&lt;/span&gt;&lt;span class='line'&gt;Product: Developer Tools 
&lt;/span&gt;&lt;span class='line'&gt;
&lt;/span&gt;&lt;span class='line'&gt;Version: 4.2.1
&lt;/span&gt;&lt;span class='line'&gt;
&lt;/span&gt;&lt;span class='line'&gt;Summary:
&lt;/span&gt;&lt;span class='line'&gt;
&lt;/span&gt;&lt;span class='line'&gt;Xcode 4.2.1 becomes confused internally, and
&lt;/span&gt;&lt;span class='line'&gt;uses the wrong executable during the Test
&lt;/span&gt;&lt;span class='line'&gt;action. Instead of executing the executable
&lt;/span&gt;&lt;span class='line'&gt;specified in the Xcode scheme, and injecting the
&lt;/span&gt;&lt;span class='line'&gt;test bundle into it and running the tests, it
&lt;/span&gt;&lt;span class='line'&gt;picks a different executable and tries to use
&lt;/span&gt;&lt;span class='line'&gt;that. This can lead to no tests being run. But
&lt;/span&gt;&lt;span class='line'&gt;Xcode reports that the Test action has
&lt;/span&gt;&lt;span class='line'&gt;succeeded, as if all tests have passed, when in
&lt;/span&gt;&lt;span class='line'&gt;reality no tests have been run. Worst of all,
&lt;/span&gt;&lt;span class='line'&gt;though, this bug has a random component (it will
&lt;/span&gt;&lt;span class='line'&gt;happen say 3 to 6 times out of 10 launches of
&lt;/span&gt;&lt;span class='line'&gt;Xcode). The random component can make it
&lt;/span&gt;&lt;span class='line'&gt;extremely time-consuming for the developer to
&lt;/span&gt;&lt;span class='line'&gt;debug, since they may try various things to make
&lt;/span&gt;&lt;span class='line'&gt;it stop happening and get a false positive
&lt;/span&gt;&lt;span class='line'&gt;result.
&lt;/span&gt;&lt;span class='line'&gt;
&lt;/span&gt;&lt;span class='line'&gt;Steps to Reproduce:
&lt;/span&gt;&lt;span class='line'&gt;
&lt;/span&gt;&lt;span class='line'&gt;We have determined reproduction steps as
&lt;/span&gt;&lt;span class='line'&gt;described below. Note that these are not the
&lt;/span&gt;&lt;span class='line'&gt;only reproduction steps, as we've seen this bug
&lt;/span&gt;&lt;span class='line'&gt;hit in the wild when we didn't follow these
&lt;/span&gt;&lt;span class='line'&gt;exact steps. These are just the most succinct
&lt;/span&gt;&lt;span class='line'&gt;ones we could come up with. It is kind of
&lt;/span&gt;&lt;span class='line'&gt;complicated, so there is a bug demo project with
&lt;/span&gt;&lt;span class='line'&gt;a git commit at each step, located at:
&lt;/span&gt;&lt;span class='line'&gt;
&lt;/span&gt;&lt;span class='line'&gt;https://github.com/masonmark/
&lt;/span&gt;&lt;span class='line'&gt;XcodeCorruptOnOpenBugDemo
&lt;/span&gt;&lt;span class='line'&gt;
&lt;/span&gt;&lt;span class='line'&gt;You may find it easier to just check out that
&lt;/span&gt;&lt;span class='line'&gt;version to see the bug in action. Otherwise:
&lt;/span&gt;&lt;span class='line'&gt;
&lt;/span&gt;&lt;span class='line'&gt;1. Create a new application project using the
&lt;/span&gt;&lt;span class='line'&gt;built-in &quot;Cocoa Application&quot; template. Check the
&lt;/span&gt;&lt;span class='line'&gt;&quot;Include Unit Tests&quot; option so it also creates a
&lt;/span&gt;&lt;span class='line'&gt;test bundle. Use the project name
&lt;/span&gt;&lt;span class='line'&gt;&quot;XcodeCorruptOnOpenBugDemo&quot;.
&lt;/span&gt;&lt;span class='line'&gt;
&lt;/span&gt;&lt;span class='line'&gt;2. Run the Test action (Cmd-U) to be sure the
&lt;/span&gt;&lt;span class='line'&gt;tests fail as they should (the default test
&lt;/span&gt;&lt;span class='line'&gt;fails).
&lt;/span&gt;&lt;span class='line'&gt;
&lt;/span&gt;&lt;span class='line'&gt;3.  Add a new Target to the project, using the
&lt;/span&gt;&lt;span class='line'&gt;built-in 'Command Line Tool' template. For the
&lt;/span&gt;&lt;span class='line'&gt;product name, put
&lt;/span&gt;&lt;span class='line'&gt;'XcodeCorruptOnOpenBugDemoTool'. Hit Cmd-U,
&lt;/span&gt;&lt;span class='line'&gt;confirm 'Test Failed', quit Xcode.
&lt;/span&gt;&lt;span class='line'&gt;
&lt;/span&gt;&lt;span class='line'&gt;4. Reopen project. In the 'Manage Schemes'
&lt;/span&gt;&lt;span class='line'&gt;dialog, delete the scheme
&lt;/span&gt;&lt;span class='line'&gt;'XcodeCorruptOnOpenBugDemoTool' that was
&lt;/span&gt;&lt;span class='line'&gt;automatically created in step 3. Hit Cmd-U,
&lt;/span&gt;&lt;span class='line'&gt;confirm 'Test Failed', quit Xcode.
&lt;/span&gt;&lt;span class='line'&gt;
&lt;/span&gt;&lt;span class='line'&gt;5. Reopen project. Rename the original
&lt;/span&gt;&lt;span class='line'&gt;'XcodeCorruptOnOpenBugDemo' target (the .app
&lt;/span&gt;&lt;span class='line'&gt;bundle) to 'XcodeCorruptOnOpenBugDemo-app'. Next
&lt;/span&gt;&lt;span class='line'&gt;rename the original
&lt;/span&gt;&lt;span class='line'&gt;'XcodeCorruptOnOpenBugDemoTool' target to
&lt;/span&gt;&lt;span class='line'&gt;'XcodeCorruptOnOpenBugDemo'. (NOTE:  The reason
&lt;/span&gt;&lt;span class='line'&gt;for doing this in the real world is that we
&lt;/span&gt;&lt;span class='line'&gt;really want to build a command line tool, not an
&lt;/span&gt;&lt;span class='line'&gt;.app bundle. But since Xcode 4.2.1 cannot run
&lt;/span&gt;&lt;span class='line'&gt;tests against a command line tool, this project
&lt;/span&gt;&lt;span class='line'&gt;will also build an .app bundle against which to
&lt;/span&gt;&lt;span class='line'&gt;run the test. The test host .app will include
&lt;/span&gt;&lt;span class='line'&gt;all the classes from the command line tool, so
&lt;/span&gt;&lt;span class='line'&gt;that they may be unit tested.)
&lt;/span&gt;&lt;span class='line'&gt;
&lt;/span&gt;&lt;span class='line'&gt;6. Reopen project. Hit Cmd-U. Note that you now
&lt;/span&gt;&lt;span class='line'&gt;get 'Test Succeeded' even though you shouldn't.
&lt;/span&gt;&lt;span class='line'&gt;Xcode is now using the command line executable
&lt;/span&gt;&lt;span class='line'&gt;instead of the app bundle to run the tests. 
&lt;/span&gt;&lt;span class='line'&gt;(This is the mild form of the bug.)
&lt;/span&gt;&lt;span class='line'&gt;
&lt;/span&gt;&lt;span class='line'&gt;7. Rename the project, from within Xcode. Append
&lt;/span&gt;&lt;span class='line'&gt;&quot; project&quot; so that the project name becomes
&lt;/span&gt;&lt;span class='line'&gt;&quot;XcodeCorruptOnOpenBugDemo project&quot;. Decline
&lt;/span&gt;&lt;span class='line'&gt;Xcode's offer to rename other things for you.
&lt;/span&gt;&lt;span class='line'&gt;Quit Xcode.
&lt;/span&gt;&lt;span class='line'&gt;
&lt;/span&gt;&lt;span class='line'&gt;8. Now, do the following ten (10) times:
&lt;/span&gt;&lt;span class='line'&gt;
&lt;/span&gt;&lt;span class='line'&gt;8a. Reopen the project. 8b. Cmd-U to run the
&lt;/span&gt;&lt;span class='line'&gt;tests. 8c. On a scrap of paper, if Xcode
&lt;/span&gt;&lt;span class='line'&gt;indicates test failure, write 'OK', otherwise
&lt;/span&gt;&lt;span class='line'&gt;write 'BOGUS'. 8d. Quit Xcode.
&lt;/span&gt;&lt;span class='line'&gt;
&lt;/span&gt;&lt;span class='line'&gt;Expected Results:
&lt;/span&gt;&lt;span class='line'&gt;
&lt;/span&gt;&lt;span class='line'&gt;The expected results are that Xcode runs the
&lt;/span&gt;&lt;span class='line'&gt;test bundle as specified in the scheme. That is,
&lt;/span&gt;&lt;span class='line'&gt;it should launch the
&lt;/span&gt;&lt;span class='line'&gt;'XcodeCorruptOnOpenBugDemo-app.app' executable,
&lt;/span&gt;&lt;span class='line'&gt;inject the test bundle, run the test, and report
&lt;/span&gt;&lt;span class='line'&gt;the failure. Your scrap of paper should say 'OK
&lt;/span&gt;&lt;span class='line'&gt;OK OK OK OK OK OK OK OK OK'.
&lt;/span&gt;&lt;span class='line'&gt;
&lt;/span&gt;&lt;span class='line'&gt;Actual Results:
&lt;/span&gt;&lt;span class='line'&gt;
&lt;/span&gt;&lt;span class='line'&gt;The actual result is that Xcode sometimes, at
&lt;/span&gt;&lt;span class='line'&gt;random, decides to run the
&lt;/span&gt;&lt;span class='line'&gt;'XcodeCorruptOnOpenBugDemo' command line tool
&lt;/span&gt;&lt;span class='line'&gt;executable instead. In this case, no tests will
&lt;/span&gt;&lt;span class='line'&gt;be executed, so no tests will fail, so Xcode
&lt;/span&gt;&lt;span class='line'&gt;will report 'Test Succeeded'. In my test while
&lt;/span&gt;&lt;span class='line'&gt;writing this bug report, I just got 'OK OK OK
&lt;/span&gt;&lt;span class='line'&gt;BOGUS OK BOGUS BOGUS BOGUS BOGUS BOGUS'
&lt;/span&gt;&lt;span class='line'&gt;
&lt;/span&gt;&lt;span class='line'&gt;Regression:
&lt;/span&gt;&lt;span class='line'&gt;
&lt;/span&gt;&lt;span class='line'&gt;We can reproduce the bug at will with an Xcode
&lt;/span&gt;&lt;span class='line'&gt;4.2.1 project, created from the Xcode 4.2.1
&lt;/span&gt;&lt;span class='line'&gt;built in templates, that has one .app bundle
&lt;/span&gt;&lt;span class='line'&gt;target, one .octest bundle target, and one
&lt;/span&gt;&lt;span class='line'&gt;command-line tool target.
&lt;/span&gt;&lt;span class='line'&gt;
&lt;/span&gt;&lt;span class='line'&gt;We have not investigated whether it happens with
&lt;/span&gt;&lt;span class='line'&gt;a project with two .app bundle targets and no
&lt;/span&gt;&lt;span class='line'&gt;command-line tool targets.
&lt;/span&gt;&lt;span class='line'&gt;
&lt;/span&gt;&lt;span class='line'&gt;Notes:
&lt;/span&gt;&lt;span class='line'&gt;
&lt;/span&gt;&lt;span class='line'&gt;1.) If the bug was just as we left it in Step 6,
&lt;/span&gt;&lt;span class='line'&gt;it would still be a bug, but not such a big
&lt;/span&gt;&lt;span class='line'&gt;deal. A programmer could probably figure out
&lt;/span&gt;&lt;span class='line'&gt;that if the project name was the same as the
&lt;/span&gt;&lt;span class='line'&gt;command-line tool's name, Xcode would mistakenly
&lt;/span&gt;&lt;span class='line'&gt;use the command-line tool to run the tests.
&lt;/span&gt;&lt;span class='line'&gt;
&lt;/span&gt;&lt;span class='line'&gt;But the fact that the project need only CONTAIN
&lt;/span&gt;&lt;span class='line'&gt;the name of the command-line tool executable,
&lt;/span&gt;&lt;span class='line'&gt;combined with the fact that the bug only occurs
&lt;/span&gt;&lt;span class='line'&gt;30% to 60% of the time, made this take HOURS to
&lt;/span&gt;&lt;span class='line'&gt;figure out.
&lt;/span&gt;&lt;span class='line'&gt;
&lt;/span&gt;&lt;span class='line'&gt;2.) For whatever reason, whether or not the bug
&lt;/span&gt;&lt;span class='line'&gt;occurs is somehow decided when Xcode launches.
&lt;/span&gt;&lt;span class='line'&gt;You have to actually quit and relaunch Xcode to
&lt;/span&gt;&lt;span class='line'&gt;have a chance at getting the opposite behavior.
&lt;/span&gt;&lt;span class='line'&gt;Simply closing and reopening the project doesn't
&lt;/span&gt;&lt;span class='line'&gt;do it.
&lt;/span&gt;&lt;span class='line'&gt;
&lt;/span&gt;&lt;span class='line'&gt;3.) For the exciting story of two hapless
&lt;/span&gt;&lt;span class='line'&gt;programmers who encounter this bug and find
&lt;/span&gt;&lt;span class='line'&gt;their lives turned upside down in a frenzy of
&lt;/span&gt;&lt;span class='line'&gt;violence, magic, and poignant human drama, see:
&lt;/span&gt;&lt;span class='line'&gt;
&lt;/span&gt;&lt;span class='line'&gt;htt&amp;lt;em&amp;gt;Programmer:&amp;lt;/em&amp;gt;//masonmark.com/the-xcode
&lt;/span&gt;&lt;span class='line'&gt;-fairy
&lt;/span&gt;&lt;span class='line'&gt;
&lt;/span&gt;&lt;span class='line'&gt;4.) The demo project is on GitHub at the URL
&lt;/span&gt;&lt;span class='line'&gt;below. However, please ignore the commentary
&lt;/span&gt;&lt;span class='line'&gt;about copying the command-line executable into
&lt;/span&gt;&lt;span class='line'&gt;the test bundle. That step turns out to be
&lt;/span&gt;&lt;span class='line'&gt;unnecessary to trigger the bug.
&lt;/span&gt;&lt;span class='line'&gt;
&lt;/span&gt;&lt;span class='line'&gt;https://github.com/masonmark/
&lt;/span&gt;&lt;span class='line'&gt;XcodeCorruptOnOpenBugDemo
&lt;/span&gt;&lt;span class='line'&gt;
&lt;/span&gt;&lt;span class='line'&gt;5.) I think there are two related bugs here:
&lt;/span&gt;&lt;span class='line'&gt;Xcode sometimes lying about test results, and
&lt;/span&gt;&lt;span class='line'&gt;Xcode no longer being able to run tests against
&lt;/span&gt;&lt;span class='line'&gt;command line tools. I'll file those separately.&quot;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;p&gt;
&lt;em&gt;Programmer:&lt;/em&gt; &quot;You will, huh? You up your Adderall dose or something?&quot;
&lt;/p&gt;

&lt;p&gt;
&lt;em&gt;Magic Fairy:&lt;/em&gt; &quot;I think you should add 'Thanks.' at the bottom.&quot;
&lt;/p&gt;

&lt;p&gt;
&lt;em&gt;Programmer:&lt;/em&gt; &quot;Okay, added. Now I'll just click Submit here, and... fuck!&quot;
&lt;/p&gt;

&lt;p&gt;
&lt;em&gt;Magic Fairy:&lt;/em&gt; &quot;Ha ha ha! Typical!&quot;
&lt;/p&gt;

&lt;p&gt;
&lt;em&gt;Programmer:&lt;/em&gt; &quot;What? What does it say?&quot;
&lt;/p&gt;

&lt;p&gt;
&lt;em&gt;Programmer:&lt;/em&gt; &quot;It says 'java.io.EOFException Broken pipe'.&quot;
&lt;/p&gt;

&lt;p&gt;
&lt;em&gt;Programmer:&lt;/em&gt; &quot;Hit Submit again.&quot;
&lt;/p&gt;

&lt;p&gt;
&lt;em&gt;Programmer:&lt;/em&gt; &quot;Now it says, 'Broken pipeBroken pipe'.&quot;
&lt;/p&gt;

&lt;p&gt;
&lt;em&gt;Magic Fairy:&lt;/em&gt; &quot;Ha ha ha! Ha ha ha!&quot;
&lt;/p&gt;

&lt;p&gt;
&lt;em&gt;Programmer:&lt;/em&gt; &quot;Okay, I'm gonna log out and log back in and paste that in. And... Okay. Filed. Bug ID# 10532871.&quot;
&lt;/p&gt;

&lt;p&gt;
&lt;em&gt;Programmer:&lt;/em&gt; &quot;Fuck it dude, I'm outta here. You and your little friend can file all the bug reports you want. All I care about is that we can work around it, which we now can. I'll see you Monday. &quot;
&lt;/p&gt;

&lt;p&gt;
&lt;em&gt;Programmer:&lt;/em&gt; &quot;Whatever. Bye.&quot;
&lt;/p&gt;

&lt;p&gt;
&lt;em&gt;Magic Fairy:&lt;/em&gt; &quot;I don't like your friend.&quot;
&lt;/p&gt;

&lt;p&gt;
&lt;em&gt;Programmer:&lt;/em&gt; &quot;We're not exactly friends.&quot;
&lt;/p&gt;

&lt;p&gt;
&lt;em&gt;Magic Fairy:&lt;/em&gt; &quot;Okay.&quot;
&lt;/p&gt;

&lt;p&gt;
&lt;em&gt;Programmer:&lt;/em&gt; &quot;You wanna like, uh, go get a drink or something?&quot;
&lt;/p&gt;

&lt;p&gt;
&lt;em&gt;Magic Fairy:&lt;/em&gt; &quot;I'm not really much of a drinker.&quot;
&lt;/p&gt;

&lt;p&gt;
&lt;em&gt;Programmer:&lt;/em&gt; &quot;Oh. Well, um, I guess--&quot;
&lt;/p&gt;

&lt;p&gt;
&lt;em&gt;Magic Fairy:&lt;/em&gt; &quot;I'd smoke a little weed if you got it, though.&quot;
&lt;/p&gt;

&lt;p&gt;
&lt;em&gt;Programmer:&lt;/em&gt; &quot;What? Uh, sure, sure! I don't have any on me, but my place is only a few minutes away. Let's go.&quot;
&lt;/p&gt;

&lt;p&gt;
&lt;em&gt;Magic Fairy:&lt;/em&gt; &quot;What about those other bug reports?&quot;
&lt;/p&gt;

&lt;p&gt;
&lt;em&gt;Programmer:&lt;/em&gt; &quot;Fuck it. One good deed per day's enough for me. Come on.&quot;
&lt;/p&gt;

&lt;p&gt;
&lt;em&gt;Magic Fairy:&lt;/em&gt; &quot;♪ ♬ ☆ ♡・・・&quot;
&lt;/p&gt;


&lt;p&gt;
At this point, as the programmer gathers up his gear and his bag and heads for the exit, from her vantage point floating along behind him, the magical fairy might see him tear off and crumple up and discard a piece of graph paper from his notebook, upon which was scrawled:
&lt;/p&gt;

&lt;figure class='code'&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;table&gt;&lt;tr&gt;&lt;td class=&quot;gutter&quot;&gt;&lt;pre class=&quot;line-numbers&quot;&gt;&lt;span class='line-number'&gt;1&lt;/span&gt;
&lt;span class='line-number'&gt;2&lt;/span&gt;
&lt;span class='line-number'&gt;3&lt;/span&gt;
&lt;span class='line-number'&gt;4&lt;/span&gt;
&lt;span class='line-number'&gt;5&lt;/span&gt;
&lt;span class='line-number'&gt;6&lt;/span&gt;
&lt;span class='line-number'&gt;7&lt;/span&gt;
&lt;span class='line-number'&gt;8&lt;/span&gt;
&lt;span class='line-number'&gt;9&lt;/span&gt;
&lt;span class='line-number'&gt;10&lt;/span&gt;
&lt;span class='line-number'&gt;11&lt;/span&gt;
&lt;span class='line-number'&gt;12&lt;/span&gt;
&lt;span class='line-number'&gt;13&lt;/span&gt;
&lt;span class='line-number'&gt;14&lt;/span&gt;
&lt;span class='line-number'&gt;15&lt;/span&gt;
&lt;span class='line-number'&gt;16&lt;/span&gt;
&lt;span class='line-number'&gt;17&lt;/span&gt;
&lt;span class='line-number'&gt;18&lt;/span&gt;
&lt;span class='line-number'&gt;19&lt;/span&gt;
&lt;span class='line-number'&gt;20&lt;/span&gt;
&lt;span class='line-number'&gt;21&lt;/span&gt;
&lt;span class='line-number'&gt;22&lt;/span&gt;
&lt;span class='line-number'&gt;23&lt;/span&gt;
&lt;span class='line-number'&gt;24&lt;/span&gt;
&lt;span class='line-number'&gt;25&lt;/span&gt;
&lt;span class='line-number'&gt;26&lt;/span&gt;
&lt;span class='line-number'&gt;27&lt;/span&gt;
&lt;span class='line-number'&gt;28&lt;/span&gt;
&lt;span class='line-number'&gt;29&lt;/span&gt;
&lt;span class='line-number'&gt;30&lt;/span&gt;
&lt;span class='line-number'&gt;31&lt;/span&gt;
&lt;span class='line-number'&gt;32&lt;/span&gt;
&lt;span class='line-number'&gt;33&lt;/span&gt;
&lt;span class='line-number'&gt;34&lt;/span&gt;
&lt;span class='line-number'&gt;35&lt;/span&gt;
&lt;span class='line-number'&gt;36&lt;/span&gt;
&lt;span class='line-number'&gt;37&lt;/span&gt;
&lt;span class='line-number'&gt;38&lt;/span&gt;
&lt;span class='line-number'&gt;39&lt;/span&gt;
&lt;span class='line-number'&gt;40&lt;/span&gt;
&lt;span class='line-number'&gt;41&lt;/span&gt;
&lt;span class='line-number'&gt;42&lt;/span&gt;
&lt;span class='line-number'&gt;43&lt;/span&gt;
&lt;span class='line-number'&gt;44&lt;/span&gt;
&lt;span class='line-number'&gt;45&lt;/span&gt;
&lt;span class='line-number'&gt;46&lt;/span&gt;
&lt;span class='line-number'&gt;47&lt;/span&gt;
&lt;span class='line-number'&gt;48&lt;/span&gt;
&lt;span class='line-number'&gt;49&lt;/span&gt;
&lt;span class='line-number'&gt;50&lt;/span&gt;
&lt;span class='line-number'&gt;51&lt;/span&gt;
&lt;span class='line-number'&gt;52&lt;/span&gt;
&lt;span class='line-number'&gt;53&lt;/span&gt;
&lt;span class='line-number'&gt;54&lt;/span&gt;
&lt;span class='line-number'&gt;55&lt;/span&gt;
&lt;span class='line-number'&gt;56&lt;/span&gt;
&lt;span class='line-number'&gt;57&lt;/span&gt;
&lt;span class='line-number'&gt;58&lt;/span&gt;
&lt;span class='line-number'&gt;59&lt;/span&gt;
&lt;span class='line-number'&gt;60&lt;/span&gt;
&lt;span class='line-number'&gt;61&lt;/span&gt;
&lt;span class='line-number'&gt;62&lt;/span&gt;
&lt;span class='line-number'&gt;63&lt;/span&gt;
&lt;span class='line-number'&gt;64&lt;/span&gt;
&lt;span class='line-number'&gt;65&lt;/span&gt;
&lt;span class='line-number'&gt;66&lt;/span&gt;
&lt;span class='line-number'&gt;67&lt;/span&gt;
&lt;span class='line-number'&gt;68&lt;/span&gt;
&lt;span class='line-number'&gt;69&lt;/span&gt;
&lt;span class='line-number'&gt;70&lt;/span&gt;
&lt;span class='line-number'&gt;71&lt;/span&gt;
&lt;span class='line-number'&gt;72&lt;/span&gt;
&lt;span class='line-number'&gt;73&lt;/span&gt;
&lt;span class='line-number'&gt;74&lt;/span&gt;
&lt;span class='line-number'&gt;75&lt;/span&gt;
&lt;span class='line-number'&gt;76&lt;/span&gt;
&lt;span class='line-number'&gt;77&lt;/span&gt;
&lt;span class='line-number'&gt;78&lt;/span&gt;
&lt;span class='line-number'&gt;79&lt;/span&gt;
&lt;span class='line-number'&gt;80&lt;/span&gt;
&lt;span class='line-number'&gt;81&lt;/span&gt;
&lt;span class='line-number'&gt;82&lt;/span&gt;
&lt;span class='line-number'&gt;83&lt;/span&gt;
&lt;span class='line-number'&gt;84&lt;/span&gt;
&lt;span class='line-number'&gt;85&lt;/span&gt;
&lt;span class='line-number'&gt;86&lt;/span&gt;
&lt;span class='line-number'&gt;87&lt;/span&gt;
&lt;span class='line-number'&gt;88&lt;/span&gt;
&lt;span class='line-number'&gt;89&lt;/span&gt;
&lt;span class='line-number'&gt;90&lt;/span&gt;
&lt;span class='line-number'&gt;91&lt;/span&gt;
&lt;span class='line-number'&gt;92&lt;/span&gt;
&lt;span class='line-number'&gt;93&lt;/span&gt;
&lt;span class='line-number'&gt;94&lt;/span&gt;
&lt;span class='line-number'&gt;95&lt;/span&gt;
&lt;span class='line-number'&gt;96&lt;/span&gt;
&lt;span class='line-number'&gt;97&lt;/span&gt;
&lt;span class='line-number'&gt;98&lt;/span&gt;
&lt;span class='line-number'&gt;99&lt;/span&gt;
&lt;span class='line-number'&gt;100&lt;/span&gt;
&lt;span class='line-number'&gt;101&lt;/span&gt;
&lt;span class='line-number'&gt;102&lt;/span&gt;
&lt;span class='line-number'&gt;103&lt;/span&gt;
&lt;span class='line-number'&gt;104&lt;/span&gt;
&lt;span class='line-number'&gt;105&lt;/span&gt;
&lt;span class='line-number'&gt;106&lt;/span&gt;
&lt;span class='line-number'&gt;107&lt;/span&gt;
&lt;span class='line-number'&gt;108&lt;/span&gt;
&lt;span class='line-number'&gt;109&lt;/span&gt;
&lt;span class='line-number'&gt;110&lt;/span&gt;
&lt;span class='line-number'&gt;111&lt;/span&gt;
&lt;span class='line-number'&gt;112&lt;/span&gt;
&lt;span class='line-number'&gt;113&lt;/span&gt;
&lt;span class='line-number'&gt;114&lt;/span&gt;
&lt;span class='line-number'&gt;115&lt;/span&gt;
&lt;span class='line-number'&gt;116&lt;/span&gt;
&lt;span class='line-number'&gt;117&lt;/span&gt;
&lt;span class='line-number'&gt;118&lt;/span&gt;
&lt;span class='line-number'&gt;119&lt;/span&gt;
&lt;span class='line-number'&gt;120&lt;/span&gt;
&lt;span class='line-number'&gt;121&lt;/span&gt;
&lt;span class='line-number'&gt;122&lt;/span&gt;
&lt;span class='line-number'&gt;123&lt;/span&gt;
&lt;span class='line-number'&gt;124&lt;/span&gt;
&lt;span class='line-number'&gt;125&lt;/span&gt;
&lt;span class='line-number'&gt;126&lt;/span&gt;
&lt;span class='line-number'&gt;127&lt;/span&gt;
&lt;span class='line-number'&gt;128&lt;/span&gt;
&lt;span class='line-number'&gt;129&lt;/span&gt;
&lt;span class='line-number'&gt;130&lt;/span&gt;
&lt;span class='line-number'&gt;131&lt;/span&gt;
&lt;span class='line-number'&gt;132&lt;/span&gt;
&lt;span class='line-number'&gt;133&lt;/span&gt;
&lt;span class='line-number'&gt;134&lt;/span&gt;
&lt;span class='line-number'&gt;135&lt;/span&gt;
&lt;span class='line-number'&gt;136&lt;/span&gt;
&lt;span class='line-number'&gt;137&lt;/span&gt;
&lt;span class='line-number'&gt;138&lt;/span&gt;
&lt;span class='line-number'&gt;139&lt;/span&gt;
&lt;span class='line-number'&gt;140&lt;/span&gt;
&lt;span class='line-number'&gt;141&lt;/span&gt;
&lt;span class='line-number'&gt;142&lt;/span&gt;
&lt;span class='line-number'&gt;143&lt;/span&gt;
&lt;span class='line-number'&gt;144&lt;/span&gt;
&lt;span class='line-number'&gt;145&lt;/span&gt;
&lt;span class='line-number'&gt;146&lt;/span&gt;
&lt;span class='line-number'&gt;147&lt;/span&gt;
&lt;span class='line-number'&gt;148&lt;/span&gt;
&lt;span class='line-number'&gt;149&lt;/span&gt;
&lt;span class='line-number'&gt;150&lt;/span&gt;
&lt;span class='line-number'&gt;151&lt;/span&gt;
&lt;span class='line-number'&gt;152&lt;/span&gt;
&lt;span class='line-number'&gt;153&lt;/span&gt;
&lt;span class='line-number'&gt;154&lt;/span&gt;
&lt;span class='line-number'&gt;155&lt;/span&gt;
&lt;span class='line-number'&gt;156&lt;/span&gt;
&lt;span class='line-number'&gt;157&lt;/span&gt;
&lt;span class='line-number'&gt;158&lt;/span&gt;
&lt;span class='line-number'&gt;159&lt;/span&gt;
&lt;span class='line-number'&gt;160&lt;/span&gt;
&lt;span class='line-number'&gt;161&lt;/span&gt;
&lt;span class='line-number'&gt;162&lt;/span&gt;
&lt;span class='line-number'&gt;163&lt;/span&gt;
&lt;span class='line-number'&gt;164&lt;/span&gt;
&lt;span class='line-number'&gt;165&lt;/span&gt;
&lt;span class='line-number'&gt;166&lt;/span&gt;
&lt;span class='line-number'&gt;167&lt;/span&gt;
&lt;span class='line-number'&gt;168&lt;/span&gt;
&lt;span class='line-number'&gt;169&lt;/span&gt;
&lt;span class='line-number'&gt;170&lt;/span&gt;
&lt;span class='line-number'&gt;171&lt;/span&gt;
&lt;span class='line-number'&gt;172&lt;/span&gt;
&lt;span class='line-number'&gt;173&lt;/span&gt;
&lt;span class='line-number'&gt;174&lt;/span&gt;
&lt;span class='line-number'&gt;175&lt;/span&gt;
&lt;span class='line-number'&gt;176&lt;/span&gt;
&lt;span class='line-number'&gt;177&lt;/span&gt;
&lt;span class='line-number'&gt;178&lt;/span&gt;
&lt;span class='line-number'&gt;179&lt;/span&gt;
&lt;span class='line-number'&gt;180&lt;/span&gt;
&lt;span class='line-number'&gt;181&lt;/span&gt;
&lt;span class='line-number'&gt;182&lt;/span&gt;
&lt;span class='line-number'&gt;183&lt;/span&gt;
&lt;span class='line-number'&gt;184&lt;/span&gt;
&lt;span class='line-number'&gt;185&lt;/span&gt;
&lt;span class='line-number'&gt;186&lt;/span&gt;
&lt;span class='line-number'&gt;187&lt;/span&gt;
&lt;span class='line-number'&gt;188&lt;/span&gt;
&lt;span class='line-number'&gt;189&lt;/span&gt;
&lt;span class='line-number'&gt;190&lt;/span&gt;
&lt;span class='line-number'&gt;191&lt;/span&gt;
&lt;span class='line-number'&gt;192&lt;/span&gt;
&lt;span class='line-number'&gt;193&lt;/span&gt;
&lt;span class='line-number'&gt;194&lt;/span&gt;
&lt;span class='line-number'&gt;195&lt;/span&gt;
&lt;span class='line-number'&gt;196&lt;/span&gt;
&lt;span class='line-number'&gt;197&lt;/span&gt;
&lt;span class='line-number'&gt;198&lt;/span&gt;
&lt;span class='line-number'&gt;199&lt;/span&gt;
&lt;span class='line-number'&gt;200&lt;/span&gt;
&lt;span class='line-number'&gt;201&lt;/span&gt;
&lt;span class='line-number'&gt;202&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;&lt;td class='code'&gt;&lt;pre&gt;&lt;code class=''&gt;&lt;span class='line'&gt;Rename project to 'FUCKXCODE':
&lt;/span&gt;&lt;span class='line'&gt;
&lt;/span&gt;&lt;span class='line'&gt;10 launches, OK.
&lt;/span&gt;&lt;span class='line'&gt;
&lt;/span&gt;&lt;span class='line'&gt;Rename project to 'FUCKXCODE babe-rater'
&lt;/span&gt;&lt;span class='line'&gt;1.  BOGUS
&lt;/span&gt;&lt;span class='line'&gt;2.  OK
&lt;/span&gt;&lt;span class='line'&gt;3.  OK
&lt;/span&gt;&lt;span class='line'&gt;4.  BOGUS
&lt;/span&gt;&lt;span class='line'&gt;5.  BOGUS
&lt;/span&gt;&lt;span class='line'&gt;6.  BOGUS
&lt;/span&gt;&lt;span class='line'&gt;7.  BOGUS
&lt;/span&gt;&lt;span class='line'&gt;8.  BOGUS
&lt;/span&gt;&lt;span class='line'&gt;9.  OK
&lt;/span&gt;&lt;span class='line'&gt;10. BOGUS
&lt;/span&gt;&lt;span class='line'&gt;
&lt;/span&gt;&lt;span class='line'&gt;Rename project to 'FUCKXCODE-babe-rater'
&lt;/span&gt;&lt;span class='line'&gt;1.  OK
&lt;/span&gt;&lt;span class='line'&gt;2.  BOGUS
&lt;/span&gt;&lt;span class='line'&gt;3.  OK
&lt;/span&gt;&lt;span class='line'&gt;4.  BOGUS
&lt;/span&gt;&lt;span class='line'&gt;5.  OK
&lt;/span&gt;&lt;span class='line'&gt;6.  OK
&lt;/span&gt;&lt;span class='line'&gt;7.  OK
&lt;/span&gt;&lt;span class='line'&gt;8.  OK
&lt;/span&gt;&lt;span class='line'&gt;9.  BOGUS
&lt;/span&gt;&lt;span class='line'&gt;10. BOGUS
&lt;/span&gt;&lt;span class='line'&gt;
&lt;/span&gt;&lt;span class='line'&gt;Turn off parallelize:
&lt;/span&gt;&lt;span class='line'&gt;1. OK
&lt;/span&gt;&lt;span class='line'&gt;2. OK
&lt;/span&gt;&lt;span class='line'&gt;3. OK
&lt;/span&gt;&lt;span class='line'&gt;4. BOGUS
&lt;/span&gt;&lt;span class='line'&gt;5. BOGUS
&lt;/span&gt;&lt;span class='line'&gt;6. BOGUS
&lt;/span&gt;&lt;span class='line'&gt;7. OK
&lt;/span&gt;&lt;span class='line'&gt;8. BOGUS
&lt;/span&gt;&lt;span class='line'&gt;9. OK
&lt;/span&gt;&lt;span class='line'&gt;10. OK
&lt;/span&gt;&lt;span class='line'&gt;(turn it back on since it made no difference)
&lt;/span&gt;&lt;span class='line'&gt;
&lt;/span&gt;&lt;span class='line'&gt;Rename  project to 'babe rater'
&lt;/span&gt;&lt;span class='line'&gt;1. OK
&lt;/span&gt;&lt;span class='line'&gt;2. OK
&lt;/span&gt;&lt;span class='line'&gt;3. OK
&lt;/span&gt;&lt;span class='line'&gt;4. OK
&lt;/span&gt;&lt;span class='line'&gt;5. OK (cleaned here)
&lt;/span&gt;&lt;span class='line'&gt;6. OK
&lt;/span&gt;&lt;span class='line'&gt;7. OK
&lt;/span&gt;&lt;span class='line'&gt;8. OK
&lt;/span&gt;&lt;span class='line'&gt;9. OK
&lt;/span&gt;&lt;span class='line'&gt;10. OK
&lt;/span&gt;&lt;span class='line'&gt;
&lt;/span&gt;&lt;span class='line'&gt;Rename scheme to same as tool
&lt;/span&gt;&lt;span class='line'&gt;0. OK
&lt;/span&gt;&lt;span class='line'&gt;1. OK
&lt;/span&gt;&lt;span class='line'&gt;2. OK
&lt;/span&gt;&lt;span class='line'&gt;3. OK
&lt;/span&gt;&lt;span class='line'&gt;4. OK
&lt;/span&gt;&lt;span class='line'&gt;5. OK
&lt;/span&gt;&lt;span class='line'&gt;6. OK 
&lt;/span&gt;&lt;span class='line'&gt;7. OK
&lt;/span&gt;&lt;span class='line'&gt;8. OK
&lt;/span&gt;&lt;span class='line'&gt;9. OK
&lt;/span&gt;&lt;span class='line'&gt;
&lt;/span&gt;&lt;span class='line'&gt;Conclusion: scheme name actually not relevant.
&lt;/span&gt;&lt;span class='line'&gt;
&lt;/span&gt;&lt;span class='line'&gt;Rename project to known problem
&lt;/span&gt;&lt;span class='line'&gt;'babe-rater project' and run ten times
&lt;/span&gt;&lt;span class='line'&gt;without quitting:
&lt;/span&gt;&lt;span class='line'&gt;
&lt;/span&gt;&lt;span class='line'&gt;1 - 10. BOGUS each time
&lt;/span&gt;&lt;span class='line'&gt;
&lt;/span&gt;&lt;span class='line'&gt;Same as above but with Clean Build Folder
&lt;/span&gt;&lt;span class='line'&gt;between each run:
&lt;/span&gt;&lt;span class='line'&gt;
&lt;/span&gt;&lt;span class='line'&gt;1. BOGUS
&lt;/span&gt;&lt;span class='line'&gt;2. BOGUS
&lt;/span&gt;&lt;span class='line'&gt;3. BOGUS
&lt;/span&gt;&lt;span class='line'&gt;4. BOGUS
&lt;/span&gt;&lt;span class='line'&gt;5. BOGUS
&lt;/span&gt;&lt;span class='line'&gt;6. BOGUS
&lt;/span&gt;&lt;span class='line'&gt;7. BOGUS
&lt;/span&gt;&lt;span class='line'&gt;8. BOGUS
&lt;/span&gt;&lt;span class='line'&gt;9. BOGUS
&lt;/span&gt;&lt;span class='line'&gt;10. BOGUS
&lt;/span&gt;&lt;span class='line'&gt;
&lt;/span&gt;&lt;span class='line'&gt;Next launch of Xcode, the same project
&lt;/span&gt;&lt;span class='line'&gt;happened to work, so I wanted to see if it
&lt;/span&gt;&lt;span class='line'&gt;would work over and over again if I didn't
&lt;/span&gt;&lt;span class='line'&gt;quit Xcode (still doing Clean Build Folder
&lt;/span&gt;&lt;span class='line'&gt;between each try).
&lt;/span&gt;&lt;span class='line'&gt;1. OK
&lt;/span&gt;&lt;span class='line'&gt;2. OK
&lt;/span&gt;&lt;span class='line'&gt;3. OK
&lt;/span&gt;&lt;span class='line'&gt;4. OK
&lt;/span&gt;&lt;span class='line'&gt;5. OK
&lt;/span&gt;&lt;span class='line'&gt;6. OK
&lt;/span&gt;&lt;span class='line'&gt;7. OK
&lt;/span&gt;&lt;span class='line'&gt;8. OK
&lt;/span&gt;&lt;span class='line'&gt;9. OK
&lt;/span&gt;&lt;span class='line'&gt;10. OK
&lt;/span&gt;&lt;span class='line'&gt;
&lt;/span&gt;&lt;span class='line'&gt;Quit Xcode, and the next launch it hit the
&lt;/span&gt;&lt;span class='line'&gt;BOGUS again. So it really does apparently
&lt;/span&gt;&lt;span class='line'&gt;involve something Xcode does when loading
&lt;/span&gt;&lt;span class='line'&gt;the project. How about if we close the
&lt;/span&gt;&lt;span class='line'&gt;project but don't quit Xcode(still doing
&lt;/span&gt;&lt;span class='line'&gt;Clean Build Folder between each try)?
&lt;/span&gt;&lt;span class='line'&gt;
&lt;/span&gt;&lt;span class='line'&gt;1. OK
&lt;/span&gt;&lt;span class='line'&gt;2. OK
&lt;/span&gt;&lt;span class='line'&gt;3. OK 
&lt;/span&gt;&lt;span class='line'&gt;4. OK
&lt;/span&gt;&lt;span class='line'&gt;5. OK
&lt;/span&gt;&lt;span class='line'&gt;6. OK
&lt;/span&gt;&lt;span class='line'&gt;7. OK
&lt;/span&gt;&lt;span class='line'&gt;8. OK
&lt;/span&gt;&lt;span class='line'&gt;9. OK
&lt;/span&gt;&lt;span class='line'&gt;10. OK
&lt;/span&gt;&lt;span class='line'&gt;
&lt;/span&gt;&lt;span class='line'&gt;At this point I launched Xcode, hit Cmd-U,
&lt;/span&gt;&lt;span class='line'&gt;and quit a few times in a row. OK, BOGUS,
&lt;/span&gt;&lt;span class='line'&gt;BOGUS, BOGUS, OK... so cleaning also seems
&lt;/span&gt;&lt;span class='line'&gt;irrelevant.
&lt;/span&gt;&lt;span class='line'&gt;
&lt;/span&gt;&lt;span class='line'&gt;Somehow, Xcode decides at launch time
&lt;/span&gt;&lt;span class='line'&gt;whether or not it is going to corrupt the
&lt;/span&gt;&lt;span class='line'&gt;project when it is opened. If so, it
&lt;/span&gt;&lt;span class='line'&gt;reliably does it every time that project
&lt;/span&gt;&lt;span class='line'&gt;is opened, until Xcode quits. Then the
&lt;/span&gt;&lt;span class='line'&gt;next time Xcode is launched, it again
&lt;/span&gt;&lt;span class='line'&gt;randomly decides whether or not to corrupt
&lt;/span&gt;&lt;span class='line'&gt;the project upon opening it.
&lt;/span&gt;&lt;span class='line'&gt;
&lt;/span&gt;&lt;span class='line'&gt;
&lt;/span&gt;&lt;span class='line'&gt;Now is it the target name or the
&lt;/span&gt;&lt;span class='line'&gt;executable name (or both) that must differ
&lt;/span&gt;&lt;span class='line'&gt;from the project name? I suspect the
&lt;/span&gt;&lt;span class='line'&gt;executable but lets test. With project
&lt;/span&gt;&lt;span class='line'&gt;name 'XcodeCorruptOnOpenBOGUSDemo project'
&lt;/span&gt;&lt;span class='line'&gt;and target name
&lt;/span&gt;&lt;span class='line'&gt;'XcodeCorruptOnOpenBOGUSDemo' and tool
&lt;/span&gt;&lt;span class='line'&gt;executable name
&lt;/span&gt;&lt;span class='line'&gt;'XcodeCorruptOnOpenBOGUSDemoTool':
&lt;/span&gt;&lt;span class='line'&gt;
&lt;/span&gt;&lt;span class='line'&gt;1. OK
&lt;/span&gt;&lt;span class='line'&gt;2. OK
&lt;/span&gt;&lt;span class='line'&gt;3. OK 
&lt;/span&gt;&lt;span class='line'&gt;4. OK
&lt;/span&gt;&lt;span class='line'&gt;5. OK
&lt;/span&gt;&lt;span class='line'&gt;6. OK
&lt;/span&gt;&lt;span class='line'&gt;7. OK
&lt;/span&gt;&lt;span class='line'&gt;8. OK
&lt;/span&gt;&lt;span class='line'&gt;9. OK
&lt;/span&gt;&lt;span class='line'&gt;10. OK
&lt;/span&gt;&lt;span class='line'&gt;
&lt;/span&gt;&lt;span class='line'&gt;
&lt;/span&gt;&lt;span class='line'&gt;Now, the reverse: With project name
&lt;/span&gt;&lt;span class='line'&gt;'XcodeCorruptOnOpenBOGUSDemo project' and
&lt;/span&gt;&lt;span class='line'&gt;target name 'XcodeCorruptOnOpenBOGUSDemo
&lt;/span&gt;&lt;span class='line'&gt;target' and tool executable name
&lt;/span&gt;&lt;span class='line'&gt;'XcodeCorruptOnOpenBOGUSDemo':
&lt;/span&gt;&lt;span class='line'&gt;
&lt;/span&gt;&lt;span class='line'&gt;1. OK
&lt;/span&gt;&lt;span class='line'&gt;2. OK
&lt;/span&gt;&lt;span class='line'&gt;3. OK 
&lt;/span&gt;&lt;span class='line'&gt;4. OK
&lt;/span&gt;&lt;span class='line'&gt;5. OK
&lt;/span&gt;&lt;span class='line'&gt;6. OK
&lt;/span&gt;&lt;span class='line'&gt;7. OK
&lt;/span&gt;&lt;span class='line'&gt;8. OK
&lt;/span&gt;&lt;span class='line'&gt;9. OK
&lt;/span&gt;&lt;span class='line'&gt;10. OK
&lt;/span&gt;&lt;span class='line'&gt;
&lt;/span&gt;&lt;span class='line'&gt;Interesting! Now let's rename them both
&lt;/span&gt;&lt;span class='line'&gt;back to sanity check. With project name
&lt;/span&gt;&lt;span class='line'&gt;'XcodeCorruptOnOpenBOGUSDemo project' and
&lt;/span&gt;&lt;span class='line'&gt;target name 'XcodeCorruptOnOpenBOGUSDemo'
&lt;/span&gt;&lt;span class='line'&gt;and tool executable name
&lt;/span&gt;&lt;span class='line'&gt;'XcodeCorruptOnOpenBOGUSDemo':
&lt;/span&gt;&lt;span class='line'&gt;
&lt;/span&gt;&lt;span class='line'&gt;BOGUS
&lt;/span&gt;&lt;span class='line'&gt;BOGUS
&lt;/span&gt;&lt;span class='line'&gt; OK
&lt;/span&gt;&lt;span class='line'&gt;BOGUS
&lt;/span&gt;&lt;span class='line'&gt;OK
&lt;/span&gt;&lt;span class='line'&gt;BOGUS
&lt;/span&gt;&lt;span class='line'&gt;BOGUS
&lt;/span&gt;&lt;span class='line'&gt;BOGUS
&lt;/span&gt;&lt;span class='line'&gt;BOGUS
&lt;/span&gt;&lt;span class='line'&gt; BOGUS
&lt;/span&gt;&lt;span class='line'&gt;
&lt;/span&gt;&lt;span class='line'&gt;However, the BOGUS did manifest with these
&lt;/span&gt;&lt;span class='line'&gt;params: project name
&lt;/span&gt;&lt;span class='line'&gt;'XcodeCorruptOnOpenBOGUSDemo' and target
&lt;/span&gt;&lt;span class='line'&gt;name 'XcodeCorruptOnOpenBOGUSDemo target'
&lt;/span&gt;&lt;span class='line'&gt;and tool executable name
&lt;/span&gt;&lt;span class='line'&gt;'XcodeCorruptOnOpenBOGUSDemo' (exact same
&lt;/span&gt;&lt;span class='line'&gt;name for project and executable). I didn't
&lt;/span&gt;&lt;span class='line'&gt;test 10 times because at this point I am
&lt;/span&gt;&lt;span class='line'&gt;just looking for a workaround.
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;p&gt;THE END&lt;/p&gt;</content>
  </entry>
  
  <entry>
    <title>mail fail</title>
    <link href="http://masonmark.com/mail-fail/"/>
    <published>2011-11-11T11:11:11+09:00</published>
    <updated>2011-11-11T11:11:11+09:00</updated>
    <id>http://masonmark.com/mail-fail</id>
    <content type="html">&lt;p&gt;It is &lt;b&gt;OK&lt;/b&gt; that the Mac OS X 10.7 Lion version of Mail.app takes an hour to upgrade my few-hundred-thousand-message mail database from the old 10.6 version.&lt;/p&gt;

&lt;p&gt;It is &lt;b&gt;not OK&lt;/b&gt; that the database regularly becomes corrupted in such a way that the search feature silently fails to function, necessitating a repeat of this hour-long process every few weeks.&lt;/p&gt;

&lt;img src=&quot;http://masonmark.com/stuff/mail_fail.jpg&quot; alt=&quot;Mail fails.&quot; /&gt;

&lt;p&gt;When Mail.app's search function stops working -- no longer allowing a search on criteria other than 'message contains' and no longer finding the messages that do match -- this is the only procedure I know that fixes it:&lt;/p&gt;

&lt;figure class='code'&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;table&gt;&lt;tr&gt;&lt;td class=&quot;gutter&quot;&gt;&lt;pre class=&quot;line-numbers&quot;&gt;&lt;span class='line-number'&gt;1&lt;/span&gt;
&lt;span class='line-number'&gt;2&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;&lt;td class='code'&gt;&lt;pre&gt;&lt;code class=''&gt;&lt;span class='line'&gt;[mason@IT-PC-MACPRO-01 ~]$ cd ~/Library/Mail/V2/MailData/
&lt;/span&gt;&lt;span class='line'&gt;[mason@IT-PC-MACPRO-01 MailData]$ rm Envelop*&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;/figure&gt;

&lt;p&gt;This works every time[1], but it has the lousy side-effect of rendering Mail completely unusable for the hour-plus time it takes to recreate all the index files.&lt;/p&gt;

&lt;p&gt;Wah, bitch, moan, etc.&lt;/p&gt;

[1]: Except this one time, where Spotlight itself was broken, and any app using Spotlight failed weirdly. That time, even &lt;code&gt;mdls&lt;/code&gt; on the command line yielded the message &lt;pre&gt;The Spotlight Server is disabled.&lt;/pre&gt; Rebooting (grr) cleared it up, though.

&lt;p&gt;&lt;b&gt;Keywords:&lt;/b&gt; Milk in the batter, milk in the batter, Mail.app sucks and that's what's the matter&lt;/p&gt;

</content>
  </entry>
  
  <entry>
    <title>NIGGERHEAD</title>
    <link href="http://masonmark.com/niggerhead/"/>
    <published>2011-10-12T00:08:16+09:00</published>
    <updated>2011-10-12T00:08:16+09:00</updated>
    <id>http://masonmark.com/niggerhead</id>
    <content type="html">&lt;p&gt;
So Rick Perry likes to take his white friends down to his Niggerhead hunting camp. I don't think that's a big deal. I mean, really: what the fuck did people &lt;b&gt;think&lt;/b&gt; this fucking jesusfreak Texas hillbilly does in his free time?
&lt;/p&gt;

&lt;p&gt;
With all the preposterously offensive qualities Mr. Perry has so far exhibited, I'd say leasing a camp called Niggerhead doesn't even make the first page of the list. 
&lt;/p&gt;

&lt;img class=&quot;center&quot; src=&quot;http://masonmark.com/stuff/niggerhead.jpg&quot; /&gt;

&lt;p&gt;
What I find more notable is how almost all mainstream American media outlets have prevented themselves from being able to sensibly cover this story. The New York Times &lt;a href=&quot;http://thecaucus.blogs.nytimes.com/2011/10/11/five-things-to-watch-for-in-g-o-p-debate/?hp&amp;pagewanted=all&quot;&gt;says&lt;/a&gt;, &quot;...a hunting camp where Mr. Perry hosted guests that had a racial epithet painted on a rock at its entrance has forced Mr. Perry’s campaign off message.&quot; What the fuck does that mean? &quot;The hunting camp whose name we can't say here,&quot; intone the white anchors on TV. I had to google '&quot;&lt;a href=&quot;http://www.google.com/search?client=safari&amp;rls=en&amp;q=Rick+Perry+redneck+moron+hunting+camp&amp;ie=UTF-8&amp;oe=UTF-8&quot;&gt;Rick Perry redneck moron hunting camp&lt;/a&gt;&quot; to even figure out what the fuck they were talking about. I get it that you don't want to say &quot;nigger&quot; but when the entire fucking point of the story is the word &quot;niggerhead&quot;, I think you have to make an exception.
&lt;/p&gt;

</content>
  </entry>
  
  <entry>
    <title>Tasty Tokyo Tacos</title>
    <link href="http://masonmark.com/tasty-tokyo-tacos/"/>
    <published>2011-09-30T00:00:00+09:00</published>
    <updated>2011-09-30T00:00:00+09:00</updated>
    <id>http://masonmark.com/tasty-tokyo-tacos</id>
    <content type="html">&lt;img src=&quot;http://masonmark.com/stuff/taqueria-mexicana-tokyo-business-card.jpg&quot; class=&quot;center&quot; /&gt;
&lt;p&gt;
As some kind of cosmic reward for sitting through hours of bullshit at the local equivalent of the DMV, I stumbled upon a killer little taco shop today. Is is nestled in the sprawling underground shopping-and-train-stations complex at Otemachi. A tasty homemade taco in Tokyo is a rare beast inded. The (Mexican?) lady behind the counter was nice. I will fucking definitely be going back. Mmm!
&lt;/p&gt;</content>
  </entry>
  
  <entry>
    <title>Nobody Canna Cross It</title>
    <link href="http://masonmark.com/nobody-canna-cross-it/"/>
    <published>2011-09-28T14:05:23+09:00</published>
    <updated>2011-09-28T14:05:23+09:00</updated>
    <id>http://masonmark.com/nobody-canna-cross-it</id>
    <content type="html">&lt;p&gt;&lt;b&gt;* STEP 1 *&lt;/b&gt;&lt;br /&gt;
Watch the first one minute of this news report. Acquaint yourself with Mr. Clifton Brown, the black dude in white hard hat.
&lt;/p&gt;

&lt;a href=&quot;http://www.youtube.com/watch?v=dL9vdTmvhGw&amp;feature=related&quot;&gt;&lt;img class=&quot;center&quot; src=&quot;http://masonmark.com/stuff/clifton-brown.png&quot; /&gt;&lt;/a&gt;

&lt;p&gt;&lt;b&gt;* STEP 2 *&lt;/b&gt;&lt;br /&gt;
Turn your hi-fi up to 10, and put this on:&lt;/p&gt;

&lt;a href=&quot;http://www.youtube.com/watch?v=WXPxP9pPpiw&amp;feature=related
&quot;&gt;&lt;img src=&quot;http://masonmark.com/stuff/chuck-norris-cant-cross-it.png&quot; class=&quot;center&quot; /&gt;&lt;/a&gt;

&lt;p class=&quot;via&quot;&gt;[via sakura1]&lt;/p&gt;</content>
  </entry>
  
  <entry>
    <title>Drm Clusterfuck</title>
    <link href="http://masonmark.com/drm-clusterfuck-the-future-is-today/"/>
    <published>2011-08-10T05:05:05+09:00</published>
    <updated>2011-08-10T05:05:05+09:00</updated>
    <id>http://masonmark.com/drm-clusterfuck</id>
    <content type="html">&lt;p&gt;An increasing percentage of the shit we buy today is encumbered by &lt;strong&gt;DRM&lt;/strong&gt;. The acronym stands for '&lt;strong&gt;digital rights management&lt;/strong&gt;', but the '&lt;strong&gt;digital restrictions management&lt;/strong&gt;' moniker that &lt;a href=&quot;http://www.defectivebydesign.org/what_is_drm&quot;&gt;freedom zealots&lt;/a&gt; came up with is probably more apt. That term never really caught on, though; most people don't have a real understanding of what DRM is, nor do they really give a fuck. And perhaps that's as it should be. Life is too short to waste much time on understanding bullshit, especially if you aren't going to use that understanding.&lt;/p&gt;

&lt;p&gt;But one basic thing that people &lt;strong&gt;should&lt;/strong&gt; understand is that virtually all DRM is &lt;b&gt;broken.&lt;/b&gt; That is, if you buy a product restricted by DRM, &lt;strong&gt;at some point it will malfunction&lt;/strong&gt;, and not only will you be prevented from doing all the things you aren't allowed to do, but you'll also be prevented from doing those things you &lt;b&gt;are&lt;/b&gt; supposed to be able to do—-&lt;b&gt;the things you paid to be able to do&lt;/b&gt;. This may happen through the incompetence or negligence of the party implementing the DRM. It may happen because they are sued, regulated, or go out of business. Or it may happen because they are &lt;strong&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Microsoft_PlaysForSure&quot;&gt;just a bunch of fucking ass-clowns&lt;/a&gt;&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Today, for me, was a reminder of that--an infuriating exercise in DRM shit making my life just that little bit worse.&lt;/p&gt; For all the happy things that have been born of humanity's digital two steps forward, DRM takes us the corresponding and inevitable one step back.&lt;/p&gt;

&lt;!-- more --&gt;

&lt;h3&gt;Act I, in which our hero's kindle shits all over itself in a new way&lt;/h3&gt;&lt;/p&gt;

&lt;p&gt;I slept in late this morning. As a consequence, I was in a smidgen of a hurry, so I decided to take the subway to where I needed to be, instead of walking. Not wanting to be bored on the subway, I tried to download a book I had purchased (Russ Olsen's pretty great &lt;em&gt;&lt;a href=&quot;http://www.amazon.com/gp/product/B004MMEJ36/ref=as_li_ss_tl?ie=UTF8&amp;tag=mamaco-20&amp;linkCode=as2&amp;camp=217145&amp;creative=399373&amp;creativeASIN=B004MMEJ36&quot;&gt;Eloquent Ruby&lt;/a&gt;&lt;img src=&quot;http://www.assoc-amazon.com/e/ir?t=&amp;l=as2&amp;o=1&amp;a=B004MMEJ36&amp;camp=217145&amp;creative=399373&quot; width=&quot;1&quot; height=&quot;1&quot; border=&quot;0&quot; alt=&quot;&quot; style=&quot;border:none !important; margin:0px !important;&quot; /&gt;&lt;/em&gt;[1]) onto my Kindle.&lt;/p&gt;


&lt;img class=&quot;center&quot; src=&quot;http://masonmark.com/stuff/kindle_shitting_on_itself.png&quot; alt=&quot;Kindle shits on itself&quot; /&gt;


&lt;p&gt;&quot;&lt;b&gt;License Limit Reached&lt;/b&gt;&quot; the fucktarded little piece of cheap Chinese plastic told me. That was fucking bullshit, though. Not only did I not have this book installed on five devices simultaneously, I had never even installed it on that many devices total. &lt;strong&gt;Kindle was wrong.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I strongly suspect this malfunction was caused by the &lt;strong&gt;&lt;a href=&quot;http://masonmark.com/holy-fucking-shit-kindle-for-mac-fucking-sucks/&quot;&gt;embarrassing and frankly disgusting bugs&lt;/a&gt;&lt;/strong&gt; in Amazon's Kindle for Mac application, which I have previously detailed. It doesn't matter, though; whatever the underlying cause, Kindle's DRM had malfunctioned and there was fuck all that I could do about it, before dashing out of the house, other than send a terse and angry complaint to Amazon.&lt;/p&gt;


&lt;img class=&quot;center&quot; src=&quot;http://masonmark.com/stuff/dear_amazon_fuck_you.jpg&quot; alt=&quot;Dear amazon, fuck you&quot; /&gt;


&lt;h3&gt;Act II, in which our hero is reminded that we've been using DRM for decades&lt;/h3&gt;

&lt;p&gt;Arriving at my destination, I resumed the task of setting up my recently-purchased MacBook Air. This work I have spread out over the past few days, installing little bits throughout the day as I work on other stuff on my main machine.&lt;/p&gt;

&lt;p&gt;Because working on a computer that doesn't remember the last few hundred things you've copied/pasted is as batshit insane as using only your pinkie fingers to type on your keyboard, I always install a clipboard history application when setting up a Mac.&lt;/p&gt;

&lt;p&gt;For this, I've been using &lt;strong&gt;&lt;a href=&quot;http://pth.com/products/pthpasteboard/&quot;&gt;PTHPasteboard Pro&lt;/a&gt;&lt;/strong&gt; for years, and it has performed admirably. It's a very ugly little app whose inner beauty shines through when it is put to use. I have recommended this app because I use it every single day, and have always liked it.&lt;/p&gt;

&lt;p&gt;Until today, when its shitty DRM system rudely told me to go fuck myself. &quot;&lt;strong&gt;&lt;span style=&quot;color: #de482a;&quot;&gt;Too many registrations,&lt;/span&gt;&lt;/strong&gt;&quot; it said in rude little red text. Too many for what, you fucking little piece of shit? Again, I had no recourse other than to send a terse and angry email.&lt;/p&gt;


&lt;img class=&quot;center&quot; src=&quot;http://masonmark.com/stuff/fuck_you_pthpasteboard.png&quot; alt=&quot;fuck_you_pthpasteboard&quot; /&gt;


&lt;p&gt;And—boom!—just like that, PTHPasteboard went from a trusted piece of software that I install on every new Mac to one that I will probably never install or recommend again.&lt;/p&gt;

&lt;p&gt;That isn't an overreaction. It is an appropriate reaction. Wasting my time is an offense that I should and do take seriously. Even though in this case it was only a few minutes--so what, fuck off. Plenty multi-clipboard utilities in the baller-user matrix.&lt;/p&gt;

&lt;p&gt;This reminded me, though, that for all the bitching about DRM on songs and movies and books, we've suffered DRM on our commercial software since commercial software was invented.&lt;/p&gt;

&lt;h3&gt;Act III, in which a pioneer of broken DRM pushes the needle on the irritometer into the red, causing our hero to waste the remainder of his morning writing a cathartic rant to post to his blog&lt;/h3&gt;

&lt;p&gt;Grog want play music. Grog have new Mac. Grog new Mac not authorized. Grog try authorize. &lt;strong&gt;Grog get error message! Grog ANGRY!! GROG SMASH!!!!&lt;/strong&gt;&lt;/p&gt;


&lt;img class=&quot;center&quot; src=&quot;http://masonmark.com/stuff/hey_apple_go_suck_a_bag_of_dicks.png&quot; alt=&quot;hey_apple_go_suck_a_bag_of_dicks.png&quot; /&gt;



&lt;p&gt;The trouble with software is that no matter how much of an asshole it is, you can't bash its motherfucking head open with a huge rock, peel off the skull, and feast on its brains. That's just not possible, even though the more primitive parts of your own brain might seethe with bloodlust when confronted with the dialog above.&lt;/p&gt;

&lt;p&gt;That's what happened when I tried to authorize my new laptop for iTunes content. It was only 11:00 a.m., and I'd already run up against three different DRM fuckups from three different companies.&lt;/p&gt;

&lt;p&gt;Across its hundreds of millions of users, iTunes has probably cumulatively wasted a hundred man-years of human potential with DRM fuckery. iTunes is the archduke of DRM. With iTunes, Apple popularized comercial downloadable music, and with it, DRM.&lt;/p&gt;

&lt;p&gt;Years ago, iTunes inflicted upon me what I hope was the most idiotic DRM-related experience I will ever have.&lt;/p&gt;

&lt;p&gt;I was in Tokyo, hanging out with a beautiful young woman. She asked me about something she heard in a song, called &lt;em&gt;Diggin' On You&lt;/em&gt;. I wasn't familiar with the song, it being some kind of crappy chick music, so I suggested we download it. This was before Japan had its own iTunes store, so she was also interested in this buying-music-online concept.&lt;/p&gt;

&lt;p&gt;So I fired up iTunes. The laptop I was using was my work machine, so iTunes wasn't set up. I accepted the EULA (without reading of course), entered my username and password, did a quick search, found the song, entered my credit card number, and bought it.&lt;/p&gt;

&lt;p&gt;Cellular data wasn't quite as fast back then, so I explained the iTunes store while the song downloaded. See, I said. We buy this song sitting here in this bar, and then I can play the song here, at home, on my iPod, or whatever.&lt;/p&gt;

&lt;p&gt;Neat, she said.&lt;/p&gt;

&lt;p&gt;But then the download finished, at which point iTunes told me, &quot;&lt;b&gt;Hey, shithead: go fuck yourself.&lt;/b&gt; You have already authorized 5 computers to play your restricted iTunes content. Even though that number includes your last three laptops that you don't even have anymore, and even though I just took your money and let you &lt;b&gt;buy&lt;/b&gt; the song on this computer, I am not going to let you &lt;b&gt;play&lt;/b&gt; the song on this computer. So fuck off.&quot; Or words to that effect.&lt;/p&gt;

&lt;p&gt;The beautiful girl yawned. Huh, she said. Lame.&lt;/p&gt;

&lt;p&gt;And it &lt;b&gt;was&lt;/b&gt; lame.&lt;/p&gt;

&lt;h3&gt;Epilogue: wherein our hero extracts a halfassed moral from his tortured narrative&lt;/h3&gt;

&lt;p&gt;One day, iTunes just up and stopped inflicting this particular flavor of horseshit on its customers. Steve Jobs wrote one of his letters, waved his scepter, and the DRM was gone (from music).&lt;/p&gt;

&lt;p&gt;That was a big milestone for digital music. Apple no longer sold broken music that was guaranteed to stop working; they now just sold music.&lt;/p&gt;

&lt;p&gt;I started buying music from iTunes around that time. Sure, I had bought a few broken DRM-encumbered albums up to that point, but it was mainly to get a feel for the iTunes ecosystem or for times when I was stuck with no music and was okay with paying for temporary access to some. After the elimination of DRM, iTunes music was no longer &lt;b&gt;worse&lt;/b&gt; than music bought on CD or bootlegged off the pirate bay--it was suddenly &lt;b&gt;better&lt;/b&gt;.&lt;/p&gt;

&lt;p&gt;Something that sucked suddenly became something that &lt;b&gt;didn't&lt;/b&gt; suck. &lt;b&gt;The world got unambiguously better!&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;Well, that is always good, but it is not always the way it goes. Things don't tend to get better for no reason. They get better because people want them to get better. iTunes music got better because the users &lt;b&gt;preferred&lt;/b&gt; that it get better.&lt;p&gt;

&lt;p&gt;So, if there is any moral to this story, it is that same old moral that various life lessons have imparted to me, and that I in turn tried to impart to my angry, teary-eyed wife the other day when, in the midst of a debate about something or other, she threw her kitchen apron on the floor and shouted, &quot;I hate your complaining!&quot;&lt;/p&gt;

&lt;p&gt;&quot;But baby,&quot; I said, genuinely surprised. &quot;&lt;b&gt;Complaining is the root of all human progress!&lt;/b&gt;&quot;&lt;/p&gt;

&lt;p&gt;And it &lt;b&gt;is&lt;/b&gt;, with a liberal enough definition of the concept. When you envision how something could be made better, you are implicitly teasing out a way in which it currently sucks.&lt;/p&gt;

&lt;p&gt;Now, complaining about something trivial or tangential is, perhaps, not something one should do to one's wife while she cooks one's dinner after a long day at the office. I concede that point.&lt;/p&gt;

&lt;p&gt;But those motherfuckers who sell us shit that is broken by design? They deserve it. They even need it--how else will they know that even though we buy their shitty products, we hate their fucking guts, and maybe even occasionally want to bash their motherfucking head open with a huge rock, peel off the skull, and feast on their brains?&lt;/p&gt;

&lt;p&gt;They will know because we tell them. None of us, alone, is likely to make a difference, no matter what we do. But the cumulative ire of millions of mildly irritated customers can make an impact. By firing off an angry email, even if it just says &quot;hay ass hols i bought XYZ and now it gives me a fucking error FUCK YUO FIX IT!!!' you're &lt;b&gt;helping&lt;/b&gt; them.&lt;/p&gt;

&lt;p&gt;And in a small but concrete way, &lt;b&gt;helping the world&lt;/b&gt;.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Those bastards have knocked NERV offline!</title>
    <link href="http://masonmark.com/those-bastards-have-knocked-nerv-offline/"/>
    <published>2011-07-14T00:00:00+09:00</published>
    <updated>2011-07-14T00:00:00+09:00</updated>
    <id>http://masonmark.com/those-bastards-have-knocked-nerv-offline</id>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;UPDATE: it's &lt;strong&gt;&lt;a href=&quot;http://kanmisikou.net/lab/power/&quot;&gt;back&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The pretty (and utterly weird) &lt;strong&gt;&lt;a href=&quot;http://kanmisikou.net/lab/power/&quot;&gt;NERV Power Supply Monitoring System&lt;/a&gt; &lt;/strong&gt;now reports that TEPCO is generating 'NaN kilowatts'... (x_x)&lt;/p&gt;
&lt;p&gt;I guess I have no recourse but to visit 東電's pathetic official offering, where I am told that we've got &quot;&lt;a href=&quot;http://www.tepco.co.jp/en/forecast/html/index-e.html&quot;&gt;&lt;strong&gt;5,270 10 thousand kW&lt;/strong&gt;&lt;/a&gt;&quot; available to sustain human society in Tokyo today.&lt;/p&gt;
&lt;p&gt;Parsing that isn't made any easier by the sweltering heat and lack of civilized air conditioning, let me tell you...&lt;/p&gt;</content>
  </entry>
  
  <entry>
    <title>9 lifetimes</title>
    <link href="http://masonmark.com/9-lifetimes/"/>
    <published>2011-06-14T00:00:00+09:00</published>
    <updated>2011-06-14T00:00:00+09:00</updated>
    <id>http://masonmark.com/9-lifetimes</id>
    <content type="html">&lt;p&gt;
&lt;a href=&quot;http://speirs.org/blog/2011/5/20/too-early-to-tell.html&quot;&gt;
&lt;img class=&quot;center&quot; title=&quot;We have been reading printed paper for 9 lifetimes. Commercial electronic texts have only existed for three hundredths of one lifetime..png&quot; src=&quot;http://masonmark.com/stuff/We-have-been-reading-printed-paper-for-9-lifetimes.-Commercial-electronic-texts-have-only-existed-for-three-hundredths-of-one-lifetime..png&quot; alt=&quot;We have been reading printed paper for 9 lifetimes. Commercial electronic texts have only existed for three hundredths of one lifetime..png&quot; /&gt;
&lt;/a&gt;
&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>wha?!? a google product with a good user interface?</title>
    <link href="http://masonmark.com/wha-a-google-product-with-a-good-user-interface/"/>
    <published>2011-05-31T00:00:00+09:00</published>
    <updated>2011-05-31T00:00:00+09:00</updated>
    <id>http://masonmark.com/wha-a-google-product-with-a-good-user-interface</id>
    <content type="html">&lt;p&gt;I visited Google Groups today, to read some archives and think about posting a question to the PhantomJS (awesome, btw) group. I was startled to find that the UI was not the deplorable piece of shit that I was used to, nor was it the completely dysfunctional 'new' version that didn't work at all and yet was foisted upon me automatically from time to time and had to be manually disabled repeatedly.&lt;/p&gt;

&lt;p&gt;Instead, it was something totally new (to me), and actually quite good, as far as web-based email list interfaces go:&lt;/p&gt;

&lt;p&gt;&lt;img class=&quot;center&quot; src=&quot;http://masonmark.com/stuff/goog_non_shitty_ui_whaa.png&quot;  alt=&quot;goog_non_shitty_ui_whaa&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Any decent email client is still better for a list you read a lot, but at least this thing isn't inferior in every single conceivable way anymore. Good use of avatar pictures (albeit without Gravatar support, which is retarded), attractive and responsive layout, and a good-looking and functional threaded discussion view when you click on a thread topic.&lt;/p&gt;

&lt;p&gt;good job goog, now try a little harder on your phone OS pls&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Tokyo Nuclear Clusterfuck Update</title>
    <link href="http://masonmark.com/tokyo-nuclear-clusterfuck-update/"/>
    <published>2011-05-30T00:00:00+09:00</published>
    <updated>2011-05-30T00:00:00+09:00</updated>
    <id>http://masonmark.com/tokyo-nuclear-clusterfuck-update</id>
    <content type="html">&lt;p&gt;So, does my rant about Amazon's staggeringly awful Kindle book reader mean that the Japanese Nuclear Clusterfuck of 2011 is over? No. Things are still fucked. The food chain is suspect, some areas are ruined. From my selfish Tokyo perspective, the main problem is the looming electric shortages. We haven't had blackouts for a while, but it's not the hot summer yet. Even though we don't have the blackouts yet, the entire city (and basically eastern Japan), is doing &lt;em&gt;setsuden (節電)&lt;/em&gt;, or electricity conservation, which completely fucks up a city like Tokyo. It's hot in the buildings, most escalators are stopped, and it's dark on the streets at night as if it was fucking China or something.&lt;/p&gt;

&lt;p&gt;So it still sucks. But in one important way, it has improved:&lt;/p&gt;

&lt;p&gt;&lt;img class=&quot;center&quot; src=&quot;http://masonmark.com/stuff/no_cesium.png&quot; border=&quot;0&quot; alt=&quot;No cesium detected.&quot; /&gt;&lt;/p&gt;

&lt;p&gt;That's the levels of cesium and radioactive iodine in the drinking water in Tokyo. None detected. While I don't tend to drink that water (even before Fukushima), I do have to shower in it, and recently since it is looking better I have started to cook with it again.&lt;/p&gt;

&lt;p&gt;And then there is the rain:&lt;/p&gt;

&lt;p&gt;&lt;img class=&quot;center&quot; src=&quot;http://masonmark.com/stuff/rain_is_pretty_much_ok.png&quot;  alt=&quot;rain_is_pretty_much_ok.png&quot; /&gt;&lt;/p&gt;

&lt;p&gt;That's looking good, too. It really sucks when you can't walk around in the rain and get wet without tripping out about what kind of radioactive shit might be giving you cancer and harming your unborn children, etc. I walked to work this morning, got wet, and didn't worry about it.&lt;/p&gt;

&lt;p&gt;Those numbers are from &lt;a href=&quot;http://atmc.jp&quot;&gt;http://atmc.jp&lt;/a&gt; (which we all still check every day), and are clearly good news.&lt;/p&gt;

&lt;p&gt;This summer is still gonna fucking suck, though.&lt;/p&gt;</content>
  </entry>
  
  <entry>
    <title>Holy fucking shit Kindle for Mac fucking sucks</title>
    <link href="http://masonmark.com/holy-fucking-shit-kindle-for-mac-fucking-sucks"/>
    <published>2011-05-16T00:00:00+09:00</published>
    <updated>2011-05-16T00:00:00+09:00</updated>
    <id>http://masonmark.com/holy-fucking-shit-kindle-for-mac-fucking-sucks</id>
    <content type="html">&lt;p&gt;Amazon is one of my favorite companies, but they sure make some shitty fucking software.&lt;/p&gt;

&lt;p&gt;I don't often use the pathetic Kindle for Mac application, because it is a fucking steaming pile of shit. But occasionally, when programming in one of my non-native languages, say, I want to look something up. But every other time I launch this shitty app, I am rudely shown this message:&lt;/p&gt;

&lt;img class=&quot;center&quot; src=&quot;http://masonmark.com/stuff/kindle_eat_fuckin_shit.png&quot; alt=&quot;kindle_eat_fuckin_shit.png&quot; /&gt;

&lt;p&gt;I grit my teeth and try to remove the book from the 'device', per those shitty instructions, but always get this:&lt;/p&gt;

&lt;img class=&quot;center&quot; src=&quot;http://masonmark.com/stuff/kindle_fucking_sucks.png&quot; alt=&quot;kindle_fucking_sucks.png&quot; /&gt;

&lt;p&gt;At that point, I try to nuke my Kindle registration and start everything over. I have gone through this process at least a dozen times. It usually goes like this:&lt;/p&gt;

&lt;img class=&quot;center&quot; src=&quot;http://masonmark.com/stuff/AMAZON_FUCKING_SUCKS.png&quot; alt=&quot;AMAZON_FUCKING_SUCKS.png&quot; /&gt;

&lt;p&gt;...and stays like that indefinitely (it &quot;may take a moment&quot; indeed, it has been hung like that throughout the process of launching MarsEdit and writing this blog post up until here), until I quit the app... at which point, of course, it crashes:&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;

&lt;img class=&quot;center&quot; src=&quot;http://masonmark.com/stuff/fuck_you_amazon.png&quot; alt=&quot;fuck_you_amazon&quot; /&gt;&lt;/p&gt;

&lt;p&gt;AMAZON: PLEASE STOP WRITING MAC APPS. YOU JUST SUCK TOO MUCH. THE EXISTENCE OF YOUR KINDLE APP MAKES THE WORLD WORSE. STOP IT. STOP.&lt;/p&gt;</content>
  </entry>
  
</feed>
