Use of Piwik Analytics

I run Piwik on OpenShift to collect stats on visits to this blog.  I’m not really interested in knowing who visits my site.  I’m only interested in knowing what people are visiting for, and how: which pages are more viewed? where are people landing to my site from?  how long after publishing some post do people still visit it?  And so on.

One of the ways this is also helpful is to track 404 (page not found) errors that pop up for visitors.  After migrating my previous posts from blogger, I kept monitoring for any posts that may have been missed by the automatic migration process, and manually moved them. Continue reading

Backing Up Data on Android Phones

Experimenting with the new cyanogenmod builds for Android 4.3 (cm-10.2) resulted in a disaster: my phone was setup for encryption, and the updater messed up the usb storage such that the phone wouldn’t recognise the in-built sdcard on the Nexus S anymore.  I tried several things: factory reset, formatting via the clockworkmod recovery, etc., to no avail.  The recovery wouldn’t recognize the /sdcard partition, too. Continue reading

Session notes from the Virtualization microconf at the 2012 LPC

The Linux Plumbers Conf wiki seems to have made the discussion notes for the 2012 conf read-only as well as visible only to people who have logged in.  I suspect this is due to the spam problem, but I’ll put those notes here so that they’re available without needing a login.  The source is here.

These are the notes I took during the virtualization microconference at the 2012 Linux Plumbers Conference.

Continue reading

About Random Numbers and Virtual Machines

Several applications need random numbers for correct and secure operation.  When ssh-server gets installed on a system, public and private key paris are generated.  Random numbers are needed for this operation.  Same with creating a GPG key pair.  Initial TCP sequence numbers are randomized.  Process PIDs are randomized.  Without such randomization, we’d get a predictable set of TCP sequence numbers or PIDs, making it easy for attackers to break into servers or desktops.

 

On a system without any special hardware, Linux seeds its entropy pool from sources like keyboard and mouse input, disk IO, network IO, and any other sources whose kernel modules indicate they are capable of adding to the kernel’s entropy pool (i.e .the interrupts they receive are from sufficiently non-deterministic sources).  For servers, keyboard and mouse inputs are rare (most don’t even have a keyboard / mouse connected).  This makes getting true random numbers difficult: applications requesting random numbers from /dev/random have to wait for indefinite periods to get the randomness they desire (like creating ssh keys, typically during firstboot.).

 

Continue reading

Amit Shah's blog