Recent blog entries for scrottie

22 Nov 2002 (updated 22 Nov 2002 at 11:26 UTC) »

ActiveWikiPages - combine server-side scripting with user-editable web pages. Sound explosive? is a site for friends and peers of mine. We're handing out CDRs of Open Office at trade shows with a business card pointing to this site. We're also looking at doing some mailings with said discs. While the bulk of my Wiki lovin' is at, the smaller site is a fun testbed. I've also made a simple trust-metric system, inspired by Advogato. For ActiveWikiPages, I'm using Perl's via use ops to restrict operations. Pages may use each other as modules, code may append to the current page as well as read other pages. This is an experiment in code scalability with tight constraints on lines-of-code, as well as user forums. The idea is that most extentions and features can exist in user-space. Writing programs with extreme size constraints simulates the environment design tradeoffs are made in when huge applications are written, but with less time and energy invested. Its a way to gain perspective on a problem. Underlieing assumptions are thrown to the wolves. Knee jerk defaults about what is user space, what the role of data is, how peices of code come to know about each other, and most of all, what underlieing ideas are so central to the idea that they hold everything together, are all reevaluated. Many dead ends can be explored, and unlikely solutions quickly found. Cutting to the heart of the matter is required for reevaluating underlieing assumptions, and having everything hidden under the hood robs you of this ability. In short, there is a place in the world for small Perl scripts. Code at

mtearle - I'd email you if I could, but you didn't post your email address -:^)
Thanks for the comments. Re grammar, I'm interested in one thing at this point: which parts are so painful to read that even skipping them is out of the question. I'm talking about truely obnoxious text, not just intro which you're too advanced for. Word: this is in reguards to Perl Design Patterns, which I'm now half-seriously calling a failure.

Spam. I use a black list and a personal kill list. My home on the net,, is sh*tlisted with the very services that I use to avoid spam myself. My sendmail hasn't been an open relay in years, since the time before time when spam didn't exist and sendmail just came open. No, the reason I'm sh*tlisted is because another user "on the same subnet" is a spammer. Living in a non linear world, if X cures Y, it doesn't always follow that more X will cure Y. For instance, its possible to overdose on pain killer and get a nasty headache. By fighting spam too aggressively, you're risking tickling the non-linear nature of the system. Technology, scanning, reporting, honey pots, and good public relations are all important. Punishing innocents and bad PR should be avoided. Sh*tlisting an entire subnet because of one spammer is like throwing out the baby with the bath water. You've shut up one spammer, but you've got 253 people who are confused and upset as to why they can't mail their friends, and they don't blame the spammers, they blame the anti-spam witch hunt. A friend of mine implemented an interesting little hack: if you aren't on his buddy list and you email him, you get your message back with a trivia question. Answer the trivia question, and your on the buddy list, and your reply goes through. I'm thinking about doing real-time testing for open relays as part of my local mail scripting. A few hours hack, if I can scrape it up. Honeypots that trap known spammers and open relays have proven very effective. With all of these solutions, damning entire subdomains to hell seems unneeded, too aggressive, and counter effective.

31 Jul 2002 (updated 22 Nov 2002 at 11:32 UTC) »

A lot has changed.

  • First, thanks to Gary Benson for recovering my long lost authorization cookie. I thought I lost my password, but I'm informed I don't have one.
  • I've been unemployed for a year, not counting temp jobs, and other similar assignments. After reading the Netslaves book in the library, I've become a fairly regular reader of Netslaves site. Estimates of programmer unemployement are at 8%. This is based on reported accounting information from companies large enough to report. I'd love to conduct a phone survey. The number seems to be closer to 40%, judging from the local users groups I'm involved in.
  • My resume has become a sort of joke. I've logged an obnoxious number of hours working on it, just twiddling this here and that there. Its interactive. Kind of. It has provided for some interesting numbers and observations, as I'm mining my access log for data. Script attached.
  • I'm a horrible person for neglecting NetBSD. I hate myself.
  • I'm trying to keep up with Parrot development, and I even had a patch accepted! I write so much code, and it is so seldom used, this sort of thing is a real pleasure. Parrot is the Perl-6 virtual machine. I have some opinions about the design, but all in all, its pretty nifty.
  • I've been active at the local Perl Mongers organisation: Phoenix Perl Mongers. I've had a lot of fun putting together presentations and speaking in front of a room full of people. I was really really horrible at it when I started, but I've gotten marginally better! Ambition: speak on Perl Design Patterns again, and post an MPEG for download. For now, the slides are up.
  • PerlDesignPatterns at 63 pages.
  • My home page. I don't know what to say. Its an example of second-version-syndrome. It takes forever to generate. Creating it involves proxying a dozen pages. I'm always adding more. Truely frightening.
  • Probably going to DEFCON! Funding it will be a challenge, but the intersection between humanity and machine is riviting to me.
  • Transient: After Microsoft's "data cubes" kicked around in my head for over a year (as witnessed by self at Comdex 1999 Vegas), I can no longer stand it, and have begun summoning of a "data tesseract" from the nether regions. This is not entirely true; summoning began some time ago, though the beast in question was largely elusive. I've a model for tightly coupling SQL, Perl, HTML (which may be optionally repopulated HTML forms, repopulated from the database or cached state) and a per user session. Mapping XML DTDs to fully normalized SQL relational database designs will be the last bit of work I do on this before I release it to the world at large. It is being released with the permission of my now former employer, Contact Designs. All of this will be called "Transient", except "Contact Designs" which will continue to be called "Contact Designs".
    If anyone else thinks of their code in terms of creatures best described as "monsters", surely they will understand why I so seldom polish my code. Monsters resist attempts to trim their nails, comb their hair, and especially, to polish them.
    NetBSD: Getting the benchmarks to build has proven tedious, and has delayed me from writting the Perl wrappers that post the data to the server. Note to self: start a project on the NetBSD projects server for this effort.

    28 Mar 2001 (updated 28 Mar 2001 at 21:33 UTC) »

    NetBSD website: In progress: client software (pkgsrc package) that tracks changes in benchmark performance (using commonly available OS,VM,FS benchmarks) in a machine as the OS is upgraded. Data is collected and posted to the website, where reports are generated. Reports are of interest to kernel developers. Idea put forth by Tim Rightnour.

    Footnote: My home page is now proxy-ing (and adjusting the links) of this page. If this poses a load problem, please contact me, and I will be happy to establish some caching. Right now I'm assuming that that is interested in any exposure/hits. (The "proxy" is just a lynx --source | sed, footnote to a footnote).

    Volunteers Needed is a search of NetBSD's projects server. If you have spare time on your hands and know either a natural language or computer language, give it a click.

    Projects: Learning Perl::Flas h for work, as well as XML.
    Distributed kernel benchmark database/web application/client software for NetBSD's website.
    WeeHours (as always).

    New Advogato Features

    New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

    Keep up with the latest Advogato features by reading the Advogato status blog.

    If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!