Now, I know that jcwren has an excellent bot that does this and much more. After making this reply, i decided to mess with Net::IRC. Why not make a quick XP checker? So, here is the result of my few hours of messing around. It's fun for about 5 minutes, then it starts to be annnoying. :)

You can kick it, but it will just rejoin - unless you use the trigger text. Of course, someone can just invite it back. So, if need be, just ban it. :)

It accepts the command "get_xp username" (leaving out the username will use your nick instead) via the channel and /msg.

A little while back in the CB, someone (forgive me, I have forgotten who), mentioned it would be interesting to see the age distribution of those monks who have reported their ages for the PerlMonks Stats Pages. So I decided to take a stab at generating such stats.

The script currently pulls up the upcoming birthdays page and scrapes the age information out, then outputs the requested file format (HTML or PNG). A future version might pull XML data from the server instead when it is available.

This script will upload a file and replace your scratch pad
with the contents of that file. Options are included to
append and prepend instead of clobbering, and to download
your existing scratch pad for backup purposes. See POD for
more details.

Three Scripts for the Acolytes under the sky,
seven for the Friar-lords in their halls of stone,
nine for Mortal Bishops doomed to die,
one for the Dark Saint on his dark throne
in the Land of Monkwhore where the Black Stats lie.
One Mod to rule them all,
one Mod to find them,
one Mod to bring them all
and in the darkness bind them
in the Land of Monkwhore where the Black Stats lie.

I started playing with the scripts when I noticed that in the early versions jcwren had experienced problems using my HTML::TableExtract module. The later versions of each script instead use the XML ticker and XML::Twig module, an understandable choice given the circumstances. Nevertheless I started investigating what the original problems were with HTML::TableExtract. As it turns out, these problems have since gone away: perlmonks has a different query interface and results format for writeups via HTML, plus there are later versions of HTML::TableExtract that greatly assist in extracting HTML from the tables in question (as opposed to the traditional role of extracting tables from the HTML in question). These developments negate the need for hoop gymnastics and inheritance hell that jcwren had been forced into.

The XML interface is far quicker, but apparently not all people wish to install the associated XML modules and libraries.

This module incorporates both query methods, XML as well as HTML. The default is XML, but this behavior can be changed via the mode parameter.

If you have XML parsing problems with non UTF-8 encodings in your titles, then simply set the mode to HTML.

Behind a proxy server? Set your http_proxy environment variable to the URL of your proxy server.

See the POD for more information. Thanks to jcwren and larryl for the original code.

Tired of copy/paste, save and then execute obfuscations, poetry or other code from interesting nodes? This small command line utility will do it for you. By default it takes the code from a node and simply evals it, but it can also download a copy with or without executing it. It uses LWP::Simple for the fetching. Use the option '-h' and read the embedded comments for more info.

Please read the warnings about possible dangers. Do not simply execute any code/node you have reason to distrust, but that of course goes for manual downloads as well. This does work well for just downloading too though, if you just want to poke around in a script. :)

Update: The provided patch by Amoe has been applied. My way worked for me on Win2k, cygwin and FreeBSD, so I lazied out on this one. :) Thanks Amoe!

Update 2:Suggestion 2 by belg4mit should be working now: Using the -d option for deparsing instead of executing should now work. Note that in-memory-deparsing uses a new feauture (v5.6.1?) in B::Deparse that won't work with older perls. Use together with -M or -F instead.

This script checks to see if you have received any /msg's, emails them to you, and then provides an interface to handle replies (at least it's supposed to). When you get such an email, all you do is hit reply (making sure that the info within the brackets is still in the subject), type in your msg, and hit send. In order to set it up, you need a Un*x system running an SMTP server (at least I think you do). You run this script as a daemon using root and whoever wants to take advantage of the service just creates a configuration file in their home directory in the following form:

Petrucio recently introduced the capability to apply Cascading Style Sheets (CSS) to PerlMonks, in his We Stylin'! node. Rich36 suggested a node for sample CSS files, and I've taken it upon myself to create a node dedicated to just that. although it cannot be linked directly to user pages, it should serve as a repository for everyone's creations.

If you've ever been to scratch pad viewer and you've wanted to download some code from somebody's scratchpad, you've noticed there is no "d/l code link". It turns out, if you use my script, you don't need it.
%>perl scratchcode.pl monkname

UPDATE
With the new changes to the way HTML is rendered in titles,
this idea is now A Bad Thing To Do ™. Please
disregard this post and just think of it as a fossil. :P

A cool feature about your posts is the fact that you can
put HTML comments in the title of your post. Armed with
this feature, it is possible to put 'category markers' in
your node titles and use a script to find them and make
a nice list of your favorite nodes.

The following code will do just that, the demo is on my
home node. All you need to do is mark your favorite nodes
by hand with something
like <!--code--> or <!--obfu-->. Well that's
how i did it before i saw jcwren's Bulk Node Title Editor.

The side effect is that you have to link directly to a
node's id instead of it's name when referring to it in
other posts, chatbox, etc. But that's okay, you use id
tags, don't you? Hey Rocko! Ask 'em if they use id tags!

UPDATE: - after gleaming good security info from jcwren,
i changed this script to accept an interactive password
similiar to how mysql asks for passwords: you can specify
the password on the command line with the -p option
(dangerous for mulit-user boxes), or you can just specify
-p by itself and be prompted for the password. I use
Term::ReadKey to keep the password 'invisible'.

Implements automatic updating of home node image, after so many hits on the home node. Uses a "bug" script (included) to detect hits, and this piece to automatically uploaded a new image after so many hits.

Please read the section on SECURITY and the rest of the documentation before using. Requires some responsibility on the part of the user.

I have needed to re-input all my personal nodelets twice in the last week because I have updated my sig. See this message for more info. This will save me a good 20 minutes next time I have to do it! I need to do some nodelet housekeeping when I have time.

Update: Nov 15 2001 Added modifypn=>'on' to the POST. Also modify and uncomment the line with $ua->proxy if you need it. Thanks ybiC!

Like always, no comments are welcome(now that's what I call sarcasm ;-))

updates:
July 20, 2001 - minor cosmetic changes;
July 21, 2001 - updated some pod (a blah... got by me)
July 27, 2001 - changed sort keys to sort {$a<=>$b> keys(print_HISTORY for -h1)
September 26, 2001 - added &ticker=yes (details: New ticker login for PM XML clients)
Sun Jan 13 21:11:13 2002 GMT - fixed serious bug nobody told me about, which I was unaware of due to my testing environment. I guess the good thing is i'm the only one using this ;)(or I lost the original posted version which worked)

I frequently update my pmchat script and have found that updating my node for it is quite a pain in the *ss. To simplify the experience, I wrote the following script that is called from my Makefile (when my script changes) and automatically updates its node under Code Catecombs.

This script WILL NOT work for you without modification. I hestitated to post it here in its form, but decided that it was probably worth the educational experience.

Note: the script draws from the cookie file that is created by my pmchat script for authentication.

Is your Personal Nodelet getting too big? Mine sure is was.
So, I wrote this little bot to parse my Personal Nodelet and
output the nodes in the form of: id [delimiter] name.
Once the data is in an easy (and fast) form to parse, you
can use another script to edit it, munge it some more - or
you can modify this script to reflect your needs.

UPDATE: - after gleaming good security info from jcwren,
i changed this script to accept an interactive password
similiar to how mysql asks for passwords: you can specify
the password on the command line with the -p option
(dangerous for mulit-user boxes), or you can just specify
-p by itself and be prompted for the password. I use
Term::ReadKey to keep the password 'invisible'.
Because of the new nature, be sure and specify -p last,
after -u and -s if used.

UPDATE (Mar 24,2002): - somebody moved 'lastnode' before
'node' so regex has been updated

The module formerly known as PerlMonksChat has gone through a major
transformation. Because its functionality now includes much more
than the chat part of PerlMonks, I have split it into several
modules: PerlMonks (base module), PerlMonks::Chat (chat stuff),
PerlMonks::Users (users and XP stuff) and
PerlMonks::NewestNodes (a threaded interface to the Newest Nodes
page).

The code is too large to post it here, so I'll point you to
the web
page instead.

There are a number of clients that use these modules. Check
out my home node for the full list.

xNN is a CGI newest nodes client that sorts nodes by date,
author, category, and threads (screenshots).
Displays nodes from n days in the past, or fractions of the
current day. Saves node data to disk, uses cookies to
remember sort mode, and can undo a refresh. Requires
XML::Simple

Note: Threaded mode can get dramatically slower as the
number of nodes increases, so be prepared to wait when
threading more than a few days worth (1000+). Be sure
the #! and 3 config variables are correct first.

Also: For some reason xNN is now very very slow checking anything more than 1 day of nodes. Nothing changed in the script which suggests that some change in the XML ticker (or something) is causing it. I'm kind of busy now so the fix will have to wait (unless you figure it out and send me a patch :-)

This is an update of luke_repwalker.pl that uses mirods XML::Twig module. It's faster because it generates few hits to the server. People like tilly should appreciate this... And ultimately it's more reliable, since it doesn't try to parse the tables of article listings.

I posted this as new code so that the old one would still be available. Some people have had trouble installing the various XML modules, or don't wish to.

xstatswhore.pl is an update of statswhore.pl that uses mirods XML::Twig module, and includes larryls histogram code (if you like the histogram part, be sure to thank him. ++Re: statswhore.pl). This version has the advantage of being faster by generating fewer hits to the server, and fixing the problem of having exactly a multiple of 50 nodes. And the histogram part is really cool..

I posted this as new code so that the old one would still be available. Some people have had trouble installing the various XML modules, or don't wish to.

control chrs in chat xml not being stripped due to missing /d modifier on tr in sub fixxml.

client authentication erroneously succeeded if username and password not defined.

Fixed in 2.04:

Repaired the chat frame and norm parser to conform with changes at perlmonks.

Added support for the latest shortcut tags: pad, kobe, jargon, perldoc. If you use an external config file these need to be added to the @tags array so they appear in the pulldown menu in the input frame, as well as a few items added to the %launch_urls hash.

repviewer parses the reputation file generated by jcwren's
luke_repwalker.pl to generate a full list of your articles
sorted by creation time, title or reputation just like
perlmonks user search except that all articles are displayed
on one page. Just set $pm and $rep.

First, while this is useful and Perlmonks related, it isn't
Perl. It is JavaScript.

d/l the code, and save the two pieces marked with
##filename=foo.html## as what the name is supposed to be.
Be sure cookies and JavaScript are on. Then point your
browser at perlmonks.html, and try it out.

With this, this morning I was able to walk through every
post for several days worth of PerlMonks in just a few
hours. Most of that time was spent writing up responses.
With this I can follow the whole site with less energy
than it would take to hit a reasonable portion of it
through using Newest Nodes.

Update
Clearly my cookie handling in JavaScript sucks. Oh well,
I don't like either cookies or JavaScript, so I guess that
was my internal bias showing. :-) Now fixed.

To have it check every hour. It keeps a cache, so that every
message is only displayed once. If you give it the -i option,
it ignores the cache, and shows all the personal messages that
you have. The -c option makes it automatically check off all
the messages it displays.

Here's my contribution to statistics nuts like myself.
This utility Logs in to Perlmonks (using ZZamboni's
PerlmonksChat module), gets your writeup page and creates 3
plots from the data, which are ftp'd to a server of your
choice.
I run it every few days to update the graphs. All modules
besides PerlMonksChat.pm are available at CPAN. See my home
node for an example of the results.

Update: I no longer post the graphs on my home node. The updated code given in the replies to this node is more modern. Thanks to everyone for the kind comments I received when I first wrote this.

This little script allows you to monitor changes to the reputation of your articles. It can produce a full report, a brief report, and/or the report from statswhore.pl. The output can be displayed to the console, e-mailed, or both. The output is designed to be parsable, in case you have other plans for it. The snapshot file is a CSV file that is directly importable into Excel or StarOffice spreadsheets. Parameters can either be specified on the command line, or patched into the script, near the top. For the paranoid, the -P allows prompting of your password from STDIN.

I believe I've tested all the permutations, and interactions, and had no problems. I don't expect this to last.

You may notice that the article counts differ from your homenode. vroom swears this will be fixed in 0.9 of E2. It has to do with where articles are credited for Q&A's. The articles checked for rep are the ones that actually appear when you click the writeups count on your homenode display.

If you have any problems, questions, or suggestion, please let me know.

Updated 2000/09/02: I found a problem when there is an even multiple of 50 articles (the number of writeups displayed on a page). This release fixes that, and also adds mySQL DBI support so you can log all your changes to a database table (yes, the account and password for the DB is in the code, not a command line parameter. Oh well, maybe 1.00.40?). Note that if you're a statswhore.pl user, that code has not yet been patched to solve the 50's multiple problem.