<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: Magical Code</title>
	<atom:link href="http://www.red-sweater.com/blog/83/magical-code/feed" rel="self" type="application/rss+xml" />
	<link>http://www.red-sweater.com/blog/83/magical-code</link>
	<description>Mac &#38; Technology Writings by Daniel Jalkut</description>
	<lastBuildDate>Thu, 16 May 2013 21:58:44 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
	<item>
		<title>By: Pete</title>
		<link>http://www.red-sweater.com/blog/83/magical-code/comment-page-1#comment-522</link>
		<dc:creator>Pete</dc:creator>
		<pubDate>Sun, 15 Jan 2006 02:19:42 +0000</pubDate>
		<guid isPermaLink="false">http://www.red-sweater.com/blog/?p=83#comment-522</guid>
		<description><![CDATA[Having recently made the jump from GUI all the way down to drivers, a lot of this talk sounds familiar, and I guess I don&#039;t have anything revolutionary to add, except perhaps &quot;permission to try&quot; has a lot to do with the mountain of documentation you know must exist somewhere but [a] you&#039;re not sure where to start, and [b] the documentation you expect simply does not exist. Mix these two facts together and you can spend a lot of time blaming yourself because other people seem to be getting along just fine with the paltry, obtuse, disorganized reference docs which do exist. Those other guys must be wizards! And I suck. I&#039;m not criticizing technical publications departments; I know they&#039;d love to write reams and reams more if they had the money and could find the people. I don&#039;t think the execs who budget these things realize just how daunting it can be to try something without a few clues.]]></description>
		<content:encoded><![CDATA[<p>Having recently made the jump from GUI all the way down to drivers, a lot of this talk sounds familiar, and I guess I don&#8217;t have anything revolutionary to add, except perhaps &#8220;permission to try&#8221; has a lot to do with the mountain of documentation you know must exist somewhere but [a] you&#8217;re not sure where to start, and [b] the documentation you expect simply does not exist. Mix these two facts together and you can spend a lot of time blaming yourself because other people seem to be getting along just fine with the paltry, obtuse, disorganized reference docs which do exist. Those other guys must be wizards! And I suck. I&#8217;m not criticizing technical publications departments; I know they&#8217;d love to write reams and reams more if they had the money and could find the people. I don&#8217;t think the execs who budget these things realize just how daunting it can be to try something without a few clues.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: alexr</title>
		<link>http://www.red-sweater.com/blog/83/magical-code/comment-page-1#comment-491</link>
		<dc:creator>alexr</dc:creator>
		<pubDate>Mon, 09 Jan 2006 20:41:38 +0000</pubDate>
		<guid isPermaLink="false">http://www.red-sweater.com/blog/?p=83#comment-491</guid>
		<description><![CDATA[I dunno. There are &quot;magic&quot; linkers and regular linkers.

Take the vintage MPW tool PPCLink for example. It did dead stripping and nobody considered that a special or advanced feature. In the PEF format is a bytecode system for expanding a relocating data (the &quot;pidata&quot; section type). PPCLink even had a peephole optimizer for those bytecodes.

By comparison to the linkers we use today, PPCLink _was_ magic.]]></description>
		<content:encoded><![CDATA[<p>I dunno. There are &#8220;magic&#8221; linkers and regular linkers.</p>
<p>Take the vintage MPW tool PPCLink for example. It did dead stripping and nobody considered that a special or advanced feature. In the PEF format is a bytecode system for expanding a relocating data (the &#8220;pidata&#8221; section type). PPCLink even had a peephole optimizer for those bytecodes.</p>
<p>By comparison to the linkers we use today, PPCLink _was_ magic.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Paul Suh</title>
		<link>http://www.red-sweater.com/blog/83/magical-code/comment-page-1#comment-489</link>
		<dc:creator>Paul Suh</dc:creator>
		<pubDate>Mon, 09 Jan 2006 05:42:48 +0000</pubDate>
		<guid isPermaLink="false">http://www.red-sweater.com/blog/?p=83#comment-489</guid>
		<description><![CDATA[&quot;Magic&quot;, to me, is in the programmer and his or her vision. I&#039;ve done high-level and low-level work, and once you get your head wrapped around the situation the code itself is all pretty straightforward. However, there are some people for whom creating an elegant and precise *design* seems so easy, and yet for most mere mortals it&#039;s an uphill battle.]]></description>
		<content:encoded><![CDATA[<p>&#8220;Magic&#8221;, to me, is in the programmer and his or her vision. I&#8217;ve done high-level and low-level work, and once you get your head wrapped around the situation the code itself is all pretty straightforward. However, there are some people for whom creating an elegant and precise *design* seems so easy, and yet for most mere mortals it&#8217;s an uphill battle.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: David Garcea</title>
		<link>http://www.red-sweater.com/blog/83/magical-code/comment-page-1#comment-488</link>
		<dc:creator>David Garcea</dc:creator>
		<pubDate>Mon, 09 Jan 2006 04:28:07 +0000</pubDate>
		<guid isPermaLink="false">http://www.red-sweater.com/blog/?p=83#comment-488</guid>
		<description><![CDATA[I don&#039;t find any code magical anymore. I know that if I put enough time into it, eventually it will make sense. The question is whether that amount of time is worth it.

What I find magical is the ability to conjure up ideas for innovations like the GUI, the web, or the first person shooter. Even in smaller doses, like bar code scanning via iSight in Delicious Library, this ability amazes me. You could spend the rest of your life brainstorming and there is still a chance that you wouldn&#039;t come up with anything even comparable.]]></description>
		<content:encoded><![CDATA[<p>I don&#8217;t find any code magical anymore. I know that if I put enough time into it, eventually it will make sense. The question is whether that amount of time is worth it.</p>
<p>What I find magical is the ability to conjure up ideas for innovations like the GUI, the web, or the first person shooter. Even in smaller doses, like bar code scanning via iSight in Delicious Library, this ability amazes me. You could spend the rest of your life brainstorming and there is still a chance that you wouldn&#8217;t come up with anything even comparable.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Daniel Jalkut</title>
		<link>http://www.red-sweater.com/blog/83/magical-code/comment-page-1#comment-487</link>
		<dc:creator>Daniel Jalkut</dc:creator>
		<pubDate>Mon, 09 Jan 2006 04:16:03 +0000</pubDate>
		<guid isPermaLink="false">http://www.red-sweater.com/blog/?p=83#comment-487</guid>
		<description><![CDATA[I think what&#039;s most difficult about IB isn&#039;t the data format itself, but the subtle, undocumented things that happen behind the scenes. Sure, it&#039;s a &quot;standard archive.&quot; Until you find out that SuchAndSuchView isn&#039;t actually SuchAndSuchView but IBHackedSuchAndSuchView or something, that gets recognized by AppKit on unarchiving and magically transformed into something functional.  Or you discover after beating your head bloody that the an NSButton instantiated and archived in IB for some reason ends up with different default settings than an NSButton alloc&#039;d and init&#039;ed in your code.

That&#039;s magic all right - black magic!]]></description>
		<content:encoded><![CDATA[<p>I think what&#8217;s most difficult about IB isn&#8217;t the data format itself, but the subtle, undocumented things that happen behind the scenes. Sure, it&#8217;s a &#8220;standard archive.&#8221; Until you find out that SuchAndSuchView isn&#8217;t actually SuchAndSuchView but IBHackedSuchAndSuchView or something, that gets recognized by AppKit on unarchiving and magically transformed into something functional.  Or you discover after beating your head bloody that the an NSButton instantiated and archived in IB for some reason ends up with different default settings than an NSButton alloc&#8217;d and init&#8217;ed in your code.</p>
<p>That&#8217;s magic all right &#8211; black magic!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Eric Albert</title>
		<link>http://www.red-sweater.com/blog/83/magical-code/comment-page-1#comment-484</link>
		<dc:creator>Eric Albert</dc:creator>
		<pubDate>Sun, 08 Jan 2006 21:04:52 +0000</pubDate>
		<guid isPermaLink="false">http://www.red-sweater.com/blog/?p=83#comment-484</guid>
		<description><![CDATA[No, the IB file format is pretty straightforward.  It&#039;s an NSArchive of the assorted objects in the nib.  That&#039;s how nibtool reads it -- it just unarchives it.  And I guess thinking about it that way makes the whole interaction less magic, since really it&#039;s just an instantiation of the objects defined in code with certain variables getting initialized to point to other instantiated objects.  Huh.  I&#039;d never thought about it that way before. :)]]></description>
		<content:encoded><![CDATA[<p>No, the IB file format is pretty straightforward.  It&#8217;s an NSArchive of the assorted objects in the nib.  That&#8217;s how nibtool reads it &#8212; it just unarchives it.  And I guess thinking about it that way makes the whole interaction less magic, since really it&#8217;s just an instantiation of the objects defined in code with certain variables getting initialized to point to other instantiated objects.  Huh.  I&#8217;d never thought about it that way before. :)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Cameron Hayne</title>
		<link>http://www.red-sweater.com/blog/83/magical-code/comment-page-1#comment-481</link>
		<dc:creator>Cameron Hayne</dc:creator>
		<pubDate>Sun, 08 Jan 2006 00:17:37 +0000</pubDate>
		<guid isPermaLink="false">http://www.red-sweater.com/blog/?p=83#comment-481</guid>
		<description><![CDATA[Eric Albert said: &quot;Things that happen without code and which you can’t debug are magic.&quot;

Or maybe they are just poorly documented (e.g. file format generated by IB)?]]></description>
		<content:encoded><![CDATA[<p>Eric Albert said: &#8220;Things that happen without code and which you can’t debug are magic.&#8221;</p>
<p>Or maybe they are just poorly documented (e.g. file format generated by IB)?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Gems from jem &#187; Easy, hard and magical code</title>
		<link>http://www.red-sweater.com/blog/83/magical-code/comment-page-1#comment-479</link>
		<dc:creator>Gems from jem &#187; Easy, hard and magical code</dc:creator>
		<pubDate>Sat, 07 Jan 2006 22:50:08 +0000</pubDate>
		<guid isPermaLink="false">http://www.red-sweater.com/blog/?p=83#comment-479</guid>
		<description><![CDATA[[...] This is a good read       No responses to &#039;Easy, hard and magical code&#039;.  RSS feed for comments and Trackback URI for &#039;Easy, hard and magical code&#039;. [...]]]></description>
		<content:encoded><![CDATA[<p>[...] This is a good read       No responses to &#8216;Easy, hard and magical code&#8217;.  RSS feed for comments and Trackback URI for &#8216;Easy, hard and magical code&#8217;. [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Eric Albert</title>
		<link>http://www.red-sweater.com/blog/83/magical-code/comment-page-1#comment-477</link>
		<dc:creator>Eric Albert</dc:creator>
		<pubDate>Sat, 07 Jan 2006 21:24:27 +0000</pubDate>
		<guid isPermaLink="false">http://www.red-sweater.com/blog/?p=83#comment-477</guid>
		<description><![CDATA[Eh, linkers aren&#039;t all that magic.  They&#039;re just code. :)  In fact, I&#039;ve seen both a linker and a dynamic (runtime) linker written in modern C++, and they were both easy to understand and easy to extend.

I think a lot of why people tend to regard low-level code as magic is that it often involves assembly code, and there aren&#039;t too many programmers out there who know assembly.  Thing is, assembly isn&#039;t that hard in most cases.  It&#039;s just different.  I&#039;m planning to explain some of it in hopefully simple terms on my weblog sometime.

It&#039;s weird -- as someone who regularly writes and debugs assembly code and low-level things as well as various high-level things, the stuff that&#039;s magic to me isn&#039;t that part of the system or even high-level code.  It&#039;s the IBCocoa interaction.  It&#039;s the fact that when you drag something from one thing to another in IB, stuff just happens when the nib is opened and there isn&#039;t any code to go along with it.  Things that happen without code and which you can&#039;t debug are magic.]]></description>
		<content:encoded><![CDATA[<p>Eh, linkers aren&#8217;t all that magic.  They&#8217;re just code. :)  In fact, I&#8217;ve seen both a linker and a dynamic (runtime) linker written in modern C++, and they were both easy to understand and easy to extend.</p>
<p>I think a lot of why people tend to regard low-level code as magic is that it often involves assembly code, and there aren&#8217;t too many programmers out there who know assembly.  Thing is, assembly isn&#8217;t that hard in most cases.  It&#8217;s just different.  I&#8217;m planning to explain some of it in hopefully simple terms on my weblog sometime.</p>
<p>It&#8217;s weird &#8212; as someone who regularly writes and debugs assembly code and low-level things as well as various high-level things, the stuff that&#8217;s magic to me isn&#8217;t that part of the system or even high-level code.  It&#8217;s the IBCocoa interaction.  It&#8217;s the fact that when you drag something from one thing to another in IB, stuff just happens when the nib is opened and there isn&#8217;t any code to go along with it.  Things that happen without code and which you can&#8217;t debug are magic.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Blake Seely</title>
		<link>http://www.red-sweater.com/blog/83/magical-code/comment-page-1#comment-476</link>
		<dc:creator>Blake Seely</dc:creator>
		<pubDate>Sat, 07 Jan 2006 20:38:19 +0000</pubDate>
		<guid isPermaLink="false">http://www.red-sweater.com/blog/?p=83#comment-476</guid>
		<description><![CDATA[So far, this is turning out to be true with Mugshot - the backend Flickr &quot;kit&quot; that I built is pretty simple and what I originally thought would turn out to be 20 or more classes is one. And I&#039;m the only person that has to deal with any problems with it. The UI, on the other hand, is consuming almost all of my time - how to make so much functionality simple, elegant, and obvious. Flickr provides a *lot* of functionality, and the goal of Mugshot is to make it easier and faster than using the website - but that&#039;s not (so far) an easy goal to achieve.]]></description>
		<content:encoded><![CDATA[<p>So far, this is turning out to be true with Mugshot &#8211; the backend Flickr &#8220;kit&#8221; that I built is pretty simple and what I originally thought would turn out to be 20 or more classes is one. And I&#8217;m the only person that has to deal with any problems with it. The UI, on the other hand, is consuming almost all of my time &#8211; how to make so much functionality simple, elegant, and obvious. Flickr provides a *lot* of functionality, and the goal of Mugshot is to make it easier and faster than using the website &#8211; but that&#8217;s not (so far) an easy goal to achieve.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Page Caching using disk: enhanced

 Served from: www.red-sweater.com @ 2013-05-22 05:03:07 by W3 Total Cache -->