Front door to the old Fresno Bee building Uptake on the initial buyout packages appears to be pretty slim and almost certainly lower than the 13-25 number that I heard through the grapevine. Barring some kind of miracle, there will have to be more painful layoffs near the end of the month. This time no departments are safe. I’ve been picking up pretty strong signals that even my own web team is no longer invincible. In a meeting today, my suspicions were reinforced. We’re planning to lose at least one member of our six member team.

Three of us are effectively exempt from the buyouts which leaves the other three on the chopping block. So far everything has been handled professionally, but it is painful to watch. This is the closest I’ve ever been to this type of situation and I’m beginning to learn how real it is. Even though I’m probably safe, it’s still depressing to be in the middle of it. More practically, I know that losing a teammate will lead to lower productivity and probably lower product quality as well. I can’t say for sure that I would have declined a buyout opportunity had it been offered.

Continue reading »

At about this time semi-annually, I can no longer hold myself back from upgrading to the next version of Ubuntu; and usually I am quite sorry I did just because of the nature of alpha software. The transition from edgy to feisty, feisty to gutsy, and from gutsy to hardy was a little painful at the alpha stage because the new network-manager applet was in its early stages. Each of those upgrades caused problems with my internet activity which made it difficult to access the internet and hence report bugs.

This time around my wireless internet connections are stable and we’re still only in alpha 4, plus the automated bug reporting system is much better tuned. We’re starting to see a much more mature product emerge after all this time. Looking at the upcoming features, you’ll see things like “encrypted private directories”, “3g support”, and a new “guest account”.

At first I was a little disappointed to see these features because unlike previous versions, they seemed small in comparison. But now I feel that Ubuntu has climbed to a kind of development plateau where all the bare necessities of a truly excellent operating system are in place and working well. I’m truly proud to be a member of the Ubuntu community and I welcome the upcoming “small” features as a sign of our community’s excellence.

Continue reading »

Balancing a tall stack of floppy disks I recently got a new VPS from Their service is great because I can choose from a list of operating systems. I, of course, chose “Hardy Heron”, Ubuntu 8.04. This service is totally unmanaged other than DNS and billing so I have to manage everything myself, including backup.

I haven’t found anything out there that I’ve fallen in love with as far as backup is concerned, so I started with a shell script that covered the basics. I needed a rotating incremental backup script with full backups performed once a week. I wanted all the backups to live in a top level path like /backup and I wanted the whole backup process to be owned and operated by a backup user. My distribution came with a backup user, it just needed to be configured.

So I created a home directory for the user at /home/backup and set its ownership and also created a /backup folder and set its ownership.

sudo mkdir /home/backup
sudo chown backup:backup /home/backup
sudo mkdir /backup
sudo chown backup:backup /backup

The backup user will be using tar to backup my system, including files that even the backup user shouldn’t be able to directly modify. So I modified my sudoers file to allow the backup user to use tar without providing a password (so it can be done automatically).

Continue reading »

We’re getting ready to launch a new college football site for the upcoming Fresno State Bulldogs season. The site uses a table to display a player roster. Adding sortable columns to the table is a snap with jQuery. All you have to do is load the tablesorter plugin, and call it up when the page loads. This makes every table you have sortable:

$(document).ready( function() {

For most tables that’s all you need to make it work beautifully, but in my case the plugin was having trouble sorting my height column. It looks like it was sorting that column as text, but that doesn’t work because in the US we like to see our football player’s heights in feet and inches such as 5’ 11” for five feet and eleven inches. Thankfully the table sorter plugin allows you to define your own column types which it can automatically detect and sort for you.

$(document).ready( function() {
    id: 'height',
    is: function(s) {
      //$.tablesorter uses this function to determine if this colum is of this type
      return s.match(new RegExp(/^\d{1}\' \d{1,2}\"/));
    format: function(s) {
      //now we'll just return the number of inches and $.tablesorter will sort them as integers
      var matches = s.match(new RegExp(/^(\d{1})\' (\d{1,2})\"/), 'g');
      return parseInt(matches[1]) * 12 + parseInt(matches[2]);

Continue reading »

Front door to the old Fresno Bee building The Fresno Bee continues to do everything it can to stave off more inevitable layoffs. I don’t blame them, but I sure am getting tired of the bad news:

We are offering voluntary buyout packages under a Voluntary Separation Program to employees as another step to reduce expenses as we change our business practices to adapt to the economic challenges and transition to an integrated multi-media company.

I’m not going to post a lot of commentary on this, but if we are “changing our business practices”, then I might have to build some kind of high-precision tool to measure the imperceptible change.

Continue reading »