<?xml version="1.0" encoding="iso-8859-1"?>
<rss version="2.0" 
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:admin="http://webns.net/mvcb/"
	xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
	xmlns:content="http://purl.org/rss/1.0/modules/content/">
	
	<channel>
		<title>Designing Learning Technology</title>
		<link>http://www.inquirium.net/design2learn/index.php</link>
		<description>Viewpoints along the research to practice trail.</description>
		<dc:language>eng</dc:language>
		<dc:creator></dc:creator>
		<dc:rights>Copyright 2008</dc:rights>
		<dc:date>2008-02-11T16:40:29-05:00</dc:date>
		<admin:generatorAgent rdf:resource="http://www.pivotlog.net/?ver=Pivot+-+1.24.3%3A+%27Arcee%27" />
		<admin:errorReportsTo rdf:resource="mailto:rsserrors@pivotlog.net"/>
		<sy:updatePeriod>hourly</sy:updatePeriod>
		<sy:updateFrequency>1</sy:updateFrequency>
		<sy:updateBase>2000-01-01T12:00+00:00</sy:updateBase>
		
		
		
		
		<item>
			<title>Exploration Place: Thumbs Up</title>
			<link>http://www.inquirium.net/design2learn/pivot/entry.php?id=191</link>
			<comments>http://www.inquirium.net/design2learn/pivot/entry.php?id=191#comm</comments>
			<description>Three big thumbs up for the Exploration Place. If you&amp;#8217;re in Wichita with kids, go: this new science museum is a blast. Our daughter loved the three story castle exhibit, and Sue is coming soon. Best parental feature? A row of leather recliners with massage controls that face a huge bank of windows looking out over the river.
</description>
			<guid isPermaLink="false">191@http://www.inquirium.net/design2learn/</guid>
			<content:encoded><![CDATA[ <p>Three big thumbs up for the <a href="http://www.exploration.org/">Exploration Place</a>. If you&#8217;re in Wichita with kids, go: this new science museum is a blast. Our daughter loved the three story castle exhibit, and <a href="http://www.fieldmuseum.org/SUE/traveling.asp">Sue</a> is coming soon. Best parental feature? A row of leather recliners with massage controls that face a huge bank of windows looking out over the river.</p>

 ]]></content:encoded>
			<dc:subject>default</dc:subject>
			<dc:date>2006-08-08T12:16:00-05:00</dc:date>
		</item>
		
		
		
		<item>
			<title>Vestigial Resource Forks</title>
			<link>http://www.inquirium.net/design2learn/pivot/entry.php?id=185</link>
			<comments>http://www.inquirium.net/design2learn/pivot/entry.php?id=185#comm</comments>
			<description>&amp;#8220;Resource forks are so 1990s.&amp;#8221;

That may be, but it&amp;#8217;s funny how they stick around in OS X, hanging on to data files like dryer lint.

I&amp;#8217;ve been cleaning up a project archive so that I can move it into svn instead of doing ad hoc, zip-the-entire-folder style backups. The trick is that many of the files aren&amp;#8217;t plain text files: there are Photoshop source images, AppleScripts, REALbasic project files&amp;#8230; all kinds of stuff.

svn can handle text and binary files just fine, but it doesn&amp;#8217;t pay any attention to resource forks. That&amp;#8217;s the main reason I haven&amp;#8217;t moved the archive over sooner.

But in OS X, resource forks are a deprecated technology, right? How pervasive can these things still be?
</description>
			<guid isPermaLink="false">185@http://www.inquirium.net/design2learn/</guid>
			<content:encoded><![CDATA[ <p>&#8220;<a href="http://en.wikipedia.org/wiki/Resource_fork">Resource forks</a> are so 1990s.&#8221;</p>

<p>That may be, but it&#8217;s funny how they stick around in OS X, hanging on to data files like dryer lint.</p>

<p>I&#8217;ve been cleaning up a project archive so that I can move it into svn instead of doing ad hoc, zip-the-entire-folder style backups. The trick is that many of the files aren&#8217;t plain text files: there are Photoshop source images, AppleScripts, REALbasic project files&#8230; all kinds of stuff.</p>

<p>svn can handle text and binary files just fine, but it doesn&#8217;t pay any attention to resource forks. That&#8217;s the main reason I haven&#8217;t moved the archive over sooner.</p>

<p>But in OS X, resource forks are a deprecated technology, right? How pervasive can these things still be?</p>
<p>The first step is to figure out which files have resource forks and which don&#8217;t. That by itself is not too difficult, and afterwards my little resource fork browser tool tells me that over 100 of 252 files in my archive have resource forks.</p>

<p>Now comes the tricky part. I&#8217;d like to just sic the <a href="http://free.abracode.com/cmworkshop/grim_ripper.html">Grim Ripper</a> on all these files and remove their resource forks entirely. But not all resources are created equal. Some applications use resources to attach useful but fundamentally unessential metadata to files. Such files can be shoved into svn without concern.</p>

<p>Other applications store essential information in resources. These files need to be safely converted &#8212; to .zip, .r, or .bin formats, for example &#8212; before adding to svn.</p>

<p>Looking more closely at the files with resource forks, they break down like this:</p>

<ul>
<li>povray source files (.pov)</li>
<li>povray-generated PICT images (.pict)</li>
<li>Photoshop source files (.psd)</li>
<li>Photoshop-exported image files (.pct, .gif, .jpg, .bmp)</li>
<li>BBEdit-edited text files (.py, .txt, etc.)</li>
<li>AppleScripts (.scpt)</li>
<li>AppleScript applications</li>
<li>OmniGraffle files (.graffle)</li>
<li>Icon files</li>
<li>ResEdit files</li>
</ul>

<p>Let&#8217;s take a closer look, shall we?</p>

<p>povray source files have custom &#8216;POVR&#8217; resources (ID 1000, 3000, and 3001). 1000 and 3001 store window position data and are safe to delete. 3000 is trickier: this stores any custom render settings for the file. In general this is safe to delete, although you may want to store information about preferred render settings within the text file itself for safety.</p>

<p>povray-generated PICT files have a single &#8216;icns&#8217; resource (-16455). This is just a custom icon for the file that the Finder can display in file lists. Safe to remove.</p>

<p>Similarly, Photoshop likes to dump a pile of resources into the files it saves so that the Finder can preview the file for you. These resources, which include the &#8216;icns&#8217; resource above, a &#8216;STR &#8217; resource, a &#8216;PICT&#8217; preview, and lots of &#8216;8BIM&#8217; resources, can all be safely stripped. Note that if you use Photoshop&#8217;s export to web command, you&#8217;ll get a file with no resources. But if you use Save or Save As, they tag along.</p>

<p>BBEdit, along with some other text editors, likes to attach &#8216;MPSR&#8217; resources that contain information about the editing session (font information and window position). I&#8217;m also noticing some empty &#8216;CSta&#8217; resources (ID 128) &#8212; I don&#8217;t know what these are for, and we&#8217;re talking about text files, for Pete&#8217;s sake. These resources are not necessary.</p>

<p>AppleScript gets trickier. AppleScript applications have vital resources. For use with a version control system, it&#8217;s better to track the source script file and assume we can rebuild the application as needed. AppleScript .scpt files also have resources. &#8216;WPos&#8217; and &#8216;DPos&#8217; ID 128 look like window position information and can be removed. However, note that if you use the Description field, Script Editor stores your description in a styled text resource pair: &#8216;TEXT&#8217; and &#8216;styl&#8217; ID 1128. In some cases this may be critical information. My suggestion is to stop using this field and simply add your description to the top of your script as a comment.</p>

<p>OmniGraffle uses &#8216;icns&#8217; for Finder previewing. Safe to remove.</p>

<p>Icon files are collections of icon resources at various sizes. These are critical elements, but you can use .icns files instead of resource files to store the same information in the data fork. Iconographer is useful for this.</p>

<p>ResEdit files are, fundamentally, collections of resources, so by definition we can&#8217;t strip these resources out. These files are usually used in development environments and added to built applications to meet a variety of needs. Fortunately, in modern OS X development, you can get away with using packages to provide much of what used to be done using resources. In XCode or CodeWarrior, you can avoid having to use ResEdit-style files by using .r files or data-fork based .rsrc resource files. For REALbasic, there is little need to add resources to a project, with the exception of &#8216;CURS&#8217; resources to support various cursor appearances.</p>

<p>So at the end of the day, most of these resources can be ignored. A few, like POVR 3000 and AppleScript&#8217;s TEXT/style resources, may contain important information, but you can store the same information within the file itself, as long as you&#8217;re aware of the need to do so.</p>

<p>For the rare few critical resources, DeRezzing them seems the best option for svn management. Just remember to update the derezzed version when you modify the source! (A preflight script that checks compares modification dates might be a good idea.)</p>

<p>It is remarkable that six years into OS X, nearly half of the files in this archive have resource data attached to them. Most of this data seems to fall into one of two purposes: Finder preview information, or &#8220;last known state&#8221; information that can&#8217;t be added to the file itself because the file is in a shared format (e.g. plain text, JPEG). These aren&#8217;t critical uses, but the continued pervasiveness of resource forks makes me wonder whether Apple&#8217;s going to be able to completely kill them off. In 2012, I expect resource forks will still be hanging on.</p>
 ]]></content:encoded>
			<dc:subject>default</dc:subject>
			<dc:date>2006-07-15T16:28:00-05:00</dc:date>
		</item>
		
		
		
		<item>
			<title>Bicycling in Seattle</title>
			<link>http://www.inquirium.net/design2learn/pivot/entry.php?id=182</link>
			<comments>http://www.inquirium.net/design2learn/pivot/entry.php?id=182#comm</comments>
			<description>I lost my Seattle bike map months ago and haven&amp;#8217;t replaced it because I never get downtown to the Dept. of Transportation offices. Well, it turns out you can request a copy online, and the city will mail it to you for free.
</description>
			<guid isPermaLink="false">182@http://www.inquirium.net/design2learn/</guid>
			<content:encoded><![CDATA[ <p>I lost my <a href="http://www.ci.seattle.wa.us/transportation/bikemaps.htm">Seattle bike map</a> months ago and haven&#8217;t replaced it because I never get downtown to the Dept. of Transportation offices. Well, it turns out you can <a href="http://www.ci.seattle.wa.us/transportation/bikemapform.htm">request a copy online</a>, and the city will mail it to you for free.</p>

 ]]></content:encoded>
			<dc:subject>default</dc:subject>
			<dc:date>2006-07-01T18:04:00-05:00</dc:date>
		</item>
		
		
		
		<item>
			<title>Comment spam update</title>
			<link>http://www.inquirium.net/design2learn/pivot/entry.php?id=166</link>
			<comments>http://www.inquirium.net/design2learn/pivot/entry.php?id=166#comm</comments>
			<description>Bloggers are quite aware of the problem of comment spam: automated bots that seek out weblogs and leave inane comments that contain links. The goal is to improve the advertised site&amp;#8217;s Google PageRank, in addition to providing a few impressions on the weblog.

We&amp;#8217;ve had this problem under control for several months using a technique called HashCash. We also format all links in comments with the rel=&amp;#8217;nofollow&amp;#8217; attribute, which prevents Google from using the link in its PageRank calculations. (Yet spambots still visit us. Go figure.)

Recently, some spambots has broken HashCash. So, we&amp;#8217;ve added a new layer of shiny anti-spambot coating: the Obvious Question. If you&amp;#8217;re leaving a comment (please do!), before you submit the comment form you&amp;#8217;ll need to answer an Obvious Question. The answer is even provided, in case what&amp;#8217;s obvious to us isn&amp;#8217;t obvious to you.

In general, we hate the idea of inconveniencing real contributors in order to better manage spam. But the ratio of spambot postings to real postings is running well over 1:1. The Obvious Question attempts to solve the problem in the least intrusive way.
</description>
			<guid isPermaLink="false">166@http://www.inquirium.net/design2learn/</guid>
			<content:encoded><![CDATA[ <p>Bloggers are quite aware of the problem of comment spam: automated bots that seek out weblogs and leave inane comments that contain links. The goal is to improve the advertised site&#8217;s Google PageRank, in addition to providing a few impressions on the weblog.</p>

<p>We&#8217;ve had this problem under control for several months using a technique called HashCash. We also format all links in comments with the rel=&#8217;nofollow&#8217; attribute, which prevents Google from using the link in its PageRank calculations. (Yet spambots still visit us. Go figure.)</p>

<p>Recently, some spambots has broken HashCash. So, we&#8217;ve added a new layer of shiny anti-spambot coating: the Obvious Question. If you&#8217;re leaving a comment (please do!), before you submit the comment form you&#8217;ll need to answer an Obvious Question. The answer is even provided, in case what&#8217;s obvious to us isn&#8217;t obvious to you.</p>

<p>In general, we hate the idea of inconveniencing real contributors in order to better manage spam. But the ratio of spambot postings to real postings is running well over 1:1. The Obvious Question attempts to solve the problem in the least intrusive way.</p>

 ]]></content:encoded>
			<dc:subject>default, inqblot</dc:subject>
			<dc:date>2006-04-22T11:44:00-05:00</dc:date>
		</item>
		
		
		
		<item>
			<title>Weird Terminal Bug</title>
			<link>http://www.inquirium.net/design2learn/pivot/entry.php?id=153</link>
			<comments>http://www.inquirium.net/design2learn/pivot/entry.php?id=153#comm</comments>
			<description>Weird. This is one of those mildly annoying problems that have to bug me several times before I focus the energy to track them down. Recently, every time I open a new Terminal window, Terminal has been changing the working directory to a folder deep in my Documents tree. I thought this was very strange and couldn&amp;#8217;t find evidence in my login scripts that this should have happened.

It turns out the problem is that when you use AppleScript to execute commands via Terminal, the last command you perform via the &amp;#8220;do script&amp;#8221; AppleScript command can get &amp;#8220;stuck&amp;#8221; in Terminal&amp;#8217;s ExecutionString preference, which is run whenever a Terminal window opens. (Fortunately for me, the command that got stuck was a simple cd command.) There is no interface in Terminal to view or edit ExecutionString, which makes the bug a bit tricky to track down. (Huzzah for Google, as usual.) To fix it, you need to either edit com.apple.Terminal.plist manually, or execute the following command in a Terminal window:


  defaults write com.apple.terminal ExecutionString ’’

</description>
			<guid isPermaLink="false">153@http://www.inquirium.net/design2learn/</guid>
			<content:encoded><![CDATA[ <p>Weird. This is one of those mildly annoying problems that have to bug me several times before I focus the energy to track them down. Recently, every time I open a new Terminal window, Terminal has been changing the working directory to a folder deep in my Documents tree. I thought this was very strange and couldn&#8217;t find evidence in my login scripts that this should have happened.</p>

<p>It turns out the problem is that when you use AppleScript to execute commands via Terminal, the last command you perform via the &#8220;do script&#8221; AppleScript command can get &#8220;stuck&#8221; in Terminal&#8217;s ExecutionString preference, which is run whenever a Terminal window opens. (Fortunately for me, the command that got stuck was a simple cd command.) There is no interface in Terminal to view or edit ExecutionString, which makes the bug a bit tricky to track down. (<a href="http://www.codecomments.com/archive262-2005-6-520088.html">Huzzah for Google</a>, as usual.) To fix it, you need to either edit com.apple.Terminal.plist manually, or execute the following command in a Terminal window:</p>

<blockquote>
  <p>defaults write com.apple.terminal ExecutionString ’’</p>
</blockquote>

 ]]></content:encoded>
			<dc:subject>default</dc:subject>
			<dc:date>2006-03-11T19:39:00-05:00</dc:date>
		</item>
		
		
		
		<item>
			<title>TrollTech on API Design</title>
			<link>http://www.inquirium.net/design2learn/pivot/entry.php?id=143</link>
			<comments>http://www.inquirium.net/design2learn/pivot/entry.php?id=143#comm</comments>
			<description>I came across this piece on how to design an API that&amp;#8217;s essentially written from a user-centered perspective. It discusses how TrollTech (who make the Qt cross-platform framework) have evolved their API interface to improve comprehension and reliability for their users: other developers.

The ideas and examples here aren&amp;#8217;t just applicable to commercial API designers. Every codebase is essentially an API that someone is going to have to learn (or, if you&amp;#8217;re returning to your own code, relearn). The ideas strike me as being a level above quibbling about things like the merits of Hungarian Notation, and more in the pragmatic programming realm.
</description>
			<guid isPermaLink="false">143@http://www.inquirium.net/design2learn/</guid>
			<content:encoded><![CDATA[ <p>I came across this piece on <a href="http://doc.trolltech.com/qq/qq13-apis.html">how to design an API</a> that&#8217;s essentially written from a user-centered perspective. It discusses how <a href="http://www.trolltech.com/">TrollTech</a> (who make the Qt cross-platform framework) have evolved their API interface to improve comprehension and reliability for their users: other developers.</p>

<p>The ideas and examples here aren&#8217;t just applicable to commercial API designers. Every codebase is essentially an API that someone is going to have to learn (or, if you&#8217;re returning to your own code, relearn). The ideas strike me as being a level above quibbling about things like <a href="http://ootips.org/hungarian-notation.html">the merits of Hungarian Notation</a>, and more in the <a href="http://today.java.net/pub/a/today/2004/02/06/davenandy1.html">pragmatic programming</a> realm.</p>

 ]]></content:encoded>
			<dc:subject>default</dc:subject>
			<dc:date>2006-02-10T02:19:00-05:00</dc:date>
		</item>
		
		
		
		<item>
			<title>More on InqBlot</title>
			<link>http://www.inquirium.net/design2learn/pivot/entry.php?id=135</link>
			<comments>http://www.inquirium.net/design2learn/pivot/entry.php?id=135#comm</comments>
			<description>Just a quick reminder: most of my posting efforts have moved over to InqBlot, a group blog edited by Inquirium designers. See you over there!
</description>
			<guid isPermaLink="false">135@http://www.inquirium.net/design2learn/</guid>
			<content:encoded><![CDATA[ <p>Just a quick reminder: most of my posting efforts have moved over to <a href="http://www.inquirium.net/blog">InqBlot</a>, a group blog edited by Inquirium designers. See you over there!</p>

 ]]></content:encoded>
			<dc:subject>default</dc:subject>
			<dc:date>2006-01-28T17:55:00-05:00</dc:date>
		</item>
		
		
		
		<item>
			<title>MacBooks</title>
			<link>http://www.inquirium.net/design2learn/pivot/entry.php?id=123</link>
			<comments>http://www.inquirium.net/design2learn/pivot/entry.php?id=123#comm</comments>
			<description>Apple and Intel, sitting in a tree. iMacs and MacBook Pros.

Here&amp;#8217;s the thing, though. The move to Intel was spun as being about performance per watt. G5s were too hot to get into a Powerbook, they said, which is certainly true.

So what&amp;#8217;s the performance per watt like in the new MacBook Pro? We have no idea, because there is absolutely no information available about battery life. That seems to be a conspicuous omission.
</description>
			<guid isPermaLink="false">123@http://www.inquirium.net/design2learn/</guid>
			<content:encoded><![CDATA[ <p>Apple and Intel, sitting in a tree. <a href="http://www.apple.com/imac/">iMacs</a> and <a href="http://www.apple.com/macbookpro/">MacBook Pros</a>.</p>

<p>Here&#8217;s the thing, though. The move to Intel was spun as being about performance per watt. G5s were too hot to get into a Powerbook, they said, which is certainly true.</p>

<p>So what&#8217;s the performance per watt like in the new MacBook Pro? We have no idea, because there is absolutely no information available about battery life. That seems to be a conspicuous omission.</p>

 ]]></content:encoded>
			<dc:subject>default</dc:subject>
			<dc:date>2006-01-10T17:11:00-05:00</dc:date>
		</item>
		
		
		
		<item>
			<title>I'll stick with Earthlink, thanks</title>
			<link>http://www.inquirium.net/design2learn/pivot/entry.php?id=122</link>
			<comments>http://www.inquirium.net/design2learn/pivot/entry.php?id=122#comm</comments>
			<description>I was thinking about switching to Qwest DSL, since they&amp;#8217;re been offering higher bandwidths and bundles with phone service. But their terms of service are a bit restrictive.
</description>
			<guid isPermaLink="false">122@http://www.inquirium.net/design2learn/</guid>
			<content:encoded><![CDATA[ <p>I was thinking about switching to Qwest DSL, since they&#8217;re been offering higher bandwidths and bundles with phone service. But <a href="http://arstechnica.com/news.ars/post/20060109-5929.html">their terms of service are a bit restrictive</a>.</p>

 ]]></content:encoded>
			<dc:subject>default</dc:subject>
			<dc:date>2006-01-09T14:02:00-05:00</dc:date>
		</item>
		
		
		
		<item>
			<title>Congratulations Huskies!</title>
			<link>http://www.inquirium.net/design2learn/pivot/entry.php?id=118</link>
			<comments>http://www.inquirium.net/design2learn/pivot/entry.php?id=118#comm</comments>
			<description>UW takes its first women&amp;#8217;s volleyball title, sweeping Nebraska. Way to go Huskies!
</description>
			<guid isPermaLink="false">118@http://www.inquirium.net/design2learn/</guid>
			<content:encoded><![CDATA[ <p><a href="http://gohuskies.collegesports.com/sports/w-volley/wash-w-volley-body.html">UW</a> takes its <a href="http://sports.espn.go.com/ncaa/news/story?id=2238882">first women&#8217;s volleyball title</a>, sweeping Nebraska. Way to go Huskies!</p>

 ]]></content:encoded>
			<dc:subject>default</dc:subject>
			<dc:date>2005-12-17T20:35:00-05:00</dc:date>
		</item>
		
		
		
	</channel>
</rss>