Monthly Archives: January 2004

Secure Disk Erase

Recently I needed to clear off some old PC hard drives, so I went searching for a useful disk wiping utility. In the past I've used Norton Utilities, but that was an old DOS app which wouldn't be useful for today's larger drives, especially those with FAT32 or NTFS partitions.

This is a funny category to search for because you'll get tons of hits for a term like “secure disk erase”, most of which are not free and tend to be Windows apps that need to be installed. Instead, I'm looking for a command-line tool so I can run it from a boot disk, for example.

I eventually found two tools that work really well in two different situations:

  • For erasing files, I'm using SDelete from Sysinternals. SDelete can securely erase individual files, folders of files, or the unused free space on a volume. Source code is provided. Just as with all Sysinternals utilities, the SDelete product page has a good explanation of how it works and includes source code.
  • For erasing entire disks, I'm using Darik's Boot and Nuke (DBAN). This utility is small and self-contained, fitting on either a boot floppy or CD. To use DBAN, you simply boot it up, choose a couple of options, and it's on its way. By default it will make several write passes, taking an hour or more depending on drive size. The drive partition table is also erased, making way for a clean OS installation.

The combination of these two tools is a useful addition to your bag of PC tricks. DBAN is particularly useful for cleaning off a PC before you give it to someone else. It would be ideal for companies wanting to clean off old PCs before tossing or recycling them.

Update 2007-01-22: Fixed link to Sysinternals now that they are part of Microsoft.

Automatic Feed Validation

The recent discussions
about how strict aggregators should be when reading invalid or ill
formed feeds (e.g. RSS or Atom) brought to mind an idea: an
automatic service that checks your feed for validity and send
e-mail whenever it finds a problem. The service would be an aide to
web site authors, alerting them to any problems with their RSS/Atom
feeds. Rather than authors manually checking their feeds with the
, the service would do this for them automatically.
Rough thoughts on some of the details:

  • Web front-end for sign-up, including feed URL, e-mail address,
    and frequency of checking the feed

  • Back-end processing would run on regular intervals, obtaining
    feeds that had changed and checking them with a local copy of the
    feed validator

  • Fetching of feeds should use minimal bandwidth by using ETags,
    If-Modified-Since, etc.

  • Data storage would be fairly minimal; no need to keep the entire
    downloaded feed data, just a hash perhaps

  • Notification runs like a state machine: only send e-mail when
    state changes (good feed goes bad, for example)

This approach wouldn’t solve the entire problem, but might be
useful as one more tool for the author who wants his/her data to
meet the standards. Tying more validation directly into web and
weblog authoring tools would also help. The nice thing about this
solution is support regardless of platform or tools being used. A
site that already does lots of feed downloading and parsing (like
Syndic8 or Bloglines) might be a good candidate for such a

Bloglines for PDAs

I’m still using Bloglines as my aggregator and have found it quite useful. Yesterday they released Bloglines for Connected PDAs which is a version optimized for small devices. If you connect to the main page (, it will automatically redirect to the mobile page if it detects a PDA browser.

I tried it on my Tungsten C (802.11) and Tungsten T3 (Bluetooth) and it worked well in both cases. The PDA-optimized pages are really fast, in part because the icon for each channel has been removed, meaning there are practically no graphics to download. Sample screenshots are shown below.

Subscription list (Tungsten C)   Item details (Tungsten C)   Subscription list (Tungsten T3)

Overall this is a great addition to Bloglines. After playing with it for a bit, I did have a few points to mention to the Bloglines team:

  • There is probably some more room for optimization. The subscriptions list is nice and tight, but when you click on a given channel, the channel header is still there and on a small device can take up much of the screen. Some of this channel info could probably be shortened or removed completely. See a sample screenshot below.
    Item details showing channel header (Tungsten TC)
  • There doesn’t appear to be a way to add new subscriptions in the mobile version. This would be nice to have.
  • On my Tungsten T3, the “auto detect” feature doesn’t work when conneted to the main page. I assume this is based on the User Agent string passed by the web browser. The T3 uses Palm WebPro v3.0 and I suspect it uses a UA string that closely matches a desktop browser. In any case, pointing to the true mobile page ( works fine.

Excerpts vs Full Entries

When providing feeds for a web site (RSS, for example), there tend to be two camps: those who provide full entries and those who provide just an excerpt or summary. In the latter case, the rationale is often to drive readers to the web site to read the actual article. However, that can be inconvenient for people who follow hundreds of web sites through their feeds. In fact, it can have a negative effect if people don't follow the summary at all.

Decaffeinated has a good discussion of the issue and an argument for including the full entries in feeds.

I'm a strong believer in full entries and in the past have tried to evangelize their benefits. This article will be good ammunition for such discussions in the future.

[Via inluminent]

File Sync with Portable USB Drives

Portable USB drives (loaded with flash memory from 64MB, 256MB, and up) have become quite popular and are really handy for carrying files or data around with you. I've started carrying around a 64MB drive from Jungsoft, keeping with me several files that I'm working on. It saves the trouble of emailing files to myself or burning CDs.

What would really be useful is a way to “synchronize” the files quickly with whichever PC I'm working with. I'd like to be able to plug the drive in, sync, do my work, then sync again when I'm done. The tool should automatically copy the latest of each file in the right direction.

I looked at using Windows' Offline Folder Synchronization feature, but it appears to only work for true network drives. I also looked at Briefcase, but I've had trouble making that work in the past and it seems flaky.

Instead, I came up with my own solution using Unison:

Unison is a file-synchronization tool for Unix and Windows. It allows two replicas of a collection of files and directories to be stored on different hosts (or different disks on the same host), modified separately, and then brought up to date by propagating the changes in each replica to the other.

Unison has an added benefit of working on Unix/Linux as well as Windows, so it can be a cross-platform solution. They have some support for Mac OS X, but it doesn't yet handle resource forks so it's probably not viable for Mac users.

Unison comes with an excellent manual and is pretty straightforward to set up. Basically you run Unison from the command line, giving it the two locations (directories) you wish to sync. There is also a third location where Unison stores its data files to keep track of file modifications. For my application, I set up one location on the PC (in a desktop folder), then the other data location plus the Unison data are on the USB drive itself in two separate folders. I put the Unison executable on the drive itself along with a simple batch file. (_Update 2003-01-08:_ For times when I need to manually resolve file conflicts, I've created an 'interactive' batch file as well.)

Now I just plug in my USB drive, run the Sync.bat file to synchronize, and I'm all set. Being a command-line tool, it's a little rough around the edges. A nice, simple GUI application would be a good improvement. Also, this solution won't sync files that have been modified on both sides; these need to be resolved manually.