Entries
Filters: Sorted by date
YAGNI and DRY
Two acronyms that have been seeing a lot of action at work recently are YAGNI and DRY. They’re great principles to go by in any case, but in a pair programming environment they take on a whole new level of utility.
[... 230 words]How not to use OOP
Via Hans Nowak, Understanding Object Oriented Programming, or how to turn 19 lines of easily maintained code in to an OO monstrosity spanning 7 class files. This is not the way to make code more maintainable. For comparison, here’s how I would implement a solution to the same problem in Python, assuming the availability of an equivalent function to Java’s System.getProperty("os.name") (os.name is similar but inappropriate for this example):
Bounty Hunting
Via Jeremy Hylton, Mark Shuttleworth (super-rich geek and space tourist) is offering $100,000 worth of bounties in 2004 to developers willing to help out with a number of Open Source projects, most of which are to be developed in Python. A comparison can be made here with Mitch Kapor, another geek-done-well who funds open source development through his sponsorship of the Open Source Applications Foundation.
[... 207 words]New PHP community site
Via The Farm, Chris Shiflett is calling for assistance in setting up a new PHP community site to run along similar lines to use Perl. Chris has already secured an offer of hosting and support from O’Reilly and is now seeking offers of help from potential contributers. PHP has long needed a site of this kind (PHP Builder has lost a lot of momentum since being sold by Tim Perdue) so this could be a worth while project to get involved with if you have the time.
[... 140 words]Simpler content managment
Perls of wisdom in a sea of site mismanagement, via the ever-excellent Column Two:
[... 497 words]GAWDS now inviting new members
The Guild of Accessible Web Designers is a world wide organisation of web designers and developers committed to helping each other, and promoting the message that accessible web design is ’good for business’
. I’d describe the organisation in detail here, but the official site does a far better job than I could. If you’ve been following the web accessibility community in any detail You’re likely to recognise a number of the names on the registered members list; I’ve been following GAWDS developments for a while and its shaping up to be a great resource for accessibility minded designers. I’ve also contributed an article on Writing good ALT text which hopefully provides some useful advice on a frequently misunderstood topic.
Dates on the web
D. Keith Robinson writes about Using Dates For Featured Web Content. Keith’s right, including a date with your content really is a no-brainer. I’ll add an anecdote of my own. Several years ago I ran a popular news site for Team Fortress Classic, a team based online first person shooter game with a thriving clan scene. I was careful to include dates on every piece of content, but in my youthful naivety I neglected to include the year. The years rolled by and the content built up until I suddenly realised that I was no longer sure what year some of it was written in! The site has sadly now passed in to history but the lesson remains: the web moves faster than you might think, so omitting the year in your dates is a pretty dumb thing to do.
[... 220 words]Extracting the length from MP3 files with Python
Ned Batchelder recently wrote about the difficulties involved in extracting the length from an MP3 file. We’re going to need to solve this problem soon at work; luckily, it seems that the answer may lie in the Python bindings for mpgedit, an audio file editing library available for both Windows and Linux.
[... 149 words]Downloading your hotmail inbox
Adrian just pointed me to a fantastic tool: Gotmail, a utility to download mail from Hotmail accounts. It’s a command line utitlity, written in Perl and making use of the curl binary, which can connect to Hotmail over the web and grab any new emails, saving them locally as an mbox file and deleting them from the Hotmail server.
[... 289 words]HTML entities for email addresses: don’t bother
I’ve suspected this for a long time, and now here’s the empirical evidence: Popular Spam Protection Technique Doesn’t Work. If you’re relying on HTML entities to protect your email address from spam harvesters—for example username@example.com—your email address may as well be in plain text. Chip Rosenthal downloaded a tool called “Web Data Extractor v4.0” and tried it on some test data to prove once and for all that the technique doesn’t work.
Selectutorial
New from Russ Weakley: Selectutorial, which taks his widely acclaimed step by step CSS tutorial style and applies it to CSS selectors. Having a full understanding of selectors is critical if you’re going to take full advantage of CSS, so if you don’t get them yet you should really check this out.
Repartitioning with Knoppix
I’ve been long bemoaning the fact that if you want to repartition your hard drive to install Linux as a dual boot with an existing Windows system the most frequently recommended method is to buy a copy of Partion Magic. You would have thought the open source software world would have provided a free alternative by now.
[... 217 words]IXR 2.0
Harry Fuecks has been hacking on my XML-RPC library, and has released a new version with some significant changes. His article on phpPatterns describes the changes and provides a link to download the updated code. He’s made a bunch of interesting architectural changes which take advantage of a number of useful PEAR classes, including HTTP_Request which provides support for proxies and authentication, two frequently requested features.
[... 127 words]Why run Windows on an ATM?
So you’re writing the software for an ATM. It needs to display something pretty on the screen, control the hardware that serves out the money and talk securely to your central servers. It also needs to be stable, secure, reliable and allow remote administration. Why on earth would you choose Windows as the operating system?
[... 213 words]Pyrex
Pyrex is a language for writing Python extension modules. It’s pretty interesting—the syntax looks very similar to Python (the authors claim you can write C extension modules without knowing anything about the Python/C API) but uses additional type hints to compile down to ultra efficient C code, ready to be imported in to your Python applications. The prime numbers example maakes things a lot more clear:
[... 236 words]Discovering Berkeley DB
I’m working on a project at the moment which involves exporting a whole bunch of data out of an existing system. The system is written in Perl and uses Berkeley DB files for most of its storage.
[... 339 words]Feed you
Wow, that’s what I call feedback! It’s a shame pretty much everyone hates the new design but I like it so it stays. I’ve taken a few tips though and tweaked the link colours a bit, as well as making a few other small changes such as a darker green for the header and a 1em margin around the page.
[... 129 words]PostgreSQL 7.4
Last week’s release of PostgreSQL 7.4 made a great open source project even better—it even managed to impress hard-core MySQL advocate Jeremy Zawodny. The detailed release notes show that most of the improvements were with regards to performance, but the thing that really caught my eye was tsearch2, the new full text indexing suite. A bit of digging brought up the CVS tree for the new module, which in turn lead me to this tutorial style overview of its capabilities.
[... 132 words]Collaborative Redesign
Out with the orange, in with the green. As with my last redesign, only the CSS changed. A fun deviation with this one was that it was a collaboration between myself and Natalie over nearly 5,000 miles, using edit styles and AIM to pass each other snippets of CSS and instantly try them out.
[... 123 words]Blogmarks
This entry was going to be another list of links, together with a note about how much I really needed to set up a separate link blog. Then I realised that it would make more sense just to set one up so that’s exactly what I’ve done. I still need to implement the archive but it’s getting dark so I’m posting this and heading home.
[... 211 words]The underscore hack
Via Web-Graphics, Petr Pisar’s Underscore Hack provides a new way of targetting CSS rules specifically at Internet Explorer on Windows. As with all such hacks, the pros and cons of using this approach need to be closely examined before deploying it. The hack takes advantage of the fact that adding an underscore to the start of a property name causes that declaration to be ignored by every browser except IE for Windows. However, the hack takes the dangerous step of using one bug to solve another. Peter-Paul Koch explained why this is a risky thing to do in a recent column for Digital Web magazine:
[... 431 words]Status Notification
Status Notification is a web application pattern from Ian Bicking that uses sessions to solve the problem of how to display simple status messages without displaying whole pages with just a one line message on them or passing a message in a URL. My current project could certainly benefit from this.
cgi_buffer
cgi_buffer is voodoo magic for Perl, Python and PHP scripts that automatically handles a bunch of bandwidth saving HTTP tricks such as Content-Length headers (which enable persistent connections), ETags for caching and GZip content compression. Pretty neat.
Contribute / ProFTPd problem solved
After further analysis of the Contribute problem described earlier, we discovered that Contribute was opening a new FTP connection every time we clicked a link within the application even before we had hit the “edit page” button to fire up the editing mode. Switching the connection over to use SFTP instead of FTP had the same problem, with a secure connection being opened for each link we clicked instead. The connections remained open until we shut down Contribute.
[... 137 words]Teaching CSS: there’s a long way to go
This email to the css-discuss mailing list does a great job of describing the confusion and frustration that still confronts traditional web developers who are only just starting out on the road to mastering CSS. When you’ve “got it”, it’s easy to forget how much of a paradigm shift it is away from old school table methods. Here’s an extract:
[... 314 words]Sprint PCS goes CSS
The Sprint PCS site has relaunched, using XHTML 1.0 transitional and CSS. It’s another great example of a mostly web standards compliant commerical/corporate; there are a few validation errors thanks to a quarrelsome CMS. France Rupert is the lead developer behind the new site and is promising a detailed writeup of the process and challenges behind the redesign. France hails from Kansas City, so hopefully we’ll be able to get him along to a web meetup in the not too distant future.
[... 155 words]Contribute hammering FTP servers?
We’re having a problem at work with Macromedia Contribute. We host sites for a number of local companies, and one of them wants to use Contribute to update its site. The problem is that whenever Contribute tries to connect to our FTP server, it opens up 30 simultaneous connections, effectively running a denial of service that prevents other clients from logging in during peak times. I’ve searched the ’net and haven’t found any references to this problem; does anyone know anything about the issue? We’re running ProFTPD 1.2.9 and the client is using Macromedia Contribute 2.
Linux on the desktop at IBM
Spotted on Slashdot, IBM’s Open Source Desktop—Directions for today... and Tomorrow presentation includes one slide that really caught my attention:
[... 95 words]