<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://weblogs.asp.net/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>George V. Reilly's Technical Blog : General Software Development</title><link>http://weblogs.asp.net/george_v_reilly/archive/tags/General+Software+Development/default.aspx</link><description>Tags: General Software Development</description><dc:language>en</dc:language><generator>CommunityServer 2007 SP1 (Build: 20510.895)</generator><item><title>Review: Pragmatic Version Control Using Git</title><link>http://weblogs.asp.net/george_v_reilly/archive/2009/10/18/review-pragmatic-version-control-using-git.aspx</link><pubDate>Mon, 19 Oct 2009 05:44:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:7232792</guid><dc:creator>george_v_reilly</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/george_v_reilly/rsscomments.aspx?PostID=7232792</wfw:commentRss><comments>http://weblogs.asp.net/george_v_reilly/archive/2009/10/18/review-pragmatic-version-control-using-git.aspx#comments</comments><description>&lt;a class="reference external image-reference" href="http://www.elliottbaybook.com/product/info.jsp?isbn=1934356158"&gt;&lt;img alt="Pragmatic Version Control Using Git" class="right-float" src="http://images.amazon.com/images/P/1934356158.01.MZZZZZZZ.jpg" /&gt;&lt;/a&gt;
&lt;div class="line-block"&gt;
&lt;div class="line"&gt;Title: Pragmatic Version Control Using Git&lt;/div&gt;
&lt;div class="line"&gt;Author: Travis Swicegood&lt;/div&gt;
&lt;div class="line"&gt;Rating: $stars(4)&lt;/div&gt;
&lt;div class="line"&gt;Publisher: Pragmatic Bookshelf&lt;/div&gt;
&lt;div class="line"&gt;Copyright: 2008&lt;/div&gt;
&lt;div class="line"&gt;ISBN: &lt;a class="reference external" href="http://www.elliottbaybook.com/product/info.jsp?isbn=1934356158"&gt;1934356158&lt;/a&gt;&lt;/div&gt;
&lt;div class="line"&gt;Pages: 179&lt;/div&gt;
&lt;div class="line"&gt;Keywords: computers&lt;/div&gt;
&lt;div class="line"&gt;Reading period: 10–18 October, 2009&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;As part of my &lt;a class="reference external" href="http://www.georgevreilly.com/blog/2009/10/15/GittingAlong.aspx"&gt;personal conversion to Git&lt;/a&gt;, I read Swicegood's Git book.
It's a decent introduction to Git and you learn how to
do all the basic tasks as well as some more advanced topics.
The examples are clear and well-paced.&lt;/p&gt;
&lt;p&gt;I would have liked to see more about collaboration and workflow in a DVCS world,
perhaps a few case studies:
how is Git used in the Linux kernel development process;
how a small, distributed team uses Git and GitHub;
how a collocated team migrates from more traditional tools.&lt;/p&gt;
&lt;p&gt;The book avoids discussing the lower levels of the Git object model,
which is a reasonable choice for a pragmatic guide.&lt;/p&gt;
&lt;p&gt;Recommended.&lt;/p&gt;
&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=7232792" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/george_v_reilly/archive/tags/Books/default.aspx">Books</category><category domain="http://weblogs.asp.net/george_v_reilly/archive/tags/General+Software+Development/default.aspx">General Software Development</category><category domain="http://weblogs.asp.net/george_v_reilly/archive/tags/git/default.aspx">git</category></item><item><title>Third-Party Cookies</title><link>http://weblogs.asp.net/george_v_reilly/archive/2009/10/17/third-party-cookies.aspx</link><pubDate>Sat, 17 Oct 2009 07:15:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:7231927</guid><dc:creator>george_v_reilly</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/george_v_reilly/rsscomments.aspx?PostID=7231927</wfw:commentRss><comments>http://weblogs.asp.net/george_v_reilly/archive/2009/10/17/third-party-cookies.aspx#comments</comments><description>&lt;a class="reference external image-reference" href="http://lifehacker.com/5334984/web-sites-using-flash-instead-of-browser-cookies-to-track-your-activity"&gt;&lt;img alt="C is for Cookie" class="right-float" src="http://cache.gawker.com/assets/images/lifehacker/2009/08/C_is_for_Cookie.jpg" style="width: 200px;" /&gt;&lt;/a&gt;
&lt;p&gt;Over the last few weeks,
I built a PHP application that &lt;a class="reference external" href="http://approvereferendum71.org/create-a-profile-picture"&gt;overlays Approve 71 banners on profile pictures&lt;/a&gt;.
The actual application is hosted in an iframe
and lives on a server in a different domain, &lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;eq.dm&lt;/span&gt;&lt;/tt&gt;,
than the main server at &lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;approvereferendum71.org&lt;/span&gt;&lt;/tt&gt;.&lt;/p&gt;
&lt;p&gt;This works fine in most browsers.
Then we started getting reports that it wasn't working in IE8 on Win7 RC1.
The iframe content was blank.&lt;/p&gt;
&lt;p&gt;Poking around, I found the problem with the &lt;a class="reference external" href="http://www.fiddler2.com/fiddler2/"&gt;Fiddler proxy&lt;/a&gt;.
The landing page on &lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;eq.dm&lt;/span&gt;&lt;/tt&gt; was supposed to stick some information into the PHP session,
then redirect to a second page at the same site.
The second page was in an endless loop, redirecting to itself.
In Fiddler, I saw a different PHPSESSID cookie on each response,
and no cookie in the requests.&lt;/p&gt;
&lt;p&gt;After reading &lt;a class="reference external" href="http://stackoverflow.com/questions/1003490/ie-8-only-has-access-to-session-cookies"&gt;IE 8 only has access to session cookies&lt;/a&gt;,
I told IE8 to Accept All Cookies and the iframe content appeared.
That fixed it for me, but we could hardly ask people to lower their security sessions.&lt;/p&gt;
&lt;p&gt;I created a P3P file for the second domain, using the &lt;a class="reference external" href="http://www.alphaworks.ibm.com/tech/p3peditor"&gt;IBM P3P Policy Editor&lt;/a&gt;.
(&lt;a class="reference external" href="http://support.microsoft.com/default.aspx/kb/323752/EN-US/"&gt;KB 323752&lt;/a&gt; has more background on P3P and third-party cookies.)&lt;/p&gt;
&lt;p&gt;IE now worked at its default security level.
Problem solved!
Or so I thought.&lt;/p&gt;
&lt;p&gt;A day later, we got reports of similar problems with Safari&amp;nbsp;4 on Mac OS&amp;nbsp;X.&lt;/p&gt;
&lt;p&gt;I sniffed the traffic with &lt;a class="reference external" href="http://www.wireshark.org/"&gt;Wireshark&lt;/a&gt;.
Same problem: the “third-party“ cookie wasn't being accepted by Safari.&lt;/p&gt;
&lt;p&gt;Unfortunately, &lt;a class="reference external" href="http://stackoverflow.com/questions/408582/setting-cross-domain-cookies-in-safari"&gt;Setting cross-domain cookies in Safari&lt;/a&gt;
indicated that there was no reasonable workaround.&lt;/p&gt;
&lt;p&gt;We overcame the issue up playing some DNS games,
which was only possible because we control both servers.
The second server is now also acting as a subdomain of the first,
at &lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;dev.approvereferendum71.org&lt;/span&gt;&lt;/tt&gt;.
We used &lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;ini_set(&amp;quot;session.cookie_domain&amp;quot;,&amp;quot;.approvereferendum71.org&amp;quot;)&lt;/span&gt;&lt;/tt&gt;
to scope the iframe cookies.
I've tried it in a variety of Windows, Mac, and Linux browsers,
and it works in all of them.&lt;/p&gt;
&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=7231927" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/george_v_reilly/archive/tags/General+Software+Development/default.aspx">General Software Development</category></item><item><title>Gitting Along</title><link>http://weblogs.asp.net/george_v_reilly/archive/2009/10/15/gitting-along.aspx</link><pubDate>Thu, 15 Oct 2009 15:24:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:7230696</guid><dc:creator>george_v_reilly</dc:creator><slash:comments>3</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/george_v_reilly/rsscomments.aspx?PostID=7230696</wfw:commentRss><comments>http://weblogs.asp.net/george_v_reilly/archive/2009/10/15/gitting-along.aspx#comments</comments><description>&lt;a class="reference external image-reference" href="http://git-scm.com/"&gt;&lt;img alt="Git logo" class="right-float" src="http://www.georgevreilly.com/blog/content/binary/gitlogo.png" /&gt;&lt;/a&gt;
&lt;p&gt;In the last few weeks, I've switched over to &lt;a class="reference external" href="http://git-scm.com/"&gt;Git&lt;/a&gt; for most of my version-control needs,
at home and at work, after putting it on the long finger for months.&lt;/p&gt;
&lt;p&gt;We continue to use &lt;a class="reference external" href="http://subversion.tigris.org/"&gt;Subversion&lt;/a&gt; at work,
but I've recently followed Pavel and Eric's lead in using &lt;a class="reference external" href="http://andy.delcambre.com/2008/03/04/git-svn-workflow.html"&gt;git-svn&lt;/a&gt;.
I work locally on my own private branches and
&lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;git&lt;/span&gt; &lt;span class="pre"&gt;svn&lt;/span&gt; &lt;span class="pre"&gt;dcommit&lt;/span&gt;&lt;/tt&gt; and &lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;git&lt;/span&gt; &lt;span class="pre"&gt;svn&lt;/span&gt; &lt;span class="pre"&gt;rebase&lt;/span&gt;&lt;/tt&gt; occasionally.
I'm primarily on Windows at work, but I have a Linux box and a Mac Mini too,
while at home, I have a MacBook, a Linux netbook, and a Vista desktop.
I'm using &lt;a class="reference external" href="http://code.google.com/p/msysgit/"&gt;msysGit&lt;/a&gt;, occasionally supplemented by &lt;a class="reference external" href="http://code.google.com/p/tortoisegit/"&gt;TortoiseGit&lt;/a&gt; and &lt;a class="reference external" href="http://sourceforge.net/projects/qgit/files/"&gt;QGit&lt;/a&gt;.
Pavel's on a Mac and Eric's mostly on Ubuntu, so git adoption was easy for them.&lt;/p&gt;
&lt;p&gt;When I first tried git-svn under msysGit about a year ago,
it didn't work worth a damn.
Git-svn works fine now, but it's slow compared to the *nix implementation.
The developers say that's due to the &lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;fork()&lt;/span&gt;&lt;/tt&gt; emulation
of the MSys/Cygwin layer.
The rest of msysGit is much faster.&lt;/p&gt;
&lt;p&gt;For my home needs, I've had private Subversion repositories at
&lt;a class="reference external" href="http://devjavu.com"&gt;DevjaVu.com&lt;/a&gt; and &lt;a class="reference external" href="http://opensvn.csie.org"&gt;OpenSvn.csie.org&lt;/a&gt;.
DevjaVu has gone out of business and OpenSvn has been unavailable too often for my liking.
It was time to find some new hosting.&lt;/p&gt;
&lt;p&gt;I've experimented with private Git repositories at
&lt;a class="reference external" href="http://www.github.com/"&gt;GitHub&lt;/a&gt; and &lt;a class="reference external" href="http://www.projectlocker.com/"&gt;ProjectLocker&lt;/a&gt;.
GitHub is &lt;em&gt;very&lt;/em&gt; nice, but charges for private repositories.
ProjectLocker provides free private repositories,
but is comparatively clunky.&lt;/p&gt;
&lt;p&gt;ProjectLocker lets you set up a fresh repository on their server.
They tell you how to clone from that, which is great for a new repository.
But they don't tell you how to hook it up to an existing local repository.
Since I had some difficulty in figuring it out, here's the recipe:&lt;/p&gt;
&lt;pre class="literal-block"&gt;
git remote add origin git-foobar&amp;#64;freeN.projectlocker.com:foobar.git
git pull origin master
... merge, local edits and commits ...
git push origin master
&lt;/pre&gt;
&lt;p&gt;I found &lt;a class="reference external" href="http://rudifa.wordpress.com/2009/05/19/git-xcode-and-projectlocker/"&gt;Git, Xcode and ProjectLocker&lt;/a&gt; and &lt;a class="reference external" href="http://www.cforcoding.com/2009/09/windows-git-tutorial-cygwin-ssh-and.html"&gt;Cygwin, SSH and ProjectLocker&lt;/a&gt;
useful in figuring this out.&lt;/p&gt;
&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=7230696" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/george_v_reilly/archive/tags/General+Software+Development/default.aspx">General Software Development</category><category domain="http://weblogs.asp.net/george_v_reilly/archive/tags/git/default.aspx">git</category></item><item><title>NTFS-3G: the universal filesystem</title><link>http://weblogs.asp.net/george_v_reilly/archive/2009/04/10/ntfs-3g-the-universal-filesystem.aspx</link><pubDate>Sat, 11 Apr 2009 06:44:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:7042327</guid><dc:creator>george_v_reilly</dc:creator><slash:comments>5</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/george_v_reilly/rsscomments.aspx?PostID=7042327</wfw:commentRss><comments>http://weblogs.asp.net/george_v_reilly/archive/2009/04/10/ntfs-3g-the-universal-filesystem.aspx#comments</comments><description>&lt;a class="reference external image-reference" href="http://www.ntfs-3g.org/"&gt;&lt;img alt="NTFS-3G" class="right-float" src="http://www.ntfs-3g.org/logo/ntfs-3g-logo.png" /&gt;&lt;/a&gt;
&lt;p&gt;After I started running Linux and then Mac OS X, in addition to Windows,
I started on a quest to find the universal filesystem.
I had multiboot systems and external drives where I wanted to
to be able to read and write disks under multiple operating systems.&lt;/p&gt;
&lt;p&gt;The obvious choice is &lt;a class="reference external" href="http://en.wikipedia.org/wiki/File_Allocation_Table#FAT32"&gt;FAT32&lt;/a&gt;,
the ubiquitous, lowest-common denominator filesystem.
FAT32 is supported out-of-the-box by
all major operating systems, digital cameras, and PDAs,
so that's a huge advantage.
FAT32 also has major shortcomings:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;Maximum file size is 4GB. I have ISOs, MPEGs, and other large files exceeding this limit.&lt;/li&gt;
&lt;li&gt;Fragmentation happens too easily.&lt;/li&gt;
&lt;li&gt;Timestamps: accurate only to 2-second resolution. No notion of timezones or UTC.&lt;/li&gt;
&lt;li&gt;Journaling: none. Preferred for robustness.&lt;/li&gt;
&lt;li&gt;ACLs or Permissions. Nothing beyond R/W.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I experimented with &lt;a class="reference external" href="http://en.wikipedia.org/wiki/Ext3"&gt;ext3&lt;/a&gt; (and its non-journaling sibling, ext2)
on Windows and later on the Mac.
On Windows, &lt;a class="reference external" href="http://www.fs-driver.org/"&gt;ext2fs&lt;/a&gt; works well and I used it happily for several months
on a machine dualbooting XP and Ubuntu.
It did not work well with Vista initially, though that seems to have been fixed since.&lt;/p&gt;
&lt;p&gt;My experiences on the Mac were bad:
&lt;a class="reference external" href="http://sourceforge.net/projects/ext2fsx/"&gt;ext2fsx&lt;/a&gt; caused some kernel panics,
which was enough for me to abandon it.&lt;/p&gt;
&lt;p&gt;There was no free solution for reading and writing Mac HFS+ disks
under Linux and Windows the last time that I checked.&lt;/p&gt;
&lt;p&gt;Both Linux and Macs natively support mounting NTFS disks read-only.
The &lt;a class="reference external" href="http://www.ntfs-3g.org/"&gt;NTFS-3G&lt;/a&gt; project allows Linux to write to NTFS disks,
and &lt;a class="reference external" href="http://macntfs-3g.blogspot.com/"&gt;Mac NTFS-3G&lt;/a&gt; does likewise for Macs.
I've never had a problem with NTFS-3G and it's worked
flawlessly under Linux and Mac for me.&lt;/p&gt;
&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=7042327" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/george_v_reilly/archive/tags/General+Software+Development/default.aspx">General Software Development</category></item><item><title>The Bowling Game</title><link>http://weblogs.asp.net/george_v_reilly/archive/2009/02/06/the-bowling-game.aspx</link><pubDate>Fri, 06 Feb 2009 18:01:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6889474</guid><dc:creator>george_v_reilly</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/george_v_reilly/rsscomments.aspx?PostID=6889474</wfw:commentRss><comments>http://weblogs.asp.net/george_v_reilly/archive/2009/02/06/the-bowling-game.aspx#comments</comments><description>&lt;a class="reference external image-reference" href="http://www.xprogramming.com/xpmag/acsBowlingProcedural.htm"&gt;&lt;img alt="Bowling Score Sheet" src="http://www.xprogramming.com/images/sample_score.jpg" /&gt;&lt;/a&gt;
&lt;p&gt;There's a &lt;a class="reference external" href="http://blog.objectmentor.com/articles/2009/01/31/quality-doesnt-matter-that-much-jeff-and-joel"&gt;flamefest&lt;/a&gt; going on at the moment between
Robert &amp;quot;Uncle Bob&amp;quot; Martin and Joel Spolsky
over the value of &lt;a class="reference external" href="http://butunclebob.com/ArticleS.UncleBob.TheThreeRulesOfTdd"&gt;Test-Driven Design&lt;/a&gt; and the &lt;a class="reference external" href="http://butunclebob.com/ArticleS.UncleBob.PrinciplesOfOod"&gt;SOLID principles&lt;/a&gt;.
I find TDD valuable and I'm reading Martin's &lt;a class="reference external" href="http://www.elliottbaybook.com/product/info.jsp?isbn=0132350882"&gt;Clean Code&lt;/a&gt; at present.&lt;/p&gt;
&lt;p&gt;Poking around in the links led me to Uncle Bob's &lt;a class="reference external" href="http://butunclebob.com/ArticleS.UncleBob.TheBowlingGameKata"&gt;Bowling Game Kata&lt;/a&gt;,
a Powerpoint deck demonstrating using TDD to
score a bowling game.&lt;/p&gt;
&lt;p&gt;Ron Jeffries has a very ugly &lt;a class="reference external" href="http://www.xprogramming.com/xpmag/acsBowling.htm"&gt;OO&lt;/a&gt; implementation
and a cleaner &lt;a class="reference external" href="http://www.xprogramming.com/xpmag/acsBowlingProcedural.htm"&gt;procedural&lt;/a&gt; version of the Bowling Game.
Digging around in the archives of his &lt;a class="reference external" href="http://www.xprogramming.com/xpmag/"&gt;XP Magazine&lt;/a&gt;
turns up many other ruminations on the Bowling Game&lt;/p&gt;
&lt;p&gt;At Atlas, I was loaned to one group that used the Bowling Game
for a pair-programming interview.
I found it to be a valuable exercise.
It showed us whether the candidate could actually code or not
and it gave us a feel for what it would be like to work with them.
It gave the candidate a taste of Agile work practices
like TDD and pair programming.
Of course, in a real pair-programming exercise,
I would have been actively making suggestions instead of holding back.&lt;/p&gt;
&lt;p&gt;We interviewed four candidates while I was on that team.
Two passed, were hired, and worked out.
One failed, failed other interviews, and was eliminated.
The fourth candidate was very experienced,
gave great whiteboard while talking through the exercise at the beginning,
and turned out to be completely horrible.
He floundered badly and wrote ugly, buggy code.
That eliminated him, even though he had done well on the other rounds.&lt;/p&gt;
&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6889474" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/george_v_reilly/archive/tags/General+Software+Development/default.aspx">General Software Development</category></item><item><title>#1 Technical Blog, revisited</title><link>http://weblogs.asp.net/george_v_reilly/archive/2008/11/19/1-technical-blog-revisited.aspx</link><pubDate>Wed, 19 Nov 2008 08:00:05 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6746009</guid><dc:creator>george_v_reilly</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/george_v_reilly/rsscomments.aspx?PostID=6746009</wfw:commentRss><comments>http://weblogs.asp.net/george_v_reilly/archive/2008/11/19/1-technical-blog-revisited.aspx#comments</comments><description>&lt;a class="reference external image-reference" href="http://www.georgevreilly.com/blog/content/binary/technical-blog-google-2.jpg"&gt;&lt;img alt="#1 Technical Blog on Google, revisited" src="http://www.georgevreilly.com/blog/content/binary/technical-blog-google-2.jpg" /&gt;&lt;/a&gt;
&lt;p&gt;A week ago, I said that my &lt;a class="reference external" href="http://weblogs.asp.net/george_v_reilly/"&gt;technical blog&lt;/a&gt; somehow comes up as
&lt;a class="reference external" href="http://www.georgevreilly.com/blog/2008/11/12/1TechnicalBlog.aspx"&gt;#1 technical blog&lt;/a&gt; on Google.&lt;/p&gt;
&lt;p&gt;Several people pointed out that in my screenshot,
I was logged in to Google.
As you can see if you click on this screenshot,
I can reproduce this result even when I'm not signed in.&lt;/p&gt;
&lt;p&gt;I'm still confounded by that ranking.
My content is good, but largely unremarkable—though
I'm unduly fond of &lt;a class="reference external" href="http://weblogs.asp.net/george_v_reilly/archive/2004/12/13/284388.aspx"&gt;A Use for Octal&lt;/a&gt;;
my style is understated;
my traffic is uncongested;
and my top billing is undeserved.&lt;/p&gt;
&lt;p&gt;But none of the technical blogs listed on that first page
are of the first order, except &lt;a class="reference external" href="http://blogs.technet.com/markrussinovich/"&gt;Mark Russinovich&lt;/a&gt;'s.&lt;/p&gt;
&lt;p&gt;If I thought it made sense, I'd be flattered.
Alas, I cannot make it so.&lt;/p&gt;

&lt;img width="0" height="0" src="http://www.georgevreilly.com/blog/cptrk.ashx?id=eddb770a-6766-4681-91f5-2217b0a8bd62"&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6746009" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/george_v_reilly/archive/tags/General+Software+Development/default.aspx">General Software Development</category></item><item><title>#1 Technical Blog</title><link>http://weblogs.asp.net/george_v_reilly/archive/2008/11/11/1-technical-blog.aspx</link><pubDate>Wed, 12 Nov 2008 07:26:39 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6730342</guid><dc:creator>george_v_reilly</dc:creator><slash:comments>5</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/george_v_reilly/rsscomments.aspx?PostID=6730342</wfw:commentRss><comments>http://weblogs.asp.net/george_v_reilly/archive/2008/11/11/1-technical-blog.aspx#comments</comments><description>&lt;a class="reference external image-reference" href="http://www.google.com/search?q=technical+blog"&gt;&lt;img alt="#1 Technical Blog on Google" src="http://www.georgevreilly.com/blog/content/binary/technical-blog-google.jpg" /&gt;&lt;/a&gt;
&lt;p&gt;A friend whom I haven't heard from in a few years
googled for &lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;technical&lt;/span&gt; &lt;span class="pre"&gt;blog&lt;/span&gt;&lt;/tt&gt; this evening,
and my &lt;a class="reference external" href="http://weblogs.asp.net/george_v_reilly/"&gt;technical blog&lt;/a&gt; somehow came up as the very first hit!&lt;/p&gt;
&lt;p&gt;I have no idea how I achieved such high page rank,
nor how I eclipsed &lt;a class="reference external" href="http://blogs.technet.com/markrussinovich/"&gt;Mark Russinovich&lt;/a&gt;.&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.georgevreilly.com/blog/cptrk.ashx?id=4a28fd28-6c5f-4901-9062-80813ed5f212"&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6730342" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/george_v_reilly/archive/tags/General+Software+Development/default.aspx">General Software Development</category></item><item><title>Distributed Version Control Systems on Windows</title><link>http://weblogs.asp.net/george_v_reilly/archive/2008/11/10/distributed-version-control-systems-on-windows.aspx</link><pubDate>Mon, 10 Nov 2008 08:19:23 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6728244</guid><dc:creator>george_v_reilly</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/george_v_reilly/rsscomments.aspx?PostID=6728244</wfw:commentRss><comments>http://weblogs.asp.net/george_v_reilly/archive/2008/11/10/distributed-version-control-systems-on-windows.aspx#comments</comments><description>&lt;a class="reference external image-reference" href="http://www.infoq.com/articles/dvcs-guide"&gt;&lt;img alt="Distributed/Decentralized Version Control Systems" src="http://www.infoq.com/resource/articles/dvcs-guide/en/resources/CVCSvsDVCS.png" /&gt;&lt;/a&gt;
&lt;p&gt;At work, I've been experimenting with the big three
Distributed Version Control Systems,
&lt;a class="reference external" href="http://git.or.cz/"&gt;Git&lt;/a&gt;, &lt;a class="reference external" href="http://www.selenic.com/mercurial/wiki/"&gt;Mercurial&lt;/a&gt;, and &lt;a class="reference external" href="http://bazaar-vcs.org/"&gt;Bazaar&lt;/a&gt;,
on Windows over the last ten days.&lt;/p&gt;
&lt;p&gt;Pavel and Eric have been singing the praises of Git and
&lt;a class="reference external" href="http://www.kernel.org/pub/software/scm/git/docs/git-svn.html"&gt;git-svn&lt;/a&gt; on their Mac and Linux boxes respectively
for the last few months.
Git allows them to check in small changes locally without perturbing the build.
The ease of branching and merging allows them to work in more than one branch
at a time at a lower cost than Subversion did.
Most of our dev team continue to work in Subversion on Windows boxes.
git-svn allows Pavel and Eric to easily interoperate with the Subversion server.
Pavel is also a big fan of &lt;a class="reference external" href="http://www.kernel.org/pub/software/scm/git/docs/git-stash.html"&gt;git-stash&lt;/a&gt;:
he stacks away in-progress work and switches easily to other patches.&lt;/p&gt;
&lt;p&gt;Although I've worked primarily in Python on Linux since the summer,
I've been working on our forthcoming mobile client recently.
It's ASP.NET-based, hence I'm working on Windows again.
I'm in the throes of a major refactoring, extracting the mobile client
out of the main webclient and hoisting other code into shared projects,
while other developers continue to work on the main webclient
and the mobile client.&lt;/p&gt;
&lt;p&gt;This seemed like a perfect opportunity to bite the &lt;a class="reference external" href="http://www.infoq.com/articles/dvcs-guide"&gt;DVCS bullet&lt;/a&gt;,
since I knew that branching and merging would be less painful
with git-svn than with Subversion.&lt;/p&gt;
&lt;p&gt;Getting git-svn working on Windows turned out to be a major headache.
The Cygwin version of git-svn simply &lt;a class="reference external" href="http://cygwin.com/ml/cygwin/2008-10/msg00602.html"&gt;doesn't work&lt;/a&gt; for me.
And msysGit doesn't &lt;a class="reference external" href="http://code.google.com/p/msysgit/issues/detail?id=160"&gt;currently support&lt;/a&gt; git-svn.
(Eric has had some success with an older version of msysGit and git-svn,
but I found it to be wretchedly slow.)
Moreover, Git's integration with Windows is poor.
There's nothing like &lt;a class="reference external" href="http://tortoisesvn.net/"&gt;TortoiseSVN&lt;/a&gt; to ease developers into using Git.&lt;/p&gt;
&lt;p&gt;Having written off Git on Windows for now,
it was time to try &lt;a class="reference external" href="http://bazaar-vcs.org/"&gt;Bazaar&lt;/a&gt; (&lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;bzr&lt;/span&gt;&lt;/tt&gt;),
which has its own Subversion plugin, &lt;a class="reference external" href="https://launchpad.net/bzr-svn"&gt;bzr-svn&lt;/a&gt;.
The version of bzr-svn that was available for Windows the week before last
was ancient, and &lt;a class="reference external" href="https://bugs.launchpad.net/bzr-svn/+bug/291361"&gt;promptly crashed&lt;/a&gt;.
Jelmer, the developer, mailed me yesterday to say that there should be an
up-to-date copy of bzr-svn in the brand new 1.9 release of Bazaar.
I'll try it at work tomorrow.
Windows doesn't seem like an afterthought for Bazaar;
indeed, &lt;a class="reference external" href="http://bazaar-vcs.org/TortoiseBzr"&gt;TortoiseBzr&lt;/a&gt; offers Explorer integration.&lt;/p&gt;
&lt;p&gt;On to &lt;a class="reference external" href="http://www.selenic.com/mercurial/wiki/"&gt;Mercurial&lt;/a&gt; (&lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;hg&lt;/span&gt;&lt;/tt&gt;).
Alas, this has the weakest integration with Subversion.
There are &lt;a class="reference external" href="http://www.momentaryfascinations.com/programming/how.to.use.mercurial.for.local.source.code.management.with.a.public.subversion.server.html"&gt;instructions&lt;/a&gt; for doing it by hand (which is what I'm doing).
The &lt;a class="reference external" href="http://blog.red-bean.com/sussman/?p=116"&gt;hgsubversion&lt;/a&gt; extension looks promising, but is still immature.&lt;/p&gt;
&lt;p&gt;Even so, Mercurial is what I've ended up using for the last week.
Partly because it didn't bite me.
Partly because I like it best of the three.
The &lt;a class="reference external" href="http://hgbook.red-bean.com/"&gt;Mercurial book&lt;/a&gt; takes much of the credit for that.
Windows is a first-class client
and &lt;a class="reference external" href="http://tortoisehg.wiki.sourceforge.net/"&gt;TortoiseHg&lt;/a&gt; offers half-way decent Explorer integration.&lt;/p&gt;
&lt;p&gt;I'm not impressed with Git as software engineering;
it strikes me as an incoherent mess of C and Perl.
The attitude of superiority from some Git proponents is off-putting.
I watched &lt;a class="reference external" href="http://www.youtube.com/watch?v=4XpnKHJAok8"&gt;Linus Torvalds' Google techtalk&lt;/a&gt; about Git on Friday;
he came across as a major jerk,
repeatedly calling anyone who uses Subversion an idiot.
I'd still recommend watching the video:
it gives good insight into the social aspects of
distributed/decentralized VCSes,
how very different they are from traditional centralized VCSes,
and how they afford a different way of working.&lt;/p&gt;
&lt;p&gt;Watching my compatriot &lt;a class="reference external" href="http://video.google.com/videoplay?docid=-7724296011317502612"&gt;Bryan O'Sullivan's Google techtalk&lt;/a&gt; on Mercurial
this afternoon was a far more pleasant experience.
He talks more about workflow and implementation.&lt;/p&gt;
&lt;p&gt;Both Bazaar and Mercurial are written in Python and
seem to be fairly well architected.
Frankly, if I do have to get my hands dirty in the code
(e.g., hgsubversion), I'd much rather hack in Python.
I did C/C++ for fifteen years and I'm sick of unmanaged code.&lt;/p&gt;
&lt;p&gt;Anyway, Mercurial is where I'm going for now,
though I won't categorically rule out Bazaar or Git.&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.georgevreilly.com/blog/cptrk.ashx?id=0c3afb26-bfda-44fb-99b7-838587e10f25"&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6728244" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/george_v_reilly/archive/tags/General+Software+Development/default.aspx">General Software Development</category></item><item><title>Preload Ajax Data as JSON</title><link>http://weblogs.asp.net/george_v_reilly/archive/2008/05/29/preload-ajax-data-as-json.aspx</link><pubDate>Fri, 30 May 2008 06:27:17 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6231987</guid><dc:creator>george_v_reilly</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/george_v_reilly/rsscomments.aspx?PostID=6231987</wfw:commentRss><comments>http://weblogs.asp.net/george_v_reilly/archive/2008/05/29/preload-ajax-data-as-json.aspx#comments</comments><description>&lt;a class="reference external image-reference" href="http://blogs.cozi.com/tech/2008/05/preload-ajax-data-as-json.html"&gt;&lt;img alt="ASP.NET - Ajax + JSON = speed" class="right-float" src="http://blogs.cozi.com/photos/uncategorized/2008/05/27/preloadajaxdata.png" /&gt;&lt;/a&gt;
&lt;p&gt;Preloading Ajax data as JSON has helped
improve the load time and perceived performance of our family software application.
Most of the pages in our web client are dynamically generated
in the browser from a complex set of JavaScript and CSS,
so we're always looking out for ways to make them appear more quickly.&lt;/p&gt;
&lt;p&gt;More &lt;a class="reference external" href="http://blogs.cozi.com/tech/2008/05/preload-ajax-data-as-json.html"&gt;at the Cozi Tech Blog&lt;/a&gt;.&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.georgevreilly.com/blog/cptrk.ashx?id=be259dd5-a613-4cf6-9bb0-0191be88fcc6"&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6231987" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/george_v_reilly/archive/tags/General+Software+Development/default.aspx">General Software Development</category></item><item><title>Sharing Dotfiles between Windows and *nix</title><link>http://weblogs.asp.net/george_v_reilly/archive/2008/05/13/sharing-dotfiles-between-windows-and-nix.aspx</link><pubDate>Wed, 14 May 2008 06:28:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6188309</guid><dc:creator>george_v_reilly</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/george_v_reilly/rsscomments.aspx?PostID=6188309</wfw:commentRss><comments>http://weblogs.asp.net/george_v_reilly/archive/2008/05/13/sharing-dotfiles-between-windows-and-nix.aspx#comments</comments><description>&lt;img src="http://www.georgevreilly.com/blog/content/binary/shared-dotfiles.png" alt="Sharing Dotfiles between Windows and *nix" mce_src="http://www.georgevreilly.com/blog/content/binary/shared-dotfiles.png"&gt;
&lt;p&gt;Tomas Restrepo wrote a post about
&lt;a href="http://www.winterdom.com/weblog/2008/05/09/SharingDotfilesBetweenWindowsAndUbuntu.aspx" class="reference external" mce_href="http://www.winterdom.com/weblog/2008/05/09/SharingDotfilesBetweenWindowsAndUbuntu.aspx"&gt;sharing dotfiles between Windows and Ubuntu&lt;/a&gt;,
specifically about sharing &lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;.vimrc&lt;/span&gt;&lt;/tt&gt; (Linux) and &lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;_vimrc&lt;/span&gt;&lt;/tt&gt; (Windows)
and the &lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;.vim&lt;/span&gt;&lt;/tt&gt; (Linux) and &lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;vimfiles&lt;/span&gt;&lt;/tt&gt; (Windows) directories.&lt;/p&gt;
&lt;p&gt;I have a different solution.
On Windows, my &lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;C:\AutoExec.bat&lt;/span&gt;&lt;/tt&gt; includes:&lt;/p&gt;
&lt;pre class="literal-block"&gt;set HOME=C:\gvr&lt;br&gt;set VIM=C:\Vim&lt;br&gt;set VIMDIR=%VIM%\vim71&lt;br&gt;set EDITOR=%VIMDIR%\gvim.exe&lt;br&gt;set PATH=%PATH%;C:\Win32app;C:\GnuWin32\bin;C:\UnxUtils;C:\SysInternals;C:\Python25\Scripts&lt;br&gt;&lt;/pre&gt;
&lt;p&gt;&lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;%HOME%&lt;/span&gt;&lt;/tt&gt; (&lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;C:\gvr&lt;/span&gt;&lt;/tt&gt;) contains &lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;_vimrc&lt;/span&gt;&lt;/tt&gt;, &lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;vimfiles&lt;/span&gt;&lt;/tt&gt;,
and other stuff accumulated over many years.
This directory is stored in a personal Subversion repository at &lt;a href="http://www.devjavu.com/" class="reference external" mce_href="http://www.devjavu.com/"&gt;DevjaVu&lt;/a&gt;.
All my Vim files are stored with Unix LF endings, not Windows CR-LFs,
so that they'll work on my Mac OS X and Linux boxen.
I play some games with &lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;if&lt;/span&gt; &lt;span class="pre"&gt;has("win32")&lt;/span&gt;&lt;/tt&gt; and
&lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;if&lt;/span&gt; &lt;span class="pre"&gt;has('gui_macvim')&lt;/span&gt;&lt;/tt&gt; to ensure that my &lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;_vimrc&lt;/span&gt;&lt;/tt&gt;
works cross-platform.&lt;/p&gt;
&lt;p&gt;On my *nix boxes, the &lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;gvr&lt;/span&gt;&lt;/tt&gt; folder lives under my home directory at &lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;~/gvr&lt;/span&gt;&lt;/tt&gt;,
and &lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;~/.vimrc&lt;/span&gt;&lt;/tt&gt; and &lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;~/.vim&lt;/span&gt;&lt;/tt&gt; are symlinks:&lt;/p&gt;
&lt;pre class="literal-block"&gt;$ ln -s ~/gvr/_vimrc ~/.vimrc&lt;br&gt;$ ln -s ~/gvr/vimfiles/ ~/.vim&lt;br&gt;&lt;/pre&gt;
&lt;p&gt;In addition, the dotfiles that I keep in SVN are stored locally in
&lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;~/gvr/dotfiles&lt;/span&gt;&lt;/tt&gt; without a leading period in their names,
which makes them easy to see:&lt;/p&gt;
&lt;pre class="literal-block"&gt;$ ln -s ~/gvr/dotfiles/bashrc ~/.bashrc&lt;br&gt;&lt;/pre&gt;
&lt;p&gt;This arrangement works well for me.&lt;/p&gt;
&lt;img src="http://www.georgevreilly.com/blog/cptrk.ashx?id=0a266839-1ad3-4e55-a818-781a1b239e8b" mce_src="http://www.georgevreilly.com/blog/cptrk.ashx?id=0a266839-1ad3-4e55-a818-781a1b239e8b" height="0" width="0"&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6188309" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/george_v_reilly/archive/tags/General+Software+Development/default.aspx">General Software Development</category></item><item><title>Multiple Firefox Profiles: Run Firefox 2 and 3 Side-By-Side, and More</title><link>http://weblogs.asp.net/george_v_reilly/archive/2008/04/02/multiple-firefox-profiles-run-firefox-2-and-3-side-by-side-and-more.aspx</link><pubDate>Wed, 02 Apr 2008 17:35:13 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6061442</guid><dc:creator>george_v_reilly</dc:creator><slash:comments>3</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/george_v_reilly/rsscomments.aspx?PostID=6061442</wfw:commentRss><comments>http://weblogs.asp.net/george_v_reilly/archive/2008/04/02/multiple-firefox-profiles-run-firefox-2-and-3-side-by-side-and-more.aspx#comments</comments><description>&lt;img alt="Multiple Firefox Profiles: Run Firefox 2 and 3 Side-By-Side, and More" class="right-float" src="http://blogs.cozi.com/.a/6a00d8341ca8a653ef010535bfc199970b-pi" /&gt;
&lt;p&gt;I find it useful to have multiple Firefox profiles for developing and testing.
A clean profile for testing allows you to replicate most users' environments,
who don't install extensions.
Running a development profile in a separate profile lets you
restart the browser without messing with your default environment.
You can also run Firefox 2 and Firefox 3 side-by-side in separate profiles.&lt;/p&gt;
&lt;p&gt;More &lt;a class="reference external" href="http://blogs.cozi.com/tech/2008/04/multiple-firefox-profiles-run-firefox-2-and-3-side-by-side-and-more.html"&gt;at the Cozi Tech Blog&lt;/a&gt;.&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.georgevreilly.com/blog/cptrk.ashx?id=7d7e5b29-c8ac-4ae3-ae90-a077a896f0db"&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6061442" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/george_v_reilly/archive/tags/General+Software+Development/default.aspx">General Software Development</category></item><item><title>Debugging JavaScript in IE from Visual Web Developer 2008 Express Edition</title><link>http://weblogs.asp.net/george_v_reilly/archive/2008/03/19/debugging-javascript-in-ie-from-visual-web-developer-2008-express-edition.aspx</link><pubDate>Wed, 19 Mar 2008 20:34:22 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:5999600</guid><dc:creator>george_v_reilly</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/george_v_reilly/rsscomments.aspx?PostID=5999600</wfw:commentRss><comments>http://weblogs.asp.net/george_v_reilly/archive/2008/03/19/debugging-javascript-in-ie-from-visual-web-developer-2008-express-edition.aspx#comments</comments><description>&lt;a class="reference external image-reference" href="http://blogs.cozi.com/tech/2008/03/debugging-javascript-in-ie-from-visual-web-developer-2008-express-edition.html"&gt;&lt;img alt="Debugging JavaScript in IE from Visual Web Developer 2008 Express Edition" src="http://blogs.cozi.com/.a/6a00d8341ca8a653ef010535ebfc94970c-800wi" /&gt;&lt;/a&gt;
&lt;p&gt;It's not at all obvious how to use &lt;a class="reference external" href="http://www.microsoft.com/express/vwd/Default.aspx"&gt;Visual Web Developer 2008 Express Edition&lt;/a&gt;
to debug JavaScript in Internet Explorer.
So I wrote it up &lt;a class="reference external" href="http://blogs.cozi.com/tech/2008/03/debugging-javascript-in-ie-from-visual-web-developer-2008-express-edition.html"&gt;at the Cozi Tech Blog&lt;/a&gt;.&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.georgevreilly.com/blog/cptrk.ashx?id=3086159e-65ef-4e2a-a89f-840a9aa14e19"&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=5999600" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/george_v_reilly/archive/tags/General+Software+Development/default.aspx">General Software Development</category></item><item><title>Daylight Savings Time and JavaScript</title><link>http://weblogs.asp.net/george_v_reilly/archive/2008/03/13/daylight-savings-time-and-javascript.aspx</link><pubDate>Thu, 13 Mar 2008 20:58:27 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:5962430</guid><dc:creator>george_v_reilly</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/george_v_reilly/rsscomments.aspx?PostID=5962430</wfw:commentRss><comments>http://weblogs.asp.net/george_v_reilly/archive/2008/03/13/daylight-savings-time-and-javascript.aspx#comments</comments><description>&lt;a class="reference external image-reference" href="http://blogs.cozi.com/tech/2008/03/daylight-savings-time-and-javascript.html"&gt;&lt;img alt="Daylight Savings Time and JavaScript" class="right-float" src="http://www.georgevreilly.com/blog/content/binary/js-date-dst2.png" /&gt;&lt;/a&gt;
&lt;p&gt;The JavaScript engines in Firefox 2 (Windows) and IE6
can't handle the new Daylight Savings Time rules in the U.S.
The &lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;Date()&lt;/span&gt;&lt;/tt&gt; function returns a value that is off by an hour
if the system time is between the second Sunday of March
and the first Sunday of April.&lt;/p&gt;
&lt;p&gt;&lt;a class="reference external" href="http://blogs.cozi.com/tech/2008/03/daylight-savings-time-and-javascript.html"&gt;More at the Cozi Tech Blog&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Update 2008/03/14&lt;/strong&gt;: &lt;em&gt;Mea culpa&lt;/em&gt;.
This is &lt;em&gt;not&lt;/em&gt; a widespread problem.
It is caused by the presence of &lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;set&lt;/span&gt; &lt;span class="pre"&gt;TZ=PST8PDT&lt;/span&gt;&lt;/tt&gt;
in my &lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;C:\AutoExec.bat&lt;/span&gt;&lt;/tt&gt;.
Per &lt;a class="reference external" href="http://support.microsoft.com/kb/932590"&gt;KB932590&lt;/a&gt;, the existence of the &lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;TZ&lt;/span&gt;&lt;/tt&gt; environment variable
will cause the CRT to use the old DST rules.
(I can't remember why I set &lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;TZ&lt;/span&gt;&lt;/tt&gt; several years ago.
It's part of the accumulated mess of files that
I bring everywhere with me.)&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.georgevreilly.com/blog/cptrk.ashx?id=0d34a849-81a6-4c9a-8c6a-ecefa21f2f31"&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=5962430" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/george_v_reilly/archive/tags/General+Software+Development/default.aspx">General Software Development</category></item><item><title>Transparent PNGs can Deadlock IE6</title><link>http://weblogs.asp.net/george_v_reilly/archive/2008/03/10/transparent-pngs-can-deadlock-ie6.aspx</link><pubDate>Mon, 10 Mar 2008 21:47:32 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:5946555</guid><dc:creator>george_v_reilly</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/george_v_reilly/rsscomments.aspx?PostID=5946555</wfw:commentRss><comments>http://weblogs.asp.net/george_v_reilly/archive/2008/03/10/transparent-pngs-can-deadlock-ie6.aspx#comments</comments><description>&lt;a class="reference external image-reference" href="http://nedbatchelder.com/blog/200801/deadlock_in_real_life.html"&gt;&lt;img alt="Deadlock in Real Life" class="right-float" src="http://www.georgevreilly.com/blog/content/binary/deadlock_thumb.jpg" /&gt;&lt;/a&gt;
&lt;p&gt;Over at &lt;a class="reference external" href="http://www.cozi.com/"&gt;Cozi&lt;/a&gt;, we've started a new &lt;a class="reference external" href="http://blogs.cozi.com/tech/"&gt;technical blog&lt;/a&gt;.
I just put my &lt;a class="reference external" href="Morehere_"&gt;first post&lt;/a&gt; up,
describing a nasty problem we had late last year.&lt;/p&gt;
&lt;p&gt;Here's the summary:&lt;/p&gt;
&lt;blockquote&gt;
Internet Explorer 6 does not support transparency in PNG images.
The best-known solution is to use the DirectX &lt;a class="reference external" href="http://www.satzansatz.de/cssd/tmp/alphatransparency.html"&gt;AlphaImageLoader&lt;/a&gt; CSS filter.
It's less well known that using AlphaImageLoader sometimes leads to a deadlock in IE6.
There are two workarounds.
Either wait until after the image has been downloaded
to apply the filter to the image's &lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;style&lt;/span&gt;&lt;/tt&gt;,
or use the little-known transparent &lt;a class="reference external" href="http://www.sitepoint.com/blogs/2007/09/18/png8-the-clear-winner/"&gt;PNG8&lt;/a&gt; format instead of the filter.&lt;/blockquote&gt;
&lt;p&gt;&lt;a class="reference external" href="http://blogs.cozi.com/tech/2008/03/transparent-pngs-can-deadlock-ie6.html"&gt;More here&lt;/a&gt;.&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.georgevreilly.com/blog/cptrk.ashx?id=85685fbe-455b-49cf-9123-953967772fcb"&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=5946555" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/george_v_reilly/archive/tags/General+Software+Development/default.aspx">General Software Development</category></item></channel></rss>