<?xml version='1.0' ?>
<rss version='2.0'>

  <channel>
	<title>Mark Damon Hughes</title>
	<link>http://kuoi.com/~kamikaze/</link>
	<description>Mark Damon Hughes</description>
	<language>en-us</language>
	<ttl>720</ttl>
	<image>
	  <title>Mark Damon Hughes</title>
	  <link>http://kuoi.com/~kamikaze/</link>
	  <url>http://kuoi.com/~kamikaze/people/Mark%20spider%20Jupiter-480x480.png</url>
	</image>		<item>
		  <category>Media</category>
		  <title>Ze Frank, Invocation for Beginnings</title>
		  <link>http://kuoi.com/~kamikaze/read.php?id=315</link>
		  <guid>http://kuoi.com/~kamikaze/read.php?id=315</guid>
		  <description><![CDATA[
			<div>
			<p><a href="http://ashow.zefrank.com/#86" target="_blank">Ze Frank is back</a>. Just go watch this. [<a href="http://kuoi.com/~kamikaze/Quotes/Ze_Frank-Invocation_for_Beginnings.txt" target="_blank">transcript</a>]
</p>

<p>During the otherwise incredibly shitty year of 2006, every weekday morning I would wake up and there'd be another 5-minute episode of <a href="http://www.zefrank.com/theshow/" target="_blank">The Show With Ze Frank</a>. Watch the whole series, but especially the <a href="http://www.zefrank.com/theshow/archives/2006/07/071406.html" target="_blank">Ugly MySpace episode</a> flipped it from "funny videoblog about the news and little songs" into "HOLY SHIT, Ze's actually got a point about creativity and I should get off my ass and publish stuff again."
</p>

<p>Let's start this shit up.
</p>
			
			<blockquote>
<p>Do you like old-school computer RPGs? Do you play tabletop RPGs? Do you have an iPhone®?</p>
<p><a href="http://markdamonhughes.com/Perilar" class="plainlink"><b>Perilar</b></a>
is my turn-based RPG for the iPhone, in the style of classic computer RPGs. Full version is $4.99, Lite version (limited to level 10) is free!
</p>
</blockquote>


			</div>

		  ]]></description>
		  <author>kamikaze@kuoi.asui.uidaho.edu</author>
		  <pubDate>Tue, 10 Apr 2012 16:31:29 -0700</pubDate>
		</item>		<item>
		  <category>Media</category>
		  <title>Teenage Mutant Ninja Turtles</title>
		  <link>http://kuoi.com/~kamikaze/read.php?id=314</link>
		  <guid>http://kuoi.com/~kamikaze/read.php?id=314</guid>
		  <description><![CDATA[
			<div>
			<p>Long ago, there was a series of black and white independent comics with a ridiculous title: "Teenage Mutant Ninja Turtles". The title and characters were funny, a parody of the X-Men, but the story was a grim, bloody tale of revenge and death and honor. You can read <a href="http://www.miragelicensing.com/comics/mirage/one/cover.htm" target="_blank">TMNT #1 online</a>.
</p>

<p><img src="http://kuoi.com/~kamikaze/images/TMNT-bleed.jpg" width="383" height="127" alt="Yes, we can bleed" /></p>

<p>Shortly after the comic's release, indie publisher <a href="http://palladiumbooks.com/" target="_blank">Palladium Books</a> released the <u>Teenage Mutant Ninja Turtles &amp; Other Strangeness RPG</u>, which was based on the first few issues of Mirage Comics TMNT with the direct help and new art from Eastman &amp; Laird. The RPG had the same mix of humor with bushido, blood and death and honor, and a "Bio-Energy" system for making your own mutant characters from any animal. Fantastic game, great supplements including many in a post-apocalypse world, still sold as <a href="https://palladium-store.com/1001/category/After-the-Bomb.html" target="_blank">After the Bomb</a> even though they don't have the license for the original game.
</p>

<p>Then the good times ended. Eastman &amp; Laird sold the rights to a Saturday morning cartoon, which eventually led to the movies. This was a dumbed-down, soft, weak pablum story for infants aged 3-12, nobody died (even though they're murderous ninjas with swords), shouting "Radical! Pizza! Skating! Dude!" I can't blame Eastman &amp; Laird, they got paid well. I blame Hollywood.
</p>

<p>The only analogy for how awful this was, is Star Wars. <u>Star Wars</u> and <u>The Empire Strikes Back</u> are entirely watchable by adults, have adult sensibilities, and are PG because people die; we see smoking corpses and chopped-off limbs. Then Lucas realized all the money was in marketing to children, and Hollywood distribution wanted movies for children, so he made that Return movie which was 15 minutes of Star Wars and a bunch of muppets, and two movies and a cartoon series of <a href="http://www.imdb.com/title/tt0087225/" target="_blank">The Ewok Adventure</a> and the "prequels" aimed at babies.
</p>

<p>So today every little Gen-Whine brat raised on the shitty pablum version of TMNT is whining about <a href="http://splashpage.mtv.com/2012/03/19/michael-bay-teenage-mutant-ninja-turtles-aliens/" target="_blank">Michael Bay's TMNT movie</a>, and all I can say is:
</p>

<p>HAHAHAHAHAHA! SUFFER, FOOLS, AS I HAVE SUFFERED!</p>

<p>Watch as your childhood favorites become dumbed down even further. Fuck you. Fuck all of you for buying cute crappy versions of TMNT. You get the Michael Bay you deserve.
</p>
			
			<blockquote>
<p>Do you like old-school computer RPGs? Do you play tabletop RPGs? Do you have an iPhone®?</p>
<p><a href="http://markdamonhughes.com/Perilar" class="plainlink"><b>Perilar</b></a>
is my turn-based RPG for the iPhone, in the style of classic computer RPGs. Full version is $4.99, Lite version (limited to level 10) is free!
</p>
</blockquote>


			</div>

		  ]]></description>
		  <author>kamikaze@kuoi.asui.uidaho.edu</author>
		  <pubDate>Mon, 19 Mar 2012 15:52:48 -0700</pubDate>
		</item>		<item>
		  <category>Mac</category>
		  <title>Clear: Very pretty, kind of clumsy, very shallow</title>
		  <link>http://kuoi.com/~kamikaze/read.php?id=313</link>
		  <guid>http://kuoi.com/~kamikaze/read.php?id=313</guid>
		  <description><![CDATA[
			<div>
			<p><a href="http://www.realmacsoftware.com/clear/" target="_blank">RealMac's Clear to-do app</a> is out.
</p>

<p>Clear is lovely, the animation and even the sounds are perfect.
</p>

<p>Most of the gestures are nice by themselves, but overloaded to the point you don't know what will happen—is it going to add an item or go up when you pull down? Depends. So it actually takes longer to use than a less-gesture-friendly app.
</p>

<p>The list items are useless, they hold maybe 20 chars, no notes, no due dates, no priority. Completely vapid. Ironically the tips &amp; tricks "list" has detail text, you just can't do the same.
</p>

<p>Apple's Reminders (which can be managed from Siri!) and <a href="http://culturedcode.com/things/" target="_blank">Cultured Code's Things</a> (see my <a href="http://kuoi.com/~kamikaze/read.php?id=250" target="_blank">long discussion</a> 2.5 years ago, nothing has changed since) are less pretty but far more functional. Clear is a lovely tech demo, for $0.99, but is in no sense a usable to-do app.
</p>
			
			<blockquote>
<p>Do you like old-school computer RPGs? Do you play tabletop RPGs? Do you have an iPhone®?</p>
<p><a href="http://markdamonhughes.com/Perilar" class="plainlink"><b>Perilar</b></a>
is my turn-based RPG for the iPhone, in the style of classic computer RPGs. Full version is $4.99, Lite version (limited to level 10) is free!
</p>
</blockquote>


			</div>

		  ]]></description>
		  <author>kamikaze@kuoi.asui.uidaho.edu</author>
		  <pubDate>Tue, 14 Feb 2012 23:38:16 -0800</pubDate>
		</item>		<item>
		  <category>Mac</category>
		  <title>Apple Future</title>
		  <link>http://kuoi.com/~kamikaze/read.php?id=312</link>
		  <guid>http://kuoi.com/~kamikaze/read.php?id=312</guid>
		  <description><![CDATA[
			<div>
			<p>Hello, people of Twitter 2012! I am from the #AppleFuture of 2024! It is nothing like 1984!</p>

<p>Apple fans live in perfect glass arcologies for a 30% flat tax. Feist and Dylan play from iPod Hifis all day.</p>

<p>Xcode works great, it never needs rebooting! The cable into my eyesocket doesn't itch much all the time.</p>

<p>In the Redmond Wastelands, gangs of subhumans use MS Office and communicate only thru XBox Live Arcade (NAMBLA).</p>

<p>The Googleplex is "open", but every surface is covered in ads, and you are never allowed to leave.</p>

<p>Cannibalistic Linux Underground Dwellers (CLUDs) lurk beneath the cities, lecturing captives on free software.</p>

<p>Samsung operates a series of cheap plastic arcologies filled with smog. Nothing works, but it looks familiar.</p>

<p>The Talk Show broadcasts 24/7, but it's mostly what cheese @gruber likes. He was never the same after the war.</p>

<p>I must now return to the #AppleFuture! Prepare yourselves! Keep watching the skies!</p>
			
			<blockquote>
<p>Do you like old-school computer RPGs? Do you play tabletop RPGs? Do you have an iPhone®?</p>
<p><a href="http://markdamonhughes.com/Perilar" class="plainlink"><b>Perilar</b></a>
is my turn-based RPG for the iPhone, in the style of classic computer RPGs. Full version is $4.99, Lite version (limited to level 10) is free!
</p>
</blockquote>


			</div>

		  ]]></description>
		  <author>kamikaze@kuoi.asui.uidaho.edu</author>
		  <pubDate>Sat, 21 Jan 2012 07:18:27 -0800</pubDate>
		</item>		<item>
		  <category>Roleplaying</category>
		  <title>Hasbro Announces Dungeons & Dragons Fifth Edition</title>
		  <link>http://kuoi.com/~kamikaze/read.php?id=311</link>
		  <guid>http://kuoi.com/~kamikaze/read.php?id=311</guid>
		  <description><![CDATA[
			<div>
			<p>Over on my new <a href="http://markrollsdice.wordpress.com/">Mark Rolls Dice RPG blog</a>, I have posted about <a href="http://markrollsdice.wordpress.com/2012/01/09/hasbro-announces-dnd-5e/" target="_blank">Hasbro Announces Dungeons &amp; Dragons Fifth Edition</a>.
</p>

<p>(I won't normally repost links, but this is a new site)
</p>
			
			<blockquote>
<p>Do you like old-school computer RPGs? Do you play tabletop RPGs? Do you have an iPhone®?</p>
<p><a href="http://markdamonhughes.com/Perilar" class="plainlink"><b>Perilar</b></a>
is my turn-based RPG for the iPhone, in the style of classic computer RPGs. Full version is $4.99, Lite version (limited to level 10) is free!
</p>
</blockquote>


			</div>

		  ]]></description>
		  <author>kamikaze@kuoi.asui.uidaho.edu</author>
		  <pubDate>Mon, 09 Jan 2012 12:56:15 -0800</pubDate>
		</item>		<item>
		  <category>Mac</category>
		  <title>Using JetBrains AppCode aka JetCidr</title>
		  <link>http://kuoi.com/~kamikaze/read.php?id=310</link>
		  <guid>http://kuoi.com/~kamikaze/read.php?id=310</guid>
		  <description><![CDATA[
			<div>
			<p>After not using Xcode 4 for a week, my head was clear and I was feeling optimistic. When I relaunched Xcode 4 to try to write a little toy app, it was like being held down and gang-raped by angry, horny baboons. I am displeased, Apple. So I decided to have a go at <a href="http://www.jetbrains.com/objc/" target="_blank">JetBrains AppCode</a> again, the Java-based Objective-C IDE. Sure, it's by ugly Java dorks who make ugly Java apps, but it cannot be worse than being violated by baboons, right?
</p>

<p>Download. Very slowly (my ISP or their servers?). The demo videos are in Flash, so I couldn't watch them on my iPad while I waited. Appalling. Who the fuck uses Flash video in the 21st century? I don't even have Flash on my Air anymore.
</p>

<p>Set up, open a recently-created Xcode project. Works. Files are auto-sorted (yay), folders first, but language bundles are hidden, so XIB and strings files just seem to float at the top. Whatever, beats the manual file arranging in Xcode.
</p>

<p>All the appearance defaults are awful, but fixable in preferences:
</p>
<ul>
<li>change color scheme: Solarized Light, change text background to white, caret row (current line) to no background</li>
<li>increase font size to Menlo 13</li>
<li>turn off code folding</li>
<li>turn on soft wraps</li>
<li>turn on line numbers</li>
<li>turn off that insanely stupid "Allow placement of caret after end of line" thing JetBrains likes which makes me want to stab them in their stupid faces.</li>
<li>change code formatter to use tabs, 4 spaces per indent, and put newline between method/function and first curly brace, as the One True Brace Style directs. No, I don't wanna hear about it, fuck you.</li>
<li>KeyMap, add Opt-Up to Page Up, etc., add Cmd-Up to Move Caret to Text Start, etc. Ctrl-D to Main Menu/Edit/Delete. Why can't these dumbass Java people get Mac keyboard keys right? I used to be a Java &amp; Linux guy, and I still got them right whenever AWT didn't cock-block me.</li>
</ul>
</p>

<p>Start writing code. Learn that completion key is Ctrl-Space instead of Ctrl-. I'll be using that a LOT. F1 brings up docs, and it works. Hey, already you're doing better than Xcode!
</p>

<p>The editor tabs work correctly (though they have the x on the right, instead of the left where Apple puts them). Double-click a file, and it opens in a new tab. A new, UNIQUE tab. Hit Ctrl-Cmd-Up to edit counterpart, and it just magically opens the .h/.m file.
</p>

<p><b>FUCK YEAH, EDITOR TABS THAT WORK.</b></p>

<p>For this, I already love you and forgive you for a lot of shit, JetBrains.
</p>

<p>No code completion for the dealloc method (no, I'm not using <a href="http://clang.llvm.org/docs/AutomaticReferenceCounting.html" target="_blank">ARC</a> today). Add dealloc to "Live Templates", in Objective-C context:
<pre><code>
- (void)dealloc
{
	[super dealloc];
}
</code></pre>
<p>And to use it, just type dealloc[TAB]. I'd prefer if it was a code completion, but still nice.
</p>

<h4>The Property List Editor Misadventure</h4>

<p>Need to edit a property list? AppCode only thinks it's text. Even if you convince it it's XML, an XML editor for plists is a shit solution. And Xcode 4 doesn't ship with Property List Editor.app!</p

<p><b>Sane Option</b>: Buy <a href="http://www.fatcatsoftware.com/plisteditpro/" target="_blank">PlistEdit Pro</a>, $30 to nice developer Brian Webster. But that's blowjob money. <b>Cheap Bastard Option</b>: Dig PLE.app out of Xcode 3.2.6. Problem: I don't have any old Xcodes in my backups, so I would have to install it on Snow Leopard, and my original white MacBook runs too old a version of SL for Xcode, all others have Lion.
</p>

<p><b>MAD SCIENCE TIME!</b></p>

<p>Igor! Open the Xcode 3.26 dmg, and the hidden "Packages" folder! Use <a href="http://www.timdoug.com/unpkg/" target="_blank">Tim Doug's unpkg</a>! Drop in "DeveloperTools.pkg"! Copy <code>Applications/Utilities/Property List Editor.app</code> to ~/Applications where THOSE MEDDLING FOOLS at Apple won't bother it! Igor! Copy these obsolete libraries from Library/PrivateFrameworks to ~/Library/Frameworks: (NO, IGOR, WE ARE NOT PLAYING GOD! WE ARE GODS!)
</p>
<ul>
<li>DevToolsCore.framework</li>
<li>DevToolsCParsing.framework</li>
<li>DevToolsFoundation.framework</li>
<li>DevToolsSupport.framework</li>
<li>JavaKit.framework</li>
<li>PlistEdit.framework</li>
</ul>
<p><b>Throw the switch, Igor! Throw the motherfucking switch! Property List Editor lives! AGAIN! MUAHAHAHAHAHA!</b>
</p>

<p>So anywway. In AppCode's preferences, under External Tools, add an item, name it "plistedit", give it a group like "Mac Tools", program: <code>open</code>, parameters: <code>-a "Property List Editor" --args $FilePath$</code>, working directory: <code>$FileDir$</code>
</p>

<p>Now I can right-click on a plist file, Mac Tools, plistedit, and BAM, I'm editing plists like an old-timer. Fuck me. Totally would've been easier to just buy PlistEdit Pro. And at some point, this entire edifice of obsolete frameworks that I have constructed will come crashing down.
</p>

<h4>Back to Work</h4>

<p>Opening a XIB file pauses for a long time… then opens Xcode. Well, fine, can't build Rome in a day. Hopefully they'll replace that someday. I miss standalone Interface Builder.
</p>

<p>To build and run or debug on a device, you'll have to edit the configuration dropdown, but it found my device, and built and launched the app just fine. Turn on "Stop running session", so it'll kill the old debugger when you start a new one. I haven't really used the debugger yet, but it has GDB and LLDB, so it might be OK.
</p>

<p>AppCode supports Lion full-screen. It does mostly play nice like a Mac app, not a Java app.
</p>

<p>I was extremely dubious when I first heard of JetCidr (the original name). The first beta was laughable and unusable. But it's now actually… not bad. Maybe better than Xcode as long as you're just editing code. The lack of a property list editor and Interface Builder are crippling, so they need to get on those fast.
</p>

<p>AppCode is on sale for $69 until 2012Jan02, then goes back up to $99. I'll have to decide on the 2nd if it's a keeper, but it sucks less than the baboons.
</p>
			
			<blockquote>
<p>Do you like old-school computer RPGs? Do you play tabletop RPGs? Do you have an iPhone®?</p>
<p><a href="http://markdamonhughes.com/Perilar" class="plainlink"><b>Perilar</b></a>
is my turn-based RPG for the iPhone, in the style of classic computer RPGs. Full version is $4.99, Lite version (limited to level 10) is free!
</p>
</blockquote>


			</div>

		  ]]></description>
		  <author>kamikaze@kuoi.asui.uidaho.edu</author>
		  <pubDate>Fri, 30 Dec 2011 05:36:56 -0800</pubDate>
		</item>		<item>
		  <category>Software</category>
		  <title>Apps Are the New Apps</title>
		  <link>http://kuoi.com/~kamikaze/read.php?id=309</link>
		  <guid>http://kuoi.com/~kamikaze/read.php?id=309</guid>
		  <description><![CDATA[
			<div>
			<p>Another day, another <a href="http://ceklog.kindel.com/2011/12/26/windows-phone-is-superior-why-hasnt-it-taken-off/" target="_blank">very silly ex-Microsoft person</a> says "apps are dead", "app developers … are mostly irrelevant", "mobile's old, dead, and boring". This isn't even correct enough to be wrong, it's just nonsense.
</p>

<p>App store markets have exploded, see <a href="http://www.distimo.com/publications/" target="_blank">Distimo's 2011 mobile app store report</a>:
</p>

<p><a href="images/Distimo-2011-12-app.png" target="_blank"><img src="images/Distimo-2011-12-app.png" width="405" height="290" alt="Distimo-2011-12-app" /></a>
</p>

<p>A new mobile platform isn't even viable until it has a decent stable of basic apps (email, Twitter, Facebook, some camera/photo editing tools, book readers, task lists, etc.), games (at least <a href="http://www.lightsoffapp.com/" target="_blank">Lights Off</a> and Angry Fucking Birds), and maybe media apps (Rdio, Spotify, Netflix, JustinTV, etc.). And past that, it's all about who has the most good apps, the most good games.
</p>

<p>Right now, and for the forseeable future, that's iOS. Android's store is mostly junk, often outright frauds or viruses, but it's on the chart. Everybody else is in the gutter, under 50,000, with nearly flat growth.
</p>

<p>When you ask people what they do with their phones, they talk about apps. Not "<i>Oh, I like to look at my contacts list, because those are the people I care about, and then I call them like some Hallmark fucking special painted by Thomas Kincaid</i>". <b>BORING</b>. SO last century. Small talk now consists of "check out these awesome apps I found!"
</p>

<p>You can't be on every app store, you don't have time, and you can't afford it. Unless you're Angry Birds, which relies on massive scale, payola from platform owners and carriers, and cheap eastern European codemonkeys to port to the shit platforms.
</p>

<p>You can try making cross-platform web apps. Developing for HTML5/JS/CSS is incredibly hard to get even half-right, the experience is totally awful, and every platform still needs tweaking to work. And then how do you make <span style="color: green">money</span>? <span style="color: red">Advertising</span>? Ugh. Facebook's doing the worst of both worlds, making a web app with a native wrapper to handle system notifications for their iOS app… and it's the worst thing ever.
</p>

<p>Compare that to a beautiful native app, like the new <a href="http://path.com/" target="blank">Path</a>, which is fun and the little (+) button pops out SNIKKT! like Wolverine's claws, the clock moves down the page to show you where you are (which gets in the way after a while, but it's a thing no web app would even try to do), and the thing is fast and obvious and it works.
</p>

<p>So what you end up with is you ship on the best platform: iOS. If you have time and money, you maybe target the also-ran Android (Path did, but their Android app is a seriously sub-par experience). This costs a lot, because us iOS devs are not cheap; even Android devs aren't as cheap as you'd think. Charlie's estimate of $100K-250K for an app is ridiculously low. That's a year of one or maybe two devs. For that you get a 1.0, if you're lucky. You don't get multiple platforms, you don't get cloud servers, you don't get anything fancy. Developing on the gutter platforms like Symbian, Blackberry, or Windows Phone 7 won't even pay the bills. You're throwing money away for no ROI.
</p>

<p>Apple's managed to stay out of carrier-run marketing and carrier-fucked-up phones, but the reason it sells so well is the App Store. The iPhone 4S runs every iPhone app. The year-old 4 runs almost all of them, and the current OS. Even the 2-year-old 3GS runs 80-90% of the apps, and the current OS. The iPad 1 and 2 run almost all iPhone apps, and all the iPad apps, and a lot of the apps are universal. So if you make an iPhone app, you reach millions of happy customers, who will then spend every waking moment playing with your app and telling their friends about it.
</p>

<p>Android handset makers have been stupid enough to let the carriers screw up their devices, the carrier marketing is abysmal, and the OS on any given phone is <a href="http://theunderstatement.com/post/11982112928/android-orphans-visualizing-a-sad-history-of-support" target="_blank">fragmented and often 2 or 3 versions obsolete</a>, but you can make an "Android app" and reach millions of customers. Their <a href="http://www.investorplace.com/2010/11/new-smart-phones-iphone-vs-motorola-vs-blackberry-vs-samsung-vs-htc/" target="_blank">customer satisfaction levels are low</a>, and they don't pay for software, but they'll download free stuff and you can <span style="color: red">advertise</span> at them.
</p>

<p>This is why Windows Phone 7 is screwed. It needs apps. And to get apps, it has to compete for developer time and money with platforms that make money, either directly or by advertising. It has nothing to do with the carrier system. It has nothing to do with marketing. You have to convince developers to: Install Windows (which they won't do), learn the Windows dev tools (which they won't do), and then release on the Windows store, where it won't make any money, because there's no customers.
</p>

<p>We must never forget the fond memories of last September, when Microsoft <a href="http://kuoi.com/~kamikaze/read.php?id=289">gave themselves a parade</a>, claiming:
</p>

<p style="text-align: center"><b>
RIP Windows Phone 7 RIP U-Haul
<br />OS Platform
<br />☠ Buries the Competition ☠
<br />Burma Shave
</b></p>

<p><a href="images/Windows-Parade-4977684792_623f01f631_b.jpg" target="_blank"><img src="images/Windows-Parade-4977684792_623f01f631.jpg" width="500" height="299" /></a>
</p>
			
			<blockquote>
<p>Do you like old-school computer RPGs? Do you play tabletop RPGs? Do you have an iPhone®?</p>
<p><a href="http://markdamonhughes.com/Perilar" class="plainlink"><b>Perilar</b></a>
is my turn-based RPG for the iPhone, in the style of classic computer RPGs. Full version is $4.99, Lite version (limited to level 10) is free!
</p>
</blockquote>


			</div>

		  ]]></description>
		  <author>kamikaze@kuoi.asui.uidaho.edu</author>
		  <pubDate>Mon, 26 Dec 2011 23:21:49 -0800</pubDate>
		</item>		<item>
		  <category>Software</category>
		  <title>C is a Wonderful Language</title>
		  <link>http://kuoi.com/~kamikaze/read.php?id=308</link>
		  <guid>http://kuoi.com/~kamikaze/read.php?id=308</guid>
		  <description><![CDATA[
			<div>
			<p>
I started programming with BASIC in 1980, 6502 assembly and LOGO soon after, Pascal and Action! in ’85. So I had high-level languages and the lowest-level, but none were suited to building large programs where efficiency mattered.
</p>

<p>
Then in '86 I learned C (from <a href="http://www.amazon.com/Programming-3rd-Stephen-G-Kochan/dp/0672326663">Stephen Kochan's Programming in C</a>). Even with what were then very primitive tools, it made all other tools obsolete. It took me a couple years to learn proper memory management: for a long time, I just made big-enough arrays of structs, didn't use malloc. Took a long time to learn the right way to write programs, not just imitating BASIC and assembly. But C is just high-level enough that you can make a structured program, and still low-level enough that you can write efficient code, device drivers, graphics and sound, networking, and so on.
</p>

<p>
By '93 I got corrupted by Perl, Python, Java, and spent a decade away from C with high-level languages, doing server software, where efficiency mattered less. These languages have two or three well-padded layers between you and the machine, and they're comfortable. They're slower, in some cases much slower, but the worst part is that you can't even touch the hardware, you can't drop down to a lower level—unless you write native extensions in C, and there's a horrible set of compatibility APIs then. Java's JNI and Python extensions make you write so much wrapper code that you lose any advantage of doing C.
</p>

<p>
When I got Mac OS X, I had to learn Objective-C, and that meant re-learning C. And I re-realized how great C was. <b>C's greatest virtue is that it hides most of the variations between hardware, but is still right above the machine level.</b> The truth of what a computer is, is a CPU manipulating numbers in registers and memory addresses. There's nothing else in C, it provides libraries to handle those numbers as if they were strings or whatever, but you can read their source and see exactly how they work. No magic, no black boxes. Yes, it's low-level, and managing memory requires discipline and good habits, but these are good traits to cultivate anyway.
</p>

<p>
In iOS and Mac OS X, I think of apps as a collection of small programs. Each part (a view controller, say) has an Obj-C setup and teardown, limited interaction with other parts, and internal guts. You can go a long way with Obj-C, but if you write the internal guts in it, your performance will suffer, and it's tedious to box and unbox everything in object wrappers. It's much faster and more natural to write that in C. It's sweet that Obj-C just fades seamlessly into C, unlike Java JNI.
</p>

<p>
I suppose I wouldn't use C to build an entire program, unless it was just a little command-line tool. But C's survived from 1972 to present, and will be essential to understanding a computer for decades to come.
</p>

<p>As for C++, the answer is just "No." C++ is symptomatic of everything that's wrong with programming, the glorification of complexity for no gain. The only good part about C++ is C, and you can just use C instead.
</p>

<p>See also: <a href="http://inessential.com/2011/11/06/linus_on_c_">Brent Simmons</a> and <a href="http://www.red-sweater.com/blog/2256/objective-c-is-the-language">Daniel Jailkut</a>’s arguments for and against C.
</p>
			
			<blockquote>
<p>Do you like old-school computer RPGs? Do you play tabletop RPGs? Do you have an iPhone®?</p>
<p><a href="http://markdamonhughes.com/Perilar" class="plainlink"><b>Perilar</b></a>
is my turn-based RPG for the iPhone, in the style of classic computer RPGs. Full version is $4.99, Lite version (limited to level 10) is free!
</p>
</blockquote>


			</div>

		  ]]></description>
		  <author>kamikaze@kuoi.asui.uidaho.edu</author>
		  <pubDate>Mon, 07 Nov 2011 06:12:39 -0800</pubDate>
		</item>		<item>
		  <category>Mac</category>
		  <title>Goodbye, Steve Jobs</title>
		  <link>http://kuoi.com/~kamikaze/read.php?id=307</link>
		  <guid>http://kuoi.com/~kamikaze/read.php?id=307</guid>
		  <description><![CDATA[
			<div>
			<p><a href="http://www.apple.com/stevejobs/">Bye, Steve, we'll miss you more than anyone.</a></p>

<p>I didn't grow up an Apple or Mac user. I liked them, in UI computer labs and at work, but most of the time I could've had one was the very confused post-Jobs era, random-number Quadras priced twice as high as competition. But NeXT excited me, though I also couldn't afford one. And when Steve came back and brought NeXTstep into Apple, that was the turning point.
</p>

<p>In 2005, I got so frustrated with my big Linux box not mixing sound that I bought a cheap Mac mini, as a Unix workstation that Just Fucking Worked. From there on I've bought nothing but Macs, quit accepting shitty Linux or Windows workstations at work, and eventually switched to iOS development.
</p>

<p>Now I'm accused of being a "Perfectionist Mac Elitist". I take that as a compliment. Accepting shitty hardware and software wasn't good enough for Steve, and it's not good enough for me. The Mac developer community is full of others like this. Shitty stuff gets criticized and ground down until it's awesome or goes away. These are not impossible standards. Everyone should try to make everything they do the best they possibly can.
</p>

<p>I never met Steve, but I've seen him on the WWDC stage 3 times. He was (usually) as excited about the new things as we were. A couple of times you'd catch him sorta flattening when it was a lame or tedious thing, not up to his standards. Only once I recall we rebelled, shouted back at him, when he told us the "sweet solution" to iPhone development was HTML/JS. Train people to be perfectionists, and they won't accept anything but perfection.
</p>

<p>I didn't feel like going out to a real Apple Store to mourn in public, so I made one in Minecraft:
</p>

<p>
<a href="images/Applecraft-20111006-01-sunset.png" target="_blank"><img src="images/Applecraft-20111006-01-sunset-256x160.png" alt="Applecraft-20111006-01-sunset-256x160.png" width="256" height="160"></a>

<a href="images/Applecraft-20111006-02-front.png" target="_blank"><img src="images/Applecraft-20111006-02-front-256x160.png" alt="Applecraft-20111006-02-front-256x160.png" width="256" height="160"></a>

<a href="images/Applecraft-20111006-03-logo.png" target="_blank"><img src="images/Applecraft-20111006-03-logo-256x160.png" alt="Applecraft-20111006-03-logo-256x160.png" width="256" height="160"></a>
</p>
			
			<blockquote>
<p>Do you like old-school computer RPGs? Do you play tabletop RPGs? Do you have an iPhone®?</p>
<p><a href="http://markdamonhughes.com/Perilar" class="plainlink"><b>Perilar</b></a>
is my turn-based RPG for the iPhone, in the style of classic computer RPGs. Full version is $4.99, Lite version (limited to level 10) is free!
</p>
</blockquote>


			</div>

		  ]]></description>
		  <author>kamikaze@kuoi.asui.uidaho.edu</author>
		  <pubDate>Thu, 06 Oct 2011 08:17:59 -0700</pubDate>
		</item>		<item>
		  <category>Media</category>
		  <title>Top 100 SF and Fantasy Books</title>
		  <link>http://kuoi.com/~kamikaze/read.php?id=306</link>
		  <guid>http://kuoi.com/~kamikaze/read.php?id=306</guid>
		  <description><![CDATA[
			<div>
			<p>NPR has a nice survey list of the <a href="http://www.npr.org/2011/08/09/139248590/top-100-science-fiction-fantasy-books">Top 100 SF &amp; fantasy books</a>. My top 13 (lucky!) list would be different:</p>

<ol>
<li>The Hitchhiker's Guide To The Galaxy, by Douglas Adams</li>
<li>The Call of Cthulhu, by H.P. Lovecraft</li>
<li>Snow Crash, by Neal Stephenson</li>
<li>The Dune Chronicles, by Frank Herbert</li>
<li>Schismatrix, by Bruce Sterling</li>
<li>Axiomatic, by Greg Egan</li>
<li>The Elric Saga, by Michael Moorcock</li>
<li>Software, by Rudy Rucker</li>
<li>Gridlinked, by Neal Asher</li>
<li>Chasm City, by Alastair Reynolds</li>
<li>The Conan The Barbarian Series, by R.E. Howard</li>
<li>The Fafhrd &amp; the Grey Mouser series, by Fritz Leiber</li>
<li>The Shockwave Rider, by John Brunner</li>
</ol>

<p>If you read all of those and any sequels, you will be able to think more like me. And isn't that what everyone wants?</p>
			<p><a href='http://kuoi.com/~kamikaze/read.php?id=306'>more...</a></p>

			<blockquote>
<p>Do you like old-school computer RPGs? Do you play tabletop RPGs? Do you have an iPhone®?</p>
<p><a href="http://markdamonhughes.com/Perilar" class="plainlink"><b>Perilar</b></a>
is my turn-based RPG for the iPhone, in the style of classic computer RPGs. Full version is $4.99, Lite version (limited to level 10) is free!
</p>
</blockquote>


			</div>

		  ]]></description>
		  <author>kamikaze@kuoi.asui.uidaho.edu</author>
		  <pubDate>Fri, 12 Aug 2011 02:02:42 -0700</pubDate>
		</item>  </channel>
</rss>
