September 2006 Archives

Google Reader doesn't suck!

Google just launched a major revision of Google Reader. I guess they realized that it was just about the worst RSS feed reader ever made. It looks like they completely threw everything from before in the trash an rewrote it from scratch. Which was 100% for sure the right thing to do.

I used to use bloglines for reading feeds, but I got a little tired of some of the bugs. Then I switched to the desktop-based NetNewsWire, which is awesome. The key to that is that you can synchronize your feeds so that you can read stuff at home and at work. But synching is not as good as a web-hosted thing.

So I'm going to try Google Reader for a while. If it lets me speed through feeds at even half the speed of NNW, then I'll stick with it.

Yegge on Agile Programming and Working at Google

| 1 Comment

Steve Yegge has a great post about Agile Development and what a load of crap it is. It then kind of shifts into "what it is like to work at Google." It's kind of an odd segway, but that's what makes Yegge so much fun to read.

It almost makes me want to go an apply for a job there, but nothing is worth the commute to Cambridge. Nothing.

Update: thinking about it (the "Google Way" of motivating engineers), it seems to me that it is a perfectly plausible and interesting way of developing software. However, for anyone to actually replicate that process would be quite difficult. Essentially, you need to start off with a massive, nearly limitless cash flow to fund the 95% of projects with insane incentives that will fail. Then the 5% that succeed with 100 fold return on investment make up for it.

It sounds like they have created a startup incubator without all the hassle of pitching to VCs, and all the other headaches that come with starting a company, including the mundane stuff like finding office space, buying bandwidth and computers, getting data center facilities, etc.

The other part of it you need is the initial talent magnet. For Google, it is their smash-hit products (search, gmail, maps) and the reputation/fame of the founding engineering team. I'd say those are their only really big, industry dominating hits.

Only a few companies in the world even have the chance to pull off a process like this. Microsoft certainly could do it: they have the cash, and they have the talent, for now at least. The only thing working against them is that there are an awful lot of smart programmers who would never want to work on Windows, and you probably would need to do that if you worked for Microsoft.

It would an interesting private equity play. Suppose you were Blackstone, and had $4 billion (or $15 billion) lying around. Could you buy some successful startup, with a great team, and Google-ize it? Basically simulate the crazy cash flow that Google has to build up a meta-incubator tied by some common theme. The problem is that there would be a clock: unless you get a smash hit to replace the simulated cash cow in a few years, the money would run out and you'd have to shut it down.

Yahoo! could probably pull it off, if they wanted to. The big problem there is that there net income is only in the $100-200 million range, and their R&D expense is already around $200 million (quarterly). There's just not much room to say "free food for everybody." I think the main thing would be that the Hollywood types that run Yahoo! would need to start recognizing programming talent the way they recognize Hollywood talent. Seems unlikely.

Online community just jumped the shark.

Well, it's probably already been jumped several million times. But this one really got to me.

This is from a marketing survey I got, presumably because I bought a Honda water pump and registered the warranty online.

Screenshot 55

Sigh.

How to setup a local DNS server (idiot's version).

I like to maintain my own DNS on my home network. So I can give all the machines fixed IP addresses and nice names. It makes file sharing between machine easier, and, of course, lets me ssh around more easily.

The problem is that I'm too much of an idiot to figure out how to set up a bind/named config from scratch. I don't do it very often, and each time it seems like bind has radically changed the way it works. So I spend hours cobbling together a named.conf and zone files, and finally it works.

This time, I went looking for a GUI DNS config tool, just to get myself going. I want to get the thing started, then I could edit the config files myself to change and add A records and CNAMES. I ended up using gbindadmin. As a productivity/maintenance tool, it's terrible: you can't change A records or CNAMES once you put them in, for example. But it got my config going in just a few minutes, and that's what I was looking for.

Now that I have a new bind running on my ubuntu machine, I can decommission my ancient slackware server and use it for something else. Or at least wipe it out and bring it up with ubuntu or centos.

DIY SMART disk reporter.

Most (all?) SATA drives have self-diagnostics that report hardware problems. There are a number of freeware utilities available to monitor your disks for problems via this feature.

Here is a do-it-yourself SMART reporter. First create this script, and name it bin/macmaint or something.

#! /bin/sh
email=[email protected]
host=`hostname`

diskstatus=`/usr/sbin/diskutil info disk0 | grep SMART | awk '{print $3}'`

#debug
#echo $diskstatus

if test "$diskstatus" == "Verified"; then
    #echo "disk ok"
    /usr/bin/true
else
    #echo "disk very bad"
    /usr/sbin/diskutil info disk0 | mail -s "Disk problem on $host" $email
fi

Next, add it to your crontab, like this.

% crontab -e

05 * * * * bin/macmaint

This will run once/hour, and email if anything goes wrong.

Mac Pro unboxing


Mostly this is a test of blogging from flickr.

Note to self: KVM over remote IP

| 3 Comments

We have a Raritan IP KVM solution at work. It sort of works, but mostly it sucks. The remote client gets wedged up or disconnects a lot, usually when you are in the middle of a critical reboot or something. Plus it is super expensive (like $3000+).

What I want is a remote IP solution that connects into an existing simple KVM.

This Belkin unit looks pretty promising. The user manual claims to support Netscape and IE browsers, which means FireFox probably works too.

http://catalog.belkin.com/IWCatProductPage.process?Product_Id=278385

But everything like this is so expensive! This one is $700.

I need something for my wife's office, so I can remotely hard reboot their super-crappy phone system, which gets SQL errors after a while.

Are there any other cheaper solutions that work? A critical success factor is that the remote client works on all browsers and platforms, unlike Raritan.

RRDtool is way cool

A while back I mentioned that I was looking into RRDtool as an alternative to gnu plot.

Well, I did and it is very nice. It took about a full day of hacking to fully understand the concepts behind the tool and get it working the way I wanted. But still it is much easier to work with [than gnuplot --ed] when it comes to time-sampled data. I was able to churn out a nice monitor, and I even made a konfabulator/yahoo widget out of the
resulting jpg file:

Screenshot 53

Powerbook back to Tiger

Remember how I switched my old powerbook to Ubuntu?

Well, I switched back. The finer points (WPA support, good power management)
just made it not worth it.

I did a clean install of tiger, and turned off spotlight and dashboard. It's
reasonably usable now; I'm going to try hard to avoid installing
anything but the bare minimum on the machine.

So far: only Firefox, Developer Tools and Darwin Ports.

Parallels and Mac Pro

I tried out the update to Parallels for Mac yesterday. The good news is that it doesn't panic my Mac Pro instantly. The bad news is that it does panic it at least some of the time, and the worse news is that VT-x support is apparently disabled by the boot ROM on the Mac Pro. So everything I tried ran pretty slowly.

This is apparently a problem that afflicts certain Mac Intel Minis, and there are some instructions for adjusting the nvram to enable VT-x. But that's not something I can really fool around with; if my Mac Pro becomes unbootable, it would not be fun.

I think it's worth waiting a bit before Parallels is fully baked on Core 2 Xeons.

How to use VNC server on CentOS

| 1 Comment

Assume you have CentOS installed with Gnome. If you want to remotely access the GUI to that machine, you can use vnc-server and a vnc client (like Chicken of the VNC). Here's how:

ssh to the machine. If it is behind a firewall, you might have to set up a tunnel.
Make sure vnc-server is installed:

% sudo yum install vnc-server

Run vnc-server:

% vnc-server

This is just to initially create configs and choose a password. Now Edit the file ~/.vnc/xstartup so it runs a gnome session instead of crappy twm:

#!/bin/sh

# Uncomment the following two lines for normal desktop:
# unset SESSION_MANAGER
# exec /etc/X11/xinit/xinitrc

[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey
vncconfig -iconic &
xterm -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
exec gnome-session &

Kill off your vnc server and restart it:

% killall Xvnc
% vnc-server

Connect to your vnc server with host and display number reported with your favorite client. Yay.

Asterisk Open Source PBX

We bough an inexpensive cheapo PBX for work about two years ago. At the time, it seemed like a great idea. It was way less money than the equivalent Nortel or Lucent office phone system. The office extensions were IP phones, but they were H323 phones, and not SIP phones. It's been really terrible. The phones themselves have terrible build quality, bad buttons and usability, and very, very, very bad sound quality. It was about $12,000 for everything: server, phones and software.

Recently we spent a little money to try out Asterisk, the free, open-source PBX. It's software developed by a company that sells hardware for connecting to phones and phone lines, Digium.

It is really cool, and it works. I set up a CentOS Linux with one of the 24-port Digium boards. All extensions and dialing rules, and IVR trees are managed with .conf files. I used the O'Reilly Asterisk book as documentation, since the documentation that is available on the web is pretty bad and/or hard to find. It took about 6 hours to get everything set up the way I wanted it, including voice mail boxes for everybody, a dial by name directory and a connection to outbound VOIP (so we can use fewer analog lines from Verizon.)

We're at the point now where we are going to buy new SIP phones for everyone (we need about 24 of them in total). The total cash outlay on the product will then be about $5000, including the phones and the server and the digium hardware. We should be able sell our crummy old system for about $3000, if eBay prices for it hold up.

There are some commercial vendors that sell complete, turnkey Asterisk systems. Fonality seems to be the most popular. While I'm sure they are great quality, they aren't really as hackable, since the turnkey vendors can't support people mucking about in the configurations.

It's even tempting to replace my home phone system with an Asterisk one: about $250 for a 4-line board (2 incoming and 2 outgoing), and a couple of SIP phones I could really stop those telemarketers!