[ home | blog home | recent activity | guestbook | plugins i'm using (19) ]
Someone spammed my blog with 400+ comments for some shoes site. Took me less than 2 minutes to skim the emails, see the pattern, and then remove all the spam from my comments moderator queue. This sort of thing is the big strength of PyBlosxom.
I have my blog set up to store comments as individual text files in a
comments/ directory. All comments have to be approved
before they make it to the site. Approved comments end in .cmt
and comments in the moderator queue end in .cmt-.
Additionally, comments that contain one of a series of blacklisted words
are rejected automatically. Any time someone posts a comment, I get
an email.
It took me a minute to skim my 400+ emails and notice they're all kind of the same, 10 seconds to update the blacklist so that I won't get any additional comments like this in the future, and 10 seconds to remove all the spam from the queue with:
for mem in `grep -rl spamwordhere *`; do rm $mem; done
That was it--spam gone in less than 2 minutes. Took longer to write the blog post about it.
Got a comment on a post about a conference call today that I'm a "top 100 blog" in Python. I'm not sure what the selection criteria was, but it looked legit-ish. Added their seal and link to the sidebar for now.
I work at Participatory Culture Foundation and I have a work blog there that I use primarily for blogging about things related to PCF, Miro development, Miro-related development and other things of that ilk. It's on a WordPress system.
I decided after a while that having two blogs sucked. Also, I don't like Wordpress. Also also, I was getting crazy amounts of comment spam on my work blog.
As such, I did a couple of pushes to finish up PyBlosxom 1.5 enough so that I could write a tags plugin that I like so that I could migrate. Then I wrote a Wordpress to PyBlosxom migration script and the result is that I'm now blogging here for all Miro related things. Since it's easier to blog here, I'll probably be talking more about Miro-land. w00t!
I spent a few hours throwing together a new tags plugin that makes use of the new commandline features of code in PyBlosxom trunk (which will be PyBlosxom 1.5). Then I spent a while adding tags to all my entries.
I'm still mulling over my choice of tags, but I imagine I'll hone it into a set I'm happy with over time.
Also, I used :: as a tag separator, but I think I'd recommend
something that doesn't require a shift key to enter. Perhaps ;; or //.
Tag information is stored in two dicts that are pickled and thrown in a file. It seems to be pretty fast to load for my blog (~500 entries). I picked pickle because it was easy, but if it turns out to be a problem, I'd be game for other storage formats.
I've been waiting for tags support before I did more blogging. Now that I've got tags support, I plan to move my work blog here. That'll make things easier and get me off WordPress.
Back in June I must have:
Anyhow, comments are working again.
It occurred to me that adding a link to category feeds was pretty trivial, so I figured I'd give it a try. It's a bit cluttered to look at (I'm talking about the Categories section on the right hand side there), but ... it's functional.
In case anyone was wondering what my category properties looked like, they're like this:
# category plugin properties py["category_start"] = "" py["category_begin"] = "" py["category_item"] = r'%(indent)s<a href="%(base_url)s/' + \ r'%(fullcategory_urlencoded)sindex.%(flavour)s">%(category)s</a>' + \ r' [<a href="%(base_url)s/%(fullcategory_urlencoded)sindex.xml">atom</a>]' + \ r' (%(count)d)<br />' py["category_end"] = "" py["category_finish"] = ""
I used to be subscribed to Unnoficial Planet Python (http://www.planetpython.org/) but for some reason, I was unsubscribed. I didn't get any email about it, so I'm not sure what the problem was. I emailed Ryan (his email address is on the site) twice and haven't heard anything.
I am still subscribed to Planet Python (http://planet.python.org/), so I'm puzzled.
This is a minor issue because I'm not subscribed many places (subscribed is probably not the right word to use), so it reduces my audience significantly and prevents me from participating as much as I could be [1].
Anyhow, if anyone knows of a better way to get me re-subscribed to the Unofficial Planet Python, that'd be super.
[1] - Since I've been in grad school, my blog has been quiet-ish but that ends in May.
01/11/2007 - Ryan got in touch with me and I'm back on again. w00t!
I just finished the midterm for my Principles of Programming Languages class with Professor Mitch Wand and it was an absolutely exciting experience. So exciting that when I got home I wrote an email to Professor Wand telling him that it was the most exciting exam I've had at Northeastern. It was filled with all these exciting mind-bending puzzles complete with subtle nuances and all kinds of exciting stuff!
So then I told S that I just wrote my professor to tell him that the exam was really awesome. Then it occurred to me that I'm a nerd--the evidence is clear on that note. Then I said, "Gosh--I should just follow it up with an entry on my blog!" At that point, S burst out laughing and said, "You know you're a nerd when you come home from a midterm, write to the professor telling him it was really great, and then write a blog entry about the whole thing complete with introspection of the entire event." Well, she didn't say that whole thing, but she was definitely thinking it.
I used to maintain a links section of my blog which I called my "link-blog" (though I may not have called it that out loud). Here is the blog entry launching my link blog.
Anyhow, I went through all my link blog items and moved them to delicious. I'll toss a link to my menu and in the future maintain links there.
I figured I'd take some time to share my PyBlosxom setup. As of this writing, I'm running PyBlosxom under Python 2.3.4 on Debian with Apache 1.3.33. I'm running PyBlosxom 1.2 (with some minor adjustments). I have the following plugins:
I write most of my entries using vi or emacs and for the most part I write them in HTML.
There was a time where I wrote blog entries on whatever was in my head to build content and thus test PyBlosxom. Recently, I've been doing development summaries and writing about life changes. I think a good portion of my blog entries talk about how I don't have much free time.
I have no idea who my audience is or what they look for here.
I did some minor munging of my stylesheet and templates to remove some of the accumulated, but not used, stuff. It reduces the size of my front page a bit as well.
I decided to release my old set of flavour templates on the flavour registry and in so doing totally foobarred all the times on all the files of my blog. I recovered most of them (because I have a mirror that's usually off by a few days), but then I had to guess on the times for the latest four entries.
So that sucked. Given what I just went through, I'm beginning to think it's a terrible idea to use the timestamp on the file as the mtime. Blech.
I didn't expect either of these entries to drum up the response they did. I've gotten emails and comments from both entries that were way cool.
As a result, I've finally gotten around to building the flavour registry, I decided I'm going to see what's up and whether I'll work through a 1.1 release for PyBlosxom. We're working through what to do in regards to the filestat callback and possibly moving caching. I started investigating what would be involved in building a regression testing framework (which would double as a performance testing framework as well).
It's been a good couple of days. I really appreciate the advice and encouragement I've gotten. Thanks!
Saw this posting by David Galbraith on one-line bios and thought it was a good idea. I added one to my side bar on the left.
I'm going to take some time to slim down my site and make bits of it easier to use. Then I'll package up the templates I use and make them available for other PyBlosxom users. I'm curious to see how long that takes and how much effort is involved.
I noticed that almost all the comment spam I get has the word "casino" in it. I added some code to the comment plugin to check the comment for the word casino and if the word is there, I ditch the comment. That seems to work very nicely (in the last 24 hours, it's ditched 7 bad comments and no good ones) though it's a short-term fix.
Long-term, I have a few thoughts. I may re-write portions of the comments plugin so that it saves comments originally in an "approval" stage. Then I'll write a command-line program that allows me to approve or reject all the comments in the "approval" stage one by one. That'll be pretty easy to deal with though it introduces a time-delay between when a comment is created and when it is posted.
Alternatively, I could just write a command-line program that goes through all the comments since the last one I "approved" and allows me to go through them one by one and weed out the bad ones.
Still, given that my blogs aren't related to casinos in any way, using "casino" seems to be a good filter.
I look at Anil Dash's links log daily now and decided to kick up one of my own partially to give people a glimpse of what I'm looking at day to day, but mostly because I need a way to keep track of all these links.
Anyhow, I implemented my links "blog" as a category under my current blog. In that category directory, I tossed a different set of templates so that it's more "minimal" (inspired by what Anil does with his link blog). Then I used the filter plugin from the Pyblosxom registry so that I could "hide" the links blog entries from my main site (I figure it'd be too spammy).
Took me maybe 10 minutes to implement the whole thing--5 of which were used to update the filter plugin from the one at the link to something that works with Pyblosxom 1.0.1 (soon to be released).
Ahhh--just got hit with my first comment-spam experience. That kind of sucked but was pretty easy to deal with since Ted organized comments as separate files.
If it happens again, I'll have to think about how to deal with it. Maybe switch to a comment approval process or something.
I've decided I don't really need to be running all the plugins I had running. So I've removed a bunch. The good news is that removing a plugin requires the following extremely difficult steps:
If I want to completely eradicate the plugin:
Anyhow, I'm probably going to install comments, pingbacks, trackbacks, quarter-backs, double-decaf-half-backs, atom, madam, and all the other possible ways for blogs to intertwine with one-another over the next week so that I will finally have an inkling of what all the hubbub is about. [1]
[1] I also want to fix the comments documentation, test all the code, and get everything ready for a 1.0 release some time in my lifetime.
"Life" is a stupid category. Everything that was there was just more content anyhow. So into the "Content" category it goes!
I also whacked the 3k category and the misc cateogry.
I know I'm not the only one who's getting referral spam from John Kerry's blog and blogs of other Democratic candidates. How totally lame and obnoxious.
Anyhow, with the PyBlosxom logstats plugin, I can just hide them all from showing up. POOF!
you only live once, but don't kill yourself trying to make the most out of every moment. one thing i learned from jamie was to just sit there and waste ten minutes of time every day. let the batteries recharge a little and one enjoys the rest of the day so much more.
That was the last paragraph in an email I wrote in 1997. I was so busy being irritatingly trite that I had no clue how irritatingly trite I was being. Blech. Part of me wants to purge all this old old old email. But the other part of me thinks that maybe if I have kids it'd be nice to show them evidence of my stages of progression so then maybe they'll be slightly more self-aware when they're going through their irritatingly trite period. Blech.
Having said that, the Jamie being referred to was this really great guy I knew in high school named Jamie. As time goes on, I realize he had far greater a clue than I had back then. I met him in high school, but his mom knew my nonna--they were both quilters in Chelmsford. The world is a small place.
Oh no--I'm being trite again! Must end the pain!
A couple of friends pointed out to me my META tag to refresh from /~willg/ to /~willg/blog/ was borked and while it worked fine in Mozilla and derivatives (which are the only browsers I use), it didn't work at all in Internet Explorer. All fixed now though.
For future reference, the "good code" is like this:
<meta http-equiv="refresh" content="0; URL=http://bluesock.org/~willg/blog/">
First off, it's now "http://www.bluesock.org/~willg/blog/". I followed Rael's directions and implemented the mod_rewrite adjustments. That worked super. Then it created some mild issues that I'm sorting out now. Namely, I have all kinds of content in different formats: html, shtml, php, and now pyblosxom entries. So I'm going to do a massive normalization of all the content and get rid of the stuff I don't update ever. Getting there.
Anyhow, so my point is that my entire site is now in a state of flux as it gets re-absorbed into more of a blog with a slight amount of static content.
I'm going to be doing some pretty dicey pyblosxom changes over the next day. This web-site is liable to go up and down faster than a pogo stick!
You might be greeted with bugs! Stack traces smeared in pink and colors repugnant to the human eye! Strange hexidecimal incantations that look more like inscriptions to a mystical Egyptian pyramid of Ra than meaningful web-site error data! Be wary! BE VERY WARY!
Don't fret--it'll all be over in a few days. And definitely don't email me because I already know.
Originally I thought blogging would be an easy way to provide an up-to-date status (and log) of the various projects I've got going on. It becomes very easy for an outsider to look at my blog and click a few links and realize how often I work on a particular project and what other projects are taking all my valuable time by distracting me.
After a few blog-like applications, I finally settled on pyblosxom which didn't have everything I wanted, but it had the bonus of being written in Python and that makes it super easy for me to fix and add functionality.
Then I found myself working on the pyblosxom code-base and talking to Wari at length about various pyblosxom things.
Now I blog for two reasons. First to provide status on my projects and second, to provide more data with which to test pyblosxom functionality.
That's why I blog. On top of that, I'm fascinated by the decentralized collaborative forum that blogs provide. It's not unlike editorials in the newspaper.
All contents Copyright 1996 to 2010 Will Guaraldi Kahn-Greene.
This work is licensed under a
Creative Commons Attribution-Noncommercial-Share Alike 3.0 United States License.