Sun, 03 Aug 2008
GREENEWHEELS ELECTRIC BICYCLE
Posted at: 23:35 | category: /nerdy | # | 1 comments
Thu, 12 Jun 2008
MSY site scraper
Cute site that scrapes the content of the MSY web site.Posted at: 11:07 | category: /nerdy | # | 0 comments
Sun, 08 Jun 2008
WORLD COMMUNITY GRID.
A few months ago I got an inexpensive quad core cpu. I then overclocked it to 3GHz.. not long ago it was a daydream for people to have such CPU power readily available. I was thinking a pity this will just sit here running screensavers most of the time, cant I get it crunching away at some weighty problem like helping cure cancer or something: after a quick google I can:Posted at: 13:52 | category: /nerdy | # | 0 comments
Mon, 11 Feb 2008
Inside the Behringer MS20 Monitor Speaker.
link to a very nerdy audio article made with a digital camera and a screwdriverPosted at: 22:32 | category: /nerdy | # | 0 comments
Sun, 28 Oct 2007
Inside the Behringer UCA-202
Well as I have mentioned before this works great with Linux, but I got bored and opened it up and took a few pix, which I have put online on Minirig.org.au as part of adding additional nerdy audio content there.Posted at: 16:26 | category: /nerdy | # | 0 comments
Sat, 09 Jun 2007
this modern life
Posted at: 18:10 | category: /nerdy | # | 0 comments
Wed, 02 May 2007
http://www.google.com.au/search?q=09-f9-11-02-9d-74-e3-5b-d8-41-56-c5-63-56-88-c0
Geek meme of the moment:http://www.google.com.au/search?q=09-f9-11-02-9d-74-e3-5b-d8-41-56-c5-63-56-88-c0
This hex sequence sure seems popular all of a sudden.
Posted at: 22:48 | category: /nerdy | # | 0 comments
Thu, 29 Mar 2007
SORBS SUCKS
Fairly simple, but succinct. Overzealous listing, confusing procedures for getting delisted, generally a shambles.Google results for SORBS SUCKS
Posted at: 10:45 | category: /nerdy | # | 2 comments
Thu, 15 Feb 2007
WHY LINUX SUCKS
Well.. actually it doesn't suck at all, I have been a fanatical linux user since 1992 and endless is the hassles I have avoided with licensing, viruses trojans and security bugs by having a microsoft free home network, but sometimes the problem with infinite freedom is a million ways to do things.. leading to inconsistency and chaos. Sometimes this is great, but if you are trying to (for example) set up sound on Linux and find there are 2 seperate sound driver subsystems, Alsa and OSS, that are talked to by several sound subsystems (jackd, esd, artsd?) which of course may or may not be used by whichever application you are trying to make a noise with... leads to intense frustration for someting which really should have Just Worked ages ago.Anyway, some people I know, Linux fans all, have made a site called Why Linux Sucks to help express these frustrations.
Posted at: 22:36 | category: /nerdy | # | 0 comments
Sun, 24 Dec 2006
Hassles with DVI output on an nvidia fx5500 card at 1680x1050
Well I got myself the Proview 22 inch lcd monitor from MSY (I love their JUST THE FACTS basic web design style as well).Nice basic cheap and cheerful flatscreen monitor that looks nice on the desktop. It has a litle bit of "backlight bleeding" from the top and bottom, but only visible when the screen is nearly all black, none of it is visible during my normal usage patterns of it so I don't care. The model number is FP2226w.
Main problems aoccured trying to get the FX5500 to drive the monitor via DVI.. the nvidia drivers refused to go higher than 1440x900 when I can easily go to the max mode using the VGA mode, but it looked terrible. After some reading up and trial and error, the problem appears to be the line in the Xorg.0.log saying:
135.0 MHz maximum pixel clockWhich appears to be a driver enforced limit. Adding the option "NoMaxPClkCheck" to the driver section like:
Section "Device"
Identifier "nVidia Corporation NV34 [GeForce FX 5500]"
Driver "nvidia"
Option "ModeValidation" "NoMaxPClkCheck"
Option "NvAGP" "3"
EndSection
Stopped this arbitrary limit being enforced for enumerating video moded and now I have the monitor running perfectly at best resolution.
One problem with the Leadtek Winfast A340 PRO T card is that it has a really crap heat sink and no fan and was overheating when playing True Combat Elite or Enemy Territory.. another visit to MSY to get a $3 80mm case fan to bolt on to the heat sink and heat problems mostly resolved, I can play at 1024x768 or 1280x800 without any heating problems kicking in.. still hangs at 1440x900 for those games, but then again the game isn't playable on an FX5500 at that resolution anyway. Other OPenGL games play fine at full resolution so it must be the Quake3 derived games that really work the card hard or something.
Posted at: 15:11 | category: /nerdy | # | 6 comments
Thu, 07 Dec 2006
Outgoing Google PageRank
here is a natty little web toy from php drupal wizz dgtmlmoon:Posted at: 00:38 | category: /nerdy | # | 0 comments
Tue, 14 Nov 2006
Mitsubishi Diamond R100 with OpenWRT
Though I have not actively partaken in melb wireless I have remained on their mail list for the occasional interesting nerd discussion - from there I heard of a cheap deal wireless routers capable of running OpenWRT, so I snarfed one.Installing the Asus wl500g version of OpenWRT White Russian RC6 via tftp I was able to get this excellent little distro up an running quickly, even booting with root on a USB key.. running it in bridged client mode so I can plug PCs in down the other end of the house, but fun having a well put together old school minimal Linux distro to play with as well.
Lets see how long I last with swap running on a USB memory stick..
Here is the output of dmesg, for the curious:
CPU revision is: 00024000 Enabling BCM4710A0 cache workarounds. Primary instruction cache 8kB, physically tagged, 2-way, linesize 16 bytes. Primary data cache 4kB, 2-way, linesize 16 bytes. Linux version 2.4.30 (mbm@reboot) (gcc version 3.4.4 (OpenWrt-1.0)) #1 Mon Nov 6 17:35:21 PST 2006 Setting the PFC value as 0x15 Determined physical RAM map: memory: 01000000 @ 00000000 (usable) On node 0 totalpages: 4096 zone(0): 4096 pages. zone(1): 0 pages. zone(2): 0 pages. Kernel command line: root=/dev/mtdblock2 rootfstype=squashfs,jffs2 init=/etc/preinit noinitrd console=ttyS0,115200 CPU: BCM4710 rev 0 at 125 MHz Using 62.400 MHz high precision timer. !unable to setup serial console! Calibrating delay loop... 82.94 BogoMIPS Memory: 14212k/16384k available (1464k kernel code, 2172k reserved, 104k data, 84k init, 0k highmem) Dentry cache hash table entries: 2048 (order: 2, 16384 bytes) Inode cache hash table entries: 1024 (order: 1, 8192 bytes) Mount cache hash table entries: 512 (order: 0, 4096 bytes) Buffer cache hash table entries: 1024 (order: 0, 4096 bytes) Page-cache hash table entries: 4096 (order: 2, 16384 bytes) Checking for 'wait' instruction... unavailable. POSIX conformance testing by UNIFIX PCI: Fixing up bus 0 PCI: Fixing up bridge PCI: Setting latency timer of device 01:00.0 to 64 PCI: Fixing up bus 1 Linux NET4.0 for Linux 2.4 Based upon Swansea University Computer Society NET3.039 Initializing RT netlink socket Starting kswapd Registering mini_fo version $Id$ devfs: v1.12c (20020818) Richard Gooch (rgooch@atnf.csiro.au) devfs: boot_options: 0x1 JFFS2 version 2.1. (C) 2001 Red Hat, Inc., designed by Axis Communications AB. Squashfs 2.1-r2 (released 2004/12/15) (C) 2002-2004 Phillip Lougher pty: 256 Unix98 ptys configured Serial driver version 5.05c (2001-07-08) with MANY_PORTS SHARE_IRQ SERIAL_PCI enabled b44.c:v0.93 (Mar, 2004) PCI: Setting latency timer of device 00:02.0 to 64 eth0: Broadcom 47xx 10/100BaseT Ethernet 00:11:2f:e1:00:4a PCI: Setting latency timer of device 00:08.0 to 64 eth1: Broadcom 47xx 10/100BaseT Ethernet 00:11:2f:e1:00:4a Amd/Fujitsu Extended Query Table v1.1 at 0x0040 Physically mapped flash: Swapping erase regions for broken CFI table. number of CFI chips: 1 cfi_cmdset_0002: Disabling fast programming due to code brokenness. Flash device: 0x400000 at 0x1fc00000 bootloader size: 262144 Physically mapped flash: Filesystem type: squashfs, size=0xda5f3 Creating 5 MTD partitions on "Physically mapped flash": 0x00000000-0x00040000 : "cfe" 0x00040000-0x003f0000 : "linux" 0x000bf400-0x001a0000 : "rootfs" mtd: partition "rootfs" doesn't start on an erase block boundary -- force read-only 0x003f0000-0x00400000 : "nvram" 0x001a0000-0x003f0000 : "OpenWrt" Initializing Cryptographic API NET4: Linux TCP/IP 1.0 for NET4.0 IP Protocols: ICMP, UDP, TCP, IGMP IP: routing cache hash table of 512 buckets, 4Kbytes TCP: Hash tables configured (established 1024 bind 2048) ip_conntrack version 2.1 (5953 buckets, 5953 max) - 332 bytes per conntrack ip_tables: (C) 2000-2002 Netfilter core team NET4: Unix domain sockets 1.0/SMP for Linux NET4.0. NET4: Ethernet Bridge 008 for NET4.0 802.1Q VLAN Support v1.8 Ben GreearAll bugs added by David S. Miller VFS: Mounted root (squashfs filesystem) readonly. Mounted devfs on /dev Freeing unused kernel memory: 84k freed Warning: unable to open an initial console. Algorithmics/MIPS FPU Emulator v1.5 diag: Detected 'ASUS WL-500g' Probing device eth0: No Robo switch in managed mode found Probing device eth1: No Robo switch in managed mode found Probing device eth2: No such device Probing device eth3: No such device BFL_ENETADM not set in boardflags. Use force=1 to ignore. b44: eth0: Link is up at 100 Mbps, full duplex. b44: eth0: Flow control is off for TX and off for RX. mini_fo: using base directory: / mini_fo: using storage directory: /jffs usb.c: registered new driver usbdevfs usb.c: registered new driver hub PCI: Setting latency timer of device 00:04.0 to 64 usb-ohci.c: USB OHCI at membase 0xb8004000, IRQ 2 usb-ohci.c: usb-00:04.0, PCI device 14e4:4715 usb.c: new USB bus registered, assigned bus number 1 hub.c: USB hub found hub.c: 2 ports detected SCSI subsystem driver Revision: 1.00 Initializing USB Mass Storage driver... usb.c: registered new driver usb-storage USB Mass Storage support registered. hub.c: new USB device 00:04.0-1, assigned address 2 Journalled Block Device driver loaded scsi0 : SCSI emulation for USB Mass Storage devices Vendor: Model: USB DISK Pro Rev: 1.00 Type: Direct-Access ANSI SCSI revision: 02 Vendor: Model: USB DISK Pro Rev: 1.00 Type: Direct-Access ANSI SCSI revision: 02 Attached scsi removable disk sda at scsi0, channel 0, id 0, lun 0 Attached scsi removable disk sdb at scsi0, channel 0, id 0, lun 1 SCSI device sda: 971776 512-byte hdwr sectors (498 MB) sda: Write Protect is off Partition check: /dev/scsi/host0/bus0/target0/lun0: p1 SCSI device sdb: 2880 512-byte hdwr sectors (1 MB) sdb: Write Protect is off /dev/scsi/host0/bus0/target0/lun1: unknown partition table WARNING: USB Mass Storage data integrity not assured USB Mass Storage device found at 2 jffs2: attempt to mount non-MTD device 08:01 SQUASHFS error: Can't find a SQUASHFS superblock on sd(8,1) kjournald starting. Commit interval 5 seconds EXT3 FS 2.4-0.9.19, 19 August 2002 on sd(8,1), internal journal EXT3-fs: mounted filesystem with ordered data mode. jffs2.bbc: SIZE compression mode activated. PCI: Setting latency timer of device 01:02.0 to 64 PCI: Enabling device 01:02.0 (0004 -> 0006) eth2: Broadcom BCM4320 802.11 Wireless Controller 3.90.37.0 Probing device eth0: No Robo switch in managed mode found Probing device eth1: No Robo switch in managed mode found Probing device eth2: [switch-robo.c:90] SIOCGETCPHYRD failed! [switch-robo.c:90] SIOCGETCPHYRD failed! No Robo switch in managed mode found Probing device eth3: No such device BFL_ENETADM not set in boardflags. Use force=1 to ignore. device eth0 entered promiscuous mode b44: eth0: Link is up at 100 Mbps, full duplex. b44: eth0: Flow control is off for TX and off for RX. device eth2 entered promiscuous mode eth2: attempt to add interface with same source address. br0: port 2(eth2) entering listening state br0: port 1(eth0) entering listening state br0: port 2(eth2) entering learning state br0: port 1(eth0) entering learning state br0: port 2(eth2) entering forwarding state br0: topology change detected, propagating br0: port 1(eth0) entering forwarding state br0: topology change detected, propagating b44: eth1: Link is up at 100 Mbps, full duplex. b44: eth1: Flow control is off for TX and off for RX. Adding Swap: 32760k swap-space (priority -1) device prism0 left promiscuous mode
Posted at: 08:11 | category: /nerdy | # | 1 comments
Sun, 05 Nov 2006
googlestats plugin added
since I am nerding out a bit on the blog I also added the google stats plugin.Not sure if it will work, but we will see...
Posted at: 14:31 | category: /nerdy | # | 14 comments
blog comments turned back on
After upgrading to the backports.org newer version of pybloxsom, and installing the tweaked CAPTCHA plugin from Benjamin Mako Hill's pyblosxom plugin page Now to go through and eliminate all the spam comments that accumulated in the short time I did have captcha-less comments enabled.Posted at: 12:43 | category: /nerdy | # | 4 comments
Sat, 04 Nov 2006
nerd gear lust - nice monitors and power supplies
My good mate Rig picked these up for a friend, didn't really get to check them out but liked them muchly:- Proview 22 inch wide monitor (wierdly this monitor doesn't seem to exist on the Proview site)
Being shown evaluating the 3d real time performance using some kind of demanding simulation application. - Super Flower moduler cable power supply
All purchased fairly cheaply from MSY. I didn't get to fully evaluate these, just they looked nice on first impression.
Posted at: 13:10 | category: /nerdy | # | 0 comments
Mon, 23 Oct 2006
An example of xhtml web templates using python and meld3
In the past I have used spambaye's pymeldlite but recently have been trying out meld3 which has a slightly different approach, and hopefully better performance. Here is a quick chunk of example code showing it in action, the type of thing I wish could have disected when I was starting to figure out how it all fits together. I have converted a simple html example form to work as an xhtml template with a python cgi backend:- The original cgi-lib example form
- The xhtml template created from the original using HTML tidy and a bit of editing to add meld:id tags, etc.
- The form itself running as cgi
.. and of course the source code to the cgi
#!/usr/bin/python # # simple example of using meld3 and python cgi module to process a html form using an # xhtml template. # from meld3 import parse_xmlstring from meld3 import parse_htmlstring from StringIO import StringIO import sys, cgi, os colours = ["chartreuse", "azure", "puce", "cornflower", "olive draub", "gunmetal", "indigo2", "blanched almond", "flesh", "ochre", "opal", "amber"] debugenabled = False template = "template.xhtml" # log to a file so we can see whats going on without interfering with cgi output, if debugenabled turned on def debug(debugoutput): if debugenabled: f = open(DEBUGDIR+"/debug.out",'a') f.write(debugoutput) f.close() def process_form(root, form): # do a pile of stuff, to the encoded template, according to values from the form. # set the action to submit this cgi script root.findmeld('form1').attributes(action=os.environ.get('SCRIPT_NAME')) if form.has_key('name'): root.findmeld('name').content("name entered was "+form.getvalue('name')) root.findmeld('nameprompt').attributes(value=form.getvalue('name')) if form.has_key('quest'): root.findmeld('quest').content("name entered was "+form.getvalue('quest')) root.findmeld('questprompt').attributes(value=form.getvalue('quest')) if form.has_key('text'): root.findmeld('comment').content("name entered was "+form.getvalue('text')) root.findmeld('commentbox').content(form.getvalue('text')) if form.has_key('swallow'): root.findmeld('swallowtype').content("The swallow chosen was "+form.getvalue('swallow')) if form.getvalue('swallow') == 'african': root.findmeld('africanswallow').attributes(checked="") if form.getvalue('swallow') == 'continental': root.findmeld('continentalswallow').attributes(checked="") if form.has_key('color'): colourselected = form.getvalue('color') root.findmeld('colour').content(colourselected+" was the colour chosen") else: colourselected = '' iterator = root.findmeld('colouroption').repeat(colours) for element, item in iterator: element.attributes(value=item) element.content(item) if item == colourselected: element.attributes(selected="") return root try: xml = open(template).read() except: sys.stdout.write("Content-Type: text/html\n\n") sys.stdout.write("<html><b>Error reading temple file "+template+"</b></html>\n") sys.exit(0) try: root = parse_xmlstring(xml) except: t, v, tb = sys.exc_info() sys.stdout.write("Content-Type: text/html\n\n") sys.stdout.write("<html><b>XML Parse Error in template "+template+" :"+str(v)+" </b></html>") sys.exit(0) form = cgi.FieldStorage() root = process_form(root, form) sys.stdout.write("Content-Type: text/html\n\n") root.write_xhtml(sys.stdout) # print cgi.print_environ() # print cgi.print_form(form)
Posted at: 22:17 | category: /nerdy | # | 1 comments
Sun, 02 Jul 2006
goodbye gnome2, hello xfce4
After evaluating XFCE4 as a leightweight desktop environment for an old laptop with not a lot of RAM, I decided there isn't really anything on GNOME that it can't do as well that I use. So I installed xfce4 on every machine I use regularly. I was mainly using gnome on inertia as I am used to it, but still frustrated it by its fatness, wierd quicks and gradual loss of usefull features. I tried KDE and it was frustrating as well.As its gtk2 based XFCE lets me use all the gnome applications I like without all the hassles of actually running gnome.
Only minor problem I ran into was one of my machines had the font very swmall with no apparent way to change it, the secret turned out to be tweaking the XPI setting in the .Xresources file.
Posted at: 20:45 | category: /nerdy | # | 0 comments
Tue, 27 Jun 2006
kissrec.py: Keep It Simple Stupid audio recording for linux.
Well I decided to update the nrecord program from wavnorm to work with ALSA. I ran into a barrier with using the newt library with the Alsa C API, and as I am lazy, re-implented it all in python. This allowed me to let the excellent pyalsaaudio and progressbar python modules do all the heavy lifting, while the kissrec.py program really just ties them together to make a simple audio recorder.
Features
- Low CPU use
- Elapsed time counter
- VU meter
- Clip (max amplitude) indicator that can be reset.
Command line options
./kissrec.py --help
usage: kissrec.py [options] outputfile.wav
options:
--version show program's version number and exit
-h, --help show this help message and exit
-dDEVICE, --device=DEVICE
ALSA device to use, e.g. default for default device, or
hw:1 for second sound card
-v, --verbose
Download
The python code is here: kissrec.pyThe prerequisites are:
Why did I make it?
It is a trivial program, but on a low resource laptop all the more featureful Linux recording programs would produce glitchy recordings due to their overhead, while all the simple ones dont have the features to monitor what is going on adequately. This software allows simple recording to occur, but with monitoring of the input levels and if any clipping has occured.Wishlist
- Package it, and it's requisites, for Debian
- Option to hit a key and start a new .wav file seamlessly, for marking tracks in long jams or DJ mixes (i.e. hit a key and seamlessly close recording01.wav and start on recording02.wav).
- Select all the sound card parameters on the command line.. presently hardcoded for 16 bit, stereo 44.1Khz.
Posted at: 00:35 | category: /nerdy/kissrec | # | 0 comments
Sat, 13 May 2006
last.fm player for debian fixed.
Here is a tweaked .deb of the last.fm player with the annoying bug where it doesn't work with extra soundcards fixed.forum post that details the bug, and the fix
Posted at: 00:23 | category: /nerdy | # | 0 comments
Sun, 07 May 2006
free software plus lastfm equals goodness
Last.fm is great. My new USB soundcard is great. Whats not great is one didnt want to play on the other.Lucky due to the wonders of free software.. and me wanting to tinker with sound cards on a rainy Saturday night.. I was able to find and fix the problem and get them all playing nicely together.
Posted at: 00:00 | category: /nerdy | # | 0 comments
Mon, 01 May 2006
moving from TPG to Optus
the cheap cheap $50/month plan is gone, thanks to Tesltra being dodgy. As my land line is optus as well the Optus plan works out slightly better than the equivalent TPG plan. Been with TPG for years and they have been OK. Not fabulous, but at least dirt cheap, which is why I have accepted their terrible tech support with amusement.Posted at: 02:38 | category: /nerdy | # | 0 comments
Sun, 16 Apr 2006
vcf to ezmlm
Just a real simple script for subscribing "Electronic Business Card attachment" vcard (.vcf) files into an ezmlm mailing list. Might save someone a bit of scripting. Doesn't like email addresses that have bash shell special characters.. fixing that is a excercise for the reader. No error checking.
#!/usr/bin/python
#
# really really simple script for dumping stuff from a vcf file into an ezmlm mailing list
#
import fileinput, sys, os
# split lines have format ['EMAIL', 'type=INTERNET', 'type=WORK', 'type=pref:xxx@hotmail.com\n']
# where they have the info we want
# takes VCF file and dir where the mailing list lives as the args
vcffile = sys.argv[1]
listdir = sys.argv[2]
command = "/usr/bin/ezmlm-sub %s %s"
for line in fileinput.input(vcffile):
words = line.split(";")
if len(words) == 4 and words[0] == 'EMAIL':
email = words[3].replace('type=pref:','',1).strip('\n')
print "adding %s to list at %s " % (email,listdir)
os.system(command % (listdir, email))
Posted at: 20:31 | category: /nerdy | # | 0 comments
Sun, 26 Mar 2006
Open Source Linux Driver for Traverse Pulsar ADSL card
I have been a very satisfied user of Traverse Technology's Pulsar PCI ADSL card for quite some time now. very stable and reliable. The one thing is that getting the drivers up and running needs a bit of technical knowledge.Recently I have been using the OpenADSL drivers for this card, which are now absolutely rock solid, just follow the Debian howto in the docs and away you go, if you are using Debian Linux. Kudos to Guy and all the developers working on this project.
Just upgraded to the Linux 2.6.15 kernel in Debian/Testing, which needs the CVS version of the driver as it is compiled with gcc 4, but following the hints on the mailing list and I got it all running.
Posted at: 14:20 | category: /nerdy | # | 0 comments
Sun, 26 Feb 2006
Got a cheapo UPS
Got a cheap UPS from Dick Smith Electronics, after having some brownouts during yesterdays storms. Interestingly the UPS was priced at $128 in the store and $98 on the web site. They dropped the price to the web site price as soon as I mentioned this.Posted at: 22:44 | category: /nerdy | # | 0 comments
Fri, 30 Dec 2005
RPC in Python - a comparison of Pyro and xmlrpc
I have been dabbling in rpc on python, after removing a home brew rpc system using pickle and unix domain sockets and replacing it with something more network aware. xmlrpc is cool, but seemed to be a bit slow. Poking around I found Pyro, which looked good and also passed my test of a server taking just a few lines of code to create.So I made some test code using some ultra simplified versions of my rpc class methods that can work with either RPC scheme depending on the command line args. The results of timing the below code is that for this test, Pyro is 18 times faster. There are of course the various caveats about Pyro's security, and the standards compliance and interoperability of xmlrpc, so its also a case of different horses for different courses.
Also maybe handy as a simple example of xmlrpc and Pyro rpc under Python:
server code
import Pyro.core
import SimpleXMLRPCServer
import os, sys
class rpctest(Pyro.core.ObjBase):
def __init__(self):
Pyro.core.ObjBase.__init__(self)
# get a file.. simple version
def getfile(self,file):
filedata = open(file,"r").read()
return filedata
def listdir(self,dirname):
listdirresults = os.listdir(dirname)
return listdirresults
if sys.argv[1] == "xmlrpc":
server = SimpleXMLRPCServer.SimpleXMLRPCServer(("",
8000),logRequests=False)
server.register_instance(rpctest())
print "running in xmlrpc mode"
server.serve_forever()
else:
Pyro.core.initServer()
daemon=Pyro.core.Daemon()
uri=daemon.connect(rpctest(),"rpctest")
print "The daemon runs on port:",daemon.port
print "The object's uri is:",uri
daemon.requestLoop()
client benchmark code
import Pyro.core
import xmlrpclib, os, sys
if sys.argv[1] == "xmlrpc":
rpctest = xmlrpclib.Server("http://192.168.1.1:8000")
else:
rpctest =
Pyro.core.getProxyForURI("PYROLOC://192.168.1.1:7766/rpctest")
for i in range(1000):
print len(rpctest.getfile("/etc/passwd"))
print len(rpctest.getfile("/etc/group"))
print len(rpctest.listdir("/usr/bin"))
Posted at: 23:22 | category: /nerdy | # | 0 comments
Wed, 30 Nov 2005
Signed this blog up at technorati.com. Comment spammed heavily shortly after. Comments now disabled.
After playing with the cute How Much Is You Blog worth" toy - (mine is worth zilch, but JB's is worth a pile. I signed up to TECHNORATI.COM to see what (if anything) it does.. and shortly after got a torrent of blog comment spam. This is nothing against technorati per se, just spammers must be targetting sites linked from there, but I jave disabled blog comments until I suss out one of those blog spam "type the number in the picture" type spam preventers.Posted at: 11:11 | category: /nerdy | # | 0 comments
Sun, 07 Aug 2005
SPAMTICIPATION
A new tern coined by myself, to describe that strange period just after you install new antispam measures or otherwise alter your spamtraps, when you actually want to get some spam, to see if if is working or not..Posted at: 16:15 | category: /nerdy | # | 0 comments
Sat, 09 Jul 2005
pyblosxom comments added
Got bored and installed the pyblosxom comments plugin. Now to get it to work. Still pondering moving to the very impressive Wordpress, but I like the pythonicness and simplicity of pyblosxom as well.Posted at: 13:10 | category: /nerdy | # | 3 comments
Thu, 09 Jun 2005
greylisting could be THE solution to spam.
I have just added greylisting for postfix and for qmail recently and it does an excellent job.. this, combined with already deployed RBL blacklisting and spambayes seems to have nearly eliminated spam, a pity it takes three overlapping techniques to truly nail it. But people not as spam exposed as me would probably get on fine with just the RBLs and greylisting.Posted at: 23:31 | category: /nerdy | # | 0 comments
Sat, 15 Jan 2005
trivial but useful hack for redirecting rsync through a firewall
rsync is an excellent tool for replicating directory trees on a drive or across a network. You can specify the transport layer for network copies, it defaulting to use ssh. The below script just pipelines two sshs together cleanly to use as a the transport, to replicate a directory tree to/from a server inside a firewall:example command line from outside the firewall:
ENDHOST=192.168.1.20 rsync --delete -vzaP --rsh ./dssh.sh firewall.example.org:/backups/ /backup/fubar/In this case ENDHOST is set to the IP address of the endpoint host inside the firewall, while firewall.example.org is the hostname of the firewall we have ssh access to to get to the firewall.
dssh.sh consists of the following
#!/bin/bash # simple ssh wrapper so we can treat 2 sshs pipelining as one.. MIDHOST=$1 shift 1 exec ssh $MIDHOST ssh $ENDHOST $*Nice and simple, and saves a lot of messing about with port forwarding, escaping of command line args etc.
Posted at: 21:59 | category: /nerdy | # | 0 comments
Wed, 15 Dec 2004
free local internet access - if you can find it
If you are in my local neighborhoodand can find my access point I'll let you use some of my internet bandwidth - just be nice!No I'm not going to tell you where it is.
Posted at: 18:02 | category: /nerdy | # | 0 comments
