Merging modern software development with electrons and metal
Random header image... Refresh for more!

Running PortableApps

I’ve been using PortableApps a lot recently.  PortableApps are open source, Windows applications that have been slightly modified so they can run off a removable drive (and thus do not need to be installed).  A lot of the applications I use (Firefox, Thunderbird, Filezilla, PuTTY, and OpenOffice) are available.

The advantage of PortableApps is that you have a consistent set of applications (same applications, same versions) on every computer you use without having to install anything (assuming you have your PortableApps USB drive with you).  You get the same browsing history on every PC (and ability to search it – a wonderful Firefox feature) when using PortableApp’s Firefox (Foxmarks works great for synchronizing bookmarks, but doesn’t synchronize history).  It’s pretty lightweight (easy to start, applications run fast) and nothing is left on the host PC.  Upgrading is easy, too – just copy over the new files.

I’ve tried PortableApps on a number of portable drives.  Performance does matter, since some PortableApps frequently write to the hard drive.  My experiences:

  • Memorex 8G micro hard drive (3600 RPM) USB 2.0 portable drive — works, but can be a bit painful (e.g. a lot of pauses when browsing with Firefox)
  • OCZ 4G Rally2 USB 2.0 flash memory stick – better than the Memorex 8G, but still a bit slow.
  • Acomdata 80G USB 2.0 hard drive – works great.  Now my normal PortableApps drive, since it’s fast enough, but less hassle than the 7200 RPM drive.
  • Hitachi 100G 7200RPM 2.5″ USB 2.0/eSATA hard drive – works great.  The best solution for portable Virtual Machines, but more of a hassle than the Acomdata, since it needs 2 USB ports for power (and an eSATA port for best performance).

However, only a limited number of applications are available, so PortableApps doesn’t help if, for example, you want to run EaglePCB portably.

Other options for creating a portable work environment include taking the whole computer with you (laptops – but I love my 20″ and 24″ monitors), web applications such as GMail (but again, many applications aren’t available or wouldn’t work well), file sharing such as Dropbox or a version control system such as Subversion or git (but this solution requires the applications to be installed on each computer, and keeps local copies of each file) , or running virtual machines from a portable hard drive.

The Virtual Machine solution lets you install almost any software, and you only have to have the VM server installed on each computer you use.  VMWare Server 2.0 now supports USB 2.0 (very nice); in the near future, I hope to try VirtualBox.  VM’s are more of a hassle than PortableApps, and requires a host PC with a hefty amount of memory (for example, my small laptop can handle PortableApps, but not VMWare).

November 3, 2008   No Comments

Easier ways to install Subversion and Trac

I haven’t had time to test most of these, but here are some ideas for installing Subversion and Trac:

  • Read the manuals carefully and do a manual install. In my experience, Subversion isn’t too hard, but getting Trac working can take some tinkering.
    • The Subversion and TortoiseSVN manuals are excellent (if you’re a Windows user, you may find the TortoiseSVN manual more useful, since the Subversion manual is all command line).
    • I’ve found the Trac documentation a little harder (more spread-out, probably because it’s all wiki pags), but for Windows the key is the TracOnWindows page. I’ve found it useful to browse the TitleIndex list – you can find some stuff you’d miss otherwise.
  • Try installing Trac 0.11 beta – it’s supposedly simpler to install (I haven’t tried yet).
  • Try the TOW (TracOnWindows) project installer. I haven’t tried it yet; on the plus side, it’s a single installer for Trac, Subversion, and dependencies, and it’s been updated recently so the versions are current. OTOH, it appears to want to install everything in a fixed location (C:\TOW).
  • You can try a VMWare Appliance (using the free VMWare Server) with Subversion and Trac already installed. I’ve looked at this; most appear to be somewhat out of date (e.g. Trac 0.9x), and for licensing reasons always use a open source OS (Linux, BSD) which might not be the best choice for everyone. Similar appliances might exist for the competition.
  • You can use a hosting service with an installer (such as Webfaction) – that really does make installation easy, but upgrading can take a bit of work.
  • It’s worth considering installing to a virtual machine (whether on Linux, Windows, etc) so you can move the Trac server around, or just to experiment without installing lots of programs on the host OS.

Finally, it’s always important to setup the server correctly, with the desired access rights and user log-ins.

Comments 4/23/2011: the TracOnWindows installer hasn’t been updated in a long time.

I still really like the VM approach; VirtualBox is another option (with images available), but check the licensing terms (using VirtualBox as a server might require a commercial license).

VisualSvn Server makes installing Subversion on Windows a breeze.  Trac can still be tricky.


March 25, 2008   No Comments

Fast, portable Virtual Machine images

What am I talking about? Using a portable 2.5″ SATA drive to store and run virtual machine images. I use the free VMWare Server, and install it on the main machines I use. I keep virtual machine images on my portable drive, and run them from the drive, instead of copying (which takes a long time).

Portable 2.5

The portable drive lets me take my PC environment with me – for example, it allows me to work at home, and conveniently keep my work life separate from my personal life.

For automation projects, of course, PC virtual machines have their limitations – they don’t simulate robots, PLC’s, or a lot of other hardware. But they can still be very useful. For example, I have a project with two similar, but different (for different hardware) sets of COM objects. They can’t both be installed at the same time (they don’t meet the requirements for side by side or registration free installation), but I can’t compile in Visual Studio unless they are registered. But I can have two different virtual machines, each one with the appropriate set of objects registered.

What I did was combine a Hitachi 7K200 7200 RPM 16M byte buffer SATA 2.5″ hard drive – currently the fastest laptop drive (see StorageReview; I bought the 100G model from ZipZoomFly) – with an eSATA/USB case (I bought a Coolmax from Fry’s for $10 after MIR; other choices include Vantec). The USB connection provides power without wall warts and the ability to connect on most PC’s, the eSATA gives high speed (about 2-3x faster than my Acomdata 80G 2.5″ drive).

I’ve found that 3.5″ external HDD’s are fine for backup, but simply too big and clumsy to move around frequently (especially with the typical external power supply and cables). Microdrives are too slow for running a VM (I’ve tried on a 8G Memorex USB drive). 1.8″ drives are interesting and would probably work OK for VM’s, but are pricer and slower than my approach. Flash memory is great for transferring data, but I don’t trust it for running VM images, because of its write cycle limit (and flash isn’t so great at small, random writes).

Standard 2.5″ portable USB drives work OK for running VM images (I’ve used the Acomdata quite a bit), but the eSATA approach gives you roughly desktop HDD speed for a bit more money. I haven’t seen any commercial eSATA 2.5″ portable drives; for that matter, I don’t know of any commercial 7200 RPM 2.5″ USB drives, so right now you have to build your own – but it’s extremely easy.


  • On Windows, I highly recommend formatting the drive using NTFS; otherwise you’ll have to have VMWare split the drive image to deal with FAT’s 2G maximum file size. All NTFS drives (USB, Firewire, eSATA) have to be stopped (e.g. via the Safely Remove Hardware icon) before they can be safely removed.
  • Virtual machines love memory – on the host PC, 1G is about the minimum, 2G is much better.
  • The Coolmax case quality isn’t as good as my commercial Acomdata; the drive can wiggle around. I also like Acomdata’s brushed aluminum finish better.
  • 7200RPM 2.5″ drives probably won’t work with just 1 USB port for power. A USB port can provide up to 2.5W (500 mA at 5V); the 7200RPM drives typically specify at least that much power to operate. Coolmax provided a single USB port to power plug cable and a dual USB (one power, one power & communications) to 5-pin cable. I plug in the eSATA cable first, and then the USB cable so the drive always starts up in eSATA mode.
  • The Hitachi drive runs a little warm, but not hot. The Acomdata drive doesn’t even get warm.
  • The eSATA removal procedure is a little more involved than on USB drives. One approach is to use the hardware device manager (e.g. provide convenient link to devmgmt.msc). Sometimes SATA drives (including internal ones) show up on the Windows “Safely Remove Hardware” icon. If they don’t, sometimes the Hotswap! utility can help (it does not support all SATA controllers).
  • Frequently adding/removing eSATA drives may cause problems with software activation schemes. I suspect it may be more of a problem when Windows thinks it’s a permanent (instead of removable) drive.
  • The eSATA/SATA standards have their quirks. Many early add-on cards do not support hot swap; probably most early motherboards do not either. SATA is point to point, so if your motherboard comes with only 2 SATA connectors, and you’ve already got two HDD’s, you’re going to have to add an eSATA card. SATA and eSATA connectors are slightly different. The eSATA cable is better than IDE, but not as flexible (or long) as USB, although I found a 6 ft model which seems more flexible. eSATA cables seem to be $10 or more.
  • Since one PC needed more SATA ports, I bought a Vantec UGT-ST300 eSATA PCI card for $30. It was the cheapest card the got good reviews and guaranteed being able to hot swap. I haven’t had any problems with it yet.
  • On the other computer, I have a bracket that converts a SATA cable (from the motherboard) to an eSATA connector.
  • Since eSATA is not common, it’s best if you only use a few computers regularly with the portable HDD. And it’s convenient to pre-stage the cables – have a eSATA cable and USB power cable already plugged in to the computers you use the most (and carry an extra dual USB cable with the drive for other computers).

Note 4/19/2011: right now I’m basically running everything on my laptop.  If I wanted killer portable storage now, I’d look at combining a superfast SSD in a 1.8″ case with a USB 3.0 interface (if such a thing exists).  Maybe a USB 3.0 memory stick would work well, too.  But don’t forget to back up — flash mass storage can fail catastrophically too.


November 15, 2007   No Comments