Entries
Filters: Sorted by date
Artificial Diamonds
Wired: The New Diamond Age. Two companies in the US have perfected techniques for creating cheap artificial diamonds, virtually indistinguishable from the real thing. The story of how they got there is riveting—retired army generals purchasing cold war soviet technology, veiled death threats to scientists at conferences and best of all, a very real threat to the De Beers diamond cartel / monopoly.
[... 137 words]On blogging technique and better tabbed browsing
I’m addicted to tabs. Several times a day, I scan down my blogroll looking for blogs that have updated since I last checked, then middle click each one to open it up in a new tab in the background. I then work my way through each one, reading the earlier ones while the later ones are still loading (tabbed browsing makes being stuck on a modem a lot less painful). If I see anything interesting linked to from a blog entry I’m reading, I’ll middle click that as well. Within a few short minutes I’ll have so many tabs open I’ll be running out of space in my tab bar.
[... 399 words]Firebird and Mozilla chrome URLs
Jesse Ruderman (of indispensible bookmarklets fame) now has a blog. It’s off to a good start: here’s a useful summary of the different chrome URLs available in Firebird and Mozilla.
Multi part forms with Javascript
Andy Arikawa has a nice demonstration showing how multi page forms can be served up as a single page using some simple Javascript, resulting in a clearer form without loading times in between each page.
[... 279 words]Python script shell integration
In another silly Python/Windows hack, Hans Nowak shows how a simple Python script to move a file up to its parent directory can be added to the contextual menu for all Windows files. I can think of all kinds of useful tricks that can be enabled using this tool: instant uploading of a file to an online Photo Gallery for example.
Improved FormProcessor class
I get one or two emails a week about my FormProcessor class, making it the most popular of all of the code experiments I’ve posted on this site. Each time I’m asked if I plan to update it soon, and each time I reply that while I’d love to go back to it, I can’t promise I’ll ever get the time to take it further. The great news is that Peter Bowyer of Maple Design has been working with my code and has made a number of huge improvements to it. If you liked my version, you’ll love his evolution of it: it adds support for radio buttons, checkboxes and select fields and he’s got a number of other interesting ideas up his sleeve for the future.
Moveably Type with XSLT
Kevin Davis has set up an impressive demonstration of the power of Moveable Type templates when combined with browser-side XSLT transformations. He’s set up MT to output an XML document containing just his entries (similar to an RSS feed), along with a link to an XSLT stylesheet that causes Mozilla and IE 6 to transform the entry and render it as XHTML.
Don’t use document.all
I’ve lost count of the number of Javascript scripts I’ve seen floating around that include the equivalent of the following code snippet:
[... 164 words]Self-contained data: URI kitchen
I couldn’t resist this. Hixie has released a new version of his data: URI kitchen, to celebrate the addition of data: URI support to the latest Opera beta. In the spirit of recursion, I present this reformulation of the data: URI kitchen that uses client side Javascript. What better way to deliver such a thing than as a data URI?
[... 94 words]Code personalities
Danny O’Brien compares Perl with Python. Best observation: Python code just doesn’t have much personality compared to Perl.
Notepad popups
Ever time I see something like this I’m reminded of how truly irritating the internet would be if I hadn’t switched to Firebird.
Neat tip for clean URLs
Here’s one of the neatest tips for clean URLs I’ve seen yet, from Thijs van der Vossen. He’s come up with a mod_rewrite rule that checks to see if the requested file exists if you add .html on to the end of it, and serves it up if that’s the case. I’m posting the full code snippet here because it’s just too good to risk losing to link-rot in the distant future:
[... 88 words]A better image replacement technique
Over on Kryogenix, Stuart has solved the CSS image replacement problem with some clever application of the overflow: hidden; property. The Fahrner Image Replacement technique is often used to replace a heading with a background image (see most of the designs in the CSS Zen Garden for examples), but has the disadvantages that it requires an additional <span> tag to be added to the code and that some screen readers which follow the display: none; directive skip straight over the replaced text without reading it. Stuart’s new technique solves both problems, and works in modern browsers from IE 5/Win upwards.
Minor comment system improvements
I should have made these a long time ago: thanks Nat for reminding me ;) Comments no longer require an email address, and provide a proper error page with the comment intact if you forget to enter your name. They also now add http:// on to your site URL for you if you forget to enter it yourself. I added the last feature in the code that displays the comments, so it should fix all of the older comments with invalid URLs as well.
[... 116 words]Excellent PHP 5 Overview
HarryF’s PHP5: Coming Soon to a Webserver Near You is the most detailed overview of the features we can expect from the next major PHP release that I’ve seen yet.
XHTML for future-proof content
Don Park questions the benefits of emitting XHTML. In one sense, Don is right; publishing a whole site using XHTML in this day and age brings very little benefit and can cause a great deal of grief. But just because XHTML doesn’t provide advantages when publishing whole sites does not mean it should be written off entirely. As I’ve said on this blog many times before, XHTML offers an excellent format for future-proofing site content, especially chunks of content kept in a database. Keith D. Robinson makes some excellent points along the same lines in his latest essay, Standards, Semantic Markup, Distributed Authorship and Knowledge Management:
[... 299 words]Marketing Firebird
Blake Ross has published a page on Marketing Firebird. He makes an interesting comparison between Firebird and Kazaa, pointing out that Kazaa has over 3.1 million downloads a week with promotion only via word-of-mouth:
[... 325 words]Page Readability Bookmarks
I’ve long been a proponent of flexible web pages rather than restricting sites to a hard coded width in pixels, but now that I’ve started surfing at 1280x1024 I’m beginning to realise how true the statements about an optimum width for readable text really are. The simple solution would be to surf with my browser window resized to a sensible size, but old habits die hard. Instead, I made myself the following bookmarklet:
[... 157 words]The Doomsday Algorithm
I always thought you had to be an idiot savant to be able to state the day of the week for any date in history, but it turns out there’s a reasonably simple trick to it. The Doomsday Algorithm was first invented by Dr John Conway, also famous for creating the game of life. Rudy Limeback’s detailed explanation provides everything you need to know about the algorithm, how it works and how to memorise it.
Applications of RDF
Shelley Powers: RDF: Ready for Prime Time gives an overview of the many applications and services already deployed that use RDF in some way. Via that article, RDF in Mozilla Docs and RDF in fifty words or less, both published by the Mozilla project.
On Metadata
Tim Bray’s series On Search now has a table of contents page linking to each of the previous entries. The most recent article covers metadata, and includes some insightful commentary on the huge problem of gathering metadata from users in the first place.
Python 2.3
After numerous alphas and betas, Python 2.3 has been released. Python.org has highlights of the release, while A.M. Kuchling’s What’s New in Python 2.3 goes in to a bit more detail. There’s some great new stuff, but the feature that particularly caught my eye is this:
[... 147 words]Quality news site URLs
Nathan Ashby-Kuhlman is devoting this week on his blog to discussion and analysis of news site’s URLs.Nathan’s 5 attributes for a good URL are worth repeating here as they succintly describe my own opinions:
[... 378 words]Superb CSS template/tutorial
I’m not sure how I missed this one. Holly Bergevin’s Perched Upon a Lily Pad is a CSS demo that shows off a 3 column layout with a flexible header, full length columns, horizontal navigation bar and complete descriptions of exactly how it all works contained within the page. It’s very educational (I’ve learnt a trick or two just by reading it) and a great example of solid, cross-browser CSS design.
[... 97 words]Validating HTML from behind a firewall
Steve Clay’s Private Validator is a really handy tool for people who working on intranet sites who want to be able to run them through the W3C’s validator. It’s a PHP script which you install on a server behind the firewall that has access to both the intranet and the outside world. It comes with a bookmarklet which activates the script. When the script is activated, it grabs the indicated page, then uploads it to the external validator and grabs the result. It’s pretty neat, but even neater would be some kind of desktop application that did the same thing. I can almost feel a Python script coming on.
PHP XPath Implementation
This looks like it could be really useful: an XPath implementation in pure PHP (no extra modules required), via More Like This.
Let’s go ::outside
Tom Gilder has started a series of posts looking ahead to CSS3. In his first installment, he describes the awesomely powerful ::outside pseudo-element. Using this, CSS3 authors can apply multiple backgrounds and borders to single elements (at the moment doing so requires fussing around with nested divs). If you don’t instantly see the importance of this, take a look at some of the attempts to render rounded box corners using CSS. All of them require the addition of extra presentational elements, none of which would be needed if we could use the ::outside selector instead.
Better web forms
Adam Kalsey has kicked off Simplified, a new series on web usability, with some thoughts on creating usable web forms. The conversation continues on Paul Scrivens’ blog, and covers a lot of interesting ground. D. Keith Robinson also has some tips on better form design in his latest Gorilla Web Tip.
Ludicrously simple templates with Python
A long, long time ago I wrote my first ever PHP templating system. It was pretty simple; it consisted of a function that took two arguments: the name of a template file, and an associative array of replacements to make on that file.
[... 251 words]