The Shoes of the Fisherman's Wife Are Some Jive-Ass Slippers

tpot (at) frungy . org

rss

2009
Months
JanFeb Mar
Apr May Jun
Jul Aug Sep
Oct Nov Dec

Tue, 12 Dec 2006

Dodgy WiFi access point

At San Francisco Airport:

# iwlist eth1 scan
eth1      Scan completed :
          Cell 01 - Address: 00:17:59:1B:5E:10
                    ESSID:"tmobile"
                    Mode:Master
                    Frequency:2.437 GHz (Channel 6)
                    Signal level:-46 dBm  Noise level:-85 dBm
                    Encryption key:off
          Cell 02 - Address: 02:16:6F:00:06:35
                    ESSID:"Free Public WiFi"
                    Mode:Ad-Hoc
                    Frequency:2.462 GHz (Channel 11)
                    Signal level:-52 dBm  Noise level:-84 dBm
                    Encryption key:off

Hmm - an ad-hoc access point advertising free access in the same area as a pay for use one. Somehow I don't think so. Unfortunately it disappeared before I could get an IP address and have a poke around.

posted at: 08:43 | path: /computers | permanent link to this entry

Wed, 06 Sep 2006

On Safari

I subscribed to O'Reilly's Safari online library today, or rather convinced work to pay for it (woot). I thought about subscribing when it was first released (in 2001, apparently), but baulked because it "only" contained the O'Reilly titles. Now there are stacks more books available, about 650 as of May 2006.

Tim O'Reilly makes some interesting comparison with physical book sales in a blog post on O'Reilly Radar. (Warning: link contains references to wanky long tail stuff). According to the Safari logs, the graph of page views vs book sales is a lot flatter and longer for Safari, and actually tips up at the end of the tail.

Australia, and especially Canberra, doesn't have very many good technical bookstores compared to a Borders or Barnes & Noble in a decent sized US city so local book browsing is limited to the current new releases of .NET, VB and Cisco training books. Oh yeah, Safari's also searchable. Neat.

posted at: 20:46 | path: /computers | permanent link to this entry

Fri, 13 Jan 2006

Planet Mirror Looking for Staff

The guys at Planet Mirror are looking for staff. From their ad:

Planet Mirror is one of the premier download resources in the world. Daily we exceed over 1 Million downloads to 500,000 people and push out over 2TB of traffic (yes, Terabytes). We have over 15 TB of RAID5 storage covering 1000+ archives and 5 million files.

Holy crap! 2TB of traffic per day! That is some serious bandwidth. I wonder what the statistics are for the average download size? The mean download is 50MB per person, but it's probably skewed bimodally by users downloading either many small files or a smaller number of ISO images.

posted at: 10:00 | path: /computers | permanent link to this entry

Mon, 17 Oct 2005

On the Origin of Yak Shaving

The Jargon File definition for yak shaving is pretty boring. Here's a better description of this common activity. From some MIT guy:

"I was working on my thesis and realized I needed a reference. I'd seen a post on comp.arch recently that cited a paper, so I fired up gnus. While I was searching the for the post, I came across another post whose MIME encoding screwed up my ancient version of gnus, so I stopped and downloaded the latest version of gnus.

"Unfortunately, the new version of gnus didn't work with emacs 18, so I downloaded and built emacs 20. Of course, then I had to install updated versions of a half-dozen other packages to keep other users from hurting me. When I finally tried to use the new gnus, it kept crapping out on my old configuration. And that's why I'm deep in the gnus info pages and my .emacs file -- and yet it's all part of working on my thesis."

Go shave a yak today!

posted at: 15:19 | path: /computers | permanent link to this entry

Wed, 12 Oct 2005

No Electricity

I was planning to work from home today but having not taken much notice of the recent letters from the electricity company was a bit surprised when everything powered down early this morning. I think I need a UPS for the wireless access point.

Actually a charged up car battery, a solar panel and a transformer to step down 12+V to something that my various devices would like could keep me going all day. Also, thank goodness for gas-powered stoves and matches. (-:

posted at: 09:39 | path: /computers | permanent link to this entry

Fri, 23 Sep 2005

Useful find scripts

Once upon a time I had a funky script that would run the find(1) command on all the C and C++ files in the current directory. It was called findch. Now you might think that this was a bit pointless, but it is actually a big timesaver, especially since searching all C files for a particular pattern is usually part of a larger task so a couple of seconds saved reduces the probability of your flow being interrupted. Here's the latest version of my findch script:

#!/bin/sh
[ -n "$1" ] && base="$1" && shift || base="."
find $base -name '*.[ch]' -or -name '*.cpp' -or -name '*.hpp' "$@"

Now that newer version control programs (for example Subversion and bzr) store file contents in their metadata directories, a naive find . -type f | xargs grep foo command will generate a large number of false matches against the metadata files. Here's a similar script that runs find but ignores all the VC metadata:

#!/bin/sh
[ -n "$1" ] && base="$1" && shift || base="."
find $base \( -name .svn -o -name CVS -name .bzr \) -prune -o -print "$@"

I can never remember the syntax for the -prune option.

posted at: 12:00 | path: /computers/programming | permanent link to this entry

Mon, 07 Mar 2005

More On Test Driven Development

Noel Llopis has some nice introductory blog articles on test driven development as it applies to writing computer games: part1 and part2. Bonus marks for also mentioning scons.

posted at: 12:27 | path: /computers/testing | permanent link to this entry

Tue, 22 Feb 2005

More Twisted Python

I still think Twisted Python is the bee's knees. Here's the skeleton of a WBEM server that listens for HTTP POST requests on port 5988 and SSL encrypted ones on port 5989.

#!/usr/bin/python

from twisted.web import server, resource
from twisted.internet import reactor, ssl

class Cimom(resource.Resource):
    isLeaf = 1

    def render_POST(self, request):
        print request.received_headers
        print request.content.readlines()
        return 'xml stuff'

site = server.Site(Cimom())

ssl_context = ssl.DefaultOpenSSLContextFactory(
    '/etc/opt/hp/sslshare/file.pem',
    '/etc/opt/hp/sslshare/cert.pem')

reactor.listenTCP(5988, site)
reactor.listenSSL(5989, site, ssl_context)
              
reactor.run()

Of course it's missing the actual implementation of the server, but now we have all the boring sockets crap out of the way in 20 lines of code. Unfortunately there is a bit of a learning curve in getting started with twisted. Taking a peek in the source to work out what is going on is the best way I have found to get some tricky stuff happening.

UPDATE: Removed logfile parameter to twisted.server.site.Site() as it defaults to no log file.

posted at: 16:02 | path: /computers/programming | permanent link to this entry

Fri, 19 Nov 2004

Unit Testing Patterns

Marc Clifton has a great article on Unit Test Patterns. It's Part V of a larger series on Advanced Unit Testing (Part I, Part II, Part III, Part IV) at The Code Project (advertised as "Your Visual Studio .NET Homepage" - bleargh). The articles are appropriate to pretty much any language or test framework though.

posted at: 16:44 | path: /computers/testing | permanent link to this entry

Sun, 31 Oct 2004

Interesting RAID setup

On the latest Ask Slashdot there is an article about Experiences w/ Software RAID 5 Under linux. (It's better than the usual Ask Slashdot posting whose answer can be found by using Google).

A poster comments:

FWIW, here's the system I've evolved for partitioning disks in such systems:
  • First partition: One cylinder (the innermost one): Ext FS containing a THIS_DISK file in which I record when and why I bought the drive and any interesting history it has had. In an emergency when you're suddenly shuffling eight hot drives plus a couple spares plus a dead and replacement motherboard &tc, you WILL lose track of which disk was doing what. This little partition will save you a lot of grief.

  • Second partition: Swap, in the outermost (lowest numbered) cylinders -- because these give the fastest transfer rates, up to about a 50% advantage. Putting swap on every disk lets the kernel stripe swaps across all available drives for additional parallellism and speed, and also ensures you've got adequate swap no matter how you configure in an emergency.

  • Third partition: RAID2, a complete bootable Linux system. With this mirrored on every drive in the system, you're guaranteed able to get up again fast no matter what goes wrong. Thus, FD partition type.

  • Fourth partition: RAID5, your serious filestore space, occupying the vast majority of the disk.

(He/she also mentions that the fourth partition can be RAID2 for workstation machines).

A system like this would make a nice NAS setup for a small business or small office server. The nicest property here is that every disk can contain the NAS software and thus have minimal downtime if the system disk dies.

This setup probably doesn't scale too well above a small handful of disks, kind of like the number of superblocks written by Linux 2.0 ext2fs. Having a complete copy of the system partition on every single disk may be overkill.

posted at: 14:51 | path: /computers | permanent link to this entry