Upgrading to Fedora 20

Well, last night I spent a bit more time than I expected trying to upgrade to Fedora 20.   The standard recommended way is:

yum install fedup
fedup --network 20

I tried that and it seemed to be working OK.  My laptop spent a while downloading all updated packages and then told me that everything is prepared for the upgrade process – all I needed to do was a reboot.   And so I did.  When booting up, a new Grub menu item showed up – “System upgrade (fedup)“.  I chose that one and the system started booting.  After a few screens of messages, which flew by too fast (but I haven’t noticed anything wrong in there), the system rebooted again.  Now, the fedup menu item was gone from Grub and the system booted back into Fedora 19.

After searching around for a bit, I realized that there was a problem with fedup-0.7 and that I could either upgrade it from a testing repository to fedup-0.8, or I could go with the good old yum-based upgrade.  Since I always seem to have troubles with fedup, I decided to opt for the yum way.  Here is all I had to do:

# You can pick any other Fedora 20 mirror here
rpm -Uvh http://mirror.easyspeedy.com/fedora/releases/20/Fedora/i386/os/Packages/f/fedora-release-20-1.noarch.rpm
yum update --skip-broken

That meant that all the packages had to be downloaded again – there is probably a way to move them from the fedup folders to yum, but I didn’t care enough to find out.  But once the yum was finished and I rebooted – all was done.  The system is up and running and so far everything is good.

How many lines of code have survived to the current day from the original Linux kernel

Here is a excellent Quora question: how many lines of code, if any, from Linux 1.0 are still in the modern Linux kernel, and what is it?  And an evenly excellent answer:

According to git diff, 21228 of the 176250 lines from Linux 1.0 (1994-03-14) are still present in Linux 3.12 (2013-11-03):

$ empty_tree="$(git mktree < /dev/null)"
$ git diff --shortstat "$empty_tree" 1.0
561 files changed, 176250 insertions(+)
$ git diff --shortstat -M -l99999 1.0 v3.12
44905 files changed, 17702349 insertions(+), 155022 deletions(-)

Over half of these lines are blank or consist entirely of punctuation; only 10419 of them have at least one letter or number.

We can go back even farther to the very first public release, Linux 0.01 (1991-09-17). Of the 10239 lines in Linux 0.01, 954 survive in Linux 3.12, of which just 242 have at least one letter or number. 123 of them were structs and constants in include/a.out.h (now include/uapi/linux/a.out.h), and 26 of them were the S_* macros in include/sys/stat.h (now include/uapi/linux/stat.h). The rest were scattered through 24 other files with at most 9 lines each.

It might appear that not much.   But it is in fact impressive.  How much code have you written that survived for over 20 years in a project that has changed so much – from a hobby experiment to a dominant operating system across servers, mobiles, and embedded devices?

Monitor your WordPress site’s uptime with Jetpack Monitor

The latest version of Jetpack for WordPress plugin – which packs together several most used plugins and makes sure they all work nicely together – brings in a new one: Jetpack Monitor.  Here is a straight forward description from the plugin site:

Jetpack Monitor will keep tabs on your site, and alert you the moment that downtime is detected.

Once activated, one of our servers will start checking your site every five minutes.  If it looks like something’s gone awry, we’ll fire off an email notification to the WordPress.com account that Jetpack is connected under.

I think this is brilliant.  Every single WordPress site owner I know has at least once looked around for a simple monitoring service that would let him know when the site goes down.  There are a few of those around, but all of them are a bit of a hassle to setup – you’ll need to know the terminology and at least have an idea about systems monitoring.  With Jetpack Monitor all that is not needed anymore.  Simply click the ‘Activate‘ button in the Jetpack settings and you are all done.  Beautiful!