<?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>Tyler Madison</title>
	<atom:link href="http://blog.tylermadison.info/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.tylermadison.info</link>
	<description>Creative Developer</description>
	<lastBuildDate>Fri, 16 Mar 2012 20:19:01 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>GZIP Compression in a Nutshell</title>
		<link>http://blog.tylermadison.info/webdev/gzip-compression-in-a-nutshell/</link>
		<comments>http://blog.tylermadison.info/webdev/gzip-compression-in-a-nutshell/#comments</comments>
		<pubDate>Tue, 06 Mar 2012 20:11:07 +0000</pubDate>
		<dc:creator>Tyler Madison</dc:creator>
				<category><![CDATA[performance]]></category>
		<category><![CDATA[webdev]]></category>

		<guid isPermaLink="false">http://blog.tylermadison.info/?p=128</guid>
		<description><![CDATA[I finally have had some time to wrap my head around a number of lingering topics lately one of them being GZIP Compression. When the client (your browser) requests a page from a web server it sends along HTTP headers with the request, one of the header fields includes Accept Encoding: which tells the web server what [...]]]></description>
			<content:encoded><![CDATA[<p>I finally have had some time to wrap my head around a number of lingering topics lately one of them being GZIP Compression. When the client (your browser) requests a page from a web server it sends along HTTP headers with the request, one of the <a href="http://en.wikipedia.org/wiki/List_of_HTTP_header_fields">header fields</a> includes <em>Accept Encoding: </em>which tells the web server what <a title="HTTP Compression Wiki" href="http://en.wikipedia.org/wiki/HTTP_compression">HTTP compression</a> formats it is willing to accept when the server responds.</p>
<p>Most modern browsers are able to accept <em>GZIP, deflate</em> which allows the server to fetch the requested document and compress it before sending it back to the client, where it is then essentially uncompressed on the client (your browser) side. This reduces both load time and bandwidth. Seems like a win win situation to me, considering how instantaneous <a title="Impatient Web Users" href="http://www.nytimes.com/2012/03/01/technology/impatient-web-users-flee-slow-loading-sites.html?_r=2" target="_blank">users are expecting</a> to see and be able to interact with your pages.</p>
<p>Sample Implementation to include in your .htaccess file:</p>
<p><em># compress text, html, javascript, css, xml:</em><br />
<em> AddOutputFilterByType DEFLATE text/plain</em><br />
<em> AddOutputFilterByType DEFLATE text/html</em><br />
<em> AddOutputFilterByType DEFLATE text/xml</em><br />
<em> AddOutputFilterByType DEFLATE text/css</em><br />
<em> AddOutputFilterByType DEFLATE application/xml</em><br />
<em> AddOutputFilterByType DEFLATE application/xhtml+xml</em><br />
<em> AddOutputFilterByType DEFLATE application/rss+xml</em><br />
<em> AddOutputFilterByType DEFLATE application/javascript</em><br />
<em> AddOutputFilterByType DEFLATE application/x-javascript</em></p>
<p>This compression method along with concatenating and minifying scripts and css files, should be used on all HTML,CSS, and JavaScript files. Most images have some type of compression already on them so its not as big of a deal to worry about them so much using this technique.  Further research and explanation on implementation can be found  <a title="How To Optimize Your Site With GZIP Compression" href="http://betterexplained.com/articles/how-to-optimize-your-site-with-gzip-compression/" target="_blank">here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.tylermadison.info/webdev/gzip-compression-in-a-nutshell/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Navigation Timing API</title>
		<link>http://blog.tylermadison.info/webdev/navigation-timing-api/</link>
		<comments>http://blog.tylermadison.info/webdev/navigation-timing-api/#comments</comments>
		<pubDate>Tue, 06 Mar 2012 19:52:11 +0000</pubDate>
		<dc:creator>Tyler Madison</dc:creator>
				<category><![CDATA[performance]]></category>
		<category><![CDATA[webdev]]></category>

		<guid isPermaLink="false">http://blog.tylermadison.info/?p=114</guid>
		<description><![CDATA[The Navigation Timing API introduces a JavaScript interface for gaining access into key insights into the performance times of each of the stages of page load. With over 21 attributes that break down page load, you can draw some interesting and informative conclusions about where your page or server times may be bottlenecking. As the [...]]]></description>
			<content:encoded><![CDATA[<p>The <a title="Navigation Timing API" href="https://dvcs.w3.org/hg/webperf/raw-file/tip/specs/NavigationTiming/Overview.html#sec-navigation-timing-interface#sec-navigation-timing" target="_blank">Navigation Timing API</a> introduces a JavaScript interface for gaining access into key insights into the performance times of each of the stages of page load. With over 21 attributes that break down page load, you can draw some interesting and informative conclusions about where your page or server times may be bottlenecking. As the page loads these various timings are captured and stored in epoch time on the window.performance.timing object. You can see below at what point these timings occur during load.</p>
<p><a href="https://dvcs.w3.org/hg/webperf/raw-file/tip/specs/NavigationTiming/timing-overview.png"><img class="alignnone" title="Timing attributes" src="https://dvcs.w3.org/hg/webperf/raw-file/tip/specs/NavigationTiming/timing-overview.png" alt="Timing attributes" width="550" /></a></p>
<p>Useful benchmarking calculations with some of the 21 attributes:</p>
<ul>
<li><strong>Document parsing</strong>: domInteractive &#8211; domLoading</li>
<li><strong>Network Latency</strong>: responseEnd &#8211; fetchStart</li>
<li><strong>Page load time</strong>: loadEventEnd &#8211; responseEnd</li>
<li><strong>Navigation and page load time</strong>: loadEventEnd &#8211; navigationStart</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.tylermadison.info/webdev/navigation-timing-api/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Faster Websites</title>
		<link>http://blog.tylermadison.info/webdev/faster-websites/</link>
		<comments>http://blog.tylermadison.info/webdev/faster-websites/#comments</comments>
		<pubDate>Tue, 06 Mar 2012 19:38:17 +0000</pubDate>
		<dc:creator>Tyler Madison</dc:creator>
				<category><![CDATA[performance]]></category>
		<category><![CDATA[webdev]]></category>

		<guid isPermaLink="false">http://blog.tylermadison.info/?p=107</guid>
		<description><![CDATA[While working at Odopod for the past month or so one thing has become clear, performance! We are striving to make educated decisions about development and think critically about the future of our sites once they are released into the wild. I quickly wanted to share some findings that each have days worth of research [...]]]></description>
			<content:encoded><![CDATA[<p>While working at <a title="Odopod" href="http://www.odopod.com" target="_blank">Odopod</a> for the past month or so one thing has become clear, performance! We are striving to make educated decisions about development and think critically about the future of our sites once they are released into the wild. I quickly wanted to share some findings that each have days worth of research behind them. Without further ado, here is my work in progress list of things one should consider when developing and planning for a new site.</p>
<p>• GZIP Compression on HTML,CSS and JavaScript files in .htaccess or IIS server config</p>
<p>• Optimize images using OptiPNG</p>
<p>• Minify and concatenate JavaScript into as little amount of files as possible</p>
<p>• Minify CSS and HTML as much as possible – usually stripping unnecessary whitespace and comments</p>
<p>• Include JavaScript at the bottom of the page just inside the closing body tag</p>
<p>• Load JavaScript asynchronously / or dynamically</p>
<p>• Keep users happy with minimal script execution times &lt; 50ms</p>
<p>• Lazy load images</p>
<p>• Allow your scripts to breath so that they don’t make the UI unresponsive – i.e. processor intensive calculations/looping etc.</p>
<p>• Start with mobile, make content the priority to the user, add functionality and eye candy progressively with more capabilities.</p>
<p>• Use feature detection libraries such as Modernizr instead of browser detection/user agent sniffing</p>
<p>• Limit HTTP requests</p>
<p>• Add an Expires Header on all components &#8211; scripts,stylesheets and flash</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.tylermadison.info/webdev/faster-websites/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

