<?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>Stickblog &#187; Web Development</title>
	<atom:link href="http://the-stickman.com/category/web-development/feed/" rel="self" type="application/rss+xml" />
	<link>http://the-stickman.com</link>
	<description>Random developer notes</description>
	<lastBuildDate>Wed, 10 Mar 2010 15:11: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>
			<item>
		<title>CSS: Removing that dotted line around a link</title>
		<link>http://the-stickman.com/web-development/css-removing-that-dotted-line-around-a-link/</link>
		<comments>http://the-stickman.com/web-development/css-removing-that-dotted-line-around-a-link/#comments</comments>
		<pubDate>Fri, 04 Dec 2009 09:44:06 +0000</pubDate>
		<dc:creator>Stickman</dc:creator>
				<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://the-stickman.com/?p=219</guid>
		<description><![CDATA[Just a quick note to myself&#8230;
I&#8217;m working on a navigation system that uses CSS image replacement. To hide the text, CSS shifts it out of view by using the text-indent property and a big negative value. However, a side-effect of this is that when you click on a link, the dotted border that appears while [...]]]></description>
			<content:encoded><![CDATA[<p>Just a quick note to myself&#8230;</p>
<p>I&#8217;m working on a navigation system that uses CSS image replacement. To hide the text, CSS shifts it out of view by using the <em>text-indent</em> property and a big negative value. However, a side-effect of this is that when you click on a link, the dotted border that appears while you&#8217;re holding the mouse button down goes off the side of the page.</p>
<p>To get around this, I just wanted to disable it. After some searching I discovered the <em>outline</em> property &#8212; setting this to &#8216;none&#8217; gets rid of it entirely:</p>
<p><code>a{<br />
outline: none;<br />
}</code></p>
<p>Of course, the above will remove it for all links, it&#8217;s up to you to decide whether you want to make it more specific.</p>
]]></content:encoded>
			<wfw:commentRss>http://the-stickman.com/web-development/css-removing-that-dotted-line-around-a-link/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Comparing changes to MySQL databases</title>
		<link>http://the-stickman.com/web-development/comparing-changes-to-mysql-databases/</link>
		<comments>http://the-stickman.com/web-development/comparing-changes-to-mysql-databases/#comments</comments>
		<pubDate>Wed, 10 Dec 2008 13:51:58 +0000</pubDate>
		<dc:creator>Stickman</dc:creator>
				<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://the-stickman.com/?p=187</guid>
		<description><![CDATA[One of my personal nightmares goes as follows: I&#8217;m working on an existing MySQL-based system, adding or changing something that involves altering existing database tables. I do what I need to, commit the code and then realise that I need to make the database changes too&#8230;only I&#8217;ve forgotten to keep track of the edits I&#8217;ve [...]]]></description>
			<content:encoded><![CDATA[<p>One of my personal nightmares goes as follows: I&#8217;m working on an existing MySQL-based system, adding or changing something that involves altering existing database tables. I do what I need to, commit the code and then realise that I need to make the database changes too&#8230;only I&#8217;ve forgotten to keep track of the edits I&#8217;ve made. Oops.</p>
<p>Now there are various things I <em>should</em> do to prevent this happening &#8212; at the very least keep a list of changes as I&#8217;m going along, which I do&#8230;when I remember to. But on those occasions when I don&#8217;t, I usually end up dumping the schemas and comparing them using a diff tool, which works just fine but can be rather laborious.</p>
<p>Today I stumbled (via <a title="DZone" href="http://dzone.com">DZone</a>) upon a piece of freeware called <a href="http://www.toadsoft.com/toadmysql/">Toad for MySQL</a>. It does <a href="http://www.toadsoft.com/toadmysql/Features.htm">a whole bunch of useful things</a>, but the feature that stood out for me was its &#8217;schema compare&#8217; tool. At first it looks like a dolled-up diff tool, but then you notice that in addition to showing you the differences between two databases, it also creates an SQL statement to convert between the two. Very handy.</p>
<p>For those of you who are allergic to MySQL, there are versions of Toad for <a href="http://www.toadsoft.com/toad_oracle.htm">Oracle</a>, <a href="http://www.toadsoft.com/toadsqlserver/toad_sqlserver.htm">SQL Server</a> and <a href="http://www.toadsoft.com/toaddb2/index.html">DB2</a> (although they&#8217;re not freeware).</p>
]]></content:encoded>
			<wfw:commentRss>http://the-stickman.com/web-development/comparing-changes-to-mysql-databases/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>jQuery: Dropping items from a draggable list to a sortable list</title>
		<link>http://the-stickman.com/web-development/javascript/jquery-dropping-items-from-a-draggable-list-to-a-sortable-list/</link>
		<comments>http://the-stickman.com/web-development/javascript/jquery-dropping-items-from-a-draggable-list-to-a-sortable-list/#comments</comments>
		<pubDate>Sat, 04 Oct 2008 16:09:25 +0000</pubDate>
		<dc:creator>Stickman</dc:creator>
				<category><![CDATA[Javascript]]></category>

		<guid isPermaLink="false">http://the-stickman.com/uncategorized/jquery-dropping-items-from-a-draggable-list-to-a-sortable-list/</guid>
		<description><![CDATA[For reasons that I might outline in another post sometime, I recently decided to replace MooTools as the JavaScript library behind our company CMS (which I&#8217;m in the process of rewriting from scratch) with jQuery.
It&#8217;s been a few weeks now since I made the decision and I&#8217;m starting to become more comfortable with jQuery&#8217;s quite [...]]]></description>
			<content:encoded><![CDATA[<p>For reasons that I might outline in another post sometime, I recently decided to replace <a href="http://mootools.net">MooTools</a> as the JavaScript library behind our company CMS (which I&#8217;m in the process of rewriting from scratch) with <a href="http://jquery.com">jQuery</a>.</p>
<p>It&#8217;s been a few weeks now since I made the decision and I&#8217;m starting to become more comfortable with jQuery&#8217;s quite different approach. I&#8217;ve also begun working on some of the more complicated aspects of the new CMS, including adopting <a href="http://ui.jquery.com/">jQuery UI</a> to provide the interface widgets. One requirement of the system is to have a dialog where search results can be dragged and dropped onto a sortable list.</p>
<p>At first I looked at using two sortable lists and the built-in <a href="http://docs.jquery.com/UI/Sortables/sortable#toptions">&#8216;connectWith&#8217; option</a>, which enables you to link two or more sortable lists together. But then I realised that I didn&#8217;t really want the search results to be a sortable list. In fact, what I wanted was a static list whose items could be dragged and placed in the sortable list.</p>
<p>I tried a few experiments, and when those failed I decided to try looking at the code itself to see if I could hack together a solution without too much extra effort. While browsing the ui.draggables code, I stumbled across the intriguingly-named &#8216;connectToSortable&#8217; option. I was surprised to find it because there&#8217;s (currently) no mention of it in the documentation, and indeed it&#8217;s very hard to find any reference to it at all beyond the code itself (the only useful link I could find was <a href="http://groups.google.com.ph/group/jquery-ui/browse_thread/thread/ae1b7b79356bee12">this one</a>, but it rather over-complicates the issue).</p>
<p>It&#8217;s very simple to use: as with connectWith, just specify which sortable(s) you want to connect to with the connectToSortable property:</p>
<p><code>$('#myDraggable › li').draggable({helper:'clone',connectToSortable:'#mySortable'});</code></p>
<p><a href="http://the-stickman.com/files/jquery/draggable-sortable.html">Full example code here</a>.</p>
<p>The code for the example works just fine, but I found when using it in my own project, for some reason it was necessary to add a $(&#8216;mySortable&#8217;).sortable(&#8216;refresh&#8217;) call after defining the two lists, or the first drop operation would always fail.</p>
<p>By the way, when fiddling around with JavaScript experiments I find <a href="http://jsbin.com">JSBin</a> very useful &#8212; you can load up any of several JS libraries (jQuery, MooTools, dojo, prototype, YUI, script.aculo.us) and create both JavaScript and HTML to test in a &#8216;live&#8217; environment. Very handy.</p>
]]></content:encoded>
			<wfw:commentRss>http://the-stickman.com/web-development/javascript/jquery-dropping-items-from-a-draggable-list-to-a-sortable-list/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Dynamic form elements and Internet Explorer 6</title>
		<link>http://the-stickman.com/web-development/javascript/dynamic-form-elements-and-internet-explorer-6/</link>
		<comments>http://the-stickman.com/web-development/javascript/dynamic-form-elements-and-internet-explorer-6/#comments</comments>
		<pubDate>Fri, 12 Sep 2008 09:58:37 +0000</pubDate>
		<dc:creator>Stickman</dc:creator>
				<category><![CDATA[Javascript]]></category>

		<guid isPermaLink="false">http://the-stickman.com/web-development/javascript/dynamic-form-elements-and-internet-explorer-6/</guid>
		<description><![CDATA[A few brief entries from the &#8216;tiny yet annoying bugs that take far too much time to fix&#8217; file&#8230;
I&#8217;m creating forms dynamically using JavaScript. This has led to a number of problems with IE6:
Dynamic checkboxes/radio buttons and the &#8216;checked&#8217; attribute
When creating a field, I wanted to be able to apply a &#8216;default&#8217; value &#8212; for [...]]]></description>
			<content:encoded><![CDATA[<p>A few brief entries from the &#8216;tiny yet annoying bugs that take far too much time to fix&#8217; file&#8230;</p>
<p>I&#8217;m creating forms dynamically using JavaScript. This has led to a number of problems with IE6:</p>
<p><strong>Dynamic checkboxes/radio buttons and the &#8216;checked&#8217; attribute</strong></p>
<p>When creating a field, I wanted to be able to apply a &#8216;default&#8217; value &#8212; for example, a checkbox element might be ticked by default. This was all going smoothly until (guess what?) I tested it on IE6: the checked attribute was set, and returned &#8216;true&#8217; when tested, but the box did not appear to be checked when it appeared in the form.</p>
<p>The answer, as I discovered thanks to <a href="http://bytes.com/forum/thread594613.html">this forum post</a>, was to use the &#8216;defaultChecked&#8217; attribute instead (I set both, just in case). It seems to work across browsers, which is nice. Oh, and this applies to radio buttons as well as checkboxes.</p>
<p><strong>Creating radio buttons</strong></p>
<p>While we&#8217;re on the subject of radio buttons, I also found that IE6 doesn&#8217;t like radio buttons created using document.createElement() (i.e. as a DOM object). It&#8217;ll render them OK, but they&#8217;re unclickable. The answer is to create them by injecting HTML into an element with [element].innerHTML:</p>
<p>var obj = document.createElement( &#8217;span&#8217; );<br />
obj.innerHTML = &#8216;&lt;input type=&#8221;radio&#8221; name=&#8221;somefield&#8221; value=1&gt;1&#8242;;</p>
<p>&#8230;and so forth. Ugly.</p>
<p><strong>Assigning values to multiple select elements</strong></p>
<p>This was a really fiddly one, and seems to happen under only very particular circumstances. Anyway&#8230;</p>
<p>If you create a select element and set the &#8216;multiple&#8217; attribute, IE6 can sometimes have trouble assigning values to it if you do it immediately after it&#8217;s created. Note the word &#8217;sometimes&#8217;: I haven&#8217;t been able to create a simple enough test case to isolate the exact circumstances that are required. And it&#8217;s only a problem if you&#8217;re setting more than one value.</p>
<p>Anyway, the (horrible) fix is to delay setting the values using setTimeout(). The delay doesn&#8217;t matter (1 millisecond will do), but it does work.</p>
<p>I hope these notes help some other unfortunate soul out there avoid wasting the number of hours and brain cells that I just have!</p>
]]></content:encoded>
			<wfw:commentRss>http://the-stickman.com/web-development/javascript/dynamic-form-elements-and-internet-explorer-6/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Google Chrome: My two penn&#8217;th</title>
		<link>http://the-stickman.com/web-development/google-chrome-my-two-pennth/</link>
		<comments>http://the-stickman.com/web-development/google-chrome-my-two-pennth/#comments</comments>
		<pubDate>Wed, 03 Sep 2008 09:29:13 +0000</pubDate>
		<dc:creator>Stickman</dc:creator>
				<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://the-stickman.com/uncategorized/google-chrome-my-two-pennth/</guid>
		<description><![CDATA[OK, everyone&#8217;s talking about Google&#8217;s &#8216;new&#8217; browser (check out the comic for an easy introduction) and everyone&#8217;s going to have an opinion. Here&#8217;s mine, based on a few hours&#8217; use.
First (and lasting) impression: damn, it&#8217;s fast. It starts fast, it renders pages fast, it stays fast. JavaScript in particular is noticeably smoother where in other [...]]]></description>
			<content:encoded><![CDATA[<p>OK, everyone&#8217;s talking about <a href="http://www.google.com/chrome">Google&#8217;s &#8216;new&#8217; browser</a> (check out <a href="http://www.google.com/googlebooks/chrome/">the comic</a> for an easy introduction) and everyone&#8217;s going to have an opinion. Here&#8217;s mine, based on a few hours&#8217; use.</p>
<p>First (and lasting) impression: damn, it&#8217;s fast. It starts fast, it renders pages fast, it stays fast. JavaScript in particular is noticeably smoother where in other browsers it has lagged. The latter is thanks to the new V8 JavaScript engine, the rest is at least partly related to the memory model, where each tab is a completely separate process. Given that it&#8217;s using WebKit &#8212; the renderer behind Safari &#8212; the speed difference between the two is striking.</p>
<p>And to be honest, as far as the &#8216;wow&#8217; factor goes, that&#8217;s about it for me. It&#8217;s a browser. The minimalist layout is nice but in fact I&#8217;ve been doing myself with Firefox for a couple of years now. Oh, the tabs are at the top&#8230;ok. The address bar is &#8216;clever&#8217;&#8230;well I don&#8217;t particularly like FF3&#8217;s &#8216;Awesomebar&#8217;, and I&#8217;ve yet to see anything that this does that is likely to make me like it any better. The start page&#8217;s layout is very reminiscent of Opera, which isn&#8217;t necessarily a bad thing &#8212; I might well grow to like it.</p>
<p>But none of the above constitutes a &#8216;major breakthrough&#8217; or &#8216;a paradigm shift in the browser space&#8217;. It&#8217;ll be interesting to see how it develops, though. Maybe the behind-the-scenes, technical advances (esepcially the speed) will feed back into other browser projects. As it stands, it&#8217;s just yet another platform to test for incompatibilities.</p>
<p>But&#8230;the speed! I can see myself using it as a day-to-day browser for non-development purposes, just because it&#8217;s so quick to launch.</p>
]]></content:encoded>
			<wfw:commentRss>http://the-stickman.com/web-development/google-chrome-my-two-pennth/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MooTools: converting from 1.1x to 1.2</title>
		<link>http://the-stickman.com/web-development/javascript/mootools-converting-from-11x-to-12/</link>
		<comments>http://the-stickman.com/web-development/javascript/mootools-converting-from-11x-to-12/#comments</comments>
		<pubDate>Mon, 28 Jul 2008 13:28:16 +0000</pubDate>
		<dc:creator>Stickman</dc:creator>
				<category><![CDATA[Javascript]]></category>

		<guid isPermaLink="false">http://the-stickman.com/web-development/javascript/mootools-converting-from-11x-to-12/</guid>
		<description><![CDATA[More of a reminder for myself than anything: here&#8217;s a simple changelog that could be of use when updating scripts to MooTools 1.2.
]]></description>
			<content:encoded><![CDATA[<p>More of a reminder for myself than anything: here&#8217;s <a href="http://github.com/mootools/mootools-core/wikis/conversion-from-1-11-to-1-2">a simple changelog</a> that could be of use when updating scripts to MooTools 1.2.</p>
]]></content:encoded>
			<wfw:commentRss>http://the-stickman.com/web-development/javascript/mootools-converting-from-11x-to-12/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Multiple file uploader: Mootools 1.2 version</title>
		<link>http://the-stickman.com/web-development/javascript/multiple-file-uploader-mootools-12-version/</link>
		<comments>http://the-stickman.com/web-development/javascript/multiple-file-uploader-mootools-12-version/#comments</comments>
		<pubDate>Mon, 21 Jul 2008 14:00:15 +0000</pubDate>
		<dc:creator>Stickman</dc:creator>
				<category><![CDATA[Javascript]]></category>

		<guid isPermaLink="false">http://the-stickman.com/uncategorized/multiple-file-uploader-mootools-12-version/</guid>
		<description><![CDATA[Just a quick heads-up for those who&#8217;ve been complaining about the MooTools version of the multiple-file uploader not working with MooTools 1.2 &#8212; it&#8217;s now been updated. The widget required three small modifications due to changes to MooTools&#8217; syntax.
Get the modified code here (old 1.1x-compatible version also included).
]]></description>
			<content:encoded><![CDATA[<p>Just a quick heads-up for those who&#8217;ve been complaining about <a href="http://the-stickman.com/web-development/multiple-file-uploader-mootools-version/">the MooTools version</a> of <a href="http://the-stickman.com/web-development/javascript/upload-multiple-files-with-a-single-file-element/">the multiple-file uploader</a> not working with MooTools 1.2 &#8212; it&#8217;s now been updated. The widget required three small modifications due to changes to MooTools&#8217; syntax.</p>
<p>Get the modified code <a href="http://the-stickman.com/files/mootools/multiupload/Stickman.MultiUpload.zip">here</a> (old 1.1x-compatible version also included).</p>
]]></content:encoded>
			<wfw:commentRss>http://the-stickman.com/web-development/javascript/multiple-file-uploader-mootools-12-version/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Making Firebug even better&#8230;</title>
		<link>http://the-stickman.com/web-development/making-firebug-even-better/</link>
		<comments>http://the-stickman.com/web-development/making-firebug-even-better/#comments</comments>
		<pubDate>Wed, 09 Jul 2008 13:24:23 +0000</pubDate>
		<dc:creator>Stickman</dc:creator>
				<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://the-stickman.com/uncategorized/making-firebug-even-better/</guid>
		<description><![CDATA[&#8230;yes, I know, I go on about Firebug a bit.
OK, a lot.
But good as it is it can still be improved, as this list of Firebug extensions proves. There were several on the list that I hadn&#8217;t heard of before and have already installed.
]]></description>
			<content:encoded><![CDATA[<p>&#8230;yes, I know, I go on about <a href="http://www.softwareishard.com/blog/firebug/list-of-firebug-extensions/">Firebug</a> a bit.</p>
<p>OK, a lot.</p>
<p>But good as it is it can still be improved, as <a href="http://www.softwareishard.com/blog/firebug/list-of-firebug-extensions/">this list of Firebug extensions</a> proves. There were several on the list that I hadn&#8217;t heard of before and have already installed.</p>
]]></content:encoded>
			<wfw:commentRss>http://the-stickman.com/web-development/making-firebug-even-better/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Binding a function to any class method in MooTools</title>
		<link>http://the-stickman.com/web-development/javascript/binding-a-function-to-any-class-method-in-mootools/</link>
		<comments>http://the-stickman.com/web-development/javascript/binding-a-function-to-any-class-method-in-mootools/#comments</comments>
		<pubDate>Tue, 08 Jul 2008 14:27:40 +0000</pubDate>
		<dc:creator>Stickman</dc:creator>
				<category><![CDATA[Javascript]]></category>

		<guid isPermaLink="false">http://the-stickman.com/web-development/javascript/binding-a-function-to-any-class-method-in-mootools/</guid>
		<description><![CDATA[Some time back, while experimenting with MooTools, I found myself with the requirement to be able to call a function whenever a particular method on a given class was called. In effect, I needed to treat the class&#8217;s method as an event and fire a particular function when the method was called.
So I wrote a [...]]]></description>
			<content:encoded><![CDATA[<p>Some time back, while experimenting with MooTools, I found myself with the requirement to be able to call a function whenever a particular method on a given class was called. In effect, I needed to treat the class&#8217;s method as an event and fire a particular function when the method was called.</p>
<p>So I wrote a very small addition to the Mootools&#8217; own Class code, which allowed this. The new method, Class.bindFunctionToMethod(), allows you either to intercept the method call before or after it&#8217;s fired. If fired before you can change the arguments being passed in, while if fired after then you can alter the return value.</p>
<p>Of course you need to be careful how you use it: by &#8216;piggy-backing&#8217; on method calls like this (especially if you alter the arguments or return value) you&#8217;re potentially altering the script&#8217;s behaviour in a way that&#8217;s not necessarily evident by looking at the classes themselves. </p>
<p>You can download the code <a href="http://www.the-stickman.com/files/mootools/bindfunctiontomethod/Stickman.Class.BindFunctionToMethod.zip">here</a>: it&#8217;s heavily commented, so it should be fairly obvious how to use it. It works just fine with MooTools version 1.1+ and 1.2.</p>
]]></content:encoded>
			<wfw:commentRss>http://the-stickman.com/web-development/javascript/binding-a-function-to-any-class-method-in-mootools/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A Firebug alternative for Internet Explorer</title>
		<link>http://the-stickman.com/web-development/a-firebug-alternative-for-internet-explorer/</link>
		<comments>http://the-stickman.com/web-development/a-firebug-alternative-for-internet-explorer/#comments</comments>
		<pubDate>Mon, 07 Jul 2008 14:36:17 +0000</pubDate>
		<dc:creator>Stickman</dc:creator>
				<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://the-stickman.com/web-development/a-firebug-alternative-for-internet-explorer/</guid>
		<description><![CDATA[I spend most of my time developing server-side code and testing in Firefox so I don&#8217;t usually worry too much about other browsers. But when &#8212; as now &#8212; I find myself writing JavaScript and CSS, and struggling with all the cross-browser horror that comes with it, I need all the help I can get.
Opera [...]]]></description>
			<content:encoded><![CDATA[<p>I spend most of my time developing server-side code and testing in Firefox so I don&#8217;t usually worry too much about other browsers. But when &#8212; as now &#8212; I find myself writing JavaScript and CSS, and struggling with all the cross-browser horror that comes with it, I need all the help I can get.</p>
<p>Opera has made great strides recently with <a href="http://www.opera.com/products/dragonfly/">Dragonfly</a>, its own answer to <a href="http://getfirebug.com/">Firebug</a> (the current yardstick by which all other developer tools are measured), and while not quite as good it&#8217;s improving all the time. Safari is lagging well behind with its Web Inspector, which <a href="http://webkit.org/blog/108/">promised much when it was relaunched last year</a> but thus far has failed to deliver. </p>
<p>When it comes to Internet Explorer, the situation isn&#8217;t as awful as one might expect. Until recently I&#8217;d been using a combination of <a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=E59C3964-672D-4511-BB3E-2D5E1DB91038&amp;displaylang=en">Developer Toolbar</a> and <a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=2f465be0-94fd-4569-b3c4-dffdf19ccd99&amp;displaylang=en">Script Debugger</a> but today I stumbled upon <a href="http://www.debugbar.com/">DebugBar</a>, an IE extension which comes a lot closer to Firebug&#8217;s functionality, especially when it comes to inspecting CSS rules and so on. Its handling of JavaScript errors doesn&#8217;t improve much on IE&#8217;s own abilities &#8212; it still won&#8217;t tell you which file an error has occurred in, for example &#8212; and it seems to have trouble inspecting some script-created elements. Still, worth a look.</p>
<p><b>UPDATE:</b> while we&#8217;re on the subject of developing in IE, I should mention <a href="http://www.bartdart.com/">CachePal</a>, a shortcut button that clears IE&#8217;s cache. Handy when you&#8217;re developing (say) JavaScript, because IE has a tendency to hang onto old JavaScript files even after a SHIFT+Reload.</p>
]]></content:encoded>
			<wfw:commentRss>http://the-stickman.com/web-development/a-firebug-alternative-for-internet-explorer/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
