<?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>samuli.hakoniemi.net</title>
	<atom:link href="http://samuli.hakoniemi.net/feed/" rel="self" type="application/rss+xml" />
	<link>http://samuli.hakoniemi.net</link>
	<description></description>
	<lastBuildDate>Wed, 07 Jul 2010 13:46:27 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<atom:link rel='hub' href='http://samuli.hakoniemi.net/?pushpress=hub'/>
		<item>
		<title>How about arranging an event for Finnish Frontend Web Developers?</title>
		<link>http://samuli.hakoniemi.net/how-about-arranging-an-event-for-finnish-frontendweb-developers/</link>
		<comments>http://samuli.hakoniemi.net/how-about-arranging-an-event-for-finnish-frontendweb-developers/#comments</comments>
		<pubDate>Mon, 07 Jun 2010 19:28:21 +0000</pubDate>
		<dc:creator>Samuli Hakoniemi</dc:creator>
				<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://samuli.hakoniemi.net/?p=386</guid>
		<description><![CDATA[Last year during Full Frontal Javascript Conference at November I got an idea of arranging some kind of event for (frontend) web developers in Finland. The sad truth is that we don't have such events at all.]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fsamuli.hakoniemi.net%2Fhow-about-arranging-an-event-for-finnish-frontendweb-developers%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fsamuli.hakoniemi.net%2Fhow-about-arranging-an-event-for-finnish-frontendweb-developers%2F&amp;source=zvona&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<p>This post is targeted for Finnish audience, although it&#8217;s written in English.</p>
<p>Last year during Full Frontal Javascript Conference at November I got an idea of arranging some kind of event for (frontend) web developers in Finland. The sad truth is that we don&#8217;t have such events at all.</p>
<p>There&#8217;s at least medium amount of very talented web developers living in Finland. However, we get together very occasionally, mostly in events that aren&#8217;t related to web development at all. Therefore I have a strong opinion we should form a more concrete community which I&#8217;m already named as &#8220;Frontend Finland&#8221; :)</p>
<p>The idea of arranging such event got buried. But couple weeks ago, a colleague of mine (at <a rel="external" href="http://www.futurice.com/">Futurice</a>) mentioned he had the <a rel="external" href="http://janne.aukia.com/kuutio/?p=1355">very similar idea</a> about arranging a JavaScript event in Helsinki, Finland.</p>
<p>So we made a quick review about potential topics to be discussed. Actually I had already made a short list with an ex-colleague from <a rel="external" href="http://www.fruugo.com/">Fruugo</a>.</p>
<p>The event itself, as a first event ever, would be very modest and unofficial. And the &#8220;official&#8221; part wouldn&#8217;t last longer than two to three hours, containing no more than four presentations about different topics.</p>
<p>The event would be:</p>
<ul>
<li>free (or very minimal charge for covering running costs),</li>
<li>arranged on late September or early October,</li>
<li>located in Helsinki,</li>
<li>gathering around 40 to 80 enthusiastic web developers,</li>
<li>contain short sessions (15-30 minutes) of presentations,</li>
<li>social event to emphasize we&#8217;re not alone :)</li>
</ul>
<p>The event is in very early planning stage and I&#8217;m about to contact potential developers, asking them whether they would like to contribute with their know-how, sharing their experiences.</p>
<p>The big question is: what kind of topics you would like to hear about? The preparatory topics we discussed of were: current state and general knowledge about DOM scripting, overview to some JavaScript framework (most likely jQuery), using JavaScript for building rich web applications or CMS&#8217;s, using JavaScript in mobile web development and &#8220;bubbling under&#8221; trends like WebGL or server-side JavaScript.</p>
<p>In addition, if everything goes well and we get such event arranged at all, there&#8217;s definitely place for another similar kind of event about frontend web development in general. That event would cover topics about HTML5, CSS3 and the status of latest modern browsers (such as IE9 or Firefox 4). This event would take place somewhere in Spring 2011.</p>
<p>And if you&#8217;re able to contribute in any way, please contact me via e-mail.</p>
]]></content:encoded>
			<wfw:commentRss>http://samuli.hakoniemi.net/how-about-arranging-an-event-for-finnish-frontendweb-developers/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Webdev Weekly #16</title>
		<link>http://samuli.hakoniemi.net/webdev-weekly-16/</link>
		<comments>http://samuli.hakoniemi.net/webdev-weekly-16/#comments</comments>
		<pubDate>Tue, 27 Apr 2010 17:25:42 +0000</pubDate>
		<dc:creator>Samuli Hakoniemi</dc:creator>
				<category><![CDATA[Web Development]]></category>
		<category><![CDATA[weekly]]></category>

		<guid isPermaLink="false">http://samuli.hakoniemi.net/?p=370</guid>
		<description><![CDATA[<a href="http://samuli.hakoniemi.net/webdev-weekly-16"><img class="img_main" src="/wp-content/images/weekly/wd16.png" alt="Webdev Weekly #16" /></a>
This article contains the top picks from week #16. The main weight is heavily on CSS, including my latest article called "CSS3 Transitions - Are We There Yet?"]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fsamuli.hakoniemi.net%2Fwebdev-weekly-16%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fsamuli.hakoniemi.net%2Fwebdev-weekly-16%2F&amp;source=zvona&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<p><img class="img_main" src="/wp-content/images/weekly/wd16.png" alt="Webdev Weekly #16" /></p>
<div class="ingress">This article contains the top picks from week #16. The main weight is heavily on CSS, including my latest article called &#8220;CSS3 Transitions &#8211; Are We There Yet?&#8221;</div>
<h2>General Web Development and Web Design</h2>
<div class="wd">
<p><a rel="external" href="http://www.queness.com/post/3077/30-eye-catchy-cartoon-fonts" title="30 Eye Catchy Cartoon Fonts">30 Eye Catchy Cartoon Fonts | Queness</a></p>
<p class="brief">A collection of nice and free cartoon style fonts.</p>
</div>
<h2>HTML &#038; CSS</h2>
<div class="wd">
<p><a href="http://samuli.hakoniemi.net/css3-transitions-are-we-there-yet/" title="CSS3 Transitions - Are We There Yet?">CSS3 Transitions &#8211; Are We There Yet? | samuli.hakoniemi.net</a></p>
<p class="brief">My latest article about the current status of CSS3 Transitions</p>
<p><a rel="external" href="http://www.designyourway.net/blog/resources/all-there-is-to-know-about-html5-and-css3/" title="All There Is To Know About HTML5 and CSS3">All There Is To Know About HTML5 and CSS3 | Design Your Way</a></p>
<p class="brief">Just like the title says.</p>
<p><a rel="external" href="http://net.tutsplus.com/tutorials/html-css-techniques/quick-tip-ever-thought-about-using-font-face-for-icons/" title="Quick Tip: Ever Thought About Using @Font-face for Icons?">Quick Tip: Ever Thought About Using @Font-face for Icons?  | NetTuts+</a></p>
<p class="brief">Quite nice trick for implementing icons to your website.</p>
<p><a rel="external" href="http://hacks.mozilla.org/2010/04/the-css-3-flexible-box-model/" title="The CSS 3 Flexible Box Model">The CSS 3 Flexible Box Model | hacks.mozilla.org</a></p>
<p class="brief">Information about CSS3 Fflexible box model on Mozilla Firefox.</p>
<p><a rel="external" href="http://www.evotech.net/blog/2010/04/hack-for-webkit-filter-for-chrome-and-safari/" title="Hack for Webkit: Filter for Chrome and Safari">Hack for Webkit: Filter for Chrome and Safari</a></p>
<p class="brief">CSS hack to filter rules only for WebKit browsers.</p>
</div>
<h2>Javascript, jQuery and Other JS Frameworks</h2>
<div class="wd">
<p><a rel="external" href="http://www.codenothing.com/archives/2010/8-jquery-micro-optimization-tips/" title="8 jQuery Micro Optimization Tips">8 jQuery Micro Optimization Tips | codeNothing?</a></p>
<p class="brief">Nice (micro-level) optimization tips for jQuery developers.</p>
</div>
<h2>Hacking and Security</h2>
<div class="wd">
<p><a rel="external" href="http://www.security-assessment.com/files/whitepapers/Cross_Context_Scripting_with_Firefox.pdf" title="Cross Context Scripting with Firefox (PDF)">Cross Context Scripting with Firefox (PDF) | security-assessment.com</a></p>
<p class="brief">White Paper about a rather new technique called Cross Content Scripting (XCS) in Firefox.</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://samuli.hakoniemi.net/webdev-weekly-16/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CSS3 Transitions &#8211; Are We There Yet?</title>
		<link>http://samuli.hakoniemi.net/css3-transitions-are-we-there-yet/</link>
		<comments>http://samuli.hakoniemi.net/css3-transitions-are-we-there-yet/#comments</comments>
		<pubDate>Sun, 25 Apr 2010 21:05:51 +0000</pubDate>
		<dc:creator>Samuli Hakoniemi</dc:creator>
				<category><![CDATA[Web Design]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[css3]]></category>
		<category><![CDATA[transitions]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://samuli.hakoniemi.net/?p=261</guid>
		<description><![CDATA[<a href="http://samuli.hakoniemi.net/css3-transitions-are-we-there-yet"><img class="img_main" src="/wp-content/images/css3-transitions/css3-transitions-are-we-the.jpg" alt="CSS3 Transitions - Are We There Yet?" /></a>

Cascading Style Sheets 3 has been available for "some time" (first time introduced nine years ago). However, CSS3 hasn't been available in common use for more than two years.

CSS3 Transitions in real use were introduced in late 2007 by Safari. At that time, they were referred as "CSS Animations", but the terminology changed when Safari introduced their proprietary features also called "CSS Animations".


I've split the topic in two articles. In this first article I'll make a generic overview on CSS3 Transitions. Additionally, I'll introduce some of the basic implementations and evaluate few CSS properties, meant for creating transformations and transitions

This article also contains references to excellent CSS3 articles. So after reading this article, go ahead and upgrade your knowledge about CSS3 Transitions with them.]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fsamuli.hakoniemi.net%2Fcss3-transitions-are-we-there-yet%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fsamuli.hakoniemi.net%2Fcss3-transitions-are-we-there-yet%2F&amp;source=zvona&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<link rel="stylesheet" href="/wp-content/customCSS/css3-transitions-are-we.css" />
<p><img class="img_main" src="/wp-content/images/css3-transitions/css3-transitions-are-we-the.jpg" alt="CSS3 Transitions - Are We There Yet?" /></p>
<div class="ingress">Cascading Style Sheets 3 has been available for &#8220;some time&#8221; (<a href="http://www.w3.org/TR/css3-roadmap/" title="Introduction to CSS3">first time introduced nine years ago</a>). However, CSS3 hasn&#8217;t been available in common use for more than two years.</p>
<p>CSS3 Transitions in real use were <a href="http://webkit.org/blog/138/css-animation/" title="CSS Animation">introduced in late 2007</a> by Safari. At that time, they were referred as &#8220;CSS Animations&#8221;, but the terminology changed when Safari introduced their proprietary features also called <a href="http://webkit.org/blog/324/css-animation-2/" title="CSS Animations">CSS Animations</a></p>
<p>I&#8217;ve split this topic in two articles. In this first article I&#8217;ll make a generic overview on CSS3 Transitions. Additionally, I&#8217;ll introduce some of the basic implementations and evaluate few CSS properties, meant for creating transformations and transitions.</p>
<p>This article also contains references to excellent CSS3 articles. So after reading this article, go ahead and upgrade your knowledge about CSS3 Transitions with them.</p></div>
<p>[tweetmeme]</p>
<p>This article is also published in Finnish, titled as <a href="http://gfx.fi/2010/04/css3-transitiot-olemmeko-jo-perilla/" title="CSS3 Transitiot - olemmeko jo perillä?">&#8220;CSS3 Transitiot &#8211; olemmeko jo perillä?&#8221;</a> at <a rel="external" href="http://gfx.fi" title="gfx.fi">gfx.fi</a>.</p>
<p>Like mentioned above, the whole topic has been split in two parts. The first part is offering a general overview in current status of CSS3 Transitions. Second part is called <b>&#8220;CSS3 Transitions &#8211; Problems and Solutions&#8221;</b>, which will explain in details how CSS3 Transitions behave in different browsers.</p>
<p>The first part of the article contains following sections:</p>
<ul>
<li><a href="#gettingStarted">Getting Started</a> &#8211; what you must have on your workstation</li>
<li><a href="#theBasicsOfTheBasics">The Basics of the Basics</a> &#8211; what you should know about transitions</li>
<li><a href="#theBasics">The Basics</a> &#8211; what you must know about CSS3 Transitions <b>(demo section)</b></li>
<li><a href="#conclusions">Conclusions</a> &#8211; are we there yet?</li>
<li><a href="#resources">External Resources</a> &#8211; places where you must visit after reading this article</li>
</ul>
<p><img class="img_sub" src="/wp-content/images/css3-transitions/getting-started.jpg" alt="Getting Started" /></p>
<h2 id="gettingStarted">Getting Started</h2>
<p>To get started, you&#8217;ll need a browser that supports CSS3 Transitions:</p>
<ul>
<li><a href="http://www.apple.com/safari/download/" title="Apple Safari Download">Apple Safari</a> (supported in Safari 3.1 and later, and in iPhone OS 2.0 and later.)</li>
<li><a href="http://www.google.com/chrome/" title="Google Chrome Download">Google Chrome</a></li>
<li><a href="http://ftp.mozilla.org/pub/mozilla.org/firefox/nightly/latest-trunk/" title="Mozilla Firefox 3.7 a">Mozilla Firefox 3.7 alpha</a> (also known as Minefield)</li>
<li><a href="http://www.opera.com/browser/" title="Opera 10.5x">Opera 10.5x</a> (also supported by Opera Mobile 10 beta 2)</li>
</ul>
<h3>What about Internet Explorer?</h3>
<p>At the moment it&#8217;s announced that Internet Explorer 9 isn&#8217;t going to support CSS3 Transitions. The best support for IE Transitions and Transformations can be achieved with <a href="http://msdn.microsoft.com/en-us/library/ms533014(v=VS.85).aspx">Matrix Filter</a>.</p>
<p>Additionally, I recommend reading an article titled <a href="http://www.useragentman.com/blog/2010/04/05/cross-browser-animated-css-transforms-even-in-ie/" title="Cross-Browser Animated CSS Transforms — Even in IE">Cross-Browser Animated CSS Transforms — Even in IE</a>, written by <i>Zoltan “Du Lac” Hawryluk</i> who is the author of <a rel="external" href="http://www.useragentman.com/blog/csssandpaper-a-css3-javascript-library/" title="cssSandpaper – a CSS3 JavaScript Library">cssSandpaper</a>.</p>
<p><img class="img_sub" src="/wp-content/images/css3-transitions/the-basics-of-the-basics.jpg" alt="The Basics of the Basics" /></p>
<h2 id="theBasicsOfTheBasics">The Basics of the Basics</h2>
<p>Unfortunately, there&#8217;s no &#8220;one rule to rule them all&#8221; for transitions. Actually every browser has their own proprietary properties. Fortunately the syntax for values are consistent.</p>
<h3>What can be transitioned?</h3>
<p>Most properties can be transitioned and therefore I see no reason to list them here explicitly. However, there are some difference between browsers and the most obvious exception is that Firefox 3.7a doesn&#8217;t support transition of transformations at all.</p>
<h3>The property values for transitions</h3>
<p>Transitions have four values to declare at maximum:<br />
<b>Shorthand:</b></p>
<pre name="code" class="css">-webkit-transition: property_name duration timing_function delay;
-moz-transition: property_name duration timing_function delay;
-o-transition: property_name duration timing_function delay;
transition: property_name duration timing_function delay;</pre>
<p>You also can declare every value explicitly:</p>
<p><b>(Target) Property:</b></p>
<pre name="code" class="css">-webkit-transition-property: property_name;
-moz-transition-property: property_name;
-o-transition-property: property_name;
transition-property: property_name;</pre>
<p><b>Duration:</b></p>
<pre name="code" class="css">-webkit-transition-duration: duration;
-moz-transition-duration: duration;
-o-transition-duration: duration;
transition-duration: duration;</pre>
<p>Duration (like delay) can be entered either in seconds (eg. <i>0.5s</i>) or in milliseconds (eg. <i>500ms</i>). It&#8217;s important to note that if the value is entered without suffix, transition will not work at all.</p>
<p><b>Timing (of motion):</b></p>
<pre name="code" class="css">-webkit-transition-timing-function: timing_function;
-moz-transition-timing-function: timing_function;
-o-transition-timing-function: timing_function;
transition-timing-function: timing_function;</pre>
<p>Available timing functions:</p>
<ul>
<li><a rel="external" href="http://www.netzgesta.de/dev/cubic-bezier-timing-function.html" title="Cubic Bezier Timing Function">cubic-bezier(cp1<sub>x</sub>, cp1<sub>y</sub>, cp2<sub>x</sub>, cp2<sub>y</sub></a>)</li>
<li><i>ease</i> &#8211; equivalent to cubic-bezier(0.25, 0.1, 0.25, 1.0).</li>
<li><i>linear</i> &#8211; equivalent to cubic-bezier(0.0, 0.0, 1.0, 1.0).</li>
<li><i>ease-in</i> &#8211; equivalent to cubic-bezier(0.42, 0, 1.0, 1.0).</li>
<li><i>ease-out</i> &#8211; equivalent to cubic-bezier(0, 0, 0.58, 1.0).</li>
<li><i>ease-in-out</i> &#8211; equivalent to cubic-bezier(0.42, 0, 0.58, 1.0).</li>
</ul>
<p><b>Delay:</b></p>
<pre name="code" class="css">-webkit-transition-delay: delay;
-moz-transition-delay: delay;
-o-transition-delay: delay;
-transition-delay: delay;</pre>
<p>Delay (like duration) can be entered either in seconds (eg. <i>0.5s</i>) or in milliseconds (eg. <i>500ms</i>).</p>
<p>In general, it&#8217;s good to declare transitions on default state selectors without pseudo classes. This will cause transition played in both direction, eg. when hovering.</p>
<p>Remember, you have to enter all the properties four times before being cross-browser compliant. Therefore it&#8217;d be best to use shorthand codes for keeping your CSS code clean. </p>
<p><img class="img_sub" src="/wp-content/images/css3-transitions/the-basics.jpg" alt="The Basics" /></p>
<h2 id="theBasics">The Basics</h2>
<p>Now, I&#8217;m going to demonstrate some of the transitions. You must either hover or to click activation buttons for displaying transitions.</p>
<p>All the code examples below has no browser proprietary format written &#8211; this is for saving space.</p>
<h3>Basic Transition: Dimensions and Scaling</h3>
<p>I&#8217;ll start by demonstrating the basic transition. It also demonstrates the difference between width+height and scale transform.</p>
<pre name="code" class="css">#widthHeight	{transition:all 500ms;}
#widthHeight:hover	{width:200px;height:200px;line-height:200px;}

#scale	{transition:all 500ms;}
#scale:hover	{transform:scale(2.0, 2.0);}</pre>
<div class="block" id="widthHeight">Width + Height</div>
<div class="block" id="scale">Scale</div>
<div class="clear">&nbsp;</div>
<p>As you can see, width and height increases normally while scaling is treated almost like absolutely positioned element. On scaling, the transform-origin is set to middle while modifying width+height origin is on the top-left corner.</p>
<h3>Transition with Timing Function</h3>
<p>Below there are two blocks rotating; one with <em>linear</em> timing-function and second one with <em>ease</em>.</p>
<pre name="code" class="css">#rotateLinear	{position:relative;clear:both;left:0px;
		transition:all 2500ms linear;}

#rotateEasing	{position:relative;clear:both;left:0px;
		transition:all 2500ms ease;}

#rotateLinear:target	{left:200px;
			transform:rotate(360deg);}

#rotateEasing:target {left:200px;
			transform:rotate(360deg);}
</pre>
<div class="block" id="rotateLinear">Linear</div>
<div class="block" id="rotateEasing">Easing</div>
<div class="clear">&nbsp;</div>
<p><a class="target" href="#rotateLinear">Activate Linear</a><a class="target" href="#rotateEasing">Activate Easing</a></p>
<div class="clear">&nbsp;</div>
<p>As you probably noticed, the movement is different but both transitions ends at the same time (after 2500ms).</p>
<h3>Transition with Delay</h3>
<p>Delays are useful in some cases. And they&#8217;re very easy to implement in transitions:</p>
<pre name="code" class="css">#bgColorDelay	{background-color:#12142B;
		transition:background-color 500ms linear 800ms;}
#bgColorDelay:hover	{background-color:#336699;}</pre>
<div class="block" id="bgColorDelay">800ms delay</div>
<div class="clear">&nbsp;</div>
<h3>Transition Chaining</h3>
<p>Transitions can also be chained. This doesn&#8217;t come as a default feature, but chaining can be achieved by adding delay between transitions:</p>
<pre name="code" class="css">#widthHeightOpacity	{transition:width 500ms, height 500ms linear 500ms, opacity 500ms linear 1000ms;}
#widthHeightOpacity:hover	{width:200px;height:200px;opacity:0.1;}</pre>
<div class="block" id="widthHeightOpacity">w+h+opacity</div>
<div class="clear">&nbsp;</div>
<p>This has one caveat: transitions are displayed in same order no matter whether the element is hovered or it&#8217;s in default state. And that makes no sense. Therefore we need to reverse the declarations (compared to earlier examples) as following:</p>
<pre name="code" class="css">#widthHeightOpacity	{
	transition:width 500ms 1000ms, height 500ms linear 500ms, opacity 500ms linear;
}

#widthHeightOpacity:hover	{width:200px;height:200px;opacity:0.1;
	transition:width 500ms, height 500ms linear 500ms, opacity 500ms linear 1000ms;
}</pre>
<h3>Is There Anything Else?</h3>
<p>Well of course, there might be something else I haven&#8217;t noticed at this point. But what I&#8217;m trying to emphasize is that transitions are rather simple to implement (although they require a bit extra work for cross-browser compliancy).</p>
<p><img class="img_sub" src="/wp-content/images/css3-transitions/conclusions.jpg" alt="Conclusions" /></p>
<h2 id="conclusions">Conclusions</h2>
<p>Are we there yet? Yes, we&#8217;re over halfway there. Transitions in general are very cool in proper use.</p>
<p>However, I&#8217;m personally still bit skeptic with CSS3 Transitions: at this point, you can&#8217;t rely on them and you must do cross-browser testing thoroughly. I&#8217;ll cover some of the problems at the following part of this article series. And I&#8217;m also going to briefly compare CSS3 Transitions with jQuery Animations.</p>
<p>If you&#8217;re dealing with a platform solely running on WebKit (like iPhone or Adobe AIR) then go ahead and enjoy the full power of both CSS3 Transitions and WebKit animations.</p>
<p><img class="img_sub" src="/wp-content/images/css3-transitions/external-resources.jpg" alt="External Resources" /></p>
<h2 id="resources">External Resources</h2>
<p>Here are some good resources provided both by browser vendors and other external authors. I strongly suggest reading them for adopting transitions and other CSS3 techniques.</p>
<ul>
<li><a rel="external" href="http://developer.apple.com/safari/library/documentation/InternetWeb/Conceptual/SafariVisualEffectsProgGuide/Transitions/Transitions.html" title="Safari CSS Visual Effect Guide: Transitions">Safari CSS Visual Effect Guide: Transitions</a></li>
<li><a rel="external" href="https://developer.mozilla.org/en/CSS/CSS_transitions">Mozilla CSS transitions &#8211; MDC</a></li>
<li><a rel="external" href="http://www.opera.com/docs/specs/presto23/css/transitions/" title="Opera: CSS3 Transitions support in Opera Presto 2.3">Opera: CSS3 Transitions support in Opera Presto 2.3</a></li>
</ul>
<ul>
<li><a rel="external" href="http://www.css3.info/" title="CSS3.info">CSS3.info</a></li>
<li><a rel="external" href="http://www.css3please.com/" title="CSS3 Please">CSS3, Please! The Cross-Browser CSS3 Rule Generator</a></li>
<li><a rel="external" href="http://net.tutsplus.com/tutorials/html-css-techniques/css-fundametals-css-3-transitions/" title="CSS Fundamentals: CSS 3 Transitions | NetTuts+">CSS Fundamentals: CSS 3 Transitions | NetTuts+</a></li>
<li><a rel="external" href="http://www.webdesignerdepot.com/2010/01/css-transitions-101/" title="CSS Transitions 101 | Webdesigner Depot">CSS Transitions 101 | Webdesigner Depot</a></li>
<li><a rel="external" href="http://24ways.org/2009/going-nuts-with-css-transitions" title="Going Nuts with CSS Transitions | 24 ways">Going Nuts with CSS Transitions | 24 ways</a></li>
<li><a rel="external" href="http://developer.apple.com/safari/library/documentation/InternetWeb/Conceptual/SafariVisualEffectsProgGuide/Animations/Animations.html" title="Safari CSS Visual Effect Guide: Animations">Safari CSS Visual Effect Guide: Animations</a></li>
</ul>
<h2>Comments?</h2>
<p>Feel free to comment any part of the article. Additionally, if you know good resources about CSS3 Transitions, go ahead and contribute.</p>
]]></content:encoded>
			<wfw:commentRss>http://samuli.hakoniemi.net/css3-transitions-are-we-there-yet/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>Webdev Weekly #15</title>
		<link>http://samuli.hakoniemi.net/webdev-weekly-15/</link>
		<comments>http://samuli.hakoniemi.net/webdev-weekly-15/#comments</comments>
		<pubDate>Sun, 18 Apr 2010 19:58:55 +0000</pubDate>
		<dc:creator>Samuli Hakoniemi</dc:creator>
				<category><![CDATA[Web Development]]></category>
		<category><![CDATA[weekly]]></category>

		<guid isPermaLink="false">http://samuli.hakoniemi.net/?p=296</guid>
		<description><![CDATA[<a href="/webdev-weekly-15"><img class="img_main" src="/wp-content/images/weekly/wd15.png" alt="Webdev Weekly #15" /></a>
<p>Webdev Weekly has been on a break for few weeks. From now on, I'm going to post the best links related to web development and design much more often (aka weekly).</p>

<p>This week's article includes only few, but very good links to strong articles and websites.</p>]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fsamuli.hakoniemi.net%2Fwebdev-weekly-15%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fsamuli.hakoniemi.net%2Fwebdev-weekly-15%2F&amp;source=zvona&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<p><img class="img_main" src="/wp-content/images/weekly/wd15.png" alt="Webdev Weekly #15" /></p>
<div class="ingress">Webdev Weekly has been on a break for few weeks. From now on, I&#8217;m going to post the best links related to web development and design much more often (aka weekly).</p>
<p>This week&#8217;s article includes only few, but very good links to strong articles and websites.</p></div>
<h2>General Web Development</h2>
<div class="wd">
<a rel="external" href="http://www.webdesignerwall.com/general/going-lean-with-website-production/" title="Going Lean with Website Production">Going Lean with Website Production</a></p>
<p>A good article about Lean Development with production websites.</p>
</div>
<h2>HTML &#038; CSS</h2>
<div class="wd">
<a rel="external" href="http://pelfusion.com/tools/7-useful-css3-code-generators/" title="7 Useful CSS3 Code Generators">7 Useful CSS3 Code Generators</a></p>
<p>This article focuses on seven (probably best known) CSS3 code generators.</p>
<p><a rel="external" href="http://www.iecss.com/print-protector/" title="IE Print Protector">IE Print Protector</a></p>
<p>&#8220;IE Print Protector is a piece of javascript that allows you to print HTML5 pages in Internet Explorer. &#8220;</p>
</div>
<h2>Javascript, jQuery and Other</h2>
<div class="wd">
<a rel="external" href="http://www.jstorage.info/" title="jStorage">jStorage</a></p>
<p>How to store data locally with JavaScript, the cross-browser way!</p>
<p><a rel="external" href="http://javascriptweblog.wordpress.com/2010/04/14/compose-functions-as-building-blocks/" title="Compose: functions as building blocks">Compose: functions as building blocks</a></p>
<p>&#8220;JavaScript treats functions as first class objects, that is they can be created and modified dynamically and passed as data to other functions and objects. Shamelessly continuing this theme, allow me to introduce functional composition…&#8221;</p>
</div>
<h2>Server-Side Development and Frameworks</h2>
<div class="wd">
<a rel="external" href="http://www.catswhocode.com/blog/8-useful-code-snippets-to-get-started-with-wordpress-3-0" title="8 useful code snippets to get started with WordPress 3.0">8 useful code snippets to get started with WordPress 3.0</a></p>
<p>This post gathers the most useful resources to get you started with WordPress 3.0.</p>
<p><a rel="external" href="http://net.tutsplus.com/tutorials/php/advanced-regular-expression-tips-and-techniques/" title="Advanced Regular Expression Tips and Techniques">Advanced Regular Expression Tips and Techniques</a></p>
<p class="brief">Some advanced tips for working with regular expressions by Burak Guzel</p>
<p><a rel="external" href="http://techwawwe.posterous.com/16177377" title="Top 10 Useful .htaccess rewrites, Mod_Rewrite Tricks and Tips">Top 10 Useful .htaccess rewrites, Mod_Rewrite Tricks and Tips</a></p>
<p class="brief">Like the title says: 10 very useful tips in brief format for all .htaccess freaks.</p>
</div>
<h2>Security and Hacking</h2>
<div class="wd">
<a rel="external" href="http://xss.codeplex.com/" title="x5s - automated XSS security testing assistant">x5s &#8211; automated XSS security testing assistant</a></p>
<p class="brief">&#8220;x5s is a <i>Fiddler</i> addon which aims to assist penetration testers in finding cross-site scripting vulnerabilities. It&#8217;s main goal is to help you identify the hotspots where XSS might occur&#8230;&#8221;</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://samuli.hakoniemi.net/webdev-weekly-15/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>When jQuery returns &#8220;failed&#8221; in IE &#8211; and how it&#8217;s probably resolved</title>
		<link>http://samuli.hakoniemi.net/when-jquery-returns-failed-in-ie-and-how-its-probably-resolved/</link>
		<comments>http://samuli.hakoniemi.net/when-jquery-returns-failed-in-ie-and-how-its-probably-resolved/#comments</comments>
		<pubDate>Sat, 20 Mar 2010 22:21:16 +0000</pubDate>
		<dc:creator>Samuli Hakoniemi</dc:creator>
				<category><![CDATA[Web Development]]></category>
		<category><![CDATA[error]]></category>
		<category><![CDATA[failed]]></category>
		<category><![CDATA[IE]]></category>
		<category><![CDATA[internetexplorer]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[jquery]]></category>

		<guid isPermaLink="false">http://samuli.hakoniemi.net/?p=253</guid>
		<description><![CDATA[In web development, I love facing unexpected problems I haven't seen before. It's an excellent situation to learn new things. And the moment right after I've found a solution - it's a perfect moment.

But when I can't find a solution, no matter how hard I try, and especially when I can't find anything from Google that could help me.. well, I get very frustrated.

In this brief article, I'll go through one problematic situation that really got me frustrated. Plus, this hopefully can be found via Google and therefore works as a solution to anyone who's facing a same problem.]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fsamuli.hakoniemi.net%2Fwhen-jquery-returns-failed-in-ie-and-how-its-probably-resolved%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fsamuli.hakoniemi.net%2Fwhen-jquery-returns-failed-in-ie-and-how-its-probably-resolved%2F&amp;source=zvona&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<p><img class="img_main" src="http://samuli.hakoniemi.net/wp-content/images/debugging-testing-ie/debugging-testing-ie.jpg" alt="When jQuery returns failed in IE - and how it's probably resolved" /></p>
<div class="ingress">In web development, I love facing unexpected problems I haven&#8217;t seen before. It&#8217;s an excellent situation to learn new things. And the moment right after I&#8217;ve found a solution &#8211; it&#8217;s a perfect moment.</p>
<p>But when I can&#8217;t find a solution, no matter how hard I try, and especially when I can&#8217;t find anything from Google that could help me.. well, I get very frustrated.</p>
<p>In this brief article, I&#8217;ll go through one problematic situation that really got me frustrated. Plus, this hopefully can be found via Google and therefore works as a solution to anyone who&#8217;s facing a same problem.</p></div>
<p>Last week at work, I encountered a very peculiar problem in Internet Explorer. There were several IE-related bugs reported in a certain part of the service. However, I couldn&#8217;t reproduce them and I expected these bugs had been fixed during other updates in the code..</p>
<p>..until it suddenly happened. All the tested versions of IE&#8217;s (6, 7, 8) started reporting either error &#8220;failed&#8221; or &#8220;unexpected error&#8221;, pointing to jQuery&#8217;s code. And there worst part was that error occurred occasionally, although nothing was changed.</p>
<p>In this case, there&#8217;s jQuery 1.3.2 in use. Error message didn&#8217;t help and the line it was pointing to, belonged to a internal / helper function into jQuery.</p>
<p>At first, errors disappeared after some fixes I expected to resolve the situation. But, like I mentioned earlier: these errors were occasional.</p>
<p>I didn&#8217;t have anything that could have helped me at least a little on tracking this problem (later I found not even unit tests would&#8217;ve solved this &#8211; although it&#8217;s not an argument why I didn&#8217;t have unit testing for javascript). So, my only choice was trying to isolate the problem function by function, line by line.</p>
<p>Ultimately I found that all the errors were caused by event handler bindings made with function $.fn.live(). I couldn&#8217;t blame the selectors being too unprecise, although I reduced the amount of troublemakers by fine-tuning them. In addition, I found that wrapping them in setTimeout() with small delay would have possibly fixed the problem. Also, IE6 had the most problems, while IE7 started to feel stable.</p>
<p>Most likely there was something going on with perfomance. However, after all this I wasn&#8217;t in a mood to expect these problems were completely solved. So I ended up binding event handlers with $.fn.bind() whenever something was dynamically added. It meant more lines of code, but it also meant that no errors were occurred ever again.</p>
<p>The point of this article can be put in one sentence: <b>if you receive an error with message &#8220;failed&#8221; or &#8220;unexpected error&#8221; from jQuery and this happens only in Internet Explorer, comment out every possible live() binding and try again</b>.</p>
]]></content:encoded>
			<wfw:commentRss>http://samuli.hakoniemi.net/when-jquery-returns-failed-in-ie-and-how-its-probably-resolved/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Debugging and Testing in Internet Explorer Made Easy</title>
		<link>http://samuli.hakoniemi.net/debugging-and-testing-in-internet-explorer-made-easy/</link>
		<comments>http://samuli.hakoniemi.net/debugging-and-testing-in-internet-explorer-made-easy/#comments</comments>
		<pubDate>Fri, 05 Mar 2010 00:30:07 +0000</pubDate>
		<dc:creator>Samuli Hakoniemi</dc:creator>
				<category><![CDATA[Web Development]]></category>
		<category><![CDATA[debugging]]></category>
		<category><![CDATA[IE]]></category>
		<category><![CDATA[internetexplorer]]></category>
		<category><![CDATA[performance]]></category>
		<category><![CDATA[testing]]></category>
		<category><![CDATA[tips]]></category>
		<category><![CDATA[tools]]></category>

		<guid isPermaLink="false">http://samuli.hakoniemi.net/?p=193</guid>
		<description><![CDATA[<a href="/debugging-and-testing-in-internet-explorer-made-easy"><img class="img_main" src="http://samuli.hakoniemi.net/wp-content/images/debugging-testing-ie/debugging-testing-ie.jpg" alt="Debugging and Testing in Internet Explorer Made Easy" /></a>

It's somewhat usual to leave the testing with Internet Explorer until the end of the project. This is quite acceptable when you're dealing mainly with layout issues.

But when you're building a web application with loads of features, there are several issues to struggle with: constant debugging, client-side performance, proprietary bugs and so on. However, getting your hands dirty with IE doesn't always feel as comfortable as with other browsers.

In this article, I'm going to list and review different set of tools, which will help you and make your debugging and testing process in Internet Explorer much more enjoyable.]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fsamuli.hakoniemi.net%2Fdebugging-and-testing-in-internet-explorer-made-easy%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fsamuli.hakoniemi.net%2Fdebugging-and-testing-in-internet-explorer-made-easy%2F&amp;source=zvona&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<p><img class="img_main" src="http://samuli.hakoniemi.net/wp-content/images/debugging-testing-ie/debugging-testing-ie.jpg" alt="Debugging and Testing in Internet Explorer Made Easy" /></p>
<div class="ingress">
<p>It&#8217;s somewhat usual to leave the testing with Internet Explorer until the end of the project. This is quite acceptable when you&#8217;re dealing mainly with layout issues.</p>
<p>But when you&#8217;re building a web application with loads of features, there are several issues to struggle with: constant debugging, client-side performance, proprietary bugs and so on. However, getting your hands dirty with IE doesn&#8217;t always feel as comfortable as with other browsers.</p>
<p>In this article, I&#8217;m going to list and review different set of tools, which will help you and make your debugging and testing process in Internet Explorer much more enjoyable.
</p></div>
<p>[tweetmeme]</p>
<p>This article is a general overview of different tools and resources that are available for IE. Unfortunately it&#8217;s not providing any detailed information on how to use these tools properly. But I still hope this article offers you a good start.</p>
<p>This article is split into following topics:</p>
<ol>
<li><a href="#browserpackages">Browser Packages</a> &#8211; different IE browser packages</li>
<li><a href="#generaldebuggingtools">General Debugging Tools</a> &#8211; most common debugging tools</li>
<li><a href="#performancetesting">Performance Testing Tools</a> &#8211; excellent tools for performance testing</li>
<li><a href="#otherresources">Other Resources</a> &#8211; additional resources worth of checking</li>
</ol>
<h2 id="browserpackages">Browser Packages</h2>
<p><img class="img_main" src="http://samuli.hakoniemi.net/wp-content/images/debugging-testing-ie/browserpackages.jpg" alt="Browser Packages" /></p>
<p>The first step is to install all the common versions of Internet Explorer (IE6, IE7, IE8). There are several options available and I&#8217;ll review four of them.</p>
<h3>Internet Explorer Collection</h3>
<p>My personal recommendation is <a title="Internet Explorer Collection" rel="external" href="http://finalbuilds.edskes.net/iecollection.htm">Internet Explorer Collection</a>. Don&#8217;t be scared, it&#8217;s very reliable (despite the appearance of website). Internet Explorer Collection contains multiple IE versions, which are standalone so they can be used at the same time.</p>
<p>The main reason I recommend this package is because the browsers it provides are very stable. Internet Explorer Collection also includes the Internet Explorer Developer Toolbar.</p>
<h3>BrowserSeal.BrowserPack</h3>
<p>If you&#8217;re in need of older versions of other browsers, I recommend installing <a title="BrowserSeal.BrowserPack" rel="external" href="http://www.browserseal.com/?option=com_content&amp;view=article&amp;id=35">BrowserSeal.BrowserPack</a>. It uses the Internet Explorer Collection mentioned above, but in addition it allows to install browsers like Safari 3 and Opera 9.</p>
<p>Browsers provided in BrowserSeal.BrowserPack are very stable and I haven&#8217;t encountered any problems.</p>
<h3>IETester</h3>
<p><a title="IETester" rel="external" href="http://www.my-debugbar.com/wiki/IETester/HomePage">IETester</a> contains several advantages compared to other packages, like opening different versions of IE into tabs.</p>
<p>IETester is provided by DebugBar and they&#8217;re also responsible for providing excellent debugging tools like DebugBar and Companion.js (both reviewed later in this article).</p>
<p>However, IETester still (v0.4.2) feels quite unstable and I&#8217;ve encountered some contradictions while debugging. But I&#8217;m quite convinced these kind of issues gets fixed sooner or later and therefore keep IETester in my armament.</p>
<h3>Microsoft Expression Web SuperPreview</h3>
<p><a title="Microsoft Expression Web SuperPreview" rel="external" href="http://www.microsoft.com/downloads/details.aspx?FamilyID=8e6ac106-525d-45d0-84db-dccff3fae677&amp;displaylang=en">Microsoft Expression Web SuperPreview</a> is a stand-alone application and part of <a title="Microsoft Expression Web 3" rel="external" href="http://www.microsoft.com/expression/products/Web_Overview.aspx">Microsoft Expression Web 3</a> product. Mainly, it can be used for viewing the pages side by side on IE6, IE7 and IE8.</p>
<p>In my opinion, this application doesn&#8217;t provide any value for debugging and testing. It&#8217;s targetted for web design, offering the possibility for swift visual overviews and comparing layouts between different IE versions.</p>
<h2 id="generaldebuggingtools">General debugging tools</h2>
<p><img class="img_main" src="http://samuli.hakoniemi.net/wp-content/images/debugging-testing-ie/generaldebugging.jpg" alt="General Debugging" /></p>
<p>I&#8217;m quite certain you&#8217;re using Firebug on Firefox. And maybe you&#8217;re aware of Firebug Lite and already using it. Still, there&#8217;s a good chance that you&#8217;re wondering how to debug in Internet Explorer.</p>
<h3>Firebug Lite</h3>
<p>You might be already aware of Firebug Lite. If not, read further. <a title="Firebug Lite" rel="external" href="http://getfirebug.com/firebuglite">Firebug Lite</a> is a JavaScript file you can insert into your pages to simulate some Firebug features in other browser than Firefox. It doesn&#8217;t affect or interfere with HTML elements that aren&#8217;t created by itself.</p>
<p>I have to say I&#8217;m not that big fan of Firebug Lite. First of all, many core features of console are already implemented in other browsers. Second, it&#8217;s not always working properly. I&#8217;ve personally encountered some problems especially with IE and therefore I never count solely on it.</p>
<p>Still, it&#8217;s a must. Go ahead and start using it, if you still haven&#8217;t.</p>
<h3>IE Developer Toolbar</h3>
<p>You may be familiar with Developer Tools for IE8. Well, <a title="IE Developer Toolbar" rel="external" href="http://www.microsoft.com/downloads/details.aspx?familyid=e59c3964-672d-4511-bb3e-2d5e1db91038&amp;displaylang=en">IE Developer Toolbar</a> is practically the same tool for IE6 and IE7. And it&#8217;s provided together with IE Collection by default.</p>
<p>IE Developer Toolbar is easy to use and offers a broad set of options for general debugging. It can be compared to Web Developer add-on for Firefox.</p>
<h3>DebugBar</h3>
<p>All the features you&#8217;re missing from Developer Toolbar, can be found in <a title="DebugBar" rel="external" href="http://www.debugbar.com/">DebugBar</a>. In most cases, when you need to find something out of the document, this can be done with DebugBar. It&#8217;s very fast and reliable.</p>
<p>If I had to describe DebugBar in three words, I would definitely say &#8220;it just works!&#8221;.</p>
<h3>CompanionJS</h3>
<p><a title="Companion.js" rel="external" href="http://www.my-debugbar.com/wiki/CompanionJS/HomePage">Companion.js</a> integrates with IE and it can be briefly described as a simplified version of Firebug. Like I mentioned before, I&#8217;m not that favor for Firebug Lite on IE, and Companion.js feels much more comfortable for basic-level console logging and error reporting.</p>
<p>However, there are two clear disadvantages in Companion.js: 1) it doesn&#8217;t support methods like console.dir() yet, and 2) it causes occasional breakdowns with other development tools for IE.</p>
<h2 id="performancetesting">Performance Testing Tools</h2>
<p><img class="img_main" src="http://samuli.hakoniemi.net/wp-content/images/debugging-testing-ie/performancetesting.jpg" alt="Performance Testing" /></p>
<p>Client-side performance testing and optimization is a practice that hasn&#8217;t &#8220;existed&#8221; very long in Web Development. I mean it hasn&#8217;t been getting a lot of attention until recently.</p>
<p>As you might know, Internet Explorer (especially IE6) doesn&#8217;t perform as good as many other browsers. I was actually quite surprised when I started testing performance with IE that even very small things can really affect on performance.</p>
<p>I&#8217;m reviewing couple of performance testing tools that are also possible to implement in any browser, not just in Internet Explorer.</p>
<h3>dynaTrace AJAX</h3>
<p>If you&#8217;re using Speed Tracer on Google Chrome, then you&#8217;re going to love <a title="dynaTrace AJAX" rel="external" href="http://ajax.dynatrace.com/pages/">dynaTrace AJAX</a>. Like the name says, it&#8217;s meant for diagnosing and tracking AJAX and client-side scripting perfomance issues. But in addition, it offers valid tools for tracking rendering (painting) issues and network load in general.</p>
<p>dynaTrace AJAX isn&#8217;t the easiest tool to take in proper use. I was bit troubled on how to demonstrate this tool or prove the capabilities in it. Fortunately, my colleague posted a link to an article, which solved the problem: <a href="http://blog.dynatrace.com/2010/02/22/how-to-speed-up-sites-like-vancouver2010-com-by-more-than-50-in-5-minutes/">How to Speed Up sites like vancouver2010.com by more than 50% in 5 minutes</a>.</p>
<p>dynaTrace&#8217;s blog contains many more resources how to use this powerful tool. Read them, install dynaTrace AJAX and tackle all those nasty perfomance issues that freezes up your Internet Explorer :)</p>
<h3>MySpace&#8217;s Perfomance Tracker</h3>
<p>I&#8217;d say the name of this application is a bit distracting. But <a title="msfast" rel="external" href="http://msfast.myspace.com/">MySpace&#8217;s Perfomance Tracker</a>, or <a title="msfast - Project Home" rel="external" href="http://code.google.com/p/msfast/">&#8220;msfast&#8221; (project home)</a> is a browser plugin that help developers to improve their code performance by capturing and measuring possible bottlenecks on their web pages.</p>
<p>It&#8217;s very efficient tool for tracking loading and rendering issues, and in addition, it provides the validation results either in YSlow or MySpace&#8217;s own ruleset.</p>
<p>I had some problems when I tried to install Beta. But when I first installed the alpha version and afterwards upgraded it to the beta version, it started working properly.</p>
<h3>JSLitmus</h3>
<p><a title="Link to JSLitmus Website" rel="external" href="http://www.broofa.com/Tools/JSLitmus/">JSLitmus</a> is a lightweight tool for creating ad-hoc JavaScript benchmark tests. I really recommend JSLitmus for testing performance of your Javascript in general.</p>
<p>JSLitumus really provides additional value in Internet Explorer. As generally known, there are surprising Javascript issues that really can cause performance hit in Internet Explorer. And by creating even simple testcases, you&#8217;ll probably find the actual troublemakers.</p>
<h3>Fiddler2</h3>
<p><a title="Fiddler2" href="http://www.fiddler2.com/fiddler2/">Fiddler</a> is a Web Debugging Proxy which logs all HTTP(S) traffic. Fiddler allows you to inspect all HTTP(S) traffic, set breakpoints, and &#8220;fiddle&#8221; with incoming or outgoing data. Fiddler includes a powerful event-based scripting subsystem, and can be extended using any .NET language.</p>
<p>To be honest, I haven&#8217;t use Fiddler a lot. Mostly because performance issues I&#8217;ve encountered related to traffic on website has always been solved with another tool (in another browser). But Fiddler really provides a good and broad insight what&#8217;s actually happening between the browser and the server and offers a worthy set for tweaking details.</p>
<h2 id="otherresources">Other Resources</h2>
<p>While writing this article I encountered a tool called <a title="IEInspector" rel="external" href="http://www.ieinspector.com/">IEInspector</a>. It&#8217;s chargeable, but there&#8217;s a free trial version available. I didn&#8217;t have enough time to evaluate it, but you can always give it a try.</p>
<p>There&#8217;s also a listing at Microsoft Window&#8217;s website called <a title="Internet Explorer 8 Readiness Toolkit" rel="external nofollow" href="http://www.microsoft.com/windows/internet-explorer/readiness/testing-tools.aspx">Internet Explorer 8 Readiness Toolkit</a>, which is described as a list of convenient development and test tools to help test and modify applications to run on Internet Explorer 8.</p>
<p>There are probably other tools and resources that I&#8217;m probably not aware of. If you know good tools or resources for debugging and testing in Internet Explorer, go ahead and leave a comment.</p>
]]></content:encoded>
			<wfw:commentRss>http://samuli.hakoniemi.net/debugging-and-testing-in-internet-explorer-made-easy/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>10 Small Things You May Not Know About Javascript</title>
		<link>http://samuli.hakoniemi.net/10-small-things-you-may-not-know-about-javascript/</link>
		<comments>http://samuli.hakoniemi.net/10-small-things-you-may-not-know-about-javascript/#comments</comments>
		<pubDate>Thu, 18 Feb 2010 00:02:40 +0000</pubDate>
		<dc:creator>Samuli Hakoniemi</dc:creator>
				<category><![CDATA[Web Development]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[tips]]></category>

		<guid isPermaLink="false">http://samuli.hakoniemi.net/?p=150</guid>
		<description><![CDATA[In this article, I'll provide ten small Javascript tips, mainly aimed for beginner and intermediate Javascript developers.]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fsamuli.hakoniemi.net%2F10-small-things-you-may-not-know-about-javascript%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fsamuli.hakoniemi.net%2F10-small-things-you-may-not-know-about-javascript%2F&amp;source=zvona&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<p>[tweetmeme]<br />
It doesn&#8217;t matter how many years I&#8217;ve been dealing with Javascript &#8211; it contains many little things that surprises me almost every week. For me, Javascript means a constant learning process.</p>
<p>In this article, I&#8217;ll provide ten small Javascript tips, mainly aimed for beginner and intermediate Javascript developers. Hopefully there&#8217;s at least one useful tip for every reader :).</p>
<h2>1. Variables conversions</h2>
<p>This sounds quite obvious, but as far I&#8217;ve seen, using object constructors, like <i>Array()</i> or <i>Number()</i> for converting variables is quite common practice.</p>
<p>Always use primitive data types (sometimes referred as literals) for converting variables. These won&#8217;t do any extra tricks and they usually have better performance.</p>
<pre name="code" class="javascript:nocontrols">var myVar	= "3.14159",
	str		= ""+ myVar,//	to string
	int		= ~~myVar,	//	to integer
	float	= 1*myVar,	//	to float
	bool	= !!myVar,	/*	to boolean - any string with length
							and any number except 0 are true */
	array	= [myVar];	//	to array</pre>
<p>Converting to dates (new Date(myVar)) and regular expressions (new RegExp(myVar)) must be done with constructors. However, always use <i>/pattern/flags</i> when creating regular expressions.</p>
<h2>2. Converting decimals to hex or octals and vice versa</h2>
<p>Are you writing separate functions for hex (or octal) conversios? Stop. This can be easily done with existing methods:</p>
<pre name="code" class="javascript:nocontrols">(int).toString(16);	// converts int to hex, eg 12 => "C"
(int).toString(8);	// converts int to octal, eg. 12 => "14"
parseInt(string, 16) // converts hex to int, eg. "FF" => 255
parseInt(string, 8) // converts octal to int, eg. "20" => 16</pre>
<h2>3. More playing with numbers</h2>
<p>In addition to previous section, here are some more small tricks with when dealing with numbers.</p>
<pre name="code" class="javascript:nocontrols">0xFF; // Hex declaration, returns 255
020; // Octal declaration, returns 16
1e3; // Exponential, same as 1 * Math.pow(10,3), returns 1000
(1000).toExponential(); // Opposite with previous, returns 1e3
(3.1415).toFixed(3); // Rounding the number, returns "3.142"</pre>
<h2>4. Javascript Version Detection</h2>
<p>Are you aware which version of Javascript your browser supports? If not, check <a href="http://en.wikipedia.org/wiki/JavaScript#Versions" title="Wikipedia: Javascript Versions">Javascript Versions</a> sheet from Wikipedia.</p>
<p>For some reason, features in <a href="https://developer.mozilla.org/en/New_in_JavaScript_1.7" title="MDC: New in Javascript 1.7">Javascript version 1.7</a> are not widely supported. However, most browsers released within a year support features in version 1.8 (and in 1.8.1).</p>
<p>Note: all the versions of Internet Explorer (8 and older) supports only Javascript version 1.5.</p>
<p>Here&#8217;s a tiny script both for detecting the version of Javascript via feature detection. It also allows checking support for specific version of Javascript:</p>
<pre name="code" class="javascript:nocontrols">var JS_ver	= [];

(Number.prototype.toFixed)?JS_ver.push("1.5"):false;
([].indexOf &#038;&#038; [].forEach)?JS_ver.push("1.6"):false;
((function(){try {[a,b] = [0,1];return true;}catch(ex) {return false;}})())?JS_ver.push("1.7"):false;
([].reduce &#038;&#038; [].reduceRight &#038;&#038; JSON)?JS_ver.push("1.8"):false;
("".trimLeft)?JS_ver.push("1.8.1"):false;

JS_ver.supports	= function()
{
	if (arguments[0])
		return (!!~this.join().indexOf(arguments[0] +",") +",");
	else
		return (this[this.length-1]);
}

alert("Latest Javascript version supported: "+ JS_ver.supports());
alert("Support for version 1.7 : "+ JS_ver.supports("1.7"));</pre>
<h2>5. window.name for simple session handling</h2>
<p>This one is something I really like. You can assign values as a string for <i>window.name</i> property and it preserves the values until you close the tab or window.</p>
<p>Although I&#8217;m not providing any script, I strongly suggest you to take full advantage from it. For instance, it&#8217;s very useful for toggling between debugging and (perfomance) testing modes, when building a website or an application.</p>
<h2>6. Testing existence of property</h2>
<p>This issue can be approached at least from two directions. Either we check whether property exists or we check the type of property. But always avoid these small mistakes:</p>
<pre name="code" class="javascript:nocontrols">// BAD: This will cause an error in code when foo is undefined
if (foo) {
	doSomething();
} 

// GOOD: This doesn't cause any errors. However, even when
// foo is set to NULL or false, the condition validates as true
if (typeof foo != "undefined") {
	doSomething();
}

// BETTER: This doesn't cause any errors and in addition
// values NULL or false won't validate as true
if (window.foo) {
	doSomething();
}</pre>
<p>However, there may be situations, when we have deeper structure and proper checking would look like this:</p>
<pre name="code" class="javascript:nocontrols">// UGLY: we have to proof existence of every
// object before we can be sure property actually exists
if (window.oFoo &#038;&#038; oFoo.oBar &#038;&#038; oFoo.oBar.baz) {
	doSomething();
}</pre>
<h2>7. Passing arguments for function</h2>
<p>When function has both required and optional parameters (arguments), eventually we may end up with functions and function calls looking like this:</p>
<pre name="code" class="javascript:nocontrols">function doSomething(arg0, arg1, arg2, arg3, arg4) {
...
}

doSomething('', 'foo', 5, [], false);</pre>
<p>It&#8217;s always easier to pass only one object instead of several arguments:</p>
<pre name="code" class="javascript:nocontrols">function doSomething() {
	// Leaves the function if nothing is passed
	if (!arguments[0]) {
		return false;
	}

	var oArgs	= arguments[0]
		arg0	= oArgs.arg0 || "",
		arg1	= oArgs.arg1 || "",
		arg2	= oArgs.arg2 || 0,
		arg3	= oArgs.arg3 || [],
		arg4	= oArgs.arg4 || false;
}

doSomething({
	arg1	: "foo",
	arg2	: 5,
	arg4	: false
});
</pre>
<p>This is only a rough example of passing an object as an argument. For instance, we could declare an object with name of the variable as keys and default values as properties (and/or data types).</p>
<h2>8. Using document.createDocumentFragment()</h2>
<p>You may need to dynamically append multiple elements into document. However, appending them directly into document will fire redrawing of whole view every time, which causes perfomance penalty. Instead, you should use document fragments, which are appended only once after completion:</p>
<pre name="code" class="javascript:nocontrols">function createList() {
	var aLI	= ["first item", "second item", "third item",
		"fourth item", "fith item"];

	// Creates the fragment
	var oFrag	= document.createDocumentFragment();

	while (aLI.length) {
		var oLI	= document.createElement("li");

		// Removes the first item from array and appends it
		// as a text node to LI element
		oLI.appendChild(document.createTextNode(aLI.shift()));
		oFrag.appendChild(oLI);
	}

	document.getElementById('myUL').appendChild(oFrag);
}</pre>
<h2>9. Passing a function for replace() method</h2>
<p>There are situations when you want to replace specific parts of the string with specific values. The best way of doing this would be passing a separate function for method String.replace().</p>
<p>Following example is a rough implementation of making a more verbose output from a single deal in online poker:</p>
<pre name="code" class="javascript:nocontrols">var sFlop	= "Flop: [Ah] [Ks] [7c]";
var aValues	= {"A":"Ace","K":"King",7:"Seven"};
var aSuits	= {"h":"Hearts","s":"Spades",
			"d":"Diamonds","c":"Clubs"};

sFlop	= sFlop.replace(/\[\w+\]/gi, function(match) {
	match	= match.replace(match[2], aSuits[match[2]]);
	match	= match.replace(match[1], aValues[match[1]] +" of ");

	return match;
});

// string sFlop now contains:
// "Flop: [Ace of Hearts] [King of Spades] [Seven of Clubs]"
</pre>
<h2>10. Labeling of loops (iterations)</h2>
<p>Sometimes, you may have iterations inside iterations and you may want to exit between looping. This can be done by labeling:</p>
<pre name="code" class="javascript:nocontrols">outerloop:
for (var iI=0;iI<5;iI++) {
	if (somethingIsTrue()) {
		// Breaks the outer loop iteration
		break outerloop;
	}

	innerloop:
	for (var iA=0;iA<5;iA++) {
		if (somethingElseIsTrue()) {
			// Breaks the inner loop iteration
			break innerloop;
		}

	}
}</pre>
<h2>Afterwords</h2>
<p>Go ahead and comment! Did you learn anything new? Do you have good tips to share? I'm always delighted for sharing information about all the little details in Javascript.</p>
<p>And if you want to familiarize with Javascript irregularities, I suggest you visiting at <a rel="external" href="http://wtfjs.com/" title="wtfjs">wtfjs</a> :).</p>
]]></content:encoded>
			<wfw:commentRss>http://samuli.hakoniemi.net/10-small-things-you-may-not-know-about-javascript/feed/</wfw:commentRss>
		<slash:comments>22</slash:comments>
		</item>
		<item>
		<title>Webdev Weekly #2 &#8211; jQuery 1.4 Edition</title>
		<link>http://samuli.hakoniemi.net/webdev-weekly-2-jquery-1-4-edition/</link>
		<comments>http://samuli.hakoniemi.net/webdev-weekly-2-jquery-1-4-edition/#comments</comments>
		<pubDate>Wed, 20 Jan 2010 07:19:17 +0000</pubDate>
		<dc:creator>Samuli Hakoniemi</dc:creator>
				<category><![CDATA[Web Development]]></category>
		<category><![CDATA[weekly]]></category>

		<guid isPermaLink="false">http://samuli.hakoniemi.net/?p=137</guid>
		<description><![CDATA[There was at least one major event last week related to web development, when the latest version of jQuery was released. This article covers the highlights and most important resources about jQuery 1.4, but in addition includes many other quality resources for web developers.]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fsamuli.hakoniemi.net%2Fwebdev-weekly-2-jquery-1-4-edition%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fsamuli.hakoniemi.net%2Fwebdev-weekly-2-jquery-1-4-edition%2F&amp;source=zvona&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<p>There was at least one major event last week related to web development, when the latest version of jQuery was released. This article covers the highlights and most important resources about jQuery 1.4, but in addition includes many other quality resources for web developers.</p>
<h2>jQuery 1.4</h2>
<div class="wd">
<p><a href="http://jquery14.com/day-01/jquery-14" title="jQuery 1.4 Released">jQuery 1.4 Released</a></p>
<p class="brief">A general release announcement of jQuery 1.4, provided by the official jQuery 1.4 author, <i>The 14 Days of jQuery</i>.</p>
<p><a href="http://samuli.hakoniemi.net/jquery-1-4-fully-released/" title="jQuery 1.4 Fully Released">jQuery 1.4 Fully Released</a></p>
<p class="brief">My quick post about jQuery 1.4 almost right after it was released.</p>
<p><a href="http://net.tutsplus.com/tutorials/javascript-ajax/jquery-1-4-released-the-15-new-features-you-must-know/" title="jQuery 1.4 Released: The 15 New Features you Must Know">jQuery 1.4 Released: The 15 New Features you Must Know</a></p>
<p class="brief">Good insight in new features of jQuery 1.4, provided by <i>NetTuts+</i>.</p>
<p><a href="http://www.w3avenue.com/2010/01/14/jquery-14-resources-for-developers/" title="jQuery 1.4 Resources For Developers">jQuery 1.4 Resources For Developers</a></p>
<p class="brief">Collection of resources about jQuery 1.4, provided by <i>W3 Avenue</i>.</p>
<p><a href="http://www.tripwiremagazine.com/2010/01/jquery-1.4-released-sneak-peek-on-new-features-and-enhancements.html" title="jQuery 1.4 Released: Sneak Peek on New Features and Enhancements">jQuery 1.4 Released: Sneak Peek on New Features and Enhancements</a></p>
<p class="brief">And another, useful article about jQuery 1.4, provided by <i>tripwire magazine</i>.</p>
</div>
<h2>General Web Development</h2>
<div class="wd">
<p><a href="http://www.smashingmagazine.com/2010/01/12/45-powerful-css-javascript-techniques/" title="45 Powerful CSS/JavaScript-Techniques">45 Powerful CSS/JavaScript-Techniques</a></p>
<p class="brief">A very useful collection of various CSS and Javascript resources, provided by <i>Smashing Magazine</i>.</p>
<p><a href="http://www.webdesignbooth.com/33-beautiful-social-media-icon-sets-for-designers-and-bloggers/" title="33 Beautiful Social Media Icon Sets For Designers And Bloggers">33 Beautiful Social Media Icon Sets For Designers And Bloggers</a></p>
<p class="brief">A good collection of icons. Far better than usual, in my opinion.</p>
</div>
<h2>HTML and CSS</h2>
<div class="wd">
<p><a href="http://www.webdesignerdepot.com/2010/01/css-transitions-101/" title="CSS Transitions 101">CSS Transitions 101</a></p>
<p class="brief">Nice and comprehensive article about CSS3 Transitions.</p>
</div>
<h2>Javascript and Scripting Frameworks</h2>
<div class="wd">
<p><a href="http://james.padolsey.com/javascript/jquery-lint/" title="jQuery Lint">jQuery Lint</a></p>
<p class="brief">jQuery Lint is a script written by <i>James Padolsey</i>, which evaluates jQuery code and reports any errors or incorrect usage.</p>
<p><a href="http://www.keithclark.co.uk/labs/ie-css3/" title="IE CSS3 pseudo selectors">IE CSS3 pseudo selectors</a></p>
<p class="brief"><i>ie-css3.js</i> allows Internet Explorer to identify CSS3 pseudo selectors and render any style rules defined with them. This project is still in progress, but it looks very promising.</p>
<p><a href="http://ajaxian.com/archives/gordon-flash-runtime-implemented-in-javascript" title="Gordon: Flash Runtime Implemented in Javascript">Gordon: Flash Runtime Implemented in Javascript</a></p>
<p class="brief"><i>Tobias Schneider</i> has built a Flash runtime that works right in the browser. It&#8217;s implemented in pure Javascript and HTML5. Very nice work, indeed!</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://samuli.hakoniemi.net/webdev-weekly-2-jquery-1-4-edition/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>jQuery 1.4 fully released</title>
		<link>http://samuli.hakoniemi.net/jquery-1-4-fully-released/</link>
		<comments>http://samuli.hakoniemi.net/jquery-1-4-fully-released/#comments</comments>
		<pubDate>Thu, 14 Jan 2010 08:03:37 +0000</pubDate>
		<dc:creator>Samuli Hakoniemi</dc:creator>
				<category><![CDATA[Web Development]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[jquery]]></category>

		<guid isPermaLink="false">http://samuli.hakoniemi.net/?p=132</guid>
		<description><![CDATA[<a href="http://code.jquery.com/jquery-1.4.js" title="jQuery 1.4">Full version of jQuery 1.4</a> was released some time ago. Also, the final version of <a href="http://api.jquery.com/category/version/1.4/" title="jQuery 1.4 API">jQuery 1.4 API</a> is now published.

Go ahead and give it a try. And remember to keep yourself updated by the action and buzz around jQuery 1.4 by following <a href="http://jquery14.com/" title="The 14 Days of jQuery">The 14 Days of jQuery</a> event.


]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fsamuli.hakoniemi.net%2Fjquery-1-4-fully-released%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fsamuli.hakoniemi.net%2Fjquery-1-4-fully-released%2F&amp;source=zvona&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<p><a href="http://code.jquery.com/jquery-1.4.js" title="jQuery 1.4">Full version of jQuery 1.4</a> (<a href="http://code.jquery.com/jquery-1.4.min.js" title="Minified version of jQuery 1.4">minified</a>) was released some time ago. Also, the final version of <a href="http://api.jquery.com/category/version/1.4/" title="jQuery 1.4 API">jQuery 1.4 API</a> is now published.</p>
<p>Go ahead and give it a try. And remember to keep yourself updated by the action and buzz around jQuery 1.4 by following <a href="http://jquery14.com/" title="The 14 Days of jQuery">The 14 Days of jQuery</a> event.</p>
]]></content:encoded>
			<wfw:commentRss>http://samuli.hakoniemi.net/jquery-1-4-fully-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Webdev Weekly #1</title>
		<link>http://samuli.hakoniemi.net/webdev-weekly-1/</link>
		<comments>http://samuli.hakoniemi.net/webdev-weekly-1/#comments</comments>
		<pubDate>Tue, 12 Jan 2010 21:35:47 +0000</pubDate>
		<dc:creator>Samuli Hakoniemi</dc:creator>
				<category><![CDATA[Web Development]]></category>
		<category><![CDATA[weekly]]></category>

		<guid isPermaLink="false">http://samuli.hakoniemi.net/?p=129</guid>
		<description><![CDATA[Here, I've gathered some of the top HTML, CSS, Javascript and General Web Development resources from 1st week of 2010.]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fsamuli.hakoniemi.net%2Fwebdev-weekly-1%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fsamuli.hakoniemi.net%2Fwebdev-weekly-1%2F&amp;source=zvona&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<p>Past week seemed a bit silent, but here are the top resources I located:</p>
<h2>General Web Development</h2>
<div class="wd">
<p><a title="Website Performance: What To Know and What You Can Do" href="http://www.smashingmagazine.com/2010/01/06/page-performance-what-to-know-and-what-you-can-do/">Website Performance: What To Know and What You Can Do</a></p>
<p class='brief'>Detailed information, tips and tools for website performance optimization.</p>
</div>
<h2>HTML and CSS</h2>
<div class="wd">
<p><a title="CSS background transparency without affecting child elements, through RGBa and filters" href="http://robertnyman.com/2010/01/11/css-background-transparency-without-affecting-child-elements-through-rgba-and-filters/">CSS background transparency without affecting child elements, through RGBa and filters</a></p>
<p class='brief'>An excellent article from <b>Robert Nyman</b> about using RGBa values for gaining transparency.</p>
<p><a title="CSS3 + Progressive Enhancement = Smart Design" href="http://perishablepress.com/press/2010/01/11/css3-progressive-enhancement-smart-design/">CSS3 + Progressive Enhancement = Smart Design</a></p>
<p class='brief'>Another good introduction for harnessing the power of CSS3 without causing any troubles with older user agents.</p>
</div>
<h2>Javascript and Scripting Frameworks</h2>
<div class="wd">
<p><a title="The 14 Days of jQuery" href="http://jquery14.com/">The 14 Days of jQuery</a></p>
<p class='brief'>This actually launches near 14th of January, but was already published last week. An excellent &#8220;event&#8221; to follow after jQuery 1.4 gets released.</p>
<p><a title="Understanding delete" href="http://perfectionkills.com/understanding-delete/">Understanding delete</a></p>
<p class='brief'>A very nice article, where Javascript&#8217;s delete method explained thoroughly. Obviously I haven&#8217;t been only one banging my head against wall with delete()&#8230; :D</p>
</div>
<h2>User Experience and Usability</h2>
<div class="wd">
<p><a title="52 Weeks of UX" href="http://52weeksofux.com/">52 Weeks of UX</a></p>
<p class='brief'>A very nice and continuous resource for User Experience lovers. It haven&#8217;t started yet with full power, but at least my personal expectations are high.</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://samuli.hakoniemi.net/webdev-weekly-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Dynamic page generated in 0.580 seconds. -->
<!-- Cached page generated by WP-Super-Cache on 2010-07-29 14:31:30 -->
