Entries
Filters: Sorted by date
More on Search
Tim Bray’s series on full-text search has got to the meaty bit: how search engines actually work, including an overview of the kind of data structures they use (presented in XML format for readability). The basics are a lot simpler than you might think. Tim has also posted some thoughts on how people actually use search, of which the most interesting point is that advanced search is hardly ever touched.
[... 222 words]Quick testing of alt attributes
Via Web Graphics, ScriptyGoddess’ Get ALT Info bookmarklet, which displays a list of all of the images on a page along with their alt attributes; great for testing a page to make sure you haven’t missed any.
Storing trees in a database
SitePoint: Storing Hierarchical Data in a Database, by Gijs Van Tulder. The article first shows how the easy way of storing hierarchies in a database, using parent fields and a recursive PHP function to iterate up the tree. It then goes on to talk about a far more interesting alternative called “Modified Preorder Tree Traversal” where trees are first “flattened” in to a heap-like structure, then each node is stored with a pair of numbers representing that node’s position in the tree. I’d seen this somewhere before but Gijs Van Tulder’s explanation is far clearer, and comes with some good examples showing how this unconventional storage method can retrieve all of the eventual children of a node in a single query. He also talks about ways of updating the tree structure when new items are added.
Thunderbird supports extensions
I’ve been pretty unexcited by Thunderbird so far: I’m pretty picky about my mail clients (so far Evolution is the only client I’ve really liked) and Mozilla’s never really lived up to my expectiations. I’m preparing to change my mind now that Thunderbird supports extensions. Firebird’s extensive collection of extensions is one of its strongest advantages, and the idea of a mail client that can be customised in a whole bunch of different ways by adding new extensions is pretty inspiring. I might even have to try and learn to write some myself.
The Matrix Reloaded, Abridged
The Matrix Reloaded: The Abridged Script, by Rod Hilton (via teeb!). Do NOT read this if you haven’t seen the film yet; you won’t get the jokes and it’s full of spoilers. It’s the best/funniest analysis of Reloaded I’ve seen yet.
Gorgeous CSS Rollovers
I’ve been planning a follow-up to my basic link styling tutorial for over a week now, but it’s going to be a lot shorter now thanks to Al Sparber’s excellent Uberlink CSS Rollover tutorial, which covers a lot of useful concepts and ends up with a truly gorgeous looking result. Thoroughly recommended.
Easier form validation with PHP
Let’s talk about form validation. Here’s what I would class as the ideal validation system for a form in a web application:
[... 1,170 words]HTML Definition Lists
Ben Meadowcroft has a new tutorial up showing how definition lists can be used in semantic markup for lists of definitions, such as glossaries.
[... 189 words]Gecko beats IE!
I haven’t looked at the statistics for this site in a few months. It turns out I was in for a pleasant surprise:
[... 103 words]Eldred Act Reasoning
Lawrence Lessig explains why the proposed Eldred Act does not go further in its aims to reclaim the public domain.
IRC on your mobile
Russell Beattie has posted an enthusiastic description of a new IRC application for his mobile phone. It looks really neat, but what got me really interested was his post today about his new laptop:
[... 148 words]Origin of “list comprehension”
Via Jarno Virtanen, a comp.lang.python post explaining the origin of the term “list comprehension”, Python’s clever alternative syntax for filtering lists (see this chapter of Dive Into Python). The term comes from set theory; it’s nice to know that stuff was worth learning after all ;)
Python generators for database result sets
I’ve read several articles on Python generators now, and I had almost got my head around them, but then I read this: Iterators and Databases by Andy Todd, which demonstrates a simple but intuitive way of using generators to iterate through rows from a database query without having to load all of the rows in to a list in memory first. Brilliant.
[... 165 words]Accesskeys on ALA
Accesskeys: Unlocking Hidden Navigation is the first new technical article on A List Apart in months. I didn’t think there was much that could be said about accesskeys, but the tutorial has some nice ideas to help make them more obvious without being too intrusive. I think the approach demonstrated by the The Ontario Ministry of Energy site is the most appealing, with single letters corresponding to accesskeys underlined as they are in application menus.
Another MP Blogger
Fantastic! Tom Watson has now been joined by Richard Allan (Liberal Democrat MP for Sheffield Hallam) in the ranks of MPs with their own weblog. It looks like it’s going to be really good; Richard is something of a geek (he runs RedHat 8.0 at home) and in one of his first entries he takes advantage of his position as an MP to extract information from Tiscali about broadband pricing issues in the UK.
[... 123 words]Evangelism is WAR
Evangelism is WAR is a fascinating account (actually, the first chapter of an upcoming book) of the principles behind Technical Evangelism at Microsoft and the methods they use to establish their platforms as the dominant players. It’s author is James Plamondon, who worked at Microsoft as a Technical Evangelist for 8 years. It’s a great read, and it’s also entertaining to see developers and customers referred to as “pawns” throughout. Found via a link on the Mozilla Tech Evangelism site.
Further more...
By coincidence, Jeffrey Zeldman just posted something in a similar vein to my previous rant, looking at things from a different angle:
[... 181 words]Missing the point
The Register’s coverage of the end of development for IE on the Mac makes some worrying conclusions:
[... 506 words]Tim Bray on search
I love it when bloggers stick to their word. The other day, while describing a quick Perl hack that really impressed a major client a few years ago, Tim Bray mentioned the following:
[... 240 words]Improving label element discoverability
My good friend Andy is soliciting applications to be his other half via his blog. He’s a lovely guy, so go sign up! More importantly, the stylesheet for his romance test includes this gem:
[... 98 words]More practical benefits of web standards
D. Keith Robinson recently launched the redesigned website for the Washington State Drowning Prevention Network. He has written a fascinating account of the development process used for the site, which validates as XHTML 1.0 Transitional and uses CSS for layout. The following extract in particular caught my eye:
[... 199 words]Aha!
Well that explains an awful lot. I was getting a huge number of complaints about lost comments when people were told off by my comment HTML checker, so it’s nice to know that the problem wasn’t entirely my fault! I fixed the problem (and dramatically improved the usability of the system as a whole) a few days ago by adding a proper preview / re-serve the form ability to the comments system.
Javascript, the DOM and application/xhtml
One of the side-effects of switching my blog to serving pages as application/xhtml+xml to browsers that support it (mainly Gecko engine browsers) was that my blockquote citations script simply stopped working in those browsers. The reason this happened is touched upon by Mark Pilgrim in The Road to XHTML 2.0: MIME Types: essentially, when dealing with XML documents Gecko needs you to use document.createElementNS in place of document.createElement when manipulating the DOM.
Phil Ringnalda on Firebird extensions
Phil Ringnalda writes about Firebird extensions:
[... 188 words]More CSS Zen Garden submissions
The CSS Zen Garden is growing at a pretty impressive rate, with another three submissions since I last checked it a few days ago: Friendly Beaches, Calm & Smooth and Viridity. Also added recently is What Lies Beneath, which is unique in being the first horizontally rather than vertically oriented layout. It’s a shame there’s no automated way of tracking the garden (an RSS feed of new submissions for example) as I keep on forgetting to check back for new material.
Course management systems
Via EdTechDev, this report on the important characteristics of course management systems makes very interesting reading. I’ve been considering doing something along these lines for my final year project at University, but I hadn’t realised how much work had already been done in this field. It still looks like an area with a lot of space for improvement though.
time_since()
I’ve changed the date heading for each post to display the relative time since the entry was posted, rather than absolute the date and time. My main reason for doing this is that it solves the timezone problem; all times on this site are in GMT, but the majority of the site’s visitors are likely to be in different timezones. Showing the time elapsed since the entry was posted serves everyone regardless of their location.
[... 126 words]