Version Control for Mortals

Version control systems (VCS, or Revision Control Systems or Source Control Systems) are designed for software developers. They enable one or more people to work on source code, annotate changes, split and merge the code, link to bug tracking systems and a number of other things that are interesting to developers but not to most people!

Indeed then, for most people, you might expect that version control systems are not interesting at all. But you’d be wrong.

What makes them interesting to most people is the fact that most of us are very poor at looking after those all-important files that make up our business assets and often personal assets too. We copy, save and delete stuff without giving too much thought to what we are doing. Then later on we scratch our heads and wonder what happened to xyz piece of critical information. I wonder how many times you’ve gone through your emails to get a document back that you know should be (and may well be) on your hard drive somewhere. With desktop search systems now all the rage, you will probably find the document but then you realised that you used it as a template for another document and accidentally saved over the top! Or it got deleted when you were tidying up the old project folders …

Well, in step the version control systems to save the day. They will benefit anyone who recognise the above scenarios.

I’ve been using a VCS for over a year now for my day-do-day documents. I’m glad I did too as I used it to recover most of my documents after a drive failure earlier this year.

SVN LogoI started by using Subversion (SVN). This is a Centralised Versioning System. It requires a central server that is the hub and master for all documents and changes. It is very well supported and many low-cost web hosts also provide Subversion servers.

It is not ideal though for managing general documents. Firstly it does get quite slow (especially for larger files) and changes can only be committed over a live network connection so it’s no good for disconnected work. Secondly, I found it very sensitive to how it was used and I’ve often managed to get my repository in a mess that was very hard and very time consuming to recover from. This is not acceptable in a system that you have to rely on. I’m sure its fine for its original purpose of source control but it is not so good for managing day-to-day work.

Hg LogoNext I looked at Distributed Version Control Systems. The most popular of these (the free ones anyway) are: Git, Mercurial and Bazaar. Mercurial seemed to be the one best developed for Windows so I tried that. It does seem reasonable but it seems to balk quite a bit at large’ish files (a few Mb, it seems that the Windows interface at least hangs quite often at least on Windows 7) and that makes it unsuitable for our needs. Git seems to have a lot going for it but is not so well developed for Windows and is rather more complex, I haven’t tried it at least yet. So that leaves Bazaar. I’m now using Bazaar in anger and I’m quite impressed. It seems to handle large files sensibly, it is easy to set up (really easy), it doesn’t complain when you move files and folders round, it doesn’t get in the way, it’s reasonably fast. You can also use it with a central repository too like SVN.

Bzr LogoBazaar comes with integration to Windows Explorer but you will probably want to look at the command line options too for automation.

I’ve set up a schedule that runs a commit of my main repository “workdocs” every morning, noon and afternoon (9am, 12pm and 4:30pm) and the extra data that is kept in the repository is simply backed up as part of the regular backup since it is just a hidden folder in the root of the “workdocs” folder.

I then commit changes manually as and when I want to after making significant changes to files.

For really critical files, you could couple Bazaar with the file change detection of SyncBackSE to automatically commit changes or you could use AutoHotKey to intercept the <ctrl>-s key combination to run a commit before or after doing a save.


Technorati : , , ,

Diigo Tag Search : , , ,

Critical Bug in Outlook 2007

I’ve recently stumbled on a bug in Outlook 2007. Apparently it is quite well known and the only reason that I hadn’t found it was that I don’t use Outlook as my main email client. In fact I only use email on it to handle meeting requests.

The bug is that Outlook 2007 ignores the setting regarding sending reply requests for IMAP accounts.

If this seems rather irrellivant to you, you might want to think again.

If you have an email account that receives SPAM and you access it via IMAP, Outlook 2007 will ignore your setting for reply requests (the setting is defaulted to prompt). Since many SPAM emails have reply requested turned on, you will suddenly find that Outlook is trying to send a whole load of email messages that do not appear in any folder! You haven’t been asked, it is just doing it.

This is bad enough as you are now leaking information about your account out onto the Internet – but it gets worse!

Outlook does not send the replies out using the account that recieved the SPAM, it sends them out from the DEFAULT account.

So if you have, lets say for example, a work account that doesn’t recieve significant SPAM and is your default account in Outlook. Then you have a second, personal account perhaps, that does recieve significant SPAM. You will suddenly find that Outlook is sending hidden emails from your work account – these are the reply responses from your personal account. Now you are leaking information about your work account.

Now, there is a new, big update to Outlook 2007 that has just been released. It is not yet on Windows Update but Microsoft are touting it as the biggest and best set of updates for Outlook ever – see Jimmy May’s blog post for more information. Sadly though, despite the hype, the new update does not fix this critical bug.

The update – which will be part of the Service Pack 2 (SP2) for Office 2007 – certainly does vastly speed up the operation of Outlook 2007 so there is some good news.


Technorati : , , , , ,

Diigo Tag Search : , , , , ,

Sun’s VirtualBox gets on with it!

Yep, I keep being amazed by the quality of VirtualBox which is now owned by Sun.

I need to set up a virtual machine to test and demo Sun’s Identity Management (IdM) suite and it needs to be usable with VMware too. So I headed over to the VMware Appliances web site and downloaded a pre-canned Debian 5 server.

This is recognised fine by VirtualBox! I gave the VM a Host Networked connection to the network and with no further configuration, fired up the VM. First thing was to install some additional components so I used the Debian package manager (aptitude) from the command line (no windowing GUI here!) to install the file and database and web server virtual packages. It just worked, no networking problems at all and being a Host network, it is on my local LAN as well as the Internet with no problems.

It’s nice when things “just work”. That’s how it should be!

Of course, it probably wouldn’t have been quite so simple if I wanted a desktop as well. But there are also a number of pre-canned VirtualBox VM’s for downloading.

VirtualBoxImages and HelpDeskLive.


Technorati : , , ,
Diigo Tag Search : , , ,

Windows 7 supports IPTC in JPEG Picture Files! (Not quite – Adobe XMP actually)

Wow! I’ve just discovered by accident that Windows 7 beta supports a few IPTC XMP attributes in picture files. At last, Microsoft supporting standards!

Above is a screen shot from the properties of a test picture. The Description and Origin sections seem to be standard IPTC fields and I checked them out using iTag.

In iTag the Title attribute comes out as both the Title and the Description. The Subject field doesn’t seem to be recognised nor does the comments field. Rating, Tags, Authors and Copyright are all recognised by iTag.

I’ll do some more extensive testing when I get time.

Update: I spoke too soon :( In fact, it’s rather more complex.

Using ExifTool with ExiftoolGUI, I can see that actually, Windows 7 sets BOTH some EXIF attributes and some XMP (the Adobe meta data format) attributes but NOT IPTC attributes. As it happens, iTag also understands these. Here is a table of what seems to get set.

Windows 7 Attribute EXIF Attributes XMP Attributes iTag Name (Note that iTag synchronises EXIF and XMP attributes on updates [may not be a good thing], Win7 overwrites!!!)
Title XPTitle, UserComment,

ImageDescription
Title,

Description

(Note that only the Title will show the title in Windows 7)
Title,

Description (updates EXIF ImageDescription & XMP Description, multi-lines joined with “…”)
Subject XPSubject N/A N/A
Rating (Number, 1-5) Rating (1-5), RatingPercent (as per XMP)

Rating (1-5), RatingPercent (1=1, 2=13)

(Note that Rating alone DOES show the rating stars in Windows 7)

Stars under the thumbnail
Tags (“:” separated) XPKeywords (“:” separated) LastKeywordXMP (separated by “, “)

(Note that this alone DOES show in Windows 7)
Tag Bucket
Comments (Multi-line – ctrl-enter) XPComments (Lines separated with “…”) N/A N/A
Authors Artist, XPAuthor

Creator

(Note that this alone DOES show in Windows 7)

Author
Copyright Copyright Rights Copyright

The “XP…” EXIF attributes seem to be Windows specific as ExifToolGUI doesn’t offer an edit feature for them, just lists them.

So, a rather typically Microsoft mixed bag. Why wasn’t the XMP Description attribute mapped to Windows Comments? Similarly for EXIF UserComment!

Still, it is something anyway and hopefully the table will help you choose which attributes to use for the best cross-tool support.

I will try to add some more applications to the table if I get a change, if you get there before me, please let me know and I will add the details here.

Update 2: A quick look at Wikipedia shows that Microsoft seem to be backing XMP as support is built in to a number of their photo tools. In the past I’ve stayed away from this as only Adobe and other expensive products supported it whereas IPTC had more widespread support. It seems that this may be changing now – typical – time perhaps to find a way to copy all those IPTC attributes in my photos across to XMP.

See my note about what happens with Windows 7 and iTag updates. This is BAD. Windows 7 rides roughshod over several attributes. Even worse, iTag was unable to reopen the file after Windows 7 had updated it.

So do not use Windows 7 to update image attributes if you also want to use other, more professional tools.


Technorati : , , ,
Del.icio.us : , , ,
Diigo Tag Search : , , ,

Easier posting to Blogger Blogs (Zoundry Raven)

Just a quick note to recommend some software that makes writing blog entries very much easier.

The software is called Zoundry Raven and I’m using the latest beta (under Windows 7 beta).

The editor is WYSIWYG and has a much more sensible set of standards than the built-in Blogger editor (including the beta version). It also allows you to publish the same entry to multiple blogs if needed. It has image, link and tag handling too and it makes blogging rather more pleasurable.


Update 2009-02-28
: A couple of things I wanted to add to this. Firstly, Raven isn’t actually in beta! Secondly, that the more I use it, the more I like it! It is very extensible too, I’ve just added a tag search for Diigo, the online bookmarking service that is miles better than del.icio.us and it only took 2 minutes. I have also found that I rarely need to manually adjust the html, quite a change from the native Blogger interface. Finally, adding images is a breeze; you can copy and paste and as long as you have some storage defined (I’m just using a free Google Picassa account at the moment) and Raven will automatically upload the image and sort out the links – magic! Well done Zoundry.

One final thing. Raven doesn’t have all that good a support for proxy servers at the moment. So if you are behind a Microsoft ISA Server proxy (very common in large organisations), you might need to use something like CNTLM. I’ll blog about that another time I think.


Technorati : ,

Del.icio.us : ,

Diigo Tag Search : ,

proxy.pac files, Mozilla (Firefox & Thunderbird) and Vista or Windows 7

I’ve found a problem with Mozilla based products and proxy settings.

To automatically configure a proxy for use by Internet browsers, you can use a file called “proxy.pac“. This is a JavaScript function that is loaded into the browser when it starts and redirects requests via a proxy where required.

All of the descriptions for this file you will find on the Internet will provide the following example of checking your current IP address. This is used for laptops where the IP address will change depending on where you are. You can check when the laptop is on the corporate network and redirect requests via the corporate proxy as needed:

if ( isInNet(myIpAddress(), "10.10.10.0", "255.255.255.0") ) {
  alert("Corporate address &amp; proxy");
  return "PROXY 10.10.10.240";
 }

Well, this does not work for Mozilla based applications (for example Firefox and Thunderbird) if you are using Microsoft Vista or Windows 7.

That is because, under those operating systems, the internal function myIpAddress() does not return an IPv4 address as expected (e.g. 10.10.10.5) but an IPv6 address instead (e.g something longer with lots of “:”).

In order to make your proxy.pac file work with both IE and Mozilla, use something like:

if (isInNet(myIpAddress(), "10.97.100.0", "255.255.255.0") ||
            shExpMatch(myIpAddress(), "fe80::b892:6a74:9635:*") ) {
  alert("Corporate address &amp; proxy");
  return "PROXY 10.61.9.200:8080; DIRECT;";
 }

You can discover your IPv6 address in several ways but the trusty command line “ipconfig /all” shows you everything you need.

See also this discussion on the Mozilla support forums: proxy.pac myIpAddress() returns incorrect format?


Del.icio.us : , , ,
Technorati : , , ,
Diigo Tag Search : , , ,

Windows Mobile applications I use

To round off my mini-series about software I use, I thought I’d do one on Windows Mobile (AKA Pocket PC or PPC).

  • Pocket Informant
  • Keepass PPC
  • Microsoft Reader
  • MobiPocket Reader
  • PIM Backup
  • Pocket Navigator (Memory Map)
  • Laridian Pocket Bible
  • WeatherWatcher
  • Google Maps
  • Tombo
  • Tom Tom Navigator
  • SuperDoku
  • Bejeweled2

There are one or two other small utilities I also use and I have a bespoke WM6 installation that includes some tools.
(NB: I’ll add some links and explanations in when I get time).

Windows applications I use

Following on from my post about what stops me from dropping Windows altogether, I thought that I would put together a more complete post about the Windows applications I find myself using.

  • Memory Map -
    If ActiveSync is installed, the standard license allows you to push a copy of the Windows Mobile version to a handheld along with extracts of (or whole) maps, POI, routes, etc. It is also best to plan routes and add new POI on the desktop as its easier than the small interface on the handheld. There are two versions of the software. One will only run Ordnance Survey maps due to their overly restrictive license (in any other industry they wouldn’t be allowed to get away with it). The other will run any map other than OS and also allows you to scan your own maps. If you buy the OS one for British maps, you can download the other from their US web site. Both can be installed at the same time and they don’t seem to mind.
  • Google Sketchup
  • Laridian Pocket Bible for Windows -
    I generally use the Windows Mobile version of this excellent software but sometimes have the need to see larger passages, do side-by-side comparisons or write more extensive notes. The latest versions of the desktop now synchronise notes, etc.
  • MobiPocket Reader for Windows -
    This is able to translate ebooks from HTML and PDF into its native PRC format which is what I mainly use it for. It can push the file straight to a Windows Mobile device. It can also capture RSS feeds and do reading on the desktop.
  • ActiveSync -
    Yeuch! A necessary evil. The Linux sync software is notoriously difficult to get running and keep running and there are still some Windows Mobile installations that require a Windows machine with ActiveSync. It is though, the most dreadful and unstable software I use. I keep all of the options turned off so that it doesn’t mess up the handheld.
  • MyMobile -
    This is the epitomy of a simple piece of software that just works! It allows access to the screen and keyboard of the Windows Mobile device within the desktop. Really useful if you use the phone a lot, especially as a PDA as well. It also has a file manager that is a lot faster than the ActiveSync one.
  • Microsoft Office 2007 -
    Although I often try to use OpenOffice for general tasks, there is no getting away from the fact that MS Office is light-years ahead in terms of features. If, like me, you rely on these for your day-to-day work then you need MS Office. I would say though that I would no longer purchase a copy for home use (not that I’ve ever needed to thanks to always having access to business laptops) – OpenOffice is more than sufficient for general use.
  • Internet Explorer -
    It is a sad fact that there are still too many web sites that require IE to work. Thankfully all of the banking and finance sites seem to have got their act together.

Well, it is still a pleasantly small list. Don’t get me wrong, I am not against Windows, it’s just that I like having a choice and believe that real competition is good for everyone both users and suppliers. Further, I cannot really agree with the restrictive licensing that MS are always trying to force on people given the large price they put on both the software and updates. Nor can I really agree with the stifling of innovation that is the result of overly restrictive trade practices. The competition from Linux and open source is good for the market though I would really like to see OpenOffice start to innovate more rather than trying to play catchup with Office.

Linux Applications I use

Finaly got round to installing OpenSUSE 11.0 on my desktop so I thought this would be a good opportunity to keep track of the software I actually use. I’ll edit and update this entry over time.

System

  • VirtualBox (virtual machine, cross platform)
  • Wine
  • TurboPrint (paid for printer driver)
    Makes having a Canon inkjet printer worth-while again! Rather expensive for what it does but it brings the features you would expect from a good, proprietary printer driver.
  • FireFox (web browser, cross platform)
    Add-ins:
  • Adblock Plus
  • CS Lite (adblock for cookies!)
  • Diigo (online bookmark and web notes site)
  • FlashBlock
  • RAMBack (Forces FF to give back some RAM)
  • Secure Login (auto populates login information – uses FF’s built in security database)
  • Session Manager (FF3 now recovers crashes but this saves arbitary sessions on request plus other goodies)
  • Tab Mix Plus (perhaps a bit heavyweight but makes working with tabs vastly better than FF3′s built in features) – you need the dev. build for FF3
    UPDATE 2008-07-18: The dev. build is no longer valid for FF 3.0.1. I hope this gets updated soon, it really makes a differents to usability when you have many tabs open.
    UPDATE2: It seems as though you need to reinstall the dev build after updating to FF 3.0.1
  • Google Gears (Run web apps offline)

Development Add-ins:

  • Firebug
  • YSlow

Sometimes used Add-ins:

  • All-In-One Sidebar (nice but not really needed)
  • CustomizeGoogle
  • FEBE (backup FF, had some problems with it recently so I’ve stopped using it)
  • LinkedIn Companion for Firefox
  • PasswordExporter (Handy for backup and migration)
  • iMacros (record, write and edit macros that control the browser)

Security

  • KeepassX (password store, cross platform)
  • TrueCrypt

Office

Graphics & Media

  • VLC
  • MPlayer
  • VueScan (paid for scanning software) This is an excellent if slightly expensive tool that does really high quality scanning from both flatbed and film scanners. It has its own drivers too. It can output multiple file types simultaneously including PDF and TIFF and can OCR as well. It also supports multi-pass scanning (primarily for film scanning).

Development

  • Open Komodo (editor, cross platform)
    Add-ins:

Games

Other

  • MemoryMap (mapping, Windows using Wine or a VM)
  • Google (Note that currently only Picassa and Desktop are in Google’s SUSE repository)
  • Earth
  • Sketchup (Not often used)

All of the above are available either in the main OpenSUSE repositories or via the build service unless I’ve provided a link (except for plugins of course).

Update on FreeOTFE

Thought I would add a quick update on using FreeOTFE under Windows and PocketPC.
I tried it under Windows on a different PC and it does indeed work OK though it is nowhere near as polished as TrueCrypt.

I’ve also tried again a few times on a PocketPC with limited success and I think I know what is happening. Firstly, you must install FreeOTFE for PPC into system memory and not on a storage card – not terribly surprising really. However, you do not seem to be able to use a secure volume from a storage card either very reliably (I tried on a T-Mobile MDA Compact III). I did have some success creating a small volume (approx. 2MB) in main memory, it did load eventually. Sorry to say that this is unworkable and I’ll be sticking to Keepass and Tombo on PPC with TrueCrypt on Windows and Linux.

It is worth noting in passing that TrueCrypt for Linux now has a native UI.