Today i scanned several of my university lecture notes into PDF format. The ScanSnap document scanner makes this a very fast and easy process, and it includes text recognition. This feels good: i can save physical space by throwing away my notes, but still have them usefully available to me, in searchable format! yay!
Now that i've scanned these, i want to be sure that i don't lose them. I've never been much of a person for backups, to be honest. My idea of a backup is something i do just before i upgrade Linux! But i've started to think i'd like to get into at least semi-regular backing up.
With that in mind, i came across this article: What's Your Backup Strategy? by Jeff Atwood. The proposed solution works on Linux! Funny, i always assumed rsync was a ruby library: turns out it's a straightforward command line tool.
sudo rsync -vaxE --delete --ignore-errors /home/aimee /media/FREECOM\ HDD/
That was enough to get me a first backup onto an external hard drive. Now it's just a case of running that periodically to keep it up to date.
I'm not particularly interested in having a cron job because my computer isn't always on, and the external drive isn't always plugged in. So i just made myself a simple executable file to sit on the desktop and remind me to click it and synchronise the backup every so often.
#!/bin/bash
source=/home/aimee
target=/media/FREECOM\ HDD/
echo Backing up $source to $target
read -p "Press enter to begin."
sudo rsync -vaxE --delete --ignore-errors "$source" "$target"
read -p "Press enter to close."
See, i said it was simple! But a simple solution is better than no backup solution at all, right? :) Now that i've started with something i can tweak it as i find necessary.
By the way, i love the quote of Jeff's in that article: The universe tends toward maximum irony. Don't push it.
Posted: July 11th, 2010
Categories:
admin,
computer,
linux,
useful
Comments:
View Comments.
I am quite sure that nobody cares about this except for me, unless they happen to have a similar scanner to mine. I've had to do this process about 5 times now on different installs. I can guarantee that it works for Fedora, Debian, Ubuntu and Mint. I thought i'd share it because i'll probably need it again and someone else might find it helpful.
First you need xsane to be able to scan things at all.
sudo apt-get install xsane
Plug in your scanner by USB. Attempt to scan by typing scanimage. It won't work, but you need to see the error message.
scanimage
[gt68xx] Couldn't open firmware file (`/usr/share/sane/gt68xx/PS1Dfw.usb'): No such file or directory
scanimage: open of device gt68xx:libusb:004:002 failed: Invalid argument
See that PS1Dfw.usb? You need to get that file from http://meier-geinitz.de/sane/gt68xx-backend/ but be aware that your computer might ask for a different file such as ps1fw.usb or ps1fw.usb. Whichever it is, find it on the page and click it to download.
Assuming it's gone into your Downloads folder, move it to the right place.
sudo mv ~/Downloads/PS1Dfw.usb /usr/share/sane/gt68xx
Now try the scanimage command again. With any luck your scanner will burst into life and a whole load of crazy gobbledegook will splurge into your terminal window. This is the picture your scanner is seeing, trying to be displayed as text! Don't be afraid to Ctrl-C to stop it once you see it working. Or you can just wait for it to finish.
You can also do this to ensure that your scanner is configured correctly:
scanimage -L
device `gt68xx:libusb:004:002' is a Mustek Bearpaw 1200 CU Plus flatbed scanner
Now to actually scan something! Open up The Gimp and click File -> Create -> XSane -> gt68xx:libusb:004:002
It comes up with this super ugly XSane interface, where you can make a preview, choose the scan area, fiddle with the colour settings and DPI settings, and scan an image.

When it's done, it'll come back to The Gimp ready for you to edit the scanned image.
Protip: If you lose one or more of the XSane windows, you can get them back again by going to the Window menu of XSane and ticking on the ones you need.
Posted: July 10th, 2010
Categories:
computer,
geeky,
linux,
unimportant,
useful
Comments:
View Comments.
Quite often i find myself wanting to resize a whole directory of images. Rather than opening them all in the gimp, i do it through the command line. I seem to do this often enough that it's worth recording here, for my own reference as well as for anybody else who would find it useful.
First of all, you need imagemagick.
sudo apt-get install imagemagick
Change directory to where the images are and create a subdirectory for the resized versions.
cd ~/Photos/2010/04/05
mkdir resized
My phone likes to put spaces in file names which really confuses things, so i convert them to underscores. You can skip this step if your filenames contain no spaces.
for image in *.jpg; do mv "$image" `echo $image | tr ' ' '_'`; done
Now for the clever bit: i run convert command on the image files, resizing them to 1024px and saving with a quality of 80%.
for image in *.jpg; do convert $image -resize 1024 -quality 80 resized/$image; done
Lovely wonderful linux! :D
One thing to note: it always resizes along the top edge, which may not be the longest edge. If you have a portrait file which is 1536×2048 it comes out at 1024×1365 (not 768×1024 as you might have expected).
The resize option can take a percentage, so if you know all your images are the same size then you could just send a 50% to reduce to half size.
for image in *.jpg; do convert $image -resize 50% -quality 80 resized/$image; done
Imagemagick is super-incredible-awesome so there probably is a way to deal with differently sized images at different orientations. If anybody knows, please add it in the comments! :)
Posted: April 5th, 2010
Categories:
computer,
geeky,
linux,
photos
Comments:
View Comments.
This last week i've been enjoying watching A Very Potter Musical on youtube. It's a most hilarious Harry Potter parody with fantastic acting and delightfully catchy songs!
The star of the show has to be Lauren Lopez who plays Draco Malfoy and spends most of the time rolling around seductively on the floor/bench/harry/hermione! Lauren's sense of comic timing is incredible, and the voice and facial expressions are just adorable!

Voldemort and Quirrel are beautifully played with some very touching moments together. Snape is hilarious, like all the characters, much exaggerated!
I think the best songs are near the end. "Not Alone" (Act 2 Scene 5) is a beautifully composed piece of music, and "Voldemort Is Goin' Down" (Act 2 Scene 8) is magnificently performed by the cast.
I've enjoyed it so much that i'm making myself a dvd to take to show friends and family. I love it that the whole thing is freely available. By the fans, for the fans, and yep, the fans are loving it!
I also love how linux gives me free tools to be able to create a dvd. This morning i did not know how to do it, but using todisc and tovid i've been able to combine all the scenes into a sequence, with a menu. I used mplayer to extract the audio of one song, and audacity to split out the song that i wanted to use as an introduction when the menu is shown. I used kino to look at the frames one by one and export a frame to use as the background for the menu. I used the gimp to darken the image and reduce the contrast.
The menu for my dvd is hopefully going to look something like this:

I'll update again if it works! Currently it is encoding each of the scenes into dvd format, which seems to take a very long time … and creates files 5 times bigger than the originals!
Update: it worked!! From youtube to my television!!



Thank you to StarKidPotter, youtube, keepvid.com and to free open source software and the ubuntu community! Now i can take A Very Potter Musical with me to show anyone who has a dvd player! :D
Posted: July 25th, 2009
Categories:
amusing,
harry potter,
linux,
open source
Comments:
View Comments.
Oh my word i am thrilled to hear news of Google's new operating system, coming next year!
I admit it: i'm a Google addict! I've previously said that Google products are like chocolate bars: i always have to try the new ones! I used to be cautious, not wanting Google to follow me all over the internet, so i always logged out quickly. But recently i've thrown caution to the wind! I have fully immersed myself into Google Mail, Chat, Calendar, Docs, Maps and Reader. We use Google apps at work for all our communication needs. I'm considering getting an Android phone and writing apps for it. I basically love Google!
Chrome OS will be a super-speedy operating system (based on the Linux kernel) that will do one thing and do it really well: the web! With a great lightweight browser, the push towards HTML 5, Google Wave, and Google Gears for offline access, everything is pointing to the gap between desktop applications and web apps narrowing, and web apps taking over.
Haha, i just realised, they're finally going to have to write Chrome (the browser) for Linux! Awesome! It's been 9 months i've been waiting for that!
Update – things have moved on since i last checked – you can now download a development version of Chrome as a deb file for Debian and Ubuntu. The install was quick and easy, and it seems to be working pretty well, apart from keyboard shortcuts.
This is a Google world we're living in, and i fully embrace it! :D
Posted: July 8th, 2009
Categories:
google,
linux,
web 2.x
Comments:
View Comments.
I recently installed Ubuntu Jaunty Jackalope and hadn't yet got around to putting Rails on to it.
Installing Ruby and Gems and Rails and getting them all to work nicely together can be a pain, so i'm happy to say i managed to go from nothing to Rails installed and working in 14 minutes this time! Thanks very much to Installing Ruby on Rails on Debian/Ubuntu for most of the tips. Here's how it panned out for me:
(more…)
Posted: June 12th, 2009
Categories:
geeky,
linux,
ruby on rails,
ubuntu
Comments:
View Comments.
A couple of times recently i've found myself doing <ESC>:wq in the internet instead of pressing the submit button. I don't use Vim very much at the moment – really only to make Git commits – but i've had enough of a taste that i feel it's something i want to learn properly.
For a few months i've been searching for a text editor that i can use both on the Mac at work, and Linux on my netbook and PC at home. TextMate is a wonderful thing, but there is no decent Linux equivalent. A colleague and i started writing OpenMate – an open source cross platform equivalent to TextMate … but it's hard! I enjoy gedit but failed to get gedit installed at work. I've tried NetBeans and jEdit but didn't like them much, and they feel too big and clunky for a netbook.
After a little bit of reading about Vim i have become very excited. More excited that i've ever felt about a text editor before! I've realised that my conception of Vim has been wrong. I used to press i straight away to get into Insert mode, and stay there until i wanted to perform a command, in which case i'd press <ESC> followed by the command. Now i realise that a better way to use it is to be in 'Normal' mode most of the time, press i to enter Insert mode very briefly, and press <ESC> as soon as i've finished inserting.
This afternoon i discovered vimtutor and have been really enjoying it! You can run it on any Unix/Linux based system; just type vimtutor at the command line. It takes you through every command, at your own pace. It gives you samples of text to correct, using the commands you have just learnt. It's actually quite fun and demonstrates the power of Vim very effectively!
At the moment i'm still muttering everything as i go, like "delete … 3 … words" as i very slowly type d3w and i'm exclaiming in delight at almost everything i learn – like – "Wow! That's so clever!" I'm sure soon enough i'll be able to use it effectively without making a lot of noise about it!
It is interesting learning it for Dvorak, but not too difficult. The up and down keys are in my left hand, and the left and right keys are in my right hand. They all actually fit rather neatly under my hands and feel intuitive even though they are not all in a line together. To be honest, i think i probably prefer it to the way it works under Qwerty.
Here is a helpful Vim cheatsheet laid out for Dvorak. Thanks, Mark Schoonover!
Here is an excellent article about the wonders of Vi/Vim.
It's ridiculous how exciting this feels to me! Perhaps it's the sense of moving up another level in the geek hierarchy! :D
Posted: January 29th, 2009
Categories:
dvorak,
geeky,
linux,
vim
Comments:
View Comments.
Most of my life is spent coding Ruby on Rails, but occasionally i venture into the world of PHP. When i do, i sometimes need to configure Apache because, unlike Rails, it does not happen automagically! To save myself always looking things up on the Internet, here is a little summary of the things i have learnt.
Don't do this!
When i very first started using Linux, i discovered that you could put files into /var/www and access them through http://localhost. This is a very bad idea because you don't have permissions to the /var directory (for good reason!) so i used to end up chmodding everything. Also, keeping anything outside your home directory is bad news because you're liable to forget to back it up before you do an upgrade! WHOOPS!
A perfectly good solution
The next thing i learnt was symlinking, or creating shortcuts. So you can set up a shortcut from the /var/www directory to an appropriate place in your home directory. For example:
sudo ln -s /home/aimee/websites /var/www/html
Now if i have a directory called mac2 under my websites directory i can go to http://localhost/html/mac2/index.php. Nice!
More advanced: VirtualHosts
Later on i started experimenting with Apache's RewriteRule and RewriteBase for nice 'pretty' URLs. You'll soon find out that the symlink method is no longer suitable because you're not using relative URLs anymore. It's time to learn about VirtualHosts, so that i can access my local files with a URL like http://mac2.aimee.
Apache2 keeps a list of available configurations under /etc/apache2/sites-available. I have one called aimee.conf because i am egotistical like that!
sudo vim /etc/apache2/sites-available/aimee.conf
It must start with this line:
NameVirtualHost 127.0.0.1
Then, for each site that i want, i add a VirtualHost like this:
<VirtualHost 127.0.0.1>
ServerName mac2.aimee
DocumentRoot /home/aimee/websites/mac2
CustomLog /var/log/apache2/mac2.log combined
DirectoryIndex index.php
</VirtualHost>
It really just needs to know where to find the source files. The log and directory index are not especially important. It's probably fairly obvious why i added them. There are plenty of other options you could use if you wanted to, but this is about all i use.
Next we need to enable the configuration. It's as simple as symlinking the file from the sites-available directory. You only need to do this once per .conf file (and i only use one for simplicity).
cd /etc/apache2/sites-enabled
sudo ln -s /etc/apache2/sites-available/aimee.conf .
The next step is to configure the hosts file such that when i type http://mac2.aimee into a browser it knows to look on my actual computer rather than on the Internet.
I enter a line like this:
Finally, restart Apache and all should be very well!
sudo /etc/init.d/apache2 restart
The best of both worlds
If you want it both ways (and hey, why shouldn't you?!) it is quite simple to set up another VirtualHost for localhost. Just add it in like this:
<VirtualHost 127.0.0.1>
ServerName localhost
DocumentRoot /home/aimee/websites
</VirtualHost>
Restart Apache again and now the same site is accessible at both http://mac2.aimee and http://localhost/mac2/index.php.
Happy day! :)
Disclaimers
This is how i made it work on Ubuntu Linux in a development environment. Other operating systems may behave differently. I have no idea about setting up production servers!
If Apache is in a different place on your computer, you can find it like this:
To find your hosts file:
I am not an Apache expert, so if you have any questions, chances are i can't answer them! Scroogle is your friend! :)
Posted: January 26th, 2009
Categories:
amusing,
computer,
geeky,
linux,
spirituality,
ubuntu
Comments:
View Comments.
Please don't all freak out on me … but … i am thinking of trying out the Windows 7 beta.
I think it's fair to say that Windows Vista did not quite meet all the expectations that Microsoft had for it in 2008. The user account protection was annoying, the visual effects to me smacked of "tried too hard" and i think a lot of Windows XP users felt it wasn't different enough to be worth an upgrade. People took their new Vista computers back to "upgrade" to XP, Dell are selling computers with Ubuntu, and the netbooks available in the high street have pushed Linux further into public awareness than ever before.
Vista was late, but i think they released it too soon. I think Microsoft's reputation took a knock, but they have a chance to repair it. Windows 7 is pretty much Vista done properly, and from everything that i've read so far, it looks as if they've actually done quite well this time. So i'm going to try and get hold of the beta and have a go at dual booting it. It certainly won't be my primary operating system of choice, but it could be useful for running SecondLife and/or OpenLife and i will admit i'm curious to see for myself what it's like.
Posted: January 1st, 2009
Categories:
computer,
linux,
windows
Comments:
View Comments.
When using a package manager it is helpful to know how to search for available packages. You can search for part of the package name, so that mysql- returns both mysql-server and mysql-client …
On Debian-based systems:
sudo apt-cache search mysql-
On Fedora-based systems:
On Mac with MacPorts:
Posted: November 28th, 2008
Categories:
geeky,
linux,
mac,
useful
Comments:
View Comments.