Using Homebrew on macOS

Homebrew is a package manager for command line tools on macOS. It can be installed by issuing the following command:

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

Packages can be installed with brew install <packagename> and updated with brew update.

Packages I generally install on a new Mac are:

  • wget – for command line downloading
  • imagemagick – for image manipulation
  • mas – for command line updating of (non-Apple) App Store software
  • youtube-dl – for downloading youtube videos for offline viewing

Once you have homebrew installed then it’s possible to script a software update solution that includes all Apple software, all non-Apple software, and everything installed through homebrew. It’s not quite as good as a Linux package manager, but it’s getting there.

The current script I use for this is:

#!/bin/bash
echo "updateall v.1.1 for macOS"
# Run this as a normal user. Your admin password will be asked for if required.
# Update all Apple software (requires admin password at this point)
sudo softwareupdate -i -a
# Update all software installed via Homebrew (as a normal user)
brew update
# Update all other software
mas upgrade
echo "The script has now finished running."

An updated guide to using Pandoc for document conversion

I wrote about Pandoc last year, but I’m using it more and more and I’ve found myself editing the original post a fair few times. This is the updated 2016 version that gathers together useful commands I’ve learned so far.

Last year I found myself needing to do a lot of document conversion, and maintaining documentation that needs to be available in a variety of formats (HTML, Word documents, Markdown and PDF). My tool of choice for this sort of thing is Pandoc, which is available for Windows, Mac OS X and Linux, although most of my usage so far has been on Linux and Mac OS X (it’s a command line package that can output to Dropbox, so it doesn’t matter where it runs really).

There are instructions for installing Pandoc on quite a few platforms. I’ve found that following these is generally enough, although it’s worth installing the latest version of the .deb packages rather than the one in the repositories.

On Debian/Ubuntu I also add the texlive-latex-extra package, but that’s largely because it gives me a specific Beamer theme I like to use.

If you’re using Pandoc on Mac OS X there is one more command you’ll need to issue prior to the first time you want to create a PDF file:

sudo ln -s /Library/TeX/texbin/pdflatex /usr/local/bin/

This will ensure Pandoc knows where to find pdflatex. If this step isn’t followed then you’ll likely get an error message along the lines of pandoc: pdflatex not found. pdflatex is needed for pdf output.

Pandoc works for me because I write everything in markdown, and Pandoc is great at taking markdown and converting it into almost anything else. It’s also good if you need to create a PDF, a Word document and a slide show from the same document. The syntax is fairly simple for most document types:

For example:

pandoc input.md -s -o output.docx
pandoc input.md -s -o output.html
pandoc input.md -s -o output.epub

Conversion to PDF works the same, although I’m not a fan of wide margins, so I tweak it slightly:

pandoc -V geometry:margin=1in input.md -s -o output.pdf

For a Beamer slide show you’ll need something like:

pandoc -t beamer input.md -V theme:metropolis -o output.pdf

Pandoc does a lot more, but the documentation is great, and the commands above should be enough to get you started. If you want to try out the functionality in a web browser then http://pandoc.org/try/ should be able to handle most types of conversions.

Command line software updates on OS X

A while ago I blogged about the script I use to update my Ubuntu machines. Today it’s the turn of Mac OS X.

#!/bin/bash
echo "updateall v.1.0 for OS X. This software will upgrade all your Apple/Homebrew software."
#Run this as a normal user. Your admin password will be asked for if required.
#Update all Apple software (requires admin password at this point)
sudo softwareupdate -i -a
#Update all software installed via Homebrew (as a normal user)
brew update
echo "The script has now finished running."

This assumes you’re an admin user (and know your admin password), and that you already use Homebrew to manage command line packages. That’s certainly how my machines are set up, as I find it’s easier to have the same set of command line tools on all my machines regardless of OS. I also find this a quicker and more reliable way of updating multiple machines on patch release day, and it can also be run as a scheduled job through Apple Remote Desktop for the brave at heart.

This one needs saving as a file called updateall. You can then make it executable (sudo chmod -X updateall), copy it to /usr/local/bin, and then run it by typing updateall in a terminal window.

Upgrading the hard drive on a 2011 Mac Mini

I’m off work this week, and I thought it was about time I upgraded the hard drive in my Mac Mini to an SSD. I’ve had this machine for just under 4 years, and it’s been my main desktop computer throughout that time. As such it’s got a lot of data stored locally, and while it’s backed up in three different places it’s still a 4 year old hard drive that is getting a bit slow and clunky.

Replacing the hard drive in this model of Mac is tricky. It requires dismantling most of the computer, and also requires a couple of non-standard screwdrivers (T6 and T8 torx). Thankfully I found some great instructions, and didn’t run into any problems dismantling the computer, removing the drive, and putting in a new SSD.

The challenge with this upgrade was that I planned on migrating to a much smaller drive (500–>240) as as such I needed to organise my data in a different way. What I’d normally do with a drive replacement would be to back the whole drive up using Carbon Copy Cloner, replace the hard drive, and then restore the backup over the new hard drive. That’s served me well with many other upgrades, but it just wasn’t an option this time round.

Analysing what was on the hard drive, it soon became evident that there was a lot of music. Over 200Gb of music in fact (that probably doesn’t surprise anyone). There was also a lot of really old data that was backed up in lots of places, but which was from very old computers (over 10 years old at least). I decided to move the music to a dedicated partition on my external hard drive (500gb, to allow for expansion), and to accept that I probably didn’t need to waste hard drive space on 10 year old files that I had multiple other copies of.

That left about 90Gb of other files, or in other words less than 50% of the new drive. I was happy with that, and started the reinstallation process. I booted the Mac Mini from the clone I made earlier (thus testing that everything works fine, as well as giving me an environment to run the actually cloning task from). I formatted the SSD with Disk Utility, and created a custom Carbon Copy Cloner one-off task that excluded the whole of my music directory plus a few other things I didn’t want on the new drive. I chose the clone as the source, the new drive as the destination, and let CCC do the hard work.

30 minutes later it was done. I rebooted from the new drive and set about doing a couple of post-installation tasks. Firstly I enabled trim support on the new drive. Native support for this was rolled out in OS X 10.10.4, and it’s fairly simple to set up. I then rebooted to allow this to take effect.

I also needed to tell iTunes where it could find my music now. I opened iTunes with the ALT key pressed, and it asked me which iTunes library to use. I pointed it at the external drive, and it thought about it for a bit, and then opened with all my music exactly as it had been on the old drive. I then updated the CCC task I back up my music with to reflect these changes, re-enabled all my other backup tasks, and made sure Time Machine was happy with the new drive and that it could continue to do incremental backups. I ran each backup task manually and made sure data was being copied to the right places.

And that was all I needed to do. The computer feels significantly faster and more responsive, whilst still feeling very much like my computer. I also think that with maxed out memory and a decent sized SSD drive there probably isn’t anything else left to upgrade.

A few words about IT literacy

When I’m recruiting new IT staff one of the things I always look for is how computer literate they are. It’s a hard thing to work out, as it’s usually a mixture of what they know and what they have done in the past, but also how they think and how inspired they are by technology. I also try and think back 10 years, to when I was the person on the other side of the desk who was trying to blag that a whole load of dabbling with things at home was enough experience to allow me to support some fairly important systems in a large University.

I sometimes get asked what advice I’d give someone wanting to get into an entry level IT role when they don’t have any experience. I sometimes think that’s the wrong question, because everyone has IT experience, and also the opportunity to gain experience without leaving the comfort of their own bedroom. I thought it might be worth expanding on what I mean by that, and what sort of things would impress me if I saw them on an application form or heard them in an interview. I’d also say that this list is probably a good starting point for anyone who wants to learn more about IT in general.

Use more than one operating system (Windows, Mac OS X, Linux) and learn the skills common to all of them

There is a viewpoint that Microsoft have won the OS war, and that IT professionals should concentrate on familiarising themselves with Windows and MS Office because that is what everyone uses. I don’t share that viewpoint, but I do think that it’s important to use the software that other people are using, because if you want to be able to support that software then you need to know how it works. I think it’s essential to have an overview of all the main operating systems, and I’m particularly interested in people who run more than one, or who have changed their primary operating system and can articulate their reasons why. It suggests they have thought about what they want their computer to do, and that they have considered the financial, ethical and functional criteria that contribute to the decision as to what OS to use.

For instance, my current main OS is Mac OS X. I started to switch from Ubuntu at the end of 2010 in order to better understand an OS I was being asked to implement and be an advocate for in my workplace. The switch took a few months, but by mid 2011 all of my regularly used machines were Macs. I do however maintain machines running Ubuntu and Debian, and am now doing more Linux based work which may warrant a partial switch back at some point. I like using Macs because of the quality of the hardware and software, and that fact that everything generally just works. I dislike them because of the lack of freedom, and the number of decisions about how I use my computer that seem to have been taken away from me. I like using Linux because I can customise my computer to do exactly what I need it to do at no cost to myself or my employer, but I dislike the fact it requires a lot of maintenance, and also that I can’t use some software I require to do my job and therefore need to also maintain a Windows machine or a Mac anyway. I also still maintain that the 11″ Macbook Air is the best computer ever made, and until I find something better then I want to continue using one.

What I find about using multiple operating systems (and I’d include Windows in this) is that once you use more than one, you realise they all have things in common, and once you start to spot those patterns then it makes it easier to deal with unfamiliar operating systems. Windows 8 doesn’t faze me in the slightest because I remember the Mac OS9 –> OS X shift, and also the move from Gnome 2 to Gnome 3 (and Unity, and a load of other desktops). The key for me is getting to a point where the desktop doesn’t get in the way of being productive, and that comes through regular use.

As an aside, I’ve switched my main OS a few times, and also maintained two in parallel for quite a while. I was a (classic) Mac OS user until my Mac became too old, and then had a brief (maybe a year) period of using mainly Windows. I switched to Debian in late 2004, and then Ubuntu from 2005. I got another (refurbished) Mac in 2006 and maintained OS X and Ubuntu in parallel until 2009 where I found I was doing everything in Ubuntu and hardly ever turned my Mac on (to be fair, it was very old at this point). I then switched back to OS X in 2011 as detailed above.

What I’ve noticed is that people who have only ever used one OS are often scared of all the other ones, and the easiest way to get over that is to experiment with them. Linux is free, and will install on almost anything, and if you’re in the UK then you can pick up a decent refurbished Thinkpad from around £200 from http://www.refreshedbyus.com/, or a budget desktop without an OS from http://www.ebuyer.com/ for around the same price. Windows machines are also coming down in price every year, and it’s now affordable to maintain more than one machine in ways that it wasn’t 10 or even 5 years ago. And of course virtualisation is now easier than ever (but I’ll mention more about this later on).

Use more than one version of each operating system (or at least know how to use them)

Something else I’ve noticed (especially with people who grew up with Windows XP) is that it’s not just trying another OS that is scary, but moving to a new version of the same OS. It’s certainly worth being familiar with the last couple of versions of anything you’re using and supporting, and having an overview of what the upgrade path would be for someone using something obsolete and unsupported like Windows XP.

I also think that if you’re running (or experimenting with) Linux, then it’s worth trying out at least a couple of desktop environments to see what works for you (and for your computer). I’ve got machines running Gnome 3 (Debian), XFCE (Debian & Xubuntu) and Unity (Ubuntu). None of them are perfect, but all of them allow me to understand the similarities and differences of modern desktop operating systems.

If you use several different operating systems it becomes really easy to see how the user interfaces and features of one will influence another. And once you start to make those connections then it’s fairly straightforward to approach a new operating system or desktop environment and make it work well enough for you to help someone who is having difficulties with it.

Use at least two browsers

If you’re supporting software, then you’re likely supporting browser-based software, and knowing how that software behaves in all of the main web browsers is something you need to be up to speed with. I find the best way to do that is to use at least three browsers regularly, and for me that means Firefox and/or Chrome on my computers, and Safari for my iOS devices. I test everything on all three, and on other browsers as well (although if I’m asked to test things it’s usually because they have only been tested on Windows and someone wants the non-Windows perspective).

As with operating systems, if you use multiple browsers then you are unlikely to be surprised or significantly slowed down when a new browser grabs a decent slice of the market share like Chrome did a few years back. It also make it easier to switch your main browser if the one you’re using start to get slow and bloated, or no longer includes features that you really need.

Install a virtualisation tool and set up a new VM

I said I’d come back to this one, because I think it deserves a section to itself. Virtualisation software has been such a game-changer for me, because it has allowed me to continue using multiple operating systems without having to maintain a physical computer for each one. By using software such as https://www.virtualbox.org/ it’s possible to run multiple operating systems on the same machine, and also to set up virtual web servers to experiment with blogging software, wikis, and other CMS related things. I’m currently doing a lot of this sort of thing at work, and it’s great to be able to have virtual servers that are backed up and snapshotted so I can roll them back to the point just before I broke something. Once you’ve developed like this then you’ll never go back, and it will teach you all sorts of skills that are directly applicable to sysadmin work, as well as development and IT support.

Virtualisation is also great for those situations where you can do 90% of your work in one OS, but need to switch to another one for one or two specific tasks. The guest machine is only using resources when it’s on, and you may find that most of the time you don’t even need to boot it.

Know how to back up your data, and where all copies of your data are

I blog quite regularly about how I back up data, but it’s always worth writing about, as I find that things change as I stumble upon new products. My current plan is based on the 3/2/1 rule, with three copies of everything, on two types of media, with (at least) one remote copy. I use Time Machine, Crashplan and Carbon Copy Cloner to back up copies of my whole computer, and Dropbox, Google Drive and iCloud to ensure that files I use regularly are available on any computer I use.

How it generally works is that any machine that stays in one place (or mainly stays in one place like my heaviest laptop) backs up nightly (via Carbon Copy Cloner) to an external hard drive. I also have a portable hard drive that I back up to weekly with a bootable copy of the two machines where I regularly create data (as opposed to consume it). When I’m not backing up to it, this drive is kept in a different physical location to the machines it is backing up. Additionally, all my music is in iTunes Match, my photos are on two different NAS drives, all my portable computers back up to another machine via Crashplan and/or Time Machine, and everything text based I’m currently working on will exist in either Evernote, Dropbox or Google Drive, depending on what it is and who else needs to access it.

I’ve also started running some experiments with Bit Torrent Sync – maintaining a small directory of emergency music and freely available ebooks which I sync between all of my machines, and I also carry around an encrypted USB drive on my keyring which contains a lot of the same sort of stuff, as well as the installer for the latest version of Mac OS X, plus recent disk images of Ubuntu and Debian.

I test my backups monthly (sometimes more than monthly), including booting all the full disk clones to make sure they actually boot. I think this is important. I also try and replace my backup drives every couple of years to ensure that I’m not backing up to something that is likely to fail soon.

Know how to upgrade/replace key parts of your computer

This is something I think is so important, but it seems to be a dying art. Not that I’m surprised though, because Apple (and to a lesser extent other manufacturers) seem to be moving towards a world where individual parts of a computer are not upgradeable, and instead you just buy a new computer when it wears out or gets slow. So many older computers could benefit from a solid state hard drive (SSD) or some more memory, and both of these upgrades will make an old computer feel like a new one. There are plenty of people who will fit parts for you, but this will cost you, and often these are upgrades you can do yourself. Since I’ve been working with technology I’ve upgraded most of my machines (even my Macbook Air), but I do worry that the next computer I buy is likely to be less upgradable than the last.

I learned about computer hardware through buying an old machine from eBay and experimenting with it. I replaced the memory, and the power supply and the hard drive, and I’ve still got it sat in the shed 10 years later. There are still plenty of machines out there that you can replace pretty much everything in, and building a PC from scratch is still very much a rite of passage for anyone who is interested in hardware.

Know how to reinstall the OS on your computer

Long gone are the days where operating systems would not be upgraded for years. We’re now in a world where things change at least every 6-12 months, and it’s important that the operating system on your computer is up to date and receiving security updates regularly. Updating software is relatively straightforward on any computer, and we do seem to be moving towards the concept of an app store, where the OS is just another app to be upgraded when a new version comes out. Whatever you’re running, it’s a good idea to know how to upgrade the software on your computer, and also how to reinstall it from scratch. These are things that you can pay someone to do, but you never know where and when computer faults will happen, and the night before a deadline or while you’re overseas are not good times to learn about reinstalling operating systems.

Use more than one office suite, and learn the skills common to all of them

A big part of IT support is knowing about what the people you support are actually using. Arcane terminal commands and knowledge of compiling software will get you nowhere if you are supporting people who largely work with documents, spreadsheets and presentations. Particularly in a corporate or academic environment, knowing about a variety of office suites will serve you well, and it’s important to stay up to date so that you’re not surprised by changes to user interfaces. This is one area of IT that can be tricky to stay up to date with if you don’t use this software yourself, and as someone who writes in a text editor, and only really uses Word for specific work-based tasks, I’m probably not the best person to advise on it. Although the fact that I use Keynote for presentations and Excel for serious data manipulation does suggest I can at least use some of more than one office suite. I also like Libre Office a lot, and think it’s one of the most underrated pieces of software out there.

As with operating systems and browsers, there is so much feature-bleed with office software that once you have used a couple of different versions then you start to see how they all do roughly the same thing under the hood. This is also a class of software where manufacturers love to change the UI radically between versions, so be prepared to relearn menus over and over again. Of course, if you use keyboard shortcuts then there should be less learning to do.

Which brings me nicely on to keyboard shortcuts.

Learn keyboard shortcuts

On my main desktop computer I have a solar powered keyboard, which means that even in the cloudy climate of the UK I can pretty much guarantee that it will work. The same can’t be said of my wireless mouse, which is always running out of power and needing newly charged batteries. That doesn’t bother me as much as it might do though, as I’m fairly keyboard-shortcut-literate, and can do most of what I need to do without picking up the mouse. Not only can knowing these get you out of a fix if your mouse or trackpad stops working, but it’s a lot quicker to open or save a file using the keyboard when your hands are already touching the keyboard to type. It’s also a lot better on your wrists, and will make you look like you know what you are doing with your computer. It’s one thing I always look for when I’m trying to judge how computer-literate someone is, and it is usually a very good indicator.

A list of keyboard shortcuts for Mac OS X can be found at https://support.apple.com/en-gb/HT201236. Some of these will work on other operating systems, but I’m sure there are similar lists elsewhere (Ubuntu even has one on the screen the first time you launch the Unity desktop).

Host a website

In the days of Facebook, Twitter, Tumblr and a thousand other readily available web-based content sites, it’s rare to find someone to doesn’t have some sort of web presence. When I started out with computers it was harder to get content online, and I had to learn a fair bit of HTML just to have a simple home page, whereas now I can just create an account online in a few minutes. Despite the fact that it’s so easy, I still think it’s valuable to know how the nuts and bolts work, and how to set up your own website that you host and control yourself. My first site was hand crafted HTML, and my current website is a self-hosted WordPress blog (cloud hosted now, but originally hosted on a server under the desk in my office).

I think it’s still valuable to know how to configure a web server (I use LAMP – Linux, Apache, MySQL and PHP), and install a CMS like WordPress on it. Even if you don’t use it for your main blog it is something you might be asked to do one day, and it’s a skills set that I’ve found myself using over and over again (and is in fact something I’m working on professionally right now).

Learn a programming language (or two)

I’m not a programmer, but I do know a little bit of HTML, CSS and PHP. Programming languages are not required for IT support, but as programming is largely about problem solving then there are a lot of transferable skills. Programming is also useful for solving in-house problems that your support tools can’t do (like writing a password generator or something to convert proprietary mailbox formats to something more open – both requirements I’ve come across in my own team).

Learning some basic scripting is also a good idea, and a familiarity with shell scripting and Windows powershell scripts is never going to be wasted time and effort.

Know what you can do and what you can’t do

And finally, this. It’s all very well to look and sound impressive by stretching your IT skills and knowledge to the extreme, but it’s important to be honest with yourself about what you can and can’t do, and which of your theories are backed up by practical experience. Experiments are all very well in the comfort of your own home, but when you’re dealing with other people’s computers and data then ensure you know what you are doing and when to ask for help and guidance.

First thoughts on new Macs, iPads and iPhones

I’ve been meaning to jot down a few notes about the latest product range from Apple for a while now, but work and travel got in the way. I now find myself with a largely free weekend, and I’ve also had time to visit the local Apple store and see a few of them first hand.

I’ll start with the new Mac Mini. Largely because I’ve been a Mac Mini user since they came out, and I’m probably due a new one. I was initially excited by what I’d heard about the 2014 Mac Minis, but based on the current range I might have to forgo buying one for the time being. My usual computer buying habits are fairly well established, in that I’ll buy the bottom of the range model, and then max it out with 3rd party hardware (memory, hard drives) to get the configuration I want. This time the base model is very underpowered, and because the memory is now not user-upgradable, I would have to spend quite a lot to even get something on a par with what I have now. Sure, I could spend £1000 and get a very nice machine that would meet all my needs, but for the same price I could get a significantly more powerful laptop, which would have the added benefit of being portable. I also wish Apple had not scrapped the server edition of the Mac Mini, because computers with two hard drives can be useful sometimes.

Next up is the new 27” iMac with retina display. It looks gorgeous, and it’s not as expensive as I’d feared. I still can’t justify one, but I think they have made all the right decisions with this machine, and I like the fact that it is possible to add 3rd party memory to get a really powerful configuration without breaking the bank. I’d like to think I’ll own an iMac again one day, and if I did then this is the sort of thing I’d go for. I’d also love to see a computer lab kitted out with these.

Both of the above come with Yosemite of course, which I’ve been running for a few months now. It’s a solid upgrade which hasn’t caused me any issues, and which looks a lot more visually impressive to my eyes.

I’ll now move on to the new iOS devices. This is probably the first year I’d consider myself a power user of iOS, and for a lot of this year I’ve left my laptop at home on short trips and done everything on my iPad and iPhone. I’m due a new phone soon anyway, and am also vaguely looking at iPads with more storage than 16gb, so I was particularly interested to see what Apple could come up with.

I very much like the look of the iPad Air 2. It looks like it could handle everything I throw at my devices, and there seem to have been hardware improvements around the area of recording video and audio, which I have found myself doing a lot of over the last year. I’m less impressed with the new Mini, and would have liked to see a smaller version of the Air, rather than something which looks like last year’s model with Touch ID tacked on.

I’m also quite torn regarding the new iPhones. I like the new features, but both models look a lot bigger than my 4S (and in the case of the largest one, not much smaller than my iPad mini). I have quite small hands, and as a result I’ve always tended to go for smaller phones, and I strongly suspect I’ll see if I can get a 5S next and then see what the upgrade options look like in a couple of years. I’m in no way an early adopter with phones, so I’m not too worried that I don’t particularly like these models as I’m sure there will be plenty of different options in two years time.

I’m liking iOS8, and especially the fact that I can manage text messages through my laptop. I have two factor authentication set up for a lot of different services, and it’s useful to get those messages on the screen of the device I’m actually sitting at. Apart from that it’s a solid but unspectacular update.

So yes, all in all not too bad, and I would not turn down any of these if I was offered them for free or on an existing contract. But I don’t think I’ll be buying any of them just yet.

First thoughts on my new keyboard

I am testing out my new Logitech K760 keyboard. So far it types really well, and although it makes slightly more noise, I think I will be able to get used to that. What is great about it is that it is solar powered, and it can be paired with up to three devices, which pretty much deals with the issues I’ve had with my existing keyboard. I didn’t want to go back to a wired keyboard, but I seem to be having to recharge my batteries every week or so, and I’m fed up of having to keep switching to my really awful backup keyboard. I would also like to be able to use my keyboard with my iPad on occasion, and this one allows me to do just that. It’s also set out exact like an Apple wireless keyboard, so I don’t have to relearn any muscle memory – I can just start typing and everything just works.

So far so good, but I suppose I’ll not know for sure until I’ve typed something substantial with it. And also when I’ve used it during the winter, when there is less sun.

What’s your backup plan?

This week at work we have been working on a video to promote backing up data. The tagline is “what’s your backup plan?” – which has made me think about how I back up my data, and how well what I actually do measures up to what we recommend.

The basic message is that for a file to be backed up, it needs to exist in an identical version in more than one location (and ideally three locations, one of which is physically separate from the actual machine the data is created on). I do try and adhere to this, although I think I’m still a step away from being as safe as I’d like.

I have two basic backup strategies. One is to ensure that any file I edit exists in some sort of cloud storage system (usually Dropbox, iCloud or Evernote). The other is to ensure that any computer I create data on is backed up regularly using at least two different methods/products. The combination of these two systems, plus the fact I use quite a few computers, ensures I always have several copies of everything, and can access historical copies of my data and bootable clones of my whole computer in almost all scenarios.

Most of this is now automated, in that all my machines back up locally through Time Machine on an hourly basis, and once a day to a bootable clone created using Carbon Copy Cloner. This works fine providing my house doesn’t burn down. I also back up my main home and work computers once a week to a disk that I keep with my at all times, but this has to be done manually, which isn’t ideal.

My iOS devices back up to iCloud, but also back up to my computer every time they are plugged in (with the backups then being themselves backed up as part of my other backups). I don’t have any unique data on them (at least not for long), but I still think it’s worth being able to restore them quickly and to have a second (and sometimes third) copy of all my apps.

So that’s my backup plan. It’s not perfect, but it covers most of the bases.

Updates and upgrades

This weekend I have been making sure that all my devices are running the latest version of their OS, and also that they are fully backed up (and that the backups work).  This is something I try and put aside some time to do every month or so, and whilst it can be dull, it at least means that everything is working as efficiently as it can do when I am going through a period of being busy and productive.

I also updated this blog to the latest version of WordPress, which is so far looking good on my iPad (although I have not tried it on a computer yet).

I am hopeful that soon I will be able to write about the next version of Mac OS X. I am running it on about half my machines now, and am so far liking it a lot. It is not a revolutionary upgrade, but it also feels familiar enough to not slow me down.

Backing up Gmail with Gmvault

This weekend I have been experimenting with Gmvault (http://gmvault.org/) in order to back up my various Gmail and Google Apps accounts to my computer. I’m using Mac OS X, but almost all of this will work with Linux too.

Firstly I downloaded the software, extracted it, and ran the following command once to download all of the mail in each account:

./gmvault synch example1@gmail.com

I then wrote a script to automate the process:

#!/bin/bash
#change to the correct directory
cd /Applications/gmvault/bin/
#run a quick sync on all my gmail and google apps accounts
./gmvault sync -m -t quick example1@teknostatik.org
./gmvault sync -m -t quick example1@gmail.com
./gmvault sync -m -t quick example2@gmail.com
./gmvault sync -m -t quick example3@gmail.com

Once that was working, I automated it with cron to run a few times a day.

Restoring the email to another Gmail account is a slow process, and you should probably only do it a few times a month (and always overnight). Again I’ve scripted this bit, but have commented everything out unless I actually need it. Having done the initial upload, and because I now have two local copies of everything, I’ll probably only run this one monthly.

#back up all downloaded email to a dedicated gmail account in the cloud
#./gmvault restore backup_account@gmail.com
#or just for the last month
#./gmvault restore -t quick backup_account@gmail.com

Further reading: