Archive for December, 2009
This book won’t change your life
Saturday, December 19th, 2009
You know the sort of book I mean: Listography, Wreck this journal, This diary will change your life, This is not a book, How to Make a Journal of Your Life, The Guerilla Art Kit, Your love life in lists, … How to be an explorer of the world: Portable life museum …. Tear Up This Book!: The Sticker, Stencil, Stationery, Games, Crafts, Doodle, and Journal Book for Girls!
Those books that have a fun, wacky but cheap, activity for you to do every day in order to cure your life from the malaise of materialism, work and apathy that has engulfed it.
But, I wonder, how well do the writers of these books live up to the image.
Lisa Nola (Listography)

You can tell Lisa’s a hipster intellectual sort because… well, just look at her! And him. He’s Adam.
Another big giveaway that they’re that way inclined is that they have built up a not insubstantial body of work, or ‘project’, including several books, calendars and, oh yes, the website, around this listography concept of theirs:
Through list making, you can shape an autobiography. Therefore, your listography is a perpetual work in progress, a time capsule you can share, and a map of your life for friends and family.
Or you can never ever look at it again.
I list. I love to list, but if there is any joy in looking at an old list (and, to be fair, there can be) it will be because it was not intended to be looked at so far in the future. You’ll surprise yourself by finding that back in 1996 you rated Aswad as your favourite band. But devoting hours of your younger years to making hundreds of lists for the express purpose of looking back at them in years to come is just depressing. Evidence of how stultifying an activity this must be is indicated by the following helpful text from the website:
Try our list topic generator for further inspiration and reflection.
But the idea does however seem to have taken off, to the point where a chain reaction is starting to occur, and a listographer, Nola Russell, has published a book of her own lists. Call me cynical, but I reckon ‘Russell’ is a bit to similar to ‘Lisa’ backwards, and ‘Nola’ is a bit too similar to ‘Nola’ to completely rule out them being the same person.
So, what have we learned about Lisa and Adam? That when they grow up and their rebellious teenage son screams at them “I don’t want to make a list, Dad – I can remember this one thing without having to make another bloody list,” the reply comes swift and fast, “‘Eh oop son, thy’s talking gibberish. It’s lists that built this ‘owse, and don’t you forget it.”
Think before you list.
Dan Price (How to make a journal of your life)
It turns out hat Lisa Nola is not the only how-to-release-your-creativity-in-a-lo-fi-way author with a coherent multimedia vision. Other mainstay of the genre, Dan Price, has hismoonlight chronicles website to espouse the same philosophy as his book.
Dan seems a bit more for real than Lisa; again, the photo helps to illustrate this. He also lives in a hole, and lives life a bit like Thoreaux in Walden. I imagine he does spend lots of time creating things out of very little at all, and that he keeps a fascinating journal and finds beauty and intrigue in little things (sample). Thank God he’s published a little book teaching us how to see the world just like he does and release our frustrated inner artist.
Keri Smith (Wreck this journal, This is not a book, etc…)
The doyenne of getting adults to scribble in books that cost more than a tenner; she has published six books of this ilk. And, what is more:
Keri Smith is an author/illustrator turned guerilla artist
… according to her website, at least. Her books are more playful and destructive (childish?) than the other authors’, at least judging by their cover (and from flicking through). The byword here is ‘tearing’. Guerrilla whimsy indeed.
She’s published a blog for many years so I’ve tried to get a picture of whether she lives up to the ideals of her books.
i have actively entered into a period of not thinking.
My guess is that she does, although the rate at which she churns out these DIY artist books would suggest that she is, like some people I’ve met over the years, more interested in the idea of having an idea, than an idea itself.
At the end of this review, I should own up and say I agree wholeheartedly with the sentiment of these books (that creating your own fun is easy and why doesn’t everyone do it?) and I reckon the authors are probably fairly well-meaning. But the trouble is that a) being instructed to do something silly or creative is nowhere near as fun as thinking of it yourself, so b) nearly every page of every copy of these books won’t be read, and so c) these books in fact contribute to the problem they’re purporting to try and solve – people buying mindless tatt to entertain themselves with.
Still, they’re a pretty good get-out as a present for a difficult to buy for friend.
Facebook fail to make it easy for people not to embarrass themselves
Thursday, December 17th, 2009My attitude to Facebook has always been that it is a useful address book of sorts (with built in slideshows), and that all these scandals where people get fired from their jobs for posting on facebook pictures of themselves disfiguring a company business card with a nail file are their own fault for showing a lack of discretion.
That said, though, Facebook do have a reputation (fairly well-earned if you ask me) for not making it clear to people who they will share things with, but now they’re putting it right as when you login you are nagged to confirm you old privacy settings or change them to new ones, just so everybody’s clear what to expect.
Heres’ the form you fill in, which looks pretty simple – radio buttons to indicate yes or no… or so you would think. But regretably facebook have ballsed up their privacy issues again.
For each element of facebook you can set it’s visibility level to either what you’ve already got it set to, or one of Everyone, Friends of friends or Friends… but for each bit of Facebook you don’t get to choose from that list; you are presented with one of them as an alternative to your current settings (picture). Now, that’s a pretty confusing start, because
- It makes the layout of the form all weird: the radio box in the first column doesn’t always mean the same thing, which users come to expect from columns of radio buttons.
- Some elements have “Old settings” checked, and others have the other radio button checked, which confuses the whole idea of you changing your own settings
- When you arrive at the page there is nothing to tell you what your old settings are. I’m sure many users will go straight from here to check in their account what their settings are.
But on hovering over an old settings checkbox it displays a tooltip to tell you what those settings are, which si helpful , yes, but nowhere near as helpful as just including it in the original page’s text. Horrible overuse of technology.
So does the confusion end there?
Of course not.
Below are three examples where it doesn’t allow you to do what you want, or just gets more confusing
- I can choose to allow everyone to read About me or just friends. It doesn’t allow me to let Friends of friends see this
- At the moment ‘Only Friends; Except: Limited Profile” can see photos and videos of me, but it’s taken me a while to remember what “Limited Profile” means, and now that I do remember, why is this not an option for …
- … sharing my email address, which I’m more likely to be cagey about. And it would also be nice to have radio buttons which allow me a wider choice than sharing my email address with “Friends” or “Only Friends”
It amazes me how sloppy supposed beacons of the internet can be sometimes.
PC gone mad
Wednesday, December 16th, 2009
It’s become de-rigeur these days to trundle out the fact that the UK has the highest density of CCTV cameras in the world, and then to follow it with the opinion that it’s all some sort of sinister creep towards a police state. I’m not going to do that, but I did however read today about something similar, particularly close to my heart as if it had been the case a couple of years ago I probably would have found myself repeatedly stopped by the police.
Apparently police have been misusing the new anti-terrorism laws to stop people taking photos of buildings in sensitive areas, eg. ‘Alex Turner, an amateur photographer, was arrested under section 44 after taking images of a fish and chip shop in Kent’. Now, I know that the jihadists are eager to preserve cod stocks, and the IRA want to keep all those lovely potatoes for themselves (just in case), but I can’t help thinking that it may have been an over-reaction.
More usual than that bizarre police intervention is that photographers – tourists, amateurs and journalists (presumably with press passes) – are being stopped from taking photos in the City of London. So if I was still writing my London skyline blog I would have either had to stop or accept being hassled by the police as routine. This is the first time* the police’s sinister side has crossed my path (albeit 2 years too late). I don’t like that they can infringe on my ability to carry out my innocent daily business.
I expect a lot of people in other perfectly innocent walks of life have had far more vivid encounters than this to teach them to be wary of the British police, so I suppose I should count myself lucky.
*Aside from busking, student protests, and a horrible incident where a brute of a copper looked like he was going to arrest an acquaintance for accidentally kicking a football at someone who had foolishly decided to have a picnic behind our goals.
Foolishness
Tuesday, December 15th, 2009A greasy framework
Monday, December 14th, 2009
As I think I may have mentioned, the latest project I worked on I’ve been using the Zend Framework for all the server-side development. Over the last few months I’ve developed a love hate relationship with it. On the plus side it does pretty much everything I need without needing too much customisation, a few of the negatives though are:
- The quickstart in the documentation assumes way too much background information about configuration of a php app and data sources etc. They don’t seem to have considered that a reason many programmers use zend is because they don’t know too much about back-end development and want something to take care of the tricky bits for them. It took ages to get past this stumbling block, with the help of this tutorial (WARNING: The bit on connecting to the database either uses quotes when it shouldn’t or vice versa) and this website with tutorials on various zend components.
- Having said it does everything, there are lots of gaps. I’m sure a lot of thought goes into deciding what gets included and they must get all sorts of requests, but some simple standard things are missing, eg a validator to check a confirm password field. Nevertheless it is fairly easy to write extensions, but the zend documentation site should have a lot more and clearer information on this. Linked to this, there seems to have been very little thought put into building some sort of community to share plugins, unlike jQuery, for example.
- You may have sensed that I don’t have a great deal of respect for the documentation. It’s very sloppy to be frank. There are so few cross-links to different sections, and a lot of the classes contain examples which I found fairly irrelevant, covering a way of doing things unlikely to be used in a real website (eg the examples for querying your database don’t really use the Model-View-Controller structure you’re supposed to use). And, in my view, it’s way too wordy, and much of the text is just waffley clutter; far more so than better examples of documentation, such as php and google maps. The website is also very difficult to navigate.
To fix the final gripe I’ve written a greasemonkey script (my first ever one) to replace the existing documentation layout with one a little easier to negotiate.
Berlusconi
Sunday, December 13th, 2009… he listed the successes of his government, which he said had included saving the world economy by persuading the US government to intervene
Towards the end he boasted that he was still “young and on form”, opening his shirt to show that he “wasn’t even wearing a vest”,
“What they did to Berlusconi was an act of terrorism,” said Umberto Bossi, the leader of the Northern League party and the prime minister’s closest ally.
I wonder how long the queue to punch (or throw aminiature metal souvenir of Milan’s cathedral, the Duomo at) him was.

In other news, Bin Laden not here, says Pakistan.
Wide open space
Friday, December 11th, 2009My laptop (now on its very last legs) has a fairly dinky screen. It’s wide enough to not be a problem, but the height is always a pain, especially that now (unlike when I bought the laptop all of 4 years ago) I am a web developer and routinely have firebug and the web developer toolbar open, which sucks up about two fifths of the height of my screen.
Enough is enough, and I’ve decided to get tough on undesirable widescreen, tough on the causes of undesirable widescreen.
First off, although I don’t like Google Chrome’s tabs at the top interface, I do like the fact that they’ve squeezed something useful onto the otherwise desolate windows title bar, i.e the bar at the top of the screen that tells you which program you’re using and, in firefox, the webpage’s title. As I have no need for firefox to tell me anywhere other than on the tab which web page I’m on, this bar is pretty much useless. And, luckily for me, there is a new firefox extension to get rid of it: Hide Caption. It shifts the close, maximise and minimise buttons down to near the search bar and gives me an extra cm of space. It warns that it may not be compatible with tab-mix plus, though I haven’t had any problems, and I use loads of other extensions too with no clash. Although I did uninstall another plug-in called Hide Navigation Bar as this didn’t work, but it may have been a clash.
A few of other things I’ve done to save space and decrease clutter is decrease the text size in firebug, change my windows taskbar to a single row rather than two, use the personal menu extension to hide the menu bar, and got rid of my bookmarks toolbar (although not sure how long that will last). It would be really handy if firebug could have an option to place it to the side of the screen rather than the bottom. Most of the time the lines don’t span the width of the console, so it’d be a great space saver to stack them vertically down a narrow strip at the side of the page.
Incidentally, one of the few add-ons that has remained a constant for me over the years is the qute theme. It’s really nicely designed with light colours and small icons and makes the screen seem a lot less cluttered. There’s two versions available at the moment; the authentic new version for firefox 3.5, and the retro version based on the original icon designs from years ago, which is the one I plump for. Aside from being aesthetically more pleasing it also has the advantage of not having a heart as the icon for bookmarks, which always took me a second to work out what it meant.
Anyway, here is my current, much cleaner looking, firefox appearance now (I would do a before and after, but it’s way too much hassle to go back and disable all the things I’ve changed):
Well I never
Thursday, December 10th, 2009If there’s one thing I know when it comes to web development, it’s CSS. I don’t always write it in the most organised fashion (though I like to think I do when I’m given a finished design to work from), but for over a year now I’ve felt that my knowledge about the bits of CSS that I use daily is pretty complete*. And for the bits I don’t have to use very often I an always find what I need on the internet.
So imagine my surprise today when I realised that there’s one area of CSS that I use everyday with a fetaure I was completely unaware of. I’d always thought that
p{color:red}
meant “Make the text in the paragraph red”, but it turns out that that’s not the full story.
In all browsers, it seems, if border-width and border-style are defined for an element, but no border-color, then color also defines the border colour. But then if you define a value for border-color then color gets ignored when calculating the border colour. Even if you use another selector of higher specicifity to set a new value for color this still has no effect on the border colour. Here is a demo page.
But is it of any use?
Well, yes – it turns out it is.
Let’s say you want to define a generic button item as follows
.button {display:inline-block;border-width:2px;border-style:solid}
Then you can coordinate the text and border colour of the buttons by just using, eg
.cancel {color:red}
And this technique could be used for all sorts of generic elements where text colour and border colour are normally same. To use a different colour for the border it’s an easy thing to over-ride too.
Has anyone ever included both the British an d American spellings of colour this much in one article before?
* excluding newly emerging vendor-specific styles, eg -webkit-make-it-look-cool {}
Ternary gets a turn
Thursday, December 3rd, 2009
I’ve recently started using the ternary operator more. For those not in the know already, it’s a bit like shorthand for
if () {
} else {
}
but with a few similarities to other parts of the language too (NB this is based on the javascript implementation – other languages may differ slightly).
So, in the simplest case, instead of writing
if (statement)
{
codeblock1
} else {
codeblock2
}
we can write
(statement) ? codeblock1 : codeblock2 ;
which is a great way of cutting down on lines of code when each code block is only a single line. A few tricks to make using it more fulfilling are as follows.
The ternary operator can be split over two lines
So instead of
(statement) ? codeline1 : codeline2 ;
I mostly use
(statement) ? codeline1 :
codeline2 ;
I find it more readable, as it really draws out the structure of what the code is doing. It also looks a bit like a switch statement (which, incidentally, I hear runs slow in javascript), which will come in useful later.
You can get rid of the brackets/parentheses
I tend to leave them in though as if the statement to be queried is long it would otherwise be easy to not notice that at the end of it comes a ?. The brackets remind you that what’s within is to be evaluated as true or false.
The ternary operator doesn’t have to start the line, and often shouldn’t
The following lines are equivalent:
(cetacean.mass > 1000) ? var family = 'whale' : var family = 'dolphin';
var family = (cetacean.mass > 1000) ? 'whale' : 'dolphin';
As you can see the second version results in less code, which is also easier to comprehend as the action of the line – assigning a value to a variable – is clear from the beginning of the line. As a rule of the thumb I put as little within the ternary operator as possible.
(As an aside the && and || operators – normally seen within if statements – can also be employed, using similar syntax, to assign values to variables. This is why I don’t think it’s fair to say that the ternary operator is just shorthand for if … else …, as it bears similarities to other bits of the language too. )
Sometimes the ternary operator can’t start the line
The only example I’ve come across so far is
return (cetacean.mass > 1000) ? 'whale' : 'dolphin';
Putting the return after the statement to be queried causes an error.
The ternary operator can be nested to emulate ‘else if’
First of all
if(statement1) {
code1
} else if (statement2) {
code2
} else if (statement3) {
code3
} else {
code4
}
Can be rewritten as
if(statement1) {
code1
} else {
if (statement2) {
code2
} else {
if (statement3) {
code3
} else {
code4
}
}
}
and so on for more statements.
But we know ifs can be rewritten using ternary, so it’s also equivalent to:
(statement1) ? code1: ((statement2) ? code2 :( (statement3):?code3: code4));
which can unbelievably be rewritten on more lines as
(statement1) ? code1 :
(statement2) ? code2 :
(statement3):? code3 :
code4 ;
So now you can construct very concise, relatively fast and, in my humble opinion, readable if … else …/switch statements. This is particularly valuable for defning the value of a variable quickly, and based on a variety of conditions, eg:
var family = (cetacean.mass > 1000) ? 'whale' :
(cetacean.noseshape == 'cylinder') ? 'dolphin':
'porpoise';
Neat!










