<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:idx="urn:atom-extension:indexing" xmlns:gr="http://www.google.com/schemas/reader/atom/" xmlns:media="http://search.yahoo.com/mrss/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" idx:index="no"><!--
Content-type: Preventing XSRF in IE.

--><generator uri="http://www.google.com/reader">Google Reader</generator><id>tag:google.com,2005:reader/user/05325327707497594110/state/com.google/broadcast</id><title>wpbasti's shared items in Google Reader</title><gr:continuation>CL_uyNOb3JsC</gr:continuation><author><name>wpbasti</name></author><updated>2009-07-20T14:29:30Z</updated><link rel="self" href="http://feeds.feedburner.com/sebastian-werner/news" type="application/atom+xml" /><feedburner:feedFlare href="http://add.my.yahoo.com/rss?url=http%3A%2F%2Ffeeds.feedburner.com%2Fsebastian-werner%2Fnews" src="http://us.i1.yimg.com/us.yimg.com/i/us/my/addtomyyahoo4.gif">Subscribe with My Yahoo!</feedburner:feedFlare><feedburner:feedFlare href="http://www.newsgator.com/ngs/subscriber/subext.aspx?url=http%3A%2F%2Ffeeds.feedburner.com%2Fsebastian-werner%2Fnews" src="http://www.newsgator.com/images/ngsub1.gif">Subscribe with NewsGator</feedburner:feedFlare><feedburner:feedFlare href="http://feeds.my.aol.com/add.jsp?url=http%3A%2F%2Ffeeds.feedburner.com%2Fsebastian-werner%2Fnews" src="http://o.aolcdn.com/favorites.my.aol.com/webmaster/ffclient/webroot/locale/en-US/images/myAOLButtonSmall.gif">Subscribe with My AOL</feedburner:feedFlare><feedburner:feedFlare href="http://www.bloglines.com/sub/http://feeds.feedburner.com/sebastian-werner/news" src="http://www.bloglines.com/images/sub_modern11.gif">Subscribe with Bloglines</feedburner:feedFlare><feedburner:feedFlare href="http://www.netvibes.com/subscribe.php?url=http%3A%2F%2Ffeeds.feedburner.com%2Fsebastian-werner%2Fnews" src="http://www.netvibes.com/img/add2netvibes.gif">Subscribe with Netvibes</feedburner:feedFlare><feedburner:feedFlare href="http://fusion.google.com/add?feedurl=http%3A%2F%2Ffeeds.feedburner.com%2Fsebastian-werner%2Fnews" src="http://buttons.googlesyndication.com/fusion/add.gif">Subscribe with Google</feedburner:feedFlare><feedburner:feedFlare href="http://www.pageflakes.com/subscribe.aspx?url=http%3A%2F%2Ffeeds.feedburner.com%2Fsebastian-werner%2Fnews" src="http://www.pageflakes.com/ImageFile.ashx?instanceId=Static_4&amp;fileName=ATP_blu_91x17.gif">Subscribe with Pageflakes</feedburner:feedFlare><entry gr:crawl-timestamp-msec="1248100170568"><id gr:original-id="">tag:google.com,2005:reader/item/21d67b1c2f6f2214</id><title type="html">Skandale überall: Schützt uns vor Verbraucherschützern!</title><published>2009-07-20T14:29:30Z</published><updated>2009-07-20T14:29:30Z</updated><link rel="alternate" href="http://feedproxy.google.com/~r/sebastian-werner/news/~3/SjkEXbHguzg/Doc~EC7AD9F40D864409D84E4A876C4F2C07D~ATpl~Ecommon~Scontent.html" type="text/html" /><link rel="related" href="http://www.faz.net" title="Wirtschaft - FAZ.NET" /><content xml:base="http://www.faz.net/s/RubEC1ACFE1EE274C81BCD3621EF555C83C/Doc~EC7AD9F40D864409D84E4A876C4F2C07D~ATpl~Ecommon~Scontent.html?rss_wirtschaft" type="html">&lt;blockquote&gt;Shared by  wpbasti 
&lt;br&gt;
Sehr amüsanter Artikel aus der Sonntagszeitung. Die armen armen Verbraucher. ;)&lt;/blockquote&gt;
&lt;div style="clear:left"&gt;&lt;img style="float:left;padding-right:5px" src="http://www.faz.net/m/%7BD0DA54F0-05F2-4BC9-B6E2-6C72B0BCC4E1%7DFile2.jpg" border="0px" height="92" width="111"&gt;Verbraucherschützer führen sich als Retter der Menschheit auf. Dabei füttern sie uns mit Pseudoskandalen und Binsenweisheiten. Wenn sich kein Skandal findet, dann wird einer inszeniert.&lt;div style="border-top:1px solid rgb(122, 137, 204);margin:5px 0pt;font-family:arial;font-style:normal;font-variant:normal;font-weight:normal;font-size:10px;line-height:normal;font-size-adjust:none;font-stretch:normal;color:rgb(122, 137, 204);clear:both"&gt; &lt;a href="http://www.faz.net/s/homepage.html" style="font-size:10px;color:rgb(122, 137, 204);text-decoration:none"&gt;FAZ.NET - Homepage&lt;/a&gt; &lt;a href="http://www.faz.net/politik" style="font-size:10px;color:rgb(122, 137, 204);text-decoration:none"&gt; | Politik&lt;/a&gt; &lt;a href="http://www.faz.net/gesellschaft" style="font-size:10px;color:rgb(122, 137, 204);text-decoration:none"&gt; | Gesellschaft&lt;/a&gt; &lt;a href="http://www.faz.net/wirtschaft" style="font-size:10px;color:rgb(122, 137, 204);text-decoration:none"&gt; | Wirtschaft&lt;/a&gt; &lt;a href="http://www.faz.net/finanzmarkt" style="font-size:10px;color:rgb(122, 137, 204);text-decoration:none"&gt; | Finanzmarkt&lt;/a&gt; &lt;a href="http://www.faz.net/sport" style="font-size:10px;color:rgb(122, 137, 204);text-decoration:none"&gt; | Sport&lt;/a&gt; &lt;a href="http://www.faz.net/feuilleton" style="font-size:10px;color:rgb(122, 137, 204);text-decoration:none"&gt; | Feuilleton&lt;/a&gt; &lt;a href="http://www.faz.net/reise" style="font-size:10px;color:rgb(122, 137, 204);text-decoration:none"&gt; | Reise&lt;/a&gt; &lt;a href="http://www.faz.net/wissen" style="font-size:10px;color:rgb(122, 137, 204);text-decoration:none"&gt; | Wissen&lt;/a&gt; &lt;a href="http://www.faz.net/auto" style="font-size:10px;color:rgb(122, 137, 204);text-decoration:none"&gt; | Auto&lt;/a&gt; &lt;a href="http://www.faz.net/computer" style="font-size:10px;color:rgb(122, 137, 204);text-decoration:none"&gt; | Computer&lt;/a&gt; &lt;/div&gt; &lt;/div&gt;
&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/sebastian-werner/news?a=SjkEXbHguzg:1CExicqLxhc:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sebastian-werner/news?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/sebastian-werner/news?a=SjkEXbHguzg:1CExicqLxhc:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sebastian-werner/news?i=SjkEXbHguzg:1CExicqLxhc:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/sebastian-werner/news?a=SjkEXbHguzg:1CExicqLxhc:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sebastian-werner/news?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/sebastian-werner/news?a=SjkEXbHguzg:1CExicqLxhc:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sebastian-werner/news?i=SjkEXbHguzg:1CExicqLxhc:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</content><author gr:unknown-author="true"><name>(author unknown)</name></author><gr:annotation><content type="html">Sehr amüsanter Artikel aus der Sonntagszeitung. Die armen armen Verbraucher. ;)</content><author gr:user-id="05325327707497594110" gr:profile-id="103933975894958686177"><name>wpbasti</name></author></gr:annotation><source gr:stream-id="user/05325327707497594110/source/com.google/link"><id>tag:google.com,2005:reader/user/05325327707497594110/source/com.google/link</id><title type="html">Wirtschaft - FAZ.NET</title><link rel="alternate" href="http://www.faz.net" type="text/html" /></source><feedburner:origLink>http://www.faz.net/s/RubEC1ACFE1EE274C81BCD3621EF555C83C/Doc~EC7AD9F40D864409D84E4A876C4F2C07D~ATpl~Ecommon~Scontent.html?rss_wirtschaft</feedburner:origLink></entry><entry gr:crawl-timestamp-msec="1248079628779"><id gr:original-id="">tag:google.com,2005:reader/item/b85b788a495237c7</id><title type="html">Microsoft Popfly streckt die Flügel</title><published>2009-07-20T08:47:08Z</published><updated>2009-07-20T08:47:08Z</updated><link rel="alternate" href="http://feedproxy.google.com/~r/sebastian-werner/news/~3/9-98lDFE0UU/rss09" type="text/html" /><link rel="related" href="http://www.heise.de/newsticker/" title="heise online News" /><author gr:unknown-author="true"><name>(author unknown)</name></author><gr:annotation><content type="html">Vor zwei Jahren oder so hörte sich das ganz gut an. Microsoft stellt alles ein was Spass macht ;)</content><author gr:user-id="05325327707497594110" gr:profile-id="103933975894958686177"><name>wpbasti</name></author></gr:annotation><source gr:stream-id="user/05325327707497594110/source/com.google/link"><id>tag:google.com,2005:reader/user/05325327707497594110/source/com.google/link</id><title type="html">heise online News</title><link rel="alternate" href="http://www.heise.de/newsticker/" type="text/html" /></source><content type="html">&lt;blockquote&gt;Shared by  wpbasti 
&lt;br&gt;
Vor zwei Jahren oder so hörte sich das ganz gut an. Microsoft stellt alles ein was Spass macht ;)&lt;/blockquote&gt;

&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/sebastian-werner/news?a=9-98lDFE0UU:khuVj4FvvP4:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sebastian-werner/news?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/sebastian-werner/news?a=9-98lDFE0UU:khuVj4FvvP4:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sebastian-werner/news?i=9-98lDFE0UU:khuVj4FvvP4:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/sebastian-werner/news?a=9-98lDFE0UU:khuVj4FvvP4:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sebastian-werner/news?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/sebastian-werner/news?a=9-98lDFE0UU:khuVj4FvvP4:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sebastian-werner/news?i=9-98lDFE0UU:khuVj4FvvP4:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</content><feedburner:origLink>http://www.heise.de/newsticker/Microsoft-Popfly-streckt-die-Fluegel--/meldung/142174/from/rss09</feedburner:origLink></entry><entry gr:crawl-timestamp-msec="1248079560861"><id gr:original-id="">tag:google.com,2005:reader/item/01383620403f7f09</id><title type="html">How Apple.com Would Have Looked in 1983 [Image Cache]</title><published>2009-07-20T08:46:00Z</published><updated>2009-07-20T08:46:00Z</updated><link rel="alternate" href="http://feedproxy.google.com/~r/sebastian-werner/news/~3/sZUSVmK9OE8/how-applecom-would-have-looked-in-1983" type="text/html" /><link rel="related" href="http://gizmodo.com" title="Gizmodo" /><content xml:base="http://feeds.gawker.com/~r/gizmodo/full/~3/8F-gnJAkfj0/how-applecom-would-have-looked-in-1983" type="html">&lt;blockquote&gt;Shared by  wpbasti 
&lt;br&gt;
Execellent work :)&lt;/blockquote&gt;
&lt;p&gt;&lt;a rel="lytebox" href="http://cache.gawker.com/assets/images/gizmodo/2009/07/17-apple_1983.jpg"&gt;&lt;img src="http://cache.gawker.com/assets/images/4/2009/07/504x_17-apple_1983.jpg" width="500"&gt;&lt;/a&gt;Do you know what this is, dear Apple fanboys and haters? From the beige to the menu bar items to the Lisa Office or the iPhone, this 1983 take on Apple.com's frontpage is pure genius. That's exactly what this is.&lt;/p&gt; &lt;p&gt;&lt;i&gt;(click on the image for full resolution)&lt;/i&gt;&lt;/p&gt; &lt;p&gt;Dave Lawrence, the author, explains:&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;Little project of mine: imagine Apple.com in 1983. The Apple Lisa is new, the Mac is still a year away. It's imaginary, of course, considering the iPhone and Apple even hinting at the Macintosh publicly. Still... fun to imagine.&lt;/p&gt; &lt;/blockquote&gt; &lt;p&gt;Fun to see too. I can't have enough of that "BASIC" in the menu items. [&lt;a href="http://www.flickr.com/photos/davelawrence8/3663647101/"&gt;Flickr&lt;/a&gt; via &lt;a href="http://macmagazine.uol.com.br/2009/07/17/veja-como-seria-o-apple-com-se-ele-existisse-em-1983-d/"&gt;Macmagazine—In Brazilian&lt;/a&gt;]&lt;/p&gt; &lt;br style="clear:both"&gt;
&lt;br style="clear:both"&gt;
&lt;a href="http://ads.pheedo.com/click.phdo?s=5881a58f479f4e465f7ebf45d8bc13f0&amp;amp;p=1"&gt;&lt;img alt="" style="border:0pt none" src="http://ads.pheedo.com/img.phdo?s=5881a58f479f4e465f7ebf45d8bc13f0&amp;amp;p=1" border="0"&gt;&lt;/a&gt;&lt;p&gt;&lt;iframe src="http://feedads.g.doubleclick.net/%7Eah/f/2vrroe33vbbeargtb2gi9i1pqg/300/250?ca=1&amp;amp;fh=280#http%3A%2F%2Fgizmodo.com%2F5316974%2Fhow-applecom-would-have-looked-in-1983" marginwidth="0" marginheight="0" frameborder="0" height="280" scrolling="no" width="100%"&gt;&lt;/iframe&gt;&lt;/p&gt;&lt;div&gt;
&lt;a href="http://feeds.gawker.com/%7Eff/gizmodo/full?a=8F-gnJAkfj0:bD3kyzTeMyQ:H0mrP-F8Qgo"&gt;&lt;img src="http://feeds.feedburner.com/%7Eff/gizmodo/full?d=H0mrP-F8Qgo" border="0"&gt;&lt;/a&gt; &lt;a href="http://feeds.gawker.com/%7Eff/gizmodo/full?a=8F-gnJAkfj0:bD3kyzTeMyQ:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/%7Eff/gizmodo/full?d=yIl2AUoC8zA" border="0"&gt;&lt;/a&gt; &lt;a href="http://feeds.gawker.com/%7Eff/gizmodo/full?a=8F-gnJAkfj0:bD3kyzTeMyQ:D7DqB2pKExk"&gt;&lt;img src="http://feeds.feedburner.com/%7Eff/gizmodo/full?i=8F-gnJAkfj0:bD3kyzTeMyQ:D7DqB2pKExk" border="0"&gt;&lt;/a&gt; &lt;a href="http://feeds.gawker.com/%7Eff/gizmodo/full?a=8F-gnJAkfj0:bD3kyzTeMyQ:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/%7Eff/gizmodo/full?i=8F-gnJAkfj0:bD3kyzTeMyQ:V_sGLiPBpWU" border="0"&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/%7Er/gizmodo/full/%7E4/8F-gnJAkfj0" height="1" width="1"&gt;
&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/sebastian-werner/news?a=sZUSVmK9OE8:axldjaVT6Rs:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sebastian-werner/news?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/sebastian-werner/news?a=sZUSVmK9OE8:axldjaVT6Rs:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sebastian-werner/news?i=sZUSVmK9OE8:axldjaVT6Rs:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/sebastian-werner/news?a=sZUSVmK9OE8:axldjaVT6Rs:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sebastian-werner/news?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/sebastian-werner/news?a=sZUSVmK9OE8:axldjaVT6Rs:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sebastian-werner/news?i=sZUSVmK9OE8:axldjaVT6Rs:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</content><author gr:unknown-author="true"><name>(author unknown)</name></author><gr:likingUser>07903867122182284978</gr:likingUser><gr:annotation><content type="html">Execellent work :)</content><author gr:user-id="05325327707497594110" gr:profile-id="103933975894958686177"><name>wpbasti</name></author></gr:annotation><source gr:stream-id="user/05325327707497594110/source/com.google/link"><id>tag:google.com,2005:reader/user/05325327707497594110/source/com.google/link</id><title type="html">Gizmodo</title><link rel="alternate" href="http://gizmodo.com" type="text/html" /></source><feedburner:origLink>http://feeds.gawker.com/~r/gizmodo/full/~3/8F-gnJAkfj0/how-applecom-would-have-looked-in-1983</feedburner:origLink></entry><entry gr:crawl-timestamp-msec="1248079170511"><id gr:original-id="">tag:google.com,2005:reader/item/0ee59042a43a3b39</id><title type="html">Ex-Milliardärin: Die arglose Frau Schickedanz</title><published>2009-07-20T08:39:30Z</published><updated>2009-07-20T08:39:30Z</updated><link rel="alternate" href="http://feedproxy.google.com/~r/sebastian-werner/news/~3/phMwGQ-AC_U/542012.html" type="text/html" /><link rel="related" href="http://www.ftd.de/" title="Financial Times Deutschland" /><content xml:base="http://www.ftd.de/unternehmen/handel_dienstleister/542012.html?nv=cd-topnews" type="html">&lt;blockquote&gt;Shared by  wpbasti 
&lt;br&gt;
Hilfe, wie naiv.&lt;/blockquote&gt;
Die einstige Arcandor-Milliardärin Schickedanz lebt von nur noch 600 Euro im Monat und kauft bei Discountern ein. Das mag so manchen erschrecken. Viel schockierender ist allerdings ihre unternehmerische Naivität.
&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/sebastian-werner/news?a=phMwGQ-AC_U:GD8K54cUdvc:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sebastian-werner/news?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/sebastian-werner/news?a=phMwGQ-AC_U:GD8K54cUdvc:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sebastian-werner/news?i=phMwGQ-AC_U:GD8K54cUdvc:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/sebastian-werner/news?a=phMwGQ-AC_U:GD8K54cUdvc:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sebastian-werner/news?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/sebastian-werner/news?a=phMwGQ-AC_U:GD8K54cUdvc:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sebastian-werner/news?i=phMwGQ-AC_U:GD8K54cUdvc:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</content><author gr:unknown-author="true"><name>(author unknown)</name></author><gr:annotation><content type="html">Hilfe, wie naiv.</content><author gr:user-id="05325327707497594110" gr:profile-id="103933975894958686177"><name>wpbasti</name></author></gr:annotation><source gr:stream-id="user/05325327707497594110/source/com.google/link"><id>tag:google.com,2005:reader/user/05325327707497594110/source/com.google/link</id><title type="html">Financial Times Deutschland</title><link rel="alternate" href="http://www.ftd.de/" type="text/html" /></source><feedburner:origLink>http://www.ftd.de/unternehmen/handel_dienstleister/542012.html?nv=cd-topnews</feedburner:origLink></entry><entry gr:crawl-timestamp-msec="1248078702115"><id gr:original-id="">tag:google.com,2005:reader/item/269a8f2659ce16db</id><title type="html">2009-07-19 Trunk builds</title><published>2009-07-20T08:31:42Z</published><updated>2009-07-20T08:31:42Z</updated><link rel="alternate" href="http://feedproxy.google.com/~r/sebastian-werner/news/~3/cHBa5UfwZ2k/" type="text/html" /><link rel="related" href="http://www.squarefree.com/burningedge" title="The Burning Edge" /><content xml:base="http://www.squarefree.com/burningedge/2009/07/19/2009-07-19-trunk-builds/" type="html">&lt;blockquote&gt;Shared by  wpbasti 
&lt;br&gt;
Finally "onhashchange" support in Mozilla.&lt;/blockquote&gt;
&lt;div&gt;


&lt;p&gt;Fixes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Fixed: &lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=487949"&gt;487949&lt;/a&gt; - Land HTML5 parser, preffed off (in about:config, html5.enable).&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Fixed: &lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=385434"&gt;385434&lt;/a&gt; - Add support for HTML5 onhashchange (event for named anchor changes).&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Fixed: &lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=499538"&gt;499538&lt;/a&gt; - Arabic letters are disconnected in edit fields.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Fixed: &lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=500233"&gt;500233&lt;/a&gt;, &lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=500317"&gt;500317&lt;/a&gt; - Make some cycle collector information accessible to memory tools.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Fixed: &lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=503942"&gt;503942&lt;/a&gt; - Implement Geolocation Addresses.&lt;/li&gt;
&lt;li&gt;Fixed(?): &lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=76053"&gt;76053&lt;/a&gt; - Windows mouse integration: "Snap to default button in dialog boxes".&lt;/li&gt;
&lt;li&gt;Fixed: &lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=176244"&gt;176244&lt;/a&gt; - Fix column resize and reorder issues when direction is rtl.&lt;/li&gt;
&lt;li&gt;Fixed: &lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=259199"&gt;259199&lt;/a&gt; - Tooltips don't work in the sidebar.&lt;/li&gt;
&lt;li&gt;Fixed: &lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=500822"&gt;500822&lt;/a&gt; - Importing passwords to mozstorage can fail when signons3.txt is corrupted.&lt;/li&gt;
&lt;li&gt;Fixed: &lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=442399"&gt;442399&lt;/a&gt; - Remove LiveConnect from the tree.&lt;/li&gt;
&lt;li&gt;Fixed: &lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=421351"&gt;421351&lt;/a&gt; - Allow styling richlistitems with -moz-appearance:menuitem.&lt;/li&gt;
&lt;li&gt;Fixed: &lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=479667"&gt;479667&lt;/a&gt; - Firefox should use SetProcessDEPPolicy to enable NX on XP SP3.&lt;/li&gt;
&lt;li&gt;Fixed: &lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=329869"&gt;329869&lt;/a&gt; - Dynamically loaded scripts don't degrade security state.&lt;/li&gt;
&lt;li&gt;Fixed: &lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=457809"&gt;457809&lt;/a&gt; - Speculatively load images from preloading.&lt;/li&gt;
&lt;li&gt;Fixed: &lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=500846"&gt;500846&lt;/a&gt; - Can't create xmlhttprequest from within JS component.&lt;/li&gt;
&lt;li&gt;Fixed: &lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=482788"&gt;482788&lt;/a&gt; - Lightweight DOM wrappers.&lt;/li&gt;
&lt;li&gt;Fixed: &lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=492866"&gt;492866&lt;/a&gt; - Nanojit: variable-width LIR.&lt;/li&gt;
&lt;li&gt;Fixed: &lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=502374"&gt;502374&lt;/a&gt; - Don't call cycle collector so often.&lt;/li&gt;
&lt;li&gt;Fixed: &lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=500925"&gt;500925&lt;/a&gt; - Don't unload plugins as soon as possible by default.&lt;/li&gt;
&lt;li&gt;Fixed: &lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=200505"&gt;200505&lt;/a&gt; - Optimization of jsref array_join_sub() function.&lt;/li&gt;
&lt;li&gt;Fixed: &lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=456721"&gt;456721&lt;/a&gt; - Control GC frequency/a high water mark of Tracemonkey via about:config.&lt;/li&gt;

&lt;/ul&gt;


&lt;p&gt;Fixes for recent regressions:&lt;/p&gt;
&lt;ul&gt;
&lt;/ul&gt;



&lt;p&gt;&lt;a href="http://hg.mozilla.org/mozilla-central/pushloghtml?startdate=2009-06-28+04%3A00%3A00&amp;amp;enddate=2009-07-19+04%3A00%3A00"&gt;mozilla-central pushlog for 2009-06-28 04:00 to 2009-07-19 04:00&lt;/a&gt;&lt;/p&gt;


&lt;p&gt;
&lt;img src="http://www.squarefree.com/burningedge/winicon.png" alt="Windows builds:" height="18" width="18"&gt;

&lt;a href="https://ftp.mozilla.org/pub/mozilla.org/firefox/nightly/2009/07/2009-07-19-04-mozilla-central/"&gt;Windows nightly&lt;/a&gt;

(&lt;a href="http://forums.mozillazine.org/viewtopic.php?t=1365355"&gt;discussion&lt;/a&gt;)&lt;/p&gt;



&lt;p&gt;
&lt;img src="http://www.squarefree.com/burningedge/macosx.png" alt="Mac builds:" height="18" width="18"&gt;

&lt;a href="https://ftp.mozilla.org/pub/mozilla.org/firefox/nightly/2009/07/2009-07-19-03-mozilla-central/"&gt;Mac nightly&lt;/a&gt;

&lt;/p&gt;


&lt;p&gt;

&lt;img src="http://www.squarefree.com/burningedge/linuxicon.gif" alt="Linux builds:" height="18" width="18"&gt;

&lt;a href="https://ftp.mozilla.org/pub/mozilla.org/firefox/nightly/2009/07/2009-07-19-03-mozilla-central/"&gt;Linux nightly&lt;/a&gt;

&lt;/p&gt;


&lt;/div&gt;
&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/sebastian-werner/news?a=cHBa5UfwZ2k:iEo_zYn2nuA:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sebastian-werner/news?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/sebastian-werner/news?a=cHBa5UfwZ2k:iEo_zYn2nuA:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sebastian-werner/news?i=cHBa5UfwZ2k:iEo_zYn2nuA:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/sebastian-werner/news?a=cHBa5UfwZ2k:iEo_zYn2nuA:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sebastian-werner/news?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/sebastian-werner/news?a=cHBa5UfwZ2k:iEo_zYn2nuA:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sebastian-werner/news?i=cHBa5UfwZ2k:iEo_zYn2nuA:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</content><author gr:unknown-author="true"><name>(author unknown)</name></author><gr:annotation><content type="html">Finally "onhashchange" support in Mozilla.</content><author gr:user-id="05325327707497594110" gr:profile-id="103933975894958686177"><name>wpbasti</name></author></gr:annotation><source gr:stream-id="user/05325327707497594110/source/com.google/link"><id>tag:google.com,2005:reader/user/05325327707497594110/source/com.google/link</id><title type="html">The Burning Edge</title><link rel="alternate" href="http://www.squarefree.com/burningedge" type="text/html" /></source><feedburner:origLink>http://www.squarefree.com/burningedge/2009/07/19/2009-07-19-trunk-builds/</feedburner:origLink></entry><entry gr:crawl-timestamp-msec="1248078525818"><id gr:original-id="">tag:google.com,2005:reader/item/4c2ba9178fd854db</id><title type="html">Milliardenverluste: Regierung gesteht Opel-Misere ein</title><published>2009-07-20T08:28:45Z</published><updated>2009-07-20T08:28:45Z</updated><link rel="alternate" href="http://feedproxy.google.com/~r/sebastian-werner/news/~3/tlwR6uksp_M/542148.html" type="text/html" /><link rel="related" href="http://www.ftd.de/" title="Financial Times Deutschland" /><content xml:base="http://www.ftd.de/unternehmen/autoindustrie/542148.html?nv=cd-topnews" type="html">&lt;blockquote&gt;Shared by  wpbasti 
&lt;br&gt;
Das Opel nicht rentabel und sinnvoll zu erhalten ist, war ja vorher klar. Hier kommen noch ein paar Details um das zu untermauern.&lt;/blockquote&gt;
Es ist die Geschichte eines Niedergangs: Mitten im Bieterrennen um den Rüsselsheimer Autobauer kommt heraus, dass Opel seit 2003 durchgehend Verluste geschrieben hat. Wer den angeschlagenen Hersteller übernehmen wird, will GM noch diesen Monat entscheiden.
&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/sebastian-werner/news?a=tlwR6uksp_M:GN6oUB_t4yM:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sebastian-werner/news?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/sebastian-werner/news?a=tlwR6uksp_M:GN6oUB_t4yM:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sebastian-werner/news?i=tlwR6uksp_M:GN6oUB_t4yM:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/sebastian-werner/news?a=tlwR6uksp_M:GN6oUB_t4yM:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sebastian-werner/news?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/sebastian-werner/news?a=tlwR6uksp_M:GN6oUB_t4yM:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sebastian-werner/news?i=tlwR6uksp_M:GN6oUB_t4yM:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</content><author gr:unknown-author="true"><name>(author unknown)</name></author><gr:annotation><content type="html">Das Opel nicht rentabel und sinnvoll zu erhalten ist, war ja vorher klar. Hier kommen noch ein paar Details um das zu untermauern.</content><author gr:user-id="05325327707497594110" gr:profile-id="103933975894958686177"><name>wpbasti</name></author></gr:annotation><source gr:stream-id="user/05325327707497594110/source/com.google/link"><id>tag:google.com,2005:reader/user/05325327707497594110/source/com.google/link</id><title type="html">Financial Times Deutschland</title><link rel="alternate" href="http://www.ftd.de/" type="text/html" /></source><feedburner:origLink>http://www.ftd.de/unternehmen/autoindustrie/542148.html?nv=cd-topnews</feedburner:origLink></entry><entry gr:crawl-timestamp-msec="1247871628952"><id gr:original-id="">tag:google.com,2005:reader/item/bc003e748b8d87e1</id><title type="html">Google Says Mobile Web Apps Will Win In The Long Haul</title><published>2009-07-17T23:00:28Z</published><updated>2009-07-17T23:00:28Z</updated><link rel="alternate" href="http://feedproxy.google.com/~r/sebastian-werner/news/~3/s1tZPAtjbjM/" type="text/html" /><link rel="related" href="http://www.mobilecrunch.com" title="MobileCrunch" /><content xml:base="http://www.mobilecrunch.com/2009/07/17/google-says-mobile-web-apps-will-win/" type="html">&lt;blockquote&gt;Shared by  wpbasti 
&lt;br&gt;
Quote: "The advantages of web apps, such as instant deployment and simplified cross compatibility, are too great to pass up."&lt;/blockquote&gt;
&lt;ul&gt;
&lt;img src="http://www.mobilecrunch.com/wp-content/uploads/2009/07/droidcloud.png" alt="droidcloud" title="droidcloud" width="500" height="375"&gt;
&lt;p&gt;Native Apps, or Web Apps? It’s the great debate of the mobile world right now, essentially fueling the platform wars from behind the scenes. Palm took the Web App route with the Pre and webOS, though with the &lt;a href="http://www.crunchgear.com/2009/07/16/palm-opens-the-mojo-sdk-for-all-new-pre-apps-forthcoming/"&gt;SDK just now available to all&lt;/a&gt; its a bit too early to gauge that decision. The iPhone began its life with Web Apps, only to later open up native support and become the apotheosis of how app development and distribution can be done.  Even Google, who will try to jam just about anything into the cloud, is putting a lot of weight behind running things locally on their Android platform.&lt;/p&gt;
&lt;p&gt;Still, Google VP of Engineering Vic Gundotra says Web Apps are the way.&lt;/p&gt;
&lt;p&gt;During a panel at &lt;a href="http://mobilebeat2009.com/"&gt;Mobilebeat 2009&lt;/a&gt;, Gundotra put his full support behind the Web:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;“We believe the web has won and over the next several years, the browser, for economic reasons almost, will become the platform that matters and certainly that’s where Google is investing.”&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;For developers currently accustomed to developing in Objective-C or J2ME, this might sound like crazy talk; in its current state, the only time we turn to the mobile web for app development is for the most basic of services. Twitter client? Sure. Complex 3D games? Yeah, probably not.&lt;/p&gt;
&lt;p&gt;But that could very well change. With the advancement of HTML5 and Web App-centric SDK’s like Palm’s Mojo, the limitations are dwindling. Inch by inch, function by function, handset functionality is becoming web accessible. Already, some handsets are allowing applications to tie into their accelerometers and GPS receivers. As mobile broadband speeds increase and APIs are opened up, what’s really to keep us from piping those complex 3D games from afar?&lt;/p&gt;
&lt;p&gt;To think that applications are always going to be completely locally ran is short-sighted; once the functionality of web-based applications is on par with that of native applications, the line blurs. Once the consumer can’t tell the difference between something running on their handset and something coming off the web, they stop caring. If the consumer is no longer resisting, the advantages of web apps, such as instant deployment and simplified cross compatibility, are too great to pass up.&lt;/p&gt;
&lt;p&gt;Vic Gundotra acknowledged Apple’s move from Web App to Native, implying that Apple was simply a bit ahead of the times:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt; “I think Steve [Jobs] really did understand that, over the long term, it would be the web, and I think that’s how things will play out.”&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;We’d agree with Vic here. It’s not going to happen tomorrow, nor even in the next year - but the short list of reasons to develop natively is growing shorter each day.&lt;/p&gt;
&lt;p&gt;[Via &lt;a href="http://blogs.ft.com/techblog/2009/07/app-stores-are-not-the-future-says-google/"&gt;FinancialTimes&lt;/a&gt;]&lt;/p&gt;&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;&lt;em&gt;Crunch Network&lt;/em&gt;&lt;/strong&gt;:  &lt;a href="http://www.crunchgear.com"&gt;CrunchGear&lt;/a&gt;&lt;em&gt; &lt;/em&gt;drool over the sexiest new gadgets and hardware.&lt;/p&gt;
&lt;p&gt;&lt;iframe src="http://feedads.g.doubleclick.net/~ah/f/r0prj8i3ck982ahgpv2itggnno/300/250?ca=1&amp;amp;fh=280#http%3A%2F%2Fwww.mobilecrunch.com%2F2009%2F07%2F17%2Fgoogle-says-mobile-web-apps-will-win%2F" width="100%" height="280" frameborder="0" scrolling="no" marginwidth="0" marginheight="0"&gt;&lt;/iframe&gt;&lt;/p&gt;&lt;div&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Mobilecrunch?a=s1tZPAtjbjM:S6loF_V-cPQ:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Mobilecrunch?i=s1tZPAtjbjM:S6loF_V-cPQ:V_sGLiPBpWU" border="0"&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Mobilecrunch?a=s1tZPAtjbjM:S6loF_V-cPQ:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Mobilecrunch?i=s1tZPAtjbjM:S6loF_V-cPQ:F7zBnMyn0Lo" border="0"&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Mobilecrunch?a=s1tZPAtjbjM:S6loF_V-cPQ:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Mobilecrunch?d=yIl2AUoC8zA" border="0"&gt;&lt;/a&gt;
&lt;/div&gt;
&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/sebastian-werner/news?a=s1tZPAtjbjM:n5hVl4ICASU:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sebastian-werner/news?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/sebastian-werner/news?a=s1tZPAtjbjM:n5hVl4ICASU:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sebastian-werner/news?i=s1tZPAtjbjM:n5hVl4ICASU:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/sebastian-werner/news?a=s1tZPAtjbjM:n5hVl4ICASU:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sebastian-werner/news?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/sebastian-werner/news?a=s1tZPAtjbjM:n5hVl4ICASU:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sebastian-werner/news?i=s1tZPAtjbjM:n5hVl4ICASU:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</content><author gr:unknown-author="true"><name>(author unknown)</name></author><gr:annotation><content type="html">Quote: "The advantages of web apps, such as instant deployment and simplified cross compatibility, are too great to pass up."</content><author gr:user-id="05325327707497594110" gr:profile-id="103933975894958686177"><name>wpbasti</name></author></gr:annotation><source gr:stream-id="user/05325327707497594110/source/com.google/link"><id>tag:google.com,2005:reader/user/05325327707497594110/source/com.google/link</id><title type="html">MobileCrunch</title><link rel="alternate" href="http://www.mobilecrunch.com" type="text/html" /></source><feedburner:origLink>http://www.mobilecrunch.com/2009/07/17/google-says-mobile-web-apps-will-win/</feedburner:origLink></entry><entry gr:crawl-timestamp-msec="1247871275712"><id gr:original-id="">tag:google.com,2005:reader/item/f39315f6d015a46b</id><title type="html">Nokia sells off Symbian professional services to Accenture</title><published>2009-07-17T22:54:35Z</published><updated>2009-07-17T22:54:35Z</updated><link rel="alternate" href="http://feedproxy.google.com/~r/sebastian-werner/news/~3/-R7e7-kQccc/" type="text/html" /><link rel="related" href="http://venturebeat.com" title="VentureBeat" /><content xml:base="http://feedproxy.google.com/~r/Venturebeat/~3/6jFiIl0SERs/" type="html">&lt;blockquote&gt;Shared by  wpbasti 
&lt;br&gt;
So with every step they made away from Symbian they might get nearer to Android. Nothing wrong with that.&lt;/blockquote&gt;
&lt;p&gt;&lt;a rel="attachment wp-att-115350" href="http://venturebeat.com/2009/07/17/nokia-sells-off-symbian-professional-services-to-accenture/symbian2/"&gt;&lt;img title="symbian2" src="http://venturebeat.com/wp-content/uploads/2009/07/symbian2.jpg" alt="symbian2" width="247" height="129"&gt;&lt;/a&gt;When Nokia purchased Symbian a year ago, the supersize phone maker’s explicit plan was to open up Symbian’s mobile platform as a partly open-source suite of software, so that application developers would feel comfortable developing for it, as well as contributing their improvements to Symbian’s OS.&lt;/p&gt;
&lt;p&gt;Today, Nokia &lt;a href="http://www.nokia.com/press/press-releases/showpressrelease?newsid=1329543"&gt;announced the sale&lt;/a&gt; of its Symbian professional services group to Accenture, a move meant to further distance Symbian from Nokia or any other handset maker. All 165 of the group’s employees are being transferrred from Nokia to Accenture, a process that Nokia says will be completed by the end of September.&lt;/p&gt;
&lt;p&gt;&lt;iframe src="http://feedads.g.doubleclick.net/~ah/f/50vbd3s7jh0alkkesivac4omss/468/60#http%3A%2F%2Fventurebeat.com%2F2009%2F07%2F17%2Fnokia-sells-off-symbian-professional-services-to-accenture%2F" width="100%" height="60" frameborder="0" scrolling="no" marginwidth="0" marginheight="0"&gt;&lt;/iframe&gt;&lt;/p&gt;&lt;div&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Venturebeat?a=6jFiIl0SERs:UK3eXL3WV1o:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Venturebeat?d=yIl2AUoC8zA" border="0"&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Venturebeat?a=6jFiIl0SERs:UK3eXL3WV1o:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Venturebeat?d=qj6IDK7rITs" border="0"&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Venturebeat?a=6jFiIl0SERs:UK3eXL3WV1o:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Venturebeat?i=6jFiIl0SERs:UK3eXL3WV1o:V_sGLiPBpWU" border="0"&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Venturebeat?a=6jFiIl0SERs:UK3eXL3WV1o:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Venturebeat?d=I9og5sOYxJI" border="0"&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Venturebeat?a=6jFiIl0SERs:UK3eXL3WV1o:D7DqB2pKExk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Venturebeat?i=6jFiIl0SERs:UK3eXL3WV1o:D7DqB2pKExk" border="0"&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Venturebeat/~4/6jFiIl0SERs" height="1" width="1"&gt;
&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/sebastian-werner/news?a=-R7e7-kQccc:RWssaOLWqpo:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sebastian-werner/news?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/sebastian-werner/news?a=-R7e7-kQccc:RWssaOLWqpo:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sebastian-werner/news?i=-R7e7-kQccc:RWssaOLWqpo:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/sebastian-werner/news?a=-R7e7-kQccc:RWssaOLWqpo:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sebastian-werner/news?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/sebastian-werner/news?a=-R7e7-kQccc:RWssaOLWqpo:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sebastian-werner/news?i=-R7e7-kQccc:RWssaOLWqpo:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</content><author gr:unknown-author="true"><name>(author unknown)</name></author><gr:annotation><content type="html">So with every step they made away from Symbian they might get nearer to Android. Nothing wrong with that.</content><author gr:user-id="05325327707497594110" gr:profile-id="103933975894958686177"><name>wpbasti</name></author></gr:annotation><source gr:stream-id="user/05325327707497594110/source/com.google/link"><id>tag:google.com,2005:reader/user/05325327707497594110/source/com.google/link</id><title type="html">VentureBeat</title><link rel="alternate" href="http://venturebeat.com" type="text/html" /></source><feedburner:origLink>http://feedproxy.google.com/~r/Venturebeat/~3/6jFiIl0SERs/</feedburner:origLink></entry><entry gr:crawl-timestamp-msec="1247870646354"><id gr:original-id="">tag:google.com,2005:reader/item/3606d268eff2c6cb</id><title type="html">The HTC Hero has landed... in our hands</title><published>2009-07-17T22:44:06Z</published><updated>2009-07-17T22:44:06Z</updated><link rel="alternate" href="http://feedproxy.google.com/~r/sebastian-werner/news/~3/olGvm3Rt1SM/" type="text/html" /><link rel="related" href="http://www.engadget.com" title="Engadget" /><content xml:base="http://www.engadget.com/2009/07/17/the-htc-hero-has-landed-in-our-hands/" type="html">&lt;blockquote&gt;Shared by  wpbasti 
&lt;br&gt;
First impression seems to be good. Waiting for a full review.&lt;/blockquote&gt;
&lt;div align="center"&gt;&lt;a href="http://www.engadget.com/photos/htc-hero-lands-at-engadget/"&gt;&lt;img hspace="4" vspace="4" border="1" alt="" src="http://www.blogcdn.com/www.engadget.com/media/2009/07/hero_main_1.jpg"&gt;&lt;/a&gt;&lt;br&gt;&lt;/div&gt;
Guess what the Gadget Stork delivered on our doorstep today? A robot baby? No. Better. An actual, real, &lt;strike&gt;in-the-Teflon&lt;/strike&gt; &lt;a href="http://www.engadget.com/tag/HTCHero/"&gt;HTC Hero&lt;/a&gt;. Let's just say this -- it's pretty much the sexiest Android device ever created. We're not going to go into too much detail right now, as we're planning on delivering a full review next week, but we do want to say that this thing has our eyes glazed over like Scrooge McDuck checking out a pile of gold... if you know what we mean. HTC has truly outdone themselves here, not only with build quality (the thing kind of feels like a luxurious rock in your hand -- it's a good thing), but so far the software seems truly outstanding as well. Of course, we haven't taken the deep dive yet, so for now, feast your eyes on these photos, and get ready for the main event.&lt;br&gt;&lt;strong&gt;&lt;br&gt;Update:&lt;/strong&gt; Oh why, HTC? Apparently, this thing ain't covered in Teflon at all. According to the company's PR, only the white models are getting the dirt-resistant treatment. We're guessing the unit we have is just sporting a regular, soft-touch coating. It feels good and all... but now it seems so much less special.&lt;br&gt;&lt;div&gt;&lt;p&gt;&lt;strong&gt;Gallery: &lt;a href="http://www.engadget.com/photos/htc-hero-lands-at-engadget/"&gt;HTC Hero lands at Engadget&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;&lt;a href="http://www.engadget.com/photos/htc-hero-lands-at-engadget/2150782/"&gt;&lt;img src="http://www.blogcdn.com/www.engadget.com/media/2009/07/hero_hands_808_thumbnail.jpg" alt="" title=""&gt;&lt;/a&gt;&lt;a href="http://www.engadget.com/photos/htc-hero-lands-at-engadget/2150792/"&gt;&lt;img src="http://www.blogcdn.com/www.engadget.com/media/2009/07/hero_hands_812_thumbnail.jpg" alt="" title=""&gt;&lt;/a&gt;&lt;a href="http://www.engadget.com/photos/htc-hero-lands-at-engadget/2150800/"&gt;&lt;img src="http://www.blogcdn.com/www.engadget.com/media/2009/07/hero_hands_826_thumbnail.jpg" alt="" title=""&gt;&lt;/a&gt;&lt;a href="http://www.engadget.com/photos/htc-hero-lands-at-engadget/2150775/"&gt;&lt;img src="http://www.blogcdn.com/www.engadget.com/media/2009/07/hero_hands_801_thumbnail.jpg" alt="" title=""&gt;&lt;/a&gt;&lt;a href="http://www.engadget.com/photos/htc-hero-lands-at-engadget/2150794/"&gt;&lt;img src="http://www.blogcdn.com/www.engadget.com/media/2009/07/hero_hands_816_thumbnail.jpg" alt="" title=""&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;Filed under: &lt;a href="http://www.engadget.com/category/cellphones/" rel="tag"&gt;Cellphones&lt;/a&gt;&lt;/p&gt;&lt;p style="padding:5px;background:#ddd;border:1px solid #ccc;clear:both"&gt;&lt;a href="http://www.engadget.com/2009/07/17/the-htc-hero-has-landed-in-our-hands/"&gt;The HTC Hero has landed... in our hands&lt;/a&gt; originally appeared on &lt;a href="http://www.engadget.com"&gt;Engadget&lt;/a&gt; on Fri, 17 Jul 2009 15:28:00 EST.  Please see our &lt;a href="http://www.weblogsinc.com/feed-terms/"&gt;terms for use of feeds&lt;/a&gt;.&lt;/p&gt;&lt;h6 style="clear:both;padding:8px 0 0 0;height:2px;font-size:1px;border:0;margin:0;padding:0"&gt;&lt;/h6&gt;&lt;a href="http://www.engadget.com/2009/07/17/the-htc-hero-has-landed-in-our-hands/" rel="bookmark" title="Permanent link to this entry"&gt;Permalink&lt;/a&gt; | &lt;a href="http://www.engadget.com/forward/19102341/" title="Send this entry to a friend via email"&gt;Email this&lt;/a&gt; | &lt;a href="http://www.engadget.com/2009/07/17/the-htc-hero-has-landed-in-our-hands/#comments" title="View reader comments on this entry"&gt;Comments&lt;/a&gt;
&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/sebastian-werner/news?a=olGvm3Rt1SM:oWy2DuggIyI:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sebastian-werner/news?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/sebastian-werner/news?a=olGvm3Rt1SM:oWy2DuggIyI:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sebastian-werner/news?i=olGvm3Rt1SM:oWy2DuggIyI:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/sebastian-werner/news?a=olGvm3Rt1SM:oWy2DuggIyI:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sebastian-werner/news?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/sebastian-werner/news?a=olGvm3Rt1SM:oWy2DuggIyI:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sebastian-werner/news?i=olGvm3Rt1SM:oWy2DuggIyI:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</content><author gr:unknown-author="true"><name>(author unknown)</name></author><gr:annotation><content type="html">First impression seems to be good. Waiting for a full review.</content><author gr:user-id="05325327707497594110" gr:profile-id="103933975894958686177"><name>wpbasti</name></author></gr:annotation><source gr:stream-id="user/05325327707497594110/source/com.google/link"><id>tag:google.com,2005:reader/user/05325327707497594110/source/com.google/link</id><title type="html">Engadget</title><link rel="alternate" href="http://www.engadget.com" type="text/html" /></source><feedburner:origLink>http://www.engadget.com/2009/07/17/the-htc-hero-has-landed-in-our-hands/</feedburner:origLink></entry><entry gr:crawl-timestamp-msec="1247870055359"><id gr:original-id="">tag:google.com,2005:reader/item/d447cd5af61bc630</id><title type="html">Twitter Users Agree: IE6 Must Die</title><published>2009-07-17T22:34:15Z</published><updated>2009-07-17T22:34:15Z</updated><link rel="alternate" href="http://feedproxy.google.com/~r/sebastian-werner/news/~3/T151tXPY9D4/" type="text/html" /><link rel="related" href="http://mashable.com" title="Mashable!" /><content xml:base="http://mashable.com/2009/07/17/ie6-must-die-twibon/" type="html">&lt;blockquote&gt;Shared by  wpbasti 
&lt;br&gt;
Nice idea :)&lt;/blockquote&gt;
&lt;p&gt;&lt;img src="http://ec.mashable.com/wp-content/uploads/2009/05/ripie.gif" alt="IE6 Must Die Image"&gt;Yesterday, we published a story entitled &lt;strong&gt;&lt;a href="http://mashable.com/2009/07/16/ie6-must-die/"&gt;IE6 Must Die for the Web to Move On&lt;/a&gt;&lt;/strong&gt;, which analyzes HTML 5, the future of the web, and the roadblock that Internet Explorer 6 poses to web innovation.  While we thought people would agree with us, we couldn’t have ever imagined the &lt;a href="http://digg.com/tech_news/IE6_Must_Die_for_the_Web_to_Move_On"&gt;overwhelming&lt;/a&gt; &lt;a href="http://twitter.com/#search?q=%22IE6%20Must%20Die%22"&gt;response&lt;/a&gt; of the social web.  Apparently a lot of you just can’t stand the 8 year old browser.&lt;/p&gt;
&lt;p&gt;Now one Twitter user, &lt;a href="http://twitter.com/lynchjames"&gt;James Lynch (@lynchjames)&lt;/a&gt; has seized the momentum and taken matters into his own hands.  Specifically, he has used &lt;a href="http://twibbon.com/"&gt;Twibbon&lt;/a&gt;, a service that overlays a small icon onto your profile picture, to create a &lt;a href="http://twibbon.com/join/IE6-Must-Die"&gt;Twitter petition&lt;/a&gt; to rally support for ending the use of IE6.  Now, the Twibbon petition is gaining steam, as nearly a dozen people a minute are adding a “No to IE6″ image to their profile pictures.&lt;br&gt;
&lt;span&gt;&lt;/span&gt;&lt;br&gt;
We are fans of user activism through social media – it’s widely believed that a Twititon for &lt;a href="http://mashable.com/2009/06/09/iphone-twitter-petitions/"&gt;lowering the price&lt;/a&gt; of iPhone 3G S upgrades was central to AT&amp;amp;T caving to consumer and &lt;a href="http://mashable.com/2009/06/17/att-iphone-3gs/"&gt;offering $199 iPhone 3G S mobiles&lt;/a&gt; to its unhappy userbase.  &lt;/p&gt;
&lt;p&gt;It’s clear that campaigns like the &lt;a href="http://twibbon.com/join/IE6-Must-Die"&gt;IE6 Must Die Petition&lt;/a&gt; can be effective at rallying support and awareness for a cause, although as we pointed out in our original article, the people that must be convinced aren’t the leadership at Microsoft, but the managers at outdated IT departments and the websites that still put significant resources toward IE6 support (hint to developers: charge more for IE6 support!).  &lt;/p&gt;
&lt;p&gt;In other words, don’t expect a Twitition to quickly fix this Internet-wide problem, but we definitely hope companies, websites, and media take notice.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;center&gt;&lt;br&gt;
&lt;img src="http://ec.mashable.com/wp-content/uploads/2009/07/twibbon-ie6-die.jpg" alt="Twibbon IE6 Must Die Image"&gt;&lt;/center&gt;&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;hr&gt;Reviews: &lt;a href="http://www.blippr.com/apps/336748-Internet-Explorer"&gt;Internet Explorer&lt;/a&gt;, &lt;a href="http://www.blippr.com/apps/336651-Twitter"&gt;Twitter&lt;/a&gt;
&lt;p&gt;Tags: &lt;a href="http://mashable.com/tag/ie6/"&gt;IE6&lt;/a&gt;, &lt;a href="http://mashable.com/tag/internet-explorer/"&gt;internet explorer&lt;/a&gt;, &lt;a href="http://mashable.com/tag/microsot/"&gt;Microsot&lt;/a&gt;, &lt;a href="http://mashable.com/tag/twibbon/"&gt;Twibbon&lt;/a&gt;, &lt;a href="http://mashable.com/tag/twitition/"&gt;twitition&lt;/a&gt;, &lt;a href="http://mashable.com/tag/twitter/"&gt;twitter&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;iframe src="http://feedads.g.doubleclick.net/~ah/f/9m6h8omben53fuj7ghgrctkjc8/300/250?ca=1&amp;amp;fh=280#http%3A%2F%2Fmashable.com%2F2009%2F07%2F17%2Fie6-must-die-twibon%2F" width="100%" height="280" frameborder="0" scrolling="no" marginwidth="0" marginheight="0"&gt;&lt;/iframe&gt;&lt;/p&gt;&lt;div&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Mashable?a=T151tXPY9D4:0evwuhJO_6Y:D7DqB2pKExk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Mashable?i=T151tXPY9D4:0evwuhJO_6Y:D7DqB2pKExk" border="0"&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Mashable?a=T151tXPY9D4:0evwuhJO_6Y:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Mashable?i=T151tXPY9D4:0evwuhJO_6Y:V_sGLiPBpWU" border="0"&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Mashable?a=T151tXPY9D4:0evwuhJO_6Y:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Mashable?i=T151tXPY9D4:0evwuhJO_6Y:F7zBnMyn0Lo" border="0"&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Mashable?a=T151tXPY9D4:0evwuhJO_6Y:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Mashable?d=qj6IDK7rITs" border="0"&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Mashable?a=T151tXPY9D4:0evwuhJO_6Y:_e0tkf89iUM"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Mashable?d=_e0tkf89iUM" border="0"&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Mashable?a=T151tXPY9D4:0evwuhJO_6Y:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Mashable?i=T151tXPY9D4:0evwuhJO_6Y:gIN9vFwOqvQ" border="0"&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Mashable?a=T151tXPY9D4:0evwuhJO_6Y:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Mashable?d=yIl2AUoC8zA" border="0"&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Mashable?a=T151tXPY9D4:0evwuhJO_6Y:P0ZAIrC63Ok"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Mashable?d=P0ZAIrC63Ok" border="0"&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Mashable?a=T151tXPY9D4:0evwuhJO_6Y:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Mashable?d=I9og5sOYxJI" border="0"&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Mashable?a=T151tXPY9D4:0evwuhJO_6Y:CC-BsrAYo0A"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Mashable?d=CC-BsrAYo0A" border="0"&gt;&lt;/a&gt;
&lt;/div&gt;
&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/sebastian-werner/news?a=T151tXPY9D4:okiordvd4LQ:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sebastian-werner/news?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/sebastian-werner/news?a=T151tXPY9D4:okiordvd4LQ:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sebastian-werner/news?i=T151tXPY9D4:okiordvd4LQ:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/sebastian-werner/news?a=T151tXPY9D4:okiordvd4LQ:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sebastian-werner/news?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/sebastian-werner/news?a=T151tXPY9D4:okiordvd4LQ:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sebastian-werner/news?i=T151tXPY9D4:okiordvd4LQ:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</content><author gr:unknown-author="true"><name>(author unknown)</name></author><gr:annotation><content type="html">Nice idea :)</content><author gr:user-id="05325327707497594110" gr:profile-id="103933975894958686177"><name>wpbasti</name></author></gr:annotation><source gr:stream-id="user/05325327707497594110/source/com.google/link"><id>tag:google.com,2005:reader/user/05325327707497594110/source/com.google/link</id><title type="html">Mashable!</title><link rel="alternate" href="http://mashable.com" type="text/html" /></source><feedburner:origLink>http://mashable.com/2009/07/17/ie6-must-die-twibon/</feedburner:origLink></entry><entry gr:crawl-timestamp-msec="1247835962575"><id gr:original-id="">tag:google.com,2005:reader/item/6bea20081c4afe47</id><title type="html">an overview of TraceMonkey</title><published>2009-07-17T13:06:02Z</published><updated>2009-07-17T13:06:02Z</updated><link rel="alternate" href="http://feedproxy.google.com/~r/sebastian-werner/news/~3/6inAjw1Svok/" type="text/html" /><link rel="related" href="http://hacks.mozilla.org" title="hacks.mozilla.org" /><content xml:base="http://hacks.mozilla.org/2009/07/tracemonkey-overview/" type="html">&lt;blockquote&gt;Shared by  wpbasti 
&lt;br&gt;
Impressive numbers... and also an interesting read for the C++ and Java guys out there.&lt;/blockquote&gt;
&lt;p&gt;&lt;em&gt;This post was written by &lt;a href="http://blog.mozilla.com/dmandelin/"&gt;David Mandelin&lt;/a&gt; who works on Mozilla’s JavaScript team.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Firefox 3.5 has a new JavaScript engine, TraceMonkey, that runs many JavaScript programs 3-4x faster than Firefox 3, speeding up existing web apps and enabling new ones. This article gives a peek under the hood at the major parts of TraceMonkey and how they speed up JS. This will also explain what kinds of programs get the best speedup from TraceMonkey and what kinds of things you can do to get your program to run faster. &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Why it’s hard to run JS fast: dynamic typing&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;High-level dynamic languages such as JavaScript and Python make programming more productive, but they have always been slow compared to statically typed languages like Java or C. A typical rule of thumb was that a JS program might be 10x slower than an equivalent Java program.&lt;/p&gt;
&lt;p&gt;There are two main reasons JS and other dynamic scripting languages usually run slower than Java or C. The first reason is that in dynamic languages it is generally not possible to determine the types of values ahead of time. Because of this, the language must store all values in a generic format and process values using generic operations.&lt;/p&gt;
&lt;p&gt;In Java, by contrast, the programmer declares types for variables and methods, so the compiler can determine the types of values ahead of time. The compiler can then generate code that uses specialized formats and operations that run much faster than generic operations. I will call these &lt;strong&gt;type-specialized&lt;/strong&gt; operations.&lt;/p&gt;
&lt;p&gt;The second main reason that dynamic languages run slower is that scripting languages are usually implemented with interpreters, while statically typed languages are compiled to native code. Interpreters are easier to create, but they incur extra runtime overhead for tracking their internal state. Languages like Java compile to machine language, which requires almost no state tracking overhead.&lt;/p&gt;
&lt;p&gt;Let’s make this concrete with a picture.  Here are the slowdowns in picture form for a simple numeric add operation: &lt;code&gt;a + b&lt;/code&gt;, where &lt;code&gt;a&lt;/code&gt; and &lt;code&gt;b&lt;/code&gt; are integers. For now, ignore the rightmost bar and focus on the comparison of the Firefox 3 JavaScript interpreter vs. a Java JIT.  Each column shows the steps that have to be done to complete the add operation in each programming language. Time goes downward, and the height of each box is proportional to the time it takes to finish the steps in the box.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://hacks.mozilla.org/wp-content/uploads/2009/07/complexity.png"&gt;&lt;img src="http://hacks.mozilla.org/wp-content/uploads/2009/07/complexity.png" alt="time diagram of add operation" width="500"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;In the middle, Java simply runs one machine language add instruction, which runs in time T (one processor cycle). Because the Java compiler knows that the operands are standard machine integers, it can use a standard integer add machine language instruction. That’s it.&lt;/p&gt;
&lt;p&gt;On the left, SpiderMonkey (the JS interpreter in FF3) takes about 40 times as long. The brown boxes are interpreter overhead: the interpreter must read the add operation and jump to the interpreter’s code for a generic add. The orange boxes represent extra work that has to be done because the interpreter doesn’t know the operand types. The interpreter has to unpack the generic representations of &lt;code&gt;a&lt;/code&gt; and &lt;code&gt;i&lt;/code&gt;, figure out their types, select the specific addition operation, convert the values to the right types, and at the end, convert the result back to a generic format.&lt;/p&gt;
&lt;p&gt;The diagram shows that using an interpreter instead of a compiler is slowing things down a little bit, but not having type information is slowing things down a lot. If we want JS to run more than a little faster than in FF3, by &lt;a href="http://en.wikipedia.org/wiki/Amdahl%27s_law"&gt;Amdahl’s law&lt;/a&gt;, we need to do something about types.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Getting types by tracing&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Our goal in TraceMonkey is to compile type-specialized code. To do that, TraceMonkey needs to know the types of variables. But JavaScript doesn’t have type declarations, and we also said that it’s practically impossible for a JS engine to figure out the types ahead of time. So if we want to just compile everything ahead of time, we’re stuck.&lt;/p&gt;
&lt;p&gt;So let’s turn the problem around. If we let the program run for a bit in an interpreter, the engine can directly &lt;em&gt;observe&lt;/em&gt; the types of values. Then, the engine can use those types to compile fast type-specialized code. Finally, the engine can start running the type-specialized code, and it will run much faster.&lt;/p&gt;
&lt;p&gt;There are a few key details about this idea. First, when the program runs, even if there are many if statements and other branches, the program always goes only one way. So the engine doesn’t get to observe types for a whole method — the engine observes types through the paths, which we call &lt;em&gt;traces&lt;/em&gt;, that the program actually takes. Thus, while standard compilers compile methods, TraceMonkey compiles traces. One side benefit of trace-at-a-time compilation is that function calls that happen on a trace are inlined, making traced function calls very fast.&lt;/p&gt;
&lt;p&gt;Second, compiling type-specialized code takes time. If a piece of code is going to run only one or a few times, which is common with web code, it can easily take more time to compile and run the code than it would take to simply run the code in an interpreter. So it only pays to compile &lt;em&gt;hot code&lt;/em&gt; (code that is executed many times). In TraceMonkey, we arrange this by tracing only loops. TraceMonkey initially runs everything in the interpreter, and starts recording traces through a loop once it gets hot (runs more than a few times).&lt;/p&gt;
&lt;p&gt;Tracing only hot loops has an important consequence: code that runs only a few times won’t speed up in TraceMonkey. Note that this usually doesn’t matter in practice, because code that runs only a few times usually runs too fast to be noticeable. Another consequence is that paths through a loop that are not taken at all never need to be compiled, saving compile time.&lt;/p&gt;
&lt;p&gt;Finally, above we said that TraceMonkey figures out the types of values by observing execution, but as we all know, past performance does not guarantee future results: the types might be different the next time the code is run, or the 500th next time. And if we try to run code that was compiled for numbers when the values are actually strings, very bad things will happen. So TraceMonkey must insert type checks into the compiled code. If a check doesn’t pass, TraceMonkey must leave the current trace and compile a new trace for the new types. This means that code with many branches or type changes tends to run a little slower in TraceMonkey, because it takes time to compile the extra traces and jump from one to another.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;TraceMonkey in action&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Now, we’ll show tracing in action by example on this sample program, which adds the first N whole numbers to a starting value:&lt;/p&gt;

&lt;div&gt;&lt;div&gt;&lt;pre style="font-family:monospace"&gt; &lt;span style="color:rgb(0, 51, 102);font-weight:bold"&gt;function&lt;/span&gt; addTo&lt;span style="color:rgb(0, 153, 0)"&gt;(&lt;/span&gt;a&lt;span style="color:rgb(51, 153, 51)"&gt;,&lt;/span&gt; n&lt;span style="color:rgb(0, 153, 0)"&gt;)&lt;/span&gt; &lt;span style="color:rgb(0, 153, 0)"&gt;{&lt;/span&gt;
   &lt;span style="color:rgb(0, 0, 102);font-weight:bold"&gt;for&lt;/span&gt; &lt;span style="color:rgb(0, 153, 0)"&gt;(&lt;/span&gt;&lt;span style="color:rgb(0, 51, 102);font-weight:bold"&gt;var&lt;/span&gt; i &lt;span style="color:rgb(51, 153, 51)"&gt;=&lt;/span&gt; &lt;span style="color:rgb(204, 0, 0)"&gt;0&lt;/span&gt;&lt;span style="color:rgb(51, 153, 51)"&gt;;&lt;/span&gt; i &lt;span style="color:rgb(51, 153, 51)"&gt;&amp;lt;&lt;/span&gt; n&lt;span style="color:rgb(51, 153, 51)"&gt;;&lt;/span&gt; &lt;span style="color:rgb(51, 153, 51)"&gt;++&lt;/span&gt;i&lt;span style="color:rgb(0, 153, 0)"&gt;)&lt;/span&gt;
     a &lt;span style="color:rgb(51, 153, 51)"&gt;=&lt;/span&gt; a &lt;span style="color:rgb(51, 153, 51)"&gt;+&lt;/span&gt; i&lt;span style="color:rgb(51, 153, 51)"&gt;;&lt;/span&gt;
   &lt;span style="color:rgb(0, 0, 102);font-weight:bold"&gt;return&lt;/span&gt; a&lt;span style="color:rgb(51, 153, 51)"&gt;;&lt;/span&gt;
 &lt;span style="color:rgb(0, 153, 0)"&gt;}&lt;/span&gt;
 
 &lt;span style="color:rgb(0, 51, 102);font-weight:bold"&gt;var&lt;/span&gt; t0 &lt;span style="color:rgb(51, 153, 51)"&gt;=&lt;/span&gt; &lt;span style="color:rgb(0, 51, 102);font-weight:bold"&gt;new&lt;/span&gt; Date&lt;span style="color:rgb(0, 153, 0)"&gt;(&lt;/span&gt;&lt;span style="color:rgb(0, 153, 0)"&gt;)&lt;/span&gt;&lt;span style="color:rgb(51, 153, 51)"&gt;;&lt;/span&gt;
 &lt;span style="color:rgb(0, 51, 102);font-weight:bold"&gt;var&lt;/span&gt; n &lt;span style="color:rgb(51, 153, 51)"&gt;=&lt;/span&gt; addTo&lt;span style="color:rgb(0, 153, 0)"&gt;(&lt;/span&gt;0&lt;span style="color:rgb(51, 153, 51)"&gt;,&lt;/span&gt; 10000000&lt;span style="color:rgb(0, 153, 0)"&gt;)&lt;/span&gt;&lt;span style="color:rgb(51, 153, 51)"&gt;;&lt;/span&gt;
 &lt;span style="color:rgb(0, 0, 102)"&gt;print&lt;/span&gt;&lt;span style="color:rgb(0, 153, 0)"&gt;(&lt;/span&gt;n&lt;span style="color:rgb(0, 153, 0)"&gt;)&lt;/span&gt;&lt;span style="color:rgb(51, 153, 51)"&gt;;&lt;/span&gt;
 &lt;span style="color:rgb(0, 0, 102)"&gt;print&lt;/span&gt;&lt;span style="color:rgb(0, 153, 0)"&gt;(&lt;/span&gt;&lt;span style="color:rgb(0, 51, 102);font-weight:bold"&gt;new&lt;/span&gt; Date&lt;span style="color:rgb(0, 153, 0)"&gt;(&lt;/span&gt;&lt;span style="color:rgb(0, 153, 0)"&gt;)&lt;/span&gt; &lt;span style="color:rgb(51, 153, 51)"&gt;-&lt;/span&gt; t0&lt;span style="color:rgb(0, 153, 0)"&gt;)&lt;/span&gt;&lt;span style="color:rgb(51, 153, 51)"&gt;;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;TraceMonkey always starts running the program in the &lt;em&gt;interpreter&lt;/em&gt;. Every time the program starts a loop iteration, TraceMonkey briefly enters &lt;em&gt;monitoring&lt;/em&gt; mode to increment a counter for that loop. In FF3.5, when the counter reaches 2, the loop is considered hot and it’s time to trace.&lt;/p&gt;
&lt;p&gt;Now TraceMonkey continues running in the interpreter but starts &lt;em&gt;recording&lt;/em&gt; a trace as the code runs. The trace is simply the code that runs up to the end of the loop, along with the types used. The types are determined by looking at the actual values. In our example, the loop executes this sequence of JavaScript statements, which becomes our trace:&lt;/p&gt;

&lt;div&gt;&lt;div&gt;&lt;pre style="font-family:monospace"&gt;    a &lt;span style="color:rgb(51, 153, 51)"&gt;=&lt;/span&gt; a &lt;span style="color:rgb(51, 153, 51)"&gt;+&lt;/span&gt; i&lt;span style="color:rgb(51, 153, 51)"&gt;;&lt;/span&gt;    &lt;span style="color:rgb(0, 102, 0);font-style:italic"&gt;// a is an integer number (0 before, 1 after)&lt;/span&gt;
    &lt;span style="color:rgb(51, 153, 51)"&gt;++&lt;/span&gt;i&lt;span style="color:rgb(51, 153, 51)"&gt;;&lt;/span&gt;          &lt;span style="color:rgb(0, 102, 0);font-style:italic"&gt;// i is an integer number (1 before, 2 after)&lt;/span&gt;
    &lt;span style="color:rgb(0, 0, 102);font-weight:bold"&gt;if&lt;/span&gt; &lt;span style="color:rgb(0, 153, 0)"&gt;(&lt;/span&gt;&lt;span style="color:rgb(51, 153, 51)"&gt;!&lt;/span&gt;&lt;span style="color:rgb(0, 153, 0)"&gt;(&lt;/span&gt;i &lt;span style="color:rgb(51, 153, 51)"&gt;&amp;lt;&lt;/span&gt; n&lt;span style="color:rgb(0, 153, 0)"&gt;)&lt;/span&gt;&lt;span style="color:rgb(0, 153, 0)"&gt;)&lt;/span&gt; &lt;span style="color:rgb(0, 102, 0);font-style:italic"&gt;// n is an integer number (10000000)&lt;/span&gt;
      &lt;span style="color:rgb(0, 0, 102);font-weight:bold"&gt;break&lt;/span&gt;&lt;span style="color:rgb(51, 153, 51)"&gt;;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;That’s what the trace looks like in a JavaScript-like notation. But TraceMonkey needs more information in order to compile the trace. The real trace looks more like this:&lt;/p&gt;

&lt;div&gt;&lt;div&gt;&lt;pre style="font-family:monospace"&gt;  trace_1_start&lt;span style="color:rgb(51, 153, 51)"&gt;:&lt;/span&gt;
    &lt;span style="color:rgb(51, 153, 51)"&gt;++&lt;/span&gt;i&lt;span style="color:rgb(51, 153, 51)"&gt;;&lt;/span&gt;            &lt;span style="color:rgb(102, 102, 102);font-style:italic"&gt;// i is an integer number (0 before, 1 after)&lt;/span&gt;
    temp &lt;span style="color:rgb(51, 153, 51)"&gt;=&lt;/span&gt; a &lt;span style="color:rgb(51, 153, 51)"&gt;+&lt;/span&gt; i&lt;span style="color:rgb(51, 153, 51)"&gt;;&lt;/span&gt;   &lt;span style="color:rgb(102, 102, 102);font-style:italic"&gt;// a is an integer number (1 before, 2 after)&lt;/span&gt;
    &lt;span style="color:rgb(177, 177, 0)"&gt;if&lt;/span&gt; &lt;span style="color:rgb(0, 153, 0)"&gt;(&lt;/span&gt;lastOperationOverflowed&lt;span style="color:rgb(0, 153, 0)"&gt;(&lt;/span&gt;&lt;span style="color:rgb(0, 153, 0)"&gt;)&lt;/span&gt;&lt;span style="color:rgb(0, 153, 0)"&gt;)&lt;/span&gt;
      exit_trace&lt;span style="color:rgb(0, 153, 0)"&gt;(&lt;/span&gt;OVERFLOWED&lt;span style="color:rgb(0, 153, 0)"&gt;)&lt;/span&gt;&lt;span style="color:rgb(51, 153, 51)"&gt;;&lt;/span&gt;
    a &lt;span style="color:rgb(51, 153, 51)"&gt;=&lt;/span&gt; temp&lt;span style="color:rgb(51, 153, 51)"&gt;;&lt;/span&gt;
    &lt;span style="color:rgb(177, 177, 0)"&gt;if&lt;/span&gt; &lt;span style="color:rgb(0, 153, 0)"&gt;(&lt;/span&gt;&lt;span style="color:rgb(51, 153, 51)"&gt;!&lt;/span&gt;&lt;span style="color:rgb(0, 153, 0)"&gt;(&lt;/span&gt;i &lt;span style="color:rgb(51, 153, 51)"&gt;&amp;lt;&lt;/span&gt; n&lt;span style="color:rgb(0, 153, 0)"&gt;)&lt;/span&gt;&lt;span style="color:rgb(0, 153, 0)"&gt;)&lt;/span&gt;   &lt;span style="color:rgb(102, 102, 102);font-style:italic"&gt;// n is an integer number (10000000)&lt;/span&gt;
      exit_trace&lt;span style="color:rgb(0, 153, 0)"&gt;(&lt;/span&gt;BRANCHED&lt;span style="color:rgb(0, 153, 0)"&gt;)&lt;/span&gt;&lt;span style="color:rgb(51, 153, 51)"&gt;;&lt;/span&gt;
    &lt;span style="color:rgb(177, 177, 0)"&gt;goto&lt;/span&gt; trace_1_start&lt;span style="color:rgb(51, 153, 51)"&gt;;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;This trace represents a loop, and it should be compiled as a loop, so we express that directly using a &lt;code&gt;goto&lt;/code&gt;. Also, integer addition can overflow, which requires special handling (for example, redoing with floating-point addition), which in turn requires exiting the trace. So the trace must include an overflow check. Finally, the trace exits in the same way if the loop condition is false. The exit codes tell TraceMonkey why the trace was exited, so that TraceMonkey can decide what to do next (such as whether to redo the add or exit the loop). Note that traces are recorded in a special internal format that is never exposed to the programmer — the notation used above is just for expository purposes.&lt;/p&gt;
&lt;p&gt;After recording, the trace is ready to be &lt;em&gt;compiled&lt;/em&gt; to type-specialized machine code.  This compilation is performed by a tiny JIT compiler (named, appropriately enough, &lt;em&gt;nanojit&lt;/em&gt;) and the results are stored in memory, ready to be executed by the CPU.&lt;/p&gt;
&lt;p&gt;The next time the interpreter passes the loop header, TraceMonkey will start &lt;em&gt;executing&lt;/em&gt; the compiled trace. The program now runs very fast.&lt;/p&gt;
&lt;p&gt;On iteration 65537, the integer addition will overflow. (2147450880 + 65537 = 2147516417, which is greater than 2^31-1 = 2147483647, the largest signed 32-bit integer.) At this point, the trace exits with an &lt;code&gt;OVERFLOWED&lt;/code&gt; code. Seeing this, TraceMonkey will return to interpreter mode and redo the addition. Because the interpreter does everything generically, the addition overflow is handled and everything works as normal. TraceMonkey will also start monitoring this exit point, and if the overflow exit point ever becomes hot, a new trace will be started from that point.&lt;/p&gt;
&lt;p&gt;But in this particular program, what happens instead is that the program passes the loop header again. TraceMonkey knows it has a trace for this point, but TraceMonkey also knows it can’t use that trace because that trace was for integer values, but &lt;code&gt;a&lt;/code&gt; is now in a floating-point format. So TraceMonkey records a new trace:&lt;/p&gt;

&lt;div&gt;&lt;div&gt;&lt;pre style="font-family:monospace"&gt;  trace_2_start&lt;span style="color:rgb(51, 153, 51)"&gt;:&lt;/span&gt;
    &lt;span style="color:rgb(51, 153, 51)"&gt;++&lt;/span&gt;i&lt;span style="color:rgb(51, 153, 51)"&gt;;&lt;/span&gt;            &lt;span style="color:rgb(102, 102, 102);font-style:italic"&gt;// i is an integer number&lt;/span&gt;
    a &lt;span style="color:rgb(51, 153, 51)"&gt;=&lt;/span&gt; a &lt;span style="color:rgb(51, 153, 51)"&gt;+&lt;/span&gt; i&lt;span style="color:rgb(51, 153, 51)"&gt;;&lt;/span&gt;      &lt;span style="color:rgb(102, 102, 102);font-style:italic"&gt;// a is a floating-point number&lt;/span&gt;
    &lt;span style="color:rgb(177, 177, 0)"&gt;if&lt;/span&gt; &lt;span style="color:rgb(0, 153, 0)"&gt;(&lt;/span&gt;&lt;span style="color:rgb(51, 153, 51)"&gt;!&lt;/span&gt;&lt;span style="color:rgb(0, 153, 0)"&gt;(&lt;/span&gt;i &lt;span style="color:rgb(51, 153, 51)"&gt;&amp;lt;&lt;/span&gt; n&lt;span style="color:rgb(0, 153, 0)"&gt;)&lt;/span&gt;&lt;span style="color:rgb(0, 153, 0)"&gt;)&lt;/span&gt;   &lt;span style="color:rgb(102, 102, 102);font-style:italic"&gt;// n is an integer number (10000000)&lt;/span&gt;
      exit_trace&lt;span style="color:rgb(0, 153, 0)"&gt;(&lt;/span&gt;BRANCHED&lt;span style="color:rgb(0, 153, 0)"&gt;)&lt;/span&gt;&lt;span style="color:rgb(51, 153, 51)"&gt;;&lt;/span&gt;
    &lt;span style="color:rgb(177, 177, 0)"&gt;goto&lt;/span&gt; trace_2_start&lt;span style="color:rgb(51, 153, 51)"&gt;;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;TraceMonkey then compiles the new trace, and on the next loop iteration, starts executing it.  In this way, TraceMonkey keeps the JavaScript running as machine code, even when types change.  Eventually the trace will exit with a BRANCHED code. At this point, TraceMonkey will return to the interpreter, which takes over and finishes running the program.&lt;/p&gt;
&lt;p&gt;Here are the run times for this program on my laptop (2.2GHz MacBook Pro):&lt;/p&gt;
&lt;table&gt;
&lt;tbody&gt;&lt;tr&gt;
&lt;td&gt;System&lt;/td&gt;
&lt;td&gt;Run Time (ms)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SpiderMonkey (FF3)&lt;/td&gt;
&lt;td&gt;990&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;TraceMonkey (FF3.5)&lt;/td&gt;
&lt;td&gt;45&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Java (using int)&lt;/td&gt;
&lt;td&gt;25&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Java (using double)&lt;/td&gt;
&lt;td&gt;74&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;C (using int)&lt;/td&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;C (using double)&lt;/td&gt;
&lt;td&gt;15&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;This program gets a huge 22x speedup from tracing and runs about as fast as Java! Functions that do simple arithmetic inside loops usually get big speedups from tracing. Many of the bit operation and math SunSpider benchmarks, such &lt;code&gt;bitops-3bit-bits-in-byte&lt;/code&gt;, &lt;code&gt;ctrypto-sha1&lt;/code&gt;, and &lt;code&gt;math-spectral-norm&lt;/code&gt; get 6x-22x speedups.&lt;/p&gt;
&lt;p&gt;Functions that use more complex operations, such as object manipulation, get a smaller speedup, usually 2-5x. This follows mathematically from Amdahl’s law and the fact that complex operations take longer. Looking back at the time diagram, consider a more complex operation that takes time 30T for the green part. The orange and brown parts will still be about 30T together, so eliminating them gives a 2x speedup. The SunSpider benchmark &lt;code&gt;string-fasta&lt;/code&gt; is an example of this kind of program: most of the time is taken by string operations that have a relatively long time for the green box.&lt;/p&gt;
&lt;p&gt;Here is a version of our example program you can try in the browser:&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;div style="border:1px solid black;margin:12px;padding:8px"&gt;
Run Example
&lt;p&gt;Numerical result: &lt;span&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Run time: &lt;span&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Average run time: &lt;span&gt; &lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;Understanding and fixing performance problems&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Our goal is to make TraceMonkey reliably fast enough that you can write your code in the way that best expresses your ideas, without worrying about performance. If TraceMonkey isn’t speeding up your program, we hope you’ll report it as a bug so we can improve the engine. That said, of course, you may need your program to run faster in today’s FF3.5. In this section, we’ll explain some tools and techniques for fixing performance of a program that doesn’t get a good (2x or more) speedup with the tracing JIT enabled. (You can disable the jit by going to &lt;strong&gt;about:config&lt;/strong&gt; and setting the pref &lt;strong&gt;javascript.options.jit.content&lt;/strong&gt; to &lt;code&gt;false&lt;/code&gt;.)&lt;/p&gt;
&lt;p&gt;The first step is understanding the cause of the problem. The most common cause is a &lt;em&gt;trace abort&lt;/em&gt;, which simply means that TraceMonkey was unable to finish recording a trace, and gave up. The usual result is that the loop containing the abort will run in the interpreter, so you won’t get a speedup on that loop. Sometimes, one path through the loop is traced, but there is an abort on another path, which will cause TraceMonkey to switch back and forth between interpreting and running native code. This can leave you with a reduced speedup, no speedup, or even a slowdown: switching modes takes time, so rapid switching can lead to poor performance.&lt;/p&gt;
&lt;p&gt;With a debug build of the browser or a JS shell (which I &lt;a href="https://developer.mozilla.org/en/Build_Documentation"&gt;build&lt;/a&gt; myself - we don’t publish these builds) you can tell TraceMonkey to print information about aborts by setting the &lt;code&gt;TMFLAGS&lt;/code&gt; environment variable. I usually do it like this:&lt;/p&gt;
&lt;pre&gt;TMFLAGS=minimal,abort
dist/MinefieldDebug.app/Contents/MacOS/firefox
&lt;/pre&gt;
&lt;p&gt;The &lt;code&gt;minimal&lt;/code&gt; option prints out all the points where recording starts and where recording successfully finishes. This gives a basic idea of what the tracer is trying to do. The &lt;code&gt;abort&lt;/code&gt; option prints out all the points where recording was aborted due to an unsupported construct. (Setting &lt;code&gt;TMFLAGS=help&lt;/code&gt; will print the list of other &lt;code&gt;TMFLAGS&lt;/code&gt; options and then exit.)&lt;/p&gt;
&lt;p&gt;(Note also that &lt;code&gt;TMFLAGS&lt;/code&gt; is the new way to print the debug information. If you are using a debug build of the FF3.5 release, the environment variable setting is &lt;code&gt;TRACEMONKEY=abort&lt;/code&gt;.)&lt;/p&gt;
&lt;p&gt;Here’s an example program that doesn’t get much of a speedup in TraceMonkey.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;

&lt;div&gt;&lt;div&gt;&lt;pre style="font-family:monospace"&gt;&lt;span style="color:rgb(0, 51, 102);font-weight:bold"&gt;function&lt;/span&gt; runExample2&lt;span style="color:rgb(0, 153, 0)"&gt;(&lt;/span&gt;&lt;span style="color:rgb(0, 153, 0)"&gt;)&lt;/span&gt; &lt;span style="color:rgb(0, 153, 0)"&gt;{&lt;/span&gt;
  &lt;span style="color:rgb(0, 51, 102);font-weight:bold"&gt;var&lt;/span&gt; t0 &lt;span style="color:rgb(51, 153, 51)"&gt;=&lt;/span&gt; &lt;span style="color:rgb(0, 51, 102);font-weight:bold"&gt;new&lt;/span&gt; Date&lt;span style="color:rgb(51, 153, 51)"&gt;;&lt;/span&gt;
 
  &lt;span style="color:rgb(0, 51, 102);font-weight:bold"&gt;var&lt;/span&gt; sum &lt;span style="color:rgb(51, 153, 51)"&gt;=&lt;/span&gt; &lt;span style="color:rgb(204, 0, 0)"&gt;0&lt;/span&gt;&lt;span style="color:rgb(51, 153, 51)"&gt;;&lt;/span&gt;
  &lt;span style="color:rgb(0, 0, 102);font-weight:bold"&gt;for&lt;/span&gt; &lt;span style="color:rgb(0, 153, 0)"&gt;(&lt;/span&gt;&lt;span style="color:rgb(0, 51, 102);font-weight:bold"&gt;var&lt;/span&gt; i &lt;span style="color:rgb(51, 153, 51)"&gt;=&lt;/span&gt; &lt;span style="color:rgb(204, 0, 0)"&gt;0&lt;/span&gt;&lt;span style="color:rgb(51, 153, 51)"&gt;;&lt;/span&gt; i &lt;span style="color:rgb(51, 153, 51)"&gt;&amp;lt;&lt;/span&gt; &lt;span style="color:rgb(204, 0, 0)"&gt;100000&lt;/span&gt;&lt;span style="color:rgb(51, 153, 51)"&gt;;&lt;/span&gt; &lt;span style="color:rgb(51, 153, 51)"&gt;++&lt;/span&gt;i&lt;span style="color:rgb(0, 153, 0)"&gt;)&lt;/span&gt; &lt;span style="color:rgb(0, 153, 0)"&gt;{&lt;/span&gt;
    sum &lt;span style="color:rgb(51, 153, 51)"&gt;+=&lt;/span&gt; i&lt;span style="color:rgb(51, 153, 51)"&gt;;&lt;/span&gt;
  &lt;span style="color:rgb(0, 153, 0)"&gt;}&lt;/span&gt;
 
  &lt;span style="color:rgb(0, 51, 102);font-weight:bold"&gt;var&lt;/span&gt; prod &lt;span style="color:rgb(51, 153, 51)"&gt;=&lt;/span&gt; &lt;span style="color:rgb(204, 0, 0)"&gt;1&lt;/span&gt;&lt;span style="color:rgb(51, 153, 51)"&gt;;&lt;/span&gt;
  &lt;span style="color:rgb(0, 0, 102);font-weight:bold"&gt;for&lt;/span&gt; &lt;span style="color:rgb(0, 153, 0)"&gt;(&lt;/span&gt;&lt;span style="color:rgb(0, 51, 102);font-weight:bold"&gt;var&lt;/span&gt; i &lt;span style="color:rgb(51, 153, 51)"&gt;=&lt;/span&gt; &lt;span style="color:rgb(204, 0, 0)"&gt;1&lt;/span&gt;&lt;span style="color:rgb(51, 153, 51)"&gt;;&lt;/span&gt; i &lt;span style="color:rgb(51, 153, 51)"&gt;&amp;lt;&lt;/span&gt; &lt;span style="color:rgb(204, 0, 0)"&gt;100000&lt;/span&gt;&lt;span style="color:rgb(51, 153, 51)"&gt;;&lt;/span&gt; &lt;span style="color:rgb(51, 153, 51)"&gt;++&lt;/span&gt;i&lt;span style="color:rgb(0, 153, 0)"&gt;)&lt;/span&gt; &lt;span style="color:rgb(0, 153, 0)"&gt;{&lt;/span&gt;
    &lt;span style="color:rgb(0, 0, 102);font-weight:bold"&gt;eval&lt;/span&gt;&lt;span style="color:rgb(0, 153, 0)"&gt;(&lt;/span&gt;&lt;span style="color:rgb(51, 102, 204)"&gt;"prod *= i"&lt;/span&gt;&lt;span style="color:rgb(0, 153, 0)"&gt;)&lt;/span&gt;&lt;span style="color:rgb(51, 153, 51)"&gt;;&lt;/span&gt;
  &lt;span style="color:rgb(0, 153, 0)"&gt;}&lt;/span&gt;
  &lt;span style="color:rgb(0, 51, 102);font-weight:bold"&gt;var&lt;/span&gt; dt &lt;span style="color:rgb(51, 153, 51)"&gt;=&lt;/span&gt; &lt;span style="color:rgb(0, 51, 102);font-weight:bold"&gt;new&lt;/span&gt; Date &lt;span style="color:rgb(51, 153, 51)"&gt;-&lt;/span&gt; t0&lt;span style="color:rgb(51, 153, 51)"&gt;;&lt;/span&gt;
  document.&lt;span style="color:rgb(102, 0, 102)"&gt;getElementById&lt;/span&gt;&lt;span style="color:rgb(0, 153, 0)"&gt;(&lt;/span&gt;example2_time&lt;span style="color:rgb(51, 102, 204)"&gt;').innerHTML = dt + '&lt;/span&gt; ms&lt;span style="color:rgb(51, 102, 204)"&gt;';
}&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div style="border:1px solid black;margin:12px;padding:8px"&gt;
Run Example 2&lt;br&gt;
Run time: &lt;span&gt; &lt;/span&gt;
&lt;/div&gt;
&lt;p&gt;If we set &lt;code&gt;TMFLAGS=minimal,abort&lt;/code&gt;, we’ll get this:&lt;/p&gt;

&lt;div&gt;&lt;div&gt;&lt;pre style="font-family:monospace"&gt;Recording starting from ab.js:5@23
recording completed at  ab.js:5@23 via closeLoop
 
Recording starting from ab.js:5@23
recording completed at  ab.js:5@23 via closeLoop
 
Recording starting from ab.js:10@63
Abort recording of tree ab.js:10@63 at ab.js:11@70: eval.
 
Recording starting from ab.js:10@63
Abort recording of tree ab.js:10@63 at ab.js:11@70: eval.
 
Recording starting from ab.js:10@63
Abort recording of tree ab.js:10@63 at ab.js:11@70: eval.&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;The first two pairs of lines show that the first loop, starting at line 5, traced fine. The following lines showed that TraceMonkey started tracing the loop on line 10, but failed each time because of an &lt;code&gt;eval&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;An important note about this debug output is that you will typically see some messages referring to &lt;em&gt;inner trees&lt;/em&gt; growing, stabilizing, and so on. These really aren’t problems: they usually just indicate a &lt;em&gt;delay&lt;/em&gt; in finishing tracing a loop because of the way TraceMonkey links inner and outer loops. And in fact, if you look further down the output after such aborts, you will usually see that the loops eventually do trace.&lt;/p&gt;
&lt;p&gt;Otherwise, aborts are mainly caused by JavaScript constructs that are not yet supported by tracing. The trace recording process is easier to implement for a basic operation like &lt;code&gt;+&lt;/code&gt; than it is for an advanced feature like &lt;code&gt;arguments&lt;/code&gt;. We didn’t have time to do robust, secure tracing of every last JavaScript feature in time for the FF3.5 release, so some of the more advanced ones, like &lt;code&gt;arguments&lt;/code&gt;, aren’t traced in FF3.5.0. Other advanced features that are not traced include getters and setters, with, and eval. There is partial support for closures, depending on exactly how they are used. Refactoring to avoid these constructs can help performance.&lt;/p&gt;
&lt;p&gt;Two particularly important JavaScript features that are not traced are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Recursion. TraceMonkey doesn’t see repetition that occurs through recursion as a loop, so it doesn’t try to trace it. Refactoring to use explicit &lt;code&gt;for&lt;/code&gt; or &lt;code&gt;while&lt;/code&gt; loops will generally give better performance.
&lt;/li&gt;&lt;li&gt;Getting or setting a DOM property. (DOM method calls are fine.) Avoiding these constructs is generally impossible, but refactoring the code to move DOM property access out of hot loops and performance-critical segments should help.
&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;We are actively working on tracing all the features named above. For example, support for tracing &lt;code&gt;arguments&lt;/code&gt; is already available in nightly builds.&lt;/p&gt;
&lt;p&gt;Here is the slow example program refactored to avoid &lt;code&gt;eval&lt;/code&gt;. Of course, I could have simply done the multiplication inline. Instead, I used a function created by &lt;code&gt;eval&lt;/code&gt; because that’s a more general way of refactoring an &lt;code&gt;eval&lt;/code&gt;. Note that the &lt;code&gt;eval&lt;/code&gt; still can’t be traced, but it only runs once so it doesn’t matter.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;

&lt;div&gt;&lt;div&gt;&lt;pre style="font-family:monospace"&gt;&lt;span style="color:rgb(0, 51, 102);font-weight:bold"&gt;function&lt;/span&gt; runExample3&lt;span style="color:rgb(0, 153, 0)"&gt;(&lt;/span&gt;&lt;span style="color:rgb(0, 153, 0)"&gt;)&lt;/span&gt; &lt;span style="color:rgb(0, 153, 0)"&gt;{&lt;/span&gt;
  &lt;span style="color:rgb(0, 51, 102);font-weight:bold"&gt;var&lt;/span&gt; t0 &lt;span style="color:rgb(51, 153, 51)"&gt;=&lt;/span&gt; &lt;span style="color:rgb(0, 51, 102);font-weight:bold"&gt;new&lt;/span&gt; Date&lt;span style="color:rgb(51, 153, 51)"&gt;;&lt;/span&gt;
 
  &lt;span style="color:rgb(0, 51, 102);font-weight:bold"&gt;var&lt;/span&gt; sum &lt;span style="color:rgb(51, 153, 51)"&gt;=&lt;/span&gt; &lt;span style="color:rgb(204, 0, 0)"&gt;0&lt;/span&gt;&lt;span style="color:rgb(51, 153, 51)"&gt;;&lt;/span&gt;
  &lt;span style="color:rgb(0, 0, 102);font-weight:bold"&gt;for&lt;/span&gt; &lt;span style="color:rgb(0, 153, 0)"&gt;(&lt;/span&gt;&lt;span style="color:rgb(0, 51, 102);font-weight:bold"&gt;var&lt;/span&gt; i &lt;span style="color:rgb(51, 153, 51)"&gt;=&lt;/span&gt; &lt;span style="color:rgb(204, 0, 0)"&gt;0&lt;/span&gt;&lt;span style="color:rgb(51, 153, 51)"&gt;;&lt;/span&gt; i &lt;span style="color:rgb(51, 153, 51)"&gt;&amp;lt;&lt;/span&gt; &lt;span style="color:rgb(204, 0, 0)"&gt;100000&lt;/span&gt;&lt;span style="color:rgb(51, 153, 51)"&gt;;&lt;/span&gt; &lt;span style="color:rgb(51, 153, 51)"&gt;++&lt;/span&gt;i&lt;span style="color:rgb(0, 153, 0)"&gt;)&lt;/span&gt; &lt;span style="color:rgb(0, 153, 0)"&gt;{&lt;/span&gt;
    sum &lt;span style="color:rgb(51, 153, 51)"&gt;+=&lt;/span&gt; i&lt;span style="color:rgb(51, 153, 51)"&gt;;&lt;/span&gt;
  &lt;span style="color:rgb(0, 153, 0)"&gt;}&lt;/span&gt;
 
  &lt;span style="color:rgb(0, 51, 102);font-weight:bold"&gt;var&lt;/span&gt; prod &lt;span style="color:rgb(51, 153, 51)"&gt;=&lt;/span&gt; &lt;span style="color:rgb(204, 0, 0)"&gt;1&lt;/span&gt;&lt;span style="color:rgb(51, 153, 51)"&gt;;&lt;/span&gt;
  &lt;span style="color:rgb(0, 51, 102);font-weight:bold"&gt;var&lt;/span&gt; mul &lt;span style="color:rgb(51, 153, 51)"&gt;=&lt;/span&gt; &lt;span style="color:rgb(0, 0, 102);font-weight:bold"&gt;eval&lt;/span&gt;&lt;span style="color:rgb(0, 153, 0)"&gt;(&lt;/span&gt;&lt;span style="color:rgb(51, 102, 204)"&gt;"(function(i) { return prod * i; })"&lt;/span&gt;&lt;span style="color:rgb(0, 153, 0)"&gt;)&lt;/span&gt;&lt;span style="color:rgb(51, 153, 51)"&gt;;&lt;/span&gt;
 
  &lt;span style="color:rgb(0, 0, 102);font-weight:bold"&gt;for&lt;/span&gt; &lt;span style="color:rgb(0, 153, 0)"&gt;(&lt;/span&gt;&lt;span style="color:rgb(0, 51, 102);font-weight:bold"&gt;var&lt;/span&gt; i &lt;span style="color:rgb(51, 153, 51)"&gt;=&lt;/span&gt; &lt;span style="color:rgb(204, 0, 0)"&gt;1&lt;/span&gt;&lt;span style="color:rgb(51, 153, 51)"&gt;;&lt;/span&gt; i &lt;span style="color:rgb(51, 153, 51)"&gt;&amp;lt;&lt;/span&gt; &lt;span style="color:rgb(204, 0, 0)"&gt;100000&lt;/span&gt;&lt;span style="color:rgb(51, 153, 51)"&gt;;&lt;/span&gt; &lt;span style="color:rgb(51, 153, 51)"&gt;++&lt;/span&gt;i&lt;span style="color:rgb(0, 153, 0)"&gt;)&lt;/span&gt; &lt;span style="color:rgb(0, 153, 0)"&gt;{&lt;/span&gt;
    prod &lt;span style="color:rgb(51, 153, 51)"&gt;=&lt;/span&gt; mul&lt;span style="color:rgb(0, 153, 0)"&gt;(&lt;/span&gt;i&lt;span style="color:rgb(0, 153, 0)"&gt;)&lt;/span&gt;&lt;span style="color:rgb(51, 153, 51)"&gt;;&lt;/span&gt;
  &lt;span style="color:rgb(0, 153, 0)"&gt;}&lt;/span&gt;
  &lt;span style="color:rgb(0, 51, 102);font-weight:bold"&gt;var&lt;/span&gt; dt &lt;span style="color:rgb(51, 153, 51)"&gt;=&lt;/span&gt; &lt;span style="color:rgb(0, 51, 102);font-weight:bold"&gt;new&lt;/span&gt; Date &lt;span style="color:rgb(51, 153, 51)"&gt;-&lt;/span&gt; t0&lt;span style="color:rgb(51, 153, 51)"&gt;;&lt;/span&gt;
  document.&lt;span style="color:rgb(102, 0, 102)"&gt;getElementById&lt;/span&gt;&lt;span style="color:rgb(0, 153, 0)"&gt;(&lt;/span&gt;&lt;span style="color:rgb(51, 102, 204)"&gt;'example3_time'&lt;/span&gt;&lt;span style="color:rgb(0, 153, 0)"&gt;)&lt;/span&gt;.&lt;span style="color:rgb(102, 0, 102)"&gt;innerHTML&lt;/span&gt; &lt;span style="color:rgb(51, 153, 51)"&gt;=&lt;/span&gt; dt &lt;span style="color:rgb(51, 153, 51)"&gt;+&lt;/span&gt; &lt;span style="color:rgb(51, 102, 204)"&gt;' ms'&lt;/span&gt;&lt;span style="color:rgb(51, 153, 51)"&gt;;&lt;/span&gt;
&lt;span style="color:rgb(0, 153, 0)"&gt;}&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div style="border:1px solid black;margin:12px;padding:8px"&gt;
Run Example 3&lt;br&gt;
Run time: &lt;span&gt; &lt;/span&gt;
&lt;/div&gt;
&lt;p&gt;There are a few more esoteric situations that can also hurt tracing performance. One of them is &lt;em&gt;trace explosion&lt;/em&gt;, which happens when a loop has many paths through it. Consider a loop with 10 &lt;code&gt;if&lt;/code&gt; statements in a row: the loop has 1024 paths, potentially causing 1024 traces to be recorded. That would use up too much memory, so TraceMonkey caps each loop at 32 traces. If the loop has fewer than 32 hot traces, it will perform well. But if each path occurs with equal frequency, then only 3% of the paths are traced, and performance will suffer.&lt;/p&gt;
&lt;p&gt;This kind of problem is best analyzed with &lt;a href="https://developer.mozilla.org/en/TraceVis"&gt;TraceVis&lt;/a&gt;, which creates visualizations of TraceMonkey performance. Currently, the build system only supports enabling TraceVis for shell builds, but the basic system can also run in the browser, and there is &lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=497999"&gt;ongoing work&lt;/a&gt; to enable TraceVis in a convenient form in the browser.&lt;/p&gt;
&lt;p&gt;The &lt;a href="http://blog.mozilla.com/dmandelin/2009/02/26/tracevis-performance-visualization-for-tracemonkey/"&gt;blog post&lt;/a&gt; on TraceVis is currently the most detailed explanation of what the diagrams mean and how to use them to diagnose performance problems. The post also contains a detailed analysis of a diagram that is helpful in understanding how TraceMonkey works in general.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Comparative JITerature&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Here I will give a few comparisons to other JavaScript JIT designs. I’ll focus more on hypothetical designs than competing engines, because I don’t know details about them — I’ve read the release information and skimmed a few bits of code. Another big caveat is that real-world performance depends at least as much on engineering details as it does on engine architecture.&lt;/p&gt;
&lt;p&gt;One design option could be a called a &lt;em&gt;per-method non-specializing JIT&lt;/em&gt;. By this, I mean a JIT compiler that compiles a method at a time and generates generic code, just like what the interpreter does. Thus, the brown boxes from our diagrams are cut out. This kind of JIT doesn’t need to take time to record and compile traces, but it also does not type-specialize, so the orange boxes remain. Such an engine can still be made pretty fast by carefully designing and optimizing the orange box code. But the orange box can’t be completely eliminated in this design, so the maximum performance on numeric programs won’t be as good as a type-specializing engine.&lt;/p&gt;
&lt;p&gt;As far as I can tell, as of this writing Nitro and V8 are both lightweight non-specializing JITs. (I’m told that V8 does try to guess a few types by looking at the source code (such as guessing that &lt;code&gt;a&lt;/code&gt; is an integer in &lt;code&gt;a &amp;gt;&amp;gt; 2&lt;/code&gt;) in order to do a bit of type specialization.) It seem that TraceMonkey is generally faster on numeric benchmarks, as predicted above. But TraceMonkey suffers a bit on benchmarks that use more objects, because our object operations and memory management haven’t been optimized as heavily.&lt;/p&gt;
&lt;p&gt;A further development of the basic JIT is the &lt;em&gt;per-method type-specializing JIT&lt;/em&gt;. This kind of a JIT tries to type-specialize a method based on the argument types the method is called with. Like TraceMonkey, this requires some runtime observation: the basic design checks the argument types each time a method is called, and if those types have not been seen before, compiles a new version of the method. Also like TraceMonkey, this design can heavily specialize code and remove both the brown and orange boxes.&lt;/p&gt;
&lt;p&gt;I’m not aware that anyone has deployed a per-method type-specializing JIT for JavaScript, but I wouldn’t be surprised if people are working on it.&lt;/p&gt;
&lt;p&gt;The main disadvantage of a per-method type-specializing JIT compared to a tracing JIT is that the basic per-method JIT only directly observes the input types to a method. It must try to infer types for variables inside the method algorithmically, which is difficult for JavaScript, especially if the method reads object properties. Thus, I would expect that a per-method type-specializing JIT would have to use generic operations for some parts of the method. The main advantage of the per-method design is that the method needs to be compiled exactly once per set of input types, so it’s not vulnerable to trace explosion. In turn, I think a per-method JIT would tend to be faster on methods that have many paths, and a tracing JIT would tend to be faster on highly type-specializable methods, especially if the method also reads a lot of values from properties.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Conclusion&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;By now, hopefully you have a good idea of what makes JavaScript engines fast, how TraceMonkey works, and how to analyze and fix some performance issues that may occur running JavaScript under TraceMonkey. Please report bugs if you run into any significant performance problems. Bug reports are also a good place for us to give additional tuning advice. Finally, we’re trying to improve constantly, so check out nightly TraceMonkey builds if you’re into the bleeding edge.&lt;/p&gt;
&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/sebastian-werner/news?a=6inAjw1Svok:YQEV_1CKT4s:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sebastian-werner/news?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/sebastian-werner/news?a=6inAjw1Svok:YQEV_1CKT4s:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sebastian-werner/news?i=6inAjw1Svok:YQEV_1CKT4s:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/sebastian-werner/news?a=6inAjw1Svok:YQEV_1CKT4s:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sebastian-werner/news?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/sebastian-werner/news?a=6inAjw1Svok:YQEV_1CKT4s:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sebastian-werner/news?i=6inAjw1Svok:YQEV_1CKT4s:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</content><author gr:unknown-author="true"><name>(author unknown)</name></author><gr:likingUser>07903867122182284978</gr:likingUser><gr:annotation><content type="html">Impressive numbers... and also an interesting read for the C++ and Java guys out there.</content><author gr:user-id="05325327707497594110" gr:profile-id="103933975894958686177"><name>wpbasti</name></author></gr:annotation><source gr:stream-id="user/05325327707497594110/source/com.google/link"><id>tag:google.com,2005:reader/user/05325327707497594110/source/com.google/link</id><title type="html">hacks.mozilla.org</title><link rel="alternate" href="http://hacks.mozilla.org" type="text/html" /></source><feedburner:origLink>http://hacks.mozilla.org/2009/07/tracemonkey-overview/</feedburner:origLink></entry><entry gr:crawl-timestamp-msec="1247835714821"><id gr:original-id="">tag:google.com,2005:reader/item/6ee53d2764328ccd</id><title type="html">Google: Browser is the Platform of the Future, Even on Mobiles</title><published>2009-07-17T13:01:54Z</published><updated>2009-07-17T13:01:54Z</updated><link rel="alternate" href="http://feedproxy.google.com/~r/sebastian-werner/news/~3/I8IdwnnV2Us/" type="text/html" /><link rel="related" href="http://mashable.com" title="Mashable!" /><content xml:base="http://mashable.com/2009/07/17/google-browser-platform/" type="html">&lt;blockquote&gt;Shared by  wpbasti 
&lt;br&gt;
Chrome for BlackBerry anyone? Or for S60? Yeah!&lt;/blockquote&gt;
&lt;p&gt;&lt;img src="http://ec.mashable.com/wp-content/uploads/2008/12/googlechrome2.gif" alt="" title="googlechrome2"&gt;Every company that’s built a major mobile platform is trying to make their platform attractive for developers and a great experience for users. Since Apple started their hugely popular iPhone App Store (recently they’ve reached a milestone of &lt;a href="http://mashable.com/2009/07/14/iphone-15-billion-downloads/"&gt;1.5 billion downloaded apps&lt;/a&gt;), RIM, Google, Nokia, Palm, and Microsoft have followed suit. But Google thinks that – similar to what is happening in the world of desktops – in the future, the actual platform won’t matter much, because the web browser will become the dominant mobile platform. &lt;/p&gt;
&lt;p&gt;As Google’s Vic Gundotra, Engineering vice president and developer evangelist, &lt;a href="http://blogs.ft.com/techblog/2009/07/app-stores-are-not-the-future-says-google/"&gt;said at the Mobilebeat conference&lt;/a&gt; in San Francisco on Thursday, “We believe the web has won and over the next several years, the browser, for economic reasons almost, will become the platform that matters and certainly that’s where Google is investing.”&lt;/p&gt;
&lt;p&gt;Google has certainly put their money where their mouth is when it comes to mobile versions of their web applications, such as Gmail, Google Calendar and others, most of which are available on all significant mobile platforms, and many have mobile browser-based versions. They also have their own mobile platform, &lt;a href="http://mashable.com/tag/android/"&gt;Android&lt;/a&gt;; however, what Gundotra is saying means that having the best mobile browser will also play a significant part in the future of mobile computing.&lt;/p&gt;
&lt;p&gt;Surprisingly, it seems that everyone besides &lt;a href="http://mashable.com/tag/opera/"&gt;Opera&lt;/a&gt;, which puts a great effort into development of Opera Mobile and Opera Mini and Apple with their open sourced WebKit was late to this game. Mozilla’s &lt;a href="http://mashable.com/tag/fennec/"&gt;Fennec&lt;/a&gt; is still in very early stages of development, while Microsoft’s Internet Explorer was there from the very beginning, but it was – and still is – a bad mobile browser. Nokia’s Symbian and Google’s android use WebKit-powered browsers, but Gundotra’s statement might mean that Google is finally preparing to launch Chrome for mobiles, and in this space, competition is more than welcome. &lt;/p&gt;
&lt;p&gt;Most importantly, if Gundotra is right, it means that many developers might be wasting time trying to port their application to various mobile platforms out there. Build for the mobile browser; it might not look like a very good idea now, but it might pay off in the future. &lt;/p&gt;
&lt;hr&gt;Reviews: &lt;a href="http://www.blippr.com/apps/336868-Android"&gt;Android&lt;/a&gt;, &lt;a href="http://www.blippr.com/apps/336751-Chrome"&gt;Chrome&lt;/a&gt;, &lt;a href="http://www.blippr.com/apps/336653-Gmail"&gt;Gmail&lt;/a&gt;, &lt;a href="http://www.blippr.com/apps/336661-Google"&gt;Google&lt;/a&gt;, &lt;a href="http://www.blippr.com/apps/336748-Internet-Explorer"&gt;Internet Explorer&lt;/a&gt;, &lt;a href="http://www.blippr.com/apps/337084-Opera"&gt;Opera&lt;/a&gt;
&lt;p&gt;Tags: &lt;a href="http://mashable.com/tag/browser/"&gt;browser&lt;/a&gt;, &lt;a href="http://mashable.com/tag/google/"&gt;Google&lt;/a&gt;, &lt;a href="http://mashable.com/tag/mobile/"&gt;Mobile 2.0&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;iframe src="http://feedads.g.doubleclick.net/%7Eah/f/9m6h8omben53fuj7ghgrctkjc8/300/250?ca=1&amp;amp;fh=280#http%3A%2F%2Fmashable.com%2F2009%2F07%2F17%2Fgoogle-browser-platform%2F" marginwidth="0" marginheight="0" frameborder="0" height="280" scrolling="no" width="100%"&gt;&lt;/iframe&gt;&lt;/p&gt;&lt;div&gt;
&lt;a href="http://feeds.feedburner.com/%7Eff/Mashable?a=I8IdwnnV2Us:SFfR41ClEcY:D7DqB2pKExk"&gt;&lt;img src="http://feeds.feedburner.com/%7Eff/Mashable?i=I8IdwnnV2Us:SFfR41ClEcY:D7DqB2pKExk" border="0"&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/%7Eff/Mashable?a=I8IdwnnV2Us:SFfR41ClEcY:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/%7Eff/Mashable?i=I8IdwnnV2Us:SFfR41ClEcY:V_sGLiPBpWU" border="0"&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/%7Eff/Mashable?a=I8IdwnnV2Us:SFfR41ClEcY:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/%7Eff/Mashable?i=I8IdwnnV2Us:SFfR41ClEcY:F7zBnMyn0Lo" border="0"&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/%7Eff/Mashable?a=I8IdwnnV2Us:SFfR41ClEcY:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/%7Eff/Mashable?d=qj6IDK7rITs" border="0"&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/%7Eff/Mashable?a=I8IdwnnV2Us:SFfR41ClEcY:_e0tkf89iUM"&gt;&lt;img src="http://feeds.feedburner.com/%7Eff/Mashable?d=_e0tkf89iUM" border="0"&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/%7Eff/Mashable?a=I8IdwnnV2Us:SFfR41ClEcY:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/%7Eff/Mashable?i=I8IdwnnV2Us:SFfR41ClEcY:gIN9vFwOqvQ" border="0"&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/%7Eff/Mashable?a=I8IdwnnV2Us:SFfR41ClEcY:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/%7Eff/Mashable?d=yIl2AUoC8zA" border="0"&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/%7Eff/Mashable?a=I8IdwnnV2Us:SFfR41ClEcY:P0ZAIrC63Ok"&gt;&lt;img src="http://feeds.feedburner.com/%7Eff/Mashable?d=P0ZAIrC63Ok" border="0"&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/%7Eff/Mashable?a=I8IdwnnV2Us:SFfR41ClEcY:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/%7Eff/Mashable?d=I9og5sOYxJI" border="0"&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/%7Eff/Mashable?a=I8IdwnnV2Us:SFfR41ClEcY:CC-BsrAYo0A"&gt;&lt;img src="http://feeds.feedburner.com/%7Eff/Mashable?d=CC-BsrAYo0A" border="0"&gt;&lt;/a&gt;
&lt;/div&gt;
&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/sebastian-werner/news?a=I8IdwnnV2Us:0XtH-YuyeMw:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sebastian-werner/news?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/sebastian-werner/news?a=I8IdwnnV2Us:0XtH-YuyeMw:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sebastian-werner/news?i=I8IdwnnV2Us:0XtH-YuyeMw:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/sebastian-werner/news?a=I8IdwnnV2Us:0XtH-YuyeMw:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sebastian-werner/news?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/sebastian-werner/news?a=I8IdwnnV2Us:0XtH-YuyeMw:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sebastian-werner/news?i=I8IdwnnV2Us:0XtH-YuyeMw:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</content><author gr:unknown-author="true"><name>(author unknown)</name></author><gr:annotation><content type="html">Chrome for BlackBerry anyone? Or for S60? Yeah!</content><author gr:user-id="05325327707497594110" gr:profile-id="103933975894958686177"><name>wpbasti</name></author></gr:annotation><source gr:stream-id="user/05325327707497594110/source/com.google/link"><id>tag:google.com,2005:reader/user/05325327707497594110/source/com.google/link</id><title type="html">Mashable!</title><link rel="alternate" href="http://mashable.com" type="text/html" /></source><feedburner:origLink>http://mashable.com/2009/07/17/google-browser-platform/</feedburner:origLink></entry><entry gr:crawl-timestamp-msec="1247819561415"><id gr:original-id="">tag:google.com,2005:reader/item/b1a7fb56e4ac14b4</id><title type="html">Reports say iPhone could be coming to British T-Mobile</title><published>2009-07-17T08:32:41Z</published><updated>2009-07-17T08:32:41Z</updated><link rel="alternate" href="http://feedproxy.google.com/~r/sebastian-werner/news/~3/1kvvqIb530g/reports_say_iphone_could_be_coming_to_british_t_mobile.html" type="text/html" /><link rel="related" href="http://www.appleinsider.com/" title="AppleInsider" /><content xml:base="http://www.appleinsider.com/articles/09/07/15/reports_say_iphone_could_be_coming_to_british_t_mobile.html" type="html">&lt;blockquote&gt;Shared by  wpbasti 
&lt;br&gt;
That would be a cool deal for T-Mobile UK.&lt;/blockquote&gt;
Multiple sources are reporting that that T-Mobile U.K. is in talks with Apple to bring the iPhone 3G – last year’s model – to its mobile service, taking away the phone’s exclusivity from competing carrier O2.
&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/sebastian-werner/news?a=1kvvqIb530g:9zYHqMs-XaI:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sebastian-werner/news?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/sebastian-werner/news?a=1kvvqIb530g:9zYHqMs-XaI:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sebastian-werner/news?i=1kvvqIb530g:9zYHqMs-XaI:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/sebastian-werner/news?a=1kvvqIb530g:9zYHqMs-XaI:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sebastian-werner/news?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/sebastian-werner/news?a=1kvvqIb530g:9zYHqMs-XaI:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sebastian-werner/news?i=1kvvqIb530g:9zYHqMs-XaI:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</content><author gr:unknown-author="true"><name>(author unknown)</name></author><gr:annotation><content type="html">That would be a cool deal for T-Mobile UK.</content><author gr:user-id="05325327707497594110" gr:profile-id="103933975894958686177"><name>wpbasti</name></author></gr:annotation><source gr:stream-id="user/05325327707497594110/source/com.google/link"><id>tag:google.com,2005:reader/user/05325327707497594110/source/com.google/link</id><title type="html">AppleInsider</title><link rel="alternate" href="http://www.appleinsider.com/" type="text/html" /></source><feedburner:origLink>http://www.appleinsider.com/articles/09/07/15/reports_say_iphone_could_be_coming_to_british_t_mobile.html</feedburner:origLink></entry><entry gr:crawl-timestamp-msec="1247819264659"><id gr:original-id="">tag:google.com,2005:reader/item/f5de13e51494e921</id><title type="html">ZEW-Studie: Tiefpunkt bei Hightech-Startups</title><published>2009-07-17T08:27:44Z</published><updated>2009-07-17T08:27:44Z</updated><link rel="alternate" href="http://feedproxy.google.com/~r/sebastian-werner/news/~3/qofCwWpXqnk/540388.html" type="text/html" /><link rel="related" href="http://www.ftd.de/" title="Financial Times Deutschland" /><content xml:base="http://www.ftd.de/forschung_bildung/forschung/540388.html?nv=cd-topnews" type="html">&lt;blockquote&gt;Shared by  wpbasti 
&lt;br&gt;
Armes Deutschland. So ein wenig Silicon Valley like Startup-Szene wäre schon cool.&lt;/blockquote&gt;
Deutschland ist im europäischen Vergleich kein Gründerland. Jetzt erreicht die Statistik einen neuen Tiefpunkt: Im Vergleich zum Vorjahr haben Gründungen im Hightech-Sektor um elf Prozent abgenommen.
&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/sebastian-werner/news?a=qofCwWpXqnk:UZH-GBMANW0:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sebastian-werner/news?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/sebastian-werner/news?a=qofCwWpXqnk:UZH-GBMANW0:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sebastian-werner/news?i=qofCwWpXqnk:UZH-GBMANW0:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/sebastian-werner/news?a=qofCwWpXqnk:UZH-GBMANW0:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sebastian-werner/news?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/sebastian-werner/news?a=qofCwWpXqnk:UZH-GBMANW0:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sebastian-werner/news?i=qofCwWpXqnk:UZH-GBMANW0:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</content><author gr:unknown-author="true"><name>(author unknown)</name></author><gr:annotation><content type="html">Armes Deutschland. So ein wenig Silicon Valley like Startup-Szene wäre schon cool.</content><author gr:user-id="05325327707497594110" gr:profile-id="103933975894958686177"><name>wpbasti</name></author></gr:annotation><source gr:stream-id="user/05325327707497594110/source/com.google/link"><id>tag:google.com,2005:reader/user/05325327707497594110/source/com.google/link</id><title type="html">Financial Times Deutschland</title><link rel="alternate" href="http://www.ftd.de/" type="text/html" /></source><feedburner:origLink>http://www.ftd.de/forschung_bildung/forschung/540388.html?nv=cd-topnews</feedburner:origLink></entry><entry gr:crawl-timestamp-msec="1247818908786"><id gr:original-id="">tag:google.com,2005:reader/item/c89b23db74548fd3</id><title type="html">Google Voice: Die Revolution der Telefonie</title><published>2009-07-17T08:21:48Z</published><updated>2009-07-17T08:21:48Z</updated><link rel="alternate" href="http://feedproxy.google.com/~r/sebastian-werner/news/~3/aESlfvIDR9I/" type="text/html" /><link rel="related" href="http://netzwertig.com" title="netzwertig.com" /><content xml:base="http://netzwertig.com/2009/07/16/google-voice-die-revolution-der-telefonie/" type="html">&lt;blockquote&gt;Shared by  wpbasti 
&lt;br&gt;
Neben Wave ist Voice sicher das aktuell spannendste "upcoming" Google Produkt.&lt;/blockquote&gt;
&lt;h4&gt;Google Voice ist ein kostenloser, webbasierte Telefonmanager. Unter dem Motto “Eine Nummer für alle deine Telefone, für immer” hat der bisher nur in den USA verfügbare Dienst das Zeug, die Telefonie zu revolutionieren – und könnte eines Tages Skype gefährlich werden.&lt;/h4&gt;
&lt;p&gt;&lt;img src="http://netzwertig.com/wp-content/uploads/2009/07/googlevoice.gif" alt="Google Voice" align="left" height="55" hspace="5" vspace="5" width="218"&gt; &lt;/p&gt;
&lt;p&gt;In der Folge der Wirtschaftkrise scheint es, als ob sich junge Webdienste immer seltener den Luxus eines ausgiebigen “&lt;a title="Stealth mode" href="http://en.wikipedia.org/wiki/Stealth_mode"&gt;Stealth mode&lt;/a&gt;” oder einer langen, geschlossenen Beta-Phase gönnen und stattdessen schnellstmöglich einer großen Benutzerzahl Zugang gewähren wollen. Die Konsequenz für Web-Enthusiasten wie uns ist, dass es nur noch wenige Services gibt, auf die wir sehnsüchtig warten und bei denen wir uns auf den Tag freuen, an dem wir eine Einladung zur Testphase erhalten.&lt;/p&gt;
&lt;p&gt;Aber zum Glück gibt es &lt;a title="Google" href="http://www.google.de"&gt;Google&lt;/a&gt;. Nicht nur das &lt;a title="Chrome OS" href="http://netzwertig.com/2009/07/08/google-chrome-operating-system-betriebssystem-fuer-die-cloud/"&gt;Chrome OS&lt;/a&gt; und die &lt;a title="Google Wave" href="http://netzwertig.com/2009/05/29/google-wave-die-neuerfindung-von-e-mail/"&gt;neuartige Kommunikations- und Kollaborationsplattform Wave&lt;/a&gt; stehen dort in der Pipeline, sondern auch der Telefonmanager &lt;a title="Google Voice" href="https://www.google.com/voice"&gt;Google Voice&lt;/a&gt;. Wenn es einen Onlinedienst gibt, auf dessen Launch ich persönlich ungeduldig warte, dann ist es dieser. Bisher ist Google Voice lediglich auf Einladung und nur in den USA verfügbar.&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;strong&gt;Google Voice basiert auf dem im Sommer 2007 &lt;a title="Google acquired GrandCentral" href="http://www.techcrunch.com/2007/07/02/deal-is-confirmed-google-acquired-grandcentral/"&gt;für kolportierte 50 Millionen Dollar&lt;/a&gt; übernommenen Telefondienstleister GrandCentral.&lt;/strong&gt; &lt;/p&gt;
&lt;p&gt;Im März diesen Jahres schloss der kalifornische Internetriese die Integration von GrandCentral in das eigene Produktportfolio ab und gab den offiziellen Startschuss für Google Voice.&lt;/p&gt;
&lt;p&gt;Nutzer von Google Voice &lt;a title="Google Voice" href="http://www.readwriteweb.com/archives/google_voice_is_opening_up_today_here_is_what_you_can_expect.php"&gt;erhalten eine einzige Telefonnummer&lt;/a&gt;, die sie mit Hilfe von Regeln je nach Anrufer an das private, dienstliche oder mobile Telefon weiterleiten und über eine Google Mail ähnliche Weboberfläche verwalten können. Neben zahlreichen Funktionen zum bequemen Steuern und Feinabstimmen des persönlichen Gesprächsmanagements bietet Google Voice einen Anrufbeantworter, der hinterlassene Nachrichten nicht nur in Ton- sondern auch in Textform darstellt.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Gespräche werden über das Webinterface eingeleitet. Google ruft dann eines der persönlichen Telefone an und verbindet es mit dem gewünschten Gesprächspartner.&lt;/strong&gt; Telefonate lassen sich auf Wunsch aufzeichnen. Auch Konferenzen und SMS-Versand sowie -Empfang werden unterstützt. Google Voice ist nicht nur kostenlos, sondern bietet in der USA außerdem kostenfreie Anrufe einheimischer Nummern. Für internationale Telefonate fallen geringe Gebühren an, die denen von &lt;a title="Skype" href="http://www.skype.com"&gt;Skype&lt;/a&gt;, &lt;a title="JAJAH" href="http://www.jajah.com"&gt;JAJAH&lt;/a&gt; oder &lt;a title="Truphone" href="http:/www.truphone.com"&gt;Truphone&lt;/a&gt; ähneln.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://netzwertig.com/wp-content/uploads/2009/07/googlevoicescreen.gif" alt="Weboberfläche von Google Voice (Quelle: ReadWriteWeb)" height="232" width="450"&gt;&lt;br&gt;Einen großen Schritt macht Google Voice mit der &lt;a title="Google Voice coming to Android, BlackBerry" href="http://news.cnet.com/8301-17939_109-10286763-2.html?part=rss&amp;amp;tag=feed&amp;amp;subj=Webware"&gt;anstehenden Veröffentlichung von Applikationen&lt;/a&gt; für Android-Smartphones und Blackberry. Besitzer dieser Geräte können über die Anwendung direkt auf die wichtigsten Google Voice-Funktionen zugreifen und bei ausgehenden Telefonaten ihre Google Voice-Nummer anzeigen lassen. Eine iPhone-App ist in Planung.&lt;/p&gt;
&lt;p&gt;Um Nutzern, die einen Invite ergattern konnten, den Einstieg so leicht wie möglich zu machen, &lt;a title="Number Portability" href="http://www.techcrunch.com/2009/06/14/google-voices-secret-weapon-number-portability/"&gt;arbeitet Google derzeit an Lösungen&lt;/a&gt;, existierende Nummern von anderen Providern zu transferieren. Erste Tests dazu laufen zwar bereits, aber bis auf weiteres müssen sich User damit abfinden, von Google eine neue Nummer zugeteilt zu bekommen.&lt;/p&gt;
&lt;p&gt;Auch wenn mit dem Einsatz von Google Voice einmal mehr ein Batzen persönlicher Informationen an den Webgiganten aus Mountain View ausgeliefert wird und die Notwendigkeit, allen Kontakten die persönliche Google Voice-Nummer kommunizieren zu müssen, zusätzlichen Aufwand bedeutet, handelt es sich bei dem webbasierten Telefonmanager um ein ein beeindruckendes Produkt, welches endlich Ordnung, Struktur und Effizienz in den Gesprächsalltag bringt.&lt;/p&gt;
&lt;p&gt;Entgegen anderslautender Gerüchte plant Google offenbar, Voice vorerst weiterhin nur auf Einladung zugänglich zu machen. VoIP-Anbieter wie Skype müssen sich somit im Moment keine Sorgen machen, von Google in Bedrängnis gebracht zu werden. &lt;strong&gt;Langfristig aber ist Voice definitiv eine Bedrohung für alle Unternehmen, die im Markt der digitalen Telefonie tätig sind.&lt;/strong&gt; Skype beispielsweise wäre daher gut beraten, sein Angebot noch stärker in die Richtung des “Unified Messagings” zu bewegen. Eine Browservariante könnte ein Anfang sein.&lt;/p&gt;
&lt;p&gt;Ab wann Europäer Zugang zu Google Voice erhalten, ist bisher unklar.&lt;/p&gt;
&lt;br&gt;&lt;table cellspacing="0" width="100%"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;&lt;u&gt;Verwandte Artikel (Beta-Test)&lt;/u&gt;&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;table bgcolor="#ffffff" cellpadding="0" cellspacing="2" width="100%"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td width="60"&gt;&lt;a href="http://netzwertig.com/2009/07/13/microsoft-office-2010-das-imperium-schlaegt-zurueck/"&gt;&lt;img src="http://netzwertig.com/wp-content/uploads/2009/07/office2010.jpg" border="0" height="55" width="55"&gt;&lt;/a&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;&lt;a href="http://netzwertig.com/2009/07/13/microsoft-office-2010-das-imperium-schlaegt-zurueck/"&gt;Microsoft Office 2010: Das Imperium schlägt zurück&lt;/a&gt;&lt;/b&gt;&lt;br&gt;&lt;font size="2"&gt;Microsoft greift Google an: Office 2010 wird kostenlose, webbasierte Versionen von Word, Excel, PowerPoint und OneNote beinhalten.  &lt;/font&gt;&lt;font color="#aaaaaa"&gt;(13. Juli 2009)&lt;/font&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width="60"&gt;&lt;a href="http://netzwertig.com/2009/07/08/google-chrome-operating-system-betriebssystem-fuer-die-cloud/"&gt;&lt;img src="http://netzwertig.com/wp-content/uploads/2009/07/google-chrome-logo.jpg" border="0" height="55" width="55"&gt;&lt;/a&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;&lt;a href="http://netzwertig.com/2009/07/08/google-chrome-operating-system-betriebssystem-fuer-die-cloud/"&gt;Google Chrome Operating System: Betriebssystem für die Cloud&lt;/a&gt;&lt;/b&gt;&lt;br&gt;&lt;font size="2"&gt;Google wird mit dem Chrome OS ein eigenes, eng mit dem Web verbundenes Betriebssystem entwickeln.  &lt;/font&gt;&lt;font color="#aaaaaa"&gt;(8. Juli 2009)&lt;/font&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width="60"&gt;&lt;a href="http://netzwertig.com/2009/06/03/google-squared-ist-live/"&gt;&lt;img src="http://netzwertig.com/wp-content/uploads/2009/06/google-squared-neu.png" border="0" height="55" width="55"&gt;&lt;/a&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;&lt;a href="http://netzwertig.com/2009/06/03/google-squared-ist-live/"&gt;Google Squared ist live&lt;/a&gt;&lt;/b&gt;&lt;br&gt;&lt;font size="2"&gt;Google Squared ist live und kann unter http://www.google.com/squared/ benutzt werden. Die Ergebnisse sind oft erstaunlich zutreffend. &lt;/font&gt;&lt;font color="#aaaaaa"&gt;(3. Juni 2009)&lt;/font&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br&gt;&lt;p&gt;&lt;iframe src="http://feedads.g.doubleclick.net/%7Eah/f/s226un77ihkufd46q5rqlpat1k/300/250?ca=1&amp;amp;fh=280#http%3A%2F%2Fnetzwertig.com%2F2009%2F07%2F16%2Fgoogle-voice-die-revolution-der-telefonie%2F" marginwidth="0" marginheight="0" scrolling="no" frameborder="0" height="280" width="100%"&gt;&lt;/iframe&gt;&lt;/p&gt;&lt;div&gt;
&lt;a href="http://feeds.feedburner.com/%7Eff/netzwertig?a=aESlfvIDR9I:QGUbYic9-4A:D7DqB2pKExk"&gt;&lt;img src="http://feeds.feedburner.com/%7Eff/netzwertig?i=aESlfvIDR9I:QGUbYic9-4A:D7DqB2pKExk" border="0"&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/%7Er/netzwertig/%7E4/aESlfvIDR9I" height="1" width="1"&gt;
&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/sebastian-werner/news?a=aESlfvIDR9I:LEtJsuS9lgk:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sebastian-werner/news?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/sebastian-werner/news?a=aESlfvIDR9I:LEtJsuS9lgk:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sebastian-werner/news?i=aESlfvIDR9I:LEtJsuS9lgk:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/sebastian-werner/news?a=aESlfvIDR9I:LEtJsuS9lgk:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sebastian-werner/news?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/sebastian-werner/news?a=aESlfvIDR9I:LEtJsuS9lgk:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sebastian-werner/news?i=aESlfvIDR9I:LEtJsuS9lgk:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</content><author gr:unknown-author="true"><name>(author unknown)</name></author><gr:annotation><content type="html">Neben Wave ist Voice sicher das aktuell spannendste "upcoming" Google Produkt.</content><author gr:user-id="05325327707497594110" gr:profile-id="103933975894958686177"><name>wpbasti</name></author></gr:annotation><source gr:stream-id="user/05325327707497594110/source/com.google/link"><id>tag:google.com,2005:reader/user/05325327707497594110/source/com.google/link</id><title type="html">netzwertig.com</title><link rel="alternate" href="http://netzwertig.com" type="text/html" /></source><feedburner:origLink>http://netzwertig.com/2009/07/16/google-voice-die-revolution-der-telefonie/</feedburner:origLink></entry><entry gr:crawl-timestamp-msec="1247817931830"><id gr:original-id="">tag:google.com,2005:reader/item/d47d1f3aba76eace</id><title type="html">3D Transforms</title><published>2009-07-17T08:05:31Z</published><updated>2009-07-17T08:05:31Z</updated><link rel="alternate" href="http://feedproxy.google.com/~r/sebastian-werner/news/~3/tWZZxrXlMNw/" type="text/html" /><link rel="related" href="http://planet.webkit.org/" title="Planet WebKit" /><content xml:base="http://webkit.org/blog/386/3d-transforms/" type="html">&lt;blockquote&gt;Shared by  wpbasti 
&lt;br&gt;
Impressive stuff.&lt;/blockquote&gt;
&lt;p&gt;WebKit on Mac OS X now has support for &lt;a href="http://www.w3.org/TR/css3-3d-transforms/" title="CSS 3D Transforms Module Level 3"&gt;CSS 3D transforms&lt;/a&gt;, which allow you to position elements on the page in three-dimensional space using CSS. This is a natural extension of 2D transforms, which we described in an earlier &lt;a href="http://webkit.org/blog/130/css-transforms/" title="Surfin’ Safari - Blog Archive  » CSS Transforms"&gt;blog post&lt;/a&gt;. 3D transforms have been supported on iPhone since 2.0, and now we’re please to announce that we have currently added support for Leopard and later.&lt;/p&gt;
&lt;p&gt;If you want to jump right in and see a demo, make sure you’re running &lt;a href="http://nightly.webkit.org/" title="WebKit Nightly Builds"&gt;recent WebKit nightly build&lt;/a&gt; on Leopard or later, and load this example:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://webkit.org/blog-files/3d-transforms/poster-circle.html"&gt;Poster Circle&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Here’s a screenshot for those not running a recent-enough WebKit (if you are, hover over it for a treat!):&lt;/p&gt;

#flip-container {
  position: relative;
  margin: 10px auto;
  width: 250px;
  height: 261px;
  z-index: 1;
}
.face.back {
  display: none;
}
@media all and (-webkit-transform-3d) {
  /* Use the media query to determine if 3D transforms are supported */
  #flip-container {
    -webkit-perspective: 800;
  }
  #flip-card {
    width: 100%;
    height: 100%;
    -webkit-transform-style: preserve-3d;
    -webkit-transition: -webkit-transform 1s;
  }
  #flip-container:hover #flip-card {
    -webkit-transform: rotateY(180deg);
  }
  .face {
    position: absolute;
    width: 100%;
    height: 100%;
    -webkit-backface-visibility: hidden;
  }
  .face.back {
    display: block;
    -webkit-transform: rotateY(180deg);
    -webkit-box-sizing: border-box;
    padding: 10px;
    font-size: 12pt;
    color: white;
    text-align: center;
    background-color: #835A99;
    -webkit-border-radius: 10px;
  }
}

&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
    &lt;img src="http://webkit.org/blog-files/3d-transforms/poster-circle.png" alt="Poster Circle" height="261" width="250"&gt;
  &lt;/div&gt;
&lt;div&gt;
    This flip effect is done entirely with 3D transforms and transitions—no JavaScript required!
  &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Like many of the examples you’ll see here, this one combines CSS transforms with &lt;a href="http://webkit.org/blog/138/css-animation/" title="Surfin’ Safari - Blog Archive  » CSS Animation"&gt;CSS transitions and animations&lt;/a&gt; to great effect.&lt;/p&gt;
&lt;p&gt;3D transforms are applied via the same &lt;code&gt;-webkit-transform&lt;/code&gt; property as 2D transforms. For example, here’s how to rotate an element about the Y (vertical) axis:&lt;/p&gt;
&lt;pre&gt;-webkit-transform: rotateY(45deg);
&lt;/pre&gt;
&lt;p&gt;There are several new transform functions available for use in the &lt;code&gt;-webkit-transform&lt;/code&gt; property:&lt;/p&gt;
&lt;dl&gt;
&lt;dt&gt;translate3d(x, y, z), translateZ(z)&lt;/dt&gt;
&lt;dd&gt;Move the element in x, y and z, and just move the element in z. Positive z is towards the viewer. Unlike x and y, the z value cannot be a percentage.&lt;/dd&gt;
&lt;dt&gt;scale3d(sx, sy, sz), scaleZ(sz)&lt;/dt&gt;
&lt;dd&gt;Scale the element in x, y and z. The z scale affects the scaling along the z axis in transformed children.&lt;/dd&gt;
&lt;dt&gt;rotateX(angle), rotateY(angle), rotate3d(x, y, z, angle), &lt;/dt&gt;
&lt;dd&gt;The first two forms simply rotate the element about the horizontal and vertical axes. Angle units can be degrees (deg) radians (rad) or gradians (grad). The last form allows you to rotate the element around an arbitrary vector in 3D space; x, y and z should specify the unit vector you wish to rotate around (we’ll normalize it for you).&lt;/dd&gt;
&lt;dt&gt;perspective(p)&lt;/dt&gt;
&lt;dd&gt;This function allows you to put some perspective into the transformation matrix. For an explanation of &lt;em&gt;p&lt;/em&gt;, see below. Normally perspective is applied via the &lt;code&gt;-webkit-perspective&lt;/code&gt; property, but this function allows you to get a perspective effect for a single element, with something like:&lt;/dd&gt;&lt;/dl&gt;
&lt;pre&gt;-webkit-transform: perspective(500px) rotateY(20deg);
&lt;/pre&gt;

&lt;dt&gt;matrix3d(…)&lt;/dt&gt;
&lt;dd&gt;This function allows you to specify the raw 4×4 homogeneous transformation matrix of 16 values in column-major order. Have fun with that!&lt;/dd&gt;

&lt;p&gt;We’ve also extended one other CSS transform property, and implemented the four other 3D-related properties described in the spec:
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;-webkit-transform-origin&lt;/code&gt;&lt;/strong&gt; now accepts three values, allowing you to specify a z offset for the transform origin.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;-webkit-perspective&lt;/code&gt;&lt;/strong&gt; is used to give an illusion of depth; it determines how things change size based on their z-offset from the z=0 plane. You can think of it as though you’re looking at the page from a distance &lt;em&gt;p&lt;/em&gt; away. Objects on the z=0 plane appear in their normal size. Something at a z offset of &lt;em&gt;p&lt;/em&gt;/2 (halfway between the viewer and the z=0 plane) will look twice as big, and something at a z offset of -&lt;em&gt;p&lt;/em&gt; will look half as big. Thus, large values give a little foreshortening effect, and small values lots of foreshortening. Values between 500px and 1000px give a reasonable-looking result for most content. &lt;/p&gt;
&lt;p&gt;The default origin for the perspective effect is the center of the element’s border box, but you can control this with &lt;strong&gt;&lt;code&gt;-webkit-perspective-origin&lt;/code&gt;&lt;/strong&gt;. &lt;/p&gt;
&lt;p&gt;
Here’s an example that shows how perspective works:
&lt;/p&gt;
&lt;p&gt;&lt;a href="http://webkit.org/blog-files/3d-transforms/perspective-by-example.html"&gt;Perspective&lt;/a&gt;&lt;/p&gt;
&lt;p&gt; The interesting thing about &lt;code&gt;-webkit-perspective&lt;/code&gt; is that it does not affect the element directly. Instead, it affects the appearance of the 3D transforms on the transformed &lt;em&gt;descendants&lt;/em&gt; of that element; you can think of it as a adding a transform that gets multiplied into the descendant transforms. This allows those descendants to all share the same perspective as they move around. &lt;/p&gt;
&lt;p&gt;Now that we’ve described how you can assign 3D transforms to elements and make them look three-dimensional with some perspective. However, so far, all the effects are really just painting effects. Those transformed children are still rendering into the plane of their parent; in other words, they are &lt;em&gt;flattened&lt;/em&gt;. &lt;/p&gt;
&lt;p&gt;When you start to build hierarchies of objects with 3D transforms, flattening is not what you want. You want parents and children to live in a shared three-dimensional space, and to all share the same perspective which propagates up from some container. This is where &lt;code&gt;-webkit-transform-style&lt;/code&gt; comes in. &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;-webkit-transform-style&lt;/code&gt;&lt;/strong&gt; has two values:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;flat&lt;/code&gt;: This is the default value, and gives the behavior described above; transformed children are flattened into the plane of their parent (think of the 3D transform as simply a painting effect).&lt;/li&gt;
&lt;li&gt;&lt;code&gt;preserves-3d&lt;/code&gt;: This value states that the element to which it is assigned does not flatten its children into it; instead, those children live in a shared 3D space with the element.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Here’s an example that shows transform-style in action:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://webkit.org/blog-files/3d-transforms/transform-style.html"&gt;Transform Style&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;A common pattern, therefore, is to have content that looks like this:&lt;/p&gt;
&lt;pre&gt;&amp;lt;div class=&amp;quot;container&amp;quot; style=&amp;quot;-webkit-perspective: 600px&amp;quot;&amp;gt;
  &amp;lt;div class=&amp;quot;box&amp;quot; style=&amp;quot;-webkit-transform-style: preserve-3d; -webkit-transform: rotateY(10deg)&amp;quot;&amp;gt;
    &amp;lt;div class=&amp;quot;leaf&amp;quot; style=&amp;quot;-webkit-transform: rotateX(10deg)&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;
  &amp;lt;/div&amp;gt;
&amp;lt;/div&amp;gt;
&lt;/pre&gt;
&lt;p&gt;Here both ‘leaf’ and ‘box’ share the same 3D space, so both appear with the perspective specified on the container. ‘box’ can also be rotated with a transition or animation, and ‘leaf’ will move around as ‘box’ moves, in perspective.&lt;/p&gt;
&lt;p&gt;One thing you may have noticed in these demos is that it’s quite common to have a 3D transform that flips an element around so that you can see its reverse side. In some cases you don’t want the element to appear at all in this situation (say, for example, you want to position two elements back-to-back, so you need to hide the one that’s facing away from the viewer). This is the reason for the last 3d-related property, &lt;strong&gt;&lt;code&gt;-webkit-backface-visibility&lt;/code&gt;&lt;/strong&gt;. Its two values—&lt;code&gt;visible&lt;/code&gt; (the default), and &lt;code&gt;hidden&lt;/code&gt;—specify whether the element is visible or not when that element is transformed such that its back face is towards the viewer. &lt;/p&gt;
&lt;p&gt;Here’s a final example that shows backface-visibility in action, along with more 3D goodness, animations and transitions:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://webkit.org/blog-files/3d-transforms/morphing-cubes.html"&gt;Morphing Power Cubes&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="http://webkit.org/blog-files/3d-transforms/mighty-cubes.png" alt="Mighty Cubes" height="175" width="415"&gt;&lt;/p&gt;
&lt;p&gt; For more information, see the CSS working drafts on &lt;a href="http://www.w3.org/TR/css3-2d-transforms/" title="CSS 2D Transforms Module Level 3"&gt;2D transforms&lt;/a&gt;, &lt;a href="http://www.w3.org/TR/css3-3d-transforms/" title="CSS 3D Transforms Module Level 3"&gt;3D transforms&lt;/a&gt;, &lt;a href="http://www.w3.org/TR/css3-transitions/" title="CSS Transitions Module Level 3"&gt;transitions&lt;/a&gt; and &lt;a href="http://www.w3.org/TR/css3-animations/" title="CSS Animations Module Level 3"&gt;animations&lt;/a&gt;. There is also documentation in the &lt;a href="http://developer.apple.com/safari/library/documentation/InternetWeb/Conceptual/SafariVisualEffectsProgGuide/Transforms/Transforms.html" title="Safari Visual Effects Guide: Transforms"&gt;Safari Reference Library&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;We hope you have a blast with these new features, and share your creations with us. If you find bugs, please report them at &lt;a href="http://bugs.webkit.org/"&gt;bugs.webkit.org&lt;/a&gt;.&lt;/p&gt;
&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/sebastian-werner/news?a=tWZZxrXlMNw:-ZXJ5tJGUaA:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sebastian-werner/news?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/sebastian-werner/news?a=tWZZxrXlMNw:-ZXJ5tJGUaA:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sebastian-werner/news?i=tWZZxrXlMNw:-ZXJ5tJGUaA:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/sebastian-werner/news?a=tWZZxrXlMNw:-ZXJ5tJGUaA:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sebastian-werner/news?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/sebastian-werner/news?a=tWZZxrXlMNw:-ZXJ5tJGUaA:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sebastian-werner/news?i=tWZZxrXlMNw:-ZXJ5tJGUaA:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</content><author gr:unknown-author="true"><name>(author unknown)</name></author><gr:annotation><content type="html">Impressive stuff.</content><author gr:user-id="05325327707497594110" gr:profile-id="103933975894958686177"><name>wpbasti</name></author></gr:annotation><source gr:stream-id="user/05325327707497594110/source/com.google/link"><id>tag:google.com,2005:reader/user/05325327707497594110/source/com.google/link</id><title type="html">Planet WebKit</title><link rel="alternate" href="http://planet.webkit.org/" type="text/html" /></source><feedburner:origLink>http://webkit.org/blog/386/3d-transforms/</feedburner:origLink></entry><entry gr:crawl-timestamp-msec="1247817257122"><id gr:original-id="">tag:google.com,2005:reader/item/8f0b65a71618e7fd</id><title type="html">HTML5 and The Future of the Web</title><published>2009-07-17T07:54:17Z</published><updated>2009-07-17T07:54:17Z</updated><link rel="alternate" href="http://feedproxy.google.com/~r/sebastian-werner/news/~3/uspz7yjxQY0/" type="text/html" /><link rel="related" href="http://www.smashingmagazine.com/" title="Smashing Magazine" /><content xml:base="http://www.smashingmagazine.com/2009/07/16/html5-and-the-future-of-the-web/" type="html">&lt;blockquote&gt;Shared by  wpbasti 
&lt;br&gt;
Good overview to HTML 5 and what it's all about.&lt;/blockquote&gt;
&lt;table width="450"&gt;
&lt;tbody&gt;&lt;tr&gt;
&lt;td width="450"&gt;
&lt;div style="width:450px"&gt;
     &lt;img src="http://creatives.commindo-media.de/static/smashing-magazine-advertisement.gif" alt="" border="0"&gt;&lt;br&gt;
     &lt;a href="http://creatives.commindo-media.de/www/delivery/ck.php?zoneid=56"&gt;&lt;img src="http://creatives.commindo-media.de/www/delivery/avw.php?zoneid=56" alt="" border="0"&gt;&lt;/a&gt; &lt;a href="http://creatives.commindo-media.de/www/delivery/ck.php?zoneid=63"&gt;&lt;img src="http://creatives.commindo-media.de/www/delivery/avw.php?zoneid=63" alt="" border="0"&gt;&lt;/a&gt;
   &lt;/div&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt; Some have &lt;a href="http://radar.oreilly.com/2009/05/google-bets-big-on-html-5.html"&gt;embraced it&lt;/a&gt;, some have &lt;a href="http://ishtml5readyyet.com/"&gt;discarded it&lt;/a&gt; as too far in the future, and some have &lt;a href="http://mezzoblue.com/archives/2009/04/20/switched/"&gt;abandoned a misused friend&lt;/a&gt; in favor of an old flame in preparation. Whatever side of the debate you’re on, you’ve most likely heard all the blogging chatter surrounding the “new hotness” that is &lt;strong&gt;HTML5&lt;/strong&gt;. It’s everywhere, it’s coming, and you want to know everything you can before it’s old news.&lt;/p&gt;
&lt;p&gt;Things like jQuery plugins, formatting techniques, and design trends change very quickly throughout the Web community. And for the most part we’ve all accepted that some of the things we learn today can be obsolete tomorrow, but that’s the nature of our industry.&lt;/p&gt;
&lt;p&gt;When looking for some stability, we can usually turn to the code itself as it tends to stay unchanged for a  long time (relatively speaking). So when something comes along and changes our code, it’s a big deal; and there are going to be some growing pains we’ll have to work through. Luckily, rumor has it, that we have &lt;a href="http://www.zeldman.com/2009/07/02/xhtml-wtf/"&gt;one less change to worry about&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;In this article, I’m hoping to give you some tips and insight into HTML5 to help ease the inevitable pain that comes with transitioning to a slightly different syntax.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Welcome to HTML5&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://media2.smashingmagazine.com/wp-content/uploads/images/html5/html5_logo.png" alt="HTML5 logo" height="180" width="450"&gt;&lt;/p&gt;
&lt;h3&gt;What are the basics?&lt;/h3&gt;
&lt;h4&gt;The DOCTYPE&lt;/h4&gt;
&lt;p&gt;When I first started researching HTML5 a few months ago, one of the main things I struggled to find was the doctype. A simple thing, you’d think it would be everywhere, but after much frustration, I finally found it buried within &lt;a href="http://w3.org"&gt;w3.org&lt;/a&gt; and here it is:&lt;/p&gt;
&lt;pre&gt;&amp;lt;!DOCTYPE html&amp;gt;&lt;/pre&gt;
&lt;p&gt;I was also curious  why they chose to  “html” rather than “html5″, it seemed like the logical way to tell a browser that the current document was written in HTML5, and offered a good template for the future. But  I found  that &lt;code&gt;&amp;lt;!DOCTYPE html5&amp;gt;&lt;/code&gt; triggers &lt;a href="http://www.quirksmode.org/"&gt;Quirks Mode&lt;/a&gt; in IE6, and when taking  backwards compatibility into consideration &lt;code&gt;&amp;lt;!DOCTYPE html&amp;gt;&lt;/code&gt; is a pretty good choice (in my opinion).&lt;/p&gt;
&lt;p&gt;Overall, I really like the new DOCTYPE; it’s small, meaningful, and maybe we’ll actually be able to remember this one by heart and not have to paste it from site to site.&lt;/p&gt;
&lt;h4&gt;New Elements you should know&lt;/h4&gt;
&lt;p&gt;At first glance, with HTML5, the new elements immediately jump out  and  command attention. The W3C really listened to the community and planned for the future when architecting the abundance of new elements available. We have everything from basic structural elements like &lt;code&gt;&amp;lt;header&amp;gt;&lt;/code&gt; and &lt;code&gt;&amp;lt;footer&amp;gt;&lt;/code&gt; to others like &lt;code&gt;&amp;lt;canvas&amp;gt;&lt;/code&gt; and &lt;code&gt;&amp;lt;audio&amp;gt;&lt;/code&gt; that tap into, what seems to be, a very powerful API which allows us the freedom to create more user-friendly applications while further distancing ourselves from reliance on Flash for saving data and intense animation.&lt;/p&gt;
&lt;h5&gt;The new structural elements&lt;/h5&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;&amp;lt;header&amp;gt;&lt;/code&gt;&lt;br&gt;
The header element contains introductory information to a section or page. This can involve anything from our normal documents headers (branding information) to an entire &lt;strong&gt;table of contents&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&amp;lt;nav&amp;gt;&lt;/code&gt;&lt;br&gt;
The nav element is reserved for a section of a document that contains links to other pages or links to sections of the same page. Not all link groups need to be contained within the &amp;lt;nav&amp;gt; element, just &lt;strong&gt;primary navigation&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&amp;lt;section&amp;gt;&lt;/code&gt;&lt;br&gt;
The section element represents a &lt;strong&gt;generic document or application section&lt;/strong&gt;. It acts much the same way a &lt;code&gt;&amp;lt;div&amp;gt;&lt;/code&gt; does by separating off a portion of the document.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&amp;lt;article&amp;gt;&lt;/code&gt;&lt;br&gt;
The article element represents a portion of a page which can stand alone such as: a blog post, a forum entry, user submitted comments or any &lt;strong&gt;independent item of content&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&amp;lt;aside&amp;gt;&lt;/code&gt;&lt;br&gt;
Aside, represents content related to the main area of the document. This is usually expressed in sidebars that contain elements like related posts, tag clouds, etc. They can also be used for &lt;strong&gt;pull quotes&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&amp;lt;footer&amp;gt;&lt;/code&gt;&lt;br&gt;
The footer element is for marking up the footer of, not only the current page, but each section contained in the page. So, it’s very likely that you’ll be using the &amp;lt;footer&amp;gt; element multiple times within one page.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;When you take a look at these new elements, it looks like  they’re just replacing our common DIV IDs; and in a way,  it’s true. But, the diagram below shows that elements like &lt;code&gt;&amp;lt;header&amp;gt;&lt;/code&gt; and &lt;code&gt;&amp;lt;footer&amp;gt;&lt;/code&gt; can be used more than once on a single page where they behave more like classes and normal HTML elements that you can use over and over again to retain a semantic structure.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://media2.smashingmagazine.com/wp-content/uploads/images/html5/html5_structure.png" alt="HTML5 Structure Doc" height="320" width="434"&gt;&lt;/p&gt;
&lt;p&gt;Elements like &amp;lt;header&amp;gt; and &amp;lt;footer&amp;gt; are not just meant to represent the top and bottom of the current document, but they also represent the &lt;code&gt;&amp;lt;header&amp;gt;&lt;/code&gt; and &lt;code&gt;&amp;lt;footer&amp;gt;&lt;/code&gt; of each document section, much the way we use &lt;code&gt;&amp;lt;thead&amp;gt;&lt;/code&gt; and &lt;code&gt;&amp;lt;tfoot&amp;gt;&lt;/code&gt; in data tables.&lt;/p&gt;
&lt;p&gt;The benefits of using these structural elements is mainly due to the fact that they are extremely well defined and provide a great way to semantically structure your document. However, these elements do need to be used with some &lt;strong&gt;careful thought&lt;/strong&gt; because they can, very easily be overused.&lt;/p&gt;
&lt;h5&gt;Further Reading on structural HTML5&lt;/h5&gt;
&lt;ul&gt;
&lt;li&gt;Steve Smith on &lt;a href="http://orderedlist.com/articles/structural-tags-in-html5"&gt;Structural Tags in HTML5&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Lachlan Hunt’s &lt;a href="http://www.alistapart.com/articles/previewofhtml5"&gt;Preview of HTML5&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Elliot Harold on &lt;a href="http://www.ibm.com/developerworks/library/x-html5/?ca=dgr-lnxw01NewHTML"&gt;New Elements in HTML5&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Bruce Lawson’s &lt;a href="http://www.brucelawson.co.uk/tests/html5-forms-demo.html"&gt;HTML5 Form Demo&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;Easing the transition from XHTML&lt;/h4&gt;
&lt;p&gt;Even though HTML 4.01, XHTML 1.0, &amp;amp; HTML5 are all very similar there are some small syntax differences that can, very easily, slip past anyone and invalidate code. Keeping this in mind, HTML5 has some built-in “slack” to make the transition a little easier.&lt;/p&gt;
&lt;p&gt;For example, when marking up a form in HTML5, this is the proper syntax for an input text element:&lt;/p&gt;
&lt;pre&gt;&amp;lt;input type=&amp;quot;text&amp;quot; id=&amp;quot;name&amp;quot;&amp;gt;&lt;/pre&gt;
&lt;p&gt;But this is also accepted as valid code in an attempt to ease the pain for avid XHTML coders (like myself) who are used to self-closing elements:&lt;/p&gt;
&lt;pre&gt;&amp;lt;input type=&amp;quot;text&amp;quot; id=&amp;quot;name&amp;quot;/&amp;gt;&lt;/pre&gt;
&lt;p&gt;The same rules apply to &lt;code&gt;&amp;lt;meta&amp;gt;&lt;/code&gt; and other self closing elements. Legacy elements like &lt;code&gt;&amp;lt;b&amp;gt;&lt;/code&gt; and &lt;code&gt;&amp;lt;i&amp;gt;&lt;/code&gt; were also left in to help those coming over from HTML 4.01.l&lt;/p&gt;
&lt;h3&gt;What are the benefits?&lt;/h3&gt;
&lt;p&gt;With any new technology there has to be benefit; why else would you use it? If your old code works just as well and efficient as the new code there’s no reason to upgrade. No reason at all, trust me, I checked.&lt;/p&gt;
&lt;p&gt;Luckily HTML5 is &lt;em&gt;packed&lt;/em&gt; with cool new features, code slimming techniques and a lot of stuff I would call very large &lt;strong&gt;benefits&lt;/strong&gt;. Most of which circle around the new APIs and the &lt;strong&gt;DOM tree&lt;/strong&gt;.&lt;/p&gt;
&lt;h4&gt;Extending the API&lt;/h4&gt;
&lt;p&gt;The most obvious benefit built into HTML5 is the numerous &lt;a href="http://www.w3.org/TR/html5-diff/#apis"&gt;APIs&lt;/a&gt; and the opportunities it opens up for the future of web apps with Holy Grail of &lt;strong&gt;application cache &lt;/strong&gt;and  &lt;strong&gt;offline capabilities&lt;/strong&gt;. Google Gears gave us offline data storage and Flash introduced us to the power of application cache (Pandora uses it to save your log in information). With HTML5, these capabilities are now available to use right in the language and can easily be expanded with JavaScript.&lt;/p&gt;
&lt;p&gt;HTML5 relies on light scripting to flex its muscles on the Web; this is very possibly the first time, other than  jQuery, that one (front-end) technology has fully acknowledged another. Sure, we connect them with classes and IDs but up until now, they have been perceived as separate layers by the principles of progressive enhancement. But as the Web grows we need unity like this across the Web.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://media1.smashingmagazine.com/wp-content/uploads/images/html5/html5_api.png" alt="HTML5 API" height="100" width="450"&gt;&lt;/p&gt;
&lt;h5&gt;Offline Data Storage&lt;/h5&gt;
&lt;p&gt;The coolest part about HTML5 is definitely its offline capabilities. Programs like  Thunderbird and Outlook (and now GMail to an extent)  let you browse through your old data while staying offline. With HTML5, you’ll have this same functionality, but in the browser. This is the first serious step towards bridging the gap between the desktop and the Web, and opens all sorts of doors for the future of Web apps.&lt;/p&gt;
&lt;p&gt;The W3C has taken the best parts from the various Web technologies and rolled them into, what is being dubbed the most powerful markup language to date.&lt;/p&gt;
&lt;h5&gt;Some other of the HTML5 APIs&lt;/h5&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.w3.org/TR/2008/WD-html5-20080122/#dnd"&gt;Drag &amp;amp; Drop&lt;/a&gt;&lt;br&gt;
The drag and drop API defines an event-based drag and drop system. However, it never defines what “drag and drop” is. This API requires JavaScript to fully work as normal  think drag and drop functionality.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://dev.w3.org/html5/spec/Overview.html#video"&gt;Video&lt;/a&gt; &amp;amp; &lt;a href="http://dev.w3.org/html5/spec/Overview.html#audio"&gt;Audio&lt;/a&gt;&lt;br&gt;
The audio &amp;amp; video APIs are massive upgrades in media embedding. Although support is limited right now, something like video embedding has never been easier:
&lt;pre&gt;&amp;lt;video width=&amp;quot;400&amp;quot; height=&amp;quot;360&amp;quot; src=&amp;quot;vid.mp4&amp;quot;&amp;gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="http://dev.w3.org/geo/api/spec-source.html"&gt;Geolocation&lt;/a&gt;&lt;br&gt;
Geolocation is a very cool API available within HTML5. Its object can be used to programmatically determine location information through a device’s user agent (hint hint: mobile devices).&lt;/li&gt;
&lt;/ul&gt;
&lt;h5&gt;Further reading on the HTML5 API&lt;/h5&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.w3.org/TR/offline-webapps/"&gt;Offline Web Applications&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.w3.org/TR/offline-webapps/#offline"&gt;Offline Application Caching&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Remy Sharp on &lt;a href="http://www.slideshare.net/remy.sharp/html5-js-apis"&gt;JavaScript APIs HTML5&lt;/a&gt; (presentation)&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.youtube.com/html5"&gt;O3D Beach Demo&lt;/a&gt; from Google (must have an HTML5 capable browser)&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Where can I use it?&lt;/h3&gt;
&lt;p&gt;Even with the very limited support for HTML5, the Web is far too progressive to not create a testing environment for us to play around. Currently, Safari is our best testing platform, as it supports most of the new elements and APIs. Of course, that may change at anytime so keep and eye on Opera, Chrome and Firefox as well.&lt;/p&gt;
&lt;p&gt;Normally you might think  since Safari is a Webkit browser, by default, all Webkit browsers would support the same elements,  unfortunately, this isn’t the case. While many of the HTML5 features &lt;em&gt;are&lt;/em&gt; supported across the board in Webkit browsers, there are  some, like &lt;code&gt;&amp;lt;video&amp;gt;&lt;/code&gt;, that are not.&lt;/p&gt;
&lt;h4&gt;Mobile devices&lt;/h4&gt;
&lt;p&gt;To effectively use HTML5 right now, we need to be able to &lt;strong&gt;control the environment&lt;/strong&gt; in which it is used. Since support is not as widespread as we’d like it doesn’t make real sense for it to be heavily used unless, of course, we can lock down the usage to certain platforms which have HTML5 support. With Webkit leading the way for HTML5, we can safely focus on devices powered by Webkit.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://media1.smashingmagazine.com/wp-content/uploads/images/html5/mobile_phones.png" alt="HTML5 API" height="242" width="480"&gt;&lt;/p&gt;
&lt;p&gt;The 3 hottest mobile devices right now: The Palm Pre, iPhone 3Gs and the new Google Android phone  all have  browsers that are based off the &lt;strong&gt;Webkit rendering engine&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Safari is even leading the way on the mobile HTML5 front; The iPhone (with the latest software upgrade) is the only device I could get to properly render the &amp;lt;audio&amp;gt; element. Because these devices are so young and all use the same rendering engine, the likelihood of them pushing a rapid software upgrade is pretty high.&lt;/p&gt;
&lt;p&gt;Right now, you can confidently use many of the HTML5 features in iPhone Web app development and mostly likely expect  Pre and Android to follow in suit.&lt;/p&gt;
&lt;h5&gt;Further reading on where you can use HTML5&lt;/h5&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://ajaxian.com/archives/html5-features-in-latest-iphone-application-cache-and-database"&gt;HTML5 Features in latest iPhone&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.theiphoneblog.com/2009/04/08/gmail-webapp-iphone-html5-offline-access-easy-linking/"&gt;GMail Web app for the iPhone&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://google-code-updates.blogspot.com/2009/06/gmail-for-mobile-html5-series.html"&gt;GMail for HTML5&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://molly.com/html5/html5-0709.html"&gt;Supported Features in HTML5&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.smashingmagazine.com/2009/07/06/html-5-cheat-sheet-pdf/"&gt;HTML5 Cheat Sheet&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;How can we move forward?&lt;/h3&gt;
&lt;p&gt;Even with all the recent  hype surrounding HTML5 and how we all want to use it, it is still going to be a very slow transition away from HTML4.01 &amp;amp; XHTML1.0. It will take time to get developers up to speed, test all the features, waiting for all the :ahem: browsers to catch up, and it will take an especially long time for users to transition out of those old browsers. With all that in mind, we know who we are, we’re all reading this article (I’ve read it about 30 times so far) and we know we have to find a legitimate way to move forward without damaging the past.&lt;/p&gt;
&lt;p&gt;We can’t make the full switch yet and there’s no use at this point pointing out who is holding up the show. We all know  that any responsible developer would not drop support for a browser that is still heavily used. So rather than yell at a brick wall, here are some things I’ve found that might help us move forward in a positive way:&lt;/p&gt;
&lt;h4&gt;Semantic DIV naming&lt;/h4&gt;
&lt;p&gt;Semantically aligning your DIV names with that of the new HTML5 elements will help you get used to the names themselves and also the new functionality and nesting that they want you to do with the &lt;code&gt;&amp;lt;header&amp;gt;&lt;/code&gt; and &lt;code&gt;&amp;lt;footer&amp;gt;&lt;/code&gt; elements. These are akin to learning the intro the Enter Sandman (for the guitarist out there); it’s not very difficult, but it takes a little practice to get it to feel natural.&lt;/p&gt;
&lt;p&gt;Before jumping in full-force to HTML5 production sites, I recommend trying the soft transition with changing your DIV names slightly. There’s no downside that I’ve found to doing this, you can even use the new DOCTYPE with very little consequence.&lt;/p&gt;
&lt;h4&gt;Faking it with JavaScript&lt;/h4&gt;
&lt;p&gt;First off, I’d like to say: Please don’t do this in production. If the client side scripting fails, it will completely collapse the site in browsers that won’t take CSS applied to the new elements. This is simply not a good option. It is, however, an option and I’m all about knowing  your options no matter what they are.&lt;/p&gt;
&lt;h5&gt;Creating the new elements with JavaScript&lt;/h5&gt;
&lt;p&gt;Working in jQuery is cool and all, but as it turns out, there is a built in function to JavaScript to deal with creating new elements:&lt;/p&gt;
&lt;pre&gt;document.createElement('header');
document.createElement('footer');
document.createElement('section');
document.createElement('aside');
document.createElement('nav');
document.createElement('article');
document.createElement('figure');
document.createElement('time');&lt;/pre&gt;
&lt;p&gt;…and so on in that fashion.&lt;/p&gt;
&lt;p&gt;This will allow you to style these elements in Internet Explorer. Again, the downside of using this technique is that, without the all-important JavaScript, the site will not only be unstyled, all the unrecognized elements will default to inline. So your site will literally collapse on itself.&lt;/p&gt;
&lt;p&gt;Client side JavaScript is not the answer for using HTML5. &lt;strong&gt;&lt;a href="http://ejohn.org/blog/server-side-javascript-with-jaxer/"&gt;Server side javascript&lt;/a&gt;&lt;/strong&gt;, now that’s a completely different story…&lt;/p&gt;
&lt;h4&gt;Building browser-specific apps&lt;/h4&gt;
&lt;p&gt;I’ve always promoted building sites for your audience, so depending on your audience, building browser-specific applications may be a real option. As I mentioned above, it’s all about &lt;strong&gt;controlling the environment&lt;/strong&gt;, if we can control the environment we can control features delivered to the user much better. Google is currently attempting to do this with &lt;a href="http://wave.google.com/"&gt;Google Wave&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The idea behind Google’s new monster product is to revolutionize communication, and do so with the newest technology. Google Wave is built in HTML5 and isn’t usable in all browsers yet. But that’s alright since they’re controlling the audience by only releasing it to select developers for testing.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://media2.smashingmagazine.com/wp-content/uploads/images/html5/google_wave.png" alt="Google Wave"&gt;&lt;/p&gt;
&lt;p&gt;With Wave, Google is pushing HTML5 as far as it will go (and even a little further). They are taking blogs, wikis, instant messaging, e-mail and synchronous communication to the next level by combining them into  place.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Here is what the Wave inbox looks like.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="http://media2.smashingmagazine.com/wp-content/uploads/images/html5/google_wave_inbox.png" alt="Google Wave"&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Below is a sort of wiki/chat area with all sorts of real-time communication treats for you to check out (once they release it).&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="http://media1.smashingmagazine.com/wp-content/uploads/images/html5/google_wave_inline_editing.png" alt="Google Wave"&gt;&lt;/p&gt;
&lt;p&gt;Google Wave being powered by HTML5 is definitely the biggest step forward we have seen in this area. They have done a phenomenal job putting together a creative and innovative product.&lt;/p&gt;
&lt;h4&gt;Focusing on the mobile&lt;/h4&gt;
&lt;p&gt;Just like Google is currently doing with Wave by selectively releasing it to developers, we can control the viewing environment when working with mobile devices. By grabbing the &lt;a href="http://detectmobilebrowsers.mobi/"&gt;user agent&lt;/a&gt;, we can design specific applications that use HTML5 for supported devices.&lt;/p&gt;
&lt;p&gt;Targeting the user agent of a device is not an ideal method in designing for the general mobile web, but when we need to &lt;strong&gt;specifically target a device&lt;/strong&gt;, like the iPhone, Pre or Google’s Android it’s a pretty solid option.&lt;/p&gt;
&lt;p&gt;Right now, the best mobile testing platform we have is the iPhone. With the recent software upgrade, it is very close to having full support. But, if you just want to use the new elements, most any of the big 3 mobile platforms will work fine. If you’re looking for API support I suggest testing on the iPhone with the new upgraded software.&lt;/p&gt;
&lt;h3&gt;Conclusion&lt;/h3&gt;
&lt;p&gt;With the strong foundations  set up by previous versions of (X)HTML and large community activity surrounding &lt;a href="http://www.webstandards.org/"&gt;Web standards&lt;/a&gt;, we’re  coming into a new age with a wealth of knowledge and the ability to learn from our past mistakes (and make some new ones). HTML5 is being set up with the expectations of a very powerful markup language and it’s up to us to utilize it in a way that can benefit us all.&lt;/p&gt;
&lt;p&gt;There are so many great features to look forward to from new elements to tons of killer APIs. We can make data available offline, easily combine technologies and create very intricate animations all within a familiar landscape. If you have the time, I encourage you to browse through the &lt;a href="http://dev.w3.org/html5/spec/Overview.html"&gt;entire spec&lt;/a&gt; and familiarize yourself even further with all the bells and whistles (there are a lot) so we can use HTML5 to build stronger, richer Web applications for years to come.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Here’s to HTML5, let’s hope it lives up to the hype.&lt;/strong&gt;&lt;/p&gt;
&lt;h3&gt;Resources&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://carsonified.com/blog/dev/html-5-dev/23-essential-html-5-resources/"&gt;23 Essential HTML 5 Resources&lt;/a&gt;&lt;br&gt;
A comprehensive list of articles and resources related to HTML 5.&lt;a href="http://carsonified.com/blog/dev/html-5-dev/23-essential-html-5-resources/"&gt;&lt;img src="http://www.smashingmagazine.com/wp-content/uploads/images/html5/ess.gif" alt="Screenshot" height="270" width="440"&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://html5demos.com/"&gt;HTML5 Demos&lt;/a&gt;&lt;br&gt;
HTML5 Demos is a great resource for checking out the HTML5 APIs such as: geolocation, drag and drop, offline detection, and storage. This is a very good and unique resources to test out and see exactly with we can do with HTML5.&lt;a href="http://html5demos.com/"&gt;&lt;img src="http://www.smashingmagazine.com/wp-content/uploads/images/html5/1.jpg" alt="Screenshot" height="270" width="440"&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://html5gallery.com/"&gt;HTML5 Gallery&lt;/a&gt;&lt;br&gt;
The HTML5 Gallery, like any gallery, is a web site showcase where you can see how others are using HTML5 in every day development. I’ve looked round though this site quite a bit and did some cross browser testing on some of the entries. Many are broken in older browsers, but there are some that &lt;a href="http://www.design-this.co.uk/blog.htm"&gt;hold up very well&lt;/a&gt;.&lt;a href="http://html5gallery.com/"&gt;&lt;img src="http://www.smashingmagazine.com/wp-content/uploads/images/html5/html5g.jpg" alt="Screenshot" height="270" width="440"&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://html5doctor.com/"&gt;HTML5 Doctor&lt;/a&gt;&lt;br&gt;
A resource that catered for the people who wished to find out more about implementing HTML5 and how to go about it. This blog publishes articles relating to HTML5 and it’s semantics and how to use them, here and now.&lt;a href="http://html5doctor.com/"&gt;&lt;img src="http://www.smashingmagazine.com/wp-content/uploads/images/html5/doctor.jpg" alt="Screenshot" height="270" width="440"&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.smashingmagazine.com/2009/07/06/html-5-cheat-sheet-pdf/"&gt;HTML5 Cheat Sheet&lt;/a&gt;&lt;br&gt;
A handy printable HTML 5 Cheat Sheet that lists all currently supported tags, their descriptions, their attributes and their support in HTML 4. Released here, at Smashing Magazine.&lt;a href="http://www.smashingmagazine.com/2009/07/06/html-5-cheat-sheet-pdf/"&gt;&lt;img src="http://www.smashingmagazine.com/wp-content/uploads/images/html5-cheat-sheet/html5.gif" alt="Screenshot" height="340" width="450"&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://dev.w3.org/html5/spec/Overview.html"&gt;W3C HTML5 Spec Overview&lt;/a&gt;&lt;br&gt;
Whenever you want to know&lt;br&gt;
about something that no one has written about on the Web, the W3C is your answer. I spent hours scouring this site in researching HTML5. It’s a great resource and I highly recommend reading through whatever you can.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://html5.validator.nu/"&gt;HTML5 Validator&lt;/a&gt;&lt;br&gt;
Even with such little support, we still want to make sure our code is valid. Validating your code is a great way to learn and ease yourself into developing with HTML5.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://wiki.whatwg.org/wiki/Main_Page"&gt;WHATWG Wiki&lt;/a&gt;&lt;br&gt;
The &lt;a href="http://www.whatwg.org/"&gt;HTML Working Group&lt;/a&gt; has put together some great documentation for tracking what exactly is going on in the world of HTML5.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;References&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.sitepoint.com/article/html-5-snapshot-2009/"&gt;Yes, You Can Use HTML 5 Today!&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://dev.w3.org/html5/html4-differences/"&gt;W3C HTML5 Differences&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.geektechnica.com/2009/06/5-amazing-html5-features-to-look-forward-to/"&gt;5 Amazing HTML5 Features to Look Forward to&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.alistapart.com/articles/previewofhtml5"&gt;Preview of HTML5&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://jontangerine.com/log/2008/03/preparing-for-html5-with-semantic-class-names"&gt;Preparing for HTML5 with Semantic Class Names&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://immike.net/blog/2008/02/06/xhtml-2-vs-html-5/"&gt;XHTML2 vs. HTML5&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.w3.org/TR/html5-diff/"&gt;HTML4 vs. HTML5&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.456bereastreet.com/archive/200706/html_5_and_accessibility/"&gt;Accessibility in HTML5&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://html5doctor.com/"&gt;HTML5 Doctor&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;About the Author&lt;/h4&gt;
&lt;p&gt;&lt;em&gt;Tim Wright is a web designer/developer and blogger. He has been an advocate for Web standards and accessibility since 2004. You can find more of his writing at &lt;a href="http://www.csskarma.com"&gt;CSSKarma&lt;/a&gt; or &lt;a href="http://twitter.com/csskarma"&gt;follow Tim on Twitter&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;


&lt;hr&gt;

&lt;p&gt;&lt;small&gt;© Tim Wright for &lt;a href="http://www.smashingmagazine.com"&gt;Smashing Magazine&lt;/a&gt;, 2009. |
&lt;a href="http://www.smashingmagazine.com/2009/07/16/html5-and-the-future-of-the-web/"&gt;Permalink&lt;/a&gt; | 
&lt;a href="http://www.smashingmagazine.com/2009/07/16/html5-and-the-future-of-the-web/#comments"&gt;29 comments&lt;/a&gt; | 
&lt;a title="Bookmark in del.icio.us" href="http://del.icio.us/post?url=http://www.smashingmagazine.com/2009/07/16/html5-and-the-future-of-the-web/&amp;amp;title=HTML5%20and%20The%20Future%20of%20the%20Web"&gt;Add to del.icio.us&lt;/a&gt; | &lt;a title="Bookmark in Digg" href="http://digg.com/submit?phase=2&amp;amp;url=http://www.smashingmagazine.com/2009/07/16/html5-and-the-future-of-the-web/"&gt;Digg this&lt;/a&gt; | &lt;a title="Stumble on StumbleUpon" href="http://www.stumbleupon.com/submit?url=http://www.smashingmagazine.com/2009/07/16/html5-and-the-future-of-the-web/"&gt;Stumble on StumbleUpon!&lt;/a&gt; | &lt;a title="Tweet us!" href="http://twitter.com/home?status=@tweetmeme%20@smashingmag%20Reading%20%27HTML5%20and%20The%20Future%20of%20the%20Web%27%20http://www.smashingmagazine.com/2009/07/16/html5-and-the-future-of-the-web/"&gt;Tweet it!&lt;/a&gt; | &lt;a title="Bookmark in Reddit" href="http://reddit.com/submit?url=http://www.smashingmagazine.com/2009/07/16/html5-and-the-future-of-the-web/"&gt;Submit to Reddit&lt;/a&gt; | &lt;a href="http://forum.smashingmagazine.com/"&gt;Forum Smashing Magazine&lt;/a&gt;

&lt;br&gt;
Post tags: &lt;a href="http://www.smashingmagazine.com/tag/future/" rel="tag"&gt;future&lt;/a&gt;, &lt;a href="http://www.smashingmagazine.com/tag/html-5/" rel="tag"&gt;html 5&lt;/a&gt;, &lt;a href="http://www.smashingmagazine.com/tag/html5/" rel="tag"&gt;html5&lt;/a&gt;, &lt;a href="http://www.smashingmagazine.com/tag/web/" rel="tag"&gt;web&lt;/a&gt;&lt;br&gt;
&lt;/small&gt;&lt;/p&gt;
&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/sebastian-werner/news?a=uspz7yjxQY0:Qw83mUu_Dzc:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sebastian-werner/news?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/sebastian-werner/news?a=uspz7yjxQY0:Qw83mUu_Dzc:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sebastian-werner/news?i=uspz7yjxQY0:Qw83mUu_Dzc:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/sebastian-werner/news?a=uspz7yjxQY0:Qw83mUu_Dzc:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sebastian-werner/news?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/sebastian-werner/news?a=uspz7yjxQY0:Qw83mUu_Dzc:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sebastian-werner/news?i=uspz7yjxQY0:Qw83mUu_Dzc:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</content><author gr:unknown-author="true"><name>(author unknown)</name></author><gr:annotation><content type="html">Good overview to HTML 5 and what it's all about.</content><author gr:user-id="05325327707497594110" gr:profile-id="103933975894958686177"><name>wpbasti</name></author></gr:annotation><source gr:stream-id="user/05325327707497594110/source/com.google/link"><id>tag:google.com,2005:reader/user/05325327707497594110/source/com.google/link</id><title type="html">Smashing Magazine</title><link rel="alternate" href="http://www.smashingmagazine.com/" type="text/html" /></source><feedburner:origLink>http://www.smashingmagazine.com/2009/07/16/html5-and-the-future-of-the-web/</feedburner:origLink></entry><entry gr:crawl-timestamp-msec="1247817093699"><id gr:original-id="">tag:google.com,2005:reader/item/05204ff6feeee1f7</id><title type="html">Xing&amp;#39;s New Features Not Worth Shelling Out For</title><published>2009-07-17T07:51:33Z</published><updated>2009-07-17T07:51:33Z</updated><link rel="alternate" href="http://feedproxy.google.com/~r/sebastian-werner/news/~3/HzT_h3Hm4FQ/xings-new-features-not-worth-shelling-out-for.php" type="text/html" /><link rel="related" href="http://www.readwriteweb.com/" title="ReadWriteWeb" /><content xml:base="http://feedproxy.google.com/~r/readwriteweb/~3/KSYOjS-Ph6k/xings-new-features-not-worth-shelling-out-for.php" type="html">&lt;blockquote&gt;Shared by  wpbasti 
&lt;br&gt;
Putting Xing's feature set into perspective with other services. It may sound hard, but often it's a good ideas to open the eyes to see what the competitors on international market offer.&lt;/blockquote&gt;
&lt;p&gt;&lt;img alt="xing-logo-jun09.jpg" src="http://www.readwriteweb.com/enterprise/assets_c/2009/07/xing-logo-jun09-thumb-150x79-6734.jpg"&gt;&lt;a href="http://www.xing.com/"&gt;Xing&lt;/a&gt; is one of the top business social networks in the market today, especially in Europe. But the new features they're touting for the paid Premium users are grossly underwhelming. &lt;/p&gt;

&lt;p&gt;In general terms, the platform is solid. The free functionality is more than adequate for the kind of networking you'd do on LinkedIn or any other professional site. But we have a hard time imagining anyone eagerly laying down cash for the ability to upload their resume and get birthday reminders. &lt;/p&gt;
&lt;p align="right"&gt;&lt;em&gt;Sponsor&lt;/em&gt;&lt;br&gt;&lt;a href="http://d1.openx.org/ck.php?n=15746&amp;amp;cb=15746"&gt;&lt;img src="http://d1.openx.org/avw.php?zoneid=11205&amp;amp;cb=15746&amp;amp;n=15746" alt="" align="right" border="0"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Xing is &lt;a href="http://www.readwriteweb.com/archives/online_business_networking_linkedin_xing.php"&gt;a serious contender&lt;/a&gt; among business social networks. This international public company, based in Germany, has more than 7 million users in 16 languages. 600,000 of those are already paying for Premium membership. &lt;/p&gt;

&lt;p&gt;But even at the relatively cheap price of €6 a month, we can't imagine many new customers being interested in a paid service whose most-recently advertised feature enhancements are file uploading (limited to three) and Facebook-style birthday reminders. While it's certainly nice to be able to add your resume or CV to a business networking account or not forget the bosses' birthday, it's far from cutting edge. &lt;/p&gt;

&lt;p&gt;If Xing wants to move in to more international markets outside Europe or make a play against LinkedIn, they're going to have to do better. &lt;/p&gt;
&lt;strong&gt;&lt;a href="http://www.readwriteweb.com/enterprise/2009/07/xings-new-features-not-worth-shelling-out-for.php#comments-open"&gt;Discuss&lt;/a&gt;&lt;/strong&gt;&lt;p&gt;&lt;iframe src="http://feedads.g.doubleclick.net/%7Eah/f/bh8m03d07dnj95a0qa1ma5k32c/300/250?ca=1&amp;amp;fh=280#http%3A%2F%2Fwww.readwriteweb.com%2Fenterprise%2F2009%2F07%2Fxings-new-features-not-worth-shelling-out-for.php" marginwidth="0" marginheight="0" scrolling="no" frameborder="0" height="280" width="100%"&gt;&lt;/iframe&gt;&lt;/p&gt;&lt;div&gt;
&lt;a href="http://feeds.feedburner.com/%7Eff/readwriteweb?a=KSYOjS-Ph6k:uB89jyceNxY:Ij26kaj3iuU"&gt;&lt;img src="http://feeds.feedburner.com/%7Eff/readwriteweb?d=Ij26kaj3iuU" border="0"&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/%7Eff/readwriteweb?a=KSYOjS-Ph6k:uB89jyceNxY:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/%7Eff/readwriteweb?d=yIl2AUoC8zA" border="0"&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/%7Eff/readwriteweb?a=KSYOjS-Ph6k:uB89jyceNxY:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/%7Eff/readwriteweb?i=KSYOjS-Ph6k:uB89jyceNxY:V_sGLiPBpWU" border="0"&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/%7Eff/readwriteweb?a=KSYOjS-Ph6k:uB89jyceNxY:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/%7Eff/readwriteweb?i=KSYOjS-Ph6k:uB89jyceNxY:gIN9vFwOqvQ" border="0"&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/%7Eff/readwriteweb?a=KSYOjS-Ph6k:uB89jyceNxY:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/%7Eff/readwriteweb?i=KSYOjS-Ph6k:uB89jyceNxY:F7zBnMyn0Lo" border="0"&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/%7Eff/readwriteweb?a=KSYOjS-Ph6k:uB89jyceNxY:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/%7Eff/readwriteweb?d=qj6IDK7rITs" border="0"&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/%7Eff/readwriteweb?a=KSYOjS-Ph6k:uB89jyceNxY:OqabYuBsmOY"&gt;&lt;img src="http://feeds.feedburner.com/%7Eff/readwriteweb?d=OqabYuBsmOY" border="0"&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/%7Er/readwriteweb/%7E4/KSYOjS-Ph6k" height="1" width="1"&gt;
&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/sebastian-werner/news?a=HzT_h3Hm4FQ:-UiacYsqJ80:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sebastian-werner/news?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/sebastian-werner/news?a=HzT_h3Hm4FQ:-UiacYsqJ80:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sebastian-werner/news?i=HzT_h3Hm4FQ:-UiacYsqJ80:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/sebastian-werner/news?a=HzT_h3Hm4FQ:-UiacYsqJ80:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sebastian-werner/news?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/sebastian-werner/news?a=HzT_h3Hm4FQ:-UiacYsqJ80:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sebastian-werner/news?i=HzT_h3Hm4FQ:-UiacYsqJ80:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</content><author gr:unknown-author="true"><name>(author unknown)</name></author><gr:annotation><content type="html">Putting Xing's feature set into perspective with other services. It may sound hard, but often it's a good ideas to open the eyes to see what the competitors on international market offer.</content><author gr:user-id="05325327707497594110" gr:profile-id="103933975894958686177"><name>wpbasti</name></author></gr:annotation><source gr:stream-id="user/05325327707497594110/source/com.google/link"><id>tag:google.com,2005:reader/user/05325327707497594110/source/com.google/link</id><title type="html">ReadWriteWeb</title><link rel="alternate" href="http://www.readwriteweb.com/" type="text/html" /></source><feedburner:origLink>http://feedproxy.google.com/~r/readwriteweb/~3/KSYOjS-Ph6k/xings-new-features-not-worth-shelling-out-for.php</feedburner:origLink></entry><entry gr:crawl-timestamp-msec="1247816823881"><id gr:original-id="">tag:google.com,2005:reader/item/ebf9d780ef34264b</id><title type="html">Tipp bei T-Mobile-Drosselung: Auf EDGE umsteigen</title><published>2009-07-17T07:47:03Z</published><updated>2009-07-17T07:47:03Z</updated><link rel="alternate" href="http://feedproxy.google.com/~r/sebastian-werner/news/~3/KZ71CQnDPyg/tipp-bei-t-mobile-drosselung-auf-edge-umsteigen.html" type="text/html" /><link rel="related" href="http://www.fscklog.com/" title="fscklog" /><content xml:base="http://www.fscklog.com/2009/07/tipp-bei-t-mobile-drosselung-auf-edge-umsteigen.html" type="html">&lt;blockquote&gt;Shared by  wpbasti 
&lt;br&gt;
Interessantes Fundstück. :)&lt;/blockquote&gt;
&lt;div&gt;&lt;p&gt;Wird das einem Complete-Vertrag zugewiesene Datenvolumen überschritten, &lt;a href="http://www.fscklog.com/2009/04/t-mobile-informiert-per-sms-%C3%BCber-gedrosselte-complete-vertr%C3%A4ge.html"&gt;verschickt T-Mobile eine SMS&lt;/a&gt; an den iPhone-Kunden und drosselt anschließend dessen Netzverbindung auf GPRS-Geschwindigkeit. Nach dem Verbrauch von 300 Megabyte, einem Gigabyte oder fünf Gigabyte an Daten stehen damit bis zum jeweiligen Monatsende nur noch 64 Kbit/s für den Download und 16 KBit/s für den Upload zur Verfügung. Zwar können einzelne iPhone-Besitzer immer noch ungebremst über ihr eigentlich festgeschriebenes Datenvolumen hinaussurfen, doch wer von der Drosselung erwischt wurde, kann die Einschränkung mit einem kleinen Trick mindern. &lt;br&gt;
&lt;img src="http://fscklog.typepad.com/.a/6a00d83451c7b569e20115720fd297970b-pi" alt="tmob_edge.jpg" style="border:1px solid rgb(0, 0, 0);margin-top:5px;margin-right:10px;margin-bottom:8px;padding-top:0px;padding-bottom:0px;padding-left:0px" height="190" width="320"&gt;&lt;br&gt;
Wie &lt;a href="http://www.teltarif.de/umts-performance-drosselung-umgehen/news/34998.html"&gt;teltarif&lt;/a&gt; nämlich bemerkte, greift die Drosselung offenbar nur im UMTS-Netz. Zwingt man das iPhone dahingegen über die Einstellungen (Allgemein - Netzwerk) zurück zu EDGE, bleiben &lt;a href="http://www.fscklog.com/2008/08/t-mobile-beschl.html"&gt;einem im T-Mobile-Netz 260 Kbit/s für den Download und 220 Kbit/s für den Upload&lt;/a&gt;, das ist im Vergleich zur gedrosselten Geschwindigkeit um rund ein Vierfaches schneller beim Beziehen von Daten und sogar um ein Vierzehnfaches schneller beim Hochladen. Zudem lässt es selige Erinnerungen an alte UMTS-lose iPhone-Zeiten wachwerden, in denen der Akku noch relativ lange durchhielt. In Ermangelung eines übermäßig verbrauchten Complete-Tarifs konnte ich den Tipp allerdings nicht selbst ausprobieren, aber vielleicht haben Leser diese Möglichkeit und berichten von ihren Erfahrungen.&lt;/p&gt;&lt;/div&gt;
&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/sebastian-werner/news?a=KZ71CQnDPyg:gV0j0SVTrWM:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sebastian-werner/news?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/sebastian-werner/news?a=KZ71CQnDPyg:gV0j0SVTrWM:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sebastian-werner/news?i=KZ71CQnDPyg:gV0j0SVTrWM:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/sebastian-werner/news?a=KZ71CQnDPyg:gV0j0SVTrWM:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sebastian-werner/news?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/sebastian-werner/news?a=KZ71CQnDPyg:gV0j0SVTrWM:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sebastian-werner/news?i=KZ71CQnDPyg:gV0j0SVTrWM:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</content><author gr:unknown-author="true"><name>(author unknown)</name></author><gr:annotation><content type="html">Interessantes Fundstück. :)</content><author gr:user-id="05325327707497594110" gr:profile-id="103933975894958686177"><name>wpbasti</name></author></gr:annotation><source gr:stream-id="user/05325327707497594110/source/com.google/link"><id>tag:google.com,2005:reader/user/05325327707497594110/source/com.google/link</id><title type="html">fscklog</title><link rel="alternate" href="http://www.fscklog.com/" type="text/html" /></source><feedburner:origLink>http://www.fscklog.com/2009/07/tipp-bei-t-mobile-drosselung-auf-edge-umsteigen.html</feedburner:origLink></entry><entry gr:crawl-timestamp-msec="1247816252016"><id gr:original-id="">tag:google.com,2005:reader/item/22613af3d391e0ce</id><title type="html">When a “Web OS” hits, it will be so much more than a browser launcher!</title><published>2009-07-17T07:37:32Z</published><updated>2009-07-17T07:37:32Z</updated><link rel="alternate" href="http://feedproxy.google.com/~r/sebastian-werner/news/~3/HjgsRdV47tQ/when-a-web-os-hits-it-will-be-so-much-more-than-a-browser-launcher" type="text/html" /><link rel="related" href="http://almaer.com/blog" title="techno.blog(&quot;Dion&quot;)" /><content xml:base="http://feedproxy.google.com/~r/dion/~3/XUksPJxT6tY/when-a-web-os-hits-it-will-be-so-much-more-than-a-browser-launcher" type="html">&lt;blockquote&gt;Shared by  wpbasti 
&lt;br&gt;
Well written. Describes the real idea why putting everything into the cloud.&lt;/blockquote&gt;
&lt;p&gt;&lt;img src="http://farm4.static.flickr.com/3069/3043371500_1ec9d6d313.jpg"&gt;&lt;br&gt;
&lt;a href="http://www.flickr.com/photos/mwboeckmann/3043371500" style="font-size:small;color:rgb(153, 153, 153)"&gt;original by mwboeckmann&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Everyone got in a tizzy over the Google very-early-darn-leaks-pre announcement of Chrome OS. There have been many attempts at a “launch into browser” system, and the timing / marketing hasn’t been right. The journalists have by and large shown that they do not understand any nuance and could only think to write about the external battle of the titans (Chrome OS to destroy Windows!) or the internal battle of the titans (Android vs. Chrome OS).&lt;/p&gt;
&lt;p&gt;The news is so early, that it is mainly a no-op right now, other than showing that to get to that point, Chrome will probably be extended quite a bit (access to more native services etc). I am a believer that this has to happen (hence Gears fan), but I also do worry that it will be rushed. We don’t want to fork the Web….. but let’s wait and see.&lt;/p&gt;
&lt;p&gt;What I find most interesting though, is that I don’t think that the world needs a computer that boots almost-solely into a browser.&lt;/p&gt;
&lt;p&gt;Kent Beck was &lt;a href="http://www.threeriversinstitute.org/blog/?p=273"&gt;talking about how he is using Chrome Browser OS&lt;/a&gt; right now as a social experiment. Yes. We can all delete every application from our machines and maximize a browser and live in it. That isn’t what will be exciting about a true Web platform.&lt;/p&gt;
&lt;p&gt;I have been playing with a Windows laptop, and what has interested me is how much I can get done because my world is available through the browser. Back in the day, if I was at a friends house, I would download &lt;code&gt;putty.exe&lt;/code&gt; and telnet/ssh into my world, and it would be ugly text. Now, I can jump on a random computer and access my entire social environment (email, twitter, etc). I can get real work done. One of the reasons that &lt;a href="http://bespin.mozilla.com/"&gt;we did Bespin&lt;/a&gt; was to extend that to coding too.&lt;br&gt;
This brings me to my benchmark for when I think a web OS will be here.&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;
If I can sidle up to a random computer and have access to everything that I can do on my own laptop, then we have made it
&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;Ironically, I almost used to be able to do just that! In university I could login to any machine on campus and see my screen exactly as I left it. I want X back baybee! ;)&lt;/p&gt;
&lt;p&gt;We are getting closer, yet still a ways off. I hate the management that I have to do with iTunes. I want to by the license to play music, and have my collection in the cloud, and sync’d in smart ways. I want to be able to set profiles for what is downloaded and offline-available on my laptop versus the media server vs. the ball and chain’s laptop vs. my phone.&lt;/p&gt;
&lt;p&gt;I want my settings to follow me around. Another reason why I am so excited about the future of &lt;a href="http://labs.mozilla.com/projects/weave/"&gt;Weave&lt;/a&gt;-like services. Let me login to the browser and get my history, passwords, awesomebar setup for me. Go further, and let me “switch user” on the persons machine and have the login be an identity service like Open ID, Facebook, Weave, or what have you.&lt;/p&gt;
&lt;p&gt;When we have an open identity system that works, with services that let you take your entire world with you hooked to your identity, then we can talk about how cool the Web platform is as an OS. We will have moved up the services stack from managing the state of windows on the screen, to higher level services.&lt;/p&gt;
&lt;p&gt;Marry this to auto syncing of data between all of your devices, and you have a truly new world. Give me that world, not just and &lt;code&gt;autoexec.bat&lt;/code&gt; that launches &lt;code&gt;browser.exe&lt;/code&gt; :)&lt;/p&gt;
&lt;div&gt;
&lt;a href="http://feeds.feedburner.com/%7Eff/dion?a=XUksPJxT6tY:6bYQBpi5ckM:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/%7Eff/dion?d=yIl2AUoC8zA" border="0"&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/%7Eff/dion?a=XUksPJxT6tY:6bYQBpi5ckM:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/%7Eff/dion?d=dnMXMwOfBR0" border="0"&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/%7Eff/dion?a=XUksPJxT6tY:6bYQBpi5ckM:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/%7Eff/dion?i=XUksPJxT6tY:6bYQBpi5ckM:F7zBnMyn0Lo" border="0"&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/%7Eff/dion?a=XUksPJxT6tY:6bYQBpi5ckM:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/%7Eff/dion?i=XUksPJxT6tY:6bYQBpi5ckM:V_sGLiPBpWU" border="0"&gt;&lt;/a&gt;
&lt;/div&gt;
&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/sebastian-werner/news?a=HjgsRdV47tQ:nBcunCzYR8Q:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sebastian-werner/news?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/sebastian-werner/news?a=HjgsRdV47tQ:nBcunCzYR8Q:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sebastian-werner/news?i=HjgsRdV47tQ:nBcunCzYR8Q:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/sebastian-werner/news?a=HjgsRdV47tQ:nBcunCzYR8Q:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sebastian-werner/news?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/sebastian-werner/news?a=HjgsRdV47tQ:nBcunCzYR8Q:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sebastian-werner/news?i=HjgsRdV47tQ:nBcunCzYR8Q:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</content><author gr:unknown-author="true"><name>(author unknown)</name></author><gr:annotation><content type="html">Well written. Describes the real idea why putting everything into the cloud.</content><author gr:user-id="05325327707497594110" gr:profile-id="103933975894958686177"><name>wpbasti</name></author></gr:annotation><source gr:stream-id="user/05325327707497594110/source/com.google/link"><id>tag:google.com,2005:reader/user/05325327707497594110/source/com.google/link</id><title type="html">techno.blog(&amp;quot;Dion&amp;quot;)</title><link rel="alternate" href="http://almaer.com/blog" type="text/html" /></source><feedburner:origLink>http://feedproxy.google.com/~r/dion/~3/XUksPJxT6tY/when-a-web-os-hits-it-will-be-so-much-more-than-a-browser-launcher</feedburner:origLink></entry></feed>
