Installing Fedora 15 via boot.fedoraproject.org…

I recently decided it was time to upgrade my home desktop machine from Fedora 14 to Fedora 15. Since I generally tend to do a clean install rather than an in place upgrade and because I’ve recently acquired a much better internet connection, I decided to try out the Fedora boot server – boot.fedoraproject.org (BFO). BFO is a service that allows you to boot your computer directly into the Fedora installer over the internet. I think it uses gPXE/Etherboot under the hood, although I didn’t have to touch these directly. The following is a brief review of the service based on my experiences. Unfortunately, I didn’t have time to work out how to take screenshots from BFO so I don’t have any pretty pictures :-(.

I started out by visiting the BFO website and doing a bit of reading. The downloads page doesn’t really give you much info on how to proceed with BFO, so it’s best to check out the FAQ. BFO can be accessed in one of two different ways.  You can either download a boot image for some physical media (CD/DVD, USB and Floppy (!) images are available), or you can boot BFO directly from GRUB. The physical media images are of course pretty tiny since you’re not downloading the whole distro, just enough stuff to boot from the network. However, one of the attractions of BFO for me was to do away with physical media all together and so I went for the GRUB option.

In order to boot BFO via GRUB you obviously need to have GRUB installed as your bootloader. This shouldn’t be a problem if you are upgrading from an existing Linux install. To install BFO you run the following commands (as root) from the BFO FAQ:

wget -O/boot/bfo.lkrn http://serverbeach1.fedoraproject.org/pub/alt/bfo/bfo.lkrn
grubby --add-kernel=/boot/bfo.lkrn --title="Boot BFO"
reboot

This will add a new “Boot BFO” entry to your GRUB config and reboot your machine. Technically, you probably don’t want to reboot immediately since you should check that you have a decent length menu time out for GRUB (edit the ‘timeout’ line in /etc/grub.conf and run the ‘grub’ command afterwards).

Once I had completed these steps and rebooted, I was able to access the GRUB menu by pressing ESC. I then selected the new menu entry and proceeded to boot BFO. At first I got an error because my machine couldn’t get an IP address from the router. I had suspected this would happen since I don’t have the ethernet plugged in and these things usually don’t like wifi. I went searching for my long ethernet cable and everything worked on the second try. After a bit of loading (presumably downloading stuff) I was presented with another boot menu, which asked me what I wanted to boot. I selected the Fedora 15 x86_64 installer. BFO then started loading the kernel and initrd images for this (it took a while).

Once the installer booted up it was very much like the normal Fedora installer (in fact it is). I was able to go through all the usual stuff like partitioning, etc. Once nice feature of this installer is the package selection screen. This lets you install groups of packages (like ‘Games’ or ‘Software Development’) as well as individual packages. I can only think that this is a feature of the full Fedora DVD installer which is why I haven’t seen it before (I’ve only installed from Live CD previously). Happily, it enables you to get a much more functional system out of the box rather than the fairly bare Live CD install (for example it installed LibreOffice by default).

Once I’d finished making my package selections the installer started formatting the drives and installing packages. This was significantly slower than the Live CD install since it had to download and install each package separately (rather than the disk-dump approach taken by the Live CD installer). Once this was complete I rebooted and filled in my user details. I then had a fully functioning Fedora 15 install.

My Verdict:

My experience with BFO has been overwhelmingly positive. The install is significantly slower than a Live CD install, but when you factor in all the time that is saved by not downloading an burning (and reburning!) ISO images it’s probably about the same. Everything worked perfectly for me. except the previously mentioned wifi/ethernet issue which was more my fault than a BFO problem. The only improvement I could suggest is that the commands I mentioned above could be wrapped up into an RPM package and made available in the Fedora repository so they are available for everyone very easily. This would make the whole system very polished and easy to use.

Overall, I would highly recommend using BFO for your next Fedora install. It really beats any other install method I’ve used to date.

Review: Piwik Analytics Software

If you read my previous post regarding the site overhaul that I’m currently doing you will have seen me mention that I’m now using the Piwik Open Source Analytics Package in place of Google Analytics. Well I’ve had it running for a few days and have played around with it a bit, so I thought I’d review it. I’m going to start with my reasons for moving from GA and then move along and score it on several different criteria:

  • Installation and Setup
  • Site integration
  • User interface
  • Extensibility (API availability)
  • Overall impressions (documentation, community, etc.)

The philosophical argument

As well as the obvious benefit (from a Freedom perspective) of using one less proprietary web service, there is also another reason that I switched away from Google Analytics. Basically, this was privacy. For a while I’ve been using technologies to limit the amount of data which leaks from my browser as I navigate the web, in order to reduce the amount of profiling of my web activities. This isn’t because I have anything to hide. I just don’t like the idea of large companies building up a huge database on me, without my permission. The upshot of this is that I found myself in the slightly hypocritical situation of blocking GA in my own browser, but using it to track others on my site.

The solution was obvious, remove GA from my site. However, I didn’t want to lose the valuable information that it provides me with. Also, I don’t have a problem with site owners collecting data that can help them, just with them sharing it with 3rd parties such as Google, who then build it into their larger profiling efforts. A quick search turned up Piwik which aims to provide a full featured GA replacement that you can run on your own server. Because site owners run their own instances, they remain in charge of their tracking of users, retain ownership of the data and best of all don’t give any data to Google.

With the aim of responsible and unobtrusive tracking in mind I’ve added a page to my site to allow users to Opt-out of the Piwik tracking by means of a cookie. The link is also accessible from the sidebar under the copyright notice. I’m afraid some of the text on that page is pretty difficult to see with my current theme, but I’m working on this. For now just uncheck the check box to opt-out.

Right, on to the main event, the actual review…

1. Installation and Setup

There’s actually not much to say here, which is because installation was ridiculously easy! I just downloaded the zip to my sever (with wget) and unzipped it into my server root directory. This produced a directory called ‘piwik’ and a ‘How to Install Piwik.html’ file, which if you point your browser at it will redirect you to the installation instructions. The rest of the installation was fairly simple, following the instructions I pointed my browser at the ‘/piwik/’ directory of my site and was greeted by the installer. Following this was really easy, you’ll need to create a MySQL database when prompted for the database info, but that’s about as hard as it gets. Towards the end you’ll be prompted to setup your site with Piwik which involves entering a few details about the site, then you’ll be provided with a snippet of JavaScript to add to your site template. Which leads me neatly into the next section…

2. Site Integration

I didn’t copy and paste the JavaScript into my template, instead opting to install the WP-Piwik addon for WordPress. This made the set up easy and also gave me a widget on my WordPress admin dashboard which gives me a nice overview of my site visits. As I already said I was also able to add a widget to the site to enable visitors to opt-out of tracking. This was also simple, just involving a copy and paste of a couple of lines of HTML from one of the settings pages into a WordPress page. Easy!

You can also integrate Piwik widgets with your site, by following the instructions in the documentation, this is a neat feature, especially if you have a custom start page set in your web browser (something which I have yet to get around to making).

I also investigated the campaigns functionality in order to track entries to my site from the RSS feed. This is really simple to use, all you have to do is append the query string ‘?piwik_campaign=NAME’, where NAME is the name of your campaign to the end of a URL, to have it show up under that campaign. I found that I could integrate this with WordPress pretty well by adding the following snippet of code to the functions.php file of my theme:

function piwik_track_feed($url)
{
     $url .= "?piwik_campaign=RSS";
     return $url;
}

add_filter("the_permalink_rss", "piwik_track_feed");

If you now check the URLs in your RSS feeds, they will all have the query string added and clicks will be attributed to the ‘RSS’ campaign in Piwik.

3. User Interface

The Piwik user interface is really nice. I’ve included some screenshots below, so that you can make up your own mind. It’s pretty similar to the GA user interface, only cleaner and all the AJAX stuff makes it feel really responsive. I also love the real time tracking widget, which is something GA totally lacks. The only bad thing about the UI is the requirement of Flash for the graphs. I hate Flash and it doesn’t have a reliable 64-bit Linux version, which means I only have it installed on my netbook. Oh, and before you ask, I tried it with Gnash and it didn’t work!

4. Extensibility

By extensibility, I was primarily interested in API access. There’s certainly no shortage of this with two APIs listed on the documentation page. One API is for performing tracking, which I didn’t need given my usage of the WordPress plugin. I looked instead at the analytics API, which allows you to access all the data through simple HTTP requests. I was able to write a simple Python script to email me my main statistics once a day, in about an hour (including working out how the Python email and smtplib modules work!). Performing an Piwik API call in Python is as simple as:

def getVisits(idSite, period, date):
    url = "%s/index.php?module=API&method=VisitsSummary.get&idSite=%d&perio$
    return json.load(urllib2.urlopen(url))

Of course, as it’s Python its ridiculously simple!

Of course, if you find something that you can’t do with the API (which is unlikely, because it seems to cover everything), the you can access the data in the database – because it’s in YOUR database. You can also back-up and secure your data exactly how you want to. This is something that GA just can’t compete with!

5. Overall Impressions

My impressions of Piwik as a project have been really good. The documentation is excellent and there seems to be a good community behind it. As a product its a pleasure to use, really easy to install and just works. The reliance on flash for the graphs is a bit disappointing, but perhaps this will change in the future as HTML5 matures. Here are the obligatory scores:

  • Installation and Setup – 5/5
  • Site Integration – 4/5
  • User Interface – 3/5
  • Extensibility – 5/5

Overall Score: 4/5

Verdict: If your currently using Google Analytics, stop it! (and use this instead)