How to improve programming productivity

Improving programming productivity is a big business, producing a neverending parade of methodologies and processes and research and whatnots.But over the past 40 odd years I think we've learned that there'sonly four real ways to do it:

  1. reduce connections
  2. write less code
  3. meetings kill kittens
  4. get better people

(to put them all in punchy short forms)

None of these should be new to people, since Fred Brooks covered themall 30 years ago in The Mythical Man-Month (with much better writing,


WSGI: the good and the bad

WSGI is the Python 'WebServer Gateway Interface', which is a standard interface between webservers and Python web applications. The idea is that you write yourapp as a WSGI app, then glue it to the web interfaces of your choice:CGI-BIN, SCGI , a standalone testing webserver, whatever. The WSGI stuff encourages a stacking model, wheremodular middleware can be transparently inserted above applications tohandle various more or less generic things.

(Ian Bicking gives examples of a bunch of WSGI middleware here


Impending changes to access to Solaris patches

Through the pca news page I found out someimpending changes to access to Solaris patches. There are two changes:

  • InfoDoc #83061 says that from mid-July, we'll need to register for a free SunOnline Account in order to get patches.
  • InfoDoc #82023 says that Sun will be turning off anonymous ftp access to patchesin late August.

I'm honestly not sure how these two interact, since it's hard toenforce having accounts with anonymous ftp


An odd choice of hostname

Today's winner of the amusing hostname prize is ' GE-queer-A.gay.it 'aka ' server1-gay-it.it.net ', which is what the IP address 151.1.32.3currently claims to be in SMTP (the first name) and its PTR records (thesecond name; there is no matching A record).

I do have to wonder what sort of naming scheme gaverise to this. (It has neighbors with different


Weekly spam summary on June 17th, 2006

This week, we:

  • got 12,612 messages from 249 different IP addresses.
  • handled 17,714 sessions from 803 different IP addresses.
  • received 245,591 connections from at least 48,624 different IPaddresses.
  • hit a highwater of 8 connections being checked at once.

Connection volume is up substantially from last week , although nothing else seems tobe up much (especially the highwater). The per day table:

DayConnections

Metrics considered dangerous

It's a general truism in software development that metrics are oftendangerous, because people will naturally work to what you pay attentionto (to summarize). If you pay attention to bugs closed, people closebugs; if you pay attention to lines of code written, people write code.The dangers inherent in this are hopefully obvious.

(In fact it happens outside of software development too; consider allof the schools that are busy 'teaching to the test', because variousstandardized tests have become so important


/etc/inittab versus /etc/rc.d

One aspect of yesterday's problem is a littleordering issue between /etc/inittab and stuff in /etc/rc.d . Namely:

Everything in /etc/rc.d runs before other things in /etc/inittab really takes effect.

(The paths here are for Red Hat; elsewhere, what Red Hat puts in /etc/rc.d is just put straight into /etc , so you have /etc/init.d and /etc/rc3.d and so on


Dispelling a nightmare (a sysadmin tale)

One quiet sysadmin nightmare is discovering that you don't know howto reproduce the running setup on a system that you've taken over.You know, things like: there's nothing that seems to start importantprograms; programs that the configuration seems to say should be runningaren't (or aren't running successfully); programs are running as UIDsthat aren't even in /etc/passwd .

I spent part of today mostly dispelling a nightmare like that, andtherein lies a tale


How to have your web spider irritate me intensely

It's very simple: put what should be in your User-Agent header intothe Referer header instead. The next time I read my Referer logs,you're sure to provoke me into spasms of teeth-grinding irritation.I can only conclude that people pulling this stunt are attemptingadvertising through other people's public Referer logs.

(For bonus points, fetch my syndication feeds without any attemptat conditional GET .)

Today's offender is the 'Strategic Board Bot', run by strategicboard.


How to supply an IP address in Red Hat's Kickstart

Ignoring DHCP, there are three ways to supply an IP address when you'reusing Kickstart to set up machines automatically:

  1. put a network line in your Kickstart file. You need to give all ofthe information (--hostname, --ip, --gateway, --netmask, --nameserver)and also use ' --bootproto static '.
  2. put the information on the kernel command line, with ip=, gateway=,netmask=, and dns=. Non-DHCP is assumed