“Stretch-to-fit Textareas” Greasemonkey User Script

Here’s another quick-hack Greasemonkey user script I wrote recently.

Stretch-to-fit Textareas is a user script which improves the usability of editable textareas; it causes them to “stretch” vertically to fit their contents, as you type. This behaviour was inspired by that of textareas in FogBugz.

It can be inhibited by turning off the small checkbox to the right of each textarea.

Update: it’s worth noting that this is different from the Resizeable Textareas Firefox extension. Whereas the latter allows the user to resize the textareas by hand, this user script does that action automatically, based on the contents of the field; no manual resize-handle-searching and dragging is required. On the other hand, this user script will only stretch textareas vertically, whereas the extension allows them to be dragged in both dimensions. In fact, the two are complementary — I’m running both, and I suggest you do too ;)

Update 2: here’s a Firefox extension version — Greasemonkey not required!

Tags: , , , , , , ,

Comments (1)

Feed43 Rocks

I’ve just given Feed43 a go. It’s very nifty.

Basically, it’s a pattern-based HTML-to-RSS scraper — similar to my own Sitescooper in that respect ;) — but built entirely as a web app.

Until now, I’ve been hacking up scrapers one by one, using either Sitescooper or WWW::Mechanize, run from cron, and putting the output up on taint.org; for example, http://taint.org/scraped/ has the public ones: Threadless, Perry Bible Fellowship, and White Ninja comics.

Today, I came across a case where I wanted a new RSS feed, and since I’d been hearing of Feed43, thought I’d give it a try, to save running yet another cron on our server. It was reasonably simple, although still required a fair bit of knowledge of the concepts of scraping via pattern matching against HTML; but the UI was fantastic, with everything previewed using a clean AJAX UI, and within 3 minutes I had a new feed.

For the curious — the feed was for TCAL’s Ireland category , and the results are here: Feed43 (Feed For Free) : TCAL - Ireland. (go ahead and sign up if you like ;)

New web pattern, by the way — there’s a trend towards using “secret URLs” instead of username/password authentication for the kind of “trivial” auth task, like editing feed-scraper details. Good idea.

Tags: , , , , ,

Comments (1)

Announcing a new script

Web: Minor software announcement — after some time using HTMLThumbnail, album, and even WebMake to build photo galleries, I finally got peeved enough, and gave in to the temptation of ‘not invented here’. ;)

Presenting Uffizi, a CSS- and template-driven, themable perl script to generate photo galleries. Quoting the POD:

  • it’s very self-contained, apart from dependencies on Image::Size and the ImageMagick convert command
  • fast, efficient incremental rebuilding
  • generates full CSS-styled, templated and valid HTML
  • every part of the generated HTML can be modified through the templates
  • generates reasonably-sized images as well as thumbnails, with a link to the full-sized image
  • secure — all pages are static HTML, so your webserver won’t get r00ted through a silly photo album script

I am, of course, using it on my own photo pages, and I’m very happy with it; it’s been a while since I had to hack it. (I need to get it to thumbnail MPEGs as well, but apart from that it’s teh nifty IMO.)

Tags: , , , , , , , , , ,

Comments

good interview with Philip Greenspun

Open Source: ITConversations: Doug Kaye and Philip Greenspun (via Tony Bowden).

Very interesting interview overall. Philip notes that he didn’t see weblogs coming because ‘it never occurred to me that relatively minor changes in how you allow people to author would cause such a revolution’. I must admit, I was the same. As far as I could see, it was just another HTML page, being updated frequently — it took me quite a while before I realised the social aspects, of conversations taking places in a group of weblogs, was making a whole new thing.

Also, there’s a great few paragraphs where he discusses how sensitive to supply-side economics the whole ‘building a business on open source’ thing is. Search for ‘a dollar cheaper and a day faster’ to find it.

Tags: , , , , , , , , , ,

Comments

More Thoughts on GMail

Mail: I’ve been playing around with GMail a bit more recently. They’ve fixed the issues they had with Firefox and keyboard control, and it is nice.

Threading: since I plan to bother a few open-source MUA developers ;), I’ve written up a thorough analysis of their ‘conversation’ model, with its ‘collapsable history’, archive-not-delete approach, etc. Take a look, if you’re curious.

HTML: one feature that no-one’s commented on, is that GMail does not create HTML mail — all mail composed through their composer is sent as text/plain only.

This is very interesting, because it suits me just fine. HTML mail causes so many more problems than it solves, especially when full-featured web browser components are used to display it, IMO. I get to see the security exploits this enables, every day in my anti-spam work.

But it’s also very significant that nobody else has commented on it – nobody misses it!

Phantom Labels: another interesting thing I’ve noted: sometimes a mail will appear in your Inbox with a ’spam’ label, even though you’ve never defined one. It’s not in the ‘Spam’ folder; it’s in your inbox.

Aaron has a good theory on what this is, and I think he’s right — he suggests it’s when ‘ the two emails are in a conversation (same subject); one is marked as spam, one isn’t. So the conversation (which is what appears in your inbox) gets two tags: Spam, and Inbox. So when viewing the list it looks like it gets the Spam tag.’

Also, while I’m here — details on LiveJournal’s distributed filesystem, MogileFS, which apparently ‘will be open source’. Link via acme.

Tags: , , , , , , , , ,

Comments

Editable Text-to-HTML converters

Web: Dive Into Markdown — a great post from John Gruber about editable-text-to-HTML formats (he’s the author of Markdown):

… my actual workflow looked like this:

  1. Write in BBEdit.
  2. Preview in a browser.
  3. Switch back to BBEdit for revisions.
  4. Repeat until done.
  5. Log into MT, paste the article, publish.

Eventually, it dawned on me: this is madness. The primary advantage to using a computer for writing is the immediacy of editing. Write, read, revise, all in the same window, all in the same mode.

Totally agreed (although note, I’m using my own, very similar, EtText instead of Markdown ;). But this weblog is 100% EtText-driven, instead of HTML — I just throw an email at it, and it publishes it. I don’t think I’ve used the web interface in months.

Which reminds me — I really should steal some ideas gather inspiration from Markdown for EtText at some stage. ;)

Tags: , , , , , , , , , ,

Comments

Irish Anti-Spam Law, and Gaven Stubberfield Arrested

Spam: Let me take this moment to welcome our UK friends to the ’spam now illegal’ club; unlike the US, the European and Australian anti-spam laws seem to be shaping up nicely, requiring opt-in before ‘email marketing’ can be sent.

This actually happened in Ireland a couple of weeks ago, but I think I forgot to mention it here, so here’s the details:

Announcement, full text, full text as HTML. (It’s section 13 you want to read. Note that OpenOffice seems to have miscounted the bullet points in the HTML version ;)

The good stuff:

  • it’s opt-in, not opt-out like the cruddy CAN-SPAM act in the US. so that’s a fundamentally anti-spam position. Thanks EU!
  • each spam counts as a separate offence = lots of damages, I’d guess.
  • forging/disguising of originating header info is prohibited.

The bad:

  • if you run a mailing list, and you’re not sure that you got everyone’s permission to receive your mails (and if not, why not?), you’d better do a reconfirmation run quick ;)
  • no private right of action; but that’s pretty much std for Europe. we’re reliant on the Regulator to take action against spammers.
  • spamming to mailing lists is not prohibited — but then, I haven’t seen that blocked by any other law.
  • it’s unclear if spamming to role addresses (e.g. ‘foo-admin’, ‘info@company‘, etc.) is prohibited. I would guess that if they wind up in the mailbox of a ‘natural person’ it would be. But this may have to be worked out in court.
  • talks about ‘direct marketing’. Does this mean that faked-up ‘newsletters’ will be a loophole? Also, means that religious and political spam is permitted. But I haven’t seen much of that in Ireland… yet…
  • won’t be any good against US-based spammers. No surprise there. HOWEVER it may be useful against large multinational companies taking advantage of CAN-SPAM’s relaxed regime to indulge in a little spamming, if they have an Irish office.

    And, of course, it’ll mean that Ireland won’t develop Florida’s reputation any time soon, which is a good thing.

  • Will it be useful against spammers in other parts of the EU? That’s another question. Anyone know? I know of a bunch in France I’d really like to deal with.

    Brian Nisbet reckons it may.

I was reminded by this letter from the Department of Communications received by UCC , which notes:

But the Minister has announced that he intends using Ireland’s Presidency of the EU to initiate global partnership in clamping down on ’spam.’

Global? Just don’t ask for any help from the Florida state government. ;)

Spam: Other (big) spam news: ‘Gaven Stubberfield’ arrested for ‘falsifying his identity so that his e-mails could not be traced’. SBL say that Jeremy Jaynes, aka ‘Gaven Stubberfield’ is the eight-most prolific spammer in the world, and is ‘notorious for ‘horsey porn’ spam’.

Irish: Irish WWW pioneer Peter Flynn now has a weblog, it seems. As far as I can tell, Peter was responsible for much of the good stuff at celt.ucc.ie, which reminds me to post this link to Pangur Bán I’ve been meaning to post.

Messe ocus Pangur Bán,
cechtar nathar fria saindan:
bíth a menmasam fri seilgg,
mu memna céin im saincheirdd.

In my case, it’s mise agus Bubba Liath, otherwise pretty close despite the intervening 11 centuries…

Tags: , , , , , , , , ,

Comments

Great article on e-voting issues

E-Voting: Do not miss this fantastic round-up on the e-voting situation in the US. It contains these amazing quotes from the leaked Diebold memos:

”Over (the past three years) I have become increasingly concerned about the apparent lack of concern over the practice of writing contracts to provide products and services which do not exist and then attempting to build these items on an unreasonable timetable with no written plan, little to no time for testing, and minimal resources. It also seems to be an accepted practice to exaggerate our progress and functionality to our customers and ourselves then make excuses at delivery time when these products and services do not meet expectations.’ (Source: ‘Resignation’, announce.w3archive/200110/msg00001.html, dated 5 October 2001)

‘It does not matter whether we get anything certified or not, if we can’t even get the foundation of Global stable. This company is a mess! We should stop development on all new, and old products and concentrate on making them stable instead of showing vaporware. Selling a new account will only load more crap on an already over burdened entity. … You are taxing the development team beyond what they can handle. … Why is it so hard to get things right! I have never been at any other company that has been so miss managed (sic).’ (Source: ‘Fw: Battery Status & Charging—and too much bull!!’, announce.w3archive/200110/msg00002.html, dated 20 October 2001)’

I’m speechless. At least the NEDAP system planned for Ireland isn’t this bad — or is it? We can’t tell.

Support the calls for a Voter-Verifiable Paper Audit Trail. There’s no other way to continue to have a trustworthy democratic system with widespread use of e-voting in place.

Tags: , , , , , , , , , ,

Comments

Ho hum

Spam: I just received a spam containing this (HTML tags made readable by translating angles to round brackets):

Subject: Re: ZR, the master walked

(BODY bgColor=#ffffff) (font color=white) hellgrammite vocabularian distaff cardamom curvilinear pyhrric whizzing fruition canvasback maritime calcareous byline peddle cautionary smooch detain deadwood thrash centaur hurd coruscate confession bloom damsel gallon downtown morphine respirator psycho consolidate nee boycott (/font) Ban(/neve)ned C(/elmsford)D Gov(/validate)ernment d(/staccato)on’t wan(/goat)t m(/embank)e t(/trident)o s(/logjam)ell i(/constantine)t. Se(/falloff)e N(/judson)ow - (then a link, finally!!) (font color=white)neuroses aghast mazurka ribose architectural tranquillity heterosexual custom coquette mauritius downgrade croydon mechanist devious nh lange circumscribe infancy drool between foppish momentous doug induce (/font)

What a mess. Regardless, SpamAssassin gave it a 17.4 and autolearned it as spam ;)

Tags: , , , , , , , , ,

Comments

Art-Market, ArtPrice, Servergroup, Groupe Serveur etc. spamhaus

So a few months ago, I setup a cookie-producing mailto honeypot page at foojlist.php.

Well, I just got the first bite — and it’s a live one. It’s our old friends at artprice.com. They’re a French spamhaus, operating from Saint-Romain-au-Mont-d’Or, France, and reports claim that it’s all the work of one guy — Thierry Ehrmann.

There’s lots of reports in USENET, and here’s their SBL listing, noting ‘extremely intense french spam source.’

This posting to NANAE notes that Colt France are not responding to complaints about them, either — but notes that ‘in France collecting e-mail addresses with the intention to send commercial mails without permission of the holders can be punished by law (article 226-18 of the Code Pe’nal - up to 5 years of prison or 300.000 euro)’. Interesting!

Full details of the spam, and the access_log entries from their web-scraper’s accesses, are attached.

Here’s the spam:

Received: from mail1.artmarket.com (mail1.artmarket.com [194.242.43.183])
by dogma.slashnull.org (8.11.6/8.11.6) wixh ESMTP id h8SLJZV12710
for < ( email addr deleted ) @fooj.jmason.org>; Sun, 28 Sep 2003 22:19:35 +0100
Date: Sun, 28 Sep 2003 22:19:35 +0100
Message-Id: (spam-protected)
From: A  R  T (spam-protected)
To: < ( email addr deleted ) @fooj.jmason.org>
Subject: [adv] 1700 - 2003  Story of the Art Market
MIME-Version: 1.0
Content-Type: text/html;    charset=iso-8859-1
Content-Transfer-Encoding: 8bit
<HTML><HEAD>
<TITLE>Artists search engine by Artprice TM - copyright Artprice.com</TITLE>
<META http-equiv=”Content-Type” content=”text/html; charset=iso-8859-1”>
<META name=”UNSUB” content=”<!–26398522_1–>”>
<META name=”ROBOTS” content=”NOINDEX”>
</HEAD>
<BODY bgcolor=”#FFFFFF” text=”#000000”>
<TABLE cellspacing=”0” cellpadding=”0” align=”center” border=”0”>
<TR> 
<TD><IMG src=””http://web.artprice.com/img/affil.gif”></TD>
<TD><IMG” src=””http://web.artprice.com/img/search.gif”></TD>
<TD><IMG” src=””http://web.artprice.com/img/fs.gif”></TD>
<TD><IMG” src=””http://web.artprice.com/img/ind.gif”></TD>
<TD><A” href=””http://www.artistbiography.com/”><IMG” src=”‘http://web.artprice.com/img/bio.gif’” border=”0”></A></TD>
<TD><IMG src=””http://web.artprice.com/img/sig.gif”></TD>
<TD><A” href=””http://web.artprice.com”><IMG” src=”‘http://web.artprice.com/img/Home.gif’” border=”0”></A></TD>
<TD><IMG src=””http://web.artprice.com/img/Mediums/G.gif”></TD>
<TD><IMG” src=””http://web.artprice.com/img/ps.gif”></TD>
<TD><IMG” src=””http://web.artprice.com/img/Mediums/C.gif”></TD>
<TD><A” href=””http://web.artprice.com”><IMG” src=”‘http://web.artprice.com/img/Home.gif’” border=”0”></A></TD>
<TD><IMG src=””http://web.artprice.com/img/Mediums/I.gif”></TD>
<TD><IMG” src=””http://web.artprice.com/img/sig.gif”></TD>
<TD><IMG” src=””http://web.artprice.com/img/Mediums/J.gif”></TD>
<TD><IMG” src=””http://web.artprice.com/img/fs.gif”></TD>
<TD><IMG” src=””http://web.artprice.com/img/Mediums/C.gif”></TD>
<TD><IMG” src=””http://web.artprice.com/img/Mediums/I.gif”></TD>
<TD” align=”center” bgcolor=”#FF0000”><B>A</B></TD>
<TD><IMG src=””http://web.artprice.com/img/map.gif”></TD>
<TD” align=”center” bgcolor=”#FF0000”><B>R</B></TD>
<TD><IMG src=””http://web.artprice.com/img/HelpBlack.gif”></TD>
<TD><IMG” src=””http://web.artprice.com/img/search.gif”></TD>
<TD><IMG” src=””http://web.artprice.com/img/AMI/AMInsight.gif”></TD>
</TR>
<TR>” 
<TD><IMG src=””http://web.artprice.com/img/Shop.gif”></TD>
<TD><A” href=””http://web.artprice.com/corporate/EN/Visite/pages/nb.htm”><IMG” src=”‘http://web.artprice.com/img/HelpBlack.gif’” border=”0”></A></TD>
<TD align=”center” bgcolor=”#FF0000”><B>T</B></TD>
<TD><IMG src=””http://web.artprice.com/img/map.gif”></TD>
<TD><IMG” src=””http://web.artprice.com/img/today.gif”></TD>
<TD><IMG” src=””http://web.artprice.com/img/Mediums/E.gif”></TD>
<TD><IMG” src=””http://web.artprice.com/img/Mediums/F.gif”></TD>
<TD” align=”center” bgcolor=”#FF0000”><B>P</B></TD>
<TD><IMG src=””http://web.artprice.com/img/map.gif”></TD>
<TD><IMG” src=””http://web.artprice.com/img/search.gif”></TD>
<TD><IMG” src=””http://web.artprice.com/img/Mediums/C.gif”></TD>
<TD><IMG” src=””http://web.artprice.com/img/ind.gif”></TD>
<TD><IMG” src=””http://web.artprice.com/img/Shop.gif”></TD>
<TD><IMG” src=””http://web.artprice.com/img/Mediums/F.gif”></TD>
<TD><IMG” src=””http://web.artprice.com/img/Mediums/G.gif”></TD>
<TD><IMG” src=””http://web.artprice.com/img/ind.gif”></TD>
<TD><IMG” src=””http://web.artprice.com/img/Home.gif”></TD>
<TD><IMG” src=””http://web.artprice.com/img/today.gif”></TD>
<TD><IMG” src=””http://web.artprice.com/img/map.gif”></TD>
<TD><IMG” src=””http://web.artprice.com/img/Mediums/D.gif”></TD>
<TD><IMG” src=””http://web.artprice.com/img/Mediums/F.gif”></TD>
<TD><IMG” src=””http://web.artprice.com/img/sig.gif”></TD>
<TD><IMG” src=””http://web.artprice.com/img/Mediums/A.gif”></TD>
</TR>
<TR>” 
<TD><IMG src=””http://web.artprice.com/img/Mediums/B.gif”></TD>
<TD><IMG” src=””http://web.artprice.com/img/Mediums/D.gif”></TD>
<TD><IMG” src=””http://web.artprice.com/img/Mediums/G.gif”></TD>
<TD><IMG” src=””http://web.artprice.com/img/Mediums/H.gif”></TD>
<TD><IMG” src=””http://web.artprice.com/img/Mediums/I.gif”></TD>
<TD><IMG” src=””http://web.artprice.com/img/Mediums/J.gif”></TD>
<TD><IMG” src=””http://web.artprice.com/img/Mediums/J.gif”></TD>
<TD><IMG” src=””http://web.artprice.com/img/Mediums/J.gif”></TD>
<TD><IMG” src=””http://web.artprice.com/img/Mediums/C.gif”></TD>
<TD” align=”center” bgcolor=”#FF0000”><B>R</B></TD>
<TD><IMG src=””http://web.artprice.com/img/Mediums/I.gif”></TD>
<TD><IMG” src=””http://web.artprice.com/img/Account.gif”></TD>
<TD><IMG” src=””http://web.artprice.com/img/map.gif”></TD>
<TD><IMG” src=””http://web.artprice.com/img/Mediums/C.gif”></TD>
<TD><IMG” src=””http://web.artprice.com/img/ind.gif”></TD>
<TD” align=”center” bgcolor=”#FF0000”><B>I</B></TD>
<TD><IMG src=””http://web.artprice.com/img/contact.gif”></TD>
<TD><A” href=””http://web.artprice.com/corporate/EN/Visite/pages/3818.htm”><IMG” src=”‘http://web.artprice.com/img/HelpBlack.gif’” border=”0”></A></TD>
<TD><IMG src=””http://web.artprice.com/img/Mediums/I.gif”></TD>
<TD><IMG” src=””http://web.artprice.com/img/map.gif”></TD>
<TD><IMG” src=””http://web.artprice.com/img/today.gif”></TD>
<TD” align=”center” bgcolor=”#FF0000”><B>C</B></TD>
<TD><IMG src=””http://web.artprice.com/img/Mediums/L.gif”></TD>
</TR>
<TR>” 
<TD><IMG src=””http://web.artprice.com/img/Mediums/D.gif”></TD>
<TD” align=”center” bgcolor=”#FF0000”><B>E</B></TD>
<TD><IMG src=””http://web.artprice.com/img/map.gif”></TD>
<TD” align=”center” bgcolor=”#FF0000”><B>C</B></TD>
<TD align=”center” bgcolor=”#FF0000”><B>O</B></TD>
<TD align=”center” bgcolor=”#FF0000”><B>M</B></TD>
<TD><IMG src=””http://web.artprice.com/img/Shop.gif”></TD>
<TD><IMG” src=””http://web.artprice.com/img/ind.gif”></TD>
<TD><IMG” src=””http://web.artprice.com/img/Mediums/G.gif”></TD>
<TD><IMG” src=””http://web.artprice.com/img/Home.gif”></TD>
<TD><IMG” src=””http://web.artprice.com/img/search.gif”></TD>
<TD><IMG” src=””http://web.artprice.com/img/map.gif”></TD>
<TD><IMG” src=””http://web.artprice.com/img/sig.gif”></TD>
<TD><IMG” src=””http://web.artprice.com/img/Home.gif”></TD>
<TD><IMG” src=””http://web.artprice.com/img/fs.gif”></TD>
<TD><IMG” src=””http://web.artprice.com/img/contact.gif”></TD>
<TD><IMG” src=””http://web.artprice.com/img/Mediums/I.gif”></TD>
<TD><IMG” src=””http://web.artprice.com/img/contact.gif”></TD>
<TD><IMG” src=””http://web.artprice.com/img/ps.gif”></TD>
<TD><IMG” src=””http://web.artprice.com/img/Mediums/H.gif”></TD>
<TD><IMG” src=””http://web.artprice.com/img/Account.gif”></TD>
<TD><IMG” src=””http://web.artprice.com/img/map.gif”></TD>
<TD><IMG” src=””http://web.artprice.com/img/search.gif”></TD>
</TR>
<TR>” 
<TD><IMG src=””http://web.artprice.com/img/Mediums/J.gif”></TD>
<TD><IMG” src=””http://web.artprice.com/img/Mediums/B.gif”></TD>
<TD><IMG” src=””http://web.artprice.com/img/Mediums/C.gif”></TD>
<TD><IMG” src=””http://web.artprice.com/img/Mediums/J.gif”></TD>
<TD><IMG” src=””http://web.artprice.com/img/bio.gif”></TD>
<TD><IMG” src=””http://web.artprice.com/img/Shop.gif”></TD>
<TD><IMG” src=””http://web.artprice.com/img/Account.gif”></TD>
<TD><IMG” src=””http://web.artprice.com/img/today.gif”></TD>
<TD><IMG” src=””http://web.artprice.com/img/affil.gif”></TD>
<TD><IMG” src=””http://web.artprice.com/img/Account.gif”></TD>
<TD><A” href=””http://www.artprice.net”><IMG” src=”‘http://web.artprice.com/img/map.gif’” border=”0”></A></TD>
<TD><IMG src=””http://web.artprice.com/img/Mediums/B.gif”></TD>
<TD><IMG” src=””http://web.artprice.com/img/Mediums/L.gif”></TD>
<TD><IMG” src=””http://web.artprice.com/img/map.gif”></TD>
<TD><IMG” src=””http://web.artprice.com/img/Mediums/F.gif”></TD>
<TD><IMG” src=””http://web.artprice.com/img/bio.gif”></TD>
<TD><IMG” src=””http://web.artprice.com/img/Shop.gif”></TD>
<TD><IMG” src=””http://web.artprice.com/img/Mediums/B.gif”></TD>
<TD” align=”center”><A href=””http://www.art-online.com”> </A></TD>
<TD><IMG” src=””http://web.artprice.com/img/Mediums/C.gif”></TD>
<TD><IMG” src=””http://web.artprice.com/img/Home.gif”></TD>
<TD><IMG” src=””http://web.artprice.com/img/Mediums/J.gif”></TD>
<TD><IMG” src=””http://web.artprice.com/img/ps.gif”></TD>
</TR>
<TR>” 
<TD><IMG src=””http://web.artprice.com/img/Mediums/J.gif”></TD>
<TD><IMG” src=””http://web.artprice.com/img/Mediums/J.gif”></TD>
<TD><IMG” src=””http://web.artprice.com/img/Mediums/F.gif”></TD>
<TD><IMG” src=””http://web.artprice.com/img/fs.gif”></TD>
<TD><A” href=””http://www.americanartists.com/”><IMG” src=”‘http://web.artprice.com/img/bio.gif’” border=”0”></A></TD>
<TD align=”center” bgcolor=”#000000”><B><FONT color=”#FF0000”>A</FONT></B></TD>
<TD><IMG src=””http://web.artprice.com/img/Mediums/B.gif”></TD>
<TD><IMG” src=””http://web.artprice.com/img/Home.gif”></TD>
<TD><A” href=””http://web.artprice.com/corporate/EN/Visite/pages/arch02.htm”><IMG” src=”‘http://web.artprice.com/img/HelpBlack.gif’” border=”0”></A></TD>
<TD><IMG src=””http://web.artprice.com/img/Shop.gif”></TD>
<TD><IMG” src=””http://web.artprice.com/img/affil.gif”></TD>
<TD” align=”center”><B><FONT color=”#FF0000”>R</FONT></B></TD>
<TD><IMG src=””http://web.artprice.com/img/sig.gif”></TD>
<TD><IMG” src=””http://web.artprice.com/img/Account.gif”></TD>
<TD><IMG” src=””http://web.artprice.com/img/Mediums/I.gif”></TD>
<TD” align=”center”><B><FONT color=”#FF0000”>T</FONT></B></TD>
<TD><IMG src=””http://web.artprice.com/img/Mediums/J.gif”></TD>
<TD><IMG” src=””http://web.artprice.com/img/Mediums/C.gif”></TD>
<TD><IMG” src=””http://web.artprice.com/img/affil.gif”></TD>
<TD><A” href=””http://web.artprice.com/corporate/EN/Visite/pages/3834.htm”><IMG” src=”‘http://web.artprice.com/img/HelpBlack.gif’” border=”0”></A></TD>
<TD><IMG src=””http://web.artprice.com/img/Mediums/H.gif”></TD>
<TD><IMG” src=””http://web.artprice.com/img/Shop.gif”></TD>
<TD><IMG” src=””http://web.artprice.com/img/search.gif”></TD>
</TR>
<TR>” 
<TD><IMG src=””http://web.artprice.com/img/bio.gif”></TD>
<TD><IMG” src=””http://web.artprice.com/img/ps.gif”></TD>
<TD” align=”center” bgcolor=”#FF0000”><B><FONT color=”#000000”>M</FONT></B></TD>
<TD><IMG src=””http://web.artprice.com/img/Mediums/C.gif”></TD>
<TD><IMG” src=””http://web.artprice.com/img/fs.gif”></TD>
<TD><IMG” src=””http://web.artprice.com/img/ps.gif”></TD>
<TD><IMG” src=””http://web.artprice.com/img/ps.gif”></TD>
<TD” align=”center”><B>A</B></TD>
<TD><IMG src=””http://web.artprice.com/img/map.gif”></TD>
<TD><IMG” src=””http://web.artprice.com/img/ps.gif”></TD>
<TD” align=”center”><B>R</B></TD>
<TD><IMG src=””http://web.artprice.com/img/Mediums/B.gif”></TD>
<TD><IMG” src=””http://web.artprice.com/img/Mediums/F.gif”></TD>
<TD” align=”center”><B>K</B></TD>
<TD><IMG src=””http://web.artprice.com/img/ps.gif”></TD>
<TD><A” href=””http://www.artprice.de”><IMG” src=”‘http://web.artprice.com/img/Home.gif’” border=”0”></A></TD>
<TD><IMG src=””http://web.artprice.com/img/Shop.gif”></TD>
<TD” align=”center”><B>E</B></TD>
<TD><IMG src=””http://web.artprice.com/img/Mediums/B.gif”></TD>
<TD><IMG” src=””http://web.artprice.com/img/ind.gif”></TD>
<TD><IMG” src=””http://web.artprice.com/img/ps.gif”></TD>
<TD” align=”center”><B>T</B></TD>
<TD><A href=””http://web.artprice.com/corporate/EN/Visite/pages/jb02.htm”><IMG” src=”‘http://web.artprice.com/img/HelpBlack.gif’” border=”0”></A></TD>
</TR>
<TR> 
<TD><IMG src=””http://web.artprice.com/img/contact.gif”></TD>
<TD><IMG” src=””http://web.artprice.com/img/Mediums/G.gif”></TD>
<TD><IMG” src=””http://web.artprice.com/img/ind.gif”></TD>
<TD><IMG” src=””http://web.artprice.com/img/contact.gif”></TD>
<TD><IMG” src=””http://web.artprice.com/img/Mediums/J.gif”></TD>
<TD><IMG” src=””http://web.artprice.com/img/ind.gif”></TD>
<TD><IMG” src=””http://web.artprice.com/img/map.gif”></TD>
<TD><IMG” src=””http://web.artprice.com/img/affil.gif”></TD>
<TD” align=”center”><B>C</B></TD>
<TD><IMG src=””http://web.artprice.com/img/Mediums/D.gif”></TD>
<TD><IMG” src=””http://web.artprice.com/img/sig.gif”></TD>
<TD><A” href=””http://www.13thcenturyart.com/”><IMG” src=”‘http://web.artprice.com/img/HelpBlack.gif’” border=”0”></A></TD>
<TD><IMG src=””http://web.artprice.com/img/Home.gif”></TD>
<TD><IMG” src=””http://web.artprice.com/img/Mediums/E.gif”></TD>
<TD><IMG” src=””http://web.artprice.com/img/affil.gif”></TD>
<TD” align=”center”><B>O</B></TD>
<TD><IMG src=””http://web.artprice.com/img/Account.gif”></TD>
<TD><IMG” src=””http://web.artprice.com/img/Mediums/D.gif”></TD>
<TD><IMG” src=””http://web.artprice.com/img/Mediums/J.gif”></TD>
<TD><IMG” src=””http://web.artprice.com/img/ind.gif”></TD>
<TD” align=”center”><B>M</B></TD>
<TD><IMG src=””http://web.artprice.com/img/Mediums/I.gif”></TD>
<TD><IMG” src=””http://web.artprice.com/img/bio.gif”></TD>
</TR>
</TABLE>
<BR><BR><BR>
<TABLE” border=”0” bgcolor=”#FFFFFF” align=”center”><TR>
<FORM method=get action=”http://web.artprice.com/en/artistsearch.aspx”><TD>
<A href=””http://web.artprice.com”>
<IMG” src=”‘http://web.artprice.com/Img/B/artprice_140.gif’” align=”absmiddle” border=”0” alt=”artprice”></A> 
<INPUT type=text name=searcharti size=39>
<INPUT type=submit value=”OK” style=”CURSOR: hand”>
<INPUT type=hidden name=l value=en>
</TD>
</FORM>
</TR></TABLE>
<CENTER>
<FONT size=”1” face=”Arial”>
THE WORLD LEADER IN ART MARKET INFORMATION - WELT-LEADER IN KUNSTMARKT-INFOS
<BR>LEADER MONDIAL DE L’INFORMATION SUR LE MARCHE 
DE L’ART</FONT>
</CENTER>
<BR><BR><BR>
<BR><BR><BR>
<BR><BR><BR>
<BR><BR><BR>
<BR><BR><BR>
<BR><BR><BR>
<BR><BR><BR>
<TABLE cellspacing=”3” background=”http://web.artprice.com/Img/B/pixBl.gif”>
<TR> 
<TD> <FONT face=”Arial” size=”1”>
<b>To remove</b> your email: (spam-protected)
please click below:<br><a 
href=”‘http://list.artaddiction.com/?m=(email_address_hidden)%40fooj.jmason.org’>
(spam-protected)
</a><br>
In” case the above link does not work you can go to<br>
http://list.artaddiction.com/<br>
or reply to this message as it is.<br>
Please allow us 72 H for your e-mail to be removed.<br>Thank you for your co-operation. </FONT></TD>
<TD><FONT face=”Arial” size=”1”>
<b>Pour désinscrire</b> votre email : (spam-protected)
cliquez ci-dessous :<br><a 
(spam-protected)
Si le lien ci-dessus ne fonctionne pas, vous pouvez aller sur :<br>
http://list.artaddiction.com/
<br>ou répondez svp à ce message sans en modifier le contenu.<br>
Votre désinscription sera effective dans les 72 H.<br>Merci de votre coopération. </FONT></TD>
</TR><TR><TD colspan=”2”><FONT size=”1” face=”Arial”>En conformité avec la loi 
78-17 du 6/1/78 (CNIL), vous pouvez demander à ne plus figurer sur notre 
fichier de routage.<BR>
<IMG src=”‘http://web.artprice.com/img/LogoArtp_90.jpg’” border=”0” align=”absmiddle”>IX 
:28<BR>
</FONT><FONT face=”Arial, Helvetica, sans-serif” size=”1”>Artprice.com - Domaine 
de la Source BP 69 - F-69270 St Romain au Mont D’or - RCS : 411 309 198</FONT></TD>
</TR></TABLE></BODY></HTML>

And, after decoding the address it was sent to, here’s the access_log entries the address was scraped with:

194.242.43.13 - - [26/Sep/2003:21:09:34 +0100] ”GET /foojlist.php HTTP/1.0” 200 4066 ”-” ”Art-Online.com 0.9(Beta)”

That’s one line from their scraping run, during which they scraped every single page on spamassassin.taint.org, including tar and zip archives, CGI scripts, everything — making 534 requests between 21:07:31 and 21:16:49.

Tags: , , , , , , , , ,

Comments

Referrer Spam Again

More referrer spam stuff. As Mark states in the comments here, it seems that the referrer-spamming is using real browsers run by real people — no bots, no proxies.

The spammers create HTML pages which contain an IMG tag, using one of our pages in the SRC attribute. This causes the user’s browser to attempt to download the page — giving the correct referrer URL — but it’s not particularly visible to the user — since it’s a HTML page, not an image. All they’re likely to see is a ‘broken image’ icon, and more likely the image is hidden anyway using a hidden div or width=0 height=0 attributes.

Anyway, I took a look at the HTML for those sites. Interestingly, all of them use a distinctive HTML style, with a redirecting frame and some Javascript to load the following pop-up ad:

http: //pb. xxxconnex. com/pb.phtml? d=aporndomain.net &sc=EXPN &ip=9999999999 &c=preview

Where ‘aporndomain.net’ is a porn domain, not necessarily always the same one as you’re viewing, and ‘9999999999′ is a 10-digit number. This then loads a frameset containing another random popunder ad from a load of domains. It also throws a few hidden ones into the corner, loads them as pop-unders, loads a javascript timer to open new ones occasionally, etc. etc. etc. As you close ‘em, new ones open, and so on. Glad I don’t run IE ;)

I would bet these guys, xxxconnex.com — or one of their customers — are the ones behind the referrer-spamming as a result. Their WHOIS info states they are:

Admin, Domain  info@webfinity.net
1E Braemar Ave
Unit 19
Kingston 10, WI N/A
JM
876-357-8404

Interestingly, that phone number and address also shows up in ROKSO as well, listed under domain registrations controlled by the ‘Dynamic Pipe / Webfinity / Python Video’ spam gang, ie. one of the biggest sources of porn spam out there. They’re diversifying it seems!

Based on some suggestions on Kasia’s weblog, I think I now have a good comeback — still working on this though.

Tags: , , , , , , , , ,

Comments

Spam about spamming

how unfortunate! I guess this spammer hit the wrong key when selecting which set of addresses to send this mail to…

Joshua,

Here is the harvested list 165 names for telecom central office installation. Put together a email promo that we can send out.

Dad

Subject: Telecom email broadcast marketing
From: “Larry” (spam-protected)
Date: Fri, 7 Feb 2003 07:12:43 -0700 (14:12 GMT)
To: “Joshua Dyer (E-mail)” (spam-protected)

(Here’s the full text, headers and all:)

From (spam-protected) Fri Feb 7 17:57:50 2003 Return-Path: (spam-protected) Delivered-To: (spam-protected) Received: from localhost (jalapeno)
by jmason.org (Postfix) with ESMTP id 119CB16F17 for (spam-protected) Fri, 7 Feb 2003 17:57:49 +0000 (GMT) Received: from jalapeno by localhost with IMAP (fetchmail-5.9.0) for (spam-protected) (single-drop); Fri, 07 Feb 2003 17:57:49 +0000 (GMT) Received: from mail.oelsales.com ([216.205.114.98]) by dogma.slashnull.org (8.11.6/8.11.6) with ESMTP id h17Fv7E22990; Fri, 7 Feb 2003 15:57:09 GMT Received: from LARRY by mail.oelsales.com with ESMTP (SMTPD32-7.13) id AF4F931006A; Fri, 07 Feb 2003 08:14:39 -0600 From: “Larry” (spam-protected) To: “Joshua Dyer (E-mail)” (spam-protected) Subject: Telecom email broadcast marketing Date: Fri, 7 Feb 2003 07:12:43 -0700 Message-Id: (spam-protected) MIME-Version: 1.0 Content-Type: multipart/alternative; boundary=”—-=_NextPart_000_0503_01C2CE78.4F82BA40″ X-Priority: 3 (Normal) X-Msmail-Priority: Normal X-Mailer: Microsoft Outlook CWS, Build 9.0.2416 (9.0.2911.0) X-Mimeole: Produced By Microsoft MimeOLE V6.00.2800.1106 Importance: Normal X-Spam-Status: No, hits=4.5 required=5.0 tests=BAYES_30,HTML_70_80,HTML_FONT_COLOR_BLUE,
HTML_FONT_COLOR_GREEN,HTML_FONT_COLOR_RED, HTML_FONT_FACE_ODD,HTML_MESSAGE,RCVD_IN_NJABL, SMTPD_IN_RCVD,X_NJABL_OPEN_PROXY version=2.50-cvs X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.50-cvs (1.167-2003-02-03-exp)
This is a multi-part message in MIME format.

——=_NextPart_000_0503_01C2CE78.4F82BA40

Content-Type: text/plain; charset=”iso-8859-1″ Content-Transfer-Encoding: 7bit
Joshua,

Here is the harvested list 165 names for telecom central office

installation.

Put together a email promo that we can send out.

Dad

Larry Dyer, President

OEL WORLDWIDE INDUSTRIES : Worldwide Optics PO Box 445 Palmer Lake, CO 80133 websites: www.oelsales.com & www.worldwideoptics.com Corporate: 719 559-0951 Fax: 719 559-0955 National Sales: 800 818-2244
——=_NextPart_000_0503_01C2CE78.4F82BA40
Content-Type: text/html; charset=”iso-8859-1″ Content-Transfer-Encoding: quoted-printable
< !DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
Joshua,
 
Here=20 is the harvested list 165 names for telecom central office=20 installation.
 
Put=20 together a email promo that we can send out.
 
Dad
 
Larry Dyer,=20 President
OEL=20 WORLDWIDE INDUSTRIES :
Worldwide =
Optics
PO Box 445
Palmer Lake, CO = 80133
Corporate: 719 = 559-0951
Fax: 719 = 559-0955
National Sales: = 800 818-2244

 
 
 
——=_NextPart_000_0503_01C2CE78.4F82BA40–

Tags: , , , , , , , , ,

Comments

ICAP

ICAP-server, an (imaginatively-named) daemon which implements ICAP. This seems to be a transcoding proxy server; in other words, it will convert HTML content on the fly, while you browse.

ICAP itself seems to be a protocol for rewriting HTTP responses; in other words, it allows a proxy server to include a small snippet of ICAP client code, and call out to an ICAP server to do the rewriting. Nifty.

Sounds like this could be very handy for low-bandwidth situations; use ICAP to “downshift” web pages into low-bandwidth versions. For example, banner ads can be trimmed out, heavy images converted to small, low-quality JPEGs, etc. One to watch (or help out with).

Ericsson used to have a commercial product which did something similar, but I can’t find it now…

Tags: , , , , , , , , ,

Comments

When tidying goes bad

Rod pointed out that my RSS feed was borked. oops, WebMake and HTML::Parser had “tidied” it. Who knew that RDF was case-sensitive? Not I.

Ah well… now fixed.

Tags: , , , , ,

Comments

EtText changes

hooray, I got rid of that horrible “add line breaks to preserve short lines in HTML” feature from EtText, it was driving me nuts. The irony is, I only added it because txt2html had it. Keeping up with the Joneses just causes trouble, it seems.

Tags: , , , , , , , ,

Comments

HTML diffing

Sitescooper: Aaron notes that the Wayback Machine has added support for diffing HTML, using technology licensed from DocuComp (demo), and he notes “HTML Diff is extremely difficult and they do a half decent job, but it’s got plenty of room to improve.”

Maybe they should look at Sitescooper: it’s had HTML diffing for the last 3 years, using diff(1) or Algorithm::Diff and some basic knowledge of HTML presentation. Though mind you, DocuComp might have some trouble having a look, as it’s free software, licensed under the GPL. :)

Of course, Sitescooper is a big, chunky lump of application, very oriented towards scraping an entire news site, downloading the latest news, stripping down the HTML and delivering that in one file — ie. exactly what you want for viewing news sites offline on a PDA, but when you want to use just nifty feature in there, you’re stuck with the whole application. It’s just not UNIX.

So, one thing I’ve been thinking about doing recently, is taking some of the code in Sitescooper and refactoring it into a UNIX toolset; a wget-style getting tool, which has Sitescooper’s knowledge of how to cache and rewrite URLs; a HTML-differ; and a few other tools. But this is still thinking, at the moment.

Tags: , , , , , , , , ,

Comments

(Untitled)

Wow. A truly neat, cross-platform, text entry widget in HTML that updates as you edit. Check it out (quick though — it’s a FilePile URL).

Tags: , , , , ,

Comments