<?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>TobyJoe &#187; Writing</title>
	<atom:link href="http://www.tobyjoe.com/topics/writing/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.tobyjoe.com</link>
	<description>Toby Joe Boudreaux on Tech, Creativity, UX, and All Things Digital</description>
	<lastBuildDate>Thu, 14 Apr 2011 00:28:11 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.1</generator>
		<item>
		<title>My iPhone User Experience Book!</title>
		<link>http://www.tobyjoe.com/2009/08/my-iphone-user-experience-book/</link>
		<comments>http://www.tobyjoe.com/2009/08/my-iphone-user-experience-book/#comments</comments>
		<pubDate>Mon, 10 Aug 2009 13:57:56 +0000</pubDate>
		<dc:creator>Toby Joe Boudreaux</dc:creator>
				<category><![CDATA[Mobile Computing]]></category>
		<category><![CDATA[UX]]></category>
		<category><![CDATA[Writing]]></category>

		<guid isPermaLink="false">http://www.tobyjoe.com/?p=1154</guid>
		<description><![CDATA[It's shorter than I would have liked, and took longer to write, but it's nice to have it in my hands.]]></description>
			<content:encoded><![CDATA[<p><img class="photograph" src="http://www.tobyjoe.com/wp-content/uploads/2009/08/book_and_haircut.jpg" alt="book_and_haircut.jpg" border="0" width="640" height="480" /></p>
<p>It’s shorter than I would have liked, and took longer to write, but it’s nice to have it in my hands.</p>
<p>You can buy it <a href="http://www.amazon.com/Programming-iPhone-User-Experience-Boudreaux/dp/0596155468/ref=sr_1_1?ie=UTF8&#038;s=books&#038;qid=1249912636&#038;sr=8-1">at Amazon</a>. </p>
]]></content:encoded>
			<wfw:commentRss>http://www.tobyjoe.com/2009/08/my-iphone-user-experience-book/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>The Emperor&#8217;s New API</title>
		<link>http://www.tobyjoe.com/2009/07/the-emperors-new-api/</link>
		<comments>http://www.tobyjoe.com/2009/07/the-emperors-new-api/#comments</comments>
		<pubDate>Thu, 09 Jul 2009 16:10:59 +0000</pubDate>
		<dc:creator>Toby Joe Boudreaux</dc:creator>
				<category><![CDATA[Tech]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[Writing]]></category>

		<guid isPermaLink="false">http://www.tobyjoe.com/?p=816</guid>
		<description><![CDATA[<strong>If you're adding a REST API to your site, you're probably doing something wrong.</strong> Maybe.]]></description>
			<content:encoded><![CDATA[<div class="note">Note: this is being cross-posted, with additional content, from the Adobe Experience Design site, <a href="http://xd.adobe.com">Inspire</a>.</div>
<p>Strategists everywhere are pushing companies to add APIs to their online properties. Job postings for web developers and architects invariably require experience working with and developing APIs. It comes up in sales meetings, pitches, and casual conversations with industry folks all the time. I&#8217;m often left wondering if the term &#8220;API&#8221; has lost its real meaning and become sort of a stand-in for a handful of fuzzy concepts. </p>
<h2>REST APIs are Buzzworthy</h2>
<p>In the API chatter, there&#8217;s a huge focus on RESTful APIs. Everyone wants a RESTful API. Web developers love <a href="http://www.ics.uci.edu/~fielding/pubs/dissertation/rest_arch_style.htm">REST</a> architectures because the fixed semantics and stateless mapping of resources to URIs lowers the barrier to entry for integration tasks. Devs no longer have to struggle to understand proprietary architectural touches. No WSDL files need to be parsed. No expensive, scale-resistant state-managing caches need to be added. The URI we use in the browser is the same URI our apps use to read JSON or XML, etc. It&#8217;s a glorious thing, REST. I absolutely love the style, and preach the benefits to clients whenever possible.</p>
<p>Another thing I peach, when I can, sounds scandalous at first. That message: <strong>If you&#8217;re adding a REST API to your site, you&#8217;re probably doing something wrong.</strong> Maybe.</p>
<h2>REST APIs are Everywhere. Right?</h2>
<p>All the big sites are exposing REST APIs. Twitter has on. Flickr has one. Netflix. Microsoft SharePoint. Everyone, man. Everyone.</p>
<p>But how many are as RESTful as they could be?</p>
<p>If you see the value in a REST API, the last thing you want to do is create something separate from your &#8220;main&#8221; site or service. Your site <strong>is</strong> your &#8220;API&#8221; if you&#8217;re being RESTful. If you force a separation or bolt on a separate chunk of URIs meant for <em>API clients</em> you&#8217;re probably wasting resources and muddying your domain.</p>
<p>With REST, you should have a distinct, stateless URI for each <em>conceptual resource</em> you provide and should respond to the appropriate HTTP verbs (most commonly, GET, PUT, POST, DELETE, HEAD, TRACE, and OPTIONS). </p>
<p>For example, if you have the concept of a user profile for someone named &#8220;TobyJoe&#8221; you should have a single URI that represents that profile and that URI should serve any supported format a client application requests. It doesn&#8217;t matter what the URI looks like, but there should only be one way of accessing that conceptual resource. You can serve up XML, JSON, HTML, plain text, SVG, or any combination of formats you want. HTTP and the REST style already accommodate for this using certain HTTP request headers. This problem has been solved since the Web existed (basically). And yet, we see a lot of big sites offering two distinct sets of URIs: one for their &#8220;site&#8221; traffic and one for their &#8220;API&#8221; traffic.</p>
<p>Really, it shouldn&#8217;t matter if someone is requesting the resource at a URI from Safari, Tweetie, cURL, a Flash RIA, or any other HTTP client. The REST style can cover all the content switching and access management you need and you can have a single set of URIs, a single set of semantics, a single engineering team, and a single set of resources to support. The user experience for your third-party development partners will be improved as well.</p>
<h2>Twitter: An Easy Example</h2>
<p>So why are there two URIs for my Twitter status feed? One for the Twitter-branded HTML (with great microformat support!) at <a href="http://twitter.com/tobyjoe">http://twitter.com/tobyjoe</a> and one for XML at <a href="http://twitter.com/statuses/user_timeline/tobyjoe.xml">http://twitter.com/statuses/user_timeline/tobyjoe.xml</a>?</p>
<p>It&#8217;s the same data, in different formats. <strong>It&#8217;s the same concept: status messages for tobyjoe.</strong> Most of the formats Twitter supports are available at the <em>http://twitter.com/statuses/user_timeline/tobyjoe.{EXTENSION}</em> address. Why not the HTML version with the sweet microformats? </p>
<p>Note: I&#8217;m sure Twitter has many reasons for this separation. Legacy clients, their ever-changing architecture and unprecedented growth, organizational investment in this style. They have an amazing team over there. I&#8217;m only using Twitter as an example because so many developers are familiar with their API. </p>
<p>Still, as both a user and client developer, I&#8217;d prefer to see a single URI (or at least one URI template) for each conceptual resource rather than one URI for &#8220;people&#8221; and one URI template for &#8220;machines&#8221;.</p>
<h2>It&#8217;s Not Always That Easy</h2>
<p>I know that there are lots of hurdles with development around live products. I don&#8217;t discount the operational challenges. I don&#8217;t necessarily chastise folks who stray from REST. I would love to see the concept of the RESTful API default to a slightly different meaning that what I see on the web today. Instead of saying, &#8220;We are going to add a REST API to our site!&#8221; I&#8217;d love to see companies say, &#8220;We are expanding the choice of representation formats and verbs for some of our URLs!&#8221; Not as sexy sounding, but way sexier.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tobyjoe.com/2009/07/the-emperors-new-api/feed/</wfw:commentRss>
		<slash:comments>16</slash:comments>
		</item>
		<item>
		<title>Toward the Bare Metal: From Flash to Processing, OpenFrameworks, and Beyond</title>
		<link>http://www.tobyjoe.com/2009/07/toward-the-bare-metal/</link>
		<comments>http://www.tobyjoe.com/2009/07/toward-the-bare-metal/#comments</comments>
		<pubDate>Wed, 08 Jul 2009 14:47:00 +0000</pubDate>
		<dc:creator>Toby Joe Boudreaux</dc:creator>
				<category><![CDATA[Tech]]></category>
		<category><![CDATA[Writing]]></category>

		<guid isPermaLink="false">http://www.tobyjoe.com/?p=787</guid>
		<description><![CDATA[There is a common pattern in the contemporary interactive digital art world: artists' tools are getting more hardcore under the hood.
]]></description>
			<content:encoded><![CDATA[<div class="note">Note: this is being cross-posted, with additional content, from the Adobe Experience Design site, <a href="http://xd.adobe.com">Inspire</a>.</div>
<p>There is a common pattern in the contemporary interactive digital art world: artists&#8217; tools are getting more hardcore under the hood.</p>
<p>A lot of the current stars cut their teeth (and still make their living) on Flash. I was a very active member of a messageboard in the late nineties geared towards web and interactive design and development – a distinction I share with many of the current stars. The messageboard (dreamless.org) is long gone, but most everyone is still in touch, still sharing code and competing or collaborating. It&#8217;s nice to a fairly constant community, even if their tools have changed.</p>
<p>A lot of people moved from Flash to <a href="http://processing.org">Processing</a> – a great Java-based framework and IDE – as their interests moved away from wide distribution (via the Flash player) towards lower-level access to the hardware. Being able to work (almost) directly with OpenGL, for example, was a huge benefit. Processing provides a set of capabilities that is different than that offered by the Flash player, making it a great supplement for digital artists.</p>
<p>These days, the most adventurous (Flash-using) artists are venturing outside of both Flash and Processing. They are leaving their virtual machines behind, diving down into C++, OpenGL, OpenAL, and raw C code. This is a scary place for a lot of digital artists, who often lack CS degrees. Instead of taking the usual CS approach of learning from the hardware up, touching higher level languages (like Java and Actionscript) and virtual machines (like the Java VM or Flash Player) dead last, artists start at the top and move down, stepping into dark, complex, fault-intolerant waters only when they need access to more powerful APIs or direct hardware access. Knowledge is built pragmatically instead of comprehensively – a fact that keeps their perspective unique and their work fresh.</p>
<p>The top toolset for the hardcore digital artists right now is <a href="http://www.openframeworks.cc/">OpenFrameworks</a>. It&#8217;s a great C++ library with a passionate community, not at all unlike, or separate from, the Processing and Flash communities. This summer, The Barbarian Group will be announcing a (possibly open) framework with a similar purpose. Flint is a framework for C++ and Objective-C development, allowing cross-platform development that is still platform-specific (if that makes any sense), and includes support for a certain popular mobile device&#8230;</p>
<p>These frameworks are vital for the progression of digital artwork because they take very tedious, daunting tasks and boilerplate code and wrap them up in attractive, semantically-appropriate domain-specific languages. In other words, <strong>they solve for the user experience of the digital artist</strong>. They help minimize painful context switches and free artists up to focus on the art. Instead of trying to remember all the arguments and gotchas with creating double-buffered windows on different operating systems, the artists can spend time creating textures and thinking of new interaction models.</p>
<p>For a framework to succeed, it has to become almost invisible to the coder. This is true of all assistive technologies, and, in my opinion, all technologies should be assistive. </p>
<p>Check out <a href="http://www.flickr.com/photos/flight404/sets/72157620887986256/">Robert Hodgin&#8217;s newest work</a>, using Flint.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tobyjoe.com/2009/07/toward-the-bare-metal/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Mobile Designers and Empathy</title>
		<link>http://www.tobyjoe.com/2009/07/mobile-designers-and-empathy/</link>
		<comments>http://www.tobyjoe.com/2009/07/mobile-designers-and-empathy/#comments</comments>
		<pubDate>Mon, 06 Jul 2009 16:07:36 +0000</pubDate>
		<dc:creator>Toby Joe Boudreaux</dc:creator>
				<category><![CDATA[Mobile Computing]]></category>
		<category><![CDATA[UX]]></category>
		<category><![CDATA[Writing]]></category>

		<guid isPermaLink="false">http://www.tobyjoe.com/?p=778</guid>
		<description><![CDATA[I think the growing importance of mobile devices in our everyday lives can give a new perspective on baseline users, perhaps leading to more time spent providing amazing, elegant assistive applications and reducing the importance placed on gimmicks.
]]></description>
			<content:encoded><![CDATA[<div class="note">Note: this is being cross-posted, with additional content, from the Adobe Experience Design site, <a href="http://xd.adobe.com">Inspire</a>.</div>
<p>Mobile users are often on the move while interacting with their devices. By definition, their environments change almost constantly and often introduce unforeseen obstacles. Mobile conditions can place limits on many user attributes: focus, input precision, network connectivity, available time, personal space, and patience. Yet mobile devices are becoming as robust and powerful as laptops, inspiring tons of new, high-end functionality. The challenge is to reconcile the two factors, creating a helpful user experience that uses the new tech to the benefit of the largest number of users and the detriment of none.</p>
<p>User-centered designers face some interesting questions: How do you design an interface that allows someone to find directions or call a cab while carrying bags of groceries home from the market? How can an interface accommodate limited agility, gloved hands, a jostling subway train, or fat fingers? How do you let users subtly compose, edit, and erase email messages while in a long, boring meeting? (Hint: shake-to-edit or shake-to-delete or shake-to-<em>anything</em> are not very friendly requirements.) How do you model user behavior when the nature of mobile use is unpredictable and endlessly diverse? How can you solve problems as unobtrusively as possible? </p>
<p>I hear questions like these very often these days. Designers and developers who never paid much attention to the usability of their web or desktop applications are suddenly quite concerned about the UX of their mobile applications and mobile-optimized sites. I welcome the new interest in the topic, as I&#8217;ve always been a bit UX-obsessed, but I have to wonder about the inspiration. I think I&#8217;m witnessing a new empathy for users and a shift from the assumption that users crave every complex, novel, &#8220;innovative&#8221; idea a designer can throw at them.</p>
<h2>Progressive Enhancement to the Rescue</h2>
<p>One of the topics covered in my <a href="http://www.amazon.com/Programming-iPhone-User-Experience-Boudreaux/dp/0596155468/ref=sr_1_2?ie=UTF8&#038;s=books&#038;qid=1242741411&#038;sr=8-2">iPhone book</a> is <i>progressive enhancement</i>. For those unfamiliar with progressive enhancement, it is the art of providing baseline value to all users and additional value to those in favorable environments or with extra abilities. A strong, accessible functional baseline is important for all software products and interfaces because we want our products to be user-centric. </p>
<p>Progressive enhancement patterns are familiar to a lot of web designers. I think a lot of folks kind of fudge the topic, though. They meet their stated requirements (such as 508 compliance), but often ignore the art. They provide baseline functionality, but they make it clear it&#8217;s only baseline. They passively penalize the audience that can only meet the minimum requirements and focus all elegance, fun, and inspiration on the most capable users.</p>
<h2>Building Empathy Through Adversity</h2>
<p>I think the growing importance of mobile devices in our everyday lives can give a new perspective on baseline users, perhaps leading to more time spent providing amazing, elegant assistive applications and reducing the importance placed on gimmicks.</p>
<p>Think about it: these days, we are all mobile users. As such, we all face adverse conditions for use. Suddenly, we all understand what it&#8217;s like to have external conditions impose limitations on our abilities. <strong>We are all handicapped in one subtle way or another as we go about our day.</strong> All it takes is a taste of frustration to ignite passion for assistive interfaces. </p>
<p>The applications we truly appreciate in the mobile space are those that enable us to accomplish our tasks no matter what our environment. We can compose emails in the absence of a network connection–they simply send when we are back online. The better Twitter clients and RSS readers store data on the iPhone to provide some value when users aren&#8217;t online. The better interfaces allow us to perform tasks with one free finger and minimal attention. They don&#8217;t impose gestural abilities on tasks for the sake of novelty. Or, if they do, they treat the novel interaction as an enhancement, allowing us to accomplish the same goals with the tap of a button. </p>
<p>In interactive design, including software and web design, progressive enhancement is often treated as an annoying requirement. Designers can now tap into their own experience using mobile devices to better empathize with users who lack full control of their environment, tools, and body, leading to a new respect for baselines and a shift in attention from the secondary enhancements to the primary use cases.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tobyjoe.com/2009/07/mobile-designers-and-empathy/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Preaching iPhone UX</title>
		<link>http://www.tobyjoe.com/2009/05/preaching-iphone-ux/</link>
		<comments>http://www.tobyjoe.com/2009/05/preaching-iphone-ux/#comments</comments>
		<pubDate>Tue, 19 May 2009 14:01:19 +0000</pubDate>
		<dc:creator>Toby Joe Boudreaux</dc:creator>
				<category><![CDATA[Events]]></category>
		<category><![CDATA[Mobile Computing]]></category>
		<category><![CDATA[UX]]></category>
		<category><![CDATA[Writing]]></category>

		<guid isPermaLink="false">http://www.tobyjoe.com/?p=675</guid>
		<description><![CDATA[I have spent a fair portion of the last year preaching good UX for iPhone developers.]]></description>
			<content:encoded><![CDATA[<div style="float:right;"><a href="http://www.amazon.com/Programming-iPhone-User-Experience-Boudreaux/dp/0596155468/ref=sr_1_2?ie=UTF8&#038;s=books&#038;qid=1242741411&#038;sr=8-2"><img src="http://www.tobyjoe.com/wp-content/uploads/2010/02/41h5UYA6UvL.jpg" alt="41h5UYA6UvL.jpg" border="0" width="160" height="210" /></a></div>
<p>Wow, long time no write&#8230; Typical of me.</p>
<p>I&#8217;m wrapping up my newest tech book. <a href="http://www.amazon.com/Programming-iPhone-User-Experience-Boudreaux/dp/0596155468/ref=sr_1_2?ie=UTF8&#038;s=books&#038;qid=1242741411&#038;sr=8-2">Programming the iPhone User Experience</a> will be released by O&#8217;Reilly this July.</p>
<p>I spoke at the Web 2.0 Expo (SF) this year on the subject of <a href="http://www.web2expo.com/webexsf2009/public/schedule/detail/7829">iPhone UX Anti-Patterns</a>. It was the highest-rated mobile session. Great validation, and I think it&#8217;ll go a long way towards squelching the desire to jump off a building every time I have to get on stage.</p>
<p>After the book wraps, I hope to write more often here, on <a href="http://insideria.com">InsideRIA</a>, and for other publications. </p>
<p>Or, I may just drink a lot and lay around.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tobyjoe.com/2009/05/preaching-iphone-ux/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SproutCore Article on O&#8217;Reilly InsideRIA Blog</title>
		<link>http://www.tobyjoe.com/2008/08/sproutcore-article-on-o-reilly-insideria-blog/</link>
		<comments>http://www.tobyjoe.com/2008/08/sproutcore-article-on-o-reilly-insideria-blog/#comments</comments>
		<pubDate>Wed, 13 Aug 2008 22:33:00 +0000</pubDate>
		<dc:creator>Toby Joe Boudreaux</dc:creator>
				<category><![CDATA[Tech]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[Writing]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[<p>I&#8217;m now blogging for <a href="http://insideria.com">InsideRIA</a>. ]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m now blogging for <a href="http://insideria.com">InsideRIA</a>. My <a href="http://www.insideria.com/2008/08/thick-clients-with-sproutcore.html">first article</a> is on <a href="http://sproutcore.com/">SproutCore</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tobyjoe.com/2008/08/sproutcore-article-on-o-reilly-insideria-blog/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Ruby on Rails in .net</title>
		<link>http://www.tobyjoe.com/2007/02/ruby-on-rails-in-net/</link>
		<comments>http://www.tobyjoe.com/2007/02/ruby-on-rails-in-net/#comments</comments>
		<pubDate>Tue, 27 Feb 2007 07:26:00 +0000</pubDate>
		<dc:creator>Toby Joe Boudreaux</dc:creator>
				<category><![CDATA[Tech]]></category>
		<category><![CDATA[Writing]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[<p>A while back, I wrote an intro to Rails article for the FutureNet publication, <em>.net</em></p><p>I guess it was put online as well as in print (in a tough-to-find import mag). I just stumbled across the <a href="http://www.netmag.co.uk/zine/tools/ror-back-on-track">link</a> tonight.</p>]]></description>
			<content:encoded><![CDATA[<p>A while back, I wrote an intro to Rails article for the FutureNet publication, <em>.net</em></p>
<p>I guess it was put online as well as in print (in a tough-to-find import mag). I just stumbled across the <a href="http://www.netmag.co.uk/zine/tools/ror-back-on-track">link</a> tonight.</p>
<p>The formatting doesn&#8217;t seem to be there, but the info is clear enough. ;)</p>
<p>I don&#8217;t get a chance to write on tech topics as frequently as I&#8217;d like. I should work on that.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tobyjoe.com/2007/02/ruby-on-rails-in-net/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

