<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" 
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
  xmlns:admin="http://webns.net/mvcb/"
  xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
  xmlns:content="http://purl.org/rss/1.0/modules/content/">
<channel>
<title>silverorange labs</title>
<link>http://labs.silverorange.com/</link>
<description>RSS Feed</description>
<dc:language>en-ca</dc:language>
<dc:creator>Dan James (dan@silverorange.com)</dc:creator>
<dc:date>2008-05-17T22:55:04-03:00</dc:date>
<image>
<title>silverorange labs</title>
<url>http://labs.silverorange.com/local/solabs/images/rsstitle.gif</url>
<link>http://labs.silverorange.com/</link>
</image>
		<item>
		<title>Public Bug-Tracking for Swat and More at code.silverorange.com</title>
		<link>http://labs.silverorange.com/archives/2008/may/public</link>
		<description><![CDATA["We&#8217;ve been using free and open-source software at silverorange for years now. In the last year, though, we&#8217;ve begun releasing more of our internal web-development software stack under an open-source license.

While our Swat web application toolkit (it&#8217;s not a framework) has been..." (260 words - posted by steven) ]]></description>
		<guid>http://labs.silverorange.com/archives/2008/may/public</guid>
		<comments>http://labs.silverorange.com/archives/2008/may/public#replies</comments>
		<content:encoded><![CDATA[<p>We&#8217;ve been using free and <a href="http://labs.silverorange.com/archives/2005/june/freeandopen">open-source software at silverorange</a> for years now. In the last year, though, we&#8217;ve begun releasing more of our internal web-development software stack under an open-source license.</p>

<p>While our <a href="https://code.silverorange.com/wiki/Swat">Swat web application toolkit</a> (it&#8217;s <em>not a framework</em>) has been open since it&#8217;s inception, it has been missing some of the key infrastructure required for a healthy open-source project. The code was available, that was about it.</p>

<p>Now, with the new <a href="http://code.silverorange.com/">code.silverorange.com</a> website (based on <a href="http://trac.edgewall.org/">Trac</a> - a past nominee for silverorange <a href="http://labs.silverorange.com/archives/2008/january/employee2007">employee of the year</a>), we finally have the rest of the public project infrastructure in place.</p>

<p>Most importantly among these changes, we finally have a public bug-tracking system! This took longer than expected because we had Swat bug-tracking tied in with our internal (private client) project tracking. The two are finally separated, and everything that should be open is now out in the open.</p>

<p>We&#8217;re are also now in a position to grant SVN commit access to external contributors when appropriate.</p>

<p>The silverorange code site isn&#8217;t limited to Swat either. We have a whole set of packages we use for developing client sites, including a <a href="http://code.silverorange.com/wiki/Admin">back-end website administration package</a>, an <a href="http://code.silverorange.com/wiki/Store">e-commerce package</a>, a <a href="http://code.silverorange.com/wiki/Pinhole">photo-gallery package</a>, and a (fledgling) <a href="http://code.silverorange.com/wiki/Blorg">weblog package</a>. Each of these projects now has a section of it&#8217;s own on the code.silverorange.com site, and they share a <a href="https://code.silverorange.com/wiki/Swat/GetInvolved">mailing list and Jabber chat room</a> with Swat.</p>

<p>For those who have been patient enough to follow and participate in our open-source projects so far, we&#8217;re appreciative. We hope to be much more open to external collaboration and contributions with this new infrastructure.</p>]]></content:encoded>
				<dc:date>2008-05-08T11:23:00-03:00</dc:date>
		<dc:creator>Steven Garrity</dc:creator>
				</item>
				<item>
		<title>Employee of the Year, 2007</title>
		<link>http://labs.silverorange.com/archives/2008/january/employee2007</link>
		<description><![CDATA["Each year at silverorange, we look back over the last twelve months and bestow honour to one deserving of the title of employee of the year. However, at silverorange, employees, family, and human beings are ineligible.

This leaves the coveted position opened mostly to inanimate objects. In the..." (608 words - posted by steven) ]]></description>
		<guid>http://labs.silverorange.com/archives/2008/january/employee2007</guid>
		<comments>http://labs.silverorange.com/archives/2008/january/employee2007#replies</comments>
		<content:encoded><![CDATA[<p>Each year at silverorange, we look back over the last twelve months and bestow honour to one deserving of the title of employee of the year. However, at silverorange, employees, family, and human beings are ineligible.</p>

<p>This leaves the coveted position opened mostly to inanimate objects. In the past three years, the Employee of the Year title has fallen on the following deserving candidates:</p>

<h4>Employee of the Year - 2004: Jabber Chat Room</h4>

<p>After getting our own Jabber instant messaging server, which allows us to manage our own secure instant messaging infrastructure just like we do with email. One of the benefits of such a service is way secure chat rooms can be easily created. Since then, an enormous amount of our company dialog has taken place in our &#8220;Office&#8221; Jabber chat room. It has been particularly helpful in keeping our few remote partners in touch with the mother-ship.</p>

<h4>Employee of the Year - 2005: Subversion Version Control System</h4>

<p>Up until this point, we had been a small enough team working on small enough projects that working on one shared code-based wasn&#8217;t too much of a problem. Even at this scale, there was still a need to occasionally yell out &#8220;Who&#8217;s editing index.php?!&#8221; Along with some other changes, bringing in a source code management system (we opted for Subversion) has significantly improved the stability of our general work flow. The history of each file is preserved, and perhaps most importantly, it is easy to watch what everyone else is doing on a project. The benefit of this peer-review (aka, fear of shame) is significant.</p>

<h4>Employee of the Year - 2006: Third-Floor Workspace</h4>

<p>The third floor of our beautiful turn-of-the-century Victorian building in downtown Charlottetown had seen little use until 2006. Early last year, though, we set up a large communal desk, rife with power and network adapters. This became the place we would gather when we were working together on a project. When you ran into an issue that needed another the help or insight of co-worker, they were only a glance away. An LCD projector also helps with group reviews of current project sites.</p>

<p>As a result, many of us now spend most of our working time here at this large group desk. We&#8217;ve joked that we could sell our building and move into one room with one desk. We know, though, that working together in a room like this only works because we know we can retreat to our private desks and offices at any point if we need some time without distraction.</p>

<h4>2007</h4>

<p>Earlier this month, we convened for our annual winter summit on the north shore of Prince Edward Island. Looking back over the year, we examined a few potential candidates for the 2007 Employee of the Year. Promising candidates included our BBQ, Trac, our crock pot (chili and beef stew on Wednesdays!), <a href="http://www.getfirebug.com">Firebug</a>, our drink fridge, our Dell projector, our Wii (and Wii Sports), the toilet, and the improvised cardboard lids for our waste and compost bins. Considering two pieces of cardboard as the Employee of the Year might seem a bit odd, but it&#8217;s quite likely that they prevented a breakout of malaria in the office following a fruit-fly issue in the late summer.</p>

<p>After this superficial and possibly beer-fueled evaluation, we chose to name the 2007 Employee of the Year as follows:</p>

<p><strong>The Drink Fridge</strong></p>

<p>Having beer, tea, and juice has kept us hydrated, and helped us to speed up the process of passing the caffeine from our morning coffee through our systems. Firebug was a very close runner-up. Some even claim there was some vote tampering, however, given the one-raised-hand=one-vote system, it&#8217;s hard to imagine much room for fraud.</p>

<p>Better luck next year, crock pot.</p>]]></content:encoded>
				<dc:date>2008-01-16T15:41:00-04:00</dc:date>
		<dc:creator>Steven Garrity</dc:creator>
				</item>
				<item>
		<title>Swat 1.2.35</title>
		<link>http://labs.silverorange.com/archives/2007/october/aswat1235</link>
		<description><![CDATA["Swat 1.2.35 is released and available for download. This release of Swat contains the usual bugfixes, code cleanups and feature improvements. Additionally, this release features several important IE6/7 JavaScript and CSS fixes relating to hasLayout. Many thanks to the contributors of On Having..." (60 words - posted by gauthierm) ]]></description>
		<guid>http://labs.silverorange.com/archives/2007/october/aswat1235</guid>
		<comments>http://labs.silverorange.com/archives/2007/october/aswat1235#replies</comments>
		<content:encoded><![CDATA[<p><a href="http://swat.silverorange.com/">Swat</a> 1.2.35 is released and available for download. This release of Swat contains the usual bugfixes, code cleanups and feature improvements. Additionally, this release features several important IE6/7 JavaScript and CSS fixes relating to <code>hasLayout</code>. Many thanks to the contributors of <a href="http://www.satzansatz.de/cssd/onhavinglayout.html">On Having Layout</a>.</p>

<p><a href="http://swat.silverorange.com/Download">Download the latest release of Swat</a>. You can upgrade from an existing PEAR install using <code>pear upgrade Swat</code>.</p>]]></content:encoded>
				<dc:date>2007-10-26T13:34:00-03:00</dc:date>
		<dc:creator>Mike Gauthier</dc:creator>
				</item>
				<item>
		<title>Compressing JavaScript with ShrinkSafe</title>
		<link>http://labs.silverorange.com/archives/2007/may/compressing</link>
		<description><![CDATA["JavaScript is a ubiquitous technology used on modern websites. With the rise of several prominent JavaScript libraries developers are realizing JavaScript is a legitimate language for complicated programs. With this understanding, larger and more complex JavaScript applications are developed.

To..." (438 words - posted by gauthierm) ]]></description>
		<guid>http://labs.silverorange.com/archives/2007/may/compressing</guid>
		<comments>http://labs.silverorange.com/archives/2007/may/compressing#replies</comments>
		<content:encoded><![CDATA[<p>JavaScript is a ubiquitous technology used on modern websites. With the rise of several prominent JavaScript libraries developers are realizing JavaScript is a legitimate language for complicated programs. With this understanding, larger and more complex JavaScript applications are developed.</p>

<p>To create and maintain large JavaScript applications, coding conventions and documentation are necessary. Unfortunately, coding conventions and documentation result in larger file sizes. Since JavaScript is often served over the web, developers should be concerned with file size. As a result, it is common practise to run JavaScript source files through a filter that strips comments and white-space.</p>			<p><a href="http://labs.silverorange.com/archives/2007/may/compressing" title="read more">Continue reading “<em>Compressing JavaScript with ShrinkSafe</em>”&nbsp;…</a></p>
		]]></content:encoded>
				<dc:date>2007-05-04T16:32:00-03:00</dc:date>
		<dc:creator>Mike Gauthier</dc:creator>
				</item>
				<item>
		<title>Non-Capturing Sub-Patterns in PCRE</title>
		<link>http://labs.silverorange.com/archives/2007/april/noncapturing</link>
		<description><![CDATA["I've been using Perl Compatible Regular Expressions (PCRE) for about four years of my web-development. PCRE gurus may scoff at me for not knowing this beforehand, but here is a neat feature of PCRE I discovered today.

You may specify a sub-pattern as non-capturing using PCRE syntax. To do this,..." (242 words - posted by gauthierm) ]]></description>
		<guid>http://labs.silverorange.com/archives/2007/april/noncapturing</guid>
		<comments>http://labs.silverorange.com/archives/2007/april/noncapturing#replies</comments>
		<content:encoded><![CDATA[<p>I've been using <a href="http://www.pcre.org/">Perl Compatible Regular Expressions</a> (PCRE) for about four years of my web-development. PCRE gurus may scoff at me for not knowing this beforehand, but here is a neat feature of PCRE I discovered today.</p>

<p><strong>You may specify a sub-pattern as non-capturing using PCRE syntax.</strong> To do this, use the <code>?:</code> symbol after the opening parenthesis of the sub-pattern.</p>

<p>Here's the situation that led me to this discovery:</p>

<p>I needed to split a string at any known XHTML tag. To do this properly, I used PHP's <a href="http://php.net/preg-split"><code>preg_split()</code></a> function. Because I also needed to include the matched tags (split delimiters in this case) in the returned array I specified the <code>PREG_SPLIT_DELIM_CAPTURE</code> flag.</p>

My code looked something like:

<pre>
$all_elements = 'div|span|p|ul|ol|li|strong|em|etc...';
$pattern = '/(<\/?(' . $all_elements . ')[^<>]*?>)/i';
$strings = preg_split($pattern, $string, -1, PREG_SPLIT_DELIM_CAPTURE);
</pre>

<p>The outside sub-pattern is the entire delimiter (tag), which is what I want in the returned array from <code>preg_split()</code>. The inside sub-pattern is only needed to match any XHTML element name. Because there are two sub-patterns, the array returned from <code>preg_split()</code> contains both the entire tag (desired) and the element name (undesired).</p>

<p>Using the optional non-capturing sub-pattern syntax, my pattern looks like this:</p>

<pre>
$pattern = '/(<\/?(?:' . $all_elements . ')[^<>]*?>)/i';
</pre>

<p>Using the revised pattern, my code works as intended; only the full tag match is returned in the split array. This feature turned out to be quite useful for me. I imagine this feature will be useful anywhere that a sub-pattern containing branch syntax is used inside a larger pattern, and the larger pattern needs to be captured.</p>]]></content:encoded>
				<dc:date>2007-04-05T01:57:00-03:00</dc:date>
		<dc:creator>Mike Gauthier</dc:creator>
				</item>
				<item>
		<title>Getting Up and Running with the Swat Demo</title>
		<link>http://labs.silverorange.com/archives/2007/february/swatdemo</link>
		<description><![CDATA["

Since Swat's 1.0 release, we've had a few people tell us getting started with Swat is too difficult. To help people get started, here is a quick tutorial on how to get the Swat Demo running on your own server.

To get the Swat Demo running you'll need the following:

The latest release of..." (315 words - posted by gauthierm) ]]></description>
		<guid>http://labs.silverorange.com/archives/2007/february/swatdemo</guid>
		<comments>http://labs.silverorange.com/archives/2007/february/swatdemo#replies</comments>
		<content:encoded><![CDATA[<img src="local/solabs/images/swat-demo/swat-extract-thumb.png" width="116" height="84" alt="Swat archive." class="right" />

<p>Since Swat's 1.0 release, we've had a few people tell us getting started with Swat is too difficult. To help people get started, here is a quick tutorial on how to get the <a href="http://swat.silverorange.com/demo">Swat Demo</a> running on your own server.</p>

<p>To get the Swat Demo running you'll need the following:</p>
<ul>
<li><a href="http://swat.silverorange.com/Download">The latest release of Swat</a></li>
<li><a href="http://pear.php.net/package/Date/">PEAR::Date</a></li>
<li><a href="http://developer.yahoo.com/yui/">Yahoo User Interface library</a> (YUI)</li>
</ul>			<p><a href="http://labs.silverorange.com/archives/2007/february/swatdemo" title="read more">Continue reading “<em>Getting Up and Running with the Swat Demo</em>”&nbsp;…</a></p>
		]]></content:encoded>
				<dc:date>2007-02-07T17:27:00-04:00</dc:date>
		<dc:creator>Mike Gauthier</dc:creator>
				</item>
				<item>
		<title>Working with XML Feeds - Last.fm</title>
		<link>http://labs.silverorange.com/archives/2007/february/workingwithxml</link>
		<description><![CDATA["
Demo

view demo
download source (zip)



While working on a weblog I had a friend ask me if she could have her recently played Last.fm tracks appear in her sidebar. Last.fm has a feature to add your recent tracks to your blog but unfortunately, the recent track list is implemented as a..." (717 words - posted by gauthierm) ]]></description>
		<guid>http://labs.silverorange.com/archives/2007/february/workingwithxml</guid>
		<comments>http://labs.silverorange.com/archives/2007/february/workingwithxml#replies</comments>
		<content:encoded><![CDATA[<div style="border: 1px solid #ccc; float: right; padding: 1em; margin: 1em;" id="demo">
<h4 style="margin: 0 0 0.5em 0;">Demo</h4>
<ul style="padding: 0 0 0.2em 2em; margin: 0;">
<li><strong><a href="local/solabs/last-fm/demo.php">view demo</a></strong></li>
<li><a href="local/solabs/last-fm/last-fm.zip">download source (zip)</a></li>
</ul>
</div>

<p>While working on a weblog I had a friend ask me if she could have her recently played <a href="http://last.fm/">Last.fm</a> tracks appear in her sidebar. Last.fm has a feature to add your recent tracks to your blog but unfortunately, the recent track list is implemented as a dynamically generated image. Last.fm does have a nifty chart designing tool but for a number of reasons I wanted to work with styleable XHTML markup. Luckily for me, Last.fm also provides a set of XML data feeds for all sorts of things including recently played tracks. For example, these are the <a href="http://ws.audioscrobbler.com/1.0/user/so_office/recenttracks.xml">recently played tracks in the silverorange office</a>.</p>

<p>Having data feeds is great, but as you can see, the data is not an XHTML unordered list. There are several things that can be done at this point.</p>			<p><a href="http://labs.silverorange.com/archives/2007/february/workingwithxml" title="read more">Continue reading “<em>Working with XML Feeds - Last.fm</em>”&nbsp;…</a></p>
		]]></content:encoded>
				<dc:date>2007-02-03T16:19:00-04:00</dc:date>
		<dc:creator>Mike Gauthier</dc:creator>
				</item>
				<item>
		<title>Swat 1.0</title>
		<link>http://labs.silverorange.com/archives/2006/october/swat10</link>
		<description><![CDATA["

The Swat web application toolkit has reached the mythical 1.0 status. What this really means is that we have it in a state where we were ready to launch our first client website powered by Swat and it&#8217;s sister (brother?) packages.

What better way to bring Swat into the..." (229 words - posted by steven) ]]></description>
		<guid>http://labs.silverorange.com/archives/2006/october/swat10</guid>
		<comments>http://labs.silverorange.com/archives/2006/october/swat10#replies</comments>
		<content:encoded><![CDATA[<p><a href="http://swat.silverorange.com"><img src="http://swat.silverorange.com/skins/swat/logo.png" alt="Swat" class="right" /></a></p>

<p>The <a href="http://swat.silverorange.com">Swat web application toolkit</a> has reached the mythical 1.0 status. What this really means is that we have it in a state where we were ready to launch our first client website powered by Swat and it&#8217;s sister (brother?) packages.</p>

<p>What better way to bring Swat into the production-website world than by having it power a gardening company e-commerce store? You can read <a href="http://silverorange.com/a/news/veseys2">more about the new site in the silverorange news</a>.</p>

<p>In the development of our first major site with Swat, a few other packages have organically sprung up:</p>

<ul>
<li>The Admin package provides the web-based back-end management functionality for the site.</li>
<li>The Site package provides very basic site structure</li>
<li>The Store package provides common e-commerce site functionality (products, categories, shopping cart, accounts, etc.)</li>
</ul>

<p>Though we don&#8217;t have much public info about them, these packages all share the same LGPL license as Swat are are available in our public Subversion repository. A few other packages are likely to spring up as we develop more sites with Swat.</p>

<p>The <a href="http://docs.silverorange.com/swat/package-summary.html">in-line documentation</a> for Swat and these additional packages is reasonably good (but could always be better). However, the documentation published on the Swat site is not quite up-to-date. We hope to improve on this soon.</p>

<p>We&#8217;re also moving to a Trac install as a means of trac(k)ing bugs/issues for the Swat family of packages. We'll try to get this working in some publicly accessible way in the ambiguous future.</p>]]></content:encoded>
				<dc:date>2006-10-18T12:20:00-03:00</dc:date>
		<dc:creator>Steven Garrity</dc:creator>
				</item>
				<item>
		<title>Looking for a Designer</title>
		<link>http://labs.silverorange.com/archives/2006/september/lookingfora</link>
		<description><![CDATA["We&#8217;re looking for a designer to add to our team. Read the details and let us know if it&#8217;s you." (19 words - posted by steven) ]]></description>
		<guid>http://labs.silverorange.com/archives/2006/september/lookingfora</guid>
		<comments>http://labs.silverorange.com/archives/2006/september/lookingfora#replies</comments>
		<content:encoded><![CDATA[<p>We&#8217;re looking for a designer to add to our team. <a href="http://silverorange.com/a/job">Read the details</a> and let us know if it&#8217;s you.</p>]]></content:encoded>
				<dc:date>2006-09-01T17:30:00-03:00</dc:date>
		<dc:creator>Steven Garrity</dc:creator>
				</item>
				<item>
		<title>How to Include Scalable Vector Graphics (SVG) In-line</title>
		<link>http://labs.silverorange.com/archives/2006/january/howtoinclude</link>
		<description><![CDATA["

	

	The above image is either a PNG or an SVG, depending on your browser support.


Now that Firefox 1.5 is out with support for SVG (Scalable Vector Graphics) included by default, and the same coming for Safari, perhaps some of us might want to actually use SVG for something.

Of..." (474 words - posted by steven) ]]></description>
		<guid>http://labs.silverorange.com/archives/2006/january/howtoinclude</guid>
		<comments>http://labs.silverorange.com/archives/2006/january/howtoinclude#replies</comments>
		<content:encoded><![CDATA[<div style="float: right; width: 150px; border: 1px solid #CCC; text-align: center; padding: 2px; margin: 0 0 1em 1em;">
<div style="margin: 20px;"><object data="http://labs.silverorange.com/local/solabs/images/svgtest/image-svg.svg" type="image/svg+xml" height="48" width="48">
	<img src="http://labs.silverorange.com/local/solabs/images/svgtest/image-png.png" height="48" width="48" alt="this is a PNG" />
</object></div>
	<div style="background: #eee; margin-top: 20px; padding: 5px; font-family: sans-serif; font-size: 10px; color: #666;">The above image is either a PNG or an SVG, depending on your browser support.</div>
</div>

<p>Now that <a href="http://www.mozilla.com/firefox/">Firefox 1.5</a> is out with support for <a href="http://www.w3.org/TR/SVG/"><acronym title="Scalable Vector Graphics">SVG</acronym> (Scalable Vector Graphics)</a> included by default, and the <a href="http://webkit.opendarwin.org/blog/?p=35">same coming for Safari</a>, perhaps some of us might want to actually use <acronym title="Scalable Vector Graphics">SVG</acronym> for something.</p>

<p>Of course, Firefox 1.5 still represents a small minority of web users. Unless your application is somehow limited to this small slice of internet users, you can&#8217;t really use <acronym title="Scalable Vector Graphics">SVG</acronym> in-line unless you can have a safe fall-back for browsers that don&#8217;t (yet) support <acronym title="Scalable Vector Graphics">SVG</acronym>.</p>

<p>It turns out this is relatively easy to do. It turns out the <a href="http://www.w3schools.com/tags/tag_object.asp">&lt;object&gt;</a> tag can help us out.</p>

<h5>The Code</h5>

<p>The <span class="code">object</span> tag is like a more generic version of the <span class="code">img</span> tag. Rather than include images, it can include all kinds of objects (hence the name). You may have seen it in use to include Flash or Audio/Video content into a web page.</p>

<p>For a simple test case, let&#8217;s imagine we want to include an <acronym title="Scalable Vector Graphics">SVG</acronym> image on a page. However, for browsers that don&#8217;t support <acronym title="Scalable Vector Graphics">SVG</acronym> inline and don&#8217;t have an <acronym title="Scalable Vector Graphics">SVG</acronym> plug-in installed, we want to show them a simple PNG image instead.</p>

<p>The XHTML code is simple:</p>

<blockquote class="code"><p>
&lt;object data="image-svg.svg" type="image/svg+xml" height="48" width="48"&gt;
    &lt;img src="image-png.png" height="48" width="48" alt="this is a PNG" /&gt;
&lt;/object&gt;
</p></blockquote>

<p>The <span class="code">object</span> tells the browser that it&#8217;s including an <acronym title="Scalable Vector Graphics">SVG</acronym> object (<span class="code">type=&#8221;image/svg+xml&#8221;</span>) and points to the <acronym title="Scalable Vector Graphics">SVG</acronym> file (<span class="code">data=&#8221;image-svg.svg&#8221;</span>).</p>

<p>Contents of the <span class="code">object</span> tag are used as alternate content if the object cannot be displayed. Think of what lives inside of the opening and closing <span class="code">object</span> tags like &#8220;alt&#8221; text on an <span class="code">img</span> tag. However, rather than a simple text alternative, we can include more XHTML.</p>

<p>In this case, we&#8217;re including the familiar <span class="code">img</span> and displaying a normal PNG image.</p>

<h5>Browser Support (and the lack thereof)</h5>

<p>This technique seems to be relatively well supported in the more popular web browsers. The browsers that support SVG (only Firefox 1.5, or other browsers with the <a href="http://www.adobe.com/svg/viewer/install/main.html">Adobe SVG Viewer plug-in</a> installed, so far), and other browsers degrade nicely and show the alternative content (a PNG in our test case). The only unfortunate display side-effect is that Firefox 1.0.x displays an addition plug-in notice at the top of the page (<a href="http://labs.silverorange.com/images/rsstest/firefox-1.x-svgtest.png">screenshot</a>). This table shows the support in various browsers:</p>

<table cellpadding="6">
<tr>
<td>Firefox 1.0.x</td>
<td>Displays PNG and Plug-In Notice (<a href="http://labs.silverorange.com/local/solabs/images/svgtest/firefox-1.x-svgtest.png">screenshot</a>)</td>
</tr>
<tr>
<td>Firefox 1.5</td>
<td>Displays <acronym title="Scalable Vector Graphics">SVG</acronym></td>
</tr>
<tr>
<td>Safari</td>
<td>Displays PNG</td>
</tr>
<tr>
<td>Internet Explorer</td>
<td>Displays PNG</td>
</tr>
</table>

<h5>Why Would I Want To Do This?</h5>

<p>A situation in which you might want to use <acronym title="Scalable Vector Graphics">SVG</acronym> inline on a website is a bit difficult to imagine right now. The reason I looked into this was for a site where we want to display <acronym title="Scalable Vector Graphics">SVG</acronym> graphics to show off that they are actually graphics created using <acronym title="Scalable Vector Graphics">SVG</acronym> - not the most common or practical case. That said, we have to start somewhere.</p>

<p>I&#8217;m sure I&#8217;ve made some mistakes here. Feel free to post corrections or additions in the replies to this post.</p>]]></content:encoded>
				<dc:date>2006-01-04T11:13:00-04:00</dc:date>
		<dc:creator>Steven Garrity</dc:creator>
				</item>
		</channel>
</rss>
