<?xml version='1.0' encoding='UTF-8'?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/'><id>tag:blogger.com,1999:blog-7360043960312045726</id><updated>2007-09-02T09:05:43.892+01:00</updated><title type='text'>The Fuchsia Design</title><link rel='alternate' type='text/html' href='http://the.fuchsia-design.com/'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7360043960312045726/posts/default'/><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://the.fuchsia-design.com/atom.xml'/><author><name>Antoine Quint</name></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>16</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-7360043960312045726.post-6562953338008389733</id><published>2007-06-27T22:12:00.000+01:00</published><updated>2007-06-27T23:34:30.145+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='webkit'/><category scheme='http://www.blogger.com/atom/ns#' term='svg'/><category scheme='http://www.blogger.com/atom/ns#' term='canvas'/><category scheme='http://www.blogger.com/atom/ns#' term='wwdc'/><title type='text'>WWDC 2007 WebKit SVG Demos</title><content type='html'>&lt;p&gt;
&lt;a href="http://flickr.com/photos/graouts/581345675/" class="no-decoration"&gt;&lt;img class="no-decoration" style="float: right; padding-left: 10px; padding-bottom: 10px;" src="http://farm2.static.flickr.com/1379/581345675_6d101626e4.jpg" alt="Shake and bake!"/&gt;&lt;/a&gt;Following an invitation from Apple, &lt;a href="http://grorg.org/"&gt;Dean Jackson&lt;/a&gt; and myself joined the crowds of developers who participated at &lt;a href="http://developer.apple.com/wwdc/"&gt;WWDC 2007&lt;/a&gt; to co-present two sessions about the latest advanced of the WebKit Web rendering engine, focusing first on vector graphics and then on rich media. Unfortunately, all the contents of the sessions were under the WWDC NDA and we won't be able to discuss the exact points that were delivered to the audience. We can however share the demos that we presented there as these do not require any specific software covered by the NDA, indeed they'll run just fine in a recent &lt;a href="http://nightly.webkit.org/"&gt;WebKit nightly&lt;/a&gt; or even the recent &lt;a href="http://www.apple.com/safari/download/"&gt;Safari 3&lt;/a&gt; beta for Mac OS X. The demos presented were:
&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;A scalable search box user interface widget combining XHTML, CSS and SVG&lt;/li&gt;
  &lt;li&gt;Animated graphs generated from SVG.org Google Analytics data feeds using AJAX and SVG&lt;/li&gt;
  &lt;li&gt;Rich media Web interface for a Delicious Library database using XHTML, CSS and SVG&lt;/li&gt;
  &lt;li&gt;A simple set of introductory demos to the &lt;code&gt;&amp;lt;canvas&amp;gt;&lt;/code&gt; APIs&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
We will be putting up more information, such as screencasts and cleaned-up code, in the future but in the spirit of getting something out there in a timely manner, you can now get most of the demos wrapped in a single &lt;a href="http://cuboidal.org/wwdc2007/wwdc-2007-webkit-svg-demos.zip"&gt;archive with all the code&lt;/a&gt; and various data resources. The code is covered by the &lt;a href="http://www.opensource.org/licenses/mit-license.php"&gt;MIT license&lt;/a&gt;, for more details see the &lt;code&gt;LICENSE.txt&lt;/code&gt; file in the package. Also, make sure you read the &lt;code&gt;README.txt&lt;/code&gt; as some demos require you to do a tiny bit of work to get them to work.
&lt;/p&gt;
&lt;p&gt;
Feel free to use the commenting system to share any issue that you may have with this code, Dean and I will make sure anyone who wants to check it out actually gets the code running. Shake and bake!
&lt;/p&gt;</content><link rel='alternate' type='text/html' href='http://the.fuchsia-design.com/2007/06/wwdc-2007-webkit-svg-demos.html' title='WWDC 2007 WebKit SVG Demos'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7360043960312045726&amp;postID=6562953338008389733' title='5 Comments'/><link rel='replies' type='application/atom+xml' href='http://the.fuchsia-design.com/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7360043960312045726/posts/default/6562953338008389733'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7360043960312045726/posts/default/6562953338008389733'/><author><name>Antoine Quint</name></author></entry><entry><id>tag:blogger.com,1999:blog-7360043960312045726.post-3702918962749222208</id><published>2007-02-28T22:03:00.000+01:00</published><updated>2007-03-07T04:21:45.791+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='svg'/><category scheme='http://www.blogger.com/atom/ns#' term='momo'/><category scheme='http://www.blogger.com/atom/ns#' term='conferences'/><title type='text'>Speaking Engagements</title><content type='html'>&lt;p&gt;
Following January's &lt;a href="http://the.fuchsia-design.com/2007/01/rich-mobile-experiences-with-svg-series.html" title="Rich Mobile Experiences with SVG Series"&gt;Mobile SVG extravaganza&lt;/a&gt; in New York City, I'll be speaking about SVG a few times in the coming months. First off, I'm flying out to Sydney to attend the first W3C SVG WG meeting of 2007, and incidentally speak briefly about Rich Mobile Experiences with SVG at &lt;a href="http://www.mobilemondaysydney.com/"&gt;MoMo Sydney&lt;/a&gt;, where some fellow Working Group members (Nandini Ramani from Sun, Andrew Emmons from BitFlash and Andrew Sledd from Ikivo) should be lending a hand presenting some very nice services that have been shipping in the last few weeks. Fast forwarding in May, I will be presenting about a session called &lt;a href="http://xtech.expectnation.com/event/1/public/schedule/detail/53"&gt;Putting SVG and CDF to Use in an Internet Desktop Application&lt;/a&gt; at &lt;a href="http://2007.xtech.org/"&gt;XTech 2007&lt;/a&gt;, the European XML Conference, held in Paris, my hometown. This talk will be about our experience with front-end XML languages in Joost:
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
The goal of this talk is to present how client-side XML technologies (SVG, (X)HTML, XUL, CSS, RDF, DOM and ECMAScript) were put to use to create a killer, multi-platform desktop application built around the Internet allowing television-watching via peer-to-peer networks: The Venice Project. The main points of this presentation will be to illustrate how the various XML grammars were put to use for different tasks, all within a unified XML presentation layer:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;SVG, DOM and ECMAScript for finely tuned, animated and highly interactive user interfaces that scale gracefully to any resolution and screen aspect ratio&lt;/li&gt;
&lt;li&gt;HTML, XUL and CSS for flexible control of the display of text content coming from remote data sources&lt;/li&gt;
&lt;li&gt;RDF, SPARQL and remote requests for data retrieval&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
The common thread within this talk will be to show as well that this technology mix is directly applicable within browser-based Web 2.0 applications as well.
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
There is another amazing event at which I'll be appearing in June, but it's too early to give out specifics, so I'll save that for a future post.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;UPDATE&lt;/strong&gt;: The MoMo Sydney website has a &lt;a href="http://www.momosyd.com/?p=58" title="Wrap up for Momosyd March ‘07"&gt;wrap-up of the event&lt;/a&gt; with pictures.
&lt;/p&gt;</content><link rel='alternate' type='text/html' href='http://the.fuchsia-design.com/2007/02/speaking-engagements.html' title='Speaking Engagements'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7360043960312045726&amp;postID=3702918962749222208' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://the.fuchsia-design.com/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7360043960312045726/posts/default/3702918962749222208'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7360043960312045726/posts/default/3702918962749222208'/><author><name>Antoine Quint</name></author></entry><entry><id>tag:blogger.com,1999:blog-7360043960312045726.post-225253503726816170</id><published>2007-01-23T10:50:00.000+01:00</published><updated>2007-01-23T12:18:39.295+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mobile svg'/><title type='text'>Rich Mobile Experiences with SVG Series</title><content type='html'>&lt;p&gt;
Monday next week, &lt;a href="http://mobilemonday-ny.com/"&gt;MobileMonday NY&lt;/a&gt; will host the &lt;a href="http://mobilemonday-ny.com/?p=36"&gt;first event&lt;/a&gt; of what I hope will be a long-lasting &lt;em&gt;Rich Mobile Experiences with SVG&lt;/em&gt; series. I have &lt;a href="http://the.fuchsia-design.com/2006/09/next-generation-mobile-svg-for-everyone.html" title="Next Generation Mobile SVG for Everyone"&gt;pointed out before&lt;/a&gt; that I think initiatives promoting Mobile SVG to smaller companies and eager individuals are still somewhat lacking. This is what I hope will be a way to spread the word throughout the world about Mobile SVG. The point of this series of events is to go to all the major cities around the world where a significant mobile community is established, and have a lineup of speakers, putting forward locals, that will give concrete examples of how they make use of Mobile SVG for live mobile services and applications, but also highlight the next evolutions of this technology. I want first and foremost for these events to give attendees pragmatic information that they will be able to put to use straight away.
&lt;/p&gt;
&lt;p&gt;
So for our New York event next week on Monday January 29th at the Samsung Experience, for which you have to &lt;a href="http://mobilemonday.net/mm/newyork/"&gt;register for free&lt;/a&gt;, we have put together the following great lineup including browser makers (Opera), SVG viewer vendors (BitFlash and Ikivo), authoring tool makers (Hyperion, Ikivo, QUALCOMM), developer tool providers (Sun), mobile services creators (Ikivo, Hyperion, BitFlash and Vodafone) and a major carrier (Vodafone). The goal here is to show attendees the diversity of the Mobile SVG offering, and the full lineup is as follows below. Hope to see some of you in New York next week, there will even be some free authoring licenses to win at the end of the event, courtesy of Ikivo and Hyperion!
&lt;/p&gt;
&lt;p&gt;
  &lt;strong&gt;QUALCOMM’S SVG Solution&lt;/strong&gt;
  &lt;br /&gt;
  &lt;i&gt;Brent Sammons, Product Manager, QUALCOMM&lt;/i&gt;
&lt;/p&gt;
&lt;p&gt;
Learn about QUALCOMM’s SVG solution, how to make use of SVG within the CMX® file format, and about QUALCOMM’s developer and OEM support activities for SVG.
&lt;/p&gt;
&lt;p&gt;
  &lt;strong&gt;Combining the Power of Java ME and SVG: Developing JSR 226 Applications Using the NetBeans IDE&lt;/strong&gt;
  &lt;br /&gt;
  &lt;i&gt;Brian Leonard, Java TechnologyEvangelist, Sun Microsystems&lt;/i&gt;
&lt;/p&gt;
&lt;p&gt;
This presentation will cover the advantages of combining the full functionality of the Java ME platform, with access to all the phone functionality provided by the Mobile Services Architecture set of APIs, with rich user interfaces based on SVG Tiny. The talk will include demonstrations of the support for developing such applications using the NetBeans Mobility Pack and will include demonstrations of JSR 226 applications.
&lt;/p&gt;
&lt;p&gt;
  &lt;strong&gt;Rich Media Comes Alive With Mobile SVG&lt;/strong&gt;
  &lt;br /&gt;
  &lt;i&gt;Brad Sipes, CTO, Ikivo&lt;/i&gt;
&lt;/p&gt;
&lt;p&gt;
2007 is poised to be the year when widespread availability of rich mobile multimedia experiences becomes a reality and not just a marketing exercise. Deployment of mobile services based on music, video on demand, live TV, etc. are now occurring at an accelerating rate introducing consumers to a new way of interacting with a world of information and entertainment by allowing them to do so without sacrificing mobility. Ultimate success or failure depends on delivering a quality experience in a timely manner. With its inherent open standards based eco-system and functional advantages such as true vector scalability, advanced graphics and OTA logic and UI updates, Mobile SVG provides the perfect platform for enabling operators and service providers to realize the dream of brining the promise of rich media to mobile.
&lt;/p&gt;
&lt;p&gt;
  &lt;strong&gt;SVG - Going Everywhere With the Web&lt;/strong&gt;
  &lt;br /&gt;
  &lt;i&gt;Charles McCathieNevile, Chief Standards Officer, Opera&lt;/i&gt;
&lt;/p&gt;
&lt;p&gt;
This presentation will present SVG as a format that can be applied everywhere, helping to ensure that the power of the web can be offered on all devices.
&lt;/p&gt;
&lt;p&gt;
  &lt;strong&gt;Growing the Ecosystem, Evolving the Web&lt;/strong&gt;
  &lt;br /&gt;
  &lt;i&gt;Daniel Appelquist, Senior Technology Strategist, Vodafone&lt;/i&gt;
&lt;/p&gt;
&lt;p&gt;
Why is a British phone company so excited about graphical user experiences? At Vodafone, we envision a future where the Web is accessed from the phone as much if not more than it is accessed from a PC. Indeed, in some parts of the world, this is already true. We’re working on a number of initiatives and standards efforts to help grow this mobile Web ecosystem. However, the Web is also evolving and becoming a dynamic application platform. What will this intersection of Web 2.0 and the Mobile Web mean both to the users and developers of Web applications?
&lt;/p&gt;
&lt;p&gt;
  &lt;strong&gt;SVG Tiny Solutions to Empower the Mobile Professional&lt;/strong&gt;
  &lt;br /&gt;
  &lt;i&gt;Don Liberty, Director of Business Development, BitFlash&lt;/i&gt;
&lt;/p&gt;
&lt;p&gt;
With more than 160 Million SVG-enabled mobile devices on the market today, combined with the new and powerful feature set offered by the SVG tiny 1.2 specification, mobile solution providers are beginning to offer innovative SVG-based applications. This presentation will touch on productivity applications and use cases targeted at the mobile business professional.
&lt;/p&gt;
&lt;p&gt;
  &lt;strong&gt;Accessing and Displaying Data on a Mobile Device Using SVG&lt;/strong&gt;
  &lt;br /&gt;
  &lt;i&gt;Marc Verstaen, Senior Director Software Development, Hyperion Solutions&lt;/i&gt;
&lt;/p&gt;
&lt;p&gt;
Developing custom applications for the corporate world on mobile devices is often considered as a very difficult task. Applications need to be adapted for each device, results is most the time not attractive at all and impact usability. Using SVG-T 1.2, some basic AJAX concepts and the Mobile Designer authoring tool can solve this problem.
&lt;/p&gt;</content><link rel='alternate' type='text/html' href='http://the.fuchsia-design.com/2007/01/rich-mobile-experiences-with-svg-series.html' title='Rich Mobile Experiences with SVG Series'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7360043960312045726&amp;postID=225253503726816170' title='1 Comments'/><link rel='replies' type='application/atom+xml' href='http://the.fuchsia-design.com/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7360043960312045726/posts/default/225253503726816170'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7360043960312045726/posts/default/225253503726816170'/><author><name>Antoine Quint</name></author></entry><entry><id>tag:blogger.com,1999:blog-7360043960312045726.post-174019111997881236</id><published>2007-01-22T22:36:00.000+01:00</published><updated>2007-01-22T22:41:33.006+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='nokia'/><category scheme='http://www.blogger.com/atom/ns#' term='mobile svg'/><title type='text'>SVG Screen Savers in S60 with Carbide.ui</title><content type='html'>&lt;p&gt;
Forum Nokia, Nokia's ultimate resource for developers, published today a &lt;a href="http://sw.nokia.com/id/b0434bdb-3ec0-4c97-a128-1f84e4b3eda3/S60_3rd_Edition_FP1_Screensavers_v1_0_en.exe"&gt;video tutorial&lt;/a&gt; showing how to create screen savers for S60 3.0 Feature Pack 1 devices using their &lt;a href="http://forum.nokia.com/info/sw.nokia.com/id/bb173537-4e67-496f-9967-50917d5cfc47/S60_Theme_Studio_for_Symbian_OS.html" &gt;Carbide.ui&lt;/a&gt; user interface customization tool. This is a great example of the kind of simple tutorials that people need to see to understand what can be done concretely with a versatile technology such as Mobile SVG.
&lt;/p&gt;</content><link rel='alternate' type='text/html' href='http://the.fuchsia-design.com/2007/01/svg-screen-savers-in-s60-with-carbideui.html' title='SVG Screen Savers in S60 with Carbide.ui'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7360043960312045726&amp;postID=174019111997881236' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://the.fuchsia-design.com/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7360043960312045726/posts/default/174019111997881236'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7360043960312045726/posts/default/174019111997881236'/><author><name>Antoine Quint</name></author></entry><entry><id>tag:blogger.com,1999:blog-7360043960312045726.post-8263734102568233118</id><published>2007-01-16T22:59:00.000+01:00</published><updated>2007-02-08T09:29:58.122+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='joost'/><category scheme='http://www.blogger.com/atom/ns#' term='svg'/><title type='text'>The Venice Project is Now Joost!</title><content type='html'>&lt;p&gt;
&lt;img class="no-decoration" src="/img/joost_logo.jpg" width="640" height="320" alt="Joost Logo" /&gt;
&lt;/p&gt;
&lt;p&gt;
Today was a big day at work as the code-name we operated under for a year now, The Venice Project, was put to rest for the official brand name that we will be using from now on: &lt;a href="http://www.joost.com/"&gt;Joost&lt;/a&gt;! This does not mean that we're quite ready to let the cat entirely out of the bag about our "TV meets the Web" venture: we are still in a closed, invite-only beta program for a while. However, to celebrate on this auspicious day, I will send an invite to the first few people who drop a comment here with their first name, last name and email address. Also, now that we have reached a more public level, I will try to post about some of the cool things that we are doing with SVG and other sweet XML technologies in the client application, which is the part of the application I work on.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Sorry, no more invites for the moment.&lt;/strong&gt;
&lt;/p&gt;</content><link rel='alternate' type='text/html' href='http://the.fuchsia-design.com/2007/01/venice-project-is-now-joost.html' title='The Venice Project is Now Joost!'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7360043960312045726&amp;postID=8263734102568233118' title='37 Comments'/><link rel='replies' type='application/atom+xml' href='http://the.fuchsia-design.com/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7360043960312045726/posts/default/8263734102568233118'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7360043960312045726/posts/default/8263734102568233118'/><author><name>Antoine Quint</name></author></entry><entry><id>tag:blogger.com,1999:blog-7360043960312045726.post-3734993111229288336</id><published>2007-01-16T20:34:00.000+01:00</published><updated>2007-01-17T11:01:05.246+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='adium'/><category scheme='http://www.blogger.com/atom/ns#' term='Skype'/><category scheme='http://www.blogger.com/atom/ns#' term='applescript'/><category scheme='http://www.blogger.com/atom/ns#' term='iChat'/><category scheme='http://www.blogger.com/atom/ns#' term='hack'/><title type='text'>Logging In and Out of Adium, iChat and Skype using AppleScript</title><content type='html'>&lt;p&gt;
Even though I'd rather not, I use not one, not two but three instant messaging applications on my main machine: &lt;a href="http://www.adiumx.com/"&gt;Adium&lt;/a&gt;, &lt;a href="http://www.apple.com/macosx/features/ichat/"&gt;iChat&lt;/a&gt; and &lt;a href="http://www.skype.com/"&gt;Skype&lt;/a&gt;. While Adium allows to connect to almost all IM networks in a slick little interface that feels right at home on Mac OS X, iChat has some unique features going for it, for instance Bonjour as well as audio and video chat, and Skype of course is the only app that can run Skype. Besides, everyone &lt;a href="http://www.joost.com/"&gt;at work&lt;/a&gt; uses Skype, so I just have to have it running at all time. Using all three together it not a big problem to me, at and even less of a problem since I wrote two little pieces of AppleScript that allow me to connect and disconnect from all the applications using a command-line scripts. Here are the scripts, both wrapped in an executable (&lt;code&gt;chmod +x&lt;/code&gt;) script called either &lt;code&gt;online&lt;/code&gt; or &lt;code&gt;offline&lt;/code&gt; using the &lt;code&gt;osascript&lt;/code&gt; command.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Going offline&lt;/strong&gt;:
&lt;/p&gt;
&lt;div class="code-snippet"&gt;
&lt;span style="color:#0b0bff;"&gt;on&lt;/span&gt; IsSkypeRunning()&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&lt;span style="color:#0b0bff;"&gt;tell&lt;/span&gt; &lt;span style="color:#0b0bff;"&gt;application&lt;/span&gt; &amp;quot;System Events&amp;quot; &lt;span style="color:#0b0bff;"&gt;to&lt;/span&gt; (name &lt;span style="color:#0b0bff;"&gt;of&lt;/span&gt; processes) &lt;span style="color:#0b0bff;"&gt;contains&lt;/span&gt; &amp;quot;Skype&amp;quot;&lt;br /&gt;
&lt;span style="color:#0b0bff;"&gt;end&lt;/span&gt; IsSkypeRunning&lt;br /&gt;
&lt;br /&gt;
&lt;span style="color:#0b0bff;"&gt;on&lt;/span&gt; IsAdiumRunning()&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&lt;span style="color:#0b0bff;"&gt;tell&lt;/span&gt; &lt;span style="color:#0b0bff;"&gt;application&lt;/span&gt; &amp;quot;System Events&amp;quot; &lt;span style="color:#0b0bff;"&gt;to&lt;/span&gt; (name &lt;span style="color:#0b0bff;"&gt;of&lt;/span&gt; processes) &lt;span style="color:#0b0bff;"&gt;contains&lt;/span&gt; &amp;quot;Adium&amp;quot;&lt;br /&gt;
&lt;span style="color:#0b0bff;"&gt;end&lt;/span&gt; IsAdiumRunning&lt;br /&gt;
&lt;br /&gt;
&lt;span style="color:#0b0bff;"&gt;if&lt;/span&gt; IsSkypeRunning() &lt;span style="color:#0b0bff;"&gt;then&lt;/span&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&lt;span style="color:#0b0bff;"&gt;tell&lt;/span&gt; &lt;span style="color:#0b0bff;"&gt;application&lt;/span&gt; &amp;quot;Skype&amp;quot;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;send command &amp;quot;SET USERSTATUS OFFLINE&amp;quot; script name &amp;quot;Make Skype go offline&amp;quot;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&lt;span style="color:#0b0bff;"&gt;end&lt;/span&gt; &lt;span style="color:#0b0bff;"&gt;tell&lt;/span&gt;&lt;br /&gt;
&lt;span style="color:#0b0bff;"&gt;end&lt;/span&gt; &lt;span style="color:#0b0bff;"&gt;if&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="color:#0b0bff;"&gt;tell&lt;/span&gt; &lt;span style="color:#0b0bff;"&gt;application&lt;/span&gt; &amp;quot;iChat&amp;quot;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;log out&lt;br /&gt;
&lt;span style="color:#0b0bff;"&gt;end&lt;/span&gt; &lt;span style="color:#0b0bff;"&gt;tell&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="color:#0b0bff;"&gt;if&lt;/span&gt; IsAdiumRunning() &lt;span style="color:#0b0bff;"&gt;then&lt;/span&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&lt;span style="color:#0b0bff;"&gt;tell&lt;/span&gt; &lt;span style="color:#0b0bff;"&gt;application&lt;/span&gt; &amp;quot;Adium&amp;quot; &lt;span style="color:#0b0bff;"&gt;to&lt;/span&gt; disconnect &lt;span style="color:#0b0bff;"&gt;every&lt;/span&gt; account&lt;br /&gt;
&lt;span style="color:#0b0bff;"&gt;end&lt;/span&gt; &lt;span style="color:#0b0bff;"&gt;if&lt;/span&gt;
&lt;/div&gt;
&lt;p&gt;
&lt;strong&gt;Going online&lt;/strong&gt;:
&lt;/p&gt;
&lt;div class="code-snippet"&gt;
&lt;span style="color:#0b0bff;"&gt;on&lt;/span&gt; IsSkypeRunning()&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&lt;span style="color:#0b0bff;"&gt;tell&lt;/span&gt; &lt;span style="color:#0b0bff;"&gt;application&lt;/span&gt; &amp;quot;System Events&amp;quot; &lt;span style="color:#0b0bff;"&gt;to&lt;/span&gt; (name &lt;span style="color:#0b0bff;"&gt;of&lt;/span&gt; processes) &lt;span style="color:#0b0bff;"&gt;contains&lt;/span&gt; &amp;quot;Skype&amp;quot;&lt;br /&gt;
&lt;span style="color:#0b0bff;"&gt;end&lt;/span&gt; IsSkypeRunning&lt;br /&gt;
&lt;br /&gt;
&lt;span style="color:#0b0bff;"&gt;on&lt;/span&gt; IsAdiumRunning()&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&lt;span style="color:#0b0bff;"&gt;tell&lt;/span&gt; &lt;span style="color:#0b0bff;"&gt;application&lt;/span&gt; &amp;quot;System Events&amp;quot; &lt;span style="color:#0b0bff;"&gt;to&lt;/span&gt; (name &lt;span style="color:#0b0bff;"&gt;of&lt;/span&gt; processes) &lt;span style="color:#0b0bff;"&gt;contains&lt;/span&gt; &amp;quot;Adium&amp;quot;&lt;br /&gt;
&lt;span style="color:#0b0bff;"&gt;end&lt;/span&gt; IsAdiumRunning&lt;br /&gt;
&lt;br /&gt;
&lt;span style="color:#0b0bff;"&gt;if&lt;/span&gt; IsSkypeRunning() &lt;span style="color:#0b0bff;"&gt;then&lt;/span&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&lt;span style="color:#0b0bff;"&gt;tell&lt;/span&gt; &lt;span style="color:#0b0bff;"&gt;application&lt;/span&gt; &amp;quot;Skype&amp;quot;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;send command &amp;quot;SET USERSTATUS ONLINE&amp;quot; script name &amp;quot;Make Skype go online&amp;quot;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&lt;span style="color:#0b0bff;"&gt;end&lt;/span&gt; &lt;span style="color:#0b0bff;"&gt;tell&lt;/span&gt;&lt;br /&gt;
&lt;span style="color:#0b0bff;"&gt;end&lt;/span&gt; &lt;span style="color:#0b0bff;"&gt;if&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="color:#0b0bff;"&gt;tell&lt;/span&gt; &lt;span style="color:#0b0bff;"&gt;application&lt;/span&gt; &amp;quot;iChat&amp;quot;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;log &lt;span style="color:#0b0bff;"&gt;in&lt;/span&gt;&lt;br /&gt;
&lt;span style="color:#0b0bff;"&gt;end&lt;/span&gt; &lt;span style="color:#0b0bff;"&gt;tell&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="color:#0b0bff;"&gt;if&lt;/span&gt; IsAdiumRunning() &lt;span style="color:#0b0bff;"&gt;then&lt;/span&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&lt;span style="color:#0b0bff;"&gt;tell&lt;/span&gt; &lt;span style="color:#0b0bff;"&gt;application&lt;/span&gt; &amp;quot;Adium&amp;quot; &lt;span style="color:#0b0bff;"&gt;to&lt;/span&gt; connect &lt;span style="color:#0b0bff;"&gt;every&lt;/span&gt; account&lt;br /&gt;
&lt;span style="color:#0b0bff;"&gt;end&lt;/span&gt; &lt;span style="color:#0b0bff;"&gt;if&lt;/span&gt;&lt;br /&gt;
&lt;/div&gt;</content><link rel='alternate' type='text/html' href='http://the.fuchsia-design.com/2007/01/logging-in-and-out-of-adium-ichat-and.html' title='Logging In and Out of Adium, iChat and Skype using AppleScript'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7360043960312045726&amp;postID=3734993111229288336' title='3 Comments'/><link rel='replies' type='application/atom+xml' href='http://the.fuchsia-design.com/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7360043960312045726/posts/default/3734993111229288336'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7360043960312045726/posts/default/3734993111229288336'/><author><name>Antoine Quint</name></author></entry><entry><id>tag:blogger.com,1999:blog-7360043960312045726.post-132813083610103774</id><published>2006-12-13T18:37:00.000+01:00</published><updated>2006-12-13T20:17:26.980+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='svg'/><category scheme='http://www.blogger.com/atom/ns#' term='dom'/><category scheme='http://www.blogger.com/atom/ns#' term='hack'/><title type='text'>Getting an SVG Element's Full Bounding Box</title><content type='html'>&lt;p&gt;
Getting the fully-transformed bounding box of a given SVG element is something quite handy and not given for free by the SVG DOM right now. However, the SVG DOM provides all the &lt;a href="http://www.w3.org/TR/SVG11/coords.html#DOMInterfaces" title="SVGMatrix and SVGLocatable interfaces as specified by SVG 1.1"&gt;required foundations&lt;/a&gt; to compute such a bounding box, by providing the &lt;code&gt;SVGLocatable::getBBox()&lt;/code&gt;, &lt;code&gt;SVGLocatable::getScreenCTM()&lt;/code&gt; and &lt;code&gt;SVGPoint::matrixTransform()&lt;/code&gt; methods mostly. So, with no further ado, here's the code to a utility &lt;code&gt;getScreenBBox(&lt;i&gt;element&lt;/i&gt;)&lt;/code&gt; function:
&lt;/p&gt;
&lt;div class="code-snippet"&gt;
&lt;span style="color:#881350;"&gt;function&lt;/span&gt; &lt;span style="color:#003369;"&gt;getScreenBBox &lt;/span&gt;(element) {&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&lt;span style="color:#236e25;"&gt;// macro to create an SVGPoint object&lt;br /&gt;
&lt;/span&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color:#881350;"&gt;function&lt;/span&gt; &lt;span style="color:#003369;"&gt;createPoint &lt;/span&gt;(x, y) {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:#881350;"&gt;var&lt;/span&gt; point = document.documentElement.&lt;span style="color:#003369;"&gt;createSVGPoint&lt;/span&gt;();&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;point.x = x;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;point.y = y;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:#881350;"&gt;return&lt;/span&gt; point;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;}&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&lt;span style="color:#236e25;"&gt;// macro to create an SVGRect object&lt;br /&gt;
&lt;/span&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color:#881350;"&gt;function&lt;/span&gt; &lt;span style="color:#003369;"&gt;createRect &lt;/span&gt;(x, y, width, height) {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:#881350;"&gt;var&lt;/span&gt; rect = document.documentElement.&lt;span style="color:#003369;"&gt;createSVGRect&lt;/span&gt;();&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;rect.x = x;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;rect.y = y;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;rect.width = width;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;rect.height = height;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:#881350;"&gt;return&lt;/span&gt; rect; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;}&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&lt;span style="color:#236e25;"&gt;// get the complete transformation matrix&lt;br /&gt;
&lt;/span&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color:#881350;"&gt;var&lt;/span&gt; matrix = element.&lt;span style="color:#003369;"&gt;getScreenCTM&lt;/span&gt;();&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&lt;span style="color:#236e25;"&gt;// get the bounding box of the target element&lt;br /&gt;
&lt;/span&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color:#881350;"&gt;var&lt;/span&gt; box = element.&lt;span style="color:#003369;"&gt;getBBox&lt;/span&gt;();&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&lt;span style="color:#236e25;"&gt;// create an array of SVGPoints for each corner&lt;br /&gt;
&lt;/span&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color:#236e25;"&gt;// of the bounding box and update their location&lt;br /&gt;
&lt;/span&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color:#236e25;"&gt;// with the transform matrix&lt;br /&gt;
&lt;/span&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color:#881350;"&gt;var&lt;/span&gt; corners = [];&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&lt;span style="color:#881350;"&gt;var&lt;/span&gt; point = &lt;span style="color:#003369;"&gt;createPoint&lt;/span&gt;(box.x, box.y);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;corners.&lt;span style="color:#003369;"&gt;push&lt;/span&gt;( point.&lt;span style="color:#003369;"&gt;matrixTransform&lt;/span&gt;(matrix) );&lt;br /&gt;
&amp;nbsp;&amp;nbsp;point.x = box.x + box.width;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;point.y = box.y;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;corners.&lt;span style="color:#003369;"&gt;push&lt;/span&gt;( point.&lt;span style="color:#003369;"&gt;matrixTransform&lt;/span&gt;(matrix) );&lt;br /&gt;
&amp;nbsp;&amp;nbsp;point.x = box.x + box.width;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;point.y = box.y + box.height;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;corners.&lt;span style="color:#003369;"&gt;push&lt;/span&gt;( point.&lt;span style="color:#003369;"&gt;matrixTransform&lt;/span&gt;(matrix) );&lt;br /&gt;
&amp;nbsp;&amp;nbsp;point.x = box.x;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;point.y = box.y + box.height;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;corners.&lt;span style="color:#003369;"&gt;push&lt;/span&gt;( point.&lt;span style="color:#003369;"&gt;matrixTransform&lt;/span&gt;(matrix) );&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&lt;span style="color:#881350;"&gt;var&lt;/span&gt; max = &lt;span style="color:#003369;"&gt;createPoint&lt;/span&gt;(corners[&lt;span style="color:#0000ff;"&gt;0&lt;/span&gt;].x, corners[&lt;span style="color:#0000ff;"&gt;0&lt;/span&gt;].y);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&lt;span style="color:#881350;"&gt;var&lt;/span&gt; min = &lt;span style="color:#003369;"&gt;createPoint&lt;/span&gt;(corners[&lt;span style="color:#0000ff;"&gt;0&lt;/span&gt;].x, corners[&lt;span style="color:#0000ff;"&gt;0&lt;/span&gt;].y);&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&lt;span style="color:#236e25;"&gt;// identify the new corner coordinates of the&lt;br /&gt;
&lt;/span&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color:#236e25;"&gt;// fully transformed bounding box&lt;br /&gt;
&lt;/span&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color:#881350;"&gt;for&lt;/span&gt;&lt;span style="color:#003369;"&gt; &lt;/span&gt;(&lt;span style="color:#881350;"&gt;var&lt;/span&gt; i = &lt;span style="color:#0000ff;"&gt;1&lt;/span&gt;; i &amp;lt; corners.length; i++) {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:#881350;"&gt;var&lt;/span&gt; x = corners[i].x;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:#881350;"&gt;var&lt;/span&gt; y = corners[i].y;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:#881350;"&gt;if&lt;/span&gt;&lt;span style="color:#003369;"&gt; &lt;/span&gt;(x &amp;lt; min.x) {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;min.x = x;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:#881350;"&gt;else&lt;/span&gt; &lt;span style="color:#881350;"&gt;if&lt;/span&gt;&lt;span style="color:#003369;"&gt; &lt;/span&gt;(x &amp;gt; max.x) {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;max.x = x;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:#881350;"&gt;if&lt;/span&gt;&lt;span style="color:#003369;"&gt; &lt;/span&gt;(y &amp;lt; min.y) {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;min.y = y;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:#881350;"&gt;else&lt;/span&gt; &lt;span style="color:#881350;"&gt;if&lt;/span&gt;&lt;span style="color:#003369;"&gt; &lt;/span&gt;(y &amp;gt; max.y) {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;max.y = y;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;
&amp;nbsp;&amp;nbsp;}&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&lt;span style="color:#236e25;"&gt;// return the bounding box as an SVGRect object&lt;br /&gt;
&lt;/span&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color:#881350;"&gt;return&lt;/span&gt; &lt;span style="color:#003369;"&gt;createRect&lt;/span&gt;(min.x, min.y, max.x - min.x, max.y - min.y);&lt;br /&gt;
}
&lt;/div&gt;</content><link rel='alternate' type='text/html' href='http://the.fuchsia-design.com/2006/12/getting-svg-elementss-full-bounding-box.html' title='Getting an SVG Element&apos;s Full Bounding Box'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7360043960312045726&amp;postID=132813083610103774' title='1 Comments'/><link rel='replies' type='application/atom+xml' href='http://the.fuchsia-design.com/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7360043960312045726/posts/default/132813083610103774'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7360043960312045726/posts/default/132813083610103774'/><author><name>Antoine Quint</name></author></entry><entry><id>tag:blogger.com,1999:blog-7360043960312045726.post-2302085868242373809</id><published>2006-12-10T23:42:00.000+01:00</published><updated>2006-12-11T21:27:57.320+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='svg'/><category scheme='http://www.blogger.com/atom/ns#' term='cdf'/><category scheme='http://www.blogger.com/atom/ns#' term='adobe'/><category scheme='http://www.blogger.com/atom/ns#' term='flash'/><category scheme='http://www.blogger.com/atom/ns#' term='apollo'/><title type='text'>Adobe Apollo's Technology Mix: Nothing New</title><content type='html'>&lt;p&gt;
Last month, the first incarnation of the &lt;a href="http://www.adobe.com/events/max/"&gt;MAX conference&lt;/a&gt; under the Adobe took place, and Adobe's new Apollo runtime was the hot ticket that was previewed to developers, in preparation for the first public alpha coming up later this year and an anticipated launch of late 2007. For those who haven't heard of Apollo yet, Apollo is the code-name for Adobe's next generation runtime that basically allows developers to seamlessly combine two worlds that were mostly living in isolation of each other: HTML and Flash.
&lt;/p&gt;

&lt;p&gt;
I actually was privy to work being conducted at Adobe prior to the announcement of the Macromedia acquisition, when Flash was still a technology non grata within Adobe. Times change. I was consulting on &lt;a href="http://labs.adobe.com/technologies/jamjar/"&gt;Adobe JamJar&lt;/a&gt;, a cool collaborative workspace project which was developed in SVG, and has since been reworked as a Flex application and is available as an alpha on Adobe Labs. While we were developing the basis for JamJar, we were also keeping tabs on the latest developments within Adobe's Advance Technology Group about mixing HTML and interactive, rich graphics together in a next-generation runtime. You can safely bet it didn't involve Flash at all. I can't go into much detail, as this information is confidential, but the concepts of Apollo were already firmly in place, but the exact technology mix was something completely different.
&lt;/p&gt;

&lt;p&gt;
The new Adobe had been building a buzz around Apollo prior to MAX already, but this conference was the first time Adobe actually gave details on how developers will be able to work with Apollo. It is of course too early to make any kind of definite statement about Apollo successes or failures, but I'd like to weigh in on the two big take-away items in &lt;a href="http://video.google.com/videoplay?docid=1551903488172905143&amp;q=apollo+chris"&gt;Chris Berchdorf's presentation&lt;/a&gt; on HTML integration in Apollo.
&lt;/p&gt;

&lt;p&gt;
According to Chris Berchdorf, the first major take-away is that Apollo introduces a unified rendering layer for Flash and HTML content. Indeed, this is a big deal as it has always been a pain to mix and match HTML and Flash in the same Web application where Flash content would mostly be something you'd have to reference as a black box with an &lt;code&gt;&amp;lt;object&amp;gt;&lt;/code&gt; element. There are variations to that of course, for instance the Flash plug-in can be instantiated with a transparent background which allows to have Flash content blend in nicely on top of HTML, but this has always come as an expense in terms of rendering performance. Additionally, a big issue was never, I think, resolved:  rendering HTML on top of Flash content. To be fair, all of this is a shared issue of media types outside of those natively handled by a Web browser that have to integrated via a plug-in.
&lt;/p&gt;

&lt;p&gt;
The scoop here is that soon, with Apollo, a single top-level rendering and compositing model will allow for all types of subtleties in how developers wish to organize HTML and Flash contents, catering for all grievances listed above. This is great news for the Flash developers, as Adobe have come to the realization that Flash cannot do it all on its own, and that certain parts are much better done in HTML and CSS. This includes, for instance, anything involving automated layout and rich text content. But, from a technological point of view, there is really nothing new here, nothing ground-breaking.
&lt;/p&gt;

&lt;p&gt;
During his presentation, Chris Berchdorf showcased the new Apollo rendering capabilities by layering a Web browsing view on top of Flash-rendered contents. During the demo, the Web page was rotated, scaled, blurred and alpha-composited. This rings a bell, something we've seen demonstrated last year in an open source and publicly available codebase: Mozilla. Indeed, at &lt;a href=""&gt;XTech 2005&lt;/a&gt; event (about 18 months ago), developer &lt;a href="http://weblogs.mozillazine.org/roc/"&gt;Robert O'Callahan&lt;/a&gt; showed off the &lt;a href="http://weblogs.mozillazine.org/roc/archives/2005/05/xtech.html"&gt;then latest graphics advances in the Mozilla platform&lt;/a&gt; -- on which the hugely popular Firefox browser is built -- and one of this demonstration was the rendering of (X)HTML content, or entire Web pages, inside an SVG &lt;code&gt;&amp;lt;foreignObject&amp;gt;&lt;/code&gt; element. Using this mechanism, Robert could apply all kinds of built-in SVG transformations and visual effects to the Web page: scaling, rotation, alpha compositing, blurring -- you name it. The high-level capability shown in these Apollo pre-alpha demos and those shown in Mozilla 18 months ago are the same: mixing and matching of traditional HTML and CSS content with rich graphics technology in a single rendering layer. You only have to swap Flash SWF, a proprietary binary format, with SVG, an XML-based, royalty-free language.
&lt;/p&gt;

&lt;p&gt;
While this shared rendering layer for HTML and SWF is interesting, and very much a revolution in the Flash space, there is just no major achievement in the grand scheme of things here. And I think we can safely say that integrating (X)HTML and SVG together is going to be more natural to developers than putting together HTML and SWF content, given both (X)HTML and SVG are both expressed in plain text markup, literally cut from the same cloth.
&lt;/p&gt;

&lt;p&gt;
Now, onto the second big take-away items from Chris's presentation: the JavaScript and ActionScript programming models are now completely bridged. Indeed, similar to the limitations in visually mixing HTML and Flash content, programmed communication between JavaScript (HTML) and ActionScript (Flash) has always been severely limited by the plug-in architecture. For instance, for an ActionScript object to be exposed in the JavaScript context, it had to be serialized to XML and then recreated as a JavaScript object. Soon, Apollo will make all of this go away, and programming across JavaScript and ActionScript will be easier than ever.
&lt;/p&gt;

&lt;p&gt;
Once again, this is a big win for the Flash developers. And once again, there is nothing new here from a technological point-of-view. The API used to program HTML and CSS is the DOM. These same APIs can be used to program against any kind of XML markup, such as, for instance, SVG. In a compound XHTML and SVG document, developers can use one single set of scripting APIs, all in one context, to program both HTML and rich graphics (SVG). This is what works today in browsers such as Firefox (since version 1.5) and Opera (since version 9), and already in development builds of WebKit, the Web page rendering engine used by Apple's Safari. Both Google Maps and Windows Live Local use this functionality.
&lt;/p&gt;

&lt;p&gt;
Here again, the integration between XHTML and SVG outshines the HTML and Flash mix. Even though ActionScript is based on JavaScript, the APIs you actually use to program your Flash content have nothing in common with the DOM, they are two very different things. In a compound XHTML and SVG document, you only use one set of APIs, the DOM.
&lt;/p&gt;

&lt;p&gt;
Additionally, I'm wondering how Apollo will allow the kind of JavaScript programming used today, which is loosely-typed, to be used with the far more advanced incarnation used in Flash 9 which is strongly-typed and much more advanced feature-wise. Adobe have been pushing hard for Flash developers to use the latest and greatest ActionScript language-level features, but now, they have to integrate in a world that's not quite so cutting-edge yet.
&lt;/p&gt;

&lt;p&gt;
Another thing that I'm wondering about is duplication of APIs. So far, Flash has lived in its own world, where it was tough for developers to leverage the host environment (HTML/JavaScript) capabilities. But the same way that Adobe have pushed for more and more application-level APIs in Flash, the browsers have been adding new APIs, and are still in the process of doing so, as work in the W3C WebAPIs Working Group and in the WHATWG shows. Which APIs will developers use for networking, drag-and-drop, cut-and-paste, etc. 
&lt;/p&gt;

&lt;p&gt;
My goal is not to lessen the achievements that Adobe is the process of making with Apollo, but rather to underline that the mix of HTML with real-time, rich graphics is not easiest done with two unrelated technologies as it would be with technologies built on the same grounds: HTML and SVG. Certainly, there is nothing new offered by Adobe here, and I would bet the &lt;i&gt;old Adobe&lt;/i&gt; would have gone for something more natural. Hopefully, the &lt;i&gt;old Adobe&lt;/i&gt; still lives, and &lt;a href="http://labs.adobe.com/technologies/mars/"&gt;Adobe Mars&lt;/a&gt; uses SVG as a complement to XHTML and CSS for its PDF-in-XML initiative.
&lt;/p&gt;</content><link rel='alternate' type='text/html' href='http://the.fuchsia-design.com/2006/12/adobe-apollos-technology-mix-nothing.html' title='Adobe Apollo&apos;s Technology Mix: Nothing New'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7360043960312045726&amp;postID=2302085868242373809' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://the.fuchsia-design.com/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7360043960312045726/posts/default/2302085868242373809'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7360043960312045726/posts/default/2302085868242373809'/><author><name>Antoine Quint</name></author></entry><entry><id>tag:blogger.com,1999:blog-7360043960312045726.post-6962919512474468247</id><published>2006-11-15T11:55:00.001+01:00</published><updated>2006-11-15T12:01:44.585+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='theveniceproject'/><title type='text'>Working for The Venice Project</title><content type='html'>&lt;style type="text/css"&gt;.flickr-photo { border: solid 2px #000000; }.flickr-yourcomment { }.flickr-frame { text-align: left; padding: 3px; }.flickr-caption { font-size: 0.8em; margin-top: 0px; }&lt;/style&gt;&lt;div class="flickr-frame"&gt; &lt;a href="http://www.flickr.com/photos/graouts/297983632/" title="photo sharing" class="simple-link"&gt;&lt;img src="http://static.flickr.com/114/297983632_bedeff6c50.jpg" class="flickr-photo" alt="" /&gt;&lt;/a&gt;&lt;br /&gt; &lt;span class="flickr-caption"&gt;&lt;a href="http://www.flickr.com/photos/graouts/297983632/"&gt;TVP Shirt&lt;/a&gt;, originally uploaded by &lt;a href="http://www.flickr.com/people/graouts/"&gt;graouts&lt;/a&gt;.&lt;/span&gt;&lt;/div&gt;    &lt;p class="flickr-yourcomment"&gt; Slowly, but surely, the veil is being taken off what I have been working on in 2006: &lt;a href="http://theveniceproject.com/"&gt;The Venice Project&lt;/a&gt;. I'll make sure to write about our usage of the most awesome of open standards and open source technologies while we're planning to take over the world. That's right, take over the world!&lt;/p&gt;</content><link rel='alternate' type='text/html' href='http://the.fuchsia-design.com/2006/11/working-for-venice-project.html' title='Working for The Venice Project'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7360043960312045726&amp;postID=6962919512474468247' title='1 Comments'/><link rel='replies' type='application/atom+xml' href='http://the.fuchsia-design.com/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7360043960312045726/posts/default/6962919512474468247'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7360043960312045726/posts/default/6962919512474468247'/><author><name>Antoine Quint</name></author></entry><entry><id>tag:blogger.com,1999:blog-7360043960312045726.post-4769855565188563368</id><published>2006-11-10T08:03:00.000+01:00</published><updated>2006-11-10T08:09:15.551+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sling'/><category scheme='http://www.blogger.com/atom/ns#' term='scalable UI'/><category scheme='http://www.blogger.com/atom/ns#' term='svg'/><category scheme='http://www.blogger.com/atom/ns#' term='mobile svg'/><category scheme='http://www.blogger.com/atom/ns#' term='svg tiny'/><category scheme='http://www.blogger.com/atom/ns#' term='symbian'/><category scheme='http://www.blogger.com/atom/ns#' term='svgt'/><title type='text'>A Look Into SlingPlayer Mobile's Use of SVG Tiny</title><content type='html'>&lt;p&gt;
During the annual Symbian show in London two weeks ago, &lt;a href="http://www.slingmedia.com/"&gt;Sling Media&lt;/a&gt; introduced their &lt;a href="http://us.slingmedia.com/object/io_1161045868673.html"&gt;Sling Player for the Symbian mobile platform&lt;/a&gt;, the foundation for the S60 and UIQ platforms. An interesting fact about the SlingPlayer for Symbian is that SVG Tiny, SVG's mobile profile, is heavily used to power the user interface. I had the chance to exchange emails with George Williams, an old acquaintance I made back when I was consulting for Adobe, who is now leading the efforts for interaction design of the SlingPlayer on Symbian and provided me with information as to how SVG was used in the creation of this application.
&lt;/p&gt;
&lt;p&gt;
All the graphics in the SlingPlayer for Symbian user interface are rendered using &lt;a href="http://wiki.svg.org/SVG_Tiny_1.1_Plus"&gt;SVGT 1.1 Plus&lt;/a&gt;, as supported by the &lt;a href="http://forum.nokia.com/info/sw.nokia.com/id/7f92c18f-fe85-4987-a4f8-66133a16d009/Introduction_To_The_S60_Scalable_UI_v1_4_en.pdf.html"&gt;Scalable UI APIs&lt;/a&gt; in the S60 platform. These APIs really fit the needs of this application as they allowed them to have code that would load SVG assets or bitmaps using the same APIs, as the Scalable UI APIs can equally load vector-based SVG assets or bitmaps. That came in very useful as the SlingPlayer deal with bitmaps when it comes to channel logos, and given they have to manage hundreds of them and that they all come from bitmap sources, this was a real win compared to having to convert all of those to vectors.
&lt;/p&gt;
&lt;p&gt;
To create the graphical assets for their UI, George's team used a variety of tools to fine tune the icons as they wanted them. First, they mocked up their desired UI in Photoshop, then used Illustrator CS2 where they spent most of their production time designing the vector assets. Following that, they went into GoLive CS2 to validate some of the more complex graphics and finally used Ikivo Animator for some remaining graphics cleanup. Once all of this was done, the design team used the Nokia Series 60 Theme Studio to compare the SVG graphics against the original Photoshop skectches. Adobe have some information on their website about &lt;a href="http://www.adobe.com/products/golive/ikivo.html"&gt;using their Creative Suite with Ikivo Animator&lt;/a&gt; for mobile content development.
&lt;/p&gt;
&lt;p&gt;
At the moment, none of the SVG assets used are animated, but they do make use of transparency, gradients, and other more advanced graphics features of SVG Tiny. The S60 Scalable UI APIs actually don't currently allow for loading animated contents, so that fits right with the current state of the technology they chose to use. However, George tells me that his team are investigating how to leverage SVG Tiny 1.2 for some future products. Given the tight integration of graphics and multimedia in SVG Tiny 1.2, this is only natural and should allow them to evolve from the existing SVG assets they are currently using.
&lt;/p&gt;
&lt;p&gt;
I asked George if they ever considered Flash Lite as an enabling technology, or even as a prototyping tool, and it turns out they never really considered using Flash Lite as it didn't have the integration capabilities that Scalable UI APIs offered, mainly mixing and matching raster and vectors as assets. In fact, this just confirms a key point I usually put forward in talks about Mobile SVG in that the key differentiator between SVG Tiny and Flash Lite is not so much to be found in what graphics, interactivity and multimedia features they offer, but rather that SVG Tiny is integrated tightly in many of the application layers of mobile devices. Indeed, you'll find SVG Tiny supported natively in browsers, UI toolkits, programming environments all the same.
&lt;/p&gt;
&lt;p&gt;
This is the first of a series of usage of SVG in real-world applications that I hope to be able to highlight on this blog in the future, but this definitely is a fine example of how to put Mobile SVG to use today for your mobile application development.
&lt;/p&gt;</content><link rel='alternate' type='text/html' href='http://the.fuchsia-design.com/2006/11/look-into-slingplayer-mobiles-use-of.html' title='A Look Into SlingPlayer Mobile&apos;s Use of SVG Tiny'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7360043960312045726&amp;postID=4769855565188563368' title='3 Comments'/><link rel='replies' type='application/atom+xml' href='http://the.fuchsia-design.com/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7360043960312045726/posts/default/4769855565188563368'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7360043960312045726/posts/default/4769855565188563368'/><author><name>Antoine Quint</name></author></entry><entry><id>tag:blogger.com,1999:blog-7360043960312045726.post-7245827580541469429</id><published>2006-11-08T16:06:00.000+01:00</published><updated>2006-11-08T16:17:35.074+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='svg'/><category scheme='http://www.blogger.com/atom/ns#' term='animation'/><category scheme='http://www.blogger.com/atom/ns#' term='article'/><category scheme='http://www.blogger.com/atom/ns#' term='smil'/><category scheme='http://www.blogger.com/atom/ns#' term='opera'/><title type='text'>Advanced SVG Animation Techniques</title><content type='html'>&lt;p&gt;
That's the name of the &lt;a href="http://dev.opera.com/articles/view/50/"&gt;latest article&lt;/a&gt; that was just published on the new &lt;a href="http://dev.opera.com/"&gt;Dev.Opera&lt;/a&gt;, Opera's latest developer-oriented website providing high-quality articles on advanced web design topics, such as &lt;a href="http://dev.opera.com/articles/mobile/"&gt;mobile&lt;/a&gt;, &lt;a href="http://dev.opera.com/articles/javascript/"&gt;JavaScript&lt;/a&gt;, &lt;a href="http://dev.opera.com/articles/widgets/"&gt;widgets&lt;/a&gt;, &lt;a href="http://dev.opera.com/articles/voice/"&gt;voice&lt;/a&gt;, and of course &lt;a href="http://dev.opera.com/articles/svg/"&gt;SVG&lt;/a&gt;! In fact, the SVG section is already well represented with 4 articles! Opera are really putting their money where their mouth is with SVG, by not only having the most advanced native support for SVG in any browser and offering the first widgets framework to support SVG rendering, but also promoting the technology relentlessly throughout the community. I'm really happy they called me up to contribute to this website and I'll make sure to contribute more articles. And don't forget to &lt;a href="http://dev.opera.com/forums/topic/165853"&gt;comment on my article&lt;/a&gt; on the Dev.Opera forums!
&lt;/p&gt;</content><link rel='alternate' type='text/html' href='http://the.fuchsia-design.com/2006/11/advanced-svg-animation-techniques.html' title='Advanced SVG Animation Techniques'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7360043960312045726&amp;postID=7245827580541469429' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://the.fuchsia-design.com/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7360043960312045726/posts/default/7245827580541469429'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7360043960312045726/posts/default/7245827580541469429'/><author><name>Antoine Quint</name></author></entry><entry><id>tag:blogger.com,1999:blog-7360043960312045726.post-2294874257956192535</id><published>2006-09-21T00:41:00.000+01:00</published><updated>2006-11-04T23:37:22.293+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='svg'/><category scheme='http://www.blogger.com/atom/ns#' term='mobile svg'/><category scheme='http://www.blogger.com/atom/ns#' term='bitflash'/><category scheme='http://www.blogger.com/atom/ns#' term='svg tiny'/><category scheme='http://www.blogger.com/atom/ns#' term='svgt'/><category scheme='http://www.blogger.com/atom/ns#' term='ikivo'/><title type='text'>Next Generation Mobile SVG for Everyone</title><content type='html'>&lt;p&gt;
  A little over a month ago the SVG Tiny 1.2 specification &lt;a href="http://www.w3.org/TR/2006/CR-SVGMobile12-20060810/"&gt;became a Candidate Recommendation&lt;/a&gt;, one of the final stage of development of a W3C specification where the technical work is expected to be frozen and mostly complete and implementors are requested to send their implementations in order to check the technical validity of it all. As the &lt;a href="http://www.w3.org/2006/08/svgtiny-pressrelease"&gt;press release&lt;/a&gt; states, SVG Tiny 1.2 is well on track to be adopted across Mobile Industry bodies such as &lt;acronym title="Open Mobile Alliance"&gt;OMA&lt;/acronym&gt;, &lt;acronym title="3rd Generation Partnership Project"&gt;3GPP&lt;/acronym&gt; and &lt;acronym title="Open Mobile Terminal Platform"&gt;OMTP&lt;/acronym&gt;. Also, for the last 18 months, all interested parties in the industry, such as carriers and terminal manufacturers, have all been evaluating how best to use SVGT 1.2 in their products. However, when it comes to smaller organizations such as mid-size content providers and small mobile design studios and application development houses, SVGT 1.2 has been locked away.  
&lt;/p&gt;

&lt;p&gt;
  Even though SVGT 1.2 is a royalty-free and open standard, most of the actors in the mobile field implementing it are private companies building closed source software, such as &lt;a href="http://www.bitflash.com/"&gt;BitFlash&lt;/a&gt;, &lt;a href="http://www.ikivo.com/"&gt;Ikivo&lt;/a&gt; and &lt;a href="http://www.opera.com/"&gt;Opera&lt;/a&gt;. As a matter of fact, open source is not such a common ticket on mobile devices as it is on desktop computers today, and besides a couple of Linux-powered devices from Motorola and Nokia and the WebKit-based S60 browser, mobile phone software is virtually always closed-source. Further than that, the vast majority of mobile phones are based on completely closed platforms (&lt;acronym title="Real Time Operating System"&gt;RTOS&lt;/acronym&gt;) that prevent developers and third parties to developer native software, and J2ME is usually the only option, apart from S60. So, in my experience, most developers and content creators out there wanting to give new mobile technology a shot use S60 devices with beta software.  
&lt;/p&gt;

&lt;p&gt;
  This approach is available for SVGT 1.2 today, but only to people who have the necessary structures to enter in agreements with BitFlash or Ikivo. This means that your organization has to have an interesting profile for them to justify the resources providing support to you while you evaluate the product, as well as having the right legal people in-house to enter such agreements. Basically, if you're just some guy out there with an idea and a will to experiment, you're likely to be on your own. 
&lt;/p&gt;

&lt;p&gt;
  I fully understand why BitFlash or Ikivo choose to work that way though. The main reason I believe is that they need to control who gets to run their code in order to manage expectations and make sure no one jumps to the wrong conclusions with regards to their SVGT 1.2 implementation. Indeed, SVGT 1.2 has been so far in heavy development, and implementations of it were constantly being improved and changed to match the latest changes in the specification. Just releasing this stuff into the wild could have had very negative impact to the untrained eye where people could have just lynched precious work for some odd incompatibility with the unstable specification.
&lt;/p&gt;

&lt;p&gt;
  Now that SVGT 1.2 has entered Candidate Recommendation, and can thus be considered stable, &lt;em&gt;it is time for all this to change&lt;/em&gt;. SVG Tiny 1.2 has an incredible feature set, and very big improvements over SVGT 1.1, much, much bigger than a 0.1 version number jump would suggest. The most obvious features are scripting with ECMAScript, audio and video support, fully synchronized with SVG animations, wrapped text within rectangles, gradient fills, transparency, etc. This new feature set is a big deal and opens up the door to a wide array of new usage for SVG on mobile devices and &lt;em&gt;everyone out there should be able to try it out&lt;/em&gt;.
&lt;/p&gt;

&lt;p&gt;
  Flash Lite 2 and SVG Tiny 1.2 can easily be considered as tie-breakers on a feature-per-feature basis. The downside of Flash Lite 2 is a general lack of support from mobile industry bodies, no integration with J2ME and, so far, an insufficient backing from manufacturers. But if there is one place where Flash Lite 2 fares better currently is that an SDK for it is readily available to everyone who wants to experience that technology today. I really think BitFlash, Ikivo and any other fine purveyor of Mobile SVG software need to make a move now so that SVGT 1.2 fully has the shot it deserves to be the number one rich media technology on mobile phones in 2007 and beyond. Content Development Kits, or CDKs, should be made available to small-size content and application developers with a simple EULA and software for Windows (supplementary platforms would be even better) and S60. As for providing support for these CDKs, I think we can anticipate strong communities to emerge as soon as these CDKs become available and limit the efforts needed to get successful programs running. 
&lt;/p&gt;

&lt;p&gt;
  Technology speaking, SVG Tiny 1.2 goes a long way towards what next-generation mobile services providers need, and the ball today is in the court of companies such as BitFlash, Ikivo, Opera and others to bridge the technology gap and provide evaluation players to hungry developers.
&lt;/p&gt;</content><link rel='alternate' type='text/html' href='http://the.fuchsia-design.com/2006/09/next-generation-mobile-svg-for-everyone.html' title='Next Generation Mobile SVG for Everyone'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7360043960312045726&amp;postID=2294874257956192535' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://the.fuchsia-design.com/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7360043960312045726/posts/default/2294874257956192535'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7360043960312045726/posts/default/2294874257956192535'/><author><name>Antoine Quint</name></author></entry><entry><id>tag:blogger.com,1999:blog-7360043960312045726.post-2968142998810494589</id><published>2006-09-13T01:50:00.000+01:00</published><updated>2006-11-04T23:39:28.096+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='textmate'/><title type='text'>TextMate Book</title><content type='html'>The &lt;a href="http://www.pragmaticprogrammer.com/"&gt;Pragmatic Programmers&lt;/a&gt; have a new title on the way with &lt;a href="http://www.pragmaticprogrammer.com/titles/textmate/index.html"&gt;TextMate: Power Editing for the Mac&lt;/a&gt;, a &lt;a href="http://www.pragmaticprogrammer.com/starter_kit/faqs/beta_faq.html"&gt;beta book&lt;/a&gt; on my everyday text editor and programming tool, &lt;a href="http://macromates.com/"&gt;TextMate&lt;/a&gt;. Beta books are a great idea, where you can track the development of the book as it's being written by the author. Updates are sent to you each time the author thinks he's achieved a new milestone in the writing process of the book, using PDF with hyperlinking to go back and forth within the book, fully annotated by the author, etc. When you buy a beta book, you can even choose to receive the retail, printed version once the book is done with for a little more money. Likely a great resource to a very powerful and extensible tool.</content><link rel='alternate' type='text/html' href='http://the.fuchsia-design.com/2006/09/textmate-book.html' title='TextMate Book'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7360043960312045726&amp;postID=2968142998810494589' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://the.fuchsia-design.com/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7360043960312045726/posts/default/2968142998810494589'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7360043960312045726/posts/default/2968142998810494589'/><author><name>Antoine Quint</name></author></entry><entry><id>tag:blogger.com,1999:blog-7360043960312045726.post-3592643190741280683</id><published>2006-09-08T06:10:00.000+01:00</published><updated>2007-01-17T11:23:20.391+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='svg'/><category scheme='http://www.blogger.com/atom/ns#' term='adobe'/><title type='text'>Adobe kill their SVG Viewer all too soon</title><content type='html'>&lt;p&gt;
After years of nothing much going on around it, the venerable &lt;a href="http://www.adobe.com/svg/"&gt;Adobe SVG Viewer&lt;/a&gt; is now &lt;a href="http://tech.groups.yahoo.com/group/svg-developers/message/56704"&gt;officially going to pass away&lt;/a&gt; as Paton Lewis, a veteran of the Adobe SVG team, just announced it on the Yahoo! Groups &lt;a href="http://groups.yahoo.com/group/svg-developers/"&gt;svg-developers&lt;/a&gt; list. Adobe also posted a &lt;a href="http://www.adobe.com/svg/pdfs/ASV_EOL_FAQ.pdf"&gt;short FAQ detailing the process&lt;/a&gt; of the end of life of &lt;acronym title="Adobe SVG Viewer"&gt;ASV&lt;/acronym&gt; and the key points are as follows:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Support for &lt;acronym title="Adobe SVG Viewer"&gt;ASV&lt;/acronym&gt; will cease on January 1st, 2007 and no more security patches will be issued&lt;/li&gt;
&lt;li&gt;There are know issues with running &lt;acronym title="Adobe SVG Viewer"&gt;ASV&lt;/acronym&gt; on Vista, and there will be no steps taken to ensure certification&lt;/li&gt;
&lt;li&gt;Distribution via the Adobe website is terminated as of January 1st, 2008&lt;/li&gt;
&lt;li&gt;Further distribution will be allowed on intranets, but not on public sites, as per the EULA&lt;/li&gt;
&lt;li&gt;Adobe does not have plans to release the source code for &lt;acronym title="Adobe SVG Viewer"&gt;ASV&lt;/acronym&gt;&lt;/li&gt;
&lt;li&gt;Existing SVG support in authoring tools is not under reconsideration&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
In today's situation, the gist of it is that &lt;em&gt;there will be no significant support for SVG within Internet Explorer come 2008&lt;/em&gt;. There have been strong rumors of Microsoft moving in the direction of supporting SVG natively in future versions of Internet Explorer beyond version 7, but there are no firm public statements as to when this support would materialize, and 16 months from now might well be too soon for Microsoft to unveil this anticipated support. The main problem is that no decision maker out there can afford to place a bet on such potentialities, and the only &lt;em&gt;real&lt;/em&gt; thing right now is that SVG support in Internet Explorer is going away fast.
&lt;/p&gt;
&lt;p&gt;
Now, the fact that Adobe has decided to publicly announce the end to their efforts supporting SVG on the client is no suprise and can in fact be welcomed as a sign for the entire community to focus on native support of SVG in the browser, which is a task advanced at varous stages for all of the major alternative browsers (Firefox, Opera and Safari). The problem is that, to be blunt, &lt;em&gt;Adobe is dropping the ball&lt;/em&gt; on this affair by pulling support and distribution much too soon. Adobe SVG alumnus emeritus Jon Ferraiolo, often regarded, and rightly so, as the &lt;q&gt;godfather of SVG&lt;/q&gt;, and now leading the Open AJAX initiative at IBM, has posted &lt;a href="http://tech.groups.yahoo.com/group/svg-developers/message/56723"&gt;a very spot-on response&lt;/a&gt; to his former's employer's announcement. Here are the key points:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Instead of mere months, Adobe should provide at least 2 to 4 years of continued support for the product&lt;/li&gt;
&lt;li&gt;Adobe should donate the high-level source code for the viewer to the open source community&lt;/li&gt;
&lt;li&gt;But the most irresponsible part is to &lt;em&gt;prevent any further distribution in 16 months&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
The last point to me is the key issue. Why would Adobe not continue distributing the plug-in via their website for years to come until native support in Internet Explorer is reliable enough or a viable plug-in alternative materializes. What would be the problem in just hosting a simple 3MB downloadable with just warnings about some of the known issues with Vista support? This move shows that further than officially telling the world that &lt;acronym title="Adobe SVG Viewer"&gt;ASV&lt;/acronym&gt; development is over, Adobe is really getting out of its way to actually prevent the SVG ecosystem to peacefully get on with its life. If I had to choose one part for Adobe to reconsider, it would definitely be that one. Waiting for 2009 seems an absolute minimum before halting the distribution of what, today still, remains one of the most advanced solution for rich graphics in the browser. It's no secret that, following the acquisition of Macromedia, Adobe has placed its eggs in another basket in terms of standards-based client technologies, but such an abrupt termination of service is a very inconsiderate move from a company that despite its shortcomings, and missed opportunities regarding SVG, has always been supportive of SVG's development on the internet and in more specific industries.
&lt;/p&gt;
&lt;p&gt;
At this point, it is not clear to me at all whether Adobe will be open to changes and discussions about how it proceeds to lay &lt;acronym title="Adobe SVG Viewer"&gt;ASV&lt;/acronym&gt; to rest. But the entire community should come together and send a clear message to Adobe that they are going too far and that these terms are unacceptable to the community at large. Meanwhile, we can all continue to applaud the great progress made across the last few months by Opera, who have tremendous SVG Basic 1.1 support across their entire offering with their Opera 9 product line, the Mozilla community gearing up for a fantastic Firefox 3.0 release in the first part of 2007 and Safari's WebKit rendering engine progressing every day. Now is also a good time for Microsoft to step forward and show their dedication to supporting and advancing the core, shared set of Web technologies that they have been advocating and show Adobe that standards-based rich graphics have a flourishing future ahead of them. 
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;UPDATE&lt;/strong&gt;: Given the feedback from the community asking for more flexible dates for both end of support and end of download, Adobe have pushed back the dates to, respectively, January 1st 2008 and January 1st 2009. This is a much more reasonable timeframe and reflects better on Adobe's business practices.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;UPDATE&lt;/strong&gt;: With the continuous pressure from the community, Adobe decided to extend the distribution of their SVG Viewer &lt;a href="http://tech.groups.yahoo.com/group/svg-developers/message/57694"&gt;indefinitely&lt;/a&gt;:
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
In response to customer feedback, Adobe has extended download
availability once again for Adobe SVG Viewer.
&lt;/p&gt;
&lt;p&gt;
Adobe does not currently have plans to remove Adobe SVG Viewer from
the Adobe.com download area. Adobe recognizes that customers have
built Web applications that depend on ASV being available for
download, and although Adobe does not plan to develop ASV further, we
plan for the existing versions to be available for download as long
as our customers rely on them.
&lt;/p&gt;
&lt;p&gt;
For the official announcement, please see &lt;a href="http://www.adobe.com/svg/
eol.html"&gt;http://www.adobe.com/svg/
eol.html&lt;/a&gt;
&lt;/p&gt;
&lt;/blockquote&gt;</content><link rel='alternate' type='text/html' href='http://the.fuchsia-design.com/2006/09/adobe-kill-their-svg-viewer-all-too.html' title='Adobe kill their SVG Viewer all too soon'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7360043960312045726&amp;postID=3592643190741280683' title='4 Comments'/><link rel='replies' type='application/atom+xml' href='http://the.fuchsia-design.com/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7360043960312045726/posts/default/3592643190741280683'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7360043960312045726/posts/default/3592643190741280683'/><author><name>Antoine Quint</name></author></entry><entry><id>tag:blogger.com,1999:blog-7360043960312045726.post-446600753331831061</id><published>2006-09-07T22:48:00.000+01:00</published><updated>2006-11-04T23:36:10.113+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='snippet'/><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='textmate'/><title type='text'>TextMate Snippet for JavaScript switch()</title><content type='html'>&lt;p&gt;
Gotta get started once on this blogging business, so I figure a light post about a quick and easy &lt;a href="http://macromates.com/"&gt;TextMate&lt;/a&gt; snippet will do the trick. Open up the Bundle Editor, select the JavaScript bundle, create a new snippet, enter &lt;code&gt;switch&lt;/code&gt; for the activation string (the one that you type and follow by the Tab key in order to activate in your code) and set up &lt;code&gt;source.js&lt;/code&gt; as the scope selector. The snippet itself is as follows:
&lt;/p&gt;
&lt;div class="code-snippet"&gt;
&lt;span style="color:#881350;"&gt;switch&lt;/span&gt;&lt;span style="color:#003369;"&gt; &lt;/span&gt;(${&lt;span style="color:#0000ff;"&gt;1&lt;/span&gt;:expression}) {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&lt;span style="color:#881350;"&gt;case&lt;/span&gt; &lt;span style="color:#760f15;"&gt;'${2:case}'&lt;/span&gt; : &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:#236e25;"&gt;// ${4:statements};&lt;br /&gt;
&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:#881350;"&gt;break&lt;/span&gt;;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&lt;span style="color:#881350;"&gt;case&lt;/span&gt; &lt;span style="color:#760f15;"&gt;'${3:case}'&lt;/span&gt; : &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:#236e25;"&gt;// ${5:statements};&lt;br /&gt;
&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:#881350;"&gt;break&lt;/span&gt;;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&lt;span style="color:#881350;"&gt;default&lt;/span&gt; :&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:#236e25;"&gt;// ${6:statements};&lt;br /&gt;
&lt;/span&gt;}
&lt;/div&gt;
&lt;p&gt;
Et voilà! I'll try to add more snippets and TextMate hacks in the future.  
&lt;/p&gt;</content><link rel='alternate' type='text/html' href='http://the.fuchsia-design.com/2006/09/textmate-snippet-for-javascript-switch.html' title='TextMate Snippet for JavaScript switch()'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7360043960312045726&amp;postID=446600753331831061' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://the.fuchsia-design.com/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7360043960312045726/posts/default/446600753331831061'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7360043960312045726/posts/default/446600753331831061'/><author><name>Antoine Quint</name></author></entry><entry><id>tag:blogger.com,1999:blog-7360043960312045726.post-6921795852433079919</id><published>2006-09-07T21:36:00.000+01:00</published><updated>2006-11-15T13:34:15.329+01:00</updated><title type='text'>About this weblog</title><content type='html'>Hi, my name is Antoine Quint, and this is my weblog! I'm no pundit, but I reckon I'd like to share what sometimes may pop into my head and may be noteworthy. Might be a little piece of code, might be some ramblings or praise, might very well be something you don't absolutely need to read, but here it is nonetheless. If you want to get to know me beyond what I might post here, here are some very blog-like links: my &lt;a href="http://flickr.com/photos/graouts/"&gt;flickr page&lt;/a&gt; and my &lt;a href="http://www.linkedin.com/in/AntoineQuint"&gt;LinkedIn profile&lt;/a&gt;. And in case you can't really take this style's page, well, you can always turn on a user style sheet, or just read this blog through a newsreader. I hope it proves enjoyable to read to some, and more importantly, to you. I'm out!</content><link rel='alternate' type='text/html' href='http://the.fuchsia-design.com/2006/09/about-this-weblog.html' title='About this weblog'/><link rel='replies' type='application/atom+xml' href='http://the.fuchsia-design.com/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7360043960312045726/posts/default/6921795852433079919'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7360043960312045726/posts/default/6921795852433079919'/><author><name>Antoine Quint</name></author></entry></feed>