How to set up PuTTY SSH keys

Posted on July 1st, 2009 by David Luhman and tagged , .

1. Start up PuTTYgen.exe. The defaults of SSH-2 RSA and 1024 bit key should be fine.

2. Click Generate to make the key (moving mouse randomly over blank area).

3. Fill in the comment (me at example.com). Enter a passphrase. A passphrase is more secure, but you'll be prompted for it on every access (unless you use keychain or others).

4. Use PuTTYGen's button to save the public key on your PC (ex. c:\putty\keys\me-at-example.txt).

5. Use button to save the private key. You must use .ppk extension (ex. c:\putty\keys\me-at-example.ppk).

IeUnit Quick Start

Posted on June 29th, 2009 by David Luhman and tagged , .

Wikipedia currently lists the following "Internet test frameworks" :

  • HtmlUnit
  • HttpUnit
  • IeUnit
  • Canoo WebTest
  • Selenium

So IeUnit has made what could be called an "exclusive" list of web test frameworks. Of course there are plenty of other "Internet test frameworks" including Watir, Sahi, WatiN and even JsUnit and QUnit (for jQuery).

Dual-boot Ubuntu Linux on a Windows laptop

Posted on June 27th, 2009 by David Luhman and tagged , .

I wanted to turn an old laptop from a Windows XP system to one that dual-booted Ubuntu. To get this to work, I first had to resize my Windows partition.

I started out with Windows default disk defragmenter (Accessories => System Tools => Disk Defragmenter). I ran it a few times, but it always left files at the "high end" of the partition so I couldn't downsize the partition.

I then tried Defraggler (http://defraggler.com). This maybe is a bit better at defragmenting, but still left files at the high-end of the partition.

Git cheat sheet

Posted on June 26th, 2009 by David Luhman and tagged .

My own personal cheat sheet of useful Git commands.

diff

git diff --stat --staged (staged in 1.6+, cached in older)

Differences between HEAD and index (i.e., shows changes that have been staged)

git diff -U1 --stat

Reduces the context lines around differences to one line for shorter display. Puts summary (stat) at start of diff.

Git links

Posted on June 26th, 2009 by David Luhman and tagged .

Here are especially helpful Git links :

Git Index (Staging Area)
Good layman's view of the index, along with great images of how add, commit, diff, push, fetch work.

Git Cheat Sheet
A bit laconic, but a comprehensive overview of most all useful commands, with reasonable examples.

GitReady.com
Lots of hints for beginners and experts.

"Local branches" and BitKeeper

Posted on June 24th, 2009 by David Luhman and tagged , .

As far as I know, BitKeeper does not seem to support the notion of "local" (intra-repository) branches.

Git supports these, and I've found them very useful. With Git, you can easily have debug/test branches without the overhead or config issues of an entirely different repo. I've even used one branch per bug so I can have several things in the air before merging them into the master branch.

The only way I can see to do this in BitKeeper is to have separate repos, which wastes disk space and adds the trouble of creating and managing separate directory trees in the file system.

Handling BitKeeper merge conflicts

Posted on June 24th, 2009 by David Luhman and tagged , .

I'm more familiar with Git and its merge process, but I also use BitKeeper and sometimes run into merge conflicts. Here's some info on how to handle them.

Unlike Git, BitKeeper doesn't have the notion of "local" branches, so all merges are from push/pull operations. BitKeeper has a merge command, but it's for merging single files, rather than merging one local branch into another.

Quick and dirty PHP debugging

Posted on June 15th, 2009 by David Luhman and tagged .

Xdebug (http://xdebug.org) is probably one of the best ways to debug PHP code. But Xdebug can be difficult to setup, depending on the environment.

Here's a quick and dirty method to see a select list of PHP variables. This was lifted from the notes at http://php.net/manual/en/function.get-defined-vars.php.


    function getDefinedVars($varList, $excludeList) {
        $temp1 = array_values(array_diff(array_keys($varList), $excludeList));
        $temp2 = array();
        while (list($key, $value) = each($temp1)) {
            global $$value;

Git push quirks - How To

Posted on June 15th, 2009 by David Luhman and tagged .

I have experience with a number of distributed version control systems (DVCS) including Darcs, BitKeeper, Mercuial, Bazaar and now Git.

Git has a lot going for it, so I've decided to "lease" my soul to it for version control.

Git has some quirks, however. One of them is the notion of "push". Git's push doesn't work as I've come to expect in other DVCSes. Here's a good posting on this quirkiness :

SSH keys, PuTTY, Keychain etc. resources

Posted on June 15th, 2009 by David Luhman and tagged , .

Here are some good resources in the area of SSH keys :

Key-based logins with PuTTY - Excellent How-To with pics

Good overview of SSH keys - including optional hardeners

Good overview of SSH keys, including Keychain to remember passphrases

Note PuTTY's Pageant is a Windows form of Keychain