<?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>Mostly Technical &#187; dev</title>
	<atom:link href="http://www.rosssimpson.com/blog/category/dev/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.rosssimpson.com/blog</link>
	<description>Development, Technical bits, Other.</description>
	<lastBuildDate>Wed, 11 Feb 2009 23:40:33 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=abc</generator>
		<item>
		<title>Essential tools for web developers</title>
		<link>http://www.rosssimpson.com/blog/2009/02/01/essential-tools-for-web-developers/</link>
		<comments>http://www.rosssimpson.com/blog/2009/02/01/essential-tools-for-web-developers/#comments</comments>
		<pubDate>Sun, 01 Feb 2009 23:00:52 +0000</pubDate>
		<dc:creator>simpsora</dc:creator>
				<category><![CDATA[dev]]></category>
		<category><![CDATA[best practices]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[debugging]]></category>
		<category><![CDATA[firefox extensions]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[web development]]></category>

		<guid isPermaLink="false">http://www.rosssimpson.com/blog/?p=16</guid>
		<description><![CDATA[This post focuses on web development tools, specifically Firefox extensions.]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m a firm believer in the principle of using the right tool for the job.  It applies equally well when building software as it does building a house or fixing a car.  There are literally thousands of tools available to do the job, and it can be hard finding the right one.  This post focuses on web development tools, specifically Firefox extensions.</p>
<ol>
<li>
<p><a href="http://www.getfirefox.com" target="_blank">Firefox</a>: while it&#8217;s not an extension, the browser itself deserves mention.  Primary web development should happen in a standards-compliant environment, and Firefox is a great platform for that.  There are certainly other browsers that fit the bill (<a href="http://www.apple.com/safari/">Safari</a> and <a href="http://www.opera.com/">Opera</a> are candidates), but neither has the wealth of extensions that Firefox offers, nor the developer community behind them.</p>
</li>
<li><a href="http://www.getfirebug.com" target="_blank">Firebug</a>: the tagline at the Firebug site is &#8220;web development evolved&#8221;, and that is a true statement.  Firebug may well be the largest single innovation in web development, ever.  That&#8217;s a bold statement, but it provides so much functionality, you hardly need other tools.  Some of it&#8217;s best features include:
<ul>
<li>Visual DOM exploration: mouse over nodes in the DOM tree, see them highlighted in the browser window.  Conversely, inspect an element in the browser window and access it in the DOM tree</li>
<li>Realtime CSS editing: changes to styles take effect immediately</li>
<li>Javascript console: execute arbitrary javascript in the context of the page</li>
<li>Network monitor: see full details on every request and response the browser makes, as they happen</li>
<li>Javascript debugging: a full-featured debugger and profiler for javascript code</li>
<li>Realtime reporting of Javascript and CSS errors: you&#8217;ll know when something&#8217;s not right</li>
</ul>
<p>If you don&#8217;t have Firebug yet, go get it.  Now.</p>
</li>
<li>
<p><a href="http://users.skynet.be/mgueury/mozilla/" target="_blank">HTML Validator</a>: invalid markup is a web developer&#8217;s nightmare &#8212; if your markup isn&#8217;t right, how can anything else be expected to function or look right?  Yet, unless you&#8217;re extremely well disciplined (and even then, sometimes), you&#8217;ll make mistakes.  This extension adds on-the-fly validation to Firefox, letting you know right away when there&#8217;s an error, indicating where it is, and even offering suggestions on how to fix it.  The validator has multiple validation engines; for best effect choose the serial algorithm (w3C&#8217;s SGML parser first, then HTML Tidy).  There&#8217;s no longer an excuse for invalid markup.</p>
</li>
<li>
<p><a href="http://chrispederick.com/work/web-developer/" target="_blank">Web Developer Toolbar</a>: Chris Pederick&#8217;s toolbar was one of the first Firefox extensions targeted at web developers, and it still offers plenty of functionality.  Besides offering shortcuts to oft-used Firefox features, it works with cookies, forms, window resizing, HTML validation and more.  It also provides lots of information about the page and it&#8217;s elements.</p>
</li>
<li>
<p><a href="http://tamperdata.mozdev.org/" target="_blank">Tamper Data</a>: when you need detailed information about HTTP requests and responses, the Net tab in Firebug is one place to look.  Another is Tamper Data, which provides an easily-filtered interface for inspecting HTTP traffic.  However, Tamper Data also allows the user to &#8220;tamper&#8221; with the request before it&#8217;s dispatched to the server, an incredibly useful trick when debugging misbehaving web applications.</p>
</li>
</ol>
<p>Using the right tools will not only make your job easier, it&#8217;ll make you a better developer.  These tools can alert you to mistakes in your code, and you&#8217;ll learn to avoid repeating them in the future.</p>
<p>Everyone has their own favorite tools in their toolbox.  These are my favorites, and I ones I believe no professional web developer should be without.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.rosssimpson.com/blog/2009/02/01/essential-tools-for-web-developers/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Introducing Omnibug</title>
		<link>http://www.rosssimpson.com/blog/2008/07/18/introducing-omnibug/</link>
		<comments>http://www.rosssimpson.com/blog/2008/07/18/introducing-omnibug/#comments</comments>
		<pubDate>Fri, 18 Jul 2008 22:32:48 +0000</pubDate>
		<dc:creator>simpsora</dc:creator>
				<category><![CDATA[dev]]></category>
		<category><![CDATA[debugging]]></category>
		<category><![CDATA[firebug extension]]></category>
		<category><![CDATA[moniforce]]></category>
		<category><![CDATA[omniture]]></category>
		<category><![CDATA[request logging]]></category>
		<category><![CDATA[web metrics]]></category>

		<guid isPermaLink="false">http://www.rosssimpson.com/blog/?p=9</guid>
		<description><![CDATA[Omnibug is a tool for web developers.  I wrote it because debugging an Omniture implementation is&#8230; painful. The idea is that web metrics (or webanalytics, if you&#8217;re so inclined) systems generally make an HTTP request (usually an image) in order to pass along tracking information.  The URLs contain lots of parameters, conveniently URL-encoded so you [...]]]></description>
			<content:encoded><![CDATA[<p>Omnibug is a tool for web developers.  I wrote it because debugging an Omniture implementation is&#8230; painful.</p>
<p>The idea is that web metrics (or webanalytics, if you&#8217;re so inclined) systems generally make an HTTP request (usually an image) in order to pass along tracking information.  The URLs contain lots of parameters, conveniently URL-encoded so you can&#8217;t read them easily.</p>
<p>Omnibug is an extension to <a href="http://www.getfirebug.com">Firebug</a> (without a doubt the best Firefox add-on available, driving a revolution in web UI development).  It adds a new panel with the decoded output of each such HTTP request, making it a breeze to see exactly what values were sent.</p>
<p>Though it was designed with Omniture in mind, it will work with other systems (also tested with Moniforce).  The patterns it looks for are fully configurable, so in theory it should work with any similar system.</p>
<p>An additional feature is the ability to log matching requests to the local filesystem.  While this feature was intended to support automated testing of metrics implementations, it may have other uses.</p>
<p>See the <a href="http://www.rosssimpson.com/dev/omnibug.html">Omnibug</a> page for downloads and full documentation.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.rosssimpson.com/blog/2008/07/18/introducing-omnibug/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Breaking teh sudoers file on OS X</title>
		<link>http://www.rosssimpson.com/blog/2008/04/23/breaking-teh-sudoers-file-on-os-x/</link>
		<comments>http://www.rosssimpson.com/blog/2008/04/23/breaking-teh-sudoers-file-on-os-x/#comments</comments>
		<pubDate>Wed, 23 Apr 2008 19:34:47 +0000</pubDate>
		<dc:creator>simpsora</dc:creator>
				<category><![CDATA[dev]]></category>
		<category><![CDATA[mac]]></category>
		<category><![CDATA[os x]]></category>
		<category><![CDATA[osx]]></category>
		<category><![CDATA[permissions]]></category>
		<category><![CDATA[sudo]]></category>
		<category><![CDATA[sudoers]]></category>

		<guid isPermaLink="false">http://www.rosssimpson.com/blog/2008/04/23/breaking-teh-sudoers-file-on-os-x/</guid>
		<description><![CDATA[Not having anything better to do, I horked my sudoers file while modifying an entry, thereby preventing myself from sudoing at all (and subsequently fixing it). Weak. Turns out there&#8217;s a pretty easy fix for this using the Finder, so long as your account has administrator privileges: Steps: In the Finder, go to /etc (or [...]]]></description>
			<content:encoded><![CDATA[<p>Not having anything better to do, I horked my <a href="http://xkcd.com/149/" title="xkcd, yay!">sudo</a>ers file while modifying an entry, thereby preventing myself from sudoing at all (and subsequently fixing it).  Weak.</p>
<p>Turns out there&#8217;s a pretty easy fix for this using the Finder, so long as your account has administrator privileges:</p>
<p>Steps:</p>
<ol>
<li>In the Finder, go to <font color="#008000">/etc</font> (or do &lt;cmd&gt;-&lt;shift&gt;-g and enter <font color="#008000">/etc</font>, if you don&#8217;t see it in the Finder)</li>
<li>Get Info on <font color="#008000">sudoers</font></li>
<li>In the Info window&#8217;s Sharing &amp; Permissions section, add an entry for your local user with read and write access</li>
<li>With a text editor, edit <font color="#008000">/etc/sudoers</font> and fix the problem.</li>
<li>Fix the permissions on <font color="#008000">/etc/sudoers</font> back to 0440.</li>
<li>Enjoy your newly-regained sudo power!</li>
</ol>
<p>Of course, this can be used to overcome other permissions problems too.</p>
<p>If only visudo had a validator, along with a syntax checker&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.rosssimpson.com/blog/2008/04/23/breaking-teh-sudoers-file-on-os-x/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>SEO headings bookmarklet</title>
		<link>http://www.rosssimpson.com/blog/2008/01/24/seo-headings-bookmarklet/</link>
		<comments>http://www.rosssimpson.com/blog/2008/01/24/seo-headings-bookmarklet/#comments</comments>
		<pubDate>Thu, 24 Jan 2008 22:55:20 +0000</pubDate>
		<dc:creator>simpsora</dc:creator>
				<category><![CDATA[dev]]></category>
		<category><![CDATA[bookmarklets]]></category>
		<category><![CDATA[headings]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[SEO]]></category>

		<guid isPermaLink="false">http://www.rosssimpson.com/blog/2008/01/24/seo-headings-bookmarklet/</guid>
		<description><![CDATA[I wrote this simple bookmarklet to highlight each heading (h1, h2 &#8230; h6) on the page with a 3px border, and add a tooltip with the tag name in it. Drag the Headings bookmarklet to your bookmarks bar, or bookmark it, or even click it to try it on this page.]]></description>
			<content:encoded><![CDATA[<p>I wrote this simple bookmarklet to highlight each heading (h1, h2 &#8230; h6) on the page with a 3px border, and add a tooltip with the tag name in it.</p>
<p>Drag the <a href="javascript:(function(){for(var%20i=1;i&lt;=6;++i){var%20elName='h'+i,els=document.getElementsByTagName(elName),color=(i&amp;1?'f':'0')+(i&amp;2?'f':'0')+(i&amp;4?'f':'0');for(var%20j=0;j&lt;els.length;++j){els[j].style.border='3px%20solid%20#'+color;els[j].title=elName;}}})();">Headings bookmarklet</a> to your bookmarks bar, or bookmark it, or even click it to try it on this page.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.rosssimpson.com/blog/2008/01/24/seo-headings-bookmarklet/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Load flags</title>
		<link>http://www.rosssimpson.com/blog/2007/05/21/load-flags/</link>
		<comments>http://www.rosssimpson.com/blog/2007/05/21/load-flags/#comments</comments>
		<pubDate>Mon, 21 May 2007 22:30:40 +0000</pubDate>
		<dc:creator>simpsora</dc:creator>
				<category><![CDATA[dev]]></category>
		<category><![CDATA[debugging]]></category>
		<category><![CDATA[firefox extensions]]></category>
		<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://www.rosssimpson.com/blog/?p=3</guid>
		<description><![CDATA[Mozilla&#8217;s load flags defined (useful in tamper data): http://www.xulplanet.com/references/xpcomref/ifaces/nsIRequest.html]]></description>
			<content:encoded><![CDATA[<p>Mozilla&#8217;s load flags defined (useful in tamper data):</p>
<p><a href="http://www.xulplanet.com/references/xpcomref/ifaces/nsIRequest.html">http://www.xulplanet.com/references/xpcomref/ifaces/nsIRequest.html</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.rosssimpson.com/blog/2007/05/21/load-flags/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
