<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-5541414252435605845</id><updated>2012-04-11T17:06:44.390-07:00</updated><category term='email'/><category term='music'/><category term='mozilla'/><category term='svg'/><category term='smil'/><category term='spam'/><category term='optimization'/><title type='text'>The Holbert Report</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://blog.dholbert.org/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5541414252435605845/posts/default/-/mozilla'/><link rel='alternate' type='text/html' href='http://blog.dholbert.org/search/label/mozilla'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Daniel</name><uri>http://www.blogger.com/profile/06625163638446776772</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://en.gravatar.com/avatar/bcdecf9f2f19e9928d7e7e59894913e3?s=80&amp;r=any'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>8</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-5541414252435605845.post-3755392225959890175</id><published>2011-03-22T09:17:00.000-07:00</published><updated>2011-03-22T09:30:02.336-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='svg'/><category scheme='http://www.blogger.com/atom/ns#' term='mozilla'/><title type='text'>Using SVG to make a lightweight Firefox 4 theme</title><content type='html'>To celebrate the &lt;a href="http://blog.mozilla.com/blog/2011/03/22/mozilla-launches-firefox-4-and-delivers-a-fast-sleek-and-customizable-browsing-experience-to-more-than-400-million-users-worldwide-2/"&gt;release of Firefox 4&lt;/a&gt;, I've made available a demo &lt;a href="https://people.mozilla.com/~dholbert/personas/"&gt;persona using SVG images&lt;/a&gt;!&lt;br /&gt;&lt;br /&gt;As far as I know, the official &lt;a href="https://www.getpersonas.com"&gt;GetPersonas&lt;/a&gt; website &lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=605666"&gt;doesn't yet accept SVG-backed personas&lt;/a&gt;, but thanks to &lt;a href="http://blog.mozilla.com/dolske/2011/03/21/regarding-the-radio-star/"&gt;dolske's recent blog post&lt;/a&gt;, I learned how to host an installable SVG-backed persona on my own web space.&lt;br /&gt;&lt;br /&gt;So if you're running Firefox 4 (&lt;a href="http://www.mozilla.com/?from=sfx&amp;uid=242564&amp;t=557"&gt;you are, right?&lt;/a&gt;), then go ahead and &lt;a href="https://people.mozilla.com/~dholbert/personas/"&gt;give my SVG-backed persona a try&lt;/a&gt;!  Make sure to enable the Add-on bar ('View' menu | Toolbars | Add-on Bar) to get the full effect.  I don't recommend leaving this persona applied for very long, though, lest its continuous animations feast on your CPU and battery. :)&lt;br /&gt;&lt;br /&gt;I look forward to seeing &lt;b&gt;even prettier&lt;/b&gt; SVG-backed personas from others whose design skills are far superior to mine!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5541414252435605845-3755392225959890175?l=blog.dholbert.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.dholbert.org/feeds/3755392225959890175/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5541414252435605845&amp;postID=3755392225959890175' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5541414252435605845/posts/default/3755392225959890175'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5541414252435605845/posts/default/3755392225959890175'/><link rel='alternate' type='text/html' href='http://blog.dholbert.org/2011/03/using-svg-to-make-lightweight-firefox-4.html' title='Using SVG to make a lightweight Firefox 4 theme'/><author><name>Daniel</name><uri>http://www.blogger.com/profile/06625163638446776772</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://en.gravatar.com/avatar/bcdecf9f2f19e9928d7e7e59894913e3?s=80&amp;r=any'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5541414252435605845.post-9000961196072728040</id><published>2010-10-20T11:19:00.000-07:00</published><updated>2010-10-20T11:19:23.126-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='svg'/><category scheme='http://www.blogger.com/atom/ns#' term='mozilla'/><title type='text'>SVG as an image</title><content type='html'>As of about a month ago, &lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=276431"&gt;SVG files can now be used as images&lt;/a&gt; in Firefox 4.0 &lt;a href="http://nightly.mozilla.org/"&gt;nightly builds&lt;/a&gt;!  This will be included in the next Firefox 4.0 beta iteration (beta 7), when that's released.&lt;br /&gt;&lt;br /&gt;This feature is exciting for many reasons:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Better-scaling web graphics -- unlike raster images (e.g. JPEG/GIF/PNG), SVG images can be scaled up or down without pixellation. This makes SVG ideal for web developers who want their content to look crisp on giant projector-screens as well as tiny phone screens.&lt;/li&gt;&lt;li&gt;SMIL animation in images -- SVG allows for very complex &amp;amp; expressive animations (see &lt;a href="http://brian.sol1.net/svg/2010/10/13/its-about-time/"&gt;Brian Birtles' recent post&lt;/a&gt; for a number of great examples).&lt;/li&gt;&lt;li&gt;Reduced web-developer frustration -- from an author's perspective, SVG is an image format, and it should Just Work in contexts that expect an image.&lt;/li&gt;&lt;li&gt;Broader use of SVG!&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;For your viewing pleasure, here are some demos of SVG-as-an-image in a variety of situations: &lt;br /&gt;&lt;ul style="list-style-image: url(http://people.mozilla.org/~dholbert/demos/svgAsImg/svg-logo.svg);"&gt;&lt;li&gt;In the &amp;lt;img&amp;gt; tag:&lt;/li&gt;&lt;img alt="img tag sourcing an SVG image" src="http://people.mozilla.org/%7Edholbert/demos/svgAsImg/fish.svg" /&gt;&lt;li&gt;As a CSS background:&lt;/li&gt;&lt;div style="background-image: url('http://people.mozilla.org/~dholbert/demos/svgAsImg/background-tile.svg'); border: 2px solid black; font-size: 35px; height: 200px; line-height: 35px; width: 300px;"&gt;This is a div with a tiled SVG image as its background.&lt;/div&gt;&lt;li&gt;In the &lt;a href="https://developer.mozilla.org/en/Canvas_tutorial"&gt;HTML5 canvas element&lt;/a&gt;, with a rotation applied via the 2D canvas API:&lt;/li&gt;&lt;canvas height="100" id="canvas" title="Thanks to clker.com for this clip art, from http://www.clker.com/clipart-cartoon-penguin-1.html" width="200"&gt;&lt;/canvas&gt; &lt;script&gt; setupCanvas();  function setupCanvas() {    var canvas = document.getElementById("canvas");    var ctx = canvas.getContext("2d");    ctx.fillStyle = "orange";    ctx.fillRect(0, 0, 100, 100);    var image = new Image();    image.onload = function() {      ctx.translate(50,-20);    // Translate so the image falls entirely on canvas's visible                                // region after our rotate operation.      ctx.rotate(Math.PI / 4);  // Rotate!      ctx.drawImage(image, 0, 0); // Paint the image.    }    image.src ="http://people.mozilla.org/~dholbert/demos/svgAsImg/cartoon_penguin.svg";  } &lt;/script&gt;&lt;li&gt;&amp;lt;---- And here, as a CSS list-style-image!  (That's the SVG version of the &lt;a href="http://www.w3.org/2009/08/svg-logos.html"&gt;W3C's SVG logo&lt;/a&gt;.)&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;As one last example, I hacked together a Firefox Persona using SMIL-animated SVG images as backgrounds for Firefox's toolbar &amp;amp; addon bar.  I wasn't able to publish it to the &lt;a href="https://www.getpersonas.com/"&gt;GetPersonas site&lt;/a&gt;, because the uploader page there &lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=605666"&gt;doesn't accept SVG images yet&lt;/a&gt; -- so instead, I've included a small screencast:&lt;br /&gt;&lt;video controls="controls" height="350" src="http://people.mozilla.org/%7Edholbert/demos/svgPersona/v01/screencast.ogv" width="350"&gt;&lt;/video&gt;&lt;br /&gt;&lt;a href="http://people.mozilla.org/%7Edholbert/demos/svgPersona/v01/screencast.ogv"&gt;Click here to view full-size video&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The SVG files used for backgrounds in this Persona are available &lt;a href="http://people.mozilla.org/%7Edholbert/demos/svgPersona/v01/"&gt;here&lt;/a&gt;.  The header SVG file makes use of a locally-saved copy of &lt;a href="http://svg.kvalitne.cz/"&gt;Marek Raida&lt;/a&gt;'s excellent &lt;a href="http://svg.kvalitne.cz/hourglass/hourglass.svg"&gt;hourglass demo&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;There are some bugs with this feature that I'm still working out -- for example, you may &lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=600207"&gt;get pixellation at certain unlucky zoom-levels&lt;/a&gt; -- but that will be fixed for the final release.  If you run into other issues, please file bugs! :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5541414252435605845-9000961196072728040?l=blog.dholbert.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.dholbert.org/feeds/9000961196072728040/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5541414252435605845&amp;postID=9000961196072728040' title='12 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5541414252435605845/posts/default/9000961196072728040'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5541414252435605845/posts/default/9000961196072728040'/><link rel='alternate' type='text/html' href='http://blog.dholbert.org/2010/10/svg-as-image.html' title='SVG as an image'/><author><name>Daniel</name><uri>http://www.blogger.com/profile/06625163638446776772</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://en.gravatar.com/avatar/bcdecf9f2f19e9928d7e7e59894913e3?s=80&amp;r=any'/></author><thr:total>12</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5541414252435605845.post-1754335294216808570</id><published>2010-04-29T16:39:00.000-07:00</published><updated>2010-04-29T18:01:17.191-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='smil'/><category scheme='http://www.blogger.com/atom/ns#' term='mozilla'/><title type='text'>Mozilla gets &lt;animateMotion&gt;!</title><content type='html'>Yesterday afternoon, I &lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=436418#c70"&gt;checked in&lt;/a&gt; support for the &lt;a href="http://www.w3.org/TR/SVG11/animate.html#AnimateMotionElement"&gt;&amp;lt;animateMotion&amp;gt; SVG element&lt;/a&gt;, so that feature is supported in this morning's &lt;a href="http://nightly.mozilla.org/"&gt;nightly build&lt;/a&gt;!&lt;br /&gt;&lt;br /&gt;The &amp;lt;animateMotion&amp;gt; element allows for much more flexibility in SVG animations.  Mozilla's nightly builds have supported animation of most SVG attributes and properties for a while now, but &amp;lt;animateMotion&amp;gt; gives authors the added ability to effortlessly animate an element to move along any arbitrary path.&lt;br /&gt;&lt;br /&gt;I've written a simple &lt;a href="http://people.mozilla.org/~dholbert/demos/rocketMotion/01/rocketMotion.svg"&gt;Rocket Demo&lt;/a&gt; to give an example of the types of things you can do with this. This demo depicts the sad cartoony story of a rocket that gets hit by an asteroid, loses power to its boosters, and slowly falls into the sun.  The demo uses no Javascript at all, and it uses &amp;lt;animateMotion&amp;gt; to define the motion-paths of all of the moving elements.  I've tested the demo in Opera, Firefox-nightly, and Chromium nightly -- a few things don't work in Chromium, but it works great in the other two browsers. (Thanks to &lt;a href="http://www.clker.com/"&gt;clker.com&lt;/a&gt; for some public-domain SVG clip art that I use in the demo.)&lt;br /&gt;&lt;br /&gt;Marek Raida (a wizard of SVG demos, and the author of the "Cavern Fighter" game that I linked to a few posts back) has come up with two excellent &amp;lt;animateMotion&amp;gt; demos as well: "&lt;a href="http://svg.kvalitne.cz/drawinganimals/drawinganimals.svg"&gt;Drawing Animals&lt;/a&gt;" and "&lt;a href="http://svg.kvalitne.cz/mousecatch/mousecatch-wo.svg"&gt;Catch the Mouse&lt;/a&gt;."  Both are linked off of hist latest &lt;a href="http://svg.kvalitne.cz/"&gt;blog post&lt;/a&gt;.  (Note: He's also got a &lt;a href="http://svg.kvalitne.cz/mousecatch/mousecatch.svg"&gt;fancier version&lt;/a&gt; of the "Catch the Mouse" demo where the mouse's footprints slowly disappear, but Firefox nightly builds are currently a bit choppy on that version, due to &lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=562815"&gt;some code&lt;/a&gt; we should probably optimize for SMIL animation of CSS properties.)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5541414252435605845-1754335294216808570?l=blog.dholbert.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.dholbert.org/feeds/1754335294216808570/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5541414252435605845&amp;postID=1754335294216808570' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5541414252435605845/posts/default/1754335294216808570'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5541414252435605845/posts/default/1754335294216808570'/><link rel='alternate' type='text/html' href='http://blog.dholbert.org/2010/04/mozilla-gets.html' title='Mozilla gets &amp;lt;animateMotion&amp;gt;!'/><author><name>Daniel</name><uri>http://www.blogger.com/profile/06625163638446776772</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://en.gravatar.com/avatar/bcdecf9f2f19e9928d7e7e59894913e3?s=80&amp;r=any'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5541414252435605845.post-2197725044968072655</id><published>2009-12-09T23:10:00.000-08:00</published><updated>2009-12-09T23:53:21.845-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='smil'/><category scheme='http://www.blogger.com/atom/ns#' term='mozilla'/><title type='text'>SVG/SMIL "Dock" Demo</title><content type='html'>Today, I decided to see what what it'd be like to make an MacOS-style "dock" in SVG, using SMIL &lt;code&gt;&amp;lt;animateTransform&amp;gt;&lt;/code&gt; elements to achieve the zooming hover effects.&lt;br /&gt;&lt;br /&gt;Once I got that working, I felt like I really should make the icons do something useful when you click them.  So, I hooked them up to control an embedded iframe.&lt;br /&gt;&lt;br /&gt;Here's the result:  &lt;a href="http://people.mozilla.org/~dholbert/demos/smildock/01/smildock.svg"&gt;SMIL Dock&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Screenshot:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_jjmaukN7V_c/SyCkeM1u9XI/AAAAAAAAAsI/5WE0xFqrF0I/s1600-h/smildock_screenshot.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 346px;" src="http://1.bp.blogspot.com/_jjmaukN7V_c/SyCkeM1u9XI/AAAAAAAAAsI/5WE0xFqrF0I/s400/smildock_screenshot.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5413507590848968050" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Screencast:&lt;br /&gt;&lt;video controls="true" width="400" src="http://people.mozilla.org/~dholbert/demos/smildock/01/smildock_screencast.ogv"&gt;&lt;/video&gt;&lt;br /&gt;&lt;br /&gt;(Note that &lt;a href="http://people.mozilla.org/~dholbert/demos/smildock/01/smildock.svg"&gt;the demo&lt;/a&gt; will only do anything useful in a mozilla-central nightly build -- that is, Firefox 3.7 / Gecko 1.9.3 -- since earlier versions don't have support for SMIL.)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5541414252435605845-2197725044968072655?l=blog.dholbert.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.dholbert.org/feeds/2197725044968072655/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5541414252435605845&amp;postID=2197725044968072655' title='10 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5541414252435605845/posts/default/2197725044968072655'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5541414252435605845/posts/default/2197725044968072655'/><link rel='alternate' type='text/html' href='http://blog.dholbert.org/2009/12/svgsmil-dock-demo.html' title='SVG/SMIL &quot;Dock&quot; Demo'/><author><name>Daniel</name><uri>http://www.blogger.com/profile/06625163638446776772</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://en.gravatar.com/avatar/bcdecf9f2f19e9928d7e7e59894913e3?s=80&amp;r=any'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_jjmaukN7V_c/SyCkeM1u9XI/AAAAAAAAAsI/5WE0xFqrF0I/s72-c/smildock_screenshot.png' height='72' width='72'/><thr:total>10</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5541414252435605845.post-1937207567025818400</id><published>2009-12-08T09:55:00.000-08:00</published><updated>2009-12-08T10:43:27.711-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='smil'/><category scheme='http://www.blogger.com/atom/ns#' term='mozilla'/><title type='text'>SVG Animation in Action: Marek Raida's "SVG Cavern Fighter" Game</title><content type='html'>&lt;a style="" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://svg.kvalitne.cz/cavern/086/cavern.svg"&gt;&lt;img style="float: right; margin: 0pt 0pt 10px 10px; cursor: pointer; width: 320px; height: 229px;" src="http://1.bp.blogspot.com/_jjmaukN7V_c/Sx6ZjZsTTyI/AAAAAAAAAr4/5cWm47l4Juo/s320/cavern.png" alt="" id="BLOGGER_PHOTO_ID_5412932635617087266" border="0" /&gt;&lt;/a&gt;Marek Raida has come up with another beautiful demo that shows off the power of SVG.  This one's called &lt;a href="http://svg.kvalitne.cz/cavern/086/cavern.svg"&gt;SVG Cavern Fighter&lt;/a&gt;, and it's a classic side-scrolling shoot-em-up type game, with enemies and items that pulse and wiggle.  The game logic is written in Javascript, and the enemy/item animations are all done with SMIL.&lt;br /&gt;&lt;br /&gt;It looks really great (and it's quite fun to play) in &lt;a href="http://ftp.mozilla.org/pub/mozilla.org/firefox/nightly/latest-trunk/"&gt;mozilla-central nightly builds&lt;/a&gt;!  (In earlier Firefox versions, with no SMIL support, the game logic still mostly works, but the enemies and items won't animate.)&lt;br /&gt;&lt;br /&gt;Marek's been iterating on this game pretty rapidly, adding new features and fixing bugs every few days.  His latest version will always be linked from &lt;a href="http://svg.kvalitne.cz/"&gt;his blog&lt;/a&gt;. Give it a try, and send him any feedback that you might have!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5541414252435605845-1937207567025818400?l=blog.dholbert.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.dholbert.org/feeds/1937207567025818400/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5541414252435605845&amp;postID=1937207567025818400' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5541414252435605845/posts/default/1937207567025818400'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5541414252435605845/posts/default/1937207567025818400'/><link rel='alternate' type='text/html' href='http://blog.dholbert.org/2009/12/svg-animation-in-action-marek-raidas.html' title='SVG Animation in Action: Marek Raida&apos;s &quot;SVG Cavern Fighter&quot; Game'/><author><name>Daniel</name><uri>http://www.blogger.com/profile/06625163638446776772</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://en.gravatar.com/avatar/bcdecf9f2f19e9928d7e7e59894913e3?s=80&amp;r=any'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_jjmaukN7V_c/Sx6ZjZsTTyI/AAAAAAAAAr4/5cWm47l4Juo/s72-c/cavern.png' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5541414252435605845.post-643068382877833785</id><published>2009-10-26T16:03:00.000-07:00</published><updated>2009-10-26T18:53:50.074-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mozilla'/><title type='text'>SMIL enabled by default on nightly builds!</title><content type='html'>Good news: SVG Animation (SMIL) support is now &lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=482402"&gt;enabled by default&lt;/a&gt; in &lt;a href="http://ftp.mozilla.org/pub/mozilla.org/firefox/nightly/latest-trunk/"&gt;mozilla-central nightly builds&lt;/a&gt;!&lt;br /&gt;&lt;br /&gt;SMIL support has actually been built into our nightlies for some time now, but until last week, it was turned off by default, using an about:config preference.  But we're confident that it will be ready to ship in Firefox 3.7 and that it's stable enough for our nightly testers to give it a spin, so we've flipped the switch!&lt;br /&gt;&lt;br /&gt;&lt;a href="http://brian.sol1.net/svg/"&gt;Brian Birtles&lt;/a&gt; has a nice &lt;a href="http://brian.sol1.net/svg/status.php"&gt;status page&lt;/a&gt;, documenting what currently works and what's not yet supported.&lt;br /&gt;&lt;br /&gt;In particular, SMIL animation now works for most SVG-recognized CSS properties. Colors, numeric values like opacities &amp;amp; lengths, and enumerated values should all work, and I'm working on remaining types (see below).  With support for CSS properties, we can make much prettier animations now, with flashing colors and fade-in using opacity -- for example, &lt;a href="http://people.mozilla.org/%7Edholbert/tests/smil/demos/clouds_v1a.svg"&gt;this simple demo&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://svg.kvalitne.cz/index2.htm"&gt;Marek Raida&lt;/a&gt; has some fun demos on his blog, too -- I especially like the &lt;a href="http://svg.kvalitne.cz/ghost/spirit.svg"&gt;'good spirit' animation&lt;/a&gt; and the &lt;a href="http://svg.kvalitne.cz/digg/cubes_step7fin.svg"&gt;'digging' animation&lt;/a&gt; (which requires scripting for handling mouse events).&lt;br /&gt;&lt;br /&gt;Here's what's on the immediate roadmap for people working on SMIL:&lt;br /&gt;&lt;ul&gt;&lt;br /&gt; &lt;li&gt;&lt;span style="font-weight: bold;"&gt;dholbert&lt;/span&gt;: Finish off support for CSS properties (&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=520239"&gt;bug 520239&lt;/a&gt;, &lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=520487"&gt;bug 520487&lt;/a&gt;, &lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=520488"&gt;bug 520488&lt;/a&gt;)&lt;/li&gt;&lt;br /&gt; &lt;li&gt;&lt;span style="font-weight: bold;"&gt;jwatt&lt;/span&gt;: Support more SVG properties (e.g. &lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=522267"&gt;bug 522267&lt;/a&gt;)&lt;/li&gt;&lt;br /&gt; &lt;li&gt;&lt;span style="font-weight: bold;"&gt;birtles&lt;/span&gt;: Support syncbase timing - that is, animations whose start/end times are dependent on other animations. (&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=474743"&gt;bug 474743&lt;/a&gt;)&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;So, play away! I'm looking forward to feedback from nightly testers.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5541414252435605845-643068382877833785?l=blog.dholbert.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.dholbert.org/feeds/643068382877833785/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5541414252435605845&amp;postID=643068382877833785' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5541414252435605845/posts/default/643068382877833785'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5541414252435605845/posts/default/643068382877833785'/><link rel='alternate' type='text/html' href='http://blog.dholbert.org/2009/10/smil-enabled-by-default-on-nightly.html' title='SMIL enabled by default on nightly builds!'/><author><name>Daniel</name><uri>http://www.blogger.com/profile/06625163638446776772</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://en.gravatar.com/avatar/bcdecf9f2f19e9928d7e7e59894913e3?s=80&amp;r=any'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5541414252435605845.post-1137419906771179317</id><published>2009-01-16T11:35:00.000-08:00</published><updated>2009-01-16T16:31:58.687-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='smil'/><category scheme='http://www.blogger.com/atom/ns#' term='mozilla'/><title type='text'>SVG Animation (SMIL) support has landed!</title><content type='html'>Great news: support for &lt;a href="http://www.w3.org/TR/SVG/animate.html"&gt;SVG Animation&lt;/a&gt; (using SMIL) has now &lt;a href="http://hg.mozilla.org/mozilla-central/rev/ed15cc897a16"&gt;landed in mozilla-central&lt;/a&gt;!  Zbigniew Braniecki has posted a nice &lt;a href="http://diary.braniecki.net/2009/01/15/smil-got-sr/"&gt;summary&lt;/a&gt; of the history of this feature's development at Mozilla.&lt;br /&gt;&lt;br /&gt;Great thanks to &lt;a href="http://brian.sol1.net/svg/"&gt;Brian Birtles&lt;/a&gt; for his excellent work on this patch (both in its early days and also during his Mozilla internship thus far), to &lt;a href="http://weblogs.mozillazine.org/roc/"&gt;Robert O'Callahan&lt;/a&gt; for his very thorough code-reviews, to &lt;a href="http://weblogs.mozillazine.org/tor/"&gt;Tim Rowley&lt;/a&gt; for keeping the patch up-to-date for so long, to &lt;a href="http://www.blogger.com/www.bluishcoder.co.nz"&gt;Chris Double&lt;/a&gt; for his work on fixing crashes &amp;amp; adding features, and to &lt;a href="http://blog.codedread.com/"&gt;Jeff Schiller&lt;/a&gt; for his moral support and patch-testing!&lt;br /&gt;&lt;br /&gt;Now that SMIL has landed...&lt;br /&gt;&lt;ul&gt;&lt;li&gt;We can do &lt;a href="http://brian.sol1.net/svg/tests/keytimes.html"&gt;really&lt;/a&gt; &lt;a href="http://brian.sol1.net/svg/tests/accumulate.html"&gt;sweet&lt;/a&gt; &lt;a href="http://brian.sol1.net/svg/tests/frozen-to-animation.html"&gt;animations&lt;/a&gt; directly in the browser, without any Javascript or Flash required. :)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;We have improved support for the &lt;a href="http://www.w3.org/TR/SVG11/"&gt;SVG specification&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;We win two more points on the &lt;a href="http://acid3.acidtests.org/"&gt;Acid3 Test&lt;/a&gt; (in smil-enabled builds)  for a total score of 95.&lt;/li&gt;&lt;/ul&gt;A few caveats:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;This is mostly an initial framework for us to build upon, so it's still missing a number of key features (which will enable yet-more-awesome animations).&lt;br /&gt;&lt;/li&gt;&lt;li&gt;By default, the SMIL code is disabled via a build-time flag (see &lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=473705"&gt;Bug 473705&lt;/a&gt;), so it's not included in nightly builds yet.  (That will hopefully change as soon as we've got an about:config flag set up.)&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;For anyone interested in trying this out, give the &lt;a href="https://build.mozilla.org/tryserver-builds/2009-01-14_20:59-dholbert@mozilla.com-try-6f0b198ab0f/"&gt;tryserver build&lt;/a&gt; a spin!  Or, if you compile your own builds, you can enable SMIL by adding "ac_add_options --enable-smil" to your .mozconfig file.&lt;br /&gt;&lt;br /&gt;On my list of things to fix soon:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=473904"&gt;Bug 473904&lt;/a&gt;: Add an about:config toggle SMIL support&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=474049"&gt;Bug 474049&lt;/a&gt;: Add support for animating CSS properties&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5541414252435605845-1137419906771179317?l=blog.dholbert.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.dholbert.org/feeds/1137419906771179317/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5541414252435605845&amp;postID=1137419906771179317' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5541414252435605845/posts/default/1137419906771179317'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5541414252435605845/posts/default/1137419906771179317'/><link rel='alternate' type='text/html' href='http://blog.dholbert.org/2009/01/smil-support-has-landed.html' title='SVG Animation (SMIL) support has landed!'/><author><name>Daniel</name><uri>http://www.blogger.com/profile/06625163638446776772</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://en.gravatar.com/avatar/bcdecf9f2f19e9928d7e7e59894913e3?s=80&amp;r=any'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5541414252435605845.post-1786034705116292983</id><published>2008-09-02T15:09:00.000-07:00</published><updated>2009-10-14T16:36:08.414-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='optimization'/><category scheme='http://www.blogger.com/atom/ns#' term='mozilla'/><title type='text'>ccache = much speedier Firefox builds</title><content type='html'>I just discovered the awesome tool "ccache". I wish I'd known about it long ago -- it drastically speeds up Firefox rebuilds.  From its man page, ccache "speeds up re-compilation of C/C++ code by caching previous compiles and detecting when the same compile is being done again."&lt;br /&gt;&lt;br /&gt;I figured I'd share my ccache setup under Ubuntu Linux, in case anyone else wants to use it.  (This is based on Darin Fisher's setup, from his &lt;a href="http://weblogs.mozillazine.org/darin/archives/005504.html"&gt;ccache post back in 2004&lt;/a&gt;.)&lt;br /&gt;&lt;br /&gt;Install ccache:&lt;br /&gt;&lt;blockquote&gt;sudo apt-get install ccache&lt;/blockquote&gt;&lt;br /&gt;Add these to ~/.bashrc:&lt;br /&gt;&lt;blockquote&gt;export CCACHE_DIR=/scratch/work/builds/.ccache&lt;br /&gt;export CCACHE_HARDLINK=1&lt;br /&gt;export CC="ccache gcc"&lt;br /&gt;export CXX="ccache g++"&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;(Note that "/scratch/work/builds/.ccache" is just an empty directory on the partition where I intend to build Firefox.  You'll probably want to replace that with something else -- or you can remove that line to get the default location, $HOME/.ccache)&lt;br /&gt;&lt;br /&gt;Then, source that file (to make sure $CCACHE_DIR is defined) and initialize your cache with a largish maximum size (2 gigs):&lt;blockquote&gt;source ~/.bashrc&lt;br /&gt;ccache -M 2G&lt;br /&gt;&lt;/blockquote&gt;And you're done!  The next time you do a "make -f client.mk build", you should see "ccache g++" in place of "g++" in the output, and your .ccache folder should start to grow in size.&lt;br /&gt;&lt;br /&gt;I tested ccache's performance by doing an initial build of Firefox trunk (to populate the cache), deleting that build, and then doing a second full build (to make use of the cache).  I timed the second build, to see how much the caching helped.&lt;br /&gt;&lt;br /&gt;On my work machine, ccache reduced build time from 22 to 11 minutes. And on my home machine, ccache reduced build time from 12 to &lt;span style="font-weight: bold;"&gt;4 minutes&lt;/span&gt;!  (Compare that to &lt;a href="http://xrayon.blogspot.com/2007/09/firefox-3-built-on-windows-now-building.html"&gt;multi-hour build times on Windows&lt;/a&gt;. :) )&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5541414252435605845-1786034705116292983?l=blog.dholbert.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.dholbert.org/feeds/1786034705116292983/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5541414252435605845&amp;postID=1786034705116292983' title='9 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5541414252435605845/posts/default/1786034705116292983'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5541414252435605845/posts/default/1786034705116292983'/><link rel='alternate' type='text/html' href='http://blog.dholbert.org/2008/09/ccache-much-speedier-firefox-builds.html' title='ccache = much speedier Firefox builds'/><author><name>Daniel</name><uri>http://www.blogger.com/profile/06625163638446776772</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://en.gravatar.com/avatar/bcdecf9f2f19e9928d7e7e59894913e3?s=80&amp;r=any'/></author><thr:total>9</thr:total></entry></feed>
