<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="wordpress/2.0.2" -->
<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/"
	>

<channel>
	<title>Impressive Pixel</title>
	<link>http://ericmiraglia.com/blog</link>
	<description>Eric Miraglia's blog.</description>
	<pubDate>Fri, 11 Apr 2008 17:51:14 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.0.2</generator>
	<language>en</language>
			<item>
		<title>672 Things</title>
		<link>http://ericmiraglia.com/blog/2007/12/16/672-things/</link>
		<comments>http://ericmiraglia.com/blog/2007/12/16/672-things/#comments</comments>
		<pubDate>Sun, 16 Dec 2007 06:58:31 +0000</pubDate>
		<dc:creator>Eric Miraglia</dc:creator>
		
	<category>Uncategorized</category>
		<guid isPermaLink="false">http://ericmiraglia.com/blog/2007/12/16/672-things/</guid>
		<description><![CDATA[ Frontend engineering is a unique discipline in the world of software engineering in that it is maddeningly heterogeneous.  The markup, design and scripting we write is interpreted by a wide variety of different host environments, many of which operate in deliberately eccentric ways.  All genres of software engineering try to account for [...]]]></description>
			<content:encoded><![CDATA[<p> Frontend engineering is a unique discipline in the world of software engineering in that it is maddeningly heterogeneous.  The markup, design and scripting we write is interpreted by a wide variety of different host environments, many of which operate in deliberately eccentric ways.  All genres of software engineering try to account for heterogeneity, but F2E is among the most challenging in this regard.  <a href="http://jeremy.zawodny.com/blog/archives/006497.html">Jeremy Zawodny gets this</a>, and he articulates it as well as anyone.  But sometimes it seems like a hard story to tell. </p>
<p>        As part of a series of conversations we&#8217;ve been having within F2E at Yahoo, I offered one specific lens through which to view the challenge.  It&#8217;s neither complete nor mathematically accurate, but it&#8217;s useful nonetheless as a way of thinking about the dimensionality of F2E and the scope and variety of work done within it. </p>
<p>       <img src="http://ericmiraglia.com/assets/672a.png" width=500></p>
<p>        The thesis is that there exists a set of <em>knowledge areas </em> within F2E.  I&#8217;m suggesting there are at least seven of these &mdash; that&#8217;s an oversimplification, but probably an acceptable one for this purpose:
<ol>
<li><strong>X/HTML:</strong> Markup;</li>
<li><strong>DOM:</strong> The abstract node tree created by the browser after it parses markup; </li>
<li><strong>CSS:</strong> The presentational rules that tell the browser how to translate the DOM into a two-dimensional screen representation, including some limited rules about interactive characteristics like hover states; </li>
<li><strong>BOM APIs&#8230;</strong></li>
<li><strong>&#8230;and DOM APIs:</strong> The rule-driven interfaces we have into the browser object model and the document object model &mdash; interfaces that allow us to alter the DOM and communicate with the BOM and that comprise the platform on which we write interactive software in the browser; </li>
<li><strong>JavaScript:</strong> The interpreted language with which we create in-browser logic and with which we communicate via BOM and DOM APIs;</li>
<li><strong>Data transport:</strong> The mechanisms (like XHR) and the data formats (like <a href="http://www.json.org">JSON</a>) we use to send data back and forth to the server from within a web page. </li>
</ol>
<p>For each of these seven knowledge areas, there are four irreducible dimensions with which F2Es must wrangle:
<ol>
<li><strong>Specification:</strong> At some level, each of the knowledge areas is governed by a specification that documents how it is meant to behave.  Many knowledge areas are affected by a variety of specifications &mdash; for example, &quot;X/HTML&quot; as a knowledge area is beholden in some respects to a series of HTML specifications through version 4.01, is affected by discussions about a possible 5.0 specification, and is also shaped in part by XHTML (and therefore by more general XML) specifications.</li>
<li><strong>Implementation:</strong> Browser manufacturers don&#8217;t implement the specification to the letter; rather, in any given release they support parts of it, depart from it in specific ways, and introduce new, unspecified features and characteristics (XHR itself is a good example of this).  Many often-used innovations in each of the knowledge areas derives from features that are (or were originally) proprietary, unspecified features.</li>
<li><strong>Defects:</strong> If the implementation introduces a tension between what the browser actually <em>does</em> versus what is in the governing specification (in some cases we might call these differences &quot;deliberately introduced defects&quot;), there are also many differences that the browser manufacturer did not intend &mdash; accidental defects.  Defects often live long enough in mainstream browsers to require accommodation on the part of the F2E world.  In some cases, that accommodation results in an ecosystem of web content that will break unattractively (or even cease to function) if the defect is corrected, and as a result some defects become permanent, unspecified characteristics of a given knowledge area.</li>
<li><strong>Theory and Practice:</strong> To deal with tensions between specification, intended implementation, and accidental defect, F2Es construct theoretical and practical approaches to each knowledge area.  Semantic markup is a commonly referenced school of theory and practice within the knowledge area of X/HTML, for example.</li>
</ol>
<p>Looked at this way, there are at least 28 different <em>knowledge dimensions</em> that an F2E has to care about when s/he sits down to work each day.  But, of course, it would be 28 only if there were a single browser manufacturer making a single browser.  In fact, there are many different OS platforms and on each of those there are numerous browsers that matter very much to the people that use them; try telling an ardent Opera user that s/he needs to switch browsers to use your website (s/he&#8217;ll switch websites instead, and rightfully so).  If we factor in different browsers and different platforms, we can apply some fuzzy math to some arbitrarily selected (but quite conservative) numbers:<br />
<table align="right" border="0" cellspacing="10">
<tr>
<td valign="top">
<ul>
<li><em>Knowledge areas:</em> 7</li>
<li>x <em>knowledge dimensions:</em> 4</li>
<li>x <em>OS platforms:</em> 3</li>
<li>x <em>browsers per platform:</em> 4</li>
<li>x <em>rendering modes:</em> 2 (oops &mdash; we didn&#8217;t even cover this&#8230;what other engineering discipline has to worry about its code running in &quot;quirks mode&quot;?)</li>
<li><strong>= 672</strong></li>
</ul>
</td>
<td valign="top"> </td>
</tr>
</table>
<p> <img src="http://ericmiraglia.com/assets/672b.png" width=500></p>
<p>Again, this isn&#8217;t precise and it&#8217;s not meant to be.  For one thing, it assumes that you don&#8217;t care about server-side technologies, screen readers, the hundreds of supported user-agents in the mobile world, and things like XUL and ATLAS that are wholly wed to a single platform or browser.  But you may find that understanding the 672 things that an F2E has to worry about when coming to work each day is a useful way to ground yourself in the complexity of F2E and its intrinsic challenges.</p>
</p>
]]></content:encoded>
			<wfw:commentRSS>http://ericmiraglia.com/blog/2007/12/16/672-things/feed/</wfw:commentRSS>
		</item>
		<item>
		<title>Retro I: WebCams</title>
		<link>http://ericmiraglia.com/blog/2007/12/16/retro-i-webcams/</link>
		<comments>http://ericmiraglia.com/blog/2007/12/16/retro-i-webcams/#comments</comments>
		<pubDate>Sun, 16 Dec 2007 06:42:04 +0000</pubDate>
		<dc:creator>Eric Miraglia</dc:creator>
		
	<category>Uncategorized</category>
		<guid isPermaLink="false">http://ericmiraglia.com/blog/2007/12/16/retro-i-webcams/</guid>
		<description><![CDATA[Remember when webcams were edgy and cool?  Or, at least, when they were cool?  This one still is, to me.

Especially fun to watch Half Dome through the winter months&#8230;until the snow gets deep enough to obscure the view.
]]></description>
			<content:encoded><![CDATA[<p>Remember when webcams were edgy and cool?  Or, at least, when they were cool?  <a href="http://www.yosemite.org/vryos/sentinelcam.htm">This one</a> still is, to me.</p>
<p><img src="http://www.yosemite.org/vryos/sentinel.jpg" width="450"></p>
<p>Especially fun to watch Half Dome through the winter months&#8230;until the snow gets deep enough to obscure the view.</p>
]]></content:encoded>
			<wfw:commentRSS>http://ericmiraglia.com/blog/2007/12/16/retro-i-webcams/feed/</wfw:commentRSS>
		</item>
		<item>
		<title>Undisintermediation</title>
		<link>http://ericmiraglia.com/blog/2006/02/04/undisintermediation/</link>
		<comments>http://ericmiraglia.com/blog/2006/02/04/undisintermediation/#comments</comments>
		<pubDate>Sat, 04 Feb 2006 12:01:19 +0000</pubDate>
		<dc:creator>Eric Miraglia</dc:creator>
		
	<category>Uncategorized</category>
		<guid isPermaLink="false">http://ericmiraglia.com/blog/2006/02/04/undisintermediation/</guid>
		<description><![CDATA[
]]></description>
			<content:encoded><![CDATA[
]]></content:encoded>
			<wfw:commentRSS>http://ericmiraglia.com/blog/2006/02/04/undisintermediation/feed/</wfw:commentRSS>
		</item>
		<item>
		<title>Lessig Screencast on Google Book Search and Copyright Law</title>
		<link>http://ericmiraglia.com/blog/2006/02/01/lessig-screencast-on-google-book-search-and-copyright-law/</link>
		<comments>http://ericmiraglia.com/blog/2006/02/01/lessig-screencast-on-google-book-search-and-copyright-law/#comments</comments>
		<pubDate>Wed, 01 Feb 2006 23:58:55 +0000</pubDate>
		<dc:creator>Eric Miraglia</dc:creator>
		
	<category>Uncategorized</category>
		<guid isPermaLink="false">http://ericmiraglia.com/blog/2006/02/01/lessig-screencast-on-google-book-search-and-copyright-law/</guid>
		<description><![CDATA[
]]></description>
			<content:encoded><![CDATA[
]]></content:encoded>
			<wfw:commentRSS>http://ericmiraglia.com/blog/2006/02/01/lessig-screencast-on-google-book-search-and-copyright-law/feed/</wfw:commentRSS>
		</item>
		<item>
		<title>Stanford Tech Talk: Moving into the Web&#8217;s Second Decade</title>
		<link>http://ericmiraglia.com/blog/2006/02/01/stanford-tech-talk-moving-into-the-webs-second-decade/</link>
		<comments>http://ericmiraglia.com/blog/2006/02/01/stanford-tech-talk-moving-into-the-webs-second-decade/#comments</comments>
		<pubDate>Wed, 01 Feb 2006 22:32:42 +0000</pubDate>
		<dc:creator>Eric Miraglia</dc:creator>
		
	<category>Uncategorized</category>
		<guid isPermaLink="false">http://ericmiraglia.com/blog/2006/02/01/stanford-tech-talk-moving-into-the-webs-second-decade/</guid>
		<description><![CDATA[
]]></description>
			<content:encoded><![CDATA[
]]></content:encoded>
			<wfw:commentRSS>http://ericmiraglia.com/blog/2006/02/01/stanford-tech-talk-moving-into-the-webs-second-decade/feed/</wfw:commentRSS>
		</item>
		<item>
		<title>NYT on Yahoo, Terry Semel, and the Nature of &#8220;New Media&#8221;</title>
		<link>http://ericmiraglia.com/blog/2006/01/29/nyt-on-yahoo-terry-semel-and-the-nature-of-new-media/</link>
		<comments>http://ericmiraglia.com/blog/2006/01/29/nyt-on-yahoo-terry-semel-and-the-nature-of-new-media/#comments</comments>
		<pubDate>Sun, 29 Jan 2006 22:07:31 +0000</pubDate>
		<dc:creator>Eric Miraglia</dc:creator>
		
	<category>Uncategorized</category>
		<guid isPermaLink="false">http://ericmiraglia.com/blog/2006/01/29/nyt-on-yahoo-terry-semel-and-the-nature-of-new-media/</guid>
		<description><![CDATA[
]]></description>
			<content:encoded><![CDATA[
]]></content:encoded>
			<wfw:commentRSS>http://ericmiraglia.com/blog/2006/01/29/nyt-on-yahoo-terry-semel-and-the-nature-of-new-media/feed/</wfw:commentRSS>
		</item>
		<item>
		<title>Mini-Review: Flickr Export for iPhoto by Connected Flow</title>
		<link>http://ericmiraglia.com/blog/2006/01/29/mini-review-flickr-export-for-iphoto-by-connected-flow/</link>
		<comments>http://ericmiraglia.com/blog/2006/01/29/mini-review-flickr-export-for-iphoto-by-connected-flow/#comments</comments>
		<pubDate>Sun, 29 Jan 2006 00:35:13 +0000</pubDate>
		<dc:creator>Eric Miraglia</dc:creator>
		
	<category>Uncategorized</category>
		<guid isPermaLink="false">http://ericmiraglia.com/blog/2006/01/29/mini-review-flickr-export-for-iphoto-by-connected-flow/</guid>
		<description><![CDATA[
]]></description>
			<content:encoded><![CDATA[
]]></content:encoded>
			<wfw:commentRSS>http://ericmiraglia.com/blog/2006/01/29/mini-review-flickr-export-for-iphoto-by-connected-flow/feed/</wfw:commentRSS>
		</item>
		<item>
		<title>Mini-Review: FastScripts for Mac OS X</title>
		<link>http://ericmiraglia.com/blog/2006/01/28/mini-review-fastscripts-for-mac-os-x/</link>
		<comments>http://ericmiraglia.com/blog/2006/01/28/mini-review-fastscripts-for-mac-os-x/#comments</comments>
		<pubDate>Sat, 28 Jan 2006 00:57:43 +0000</pubDate>
		<dc:creator>Eric Miraglia</dc:creator>
		
	<category>Uncategorized</category>
		<guid isPermaLink="false">http://ericmiraglia.com/blog/2006/01/28/mini-review-fastscripts-for-mac-os-x/</guid>
		<description><![CDATA[
]]></description>
			<content:encoded><![CDATA[
]]></content:encoded>
			<wfw:commentRSS>http://ericmiraglia.com/blog/2006/01/28/mini-review-fastscripts-for-mac-os-x/feed/</wfw:commentRSS>
		</item>
		<item>
		<title>Guy Kawasaki on Evangelism</title>
		<link>http://ericmiraglia.com/blog/2006/01/27/guy-kawasaki-on-evangelism/</link>
		<comments>http://ericmiraglia.com/blog/2006/01/27/guy-kawasaki-on-evangelism/#comments</comments>
		<pubDate>Fri, 27 Jan 2006 18:13:06 +0000</pubDate>
		<dc:creator>Eric Miraglia</dc:creator>
		
	<category>Uncategorized</category>
		<guid isPermaLink="false">http://ericmiraglia.com/blog/2006/01/27/guy-kawasaki-on-evangelism/</guid>
		<description><![CDATA[
]]></description>
			<content:encoded><![CDATA[
]]></content:encoded>
			<wfw:commentRSS>http://ericmiraglia.com/blog/2006/01/27/guy-kawasaki-on-evangelism/feed/</wfw:commentRSS>
		</item>
		<item>
		<title>Crockford Blog</title>
		<link>http://ericmiraglia.com/blog/2006/01/27/crockford-blog/</link>
		<comments>http://ericmiraglia.com/blog/2006/01/27/crockford-blog/#comments</comments>
		<pubDate>Fri, 27 Jan 2006 17:54:13 +0000</pubDate>
		<dc:creator>Eric Miraglia</dc:creator>
		
	<category>Uncategorized</category>
		<guid isPermaLink="false">http://ericmiraglia.com/blog/2006/01/27/crockford-blog/</guid>
		<description><![CDATA[
]]></description>
			<content:encoded><![CDATA[
]]></content:encoded>
			<wfw:commentRSS>http://ericmiraglia.com/blog/2006/01/27/crockford-blog/feed/</wfw:commentRSS>
		</item>
	</channel>
</rss>
