Moving to Microsoft Exchange 2007

Computers and devices connected to a server
You say single point-of-failure, I say synchronized data!

Back in July 2009 I upgraded my mobile phone from an O2 Xda Orbit to an O2 Xda Zest. All was well until I tried to synchronize it with two copies of Microsoft Outlook, one at home, the other at work.

It didn’t work.

Windows Mobile 6.1 won’t sync

A quick Web search showed me that I wasn’t alone. It turns out that there was a bug in that version of Windows Mobile 6.1 on my phone. Microsoft had fixed it and rolled out the update to OEMs but it appears that O2 wasn’t going to let it roll any further.

Diagram of Windows Mobile phone synchronizing with 2 PCs
My Windows Mobile 6.1 phone would only synchronize with one PC

So I was stuck with a phone that would synchronize with only one PC. Which was somewhat bothersome as I was rather used to the convenience of my calendar, contacts, tasks and notes being available both at work and at home, as well as on the go on my mobile phone.

I needed to find another solution.

XTND Connect

The first thing I looked for was an alternative to Microsoft ActiveSync (I was using Windows XP at the time) and I discovered XTND Connect.

I wondered if the problem could be bypassed by using an alternative to ActiveSync.

It couldn’t.

That didn’t work either, which made it quite an expensive mistake. The demo version looked promising but was so highly crippled in terms of functionality that I had to buy the full version in order to fully evaluate it. Which rather defeats the purpose of a demo version, in my view.

Sync2

So I looked around at alternative solutions and it appeared to me that there were only two options left:

  1. Synchronize with an online application (e.g. Google Calendar)
  2. Synchronize to a server (e.g. Microsoft Exchange)
  3. Synchronize to a local folder (e.g. USB flash drive)

I explored the Google Calendar and Google Contacts option but (and for me, it’s a deal-breaker, which is one reason I’ve not gone rushing out to buy an Apple iPhone) one the elements of Outlook that I use perhaps more than any other is Tasks. And I couldn’t sync my tasks with Google Calendar.

I assumed that Exchange would be out of my price bracket so focussed on the second option which led me to Sync2 from 4Team.

Not only does Sync2 synchronize your Outlook calendar, contacts, tasks and notes with a folder of your choosing (USB flash drive, local folder, LAN folder, etc.) it will also synchronize with Google Calendar and Contacts.

I discovered that if I synchronized it with a folder in Dropbox at home I could then synchronize it again from the same folder on my PC at work, without having to worry about remembering to pack my USB flash drive.

Three computers using Sync2 synchronizing with a Dropbox folder
Using Sync2 to synchronize using a Dropbox folder

That has been the solution I have been using for the last six months to synchronize my data between home, work and my laptop.

Occasionally I ran into problems with data not synchronizing properly and so had to either

  • Resynchronize a profile (i.e. make it think it was doing it for the first time again.
  • Delete a profile and recreate it from scratch.
  • Reinstall Sync2 completely.

But most of the time it worked pretty well.

Except that it still didn’t address the issue of my mobile phone being out-of-sync for most of the day, between synchronizations at home.

Hosted Microsoft Exchange 2007

So in January I went in search of an affordable, UK-based hosted Microsoft Exchange account.

After some shopping around I eventually selected Simply Mail Solutions (SMS) based in Warrington. What attracted me about their hosted Exchange 2007 account features were (in order):

  • Only £4.99 per month
  • Full support for Windows Mobile including push
  • Full Outlook Web Access (OWA) in Internet Explorer
  • Out of office assistant
  • Free copy of Outlook 2003 or Outlook 2007

With each device connecting directly to the Exchange server I can guarantee that my data is always up-to-date (server outages withstanding).

Various devices connecting to an Exchange Server
Two PCs, a laptop, a mobile phone and Outlook all connecting to the Exchange Server

Another welcome benefit is that I won’t have the problems of duplicated entries that I’ve experienced so many times when synchronizing multiple devices. Here’s a screenshot I took of Outlook and posted to Twitpic last month showing a repeated entry for “Doug Aitken’s Birthday” duplicated 13 times!

Calendar entry (Doug Aitken's Birthday) duplicated 13 times
Calendar entry (Doug Aitken\’s Birthday) duplicated 13 times

I can even resynchronize my mobile phone when I’m out and about using my roaming Web add-on from O2.

Conclusion

So far I’m really pleased with Exchange and with the service offered by Simply Mail Solutions (SMS).

I’ve noticed only one outage from Simply Mail Solutions which lasted only a couple of minutes when connection to the server went down, and one period of particularly slow connectivity … but then it was 01:00 in the morning, they were doing some maintenance on the servers (I discovered via a quick support call) and I should have been in my bed!

There is a balance to be made when using a hosted service like this for such important personal data between:

  1. the reassurance that I have one ‘golden copy’ of data, stored centrally that is accessed by all my devices, and
  2. the potential for it to be a single point of failure: if it goes down completely I can’t synchronize between locations and my data isn’t up-to-date.

But given my previous experience of hours and hours wasted by repeatedly cleaning up corrupted or deleted data through failed synchronizations, and living with the uncertainty that perhaps my work calendar isn’t exactly the same as my home, laptop or mobile phone calendars … I think I’ll stick with Exchange for a while.

Agile planning poker

For a few months we’ve been starting to use Agile, and specifically Scrum, methods in planning and managing our Web projects at work.

This week we adopted a new practice: planning poker.

Agile / Scrum iteration planning board
Agile / Scrum iteration planning board

Like many teams starting out with Agile practices we didn’t just jump in feet first and adopt every Agile method going; that would have been too much to take in. So we began with a few methods:

The photograph above, taken a couple of months ago, shows the planning board in our office — an information radiator — that shows us at a glance how many tasks are left to do, what’s currently being worked on, what’s in testing, what’s done and (unlike, I would guess, most other Agile boards) what we’re waiting for.

Continue reading Agile planning poker

Planning Study 2.0

Proposed floor plan of relocated study
Proposed floor plan of relocated study

This evening I’ve been using Floorplanner.com to see whether it’s feasible or not to move my study from what used to be the garage to what is currently the fourth bedroom (affectionately known as ‘the bunk room’).

Jane and I have been thinking ahead to when the boys are a little older and wanting to sleep in the bunk beds; we’d also like to do something a little more creative with the former garage, turning it into another ground floor public room (TV room? play room?).

Plenty of room for

I’ve managed to squeeze in:

  • 1 x planners desk and chair
  • 1 x small bookcase for my printers and scanner
  • 1 x Ikea Poäng chair
  • 1 x four-drawer filing cabinet
  • 6 x book cases

No room for

But I’m still puzzling what to do with:

  • 1 x cupboard full of filing boxes, Big Boy’s Box of Interesting Things™, etc.
  • 1 x PC and CRT monitor
  • 1 x Prie-dieu (prayer desk)
  • 1 x bookcase of guitar music
  • 4 x guitar amplifiers
  • 8 x guitars

What’s holding me up from moving up immediately is working out how we move the broadband connection upstairs (without the use of WiFi or a PowerLine adapter). I suspect we may to have to get an electrician in to add a telephone extension in the new study and perhaps more electrical sockets.

Proposed floor plan of the relocated study in 3D
Proposed floor plan of the relocated study in 3D

Floorplanner

Floorplanner has been really simple to use. It uses an Adobe Flash interface (so you can’t plan your rooms on an iPhone, iPod Touch or iPad), is pretty intuitive.

I followed the short tutorial to get an idea of the basics, loaded it up on my laptop in the room I wanted to plan and got measuring.

Price: Free for personal use (limited to 1 plan). There are also Plus (€19 per year; up to 5 plans) and Pro (from €19 per month; multiple plans and tours) accounts available.

Strengths: It’s really simple to get started: draw rooms, add doors and windows, tweak dimensions, preview it in 3D. There is quite a large library of objects, furniture, etc. You’re not locked to one PC as plans are available from any online PC.

Weaknesses: Some of the furniture looks quite generic and unremarkable, although dimensions and general colours can be tweaked. There are no filing cabinets in the office category of objects! I couldn’t find an obvious way to put things on the wall (shelves or pictures). The 3D view can be a little tricky at times: you can’t always see exactly the view you want to see.

Conclusion: It’s a great tool for quickly checking to see if your proposed floor plan is going to work (even if you have to improvise some of the furniture).

It’s really much quicker to learn and cheaper to and use than the likes of TURBOFloorplan 3D from IMSIDesign.

Update

This evening (Friday 16 April) I also discovered Autodesk Homestyler which is another Flash-based floorplanner. I don’t mean ‘discovered’ in the same way as say Ferdinand Magellan discovered how to cross the Pacific without the use of a marine-style lollipop man.

In some ways it was nicer and shinier. In other ways it wasn’t quite so customizable.

Extending colborder in Blueprint CSS

Blueprint

For the last few months, when time has allowed, I’ve been working on a new CSS framework combining my favourite elements from Blueprint CSS framework and 960 Grid System but this week I ran into a problem.

I’m developing the adapted framework to use when I redesign my website later this year. When it’s completed I will also make it publicly available on my website to whoever wants to use it and adapt it.

This is what I want

On Friday night, while testing it, I spotted something about the original Blueprint framework that I hadn’t noticed before.

It was to do with the colborder rule. What if I want to do this:

12 columns of text

That is create two blocks of text, the first spanning six columns with two blank columns appended on the end, then a colborder (which as the name suggests is a border that span an entire column) and finally the second block of text which spans three columns.

Just to be clear, in this example I’m using an adapted Blueprint grid. The default grid uses 24 columns, but in this example I’m using 12 columns as fewer and wider columns make it easier to demonstrate what I’m talking about.

The code, I initially thought, would look like this:

span-6 append-2 colborder

Lorem ipsum dolor sit amet, …

span-3 last

Lorem ipsum dolor sit amet, …

My blank columns have disappeared

But testing this out, what this code actually gives you is this:

Six columns, a line, three columns

Hang on! Where are my two appended columns in the first block, the ones that should appear after the span-6 and before the colborder?

append-x and colborder don’t mix

To answer that I had to take a look at the Blueprint source code. As these three classes are to do with the layout grid these CSS rules span-6, append-2 and colborder are all defined in (my adapted) blueprint\src\grid.css:

.span-6 {
  width: 460px;
}
.append-2 {
  padding-right: 160px;
}
.colborder {
  padding-right: 49px;
  margin-right: 50px;
  border-right: 1px solid #eee;
}

So, in order:

  1. span-6 class is setting the width of the content to 460px.
  2. append-2 class is setting a padding-right of 160px.
  3. colborder is then overwriting padding-right with a width of 49px thereby making our appended two columns effectively disappear.

A new rule is required

I really wanted a solution that didn’t require any extra mark-up. Because I realised that this could be achieved with this code:

span-6 append-2

Lorem ipsum dolor sit amet, …

span-3 last

Lorem ipsum dolor sit amet, …

but that has an extra level of div tags.

After a little pondering, and a little scribbling on a scrap of paper, I realised that the solution lay in writing a new CSS rule that would prepend a colborder before the second block rather than append one after the first block.

In keeping with the append/prepend terminology of Blueprint I decided to call the new rule precolborder. The 12-columns version looks like this:

.precolborder {
  padding-left: 49px;
  margin-left: 29px;
  border-left: 1px solid #eee;
}

The 24-columns version (compatible with the default Blueprint CSS framework) looks like this:

/* Border with more whitespace on left hand side
    of a column, spans one column. */
.precolborder {
  padding-left: 24px;
  margin-left: 15px;
  border-left: 1px solid #eee;
}

and so our HTML now looks like this:

span-6 colborder

Lorem ipsum dolor sit amet, …

precolborder span-3 last

Lorem ipsum dolor sit amet, …

which looks like this on the rendered page:

Text spanning six columns, two blank columns, a border and then text spanning three columns

Which, if I’m not mistaken, is just what I wanted.

Feel free to use it if you like.

WordPress upgrade: filling in the missing pieces

Missing piece

Well, where to start?

I’ve been meaning to blog about life for ages but since Reuben and Joshua were born in November 2008 other things took more of a priority.  Things like attending to twin boys, eating, getting enough sleep, and generally trying to muddle through the days.  I’ll likely write more about that in the future.

Simplifying life

Over the last few months I’ve been working at simplifying life as much as possible, and being a good Getting Things Done / Take Back Your Life disciple and disengaging from projects and tasks that I knew I wouldn’t/couldn’t complete or which were no longer priorities.  It’s felt good.

That’s given me more of a focus on the things that I do want to do.  Sorting out my web server was one of those things.

Server upgrade

I suspect that I would have blogged more about it at the time (and I now wish that I had) but I made a promise to myself that I wouldn’t blog again until I’d upgraded my server.  Of course, that took a good few months longer than I had anticipated (doesn’t everything these days?).

In February I moved from Webfusion to Heart Internet, after an abortive attempt to simply upgrade to a better hosting package at Webfusion.  The killer feature that was missing from the Webfusion package was subdomains; I didn’t want to lose my www.garethjmsaunders.co.uk URL that I’d just had printed onto a custom-made laptop skin.

So far my experience of Heart Internet has been excellent.

Upgrade WordPress

The most pressing reason for moving to a better server was to enable me to upgrade WordPress, the software that manages my blog.  My old host had a bunch of really out-of-date features (MySQL 3.2 and PHP4) which just wasn’t enough to run the latest versions of WordPress.  What a relief to be able to upgrade from WordPress version 2.0.11 to the latest version 2.9.

And wow! there have been quite a few changes to WordPress in the interim: the addition of widgets and tags, as well as critical changes to the main API, a much nicer UI, etc.  So many changes in fact that my old theme broke.  So that had to be fixed.

The upgrade was pretty pain-free thanks to WordPress’s infamous 5-minute install and upgrade script.  (I tested it out first, of course, on my localhost machine using XAMPP.)  The only thing that I missed was matching the database character set encoding.  It was set to ISO-8859-1 (Latin-1) rather than UTF-8 (Unicode) so there are still a few odd character combinations on the blog that I need to track down.

Batch categories

WordPress now has tags.  Back it the day it only supported categories so I, like many other WordPress users, created tens of categories to organise what I was writing about.  I had 88 categories.

I found a tremendous plugin called Batch Categories which let me quickly (by which I mean over the course of two days, rather than weeks if I had to edit each post individually) move groups of posts from one category to another, and also add tags to groups of posts.

So I took the easy route of replacing most of the categories I had with tags and rationalising my categories down to nine:

  1. Books
  2. Computer
  3. Family
  4. General
  5. God Project
  6. Mah Jong
  7. Music
  8. Psion
  9. Web

Next …

I’m really keen to redesign my blog theme but I’m going to hang off on that for the time being.  I’ve got a couple of other things that I want to complete first.

CSS framework

The first thing is to complete work on what started as a plugin for the Blueprint CSS framework and which is now turning out to be a combination of different parts of my favourite CSS frameworks.

Website redesign

Once that’s done I’m going to work on a complete reworking of my main website www.garethjmsaunders.co.uk.  The last time I did any serious work on it was, I think, probably around 2003.  The code has a very serious dose of ‘classitis‘.

One of my biggest drivers is the number of emails and telephone calls that I still get for information about and software for the Psion range of PDAs.  I want to create some space for myself by putting a lot more of that information on my site, in a way that it can be found more easily.