This is as days pass by, by Stuart Langridge

Mesh networking

The Grauniad have an article describing mesh networking, the new idea where every node on a Wi-Fi network becomes a repeater, which means that as you get more people on the network it becomes easier to use, not harder (as with mobile phone networks). I think that this is a great idea -- sadly, it doesn't solve the current problem of how you get broadband in the middle of nowhere (because the theory behind mesh is that there are lots of other Wi-Fi people around you -- imagine that everyone has a warchalking symbol on their forehead), but it would still be very cool. And, to boot, it stiffs the mobile phone companies who blew billions of pounds on 3G technologies that are going nowhere. That'll teach them to rip off customers, won't it? -----

External link icons the CSS way

A few days ago, Mark Pilgrim wrote up some details on how to automatically insert an image before off-site links, using Movable Type macros. I don't like doing it that way; it's possible with pure CSS (assuming you have a browser that supports CSS3 selectors -- this means Mozilla, in case you hadn't guessed). If you are using Mozilla, you'll see a little world icon ((ext)) after each external link. Read on for a description of how the technique works.

Mark's method works by using MT macros to assign a class of "offsite" to off site links, and then styling those links accordingly. Using CSS3 selectors, we can style off-site links directly without having to assign them a class or run any server-side code. Here's the code to do it, and then we'll discuss how it works.


/* Add an external-link icon to absolute links */

div.blogbody a[href^="http:"] {
        background: url(/images/remote.gif) right center no-repeat;
        padding-right: 12px;
}

div.blogbody a[href^="http:"]:hover {
        background: url(/images/remote_a.gif) right center no-repeat;
}

/* ...but not to absolute links in this domain... */

div.blogbody a[href^="http://www.kryogenix.org"] {
        background: transparent;
        padding-right: 0px;
}

div.blogbody a[href^="http://www.kryogenix.org"]:hover {
        background: transparent;
}

/* ...or to the "google for $postTitle" link for each entry */

div.blogbody a[href^="http:"].googlelink {
        background: transparent;
        padding-right: 0px;
}

div.blogbody a[href^="http:"].googlelink:hover {
        background: transparent;
}

This all works by using the CSS3 "starts-with" selector, ^=, on attributes. Where we have a selector a[href^="http:"], that means "select all a tags where the href attribute starts with the string http:". This will select all absolute links, i.e., those that are not given as a link relative to where the current page is. That's our first selector: it says "add this background image and a bit of right padding to all absolute links". (Note that the technique of adding a little bit of padding and then putting an icon inside that padding as a background image, to make it look as though the icon is part of the flow of the page, is one that I got from Eric Meyer on CSS.)

(Ignore the second rule for the moment.)

Now, all outside links are absolute links (because they're not on the same server as the current page), but some internal site links may also be absolute (for instance, permalinks often are). So our third rule removes the background and padding we applied above for absolute links that point to my domain. (You'll have to customise this bit for your own domain.)

Ignoring the fourth rule for a little bit, the fifth rule does the same as the third rule, for absolute links with class "googlelink". This is because posts here have a "search Google for the post title" link, which is itself a small icon; it looks a bit daft to have a small representative icon (the magnifying glass) followed up by another small icon! So this suppresses the "external link" indicator for that particular link (which is defined as class "googlelink" in the MT templates).

Note that flashy people could have defined the third and fifth rules as one rule, because you can add multiple selectors on a rule; this should work:


div.blogbody a[href^="http://www.kryogenix.org"], div.blogbody a[href^="http:"].googlelink {
    etc etc etc
}

but I wanted to take my time over this, because CSS3 selectors aren't all that widely supported.

What about those rules that we ignored, the second, fourth, and sixth? Well, they apply to the absolute external links in exactly the same way as rules 1, 3, and 5, but they add the pseudo-class :hover. So when you mouseover one of our external links, these new styles apply. All this does is switch in a new version of the background image (in this case, an animated spinning version of the world image).

The images come from Matterform's excellent QBullets collection.

So, there you have it. Fortunately, Internet Explorer, which doesn't support CSS3 selectors, doesn't partially apply them or anything; our selectors above just don't match anything and hence the view in IE is unchanged (you just don't get the neat icons).

For those of you who are Mozillaless and remain unclear on what this should all look like, here's a screenshot. See how the "Show, Don't Sell" link, which is external, has the icon, whereas the "more detailed writeup" link, which is a link to somewhere else on kryogenix.org, does not.

How the external link
icons look in Mozilla

Web "designers"

An "association of web designers" advertise themselves (via camworld) in the most appalling way ever. "We give you just the best of the best !!!!!!!" Well, I'm convinced. Love that background image.

RIAA Site Defaced

Chris Chapman has a note on the RIAA site defacement (via Dave Winer), and includes a screenshot, which is something that I couldn't find when I heard about the defacement yesterday or the day before. (The attrition.org defacements archive seems to no longer be archiving defacements, and I don't know if anyone took up the slack.) I shouldn't laugh at this, really. But: Ha. Ha. Ha. -----

Six Steps To Computing Obscurity

Six Steps To Computing Power (via Rebecca Blood). 9 inch monitor! Woo! Where are Kaypro now, eh? The Kaypro II was a clone of the Osbourne 1, apparently. I had an Osbourne. Blimey. It's all just a little bit of history repeating. -----

IE skin for Mozilla

The Mozilla IE Skin (via Sam Buchanan) is sick and wrong. I am really seriously tempted to bang it on a few machines at work and see if anyone notices. :) -----

Douglas Adams is king

How to Stop Worrying and Learn to Love the Internet, an article by Douglas Adams. See? DNA gets it. The world lost a powerful intellect when he died. -----

Beter weekend

I just have to say here that whoever you are, whatever you do, I had a better weekend than you did. I wish it wasn't over. -----

How the Wayback Machine Works

How the Wayback Machine Works. Fascinating. These large-scale massive-data-store databsaes running on big collections of little PCs running Linux or BSd and tied together by scripting languages such as Python or Perl seem to be becoming the way to solve this sort of problem. Bet the big databse vendors aren't too happy about it. -----

The True Meaning of Programming Book Titles

Programming Book Titles. Warning: real tech humour lieth ahead. -----

Guide to the Pub

SIRC - Passport to the Pub, a guide to what a pub is and how to behave in one. I can't decide whether this is an extremely elaborate and straight-faced windup or a genuinely useful travel guide. But then I know what a pub is. Comments from Americans and other forms of non-pub-understanding life appreciated. Contains this fantastic anecdote:
A village publican running a particularly pleasant pub called The Red Lion was told by an American tourist that his pub was �much nicer than the other pubs I have visited in the �Red Lion� chain�.
Sheer class. -----

W3C evangelism

The W3C have started evangelising web standards (via Adrian Holovaty). It's another list of common objections to moving to standards-compliant design and answers thereof. While this is no new technique (god knows, Zeldman's been doing it for ages, and the WaSP has a whole FAQ on the problem), it's nice to see the W3C taking an active part in this. -----

Show, don't sell

Zeldman has an excellent little writeup on how to sell web standards to your peers or boss or clients: Show, Don't Sell. -----

Downtime

Sorry about the downtime. It was all my fault. Oops :-) For those of you who like to laugh at others' misfortune, there's a more detailed writeup of what it was that went wrong. Warning: it is heavy on technical detail. It also exhibits just what a moron I am sometimes, so if you cringe at Fawlty Towers or are bored by technical detail, you might want to avoid it. :) -----

Dot unspread

IMS/ISC out of the ICANN Running (from Aaron). Damn. I spread the dot and offered my support, but apparently my word doesn't count for anything: ICANN noted disparagingly that endorsements for the IMS/ISC were "disproportionately of owners of personal and family websites, bloggers and small-scale technical consultants". What, for the .org domain? Shock. As opposed to the huge corporate behemoths who clearly need nothing to do with .org. Do we never win? -----

Office paintball

Crystal Decisions v9 office paintball Best score so far in our office: 657. -----

nomo comments

I've temporarily disabled the Mozilla pull-comments-into-the-page trick, because it isn't working quite right, and I'm not sure that it's the best way anyway. But I am sure that the best way is not the hideous hack that is MT templates for this, with all the <MTCommentPreview> tags and all that rubbish. And having to specify static so it knows whether to rebuild your index page. Bah. I'm still convinced that building static pages is not the way to go. -----

Fax your MP

I've just sent a fax to my MP (via the amazing FaxYourMP) to protest the European Union Copyright Directive, the EU's pernicious equivalent to the American DMCA. You can read the fax, and perhaps you should think about sending one of your own. -----

The (Rational) Street Performer protocol

The Rational Street Performer Protocol a revision of Bruce Schneier's original Street Performer protocol designed to make it more beneficial to pay than to freeload and wait for everyone else to pay. It'd be interesting to see a large scale test of this sort of thing; the only co-operative payment scheme I know of was when Stephen King sold The Plant, and it didn't run quite along Street Performer lines (which might explain why it didn't work very well). -----

Mice and music

BBC News has a story about a 'cruel' mouse music study (via Bill), where mice were given amphetamines and then played music by The Prodigy, and they died. However, those exposed to Bach also died, so it's not just the music. I know I shouldn't laugh at this sort of thing, but I just can't help it. The best bit was that those injected with salt water rather than drugs fell asleep, whcih just goes to show how good The Prodigy is. Well, apart from Firestarter, which everyone likes :) -----

Big Brother watches

Office of Surveillance Commissioners
"This website is primarily designed to be used by those who authorise and conduct covert surveillance operations and covert human intelligence sources"
The most worrying thing is this: Separated at birth: Sir Andrew Leggatt Chief Surveillance Commissioner Devon from Knight Rider One and the same? You be the judge. What could this mean? Is the Knight Foundation really controlling the British public? Are we to see Security Service agents travelling around in an implausibly massive black lorry? Worrying. -----

CSS only rollovers

Style Sheets vs. JavaScript covers CSS image rollovers -- change the background colour of a link containing an image on :hover, and make select parts of your image background transparent, and you can get interesting outline effects and so on. I suspect that if you were really flash you could actually have a totally different image, but you'd have to be pretty outstandingly flash -- dither the images so that pixels 1,3,5,... are from image 1 and 2,4,6,...are from image 2, and make them transparent. Or something. Besides, the guy's called Stuart, which automatically (a) earns him one coolness point, and (b) means there's more than one of us and we might catch up with all the flamin' Erics that there are in the tech world in general and in the CSS/HTML world in particular. -----

Wikipedia

Wikipedia, an attempt to produce a complete encyclopaedia, licenced under the GNU FDL. Wow. Even if the pedant in me thinks that it should be "wikipaedia". Or, more properly still, "wikipædia", using the &aelig; ligature. -----

Broken searches

If you search the Atlantic online for "Schneier", it finds numerous hits. But those hits aren't there! You get an unhelpful message suggesting that you try the search engine. This is the most broken thing ever. People: your search engine must only return valid hits! Sigh. UPDATE (19-08-2002): the search engine appears to work again. Moreover, the Homeland Insecurity article (which is the one I was looking for) is excellent. Must have just been a weirdo glitch rather than a systematic problem. Good show, Atlantic Online. -----

Apostrophe Protection Society

Apostrophe Protection Society I'm amazed I haven't written a rant about apostrophe misuse before. Still, I shall remember this link so that I can point people at it. -----

Keep viewing rights to England games

BBC SPORT | Football | FA seeks England TV deal The FA are attempting to get back control of viewing rights for England away games. Currently, the host country makes all the decisions, which could lead to repeats of such situations as the crucial England-Finland qualifier in 1990 being broadcast only on defunct pay-per-view channel u-Direct. It's not often that I find myself agreeing with the FA, especially when it's something that concerns TV rights or moneymaking, but it's heartening to see Paul Barber, the FA director of marketing, say "it is our brand they are selling, and our fans who miss out. " I can even excuse him thinking of the team as a "brand", as long as his focus is still on the fans and not on the money. Good work, FA!

The true value of the net

The media titans still don't get it (via random($foo)), an essay by Scott Rosenberg on the true value of the net.
In this context, statements like "Web content is dead" or "AOL Time Warner will dominate" aren't so much wrong as irrelevant. Web content is everywhere. No one can dominate the Internet. And the Web belongs to its users. That's not the end of a story, it's the beginning.
-----

MEETUP

MEETUP looks interesting. Choose a city near you and see what little groups there are planning on meeting up to chat. Fascinating. I may have to attend one or two of these. -----

Linky goodness

Random cool things: pymoz, a Mozilla powered web browser written in Python. Blimey. I wonder if it works? TortoiseCVS lets you work with files under CVS version control directly from Windows Explorer. It's freely available under the GPL. The MIT blackjack team conquer the casinos (via random($foo)) -----

FLOSS

The ree/Libre and Open Source Software Survey asked a variety of questions of 2784 free software/open source developers, and collated the results.

Creating a brick

Addition to the writings section: Creating a brick. Comments from physicists gratefully accepted. -----

Wil Wheaton vs. Barney Celebrity Boxing

A benefit event for the Electronic Frontier Foundation, featuring Wil Wheaton vs. Barney celebrity boxing. I wish I lived in San Francisco. Not often. But for the 22nd of August 2002. -----

Avoiding personal conflict on mailing lists

Avoiding personal conflict on mailing lists, a brief article explaining the stuff that everyone already knows but too many people just ignore. -----

MT 2.2

Jonathon Delacour talks about MT 2.2, as did Mark Pilgrim, and our famous friend Lots O'People has been ranting about its meaty goodness for many a week now. I keep wanting to go for it, but I keep wanting to not have to do any work. I am exceptionally unkeen on moving the archives to MySQL; I really cannot see the point of using a separate database process for this. Don't like it. As jwz once said:
Once those database worms eat into your brain, it's hard to ever get anything practical done again. To a database person, every nail looks like a thumb. Or something like that.
-----

GPL licensing quiz

Free Software licensing quiz from the Gnu project (via Debian Weekly News). Check your knowledge of the GPL -- I got 5/9... -----

CSS design

AllTheWeb, the search engine, are running a css design contest (via css-discuss). Here's a chance for CSS to shine -- go for it and wow the judges. $750 of Amazon vouchers on offer for the winner, which is a pretty smart prize. -----

CSS Challenge

The CSS Challenge maintains that "tables are OK". Yep. Certainly are.And for tabularly laid out data like this, I'd probably still use them, I think. CSS didn't mean deprecating the TABLE element, it meant using it appropriately, without unsemantic stuff. (I reckon there's a reasonably easy solution with vertical-align and making INPUT elements float: left, mind). -----

Linkbacks

There should be some way of identifying from a blog post what its permalink is. This comes up in referrer log analysis; most links from a weblog are not from the archived version of the post, but from the front page of the weblog, and there's no way that an automatic process can deduce from that where to link back to (since if you just link to the front page, the post will disappear from there in pretty short order). Something like RSS auto-discovery, but for individual posts. I can't think of a good way of doing this, without suggesting something like all permalink links having a class of "permalink". Moreover, an automatic process would have difficulty in the following situation: <div class="post"> blah blah blah post 1 blah blah <a href="somewhereelse" title="Link to someone else's weblog"> blah blah blah </div> <a href="archives/post1" title="Permalink for post 1" class="permalink"> <div class="post"> blah blah blah post 2 blah blah <a href="somewhere" title="Link to a second person's weblog"> blah blah blah </div> <a href="archives/post2" title="Permalink for post 2" class="permalink"> If you're an automated process watching referers for the second person's weblog, and someone follows the link in the code above, you could grab the source of that page, but there's no way (as far as I can see), even after you search the source of the page and find the link to your own blog, to know whether the permalink associated with it is the one above it or the one below. Suggestions welcomed. This is why I haven't implemented linkbacks yet... -----

Unicode

Useful Unicode resources, if you want to test your browser or work out how to display non-English characters: http://www.unicode.org/iuc/iuc10/x-utf8.html http://www.alanwood.net/unicode/ -----

Rolling over

"J K ROWLING, in Czech translation, has the appropriate feminine suffix added to her name: thus Harry Potter titles spotted in Prague bookshops are, rather strikingly, by J K Rowlingova". (via Dave Langford's Ansible SF newsletter). Gotta laugh at that :-)

Movable Type User Survey

The Movable Type User Survey, for people using MT. -----

The US and Europe

Different worlds (via my best friend) "Behind a smokescreen of trade and currency issues, alignments are shifting. Perhaps we should wake up to the fact before someone discovers that Orwell never wrote 1984. He meant 2004 and the clock is ticking." Walter Ellis, in the Scotsman, discusses the changing political climate, the US administrations increasing perception of Europe as marginalised, and the truth or falsity of such an assumption. When even such historically close allies as Britain and the US find themselves, not in open-faced opposition, but a state of avoiding speaking about the problems that each sees within their relationship, if can't be a good thing for either party or the relationship. Clearly there are overtures by each side to talk about their differences, but they're hobbled by all of reactionary or angry elements on each side, placating the people at home, and by the open and visible nature of diplomatic discourse -- unable to discuss some problems in the fear that others might hear, they in the end avoid discussion. I hope it doesn't all end in tears. America needs to be perhaps less angry, and Britain less conciliatory, to return to the unique "special relationship" unlike that which any other countries have managed, before or since. -----

Plush Cthulhu

Tales of the Plush Cthulhu (via Lots O'People). Ia! Ia! -----

Choose your politics

According to the World's Smallest Political Quiz, I'm a libertarian. -----

Metacrap

Metacrap: Putting the torch to seven straw-men of the meta-utopia is an essay by Cory Doctorow which clearly articulates the problems that I saw (but was having difficulty explaining) in my essay on the semantic web. -----

ASCII page design

Aquarionics now has the design done completely in ASCII -- logos and everything. It's mental, although it doesn't work quite properly in Mozilla 1.0. Regardless, I have to say: Aquarion, you're a lunatic. :) -----

Dork Tower

Dork Tower, a comic strip for people who've roleplayed in the past. Pretty funny if you like that sort of thing. -----

A guide to standards

Web Standards for Hard Times (via Sarabian) is a very neat and simple guide to what web standards are and how you should be applying them. Well done, WebMonkey. -----

Eric Meyer on CSS

Eric Meyer on CSS is a pretty darn cool book. I found that I already knew a reasonable proportion of it, but there were a few very neat tricks in there (one of which Aquarion has put into use already). Full review when I get a sufficiently round tuit. -----

No more harmful gotos

Edsger W. Dijkstra has passed away. GOTO is still considered harmful. Requiescat in pace. -----

Smile

Smile, they said, it could be worse. So I did, and it was. -----

Downtime and popularity

Well, blimey, I'm popularity boy. First Zeldman, then Slashdot. Naturally, being slashdotted took down my webserver. Apologies to all those others who are also hosted here :) Representative comment from Slashdot: "Whoever created this site is in serius need of a real job or a demanding girlfriend." Heh. ;) -----

The MP3 (political) Party

The Register reports on the MP3 Party, a new political party set up in the UK, whose "philosophy is based on the mathematical theory of complex systems, which states that complex systems of any kind are inherently dysfunctional". Apparently they wish to apply this theory to the business of government. A party modelled on the free-flowing, anarchic nature of the online P2P communities. I can't decide whether this is inspired or lunacy. Possibly a little of both. But I might vote for them in the next election... -----

First for Pacman

For the first time in my entire life, I notice something before Mark Pilgrim does. So it was pointed out to me by G? So what? Oh, sod off. I'm never allowed to be first. :-)

IESpell

ieSpell, a spell checker add-on for Internet Explorer (via Ordinary Life). I can see the point of this; not only is it client-side and therefore exceedingly fast, but it will give you spell-checking in everything you deal with. However, it's a browser plugin, and I don't think that that's the way that stuff should be going -- I can't help thinking that sites should have an easy way to implement spell-checking for their users. It should be relatively easy to build something on the Stuffed Dog XML-RPC Speller web service. The perennial choice between having it work for every thing that one person does, and having it work for every person doing one thing, I suppose. Besides, I use Mozilla. :) -----

Google Art

The Google Weblog has popularised the idea of Google Art; using Google's automatic colour highlighting of search terms in search results to create art, like this picture of Bart Simpson. Now you can do it too, with the greatest of ease! Try aqGoogle, the Photoshop of Google-based artistic endeavour. Just remember that when your entry wins the Turner Prize or gets in the Louvre, I get ten percent, right? :)

Eric Meyer haiku contest

Consolation Champs are running a haiku contest to win a copy of Eric Meyer on CSS (via zeldman). Naturally, I entered, despite the fact that I've already ordered the book. Maybe if I win I'll give the copy to Sarabian or something :) My haiku: Revolution comes Web emerges from winter Eric brings the spring -----

Comments and XML

Minor hack in place for comments: if you're using Mozilla, and you view comments, they get pulled into the front page rather than appearing in a popup. It's experimental and may not work, and I don't get that many comments anyway :) I created an XML template of all the comments posted to adpb, and there's a Castalian page which parses that XML file and returns only comments for one particular post (yeah, yeah, XSLT, whatever). The front page then, if you're using Mozilla, grabs that XML file, parses it, and displays the comments in the front page by DOM manipulation. It only works in Moz because I can't be bothered to chase the moving target MS XML stuff (is it MSXML2.XMLHTTP? MSXML3? Microsoft?) for such a marginal feature. Yes, I know I could do it with try/catch; when I need to, I use a technique like WebFX's XML extras. But, you know, unlucky. I still haven't sorted out all the comment template and so on, mainly out of laziness; it's a pain, sorting that kind of thing in MT. I'm toying with the idea of revitalising xlog, my weblogging management system, now that I've used MT extensively. -----

Boring CSS

Chris Casciano, he of the Daily CSS Fun project, has expressed his disappointment with page designers in Your CSS Bores Me, a short essay on how CSS-driven sites have boring cookie-cutter designs. I've talked about this before, but it's a worthwhile point. If I had any design skills at all (as opposed to development skill, which I do have some of) I'd be out there pushing the envelope. We need designers who can use CSS to its utmost, and there aren't many around. Is this just the problem of having to learn a new tool? Perhaps as authoring environments like Dreamweaver become more CSS-savvy we'll see more interesting uses of it, but I have my doubts about that; really innovative stuff comes from people who know the tech, and people who know the tech tend to hand-cut code for the power it gives them. Are there any really innovative CSS designs out there?

Absolute boxes inside relative boxes

Absolutely Buggy II (indirectly via Simon): a guide to CSS positioning of absolute boxes inside relative boxes. I do this on kryogenix, and Big John's guide was invaluable to explaining why it didn't work in everything apart from Mozilla (as usual). Simon reminds me that I should let other people know about these things. -----

This website belongs to Stuart Langridge. Contact details are available. Don't eat yellow snow. Valid HTML5, at least in theory, except for the bits that aren't because I'm that futuristic that I'm ahead of the spec, oh yes. HTML5 help from Bruce Lawson, among others. Fonts from the superb FontSquirrel. End.