It was a couple of months ago when I had to ban a bot for the first time. At the time, I noticed one IP address (My Most Frequent Visitor) outshining all others in my web stats. A little research showed MMFV to be an outfit called AllResearch.com, who appears to specialize in hoovering down other sites in order to provide such services as trademark tracking, webclipping, and “law enforcement” services.
As bad as that sounds, the only reason I took even took note was the bandwidth comsumption. Every 60 minutes, they hit my RSS feed, and then pulled down every item listed in the feed. What a horrible perversion of intent. At the time, I banned the IP address, thusly (in .htaccess):
RewriteCond %{REMOTE_ADDR} “^38.144.36.16$”
RewriteRule .* – [F,L]
I then watched, ammused, for several days as the 403 errors stacked up, once an hour, from their IP address. Worst. Bot. Ever.
Well, I got around to checking my stats again today, and what do you know? My Most Frequent Visitor just can’t take a hint. He’s back, using IP address 38.144.36.19. And I didn’t find him due to vigilance; he’s just stupid. The exact same usage pattern. While expanding my ban, I even corrected the unescaped dots in my original version:
RewriteCond %{REMOTE_ADDR} “^38.144.36.”
RewriteRule .* – [F,L]
I’m not the only one seeing this. If you run a site, take a minute and check your stats or your logs for addresses beginning with 38.144.36.. If you see abuse like I’ve seen, take a minute and ban them. Maybe they will eventually take a hint.
Earlier today I wanted to print a web page for some offline reading. It was a page from a blog, featuring a left-handed nav/info bar and content on the right. Of course, I only wanted to print the content area. I tried printing, hoping for a print stylesheet that would supress the navbar. No such luck (note to self: implement a print stylesheet for your own glass house, and put down that stone).
I then tried turning off styles, figuring I could omit the pages of the printout which contained the navbar. I was surprised to find that [Firefox][1] prints using the default style sheet when styles are turned off (View|Page Style|No Style) (note to self: check [Bugzilla][2], report if needed).
I considered adding a user stylesheet, hoping that it would cascade with the existing stylesheet. In trying to figure out what my stylesheet should do, I used the DOM inspector. I was disappointed to find the layout used a 1 row `
` with with 2 `| `s to achieve layout (note to self: you don’t do that- good job). No wories, judicious use of a following sibling CSS selector did the job:
td {display:none} /* don’t show
| s */
td+td {display:block} /* okay, show
| s that follow another td */
The net affect is that only the first `
| ` (in each ` | `) is hidden. Perfect for this application. I tested this CSS snippet using the Edit CSS feature of fantastic the [Web Developer Toolbar][3]. On a whim, I tried printing, and was pleased to see that Firefox printed using the edited CSS.
**Update:** I dutifully checked Bugzilla. [Bug 260762][4] looks like a match.
[1]: http://getfirefox.com
[2]: http://bugzilla.mozilla.org
[3]: http://www.chrispederick.com/work/firefox/webdeveloper/
[4]: https://bugzilla.mozilla.org/show_bug.cgi?id=260762
I hate Flash. So called “flashturbation” website intro pages, beloved by none but the clueless execs who commission them, is reason enough. Beyond this (useless) use, they are used for everything from animated ads to total website content & navigation. Designers seem to like it because it allows much more creativity in web design, but I’ve never seen a use of flash I couldn’t have lived without. No matter how many ALA articles I see about standards support or accessibility with Flash, I consider it antithetical to both.
So I was not shocked to discover (via brian d foy) that Flash can be used to foil popup blockers. While I have in the past refused to install Flash, on a few occaisions I’ve needed to use a website that was otherwise inaccessible. Of course, once you install it, you’re stuck with it everywhere, right? Not if you use a real browser. Check out Flashblock, a Mozilla/Firefox plugin that replaces all Flash content with a placeholder image, which you can click if you want to enable Flash for the given content.
Maybe people will finally see the light and stop using Flash. One can hope.
Last month, Dugh issued the October Blogging Challenge, which grew from a week of daily posts to a month of daily posts. This month, I’d like to do something a little different.
As you probably know, today is the official release date of Mozilla Firefox 1.0. Firefox is a free, open source web browser. Not only that, it’s also the best web browser I have ever used, and one of my favorite pieces of software. It is easy to install, simple to use, and yet more powerful than the marketshare leader. It is highly configurable via extensions, yet you could never install a single extension and still have an incredibly useable, powerful browser. It is one of a handful of products which I can say has changed the way I use computers. It is made for all users, not just tech geeks like myself. In the past year, even through several beta versions, I’ve encouraged many people to switch- including my children. If you’ve never used it before, I encourage you to Get Firefox… but that is not the point of this post, or of the Challenge.
Of all of Firefox’s features, the one I want to focus on is the people. Firefox is a product of the Mozilla Foundation, a non-profit organization created to support the development of the open source Mozilla platform. Thousands of volunteers have contributed… bug reports, code patches, suggestions, themes, extensions, and even cash. There are many people, none of whom I know, who deserve thanks today. Ben Goodger, Chief Engineer for the Firefox project, touched on this today in his 1.0 release anouncement post on his Firefox Weblog. Ben himself deserves thanks as well, for seeing this project through and delivering a world-class product. On a personal note, he even found time to comment on this site when I complained about the Firefox marketing effort several months ago. No complaints now!
So to Ben Goodger, everyone at the Mozilla Foundation, and everyone who has contributed to the Firefox project – Thank You. You have done a very great service to the community of the web.
The November Blogging Challenge, then, is simple. If there is an open source project, a useful website, or even a blog which has benefited you in some way, blog a “Thank You” this month. Tell everyone about why you like it, and tell those who made it that their work is appreciated. If you have the means, consider supporting your favorite open source project with a donation, if they accept them. Today I donated $50 to the Mozilla Foundation as another way of saying “Thank You,” and “Keep up the good work.”
Update: If you participate in the challenge, leave a comment or trackback ping this post!
Tonight I added an Atom feed (0.3) to the site. The link is in the Subscribe boxlet on the right. I’ve also added a feed validation link for this feed in the Made Possible By boxlet.
Why an Atom feed? I’ve always felt Atom to be a promising project. Why now? I’d always planned to add an Atom feed, but I’ve felt no urgency as the spec is continuing to evolve. However, I’ve got some ideas I want to explore for using the Atom publication format and protocol in a project; more on that when I’ve had some time to refine my thoughts (and maybe write some proof-of-concept code). For now, I’m reading up on the current states of the specs, poking around the wiki, and reading some of the mailing list archives.
Adding the feed to Blosxom was straightforward. I installed the atomfeed plugin, which got me 95% of the way there. Since the last update of the atomfeed plugin, the spec has added <atom:modified> as a required child element of <atom:feed>. I was able to implement this by modifying the built-in flavour and using the lastmodified plugin to supply the value. Putting my name in atomfeed’s $default_author config variable was the only other step I had to complete to get the feed to validate. I’ve posted my version of the atomfeed plugin which contains my fix for the <atom:modified> issue, but does require the lastmodified plugin.