<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <link href="https://friendlybit.com/feed/" rel="self" type="application/atom+xml" />
    <link href="https://friendlybit.com/" rel="alternate" type="text/html" />
    <updated>2010-01-11T01:04:33+01:00</updated>
    <id>https://friendlybit.com</id>
    <title type="html">Friendly Bit - Web development blog</title>
    <subtitle>Friendly Bit is a blog by Emil Stenström, a Swedish web developer that occasionally gets ideas of how to improve the internet.</subtitle>
    
        <entry>
            <title type="html">Rendering a web page – step by step</title>
            <link href="http://friendlybit.com/css/rendering-a-web-page-step-by-step/" rel="alternate" type="text/html" title="Rendering a web page – step by step" />
            <published>2010-01-11T01:04:33+01:00</published>
            <updated>2010-01-11T01:04:33+01:00</updated>
            <id>http://friendlybit.com/css/rendering-a-web-page-step-by-step/</id>
            <author>
                <name>Emil Stenström</name>
            </author>
            <summary type="text">Have you ever thought about what happens when you surf the web? It&#39;s not as simple as it seems: You type an URL into address bar in your preferred browser....</summary>
            <content type="html" xml:base="http://friendlybit.com/css/rendering-a-web-page-step-by-step/">
                &lt;p&gt;Have you ever thought about what happens when you surf the web? It&#39;s not as simple as it seems:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;You &lt;strong&gt;type an URL&lt;/strong&gt; into address bar in your preferred browser.&lt;/li&gt;
&lt;li&gt;The browser &lt;strong&gt;parses the URL&lt;/strong&gt; to find the protocol, host, port, and path.&lt;/li&gt;
&lt;li&gt;It &lt;strong&gt;forms a HTTP request&lt;/strong&gt; (that was most likely the protocol)&lt;/li&gt;
&lt;li&gt;To reach the host, it first needs to &lt;strong&gt;translate&lt;/strong&gt; the human readable host &lt;strong&gt;into an IP number&lt;/strong&gt;, and it does this by doing a DNS lookup on the host&lt;/li&gt;
&lt;li&gt;Then a &lt;strong&gt;socket needs to be opened&lt;/strong&gt; from the user&#39;s computer to that IP number, on the port specified (most often port 80)&lt;/li&gt;
&lt;li&gt;When a connection is open, the &lt;strong&gt;HTTP request is sent&lt;/strong&gt; to the host&lt;/li&gt;
&lt;li&gt;The host &lt;strong&gt;forwards the request&lt;/strong&gt; to the server software (most often Apache) configured to listen on the specified port&lt;/li&gt;
&lt;li&gt;The &lt;strong&gt;server inspects the request&lt;/strong&gt; (most often only the path), and &lt;strong&gt;launches the server plugin needed&lt;/strong&gt; to handle the request (corresponding to the server language you use, PHP, Java, .NET, Python?)&lt;/li&gt;
&lt;li&gt;The plugin gets access to the full request, and starts to prepare a HTTP response.&lt;/li&gt;
&lt;li&gt;To construct the response a &lt;strong&gt;database&lt;/strong&gt; is (most likely) &lt;strong&gt;accessed&lt;/strong&gt;. A database search is made, based on parameters in the path (or data) of the request&lt;/li&gt;
&lt;li&gt;Data from the database, together with other information the plugin decides to add, is &lt;strong&gt;combined into a long string&lt;/strong&gt; of text (probably HTML).&lt;/li&gt;
&lt;li&gt;The plugin &lt;strong&gt;combines&lt;/strong&gt; that data with some meta data (in the form of HTTP headers), and &lt;strong&gt;sends the HTTP response&lt;/strong&gt; back to the browser.&lt;/li&gt;
&lt;li&gt;The browser receives the response, and &lt;strong&gt;parses the HTML&lt;/strong&gt; (which with 95% probability is broken) in the response&lt;/li&gt;
&lt;li&gt;A &lt;strong&gt;DOM tree is built&lt;/strong&gt; out of the broken HTML&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;New requests are made&lt;/strong&gt; to the server for each new resource that is found in the HTML source (typically images, style sheets, and JavaScript files). Go back to step 3 and repeat for each resource.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Stylesheets are parsed&lt;/strong&gt;, and the rendering information in each gets attached to the matching node in the DOM tree&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Javascript is parsed and executed&lt;/strong&gt;, and DOM nodes are moved and style information is updated accordingly&lt;/li&gt;
&lt;li&gt;The browser &lt;strong&gt;renders the page&lt;/strong&gt; on the screen according to the DOM tree and the style information for each node&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;You&lt;/strong&gt; &lt;strong&gt;see&lt;/strong&gt; the page on the screen&lt;/li&gt;
&lt;li&gt;You get annoyed the whole process was too slow.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;I, too, get annoyed when the above steps take longer than one tenth of a second. But now at least I have some documentation to look at, while waiting the remaining fractions of a second before the page renders.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;http://www.flickr.com/photos/amboo213/115034446/sizes/s/&#34;&gt;&lt;img class=&#34;alignnone&#34; title=&#34;Spoiled dog - by amboo213 on Flickr&#34; src=&#34;http://farm1.static.flickr.com/45/115034446_8bf43c2273_m.jpg&#34; alt=&#34;Spoiled dog&#34; width=&#34;240&#34; height=&#34;180&#34; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Spoiled we are, all of us.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;(Feel free to add more steps, through the comments…)&lt;/em&gt;&lt;/p&gt;

            </content>
        </entry>
    
        <entry>
            <title type="html">Google Chrome as an Internet Explorer plugin</title>
            <link href="http://friendlybit.com/browsers/google-chrome-as-an-internet-explorer-plugin/" rel="alternate" type="text/html" title="Google Chrome as an Internet Explorer plugin" />
            <published>2009-09-23T16:15:49+02:00</published>
            <updated>2009-09-23T16:15:49+02:00</updated>
            <id>http://friendlybit.com/browsers/google-chrome-as-an-internet-explorer-plugin/</id>
            <author>
                <name>Emil Stenström</name>
            </author>
            <summary type="text">I just encountered a quite mindboggling piece of news on the Google Wave blog. It seems they have decided not to support Internet Explorer at all. Not IE6,...</summary>
            <content type="html" xml:base="http://friendlybit.com/browsers/google-chrome-as-an-internet-explorer-plugin/">
                &lt;p&gt;I just encountered a quite mindboggling piece of news on the Google Wave blog. It seems they have decided &lt;strong&gt;not to support Internet Explorer at all&lt;/strong&gt;. Not IE6, IE7 or IE8. Surprised? I sure was. What&#39;s even better is that to still give these users the opportunity to use Google Wave, they&#39;ve built a plugin for Internet Explorer, that loads the &lt;a href=&#34;http://googlewavedev.blogspot.com/2009/09/google-wave-in-internet-explorer.html&#34;&gt;Chrome browser with Google Wave inside it&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;What?&lt;/strong&gt; Load a browser as a plugin inside another one? I guess this is a real war after all? Who will build the first browser to load Firefox into Chrome? Internet Explorer inside Firefox?&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Why?&lt;/strong&gt; Well, now they don&#39;t have to care about Internet Explorer support at all. Felt that heavy weight lift from your shoulders? Suddenly large parts of HTML5, CSS3, and modern javascript, is available to them, with no backporting and performance tuning needed. Must be fabulous.&lt;/p&gt;
&lt;p&gt;Now. Combine that with the possibility for the developer to &lt;a href=&#34;http://blog.chromium.org/2009/09/introducing-google-chrome-frame.html&#34;&gt;choose when to trigger the different browsers&lt;/a&gt;. We&#39;re up for a whole new ride. You&#39;re invited.&lt;/p&gt;

            </content>
        </entry>
    
        <entry>
            <title type="html">Techniques to use when IE6 dies</title>
            <link href="http://friendlybit.com/css/techniques-to-use-when-ie6-dies/" rel="alternate" type="text/html" title="Techniques to use when IE6 dies" />
            <published>2009-08-26T23:54:51+02:00</published>
            <updated>2009-08-26T23:54:51+02:00</updated>
            <id>http://friendlybit.com/css/techniques-to-use-when-ie6-dies/</id>
            <author>
                <name>Emil Stenström</name>
            </author>
            <summary type="text">Everyone except Microsoft themselves are talking about the death of IE6. I&#39;ve tried motivating people to drop support, arguing that you at least can show...</summary>
            <content type="html" xml:base="http://friendlybit.com/css/techniques-to-use-when-ie6-dies/">
                &lt;p&gt;Everyone &lt;a href=&#34;http://www.eweek.com/c/a/Windows/Microsoft-Internet-Explorer-6-Support-Continues-Despite-Calls-for-PhaseOut-307122/&#34;&gt;except Microsoft themselves&lt;/a&gt; are talking about the death of IE6. I&#39;ve tried &lt;a href=&#34;/browsers/motivation-for-building-for-ie6/&#34;&gt;motivating people to drop support&lt;/a&gt;, arguing that you at least can show IE6 users a message. Many have replied with &amp;quot;but our IT department doesn&#39;t let us…&amp;quot;, and I can say nothing more than that the IT department is filled with humans. Which means they are lazy, and upgrade when people whine enough about it. It&#39;s a shame it has to be that way, that we have to &lt;a href=&#34;http://www.ie6nomore.com/corporate-users.html&#34;&gt;punish people for their IT departments&lt;/a&gt;, but that&#39;s how it has to be.&lt;/p&gt;
&lt;p&gt;As &lt;strong&gt;web developers&lt;/strong&gt;, we should be the ones complaining the loudest. We have so much to win on IE6:s death it&#39;s silly. Just look at the below list of things IE6 can&#39;t do, but IE7 can (the next worst browser):&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Native PNG alpha transparency without silly hacks.&lt;/li&gt;
&lt;li&gt;Several selectors: Child selector (&amp;quot;&amp;gt;&amp;quot;), Adjacent sibling selector (&amp;quot;+&amp;quot;), Attribute selectors ([attr=value]), and &lt;a href=&#34;http://www.w3.org/TR/css3-selectors/#general-sibling-combinators&#34;&gt;General sibling selector&lt;/a&gt; (&amp;quot;~&amp;quot;, CSS3)&lt;/li&gt;
&lt;li&gt;Min-height, Max-height, Min-width, Max-width&lt;/li&gt;
&lt;li&gt;Multiple class/id selectors in the same ruleset (ie. .class1.class2 { … })&lt;/li&gt;
&lt;li&gt;:hover on all elements, not just links&lt;/li&gt;
&lt;li&gt;position: fixed&lt;/li&gt;
&lt;li&gt;Native XMLHTTP (Without ActiveX)&lt;/li&gt;
&lt;li&gt;International Domain Names (IDN), the ability to use UTF-8 chars in domains&lt;/li&gt;
&lt;li&gt;Page zoom that zooms the whole page (don&#39;t worry about zoom)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This is a huge step forward for us web developers. Huge! Bigger then when CSS3 comes out, because we won&#39;t be able to use that one for years. Someone is pushing the front of what&#39;s possible, I&#39;m pushing for the front of what&#39;s &lt;strong&gt;usable&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;What can you do to help me get everything in the above list? And, did I forget something?&lt;/p&gt;
&lt;p&gt;Sources:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;http://www.quirksmode.org/css/contents.html&#34;&gt;CSS Compatibility charts&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;http://blogulate.com/content/new-features-of-internet-explorer-7/&#34;&gt;IE6 vs IE7 - New features in Internet Explorer 7&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

            </content>
        </entry>
    
        <entry>
            <title type="html">Custom fonts using Cufón</title>
            <link href="http://friendlybit.com/browsers/custom-fonts-using-cufon/" rel="alternate" type="text/html" title="Custom fonts using Cufón" />
            <published>2009-05-08T20:20:17+02:00</published>
            <updated>2009-05-08T20:20:17+02:00</updated>
            <id>http://friendlybit.com/browsers/custom-fonts-using-cufon/</id>
            <author>
                <name>Emil Stenström</name>
            </author>
            <summary type="text">If you&#39;ve worked with webdev professionally you know how it goes. &#34;Why can&#39;t a company with a strong visual brand get to use their own font?&#34;, the designer...</summary>
            <content type="html" xml:base="http://friendlybit.com/browsers/custom-fonts-using-cufon/">
                &lt;p&gt;If you&#39;ve worked with webdev professionally you know how it goes. &amp;quot;Why can&#39;t a company with a strong visual brand get to use their own font?&amp;quot;, the designer asks. Then a long discussion about web fonts follow, where you decide to replace the font with a &amp;quot;web safe&amp;quot; font instead. Or do you?&lt;/p&gt;
&lt;p&gt;You could think it&#39;s strange that in 2009, we can&#39;t use any fonts we want on the web, and I would fully agree. You could ask whose fault that is, and I would reply with a quote from a &lt;a href=&#34;http://www.w3.org/Fonts/Misc/minutes-2008-10&#34;&gt;meeting between browser makers in august 2008&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;My understanding, from Chris, is that supporting direct linking of the fonts would be a great disservice to the independent font industry. &lt;strong&gt;A high-level decision within MS&lt;/strong&gt; says we won&#39;t implement that in IE. So what is done other than EOT is [probably] not going to interop with IE. &amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&amp;quot;MS&amp;quot; is of course Microsoft, and &amp;quot;Chris&amp;quot;, is referring to Chris Wilson, Platform Architect of the Internet Explorer Platform team. The same Chris has also written a &lt;a href=&#34;http://cwilso.com/2008/07/23/fonts-embedding-vs-linking/&#34;&gt;longer text about font linking&lt;/a&gt; on his blog. I first thought that this was something the font foundries had pushed through, but on the above post it seems that this is also a personal opinion. Browsers (but only IE) need to protect fonts from getting pirated.&lt;/p&gt;
&lt;p&gt;And that&#39;s the whole reason why we don&#39;t have cross-browser fonts on the web today. (Although direct linking to fonts work in all the latest versions of Firefox, Opera, and Safari). Nice isn&#39;t it?&lt;/p&gt;
&lt;h2 id=&#34;embedding-fonts-anyway&#34;&gt;Embedding fonts anyway&lt;a href=&#34;#embedding-fonts-anyway&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Of course, there&#39;s still a need to embed custom fonts on webpages. That means clever developers will develop techniques will work around a broken internet explorer. No matter what the font founderies and Internet Explorer team thinks.&lt;/p&gt;
&lt;p&gt;My reasoning for why this is a good thing is because that&#39;s how everything else works in the browser. Even though anyone can copy an image, we have a big market for stock images. Even though anyone can copy the HTML, CSS, and Javascript of a whole site, we still have people building websites for money. &lt;strong&gt;Fonts are no different&lt;/strong&gt;, and the exact same business model that works for stock images can work for fonts.&lt;/p&gt;
&lt;p&gt;***&lt;/p&gt;
&lt;p&gt;One popular technique is sIFR, a way to use javascript to replace regular html with flash. Inside the flash you embed the font you want, and voilá, you can use any font you want. sIFR misses one crucial point though: It&#39;s far too annoying to embed a font inside a flash movie. You need a commercial program, and you need to know what you&#39;re doing. And you&#39;re dependent on flash support. It&#39;s not that bad, but a bit annoying to work with.&lt;/p&gt;
&lt;p&gt;So for a recent project I&#39;ve been playing with &lt;a href=&#34;http://wiki.github.com/sorccu/cufon/about&#34;&gt;Cufón&lt;/a&gt;, which uses javascript, but draws on canvas, or in VML for browsers that don&#39;t support canvas (IE). They have an extremely friendly website, which walks you through the process of getting things to work, and the font conversion needed is available directly on the website. I&#39;ve only used it for simple cases, but it works really well.&lt;/p&gt;
&lt;p&gt;All in all, Cufón is a great alternative until IE gets its shit together.&lt;/p&gt;
&lt;p&gt;PS. Famous people that don&#39;t agree with me:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;http://clagnut.com/&#34;&gt;Richard Rutter&lt;/a&gt;, author of the clagnut blog suggests that font founderies &lt;a href=&#34;http://clagnut.com/blog/2166/&#34;&gt;server-side generate our fonts on demand&lt;/a&gt;, much like Google Maps only sends a part of the map, and not all of it.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;http://joeclark.org/&#34;&gt;Joe Clark&lt;/a&gt;: &amp;quot;Quite simply, there is &lt;a href=&#34;http://blog.fawny.org/2008/07/22/billhillsite/&#34;&gt;no broad clamour&lt;/a&gt; among Web &lt;em&gt;designers&lt;/em&gt; to use any font they want.&amp;quot;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;http://jasonsantamaria.com/&#34;&gt;Jason Santa Maria&lt;/a&gt;: &amp;quot;embedding normal typefaces without any sort of precautions is putting it on a silver platter for anyone to take freely. That’s like saying people steal from stores anyway, so let’s just leave the doors unlocked at night :)&amp;quot;&lt;/li&gt;
&lt;li&gt;And of course, the IE team…&lt;/li&gt;
&lt;li&gt;…and all the typeface makers in the world.&lt;/li&gt;
&lt;/ul&gt;

            </content>
        </entry>
    
        <entry>
            <title type="html">When web development was easy…</title>
            <link href="http://friendlybit.com/browsers/when-web-development-was-easy/" rel="alternate" type="text/html" title="When web development was easy…" />
            <published>2009-02-16T17:02:33+01:00</published>
            <updated>2009-02-16T17:02:33+01:00</updated>
            <id>http://friendlybit.com/browsers/when-web-development-was-easy/</id>
            <author>
                <name>Emil Stenström</name>
            </author>
            <summary type="text">Do you remember the time when web development was easy? Right where it all started, when there was just one browser, and only one website existed? Things...</summary>
            <content type="html" xml:base="http://friendlybit.com/browsers/when-web-development-was-easy/">
                &lt;p&gt;Do you remember the time when web development was easy? Right where it all started, when there was just one browser, and &lt;a href=&#34;http://www.w3.org/People/Berners-Lee/FAQ.html#Examples&#34;&gt;only one website&lt;/a&gt; existed?&lt;/p&gt;
&lt;p&gt;Things changed. And now you can&#39;t trust anything any longer. Trust me, if you think you know how your site will be shown, you&#39;re wrong. Just consider the 10 major steps of &amp;quot;progress&amp;quot; we&#39;ve made since then:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Browser widths&lt;/strong&gt; stopped being predictable as soon as people stopped using maximized windows, and monitor sizes stopped being the same everywhere. People cling to their fixed 760px or 960px grids feverishly (yes, me too), dreaming that they are what people use.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Browser heights&lt;/strong&gt; started giving us the same problems as widths, but toolbars also started showing up, making height prediction plain impossible to predict. &amp;quot;The fold&amp;quot; is now the top 10 pixels of a page, unless you got a browser warning, then &amp;quot;the fold&amp;quot; is pixels 10 to 20.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Aspect ratio&lt;/strong&gt;, the relation between width and height, went strange when first wide-screen monitors, then TV-screens and mobile phones, entered the market. I wouldn&#39;t be surprised if I&#39;m soon able to set my own ratio, or if someone launches a stretchable screen that I can drag to my own preference. I hope your site is well prepared for that one.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Colors&lt;/strong&gt; differ not only depending on the lightning in the room (which was a problem as soon as there where two computers), but also depending on monitor (including brightness and contrast), gamma correction differences between operating systems, gamma correction bugs in PNG files and browser implementations, color profiles (now supported in Firefox 3.1!). Add to this accessibility tools that invert colors, increase or decrease saturation. Pantone color codes on the web anyone?&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Font selection&lt;/strong&gt; is another interesting mess. The browser has a default font, different (of course), depending on what operating system/device you&#39;re on. The website author can try to override that font, specifying one or more fonts, which the user might, or might not, have. Oh, and lets not forget the editors, copying and pasting text from Outlook or Word, getting font tags inserted into your throughly crafted site.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Font rendering&lt;/strong&gt; complicates things even further by letting either the operating system or the browser render the fonts as they wish. Things like ClearType, subpixel font rendering, and font smoothing.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Character encoding&lt;/strong&gt; is far beyond repair, and this is easily conveyed by looking at what steps a browser has to go through to render a single letter. To &lt;a href=&#34;http://blog.whatwg.org/the-road-to-html-5-character-encoding&#34;&gt;quote Mark Pilgrim&lt;/a&gt;: &amp;quot;It&#39;s a 7-step algorithm; step 4 has 2 sub-steps, the first of which has 7 branches, one of which has 8 sub-steps, one of which actually links to a separate algorithm that itself has 7 steps…&amp;quot;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Unstyled HTML&lt;/strong&gt; looks different because of default stylesheets in some (but not all) browsers. Developers are left guessing what styles to set to override all defaults.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;CSS styling&lt;/strong&gt; is of course fully unpredicable, depending on not only browser, but on what underlying rendering engine, and version of that engine, and with what patches applied, and on what settings the user has made. On top of this we have piles of bugs, which tips most developers from scientists, trying to use logic to solve problems, to &amp;quot;empirates&amp;quot;, trusting only trial-and-error as a tool to &amp;quot;just get it to work&amp;quot;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;HTML versions&lt;/strong&gt; can also be selected in several ways, not always according to reason. First you can specify no doctype, and watch everyone try to render your site like IE5 once did, long time ago when someone used that browser. Then you can pick a doctype, and watch how some browsers render your page differently, depending on whether your doctype is in their &amp;quot;white-list&amp;quot; or not. And then there&#39;s standards mode, quirks mode, and almost standards mode, there&#39;s XML prologues and MIME-types, and what-not.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;but-thats-not-all-enter-ie8&#34;&gt;But that&#39;s not all, enter IE8&lt;a href=&#34;#but-thats-not-all-enter-ie8&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;The newest entry in the &amp;quot;making web development hard&amp;quot; toplist, is (soon to be released) IE8. They have recently decided that your page will be &lt;a href=&#34;http://www.isolani.co.uk/blog/standards/Ie8BlacklistForcingStandardsRenderingOptIn&#34;&gt;&lt;strong&gt;rendered based on popular vote&lt;/strong&gt;&lt;/a&gt;. So better not make your designs &amp;quot;arty&amp;quot; in any way. People might think it&#39;s broken and vote you to IE7 rendering (very broken). &lt;strong&gt;Don&#39;t laugh&lt;/strong&gt;, it&#39;s not a joke, the proof is on IEblog, linked in the paragraph above. I dare you.&lt;/p&gt;
&lt;p&gt;&amp;quot;Are you fully out of your fucking mind?&amp;quot;, you might be tempted to ask the IE8 developers. The reply is simply, no no, don&#39;t worry, just settings this HTTP header you can opt-out of the rendering that popular vote has selected for you, even though you already opted-in by setting a doctype once.&lt;/p&gt;
&lt;p&gt;And so we slowly stop caring, and give up. Dreaming ourselves back to the time when there where one computer, and one website…&lt;/p&gt;

            </content>
        </entry>
    
        <entry>
            <title type="html">Who are you disappointing with IE6 support?</title>
            <link href="http://friendlybit.com/browsers/motivation-for-building-for-ie6/" rel="alternate" type="text/html" title="Who are you disappointing with IE6 support?" />
            <published>2009-02-13T15:29:37+01:00</published>
            <updated>2009-02-13T15:29:37+01:00</updated>
            <id>http://friendlybit.com/browsers/motivation-for-building-for-ie6/</id>
            <author>
                <name>Emil Stenström</name>
            </author>
            <summary type="text">Internet Explorer 6 (IE6) is not getting any younger. With a initial release date of 27:th of August, 2001, it&#39;s one of the oldest things touching the...</summary>
            <content type="html" xml:base="http://friendlybit.com/browsers/motivation-for-building-for-ie6/">
                &lt;p&gt;Internet Explorer 6 (IE6) is not getting any younger. With a initial release date of 27:th of August, &lt;strong&gt;2001&lt;/strong&gt;, it&#39;s one of the oldest things touching the internet with its slimy fingers. Since then, surfing has taken great leaps forward. In all areas: Web standards, Security, Usability, Rendering speed, Debugging, and more. By working hard to maintain backwards compatibility all of us are missing all of that progress.&lt;/p&gt;
&lt;p&gt;Now. You as a web developer have a &lt;strong&gt;responsibility&lt;/strong&gt; here.&lt;/p&gt;
&lt;h2 id=&#34;responsibility-towards-ie6-users&#34;&gt;Responsibility towards IE6 users&lt;a href=&#34;#responsibility-towards-ie6-users&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Over the years, IE6 has had &lt;a href=&#34;http://secunia.com/advisories/product/11/&#34;&gt;142 security issues uncovered&lt;/a&gt;. Still 22 of those are not patched. Most IE6 users have no idea of this, but you do. You don&#39;t want these people do to their online banking with that kind of browser backing them. You should help these users by educating them, and &lt;strong&gt;making it easy for them to upgrade&lt;/strong&gt;!&lt;/p&gt;
&lt;h2 id=&#34;responsibility-towards-your-employer&#34;&gt;Responsibility towards your employer&lt;a href=&#34;#responsibility-towards-your-employer&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;If people are paying you do build websites for them it&#39;s even worse. By not pushing for upgrade, you&#39;re holding their website back. You&#39;re downgrading features since &amp;quot;they won&#39;t work in IE6&amp;quot;, you&#39;re over optimizing your javascript because &amp;quot;the site gets slow in IE6&amp;quot;, you&#39;re hack around CSS issues with extra stylesheets because &amp;quot;IE6 just don&#39;t get your styling right&amp;quot;. Each hour you work with IE6 backwards compatibility, is one hour less work on new features. Many developers agree that about half their time goes to planning, testing, and patching IE6 issues. That means you could be &lt;strong&gt;twice as productive&lt;/strong&gt; to your employer it you did things differently.&lt;/p&gt;
&lt;h2 id=&#34;responsibility-towards-microsoft&#34;&gt;Responsibility towards Microsoft&lt;a href=&#34;#responsibility-towards-microsoft&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Some people will call me and Microsoft-hater because of this article. You&#39;re right, I don&#39;t like most things Microsoft do. But that doesn&#39;t have anything to do with IE6. I&#39;m fine with people upgrading to IE7. In fact, I prefer people upgrading to IE7 over them switching to Firefox. Why? Because IE7 replaces IE6, making it impossible (or too hard for beginners) to switch back to the IE6 junk.&lt;/p&gt;
&lt;p&gt;So this has nothing to do with my Microsoft dislike. In fact the Microsoft developers &lt;a href=&#34;http://windowshelp.microsoft.com/Windows/en-US/Help/a426bb85-708c-4b75-87e2-874f9be3b4aa1033.mspx&#34;&gt;would be delighted&lt;/a&gt; if IE6 just stopped working today. Just consider, how much of the code you wrote 8 years ago are you still proud of? I mean, they just released IE8 RC1 for gods sake! Give them a break.&lt;/p&gt;
&lt;h2 id=&#34;responsibility-towards-yourself&#34;&gt;Responsibility towards yourself&lt;a href=&#34;#responsibility-towards-yourself&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;By subscribing to friendlybit I assume you care about web standards. You have lengthy arguments with table developers over why their way is outdated, you have already talked about Firefox with your friends, and your parents have switched long time ago. But what looks good when you open your mouth, &lt;strong&gt;you throw away as soon as you start doing real work&lt;/strong&gt;. You hack, hack, hack, and patch for IE6. Despite you knowing that this is the wrong way of doing things, despite the pain you feel doing it, despite everything you&#39;ve read.&lt;/p&gt;
&lt;p&gt;What I&#39;m asking of you are two simple things:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Stop saying: &amp;quot;Well, you need to support IE6 at least, that&#39;s what everyone else is doing&amp;quot;. Instead think like this: &amp;quot;&lt;strong&gt;Can I find any reasons that warrants disappointing&lt;/strong&gt; IE6 users, my employer, Microsoft, and myself&amp;quot;. Well, do you? (I&#39;m sure comments will fill up reasons…)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Encourage IE6 users on your website to upgrade&lt;/strong&gt;. This is really a no-brainer. If IE6 development is so much of a pain, why don&#39;t we do more to stop it? Even if you disagree with everything else I&#39;ve written, you must agree that promoting upgrade is a good thing. Right? This is the code you need:&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;div class=&#34;highlight&#34; data-language=&#34;HTML&#34;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&#34;cm&#34;&gt;&amp;lt;!--[if lte IE 6]&amp;gt;&lt;/span&gt;

&lt;span class=&#34;cm&#34;&gt;&amp;lt;div id=&amp;quot;upgrade&amp;quot;&amp;gt;Your browser is 8 years old! Please upgrade to the latest version by going to&lt;/span&gt;
&lt;span class=&#34;cm&#34;&gt;&amp;lt;a href=&amp;quot;http://windows.microsoft.com/en-us/internet-explorer/products/ie/home&amp;quot;&amp;gt;Microsoft.com&amp;lt;/a&amp;gt;&amp;lt;/div&amp;gt;&lt;/span&gt;

&lt;span class=&#34;cm&#34;&gt;&amp;lt;![endif]--&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;And then style the #upgrade div appropriately. It&#39;s easy, doesn&#39;t rely on javascript, and points users directly do the download page instead of the three intermediary pages on microsoft.com. Add this to your own site, to your employer&#39;s sites, to your sisters site. Or maybe buy one of the numerous &lt;a href=&#34;http://shop.cafepress.com/internet-explorer&#34;&gt;IE t-shirts&lt;/a&gt; out there. Hell, print it out and stick it on your dog! &lt;strong&gt;Do something&lt;/strong&gt;!&lt;/p&gt;
&lt;p&gt;Now. Before you get upset and tell me why your specific case is &lt;strong&gt;so different&lt;/strong&gt; from everyone else. Don&#39;t. Remember point 1 above. I&#39;ve just done point 2 above on this site. Now it&#39;s your turn!&lt;/p&gt;
&lt;p&gt;(Thanks to &lt;a href=&#34;http://www.robertnyman.com/2009/02/09/stop-developing-for-internet-explorer-6/&#34;&gt;Robert&lt;/a&gt; for pushing me to write this)&lt;/p&gt;

            </content>
        </entry>
    
</feed>