<?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>Michael Eakes &#187; web</title>
	<atom:link href="http://www.eakes.org/category/web/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.eakes.org</link>
	<description>Software Engineering, Social Technology, Product Design</description>
	<lastBuildDate>Tue, 24 Nov 2009 07:57:44 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Mojo at Rojo</title>
		<link>http://www.eakes.org/58/mojo-at-rojo/</link>
		<comments>http://www.eakes.org/58/mojo-at-rojo/#comments</comments>
		<pubDate>Fri, 17 Mar 2006 04:06:27 +0000</pubDate>
		<dc:creator>meakes</dc:creator>
				<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://www.eakes.org/?p=58</guid>
		<description><![CDATA[I&#8217;ve been working really hard building our new Mojo feature at Rojo.  Adding Mojo to stories in Rojo is a convenient way to show the world news that you like.
I&#8217;m especially excited because we&#8217;ve really &#8220;kicked it upstairs&#8221; for this feature with a new back-end architecture that we designed to make our mojo extremely [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been working really hard building our new Mojo feature at Rojo.  Adding Mojo to stories in Rojo is a convenient way to show the world <a href="http://www.rojo.com/mojo/?userId=165">news that you like</a>.</p>
<p>I&#8217;m especially excited because we&#8217;ve really &#8220;kicked it upstairs&#8221; for this feature with a new back-end architecture that we designed to make our mojo extremely snappy and scalable.</p>
<p>Here&#8217;s a screenshot showing this story&#8217;s mojo count in the upper-right corner.  Just click it to add your mojo to any story.  The first person to add mojo to each story gains a little bit of &#8220;microfame&#8221; (the link in the bottom right corner).</p>
<p><img class="alignnone size-full wp-image-114" style="border: 1px solid black;" title="rojomojo" src="http://www.eakes.org/wp-content/uploads/2006/03/rojomojo.jpg" alt="rojomojo" width="415" height="225" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.eakes.org/58/mojo-at-rojo/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Acid2 Test</title>
		<link>http://www.eakes.org/52/acid2-test/</link>
		<comments>http://www.eakes.org/52/acid2-test/#comments</comments>
		<pubDate>Wed, 02 Nov 2005 21:43:47 +0000</pubDate>
		<dc:creator>meakes</dc:creator>
				<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://www.eakes.org/?p=52</guid>
		<description><![CDATA[
I am pleased to see that this kind of black box testing is out there for browser compatibility standards.  This Acid2 test reminds me of the &#8220;Machine Problems&#8221; we had to do in Computer Science at the University of Illinois, where we had to match our output byte-for-byte to a reference implementation.
]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-120" title="acid2-reference" src="http://www.eakes.org/wp-content/uploads/2005/11/acid2-reference.png" alt="acid2-reference" width="168" height="168" /></p>
<p>I am pleased to see that <a href="http://www.webstandards.org/act/acid2/">this</a> kind of black box testing is out there for browser compatibility standards.  This <a href="http://www.webstandards.org/act/acid2/test.html">Acid2 test</a> reminds me of the &#8220;Machine Problems&#8221; we had to do in Computer Science at the University of Illinois, where we had to match our output byte-for-byte to a reference implementation.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.eakes.org/52/acid2-test/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Recursive Mofo-blogging</title>
		<link>http://www.eakes.org/51/recursive-mofo-blogging/</link>
		<comments>http://www.eakes.org/51/recursive-mofo-blogging/#comments</comments>
		<pubDate>Fri, 27 May 2005 23:02:39 +0000</pubDate>
		<dc:creator>meakes</dc:creator>
				<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://www.eakes.org/?p=51</guid>
		<description><![CDATA[Kevin took a photo of us having a Rojo team lunch and blogged it from the restaurant with is Treo.  When the story popped up in my Rojo reader after lunch, Kevin recursively mofoblogged that too.  So I thought I&#8217;d better add another level to the recursion stack and blog him doing that:

]]></description>
			<content:encoded><![CDATA[<p>Kevin took a <a href="http://peerfear.typepad.com/photos/uncategorized/photo_05_2.jpg">photo of us</a> having a <a href="http://peerfear.typepad.com/blog/2005/05/rojo_lunch.html">Rojo team lunch</a> and blogged it from the restaurant with is Treo.  When the story popped up in my <a href="http://www.rojo.com/">Rojo</a> reader after lunch, Kevin <a href="http://peerfear.typepad.com/blog/2005/05/recursive_rojo.html">recursively mofoblogged</a> that too.  So I thought I&#8217;d better add another level to the recursion stack and blog him doing that:</p>
<p><img class="alignnone size-full wp-image-122" title="recursive_moblogging" src="http://www.eakes.org/wp-content/uploads/2005/05/recursive_moblogging.jpg" alt="recursive_moblogging" width="640" height="480" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.eakes.org/51/recursive-mofo-blogging/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Paper Airplane 0.1.1 Released</title>
		<link>http://www.eakes.org/49/paper-airplane-0-1-1-released/</link>
		<comments>http://www.eakes.org/49/paper-airplane-0-1-1-released/#comments</comments>
		<pubDate>Mon, 07 Feb 2005 05:48:05 +0000</pubDate>
		<dc:creator>meakes</dc:creator>
				<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://www.eakes.org/?p=49</guid>
		<description><![CDATA[My friend Brad Neuberg has put out an alpha version of his Paper Airplane project.  Talk about a cool project, Paper Airplane lets you create collaborative wiki sites with arbitrary top level domain names through a P2P DNS, and then serve them up through NATs and firewalls.  Nice work Brad.
]]></description>
			<content:encoded><![CDATA[<p>My friend <a href="http://www.codinginparadise.org" rel="friend">Brad Neuberg</a> has put out an alpha version of his <a href="http://paperairplane.us">Paper Airplane</a> project.  Talk about a cool project, Paper Airplane lets you create collaborative wiki sites with arbitrary top level domain names through a P2P DNS, and then serve them up through NATs and firewalls.  Nice work Brad.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.eakes.org/49/paper-airplane-0-1-1-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Foglog 0.1.1 Released</title>
		<link>http://www.eakes.org/48/foglog-0-1-1-released/</link>
		<comments>http://www.eakes.org/48/foglog-0-1-1-released/#comments</comments>
		<pubDate>Mon, 07 Feb 2005 04:30:16 +0000</pubDate>
		<dc:creator>meakes</dc:creator>
				<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://www.eakes.org/?p=48</guid>
		<description><![CDATA[Foglog 0.1.1 is released!
I created Foglog for my own photo organizing and publishing needs, and am pleased to offer it to the open source community.
Foglog is a web based photolog hosting system built on top of a web-accessible, lightweight digital image repository.  Foglog achieves both hosted photo publishing and archival quality private collection management [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://foglog.org/">Foglog</a> 0.1.1 is released!</p>
<p>I created Foglog for my own photo organizing and publishing needs, and am pleased to offer it to the open source community.</p>
<p>Foglog is a web based photolog hosting system built on top of a web-accessible, lightweight digital image repository.  Foglog achieves both hosted photo publishing and archival quality private collection management from a single repository.  This eliminates the need to upload an arbitrary subset of your work (as well as low resolution copies) into a separate photo blogging tool.  All the work that you invest in your photo collection (organizing, categorizing, rotating, etc.) will immediately be reflected in your published photos as well.</p>
<p>My example installation of Foglog can be seen at <a href="http://www.eakes.org/photos/eakes/sets/">eakes.org</a></p>
<p>Foglog operates in two modes, public browsing mode and private management mode.  The public sees a published photostream and can browse public photos by date, set, tags, and by individual permalink.  When logged in as the owner of the photos, management features are available to browse, rotate, tag, organize sets, and publish photos.  Additional admin features include viewing photos by popularity and graphical access logs by session.</p>
<p>The target user is an individual photographer who would like to share photos and photoblog.</p>
<p>Foglog is written in Python, and uses Apache, MySql, and netpbm.  It currently runs on Debian.</p>
<p>This is an alpha-level release, but still has basic photo hosting functionality.  Please give it a try and tell me what you think.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.eakes.org/48/foglog-0-1-1-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Lunch with Rojo</title>
		<link>http://www.eakes.org/38/lunch-with-rojo/</link>
		<comments>http://www.eakes.org/38/lunch-with-rojo/#comments</comments>
		<pubDate>Sat, 08 Jan 2005 02:40:59 +0000</pubDate>
		<dc:creator>meakes</dc:creator>
				<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://www.eakes.org/?p=38</guid>
		<description><![CDATA[Rojo is hosting a lunch:
We are hosting a lunch with a select group of Rojo users at our offices in San Francisco on Wednesday, January 12th at noon. If you&#8217;d like to participate and help Rojo be the best it can be, please let us know by emailing us at feedback@rojo.com. Space is limited and [...]]]></description>
			<content:encoded><![CDATA[<p>Rojo is hosting a <a href="http://blog.rojo.com/rojoblog/2005/01/lunch_with_rojo.html">lunch</a>:</p>
<blockquote><p>We are hosting a lunch with a select group of Rojo users at our offices in San Francisco on Wednesday, January 12th at noon. If you&#8217;d like to participate and help Rojo be the best it can be, please let us know by emailing us at feedback@rojo.com. Space is limited and participation is by RSVP only.</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.eakes.org/38/lunch-with-rojo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Danger of Losing Context with XFN</title>
		<link>http://www.eakes.org/36/the-danger-of-losing-context-with-xfn/</link>
		<comments>http://www.eakes.org/36/the-danger-of-losing-context-with-xfn/#comments</comments>
		<pubDate>Fri, 31 Dec 2004 23:51:51 +0000</pubDate>
		<dc:creator>meakes</dc:creator>
				<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://www.eakes.org/?p=36</guid>
		<description><![CDATA[As I re-posted Robert Scoble&#8217;s geek dinner attendance list, I noticed that he included XFN notation in the links. When I re-posted the links, I made sure to edit all of the rel attributes to reflect my own relationships.  But I could imagine that someone who uses a tool to copy links or simply [...]]]></description>
			<content:encoded><![CDATA[<p>As I <a href="http://www.eakes.org/blog/archives/2004/12/geek_dinner.html">re-posted</a> Robert Scoble&#8217;s geek dinner <a href="http://radio.weblogs.com/0001011/2004/12/31.html#a9069">attendance list</a>, I noticed that he included <a href="http://gmpg.org/xfn/intro">XFN</a> notation in the links. When I re-posted the links, I made sure to edit all of the rel attributes to reflect my own relationships.  But I could imagine that someone who uses a tool to copy links or simply is not yet aware of XFN might copy and paste them without realizing that s/he was specifying accidental semantic web relationships.</p>
<p>Those rel attributes convey one-way relationship information; from the owner of the containing page to the owner of the link.  XFN tools must infer that the originator of the relationship is the owner of the page in which the link exists.</p>
<p>Since one half of the relationship is implied from the context of the containing document, there is a danger of misrepsenting relationship information by decontextualizing (re-posting) links that contain rel attributes.  This problem would apply to any use of the XHTML rel attribute.</p>
<p>Maybe this won&#8217;t happen much, but I wonder if we can come up with something to help keep the XFN network from being corrupted by such decontextualization.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.eakes.org/36/the-danger-of-losing-context-with-xfn/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>DHTML is Growing Up</title>
		<link>http://www.eakes.org/33/dhtml-is-growing-up/</link>
		<comments>http://www.eakes.org/33/dhtml-is-growing-up/#comments</comments>
		<pubDate>Thu, 30 Dec 2004 17:40:42 +0000</pubDate>
		<dc:creator>meakes</dc:creator>
				<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://www.eakes.org/?p=33</guid>
		<description><![CDATA[Brad Neuberg recently spotted a programmer in a coffee shop hacking on a DHTML application. There have been quite a few DHTML sightings lately, making me believe that DHTML is finally coming of age.
Dynamic HTML is not a specific technology but rather a technique of creating rich internet applications by augmenting static HTML with client-side [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.codinginparadise.org/">Brad Neuberg</a> recently spotted a programmer in a coffee shop hacking on a DHTML application. There have been quite a few DHTML sightings lately, making me believe that DHTML is finally coming of age.</p>
<p>Dynamic HTML is not a specific technology but rather a technique of creating rich internet applications by augmenting static HTML with client-side scripting and style definitions. In practice this is often done with HTML, JavaScript, and CSS.</p>
<p>There are various other frameworks for rich internet applications, such as Flex and Laszlo, but they have not gained popularity; perhaps this is because they rely on Flash as a 3rd party browser extension. Since DHTML relies only on Javascript and CSS, which are now both widely supported in modern browsers, DHTML should be clear for take off.</p>
<p>So what is the holdup? The biggest gotcha with using DHTML is having to wade through the qaugmire of browser incompatibilities in their support for Javascript and CSS. Javascript-based DOM methods in one browser might not have the same effect in another browser. Also, the lack of cross-browser CSS support creates a large amount of <a href="http://news.com.com/2100-1032-5088642.html">developer consternation</a>.</p>
<p>Some folks are working to fix the mess. The open-source <a href="http://cross-browser.com/toys/">x library</a> encapsulates all the DOM incompatibilities by creating a browser-independent javascript API for DOM manipulation. On the CSS front, <a href="http://dean.edwards.name/">Dean Edwards</a> has taken the approach of &#8220;leveling the playing field&#8221;; his cheekily-named <a href="http://dean.edwards.name/IE7/">IE7</a> project is a complex layer that makes Internet Explorer behave in a CSS compliant way.</p>
<p>These kinds of grassroots efforts are typical with DHTML, because unlike Flex and Laszlo, DHTML has no standard libraries or toolkits. In fact, the community has been re-inventing DHTML tools for years without coming up a standard cross-browser DHTML solution.</p>
<p>Things have come a long way, however, and the frontiers are now being pushed with DHTML. <a href="http://www.bazon.net/mishoo/">Mihai Bazon</a> of <a href="http://www.dynarch.com/">Dynarch</a>, for example, has produced some really slick <a href="http://www.dynarch.com/demos/hmenu/">DHTML menus</a> and other widgets; I even found myself right-clicking on them to convince myself that they were not actually coded in Flash.</p>
<p>DHTML seems to work best when applied lightly and transparently, avoiding the <a href="http://www.theserverside.com/news/thread.tss?thread_id=30303">worries</a> of rich internet applications. Some of the best uses of DHTML are when you don&#8217;t even realize that it is DHTML, such as Google&#8217;s <a href="http://www.gmail.com/">GMail</a>. I believe DHTML is least effective when used in an <a href="http://reader.rocketinfo.com/desktop/">attempt</a> to make a web application look like a desktop application.</p>
<p>With all these cool new techniques, DHTML can also bring a few annoying possibilities, such as DHTML pop-up ads. Many users have been switching to security conscious browsers and otherwise blocking ads that pop up in separate os-native windows, but DHTML pop-ups are a whole new way to get your attention. The first time I visited this <a href="http://www.time.com/time/election2004/columnist/frank/article/0,18471,733077,00.html?promoid=rss_top">Time Magazine story</a>, I was barraged with two (annoying but harmless) DHTML pop-up ads.</p>
<p>As more DHTML libraries and widgets are released with <a href="http://www.opensource.org/">open-source</a> licenses, it seems more likely that DHTML will continue to gradually enrich web applications enough so that the adoption of a separate RIA framework like Flex or Laszlo might no longer be necessary.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.eakes.org/33/dhtml-is-growing-up/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>I&#8217;ve been Rubhubbed!</title>
		<link>http://www.eakes.org/31/ive-been-rubhubbed/</link>
		<comments>http://www.eakes.org/31/ive-been-rubhubbed/#comments</comments>
		<pubDate>Thu, 30 Dec 2004 02:01:42 +0000</pubDate>
		<dc:creator>meakes</dc:creator>
				<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://www.eakes.org/?p=31</guid>
		<description><![CDATA[&#8220;That&#8217;s great! Actual physical contact! Can you move?&#8221;
&#8220;I feel so funky.&#8221;
Rubhub, the XFN Aggregator, finally indexed my XFN Friendly blog.  Last month I wrote a post XHTML Friends Network.  Inside that post, I included some links with xhtml rel attributes (with values from the XFN spec) to specify my outgoing relationship to various [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.garnersclassics.com/qbuster.htm">&#8220;That&#8217;s great! Actual physical contact! Can you move?&#8221;<br />
&#8220;I feel so funky</a>.&#8221;</p>
<p>Rubhub, the XFN Aggregator, finally indexed my XFN Friendly blog.  Last month I wrote a post <a href="http://www.eakes.org/blog/archives/2004/11/xhtml_friends_n_1.html">XHTML Friends Network</a>.  Inside that post, I included some links with xhtml rel attributes (with values from the <a href="http://gmpg.org/xfn/11">XFN spec</a>) to specify my outgoing relationship to various people.  After that I visited rubhub and added my site to their aggregation list.  Now, rubhub has indexed <a href="http://www.rubhub.com/main/site/?2202">some of the relationships</a> that I included in the post and in my blogroll.  For some reason though, it only picked up 3 out of the 8 distinct links I had adorned with XFN rel attributes.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.eakes.org/31/ive-been-rubhubbed/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Representational State Transfer (REST)</title>
		<link>http://www.eakes.org/23/representational-state-transfer-rest/</link>
		<comments>http://www.eakes.org/23/representational-state-transfer-rest/#comments</comments>
		<pubDate>Thu, 09 Dec 2004 16:13:30 +0000</pubDate>
		<dc:creator>meakes</dc:creator>
				<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://www.eakes.org/?p=23</guid>
		<description><![CDATA[REST (REpresentational State Transfer) describes an architecture style for networked systems.   It also happens to be the underlying architectural model of the Web.  Roy Fielding coined the term in his PhD dissertation.
The basic characteristics of a REST system are:

Client (browser) and server
Stateless Interactions
Cacheable Resources (using Meta info)
A uniform interface (HTTP)
Named resources (URIs)
Interconnected [...]]]></description>
			<content:encoded><![CDATA[<p>REST (REpresentational State Transfer) describes an architecture style for networked systems.   It also happens to be the underlying architectural model of the Web.  <a href="http://www.ics.uci.edu/%7Efielding/">Roy Fielding</a> coined the term in his <a href="http://www.ics.uci.edu/%7Efielding/pubs/dissertation/rest_arch_style.htm">PhD dissertation</a>.</p>
<p>The basic characteristics of a REST system are:</p>
<ol>
<li>Client (browser) and server</li>
<li>Stateless Interactions</li>
<li>Cacheable Resources (using Meta info)</li>
<li>A uniform interface (HTTP)</li>
<li>Named resources (URIs)</li>
<li>Interconnected resource Representations (a href)</li>
</ol>
<p>So, the web is already a RESTian system.  The parenthetical information after each item in the above list shows how the current Web satisfies that design principle.</p>
<p>The idea of making a RESTian system is to see it as a data resource manipulation problem.  To sum up the <a href="http://www.xfront.com/sld059.htm">REST Best Practices</a> from a <a href="http://www.xfront.com/sld001.htm">presentation</a> by <a href="http://www.xfront.com/">Roger L. Costello</a>:</p>
<ol>
<li>Expose a URI for each resource</li>
<li>Use logical URIs (not physical)</li>
<li>Use nouns in the URIs (not verbs)</li>
<li>Use the / in URIs to represent parent/child relationship</li>
<li>Minimize use of query strings</li>
<li>use GET for resource representations (not POST)</li>
<li>Make all HTTP GET requests side-effect free</li>
<li>Include links in responses, gradually unfolding information.</li>
</ol>
<p>Strong proponents of REST such as <a href="http://www.markbaker.ca/2002/09/Blog/">Mark Baker</a> purport that it is a natural tendency for document oriented systems, because documents <em>are</em> in fact state.</p>
<p>From an <a href="http://webservices.xml.com/pub/a/ws/2002/02/20/rest.html">article</a> by <a href="http://www.prescod.net/">Paul Prescod</a>:</p>
<blockquote><p>The best part about REST is that it frees you from waiting for standards like SOAP and WSDL to mature. You do not need them. You can do REST today, using W3C and IETF standards that range in age from 10 years (URIs) to 3 years (HTTP 1.1).</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.eakes.org/23/representational-state-transfer-rest/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
