1st ever Gmail spam?

In my account at least, I think.

Spam that snuck past Gmail's filtering using CSS positioning

Note that it dis­plays per­fectly and sans any word obfuscation/misspelling as is usual for these things — though I would has­ten to add that any­one that fol­lows up afore­men­tioned spam is unlikely to have intel­li­gence enough to avoid some­thing with shifty spelling.

It’s achieved by embed­ding arbi­trary char­ac­ters in the mid­dle of a word in a span ele­ment, and then float­ing these to the right. It’s only a two-part divi­sion at this stage, so it’s fairly triv­ial to break up key­words into their com­po­nent parts and match either side of spans occur­ring in the mid­dle of a word — hardly com­mon in respectable markup. Even if there were more divi­sions, the fact that they occur with­out even a space either side of the ele­ment should be a giveaway.

The other notable fea­ture is the inver­sion of “web!master at exam­ple dot org (remove the excla­ma­tion mark)” con­cept — here, they’re using it to avoid imme­di­ate black­list­ing based on a reported domain.

This will in all prob­a­bil­ity be dealt with soon by peo­ple who know far more about it than I, but I thought it an inter­est­ing enough devel­op­ment to be worth men­tion, par­tic­u­larly in a “explain­ing the absur­dity of their markup” sense — this con­sti­tutes, for any­one sig­nif­i­cant who reads this, absolutely no rea­son for recon­sid­er­ing the (lim­ited) CSS given to cam­paign authors as it is best dealt with at a markup level alone.

In terms of min­i­mal impact to legit­i­mate email, this is the only way for­ward — con­trary to what Microsoft might have you believe with their recent brain-deadness con­cern­ing Out­look 2007’s ren­der­ing engine. (Though we’re all still guess­ing at the rea­son­ing behind this, and I’m falling closer to the anti-trust sep­a­ra­tion the­ory than any­thing related to security/spam pre­ven­tion, etc.)

# by Josh on January 31st, 2007 Tags: , ,
| 2 Comments »

Brilliant anti-AJAX comment

Pinched in full­text from a com­ment on a post regard­ing Web 2.0 (orig­i­nally writ­ten for FT, so it’s not par­tic­u­larly geeked out).

Such pages, how­ever, tended toward dull­ness and infre­quent updating.

Or, to put it another way: Such pages tended to ful­fill the orig­i­nal vision of the Web, which was to allow absolutely any­one to pub­lish infor­ma­tion that might oth­er­wise be lost to the pub­lic, in a way that allows it to be searched, indexed, book­marked, and linked to related infor­ma­tion. And accessed by absolutely any­body who’s look­ing for it.

As opposed to today’s “dynamic” Web, where you need a broad­band con­nec­tion, an industrial-grade graph­ics work­sta­tion, and more plug-ins than a Roman orgy just to look up the atomic weight of molyb­de­num. Which you can’t book­mark because the URL is a dynamically-generated con­glom­er­a­tion of the host­name, your ses­sion ID, the phase of the moon, and the bra size of the webmaster’s cur­rent girl­friend, that doesn’t point to a page that’s actu­ally stored on disk somewhere.

As nifty as it is that peo­ple have found new ways to make use of HTTP and HTML, we seem to be slowly los­ing the very con­cept of “pub­lish­ing” as “pre­serv­ing a record of today for future recall”. Instead of being the equiv­a­lent of an “address” where one can “go” to retrieve infor­ma­tion, the URL has become a “magic incan­ta­tion” that instructs a dis­tant server to per­form some action that may or may not pro­duce the same results as the last time it was used.

In some ways, that’s good: it’s nice to be able to use the same mech­a­nism to say “Bring up the lat­est edi­tion of Dan’s blog”, “Show me the cur­rent pres­sure and tem­per­a­ture read­ings of Injec­tion Molder #7″, and “Dis­play page 7 from our company’s 2003 annual report”.

But there’s some very scary Orwellian poten­tial here, as well as the risk of exac­er­bat­ing the Dig­i­tal Divide by con­stantly ramp­ing up the min­i­mal plat­form needed to access much of the web. Those librar­i­ans Dan men­tioned lately shouldn’t be the only ones wor­ried about mak­ing sure that a large per­cent­age of online con­tent remains “dull” and “static”.

I think the “Orwellian poten­tial” bit is a load of scare-mongering crap (in rela­tion to the other con­cerns posed in the arti­cle, at any rate), but every­thing else rings true.

I am, at present, work­ing on the first large-scale project I’ve been involved in where <a href=“http://en.wikipedia.org/wiki/AJAX/ title=“Asynchronous JavaScript and XML”>AJAX is being utilised. In this instance, yes, it was my call: yes, I do feel it’s jus­ti­fied (rea­sons include traf­fic, and the advan­tage of not hav­ing to reload an entire page — yes, it’s large scale enough for that to be sig­nif­i­cant — and sim­ple usabil­ity, because the archi­tec­ture is such that users will desire to move quickly between ele­ments of con­tent, and AJAX facil­i­tates that. More details post-release). We’ve been very care­ful to pre­serve func­tion­al­ity in non-XMLHttpRequest enabled UA envi­ron­ments, but it’s still not per­fect — book­mark­ing is one (minor, given the nature of the con­tent) prob­lem that still requires rec­ti­fi­ca­tion: that’s one thing I’m hop­ing to resolve tomor­row (along with gen­eral CSS com­pata­bil­ity back to IE 5, pos­si­bly 4 — but that’s not par­tic­u­larly rel­e­vant). The Javascript is not par­tic­u­larly “unob­tru­sive” (still using inline onclick), which I’m hop­ing to sim­i­larly resolve prior to launch, but it’s not of any par­tic­u­larly great consequence.

This is not a site to be archived, as the author of the com­ment above laments. But he shouldn’t. That wasn’t ever this site’s pur­pose, so I’m not par­tic­u­larly con­cerned if the markup isn’t pres­tine. Yes, there will be RSS/Atom syn­di­ca­tion. It’s a fairly Web 2.0 buzzword-compliant site, though (I hope) not par­tic­u­larly unnec­ces­sar­ily adop­tive of such tech­nolo­gies. We’ll see.