<?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>CodeDread Blog &#187; SVG</title>
	<atom:link href="http://www.codedread.com/blog/archives/category/technology/software/web/svg/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.codedread.com/blog</link>
	<description></description>
	<lastBuildDate>Sun, 07 Mar 2010 07:18:56 +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>SVG-edit: One Year Old</title>
		<link>http://www.codedread.com/blog/archives/2010/02/06/svg-edit-one-year-old/</link>
		<comments>http://www.codedread.com/blog/archives/2010/02/06/svg-edit-one-year-old/#comments</comments>
		<pubDate>Sat, 06 Feb 2010 16:49:41 +0000</pubDate>
		<dc:creator>Jeff</dc:creator>
				<category><![CDATA[SVG]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[FOSS]]></category>
		<category><![CDATA[svg-edit]]></category>

		<guid isPermaLink="false">http://www.codedread.com/blog/?p=663</guid>
		<description><![CDATA[[clipart]One year ago today, Narendra Sisodiya started a tiny project called SVG-edit, with the very first check-in.  He was trying to build a white-boarding application that could be used to facilitate online education.
Wow.
My kids couldn&#8217;t even talk at the age of one!  Slackers&#8230;
It&#8217;s pretty amazing to think that this:

Can turn into this:

over the [...]]]></description>
			<content:encoded><![CDATA[<p><object type="image/svg+xml" width="100" height="100" style="float:right" data="http://codedread.com/clipart/svgedit.svgz">[clipart]</object>One year ago today, <a href="http://narendra.techfandu.org/">Narendra Sisodiya</a> started a tiny project called SVG-edit, with <a href="http://code.google.com/p/svg-edit/source/detail?r=2">the very first check-in</a>.  He was trying to build a white-boarding application that could be used to facilitate online education.<span id="more-663"></span></p>
<p>Wow.</p>
<p>My kids couldn&#8217;t even talk at the age of one!  Slackers&#8230;</p>
<p>It&#8217;s pretty amazing to think that this:</p>
<p><iframe src="http://svg-edit.googlecode.com/svn/branches/1.0/svg-editor.html" width="600" height="420"/></p>
<p>Can turn into this:</p>
<p><iframe src="http://svg-edit.googlecode.com/svn-history/r1349/trunk/editor/svg-editor.html" width="750" height="700"/></p>
<p>over the course of just one year, built in a lot of people&#8217;s spare time &#8211; but here we are! <img src='http://www.codedread.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>I can&#8217;t wait to see what <a href="http://svg-edit.googlecode.com/">SVG-edit</a> looks like on its 2nd birthday!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.codedread.com/blog/archives/2010/02/06/svg-edit-one-year-old/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>SVG 2.0 Wishlist</title>
		<link>http://www.codedread.com/blog/archives/2010/01/29/svg-2-0-wishlist/</link>
		<comments>http://www.codedread.com/blog/archives/2010/01/29/svg-2-0-wishlist/#comments</comments>
		<pubDate>Fri, 29 Jan 2010 13:20:31 +0000</pubDate>
		<dc:creator>Jeff</dc:creator>
				<category><![CDATA[SVG]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://www.codedread.com/blog/?p=606</guid>
		<description><![CDATA[[clipart]Robin Berjon posted about what his SVG 2.0 Wishlist would be.  I think he used the hatchet a little too much, so I thought I&#8217;d give some feedback.  Since he doesn&#8217;t support comments (boo!) here we go.
Chopping defs
This was probably my biggest annoyance/concern since, to my knowledge, the &#60;defs&#62; elements causes zero problems. [...]]]></description>
			<content:encoded><![CDATA[<p><object type="image/svg+xml" width="100" height="100" style="float:right" data="http://codedread.com/clipart/angry-axe.svgz">[clipart]</object><a href="http://berjon.com/blog/2010/01/svg2.0-wishlist.html">Robin Berjon posted</a> about what his SVG 2.0 Wishlist would be.  I think he used the hatchet a little too much, so I thought I&#8217;d give some feedback.  Since he doesn&#8217;t support comments (boo!) here we go.<span id="more-606"></span></p>
<h3><a href="#chopping-defs" id="chopping-defs">Chopping defs</a></h3>
<p>This was probably my biggest annoyance/concern since, to my knowledge, the &#60;defs&#62; elements causes zero problems.  Why would &#60;head&#62; or &#60;g style=&#8221;display:none&#8221;&#62; be preferable to <a href="http://www.w3.org/TR/SVG11/struct.html#DefsElement">&#60;defs&#62;</a>?  The defs elements provides semantics to a SVG document.  Specifically, it acts like Flash IDE&#8217;s &#8220;stage&#8221;, where graphical editors can store and find the re-usable elements in a drawing.  I don&#8217;t see any benefit to getting rid of &#60;defs&#62; nor do I see a problem that it causes.  Why are you using &#60;section&#62; elements when &#60;div&#62; will do just fine on your blog, Robin? <img src='http://www.codedread.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<h3><a href="#chopping-smil" id="chopping-smil">Chopping SMIL</a></h3>
<p>I think chopping SMIL at this point would be a bad idea, considering that all native SVG browsers are just coming online with this stuff now.  Yes, SMIL is vastly underused, but frankly SMIL has not had a chance to prove itself &#8211; both in user agents and in graphical editors.  I&#8217;d say now that it&#8217;s been (being) finally implemented, give SMIL a chance and drop it in SVG 3.0 (or whatever comes next) if it is still too under-used.</p>
<p>Your alternatives to SMIL are <a href="http://www.w3.org/TR/css3-animations/">CSS3 Animations</a> for simple cases (sounds good) and JS+DOM for complex cases.  I disagree with the latter as the only way to animate complex SVG.  I think that SMIL still has good uses there.  Out of curiosity Robin, what do you think of <a href="http://www.w3.org/TR/timesheets/">SMIL Timesheets</a>? </p>
<p>What we do need to solve is the DOM interface for SMIL.  I agree baseVal and animVal are truly hated.  In general, I think declarative animations make sense for SMIL, but I don&#8217;t know about the mixture of SMIL + DOM &#8211; that never quite made sense to me.</p>
<p>Maybe move SVG+SMIL out into its own SVG 2.0 Module and see how it fares and provide SVG DOM Core 2.0 that&#8217;s leaner, meaner and leaves out the SMIL?</p>
<h3 id="elems-props"><a href="#attrs-props">Attributes and CSS Properties</a></h3>
<p>What&#8217;s the migration strategy?  If the SVG 2.0-capable browser encounters an attribute that was present in SVG 1.1 and not present in 2.0 &#8211; what should it do?  Ignore?  &#60;circle fill=&#8221;blue&#8221; /&#62; becomes black?  </p>
<p>Not all editors universally love inline style attributes (though the popular ones do).  Inline style attributes are another layer of parsing, another micro-syntax for hand authors, and can actually bloat the markup &#8211; unless you have more than 3 presentational attributes <img src='http://www.codedread.com/blog/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> </p>
<p>I think removing the CSS properties as attributes will actually end up confusing authors further (what? i can set the radius of the circle using XML but not the stroke-width?).  I think the decision to make presentational attributes was a conscious one based on the fact that SVG is such a visual language.</p>
<p>I guess I don&#8217;t have a better solution for CSS properties as XML attributes, because I admit that it <em>is</em> confusing as it stands, but I&#8217;m not convinced that simply removing them is the answer.</p>
<h3><a href="#slicing-not-chopping" id="slicing-not-chopping">Slicing &#8211; not Chopping</a></h3>
<p><object type="image/svg+xml" width="100" height="100" style="float:right" data="http://codedread.com/clipart/scalpel.svgz">[clipart]</object>I hope that SVG 2.0 <em>does</em> become leaner.  I just think that now that browsers are seemingly rallied around 1.1 Full and people are actually starting to use SVG that we need take a more cautious approach with changes.  To me, carefully and iteratively shaving is a better approach than swinging a hacksaw and see what you end up with.  Sorry to mix up so many blades in my analogies.</p>
<p>Here are some things I wouldn&#8217;t be upset about if they went away:</p>
<ul>
<li>&#60;symbol&#62; &#8211; hardly needed if &#60;use&#62;-referenced elements could have a viewBox, I don&#8217;t think they add considerable semantics like defs does</li>
<li>&#60;tref&#62; &#8211; sure, I&#8217;ve never used it</li>
<li>&#60;view&#62; &#8211; agree with your comments</li>
<li>&#60;audio&#62;, &#60;video&#62; &#8211; agreed that HTML5&#8217;s versions are the future</li>
<li>&#60;switch&#62; &#8211; never lived up to its potential, unfortunately (though I guess this leaves server-side or JS as solutions for localization?</li>
<li>&#60;font&#62; and related &#8211; I agree with your idea to move it out of the &#8216;core&#8217; spec.  Put it into a module and see what happens with WOFF, etc</li>
<li>&#60;foreignObject&#62; &#8211; I agree that this shouldn&#8217;t be necessary to mix HTML in SVG.  If inline HTML can somehow show up directly inline with SVG then we could also do away with &#60;textArea&#62; and others</li>
<li>version and baseProfile &#8211; I think I agree with you on this one, they could be dropped.  But if this is done, we need a good way of marking features non-conforming and obsolete going forward.  HTML5 still has spec text for the &#60;font&#62; element.</li>
</ul>
<h3><a href="#my-wishlist" id="my-wishlist">My Wishlist</a></h3>
<p>I liked your &#8220;Better HTML Inlining&#8221; idea. I think it has merit.</p>
<p>You seem to be extremely focused on paring down the language so that implementers can reduce their &#8220;SVG code footprint&#8221;.  While <a href="http://tech.groups.yahoo.com/group/svg-developers/message/62393?l=1">this is definitely a concern for me</a> as well, I think your proposals for removal do not pay enough attention to authors, tool-makers and existing content.</p>
<p>Personally, I think <em>the</em> major focus for SVG 2.0 should be on one thing:</p>
<p><b>Making the DOM Suck Less</b></p>
<p>This alone could seriously help reduce the SVG code footprint in the long run (though I still don&#8217;t understand how browsers could easily obsolete their SVG 1.1 DOM code yet).  I hope to see the SVG WG hosting a DOM Summit as mentioned by shepazu.  I look forward to reading/seeing concrete examples and spec proposals from attendees there.</p>
<p>Once the SVG DOM is improved and we have interoperable implementations of SVG well-deployed around the web, then I would think about seeing what else needs to be cut in the next-next version of SVG.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.codedread.com/blog/archives/2010/01/29/svg-2-0-wishlist/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SVG Marketshare: Dec 2009</title>
		<link>http://www.codedread.com/blog/archives/2010/01/26/svg-marketshare-dec-2009/</link>
		<comments>http://www.codedread.com/blog/archives/2010/01/26/svg-marketshare-dec-2009/#comments</comments>
		<pubDate>Tue, 26 Jan 2010 13:25:53 +0000</pubDate>
		<dc:creator>Jeff</dc:creator>
				<category><![CDATA[SVG]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[canvas]]></category>

		<guid isPermaLink="false">http://www.codedread.com/blog/?p=616</guid>
		<description><![CDATA[[clipart]I decided to start publishing the percentage of web users who can view SVG/Canvas, starting with December 2009:  35.62%
Spreadsheet
P.S. I should mention that this figure does not take into account any user that has a SVG plugin installed or authors who have used the excellent SVG Web or ExplorerCanvas shims, so this is really [...]]]></description>
			<content:encoded><![CDATA[<p><object type="image/svg+xml" width="100" height="100" style="float:right" data="http://codedread.com/clipart/svg.svgz">[clipart]</object>I decided to start publishing the percentage of web users who can view SVG/Canvas, starting with December 2009:  <b>35.62%</b></p>
<p><a href="http://spreadsheets.google.com/pub?key=t5TB0_qFXcrkEndedXkKaug&#038;output=html">Spreadsheet</a></p>
<p>P.S. I should mention that this figure does not take into account any user that has a SVG plugin installed or authors who have used the excellent <a href="http://svgweb.googlecode.com/">SVG Web</a> or <a href="http://excanvas.sourceforge.net/">ExplorerCanvas</a> shims, so this is really a worst-case number.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.codedread.com/blog/archives/2010/01/26/svg-marketshare-dec-2009/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>SVG-edit: The Secret Sauce</title>
		<link>http://www.codedread.com/blog/archives/2010/01/22/svg-edit-the-secret-sauce/</link>
		<comments>http://www.codedread.com/blog/archives/2010/01/22/svg-edit-the-secret-sauce/#comments</comments>
		<pubDate>Fri, 22 Jan 2010 03:26:05 +0000</pubDate>
		<dc:creator>Jeff</dc:creator>
				<category><![CDATA[Google]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[RIA]]></category>
		<category><![CDATA[SVG]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[subversion]]></category>
		<category><![CDATA[svg-edit]]></category>

		<guid isPermaLink="false">http://www.codedread.com/blog/?p=589</guid>
		<description><![CDATA[[clipart]SVG-edit has far exceeded my expectations in the seven months since I&#8217;ve been working on it.  The people I&#8217;ve met there have been amazing and it&#8217;s been really fun to watch the project grow both in members and in capabilities.  Without the people working on it, people like Alexis (now the top contributor) [...]]]></description>
			<content:encoded><![CDATA[<p><object type="image/svg+xml" width="100" height="100" style="float:right" data="http://codedread.com/clipart/svgedit.svgz">[clipart]</object><a href="http://svg-edit.googlecode.com/">SVG-edit</a> has far exceeded my expectations in the seven months since I&#8217;ve been working on it.  The people I&#8217;ve met there have been amazing and it&#8217;s been really fun to watch the project grow both in members and in capabilities.  Without the people working on it, people like <a href="http://a.deveria.com/">Alexis</a> (now the top contributor) and <a href="http://vertex.corpsmoderne.net/main.php?g2_itemId=114">wormsxulla</a> (whip-cracker on UI translations) and others, there wouldn&#8217;t <em>be</em> a project &#8211; that much is obvious.  But would you like to know the secret sauce in the SVG-edit project?  Of course you would.<span id="more-589"></span></p>
<p><object type="image/svg+xml" width="100" height="100" style="float:right" data="http://codedread.com/clipart/googlecode.svgz">[clipart]</object>One of the surprising factors in SVG-edit has been using <a href="http://googlecode.com/">GoogleCode</a> in combination with <a href="http://svnbook.red-bean.com/">Subversion</a>.  Let me tell you why:</p>
<h3 id="linked">Linked Information</h3>
<p>Everything is an issue in SVG-edit.  This is the way we keep track of things to do.  This is the way other people discover things they can work on.  This is the way we prioritize features for a release.  This is the way we identify <a href="http://code.google.com/p/svg-edit/issues/list?can=2&#038;q=label%3AGood-First-Bug">good first bugs</a> for new hackers to work on.  This is the way we sort problems into browser-specific, usability, interoperability categories.  This is even where we put requirements and design decisions.</p>
<p>Making almost everything an issue is good because GoogleCode has some magic that detects revision commit messages and message comments and inter-links the two.  For instance, if I fix <a href="http://code.google.com/p/svg-edit/source/detail?r=1275">issue 436</a>, I might do:</p>
<p><code>$ svn ci -m "Fix Issue 436: Fixed the foo thing"</code></p>
<p>This shows up in GoogleCode <a href="http://code.google.com/p/svg-edit/source/detail?r=1275">here</a> and provides you a link to the issue.</p>
<p>Now in the issue itself, I can mark it as Fixed and mention the revision that fixed the issue:</p>
<p><code>Fixed in r1275</code></p>
<p>Once again, GoogleCode provides a link to the revision when you <a href="http://code.google.com/p/svg-edit/issues/detail?id=436#c1">look at the bug</a>.</p>
<p>This kind of tracking takes a little bit of discipline, but it&#8217;s not that bad and the payoff is worth it.  It really helps other developers keep tabs on what&#8217;s been solved where and how.</p>
<h3 id="host-it">Host It</h3>
<p>Since SVG-edit is a 100% client-side application (i.e. everything happens in the browser, no server component), and since Subversion allows you to <a href="http://svnbook.red-bean.com/en/1.5/svn.advanced.props.file-portability.html#svn.advanced.props.special.mime-type">specify MIME types</a> by setting properties on files, we can convince GoogleCode to host the entire project in runnable form for the purposes of demo-ing the code.</p>
<p>This applies to the trunk as well as any branches and tags.  For instance, you can actually see the evolution of SVG-edit over time:</p>
<ul>
<li><a href="http://svg-edit.googlecode.com/svn/branches/1.0/svg-editor.html">SVG-edit 1.0</a></li>
<li><a href="http://svg-edit.googlecode.com/svn/branches/2.0/svg-editor.html">SVG-edit 2.0</a></li>
<li><a href="http://svg-edit.googlecode.com/svn/branches/2.1/editor/svg-editor.html">SVG-edit 2.1</a></li>
<li><a href="http://svg-edit.googlecode.com/svn/branches/2.2/editor/svg-editor.html">SVG-edit 2.2</a></li>
<li><a href="http://svg-edit.googlecode.com/svn/branches/2.3/editor/svg-editor.html">SVG-edit 2.3</a></li>
<li><a href="http://svg-edit.googlecode.com/svn/branches/2.4/editor/svg-editor.html">SVG-edit 2.4</a></li>
</ul>
<p>Or you can look at the <a href="http://svg-edit.googlecode.com/svn/trunk/editor/svg-editor.html">latest trunk build</a>.</p>
<p>Or you can host the file in a web page by using <code>&#60;iframe&#62;</code> element like <a href="http://www.codedread.com/blog/archives/2009/06/19/embed-an-svg-editor-on-your-web-page/">I&#8217;ve talked about before</a>.</p>
<p>The fact that GoogleCode servers host the repo and also support web serving the content is immensely powerful:  it means we don&#8217;t have to administer a source code repository and we don&#8217;t have to pay for a dedicated server or bandwidth costs to demo the software.  Furthermore, because it&#8217;s a browser-based app, users don&#8217;t have to download anything, they can try out the code right on the spot.</p>
<p>Incidentally this is also one of the strengths of a web app in the first place:  Zero downloads.</p>
<h3 id="regression">Tracking Down A Regression</h3>
<p>GoogleCode&#8217;s hosting of the svn repo doesn&#8217;t stop at branches/tags.  In fact, you can look at <strong>ANY</strong> revision in the browser directly.  Coupled with the fact that we don&#8217;t really require a build step means that it is very easy to track down a regression.</p>
<p><a href="http://git-scm.com/">git</a> has this cool feature called <a href="http://www.kernel.org/pub/software/scm/git/docs/git-bisect.html">bisect</a> that allows you to hunt down when a regression occurred by seeking forward/backward across revisions in increasingly smaller increments, building each revision and testing until you find the first revision in a branch that exhibited a problem.</p>
<p>We can do this much easier in SVG-edit using Subversion on GoogleCode.  Let&#8217;s say one day we notice a problem in the trunk and we&#8217;re at r1200.  Well, we might decide to try out the editor at <a href="http://svg-edit.googlecode.com/svn-history/r1000/trunk/editor/svg-editor.html">revision 1000</a> to see if the problem existed then.  If the problem did not exist, we hop ahead 100 revisions to <a href="http://svg-edit.googlecode.com/svn-history/r1100/trunk/editor/svg-editor.html">r1100</a> &#8211; was the problem present then?  If so, hop back 50 revisions to <a href="http://svg-edit.googlecode.com/svn-history/r1050/trunk/editor/svg-editor.html">r1050</a>.  Repeat in the browser until you isolate the earliest revision where the problem occurred, then add a comment to the issue and go <a href="http://code.google.com/p/svg-edit/source/detail?r=1060">review that revision</a>.</p>
<p>Totally amazing capability and no more difficult than changing a revision number in the browser location bar.  I have to credit <a href="http://narendra.techfandu.org/">Narendra Sisodya</a>, the project founder, with uncovering that little nugget. </p>
<h3 id="non-nirvana">Not a Nirvana</h3>
<p>There are still some grips/nits I have with GoogleCode+Subversion:</p>
<ul>
<li>Being able to serve gzipped JavaScript would be great</li>
<li>Being able to display the current revision number in SVG-edit</li>
<li>The wiki markup needs significant improvements</li>
</ul>
<p>But this is free hosting and project management software, so I can&#8217;t complain too loudly. <img src='http://www.codedread.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.codedread.com/blog/archives/2010/01/22/svg-edit-the-secret-sauce/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>MIX 10k Code Challenge += SVG</title>
		<link>http://www.codedread.com/blog/archives/2010/01/14/mix-10k-code-challenge-svg/</link>
		<comments>http://www.codedread.com/blog/archives/2010/01/14/mix-10k-code-challenge-svg/#comments</comments>
		<pubDate>Thu, 14 Jan 2010 15:56:59 +0000</pubDate>
		<dc:creator>Jeff</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[SVG]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[Games]]></category>
		<category><![CDATA[html5]]></category>

		<guid isPermaLink="false">http://blog.codedread.com/archives/2010/01/14/mix-10k-code-challenge-svg/</guid>
		<description><![CDATA[[clipart]I came across the MIX 10k Coding Challenge on the weekend, and on a whim I decided to submit one of my old SVG demos to the contest.  The 10k challenge&#8217;s tagline is &#8220;What could you create for the Web if you had only 10 kilobytes of code?&#8221;.  The rules didn&#8217;t explicitly say [...]]]></description>
			<content:encoded><![CDATA[<p><object type="image/svg+xml" width="100" height="100" style="float:right" data="http://codedread.com/clipart/villain.svgz">[clipart]</object>I came across the <a href="http://mix10k.visitmix.com/">MIX 10k Coding Challenge</a> on the weekend, and on a whim I decided to submit one of my old SVG demos to the contest.  The 10k challenge&#8217;s tagline is &#8220;What could you create for the Web if you had only 10 kilobytes of code?&#8221;.  The rules didn&#8217;t explicitly say I could use pure SVG, they mention SVG/Canvas in the context of HTML5 only, but I thought I&#8217;d give it a shot.  It&#8217;s in the spirit of the contest, after all.  At the very least it would encourage Microsoft to clarify the rules and at the very best it would be accepted and the rules updated to allow pure SVG applications.  Looks like it was my lucky day.<span id="more-551"></span></p>
<p>I decided to go with my <a href="http://codedread.com/solitaire.php">Solitaire</a> demo because it was the most complete, didn&#8217;t infringe on any copyrights (looking at you Tetris), and most visually recognizable.  It&#8217;s not the most innovative, but then again the point of this is not necessarily to win any prizes.  It&#8217;s really about increasing awareness.</p>
<p>Unfortunately, the SVG (26kb) and JavaScript (16kb + 21kb) totaled 63kb.  I did some cleanup of the SVG, minified the JS and then put the script inline with the SVG and then gzipped it.  The result was a .svgz file that was 9kb.  Perfect!</p>
<p>I then got an email from a friendly marketing/evangelism person at Microsoft who said that the engineers did not know how to open the svgz file to review the code to ensure it was under 10k.  Woops!  I explained to her that I thought it would be ok for the SVG to be gzipped, much as PNG/GIF files use compression and sent her the uncompressed SVG file for them to review.  After all, SVG is just an image format, right? <img src='http://www.codedread.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Was I following the rules?  Did Microsoft give me a fair shake?  <a href="http://mix10k.visitmix.com/Entry/Details/160">See for yourself</a>.  Who knows, maybe this is the first time a Microsoft admin had to figure out how to serve SVG on a Microsoft web server.</p>
<p>Out of curiosity, I later tried to see how far I was able to get down the Solitaire game: <a href="http://codedread.com/solitaire.svgz">5811 bytes</a>.  Not bad for a complete game that has scalable graphics.  I&#8217;d be curios to see the equivalent SWF file.</p>
<p>I don&#8217;t expect you to vote for my entry, but what I do expect you to do is now go out and submit .SVGZ entries to the MIX 10k challenge.  That one SVG entry is looking pretty lonely.  If I can get Solitaire down to 5811 bytes, surely you can do better?</p>
<p>Thanks a lot to Amy, the evangelist/marketing person who really was quite patient with me.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.codedread.com/blog/archives/2010/01/14/mix-10k-code-challenge-svg/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Just Ship It!</title>
		<link>http://www.codedread.com/blog/archives/2010/01/11/just-ship-it/</link>
		<comments>http://www.codedread.com/blog/archives/2010/01/11/just-ship-it/#comments</comments>
		<pubDate>Mon, 11 Jan 2010 20:31:29 +0000</pubDate>
		<dc:creator>Jeff</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[RIA]]></category>
		<category><![CDATA[SVG]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[comics]]></category>
		<category><![CDATA[svg-edit]]></category>

		<guid isPermaLink="false">http://blog.codedread.com/archives/2010/01/11/just-ship-it/</guid>
		<description><![CDATA[[clipart]So Alexis and wormsxulla and all the translators and anyone who opened a bug against SVG-edit should really just be proud, because SVG-edit 2.4, codenamed Arbelos, is now released.  Try out the DEMO now.
For those who have more time to kill, here are a couple screencasts I tried to make that demonstrate the new [...]]]></description>
			<content:encoded><![CDATA[<p><object type="image/svg+xml" width="100" height="100" style="float:right" data="http://codedread.com/clipart/svgedit.svgz">[clipart]</object>So <a href="http://a.deveria.com/">Alexis</a> and <a href="http://vertex.corpsmoderne.net/main.php?g2_itemId=114">wormsxulla</a> and all the translators and anyone who opened a bug against <a href="http://svg-edit.googlecode.com/">SVG-edit</a> should really just be proud, because SVG-edit 2.4, codenamed Arbelos, is now released.  Try out the <a href="http://svg-edit.googlecode.com/svn/branches/2.4/editor/svg-editor.html">DEMO</a> now.<span id="more-550"></span></p>
<p>For those who have more time to kill, here are a couple screencasts I tried to make that demonstrate the new features:</p>
<p><object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/zpC7b1ZJvvM&#038;hl=en_US&#038;fs=1&#038;"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/zpC7b1ZJvvM&#038;hl=en_US&#038;fs=1&#038;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object><object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/mDzZEoGUDe8&#038;hl=en_US&#038;fs=1&#038;"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/mDzZEoGUDe8&#038;hl=en_US&#038;fs=1&#038;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object></p>
<p>And there&#8217;s <a href="http://code.google.com/p/svg-edit/issues/list?can=2&#038;q=label%3ANeededFor-2.5">lots more</a> coming in SVG-edit 2.5 (codenamed Bicorn) that we&#8217;ll be talking about in the future.</p>
<p>To celebrate, here&#8217;s another comic I made using SVG-edit (<a href="http://www.codedread.com/comics/003.svgz">view full size</a>):</p>
<p><object type="image/svg+xml" data="http://www.codedread.com/comics/003.svgz" width="600" height="900"/></p>
]]></content:encoded>
			<wfw:commentRss>http://www.codedread.com/blog/archives/2010/01/11/just-ship-it/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Merry Christmas 2009!</title>
		<link>http://www.codedread.com/blog/archives/2009/12/24/merry-christmas-2009/</link>
		<comments>http://www.codedread.com/blog/archives/2009/12/24/merry-christmas-2009/#comments</comments>
		<pubDate>Fri, 25 Dec 2009 00:02:23 +0000</pubDate>
		<dc:creator>Jeff</dc:creator>
				<category><![CDATA[SVG]]></category>
		<category><![CDATA[SiteNews]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[holidays]]></category>
		<category><![CDATA[svg-edit]]></category>
		<category><![CDATA[xmas]]></category>

		<guid isPermaLink="false">http://blog.codedread.com/archives/2009/12/24/merry-christmas-2009/</guid>
		<description><![CDATA[[clipart]Turned on the Christmas CSS and released SVG-edit 2.4 Beta.  That should be enough  
Happy Holidays to all the folks out there and talk to you next year!
]]></description>
			<content:encoded><![CDATA[<p><object type="image/svg+xml" width="100" height="100" style="float:right" data="http://codedread.com/clipart/gift2.svgz">[clipart]</object>Turned on the Christmas CSS and released <a href="http://svg-edit.googlecode.com/svn-history/r1099/trunk/editor/svg-editor.html">SVG-edit 2.4 Beta</a>.  That should be enough <img src='http://www.codedread.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Happy Holidays to all the folks out there and talk to you next year!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.codedread.com/blog/archives/2009/12/24/merry-christmas-2009/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Now We Have A Party</title>
		<link>http://www.codedread.com/blog/archives/2009/09/20/now-we-have-a-party/</link>
		<comments>http://www.codedread.com/blog/archives/2009/09/20/now-we-have-a-party/#comments</comments>
		<pubDate>Sun, 20 Sep 2009 19:59:22 +0000</pubDate>
		<dc:creator>Jeff</dc:creator>
				<category><![CDATA[SVG]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[Microsoft]]></category>

		<guid isPermaLink="false">http://blog.codedread.com/archives/2009/09/20/now-we-have-a-party/</guid>
		<description><![CDATA[With the announcement of Microsoft sponsoring the SVG Open 2009 conference &#8211; we now have almost every browser manufacturer participating in some way with the conference.  That&#8217;s a pretty awesome achievement!
I think you should do your best to make it to this conference.  It&#8217;s Oct 2-4 in Mountain View, California (at the Google [...]]]></description>
			<content:encoded><![CDATA[<p><object style="float:right" type="image/svg+xml" width="100" height="100" data="http://codedread.com/clipart/svg.svgz"><span/></object>With the announcement of Microsoft sponsoring the <a href="http://svgopen.org/">SVG Open 2009</a> conference &#8211; we now have almost every browser manufacturer participating in some way with the conference.  That&#8217;s a pretty awesome achievement!<span id="more-544"></span></p>
<p><object type="image/svg+xml" width="100" height="100" style="float:right;clear:both" data="http://codedread.com/clipart/google.svgz"><span/></object>I think you should do your best to make it to this conference.  It&#8217;s Oct 2-4 in Mountain View, California (at the Google Crittenden Campus).  So just <a href="https://www.svgopen.org/2009/registration.shtml">register</a> already.  You don&#8217;t have much time.</p>
<p><object type="image/svg+xml" width="100" height="100" style="float:right;clear:both" data="http://codedread.com/clipart/opera.svgz"><span/></object>We&#8217;ve got keynotes by <a href="http://codinginparadise.org/">Brad Neuberg</a> of Google talking about the <a href="http://svgweb.googlecode.com/">SVG Web project</a>, <a href="http://my.opera.com/MacDev_ed/blog/">Erik Dahsltröm</a> of Opera and <a href="http://intertwingly.net/blog/">Sam Ruby</a>.  We&#8217;ve got talks on <a href="http://raphaeljs.com/">Raphaël</a>, <a href="http://www.amplesdk.com/">AmpleSDK</a>, and <a href="http://www.dojotoolkit.org/book/dojo-book-0-9/part-3-programmatic-dijit-and-dojo/drawing-gfx">dojo.gfx</a>.</p>
<p><object type="image/svg+xml" width="100" height="100" style="float:right;clear:both" data="http://codedread.com/clipart/mozilla.svgz"><span/></object>There will be panel discussions with Implementors (Mozilla, WebKit, Opera, and many others) and the <a href="http://www.w3.org/Graphics/SVG/">SVG Working Group</a>.  There are separate sessions on SVG in Opera, in Mozilla, in Android.</p>
<p><object type="image/svg+xml" width="100" height="100" style="float:right;clear:both" data="http://codedread.com/clipart/inkscape.svgz"><span/></object>There are talks about SVG usage in important web projects like <a href="http://wikipedia.org/">Wikipedia</a> and <a href="http://www.openstreetmap.org/">OpenStreetMap</a> as well as talks from tool makers such as <a href="http://inkscape.org/">Inkscape</a> and <a href="http://www.openoffice.org/">OpenOffice</a>.</p>
<p><object type="image/svg+xml" width="100" height="100" style="float:right;clear:both" data="http://codedread.com/clipart/smile.svgz"><span/></object>If you have an extra day, consider attending the <a href="https://www.svgopen.org/2009/registration.php?section=workshops">Workshops</a> on the Monday to get some hands-on experience with toolkits (the afore-mentioned Raphaël and Dojo.gfx), tools (Inkscape) and animation (SMIL) among others.</p>
<p><object type="image/svg+xml" width="100" height="100" style="float:right;clear:both" data="http://codedread.com/clipart/microsoft.svgz"><span/></object>And oh yeah, in case you missed it up top, I&#8217;ll say it again:  Microsoft is sponsoring and will be attending!  Microsoft has long been the sole hold-out among desktop browsers in supporting SVG.  So while Opera, Mozilla and others have long been supporters of SVG &#8211; it&#8217;s Microsoft&#8217;s sponsorship and attendance that might be seen as an eyebrow-raising event.  Let&#8217;s keep the speculation to a minimum, shall we?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.codedread.com/blog/archives/2009/09/20/now-we-have-a-party/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Busy Busy Busy</title>
		<link>http://www.codedread.com/blog/archives/2009/07/30/busy-busy-busy/</link>
		<comments>http://www.codedread.com/blog/archives/2009/07/30/busy-busy-busy/#comments</comments>
		<pubDate>Thu, 30 Jul 2009 22:52:20 +0000</pubDate>
		<dc:creator>Jeff</dc:creator>
				<category><![CDATA[SVG]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[planetsvg]]></category>
		<category><![CDATA[scour]]></category>
		<category><![CDATA[svg-edit]]></category>
		<category><![CDATA[svgopen]]></category>

		<guid isPermaLink="false">http://blog.codedread.com/archives/2009/07/30/busy-busy-busy/</guid>
		<description><![CDATA[There&#8217;s something comforting about coming back to your blog after spending so much time on Twitter and the like.  Twitter is great for learning about new things and sharing links quickly, but writing this entry in WordPress and not having to worry about a character limit feels&#8230; cozy.  I thought I&#8217;d come back [...]]]></description>
			<content:encoded><![CDATA[<p><object type="image/svg+xml" width="100" height="100" style="float:right" data="http://codedread.com/clipart/work.svgz"><span/></object>There&#8217;s something comforting about coming back to your blog after spending so much time on <a href="http://twitter.com/codedread">Twitter</a> and the like.  Twitter is great for learning about new things and sharing links quickly, but writing this entry in WordPress and not having to worry about a character limit feels&#8230; cozy.  I thought I&#8217;d come back to the blog and try to give an update on what I&#8217;ve been doing lately.</p>
<p>Despite the silence on the blog, I&#8217;ve actually been really busy with all sorts of different projects.  I think I&#8217;ve got my fingers in too many pies now.  And all of them happen to be related to <a href="http://www.w3.org/Graphics/SVG">Scalable Vector Graphics</a>.  How did this happen?<span id="more-541"></span></p>
<h3 id="svgedit">SVG-edit</h3>
<p><object type="image/svg+xml" width="100" height="100" style="float:right" data="http://codedread.com/clipart/svgedit.svgz"><span/></object>As <a href="http://blog.codedread.com/archives/2009/06/19/embed-an-svg-editor-on-your-web-page/">mentioned earlier</a> on my blog, in my spare time I&#8217;ve been hacking a little at <a href="http://svg-edit.googlecode.com/">SVG-edit</a> and its child project <a href="http://jgraduate.googlecode.com/">jGraduate</a>.  It&#8217;s now at a point on the SVG-edit trunk where you can actually pick a gradient for your stroke/fill, which is a pretty cool thing to see.</p>
<p>Other than myself, the list of active contributors to the project has dried up lately.  This is to be expected on open source projects.  So I&#8217;m looking for fresh blood to come into the project and implement some of the features we have planned for the <a href="http://code.google.com/p/svg-edit/issues/list?can=1&#038;q=label%3ANeededFor-2.3">2.3 release</a>.  The <a href="http://code.google.com/p/svg-edit/issues/detail?id=52&#038;can=1&#038;q=label%3ANeededFor-2.3&#038;colspec=ID%20Type%20Status%20Priority%20NeededFor%20Owner%20Summary">Align tool</a> would be a good place to start.</p>
<h3 id="scour">Scour</h3>
<p><object type="image/svg+xml" width="100" height="100" style="float:right" data="http://codedread.com/clipart/scour.svgz"><span/></object>I&#8217;ve also been continuing to plug at <a href="http://codedread.com/scour/">Scour</a> development, releasing version 0.16 of the script yesterday.  It&#8217;s starting to feel like diminishing returns lately on that front (i.e. a lot more number crunching and code going in and only marginal improvements to SVG file sizes).  This is expected.  I think the majority of features related to sane SVG reduction have been implemented. There are a couple big features I want to get to:</p>
<ul id="scourplans">
<li>Removing duplicate gradients <b>(Done in 0.17)</b></li>
<li>Removing redundant path segments after precision adjustment</li>
<li>Parsing CSS/style elements</li>
</ul>
<p>After that I&#8217;m expecting scour to go into a mostly bug-fix mode.  If you want to <a href="http://blueprints.launchpad.net/scour">propose additional features</a>, <a href="https://bugs.launchpad.net/scour">file bugs</a> or write some unit tests, please feel free to contribute!</p>
<h3 id="svgopen">SVG Open 2009</h3>
<p>Earlier this year I volunteered to help out with the <a href="http://svgopen.org/">SVG Open Conference</a>. Through some nice serendipity, we were able to get Google to host the event at their campus in Mountain View, California.  The theme is &#8220;SVG Coming of Age&#8221;.  There are some really cool talks and workshops planned for this October and maybe a couple of surprises so I hope to see you there.  I&#8217;ll be the tall guy pulling out what remains of his gray hair.</p>
<h3 id="planetsvg">Planet SVG</h3>
<p><object type="image/svg+xml" width="100" height="100" style="float:right" data="http://codedread.com/clipart/planetsvg.svgz"><span/></object>One of the things I&#8217;ll be talking about at the SVG Open is the <a href="http://www.planetsvg.com/">SVG community website</a> that some of us have been poking at for what seems like forever.  The site is &#8216;live&#8217; but there are many ongoing improvements I want to make to the site.  One of the recent updates was that a <a href="http://www.planetsvg.com/tools/scour/scra.py/form">web-based version of Scour</a> was added.  It&#8217;s not pretty yet, but it is functional.</p>
<p>So what are you working on?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.codedread.com/blog/archives/2009/07/30/busy-busy-busy/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Oh The Things You&#8217;ll Learn</title>
		<link>http://www.codedread.com/blog/archives/2009/06/27/oh-the-things-youll-learn/</link>
		<comments>http://www.codedread.com/blog/archives/2009/06/27/oh-the-things-youll-learn/#comments</comments>
		<pubDate>Sat, 27 Jun 2009 14:35:25 +0000</pubDate>
		<dc:creator>Jeff</dc:creator>
				<category><![CDATA[SVG]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[mozilla]]></category>
		<category><![CDATA[w3c]]></category>

		<guid isPermaLink="false">http://blog.codedread.com/archives/2009/06/27/oh-the-things-youll-learn/</guid>
		<description><![CDATA[I was playing around with a new project recently and wanted to figure out the complementary color of a given color.  All you need for this are the RGB values of the color for which you want to find the complement.
There are lots of ways of specifying a color on the Open Web:

rgb(255,0,0)
rgb(100%,0,0)
#FF0000
#F00
&#8220;red&#8221;

And it&#8217;s [...]]]></description>
			<content:encoded><![CDATA[<p><object type="image/svg+xml" width="100" height="100" style="float:right" data="http://codedread.com/clipart/html.svgz"><span/></object>I was playing around with a <a href="http://jgraduate.googlecode.com/">new project</a> recently and wanted to figure out the <a href="http://en.wikipedia.org/wiki/Complementary_color">complementary color</a> of a given color.  All you need for this are the RGB values of the color for which you want to find the complement.</p>
<p>There are lots of ways of specifying a color on the Open Web:</p>
<ul>
<li>rgb(255,0,0)</li>
<li>rgb(100%,0,0)</li>
<li>#FF0000</li>
<li>#F00</li>
<li>&#8220;red&#8221;</li>
</ul>
<p>And it&#8217;s not just the <a href="http://www.w3.org/TR/CSS2/syndata.html#color-units">17 CSS color names</a>, there are 147 cool-sounding extended color names like <a href="http://www.w3.org/TR/SVG/types.html#ColorKeywords">papayawhip</a>.  So given that a user can input a color in all sorts of ways, what&#8217;s the right way to do this? <span id="more-539"></span></p>
<h3>The Hard Way</h3>
<p>You can build a parser that determines the color format, parses hex and rgb strings and has a table that maps 147 strings to rgb triplets.  It turns out there are a lot of JavaScript libraries that already do this.  <a href="http://code.google.com/p/jquery-color-utils/">Here&#8217;s one</a>.</p>
<p>But then I thought:  why am I including yet another JavaScript library to do this parsing when the browser must already know how to map from hex, rgb or color name to an RGB triplet (or equivalent) in order to render the color in the first place?  Surely there&#8217;s a way to extract this directly out of the DOM?</p>
<h3>The DOM Way</h3>
<p>It turns out there is.  It&#8217;s called the <a href="http://www.w3.org/TR/DOM-Level-2-Style/Overview.html">CSS DOM</a> and I always seem to forget about this document.  Piecing together information from the <a href="http://www.w3.org/TR/SVG11/types.html#InterfaceSVGStylable">SVG</a> <a href="http://www.w3.org/TR/SVG11/types.html#InterfaceSVGColor">DOM</a> and the <a href="http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-RGBColor">CSS</a> <a href="http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSPrimitiveValue">DOM</a>, this is how you would get the red value of a fill attribute on a circle:</p>
<p><code>var red = someCircle.getPresentationAttribute("fill").rgbColor.red.getFloatValue(1);</code></p>
<p>That&#8217;s just a bit perverse, but at least it&#8217;s possible.</p>
<p>In testing this I was delighted to discover that Opera and WebKit let me do it.  Sadly, <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=500888">Firefox does not</a>.</p>
<h3>The Best-Laid Plans&#8230;</h3>
<p><object type="image/svg+xml" width="100" height="100" style="float:right" data="http://codedread.com/clipart/facepalm.svgz"><span/></object>Here&#8217;s where the plot thickens.  Seems like the CSS Working Group was chartered to produce a new version of the CSS DOM to make the interfaces less clunky.  Seems like the CSS WG sent out a notice <a href="http://lists.w3.org/Archives/Public/www-style/2003Oct/0347.html">strongly warning browsers</a> not to implement certain DOM interfaces in the CSS DOM.  Seems like it&#8217;s six years later and there&#8217;s no new document.</p>
<p>Unfortunately this is where my sad little tale ends.  <a href="http://twitter.com/erikdahlstrom/status/2357983806">Erik of Opera</a> suggests that the SVGT 1.2 uDOM is really the right way to do this.  It doesn&#8217;t matter that I agree with him because I don&#8217;t think Webkit or Mozilla have any interest in implementing this any time soon.</p>
<p>It seems kind of sad that folks have to write JavaScript libraries to do color parsing when the browsers already do this natively.  It also seems really weird that the SVG DOM interfaces extend obsolete CSS DOM interfaces (SVGColor extends CSSValue which Bert Bos mentions in his email).</p>
<p>#DOMFAIL ?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.codedread.com/blog/archives/2009/06/27/oh-the-things-youll-learn/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
	</channel>
</rss>
