<?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>Push cx &#187; Firefox</title>
	<atom:link href="http://push.cx/tag/firefox/feed" rel="self" type="application/rss+xml" />
	<link>http://push.cx</link>
	<description>A traveling geek&#039;s blog on development, games, and the web</description>
	<lastBuildDate>Fri, 14 Oct 2011 10:24:13 +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>Recreating My Firefox Profile</title>
		<link>http://push.cx/2011/recreating-my-firefox-profile</link>
		<comments>http://push.cx/2011/recreating-my-firefox-profile#comments</comments>
		<pubDate>Sat, 25 Jun 2011 03:54:22 +0000</pubDate>
		<dc:creator>Peter Harkins</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[customization]]></category>
		<category><![CDATA[Firefox]]></category>
		<category><![CDATA[nerd pride]]></category>

		<guid isPermaLink="false">http://push.cx/?p=1798</guid>
		<description><![CDATA[With the release of Firefox 5 a few days ago, I thought it was time to recreate my Firefox profile. You may not know what it is because you only have one: it&#8217;s the set of your add-ons, bookmarks, history, and every other kind of customization you can do to Firefox. As a web developer, [...]]]></description>
			<content:encoded><![CDATA[<p>
  With the release of <a href="http://push.cx/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL2Jsb2cubW96aWxsYS5jb20vYmxvZy8yMDExLzA2LzIxL21vemlsbGEtZGVsaXZlcnMtbmV3LXZlcnNpb24tb2YtZmlyZWZveC1maXJzdC13ZWItYnJvd3Nlci10by1zdXBwb3J0LWRvLW5vdC10cmFjay1vbi1tdWx0aXBsZS1wbGF0Zm9ybXMv">Firefox 5</a> a few days ago, I thought it was time to recreate my Firefox profile. You may not know what it is because you only have one: it&#8217;s the set of your add-ons, bookmarks, history, and every other kind of customization you can do to Firefox.
</p>

<p>
  As a web developer, I have a half-dozen for testing reasons, but one that I use for all of my personal browsing and most of my work. Very infrequently, I&#8217;ve noticed that it sometimes would have errors on web pages that other Firefox profiles didn&#8217;t. After some thinking, I realized that I&#8217;ve been copying the same Firefox profile nearly ten years, copying it between computers as I upgrade. And all the while I&#8217;ve been tinkering with it, poking around in its config files, testing extensions, changing options in about:config.
</p>

<p>
  I wanted a fairly mindless activity today, so I recreated my profile from scratch, re-installing all my extensions and configuring everything just the way I like it. It took a few hours, and my notes ended up surprisingly long.
</p>

<p>
  The few times I&#8217;ve thought about switching to Chrome I&#8217;ve looked for one or two of these add-ons and seen that there&#8217;s no equivalent. Now that I have these notes I can check comprehensively the next time I get the urge.
</p>

<p>
  The notes will mostly be of interest to web developers. My browser is pretty heavily customized with tools, privacy protections, and productivity tweaks (mostly to make it feel like vim and allow me to pull things offline easily). It&#8217;s an intimidating list to look at, but it&#8217;s ten years of small changes every few weeks all at once.
</p>


<h3>Add-Ons</h3>
<ul>
<li>AdBlock Plus http://adblockplus.org/en/

<ul>
<li>add EasyList (button in tab on startup)</li>
<li>&#8216;Options&#8217; menu, uncheck &#8216;Show tabs on Flash and Java&#8217;</li>
</ul>
</li>
<li>Better Privacy

<ul>
<li>select any LSOs you want to keep</li>
</ul>
</li>
<li>Cookie Monster

<ul>
<li>uncheck &#8220;Automatically Reload&#8230;&#8221;</li>
</ul>
</li>
<li>Download Statusbar

<ul>
<li>General

<ul>
<li>check &#8216;Download speed&#8217;</li>
<li>uncheck &#8216;Keep a download history</li>
<li>check &#8216;Clear finished downloads when the browser closes&#8217;</li>
<li>&#8216;Automatically clear these filetypes&#8217;: *</li>
<li>after 90 seconds</li>
</ul>
</li>
<li>Appearance &#8211; choose &#8216;Custom Style&#8217;

<ul>
<li>File Name Size: 9</li>
<li>Height: 13</li>
<li>check &#8216;Main Downloads Button&#8217;</li>
<li>check &#8216;Clear Finished Button&#8217;</li>
<li>check &#8216;Enable Speed Colors&#8217;</li>
</ul>
</li>
</ul>
</li>
<li>FacebookBlocker</li>
<li>Flashblock

<ul>
<li>check &#8216;Block Silverlight as well&#8217;</li>
<li>add any whitelist sites</li>
</ul>
</li>
<li>Greasemonkey</li>
<li>LeechBlock

<ul>
<li>block tvtropes.com</li>
<li>General &#8211; check all</li>
</ul>
</li>
<li>Pentadactyl
    <p>~/.pentadactylrc</p>
    <code lang=""><pre>
"1.0b4.3 (created: 2011/01/05 17:55:12)

loadplugins '\.(js|penta)$'
set guioptions=BrsC
set runtimepath=/home/harkins/.pentadactyl
set urlseparator=,,s

" vim: set ft=pentadactyl:
</pre></code>
</li>
<li>NoSquint

<ul>
<li>Zooming tab, uncheck &#8216;Show current zoom levels&#8217;</li>
<li>Set &#8216;Default full page zoom level&#8217; to 100%</li>
<li>Exceptions tab, add <em>.github.com, </em>.tumblr.com, <em>.blogspot.com, </em>.posterous.com</li>
</ul>
</li>
<li>Pixlr Grabber

<ul>
<li>uncheck &#8216;To edit images&#8217; and &#8216;To edit backgrounds&#8217;</li>
<li>select &#8216;Always save to desktop&#8217;</li>
</ul>
</li>
<li>Readability https://www.readability.com/addons</li>
<li>RefControl

<ul>
<li>click &#8216;Edit&#8217; button, choose &#8216;Block&#8217; and check &#8217;3rd Party requests only&#8217;</li>
<li>outside of settings, right click button at bottom of window, remove icon</li>
</ul>
</li>
<li>Sauce Launcher https://addons.mozilla.org/en-us/firefox/addon/sauce-launcher/</li>
<li>ScrapBook

<ul>
<li>Show up to: 10</li>
</ul>
</li>
<li>SQLite Manager

<ul>
<li>select &#8216;in a new tab&#8217;</li>
<li>uncheck &#8216;Always confirm&#8217;</li>
<li>uncheck everything in Prompts tab</li>
</ul>
</li>
<li>Tamper Data</li>
<li>Tree Style Tab

<ul>
<li>Appearance

<ul>
<li>Skin &#8216;Sidebar&#8217;</li>
<li>Tree Twisties: choose &#8216;None&#8217;</li>
</ul>
</li>
<li>Menu

<ul>
<li>uncheck all but &#8216;Reload this Tree&#8217; and &#8216;Close this Tree&#8217;</li>
</ul>
</li>
<li>New Tabs

<ul>
<li>uncheck &#8216;Always ask&#8217;</li>
<li>select &#8216;Open in new tabs&#8217;</li>
</ul>
</li>
<li>Tree

<ul>
<li>uncheck &#8216;When a tab gets focus&#8217;</li>
<li>check &#8216;Double-click on a tab&#8217;</li>
</ul>
</li>
<li>Advanced

<ul>
<li>uncheck &#8216;Enable Animation Effects&#8217;</li>
<li>uncheck &#8216;Show tree contents&#8217;</li>
</ul>
</li>
</ul>
</li>
<li>UnPlug

<ul>
<li>Integration &#8211; uncheck all but tools menu</li>
<li>Downloads &#8211; &#8216;Preferred download method&#8217;: Save as</li>
</ul>
</li>
<li>User Agent Switcher</li>
<li>Web Developer

<ul>
<li>General

<ul>
<li>Check to hide the context menu, confirmation, and informational</li>
</ul>
</li>
<li>Validation

<ul>
<li>select CSS 3</li>
</ul>
</li>
</ul>
</li>
</ul>



<h3>Incompatible</h3>
  <p>These aren&#8217;t yet compatible with Firefox 5, so they didn&#8217;t get into my notes.</p>

  <ul>
    <li><a href="http://push.cx/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL2NvZGUuZ29vZ2xlLmNvbS9zcGVlZC9wYWdlLXNwZWVkL2Rvd25sb2FkLmh0bWw=">Page Speed</a></li>
    <li><a href="http://push.cx/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cHM6Ly9hZGRvbnMubW96aWxsYS5vcmcvZW4tdXMvZmlyZWZveC9hZGRvbi9yZXN1cnJlY3QtcGFnZXMv">Resurrect Pages</a></li>
    <li><a href="http://push.cx/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cHM6Ly9hZGRvbnMubW96aWxsYS5vcmcvZW4tdXMvZmlyZWZveC9hZGRvbi95c2xvdy8=">YSlow</a></li>
  </ul>

<h3>GreaseMonkey Scripts</h3>
  <p>Sorry for the lack of titles, but this was annoying enough to compile already.</p>
  <p>
    <a href="http://push.cx/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3VzZXJzY3JpcHRzLm9yZy9zY3JpcHRzL3Nob3cvNTEyODE=">51281</a>
    <a href="http://push.cx/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3VzZXJzY3JpcHRzLm9yZy9zY3JpcHRzL3Nob3cvNjI3MDY=">62706</a>
    <a href="http://push.cx/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3VzZXJzY3JpcHRzLm9yZy9zY3JpcHRzL3Nob3cvNzcwNQ==">7705</a>
    <a href="http://push.cx/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3VzZXJzY3JpcHRzLm9yZy9zY3JpcHRzL3Nob3cvMjM1NTU=">23555</a>
    <a href="http://push.cx/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3VzZXJzY3JpcHRzLm9yZy9zY3JpcHRzL3Nob3cvNTM1NDc=">53547</a>
    <a href="http://push.cx/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3VzZXJzY3JpcHRzLm9yZy9zY3JpcHRzL3Nob3cvNjAzMTQ=">60314</a>
    <a href="http://push.cx/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3VzZXJzY3JpcHRzLm9yZy9zY3JpcHRzL3Nob3cvMzg1MTY=">38516</a>
    <a href="http://push.cx/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3VzZXJzY3JpcHRzLm9yZy9zY3JpcHRzL3Nob3cvMzE4MDQ=">31804</a>
    <a href="http://push.cx/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3VzZXJzY3JpcHRzLm9yZy9zY3JpcHRzL3Nob3cvNTY2OTA=">56690</a>
    <a href="http://push.cx/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3VzZXJzY3JpcHRzLm9yZy9zY3JpcHRzL3Nob3cvMTAwNzQ2">100746</a>
    <a href="http://push.cx/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3VzZXJzY3JpcHRzLm9yZy9zY3JpcHRzL3Nob3cvMTA0NDg5">104489</a>
    <a href="http://push.cx/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3VzZXJzY3JpcHRzLm9yZy9zY3JpcHRzL3Nob3cvMzg5ODU=">38985</a>
    <a href="http://push.cx/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3VzZXJzY3JpcHRzLm9yZy9zY3JpcHRzL3Nob3cvNDUwMzI=">45032</a>
    <a href="http://push.cx/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3VzZXJzY3JpcHRzLm9yZy9zY3JpcHRzL3Nob3cvNzUyNjM=">75263</a>
    <a href="http://push.cx/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3VzZXJzY3JpcHRzLm9yZy9zY3JpcHRzL3Nob3cvNzc4MDE=">77801</a>
    <a href="http://push.cx/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3VzZXJzY3JpcHRzLm9yZy9zY3JpcHRzL3Nob3cvOTQxMTI=">94112</a>
    <a href="http://push.cx/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3VzZXJzY3JpcHRzLm9yZy9zY3JpcHRzL3Nob3cvMzA2NDY=">30646</a>
    <a href="http://push.cx/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3VzZXJzY3JpcHRzLm9yZy9zY3JpcHRzL3Nob3cvMjMxNzU=">23175</a>
    <a href="http://push.cx/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3VzZXJzY3JpcHRzLm9yZy9zY3JpcHRzL3Nob3cvMjgzNzQ=">28374</a>
    <a href="http://push.cx/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3VzZXJzY3JpcHRzLm9yZy9zY3JpcHRzL3Nob3cvMjkyNzk=">29279</a>
    <a href="http://push.cx/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3VzZXJzY3JpcHRzLm9yZy9zY3JpcHRzL3Nob3cvMjk2ODI=">29682</a>
    <a href="http://push.cx/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3VzZXJzY3JpcHRzLm9yZy9zY3JpcHRzL3Nob3cvMjk2ODE=">29681</a>
    <a href="http://push.cx/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3VzZXJzY3JpcHRzLm9yZy9zY3JpcHRzL3Nob3cvMjk4Mjk=">29829</a>
    <a href="http://push.cx/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3VzZXJzY3JpcHRzLm9yZy9zY3JpcHRzL3Nob3cvMjk4Mjg=">29828</a>
    <a href="http://push.cx/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3VzZXJzY3JpcHRzLm9yZy9zY3JpcHRzL3Nob3cvOTUyOTg=">95298</a>
    <a href="http://push.cx/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3VzZXJzY3JpcHRzLm9yZy9zY3JpcHRzL3Nob3cvMjk2NjY=">29666</a>
    <a href="http://push.cx/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3VzZXJzY3JpcHRzLm9yZy9zY3JpcHRzL3Nob3cvNDkzNjY=">49366</a>
    <a href="http://push.cx/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3VzZXJzY3JpcHRzLm9yZy9zY3JpcHRzL3Nob3cvNzQzNDA=">74340</a>
    <a href="http://push.cx/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3VzZXJzY3JpcHRzLm9yZy9zY3JpcHRzL3Nob3cvNzYzMDA=">76300</a>
    <a href="http://push.cx/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3VzZXJzY3JpcHRzLm9yZy9zY3JpcHRzL3Nob3cvNDUwMzI=">45032</a>
  </p>

<h3>Toolbars</h3>
  <ul>
    <li>right click on the toolbar, uncheck Web Development toolbar</li>
    <li>right click again, choose &#8216;Customize&#8217;, choose &#8216;Use Small Icons&#8217; and remove:
      <ul>
        <li>read it later</li>
        <li>search box</li>
        <li>zoom buttons</li>
        <li>home button</li>
        <li>bookmarks button</li>
        <li>FireBug button</li>
        <li>drag GreaseMonkey button to status bar</li>
      </ul>
      </li>
  </ul>

<h3>Cookies</h3>
  <p>
    click on CookieMonster at bottom of window, click View Cookies, show exceptions.<br />
    &#8216;Allow&#8217; sites you regularly visit<br />
    &#8216;Block&#8217; google properties
  </p>

<h3>Bookmarks menu -> Show all Bookmarks</h3>
  <p>
    &#8216;Import and Backup&#8217; -> Back up to json in old profile, Import &#8216;Choose File&#8217; in new</br>
    Same with ScrapBook &#8211; open sidebar, Tools, Import / Export, select all&#8230;
  </p>

<h3>Edit -> Preferences</h3>
  <ul>
    <li>
    General
      <ul>
        <li>&#8216;When Firefox starts&#8217;: Show my windows and tabs</li>
        <li>&#8216;Home Page&#8217;: about:blank</li>
      </ul>
    </li>
    <li>
    Tabs
      <ul>
        <li>check everything but &#8216;When I open a link in a new tab&#8217;</li>
      </ul>
    </li>
    <li>
    Applications
      <ul>
        <li>search for VLC, Windows, and QuickTime, change items to &#8216;Always Ask&#8217;</li>
      </ul>
    </li>
    <li>
    Privacy
      <ul>
        <li>check &#8216;Tell web sites I do not want to be tracked&#8217;</li>
        <li>select &#8216;Firefox will&#8217;: Use custom settings for history</li>
        <li>select &#8216;Keep until&#8217;: I close Firefox</li>
        <li>select &#8216;When using the location bar, suggest&#8217;: History</li>
      </ul>
    </li>
    <li>
    Security
      <ul>
        <li>uncheck &#8216;Remember passwords for sites&#8217;</li>
      </ul>
    </li>
    <li>
    Advanced -> Update
      <ul><li>uncheck &#8216;Search Engines&#8217;</li></ul>
    </li>
  </ul>
  
<h3>about:config</h3>
  <ul>
    <li>browser.autofocus false</li>
    <li>browser.dom.window.dom.enabled true (new)</li>
    <li>browser.history_expire_days 30</li>
    <li>browser.tabs.animate false</li>
    <li>browser.tabs.closeButtons 2</li>
    <li>browser.tabs.loadBookmarksInBackground true</li>
    <li>browser.tabs.loadDivertedInBackground true</li>
    <li>browser.tabs.selectOwnerOnClose false</li>
    <li>browser.zoom.full false</li>
    <li>browser.jsannoyances.disabled true (new)</li>
    <li>downbar.display.clearButton false</li>
    <li>downbar.display.mainButton false</li>
    <li>downbar.display.percent true</li>
    <li>downbar.function.useAnimation false</li>
    <li>network.http.pipelining true</li>
    <li>network.http.pipelining.maxrequests 8</li>
    <li>network.prefetch-next false</li>
  </ul>

<h3>~/.mozilla/firefox/[profile]/chrome</h3>
  <h4>userChrome.css</h4>

  <pre>&nbsp;
    @<span style="color: #003366; font-weight: bold;">namespace</span> url<span style="color: #66cc66;">&#40;</span><span style="color: #3366CC;">"http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
    <span style="color: #009900; font-style: italic;">/* don't bold active tab title */</span>
    <span style="color: #009900; font-style: italic;">/* no longer works, argh */</span>
    tab<span style="color: #66cc66;">&#91;</span>selected=<span style="color: #3366CC;">"true"</span><span style="color: #66cc66;">&#93;</span> <span style="color: #66cc66;">&#123;</span> font-weight: normal !important; <span style="color: #66cc66;">&#125;</span>
&nbsp;
    <span style="color: #009900; font-style: italic;">/* stop TreeStyleTab's Sidebar theme from changing its color when in/active */</span>
    .<span style="color: #006600;">tabbrowser</span>-strip<span style="color: #66cc66;">&#91;</span>treestyletab-style=<span style="color: #3366CC;">"sidebar"</span><span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#91;</span>treestyletab-mode=<span style="color: #3366CC;">"vertical"</span><span style="color: #66cc66;">&#93;</span> <span style="color: #66cc66;">&#123;</span>
      background-color: #ccc !important;
    <span style="color: #66cc66;">&#125;</span></pre>

  <h4>userContent.css</h4>

  <pre>&nbsp;
    <span style="color: #009900; font-style: italic;">/* indicate nofollow links with a dotted blue underline */</span>
    a<span style="color: #66cc66;">&#91;</span>rel~=nofollow<span style="color: #66cc66;">&#93;</span> <span style="color: #66cc66;">&#123;</span> border-bottom: 1px dotted blue !important; <span style="color: #66cc66;">&#125;</span></pre>

<p>
  Got any neat suggestions I&#8217;ve missed?
</p>
 <img src="http://push.cx/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=1798" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://push.cx/2011/recreating-my-firefox-profile/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Because Internet Explorer is a Failure, That&#8217;s Why</title>
		<link>http://push.cx/2007/because-internet-explorer-is-a-failure-thats-why</link>
		<comments>http://push.cx/2007/because-internet-explorer-is-a-failure-thats-why#comments</comments>
		<pubDate>Wed, 07 Nov 2007 12:10:37 +0000</pubDate>
		<dc:creator>Peter Harkins</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[browser support]]></category>
		<category><![CDATA[browsers]]></category>
		<category><![CDATA[failure]]></category>
		<category><![CDATA[Firefox]]></category>
		<category><![CDATA[Internet Explorer]]></category>
		<category><![CDATA[support]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://push.cx/2007/because-internet-explorer-is-a-failure-thats-why</guid>
		<description><![CDATA[About once a month since Firefox came out and was promptly recognized as a six-gallon bucket of awesome I read a blog post about how developers are lazy, shiftless bastards because they don&#8217;t want to support Internet Explorer anymore. Most recently I read Brian Reindel make this claim, so I&#8217;m going to pick on him [...]]]></description>
			<content:encoded><![CDATA[<p>
About once a month since Firefox came out and was promptly recognized as a six-gallon bucket of awesome I read a blog post about how developers are lazy, shiftless bastards because they don&#8217;t want to support Internet Explorer anymore. Most recently I read Brian Reindel <a href="http://push.cx/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL2Jsb2cucmVpbmRlbC5jb20vMjAwNy8xMS8wNi9tYWtlLXRoZS1hLWdyYWRlLW9yLWZhaWwtdHJ5aW5nLw==">make this claim</a>, so I&#8217;m going to pick on him while I rebut this insult.
</p>

<p>
Yahoo defined the term  &#8220;<a href="http://push.cx/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL2RldmVsb3Blci55YWhvby5jb20veXVpL2FydGljbGVzL2dicy8=">graded browser support</a>&#8220;: popular browsers get A-grade support, less common ones get C-grade support, and a tiny number of almost-unused browsers get X-grade support (which is an obfuscated way to say &#8220;no support&#8221;). It makes sense to formally specify where you&#8217;ll spend your time. Reindel manages to turn this whole definition around, though. He writes about A-grade browser support, then drifts into talking about &#8220;A-grade browsers&#8221;. These are not at all the same thing.
</p>

<p>
Developers can choose to give A-grade browser support to Internet Explorer because it enjoys a huge (if declining) market share. Users can&#8217;t tell whether they&#8217;re seeing IE&#8217;s misfeatures, flaws, and bugs or our website&#8217;s, so we work late into the evening to make IE behave enough that we don&#8217;t look bad. Sometimes developers decide that IE isn&#8217;t worth the trouble, and Reindel opines that it&#8217;s because they&#8217;re unprofessional or incompetent. No, it&#8217;s because Internet Explorer is a failure, what&#8217;s why.
</p>

<p>
Internet Explorer is not an &#8220;A-grade browser&#8221;. It has a large number of <a href="http://push.cx/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3d3dy5iYXpvbi5uZXQvbWlzaG9vL2FydGljbGVzLmVwbD9hcnRfaWQ9OTU4">painful</a> and <a href="http://push.cx/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3d3dy5wb3NpdGlvbmlzZXZlcnl0aGluZy5uZXQvZXhwbG9yZXIuaHRtbA==">common bugs</a> that were left to fester for five years between IE 6 and 7 &mdash; and then many still are unfixed. The rise of Firefox (and, to a lesser extent, Opera and Safari) has shown developers how good browsers can be, to say nothing of how well browsers can support developers. It&#8217;s normal and healthy that developers reduce IE support. Aside from the pure professional joy of tools that work, it doesn&#8217;t make business sense to keep spending the majority of your time working around the problems caused by one browser unless that one browser has a strong majority in your userbase.
</p>

<p>
When building the moderately-complex layouts for <a href="http://push.cx/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL25lYXJieWdhbWVycy5jb20=">NearbyGamers</a> I realized I was wasting time supporting IE for a tech-savvy audience who likely wouldn&#8217;t be using it. Even though NG is a professional site and the current highlight of my portfolio, with IE&#8217;s 32% share it would be a mistake to spend time tearing my hair out over it instead of improving the site in general. My analytics show that IE users view the same number of pages, visit for the same length of time, and convert in the same numbers as users of A-grade browsers. Yes, in IE the fonts are weird, elements are mispositioned, text spacing is inelegant, and there are probably many other small bugs I haven&#8217;t even bothered looking for. The site isn&#8217;t hemorrhaging IE visitors, so IE is getting more support than it&#8217;s earned. 
</p>

<p>
This behavior isn&#8217;t the straw-man &#8220;laziness&#8221; that Reindel attacks, it&#8217;s the highest professional business sense and commitment to productive quality. Microsoft ignored our half-decade of &#8220;constant complaining&#8221; because they thought they had a lock on the market. Developers who publicly reduce their support for IE are using their voice and their practice to push for better support from the browsers.
</p> <img src="http://push.cx/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=272" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://push.cx/2007/because-internet-explorer-is-a-failure-thats-why/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>How To De-Asshole-ify Links</title>
		<link>http://push.cx/2007/how-to-de-asshole-ify-links</link>
		<comments>http://push.cx/2007/how-to-de-asshole-ify-links#comments</comments>
		<pubDate>Thu, 01 Nov 2007 16:26:30 +0000</pubDate>
		<dc:creator>Peter Harkins</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[assholes]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[Firefox]]></category>
		<category><![CDATA[links]]></category>
		<category><![CDATA[user experience]]></category>

		<guid isPermaLink="false">http://push.cx/2007/how-to-de-asshole-ify-links</guid>
		<description><![CDATA[I loathe sites that set unvisited and visited links to be the same color. There are exactly two reasons that sites do this: A graphic designer thought it would be more harmonious to have them the same color. A business guy thought it would increase pageviews. The worst part is, they&#8217;re both right. But they&#8217;re [...]]]></description>
			<content:encoded><![CDATA[<p>
I loathe sites that set unvisited and visited links to be the same color. There are exactly two reasons that sites do this:
</p>

<ol>
    <li>A graphic designer thought it would be more harmonious to have them the same color.</li>
    <li>A business guy thought it would increase pageviews.</li>
</ol>

<p>
The worst part is, they&#8217;re both right. But they&#8217;re assholes because they&#8217;re selling out user experience to avoid picking a color or to inflate a not-very-useful statistic. Users are deliberately confused and led to click in circles for their trivial convenience or wrongheaded book-cooking.
</p>

<p>
This boiled over for me when I was trying to read <a href="http://push.cx/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3d3dy5jb3B5YmxvZ2dlci5jb20=">CopyBlogger</a>. They have some really nice writing, but I found myself opening the articles over and over because I couldn&#8217;t see that I&#8217;d visited it. I just gave up on reading the site, who needs assholes?
</p>

<p>
A few days later I remembered that Firefox has a setting in the preferences to override page and link colors. Unfortunately, it doesn&#8217;t let me override link colors and leave page colors alone.
</p>

<p>
The way to do undo the damage these assholes have done to their own site is to add a user stylesheet to Firefox. It&#8217;s a styling file that Firefox loads for every single page you visit. In Linux it&#8217;s <kbd>~/.mozilla/firefox/<i>random junk</i>/chrome/userContent.css</kbd>. On other systems, search for the file <kbd>userContent.css</kbd>, though you may just need to search for the <kbd>chrome</kbd> directory and create the file. Here&#8217;s what to put in there:
</p>

<pre>&nbsp;
p &gt; a <span style="color: #66cc66;">&#123;</span> <span style="color: #000000; font-weight: bold;">color</span>: <span style="color: #000000; font-weight: bold;">blue</span> !important; <span style="color: #000000; font-weight: bold;">text-decoration</span>: <span style="color: #993333;">underline</span> !important; <span style="color: #66cc66;">&#125;</span>
p &gt; a<span style="color: #3333ff;">:visited </span><span style="color: #66cc66;">&#123;</span> <span style="color: #000000; font-weight: bold;">color</span>: <span style="color: #993333;">purple</span> !important; <span style="color: #000000; font-weight: bold;">text-decoration</span>: <span style="color: #993333;">underline</span> !important; <span style="color: #66cc66;">&#125;</span></pre>

<p>
This forces all unvisited links in the text of a page to be blue and underlined, and all visited links to be purple and underlined. This isn&#8217;t perfect, sometimes the text of a page will be <a href="http://push.cx/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL21ldGFmaWx0ZXIuY29t">on a blue background</a>, but it works well for nearly all pages I visit. The best part about is is the <kbd>p &gt;</kbd> keeps it from changing link colors in headers and other parts of the page that are almost never on white backgrounds.
</p> <img src="http://push.cx/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=269" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://push.cx/2007/how-to-de-asshole-ify-links/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>

