<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Robert&#039;s talk &#187; JavaScript</title>
	<atom:link href="http://robertnyman.com/category/javascript/feed/" rel="self" type="application/rss+xml" />
	<link>http://robertnyman.com</link>
	<description>Web development and Internet trends</description>
	<lastBuildDate>Thu, 18 Mar 2010 09:34:29 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>postMessage in HTML5 to send messages between windows and iframes</title>
		<link>http://robertnyman.com/2010/03/18/postmessage-in-html5-to-send-messages-between-windows-and-iframes/</link>
		<comments>http://robertnyman.com/2010/03/18/postmessage-in-html5-to-send-messages-between-windows-and-iframes/#comments</comments>
		<pubDate>Thu, 18 Mar 2010 09:32:45 +0000</pubDate>
		<dc:creator>Robert Nyman</dc:creator>
				<category><![CDATA[Developing]]></category>
		<category><![CDATA[HTML5/HTML/XHTML]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Web browsers]]></category>

		<guid isPermaLink="false">http://robertnyman.com/?p=1738</guid>
		<description><![CDATA[Ever had the need to communicate between windows or the current window and an inner iframe? Across domains as well? I bet you have, but now we have a nice option for doing that!
The solution is called postMessage and is part of the HTML5 Web Messaging specification. What makes it cool, and very easy to [...]]]></description>
			<content:encoded><![CDATA[<p>Ever had the need to communicate between windows or the current window and an inner iframe? Across domains as well? I bet you have, but now we have a nice option for doing that!</p>
<p>The solution is called postMessage and is part of the <a href="http://dev.w3.org/html5/postmsg/">HTML5 Web Messaging specification</a>. What makes it cool, and very easy to use, is that all you need to trigger it is to call a method and add an event handler:</p>
<ol>
<li>Call the <code>postMessage</code> method of the window/iframe element you want to send the information to.</li>
<li>Specify origin. Should be a domain or a wildcard <code>"*"</code></li>
<li>In the receiving window, just add an event listener for the <code>message event</code>.</li>
<li>Optional: add an origin check for security reasons.</li>
</ol>
<h2>The code to do this</h2>
<p>In this example we will have one containing page with a form, posting a message to an <code>iframe</code> in that page.</p>
<h3>Code used in the containing page</h3>
<pre class="brush: html">
&lt;form id="the-form" action="/"&gt;
	&lt;input type="text" id="my-message" value="Your message"&gt;
	&lt;input type="submit" value="postMessage"&gt;
&lt;/form&gt;

&lt;iframe id="da-iframe" src="postMessageTarget.html"&gt;&lt;/iframe&gt;
</pre>
<pre class="brush: js">
	window.onload = function () {
		var iframeWin = document.getElementById("da-iframe").contentWindow,
			form = document.getElementById("the-form"),
			myMessage = document.getElementById("my-message");

		myMessage.select();	

		form.onsubmit = function () {
			iframeWin.postMessage(myMessage.value, "http://robertnyman.com");
			return false;
		};
	};
</pre>
<h3>Code used in the iframe</h3>
<pre class="brush: html">
	&lt;p id="received-message"&gt;I've heard nothing yet&lt;/p&gt;
</pre>
<pre class="brush: js">
	function displayMessage (evt) {
		var message;
		if (evt.origin !== "http://robertnyman.com") {
			message = "You are not worthy";
		}
		else {
			message = "I got " + evt.data + " from " + evt.origin;
		}
		document.getElementById("received-message").innerHTML = message;
	}

	if (window.addEventListener) {
		// For standards-compliant web browsers
		window.addEventListener("message", displayMessage, false);
	}
	else {
		window.attachEvent("onmessage", displayMessage);
	}
</pre>
<h2>Web browser support</h2>
<p>The nice thing is that this is supported in:</p>
<ul>
<li>Internet Explorer 8.0+</li>
<li>Firefox 3.0+</li>
<li>Safari 4.0+</li>
<li>Google Chrome 1.0+</li>
<li>Opera 9.5+</li>
</ul>
<h2>Demo and my HTML5 playground</h2>
<p>You can see the above code in action at my <a href="http://robertnyman.com/html5/postMessage/postMessage.html">postMessage demo</a>, which is part of a new testing ground on my web site, <a href="http://robertnyman.com/html5/">HTML5 &#8211; Information and samples for HTML5 and related APIs</a> which displays various HTML5 examples, the code to run them and web browser compatibility..</p>
<p>Play around and enjoy! <img src='http://robertnyman.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://robertnyman.com/2010/03/18/postmessage-in-html5-to-send-messages-between-windows-and-iframes/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Testing the Internet Explorer Platform Preview (IE9) &#8211; reviewing the good, the bad and the main letdown</title>
		<link>http://robertnyman.com/2010/03/17/testing-the-internet-explorer-platform-preview-ie9-reviewing-the-good-the-bad-and-the-main-letdown/</link>
		<comments>http://robertnyman.com/2010/03/17/testing-the-internet-explorer-platform-preview-ie9-reviewing-the-good-the-bad-and-the-main-letdown/#comments</comments>
		<pubDate>Wed, 17 Mar 2010 14:00:47 +0000</pubDate>
		<dc:creator>Robert Nyman</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Developing]]></category>
		<category><![CDATA[HTML5/HTML/XHTML]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Reviews/tests]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Web browsers]]></category>

		<guid isPermaLink="false">http://robertnyman.com/?p=1728</guid>
		<description><![CDATA[At MIX10 yesterday, Microsoft announced IE9 and spoke about its upcoming features. And, lo and behold, they released a Internet Explorer Platform Preview for anyone to download and play around with!
I&#8217;ve tried to read up about it and play around with the preview as much as possible to get any indication of what to expect [...]]]></description>
			<content:encoded><![CDATA[<p>At <a href="http://live.visitmix.com/">MIX10</a> yesterday, Microsoft <a href="http://blogs.msdn.com/ie/archive/2010/03/16/html5-hardware-accelerated-first-ie9-platform-preview-available-for-developers.aspx">announced IE9 and spoke about its upcoming features</a>. And, lo and behold, they released a <a href="http://ie.microsoft.com/testdrive">Internet Explorer Platform Preview</a> for anyone to download and play around with!</p>
<p>I&#8217;ve tried to read up about it and play around with the preview as much as possible to get any indication of what to expect from IE 9, and here&#8217;s my take:</p>
<h2>The good</h2>
<p>I thought I&#8217;d first browse through the things I find good or at least promising. </p>
<h3>Performance</h3>
<p>One of the most exciting features in IE9 so far is the hardware accelerated rendering, which so far seems to give tremendously good results. IE9 also has a new JavaScript engine, Chakra, which has given a huge boost to JavaScript performance where it is on par with competing web browsers with a good result in the SunSpider test.</p>
<p><img src="http://robertnyman.com/images/1003/sunspider-results-with-ie9.png" alt="A picture of the SunSpider results including IE9" class="align-center"></p>
<p class="text-align-center"><i>Picture taken from <a href="http://blogs.msdn.com/ie/archive/2010/03/16/html5-hardware-accelerated-first-ie9-platform-preview-available-for-developers.aspx">HTML5, Hardware Accelerated: First IE9 Platform Preview Available for Developers</a></i></p>
<p>I&#8217;m very glad to see this, and I hope it will drastically improve speed in IE9, and in turn in other web browsers as well &#8211; all for the gain of the end users.</p>
<h3>CSS3 selectors support</h3>
<p>Impressingly, IE9 has almost complete CSS3 selector support (many other web browsers already do), passing 576 out of 578 tests in the <a href="http://tools.css3.info/selectors-test/test.html">CSS3 Selectors Test</a>. It also supports rgba colors, and <code>border-radius</code>, so in about ten years we don&#8217;t need images to have rounded corners on the web&#8230; <img src='http://robertnyman.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<h3>Support for real DOM Level 2 Events</h3>
<p>About ten years after its competitors, Microsoft has <em>finally</em> implemented proper event support in IE). That means that code like this will actually work as expected:</p>
<pre class="brush: js">
	document.addEventListener("click", function () {
		alert("Hello!");
	}, false);
</pre>
<p>This is something <a href="http://robertnyman.com/2008/11/04/internet-explorer-8-fix-event-handling-or-dont-release-it/">I thought IE8 should not have been released without</a>.</p>
<h3>Support for the <code>&lt;video&gt;</code> element.</h3>
<p><em>Not</em> available in the platform preview that is now publicly available, but showed at MIX, was support for the <code>video</code> element, which is great news!</p>
<h3>Styling of HTML5 elements</h3>
<p>As I mentioned in my post <a href="http://robertnyman.com/2009/10/14/an-introduction-to-html5/">An Introduction to HTML5</a>, in previous versions of Internet Explorer you needed a HTML5 Shiv, i.e. a JavaScript, to trigger it into applying CSS styles to new elements, such as <code>article</code>, <code>header</code>, <code>aside</code> etc. This is no longer needed, and works as expected in IE9.</p>
<h3>SVG support</h3>
<p>Again, LONG after competitors (blah, blah, blah), IE9 finally has a SVG implementation. Remains to be tested how good it is, what parts are covered etc, but a move in the right direction.</p>
<h3>XHTML. Yes, real XHTML.</h3>
<p>Again, almost a decade after web browsers, IE9 finally supports the <code>application/xhtml+xml</code> MIME type! Meaning, for those who need to use true XML/XHTML, this will now become an option.</p>
<h3>Daring to speak of others</h3>
<p>One thing that made me happy is that they dare to mention competing web browser both in their diagrams and have logos of them in their demos. Before it seemed like something like this was forbidden, so this new breeze of openness makes me happy.</p>
<h2>The bad</h2>
<h3>No <code>&lt;canvas&gt;</code> element support</h3>
<p>One of the most exciting technologies to create exciting content on the web is the <code>canvas</code> element. Unfortunately, there is, so far, no support for <code>canvas</code> in IE9 and no mention of it whatsoever. From reading the blog post <a href="http://blogs.msdn.com/ie/archive/2010/03/09/Working-with-the-HTML5-Community.aspx">Working with the HTML5 Community</a>, however, Microsoft state:</p>
<blockquote cite="http://blogs.msdn.com/ie/archive/2010/03/09/Working-with-the-HTML5-Community.aspx">
<p>&#8230;Together, we’re working on <code>&lt;canvas&gt;</code> HTML prototypes to use as ‘proof of concepts’ to ensure the feature is well-designed&#8230;</p>
</blockquote>
<p>If that actually means anything at all, I have no idea, but let&#8217;s hope it&#8217;s an indication of <code>canvas</code> support to come. Till then, its omission is a letdown.</p>
<h3>Acid3 support</h3>
<p>At this time, IE9 scores 55 out of a 100, whereas most other web browser have scored 100/100, or are very close. There are many more things than an Acid3 score, but it&#8217;s still a hint about on what level IE9 is playing on.</p>
<p><img src="http://robertnyman.com/images/1003/acid3-results-ie9.png" alt="A picture of the Acid3 test score for IE9" class="align-center"></p>
<p class="text-align-center"><i>Picture taken from <a href="http://blogs.msdn.com/ie/archive/2010/03/16/html5-hardware-accelerated-first-ie9-platform-preview-available-for-developers.aspx">HTML5, Hardware Accelerated: First IE9 Platform Preview Available for Developers</a></i></p>
<h3>Lack of support for exciting CSS</h3>
<p>Albeit the above-mentioned CSS3 support is good, unfortunately IE9 lacks support for <code>box-shadow</code>, <code>transform</code>, CSS gradients, CSS animations and similar. Also, interestingly enough, it doesn&#8217;t seem to render any of its proprietary CSS filter styles &#8211; but, this is just a developer preview and probably doesn&#8217;t imply anything.</p>
<h3>No support for Windows XP</h3>
<p>Interestingly, Microsoft has decided not to offer IE9 for Windows XP. While I understand their motive with people upgrading OSes, not wanting to support an old operating system version etc, it&#8217;s a bold (or annoying) move when <a href="http://marketshare.hitslink.com/operating-system-market-share.aspx?qprid=10">65% of the market has Windows XP</a>. It&#8217;s also a pain for developers who virtualize Windows (and yes, there are tons of them) who only want a light-weight OS and don&#8217;t want to buy and install Windows Vista or Windows 7.</p>
<h3>Extension model?</h3>
<p>Looking at the immense success of add-ons for Firefox and also the good things Google have achieved for extension developers with Google Chrome, Microsoft sincerely need to look into simple extensibility of Internet Explorer with web technologies.</p>
<h2>The true letdown</h2>
<p>One thing really stands out in comparison to the bad parts.</p>
<h3>Choice of video codec</h3>
<p>IE9 has chosen to use the H.264 codec, and if that remains their only choice and no support for Ogg Theora it is a sad, sad day for open video on the web, and something which will severely cripple the usage of the <code>video element</code>. Read more about this in <a href="http://robertnyman.com/2010/01/25/the-video-element-in-html5-great-possibilites-but-also-codec-and-licensing-problems/">The video element in HTML5 – great possibilities, but also codec and licensing problems</a>.</p>
<p>This is a huge letdown for me.</p>
<h2>The verdict</h2>
<p>For me, jaded from experience, I have heard lots of promises from Microsoft over the years what they will deliver and have consistently been disappointed. However, many of the above things are exciting if they make it all the way, and addressing the bad parts and the letdown could actually make this into a good release.</p>
<p>However, except for performance, I see no real exciter above where they will be ahead their competitors in any way, and I think Microsoft really need that to compete. SO I guess we have to wait and see what will actually be released, And as alway with Microsoft and Internet Explorer:</p>
<p>I believe it when I see it.</p>
]]></content:encoded>
			<wfw:commentRss>http://robertnyman.com/2010/03/17/testing-the-internet-explorer-platform-preview-ie9-reviewing-the-good-the-bad-and-the-main-letdown/feed/</wfw:commentRss>
		<slash:comments>73</slash:comments>
		</item>
		<item>
		<title>Geolocation in web browsers to find location &amp; Google Maps examples</title>
		<link>http://robertnyman.com/2010/03/15/geolocation-in-web-browsers-to-find-location-google-maps-examples/</link>
		<comments>http://robertnyman.com/2010/03/15/geolocation-in-web-browsers-to-find-location-google-maps-examples/#comments</comments>
		<pubDate>Mon, 15 Mar 2010 11:36:08 +0000</pubDate>
		<dc:creator>Robert Nyman</dc:creator>
				<category><![CDATA[Developing]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Mozilla]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Web browsers]]></category>

		<guid isPermaLink="false">http://robertnyman.com/?p=1716</guid>
		<description><![CDATA[More and more services around us focus on where we physically are located at the moment, and how we can be assisted in the best fashion depending on that. Today I&#8217;d like to introduce the geolocation possibilities we developers have, and also play around a little with Google maps.
Introducing geolocation
Geolocation, i.e. finding out where someone [...]]]></description>
			<content:encoded><![CDATA[<p>More and more services around us focus on where we physically are located at the moment, and how we can be assisted in the best fashion depending on that. Today I&#8217;d like to introduce the geolocation possibilities we developers have, and also play around a little with Google maps.</p>
<h2>Introducing geolocation</h2>
<p>Geolocation, i.e. finding out where someone is located, is extremely simple for a web developer. This is the code to accomplish that:</p>
<pre class="brush: js">
	// Check for geolocation support
	if (navigator.geolocation) {
		// Use method getCurrentPosition to get coordinates
		navigator.geolocation.getCurrentPosition(function (position) {
			// Access them accordingly
			alert(position.coords.latitude + ", " + position.coords.longitude);
		});
	}
</pre>
<p>That&#8217;s it! Pretty simple, right?</p>
<p>What happens when you utilize this code is that the web browser will show a notification to the end user, ask them if they want to share their location or not, and offer them an option to remember that choice for future preference. In Firefox, it looks like this:</p>
<p><img src="http://robertnyman.com/images/1003/geolocation.png" alt="A picture of the geolocation notification in Firefox" class="align-center"></p>
<h3>Web browser support</h3>
<ul>
<li>Firefox 3.5+</li>
<li>Firefox on Mobile (aka Fennec)</li>
<li>Safari on the iPhone (not the desktop)</li>
<li>Android web browser</li>
</ul>
<p>It should also be noted that at the time of writing, a beta of Google Chrome supports it, and I feel certain the other web browser vendors will shortly follow suit.</p>
<h3>Not a part of HTML5</h3>
<p>Even though it is bundled with other features, let&#8217;s just clear out a common misunderstanding: geolocation is <em>not</em> a part of the HTML5 specification, but rather comes from the <a href="http://dev.w3.org/geo/api/spec-source.html">Geolocation API Specification</a>. Not that it really matters, though. Geolocation is new, cool and very useful, and if you want to bundle it with HTML5 when you talk about (just like most people did using the word AJAX to sell any sort of JavaScripting), be my guest.</p>
<h2>Using geolocation and showing current location</h2>
<p><img src="http://robertnyman.com/images/1003/geolocation-position.png" alt="A picture of using geolocation to find out the current location of the user and display it with Google Maps" class="align-center"></p>
<p>So, naturally, with this newfound knowledge, we want to utilize it with Google Maps and offer users an option to see where they are located on a map. The code to do this (with fallbacks if the user declines, or has a web browser that doesn&#8217;t support geolocation) looks like this:</p>
<h3>HTML</h3>
<pre class="brush: html">
	&lt;div id="map"&gt;&lt;/div&gt;
</pre>
<h3>JavaScript</h3>
<pre class="brush: js">
	/*
		A Google Maps API key can be attained at 

http://code.google.com/apis/maps/signup.html

	*/
	&lt;script src="http://www.google.com/jsapi?key=[Your Google Maps API key]"&gt;&lt;/script&gt;
	&lt;script&gt;
		(function () {
			google.load("maps", "2");
			google.setOnLoadCallback(function () {
				// Create map
				var map = new google.maps.Map2(document.getElementById("map")),
					markerText = "&lt;h2&gt;You are here&lt;/h2&gt;&lt;p&gt;Nice with geolocation, ain't it?&lt;/p&gt;",
					markOutLocation = function (lat, long) {
						var latLong = new google.maps.LatLng(lat, long),
							marker = new google.maps.Marker(latLong);
						map.setCenter(latLong, 13);
						map.addOverlay(marker);
						marker.openInfoWindow(markerText);
						google.maps.Event.addListener(marker, "click", function () {
							marker.openInfoWindow(markerText);
						});
					};
					map.setUIToDefault();

				// Check for geolocation support
				if (navigator.geolocation) {
					// Get current position
					navigator.geolocation.getCurrentPosition(function (position) {
							// Success!
							markOutLocation(position.coords.latitude, position.coords.longitude);
						},
						function () {
							// Gelocation fallback: Defaults to Stockholm, Sweden
							markerText = "&lt;p&gt;Please accept geolocation for me to be able to find you. &lt;br&gt;I've put you in Stockholm for now.&lt;/p&gt;";
							markOutLocation(59.3325215, 18.0643818);
						}
					);
				}
				else {
					// No geolocation fallback: Defaults to Eeaster Island, Chile
					markerText = "&lt;p&gt;No location support. Try Easter Island for now.&lt;/p&gt;";
					markOutLocation(-27.121192, -109.366424);
				}
			});
		})();
	&lt;/script&gt;
</pre>
<p>You can see this example in action an try it out at <a href="http://robertnyman.com/html5/geolocation/current-location.html">http://robertnyman.com/html5/geolocation/current-location.html</a>.</p>
<h2>Using geolocation and showing travel route and directions</h2>
<p>Google are working on <a href="http://code.google.com/apis/maps/documentation/v3/">Google Maps JavaScript API V3</a>, which is available as a Labs project. The cool thing about this, apart from very good performance, is the option to show routes between two points, and also displaying a list of directions.</p>
<p><img src="http://robertnyman.com/images/1003/geolocation-directions.png" alt="A picture of using geolocation to find out the current location of the user and display directions to another location using with Google Maps" class="align-center"></p>
<p>They way to do that looks like this in code (like above examples, contains fallbacks):</p>
<h3>HTML</h3>
<pre class="brush: html">
	&lt;div id="map"&gt;&lt;/div&gt;
	&lt;div id="map-directions"&gt;&lt;/div&gt;
</pre>
<pre class="brush: js">
	&lt;script type="text/javascript" src="http://maps.google.se/maps/api/js?sensor=false"&gt;&lt;/script&gt;
	&lt;script&gt;
		(function () {
			var directionsService = new google.maps.DirectionsService(),
				directionsDisplay = new google.maps.DirectionsRenderer(),
				createMap = function (start) {
					var travel = {
							origin : (start.coords)? new google.maps.LatLng(start.lat, start.lng) : start.address,
							destination : "Alexanderplatz, Berlin",
							travelMode : google.maps.DirectionsTravelMode.DRIVING
							// Exchanging DRIVING to WALKING above can prove quite amusing <img src='http://robertnyman.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />
						},
						mapOptions = {
							zoom: 10,
							// Default view: downtown Stockholm
							center : new google.maps.LatLng(59.3325215, 18.0643818),
							mapTypeId: google.maps.MapTypeId.ROADMAP
						};

					map = new google.maps.Map(document.getElementById("map"), mapOptions);
					directionsDisplay.setMap(map);
					directionsDisplay.setPanel(document.getElementById("map-directions"));
					directionsService.route(travel, function(result, status) {
						if (status === google.maps.DirectionsStatus.OK) {
							directionsDisplay.setDirections(result);
						}
					});
				};

				// Check for geolocation support
				if (navigator.geolocation) {
					navigator.geolocation.getCurrentPosition(function (position) {
							// Success!
							createMap({
								coords : true,
								lat : position.coords.latitude,
								lng : position.coords.longitude
							});
						},
						function () {
							// Gelocation fallback: Defaults to Stockholm, Sweden
							createMap({
								coords : false,
								address : "Sveavägen, Stockholm"
							});
						}
					);
				}
				else {
					// No geolocation fallback: Defaults to Lisbon, Portugal
					createMap({
						coords : false,
						address : "Lisbon, Portugal"
					});
				}
		})();
	&lt;/script&gt;
</pre>
<p>This example is also available for viewing at <a href="http://robertnyman.com/html5/geolocation/current-location-and-directions.html">http://robertnyman.com/html5/geolocation/current-location-and-directions.html</a></p>
<h2>Maps are cool</h2>
<p>I&#8217;ve always found maps very cool, and with all this new geolocation support, we can create some awesome services. Start playing with it now. <img src='http://robertnyman.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://robertnyman.com/2010/03/15/geolocation-in-web-browsers-to-find-location-google-maps-examples/feed/</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
		<item>
		<title>Tools for concatenating and minifying CSS and JavaScript files in different development environments</title>
		<link>http://robertnyman.com/2010/01/19/tools-for-concatenating-and-minifying-css-and-javascript-files-in-different-development-environments/</link>
		<comments>http://robertnyman.com/2010/01/19/tools-for-concatenating-and-minifying-css-and-javascript-files-in-different-development-environments/#comments</comments>
		<pubDate>Tue, 19 Jan 2010 17:42:23 +0000</pubDate>
		<dc:creator>Robert Nyman</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Developing]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://robertnyman.com/?p=1589</guid>
		<description><![CDATA[To follow up on the topic of cutting down the number of HTTP requests that I mentioned in my posts How to improve your web site performance – tips &#38; tricks to get a good YSlow rating and How to reduce the number of HTTP requests, I wanted to put together a good list of [...]]]></description>
			<content:encoded><![CDATA[<p>To follow up on the topic of cutting down the number of HTTP requests that I mentioned in my posts <a href="http://robertnyman.com/2008/05/09/improve-your-web-site-performance-tips-tricks-to-get-a-good-yslow-rating/">How to improve your web site performance – tips &amp; tricks to get a good YSlow rating</a> and <a href="http://robertnyman.com/2010/01/15/how-to-reduce-the-number-of-http-requests/">How to reduce the number of HTTP requests</a>, I wanted to put together a good list of tools and approaches to concatenate and minify CSS and JavaScript files in different developing environments.</p>
<p>Based on my own experience and research, and the replies when I asked around what others use, I have listed suggested solutions below:</p>
<h2>PHP</h2>
<dl>
<dt><a href="http://code.google.com/p/minify/">Minify</a></dt>
<dd>Minify combines multiple CSS or JavaScript files, removes unnecessary whitespace and comments, and serves them with gzip encoding and optimal client-side cache headers.</dd>
<dt><a href="http://rakaz.nl/code/combine">Combine</a></dt>
<dd>PHP script combined with URL rewriting to concatenate and compress CSS and JavaScript files.</dd>
<dt><a href="http://farhadi.ir/works/smartoptimizer">SmartOptimizer</a></dt>
<dd>A PHP library that enhances your website performance by optimizing the front end using techniques such as minifying, compression, caching, concatenation and embedding. All the work is done on the fly on demand.</dd>
<dt><a href="http://csstidy.sourceforge.net/">CSSTidy</a></dt>
<dd>Compression of CSS files. <em>Note: no support for JavaScript files.</em></dd>
<dt><a href="http://crisp.tweakblogs.net/blog/1665/a-new-javascript-minifier-jsmin+.html">JSMin+</a></dt>
<dd>PHP-based and it parses the JavaScript. <em>Note: no support for CSS files.</em></dd>
<dt><a href="http://github.com/anthonyshort/csscaffold">CSScaffold</a>
<dt>
<dd>Compresses, caches and gzips CSS on-the-fly. <em>Note: no support for JavaScript files.</em></dd>
<dt><a href="http://github.com/Schepp/CSS-JS-Booster">CSS-JS-Booster</a></dt>
<dd>Concats, minifies and gzips CSS and JavaScript files.</dd>
</dl>
<h2>Django</h2>
<dl>
<dt><a href="http://github.com/bradleywright/django-static-management">Django Static Management</a></dt>
<dd>Intended as an easy way to manage multiple static text assets (CSS and Javascript) in a Django projects.</dd>
<dt><a href="http://github.com/mintchaos/django_compressor">Django compressor</a></dt>
<dd>Compresses linked and inline javascript or CSS into a single cached file.</dd>
<dt><a href="http://github.com/pelme/django-compress">django-compress</a></dt>
<dd>django-compress provides an automated system for compressing CSS and JavaScript files. <em>Note: Doesn&#8217;t support concatenation of files.</em>.</dd>
<dt><a href="http://pedro.valelima.com/blog/2008/jan/17/deploying-compacted-javascript-django/">Deploying compacted javascript with django</a></dt>
<dd>Management command to compatct JavaScript. <em>Note: No support for CSS files.</em>.</dd>
<dt><a href="http://www.djangosnippets.org/snippets/405/">Templatetag for JavaScript merging and compression</a></dt>
<dd>A templatetag that merges several JavaScript files (compressing its code) into only one JavaScript file. <em>Note: No support for CSS files.</em>.</dd>
</dl>
<h2>Ruby</h2>
<dl>
<dt><a href="http://getsprockets.com/">Sprockets</a></dt>
<dd>Sprockets is a Ruby library that preprocesses and concatenates JavaScript source files.</dd>
<dt><a href="http://github.com/cjohansen/juicer">Juicer</a></dt>
<dd>Compresses CSS and JavaScript code, JSLints it and also supports Data URI-embedding of images in CSS files.</dd>
<dt><a href="http://documentcloud.github.com/jammit/">Jammit</a></dt>
<dd>Jammit is providing both CSS and JavaScript concatenation and compression, as well as YUI Compressor and Closure Compiler compatibility, ahead-of-time gzipping, built-in JavaScript template support, and optional Data-URI / MHTML image embedding.</dd>
<dt><a href="http://synthesis.sbecker.net/pages/asset_packager">AssetPackager</a></dt>
<dd>Merges and compresses JavaScript and CSS when running in production.</dd>
</dl>
<h2>Java</h2>
<dl>
<dt><a href="http://developer.yahoo.com/yui/compressor/">YUI Compressor</a></dt>
<dd>The leading tool in the for compressing CSS and JavaScript files, and could easily be ported/encapsulated into other environments. <em>Note: Doesn&#8217;t support concatenation of files.</em>. Could be used in conjunction with an Ant task, as described in <a href="http://www.julienlecomte.net/blog/2007/09/16/">Building Web Applications With Apache Ant</a></dd>
<dt><a href="http://code.google.com/closure/compiler/">Google Closure Compiler</a></dt>
<dd>Google Compiler for JavaScript that supports various compressing options for JavaScript. <em>Note: no support for CSS files.</em></dd>
<dt><a href="https://jawr.dev.java.net/">Jawr</a></dt>
<dd>Supports concatenation and minification of CSS and JavaScript files.</dd>
</dl>
<h2>.Net</h2>
<dl>
<dt><a href="http://yuicompressor.codeplex.com/">YUI Compressor for .Net</a></dt>
<dd>A .NET port of the Yahoo! UI Library&#8217;s YUI Compressor Java project.</dd>
<dt><a href="http://svn.offwhite.net/trac/SmallSharpTools.Packer/">Packer for .NET</a></dt>
<dd>A tool to pack/minify CSS and JavaScript files.</dd>
<dt><a href="http://aspnet.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=34488">Microsoft Ajax Minifier</a></dt>
<dd>A tool to concatenate and minify JavaScript files. <em>Note: no support for CSS files.</em></dd>
</dl>
<h2>Other tools or approaches?</h2>
<p>Please let me know, by writing a comment, if you want to suggest other tools, so I can update this list and keep it as accurate and useful as possible!</p>
]]></content:encoded>
			<wfw:commentRss>http://robertnyman.com/2010/01/19/tools-for-concatenating-and-minifying-css-and-javascript-files-in-different-development-environments/feed/</wfw:commentRss>
		<slash:comments>107</slash:comments>
		</item>
		<item>
		<title>Thank you for 2009 &#8211; Happy New Year!</title>
		<link>http://robertnyman.com/2009/12/30/thank-you-for-2009-happy-new-year/</link>
		<comments>http://robertnyman.com/2009/12/30/thank-you-for-2009-happy-new-year/#comments</comments>
		<pubDate>Tue, 29 Dec 2009 22:23:32 +0000</pubDate>
		<dc:creator>Robert Nyman</dc:creator>
				<category><![CDATA[Developing]]></category>
		<category><![CDATA[Geek Meet]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Mozilla]]></category>
		<category><![CDATA[Personal/life]]></category>
		<category><![CDATA[Speaking]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Travel]]></category>
		<category><![CDATA[Web browsers]]></category>
		<category><![CDATA[eumozcamp09]]></category>

		<guid isPermaLink="false">http://robertnyman.com/?p=1573</guid>
		<description><![CDATA[I hope you are all having some nice time off; I just wanted to take the time to reflect on 2009 and what it was like for me.
Speaking and travel
I think career- and experience-wise, the biggest thing I did this year was starting to travel around and speak at conferences. And while the idea of [...]]]></description>
			<content:encoded><![CDATA[<p>I hope you are all having some nice time off; I just wanted to take the time to reflect on 2009 and what it was like for me.</p>
<h2>Speaking and travel</h2>
<p>I think career- and experience-wise, the biggest thing I did this year was starting to travel around and speak at conferences. And while the idea of it had been brewing in my head for a while, it it is really one person I owe a big thanks of gratitude too, and that is <a href="http://blog.reybango.com/">Rey Bango</a> for pushing me over the brink.</p>
<p>Mozilla were to organize a large event in March in Berlin, and he contacted me and suggested that I should give a presentation about developing Firefox extensions (like a live version of my <a href="http://robertnyman.com/2009/01/24/how-to-develop-a-firefox-extension/">How to develop a Firefox extension</a> article). What he also did was encourage me that I could do it and that I should be brave about it, and as a result, it opened up a year of traveling in Europe giving presentations. Thank you Rey!</p>
<p><a href="http://www.flickr.com/photos/68898616@N00/3391540639/" title="Robert Nyman by patrickf33, on Flickr"><img src="http://farm4.static.flickr.com/3640/3391540639_f5bf365b56.jpg" width="500" height="375" alt="Robert Nyman" class="align-center"></a></p>
<p>Read more about it in <a href="http://robertnyman.com/2009/03/31/the-trip-to-berlin-and-the-mozilla-add-ons-workshop-2009/">The trip to Berlin and the Mozilla Add-Ons Workshop 2009</a>. Berlin was really a starting point for my relationship with Mozilla, and I gave presentations at two more Mozilla conferences this year and was also a part of a panel about HTML5 at the Mozilla Camp Europe.</p>
<p>My next presentation in line was thanks to the trust of <a href="http://unclescript.blogspot.com/">Peter Svensson</a> who asked me to speak at the Scandinavian Web Developer Conference, where I was the only Swede presenting, and had quite a good time. Same week ended with me speaking at a joint event between Mozilla and Nokia (the Maemo division) in Copenhagen in Denmark, and it was also a great time, and a chance to meet my friend <a href="http://roderick.dk/">Morgan Roderick</a> for the first time in person.</p>
<p><a href="http://www.flickr.com/photos/68898616@N00/3591593967/" title="Robert Nyman by patrickf33, on Flickr"><img src="http://farm4.static.flickr.com/3602/3591593967_63f7353608.jpg" width="500" height="281" alt="Robert Nyman" class="align-center"></a></p>
<p>Week after that, I spoke at the Mozilla Swedish Community Meetup, where Mozilla came to Stockholm and treated us to a nice Mozilla evening. Following that, summer was calm and easy, and it didn&#8217;t really start again till the beginning of October, now with Mozilla Camp Europe, this year taking place in Prague. I wasn&#8217;t scheduled to speak, but due to some openings, at least I partook as a panelist discussing HTML5 with the audience, other panel members and prominent people in the Firefox team &#8211; it&#8217;s all summed up in <a href="http://robertnyman.com/2009/10/07/travel-stories-and-session-recaps-from-mozilla-camp-europe-prague-3-4-october-2009/">Travel stories and session recaps from Mozilla Camp Europe Prague, 3-4 October 2009</a>.</p>
<p><a href="http://www.flickr.com/photos/nitot/3983431330/" title="HTML 5 round table by nitot, on Flickr"><img src="http://farm4.static.flickr.com/3501/3983431330_e23bf1dfa8.jpg" width="500" height="375" alt="HTML 5 round table" class="align-center"></a></p>
<p>A few weeks rest, and then in November it really started taking off. With four speaking performances at major conferences within a month, I started to remotely imagine what it must feel like to be <a href="http://www.wait-till-i.com/">Chris Heilmann</a>. <img src='http://robertnyman.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p><a href="http://www.flickr.com/photos/manssandstrom/4132454413/" title="Robert Nyman by Måns Sandström, on Flickr"><img src="http://farm3.static.flickr.com/2675/4132454413_35740b1348.jpg" width="500" height="334" alt="Robert Nyman" class="align-center"></a></p>
<p>First out the door was Øredev, where I got to share the stage and then hassle (read: befriend) two of my major inspirations: Douglas Crockford and Steve Souders &#8211; <a href="http://robertnyman.com/2009/11/16/the-%C3%B8redev-2009-conference-adventure/">The Øredev 2009 Conference adventure</a>. Just three days later, the first instance of JSConf.eu took place in Berlin, and although I felt my own presentation was mediocre at best (I did much better at the other events), it was quite a good place to meet a lot of JavaScript people &#8211; <a href="http://robertnyman.com/2009/11/18/the-jsconf-eu-conference-and-my-visit-to-berlin/">The JSConf.eu conference and my visit to Berlin</a>.</p>
<p><a href="http://www.flickr.com/photos/blank22763/4089932006/" title="hblank-JSConfeu_091108-42 by holgerblank, on Flickr"><img src="http://farm3.static.flickr.com/2666/4089932006_f4579172ae.jpg" width="500" height="332" alt="hblank-JSConfeu_091108-42" class="align-center"></a></p>
<p><a href="http://www.flickr.com/photos/remysharp/4125332306/" title="Robert Nyman by Remy Sharp, on Flickr"><img src="http://farm3.static.flickr.com/2591/4125332306_d2f767dcef.jpg" width="332" height="500" alt="Robert Nyman" class="align-center"></a></p>
<p>Following that was a conference that I had known about for quite some time, and given the setting of UK and the outstanding speakers that had been invited, I really wanted to make it a good one &#8211; and I think I did! What I&#8217;m talking about is Full Frontal, and I believe it was a personal highlight for me as a speaker this year (at least one of the top three) &#8211; <a href="http://robertnyman.com/2009/11/25/my-full-frontal-09-escapades-the-javascript-conference/">My Full Frontal ‘09 escapades – The JavaScript conference</a>.</p>
<p><a href="http://www.flickr.com/photos/songo/4162212891/" title="Love Bears and IE .. a match by David Ramalho, on Flickr"><img src="http://farm3.static.flickr.com/2744/4162212891_d80ee777c6.jpg" width="500" height="282" alt="Love Bears and IE .. a match" class="align-center"></a></p>
<p>Rounding off this conference year was a nice trip to Lisbon in Portugal, and a great time at the Codebits conference &#8211; <a href="http://robertnyman.com/2009/12/08/my-trip-to-lisbon-portugal-and-the-codebits-conference/">My trip to Lisbon, Portugal, and the Codebits conference</a>.</p>
<p>And just to make things better, December 23rd I received an invitation from Mozilla to the <a href="http://www.fosdem.org/2010/">FOSDEM</a> (Free and Open Source Software Developers&#8217; European Meeting) in February! <img src='http://robertnyman.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>So, thanks everyone for your trust and letting me speak at your conference, and thank you to Mozilla for believing in me!</p>
<h2>Honorable mentions</h2>
<p>The absolutely wonderful thing about conferences is the the fantastic people you get to meet, and the places and cultures you get to experience. I&#8217;ve met so many great people this year, too many to mention here, and without a doubt, my feeble mind is probably forgetting a number of you just right now. What I wanted to bring up, though, was a few names that I have met at more than one conference this year and have spent some considerable time together with.</p>
<h3><a href="http://somethin-else.org/">William Quiviger</a></h3>
<p><a href="http://www.flickr.com/photos/robertnyman/3985387400/" title="William Quiviger by Robert Nyman, on Flickr"><img src="http://farm4.static.flickr.com/3528/3985387400_63e508ce82.jpg" width="500" height="333" alt="William Quiviger" class="align-center"></a></p>
<p>William is, amongst other things, an event organizer for Mozilla, and his out-of-this-world ability to handle pressure and make sure things work out, while at the same time sincerely caring about everyones&#8217; wishes and needs, is extremely impressive. </p>
<h3><a href="http://patrickfinch.net/">Patrick Finch</a></h3>
<p>Patrick is the European Marketing Manager for Mozilla, a fantastic and friendly guy, a Brit expat residing in Sweden, and, at least in my world, he sounds and looks like Remington Steele. <img src='http://robertnyman.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p><a href="http://www.flickr.com/photos/robertnyman/3985413272/" title="Patrick Finch by Robert Nyman, on Flickr"><img src="http://farm3.static.flickr.com/2580/3985413272_7ce4d85505.jpg" width="500" height="333" alt="Patrick Finch" class="align-center"></a></p>
<h3><a href="http://brian.kingsonline.net/talk/">Brian King</a></h3>
<p>Our first meeting was in Berlin, and then at every other Mozilla event this year. Brian is doing a lot of work for Mozilla in general, and add-on development in particular, and his friendly way and always being there to help has been highly appreciated by me, and I hope to meet him again many more times (a feeling I hope is mutual <img src='http://robertnyman.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  ).</p>
<p><a href="http://www.flickr.com/photos/robertnyman/3984628527/" title="Brian King by Robert Nyman, on Flickr"><img src="http://farm3.static.flickr.com/2541/3984628527_5363e89eae.jpg" width="500" height="333" alt="Brian King" class="align-center"></a></p>
<h3><a href="http://remysharp.com/">Remy Sharp</a></h3>
<p><a href="http://www.flickr.com/photos/robertnyman/4166681332/" title="Remy Sharp - Speakers' dinner - Codebits conference by Robert Nyman, on Flickr"><img src="http://farm3.static.flickr.com/2733/4166681332_e833226701.jpg" width="500" height="333" alt="Remy Sharp - Speakers' dinner - Codebits conference" class="align-center"></a></p>
<p>I think Remy and I share some kind of record on being at the same place at the same time this year. We met at SWDC in May, Geek Meet in June, then Øredev, JSConf.eu, Full Frontal and Codebits. Needless to say, he&#8217;s probably mighty sick of me by now, but for me, it has been great to meet him throughout the year, since he is both friendly and very talented (although his work/web dedication is sometimes a bit frightening, even to me).</p>
<h3><a href="http://www.molly.com/">Molly Holzschlag</a></h3>
<p>I had the pleasure of meeting Molly first at the Scandinavian Web Developer Conference in May, and then have her over for Geek Meet in October. She&#8217;s a truly fantastic person, and even though how well-known she is, I really appreciate her taking the time to listen to everyone.</p>
<p><a href="http://www.flickr.com/photos/robertnyman/4030987991/" title="Molly - Easy Access Point by Robert Nyman, on Flickr"><img src="http://farm3.static.flickr.com/2716/4030987991_b8df659991.jpg" width="500" height="333" alt="Molly - Easy Access Point" class="align-center"></a></p>
<h3><a href="http://roderick.dk/">Morgan Roderick</a></h3>
<p><a href="http://www.flickr.com/photos/remysharp/4102954132/" title="Shock! by Remy Sharp, on Flickr"><img src="http://farm3.static.flickr.com/2626/4102954132_f57e286ba7.jpg" width="500" height="375" alt="Shock!" class="align-center"></a></p>
<p>I&#8217;ve known Morgan for a few years, but this year was the first time we got to meet &#8211; first in Copenhagen and then in Berlin. Morgan is extremely caring and I always act like a child around him, since he is just the nice guy that takes care of things. He seems to love Berlin, but who knows, one day we might even meet in Sweden? <img src='http://robertnyman.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<h3>Søren Skrøder</h3>
<p><a href="http://www.flickr.com/photos/robertnyman/3985323102/" title="Søren Skrøder by Robert Nyman, on Flickr"><img src="http://farm3.static.flickr.com/2456/3985323102_51e4d2d16b.jpg" width="500" height="333" alt="Søren Skrøder" class="align-center"></a></p>
<p>Søren is a Dane working with localization for Mozilla, and we first met in Copenhagen and then did a Prague city walkabout together in October. He is a very nice guy, and if you ever cared about beards, Søren has one to kill for!</p>
<h3><a href="http://novemberborn.net/">Mark Wubben</a></h3>
<p>Mark is also someone I have known for a number of years, but met for the first time this year when he spoke at Geek Meet in February. He then came to the Scandinavian Web Developer Conference followed by the Mozilla event in Copenhagen. For fun, I named him a stalker of mine, and haven&#8217;t seen him since&#8230; <img src='http://robertnyman.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p><a href="http://www.flickr.com/photos/robertnyman/3899972230/" title="Mozilla Maemo Danish Weekend, Copenhagen, May 2009 by Robert Nyman, on Flickr"><img src="http://farm3.static.flickr.com/2500/3899972230_a627774dc7.jpg" width="375" height="500" alt="Mozilla Maemo Danish Weekend, Copenhagen, May 2009" class="align-center"></a></p>
<h3><a href="http://my.opera.com/chrismills/blog/">Chris Mills</a></h3>
<p>Ah, Chris Mills. Chris is the crazy heavy metal Brit working with developer relations for Opera, and he spoke at Geek Meet in June and then we meet at Full Frontal in Brighton in November. Extremely nice fellow, crazy stories, but I believe I actually made him flush at the Full Frontal after-party! <img src='http://robertnyman.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p><a href="http://www.flickr.com/photos/remysharp/3405978121/" title="Opera Rocker by Remy Sharp, on Flickr"><img src="http://farm4.static.flickr.com/3633/3405978121_c03d01561f.jpg" width="375" height="500" alt="Opera Rocker" class="align-center"></a></p>
<h2>Conference information and presentation slides</h2>
<p>Here are all the links to the events mentioned above and also to my presentation slides:</p>
<h3>Mozilla Add-Ons Workshop, Berlin [Germany] &#8211; March 28th</h3>
<p>
	Presentation: <a href="http://presentation-slides.googlecode.com/files/how-to-write-your-first-extension-berlin.pdf">How to write your first extension (PDF 1.6 MB)</a><br />
	Event information: <a href="https://wiki.mozilla.org/MAOW:2009:Berlin:en">Mozilla Add-Ons Workshop Berlin, March 28th</a>
</p>
<h3>Scandinavian Web Developer Conference 2009, Stockholm [Sweden] &#8211; May 25th</h3>
<p>
	Presentation: <a href="http://www.slideshare.net/robnyman/modern-web-development">Modern Web Development (View/Download on SlideShare)</a><br />
	Event information: <a href="http://www.swdc2009.com/index_en.html">Scandinavian Web Developer Conference 2009</a>
</p>
<h3>Mozilla/Maemo Danish Weekend, Copenhagen [Denmark] &#8211; May 30th-31st</h3>
<p>
	Presentation: <a href="http://www.slideshare.net/robnyman/how-to-write-your-first-firefox-extensio">How to write your first extension (View/Download on SlideShare)</a><br />
	Event information: <a href="http://wiki.maemo.org/MozillaMaemoDanishWeekend">Mozilla/Maemo Danish Weekend</a>
</p>
<h3>Mozilla Swedish Community Meetup, Stockholm [Sweden] &#8211; June 2nd</h3>
<p>
	Presentation: <a href="http://www.slideshare.net/robnyman/how-to-write-your-first-firefox-extensio">How to write your first extension (View/Download on SlideShare)</a><br />
	Event information: <a href="https://wiki.mozilla.org/SwedishMeetup">Mozilla Swedish Community Meetup</a>
</p>
<h3>Øredev 2009, Malmö [Sweden] &#8211; November 4th</h3>
<p>
	Presentation: <a href="http://www.slideshare.net/robnyman/javascript-from-birth-to-closure">JavaScript &#8211; From Birth to Closure (View/Download on SlideShare)</a><br />
	Event information: <a href="http://www.oredev.org/">Øredev 2009</a>
</p>
<h3>JSConf.eu 2009, Berlin [Germany] &#8211; November 7th</h3>
<p>
	Presentation: <a href="http://www.slideshare.net/robnyman/javascript-from-birth-to-closure">JavaScript &#8211; From Birth to Closure (View/Download on SlideShare)</a><br />
	Event information: <a href="http://jsconf.eu/2009/">JSConf.eu 2009</a>
</p>
<h3>Full Frontal JavaScript Conference 2009, Brighton [United Kingdom] &#8211; November 20th</h3>
<p>
	Presentation: <a href="http://www.slideshare.net/robnyman/javascript-from-birth-to-closure">JavaScript &#8211; From Birth to Closure (View/Download on SlideShare)</a><br />
	Event information: <a href="http://2009.full-frontal.org/">Full Frontal JavaScript Conference 2009</a>
</p>
<h3>Codebits 2009, Lisbon [Portugal] &#8211; December 3rd</h3>
<p>
	Presentation: <a href="http://www.slideshare.net/robnyman/javascript-from-birth-to-closure">JavaScript &#8211; From Birth to Closure (View/Download on SlideShare)</a><br />
	Event information: <a href="http://codebits.eu/">Codebits 2009</a>
</p>
<h2>The year of people dying</h2>
<p>It seems like 2009 was a year when a lot of people died, especially on a celebrity level. Reading <a href="http://www.bowlofserial.com/2009/09/03/famous-people-whove-died-in-2009-so-far/">Famous People Who’ve Died in 2009 (so far) </a> and delving deeper in <a href="http://www.whosdatedwho.com/celebrities/people/list/celebrity-categories.asp?FD=yod">Celebrities who died in: 2009 (page 1)</a> it makes you wonder what was really going on.</p>
<p>Naturally, of all the people that passed away, Michael Jackson was by far the most famous one.</p>
<p>I just hope everyone will get to rest in peace.</p>
<h2>All my posts in 2009</h2>
<p>I first thought of picking out a few of my blog posts that I liked this year, but then again, it seems like everyone have their own favorite. Instead, I thought I&#8217;d list all of my posts in 2009 below for you to skim through them, and re-read the ones you like, or perhaps find one you missed the first time around.</p>
<h3><a href='http://robertnyman.com/2009/12/' title='December 2009'>December 2009</a></h3>
<ul class="postspermonth">
<li>22: <a href='http://robertnyman.com/2009/12/22/merry-christmas-happy-holidays-2009/' title='Merry Christmas, Happy Holidays!'>Merry Christmas, Happy Holidays!</a></li>
<li>18: <a href='http://robertnyman.com/2009/12/18/releasing-inline-code-finder-as-a-google-chrome-extension/' title='Releasing Inline Code Finder as a Google Chrome extension'>Releasing Inline Code Finder as a Google Chrome extension</a></li>
<li>17: <a href='http://robertnyman.com/2009/12/17/testing-object-oriented-css-oocss-for-easier-css-development/' title='Testing Object-Oriented CSS (OOCSS) for easier CSS development'>Testing Object-Oriented CSS (OOCSS) for easier CSS development</a></li>
<li>14: <a href='http://robertnyman.com/2009/12/14/content-management-systems-are-a-dying-breed/' title='Content Management Systems are a dying breed'>Content Management Systems are a dying breed</a></li>
<li>08: <a href='http://robertnyman.com/2009/12/08/the-death-of-a-friend/' title='The death of a friend'>The death of a friend</a></li>
<li>08: <a href='http://robertnyman.com/2009/12/08/my-trip-to-lisbon-portugal-and-the-codebits-conference/' title='My trip to Lisbon, Portugal, and the Codebits conference'>My trip to Lisbon, Portugal, and the Codebits conference</a></li>
</ul>
<h3><a href='http://robertnyman.com/2009/11/' title='November 2009'>November 2009</a></h3>
<ul class="postspermonth">
<li>30: <a href='http://robertnyman.com/2009/11/30/speaking-at-codebits-in-lisbon-portugal/' title='Speaking at Codebits in Lisbon, Portugal'>Speaking at Codebits in Lisbon, Portugal</a></li>
<li>27: <a href='http://robertnyman.com/2009/11/27/the-html5-syntax-options-problem/' title='The HTML5 syntax options problem'>The HTML5 syntax options problem</a></li>
<li>25: <a href='http://robertnyman.com/2009/11/25/my-full-frontal-09-escapades-the-javascript-conference/' title='My Full Frontal &#039;09 escapades  - The JavaScript conference'>My Full Frontal &#8216;09 escapades  &#8211; The JavaScript conference</a></li>
<li>18: <a href='http://robertnyman.com/2009/11/18/the-jsconf-eu-conference-and-my-visit-to-berlin/' title='The JSConf.eu conference and my visit to Berlin'>The JSConf.eu conference and my visit to Berlin</a></li>
<li>17: <a href='http://robertnyman.com/2009/11/17/a-faster-web-with-resource-packages-mozilla-suggestion-to-have-just-one-http-request/' title='A faster web with Resource Packages - Mozilla suggestion to have just one HTTP request'>A faster web with Resource Packages &#8211; Mozilla suggestion to have just one HTTP request</a></li>
<li>16: <a href='http://robertnyman.com/2009/11/16/the-%c3%b8redev-2009-conference-adventure/' title='The Øredev 2009 Conference adventure'>The Øredev 2009 Conference adventure</a></li>
<li>09: <a href='http://robertnyman.com/2009/11/09/firefox-turns-five-years-old-today-congratulations/' title='Firefox turns five years old today - congratulations!'>Firefox turns five years old today &#8211; congratulations!</a></li>
<li>02: <a href='http://robertnyman.com/2009/11/02/this-just-in-speaking-at-jsconf-eu-november-7th-8th-2009/' title='This just in: Speaking at JSConf.eu November 7th-8th 2009!'>This just in: Speaking at JSConf.eu November 7th-8th 2009!</a></li>
</ul>
<h3><a href='http://robertnyman.com/2009/10/' title='October 2009'>October 2009</a></h3>
<ul class="postspermonth">
<li>29: <a href='http://robertnyman.com/2009/10/29/apple-to-patent-css-transformations-and-animations/' title='Apple to patent CSS transformations and animations'>Apple to patent CSS transformations and animations</a></li>
<li>27: <a href='http://robertnyman.com/2009/10/27/releasing-firefinder-1-01-now-with-support-for-8-languages/' title='Releasing Firefinder 1.01 - now with support for 8 languages'>Releasing Firefinder 1.01 &#8211; now with support for 8 languages</a></li>
<li>26: <a href='http://robertnyman.com/2009/10/26/speaking-at-full-frontal-javascript-conference-20th-november-2009/' title='Speaking at Full Frontal - JavaScript Conference - 20th November 2009'>Speaking at Full Frontal &#8211; JavaScript Conference &#8211; 20th November 2009</a></li>
<li>21: <a href='http://robertnyman.com/2009/10/21/web-browser-market-share-and-rounding-errors/' title='Web browser market share and rounding errors'>Web browser market share and rounding errors</a></li>
<li>14: <a href='http://robertnyman.com/2009/10/14/an-introduction-to-html5/' title='An introduction to HTML5'>An introduction to HTML5</a></li>
<li>13: <a href='http://robertnyman.com/2009/10/13/speaking-at-%c3%b8redev-2009-developer-conference-november-4th-2009/' title='Speaking at &Oslash;redev 2009 Developer Conference, November 4th 2009'>Speaking at &Oslash;redev 2009 Developer Conference, November 4th 2009</a></li>
<li>08: <a href='http://robertnyman.com/2009/10/08/help-making-firefox-better-share-your-thoughts/' title='Help making Firefox better - share your thoughts!'>Help making Firefox better &#8211; share your thoughts!</a></li>
<li>07: <a href='http://robertnyman.com/2009/10/07/travel-stories-and-session-recaps-from-mozilla-camp-europe-prague-3-4-october-2009/' title='Travel stories and session recaps from Mozilla Camp Europe Prague, 3-4 October 2009'>Travel stories and session recaps from Mozilla Camp Europe Prague, 3-4 October 2009</a></li>
</ul>
<h3><a href='http://robertnyman.com/2009/09/' title='September 2009'>September 2009</a></h3>
<ul class="postspermonth">
<li>28: <a href='http://robertnyman.com/2009/09/28/invited-to-mozilla-camp-europe-prague-3-4-october-2009/' title='Invited to Mozilla Camp Europe Prague, 3-4 October 2009'>Invited to Mozilla Camp Europe Prague, 3-4 October 2009</a></li>
<li>23: <a href='http://robertnyman.com/2009/09/23/google-chrome-frame-google-wave-not-supporting-any-version-of-internet-explorer/' title='Google Chrome Frame &amp; Google Wave not supporting any version of Internet Explorer'>Google Chrome Frame &#038; Google Wave not supporting any version of Internet Explorer</a></li>
<li>22: <a href='http://robertnyman.com/2009/09/22/one-million-downloads-for-getelementsbyclassname/' title='One million downloads for getElementsByClassName'>One million downloads for getElementsByClassName</a></li>
<li>21: <a href='http://robertnyman.com/2009/09/21/geek-meet-october-2009-molly-holzschlag-will-present-about-html-5-and-other-goodies/' title='Geek Meet October 2009 - Molly Holzschlag will present about HTML 5 and other goodies'>Geek Meet October 2009 &#8211; Molly Holzschlag will present about HTML 5 and other goodies</a></li>
<li>18: <a href='http://robertnyman.com/2009/09/18/the-passing-of-patrick-swayze/' title='The passing of Patrick Swayze'>The passing of Patrick Swayze</a></li>
<li>15: <a href='http://robertnyman.com/2009/09/15/apples-app-store-and-installing-what-you-like-on-an-iphone/' title='Apple&#039;s App Store and installing what you like on an iPhone'>Apple&#8217;s App Store and installing what you like on an iPhone</a></li>
<li>11: <a href='http://robertnyman.com/2009/09/11/getting-caught-for-speeding/' title='Getting caught for speeding'>Getting caught for speeding</a></li>
<li>09: <a href='http://robertnyman.com/2009/09/09/fuck-ie-gently/' title='Fuck IE gently'>Fuck IE gently</a></li>
<li>07: <a href='http://robertnyman.com/2009/09/07/firefinder-1-0-released-code-collaboration-with-the-friendlyfire-feature-better-integration-with-firebug-and-more/' title='Firefinder 1.0 released - code collaboration with the FriendlyFire feature, better integration with Firebug and more'>Firefinder 1.0 released &#8211; code collaboration with the FriendlyFire feature, better integration with Firebug and more</a></li>
<li>02: <a href='http://robertnyman.com/2009/09/02/apple-mac-os-x-versions-named-after-german-tanks/' title='Apple Mac OS X versions named after German tanks?'>Apple Mac OS X versions named after German tanks?</a></li>
</ul>
<h3><a href='http://robertnyman.com/2009/08/' title='August 2009'>August 2009</a></h3>
<ul class="postspermonth">
<li>31: <a href='http://robertnyman.com/2009/08/31/35/' title='35'>35</a></li>
<li>28: <a href='http://robertnyman.com/2009/08/28/when-the-wiimote-nintento-wii-remote-stops-working/' title='When the Wiimote (Nintento Wii Remote) stops working'>When the Wiimote (Nintento Wii Remote) stops working</a></li>
<li>27: <a href='http://robertnyman.com/2009/08/27/how-do-you-value-an-experience/' title='How do you value an experience?'>How do you value an experience?</a></li>
<li>26: <a href='http://robertnyman.com/2009/08/26/hi-ho-silver-im-back/' title='Hi Ho Silver - I&#039;m back!'>Hi Ho Silver &#8211; I&#8217;m back!</a></li>
</ul>
<h3><a href='http://robertnyman.com/2009/07/' title='July 2009'>July 2009</a></h3>
<ul class="postspermonth">
<li>05: <a href='http://robertnyman.com/2009/07/05/summer-break-2009/' title='Summer break 2009'>Summer break 2009</a></li>
<li>01: <a href='http://robertnyman.com/2009/07/01/firefox-35-is-released-information-about-having-multiple-firefox-versions-and-web-developer-extension-compatibility/' title='Firefox 3.5 is released - information about having multiple Firefox versions and web developer extension compatibility'>Firefox 3.5 is released &#8211; information about having multiple Firefox versions and web developer extension compatibility</a></li>
</ul>
<h3><a href='http://robertnyman.com/2009/06/' title='June 2009'>June 2009</a></h3>
<ul class="postspermonth">
<li>30: <a href='http://robertnyman.com/2009/06/30/pictureslides-20-highly-customizable-option-to-create-javascript-slideshows/' title='PictureSlides 2.0 - highly customizable option to create JavaScript slideshows'>PictureSlides 2.0 &#8211; highly customizable option to create JavaScript slideshows</a></li>
<li>26: <a href='http://robertnyman.com/2009/06/26/the-death-of-michael-jackson/' title='The death of Michael Jackson'>The death of Michael Jackson</a></li>
<li>25: <a href='http://robertnyman.com/2009/06/25/microsofts-recent-marketing-campaigns/' title='Microsoft&#039;s recent marketing campaigns'>Microsoft&#8217;s recent marketing campaigns</a></li>
<li>24: <a href='http://robertnyman.com/2009/06/24/review-of-acdc-at-ullevi-stadium-june-21st-2009/' title='Review of AC/DC at Ullevi Stadium June 21st 2009'>Review of AC/DC at Ullevi Stadium June 21st 2009</a></li>
<li>23: <a href='http://robertnyman.com/2009/06/23/opera-unite-some-questions-and-answers/' title='Opera Unite - some questions and answers'>Opera Unite &#8211; some questions and answers</a></li>
<li>18: <a href='http://robertnyman.com/2009/06/18/swedish-midsummer-celebrations/' title='Swedish Midsummer celebrations'>Swedish Midsummer celebrations</a></li>
<li>18: <a href='http://robertnyman.com/2009/06/18/new-javascript-features-with-native-json-support-and-javascript-181-additions/' title='New JavaScript features with native JSON support and JavaScript 1.8.1 additions'>New JavaScript features with native JSON support and JavaScript 1.8.1 additions</a></li>
<li>16: <a href='http://robertnyman.com/2009/06/16/do-you-take-notes/' title='Do you take notes?'>Do you take notes?</a></li>
<li>15: <a href='http://robertnyman.com/2009/06/15/thoughts-on-microsofts-move-to-ship-windows-7-without-internet-explorer-in-europe/' title='Thoughts on Microsoft&#039;s move to ship Windows 7 without Internet Explorer in Europe'>Thoughts on Microsoft&#8217;s move to ship Windows 7 without Internet Explorer in Europe</a></li>
<li>11: <a href='http://robertnyman.com/2009/06/11/impossible-to-uninstall-safari-4-in-mac-os-x-apple-pretty-much-follows-suit-with-microsoft/' title='Impossible to uninstall Safari 4 in Mac OS X - Apple pretty much follows suit with Microsoft'>Impossible to uninstall Safari 4 in Mac OS X &#8211; Apple pretty much follows suit with Microsoft</a></li>
<li>10: <a href='http://robertnyman.com/2009/06/10/store-information-on-the-client-side-with-dom-storageweb-storage-plenty-of-improvements-available/' title='Store information on the client side with DOM Storage/Web Storage - plenty of improvements available'>Store information on the client side with DOM Storage/Web Storage &#8211; plenty of improvements available</a></li>
<li>09: <a href='http://robertnyman.com/2009/06/09/my-thoughts-on-twitter/' title='My thoughts on Twitter'>My thoughts on Twitter</a></li>
<li>08: <a href='http://robertnyman.com/2009/06/08/poll-which-javascript-library-do-you-use/' title='Poll: which JavaScript library do you use?'>Poll: which JavaScript library do you use?</a></li>
<li>05: <a href='http://robertnyman.com/2009/06/05/geek-meet-charity-june-4th-2009-was-a-success/' title='Geek Meet Charity June 4th 2009 was a success!'>Geek Meet Charity June 4th 2009 was a success!</a></li>
</ul>
<h3><a href='http://robertnyman.com/2009/05/' title='May 2009'>May 2009</a></h3>
<ul class="postspermonth">
<li>28: <a href='http://robertnyman.com/2009/05/28/getters-and-setters-with-javascript-code-samples-and-demos/' title='Getters and setters with JavaScript - code samples and demos'>Getters and setters with JavaScript &#8211; code samples and demos</a></li>
<li>27: <a href='http://robertnyman.com/2009/05/27/four-years/' title='Four years'>Four years</a></li>
<li>26: <a href='http://robertnyman.com/2009/05/26/serious-memory-leak-issue-with-24-bit-png-images-with-alpha-transparency-in-internet-explorer/' title='Serious memory leak issue with 24-bit PNG images with alpha transparency in Internet Explorer'>Serious memory leak issue with 24-bit PNG images with alpha transparency in Internet Explorer</a></li>
<li>20: <a href='http://robertnyman.com/2009/05/20/mozillamaemo-danish-weekend-may-30th-31st-addition-to-my-two-weeks-of-speak/' title='Mozilla/Maemo Danish Weekend May 30th-31st - addition to my two weeks of speak'>Mozilla/Maemo Danish Weekend May 30th-31st &#8211; addition to my two weeks of speak</a></li>
<li>15: <a href='http://robertnyman.com/2009/05/15/as-we-were/' title='As we were'>As we were</a></li>
<li>14: <a href='http://robertnyman.com/2009/05/14/invasion-of-my-public-privacy/' title='Invasion of my public privacy'>Invasion of my public privacy</a></li>
<li>13: <a href='http://robertnyman.com/2009/05/13/mozilla-swedish-community-meetup-in-stockholm-june-2nd-2009/' title='Mozilla Swedish Community Meetup in Stockholm June 2nd 2009'>Mozilla Swedish Community Meetup in Stockholm June 2nd 2009</a></li>
<li>12: <a href='http://robertnyman.com/2009/05/12/firefinder-for-firebug-an-extension-to-quickly-find-elements-matching-your-css-selectors-or-xpath-expressions/' title='Firefinder for Firebug - an extension to quickly find elements matching your CSS selectors or XPath expressions'>Firefinder for Firebug &#8211; an extension to quickly find elements matching your CSS selectors or XPath expressions</a></li>
<li>11: <a href='http://robertnyman.com/2009/05/11/mozilla-prism-brings-power-to-stand-alone-web-applications/' title='Mozilla Prism brings power to stand-alone web applications'>Mozilla Prism brings power to stand-alone web applications</a></li>
<li>07: <a href='http://robertnyman.com/2009/05/07/the-alt-attribute-is-not-for-tooltips/' title='The alt attribute is NOT for tooltips'>The alt attribute is NOT for tooltips</a></li>
<li>05: <a href='http://robertnyman.com/2009/05/05/metallica-live-may-4th-2009-at-the-globe-arena-in-stockholm-sweden/' title='Metallica live May 4th 2009 at the Globe arena in Stockholm, Sweden'>Metallica live May 4th 2009 at the Globe arena in Stockholm, Sweden</a></li>
<li>04: <a href='http://robertnyman.com/2009/05/04/geek-meet-charity-june-4th-2009-chris-mills-and-remy-sharp-speaking/' title='Geek Meet Charity June 4th 2009 - Chris Mills and Remy Sharp speaking'>Geek Meet Charity June 4th 2009 &#8211; Chris Mills and Remy Sharp speaking</a></li>
</ul>
<h3><a href='http://robertnyman.com/2009/04/' title='April 2009'>April 2009</a></h3>
<ul class="postspermonth">
<li>30: <a href='http://robertnyman.com/2009/04/30/my-father-would-have-turned-70-today/' title='My father would have turned 70 today'>My father would have turned 70 today</a></li>
<li>29: <a href='http://robertnyman.com/2009/04/29/moving-to-new-host-working-out-the-kinks/' title='Moving to new host, working out the kinks'>Moving to new host, working out the kinks</a></li>
<li>27: <a href='http://robertnyman.com/2009/04/27/introduction-test-cases-and-web-browser-compatibility-tables-for-javascript-16-javascript-17-javascript-18/' title='Introduction, test cases and web browser compatibility tables for JavaScript 1.6, JavaScript 1.7 &amp; JavaScript 1.8'>Introduction, test cases and web browser compatibility tables for JavaScript 1.6, JavaScript 1.7 &#038; JavaScript 1.8</a></li>
<li>24: <a href='http://robertnyman.com/2009/04/24/d-a-d-at-klubben-stockholm-april-4th-2009-concert-review/' title='D-A-D at Klubben, Stockholm April 4th 2009 - concert review'>D-A-D at Klubben, Stockholm April 4th 2009 &#8211; concert review</a></li>
<li>21: <a href='http://robertnyman.com/2009/04/21/speaking-at-the-swedish-web-developer-conference-2009-may-25th/' title='Speaking at the Swedish Web Developer Conference 2009, May 25th'>Speaking at the Swedish Web Developer Conference 2009, May 25th</a></li>
<li>20: <a href='http://robertnyman.com/2009/04/20/easier-source-control-management-with-distributed-version-control-system-and-mercurial/' title='Easier Source Control Management with Distributed Version Control System and Mercurial'>Easier Source Control Management with Distributed Version Control System and Mercurial</a></li>
<li>15: <a href='http://robertnyman.com/2009/04/15/a-heading-solution-you-havent-seen-before/' title='A heading solution you haven&#039;t seen before'>A heading solution you haven&#8217;t seen before</a></li>
<li>03: <a href='http://robertnyman.com/2009/04/03/mozilla-labs-online-code-editor-bespin/' title='Mozilla Labs&#039; online code editor Bespin'>Mozilla Labs&#8217; online code editor Bespin</a></li>
</ul>
<h3><a href='http://robertnyman.com/2009/03/' title='March 2009'>March 2009</a></h3>
<ul class="postspermonth">
<li>31: <a href='http://robertnyman.com/2009/03/31/the-trip-to-berlin-and-the-mozilla-add-ons-workshop-2009/' title='The trip to Berlin and the Mozilla Add-Ons Workshop 2009'>The trip to Berlin and the Mozilla Add-Ons Workshop 2009</a></li>
<li>26: <a href='http://robertnyman.com/2009/03/26/search-smugmug-photos-easily-with-smug-search-ubiquity-command/' title='Search SmugMug photos easily with smug-search Ubiquity command'>Search SmugMug photos easily with smug-search Ubiquity command</a></li>
<li>23: <a href='http://robertnyman.com/2009/03/23/bob-dylan-club-gig-at-berns-in-stockholm-march-22nd-2009/' title='Bob Dylan club gig at Berns in Stockholm March 22nd 2009'>Bob Dylan club gig at Berns in Stockholm March 22nd 2009</a></li>
<li>20: <a href='http://robertnyman.com/2009/03/20/an-evening-with-microsoft/' title='An evening with Microsoft'>An evening with Microsoft</a></li>
<li>16: <a href='http://robertnyman.com/2009/03/16/your-end-users-shouldnt-have-to-know-technology/' title='Your end users shouldn&#039;t have to know technology'>Your end users shouldn&#8217;t have to know technology</a></li>
<li>13: <a href='http://robertnyman.com/2009/03/13/what-to-know-what-to-learn/' title='What to know, what to learn'>What to know, what to learn</a></li>
<li>10: <a href='http://robertnyman.com/2009/03/10/speaking-at-mozilla-add-ons-workshop-maow-in-berlin-march-29th-2009/' title='Speaking at Mozilla Add-Ons Workshop (MAOW) in Berlin March 29th 2009'>Speaking at Mozilla Add-Ons Workshop (MAOW) in Berlin March 29th 2009</a></li>
<li>09: <a href='http://robertnyman.com/2009/03/09/adobe-air-15-issue-solution-and-support-experience/' title='Adobe AIR 1.5 issue - solution and support experience'>Adobe AIR 1.5 issue &#8211; solution and support experience</a></li>
<li>02: <a href='http://robertnyman.com/2009/03/02/adobe-flash-pros-and-cons/' title='Adobe Flash - pros and cons'>Adobe Flash &#8211; pros and cons</a></li>
</ul>
<h3><a href='http://robertnyman.com/2009/02/' title='February 2009'>February 2009</a></h3>
<ul class="postspermonth">
<li>26: <a href='http://robertnyman.com/2009/02/26/headhunters/' title='Headhunters'>Headhunters</a></li>
<li>23: <a href='http://robertnyman.com/2009/02/23/review-of-acdc-at-the-globe-arena-stockholm-february-20th-2009/' title='Review of AC/DC at the Globe Arena, Stockholm February 20th 2009'>Review of AC/DC at the Globe Arena, Stockholm February 20th 2009</a></li>
<li>20: <a href='http://robertnyman.com/2009/02/20/reviews-of-the-nominated-movies-for-best-motion-picture-in-the-oscar-academy-awards/' title='Reviews of the nominated movies for Best Motion Picture in the Oscar Academy Awards'>Reviews of the nominated movies for Best Motion Picture in the Oscar Academy Awards</a></li>
<li>17: <a href='http://robertnyman.com/2009/02/17/handle-duplicate-content-indexing-for-seo-with-the-relcanonical-attribute/' title='Handle duplicate content indexing for SEO with the rel=&quot;canonical&quot; attribute'>Handle duplicate content indexing for SEO with the rel=&#8221;canonical&#8221; attribute</a></li>
<li>16: <a href='http://robertnyman.com/2009/02/16/ie-8-standards-compliancy-goes-back-to-being-an-opt-in/' title='IE 8 - standards compliancy goes back to being an opt-in'>IE 8 &#8211; standards compliancy goes back to being an opt-in</a></li>
<li>12: <a href='http://robertnyman.com/2009/02/12/companies-and-social-networking/' title='Companies and social networking'>Companies and social networking</a></li>
<li>09: <a href='http://robertnyman.com/2009/02/09/stop-developing-for-internet-explorer-6/' title='Stop developing for Internet Explorer 6'>Stop developing for Internet Explorer 6</a></li>
<li>05: <a href='http://robertnyman.com/2009/02/05/new-version-of-inline-code-finder-with-event-filtering-and-a-download-record/' title='New version of Inline Code Finder, with event filtering - and a download record'>New version of Inline Code Finder, with event filtering &#8211; and a download record</a></li>
<li>04: <a href='http://robertnyman.com/2009/02/04/how-to-solve-first-child-css-bug-in-ie-7/' title='How to solve :first-child CSS bug in IE 7'>How to solve :first-child CSS bug in IE 7</a></li>
<li>03: <a href='http://robertnyman.com/2009/02/03/opera-web-standards-curriculum-article-handling-events-with-javascript/' title='Opera Web Standards Curriculum article: Handling events with JavaScript'>Opera Web Standards Curriculum article: Handling events with JavaScript</a></li>
<li>02: <a href='http://robertnyman.com/2009/02/02/contribute-to-the-stockholm-sweden-twestival-charity-event/' title='Contribute to the Stockholm Sweden Twestival charity event '>Contribute to the Stockholm Sweden Twestival charity event </a></li>
</ul>
<h3><a href='http://robertnyman.com/2009/01/' title='January 2009'>January 2009</a></h3>
<ul class="postspermonth">
<li>30: <a href='http://robertnyman.com/2009/01/30/what-was-your-first-hex-code/' title='What was your first hex code?'>What was your first hex code?</a></li>
<li>29: <a href='http://robertnyman.com/2009/01/29/geek-meet-february-2009-with-mark-wubben/' title='Geek Meet February 2009, with Mark Wubben'>Geek Meet February 2009, with Mark Wubben</a></li>
<li>26: <a href='http://robertnyman.com/2009/01/26/microsoft-force-installs-firefox-extension/' title='Microsoft force-installs Firefox extension'>Microsoft force-installs Firefox extension</a></li>
<li>24: <a href='http://robertnyman.com/2009/01/24/how-to-develop-a-firefox-extension/' title='How to develop a Firefox extension'>How to develop a Firefox extension</a></li>
<li>22: <a href='http://robertnyman.com/2009/01/22/flickr-gallery-plus-better-photo-set-viewing-with-firefox-extension-and-greasemonkey-userscript/' title='Flickr Gallery Plus! - better photo set viewing with Firefox extension and Greasemonkey userscript'>Flickr Gallery Plus! &#8211; better photo set viewing with Firefox extension and Greasemonkey userscript</a></li>
<li>19: <a href='http://robertnyman.com/2009/01/19/extending-web-browser-functionality-greasemonkey-for-all-web-browsers/' title='Extending web browser functionality - Greasemonkey for all web browsers'>Extending web browser functionality &#8211; Greasemonkey for all web browsers</a></li>
<li>
<li>05: <a href='http://robertnyman.com/2009/01/05/apple-macworld-expo-keynote-predictions/' title='Apple Macworld Expo keynote predictions'>Apple Macworld Expo keynote predictions</a></li>
</ul>
<h2>Happy New Year!</h2>
<p>With that, I&#8217;d like to thank you for 2009, and here&#8217;s to a great 2010!</p>
<p>Happy New Year!</p>
]]></content:encoded>
			<wfw:commentRss>http://robertnyman.com/2009/12/30/thank-you-for-2009-happy-new-year/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>My trip to Lisbon, Portugal, and the Codebits conference</title>
		<link>http://robertnyman.com/2009/12/08/my-trip-to-lisbon-portugal-and-the-codebits-conference/</link>
		<comments>http://robertnyman.com/2009/12/08/my-trip-to-lisbon-portugal-and-the-codebits-conference/#comments</comments>
		<pubDate>Mon, 07 Dec 2009 23:25:08 +0000</pubDate>
		<dc:creator>Robert Nyman</dc:creator>
				<category><![CDATA[Developing]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Speaking]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Travel]]></category>

		<guid isPermaLink="false">http://robertnyman.com/?p=1556</guid>
		<description><![CDATA[I had the pleasure of spending last week in Lisbon, Portugal, for the Codebits conference.
Arriving in Lisbon
It was my first time in Portugal, so I made sure to arrive one day early to have time to do some sightseeing and catch a view of Lisbon. Last Tuesday, December 1st, I arrived in Lisbon after a [...]]]></description>
			<content:encoded><![CDATA[<p>I had the pleasure of spending last week in Lisbon, Portugal, for the <a href="http://codebits.eu/">Codebits</a> conference.</p>
<h2>Arriving in Lisbon</h2>
<p>It was my first time in Portugal, so I made sure to arrive one day early to have time to do some sightseeing and catch a view of Lisbon. Last Tuesday, December 1st, I arrived in Lisbon after a four and a half hour flight with TAP Portugal from Stockholm. First time ever, I had a complementary pick-up service by the event organizers, and a nice driver by the name of Gonsalo.</p>
<p>Got to the hotel, Hotel Vila Galé Opera, checked in, and got online to check in with some people and do some minor research before my Lisbon touring. Got out to find a grocery store, but with my luck, it had closed three minutes before I got there&#8230;</p>
<p>Got back to the hotel again, and treated myself to a nice two-meal dinner in their restaurant. And granted, I was famished by then, but I thought the food was extremely good &#8211; especially my starter with Chèvre cheese. Got back to my room, checked some things and then got to bed reasonably early.</p>
<h2>Lisbon sightseeing</h2>
<p>I got up pretty early, ate breakfast and started my excursion. There was a light drizzle and a gale blowing outside, but I had high hopes when I started my walk from the Ponte 25 de Abril bridge and moved further into the Belém area. After about half an hour, the rain just started pouring down. Luckily, there was a ticket station for ferries where I could take cover and wait it out.</p>
<p><a href="http://www.flickr.com/photos/robertnyman/4166670172/" title="Padrão dos Descobrimentos by Robert Nyman, on Flickr"><img src="http://farm3.static.flickr.com/2696/4166670172_c60dfd9d03.jpg" width="500" height="333" alt="Padrão dos Descobrimentos" class="align-center"></a></p>
<p>After the rain had stopped, I continued my journey and came upon the Padrão dos Descobrimentos, a monument to celebrate the Portuguese explorers. After that I crossed the street and decided to enter the Mosteiro dos Jerónimos, which is a totally beautiful monastery and a cloister &#8211; I&#8217;ve seen many churches and monasteries during my travels, but I have to say I really loved the colors, ambience and overall feel of this place!</p>
<p><a href="http://www.flickr.com/photos/robertnyman/4166682926/" title="Mosteiro dos Jerónimos by Robert Nyman, on Flickr"><img src="http://farm3.static.flickr.com/2781/4166682926_985545604b.jpg" width="500" height="333" alt="Mosteiro dos Jerónimos" class="align-center"></a></p>
<p>The next stop was the probably most famous landmark in Lisbon, Torre de Belém, which was built as a gateway and defensive tower, located at the entrance of the Tagus river. Quite an impressive building, with some very narrow pathways in places. It was also possible to walk the five floors to the top, to get a beautiful view of Lisbon.</p>
<p><a href="http://www.flickr.com/photos/robertnyman/4165964045/" title="Torre de Belém by Robert Nyman, on Flickr"><img src="http://farm3.static.flickr.com/2606/4165964045_6179d08ba1.jpg" width="500" height="333" alt="Torre de Belém" class="align-center"></a></p>
<p>Kept on wandering around in the area for a while, and then got to the Belém train station to take the train to the downtown area and the Cais do Sodré station. Once there, I looked at some places, like Praça do Comércio, before walking through Arco de Rua Augusta and getting some late lunch. Strolled around in the city and walked up to, and around, Praça do Rossio.</p>
<p>Then it was time for some serious uphill hiking to get to Castelo de São Jorge. However, it was well worth it, with lots of nice places to see, a huge great preserved castle and a fantastic view of Lisbon!</p>
<p><a href="http://www.flickr.com/photos/robertnyman/4166789374/" title="Castelo de São Jorge by Robert Nyman, on Flickr"><img src="http://farm5.static.flickr.com/4040/4166789374_1e598b7bf0.jpg" width="500" height="333" alt="Castelo de São Jorge" class="align-center"></a></p>
<p>After an hour up there, I got down again, across where I had been before and on into the Bairro Alto area, old town of Lisbon. Did a little sightseeing there until I, completely tired, sat down in a café where I had an ice-cream and some water. Through the magic of text messaging, I managed to decide a meet-up place with some friends at the Praça Luís de Camões.</p>
<p>Once there, under the neon heart, I met up with the Dutch crew: <a href="http://twitter.com/mikedeboer">Mike de Boer</a>, <a href="http://twitter.com/liekejav">Lieke Arends</a>, <a href="http://twitter.com/javruben">Ruben Daniels</a> and <a href="http://twitter.com/rikarends">Rik Arends</a>. I had the pleasure of meeting Mike and Lieke in Brighton for Full Frontal, and now two more from <a href="http://www.javeline.com/#home">Javeline</a>, the company behind <a href="http://www.ajax.org/">Ajax.org</a>.</p>
<p><a href="http://www.flickr.com/photos/robertnyman/4166830286/" title="Praça Luís de Camões by Robert Nyman, on Flickr"><img src="http://farm3.static.flickr.com/2593/4166830286_2a9c40b39b.jpg" width="500" height="333" alt="Praça Luís de Camões" class="align-center"></a></p>
<p>We wandered around a little, and had the luck of coming by the gorgeous Largo do Carmo and Convento do Carmo. Just a little after that, we found a nice restaurant had a good meal with two meals, and my Dutch friends were nice enough to treat me to it. Bedankt! <img src='http://robertnyman.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p><a href="http://www.flickr.com/photos/robertnyman/4166831946/" title="Largo do Carmo by Robert Nyman, on Flickr"><img src="http://farm3.static.flickr.com/2799/4166831946_7c363ce9b4.jpg" width="500" height="333" alt="Largo do Carmo" class="align-center"></a></p>
<p>Some more serious texting going on, back to Praça Luís de Camões and to meet <a href="http://remysharp.com/">Remy Sharp</a> and <a href="http://www.glennjones.net/">Glenn Jones</a>, who had gotten in to Lisbon a few hours earlier. We did a desperate attempt to find a bar that one person (no names) in our company had vague memories about, but it ended up with us just walking further and further away from anything remotely close to a bar. In the end, we took a couple of taxis back to the hotel, and sat down in the hotel bar instead.</p>
<p><a href="http://www.flickr.com/photos/robertnyman/sets/72157622954165016/">All of my sightseeing pictures of Lisbon.</a></p>
<h2>Codebits conference, day 1</h2>
<p>I decided to sleep in a little, then got up so I was at the venue at around 10.30 or so. Once there, I registered and got a lot of nice giveaways, and then met up with Remy, Glenn and <a href="http://twitter.com/briansuda">Brian Suda</a>.</p>
<p>During all day, free pizza, coke (the drink), M&amp;Ms and other assorted candy and drinks was on offer &#8211; basically, all the nutrition a geek needs. <img src='http://robertnyman.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<h3>Presentations I attended</h3>
<p><a href="http://www.flickr.com/photos/27388320@N04/4158080614/"><img src="http://farm3.static.flickr.com/2643/4158080614_5924784ce4.jpg" alt="A picture of me giving my presentation" class="align-center"></a></p>
<p class="text-align-center"><a href="http://www.flickr.com/photos/27388320@N04/4158080614/"><i>Picture taken by AmmggMartins</i></a></p>
<dl>
<dt>Keynote</dt>
<dd>We decided to catch the keynote, but unfortunately, it was held in Portuguese. Or, well, thinking so, we left after about ten minutes. Then we saw on the web site that all presentations would be broadcasted live on the web site, and when I got in there, we got to see that they were speaking English by then&#8230;</dd>
<dt><a href="http://codebits.eu/intra/s/session/82">Think before you develop!</a> &#8211; Kai Seidler</dt>
<dd>Kai, working for Sun and behind XAMPP, amongst other things, gave a nice introduction to different languages and approaches, and their respective problems and benefits. He virtually used a slide for each sentence, and later told me he had over 400 slides. <img src='http://robertnyman.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </dd>
<dt><a href="http://codebits.eu/intra/s/session/60">HTML5 JavaScript APIs (+video of the talk!)</a> &#8211; Remy Sharp</dt>
<dd>I saw Remy do a talk very similar talk to this at JSConf.eu in Berlin earlier this year, but I have to say this version/performance was in my opinion better. Remy seemed more calm and in harmony with the material and it is a good API walk-through for JavaScripters.</dd>
<dt><a href="http://codebits.eu/intra/s/session/57">Optional is required (+video of the talk!)</a> &#8211; Brian Suda</dt>
<dd>I envy Brian, and that is because his talks seemed to be just leaps between things that amused him, complemented by beautiful slides. It was quite entertaining, and I was a bit worried to go on after him.</dd>
<dt><a href="http://codebits.eu/intra/s/session/87">JavaScript: From Birth to Closure (+video of the talk!)</a> &#8211; Robert Nyman</dt>
<dd>My talk. Once I got started, I felt relaxed, and it seemed to go down well with the audience &#8211; feels especially good when people seem to get my sense of humor. <img src='http://robertnyman.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  My <a href="http://www.slideshare.net/robnyman/javascript-from-birth-to-closure">slides are available at SlideShare</a>.</dd>
<dt><a href="http://codebits.eu/intra/s/session/75">Working with Canvas</a> &#8211; Diogo Antunes</dt>
<dd>After a talk, it is a lot about winding down, dealing with feedback etc. Nevertheless, I wanted to catch Diogo&#8217;s presentation, both for the content and that it would be his first presentation in English. I&#8217;m quite proud for him being brave enough to take that step, and when it comes to the content, I believe it was a good introduction to what you can do with canvas.</dd>
<dt><a href="http://codebits.eu/intra/s/session/98">Pond &#8211; The social network aggregator and publisher</a> &#8211; Pedro Couto e Santos and Gustavo Carvalho</dt>
<dd>Didn&#8217;t see this entire presentation, and listened with just one ear doing other stuff, but Pond seems to be an interesting aggregator of content from different web sites/services, and also offer it to all kinds of mobile phones.</dd>
</dl>
<p><a href="http://www.flickr.com/photos/robertnyman/4166695234/" title="Codebits conference by Robert Nyman, on Flickr"><img src="http://farm3.static.flickr.com/2793/4166695234_017d095a84.jpg" width="500" height="333" alt="Codebits conference" class="align-center"></a></p>
<h3>Speakers&#8217; dinner</h3>
<p>At around 20.00 in the evening, all speakers were invited to a joint dinner, and we all went on a chartered bus to an, I think, Italian restaurant at the far end of the city. I can&#8217;t actually remember if there were a starter (at least we had bread with olives on the side), but we got some good Sangria and then a main course with meat and rice, followed by a nice desert. Got some nice chats with Glenn, Ruben, Remy and Brian Suda.</p>
<p><a href="http://www.flickr.com/photos/robertnyman/4165917995/" title="André Luís &amp; Brian Suda - Speakers' dinner - Codebits conference by Robert Nyman, on Flickr"><img src="http://farm3.static.flickr.com/2782/4165917995_f0a9ea7de4.jpg" width="500" height="333" alt="André Luís &amp; Brian Suda - Speakers' dinner - Codebits conference" class="align-center"></a></p>
<p>It was also here that I finally got to talk a little to <a href="http://andr3.net/">André Luís</a>. André and I first got in touch back in 2006, so it was really great to finally get the chance to meet in real life! <img src='http://robertnyman.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>After dinner, we spent some short time at the venue (read: free WiFi to check some things), and then got back to the hotel to get some sleep at about midnight. So far, not really any late evening. Good for being rested, but unusual for a conference.</p>
<h2>Codebits conference, day 2</h2>
<p>Got up fairly early because I wanted to catch the first presentation of the day: Rik of Ajax.org.</p>
<h3>Presentations I attended</h3>
<dl>
<dt><a href="http://codebits.eu/intra/s/session/86">Beholding the giant pyramid of application development; why Ajax applications are its natural top layer (+video of the talk!)</a> &#8211; Rik Arends</dt>
<dd>The first half of Rik&#8217;s talk was more philosophical/theoretical and dealed with the background of development and different layers. Personally, I preferred the second half, since then he started to show code and demos of some cool things they have been working on with Ajax.org.</dd>
<dt><a href="http://codebits.eu/intra/s/session/79">Re-using social media data</a> &#8211; Glenn Jones</dt>
<dd>Got to Glenn&#8217;s talk a little late, but it was quite interesting in the sense about reusing already existing data about people on the web. His <a href="http://identengine.com/">Ident Engine</a> seems quite cool!</dd>
<dt><a href="http://codebits.eu/intra/s/session/71">PhoneGap: Mobile App Developer Zero to Hero (+video of the talk!)</a> &#8211; Brian LeRoux</dt>
<dd>Poor Brian was jetlagged out of his mind, so he missed his actual slot. No worries, it got postponed, and once he gave it, it was an interesting view into the state of development for mobile phones, and also about what <a href="http://phonegap.com/">PhoneGap</a> can offer in that area.</dd>
</dl>
<p>Between Glenn&#8217;s and Brian LeRoux&#8217;s talk, the extremely friendly <a href="http://twitter.com/dicode">Diogo Antunes</a> took me in his car across the Ponte 25 de Abril bridge so I would get the chance to see the Monumento ao Cristo Rei and get a good view of the city from across the river. The monument was quite high, and we took an elevator up to the foot of the actual statue, where the vista in all directions was quite nice!</p>
<p><a href="http://www.flickr.com/photos/robertnyman/4166083907/" title="View from Monumento ao Cristo Rei by Robert Nyman, on Flickr"><img src="http://farm5.static.flickr.com/4002/4166083907_f64a691c3d.jpg" width="500" height="333" alt="View from Monumento ao Cristo Rei" class="align-center"></a></p>
<p>I also took the time to watch the cool 3D printer in action, which were sometimes printing in plastic, sometimes in chocolate. <img src='http://robertnyman.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p><a href="http://www.flickr.com/photos/robertnyman/sets/72157622829666275/">All of my pictures of the Codebits conference</a>.</p>
<h3>Dinner &amp; party</h3>
<p>In the evening, a few of us decided to go out and get some dinner before the night&#8217;s events. It ended up with me, <a href="http://westcoastlogic.com/">Brian Leroux</a>, Glenn and Remy having a couple of beers and some burgers and fries at a café situated just by the river. It was really a pleasant dinner, with both some interesting and sometimes appalling conversations. <img src='http://robertnyman.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p><a href="http://www.flickr.com/photos/robertnyman/4165939445/" title="Brian Leroux, Remy Sharp &amp; Glenn Jones - Codebits conference by Robert Nyman, on Flickr"><img src="http://farm3.static.flickr.com/2546/4165939445_714da94434.jpg" width="500" height="333" alt="Brian Leroux, Remy Sharp &amp; Glenn Jones - Codebits conference" class="align-center"></a></p>
<p>We then got back to the venue to see a few songs of the band playing, Pornophonique, before we headed downtown. First it was us in the dinner-company + <a href="http://oswaldism.de/">Kai Sedler</a>, and we found a great pub in the Bairro Alto area. You&#8217;d buy your drink within the pub and then stand in a narrow street drinking it, and the street was totally packed (and yet, got even more crowded as the night went along).</p>
<p>Again, some texting, and we were joined by Mike de Boer, Ruben, Lieke and Rik, to form quite a big group of people hanging out and chatting. The interesting part, though, was that cars insisted on driving down this road, and it was almost impossible for them to come past all the people standing there drinking. At first, we thought it was due to some general GPS error/misinformation, but when a number of taxis came down that way too, it seemed like it would have to be the best option for them out of a number must-be poor ones.</p>
<p>Let me just tell you, when a garbage truck decided to drive down that street as well, chaos almost broke out&#8230;</p>
<p>At about two in the morning, I felt I <em>really</em> had to get back to the hotel to get a few hours of sleep before going home. Got back to the hotel room, packed, and slept maybe three hours, before I got up at six in the morning to go to the airport.</p>
<p>My driver, Antonio (I think), was really a nice guy and given the time of day, he was quite chatty. <img src='http://robertnyman.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  We had some interesting conversations and discussed values, before I arrived at the airport.</p>
<p>After such a great time in Lisbon with lots of nice people, it was a bit disheartening to see the Lisbon airport in action. <em>Everything</em> had a long line and seemed to go extremely slow: check-in, baggage drop, security, just buying something in <em>any</em> store&#8230; Anyway, since my plane was a bit late, I got enough time to endure the queueing and bought some gifts for my family.</p>
<p>Got some random sleep on the plane, and then finally I was home again.</p>
<p>Till next time Lisbon: thanks for a great conference!</p>
]]></content:encoded>
			<wfw:commentRss>http://robertnyman.com/2009/12/08/my-trip-to-lisbon-portugal-and-the-codebits-conference/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Speaking at Codebits in Lisbon, Portugal</title>
		<link>http://robertnyman.com/2009/11/30/speaking-at-codebits-in-lisbon-portugal/</link>
		<comments>http://robertnyman.com/2009/11/30/speaking-at-codebits-in-lisbon-portugal/#comments</comments>
		<pubDate>Mon, 30 Nov 2009 10:18:15 +0000</pubDate>
		<dc:creator>Robert Nyman</dc:creator>
				<category><![CDATA[Developing]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Speaking]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Travel]]></category>

		<guid isPermaLink="false">http://robertnyman.com/?p=1554</guid>
		<description><![CDATA[Next stop on my little European tour is Codebits in Lisbon, Portugal!
I will be speaking at the conference, giving my presentation JavaScript &#8211; From Birth to Closure. It seems like it&#8217;s going to be quite an exciting conference!
Tomorrow I will get on the plane there, and it is also my first time in Portugal and [...]]]></description>
			<content:encoded><![CDATA[<p>Next stop on my little European tour is <a href="http://codebits.eu/">Codebits</a> in Lisbon, Portugal!</p>
<p>I will be speaking at the conference, giving my presentation JavaScript &#8211; From Birth to Closure. It seems like it&#8217;s going to be quite an exciting conference!</p>
<p>Tomorrow I will get on the plane there, and it is also my first time in Portugal and Lisbon, so if anyone have any advice to what to see, it would be appreciated! <img src='http://robertnyman.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://robertnyman.com/2009/11/30/speaking-at-codebits-in-lisbon-portugal/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>My Full Frontal &#8216;09 escapades  &#8211; The JavaScript conference</title>
		<link>http://robertnyman.com/2009/11/25/my-full-frontal-09-escapades-the-javascript-conference/</link>
		<comments>http://robertnyman.com/2009/11/25/my-full-frontal-09-escapades-the-javascript-conference/#comments</comments>
		<pubDate>Wed, 25 Nov 2009 14:40:55 +0000</pubDate>
		<dc:creator>Robert Nyman</dc:creator>
				<category><![CDATA[Developing]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Speaking]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Travel]]></category>
		<category><![CDATA[Web browsers]]></category>

		<guid isPermaLink="false">http://robertnyman.com/?p=1542</guid>
		<description><![CDATA[I&#8217;m (almost) just back from Full Frontal 09, and man, did I have a good time!  
Conference takes
First of all, I have to say that I genuinely believe that Full Frontal 09 was absolutely fantastic! As I kept on telling people afterwards, all of the other speakers really stepped up and delivered, and everyone [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m (almost) just back from <a href="http://2009.full-frontal.org/">Full Frontal 09</a>, and man, did I have a good time! <img src='http://robertnyman.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<h2>Conference takes</h2>
<p>First of all, I have to say that I genuinely believe that Full Frontal 09 was absolutely fantastic! As I kept on telling people afterwards, all of the other speakers really stepped up and delivered, and everyone made fantastic performances. I feel very privileged to get to share this experience with everyone there, and honored to have been a part of this line-up and first time around for this event.</p>
<p><a href="http://www.flickr.com/photos/remysharp/4125332306/"><img src="http://robertnyman.com/images/0911/full-frontal/me-presenting.jpg" alt="A picture of me during my presentation" class="align-center"></a></p>
<p class="text-align-center">
	<a href="http://www.flickr.com/photos/remysharp/4125332306/"><i>Picture by Danny Hope</i></a>
</p>
<h3>What made it so good?</h3>
<p>Asides from the speakers really doing a god job, I think factors like an absolutely awesome crowd &#8211; laughing, interacting, being on board for every detail &#8211; together with being in a cinema with oh-so-comfortable chairs really contributed it. Also, having just one track kept everyone a lot more focused on what was currently being presented, and also resulting in less running in doors etc. For speakers, it&#8217;s great to get this focus, and for attendees they <em>know</em> what they will be about to see, and won&#8217;t hesitate about missing out on some other presentation.</p>
<p>Only thing missing, I&#8217;d say, was some sort of joint lunch so everyone could mingle and talk about the morning&#8217;s presentations and network in general.</p>
<h2>Speakers&#8217; dinner and pre-party</h2>
<p>The speakers were invited to a dinner the night before the conference at the restaurant In Vino Veritas in Brighton, and I thought it was a really nice evening with great food! All speakers bar Stuart Langridge were there (because he was flying in Friday morning), plus <a href="http://remysharp.com/">Remy Sharp</a>, Julie Sharp and <a href="http://natbat.net/">Natalie Downe</a>.</p>
<p>After the dinner, we joined the pre-party/pub crawl, and met some quite nice people! For instance, fellow Swede <a href="http://unclescript.blogspot.com/">Peter Svensson</a>, <a href="http://twitter.com/lizardqueen">Liz Warner</a> and also <a href="http://www.mikedeboer.nl/">Mike de Boer</a> and <a href="http://twitter.com/liekejav">Lieke Arends</a> of <a href="http://ajax.org/">Ajax.org</a>.</p>
<p>After the last pub closing, some of us &#8211; Chris Heilmann, Mike de Boer, Lieke and Peter Svensson &#8211; decided to go down to the sea-front and, by chance, the <a href="http://travel.yahoo.com/p-travelguide-2896745-_doughnut_the_brighton-i">Doughnut</a>. I got an idea to walk all the way out on the pier and look at the water, when a couple of exceedingly high waves came in and totally sprayed me with water. Dried most of it off, but still felt like the sticky floor of a movie theater on the way back to the hotel, with a salty taste haunting me&#8230;</p>
<h2>The conference and talks</h2>
<p><a href="http://www.flickr.com/photos/remysharp/4125318924/"><img src="http://robertnyman.com/images/0911/full-frontal/me-and-chris-heilmann.jpg" alt="A picture of me and Chris Heilmann just before the conference started" class="align-center"></a></p>
<p class="text-align-center">
	<i><br />
		<a href="http://www.flickr.com/photos/remysharp/4125318924/">Picture by Danny Hope</a><br />
	</i>
</p>
<dl>
<dt><a href="http://www.wait-till-i.com/">Christian Heilmann</a> &#8211; <a href="http://www.slideshare.net/cheilmann/frontloaded-and-zipped-up-the-full-frontal-keynote">Frontloaded and zipped up &#8211; do loose types sink ships? (slides on SlideShare)</a></dt>
<dd>Christian opened the day in a splendid manner, talking about the potential with JavaScript, and made the important move of pointing out that most problems and security issues aren&#8217;t actually because of JavaScript at all.</dd>
<dt>Robert Nyman &#8211; <a href="http://www.slideshare.net/robnyman/javascript-from-birth-to-closure">JavaScript: From Birth to Closure (slides on SlideShare)</a></dt>
<dd>I think my presentation about JavaScript history and then more advanced topics went really well! I was relaxed and excited about talking, and was in a really good state of mind + the fantastic crowd really helped in making me enjoying it! Sure, some parts could always be better, but overall I was quite pleased.</dd>
<dt><a href="http://www.quirksmode.org/">Peter-Paul Koch</a> &#8211; <a href="http://www.slideshare.net/pp.koch/the-mobile-web-full-frontal-2009">W3C Widgets (slides on SlideShare)</a></dt>
<dd>As most of know, PPK must have some kind of sadistic streak in him with his endless testing of web browsers, and in this case, mobile phones and their web browsing capabilities. Great tests, although at the time, it really scares me about doing more focused development for mobile web sites.</dd>
<dt><a href="http://www.kryogenix.org/days/">Stuart Langridge</a> &#8211; New things that HTML5 provides to JavaScript hackers</dt>
<dd>Due to a late lunch, I missed the beginning of Stuart&#8217;s talk, but managed to see the latter half. He gave a good introduction to the cool things you can know do in most web browsers, and also inspired about working with the open technologies, as opposed to closed-in solutions like Silverlight and Flash (which he compared to the Death Star in Star Wars).</dd>
<dt><a href="http://twitter.com/toddkloots">Todd Kloots</a> &#8211; <a href="http://www.kloots.net/presentations/full-frontal-2009.zip">More accessible user interfaces with ARIA (slides in a ZIP file)</a></dt>
<dd>Todd was talking about using ARIA in ways to improve the accessibility of a web user interface, and also talked about the very important fact that most assistive devices do have JavaScript enabled, and that we need to think more about keyboard navigation options in web pages.</dd>
<dt><a href="http://www.jakearchibald.com/">Jake Archibald</a> &#8211; <a href="http://www.slideshare.net/jaffathecake/optimising-where-it-hurts-jake-archibald">Optimising where it hurts (slides on SlideShare)</a></dt>
<dd>Jake was absolutely awesome! I love humor in presentations, which he had aplenty, and he also complemented it with very interesting facts about performance. Something he also brought up was questioning things most people seem to take for granted, but shouldn&#8217;t &#8211; everyone should test themselves to see how things actually work. Amongst all great presentations, Jake stole the day in my eyes.</dd>
<dt><a href="http://simonwillison.net/">Simon Willison</a> &#8211; Surprise presentation (<a href="http://simonwillison.net/2009/Nov/23/node/">Simon&#8217;s blog post about his talk</a>)</dt>
<dd>Simon got really inspired by <a href="http://nodejs.org/">Node.js</a>, and just three days before the conference, he decided to do a completely other talk. It was an impressive demonstration in using virtually no slides, moving around in virtual desktops, terminal and web browser windows.</dd>
</dl>
<p>Before my talk, I was very happy to see my friend <a href="http://twitter.com/Icaaq">icaaq</a> being there, and  during lunch I also got the chance to meet my old friend <a href="http://dev.opera.com/author/974138">Chris Mills</a>, who I was meeting the second time this year!</p>
<p><a href="http://www.flickr.com/photos/codepo8/4127033185/"><img src="http://robertnyman.com/images/0911/full-frontal/me-and-chris-mills.jpg" alt="A picture of me and Chris Mills" class="align-center"></a></p>
<p class="text-align-center">
	<i><br />
		<a href="http://www.flickr.com/photos/codepo8/4127033185/">Picture by Chris Heilmann</a><br />
	</i>
</p>
<h2>The after-party</h2>
<p>At the after-party, I got the pleasure of first having dinner at the same table as <a href="http://softwareas.com/">Michael Mahemoff</a> (of books and Ajaxian fame). Then, my friend <a href="http://eatyourgreens.org.uk/">Jim O’Donnell</a> had come down to Brighton just for the party, which was great! I also spent some considerable time talking to the very nice <a href="http://jlix.net/">Sander Aarts</a> and <a href="http://wnas.nl/">Wilfred Nas</a>, and at least I got the chance to talk about a minute with <a href="http://adactio.com/journal/">Jeremy Keith</a>.</p>
<p><a href="http://blog.whatfettle.com/">Paul Downey</a> also showed me his <em>completely wonderful</em> notes of the talks, and we spoke very briefly.</p>
<p><a href="http://www.flickr.com/photos/psd/4123236978/"><img src="http://robertnyman.com/images/0911/full-frontal/paul-downeys-note-book.jpg" alt="A picture of a page in Paul Downey's note book" class="align-center"></a></p>
<p class="text-align-center"><a href="http://www.flickr.com/photos/psd/4123236978/"><i>Picture by Paul Downey</i></a></p>
<p>Just before she left the party, <a href="http://www.iheni.com/">Henny Swahn</a> came by to say hi, and said that she read my blog. Tired, confused (and any other attribute applicable), I thought she said she &#8220;read my <em>book</em>&#8220;, so I eagerly tried to convince her I haven&#8217;t written any book with repeating &#8220;no book, no book&#8221;. Sorry Henny, please don&#8217;t stop reading my blog! <img src='http://robertnyman.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>After saying our good-byes to everyone, which took a long time, Chris Heilmann and I slowly made our way back to the hotel again.</p>
<h2>People I never got to see</h2>
<p>There were also a number of people I had hoped to meet, but unfortunately missed out on: <a href="http://www.splintered.co.uk/">Patrick H. Lauke</a>, who got ill and missed the after-party, <a href="http://www.addedbytes.com/">Dave Child</a>, who had to go back to work after half the day, <a href="http://webreflection.blogspot.com/">Andrea Giammarchi</a>, who couldn&#8217;t make it to the event and <a href="http://www.danwebb.net/">Dan Webb</a>, who was there, but I apparently just missed. Next time, guys!</p>
<h2>Going home</h2>
<p>Getting up fairly early morning, I was getting ready to take the train up to London, Victoria Station, and then on to Heathrow to catch my flight. I decided to leave Brighton 4 hours before my flight was due to take off to have good time and no stress.</p>
<p>It started in the ticket line in Brighton, which took some time, so I missed the &#8220;fast&#8221; train, and had to take the &#8220;slow&#8221; train instead. And boy, slow really meant SLOW! It stopped everywhere, and the hordes getting on at the Gatwick station with all their bags didn&#8217;t make it better; the train was completely packed. Once we finally reached Victoria Station, it took, I kid you not, 25 minutes just to get a ticket to the tube! Trying to get to the subway trains also proved to be harder than I thought: there were only two ticket entrances, and one of them was out of order, so there was a long line to get through. About three persons before I reached it, the other one went out of order too! So, literally no way to get in! Luckily I managed to climb it, and got the help from someone catching my suit case (yes, without stealing it).</p>
<p>Getting slightly stressed now, with a slow train and slow ticket sales for the tube, it felt good to at least be on the tube on the way to Heathrow. Or so I thought. Halfway there, there was an announcement that the tube train had broken down and that we had to get off (luckily at a station), and wait for the next train. People swearing, and me really starting to get worried. Called home to Fredrika to make sure what Terminal to go to at least, so I could save time on any potential mistake there.</p>
<p>Once we arrived at Heathrow, the <em>long</em> automatic walking thing (you know, like a horizontal escalator, sort of) was broken, so we all had to walk/run a pretty long distance. Then I reached an escalator, but it was broken too, so I had to run up the stairs. Totally panicking about missing my flight now, it really took me by surprise when check-in, baggage drop, boarding card check, security and then passport check altogether took 15 minutes. Go Heathrow!</p>
<p>Therefore, I took some time buying gifts for my children, wandering around, and buying a couple of chicken and bacon wraps and a couple of bottles of water, to have a quick lunch. Saw that I was to take off from gate 9, and according to the signs, it seemed to be close. So, I decided to have my lunch, and then 20 minutes before take-off, walk to my gate. Finished eating, just looked up and on the screens it read GATE CLOSING. NOOOO!!!!!! From panic, to having time, to missing the flight on the gate closing extremely early! This could not be happening!</p>
<p>Started to desperately run towards gate 1-9, according to the signs. Ran uphill, and suddenly only gate 3 and 5-7 were options. What? Managed to stop someone with a badge to ask where the hell gate 9 was, and got pointed back just the way I came. Ran down the small slope again, and there it was, no marking whatsoever and looked like a janitor&#8217;s closet. Being the last one, I managed to just board before they closed the gate&#8230;</p>
<p>It seems like this gate-closing business was in relation to the plane staff wanting to get home early, because when we landed in Stockholm it was 35 minutes before the scheduled arrival! Oh well, home sweet home. <img src='http://robertnyman.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://robertnyman.com/2009/11/25/my-full-frontal-09-escapades-the-javascript-conference/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>The JSConf.eu conference and my visit to Berlin</title>
		<link>http://robertnyman.com/2009/11/18/the-jsconf-eu-conference-and-my-visit-to-berlin/</link>
		<comments>http://robertnyman.com/2009/11/18/the-jsconf-eu-conference-and-my-visit-to-berlin/#comments</comments>
		<pubDate>Wed, 18 Nov 2009 17:13:05 +0000</pubDate>
		<dc:creator>Robert Nyman</dc:creator>
				<category><![CDATA[Developing]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Speaking]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Travel]]></category>

		<guid isPermaLink="false">http://robertnyman.com/?p=1537</guid>
		<description><![CDATA[About a week and a half ago, I had the pleasure of speaking at JSConf.eu!
Background
Inspired by JSConf in the US,  Jan Lehnardt, Malte Ubl and Holger Blank, decided to organize JSConf.eu. They gathered a stunning line-up of speakers, and I&#8217;m just happy I got to be one too!
My travel there
I got to the Arlanda [...]]]></description>
			<content:encoded><![CDATA[<p>About a week and a half ago, I had the pleasure of speaking at <a href="http://jsconf.eu/2009/">JSConf.eu</a>!</p>
<h2>Background</h2>
<p>Inspired by <a href="http://jsconf2009.com/">JSConf in the US</a>,  <a href="http://twitter.com/janl">Jan Lehnardt</a>, <a href="http://www.nonblocking.io/">Malte Ubl</a> and <a href="http://www.linkedin.com/in/holgerblank">Holger Blank</a>, decided to organize <a href="http://jsconf.eu/2009/">JSConf.eu</a>. They gathered a stunning line-up of speakers, and <a href="http://robertnyman.com/2009/11/02/this-just-in-speaking-at-jsconf-eu-november-7th-8th-2009/">I&#8217;m just happy I got to be one too</a>!</p>
<h2>My travel there</h2>
<p>I got to the Arlanda airport in Stockholm in good time, had already checked in and got through security pretty quickly. Checked the board for my gate, and saw that it was just a couple of hundred meters away. Everything under control (or so I thought). As always when waiting for a flight, I wandered around, looking in shops, buying a couple of bottles of water.</p>
<p>About half an hour before my flight was due to take off, I walked to my gate, 10 C. When I got there, there was no attendant, but just a door to go through. On the other side of the door, the only sign I could see was &#8220;Exit&#8221;. Ok, that couldn&#8217;t be right. Looking the other way, there was an elevator, so I got in and rode it to the bottom floor.</p>
<p>I ended up in something that felt like an aquarium, down on ground level looking out a huge window at the airplanes being packed and tanked. There was a door, but needless to say, it was locked. All I could see was one enormous button, with a label saying that I should press it to get a transfer to Terminal 2 (I was in Terminal 5, from where virtually all international flights go). I pushed the button, a circle lit up around it, and nothing happened. It said that the transfer bus would take ten minutes, tops, to show up &#8211; no bus did.</p>
<p>Looking at the time now, with 25 minutes to take-off, I was starting to get worried. I decided to run up the flights of stairs next to me, and find someone to talk to. It basically went like this:</p>
<blockquote>
<p>
		- How do I get to Terminal 2 the fastest way?<br />
		- Terminal 2? Take the transfer bus.<br />
		- But no bus is coming, and my plan leaves in 25 minutes!<br />
		- Oh.<br />
		- Can you you check where the transfer bus is?<br />
		<i>She called, on an intercom, no less, the transfer bus department, but, surprisingly enough, they knew nothing about transfer buses&#8230;</i>
	</p>
<p>
		- There must be another way to get there, right?<br />
		- Well, you could go out through customs again, run to Terminal 2, go through their own set of security, and run to the gate. But it&#8217;s pretty far, so I&#8217;m not sure you will make it in time.<br />
		- Ok, I&#8217;ll have to try at least. Can you please call them the gate and let them know I will be late?<br />
		- No, sorry, there&#8217;s no way for us to contact the gate.<br />
		<i>WTF?! Really? No way? Highly convinced they could contact them, there was no time for an argument.</i><br />
		- Forget it, I&#8217;ll run then.
	</p>
</blockquote>
<p>Running with my cabin bag on wheels (most of the time, just one of them touching the ground and the other in mid-air), and my overstuffed backpack with computer and lots of other things, I first got through customs and then onwards on my journey to Terminal 2. And let me tell you, Terminal 2 is <em>far</em> away from Terminal 5 at Arlanda. I don&#8217;t know how many doors and long empty corridors I ran through, but I was all drenched in sweat and gasping for air. Every time I felt I wouldn&#8217;t make it, I just pushed a little harder &#8211; I just had to. </p>
<p>Five minutes before take-off I got to security at Terminal 2, where they forced me to leave my water bottles I had bought at the other waiting area, which in theory is correct of them, but it still bothered me at that time, because they&#8217;re both behind security checks. Screw the bottles, I was going to make it, no matter what. Through security, I found my gate and got onboard the plane just in time.</p>
<p>And let me tell you, in the time of a certain flu going around, it is <em>not</em> a good thing to get on the plane, drenched in sweat with a nervous stare &#8211; on top of that, I also started coughing from the panic run. Oh well, no one was leaning over to my seat, at least, I can tell you that&#8230;</p>
<p>Once in Berlin I was sitting waiting around for <a href="http://remysharp.com/">Remy Sharp</a> to show up with his flight from Copenhagen. Interestingly, I flew with Air Berlin, and was there even before time, I think, while Remy flew with the Scandinavian SAS and was late&#8230;</p>
<p>As soon as he had arrived, we got in a cab and went to the hotel. My hotel room looked really nice, although there was this hint of a smell of sewage, and the windows had been left opened. Not a good sign&#8230;</p>
<p><img src="http://robertnyman.com/images/0911/close-to-the-hotel.jpg" alt="A picture of the surroundings close to the hotel I was staying at" class="align-center"></p>
<h2>Friday night dinner</h2>
<p>I was really looking forward to Friday night, because it meant time to meet up with my good Danish friend <a href="http://roderick.dk/">Morgan Roderick</a>, who is now living and working (contracting) for Nokia in Berlin (ironically, he lives in Sweden otherwise, but only places we have met is abroad). Morgan met up with me and Remy close to the subway station near our hotel, and he took us to a great Asian restaurant, which had all kinds of interesting dishes.</p>
<p>Once there, we met his British colleagues Toby and Andy, who were quite nice chaps, and after a while we were joined by one more of Morgan&#8217;s work friends, Magnus, who is from Sweden (and, of course, is very nice too). I really, thoroughly, enjoyed the evening, and it was the first time in quite some time that I actually felt relaxed. After a few hours of dinner, the Brits dropped of while the rest of us went into a cozy corner pub, with a funky interior (especially the bathroom!) and some weird music. Kind of gave the feel of being in Jackie Brown, or some other Tarantino movie.</p>
<p><img src="http://robertnyman.com/images/0911/dinner-in-berlin.jpg" alt="A picture of the restaurant where we had dinner" class="align-center"></p>
<p>After a fantastic evening, we got back to the hotel, and as is my usual fashion, I was doing some panic changes to my slide deck late into the night&#8230;</p>
<h2>The conference, day 1</h2>
<p>JSConf.eu was split up into two days, with lots of talks each day, and for the most of the time, dual tracks going on. Once I got there, I also managed to meet a number of fellow Swedes attending, where my friend <a href="http://www.lissmyr.com/">Martin Lissmyr</a> was one of them, and it is always nice to have Swedes around. For comfort and support, you know. <img src='http://robertnyman.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>Below are short takes on the sessions I managed to see.</p>
<h3>Talks I attended</h3>
<dl>
<dt>The Future of Web-Apps &#8211; <a href="http://almaer.com/">Dion Almaer</a></dt>
<dd>Dion was supposed to give this talk with his compadre <a href="http://benzilla.galbraiths.org/">Ben Galbraith</a>, but after Øredev, Ben got so sick that he actually had to cancel and go home to the US. I hope you are better now, Ben! Dion&#8217;s talk consisted of parts of the talk I saw Ben doing at Øredev, but also of other interesting things. I also, finally, got to see the wonderful <a href="http://www.youtube.com/watch?v=8r1CZTLk-Gk">Louis C.K. talk &#8220;Everythings Amazing &amp; Nobody&#8217;s Happy&#8221;</a>, which I had on my hard drive, but had failed to take the time to see. All in all, Dion did a great and inspiring keynote! I&#8217;m just sad that, both at Øredev and JSConf.eu, all I managed to do was say hi to Dion, but never talk.</dd>
<dt>CommonJS &#8211; JavaScript vs. Ruby, Python, Java, etc. &#8211; <a href="http://cixar.com/~kris/">Kris Kowal</a></dt>
<dd>CommonJS is intended to &#8220;&#8230;building up the JavaScript ecosystem for web servers, desktop and command line apps and in the browser.&#8221; I think it&#8217;s great with such an initiative, but at the same time, it&#8217;s not a part of what I&#8217;m personally interested in, so I didn&#8217;t listen that intensely. From what I understood, though, the work with CommonJS is appreciated.</dd>
<dt>Building Desktop-Caliber Web Apps with Capuccino and Atlas &#8211; <a href="http://tolmasky.com/">Francisco Tolmasky</a></dt>
<dd>This was a very interesting demo, and the things they are creating really seem awesome &#8211; some clever minds at work there. They also dropped the idea of using MHTML in Internet Explorer to serve everything in one HTTP request &#8211; quite cool! Part of me can&#8217;t help to wonder about all the generated code, though, but I haven&#8217;t had the time to check it out.</dd>
<dt>HTML5 JavaScript APIs &#8211; Remy Sharp</dt>
<dd>Remy was giving a talk about different APIs and cool features offered with HTML5 and surrounding technologies, and I think the options for developers were alluring &#8211; and if you were just paying attention, there was a  lot of things covered in a short amount of time.</dd>
<dt>JavaScript &#8211; From Birth to Closure &#8211; Robert Nyman</dt>
<dd>Well, yes, naturally I was there &#8211; this was my talk. I realized during this talk that I&#8217;m not a professional speaker, at least not yet. Especially during the beginning of my talk, I let some details get to me that kind of threw my focus off (insignificant details I over-focused on, like weird position for me to stand at, it seemed like people weren&#8217;t getting my first couple of jokes etc). After a while I got a little bit better, but not as good as it felt at Øredev. Oh well, I hope I have learned something, and that people went away from my talk with at least something.</dd>
<dt>Extreme JavaScript Performance &#8211; <a href="http://mir.aculo.us/">Thomas Fuchs</a></dt>
<dd>Having done some performance testing with JavaScript and how web browsers react myself, I think it was a good talk with things to consider in the future for an optimal result.</dd>
<dt>ECMAScript &#8211; Douglas Crockford</dt>
<dd>Douglas gave a stunning talk about the history of ECMAScript, different twists and turns on the way, how IBM seem to be filled with just lawyers who focus on patents rather than offering something actually good etc. It was also about the future of ECMAScript, and how everyone will work together in small steps to make it better. Douglas is a fantastic story-teller, and it is mesmerizing sitting there listening to any of his talks &#8211; and this was the third talk this week for me seeing him!</dd>
</dl>
<p><img src="http://robertnyman.com/images/0911/twitter-fail-whale-at-conference.jpg" alt="A picture of the Twitter fail whale at the conference" class="align-center"></p>
<h2>Saturday night dinner</h2>
<p>After the talks on Saturday, me and the jQuery crew, meaning, <a href="http://ejohn.org/">John Resig</a>, <a href="http://brandonaaron.net/">Brandon Aaron</a>, <a href="http://bassistance.de/">Jörn Zaefferer</a> and Remy Sharp went out for dinner, and ended up at, of all places, an Australian restaurant at Potsdam Plaza in Berlin. Having never been there before, Potsdam Plaza seemed to be a spectacular place, and in the middle of it, there was this huge thing built up for the movie 2012 with waterfalls and all. I tried to get the team to cave in and acknowledge <a href="http://www.domassistant.com/">DOMAssistant</a>&#8217;s superiority, but it didn&#8217;t really happen&#8230; <img src='http://robertnyman.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p><img src="http://robertnyman.com/images/0911/potsdam-plaza.jpg" alt="A picture of Potsdam Plaza" class="align-center"></p>
<h3>Party time</h3>
<p>The event party was maybe a 10 minutes cold walk from Potsdam Plaza, and in there Nokia were sponsoring <em>all</em> alcohol &#8211; it seemed to be appreciated. <img src='http://robertnyman.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /><br />
Also there, I got to meet <a href="https://twitter.com/dzschille">David Zschille</a> who I had met my first time in Berlin back in March this year, at a Mozilla event. Unfortunately, the music was a bit loud, so not many conversations were, well, fluent in there.</p>
<p>I shared a cab back to the hotel with my friend <a href="http://kid666.com/">Tom Hughes-Croucher</a> and <a href="http://www.stubbornella.org/">Nicole Sullivan</a>, and got back, well, not <em>too</em> late, I think.</p>
<h2>The conference, day 2</h2>
<p>A bit tired, I got up later, and luckily enough, I got to share a cab to the conference venue with <a href="http://stevesouders.com/">Steve Souders</a> and <a href="http://www.crockford.com/">Douglas Crockford</a>. As I have mentioned before, both these gentlemen have been highly influential to my work and evolvement as a web developer, and having first met them at <a href="http://www.oredev.org/">Øredev</a> and now in Berlin, it was almost half a week of me stalking them, constantly asking questions, desperately hoping that some genius would rub off on me. So, thanks for putting up with me, guys! <img src='http://robertnyman.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<h3>Talks I attended</h3>
<dl>
<dt>Loading JS &#8211; even caveman can do it &#8211; <a href="http://getify.com/">Kyle Simpson</a></dt>
<dd>Kyle has being doing some really great work with <a href="http://labjs.com/">LABjs</a>, to tend to the problem of JavaScript loading blocking a web page, parallel loading and similar things. Quite nice!</dd>
<dt>End to End JavaScript &#8211; From Server to Client &#8211; Tom Hughes-Croucher</dt>
<dd>Tom was giving a talk of JavaScript on the server, how to improve the results of calls done with YQL with JavaScript and other things. Interesting, although not really something I personally work with on a day-to-day basis.</dd>
<dt>OOCSS &#8211; Nicole Sullivan</dt>
<dd>Nicole has some really interesting ideas with improving CSS, and she has a lot of experience to back her claims. Overall, I think she has great thoughts, although I&#8217;m not really on board with all her takes. I plan to cover OOCSS &#8211; Object-Oriented CSS &#8211; in a future blog post.</dd>
<dt>Unittesting JavaScript with Evidence &#8211; Tobie Langel</dt>
<dd>Poor Tobie got off to a bad start with a presentation file/program that gave him some grief, and as a fellow presenter, I really felt with him. Once that was sorted out, though, he have an introduction to unit testing with the Evidence framework.</dd>
<dt>JavaScript in Browser Performance &#8211; Steve Souders</dt>
<dd>Steve gave a talk very similar to the one he gave at Øredev, but my impression is that he was more on fire here, and that the crowd seemed to be more onboard with what he was talking about. Always inspiring!</dd>
</dl>
<p><img src="http://robertnyman.com/images/0911/me-and-morgan-at-conference.jpg" alt="A picture of me and Morgan at the conference" class="align-center"></p>
<h3>Going home</h3>
<p>Unfortunately I had to leave before the last talk by John Resig about testing JavaScript to catch my plane home. Proudly, I can say, I managed to have a casual talk in German with the cab driver for a full thirty minutes to the airport. <img src='http://robertnyman.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>JSConf.eu was great, I applaud the initiative, and I sure hope it will happen again next year!</p>
<p>Please also take a look at <a href="http://www.flickr.com/photos/robertnyman/sets/72157622705777709/">My pictures of JSConf.eu 2009 and Berlin</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://robertnyman.com/2009/11/18/the-jsconf-eu-conference-and-my-visit-to-berlin/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>The Øredev 2009 Conference adventure</title>
		<link>http://robertnyman.com/2009/11/16/the-%c3%b8redev-2009-conference-adventure/</link>
		<comments>http://robertnyman.com/2009/11/16/the-%c3%b8redev-2009-conference-adventure/#comments</comments>
		<pubDate>Mon, 16 Nov 2009 11:27:17 +0000</pubDate>
		<dc:creator>Robert Nyman</dc:creator>
				<category><![CDATA[Developing]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Speaking]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Travel]]></category>

		<guid isPermaLink="false">http://robertnyman.com/?p=1529</guid>
		<description><![CDATA[Week before last, I had the pleasure of attending and speaking at two conferences. With even more conferences in the pipe, last week was pretty intense, work-wise, to cover up for that, but now I thought I&#8217;d take the time to talk about them, starting in this post with the Øredev 2009 conference.
Getting there
Since the [...]]]></description>
			<content:encoded><![CDATA[<p>Week before last, I had the pleasure of attending and speaking at two conferences. With even more conferences in the pipe, last week was pretty intense, work-wise, to cover up for that, but now I thought I&#8217;d take the time to talk about them, starting in this post with the <a href="http://oredev.org/">Øredev 2009 conference</a>.</p>
<h2>Getting there</h2>
<p>Since the Øredev 2009 conference takes place in Malmö, in Sweden, I decided to take the X 2000 train there instead of flying. I could try and say that it was for environmental reasons, which is a good thing, but to be honest, my decision was just based on travel time and making it easier with arriving directly at the station next to my hotel.</p>
<p>In retrospect, though &#8211; and I know how weak this sounds &#8211; the train goes <em>really</em> fast and takes the curves leaning, so instead of me working or reading, I just needed to basically just sit still to avoid starting feeling sick. So even though I like the idea, not sure I will take the train next time &#8211; at least not the high-speed one.</p>
<p>I work out a lot regularly, and I drink protein shakes. So, as a snack/afternoon meal at the train, I wanted to drink one, but didn&#8217;t really feel like preparing it in the toilet sink. Therefore, after some serious smooth-talking, I managed to convince the train conductor to allow me to use his little kitchen which had a sink and faucet. Last thing he said to me before I went in there was: &#8220;Be careful, the train can be a bit jerky in some turns &#8211; just so you know&#8221;.</p>
<p>I though &#8220;Yeah, whatever, I&#8217;m a grown-up now, I can manage&#8221;, filled my shaker with protein powder and water, and started shaking it. After just a few seconds the lid got off the shaker, and I spilled the containing goo all over me and the entire kitchen&#8230; I got some paper and started to clean up as good as I could; the kitchen looked fairly decent at least, but the protein drink stains on my shirt looked like sperm or something&#8230; No bother, only four more shirt-stained hours to go on the train!</p>
<p>So, in my stain misery, all I could do was tweet about it and share the &#8220;joy&#8221; with people. I think the best reply ever was from <a href="http://twitter.com/pekingspring">Jim O&#8217;Donnell</a>, who wondered about me being in a room with the conductor, and a stained shirt, and ultimately asked me if &#8220;Protein shake&#8221; was our safe word! <img src='http://robertnyman.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':-D' class='wp-smiley' /> </p>
<h2>Hotel room</h2>
<p>Eventually I arrived in Malmö, and walked across the bridge from the train station over to the hotel, Elite Hotel Savoy. I checked in and got put in room 626. All well so far, but I got some interesting instructions on how to get to my room.</p>
<blockquote>
<p>Take the lift to the second floor, get off, walk down half a stair, take the corridor to another elevator, take that one to your room.</p>
</blockquote>
<p>Ok&#8230; I always thought room numbers starting with 600 would be on the 6th floor, but apparently my floor seemed to be wedged somewhere between the first and second floor, and elevator number two surely must have been going exclusively horizontal.</p>
<p>Nevertheless, I got a <em>beautiful</em> room with lots of space for all my stuff, and a little envelope with welcoming instructions as well (and even some Swedish car candy!). I unpacked what I had to, and then directly went off to the speakers&#8217; dinner.</p>
<p><img src="http://robertnyman.com/images/0911/oredev/hotel-room.jpg" alt="A picture of my hotel room" class="align-center"></p>
<h2>Speakers&#8217; dinner</h2>
<p>The speakers&#8217; dinner took place at the absolutely gorgeous City Hall in Malmö, which is, especially on the interior, very very nice &#8211; let me tell you, it was the first time as a speaker walking on a red carpet to the welcome room. <img src='http://robertnyman.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  Feeling a bit lost and not really knowing any other speaker, I browsed around amongst the other speakers in the mingling room just before the dinner, and luckily I ran into the lovely <a href="http://theresaneil.wordpress.com/">Theresa Neil</a>. Theresa and I both were speakers at the <a href="http://www.swdc2009.com/">Scandinavian Web developer Conference 2009</a> so we got to know each other there, and it was good to see that she once again this year was visiting Sweden!</p>
<p>We were then ushered into another, highly ornamented, room with lots of round tables put up for dinner and enormous chandeliers hanging over our heads. Theresa and I sat down at one table, and we were joined by some people from the conference organizing committee as well as performance guru <a href="http://stevesouders.com/">Steve Souders</a>, <a href="http://www.linkedin.com/pub/cameron-purdy/0/10/23a">Vice President of Development at Oracle Cameron Purdy</a>, interaction designer <a href="http://www.odannyboy.com/">Dan Saffer</a> and <a href="http://www.alexloddengaard.com/">Alex Loddengaard</a>.</p>
<p><img src="http://robertnyman.com/images/0911/oredev/speakers-dinner.jpg" alt="A picture from the speakers' dinner" class="align-center"></p>
<p>It was a nice dinner with some very, eh, interesting dishes, and at the end of it I dared to approach Steve Souders &#8211; he has influenced a lot of my work and it was really good to meet him in person!<br />
After the dinner a few of us went to the official pub of the conference, just next to my hotel, and drank beer, spoke and generally had a good time.</p>
<p>Like before any of my speaking engagements, I was staying up way too late, making last-minute changes and generally panicking&#8230;</p>
<h2>The conference</h2>
<p>I got up pretty early in the morning, and went for a morning walk. Had breakfast, packed all my stuff and then I decided to walk to the venue instead of taking the offered shuttle service &#8211; just to get some fresh air and properly wake up, I thought. And man, did I wake up! It was <em>very</em> brisk outside so I guess the walk served its purpose at least. <img src='http://robertnyman.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>I got my badge, which interestingly read &#8220;Independent&#8221; (probably since I was invited as me, and not just as an employee) &#8211; I liked the notion, though, of being strong and independent. <img src='http://robertnyman.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p><img src="http://robertnyman.com/images/0911/oredev/my-badge.jpg" alt="A picture of my badge" class="align-center"></p>
<p>I managed to see some of Marc Lesser&#8217;s keynote &#8220;Accomplishing more by doing less&#8221; (he sure has a name that fits his presentation&#8230;), before I went to where my presentation would be and got ready.</p>
<h3>My presentation</h3>
<p>I gave my presentation <a href="http://www.slideshare.net/robnyman/javascript-from-birth-to-closure">JavaScript &#8211; From Birth to Closure (View/download on SlideShare)</a> and overall I think it went pretty good. I was worked up, in a good mood and I felt I got good some good feedback/reactions from the audience as well. Only regret I have is that I had a dirty joke in the middle of my presentation, just to desperately shock/wake people up. Sure, some people liked it and tweeted about it, but the general feedback after was that it was a bit low and uncalled for, and I believe some even got offended. Please accept my apologies &#8211; the joke is now gone.</p>
<p>Let me also say that it is quite a mental challenge to give a talk on JavaScript with <a href="http://www.crockford.com/">Douglas Crockford</a>, JavaScript Godfather, in the audience. The feedback I got afterwards, though, was that I seemed to have done well. <img src='http://robertnyman.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<h3>Presentations</h3>
<p>With nine (!) separate tracks going at the same time, there were quite a number of talks to choose from. The other presentations I attended were:</p>
<dl>
<dt>JavaScript: The Good Parts &#8211; Douglas Crockford</dt>
<dd>I have seen this talk before by Douglas, except for some minor changes, and it is a great presentation, and especially <em>the</em> introduction to have if you are coming to JavaScript from other programming languages like Java, C++ or similar.</dd>
<dt>Even Faster Web Sites &#8211; Steve Souders</dt>
<dd>Steve was talking about how much performance matters, not just for end user experience, but also in conversions, loyalty and revenue, and showed both some interesting techniques as well as numbers to back his claims. First time seeing Steve talk, and it was very inspiring!</dd>
<dt>The JSON Saga</dt>
<dd>Douglas gave his talk about how JSON came to be, and it truly is a saga that has led to where we are today. Besides everything JSON, I also learned that Douglas apparently, at times, likes to design logos. <img src='http://robertnyman.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </dd>
<dt>Design to Development &#8211; Collaborating and Communicating on Interaction Design &#8211; Theresa Neil</dt>
<dd>Needing a break from code, I decided to see Theresa give her talk about user experience and different approaches to common problems. As a fellow presenter, I also liked her new slide deck design!</dd>
<dt>How Exactly Can Developers Create a Compelling User Experience? &#8211; Ben Galbraith</dt>
<dd>Getting inspired by Theresa&#8217;s talk, I decided to stay for another user experience talk. Ben, (previously with Google, then Mozilla, now Palm), gave a nice presentation about how design and user experience matters, and presented a lot of feedback and quotes from people researching it.</dd>
</dl>
<h3>Evening</h3>
<p>After the conference, the organizers were offering dinner at the venue together with some beer &#8211; I think this is a great idea, to keep everyone around and still mingling even though you are several hundred people! During dinner, <a href="http://remysharp.com/">Remy</a> showed up, since he was due to talk the day after. We had some dinner together, and then later some beers at the pub, but both he and I were quite tired, both from escapades before the conference, as well as upcoming adventures.</p>
<p>Morning after, I left to go home and meet the family, before embarking on my next conference adventure (which I will cover in my next blog post).</p>
<h2>The Øredev Conference review</h2>
<p>It was my first time at Øredev, and I have to say I was extremely satisfied! Everything, down to the last detail, was very well organized, and everything <em>just worked</em>!<br />
Especially as a speaker, it&#8217;s so good when you don&#8217;t need to waste time and effort into administrative details, but instead just focus on your talk, and the web track leader Olof Adell set a great example there!</p>
<p>If I ever get the chance to go again, I would say yes without hesitating! Thanks for everyone making it such a great event, and especially to Michael Tiberg for making this happen!</p>
<p><em>My pictures from the event are available in the <a href="http://www.flickr.com/photos/robertnyman/sets/72157622813991930/">Øredev 2009 conference photo set</a></em></p>
]]></content:encoded>
			<wfw:commentRss>http://robertnyman.com/2009/11/16/the-%c3%b8redev-2009-conference-adventure/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>This just in: Speaking at JSConf.eu November 7th-8th 2009!</title>
		<link>http://robertnyman.com/2009/11/02/this-just-in-speaking-at-jsconf-eu-november-7th-8th-2009/</link>
		<comments>http://robertnyman.com/2009/11/02/this-just-in-speaking-at-jsconf-eu-november-7th-8th-2009/#comments</comments>
		<pubDate>Mon, 02 Nov 2009 09:23:28 +0000</pubDate>
		<dc:creator>Robert Nyman</dc:creator>
				<category><![CDATA[Developing]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Speaking]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Travel]]></category>

		<guid isPermaLink="false">http://robertnyman.com/?p=1512</guid>
		<description><![CDATA[I&#8217;m very happy to say that I will speak at at, and participate in, JSConf.eu in Berlin this upcoming weekend!
I heard/read about the conference when it was in its planning stage, but since I was already scheduled to speak at Øredev this week and had some other things to attend to, I early on discarded [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m very happy to say that I will speak at at, and participate in, <a href="http://jsconf.eu/2009/">JSConf.eu</a> in Berlin this upcoming weekend!</p>
<p>I heard/read about the conference when it was in its planning stage, but since I was already scheduled to <a href="http://robertnyman.com/2009/10/13/speaking-at-%C3%B8redev-2009-developer-conference-november-4th-2009/">speak at Øredev</a> this week and had some other things to attend to, I early on discarded the idea of attending JSConf.eu.</p>
<p>However, as things got closer, I realized I could actually be a part of it, and given the impact of the event and all the interesting talks, I felt I would really like to talk there as well!</p>
<p>In May this year at the <a href="http://www.swdc2009.com/index_en.html">Scandinavian Web Developer Conference 2009</a>, I as well as <a href="http://twitter.com/janl">Jan Lehnardt</a> and <a href="http://www.nonblocking.io/">Malte Ubl</a> gave presentations, and interestingly enough, together with <a href="http://www.linkedin.com/in/holgerblank">Holger Blank</a>, they are organizing JSConf.eu. <img src='http://robertnyman.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>So, I got on touch with them over the weekend and spoke with Malte, and basically got to hear that they would love to have me do a talk, but that the budget wouldn&#8217;t cover my expenses &#8211; which is fair enough, my proposal was &#8220;drastically late&#8221;, as Malte called it  <img src='http://robertnyman.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> , and the <a href="http://jsconf09.sched.org/">JSConf.eu 2009 conference schedule</a> had already been organized. So, I spoke to my employer, <a href="http://valtech.se/">Valtech <img src="http://robertnyman.com/images/sweFlag.gif" alt="In Swedish"></a>, who graciously immediately offered to sponsor me! <img src='http://robertnyman.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>Therefore, I can happily announce that I will, alongside <a href="http://jsconf.eu/2009/speakers.html">the fantastic list of speakers</a>, do a talk at JSConf.eu. I&#8217;ll be covering some brief JavaScript history, common best practices and then more advanced things like scope and closures. Slightly worried that my talk might be too basic, but at the same time, I hope to fill in some blanks and repeat important information that everyone should know, and hopefully inspire people to delve into the fantastic workings of JavaScript. <img src='http://robertnyman.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>Will you be there?</p>
]]></content:encoded>
			<wfw:commentRss>http://robertnyman.com/2009/11/02/this-just-in-speaking-at-jsconf-eu-november-7th-8th-2009/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Speaking at Full Frontal &#8211; JavaScript Conference &#8211; 20th November 2009</title>
		<link>http://robertnyman.com/2009/10/26/speaking-at-full-frontal-javascript-conference-20th-november-2009/</link>
		<comments>http://robertnyman.com/2009/10/26/speaking-at-full-frontal-javascript-conference-20th-november-2009/#comments</comments>
		<pubDate>Mon, 26 Oct 2009 10:21:29 +0000</pubDate>
		<dc:creator>Robert Nyman</dc:creator>
				<category><![CDATA[Developing]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Speaking]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Travel]]></category>

		<guid isPermaLink="false">http://robertnyman.com/?p=1499</guid>
		<description><![CDATA[Soon time for me to go on the road, and I&#8217;ve gotten the honor to speak at the Full Frontal &#8211; JavaScript Conference, 20th November 2009.

It is especially interesting, and scary, for me since all the other names on the bill are true JavaScript heroes. Just take a glance at this list of the speakers:

Jake [...]]]></description>
			<content:encoded><![CDATA[<p>Soon time for me to go on the road, and I&#8217;ve gotten the honor to speak at the <a href="http://2009.full-frontal.org/">Full Frontal &#8211; JavaScript Conference, 20th November 2009</a>.</p>
<p><a href="http://2009.full-frontal.org/"><img src="http://robertnyman.com/images/0910/robert-nyman-full-frontal.jpg" alt="A picture of Robert Nyman" class="align-center"></a></p>
<p>It is especially interesting, and scary, for me since all the other names on the bill are true JavaScript heroes. Just take a glance at this list of the speakers:</p>
<ul>
<li>Jake Archibald</li>
<li>Christian Heilmann</li>
<li>Todd Kloots</li>
<li>Peter-Paul Koch</li>
<li>Stuart Langridge</li>
<li>Robert Nyman (that&#8217;s me! <img src='http://robertnyman.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  )</li>
<li>Simon Willison</li>
</ul>
<p>As the name implies, it is naturally about JavaScript, but also with a complete focus on front end-development &#8211; as opposed to many other conferences. With this impressive list of speakers, I am sure anyone interested in JavaScript will be wildly pleased!</p>
<p>Besides, the name is awesome, isn&#8217;t it? I am so happy I came up with it, and that Remy, the event organizer, liked my suggestion. <img src='http://robertnyman.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>Make sure to <a href="http://www.stubmatic.com/leftlogic/event/2066">buy a ticket now</a> while there are still some left!</p>
]]></content:encoded>
			<wfw:commentRss>http://robertnyman.com/2009/10/26/speaking-at-full-frontal-javascript-conference-20th-november-2009/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>An introduction to HTML5</title>
		<link>http://robertnyman.com/2009/10/14/an-introduction-to-html5/</link>
		<comments>http://robertnyman.com/2009/10/14/an-introduction-to-html5/#comments</comments>
		<pubDate>Wed, 14 Oct 2009 20:26:42 +0000</pubDate>
		<dc:creator>Robert Nyman</dc:creator>
				<category><![CDATA[Developing]]></category>
		<category><![CDATA[HTML5/HTML/XHTML]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Web browsers]]></category>

		<guid isPermaLink="false">http://robertnyman.com/?p=1493</guid>
		<description><![CDATA[It seems like everyone is talking about HTML5 now, but the discussion is spread out and seldom gives the background, explanation what HTML5 really is and if/when it&#8217;s usable.
Therefore, my ambition here is to:

Give you a little history
Go into what HTML5 is and what it covers
Show code examples
Target the question whether you can start using [...]]]></description>
			<content:encoded><![CDATA[<p>It seems like everyone is talking about HTML5 now, but the discussion is spread out and seldom gives the background, explanation what HTML5 really is and if/when it&#8217;s usable.</p>
<p>Therefore, my ambition here is to:</p>
<ul>
<li>Give you a little history</li>
<li>Go into what HTML5 is and what it covers</li>
<li>Show code examples</li>
<li>Target the question whether you can start using it or not</li>
</ul>
<h2>Background</h2>
<p>The HTML5 work stems from the WHATWG (Web Hypertext Application Technology Working Group), and their focus is the development of HTML and APIs for web applications. The reason it came to life back in 2004, founded by people from Apple, Mozilla and Opera, was a worry about the direction W3C were taking with XHTML, and no focus on HTML or the real-life needs for web developers.</p>
<p>It got really interesting in July of 2009, when <a href="http://www.w3.org/News/2009#entry-6435">W3C announced that XHTML2 would be cancelled</a> in favor of HTML. This means that the only future development of HTML and XHTML is in the form of HTML5 &#8211; HTML5 is the future, whatever you think about it.</p>
<p>I should also mention right away that HTML5 is spelled just that, with no space between the the L and 5 &#8211; read more in <a href="http://blog.whatwg.org/spelling-html5">Spelling HTML5</a>.</p>
<h2>What is HTML5</h2>
<p>So what is HTML5, really? Basically, it&#8217;s about extending HTML/XHTML with new more semantically rich elements, deprecating attributes, introducing new attributes and altering how some element and attributes are allowed to be used. Hand in hand with that is the possibility to use attributes for <a href="http://www.w3.org/TR/wai-aria/">WAI-ARIA</a> to make a web page more accessible, such as with <a href="http://www.w3.org/TR/wai-aria/#roleattribute_inherits">landmark roles</a>.</p>
<p>It also introduces a number of <a href="http://dev.w3.org/html5/html4-differences/#apis">APIs for making it easier to create web applications</a>:</p>
<ul>
<li>2D drawing API with the <code>canvas</code> element.</li>
<li>API for playing of video and audio with the <code>video</code> and <code>audio</code> elements.</li>
<li>API that enables offline Web applications.</li>
<li>API that allows a Web application to register itself for certain protocols or media types.</li>
<li>Editing API in combination with a new global <code>contenteditable</code> attribute.</li>
<li>Drag &amp; drop API in combination with a draggable attribute.</li>
<li>API that exposes the history and allows pages to add to it to prevent breaking the back button.</li>
<li>Cross-document messaging with <code>postMessage</code>.</li>
</ul>
<p>Other things that initially was in the specification, but broken out into separate specifications are:</p>
<ul>
<li>API for Geolocation</li>
<li>Web Storage.</li>
<li>Web Workers.</li>
<li><code>querySelectorAll</code>.</li>
</ul>
<p>All in all, a lot of nice new things and technology to help us shape the future of the web. As you can see, some of the above things are in the actual HTML5 specification, some others are broken out into their own specifications. Think of it as with AJAX: when that term and hype hit the world, anything that was even remotely related to JavaScript in any way was thought to be AJAX.</p>
<p>Pretty much goes with HTML5: for most people, that&#8217;s generally the term you need to imply that you are using new state-of-the-art technologies to create a web site; in reality, that might be &#8220;just&#8221; HTML with some new semantic enhancements, or it might be an extravaganza with the new APIs in conjunction with JavaScript.</p>
<p>I think the best document to read to grasp the changes are <a href="http://dev.w3.org/html5/html4-differences/">HTML5 differences from HTML4</a>, which will cover:</p>
<ul>
<li>Open Issues</li>
<li>Backwards Compatible</li>
<li>Development Model</li>
<li>Impact on Web Architecture </li>
<li>Character Encoding</li>
<li>The DOCTYPE</li>
<li>MathML and SVG</li>
<li>New Elements</li>
<li>New Attributes</li>
<li>Changed Elements</li>
<li>Changed attributes</li>
<li>Absent Elements</li>
<li>Absent Attributes </li>
<li>Extensions to HTMLDocument</li>
<li>Extensions to HTMLElement</li>
</ul>
<h2>Backwards compatibility &amp; progressive enhancement</h2>
<p>I think one of the main reasons behind the adoption of HTML5 is that it sets out to be backwards compatible and work with the web browsers there already are in the market, and have been for some time, too. This is done through new elements which, generally, have no particular look or behavior attached to them, but rather offering more semantic richness and then up to you style them via CSS according to your liking.</p>
<p>The other parts are new elements that have been implemented in some web browsers, and not in others, where the progressive enhancement approach that has been preached for a long time comes into play. Meaning, use the new elements which will give a richer experience in some web browsers, whereas it will fall back to default content in others.</p>
<p>Example in question: a cascade of new <code>input</code> element types:</p>
<ul>
<li>tel</li>
<li>search</li>
<li>url</li>
<li>email</li>
<li>datetime</li>
<li>date</li>
<li>month</li>
<li>week</li>
<li>time</li>
<li>datetime-local</li>
<li>number</li>
<li>range</li>
<li>color</li>
</ul>
<p>So far, WebKit and Opera have been the most busy rendering engine to implement some of these, especially in relation with Opera&#8217;s work with WebForms 2.0 support, but in other web browsers it will fall back to a regular <code>input type="text"</code>. That means, for instance, that <code>input type="search"</code> will will give subtle, but better user experience, in Safari and Google Chrome, but will be a fully functional for all others.</p>
<p>The beauty of progressive enhancement. <img src='http://robertnyman.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<h2>HTML5 code introduction</h2>
<p>Let&#8217;s get down to some code introduction and what you need to be aware of when you start coding HTML5.</p>
<h3>Syntax options</h3>
<p>The doctype for HTML5 looks like this:</p>
<pre class="brush: html">&lt;!DOCTYPE html&gt;</pre>
<p>No versioning, no redundant information. All progressive enhancement on a feature-level, as opposed to complete releases that need to be implemented.</p>
<p>And, to be a bit more pragmatic than before, HTML5 will allow both quick-closing of empty tags (such as <code>input</code>, <code>link</code> etc), but you can use those elements just as well without quick-closing them. Quotes for attributes are also optional, and you know what? You can even use upper-case letters for your element names of you will!</p>
<p>All of these examples are valid HTML5:</p>
<pre class="brush: html">&lt;DIV&gt;A monkey&lt;/DIV&gt;
&lt;p id=john&gt;John's P&lt;/p&gt;	

&lt;input type=text&gt;
&lt;input type="text"&gt;
&lt;input type="text" /&gt;</pre>
<p>This might be scary to some people, and I agree with <a href="http://www.zeldman.com/superfriends/guide/">the concerns</a> the <a href="http://www.zeldman.com/superfriends/">HTML5 Super Friends</a> presented, where they want a way to, in a more stricter way, be able to validate the consistency of the code. However, with all different people&#8217;s coding styles and our legacy, allowing this freedom was probably the only pragmatic option to get people along, instead of fighting battles that will never be won.</p>
<p>It should also be noted that it is not needed to specify the <code>type</code> attribute for <code>style</code> or <code>script</code>elements; it is automatically assumed to be CSS respectively JavaScript.</p>
<p>And, a great thing is that you can now wrap entire blocks with an <code>a</code> element to make that entire block a link to somewhere!</p>
<h4>HTML or XHTML</h4>
<p>I should also mention that there are two options to serve HTML5 content: as HTML or XHTML. The somewhat confusingly named XHTML5 differs a bit from HTML5, though:</p>
<ul>
<li>No doctype is needed, just an XML prolog.</li>
<li>It must have a namespace: <code>&lt;html xmlns="http://www.w3.org/1999/xhtml"&gt;</code></li>
<li>It <em>must</em> be served with either of these MIME types: <code>application/xhtml+xml</code> or <code>application/xml</code>.</li>
<li>The <code>noscript</code> element can not be used.</li>
</ul>
<h3>New elements</h3>
<p>Lot&#8217;s of the research behind HTML5 has been how people name their elements, with <code>ID</code>s and <code>classes</code>, and part of the result are new elements named/inspired by those. There are a lot of <a href="http://dev.w3.org/html5/html4-differences/#new-elements">new elements in HTML5</a>, where these are probably the most interesting as you can use them right away in any web browser.</p>
<dl>
<dt>article</dt>
<dd>Mark up parts of the content that is independent, for instance blog post, article etc.</dd>
<dt>aside</dt>
<dd>Used to mark up relevant additional information, like a sidebar.</dd>
<dt>audio</dt>
<dd>Used for natively including audio in a web page.</dd>
<dt>footer</dt>
<dd>The counter-part to header; could be used for any footer section per context.</dd>
<dt>header</dt>
<dd>Used for headers in its context. Note: not just for the header of a page, but also for each header part in section, article and similar.</dd>
<dt>hgroup</dt>
<dd>Used for grouping several headers, for instance, a main heading and a sub-heading.</dd>
<dt>nav</dt>
<dd>Used for marking up main navigation.</dd>
<dt>section</dt>
<dd>Mark up a generic document section. Easily confused with <code>article</code>, and on top of that you nest either of them, in any order, with the other.</dd>
<dt>time</dt>
<dd>Used to mark up a time or date.</dd>
<dt>video</dt>
<dd>Used for natively including video in a web page &#8211; lots of interesting work is coming along here in terms of web browser support.</dd>
</dl>
<h2>HTML5 examples</h2>
<p>Let&#8217;s get down to some actual code and see what an HTML5-coded web page could look like. I have put together a simple <a href="http://robertnyman.com/html5/html5-simple-example.html">HTML5 example with new elements and WAI-ARIA landmark roles</a> as part of <a href="http://robertnyman.com/html5/">my HTML5 demos page</a> (quite sparse now, I know, but I will incrementally add examples to it).</p>
<p>This is the complete source code of that web page:</p>
<pre class="brush: html">&lt;!DOCTYPE html&gt;
&lt;html&gt;
&lt;head&gt;
	&lt;meta charset="utf-8"&gt;
	&lt;title&gt;HTML5 example with new elements and WAI-ARIA landmark roles&lt;/title&gt;
	&lt;link rel="stylesheet" href="css/base.css" type="text/css" media="screen"&gt;
	&lt;!--[if lte IE 8]&gt;
	&lt;script src="js/html5.js"&gt;&lt;/script&gt;
	&lt;![endif]--&gt;
&lt;/head&gt;

&lt;body id="index-page"&gt;

	&lt;div id="container"&gt;
		&lt;header role="banner"&gt;
			&lt;h1&gt;HTML5 example with new elements and WAI-ARIA landmark roles&lt;/h1&gt;
			&lt;p&gt;This page has valid simple HTML5 markup complemented with WAI-ARIA landmark roles for accessibility&lt;/p&gt;
		&lt;/header&gt;

		&lt;nav id="demo-top-nav"&gt;
			&lt;ul&gt;
			&lt;li&gt;&lt;a href="http://robertnyman.com/html5"&gt;HTML5 demos and samples' start page&lt;/a&gt;&lt;/li&gt;
			&lt;li&gt;&lt;a href="http://robertnyman.com/"&gt;Robert's talk&lt;/a&gt;&lt;/li&gt;
			&lt;li&gt;&lt;a href="http://robertnyman.com/javascript/"&gt;JavaScript compatibility tests&lt;/a&gt;&lt;/li&gt;
			&lt;/ul&gt;
		&lt;/nav&gt;

		&lt;div id="demo-main" role="main"&gt;
			&lt;section id="demo-main-content"&gt;
				&lt;header&gt;
					&lt;hgroup&gt;
						&lt;h2&gt;A title&lt;/h2&gt;
						&lt;h3&gt;Subtitle to the above title&lt;/h3&gt;
					&lt;/hgroup&gt;
				&lt;/header&gt;

				&lt;article&gt;
					&lt;p&gt;Some content, created &lt;time datetime="2009-10-14"&gt;October 14th 2009&lt;/time&gt;&lt;/p&gt;
				&lt;/article&gt;
				&lt;article&gt;
					&lt;p&gt;Some more content - i guess you get the drift by now&lt;/p&gt;
				&lt;/article&gt;

				&lt;article&gt;
					&lt;header&gt;
						&lt;h2&gt;The HTML code for this page&lt;/h2&gt;
					&lt;/header&gt;

				&lt;/article&gt;
			&lt;/section&gt;

			&lt;aside id="demo-aside-content" role="complementary"&gt;
				This is just a demo page to see HTML5 markup and WAI-ARIA landmark roles in action in a simple context
			&lt;/aside&gt;
		&lt;/div&gt;

		&lt;footer id="page-footer" role="contentinfo"&gt;
			Created by &lt;a href="http://robertnyman.com/"&gt;Robert Nyman&lt;/a&gt;
		&lt;/footer&gt;
	&lt;/div&gt;

&lt;/body&gt;
&lt;/html&gt;</pre>
<p>As you can see, it looks more or less than every other HTML web page you have ever seen, but with just a few new HTML elements being used and the <code>role</code> attribute with landmark roles for WAI-ARIA to make it more accessible.</p>
<p>If you want a more real-world example, just view the source code of <a href="http://robertnyman.com">robertnyman.com</a>: I have now rewritten it as HTML5! <img src='http://robertnyman.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<h2>Can I use it today?</h2>
<p>I would say yes!</p>
<p>There was some wild speculation about the date 2022, because one of the main men behind the work with HTML5 and the specification was asked in in an interview about HTML5 and its timeline, and the date 2022 was mentioned. Then everyone assumed that HTML5 wouldn&#8217;t be ready until 2022, which is not was addressed, but rather when web browsers would have two releases with completely full support for HTML5 (compare that to CSS 2.1 support etc and the time it has taken, and you will probably get a more sane reaction). Read more about in <a href="http://html5doctor.com/2022-or-when-will-html-5-be-ready/">2022, or when will HTML 5 be ready?</a> if you want to know more.</p>
<p>But let&#8217;s go through the pros and cons, and I will explain why HTML5 is ready to be used.</p>
<h3>Pros</h3>
<dl>
<dt>Major players using it</dt>
<dd>To begin with, a lot of major players have already started implementing it. <a href="http://www.google.com/">Google.com</a> already have the HTML5 doctype (although they should really improve the markup accordingly), the new hyped <a href="http://wave.google.com/">Google Wave</a> is revolving a lot around HTML5 and related APIs (which ironically uses a HTML4 Strict doctype&#8230;) and there  is also a <a href="http://www.youtube.com/html5">YouTube HTML5 demo page</a>.</dd>
<dt>Strict rendering</dt>
<dd>The HTML5 doctype will trigger the strictest rendering in all web browsers. No Almost Standards Mode, no quirks; strict all the way, which is the way we want, and the way it should be.</dd>
<dt>Progressive enhancement</dt>
<dd>You can start today just by changing the doctype. Then gradually move onto exchanging some structure elements, sprinkle it with some WAI-ARIA etc and before you know it, you have a fantastic HTML5 page!</dd>
<dt>Validation available</dt>
<dd>Now even the <a href="http://validator.w3.org/">W3C Validator</a> supports HTML5. Just use the <a href="https://addons.mozilla.org/en-US/firefox/addon/60">Firefox Web Developer Extension</a> to validate your HTML against it. The <a href="http://users.skynet.be/mgueury/mozilla/">HTML Validator extension</a> unfortunately doesn&#8217;t support it yet, but I know there are at least plans to include this &#8211; if you have any ides or input, please help him out.</dd>
<dt>SEO</dt>
<dd>It probably doesn&#8217;t matter much right now, but in the future, I think that web sites that are marked up in a much more rich fashion with new HTML5 elements to give them the multitude they need, will benefit a lot from this.</dd>
</dl>
<h3>Cons</h3>
<p>Ah, right, drawbacks. There are always some, isn&#8217;t there? <img src='http://robertnyman.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<h4>Internet Explorer</h4>
<p>It probably doesn&#8217;t come as a shock to you, but Internet Explorer, all current versions (yes, including IE8 as well) has a little issue: it won&#8217;t apply any CSS to an unknown element (e.g. <code>nav</code>, <code>section</code> etc).</p>
<p>However, <a href="http://w3future.com/weblog/">Sjoerd Visscher</a> found out that with an <a href="http://ejohn.org/blog/html5-shiv/">HTML5 Shiv</a>, sort of an electrical shock for IE to start rendering things at least a little bit more properly, you can address that problem.</p>
<p>The gist of it is that you need to call <code>document.createElement</code> with the name of each new HTML5 element you use in the page. You don&#8217;t need to use it to append or place those element, just call it to make IE aware of them. Remy Sharp has written a little <a href="http://code.google.com/p/html5shiv/source/browse/trunk/html5.js">HTML5 enabling script for Internet Explorer, version 6 to 8</a> which works in all possible cases.</p>
<p>People eager for HTML5 has argued that we will need script dependency for IE to render styling for those elements, otherwise it will render unstyled, but with the content still fully accessible. While I agree in theory, I think it is, at times, an unnecessary requirement for using HTML5.</p>
<p>Another option is the content negotiation approach, where we on the server exchange the new elements for old ones just for Internet Explorer. It&#8217;s simple: just have a regular expression to replace all block elements (<code>header</code>, <code>footer</code>, <code>section</code> etc) with <code>div</code> elements, and the inline ones (<code>time</code>, <code>mark</code> etc) with span elements.</p>
<p>Together with that, always style you elements through their <code>id</code> attribute or <code>class</code> value, and you are good to go! All modern web browsers + screen readers + search engines will get rich HTML5 markup; IE will get plain old HTML.</p>
<p>The drawback of the first option is script dependency to get correct styling for the new HTML5 elements; the drawback with the other approach could be duplicating CSS and JavaScript code. Therefore, consider the options and choose the approach you deem most suitable.</p>
<h4>Specification discussions</h4>
<p>There are still some discussions about some elements in HTML5 and how they should be specified, what existing options/combinations there are that will work in existing user agents (which is a must; it can&#8217;t break things). Overall, though, I&#8217;d say use the new parts everyone agrees about and that will work, and hold on with the bells and whistles until it&#8217;s ready.</p>
<p>The last call for the HTML5 working draft is in October this year. The future is already here. <img src='http://robertnyman.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<h2>Where we are today on the web</h2>
<p>I for one is really happy that this is finally becoming true and usable. Sure, as always there are a number of issues and things to discuss, but overall we really <em>need</em> this as web developers. We need new elements, APIs and options to create dazzling web sites, and we have been waiting so long for something new at all.</p>
<p>I also think this is vital for the climate of the web, to have open standards to code after, and to compete with the ever-growing closed-in and proprietary technologies that try to claim the web as their own.</p>
<h2>Have me do a presentation</h2>
<p>If you found all this to be immensely interesting, and would like to discuss it in real life or hear more, please contact me if you want me to talk at a conference, your company or similar!</p>
<h2>Related reading</h2>
<dl>
<dt><a href="http://www.w3.org/TR/html5/">HTML5 Specification</a></dt>
<dd>The specification for HTML5.</dd>
<dt><a href="http://wiki.whatwg.org/wiki/FAQ">WHATWG FAQ</a></dt>
<dd>A good FAQ about WHATWG and general answers to questions about HTML5 and peoples&#8217; wishes.</dd>
<dt><a href="http://dev.w3.org/html5/html4-differences/">HTML5 differences from HTML4</a></dt>
<dd>Great introduction to the differences between HTML4 and HTML5.</dd>
<dt><a href="http://diveintohtml5.org/">Dive Into HTML5</a></dt>
<dd>Mark Pilgrim has started writing an online book about HTML5. Only a a couple of chapters available right now, but already an interesting read.</dd>
<dt><a href="http://adactio.com/extras/pocketbooks/html5/">HTML5 pocket book</a></dt>
<dd>Jeremy Keith has a handy little map over HTML5 elements and what they are supposed to be used for.</dd>
<dt><a href="http://html5doctor.com/">HTML5 Doctor</a></dt>
<dd>Great posts about general issues and ways to solve them, and also discusses flaws in the specification and alternatives.</dd>
<dt><a href="http://html5doctor.com/designing-a-blog-with-html5/">Designing a blog with html5</a></dt>
<dd>Good introduction to how you would mark up a blog with HTML5.</dd>
<dt><a href="http://www.zeldman.com/superfriends/">HTML5 Super Friends</a></dt>
<dd>Well-known web names exclaim their support for HTML5, but also bring up issues they would like to see resolved.</dd>
</dl>
]]></content:encoded>
			<wfw:commentRss>http://robertnyman.com/2009/10/14/an-introduction-to-html5/feed/</wfw:commentRss>
		<slash:comments>99</slash:comments>
		</item>
		<item>
		<title>Speaking at &#216;redev 2009 Developer Conference, November 4th 2009</title>
		<link>http://robertnyman.com/2009/10/13/speaking-at-%c3%b8redev-2009-developer-conference-november-4th-2009/</link>
		<comments>http://robertnyman.com/2009/10/13/speaking-at-%c3%b8redev-2009-developer-conference-november-4th-2009/#comments</comments>
		<pubDate>Tue, 13 Oct 2009 10:55:56 +0000</pubDate>
		<dc:creator>Robert Nyman</dc:creator>
				<category><![CDATA[Developing]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Speaking]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://robertnyman.com/?p=1484</guid>
		<description><![CDATA[In November, more exactly Wednesday November 4th, I will be speaking at the Øredev 2009 Developer Conference.
My talk
I will do a presentation in the Wednesday Web Development track about JavaScript history, what it is and where it comes from, and then move into such interesting and important areas such as best practices, object-orientation, scope and [...]]]></description>
			<content:encoded><![CDATA[<p>In November, more exactly Wednesday November 4th, I will be speaking at the <a href="http://oredev.org/">Øredev 2009 Developer Conference</a>.</p>
<h2>My talk</h2>
<p>I will do a presentation in the <a href="http://oredev.org/Prod/Oredev/site.nsf/docsbycodename/tracks?OpenDocument&amp;day=3&amp;track=1FB45F966ACB6E94C12575A500497290">Wednesday Web Development track</a> about JavaScript history, what it is and where it comes from, and then move into such interesting and important areas such as best practices, object-orientation, scope and closures. And yes, I know, quite brave to try and pack all that into 45 minutes. Wish me luck! <img src='http://robertnyman.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<h2>Other presenters</h2>
<p>I can say for sure that I&#8217;m glad to be the first speaker on Wednesday, because following me are JavaScript king <a href="http://www.crockford.com/">Douglas Crockford</a> and performance guru <a href="http://stevesouders.com/">Steve Souders</a>! They have been, and are, very influential to me and it&#8217;s truly an honor to be featured on the same bill as them.</p>
<p>Accompanying them are Piotr Walczyszyn and Nikolai Onken, who will talk about Adobe AIR respectively Business Applications with the Dojo Toolkit.</p>
<p>The <a href="http://oredev.org/Prod/Oredev/site.nsf/docsbycodename/tracks?OpenDocument&amp;day=4&amp;track=1FB45F966ACB6E94C12575A500497290">Thursday Web Development track</a> also has some interesting talks with <a href="http://benzilla.galbraiths.org/">Ben Galbraith</a> and <a href="http://almaer.com/blog/">Dion Almaer</a>, <a href="http://remysharp.com/">Remy Sharp</a> and others.</p>
<h2>Getting a ticket</h2>
<p>Øredev 2009 is a massive 5-day event with lots of different tracks &#8211; therefore, there are a number of ticketing options available. Everything from 1-day-, 2-day passes etc to other options. Please check it out and if you find it interesting, I might see you there!</p>
]]></content:encoded>
			<wfw:commentRss>http://robertnyman.com/2009/10/13/speaking-at-%c3%b8redev-2009-developer-conference-november-4th-2009/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Help making Firefox better &#8211; share your thoughts!</title>
		<link>http://robertnyman.com/2009/10/08/help-making-firefox-better-share-your-thoughts/</link>
		<comments>http://robertnyman.com/2009/10/08/help-making-firefox-better-share-your-thoughts/#comments</comments>
		<pubDate>Thu, 08 Oct 2009 12:59:28 +0000</pubDate>
		<dc:creator>Robert Nyman</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Developing]]></category>
		<category><![CDATA[Firefox extensions]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[HTML5/HTML/XHTML]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Web browsers]]></category>
		<category><![CDATA[eumozcamp09]]></category>

		<guid isPermaLink="false">http://robertnyman.com/?p=1478</guid>
		<description><![CDATA[Last weekend, I had the pleasure of being invited by Mozilla to Prague to, amongst other things, discuss the future of Firefox.
Background
As we all know, Mozilla, with Firefox, took back the web from a Microsoft-dominated era with Internet Explorer, made it open again and put emphasis on web standards. The way I see it, we [...]]]></description>
			<content:encoded><![CDATA[<p>Last weekend, I had the pleasure of <a href="http://robertnyman.com/2009/10/07/travel-stories-and-session-recaps-from-mozilla-camp-europe-prague-3-4-october-2009/" title="Travel stories and session recaps from Mozilla Camp Europe Prague, 3-4 October 2009">being invited by Mozilla to Prague</a> to, amongst other things, discuss the future of Firefox.</p>
<h2>Background</h2>
<p>As we all know, Mozilla, with Firefox, took back the web from a Microsoft-dominated era with Internet Explorer, made it open again and put emphasis on web standards. The way I see it, we owe gratitude for the openness and much healthier web browser landscape we see today, and it&#8217;s a very important step towards an open web.</p>
<p>Following that, Apple started developing Safari, based on WebKit, and last year, Google got into the game with Google Chrome (also based on WebKit). Somewhere at the sidelines, marketshare-wise, Opera has been around for quite some time, and has lately put a lot of effort into having people evangelize about HTML5 and future technologies.</p>
<p>With all this innovation, faster release cycles, new features and better overall support is brought to us, and I believe competition thrives from this. For many years, Firefox was known for setting the bar, both with web standards support and new exciting features, but as of lately, other web browsers have started seriously competing for this position, in terms of feature-support and performance.</p>
<h2>Meeting in Prague</h2>
<p>In Prague, I got the opportunity to discuss with Firefox Director, <a href="http://beltzner.ca/mike/">Mike Beltzner</a>, and Firefox developer <a href="http://blog.vlad1.com/">Vladimir Vukicevic</a> about the future of Firefox, what to focus on and what web developers find most important. I also featured in a panel about HTML5 moderated by Vladimir where we discussed the balance of fixing old issues compared to implementing new things.</p>
<p>Before the panel, Vladimir had also expressed what they are looking for:</p>
<blockquote cite="http://blog.mozbox.org/post/2009/09/23/%5BEU-Mozilla-Camp%5D-The-developer-Track-Round-table">
<p>We are interested to hear what you think we could be doing better at, in terms of support for current or emerging web standards. Are there existing features in other browsers that you want to take advantage of that we don&#8217;t support? What about those features is compelling?</p>
<p>What&#8217;s missing from the web platform? Where do you want to see us take it? If you could pick one capability to add to the web, what would have the biggest impact on your web app development?</p>
<p>Of the currently supported standards, what&#8217;s painful? What would you like to see us focus on improving, whether through enhancement or through change?</p>
</blockquote>
<h2>What I think</h2>
<p>The way I see it, Firefox took, and held, the lead for some time, but it is facing a huge challenge right now. The parts I find most important are:</p>
<dl>
<dt>Start-up time</dt>
<dd>In my daily work, with colleagues as well as people I met in the various companies I visit or do work for, a lot of them have chosen Google Chrome as their number one web browser. Anyone I ask about why, the answer always comes out the same: &#8220;Startup time &#8211; Firefox is so slow&#8221;. I know lots of work is being done by Mozilla in this area, but, if possible, I believe it has to be given even more priority. One suggestion is to postpone checking for add-on updates till after the web browser has actually started. Complement performance focus with looking at perceived performance vs. actual performance.</dd>
<dt>Performance, performance, performance</dt>
<dd>I think this can not be stressed enough. Without a doubt, the reason behind a fast adoption of other web browsers, especially Google Chrome, is spelled speed. Page rendering and JavaScript performance have to increase even more. In all fairness, it has to be said, Firefox 3.5 without any add-ons is very fast and almost up to par with the others, but at the same time add-ons is the main competitive advantage and in many cases, the sole reason for people choosing Firefox. Therefore, add-ons implementation has to get faster as well, and I believe <a href="https://jetpack.mozillalabs.com/">Jetpack</a> is an attempt to achieve that &#8211; problem is, native Jetpack in Firefox and people porting their add-ons to it is far away in the future, and other measures need to be taken before that.</dd>
<dt>Separating processes</dt>
<dd>This goes a little hand-in-hand with the performance points made above, but with separate processes for each tab, and especially one for the Firefox UI, it gives a great playing field for accomplishing that. I know this is in the long plan for Firefox as well, but I just want to emphasize how crucial it really is.</dd>
<dt>Release cycles</dt>
<dd>I think it comes down to how often a new version is released, but also, more importantly, how many features that are being tried to be packed into each release. The important choice to make is incremental additions and enhancements, and not believing each version will contain <em>everything</em> that is desired.</dd>
<dt>Acid3</dt>
<dd>Why I think <a href="http://acid3.acidtests.org/">the Acid3 test</a>s matter is not necessarily what support that comes with a 100/00 score, it&#8217;s about the message it sends out to developers. If Mozilla can&#8217;t deliver a score of a 100, while WebKit and Opera can, it conveys the feeling that Mozilla have a harder time and is a little bit behind implementing things.</dd>
<dt>Implementing new features</dt>
<dd>What was good with the Firefox 3.5 release was support for <code>video</code> and <code>audio</code> elements, Location Aware Browsing, general HTML5-related support in the form of CSS enhancements, query selectors etc. Keep this up, but most of the above are just following WebKit examples &#8211; I would like you to be first with the most mind-blowing features! (I think the AwesomeBar is one example of such a great feature)</dd>
</dl>
<p>I want Firefox to be the best web browser out there again, all categories, and I believe these are the vital steps to achieve that. Make me proud! <img src='http://robertnyman.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<h2>What do you think?</h2>
<p>Those are my thoughts. Is Firefox your main web browser, or do you just &#8220;use it for developing&#8221;, as I mostly hear? What would it take to make it your number one web browser again?</p>
<p>Help Mozilla out by contributing your thoughts!</p>
]]></content:encoded>
			<wfw:commentRss>http://robertnyman.com/2009/10/08/help-making-firefox-better-share-your-thoughts/feed/</wfw:commentRss>
		<slash:comments>24</slash:comments>
		</item>
		<item>
		<title>Travel stories and session recaps from Mozilla Camp Europe Prague, 3-4 October 2009</title>
		<link>http://robertnyman.com/2009/10/07/travel-stories-and-session-recaps-from-mozilla-camp-europe-prague-3-4-october-2009/</link>
		<comments>http://robertnyman.com/2009/10/07/travel-stories-and-session-recaps-from-mozilla-camp-europe-prague-3-4-october-2009/#comments</comments>
		<pubDate>Wed, 07 Oct 2009 00:39:44 +0000</pubDate>
		<dc:creator>Robert Nyman</dc:creator>
				<category><![CDATA[Developing]]></category>
		<category><![CDATA[Firefox extensions]]></category>
		<category><![CDATA[HTML5/HTML/XHTML]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Mozilla]]></category>
		<category><![CDATA[Speaking]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Travel]]></category>
		<category><![CDATA[Web browsers]]></category>
		<category><![CDATA[eumozcamp09]]></category>

		<guid isPermaLink="false">http://robertnyman.com/?p=1476</guid>
		<description><![CDATA[Late last night I came home from the fantastic event that was Mozilla Camp Europe Prague, 3-4 October 2009, and I thought I&#8217;d tell you how my Prague visit was, what I thought of the event and my thinking about the sessions.
Getting there
Thursday October 1st I met up with fellow Swedes Patrick Finch and David [...]]]></description>
			<content:encoded><![CDATA[<p>Late last night I came home from the fantastic event that was <a href="https://wiki.mozilla.org/EU_MozCamp_2009">Mozilla Camp Europe Prague, 3-4 October 2009</a>, and I thought I&#8217;d tell you how my Prague visit was, what I thought of the event and my thinking about the sessions.</p>
<h2>Getting there</h2>
<p>Thursday October 1st I met up with fellow Swedes <a href="http://patrickfinch.net/">Patrick Finch</a> and <a href="http://djst.org/blog/">David Tenser</a> (ok, Patrick is actually British, but he lives in Sweden, so it counts as one of us <img src='http://robertnyman.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  ) to get on our flight with Czech Airlines. They were about to participate on Friday on an event for the local Mozilla community in Prague, and I had made sure to have one extra day of touristing in the city before the actual conference.</p>
<p>Once we got to the Andel&#8217;s hotel where we were staying (a very nice hotel, by the way), we got settled in our rooms and then planned to meet up to have dinner. In the lobby, I also met Søren Skrøder, who I got to know at the Mozilla/Maemo event in Copenhagen back in May. As it turned out, though, the main organizer <a href="http://somethin-else.org/">William Quiviger</a> (who now sports some kind of Jef Goldblum-look with his glasses&#8230;) was just a tad stressed in getting things in order and be on top of everything, so we went to the preparation area.</p>
<p><a href="http://www.flickr.com/photos/robertnyman/3985207054/in/set-72157622399256341/"><img src="http://robertnyman.com/images/0910/Mozilla-Camp-Europe-Prague/preparing.jpg" alt="A picture of the preparations" class="align-center"></a></p>
<p>Once there, we met <a href="http://bblop.wordpress.com/">Barbara Hueppe</a>, <a href="http://blog.mozbox.org/">Paul Roguet</a>, Irina Sandu, Svetlana and other people making their best to get everything in order. Being the kind spirits that we are, we added our small efforts to get everything done, so we could go out and eat something: by this time, I was famished!</p>
<p><a href="http://www.flickr.com/photos/robertnyman/3985218172/in/set-72157622399256341/"><img src="http://robertnyman.com/images/0910/Mozilla-Camp-Europe-Prague/looking-for-dinner.jpg" alt="A picture of Mozillians looking for a good place to get dinner" class="align-center"></a></p>
<p>Once we got everyone together and went out to eat, let&#8217;s just say that there were mixed ideas about where to go, and where the actual place was located. We walked around in Prague for almost an hour, till we finally settled on a restaurant. I ordered in Carpaccio, which was awesome! After dinner, I was exhausted, so I got back to the hotel, said hi to <a href="http://blog.mozilla.com/axel/">Axel Hecht</a> and then went to my room to get some sleep and be prepared for a full day of Prague touristing.</p>
<h2>Tourism in Prague</h2>
<p>The next morning, I met a lot of Mozilla people at the breakfast, and I and Søren had decided to make an attempt to tourist together, since he had also dedicated his Friday time for the same purpose. We started by packing our bags, buying some water and then initiate our Prague excursion.</p>
<p><a href="http://www.flickr.com/photos/robertnyman/3985239836/in/set-72157622399256341/"><img src="http://robertnyman.com/images/0910/Mozilla-Camp-Europe-Prague/park-walk.jpg" alt="A picture of the park" class="align-center"></a></p>
<p>We took a glance on the map, had a brief discussion about what we wanted to see and then embarked on our walkabout. One of our first destinations was the the huge main park in Prague, Pet?ín hill. Neither I or Søren expected it to be so hilly, though, and there were serpentine walkways taking us up the steep hill.</p>
<p><a href="http://www.flickr.com/photos/robertnyman/3985246848/in/set-72157622399256341/"><img src="http://robertnyman.com/images/0910/Mozilla-Camp-Europe-Prague/prague-castle-and-st-vitus-cathedral.jpg" alt="A picture of the Prague Castle and St. Vitus Cathedral" class="align-center"></a></p>
<p>After quite some time walking, we eventually reached the Pet?ín Lookout Tower, which gives an amazing view over Prague. There sure are a number of stairs to walk up, but it was definitely worth it! After having spent quite some time in the park by then, Søren expressed that he <em>really</em> wanted to move on and see other sights (these opinions were expressed in tweets like &#8220;<a href="http://twitter.com/robertnyman/statuses/4549596966">Søren says we have had enough of pretty park pictures now</a>. <img src='http://robertnyman.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> &#8221; and &#8220;<a href="http://twitter.com/robertnyman/statuses/4550089406">Søren says: &#8220;Fuck the scenic route&#8221;.&#8221;</a>).</p>
<p><a href="http://www.flickr.com/photos/robertnyman/3984498577/in/set-72157622399256341/"><img src="http://robertnyman.com/images/0910/Mozilla-Camp-Europe-Prague/petrin-lookout-tower.jpg" alt="A picture of the Pet?ín Lookout Tower" class="align-center"></a></p>
<p>Understanding the hints, we started walking downhill again, and got to the Strahovsky monastery &#8211; unfortunately, it was closed when we got there. However, outside we met two people from the Mozilla community in Barcelona, and decided to make company.</p>
<p><a href="http://www.flickr.com/photos/robertnyman/3984507865/in/set-72157622399256341/"><img src="http://robertnyman.com/images/0910/Mozilla-Camp-Europe-Prague/view-of-prague.jpg" alt="A picture of the view of Prague from the Pet?ín Lookout Tower" class="align-center"></a></p>
<p>That was then followed by a visit to Loreta Holy Shrine and then lunch at a local restaurant. Baffled by the constantly low prices: about €1.50 for a large beer and no lunch or dinner costed more than €20 (unless you wanted something <em>really</em> special). Post-lunch, it was finally time to reach the Prague Castle!</p>
<p><a href="http://www.flickr.com/photos/robertnyman/3984547573/in/set-72157622399256341/"><img src="http://robertnyman.com/images/0910/Mozilla-Camp-Europe-Prague/prague-castle.jpg" alt="A picture of the Prague Castle" class="align-center"></a></p>
<p>Within the castle area is also the gargantuan St. Vitus Cathedral, which we spent a fair amount of time in. After that visit, we went into the urinal, and I got the idea to take a picture of a toilet that was sealed off in an interesting way. Suffice to say, the reaction of the other people in the urinal, when they heard the camera flash, was not comforting. I learned something that day about taking pictures in urinals&#8230;</p>
<p><a href="http://www.flickr.com/photos/robertnyman/3985320482/in/set-72157622399256341/"><img src="http://robertnyman.com/images/0910/Mozilla-Camp-Europe-Prague/st-vitus-cathedral.jpg" alt="A picture of the St Vitus Cathedral" class="align-center"></a></p>
<p>By this time, it started to get chilly outside and the wind started blowing, so we briskly moved forward out of the castle area, by wine growing on the hill side, and down towards the Vltava/Moldau river and across to the Old Town area of Prague (still a little bit scared of the guy who came walking on the sidewalk with a chainsaw &#8211; apparently Czech people defend their own hood in a different way&#8230;).</p>
<p><a href="http://www.flickr.com/photos/robertnyman/3985347706/in/set-72157622399256341/"><img src="http://robertnyman.com/images/0910/Mozilla-Camp-Europe-Prague/st-vitus-cathedral-backside.jpg" alt="A picture of the St Vitus Cathedral from behind" class="align-center"></a></p>
<p><a href="http://www.flickr.com/photos/robertnyman/3984599849/in/set-72157622399256341/"><img src="http://robertnyman.com/images/0910/Mozilla-Camp-Europe-Prague/charles-bridge.jpg" alt="A picture of Charles Bridge" class="align-center"></a></p>
<p>Once in the Old Town we had a look at the extraordinary <a href="http://en.wikipedia.org/wiki/Prague_Astronomical_Clock">Astronomical Clock</a> and had the luck to see it at the full hour with all of its display. On our way, there&#8217;s was an offer to see a non-verbal performance of Beatles&#8217; Yellow Submarine &#8211; Great, I&#8217;ve been looking for that all my life&#8230;</p>
<p><a href="http://www.flickr.com/photos/robertnyman/3985364726/in/set-72157622399256341/"><img src="http://robertnyman.com/images/0910/Mozilla-Camp-Europe-Prague/astronomical-clock.jpg" alt="A picture of the Astronomical Clock" class="align-center"></a></p>
<p><a href="http://www.flickr.com/photos/robertnyman/3984610859/in/set-72157622399256341/"><img src="http://robertnyman.com/images/0910/Mozilla-Camp-Europe-Prague/non-verbal-performance-yellow-submarine.jpg" alt="A picture of the the billboard for the non-verbal performance of Beatles' Yellow Submarine" class="align-center"></a></p>
<p>Next stop was the <a href="http://www.muzeumkomunismu.cz/">Museum of Communism</a>, depicting the history of communism in the world, and in Prague in particular. It is terrible, but also needed, to be reminded how evil man can be, and that we really need to be more respectful and understanding to each other.</p>
<p><a href="http://www.flickr.com/photos/robertnyman/3984609663/in/set-72157622399256341/"><img src="http://robertnyman.com/images/0910/Mozilla-Camp-Europe-Prague/museum-of-communism-poster.jpg" alt="A picture of the poster for the Museum of Communism" class="align-center"></a></p>
<p>When the museum visit had come to an end, our Barcelonian friends needed to go back to the hotel again. Søren and I, however, just knew he had more to see in the city. We walked to the Charles Bridge, where the Swedes fought the Czechs during the Thirty Years&#8217; War, and also got the opportunity to climb up in the tower on the Old Town side.</p>
<p><a href="http://www.flickr.com/photos/robertnyman/3985372842/in/set-72157622399256341/"><img src="http://robertnyman.com/images/0910/Mozilla-Camp-Europe-Prague/charles-bridge-tower.jpg" alt="A picture of the Charles Bridge Tower" class="align-center"></a></p>
<p>Last task of the day was crossing the bridge, admiring its gorgeous statues and then finding a tram station to get back to the hotel again. At the hotel, some Danish countrymen of Søren had arrived, so I, Søren and Finn Sørensen went out and had a nice dinner together (Carpaccio <em>again</em> for me, two nights in a row &#8211; oh, how I love it!). That was later followed by a welcome beer at the hotel with all the newly arrived conference attendants.</p>
<p>By this time, my room mate from Sweden, Stefan H, had also arrived, and in a Swedish humble manner we almost constantly apologized to each other for how much room we took in our hotel room, what a mess we had created etc.</p>
<p>My tourist day in Prague was fantastic, and I&#8217;m truly happy I took the time to do it!</p>
<h2>The conference</h2>
<p>The Mozilla conference had two full day of presentations, and I will list the ones I attended. The talks were divided into four tracks:</p>
<ul>
<li>Development</li>
<li>Internationalisation</li>
<li>Advocacy</li>
<li>QA</li>
</ul>
<p>(<a href="https://wiki.mozilla.org/EU_MozCamp_2009/Schedule">entire schedule</a>)</p>
<h3>Saturday presentations</h3>
<dl>
<dt>Welcome address by Tristan Nitot</dt>
<dd>Tristan is the President of Mozilla Europe, and he welcomed us all to the conference and went a little into what it would contain.</dd>
<dt>Keynote: Glyn Moody</dt>
<dd><a href="http://en.wikipedia.org/wiki/Glyn_Moody">Glyn Moody</a> is a technical writer who spoke about the importance of open software, how Mozilla of today is derived of the old Netscape roots, and how amazing it is that it actually happened. I wonder what the web would have looked like without Mozilla. Also, Moody is a great <em>name</em>, and I sure know it would fit me. <img src='http://robertnyman.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </dd>
<dt>Keynote: Mark Surman</dt>
<dd>Mark is the Executive Director of the Mozilla Foundation, and his talk was about spreading the word, building community, and, in essence, making sure we continue to work for an open web. He also raised the extremely important question: &#8220;Will we have an open web 100 years?&#8221;, and how we can make sure that happens. <a href="https://wiki.mozilla.org/Drumbeat">Mozilla Drumbeat</a> is a way to help people spreading the word.</dd>
<dt>Panel discussion with Tristan, Glyn and Mark</dt>
<dd>After the keynotes, it was time for a discussing about the open web, integrity and how can protect people on the Internet. I think a very important question was raised by someone in the audience about what information and data we can claim that we own; is a great blog comment of mine, in someone else&#8217;s blog something I can claim ownership to, what about pictures others take of me etc. Unfortunately, this was just dismissed with jokes about being seen drunk on Facebook, which really missed the big question. Sad.</dd>
<dt>Firefox Next &#8211; <a href="http://beltzner.ca/mike/">Mike Beltzner</a></dt>
<dd>Mike is the Director of Firefox, and he gave a very interesting talk about the future of Firefox, what they see as the true competitors (not other web browsers, but rather proprietary technologies such as Flash, Silverlight and Gears), how it needs to have shorter release cycles and what they need to focus on in the future. Later during the conference, I got to have a chat with him, and was happy to hear about the work on improved start-up time, how performance is perceived and other things.</dd>
<dt>Firefox in Europe</dt>
<dd>Mike Beltzner led an open discussion about the future of Firefox in conjunction with help, support and input from the European community. Good suggestions and I hope they got something to think about for future plans.</dd>
<dt>Firebug</dt>
<dd><a href="http://www.softwareishard.com/blog/index.php">Jan Odvarko</a> of the Firebug team walked us through new features in the upcoming Firebug 1.5. Being a Firebug extension developer with <a href="https://addons.mozilla.org/en-US/firefox/addon/11905">Firefinder</a> and <a href="https://addons.mozilla.org/en-US/firefox/addon/9641">Inline Code Finder</a>, I would had hoped for more information about extending Firebug, but I think the right thing was to talk about general features. After his talk, it was great to finally meet Jan in person, talk a little and share the challengin experience of, as an extension developer, trying to understand Firebug&#8230; <img src='http://robertnyman.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </dd>
<dt><a href="http://labs.mozilla.com/prism/">Prism</a></dr></p>
<dd>Having developed a few Adobe AIR applications, for some time now, I have been hoping that Prism would take off and offer a good open alternative. As I see it, Prism is decent, but at the same time I get the feeling that the development pace of it isn&#8217;t that fast, and that they would have to put more effort into it if they want to compete with Adobe AIR.</dd>
<dt><a href="http://labs.mozilla.com/weave/">Weave</a></dt>
<dd><a href="http://www.kix.in/blog/">Anant Narayanan</a> did a very interesting and inspiring talk about Weave, where they are today and possible future plans. We spoke a little after the presentation about Opera Unite, possible interest in offering similar things to users and such.</dd>
<dt><a href="https://jetpack.mozillalabs.com/">Jetpack</a></dt>
<dd><a href="http://www.azarask.in/blog/">Aza Raskin</a> was supposed to give this talk, but his plane was late (or something), so Anant and someone else (missed the name) had to step up and hold an open discussion. What is clear is that Jetpack is most likely the future extension model for Firefox, phasing the old one out (at least for most use cases), but it will take some time and there are a number of things to work out before we reach that point.</dd>
</dl>
<p>My friend <a href="http://remysharp.com/">Remy Sharp</a> was also to hold a presentation about HTML5 as well, but unfortunately couldn&#8217;t make it to Prague.</p>
<h3>Saturday evening boat ride on the Vltava/Moldau river</h3>
<p>Mozilla had arranged for all of the conference attendants to first ride specially booked historical trams down to the river, and then board a boat to get a dinner on board accompanied by a guide. However, with about 180 attendants, Czech beer and people spread out, the guiding didn&#8217;t really take off.</p>
<p><a href="http://www.flickr.com/photos/robertnyman/3985392464/in/set-72157622399256341/"><img src="http://robertnyman.com/images/0910/Mozilla-Camp-Europe-Prague/finn-and-soren-on-the-boat.jpg" alt="A picture of Finn and Søren on the river boat" class="align-center"></a></p>
<p>It was also possible to get up on the top of the boat to get a beautiful view of Prague at night. There I first got to have a good talk with <a href="http://whacked.net/">Steve Lau</a> of <a href="http://www.getsongbird.com/">Songbird</a> and then <a href="http://learningtheworld.eu/">Martin Kliehm</a>, who fights a lot for accessibility.</p>
<p><a href="http://www.flickr.com/photos/robertnyman/3984703461/in/set-72157622399256341/"><img src="http://robertnyman.com/images/0910/Mozilla-Camp-Europe-Prague/view-from-river-boat.jpg" alt="A picture of the view from the river boat" class="align-center"></a></p>
<p>I also found it amusing to to see Patrick Finch, a.k.a. Remington Steele (or James Bond if you will), giving his special agent stance on the boat, and telling a story about an amazing feat of his.</p>
<p><a href="http://www.flickr.com/photos/robertnyman/3985413272/in/set-72157622399256341/"><img src="http://robertnyman.com/images/0910/Mozilla-Camp-Europe-Prague/patrick-finch-on-river-boat.jpg" alt="A picture of Patrick Finch on the river boat" class="align-center"></a></p>
<p>After a few hours on the river, we got back to the pier again, and got on a bus back to the hotel, and I got to have an interesting talk with <a href="http://www.mackers.com/">David McNamara</a> about many varying things. Once back at the hotel, a few of us decided we needed just one more beer, and went out on the town &#8211; we were me, <a href="http://brian.kingsonline.net/talk/">Brian King</a>, David McNamara and Matjaz Horvat. Once at the bar, we also met Kamil Lach, who I got to know in Copenhagen in May, and someone else, who I just can&#8217;t remember (I was jus tired; do <em>not</em> blame the beer intake, ok?! <img src='http://robertnyman.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  ).</p>
<p>Brian gave me a good talk which really inspired me on the way back to the hotel &#8211; thanks, Bri! <img src='http://robertnyman.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<h3>Sunday presentations</h3>
<dl>
<dt>Keynote: Seth Bindernagel</dt>
<dd>Sunday morning started with a talk by Seth about the importance of localization, and how it has been, and is, such an important part of helping to bring Firefox to everyone in a lot of countries.</dd>
<dt>HTML5 Roundtable</dt>
<dd>Both stepping up for an absent Remy, and out of my own interest, I took one of the places on the HTML5 roundtable, amongst a total of 9 developers, which was during two hours before lunch. The idea was to discuss about HTML5, feedback and concerns and also let the audience ask their questions about it. I think I did ok on it, but overall, my feeling is that we could have been a bit more structured with the set-up and topics, and nine people on the panel were probably a few too many.</dd>
<dd>Interestingly enough, one of the other people on the panel was <a href="http://hanblog.info/blog/">Anthony Ricaud</a>, who is a WebKit Developer and works on the Web Inspector. Kudos to him for taking part of a Mozilla event, and it was good talking about Web Inspector as well.</dd>
<dd>Above-mentioned Martin Kliehm was part of the panel, and did a good job emphasizing the need for accessibility in HTML5, and I was also joined by <a href="http://fhtr.blogspot.com/">Ilmari Heikkinen</a>, who showed <a href="http://cs.helsinki.fi/u/ilmarihe/canvas_animation_demo/mozcampeu09.html">a nice canvas animation demo</a> and is also behind <a href="http://code.google.com/p/cakejs/">CAKE</a> (take a lot at the amazing <a href="http://glimr.rubyforge.org/cake/missile_fleet.html">Missile Fleet</a>, for instance).</dd>
<dt>Stratified JavaScript</dt>
<dd>Showed some interesting examples with concurrency in JavaScript.</dd>
<dt>Songbird</dt>
<dd>Steve Lau presented <a href="http://www.getsongbird.com/">Songbird</a>, which is an open source music player based on XULRunner. Quite interesting, and I liked Steve&#8217;s cool, calm presentation approach. He demoed the extension capapbilities, skinning etc and I for one sure hope it becomes popular.</dd>
<dt>Mozilla Labs: The Future of You-centric Browsing</dt>
<dd>Aza Raskin, who had arrived Saturday evening, gave a talk about user experience and setting the end user, i.e. you, in focus and control. Interesting presentation, but personally I felt i would have wanted some more hands-on examples. We had a talk after, and I asked a number of questions about user interface, what he was working with compared to the current work being done on Firefox, his opinions on certain things etc. Aza is a busy man, so if you get the chance to corner him, make sure to ask everything that&#8217;s on your mind. <img src='http://robertnyman.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </dd>
</dl>
<p>That was all I saw during the Sunday, and it was followed by trying to make sure to get the time to say good-bye to everyone before it was time to go to the airport.</p>
<h2>Going home</h2>
<p>Two small buses were chartered to get us to the airport, work courtesy of <a href="http://www.brinkhurstdesign.co.uk/">FuzzyFox</a> who probably had enough stress for a year organizing it all. Once at the airport, I sat down and had a talk with Anthony Ricaud, before it was due time to bug (even more) gifts to my loved ones and then board the flight home.</p>
<p>Thank you Mozilla and everyone attending for a great event, and I hope to see you all again soon!</p>
<p>All my pictures are available <a href="http://www.flickr.com/photos/robertnyman/sets/72157622399256341/">on Flickr</a> and <a href="http://pics.robertnyman.com/2009/October/Visit-to-Prague-and-Mozilla/9866463_gvGNB#671448976_bz2wi">on SmugMug</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://robertnyman.com/2009/10/07/travel-stories-and-session-recaps-from-mozilla-camp-europe-prague-3-4-october-2009/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>One million downloads for getElementsByClassName</title>
		<link>http://robertnyman.com/2009/09/22/one-million-downloads-for-getelementsbyclassname/</link>
		<comments>http://robertnyman.com/2009/09/22/one-million-downloads-for-getelementsbyclassname/#comments</comments>
		<pubDate>Tue, 22 Sep 2009 08:49:43 +0000</pubDate>
		<dc:creator>Robert Nyman</dc:creator>
				<category><![CDATA[Developing]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://robertnyman.com/?p=1465</guid>
		<description><![CDATA[When a developer writes code, it is usually for the challenge, the obstacles to beat and the rush of solving a problem. But also, when your code becomes popular is quite a kick as well.
I hadn&#8217;t checked the statistics for some time for my getElementsByClassName code, so you can just guess my surprise when I [...]]]></description>
			<content:encoded><![CDATA[<p>When a developer writes code, it is usually for the challenge, the obstacles to beat and the rush of solving a problem. But also, when your code becomes popular is quite a kick as well.</p>
<p>I hadn&#8217;t checked the statistics for some time for my <a href="http://robertnyman.com/2008/05/27/the-ultimate-getelementsbyclassname-anno-2008/">getElementsByClassName</a> code, so you can just guess my surprise when I saw it has passed one million downloads! <img src='http://robertnyman.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>At the time of writing, <a href="http://code.google.com/p/getelementsbyclassname/downloads/list">the code has been downloaded 1 029 433 times</a>! Last time I looked, sometime during spring, I vaguely remember it was somewhere between 100 000 and 200 000. It might have gained some recent popularity, but still, that&#8217;s quite a push. With one million now, it kind of leads me to suspect it has been hot-linked, but as far as I know, hotlinking to the provided download at Google code (which holds the download statistics) isn&#8217;t possible, since it should prompt you with a dialog. And it&#8217;s Google &#8211; I have to be able to trust them, right? <img src='http://robertnyman.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>So, until I learn more or something else is proven, <a href="http://robertnyman.com/2008/05/27/the-ultimate-getelementsbyclassname-anno-2008/">getElementsByClassName</a> has been downloaded a million times. Yay! <img src='http://robertnyman.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://robertnyman.com/2009/09/22/one-million-downloads-for-getelementsbyclassname/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Firefinder 1.0 released &#8211; code collaboration with the FriendlyFire feature, better integration with Firebug and more</title>
		<link>http://robertnyman.com/2009/09/07/firefinder-1-0-released-code-collaboration-with-the-friendlyfire-feature-better-integration-with-firebug-and-more/</link>
		<comments>http://robertnyman.com/2009/09/07/firefinder-1-0-released-code-collaboration-with-the-friendlyfire-feature-better-integration-with-firebug-and-more/#comments</comments>
		<pubDate>Mon, 07 Sep 2009 08:32:33 +0000</pubDate>
		<dc:creator>Robert Nyman</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Developing]]></category>
		<category><![CDATA[Firefox extensions]]></category>
		<category><![CDATA[HTML5/HTML/XHTML]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Mozilla]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Web browsers]]></category>

		<guid isPermaLink="false">http://robertnyman.com/?p=1443</guid>
		<description><![CDATA[When I released Firefinder back in May, I had some ideas with what more I wanted to do with it. Now I can happily say that I have implemented those ideas!
New features and changes
I have implemented both a number of new features and gotten a better integration with Firebug with this release, and they are:
Code [...]]]></description>
			<content:encoded><![CDATA[<p>When I released <a href="http://robertnyman.com/firefinder/">Firefinder</a> back in May, I had some ideas with what more I wanted to do with it. Now I can happily say that I have implemented those ideas!</p>
<h2>New features and changes</h2>
<p>I have implemented both a number of new features and gotten a better integration with Firebug with this release, and they are:</p>
<h3>Code collaboration with the FriendlyFire feature</h3>
<p>The number one thing I wanted to incorporate in this version was an idea which came from <a href="http://remysharp.com/">Remy Sharp</a>, where he knew I have developed a few Firefox extensions. He brought up the idea of being able to share code from within Firefox with other web developers, and I immediately jumped at the idea.</p>
<p>The new code collaboration feature is entitled FriendlyFire, and is quite easy to use. You use Firefinder and any of its various ways to select an element in the current web page. In the results listing, just click on the FriendlyFire link to send that element&#8217;s code to a pastebin service, <a href="http://jsbin.com/">JS Bin</a> (graciously hosted and run by Remy), to share your code online. You will get a URL back to share with colleagues and friends &#8211; much more efficient than using e-mail or instant messaging.</p>
<p>JS Bin offers code highlighting, an additional tab for JavaScript (where you can also include any of the most popular JavaScript libraries), and an output tab where you will see how that code will behave in practice.</p>
<p>
	<a href="https://addons.mozilla.org/en-US/firefox/addon/11905/"><img src="http://robertnyman.com/images/firefinder/firefinder-friendlyfire-workflow.png" alt="A picture of the FriendlyFire workflow" class="align-center"></a>
</p>
<p>&nbsp;</p>
<p>
	<a href="https://addons.mozilla.org/en-US/firefox/addon/11905/"><img src="http://robertnyman.com/images/firefinder/firefinder-friendlyfire-preview.png" alt="A picture of Firefinder when the FriendlyFire feature has been invoked" class="align-center"></a>
</p>
<h3>Support for auto-selecting element when hovering the page</h3>
<p>In style with the feature for selecting HTML elements with Firebug, you can now turn on the Auto-select feature in Firefinder to make it automatically select the one you&#8217;re currently hovering over with your mouse. Click desired element to lock it to that selection.</p>
<h3>Support for context menu click</h3>
<p>For those who prefer the context menu, just right-click (or left, if you swing that way) an element and choose &#8220;Firefind Element&#8221; to send it to the Firefinder panel.</p>
<h3>Inspect link integrated with Firebug&#8217;s HTML panel</h3>
<p>In your result listing in Firefinder, you can now click an element&#8217;s Inspect link to immediately be taken to the same element in the HTML tab in Firebug &#8211; in case you want to check its CSS code or do some minor editing. Also, remember that you can actually edit the code for an element in the HTML tab, then go back to Firefinder and share its code through the FriendlyFire feature, and the updated code will then be shared!</p>
<p>
	<a href="https://addons.mozilla.org/en-US/firefox/addon/11905/"><img src="http://robertnyman.com/images/firefinder/firefinder-preview.png" alt="A picture of Firefinder for Firebug with its result list" class="align-center"></a>
</p>
<h3>Better performance</h3>
<p>The CSS selector mechanism in Firefinder now exclusively uses the <code>querySelectorAll</code> support in Firefox 3.5. This means that your CSS selectors will get the best performance possible, and there will be no pass-through of any JavaScript library. Possible downside is that Firefinder now requires Firefox 3.5 to use, but my take was that everyone (developer, that is) already has it anyway.</p>
<h3>Better integration with Firebug</h3>
<p>In general, the showing and hiding of the Firefinder panel works better now, and all buttons and actions are behaving just like in Firebug. Remember that you can show/skip to the Firefinder panel, even if Firebug is hidden, by choosing <code>Tools &gt; Show Firefinder for Firebug</code> or via its keyboard shortcut <kbd>Command</kbd> + <kbd>Shift</kbd> + <kbd>V</kbd> on Mac OS X and <kbd>Ctrl</kbd> + <kbd>Shift</kbd> + <kbd>V</kbd> in Windows and Linux.</p>
<h3>Just one button to filter, which automatically detects if it&#8217;s a CSS filter or an XPath expression</h3>
<p>Previously, there was one button for using CSS selectors and another for XPath. Now Firefinder automatically detects what sort of expression it is, and takes it from there &#8211; just press <kbd>Enter</kbd> in the field or click the &#8220;Filter&#8221; button to find elements.</p>
<h2>Demo video</h2>
<p>
	Sometimes, it&#8217;s difficult to describe everything in words, so I have also put together a demo video of using Firefinder, and with the new FriendlyFire feature:
</p>
<p class="text-align-center">
	<object type="application/x-shockwave-flash" data="http://www.youtube.com/v/MTRptjiAZv8&amp;hl=en&amp;fs=1&amp;" height="344" width="425"><param value="http://www.youtube.com/v/MTRptjiAZv8&amp;hl=en&amp;fs=1&amp;" name="movie"><param name="allowFullScreen" value="true"><param name="allowscriptaccess" value="always"><p>There should be a video demo of using Firefinder and the FriendlyFire feature here. You need Flash to see it.</p>
<p></object>
</p>
<h2>Contributing</h2>
<p>After 4 and a half years of blogging and code sharing, and my partaking of open-source projects, you know my main drive isn&#8217;t about getting paid for my code &#8211; it&#8217;s about sharing code and features with the world and other developers.</p>
<p>With that said, I do want to mention the possibility that <em>if</em>, and I really mean if, you want to contribute or express gratitude, I now accept <a href="https://addons.mozilla.org/en-US/firefox/addon/11905">contributions on the Firefinder add-on page</a>, where the suggested donation is $1.</p>
<p>If you want to contribute, thank you very much &#8211; if not, it is naturally completely cool as well.</p>
<h2>Download Firefinder</h2>
<p>Don&#8217;t hesitate now, go <a href="https://addons.mozilla.org/en-US/firefox/addon/11905">download Firefinder</a> right now! I hope it rocks your world as much as it does mine! <img src='http://robertnyman.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://robertnyman.com/2009/09/07/firefinder-1-0-released-code-collaboration-with-the-friendlyfire-feature-better-integration-with-firebug-and-more/feed/</wfw:commentRss>
		<slash:comments>21</slash:comments>
		</item>
		<item>
		<title>Firefox 3.5 is released &#8211; information about having multiple Firefox versions and web developer extension compatibility</title>
		<link>http://robertnyman.com/2009/07/01/firefox-35-is-released-information-about-having-multiple-firefox-versions-and-web-developer-extension-compatibility/</link>
		<comments>http://robertnyman.com/2009/07/01/firefox-35-is-released-information-about-having-multiple-firefox-versions-and-web-developer-extension-compatibility/#comments</comments>
		<pubDate>Wed, 01 Jul 2009 20:37:35 +0000</pubDate>
		<dc:creator>Robert Nyman</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Developing]]></category>
		<category><![CDATA[Firefox extensions]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Mozilla]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Web browsers]]></category>

		<guid isPermaLink="false">http://robertnyman.com/?p=1390</guid>
		<description><![CDATA[Firefox 3.5 was released yesterday, and it has already reached 5 and a half million of downloads (at the time of writing). Therefore, I thought I&#8217;d answer some common questions, especially from a web developer perspective about the new version and which web developer extensions which will work with it.
I have to say that I [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.mozilla.com/en-US/firefox/upgrade.html?from=getfirefox">Firefox 3.5</a> was released yesterday, and it has already reached <a href="http://downloadstats.mozilla.com/">5 and a half million of downloads (at the time of writing)</a>. Therefore, I thought I&#8217;d answer some common questions, especially from a web developer perspective about the new version and which web developer extensions which will work with it.</p>
<p>I have to say that I think Firefox 3.5 is an impressive release, it has gotten even better in so many areas! One very important thing is speed: <a href="http://www.stevesouders.com/blog/2009/06/30/firefox-35-at-the-top/">according to performance God Steve Souders, Firefox 3.5 is the best-performing web browser</a>, followed by Chrome 2, Safari 4, IE 8 and Opera 10.</p>
<h2>Don&#8217;t throw Firefox 3.0 out &#8211; run multiple versions of Firefox side-by-side instead</h2>
<p>Even though you&#8217;re probably super-eager to replace all old versions of Firefox on your machine, please know that it is completely possible (and very simple) to have multiple installations of Firefox side-by-side; and, have them all running at the same time too, if you want to!</p>
<p>You can download any number of versions of Firefox, and then just install it into different catalogs, or just give each installation a unique name (preferably version number). This is very useful, especially if you are a web developer, to quickly test something in a number of versions of Firefox.</p>
<h3>Creating different Firefox profiles</h3>
<p>Then, naturally, you might want to have different settings, extensions etc installed depending on what version of Firefox you are running, and the easy way to control that is through different profiles in Firefox. Basically, a profile is where Firefox keeps all your settings, preferences, installed extensions etc.</p>
<p>The way to create a Firefox profile are in the Profile Manager. This is how to open Profile manager on different platforms:</p>
<h4>Profile manager in Windows</h4>
<p>Open the Windows Start menu and choose the Run option (on Vista, it might not be there &#8211; just press <kbd>Windows key</kbd> + <kbd>R</kbd> in that case). In the run dialog, write <code>firefox -P</code> and press <kbd>enter</kbd>/click OK. Choose Create Profile in the dialog and follow the steps.</p>
<h4>Profile manager in Mac</h4>
<p>Open the Terminal (located under /Applications/Utilities) and type in:<code>/Applications/Firefox.app/Contents/MacOS/firefox -profilemanager</code>. Choose Create Profile in the dialog and follow the steps.</p>
<h4>Profile manager in Linux</h4>
<p>Open a terminal, use <code><span class="lowercase">cd</span></code> to navigate to your Firefox directory and then enter <code>./firefox -profilemanager</code>. Choose Create Profile in the dialog and follow the steps.</p>
<p>Remember to uncheck the Don&#8217;t ask at startup checkbox &#8211; that way, for any instance of Firefox you start, you can choose what profile you want to use.</p>
<p><img src="http://robertnyman.com/images/0907/firefox-profile-manager.png" alt="A picture of the Profile Manager for Firefox" class="align-center"></p>
<h2>New offerings with Firefox 3.5 for web developers</h2>
<p>All new features are listed in <a href="https://developer.mozilla.org/En/Firefox_3.5_for_developers">Firefox 3.5 for developers</a>, but let&#8217;s give a brief list of what I find exciting:</p>
<h3>HTML 5</h3>
<ul>
<li>Support for the <code>audio</code> and <code>video</code> elements.</li>
<li>Full support for the offline specification</li>
<li>Native drag and drop support</li>
</ul>
<h3>CSS features</h3>
<ul>
<li>Supporting <code>@font-face</code> rules for downloadable fonts.</li>
<li>Support for CSS media queries, meaning support for media-dependent style sheets.</li>
<li>The <code>:before</code> and <code>:after</code> pseudo-classes now fully support any CSS 2.1 variation.</li>
<li>Supporting the <code>ch</code> unit.</li>
<li><code>-moz-opacity</code> has been fully removed, and replaced by the standardized <code>opacity</code> property.</li>
<li>Support for the <code>-text-shadow</code> property.</li>
<li>Support for the <code>word-wrap</code> property.</li>
<li>The <code>white-space</code> property now also supports the <code>pre-line</code> value.</li>
<li>CSS transforms, via the <code>-moz-transform</code> and the <code>-moz-transform-origin</code> properties.</li>
<li>Support for <code>:nth-child</code>.</li>
<li>Support for <code>:nth-last-child</code>.</li>
<li>Support for <code>:nth-of-type</code>.</li>
<li>Support for <code>:nth-last-of-type</code>.</li>
<li>Support for <code>:first-of-type</code>.</li>
<li>Support for <code>:last-of-type</code>.</li>
<li>Support for <code> <img src='http://robertnyman.com/wp-includes/images/smilies/icon_surprised.gif' alt=':o' class='wp-smiley' /> nly-of-type</code>.</li>
<li>Support for <code>-moz-box-shadow</code>.</li>
<li>Support for <code>-moz-border-image</code>.</li>
<li>Support for <code>-moz-column-rule</code>.</li>
<li>Support for <code>-moz-column-rule-width</code>.</li>
<li>Support for <code>-moz-column-rule-style</code>.</li>
<li>Support for <code>-moz-column-rule-color</code>.</li>
<li>Support for <code>-moz-nativehyperlinktext</code>.</li>
<li>Support for <code>-moz-window-shadow</code>.</li>
<li>Support for <code>-moz-system-metric</code>.</li>
<li>Support for <code>-moz-appearance</code>.</li>
</ul>
<h3>DOM features</h3>
<p>Support for these:</p>
<ul>
<li>localStorage</li>
<li>Using web workers</li>
<li>Geolocation API</li>
<li>querySelector and querySelectorAll</li>
<li>Mouse gesture events</li>
<li>The NodeIterator object</li>
<li>The MozAfterPaint event</li>
<li>The MozMousePixelScroll event</li>
</ul>
<h3>JavaScript features</h3>
<p>One of the most exciting features are that of native support for JSON, but there have also been some other improvements with the implementation of JavaScript 1.8.1 (<a href="http://robertnyman.com/javascript/">also, don&#8217;t miss my JavaScript test suite for features and web browser support</a>).</p>
<h3>Networking</h3>
<ul>
<li>Cross-site access controls for HTTP</li>
<li>Progress events for XMLHttpRequest</li>
<li>Improved Synchronous XMLHttpRequest support</li>
<li>Controlling DNS prefetching</li>
</ul>
<h3>Canvas features</h3>
<ul>
<li>HTML 5 text API for canvas elements</li>
<li>Shadow effects in a canvas</li>
<li>createImageData()</li>
<li>moz-opaque attribute</li>
</ul>
<h2>Are web developer extensions ready?</h2>
<p>Naturally, the most common thing that hold web developers back from upgrading is if their favorite tool will work with the new version. If we look aside the possibility of running multiple versions of Firefox at the same time, and instead at the most popular Firefox web developer extensions and Firefox 3.5 compatibility, things are looking good!</p>
<dl>
<dt><a href="https://addons.mozilla.org/en-US/firefox/addon/1843">Firebug</a></dt>
<dd>The best web developer tool in the world does work with Firefox 3.5! The latest version, 1.4, is in a beta state, and as a user and developer of extensions to Firebug, I think it&#8217;s not perfect just yet, but it does work well overall.</dd>
<dt><a href="https://addons.mozilla.org/en-US/firefox/addon/60">Web Developer</a></dt>
<dd>The Web Developer toolbar works just fine with the new Fox!</dd>
<dt><a href="https://addons.mozilla.org/en-US/firefox/addon/249">HTML Validator</a></dt>
<dd>Besides Firebug, this is one of the extensions I have become completely dependent on! And luckily, the new version 0.8.5.8 works just fine! Note: you can only <a href="https://addons.mozilla.org/en-US/firefox/addon/249">download the Windows version from the Add-ons web site</a>, whereas the <a href="http://users.skynet.be/mgueury/mozilla/download.html">Mac and Linux versions are available in the developer&#8217;s own web site (what&#8217;s up with this?)</a>.</dd>
<dt><a href="http://code.google.com/speed/page-speed/download.html">Page Speed</a></dt>
<dd>Above-mentioned Steve Souders have made sure that his Page Speed extension to Firebug works.</dd>
</dl>
<p>And, if one takes a look at the <a href="https://addons.mozilla.org/en-US/firefox/collection/webdeveloper">Web Developer&#8217;s Toolbox Collection in the Add-ons web site</a>, you can see that every extension but one is compatible with Firefox 3.5. The only one I have found, that I use, that won&#8217;t work with Firefox 3.5 is <a href="https://addons.mozilla.org/en-US/firefox/addon/5369">YSlow</a>.</p>
<p>And really, I don&#8217;t know why YSlow isn&#8217;t ready for Firefox 3.5. I think extension developers have had quite some time to prepare, and Mozilla have helped out well with their article <a href="https://developer.mozilla.org/En/Updating_extensions_for_Firefox_3.5">Updating extensions for Firefox 3.5</a>.</p>
<p>My only guess is that the YSlow people didn&#8217;t feel ready to develop for the current beta version of Firebug, and maybe are waiting for a later release. Whatever the reason, I sure hope they release a new version for Firefox 3.5 and Firebug 1,4 soon, because it&#8217;s a great extension.</p>
<p>And, naturally, I would like to mention that my extensions all work with Firefox 3.5 as well:</p>
<ul>
<li><a href="https://addons.mozilla.org/en-US/firefox/addon/11905">Firefinder for Firebug</a></li>
<li><a href="https://addons.mozilla.org/en-US/firefox/addon/10260">Flickr Gallery Plus!</a></li>
<li><a href="https://addons.mozilla.org/en-US/firefox/addon/9640">Inline Code Finder</a></li>
<li><a href="https://addons.mozilla.org/en-US/firefox/addon/9641">Inline Code Finder for Firebug</a></li>
</ul>
<p>Therefore, don&#8217;t worry. At least as a web developer, virtually all vital extensions are ready!</p>
<h2>Summary</h2>
<p>The release of Firefox 3.5 is very exciting, and I&#8217;m really happy it&#8217;s out now! I should also mention to you Swedes out there, at least those that are Stockholm-based (or willing to travel), there will be a release party later this summer! However, since all of Sweden seem to be on vacation during July, this will probably take place in August. Stay tuned!</p>
<p>And, to end this article, if you&#8217;re in the mood, there <a href="http://blog.seanmartell.com/2009/06/30/a-web-browser-renaissance/">a pretty Firefox 3.5 wallpaper</a> available as well. <img src='http://robertnyman.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://robertnyman.com/2009/07/01/firefox-35-is-released-information-about-having-multiple-firefox-versions-and-web-developer-extension-compatibility/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>PictureSlides 2.0 &#8211; highly customizable option to create JavaScript slideshows</title>
		<link>http://robertnyman.com/2009/06/30/pictureslides-20-highly-customizable-option-to-create-javascript-slideshows/</link>
		<comments>http://robertnyman.com/2009/06/30/pictureslides-20-highly-customizable-option-to-create-javascript-slideshows/#comments</comments>
		<pubDate>Tue, 30 Jun 2009 16:41:43 +0000</pubDate>
		<dc:creator>Robert Nyman</dc:creator>
				<category><![CDATA[Developing]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[jQuery]]></category>

		<guid isPermaLink="false">http://robertnyman.com/?p=1384</guid>
		<description><![CDATA[I&#8217;ve had a few versions of my PictureSlides to create JavaScript slideshows, but now it has been completely rewritten and jQuery-optimized with some new control and features.
The background story is that I needed a basic version of it in a client project, so while I had dusted it off, I took some extra time of [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve had a few versions of my <a href="http://robertnyman.com/picture-slides/">PictureSlides</a> to create JavaScript slideshows, but now it has been completely rewritten and jQuery-optimized with some new control and features.</p>
<p>The background story is that I needed a basic version of it in a client project, so while I had dusted it off, I took some extra time of my own to rewrite it and specialize it for jQuery, as well as working out some kinks it had.</p>
<p><a href="http://robertnyman.com/picture-slides/demo-packages/gallery/index.html"><img src="http://robertnyman.com/picture-slides/images/picture-slides-example.jpg" alt="An example image of PictureSlides" class="align-center"></a></p>
<p>The new version, 2.0, offers:</p>
<ul>
<li>Any number of slideshows in the same page.</li>
<li>Nice CSS-based presentation features, like dimming out the background (Lightbox-like), autoplay, linking chosen images to another web page at click, thumbnail charts etc.</li>
<li>Correctly waiting for images to load before display time is being started.</li>
<li>Possible to customize errors if an image fails to load.</li>
<li>Completely builds on top of existing HTML code, making it very easy to use it on top of a non-JavaScript base version.</li>
<li>New JSON-object like syntax for each PictureSlides instance</li>
<li>No extra settings file &#8211; all settings are in each slideshow instantiation, making it each instance completely customizable</li>
</ul>
<h2>A few PictureSlides demos</h2>
<p>I have created three fairly simple demos of PictureSlides in action, where you can download all the code for each demo in a single package which will work right away for you:</p>
<ul>
<li>
		<a href="http://robertnyman.com/picture-slides/demo-packages/gallery/index.html">Picture gallery</a>
	</li>
<li>
		<a href="http://robertnyman.com/picture-slides/demo-packages/slideshow-only/index.html">Slideshow only and autoplay</a>
	</li>
<li>
		<a href="http://robertnyman.com/picture-slides/demo-packages/large-image-with-navigation-links/index.html">Large image with navigation links</a>
	</li>
</ul>
<h2>How to use it in a web page</h2>
<p>Here are some basic instructions, taken from the <a href="http://robertnyman.com/picture-slides/implementation.htm">PictureSlides implementation page</a>.to help you get started (in the implementations page, you will also find all available settings).</p>
<h3>Include JavaScript files</h3>
<p>Start by including the latest version of <a href="http://code.google.com/p/jqueryjs/downloads/list">jQuery (Minified version suggested)</a>:</p>
<pre class="brush: html">&lt;script type="text/javascript" src="js/jquery-1.3.2.min.js"&gt;&lt;/script&gt;</pre>
<p>Then, include the PictureSlides file:</p>
<pre class="brush: html">&lt;script type="text/javascript" src="js/PictureSlides-jquery-2.0.js"&gt;&lt;/script&gt;</pre>
<p>Then, within the web page or a separate JavaScript file, you can customize how PictureSlides should work and how it should be presented. You can also have any number of slideshows in the same page.</p>
<h3>Create an HTML page</h3>
<p>Create a web page where you put all the HTML that you want to use. This is example HTML prepared for being used with PictureSlides. NOTE! Each slideshow <em>has</em> to be surrounded with an element with the class <code>picture-slides-container</code>.</p>
<pre class="brush: html">&lt;div class="picture-slides-container"&gt;
	&lt;div class="picture-slides-fade-container"&gt;
		&lt;a class="picture-slides-image-link"&gt;&lt;img class="picture-slides-image" src="pictures/1.jpg" alt="This is picture 1" /&gt;&lt;/a&gt;
	&lt;/div&gt;

	&lt;div class="picture-slides-image-text"&gt;This is picture 1&lt;/div&gt;

	&lt;div class="navigation-controls"&gt;
		&lt;span class="picture-slides-previous-image"&gt;Previous&lt;/span&gt;
		&lt;span class="picture-slides-image-counter"&gt;&lt;/span&gt;
		&lt;span class="picture-slides-next-image"&gt;Next&lt;/span&gt;

		&lt;span class="picture-slides-start-slideshow"&gt;Start slideshow&lt;/span&gt;
		&lt;span class="picture-slides-stop-slideshow"&gt;Stop slideshow&lt;/span&gt;
	&lt;/div&gt;

	&lt;ul class="picture-slides-thumbnails"&gt;
		&lt;li&gt;&lt;a href="pictures/1.jpg"&gt;&lt;img src="thumbnails/1.jpg" alt="" /&gt;&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a href="pictures/2.jpg"&gt;&lt;img src="thumbnails/2.jpg" alt="" /&gt;&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a href="pictures/3.jpg"&gt;&lt;img src="thumbnails/3.jpg" alt="" /&gt;&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a href="pictures/4.jpg"&gt;&lt;img src="thumbnails/4.jpg" alt="" /&gt;&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a href="pictures/5.jpg"&gt;&lt;img src="thumbnails/5.jpg" alt="" /&gt;&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a href="pictures/6.jpg"&gt;&lt;img src="thumbnails/6.jpg" alt="" /&gt;&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a href="pictures/7.jpg"&gt;&lt;img src="thumbnails/7.jpg" alt="" /&gt;&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a href="pictures/8.jpg"&gt;&lt;img src="thumbnails/8.jpg" alt="" /&gt;&lt;/a&gt;&lt;/li&gt;
	&lt;/ul&gt;
&lt;/div&gt;</pre>
<h3>Create JavaScript code</h3>
<p>Then, for each slideshow you want, generate a PictureSlides JavaScript block to create all the settings. For example:</p>
<pre class="brush: js">&lt;script type="text/javascript"&gt;
	jQuery.PictureSlides.set({
		// Switches to decide what features to use
		useFadingIn : true,
		useFadingOut : true,
		useFadeWhenNotSlideshow : true,
		useFadeForSlideshow : true,
		useDimBackgroundForSlideshow : true,
		loopSlideshow : false,
		usePreloading : true,
		useAltAsTooltip : true,
		useTextAsTooltip : false,

		// Fading settings
		fadeTime : 500, // Milliseconds
		timeForSlideInSlideshow : 2000, // Milliseconds

		// At page load
		startIndex : 1,
		startSlideShowFromBeginning : true,
		startSlideshowAtLoad : false,
		dimBackgroundAtLoad : false,

		// Large images to use and thumbnail settings
		images : [
			{
				image : "pictures/1.jpg",
				alt : "Picture 1",
				text : "This is picture 1"
			},
			{
				image : "pictures/2.jpg",
				alt : "Picture 2",
				text : "This is picture 2",
				url : "http://robertnyman.com"
			},
			{
				image : "pictures/3.jpg",
				alt : "Picture 3",
				text : "This is picture 3",
				url : "http://456bereastreet.com"
			} // NOTE! No comma after the last object
		],
		thumbnailActivationEvent : "click",

		// Classes of HTML elements to use
		mainImageClass : "picture-slides-image", // Mandatory
		imageLinkClass : "picture-slides-image-link",
		fadeContainerClass : "picture-slides-fade-container",
		imageTextContainerClass : "picture-slides-image-text",
		previousLinkClass : "picture-slides-previous-image",
		nextLinkClass : "picture-slides-next-image",
		imageCounterClass : "picture-slides-image-counter",
		startSlideShowClass : "picture-slides-start-slideshow",
		stopSlideShowClass : "picture-slides-stop-slideshow",
		thumbnailContainerClass: "picture-slides-thumbnails",
		dimBackgroundOverlayClass : "picture-slides-dim-overlay"
	});
&lt;/script&gt;</pre>
<p>
	The most interesting part above is where you define what images should be used, what text they should have, and if they should link somewhere when being clicked:
</p>
<pre class="brush: js">images : [
	{
		// Path to large image
		image : "pictures/1.jpg",
		// Alternative text for large image
		alt : "Picture 1",
		// Descriptive text of large image
		text : "This is picture 1",
		// Optional. Address to link large image to
		url : "http://robertnyman.com"
	},
	{
		image : "pictures/2.jpg",
		alt : "Picture 2",
		text : "This is picture 2",
		url : "http://robertnyman.com"
	},
	{
		image : "pictures/3.jpg",
		alt : "Picture 3",
		text : "This is picture 3",
		url : "http://456bereastreet.com"
	} // NOTE! No comma after the last object
]</pre>
<h2>Download</h2>
<p>To get the PictureSlides code, <a href="http://code.google.com/p/pictureslides/downloads/list">download the PictureSlides 2.0</a> JavaScript file, or use the code in either of <a href="http://robertnyman.com/picture-slides/">the demo packages</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://robertnyman.com/2009/06/30/pictureslides-20-highly-customizable-option-to-create-javascript-slideshows/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>
