<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:thr="http://purl.org/syndication/thread/1.0" xml:lang="en" xml:base="http://ellisweb.net/wp-atom.php">
	<title type="text">Ellis Web</title>
	<subtitle type="text">Thoughts, Articles &amp; Links on Programming &amp; Technology by Yaakov Ellis</subtitle>

	<updated>2008-12-14T11:58:42Z</updated>
	<generator uri="http://wordpress.org/" version="2.8">WordPress</generator>

	<link rel="alternate" type="text/html" href="http://ellisweb.net" />
	<id>http://ellisweb.net/feed/atom/</id>
	

			<link rel="self" href="http://feeds.feedburner.com/EllisWeb" type="application/atom+xml" /><feedburner:emailServiceId xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">EllisWeb</feedburner:emailServiceId><feedburner:feedburnerHostname xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">http://feedburner.google.com</feedburner:feedburnerHostname><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><entry>
		<author>
			<name>Yaakov Ellis</name>
						<uri>http://ellisweb.net</uri>
					</author>
		<title type="html"><![CDATA[Casting vs. Converting in .Net]]></title>
		<link rel="alternate" type="text/html" href="http://ellisweb.net/2008/12/casting-vs-converting-in-net/" />
		<id>http://ellisweb.net/?p=406</id>
		<updated>2008-12-11T20:40:55Z</updated>
		<published>2008-12-11T20:40:55Z</published>
		<category scheme="http://ellisweb.net" term="c#" /><category scheme="http://ellisweb.net" term="cast" /><category scheme="http://ellisweb.net" term="Code" /><category scheme="http://ellisweb.net" term="convert" /><category scheme="http://ellisweb.net" term="types" />		<summary type="html">I recently saw a piece of code in a project that was throwing an exception that I did not understand:

string boolString = (string)DataBinder.Eval(DataItem, "IsNew");

One would expect that boolString would be assigned the value &amp;#8220;True&amp;#8221; or &amp;#8220;False&amp;#8221; depending on the value of the IsNew property of the DataItem object. However, this through an Exception with the [...]</summary>
		<content type="html" xml:base="http://ellisweb.net/2008/12/casting-vs-converting-in-net/">&lt;p&gt;I recently saw a piece of code in a project that was throwing an exception that I did not understand:&lt;/p&gt;
&lt;pre name="code" class="c#"&gt;
string boolString = (string)DataBinder.Eval(DataItem, "IsNew");
&lt;/pre&gt;
&lt;p&gt;One would expect that boolString would be assigned the value &amp;#8220;True&amp;#8221; or &amp;#8220;False&amp;#8221; depending on the value of the IsNew property of the DataItem object. However, this through an Exception with the message: &amp;#8220;Cannot explicitly convert bool to string&amp;#8221;. What is going on here?&lt;/p&gt;
&lt;p&gt;The syntax of &lt;em&gt;(&lt;strong&gt;type&lt;/strong&gt;)variable&lt;/em&gt; attempts to &lt;a href="http://msdn.microsoft.com/en-us/library/ms173105(VS.80).aspx"&gt;explicitly cast&lt;/a&gt; the variable into the given type. Casting does not attempt to interpret the data in the variable &amp;#8211; it just tries to fit the object referred to by the variable into the new data type. This will work whenever the two types are somehow compatible (for example, an int can be cast into a float with no exceptions) though sometimes it may result in data loss (a float cast into an int). However, in cases where there is no connection between the two classes, casting will result in an Exception (like the one that I received above).&lt;/p&gt;
&lt;p&gt;(There is another way to cast an object &amp;#8211; using the &lt;em&gt;as&lt;/em&gt; keyword. This will return a null if the cast fails, and is &lt;a href="http://www.codeproject.com/KB/cs/csharpcasts.aspx"&gt;much faster&lt;/a&gt; than the explicit casting referred to above).&lt;/p&gt;
&lt;p&gt;However, when converting an object, the conversion function has &amp;#8220;knowledge&amp;#8221; of the data contained in both the source and final object types, and will create the equivalent of the variable in the new data type. In the case above, using the System.Convert.ToString() method in place of the attempted cast to (string) would have worked fine. This is because the ToString method &amp;#8220;knows&amp;#8221; that a bool cannot be case into a string &amp;#8211; but it also knows what the equivalent string to each value of a bool will be, and is able to process the operation accordingly. In this case, reflector uncovers the following code (in the Boolean class):&lt;/p&gt;
&lt;pre name="code" class="c#"&gt;
public string ToString() {
    if (!this) {
        return "False";
    }
    return "True";
}
&lt;/pre&gt;
&lt;p&gt;This is obviously a very simple type conversion. However, there are many more complex conversion utilities built into the .Net framework (accessible through the &lt;a href="http://msdn.microsoft.com/en-us/library)/system.convert.aspx"&gt;System.Convert&lt;/a&gt; class &amp;#8211; see the DateTime.ToString conversion for an example of this. Also see the IConvertible interface). While conversions can be more expensive to run, since they are strongly typed, they are checked at compile time, and when used properly are more reliable to use when producing stable code. (See the MSDN article on &lt;a href="http://msdn.microsoft.com/en-us/library/ms173105.aspx"&gt;Casting and Type Conversions&lt;/a&gt; for more info).&lt;/p&gt;
&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/EllisWeb?a=NssqYtFL"&gt;&lt;img src="http://feeds.feedburner.com/~f/EllisWeb?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/EllisWeb?a=wRwzcY94"&gt;&lt;img src="http://feeds.feedburner.com/~f/EllisWeb?d=50" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/EllisWeb?a=04XWRVGS"&gt;&lt;img src="http://feeds.feedburner.com/~f/EllisWeb?i=04XWRVGS" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/EllisWeb?a=qkg79kqB"&gt;&lt;img src="http://feeds.feedburner.com/~f/EllisWeb?i=qkg79kqB" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</content>
		<link rel="replies" type="text/html" href="http://ellisweb.net/2008/12/casting-vs-converting-in-net/#comments" thr:count="0" />
		<link rel="replies" type="application/atom+xml" href="http://ellisweb.net/2008/12/casting-vs-converting-in-net/feed/atom/" thr:count="0" />
		<thr:total>0</thr:total>
	</entry>
		<entry>
		<author>
			<name>Yaakov Ellis</name>
						<uri>http://ellisweb.net</uri>
					</author>
		<title type="html"><![CDATA[No Budget for Off the Shelf Software?]]></title>
		<link rel="alternate" type="text/html" href="http://ellisweb.net/2008/09/no-budget-for-off-the-shelf-software/" />
		<id>http://ellisweb.net/?p=395</id>
		<updated>2008-09-10T16:41:26Z</updated>
		<published>2008-09-10T16:41:26Z</published>
		<category scheme="http://ellisweb.net" term="Misc" /><category scheme="http://ellisweb.net" term="corporate-policy" /><category scheme="http://ellisweb.net" term="cots" /><category scheme="http://ellisweb.net" term="development" /><category scheme="http://ellisweb.net" term="software" />		<summary type="html">I was reading a question today on StackOverFlow that was asking for advice on how to build a load-testing program for a website. At the end of the question is the following parenthetical remark (preempting the obvious answers pointing the questioner at any number of applications available for purchase that do exactly what they need):
We have [...]</summary>
		<content type="html" xml:base="http://ellisweb.net/2008/09/no-budget-for-off-the-shelf-software/">&lt;p&gt;I was reading a &lt;a href="http://beta.stackoverflow.com/questions/54459/website-load-testing"&gt;question&lt;/a&gt; today on StackOverFlow that was asking for advice on how to build a load-testing program for a website. At the end of the question is the following parenthetical remark (preempting the obvious answers pointing the questioner at any number of applications available for purchase that do exactly what they need):&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;We have a budget for programmer time but no budget for buying software, so it wouldn&amp;#8217;t matter how money we&amp;#8217;d save to buy a &lt;a href="http://en.wikipedia.org/wiki/Commercial_off-the-shelf"&gt;COTS&lt;/a&gt; product.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;This strikes me as a pretty stupid corporate policy that in the end will result in the company spending more than they need to in order to reinvent the wheel. What is they would save 1,000 programmer hours by spending $1,000 on one piece of software. It is not too far fetched. In today&amp;#8217;s programming world, the most capable development teams are those that know how and when to leverage expertise from outside of their immediate circle (and outside of the company payroll, when necessary). I realize that from an accounting perspective, one could claim that payroll is a fixed, budgeted cost, and since the developers have to be paid anyway, why shouldn&amp;#8217;t they do everything in house? But every hour spent on developing something in-house that could be bought elsewhere for less money than the cost of the salaries being spent is another hour that the company could have used to use its employees for increasing its own revenues and profitability. Oh well, their loss.&lt;/p&gt;
&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/EllisWeb?a=pOcB7OKw"&gt;&lt;img src="http://feeds.feedburner.com/~f/EllisWeb?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/EllisWeb?a=72H5rRNt"&gt;&lt;img src="http://feeds.feedburner.com/~f/EllisWeb?d=50" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/EllisWeb?a=sO3EtwWM"&gt;&lt;img src="http://feeds.feedburner.com/~f/EllisWeb?i=sO3EtwWM" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/EllisWeb?a=2UY0xHea"&gt;&lt;img src="http://feeds.feedburner.com/~f/EllisWeb?i=2UY0xHea" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</content>
		<link rel="replies" type="text/html" href="http://ellisweb.net/2008/09/no-budget-for-off-the-shelf-software/#comments" thr:count="1" />
		<link rel="replies" type="application/atom+xml" href="http://ellisweb.net/2008/09/no-budget-for-off-the-shelf-software/feed/atom/" thr:count="1" />
		<thr:total>1</thr:total>
	</entry>
		<entry>
		<author>
			<name>Yaakov Ellis</name>
						<uri>http://ellisweb.net</uri>
					</author>
		<title type="html"><![CDATA[Where Does Google Chrome Store User History, Profile &amp; Bookmarks?]]></title>
		<link rel="alternate" type="text/html" href="http://ellisweb.net/2008/09/where-does-google-chrome-store-user-history-profile-and-bookmarks/" />
		<id>http://ellisweb.net/?p=389</id>
		<updated>2008-09-11T05:17:45Z</updated>
		<published>2008-09-08T20:08:05Z</published>
		<category scheme="http://ellisweb.net" term="Web" /><category scheme="http://ellisweb.net" term="browser" /><category scheme="http://ellisweb.net" term="chrome" /><category scheme="http://ellisweb.net" term="google" /><category scheme="http://ellisweb.net" term="profile" /><category scheme="http://ellisweb.net" term="programs" /><category scheme="http://ellisweb.net" term="security" />		<summary type="html">I have been using and enjoying Google Chrome for the past couple of days. So as I am setting up my new computer, I am installing Chrome there as well. While doing this, I would like to bring over my saved browsing history and bookmarks so that I don&amp;#8217;t have to build it from scratch [...]</summary>
		<content type="html" xml:base="http://ellisweb.net/2008/09/where-does-google-chrome-store-user-history-profile-and-bookmarks/">&lt;p&gt;I have been using and enjoying Google Chrome for the past couple of days. So as I am setting up my new computer, I am installing Chrome there as well. While doing this, I would like to bring over my saved browsing history and bookmarks so that I don&amp;#8217;t have to build it from scratch on the new machine. The only problem is that while Chrome makes it very easy to import existing settings from Firefox, it does not display any visible option to export current settings.&lt;/p&gt;
&lt;p&gt;After a bit of digging, I found the location where Chrome stored user data:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;On XP &amp;#8211; C:\Documents and Settings\&amp;lt;User Name&amp;gt;\Local Settings\Application Data\Google\Chrome\User Data&lt;/li&gt;
&lt;li&gt;On Vista - C:\Users\&amp;lt;User Name&amp;gt;\AppData\Local\Google\Chrome\User Data&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The User Data folder contains three files: Local State, Safe Browsing and Safe Browsing Filter, along with a folder called Default. Default in turn contains your browser cache, plugin data, and all of your cookies and history data. To move my profile over to my new computer, I copied all of the files and folders under User Data on my XP machine, and moved them into the User Data on my new Vista machine (all of the files were nearly 100mb after only four days of use, which will give you some kind of idea about the amount of indexing going on in the background). When I next started Chrome on my Vista machine, it was identical to the app on my XP machine, down to most popular sites, history and cookies. I even started writing this post on my XP machine, and then continued it on my Vista machine without having to log in again into my Wordpress admin.&lt;/p&gt;
&lt;p&gt;In the end this was pretty easy to do. Though the ease of profile transfer could in turn make it easy for someone to steal someone else&amp;#8217;s identity &amp;#8211; after all, the cookies file (presumably a sqllite db or something similar) was only 256KB, and merely dropping it in the new User Data allowed a complete transfer of identity (perhaps a good security feature would be to allow the \User Data\Default\Cookies file to work only on the originally installed instance).&lt;/p&gt;
&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/EllisWeb?a=wWBCoKQ7"&gt;&lt;img src="http://feeds.feedburner.com/~f/EllisWeb?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/EllisWeb?a=1URHHMjg"&gt;&lt;img src="http://feeds.feedburner.com/~f/EllisWeb?d=50" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/EllisWeb?a=BFsfLRei"&gt;&lt;img src="http://feeds.feedburner.com/~f/EllisWeb?i=BFsfLRei" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/EllisWeb?a=f9zzh96T"&gt;&lt;img src="http://feeds.feedburner.com/~f/EllisWeb?i=f9zzh96T" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</content>
		<link rel="replies" type="text/html" href="http://ellisweb.net/2008/09/where-does-google-chrome-store-user-history-profile-and-bookmarks/#comments" thr:count="6" />
		<link rel="replies" type="application/atom+xml" href="http://ellisweb.net/2008/09/where-does-google-chrome-store-user-history-profile-and-bookmarks/feed/atom/" thr:count="6" />
		<thr:total>6</thr:total>
	</entry>
		<entry>
		<author>
			<name>Yaakov Ellis</name>
						<uri>http://ellisweb.net</uri>
					</author>
		<title type="html"><![CDATA[Google Chrome &#8211; Likes and Dislikes]]></title>
		<link rel="alternate" type="text/html" href="http://ellisweb.net/2008/09/google-chrome-likes-and-dislikes/" />
		<id>http://ellisweb.net/?p=381</id>
		<updated>2008-09-08T13:47:13Z</updated>
		<published>2008-09-07T10:04:46Z</published>
		<category scheme="http://ellisweb.net" term="Web" /><category scheme="http://ellisweb.net" term="browsers" /><category scheme="http://ellisweb.net" term="chrome" /><category scheme="http://ellisweb.net" term="firefox" /><category scheme="http://ellisweb.net" term="google" /><category scheme="http://ellisweb.net" term="ie" />		<summary type="html">I just downloaded Google Chrome and am going to try using it for some of my day-to-day web browsing over the next few days. Here are my initial reactions:
Likes

Fast. Very fast, and small memory footprint.
Each tab is a different process. This will make it very easy to any single tab that is using lots of [...]</summary>
		<content type="html" xml:base="http://ellisweb.net/2008/09/google-chrome-likes-and-dislikes/">&lt;p&gt;I just downloaded &lt;a href="http://google.com/Chrome"&gt;Google Chrome&lt;/a&gt; and am going to try using it for some of my day-to-day web browsing over the next few days. Here are my initial reactions:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Likes&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Fast. Very fast, and small memory footprint.&lt;/li&gt;
&lt;li&gt;Each tab is a different process. This will make it very easy to any single tab that is using lots of memory, without having to close the browser (unlike in FF).&lt;/li&gt;
&lt;li&gt;Tab positioning over the address bar (as oppossed to underneath in FF) seems more natural.&lt;/li&gt;
&lt;li&gt;No header or footer bars. Do we really need to waste vertical screen space just to tell me the name of the program and reserve space for status messages? Nope. Here there is no header bar (functions like close/minimize are squeezed to the right side of the tab area), and status messages and urls in links appear in a temporary popup box fixed to the bottom left corner of the browser window, when necessary. Seems like a very good use of screen space.&lt;/li&gt;
&lt;li&gt;Address bar has the domain name of the site appear in regular type, with the rest of the url appearing in a lighter type. It highlights the domain, which very quickly highlights where you are.&lt;/li&gt;
&lt;li&gt;Real warnings for potentially problematic domains. In IE and FF, you just get a small red box in your address bar. In Chrome, when you go to a page that is potentially troublesome (example: loads resources from a domain associated with malware) you have to go through a confirmation screen before loading the site. Seems like a much better way of implementing this than the halfway solution in IE and FF that everyone will tend to ignore.&lt;/li&gt;
&lt;li&gt;Useful built-in developer extensions (View Source, Debug Javascript, Javascript Console, Task Manager).&lt;/li&gt;
&lt;li&gt;In-page search is slick and improves on FF&amp;#8217;s implementation. You now see all occurences of the search term highlighted on the page at once, while maintaining the ability to enumerate through the bunch.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Dislikes&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style="text-decoration: line-through;"&gt;Non-existent bookmarking. I like my delicious add-on and bookmarks toolbar in Firefox as well as my different bookmarklets (Note in Google Reader, delicious, Seed Newsvine). It gives me easy access to the pages that I use frequently (I know that they are stored in the Chrome history, but often just clicking on my bookmark link is more efficient than going to remember the title or url, typing it into the address bar and sorting through the results to find the one that I want).&lt;/span&gt; I take it back. Ctrl-B attaches a bookmark bar to the bottom of the address bar. &lt;/li&gt;
&lt;li&gt;No page titles. Since there is no header bar, the page title is squeezed into the tab for that browser window, which in almost all cases is too small to see the page title. &lt;/li&gt;
&lt;li&gt;Clicking my mouse scroll bar doesn&amp;#8217;t bring up the scroll pointer like it does in almost every other application.&lt;/li&gt;
&lt;li&gt;I like having the search box separated from the address bar like it is in FF. &lt;/li&gt;
&lt;li&gt;No FF add-ons. No Firebug, Greasemonkey, Adblock, FireFTP or IE Tab).&lt;/li&gt;
&lt;li&gt;No built-in support for RSS. I would at least have expected them to include an auto-subscribe to Google Reader.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This is what I can come up with after using Chrome for 3 hours. So I like it better than IE7 (haven&amp;#8217;t tried 8 beta yet), though it does not beat out FF3 (yet).&lt;/p&gt;
&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/EllisWeb?a=HOwaQH4O"&gt;&lt;img src="http://feeds.feedburner.com/~f/EllisWeb?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/EllisWeb?a=IbhkTRUT"&gt;&lt;img src="http://feeds.feedburner.com/~f/EllisWeb?d=50" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/EllisWeb?a=X7ivXsbU"&gt;&lt;img src="http://feeds.feedburner.com/~f/EllisWeb?i=X7ivXsbU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/EllisWeb?a=ZX4vQDmE"&gt;&lt;img src="http://feeds.feedburner.com/~f/EllisWeb?i=ZX4vQDmE" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</content>
		<link rel="replies" type="text/html" href="http://ellisweb.net/2008/09/google-chrome-likes-and-dislikes/#comments" thr:count="0" />
		<link rel="replies" type="application/atom+xml" href="http://ellisweb.net/2008/09/google-chrome-likes-and-dislikes/feed/atom/" thr:count="0" />
		<thr:total>0</thr:total>
	</entry>
		<entry>
		<author>
			<name>Yaakov Ellis</name>
						<uri>http://ellisweb.net</uri>
					</author>
		<title type="html"><![CDATA[Signing Code Using PVK and SPC Files]]></title>
		<link rel="alternate" type="text/html" href="http://ellisweb.net/2008/08/signing-code-using-pvk-and-spc-files/" />
		<id>http://ellisweb.net/?p=374</id>
		<updated>2008-08-28T08:38:51Z</updated>
		<published>2008-08-28T08:26:56Z</published>
		<category scheme="http://ellisweb.net" term="Code" /><category scheme="http://ellisweb.net" term="authenticode" /><category scheme="http://ellisweb.net" term="code-signing" /><category scheme="http://ellisweb.net" term="encrypt" /><category scheme="http://ellisweb.net" term="pfx" /><category scheme="http://ellisweb.net" term="pvk" /><category scheme="http://ellisweb.net" term="spc" /><category scheme="http://ellisweb.net" term="thawte" />		<summary type="html">I have a Windows Forms application that is ready for distribution. One of the last steps is getting code-signing working. We purchased a Code Signing certificate from Thawte. This resulted in a PVK (private key) and an SPC (certificate) file being delivered. Then the question arose of how to go about using them.
Referring to the [...]</summary>
		<content type="html" xml:base="http://ellisweb.net/2008/08/signing-code-using-pvk-and-spc-files/">&lt;p&gt;I have a Windows Forms application that is ready for distribution. One of the last steps is getting code-signing working. We purchased a &lt;a href="http://www.thawte.com/code-signing/index.html"&gt;Code Signing&lt;/a&gt; certificate from Thawte. This resulted in a PVK (private key) and an SPC (certificate) file being delivered. Then the question arose of how to go about using them.&lt;/p&gt;
&lt;p&gt;Referring to the documentation for &lt;a href="http://msdn.microsoft.com/en-us/library/aa387764.aspx"&gt;SignTool.exe&lt;/a&gt;, there did not seem to be a way to sign the code using the PVK and SPC files via the command line. Though this was possible using the GUI program (accessible using the -signwizard command line option), in order to get this integrated with my build process, I needed a way to initiate the code signing fully from the command line.&lt;/p&gt;
&lt;p&gt;The solution turned out to be the following:&lt;/p&gt;
&lt;p&gt;1) &lt;strong&gt;Convert the PVK and SPC files to a PFX file&lt;/strong&gt; (Personal Information Exchange file &amp;#8211; this encapsulates the info found in the PVK and SPC files). This is done using the pvk2pfx.exe executable (which had been included as part of the .Net SDK, and was found in C:\Program Files\Microsoft SDKs\Windows\v6.0A\Bin on my computer). I used the following syntax to do this (Pass1 is the original password for the PVK file, Pass2 is the new password for the pfx file. &lt;a href="http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=1853015&amp;amp;SiteID=1#1869336"&gt;Ref&lt;/a&gt;):&lt;/p&gt;
&lt;pre name="code" class="html"&gt;pvk2pfx.exe -pvk mykey.pvk -pi Pass1 -spc mycert.spc -pfx newpfxfile.pfx -po Pass2 -f&lt;/pre&gt;
&lt;p&gt;After this ran, I now had a PFX file called newpfxfile.pfx ready to be used.&lt;/li&gt;
&lt;p&gt;2) &lt;strong&gt;Use SignTool and the PFX file to sign my code&lt;/strong&gt;. Now that I had a PFX file, I was able to sign my code (and timestamp it) using the following command line syntax:&lt;/p&gt;
&lt;pre name="code" class="html"&gt;signtool.exe sign /f newpfxfile.pfx /p Pass2 /d "AppDescription" /du "AppURL" /t http://timestamp.verisign.com/scripts/timstamp.dll LocationOfCode&lt;/pre&gt;
&lt;p&gt;Seems simple, but it took quite a lot of research to get this process right. Hopefully the info can help save someone else some time.&lt;/p&gt;
&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/EllisWeb?a=P5RGJZfA"&gt;&lt;img src="http://feeds.feedburner.com/~f/EllisWeb?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/EllisWeb?a=HapUEPeg"&gt;&lt;img src="http://feeds.feedburner.com/~f/EllisWeb?d=50" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/EllisWeb?a=Io7qqfLU"&gt;&lt;img src="http://feeds.feedburner.com/~f/EllisWeb?i=Io7qqfLU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/EllisWeb?a=r2qRLO6s"&gt;&lt;img src="http://feeds.feedburner.com/~f/EllisWeb?i=r2qRLO6s" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</content>
		<link rel="replies" type="text/html" href="http://ellisweb.net/2008/08/signing-code-using-pvk-and-spc-files/#comments" thr:count="0" />
		<link rel="replies" type="application/atom+xml" href="http://ellisweb.net/2008/08/signing-code-using-pvk-and-spc-files/feed/atom/" thr:count="0" />
		<thr:total>0</thr:total>
	</entry>
		<entry>
		<author>
			<name>Yaakov Ellis</name>
						<uri>http://ellisweb.net</uri>
					</author>
		<title type="html"><![CDATA[Memory Profiler Eating Up My Memory]]></title>
		<link rel="alternate" type="text/html" href="http://ellisweb.net/2008/08/memory-profiler-eating-up-my-memory/" />
		<id>http://ellisweb.net/?p=370</id>
		<updated>2008-08-26T19:01:54Z</updated>
		<published>2008-08-26T19:01:54Z</published>
		<category scheme="http://ellisweb.net" term="windows forms" /><category scheme="http://ellisweb.net" term="dottrace" /><category scheme="http://ellisweb.net" term="firefox" /><category scheme="http://ellisweb.net" term="jet-brains" /><category scheme="http://ellisweb.net" term="memory" /><category scheme="http://ellisweb.net" term="profiler" /><category scheme="http://ellisweb.net" term="ram" /><category scheme="http://ellisweb.net" term="task-manager" />		<summary type="html">I have a Windows Forms app that has a very long and complicated initialization process. As the release is approaching, today was my day to try and shoft things around in the init, get it loading faster. So on recommendation from a few sources, I downloaded a profiler &amp;#8211; Jet Brains dotTrace. Install and first [...]</summary>
		<content type="html" xml:base="http://ellisweb.net/2008/08/memory-profiler-eating-up-my-memory/">&lt;p&gt;I have a Windows Forms app that has a very long and complicated initialization process. As the release is approaching, today was my day to try and shoft things around in the init, get it loading faster. So on recommendation from a few sources, I downloaded a profiler &amp;#8211; Jet Brains &lt;a href="http://www.jetbrains.com/profiler/"&gt;dotTrace&lt;/a&gt;. Install and first profile went well. However, as I started to make more changes and run more profiles, I noticed that there were no improvements in initialization time. If anything, things were getting worse. Task Manager helped pinpoint the culprit:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://ellisweb.net/wp-content/uploads/2008/08/dottrace.jpg"&gt;&lt;img class="aligncenter size-medium wp-image-371" title="dotTrace in the Task Manager" src="http://ellisweb.net/wp-content/uploads/2008/08/dottrace-300x272.jpg" alt="" width="300" height="272" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;If the numbers are too small, that is 1,241,596 KB. Yikes. Compare that with the second and third-place contestants, FireFox 3 at 174,584 KB, Visual Studio 2005 at 144,940 KB.&lt;/p&gt;
&lt;p&gt;This is what happened after I closed the profiler (see if you can guess when that happened):&lt;/p&gt;
&lt;p&gt;&lt;a href="http://ellisweb.net/wp-content/uploads/2008/08/dottrace-pagefile.jpg"&gt;&lt;img class="aligncenter size-medium wp-image-372" title="Memory drops after dotTrace is closed" src="http://ellisweb.net/wp-content/uploads/2008/08/dottrace-pagefile-300x272.jpg" alt="" width="300" height="272" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;And I thought that Firefox 2 was using &lt;a href="http://ellisweb.net/2007/04/firefox-the-memory-hog/"&gt;a lot of memory&lt;/a&gt;. I know that these programs are complicated, but I find it hard to comprehend how a program is supposed to help you track the memory usage of the applications that you are debugging when it ends up gobbling down over 1.2GB of RAM all by itself and making the computer basically unusable.&lt;/p&gt;
&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/EllisWeb?a=LbBmGkxM"&gt;&lt;img src="http://feeds.feedburner.com/~f/EllisWeb?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/EllisWeb?a=ywKCdfLb"&gt;&lt;img src="http://feeds.feedburner.com/~f/EllisWeb?d=50" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/EllisWeb?a=crJPI58L"&gt;&lt;img src="http://feeds.feedburner.com/~f/EllisWeb?i=crJPI58L" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/EllisWeb?a=441J0fiz"&gt;&lt;img src="http://feeds.feedburner.com/~f/EllisWeb?i=441J0fiz" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</content>
		<link rel="replies" type="text/html" href="http://ellisweb.net/2008/08/memory-profiler-eating-up-my-memory/#comments" thr:count="0" />
		<link rel="replies" type="application/atom+xml" href="http://ellisweb.net/2008/08/memory-profiler-eating-up-my-memory/feed/atom/" thr:count="0" />
		<thr:total>0</thr:total>
	</entry>
		<entry>
		<author>
			<name>Yaakov Ellis</name>
						<uri>http://ellisweb.net</uri>
					</author>
		<title type="html"><![CDATA[Ajax Progress Image Generator]]></title>
		<link rel="alternate" type="text/html" href="http://ellisweb.net/2008/08/ajax-progress-image-generator/" />
		<id>http://ellisweb.net/?p=364</id>
		<updated>2008-08-26T12:33:05Z</updated>
		<published>2008-08-26T12:32:16Z</published>
		<category scheme="http://ellisweb.net" term="WebDev" /><category scheme="http://ellisweb.net" term="ajax" /><category scheme="http://ellisweb.net" term="animated-gif" /><category scheme="http://ellisweb.net" term="gif" /><category scheme="http://ellisweb.net" term="image" /><category scheme="http://ellisweb.net" term="progress" /><category scheme="http://ellisweb.net" term="web-design" />		<summary type="html">I was in need of an Ajax-style animated gif that could be used to indicate that something is going on in the background or loading. I have seen them on hundreds of sites, but I don&amp;#8217;t feel comfortable just copying someone else&amp;#8217;s image to use for myself.
After a bit of searching, I found this site: [...]</summary>
		<content type="html" xml:base="http://ellisweb.net/2008/08/ajax-progress-image-generator/">&lt;p&gt;I was in need of an Ajax-style animated gif that could be used to indicate that something is going on in the background or loading. I have seen them on hundreds of sites, but I don&amp;#8217;t feel comfortable just copying someone else&amp;#8217;s image to use for myself.&lt;/p&gt;
&lt;p&gt;After a bit of searching, I found this site: &lt;a href="http://ajaxload.info/"&gt;AjaxLoad.Info&lt;/a&gt;. This is a nice, simple site that generates 37 different &amp;#8220;loading&amp;#8221; animated gifs, allowing you to customize the style, foreground and background colors, and transparency. Definitely a good site to know about.&lt;/p&gt;
&lt;table border="0" width="100%"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style="text-align: center;"&gt;&lt;img class="size-full wp-image-366" title="ajax-loader" src="http://ellisweb.net/wp-content/uploads/2008/08/ajax-loader.gif" alt="" width="32" height="32" /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/EllisWeb?a=JLIHl0fQ"&gt;&lt;img src="http://feeds.feedburner.com/~f/EllisWeb?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/EllisWeb?a=II0w950U"&gt;&lt;img src="http://feeds.feedburner.com/~f/EllisWeb?d=50" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/EllisWeb?a=w90hmN1S"&gt;&lt;img src="http://feeds.feedburner.com/~f/EllisWeb?i=w90hmN1S" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/EllisWeb?a=p8iYltrP"&gt;&lt;img src="http://feeds.feedburner.com/~f/EllisWeb?i=p8iYltrP" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</content>
		<link rel="replies" type="text/html" href="http://ellisweb.net/2008/08/ajax-progress-image-generator/#comments" thr:count="0" />
		<link rel="replies" type="application/atom+xml" href="http://ellisweb.net/2008/08/ajax-progress-image-generator/feed/atom/" thr:count="0" />
		<thr:total>0</thr:total>
	</entry>
		<entry>
		<author>
			<name>Yaakov Ellis</name>
						<uri>http://ellisweb.net</uri>
					</author>
		<title type="html"><![CDATA[Four Tips for Handling Distractions when Working from Home]]></title>
		<link rel="alternate" type="text/html" href="http://ellisweb.net/2008/08/four-tips-for-handling-distractions-when-working-from-home/" />
		<id>http://ellisweb.net/?p=260</id>
		<updated>2008-08-14T11:19:37Z</updated>
		<published>2008-08-15T10:43:42Z</published>
		<category scheme="http://ellisweb.net" term="Misc" /><category scheme="http://ellisweb.net" term="productivity" /><category scheme="http://ellisweb.net" term="telecommuting" /><category scheme="http://ellisweb.net" term="telework" />		<summary type="html">Working from home has lots of benefits: no commute, you don’t have to dress for the office, play your music loud, etc. However, in order to keep up (and improve on) your productivity while working at home, it is essential to come up with and enact a strategy for dealing with distractions.

Distractions at home can [...]</summary>
		<content type="html" xml:base="http://ellisweb.net/2008/08/four-tips-for-handling-distractions-when-working-from-home/">&lt;p&gt;Working from home has lots of benefits: no commute, you don’t have to dress for the office, play your music loud, etc. However, in order to keep up (and improve on) your productivity while working at home, it is essential to come up with and enact a strategy for dealing with distractions.&lt;br /&gt;
&lt;span id="more-260"&gt;&lt;/span&gt;&lt;br /&gt;
Distractions at home can take many forms:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Children and/or Spouse&lt;/li&gt;
&lt;li&gt;Household chores (washing three days of dishes is a handy method for procrastination when you are really desperate)&lt;/li&gt;
&lt;li&gt;Phone/Mail/Bills&lt;/li&gt;
&lt;li&gt;Television/Video Games&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The common theme among these distractions is that they are things that are commonly found at home that you would not normally encounter in your place of work. There are good things and bad things about the average workplace &amp;#8211; one positive thing is that the normal distractions you would face at home are not there, enabling you to (at least in theory) be more productive. Thus, in order to telecommute productively, one must find a way to achieve some level of concentration in an environment that is at first glance not so conducive to it.&lt;/p&gt;
&lt;p&gt;So without further ado, here are a few ideas for ways to handle these distractions:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;1) Close Your Door&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Make sure that your workspace is separated as much as possible from the potential sources of distraction (ie: television, kitchen, play room) and make sure that the word gets out that whenever your door is closed, you are working and are not to be disturbed. You can even set up with your spouse or children that if they need to speak with you and want to see if you are free for a minute, they should IM you, email you, call your cell phone, but &lt;em&gt;not&lt;/em&gt; knock on the door. Take advantage of the proximity of your home office to the rest of your home, but in all other ways, treat it like a real office (where these other distractions probably wouldn’t exist and where your kids could never just come in and say hello).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;2) Headphones&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The idea here is that even when you are working behind a closed door (or if you are sharing a home office with the family PC and cannot have the door closed as often as you would like) there will still be distracting home-sounds that make their way into your work area and could potentially disrupt your thought process and work flow. To combat this, try some &lt;a href="http://www.amazon.com/gp/redirect.html?ie=UTF8&amp;amp;location=http%3A%2F%2Famazon.com%2Fgp%2Fbrowse.html%3Fnode%3D11974481%26no%3D11091801%2Fqid%3Dsr%3D53-1%2Fqid%3D1180611543&amp;amp;tag=httpellinet-20&amp;amp;linkCode=ur2&amp;amp;camp=1789&amp;amp;creative=9325"&gt;headphones&lt;/a&gt;&lt;img style="border: medium none  ! important; margin: 0px ! important; display: none;" src="http://www.assoc-amazon.com/e/ir?t=httpellinet-20&amp;amp;l=ur2&amp;amp;o=1" border="0" alt="" width="1" height="1" /&gt;, especially the type that is designed to &lt;a href="http://www.amazon.com/gp/redirect.html?ie=UTF8&amp;amp;location=http%3A%2F%2Fwww.amazon.com%2FSony-MDR-NC6-Noise-Canceling-Headphones%2Fdp%2FB000629GES%3Fie%3DUTF8%26s%3Delectronics%26qid%3D1180611543%26sr%3D8-1&amp;amp;tag=httpellinet-20&amp;amp;linkCode=ur2&amp;amp;camp=1789&amp;amp;creative=9325"&gt;cancel noise&lt;/a&gt;&lt;img style="border: medium none  ! important; margin: 0px ! important; display: none;" src="http://www.assoc-amazon.com/e/ir?t=httpellinet-20&amp;amp;l=ur2&amp;amp;o=1" border="0" alt="" width="1" height="1" /&gt;. For those who like to work with music, this is a no-brainer (and a good idea even if you work in a regular office). However, even if you don’t like to listen to music all the time while you work, wearing headphones can help you to focus more on the task at hand, ignore distractions and let the background noises fade a bit. (And if you do have to share your home office with someone else, wearing headphones can be like a second door &amp;#8211; it is a sign to the other person that you are working now and should not be disturbed).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;3) Schedule&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The two tips above are intended to help you insulate yourself from the distraction-filled environment that is your home-office, and help you to create for yourself some thinking-space. However, there is another aspect of working from home that these do not take advantage of. One very nice thing is that you do have more flexibility to help watch the baby, run an errand, play with the kids when they come home from school or do something else that is only possible at home and would not be possible in the traditional office. Or perhaps you might need to take a break from what you are doing and watching TV or a DVD (which is done more comfortably at home and not in front of your co-workers) is exactly what you need to do. How can you make these distractions a part of your work day in a way that will improve, not hurt your productivity?&lt;/p&gt;
&lt;p&gt;The answer is to schedule out your daily activities. You may want to have this rigidly set (ie: on every Monday I will work from 9am to 11:30am and then take a 45 minute break), or you may want to do this flexibly, creating a &lt;a href="http://www.rememberthemilk.com/"&gt;To Do&lt;/a&gt; list every day, listing the tasks that you want to accomplish and how long each will take (I have found David Seah’s &lt;a href="http://davidseah.com/archives/2005/09/23/the-printable-ceo/"&gt;Printable CEO&lt;/a&gt;, and &lt;a href="http://davidseah.com/archives/2006/06/23/the-printable-ceo-online-emergent-task-timer/"&gt;Online Emergent Task Timer&lt;/a&gt; excellent tools for this type of informal task planning). Whichever way you do it, this will help you to set boundaries for yourself regarding your goals, and will help you to use the distractions that surround you as tools for making progress in your work and goals for completing your tasks, rather than as a means for procrastination.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;4) Setting Boundaries&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;I have found that one of the hardest things, especially if you enjoy your job (and it is computer/programming-related) is leaving work and going home. When I used to work in an office, I would have a 30-40 minute commute home every day that served to help me unwind and transition from work-mode to home-mode. Then when I got home, I was home. Work was no longer at the top of my list of things to do. I had a physical and mental separation between the two.&lt;/p&gt;
&lt;p&gt;Now, my commute is much shorter. When dinner is ready, my wife IMs me, and thirty seconds later I have finished my &amp;#8220;commute&amp;#8221; home. This is ever-so convenient (with a big savings on time and gas). However, this lack of separation between work and home means that it only takes another half minute for me to &amp;#8220;commute&amp;#8221; back to work. I just sit down at my computer, and I am already there. Though this is great for my employer, it can sometimes be detrimental to family life (and it also prevents you from having the down-time that is necessary for preventing burn-out).&lt;/p&gt;
&lt;p&gt;Try very hard not to let this happen. When you come home, stay home (barring any type of emergency where you might have been called into duty had you been an office commuter, of course). If this is hard for you and you find yourself drifting back to the computer, create a schedule of activities for yourself to do at home, go outside, exercise, read books. But don&amp;#8217;t go back to work until tomorrow morning.&lt;/p&gt;
&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/EllisWeb?a=4c1F6Tfw"&gt;&lt;img src="http://feeds.feedburner.com/~f/EllisWeb?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/EllisWeb?a=TNe3rF3x"&gt;&lt;img src="http://feeds.feedburner.com/~f/EllisWeb?d=50" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/EllisWeb?a=S8yecyAl"&gt;&lt;img src="http://feeds.feedburner.com/~f/EllisWeb?i=S8yecyAl" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/EllisWeb?a=98Cz3RG9"&gt;&lt;img src="http://feeds.feedburner.com/~f/EllisWeb?i=98Cz3RG9" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</content>
		<link rel="replies" type="text/html" href="http://ellisweb.net/2008/08/four-tips-for-handling-distractions-when-working-from-home/#comments" thr:count="1" />
		<link rel="replies" type="application/atom+xml" href="http://ellisweb.net/2008/08/four-tips-for-handling-distractions-when-working-from-home/feed/atom/" thr:count="1" />
		<thr:total>1</thr:total>
	</entry>
		<entry>
		<author>
			<name>Yaakov Ellis</name>
						<uri>http://ellisweb.net</uri>
					</author>
		<title type="html"><![CDATA[Using SyntaxHighlighter to Format Code in WordPress]]></title>
		<link rel="alternate" type="text/html" href="http://ellisweb.net/2008/08/using-syntaxhighlighter-to-format-code-in-wordpress/" />
		<id>http://ellisweb.net/?p=228</id>
		<updated>2008-12-14T11:58:42Z</updated>
		<published>2008-08-14T08:04:15Z</published>
		<category scheme="http://ellisweb.net" term="Code" /><category scheme="http://ellisweb.net" term="javascript" /><category scheme="http://ellisweb.net" term="php" /><category scheme="http://ellisweb.net" term="wordpress" /><category scheme="http://ellisweb.net" term="formatting" /><category scheme="http://ellisweb.net" term="plugins" /><category scheme="http://ellisweb.net" term="syntax" /><category scheme="http://ellisweb.net" term="syntaxhighlighter" />		<summary type="html">Based on a question in the StackOverflow beta site, I did some quick research into what are the best ways to perform syntax highlighting on code that is posted on blogs. Among the methods that were suggested (by myself or others):

Hack together your own display logic to format it as you see fit
Use the SyntaxHighlighter [...]</summary>
		<content type="html" xml:base="http://ellisweb.net/2008/08/using-syntaxhighlighter-to-format-code-in-wordpress/">&lt;p&gt;Based on a &lt;a href="http://beta.stackoverflow.com/questions/9051/what-is-best-blogging-host-for-programmerscode-formatting"&gt;question&lt;/a&gt; in the StackOverflow beta site, I did some quick research into what are the best ways to perform syntax highlighting on code that is posted on blogs. Among the methods that were suggested (by myself or others):&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Hack together your own display logic to format it as you see fit&lt;/li&gt;
&lt;li&gt;Use the &lt;a href="http://code.google.com/p/syntaxhighlighter/"&gt;SyntaxHighlighter&lt;/a&gt; JavaScript library&lt;/li&gt;
&lt;li&gt;Use &lt;a href="http://windowslivewriter.spaces.live.com/"&gt;Windows Live Writer&lt;/a&gt; with the &lt;a href="http://gallery.live.com/liveItemDetail.aspx?li=1f57bd9b-a692-4593-9e9e-e2962d9c0eee&amp;amp;bt=9&amp;amp;pl=8"&gt;Insert Code&lt;/a&gt; plugin (I discuss that &lt;a href="http://ellisweb.net/2007/11/trying-out-windows-live-writer/"&gt;here&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;For WordPress, use the &lt;a href="http://wordpress.org/extend/plugins/wp-syntax/"&gt;WP-Syntax&lt;/a&gt; plugin&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Coincidentally, I had heard Scott Hanselman talking about how he does code formatting just a couple of days ago, in &lt;a href="http://hanselminutes.com/default.aspx?showID=143"&gt;Hanselminutes #125&lt;/a&gt;, where he described how he posted code on his blog by putting it inside &amp;lt;pre&amp;gt;&amp;lt;/pre&amp;gt; tags, adding specific name and class attributes, and letting some JavaScript library do the formatting work. So I went to his blog, opened up a post with some code, and found my way to the &lt;a href="http://code.google.com/p/syntaxhighlighter/"&gt;SyntaxHighlighter&lt;/a&gt; JavaScript library. This is a very nifty library that handles formatting very nicely for a number of popular programming and scripting languages, and seemed to have a very easy implementation. So I decided to implement it for formatting code on my site.&lt;br /&gt;
&lt;span id="more-228"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Installing SyntaxHighlighter&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The basic steps that you have to follow are:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Download the &lt;a href="http://code.google.com/p/syntaxhighlighter/downloads/list"&gt;files&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Upload the core JavaScript files, any JavaScript files related to languages that you would want to format, the swf and css files to somewhere on your server&lt;/li&gt;
&lt;li&gt;Add references in your code to the different files&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;A very good and more detailed guide on how you can do this with your template can be found in this &lt;a href="http://fahdshariff.blogspot.com/2008/07/syntax-highlighting-code-in-webpages.html"&gt;blog post&lt;/a&gt; by Fahd Sharif.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Displaying Code&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Once you have the script, swf and css references integrated with your theme, you can post code using the following convention:&lt;/p&gt;
&lt;pre class="html" name="code"&gt;&amp;lt;pre name="code" class="langName"&amp;gt;
Type your code here
&amp;lt;/pre&amp;gt;&lt;/pre&gt;
&lt;p&gt;If you are doing this in WordPress, you will need to use the HTML editor to insert this. Language name reference is &lt;a href="http://code.google.com/p/syntaxhighlighter/wiki/Languages"&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Here is what is looks like in action:&lt;/p&gt;
&lt;pre class="c#" name="code"&gt;public static class StringExtension {
  // Extension method to return first letter of a string
  public static string GetFirstLetter(this string str) {
    string val = (str.Length &amp;gt; 0) ? str.SubString(0,1) : "";
    return val;
  }
}&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;Fixing TinyMCE&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;After I first got this implemented in my theme, I had some problems getting it to work on actual blog posts. I would go to HTML mode in the editor, put in the &amp;lt;pre name=&amp;#8221;code&amp;#8221; class=&amp;#8221;lang&amp;#8221;&amp;gt;&amp;#8230;&amp;lt;/pre&amp;gt; syntax, go back to the Visual editor and finish my post, preview it, and no formatting would be applied. After checking the HTML source being output, I noticed that the &lt;em&gt;name=&amp;#8221;code&amp;#8221; &lt;/em&gt;attribute of the &lt;em&gt;pre &lt;/em&gt;tag was not being output. After some more investigation, I discovered that this attribute was being stripped by the TinyMCE editor when I switched from HTML to Visual editing modes.&lt;/p&gt;
&lt;p&gt;It turns out that TinyMCE has its own built-in HTML validation that it employs when text is loaded into the Visual editor. Included in this is the ability to strip out attributes that are for whatever reason not &amp;#8220;approved&amp;#8221;. Tag:Name seems to be one of those.&lt;/p&gt;
&lt;p&gt;One potential workaround would be to only use the HTML editor. Though I could do this, I like the Visual editor better when writing.&lt;/p&gt;
&lt;p&gt;The alternative is to change the list of approved attributes for the &lt;em&gt;pre&lt;/em&gt; tag so that &lt;em&gt;name&lt;/em&gt; will no longer be stripped. After researching this a bit (references: &lt;a href="http://wiki.moxiecode.com/index.php/TinyMCE:Configuration/extended_valid_elements"&gt;1&lt;/a&gt;, &lt;a href="http://wordpress.org/support/topic/180502?replies=2#post-775393"&gt;2&lt;/a&gt;, &lt;a href="http://wordpress.org/support/topic/156276?replies=17#post-774445"&gt;3&lt;/a&gt;), I did the following:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Open up /wp-includes/js/tinymce/tiny_mce_config.php&lt;/li&gt;
&lt;li&gt;Go to approximately line 298&lt;/li&gt;
&lt;li&gt;Make the following edit (what you are doing here is giving tinyMCE an explicit list of attributes that are acceptable for the &lt;em&gt;pre&lt;/em&gt; tag):&lt;/li&gt;
&lt;/ol&gt;
&lt;pre class="php:firstline[298]" name="code"&gt;// Original: $content .= $ext_plugins . 'tinyMCE.init({' . $mce_options . '});';
$content .= $ext_plugins . 'tinyMCE.init({extended_valid_elements : "pre[id|class|title|style|dir|lang|name|onclick|onkeypress]",' . $mce_options . '});';&lt;/pre&gt;
&lt;ol&gt;
&lt;li&gt;Upload the new file&lt;/li&gt;
&lt;li&gt;Clear your browser cache&lt;/li&gt;
&lt;li&gt;Delete the /wp-content/uploads/js folder from the server&lt;/li&gt;
&lt;li&gt;Do a hard-refresh of your editor page in WordPress&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;You should now be able to toggle back and forth between HTML and Visual editor modes in WordPress without losing the pre:name attribute necessary for SyntaxHighlighter to work. You will have to repeat this whenever you upgrade WordPress.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Why Not Just Use the Plugin&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;WordPress junkies at this point are muttering to themselves: why go to all this trouble? There is already a &lt;a href="http://wordpress.org/extend/plugins/syntaxhighlighter/"&gt;plugin&lt;/a&gt; that implements SyntaxHighlighter functionality and spares you all of this hard work. Here are the reasons why I chose to do this the hard way:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;The plugin ditches the &amp;lt;pre&amp;gt; syntax for a custom syntax that looks like this: [sourcecode language="lang"]CODE GOES HERE[/sourcecode]. While this eliminates the pre:name stripping issue that I mentioned before, it introduces something that in my opinion is much worse: tinyMCE now gets rid of any spatial formatting that you are using. I like to indent my code when necessary. If I am typing in the &lt;em&gt;pre&lt;/em&gt; tag, tinyMCE respects all of my spacing, and does not strip any of it out (that is the whole purpose of &lt;a href="http://www.w3schools.com/TAGS/tag_pre.asp"&gt;&lt;em&gt;pre&lt;/em&gt;&lt;/a&gt;. Thus, I can save all of my indenting and spacing without any difficulties. If you are using a custom bracketed tag like the plugin does, tinyMCE strips a good deal of indenting and spacing, leaving code that just looks ugly.&lt;/li&gt;
&lt;li&gt;The aforementioned code formatting issues carry over to the RSS feed as well. This way just works better.&lt;/li&gt;
&lt;li&gt;The plugin includes all language JavaScript files. I don&amp;#8217;t need to print Ruby code right now &amp;#8211; why should I have to include the JS for it with my page?&lt;/li&gt;
&lt;li&gt;Doing the implementation yourself gives greater flexibility in terms of using the &lt;a href="http://code.google.com/p/syntaxhighlighter/w/list"&gt;different configuration options&lt;/a&gt; that are available with SyntaxHighlighter.&lt;/li&gt;
&lt;li&gt;It is more fun this way&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;Update:&lt;/strong&gt; Engfer &lt;a href="http://www.engfers.com/2008/10/16/how-to-allow-stripped-element-attributes-in-wordpress-tinymce-editor/"&gt;lambasts me&lt;/a&gt; for editing wordpress core files that will be overwritten whenever wordpress is upgraded. Instead, he created a wordpress plugin that will allow you to override and define the allowable attributes for any elements parsed by TinyMCE. It is available for download &lt;a href="http://www.engfers.com/plugins/tinymce-valid-elements/"&gt;here&lt;/a&gt; and is definitely a better way to go than manually editing files. Thanks!&lt;/p&gt;
&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/EllisWeb?a=IghweRRz"&gt;&lt;img src="http://feeds.feedburner.com/~f/EllisWeb?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/EllisWeb?a=ufnqIkzl"&gt;&lt;img src="http://feeds.feedburner.com/~f/EllisWeb?d=50" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/EllisWeb?a=sC0WfUQH"&gt;&lt;img src="http://feeds.feedburner.com/~f/EllisWeb?i=sC0WfUQH" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/EllisWeb?a=ilgDSEaJ"&gt;&lt;img src="http://feeds.feedburner.com/~f/EllisWeb?i=ilgDSEaJ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</content>
		<link rel="replies" type="text/html" href="http://ellisweb.net/2008/08/using-syntaxhighlighter-to-format-code-in-wordpress/#comments" thr:count="4" />
		<link rel="replies" type="application/atom+xml" href="http://ellisweb.net/2008/08/using-syntaxhighlighter-to-format-code-in-wordpress/feed/atom/" thr:count="4" />
		<thr:total>4</thr:total>
	</entry>
		<entry>
		<author>
			<name>Yaakov Ellis</name>
						<uri>http://ellisweb.net</uri>
					</author>
		<title type="html"><![CDATA[My Developer Applications and Utilities List]]></title>
		<link rel="alternate" type="text/html" href="http://ellisweb.net/2008/08/my-developer-applications-and-utilities-list/" />
		<id>http://ellisweb.net/?p=225</id>
		<updated>2008-08-14T08:06:57Z</updated>
		<published>2008-08-12T10:21:05Z</published>
		<category scheme="http://ellisweb.net" term="applications" /><category scheme="http://ellisweb.net" term="development" /><category scheme="http://ellisweb.net" term="freeware" /><category scheme="http://ellisweb.net" term="programs" /><category scheme="http://ellisweb.net" term="tools" /><category scheme="http://ellisweb.net" term="utilities" />		<summary type="html">I am getting ready to move over to a new laptop, so I think that now is a good time to record (both for myself and for anyone else who may find this useful) the list of all the different programs and utilities that I have installed on my computer that I find useful (or [...]</summary>
		<content type="html" xml:base="http://ellisweb.net/2008/08/my-developer-applications-and-utilities-list/">&lt;p&gt;I am getting ready to move over to a new laptop, so I think that now is a good time to record (both for myself and for anyone else who may find this useful) the list of all the different programs and utilities that I have installed on my computer that I find useful (or necessary) enough to reinstall on the new box.&lt;br /&gt;
&lt;span id="more-225"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Coding &amp;amp; General Dev&lt;br /&gt;
&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/vstudio/default.aspx"&gt;Visual Studio&lt;/a&gt; 2003, 2005, 2008 &amp;#8211; All .net development (I know that 2008 can code for 2005 projects &amp;#8211; however, I need to be able to work on 2005 projects that other coworkers are working on, where they do not have 2008 yet installed and the project file is still in 2005 format).&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.wholetomato.com/products/default.asp"&gt;Visual Assist X&lt;/a&gt; &amp;#8211; Helps me use VS more efficiently.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codesmithtools.com/"&gt;CodeSmith&lt;/a&gt; &amp;#8211; Code Generation&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeplex.com/iisadmin"&gt;IISAdmin.net&lt;/a&gt; &amp;#8211; Host multiple IIS sites on my box&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.thraexsoftware.com/aiw/"&gt;Astrum InstallWizard&lt;/a&gt; &amp;#8211; Installer packager I use for a WinForms project&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.preemptive.com/dotfuscator.html"&gt;DotFuscator Professional&lt;/a&gt; &amp;#8211; Code Obfuscation&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.apexsql.com/sql_tools_diff.asp"&gt;ApexSQL Diff&lt;/a&gt; &amp;#8211; Diffs and updates for SQL Servers&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=2cc30a64-ea15-4661-8da4-55bbc145c30e&amp;amp;displaylang=en"&gt;WMI Code Creator&lt;/a&gt; &amp;#8211; Generate code to query computer info&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.microsoft.com/sql/default.mspx"&gt;Sql Server&lt;/a&gt; &amp;#8211; I had had &lt;a href="http://www.microsoft.com/sql/prodinfo/default.mspx"&gt;2005&lt;/a&gt;, I think I will also install &lt;a href="http://www.microsoft.com/sqlserver/2008/en/us/default.aspx"&gt;2008&lt;/a&gt; going forward. Don&amp;#8217;t forget &lt;a href="http://www.microsoft.com/sql/technologies/reporting/default.mspx"&gt;Reporting Services&lt;/a&gt; and &lt;a href="http://msdn.microsoft.com/en-us/library/ms141026.aspx"&gt;SSIS&lt;/a&gt; (I will try to go with both side-by-side because I still may need to work on 2005-based reports and SSIS jobs going forward. 2008 will be the instance that I have running locally, though).&lt;/li&gt;
&lt;li&gt;&lt;a href="http://vistadb.net"&gt;VistaDB&lt;/a&gt; &amp;#8211; Great embedded DB that I use for a Windows Forms app that I work on.&lt;/li&gt;
&lt;li&gt;Controls &amp;#8211; Various controls packages that I use for ASP.net &amp;amp; WinForms dev work
&lt;ol&gt;
&lt;li&gt;&lt;a href="http://www.componentfactory.com/"&gt;Krypton Toolkit/Navigator&lt;/a&gt; &amp;#8211; WinForms controls&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.telerik.com/products/aspnet-ajax/overview.aspx"&gt;Telerik RadControls&lt;/a&gt; &amp;#8211; Great web controls&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.vgdotnet.com/"&gt;VG.net &lt;/a&gt;- .net-based vector graphics&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.dynamicpdf.com/"&gt;DynamicPDF&lt;/a&gt; &amp;#8211; .net PDF generation&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;Multimedia&lt;br /&gt;
&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href="http://www.getpaint.net/"&gt;Paint.net&lt;/a&gt; &amp;#8211; Great simple, free graphics tool&lt;/li&gt;
&lt;li&gt;&lt;a href="http://apple.com/iTunes"&gt;iTunes&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.gimp.org/"&gt;Gimp&lt;/a&gt; &amp;#8211; Great complicated, free graphics tool&lt;/li&gt;
&lt;li&gt;&lt;a href="http://picasa.google.com/"&gt;Picasa&lt;/a&gt; &amp;#8211; Photo management&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.flickr.com/tools/uploadr/"&gt;Flickr Uploader&lt;/a&gt; &amp;#8211; Get the photos online&lt;/li&gt;
&lt;li&gt;&lt;a href="http://audacity.sourceforge.net/"&gt;Audacity&lt;/a&gt; &amp;#8211; Audio processing&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.andreaplanet.com/andreamosaic/"&gt;AndreaMosaic&lt;/a&gt; &amp;#8211; Create cool photo mosaics&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.videolan.org/vlc/"&gt;DivX&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.videolan.org/vlc/"&gt;VLC Media Player&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;Internet&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href="http://GetFireFox.co"&gt;Firefox&lt;/a&gt; 3.x &amp;#8211; Everyday browser. Don&amp;#8217;t forget the following AddIns:
&lt;ol&gt;
&lt;li&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/1865"&gt;Adblock Plus&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/3615"&gt;Delicious Bookmarks&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/201"&gt;DownThemAll!&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/1843"&gt;FireBug&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/684"&gt;FireFTP&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.google.com/tools/firefox/toolbar/FT3/intl/en/index.html"&gt;Google Toolbar&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/1419"&gt;IE Tab&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/3829"&gt;Live HTTP Headers&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.techsmith.com/snagit/accessories/firefox.asp"&gt;SnagIt Extension&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/2871"&gt;URL Fixer&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.google.com/talk/"&gt;Google Talk Client&lt;/a&gt; &amp;#8211; IM and Chat&lt;/li&gt;
&lt;li&gt;&lt;a href="http://skype.com"&gt;Skype&lt;/a&gt; &amp;#8211; VOIP&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.putty.org/"&gt;Putty&lt;/a&gt; &amp;#8211; For the occassional Telnet session&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.twhirl.org/"&gt;twhirl&lt;/a&gt; &amp;#8211; For when I get in the mode to &lt;a href="http://www.twhirl.org/"&gt;Tweet&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=d2baeda0-aa9a-4080-9202-1f23902d1169&amp;amp;displaylang=en"&gt;Windows Live Writer &lt;/a&gt;- Blogging from the desktop&lt;a href="http://www.twhirl.org/"&gt; &lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;Utilities &amp;amp; Misc Apps&lt;br /&gt;
&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href="http://office.microsoft.com/en-us/default.aspx"&gt;MS Office 2007&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://technet.microsoft.com/en-us/sysinternals/default.aspx"&gt;SysInternals&lt;/a&gt; &amp;#8211; All the included utilities, especially &lt;a href="http://technet.microsoft.com/en-us/sysinternals/bb896653.aspx"&gt;Process Explorer&lt;/a&gt; and &lt;a href="http://technet.microsoft.com/en-us/sysinternals/bb963902.aspx"&gt;AutoRuns&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.flos-freeware.ch/notepad2.html"&gt;Notepad2&lt;/a&gt; &amp;#8211; Must-have&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.sliksvn.com/en/download"&gt;SVN&lt;/a&gt;, &lt;a href="http://ankhsvn.open.collab.net/"&gt;AnkhSVN&lt;/a&gt;, &lt;a href="http://tortoisesvn.net/downloads"&gt;TortoiseSVN&lt;/a&gt; &amp;#8211; Local Source Control&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.techsmith.com/screen-capture.asp"&gt;SnagIt&lt;/a&gt; &amp;#8211; Best screen capture tool&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.baremetalsoft.com/baregrep/"&gt;BareGrep&lt;/a&gt; &amp;#8211; Good, free, fast grep tool for Windows&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.ntwind.com/software/taskswitchxp.html"&gt;TaskSwitchXP Pro&lt;/a&gt; &amp;#8211; Improved Alt-Tab behavior.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.allsnap.org/"&gt;AllSnap &lt;/a&gt;- Makes it easier to line up windows next to each other&lt;/li&gt;
&lt;li&gt;&lt;a href="http://download.microsoft.com/download/7/b/6/7b6abd84-7841-4978-96f5-bd58df02efa2/winxpvirtualcdcontrolpanel_21.exe"&gt;Virtual CD Control Panel for XP&lt;/a&gt; &amp;#8211; Mount iso images as virtual drives&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.chmaas.handshake.de/delphi/freeware/xvi32/xvi32.htm"&gt;Hex Editor&lt;/a&gt; &amp;#8211; Sometimes necessary&lt;/li&gt;
&lt;li&gt;&lt;a href="http://winmerge.org/"&gt;WinMerge&lt;/a&gt; &amp;#8211; Good, free Diff/Merge tool&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.fiddlertool.com/fiddler/version.asp"&gt;Fiddler HTTP Debugger&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://keepass.info/"&gt;KeePass Password Safe&lt;/a&gt; &amp;#8211; Password encryption and storage&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.vmware.com/products/player/"&gt;VMWare&lt;/a&gt; &amp;#8211; Player and Infrastructure Client&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.altools.com/ALTools/ALZip.aspx"&gt;ALZip&lt;/a&gt; &amp;#8211; Zip utility&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.utorrent.com/"&gt;mTorrent&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://earth.google.com/"&gt;Google Earth&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;VSS 6.0 Client &amp;#8211; Unfortunately&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Am I missing anything?&lt;/p&gt;
&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/EllisWeb?a=DNGeCRxj"&gt;&lt;img src="http://feeds.feedburner.com/~f/EllisWeb?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/EllisWeb?a=qrsG3C8D"&gt;&lt;img src="http://feeds.feedburner.com/~f/EllisWeb?d=50" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/EllisWeb?a=BnGSquhY"&gt;&lt;img src="http://feeds.feedburner.com/~f/EllisWeb?i=BnGSquhY" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/EllisWeb?a=Z9pzMca6"&gt;&lt;img src="http://feeds.feedburner.com/~f/EllisWeb?i=Z9pzMca6" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</content>
		<link rel="replies" type="text/html" href="http://ellisweb.net/2008/08/my-developer-applications-and-utilities-list/#comments" thr:count="1" />
		<link rel="replies" type="application/atom+xml" href="http://ellisweb.net/2008/08/my-developer-applications-and-utilities-list/feed/atom/" thr:count="1" />
		<thr:total>1</thr:total>
	</entry>
	</feed><!-- Dynamic page generated in 0.641 seconds. --><!-- Cached page generated by WP-Super-Cache on 2009-07-12 11:19:31 -->
