Sunday, 9 November 2008

Flyback and TimeVault. Time Machine for Linux.

Whilst I was looking at Apple's Airport Extreme to see if it would replace my current Netgear DG834N (which isn't playing very nicely at all), I stumbled across a few projects that provide something akin to Leopard's Time Machine functionality for Linux.


The first is Flyback, a Google Code project based on rsync.  It has a Python GUI interface to administer the backups and is extremely simple on the backend.


The next is TimeVault, an Ubuntu project.  It integrates with Nautilus seamlessly to provide easy restore functionality.  It works by watching directories for any changes and then keeping a backup copy of the files and directories that have changed.  SQLite is used to keep a database of the backups and uses file hashing and an internal directory structure to store the actual file backups.  Disk usage is reduced by using hardlinks to files that haven't changed.


All of these solutions lack the whizzy 3D interface that Time Machine provides but at the end of the day it's about the resilience and not the graphics.  If you're running Linux, chances are that you don't need a 3D interface for your backup and restores anyway.

Friday, 7 November 2008

Dopplr shift

Dopplr is a great social-networking based tool for keeping a track of your travel plans. 


The idea is that you input your travel details and it will find other people going to the same location (or nearby) at the same time. 


If your social network members keep their details up-to-date then you might just find yourself engaged in an impromptu party in a foreign city instead of watching TV in a language you don't understand whilst slowly emptying the mini-bar and your wallet.


Another feature of Dopplr, if you're interested, is the ability to calculate your carbon footprint.


Dopplr even provides webcal links so that you can subscribe to your travel calendar.  Using this functionality, Google Calendar and BusySync, the details on from my Dopplr account appear on my iPhone, automagically.  Handy!


Another weapon in my online arsenal of useless rubbish.  ;)

Saturday, 1 November 2008

Bye bye Drupal. Hello Wordpress!

As you can probably see, I have moved this site from Drupal to Wordpress.


Why? 


The themes are nicer, the modules are better and it seems to be a much more professional project overall.


I've run a basic conversion script over the database for now and, as a consequence, there will be a whole lot of clean-up required. 


Being new to Wordpress means that this might take a little time.


I'm going to use Flickr for photo management and have the Flickr module installed, but I will obviously need to get all my photos online before they'll be available.


I also hope to blog more from the iPhone - and Wordpress should make that easier.


Oh, and here's that script:



# Taken from, http://mcdevzone.com/files/drupal_to_wordpress.sql

# this assumes that both wordpress and drupal are in separate databases.
# The wordpress database is called "wordpress" and the Drupal database
# is called "drupalmigration"

# based on scripts from:
# http://www.darcynorman.net/2007/05/15/how-to-migrate-from-drupal-5-to-wordpress-2
# http://spindrop.us/2006/05/19/migrating-from-drupal-47-to-wordpress
# http://www.brendanloy.com/2007/02/wordpress-21-upgrade-problems.html

# first, nuke previous content in wordpress database
use wordpress;
delete from wp_terms;
delete from wp_term_taxonomy;
delete from wp_term_relationships;
delete from wp_posts;
delete from wp_postmeta;
delete from wp_comments;

# categories
INSERT INTO wp_terms (term_id, name, slug) SELECT term_data.tid, name, name FROM drupalmigration.term_data where term_data.vid = 2;

INSERT INTO wp_term_taxonomy (term_taxonomy_id, term_id, parent) select term_data.tid, term_data.tid, parent from drupalmigration.term_data, drupalmigration.term_hierarchy where (term_data.tid = term_hierarchy.tid) AND (term_data.vid=2);

# posts
INSERT INTO wp_posts (id, post_date, post_content, post_title, post_excerpt, post_name, post_modified, post_author) SELECT DISTINCT n.nid, FROM_UNIXTIME(created), body, n.title, teaser, REPLACE(REPLACE(REPLACE(REPLACE(LOWER(n.title),' ', '_'),'.', '_'),',', '_'),'+', '_'), FROM_UNIXTIME(changed),n.uid FROM drupalmigration.node n, drupalmigration.node_revisions r WHERE n.vid = r.vid;

# category --> post relationships
INSERT INTO wp_term_relationships (object_id,term_taxonomy_id) SELECT nid,tid FROM drupalmigration.term_node ;
UPDATE wp_term_taxonomy SET taxonomy='category';

# category count updating
UPDATE wp_term_taxonomy SET count = (SELECT COUNT(object_id) FROM wp_term_relationships WHERE wp_term_taxonomy.term_id = wp_term_relationships.term_taxonomy_id);

# comments
INSERT INTO wp_comments (comment_post_ID, comment_date, comment_content, comment_parent, comment_author, comment_author_email, comment_author_url) SELECT nid FROM_UNIXTIME(timestamp), comment, thread, name, mail, homepage FROM drupalmigration.comments;

# users
INSERT INTO wp_users (ID, user_login, user_pass, user_nicename, user_email, user_registered, display_name) SELECT uid, name, pass, name, mail, FROM_UNIXTIME(created), name FROM drupalmigration.users WHERE uid>1;

# update comments count on wp_posts table
UPDATE wp_posts SET comment_count = (SELECT COUNT(comment_post_id) FROM wp_comments WHERE wp_posts.id = wp_comments.comment_post_id);

# fix post slugs. first we have to remove the duplicate _____ chars, then replace that with a single - char
UPDATE wp_posts set post_name = REPLACE(post_name, '__', '_');
UPDATE wp_posts set post_name = REPLACE(post_name, '__', '_');
UPDATE wp_posts set post_name = REPLACE(post_name, '__', '_');
UPDATE wp_posts set post_name = REPLACE(post_name, '__', '_');
UPDATE wp_posts set post_name = REPLACE(post_name, '_', '-');

Saturday, 25 October 2008

iPhone home

It's a week and a half now living with the iPhone. It truly is a great device. Not perfect but, by far, the best hand held device I've owned.

One major advantage is not having to lug my Macbook Pro around everywhere. I can read my email, RSS feeds and eBooks anywhere, anytime.

Another major plus is having my full iTunes collection and podcasts with me.

A lot of the built-in apps work really well and provide the right level of functionality for those of us on the go.

The ringtones are well thought out and pleasant -- you can, of course, with the right software, use any song as the ringtone.

Here are a few of the pluses and minuses:

Pros
  • Fantastic integration
  • Wireless, automatic calendar and contact synchronisation
  • Great selection of applications (see favourites below)

Cons
  • No cut'n'paste
  • No background apps (yes, I could JailBreak the phone)
  • Rubbish camera

Favourite apps

Saturday, 4 October 2008

Eddie's back in town!

Eddie Izzard is back in London doing his 2008 tour, Stripped.


He's playing at the Lyric Theatre in the West End from November 17th to December 12th.


I can't wait!


We've just contacted the North London Crew to get a date organised.


Next step, find a baby sitter. Send your resume to... ;)


Update: Sold out everywhere. Have 4 tickets on "order". Not sure what that actually means... /me crosses fingers.


Update: The mob I bought the tickets from, paperticket.co.uk, were shutdown for fraud by the Metropolitan Police.  That's definitely no Eddie tickets, then.  :(

Wednesday, 1 October 2008

Icon A5

Kevin Rose recently mentioned the Icon A5 on Digg Nation. It looks like a really cool sports aircraft with quite a low level of entry.

Some of it's features include:
  • Fully deployable parachute if things go wrong.
  • Amphibian
  • On-board GPS and MP3 player
  • Foldable wings - tow behind the car
  • Take off or land within 750ft
  • 120mph from 100hp engine that runs on either petrol or aviation fuel

Monday, 29 September 2008

Camber Sands

We discovered Camber Sands when trying to find a beach near London so we could enjoy the last throws of summer.


Camber Sands is a proper beach with real sand and dunes down on the south coast of Kent. It is about 20 miles east of Hastings.


Whilst we were there we decided to have lunch at a restaurant and B&B called, The Place. The food was really good but the service was atrocious -- it took over 3 hours to have our meals served. When we complained the manager explained that in her 19 years in catering she hadn't had so many complaints and that we didn't have to pay for the food. We decided to pay for half of the meals since only the service was the problem.


By the time we got to the beach the wind had picked up and it was becoming overcast - but Daisy enjoyed the water and was only slightly weirded out by the sand.


We will definitely be visiting Camber Sands when the weather is good again.

Sunday, 28 September 2008

The amazing walking Daisy...

Our little Daisy has decided that crawling is for suckers and everything must be done on two feet now.


We took a quick video of her new found independence.


When she gets to the end of the room and discovers that the trolley can't be pushed any further because a wall is in the way, she starts to throw a bit of a wobbly.


Also, sharing the said walker is a bit of an issue. Poor young Eddie found out the hard way.

Monday, 21 July 2008

Sushi

"What shall we have for lunch?"

"I don't know, look in the fridge."

"Salmon and something...?"

"... and what?"

"I don't know... Ryvita?"

"Ooo, yes, with cream cheese!"

"Ok."

"There's no cream cheese."

"Bugger."

"... I could make Sushi...?"

"Really!?"

"Sure, why not? How hard can it be?"

... and, as it turns out, it's not that difficult. It helps to have the right ingredients. Which we didn't... but it didn't dampen my spirits and I still gave it a go. The real ingredients are:

  • Japanese rice
  • Rice wine vinegar
  • Sugar
  • Salt
  • Seafood (smoked salmon, butterflied cooked prawns and fresh tuna are perfect)
  • Wasabi
Unfortunately we only had regular, white vinegar and normal Bismati rice. Oh well, it can't be that different, can it?

First, "wash" the rice by rinsing it out with cold water several times until the water is clear.

Then cook the rice in a little water (about the same amount as the rice) until it's nearly boiled away, cover and steam for a further 10-15 minutes.

Whilst this is going on, prepare the rice seasoning by measuring out some vinegar (about 25% of the amount of rice) and stirring in the sugar (about 1 tablespoon for every 50ml of vinegar).

Add a little salt.

You can use some heat to help dissolve the sugar. (just don't let it boil)

Once the rice is done, gently mix in the seasoning.

Let the rice cool and you're done!

Nigiri Sushi are the little handmade blocks of rice with a portion of seafood on top. Making it with the substituted ingredients turned out much better than expected and we enjoyed home-made Sushi for lunch.

Of course, next time we'll get the proper Japanese short-grain rice and some proper rice wine vinegar. We'll also pick up some Wasabi paste. ;)

Sunday, 20 July 2008

European Directories

This week was my first week at European Directories, located in Chiswick Park, London. Here are a couple of photos of the business park, taken on my first day.









(It sure beats Fortress Wapping)


The first week was quite busy and I was in Amsterdam on the second day. (after a slight hiccup with the outbound flight) The people are very friendly and everyone is trusted to get on with the tasks in hand. (another nice change!) Things will be even better when a couple of colleagues I've worked with in the past, join us.


Next week will see me in Amsterdam again and then Copenhagen straight afterwards for a project kick-off meeting. Whilst in Copenhagen we'll be going to the Brondby vs. Juventis football match for a bit of bonding. (I'm hoping the words "corporate box" feature at some point)