Looking at the LGPL license
The Lesser General Public License (LGPL) is a software license that is based on the GPL, but is more permissive. I have seen the GPL software license described as a cancer before, and this analogy...
View ArticleEvaluating Photoshop Lightroom and ACDSee Pro Photo Manager
I tried out the trial versions of Adobe Photoshop Lightroom and ACDSee Pro Photo Manager recently. I was particularly interested in seeing how they would work for a photography workflow, such as basic...
View ArticleCross-site scripting could make you lose your cookies
The following article was originally written in July 2005 and published on SitePoint.com, and is republished with permission. For securing your web application you should probably also read about CSRF...
View ArticleIs Gmail suitable for use as your main email box?
Now that Gmail offers proper IMAP access for free, I think that there are few reasons not to use Gmail for all my non-work email now. Gmail’s 7GB (and growing) amount of space allows it to be a ‘store...
View ArticleMy problems with OpenID
I’ve been tempted to write why OpenID has been driving me up the wall. I have not implemented OpenID in any application, so I come at it not as an implementor or programmer but as an end user: a number...
View ArticleThumbs up/down, the simplest form of user feedback
Users really appear to love being able to give a ‘thumbs up’ or ‘thumbs down’ to any statement they see on a website. Strongly disagree with a YouTube comment? Give a thumbs-down! You have expressed...
View ArticleStoring hierarchical data in a database using ancestor tables
More of a ‘programmy’ topic today – this one about storing hierarchical data (data that could represent a tree) as records in a relational database. There’s plenty of information on the web about...
View ArticleThe free and non-free Creative Commons licenses
Some Creative Commons licenses are ‘free’ in the sense that open source software is free. Other Creative Commons licenses are ‘not free’ in the sense that they restrict use of the material in ways...
View ArticleThree ways to work with XML in PHP
‘Some people, when confronted with a problem, think “I know, I’ll use XML.” Now they have two problems.’ - stolen from somewhere DOM is a standard, language-independent API for heirarchical data such...
View ArticleDistributed Version Control Systems are not Voodoo
Distributed version control is nothing to be scared of. It may be a lot simpler than a lot of people or ‘introductory tutorials’ have led you to believe. Distributed version control doesn’t force you...
View ArticleFiguring Twitter out
The success of Twitter always puzzled me – it was probably the first massively popular web phenomenon that I just could not get. I don’t spend a lot of time on World of Warcraft, or Second Life, but...
View ArticleImproved tools for optimising PNG images – pnqnq and pngquant “Improved”
I’ve taken the liberty of creating WIN32 builds of Kornel Lesinski’s improved pngnq and improved pngquant open source tools. pngnq and pngquant reduce the file size of a PNG file by reducing the number...
View ArticleHow JPEG and MPEG picture compression algorithms work
While their names sound similar apart from the first letter, JPEG and MPEG refer to the names of two unrelated organisations. The Joint Photographic Experts Group (JPEG) created the JPEG image file...
View ArticleStable vs stable: what ‘stable’ means in software
I’ve come to learn that when someone refers to software as ‘stable’, there is more than one quite different thing they might mean. A stable software release A stable software release is so named...
View ArticlePHP: recursion causes segmentation fault
The fact that attempting recursion in PHP leaves you at the mercy of segmentation faults isn’t anything new, really (though it is new to me now). Since 1999, bug reports to this effect have been...
View ArticleChromecast: First impressions
I got a Chromecast recently, and it’s worth writing about because I feel it’s part of an important step in how we enjoy media (television, movies, music) and will do in the future. So, on to my...
View ArticleIs a proper transition to IPv6 actually impossible?
I don’t see a viable path from our current situation to a natural inevitability where IPv6 can be thought of as properly adopted: where deploying or signing up IPv6-only clients or services would be a...
View Article
More Pages to Explore .....