The Rust Programming Language downloadable pdf

Everyone seems to be talking about Rust at the moment. It’s a new programming language which is “empowering everyone to build reliable and efficient software”.

There’s a great book you can read for free online but there didn’t seem to be a downloadable version for reading offline so I created a PDF using GitBook and the source repository.

Since it might be useful to someone else I’ve uploaded it here. This version was created from the repo on 4th April 2019. If I get round to it, I’ll write a script to keep it autoupdated in future.

Download the Rust manual in PDF here

The Rust Project is copyright 2010, The Rust Project Developers. Licensed under the Apache License, Version 2.0 or the MIT license at your option.

Header image credit : unsplash-logoJerry Charlton

Installing stock kernel on Kimsufi Centos 7

So, I’ve got a dedicated server with Kimsufi. It’s a great value for money, low end server but out of the box it comes with Kimsufi’s own kernel and I wanted the stock Centos 7 kernel.

All the instructions I found online didn’t seem to work with Centos 7 so here are the steps I took.

Warning : Fiddling with kernels is a damn good way of leaving yourself with an unbootable machine. If you’re not 100% confident in what you’re doing, don’t do it.

First, make sure you have the kernel RPM installed

yum install kernel

Now, check what version is installed. You’re looking for the files beginning vmlinuz and initram-fs with the highest version numbers

ls -la /boot

In my case this was

-rwxr-xr-x  1 root root  5157936 Oct 11 01:18 vmlinuz-3.10.0-327.36.2.el7.x86_64

-rw-------  1 root root 12103619 Oct 19 11:59 initramfs-3.10.0-327.36.2.el7.x86_64.img

Now, add the boot entry to your grub2 config

grubby --add-kernel=/boot/vmlinuz-3.10.0-327.36.2.el7.x86_64 --title="Centos Default" --args="ro net.ifnames=0 root=/dev/sda1" --initrd=/boot/initramfs-3.10.0-327.36.2.el7.x86_64.img --make-default

You’ll need to change the filenames as appropriate to the ones you found in the previous step

Check that you now have an entry labelled 0 which matches your new config

grubby --info=ALL

args="ro net.ifnames=0 "
title=Centos Default

args="ro net.ifnames=0"
title=GNU/Linux with OVH Kernel, OVH kernel 3.14.32-xxxx-grs-ipv6-64

non linux entry

Cross your fingers, pray to the deity of your choice and reboot


With a bit of luck your server will come back up in a minute or so and you can check the newly installed kernel is in use

uname -a

Linux 3.10.0-327.36.2.el7.x86_64 #1 SMP Mon Oct 10 23:08:37 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux

If it all goes pear-shaped and your server won’t boot, log in to your Kimsufi control panel, click Netboot and change it to boot from the network. This should enable your server to boot by using a kernel image stored on Kimsufi’s servers. You can then log in and back out your changes with

grubby --remove-kernel=/boot/vmlinuz-3.10.0-327.36.2.el7.x86_64

UPDATE (January 2017) : I found that my kimsufi box died a death after I’d used yum to update the kernel. The only way I could resuscitate it was to return to the stock Kimsufi kernel. I also found that ipv6 only worked properly using the Kimsufi kernel.

photo credit: Alen Djuderija Photography Nuts in Bokeh via photopin (license)

Cryptomator Portable USB Stick

Warning: This is an unsupported use of Cryptomator. Proceed at your own risk and keep backups of your critical data.

Update December 2018: The latest version (1.4) of Cryptomator uses a later version of Java which isn’t compatible with Portable Apps at the moment. The official advice is to keep using version 1.3 for portable deployment.

Cryptomator is a great utility for encrypting your files in a seamless, transparent and cross-platform manner. It’s particularly designed to provide client-side encryption for file storage and synchronisation services such as Dropbox. It essentially sits between the files you save and the synchronised folder, encrypting your data before it gets stored and pushed up to the cloud.

Although it’s usually used for Dropbox-type services it works just as well with local files or ones stored on a USB drive. The only downside is that it has to be installed locally and can’t just be run off the USB stick as it’s not currently available in a portable format.

Fortunately I’ve been able to cobble together a workaround which enables me to run Cryptomator off a USB stick on a Windows PC.

First, grab your memory stick and install Portable Apps on it. This a free open source platform for running applications from a USB stick, cloud drive or whatever.

Then run Portable Apps by double clicking on the Start.exe file on your memory stick. Now we need to install the Java runtime and launcher. The apps you want are jPortable (32 and 64 bit versions are available, it won’t hurt to install both) and jPortable Launcher.

Installing new apps from Portable Apps

Out of the box, Java has restrictions on its encryption which we need to remove in order for Cryptomator to work.

Download the Unlimited Encryption policies from here and unzip it. You need to copy the two JAR files to your memory stick in the PortableApps\Common Files\Java\lib\security and PortableApps\Common Files\Java64\lib\security folders. The files already exist in those folders so you’ll be replacing the existing ones.

Copy the JAR files to the memory stick
Copy the JAR files to the memory stick

Finally, download the JAR file version of Cryptomator and copy it to your memory stick.

Now you should be able to run jPortable Launcher from the Portable Apps menu, select your downloaded Cryptomator JAR and the program will launch.

I’ve done some basic testing of this approach and everything seems to work OK but I can’t guarantee that it won’t mangle your data. Keep backups!

Cheapest Amazon EC2 Spot Price Finder

Amazon EC2 provides a great way to rent processing power in the cloud and Spot Pricing gets you great pricing by bidding on spare capacity in the cloud. Quite often I find myself wanting to run some processing load but find it hard to immediately see which region is cheapest at that given time. So I knocked up a quick script to give me the info in a handy table.

You can see the current cheapest Amazon EC2 spot prices here saga : what’s going on with Apple’s app review process?

Apple’s app review process has been the bane of developers lives for almost eight years now. Stories abounded of apparently arbitrary rejections and interminable waits for the fruity deity to bestow its blessings. But one thing we could all agree on was that it did help to keep an immense amount of rubbish out of the App Store.

In recent months, though, something weird has been happening. The app review process went from a fairly consistent 4-6 days down to a previously unimaginable one day. As an app developer myself, this was hugely welcome but, as an iOS user, I have to worry that the quality of the process has taken a similar dive.
Continue reading saga : what’s going on with Apple’s app review process?

YOURLS reCaptcha plugin

YOURLS is a great little PHP script for running your own short URL service like or tinuyrl.

Unfortunately public YOURLS installations are a prime target for spammers looking for a way to cloak their spammy links and make them harder for other sites to recognise as spam. Out of the box (and by design) YOURLS doesn’t have any spam protection as the developers prefer to focus on the core functions and leave extra functions to the rather excellent plugin architecture.
Continue reading YOURLS reCaptcha plugin

Web, IT and Management Consultant