The iChat Smiley Theme is useful if you use Pidgin to chat with iChat users. Without it, most of the smileys you both type will show up at the other end as boring text rather than fun icons. Continue reading “iChat Smiley Theme” →
Simple Combo Box jQuery plugin
I have just released simpleCombo, a jQuery-based combo box widget that is
- simple
- lightweight
- consistent with native widget look and feel
You can try out some simpleCombo demos, and download simpleCombo from the simpleCombo project page at jquery.com. For more details, read on. Continue reading “Simple Combo Box jQuery plugin” →
MySQL character encodings
I recently noticed that many of the comments and trackbacks on this website were composed entirely of question marks. At first I thought it might be plain old spam, but it turned out to be a character encoding problem. Here’s how I fixed it. Continue reading “MySQL character encodings” →
Tooltips on disabled buttons with Dojo
Here’s how to add tooltips to disabled form controls using Dojo. The technique could be adapted for use in other frameworks or standalone JavaScript code.
I recently needed to add tooltips to a web application. The specific requirement was that when a button was disabled, there should be a tooltip explaining why. We were using Dojo 1.2. Now Dojo includes a Tooltip class, but it doesn’t work on disabled elements. Continue reading “Tooltips on disabled buttons with Dojo” →
Seemore is the new Less
Less, my small but perfectly formed WordPress plugin, has changed its name and is now called Seemore. A different plugin called Less has been added to the WordPress Plugin Directory, so I finally decided to change my plugin’s name to something marginally less 🙂 confusing. Continue reading “Seemore is the new Less” →
Separate WordPress core and content files
Recent WordPress versions have supposedly enabled the ability to separate the core WordPress files from the site-specific files, but I found it hard to find clear information on how to do it. Here’s the method I ended up using. Continue reading “Separate WordPress core and content files” →
P is not for telephone
There’s a trend towards indicating contact details by a single letter. You see this on business cards, email signatures and letterheads:
T (01) 234 5678 – F (01) 234 5678 – E bob@boztangle.com
It looks quite nice and clean, especially in a vertical format on a screen as the single letters all line up in nice columns. And it’s pretty obvious what the letters stand for if they stick to the obvious words: telephone, fax, mobile, email. But too often people try to be clever and end up creating confusion. Continue reading “P is not for telephone” →
Lotus Notes is rubbish
The Lotus Notes UI is a disaster. Examples are legion, and there are doubtless a million web pages attesting to this. So here’s the million-and-first. I thought Notes was clunky the first time I encountered it, which was back in 1996. I was dismayed in 2003 when I started a new job to find that I would have to use the Notes client, not just for email, but also for internal documentation and even for entering time sheets. It turned out that that company had started life as a Lotus Notes development shop. I managed to escape, but now my new company and the client that I am working for both use Notes for email. It’s a nightmare. Continue reading “Lotus Notes is rubbish” →
Vespa: A better MVC
Vespa is a refinement of the old MVC (Model View Controller) architectural pattern that better reflects how Web applications actually work. MVC has been around for a long time, but many implementations have some annoying inconsistencies. I have refined the basic MVC pattern in light of typical usage patterns I’ve encountered; the result makes it easier to design an MVC application in a clear, modular manner. Continue reading “Vespa: A better MVC” →
Die QUIETLY!
Here is a piece of JavaScript code taken from a public commercial website. I have redacted some of the code to protect the guilty, but the rest is verbatim in all its glory. See if you can spot the error. Continue reading “Die QUIETLY!” →