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

<channel>
	<title>Bill Higgins&#039; Blog &#187; Uncategorized</title>
	<atom:link href="http://billhiggins.us/blog/category/uncategorized/feed/" rel="self" type="application/rss+xml" />
	<link>http://billhiggins.us/blog</link>
	<description></description>
	<lastBuildDate>Fri, 30 Jul 2010 00:09:22 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>podcast and discussion with Coté</title>
		<link>http://billhiggins.us/blog/2010/07/29/podcast-and-discussion-with-cote/</link>
		<comments>http://billhiggins.us/blog/2010/07/29/podcast-and-discussion-with-cote/#comments</comments>
		<pubDate>Fri, 30 Jul 2010 00:07:47 +0000</pubDate>
		<dc:creator>Bill Higgins</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[friends]]></category>
		<category><![CDATA[http]]></category>
		<category><![CDATA[jazz]]></category>
		<category><![CDATA[cote]]></category>
		<category><![CDATA[html5]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[podcast]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://billhiggins.us/blog/?p=174</guid>
		<description><![CDATA[I had a fun chat today with Coté on his &#8220;make all&#8221; podcast. Here are some of the topics I remember discussing: What&#8217;s important (and what&#8217;s not important) about HTML 5 The increasing ubiquity of JavaScript Java-to-JavaScript translation technologies (e.g. GWT and JDojo) Ajax, RPC, and REST The nirvana of mobile devices plus cloud-based data [...]]]></description>
			<content:encoded><![CDATA[<p>I had a fun chat today with Coté on his <a href="http://www.redmonk.com/cote/2010/07/29/makeall007/">&#8220;make all&#8221; podcast</a>. Here are some of the topics I remember discussing:</p>
<ul>
<li>What&#8217;s important (and what&#8217;s not important) about <a href="http://en.wikipedia.org/wiki/HTML5">HTML 5</a></li>
<li>The increasing ubiquity of JavaScript</li>
<li>Java-to-JavaScript translation technologies (e.g. <a href="http://code.google.com/webtoolkit/">GWT</a> and <a href="https://jazz.net/wiki/bin/view/Main/JDojo">JDojo</a>)</li>
<li>Ajax, RPC, and REST</li>
<li>The nirvana of mobile devices plus cloud-based data</li>
<li>I recommend Nick Carr&#8217;s &#8220;<a href="http://www.theshallowsbook.com/">The Shallows</a>&#8220;</li>
</ul>
<p>Happy listening!</p>
]]></content:encoded>
			<wfw:commentRss>http://billhiggins.us/blog/2010/07/29/podcast-and-discussion-with-cote/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>the iPad and onmouseover</title>
		<link>http://billhiggins.us/blog/2010/04/05/the-ipad-and-onmouseover/</link>
		<comments>http://billhiggins.us/blog/2010/04/05/the-ipad-and-onmouseover/#comments</comments>
		<pubDate>Tue, 06 Apr 2010 04:34:15 +0000</pubDate>
		<dc:creator>Bill Higgins</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[ipad]]></category>
		<category><![CDATA[ux]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://billhiggins.us/blog/?p=153</guid>
		<description><![CDATA[Update: I&#8217;ve created a test page for this scenario, but I haven&#8217;t had a chance to test it yet on my iPad. In our Jazz UIs, we tend to use &#8220;hover previews&#8221; quite a bit. That is, if you hover over a link, after a second or so it will show a small preview of [...]]]></description>
			<content:encoded><![CDATA[<p><span style="color: #ff0000;">Update</span><span style="color: #ff0000;">: I&#8217;ve created </span><a href="http://billhiggins.us/tests/link-mouseover.html"><span style="color: #ff0000;">a test page</span></a><span style="color: #ff0000;"> for this scenario, but I haven&#8217;t had a chance to test it yet on my iPad.</span></p>
<p>In our <a href="http://jazz.net/">Jazz</a> UIs, we tend to use &#8220;hover previews&#8221; quite a bit. That is, if you hover over a link, after a second or so it will show a small preview of the resource at the other end [1]. <a href="https://jazz.net/wiki/bin/view/Main/WebUIPatternAndStyleGuide">Jazz style guide</a> example below (copyright <a href="http://ibm.com/">IBM</a>).</p>
<p><img class="alignnone size-full wp-image-154" title="Jazz Rich Hover" src="http://billhiggins.us/blog/wp-content/uploads/2010/04/hyperlink-rich-resource-examp.png" alt="" width="539" height="291" /></p>
<p>This was always broken on the <a href="http://www.apple.com/iphone/iphone-3gs/safari.html">iPhone&#8217;s Mobile Safari browser</a> because I couldn&#8217;t figure out how to perform a mouseover action on a mouse-less interface.</p>
<p>I just noticed that the <a href="http://www.apple.com/ipad/">iPad</a> seems to support <a href="http://www.w3schools.com/jsref/event_onmouseover.asp">onmouseover</a>. I <em>believe</em> I&#8217;ve observed the following behavior:</p>
<ul>
<li>If a link has no &#8220;on mouseover&#8221; actions (e.g. hovers), a tap follows to the link.</li>
<li>If a link has an &#8220;onmouseover&#8221; action, a tap activates the onmouseover action and a double-tap follows the link.</li>
</ul>
<p>Obviously this implies that you should provide visual indications to your user whether the links provide onmouseover actions or not. For the Jazz links with hover previews we immediately decorate the link on mouseover (different color, double-underline, with a small chevron) and if the user remains over the link for a second or two we then show the preview.</p>
<p>[1] I realize that onmouseover actions attached to links represent a <a href="http://en.wikipedia.org/wiki/User_experience_design">UX</a> minefield. A page with too many / too aggressive hover actions can feel like an actual minefield!</p>
]]></content:encoded>
			<wfw:commentRss>http://billhiggins.us/blog/2010/04/05/the-ipad-and-onmouseover/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>adding a scripts folder to your path in bash</title>
		<link>http://billhiggins.us/blog/2010/03/26/adding-a-scripts-folder-to-your-path-in-bash/</link>
		<comments>http://billhiggins.us/blog/2010/03/26/adding-a-scripts-folder-to-your-path-in-bash/#comments</comments>
		<pubDate>Sat, 27 Mar 2010 03:02:10 +0000</pubDate>
		<dc:creator>Bill Higgins</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[mac]]></category>
		<category><![CDATA[os-x]]></category>
		<category><![CDATA[unix]]></category>

		<guid isPermaLink="false">http://billhiggins.us/blog/?p=149</guid>
		<description><![CDATA[I know this is total n00b stuff but I always forget the particular so I thought I&#8217;d write it down in a blog entry. To add a custom scripts directory to your path, do the following: In your root directory, create a file called .bash_profile.sh with something like the following: if [ -f ~/.bashrc ]; [...]]]></description>
			<content:encoded><![CDATA[<p>I know this is total n00b stuff but I always forget the particular so I thought I&#8217;d write it down in a blog entry.</p>
<p>To add a custom scripts directory to your path, do the following:</p>
<p>In your root directory, create a file called <code>.bash_profile.sh</code> with something like the following:</p>
<pre>if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi</pre>
<p>Then in <code>.bashrc</code>, put something like the following:</p>
<pre>export PATH=$PATH:~/Scripts</pre>
<p>For extra credit, create a softlink from your <a href="https://www.dropbox.com/referrals/NTIyMDU2MjE5">Dropox</a> folder to your scripts folder and you can have the same scripts on all of your computers!</p>
<pre>ln -s ~/Scripts ~/Dropbox/Scripts</pre>
]]></content:encoded>
			<wfw:commentRss>http://billhiggins.us/blog/2010/03/26/adding-a-scripts-folder-to-your-path-in-bash/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Audible DRM issue</title>
		<link>http://billhiggins.us/blog/2010/03/05/audible-drm-issue/</link>
		<comments>http://billhiggins.us/blog/2010/03/05/audible-drm-issue/#comments</comments>
		<pubDate>Fri, 05 Mar 2010 17:49:20 +0000</pubDate>
		<dc:creator>Bill Higgins</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://billhiggins.us/blog/?p=144</guid>
		<description><![CDATA[I hit a very annoying issue using Audible.com on my Mac with iTunes and my iPhone. I thought I&#8217;d document it in case others hit it. Setting the Stage I got a MacBook Pro in early 2009. I buy audiobooks from Audible.com and store them in iTunes. From iTunes I sync the audiobooks to my [...]]]></description>
			<content:encoded><![CDATA[<p>I hit a very annoying issue using Audible.com on my Mac with iTunes and my iPhone. I thought I&#8217;d document it in case others hit it.</p>
<p><strong>Setting the Stage</strong></p>
<p>I got a <a href="http://www.apple.com/macbookpro/">MacBook Pro</a> in early 2009. I buy audiobooks from <a href="http://audible.com/">Audible.com</a> and store them in <a href="http://www.apple.com/itunes/">iTunes</a>. From iTunes I sync the audiobooks to my <a href="http://www.apple.com/iphone/">iPhone</a> so that I can listen to them while driving, cleaning, etc. The audiobooks are <a href="http://en.wikipedia.org/wiki/Digital_rights_management">DRM</a>-protected (urgh), so the first time you try to play an audiobook in iTunes it asks you to enter your Audible user ID and password. It then validates your Audible user ID and password and verifies that you have purchased the audiobook file. Once you have authorized your Audible.com account in iTunes, you never have to enter your Audible.com user ID and password again. Also, once you have authorized your Audible.com account in iTunes, you can sync audiobooks to your iPhone.</p>
<p><strong>The Symptoms</strong></p>
<p>Recently <a href="http://www.ibm.com/">IBM</a> got me a new 2010 MacBook Pro for work (thanks IBM) so I gave my 2009 MacBook Pro to my wife. So that I wouldn&#8217;t have to set everything up from scratch, I backed up my entire 2009 MacBook Pro to an external drive using <a href="http://www.apple.com/macosx/what-is-macosx/time-machine.html">Time Machine</a> and then restored this configuration onto the new MacBook Pro. After a couple of hours of data transfer both ways, my new MacBook Pro was a clone of my old MacBook Pro, or so I thought.</p>
<p>Unfortunately I realized quickly that something was wrong with my Audible.com audiobooks. The first symptom was that none of my Audible.com Audiobooks were on my iPhone. I tried to play one in iTunes and it asked me to authorize my Audible.com account. This was a surprise because I would have expected the Time Machine backup / restore to have made this unnecessary (since my iTunes configuration was already authorized), so I typed in my Audible.com user ID and password, hit sync, and sure enough the ebooks synced successfully to my iPhone.</p>
<p>Later that week I noticed that the audiobooks had disappeared from my iPhone again!</p>
<p><strong>The Bug</strong></p>
<p>To make a long story short (too late), after some experimentation and support discussion with Audible.com, I discovered the following steps to reproduce the problem.</p>
<ol>
<li>Start iTunes</li>
<li>Double-click an Audible.com audiobook</li>
<li>iTunes prompts you to authorize your computer for your Audible account by asking you to enter your Audible.com user ID and password</li>
<li>Enter Audible.com user ID and password and successfully authorize</li>
<li>Sync iPhone</li>
<li>Audiobooks copy successfully</li>
<li>Close and re-open iTunes</li>
<li>Sync iPhone</li>
<li>Books are deleted from iPhone</li>
</ol>
<p>Basically anytime I closed iTunes, my Audible authorization was lost. This indicated that authorization was succeeding but was not being persisted to disk. I sent the steps to reproduce to Audible customer support.</p>
<p><strong>The Solution</strong></p>
<p>As I suspected, it was a persistence problem. The Audible support person pointed me to the file <code>/Library/Preferences/com.audible.data.plist</code> (<a href="http://en.wikipedia.org/wiki/Property_list">a Mac property list file</a>) where (apparently) the Audible / iTunes code persists your Audible authorization information (I peaked in the file and it contained a single &#8216;data&#8217; property whose value was 4 KB of encrypted something or other). Interestingly, even though I&#8217;d at this point authorized my Audible account in iTunes many times this week, the file&#8217;s date stamp was from last year, indicating the file wasn&#8217;t getting updated and thus my authorization went *poof* whenever I closed the iTunes application and its process died.</p>
<p>The Audible customer support rep first suggested to check the file&#8217;s permissions to make sure that my user account was authorized to modify the file. No problems there &#8211; I had read/write access to the file. Her second suggestion was simply to close iTunes, delete the Audible property file, open iTunes and reauthorize the computer. I did this and sure enough when I reauthorized the computer, a new property file was created with the current time as the timestamp and I was able to close and re-open iTunes without having to re-authorize.</p>
<p><strong>Lessons Reiterated</strong></p>
<p>This experience reinforces two software principles I already believed.</p>
<ul>
<li>DRM sucks ass</li>
<li>Data persistence is hard</li>
</ul>
<p><strong>Solution Proposal</strong></p>
<p>I sent the following suggestion to the Audible.com support person:</p>
<p style="padding-left: 30px;">Thank you &lt;redacted&gt;. It&#8217;s working now.</p>
<p style="padding-left: 30px;">FYI, it was not a permissions issue &#8211; the permissions were correct. I had to delete the com.audible.data.plist file and restart iTunes / reauthorize Audible to create a new version of the file.</p>
<p style="padding-left: 30px;">I suspect this is related to my restore from Time Machine on to a new computer. I would suggest your engineers who work on the Mac iTunes integration test this case:</p>
<p style="padding-left: 30px;">1. On a Mac, authorize to read Audible content via iTunes</p>
<p style="padding-left: 30px;">2. Backup a Mac onto Time Machine</p>
<p style="padding-left: 30px;">3. Restore from Time Machine onto a new Mac</p>
<p style="padding-left: 30px;">4. Attempt to play Audible content</p>
<p style="padding-left: 30px;">I&#8217;m not sure what the ideal behavior is (e.g. just working or requiring a single authorization of the new machine) but I know what should not happen is what happened to me <img src='http://billhiggins.us/blog/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p style="padding-left: 30px;">Thanks again for your help.</p>
<p style="padding-left: 30px;">- Bill</p>
]]></content:encoded>
			<wfw:commentRss>http://billhiggins.us/blog/2010/03/05/audible-drm-issue/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>AppleScript to resize Safari for recording a YouTube HD video</title>
		<link>http://billhiggins.us/blog/2010/02/28/script-to-resize-safari-for-recording-a-youtube-hd-video/</link>
		<comments>http://billhiggins.us/blog/2010/02/28/script-to-resize-safari-for-recording-a-youtube-hd-video/#comments</comments>
		<pubDate>Mon, 01 Mar 2010 01:39:21 +0000</pubDate>
		<dc:creator>Bill Higgins</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[applescript]]></category>
		<category><![CDATA[mac]]></category>
		<category><![CDATA[safari]]></category>
		<category><![CDATA[tips]]></category>

		<guid isPermaLink="false">http://billhiggins.us/blog/?p=137</guid>
		<description><![CDATA[Occasionally I need to produce YouTube HD videos showing me doing something in a web browser. Up &#8217;till now I&#8217;ve had to painfully, manually resize the browser window to 1280&#215;720 so that the video didn&#8217;t get unnaturally shrunk or expanded by my screencast rendering software. Tonight I figured out a way to automatically resize my [...]]]></description>
			<content:encoded><![CDATA[<p>Occasionally I need to produce <a href="http://youtube.com/">YouTube</a> <a href="http://en.wikipedia.org/wiki/High-definition_video">HD</a> videos showing me doing something in a web browser. Up &#8217;till now I&#8217;ve had to painfully, manually resize the browser window to 1280&#215;720 so that the video didn&#8217;t get unnaturally shrunk or expanded by my screencast rendering software. Tonight I figured out a way to automatically resize my browser window to the exact dimensions using <a href="http://www.macosxautomation.com/applescript/">AppleScript</a>.</p>
<p>Here is the magical incantation:</p>
<p style="padding-left: 30px;"><strong>tell</strong> <em><span style="color: #0000ff;">application</span></em> &#8220;Safari&#8221;</p>
<p style="padding-left: 60px;"><strong><span style="color: #0000ff;">activate</span><br />
<span style="font-weight: normal;"><strong>set</strong> <strong>the</strong> <span style="color: #800080;">bounds</span> <strong>of</strong> <strong>the</strong> <strong>first</strong> <em><span style="color: #0000ff;">window</span></em> <strong>to</strong> {0, 0, 1280, 720}</span></strong></p>
<p style="padding-left: 30px;"><strong><span style="font-weight: normal;"><strong>end</strong> <strong>tell</strong></span></strong></p>
<p>Run this application in AppleScript Editor (<code>/Applications/Utilities/AppleScript Editor</code>) and your browser will be the perfect size for recording movies. You can save the script to a folder for later reuse.</p>
]]></content:encoded>
			<wfw:commentRss>http://billhiggins.us/blog/2010/02/28/script-to-resize-safari-for-recording-a-youtube-hd-video/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>ebook love</title>
		<link>http://billhiggins.us/blog/2009/08/17/ebook-love/</link>
		<comments>http://billhiggins.us/blog/2009/08/17/ebook-love/#comments</comments>
		<pubDate>Tue, 18 Aug 2009 06:20:38 +0000</pubDate>
		<dc:creator>Bill Higgins</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://billhiggins.us/weblog/?p=118</guid>
		<description><![CDATA[I used to read a lot of tech books, like a an hour or two a day. Several years, several promotions, two kids, and one deteriorating eye later, I realized I wasn&#8217;t reading much anymore. The combination of work commutes / Audible.com / iPod helped me keep up with novels and non-techy non-fiction, but I [...]]]></description>
			<content:encoded><![CDATA[<p>I used to read a lot of tech books, like a an hour or two a day. Several years, several promotions, two kids, and one deteriorating eye later, I realized I wasn&#8217;t reading much anymore. The combination of work commutes / <a href="http://audible.com/">Audible.com</a> / iPod helped me keep up with novels and non-techy non-fiction, but I still had trouble keeping up with tech books.</p>
<p>Luckily, tech publishers are starting to publish more and more <a href="http://en.wikipedia.org/wiki/Ebook">ebooks</a>. Here&#8217;s some of the good and bad points of reading tech ebooks.</p>
<p><strong>Tech Ebooks: The Good</strong></p>
<ul>
<li>My <a href="http://www.apple.com/macbookpro/">Macbook Pro</a>&#8216;s <a href="http://www.youtube.com/watch?v=_VeAOK8Rxoo">multi-touch trackpad</a> makes it very easy to zoom and scroll so I end up with huge font that I can read without glasses from several feet away.</li>
<li>I can carry all of my ebooks on both my computer and iPhone.</li>
<li>Publishers like <a href="http://oreilly.com/ebooks/">O&#8217;Reilly</a> and <a href="http://pragprog.com/frequently-asked-questions/ebooks">Pragprog</a> have relatively mature ebook stories; DRM-free, mobile integration, and available in both computer-friendly (<a href="http://en.wikipedia.org/wiki/Portable_Document_Format">PDF</a>) and mobile-friendly (<a href="http://en.wikipedia.org/wiki/EPUB">EPUB</a>) versions and notification for free updates of new printings.</li>
<li>I can quickly search across all ebook content using <a href="http://en.wikipedia.org/wiki/Spotlight_(software)">Spotlight</a> and quickly open ebooks using <a href="http://quicksilver.en.softonic.com/mac">Quicksilver</a> and <a href="http://en.wikipedia.org/wiki/Preview_(software)">Preview</a>.</li>
<li>They&#8217;re significantly less expensive than their dead tree counterparts and you can acquire them instantly vs. a trip to the bookstore or, more likely, a two day wait for an <a href="http://www.amazon.com/gp/prime/signup/textbooks.html">Amazon Prime</a> delivery.</li>
<li>Using <a href="http://www.getdropbox.com/">Dropbox</a> you can easily replicate your ebooks across all of your computers while easily staying under Dropbox&#8217;s 2GB free account max.</li>
</ul>
<p><strong>Tech Ebooks: The Bad</strong></p>
<ul>
<li>Can&#8217;t (ethically) lend to friends; can&#8217;t give away when done with a book.</li>
<li>I have a <a href="http://www.amazon.com/Kindle-Amazons-Original-Wireless-generation/dp/B000FI73MA">1st gen Kindle</a> I never use. While I love the selection, price, and integration with Amazon.com, I hate the hardware design, the user experience, the $@#! <a href="http://en.wikipedia.org/wiki/Digital_rights_management">DRM</a>, and the fact that I can&#8217;t (easily/legally) view the books on my computer. Don&#8217;t buy a Kindle.</li>
<li>The selection of ebooks is relatively small vs. all books I&#8217;d want to buy. For instance, no <a href="http://us.penguingroup.com/nf/Book/BookDisplay/0,,9780140139969,00.html">How Buildings Learn</a> ebook (though I&#8217;ve sent the publisher an email on this).</li>
<li>Many ebook-selling publishers still insist on using DRM. This is stupid. As the argument goes, honest people like me will gladly pay for quality IP and a good user experience. DRM-selling publishers: please learn from O&#8217;Reilly and Pragprog.</li>
<li>You need a different account for each publisher. Luckily password management apps like <a href="http://www.keepassx.org/">KeePassX</a> simplify this, but it&#8217;s still a pain.</li>
</ul>
<p><strong>Tech Ebooks I&#8217;ve Recently Bought</strong></p>
<p>Now, for your reading pleasure, are the ebooks I&#8217;ve bought in the past few months (<span style="color: #ff0000;">updated 25 Oct. 2009</span>).</p>
<ul>
<li><a href="http://pragprog.com/titles/rails3/agile-web-development-with-rails-third-edition">Agile Web Development with Rails, 3E</a></li>
<li><a href="http://oreilly.com/catalog/9780596007652/">Ambient Findability</a></li>
<li><a href="http://oreilly.com/catalog/9780596526788/">bash Cookbook</a></li>
<li><a href="http://pragprog.com/titles/rdbcd/behind-closed-doors">Behind Closed Doors: Secrets of Great Management</a></li>
<li><a href="http://oreilly.com/catalog/9780596005955/">Classic Shell Scripting</a></li>
<li><a href="http://www.informit.com/store/product.aspx?isbn=0136083226">Clean Code</a></li>
<li><a href="http://oreilly.com/catalog/9780596156367/">Cloud Application Architectures</a></li>
<li><a href="http://www.informit.com/store/product.aspx?isbn=0132357267">Core Java Vol 1 8E</a></li>
<li><a href="http://www.informit.com/store/product.aspx?isbn=0321700740">Design Patterns</a></li>
<li><a href="http://oreilly.com/catalog/9780596516253/">Designing Web Interfaces</a></li>
<li><a href="http://oreilly.com/catalog/9780596528102/">Designing Web Navigation</a></li>
<li><a href="http://www.informit.com/store/product.aspx?isbn=0132345285">Effective Java 2E</a></li>
<li><a href="http://oreilly.com/catalog/9780596529307/">High Performance Web Sites</a></li>
<li><a href="http://www.informit.com/store/product.aspx?isbn=0321657527">How to Break Web Software</a></li>
<li><a href="http://oreilly.com/catalog/9781565925090">HTTP The Definitive Guide</a></li>
<li><a href="http://oreilly.com/catalog/9780596157593/">iWork 09 The Missing Manual</a></li>
<li><a href="http://oreilly.com/catalog/9780596517748/">JavaScript: The Good Parts</a></li>
<li><a href="http://oreilly.com/catalog/9780596101992/">JavaScript the Definitive Guide 5E</a></li>
<li><a href="http://oreilly.com/catalog/9780596007683/">Just a Geek</a></li>
<li><a href="http://oreilly.com/catalog/9780596520625/">Mac OS X for Unix Geeks 4E</a></li>
<li><a href="http://www.informit.com/store/product.aspx?isbn=0321467957">Mac OS X Internals</a></li>
<li><a href="http://oreilly.com/catalog/9780596153298/">Mac OS X Snow Leopard the Missing Manual</a></li>
<li><a href="http://oreilly.com/catalog/9780596517717/">Making Things Happen</a></li>
<li><a href="http://pragprog.com/titles/jrpm/manage-it">Manage It!</a></li>
<li><a href="http://pragprog.com/titles/rgdojo/mastering-dojo">Mastering Dojo</a></li>
<li><a href="http://oreilly.com/catalog/9780596522971/">Photoshop CS4 The Missing Manual</a></li>
<li><a href="http://pragprog.com/titles/ahptl/pragmatic-thinking-and-learning">Pragmatic Thinking and Learning</a></li>
<li><a href="http://www.informit.com/store/product.aspx?isbn=0321605535">Programming in Objective-C 2.0</a></li>
<li><a href="http://oreilly.com/catalog/9780596009250/">Programming Python 3E</a></li>
<li><a href="http://pragprog.com/titles/ruby3/programming-ruby-1-9">Programming Ruby 1.9</a></li>
<li><a href="http://pragprog.com/titles/mnee/release-it">Release It!</a></li>
<li><a href="http://oreilly.com/catalog/9780596529260/">RESTful Web Services</a></li>
<li><a href="http://www.informit.com/store/product.aspx?isbn=0321617134">Scaling Lean &amp; Agile Development</a></li>
<li><a href="http://www.manning.com/resig/">Secrets of the JavaScript Ninja</a></li>
<li><a href="http://oreilly.com/catalog/9780596522353/">slide:ology</a></li>
<li><a href="http://oreilly.com/catalog/9780596008956/">SSH The Definitive Guide 2E</a></li>
<li><a href="http://www.pragprog.com/titles/textmate/textmate">TextMate</a></li>
<li><a href="http://oreilly.com/catalog/9780596157234/">The Art of Community</a></li>
<li><a href="http://www.informit.com/store/product.aspx?isbn=0131860828">The Design of Things to Come</a></li>
<li><a href="http://oreilly.com/catalog/9780596527051/">The Myths of Innovation</a></li>
<li><a href="http://pragprog.com/titles/cfcar2/the-passionate-programmer">The Passionate Programmer</a></li>
<li><a href="http://oreilly.com/catalog/9780596529260/">The Productive Programmer</a></li>
<li><a href="http://oreilly.com/catalog/9780596516178/">The Ruby Programming Language</a></li>
<li><a href="http://oreilly.com/catalog/9780596802813/">The Twitter Book</a></li>
<li><a href="http://pragprog.com/titles/ktuk/ubuntu-kung-fu">Ubuntu Kung Fu</a></li>
<li><a href="http://oreilly.com/catalog/9780596006891/">Unit Test Frameworks</a></li>
<li><a href="http://oreilly.com/catalog/9780596003302">Unix Power Tools 3E</a></li>
<li><a href="http://oreilly.com/catalog/9780596801601/">Using Google App Engine</a></li>
<li><a href="http://oreilly.com/catalog/9780596529963/">Web 2.0 &#8211; A Strategy Guide</a></li>
<li><a href="http://oreilly.com/catalog/9780596514433/">Web 2.0 Architectures</a></li>
<li><a href="http://oreilly.com/catalog/9780596521264/">XMPP The Definitive Guide</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://billhiggins.us/blog/2009/08/17/ebook-love/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>the awkward url-uri terminology dance</title>
		<link>http://billhiggins.us/blog/2008/07/09/the-awkward-url-uri-terminology-dance/</link>
		<comments>http://billhiggins.us/blog/2008/07/09/the-awkward-url-uri-terminology-dance/#comments</comments>
		<pubDate>Wed, 09 Jul 2008 08:45:52 +0000</pubDate>
		<dc:creator>Bill Higgins</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[funny]]></category>
		<category><![CDATA[people]]></category>
		<category><![CDATA[rest]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://billhiggins.us/weblog/?p=79</guid>
		<description><![CDATA[As my dear colleagues Simon Johnston and James Branigan have mentioned in various blog posts, on the Jazz project that I work on, we&#8217;ve (finally) fallen in love with the web/REST story. Because of this, we spend a lot of time in technical conversations using the standard REST alphabet soup vocabulary you&#8217;d expect &#8211; HTTP, [...]]]></description>
			<content:encoded><![CDATA[<p>As my dear colleagues Simon Johnston and James Branigan have mentioned in various <a title="James Branigan - A brief history of the Jazz Team Server interface: Our journey from a J2EE server towards a RESTful server :: Jazz Team Blog" href="https://jazz.net/blog/index.php/2008/02/15/a-brief-history-of-the-jazz-server-interface-our-journey-from-a-j2ee-server-towards-a-restful-server/">blog</a> <a title="Simon Johston - Jazz REST Services :: IBM developerWorks blogs" href="http://www.ibm.com/developerworks/blogs/page/johnston?entry=jazz_rest_services">posts</a>, on the Jazz project that I work on, we&#8217;ve (finally) fallen in love with the web/REST story. Because of this, we spend a lot of time in technical conversations using the standard REST alphabet soup vocabulary you&#8217;d expect &#8211; HTTP, XML, JSON, REST, URL, URI, etc.</p>
<p>One funny thing I&#8217;ve noticed is that there&#8217;s a certain conversational dance that goes on when the topic of URLs/URIs come up. For 99.9% of the web developers out there the distinction between &#8220;URL&#8221; and &#8220;URI&#8221; doesn&#8217;t matter, as <a href="http://en.wikipedia.org/wiki/Uniform_Resource_Locator">the Wikipedia entry on URL</a> points out:</p>
<blockquote><p>In popular usage and many technical documents, [URL] is a <a title="Synonym" href="http://en.wikipedia.org/wiki/Synonym">synonym</a> for <a title="Uniform Resource Identifier" href="http://en.wikipedia.org/wiki/Uniform_Resource_Identifier">Uniform Resource Identifier</a> (URI).</p></blockquote>
<p>However, some people who are a bit more pedantic than others care about the distinction (not me!) and tend to use &#8220;URI&#8221; in favor of &#8220;URL&#8221; when talking about REST stuff. People who are a bit new to the REST stuff on the other hand tend to use &#8220;URL&#8221;, since this term&#8217;s a bit older and a bit better known.</p>
<p>I&#8217;ve observed that when a REST newbie talks with one of the REST pedants, the newbie says &#8220;URL&#8221; while the REST dude uses &#8220;URI&#8221;. But as the conversation continues the REST n00b eventually uses &#8220;URI&#8221; &#8211; essentially deferring to and adopting the more knowledgeable person&#8217;s terminology.</p>
<p>I&#8217;ve also observed that when I talk with one of our REST dudes, if I continuously say &#8220;URL&#8221; (usually out of spite &#8211; I&#8217;m KIDDING!), they usually eventually start saying &#8220;URL&#8221;, I think just to bring more harmony to the conversation and because they realize that the distinction isn&#8217;t that important &#8211; probably simple <a href="http://en.wikipedia.org/wiki/Mirroring_(psychology)">mirroring</a> at play.</p>
<p>I think in a future experiment, I will use the opposite term of whatever the other person (newbie or pedant) uses and as soon as they adopt my terminology I&#8217;ll switch back to the other term, and see what happens.</p>
<p>Should be fun.</p>
]]></content:encoded>
			<wfw:commentRss>http://billhiggins.us/blog/2008/07/09/the-awkward-url-uri-terminology-dance/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>
