YUI Docs error

I was happily running YUI Docs when suddenly it stopped working with the error: “DeprecationWarning: the sets module is deprecated”. Turns out that YUI Docs doesn’t like any code above the first Javadoc block.

The Unix side of OS X - what goes in which directory

One of the nice things about OS X is that it has Unix under the bonnet. That means you can install all sorts of geeky software like ImageMagick or xdebug; but, knowing where to put things can be confusing if you are new to it. Here’s a quick guide to the folder in OS X, particularly the Unix (or strictly speaking, FreeBSD) side. More»

Joining PDF files in OS X from the command line

In OS X, PDF files can be concatenated manually using Preview. But if you are happy using Terminal there’s an easier way, thanks to a Python script installed by default in /System/Library/Automator More»

Domain-driven design

Everyone at work seems excited about Domain-driven design. Here are some useful links More»

Tenancy Deposit Protection in the UK

Having to deal with boring admin landlord admin. This may be useful, so I thought I’d share it.
More»

PHP optimization tips

Here I’ll collect PHP optimization tips, and will benchmark them when I get to it.
More»

The best Italian cheeses

Occasionally cheese lovers ask me to recommend them good, less known Italian cheeses. Here’s my list.
More»

Using Quicksilver, the OS X app launcher

I’ve seen Quicksilver mentioned several times at LifeHacker (for example, this video presentation by Quicksilver’s maker), so I decided to give it a go.
More»

Assorted Firefox Tips

This is where I collect Firefox tips and tricks.
More»

Finding files inside an archive with Terminal

Lots of searching with this current project… this time looking for files inside an archive, without having to extract them first. Using Apple’s Terminal, or any Unix / Linux bash shell: [script lang="bash"]find /dir/ -iname archive.tar -print0 | xargs -0 tar t -f | grep “filename you are searching for”
find /dir/ -iname archive.zip -print0 | xargs -0 unzip -l | grep “filename you are searching for”
find /dir/ -iname archive.rar -print0 | xargs -0 unrar l | grep “filename you are searching for”
[/script]
More»

Finding recently changed files with Terminal

To list files that were changed in the last day, sorted by size, using Apple’s Terminal, or any Unix / Linux bash shell: sudo find / -type f -mtime -1 -print0 | xargs -0 du -sk | sort -nr(thanks mynamewasgone!)
More»

The Wrestler

Another depressing Aronofsky movie, with some great acting and less visual trickery than usual. More»

Is the BBC getting a bit too obsessed with the BNP?

bbc-obsessed
More»

Assorted Omnigraffle tips

OmniGraffle is pretty much the only affordable charting app on OSX. In this page I’ll collect my OmniGraffle-related tips (from my tweets) More»

Data Flow Diagram stencil for Omnigraffle

Data Flow diagrams are so simple, it was easier to make my own stencil than scour the web for one. It works for Omnigraffle 4.1 – feel free to help yourself to it.
Download Data Flow Diagram stencil.

La Vispa Teresa

Actually titled ‘La Farfalletta’ (the small butterfly) this is a short children poem written by the milanese Luigi Sailer in the 1850s. Trilussa, a roman poet, added a risqué extension it in 1917. More»

Using GMail to archive old emails

Because of its excellent search facilities, it makes sense to import old emails into GMail and use that as archive facility. It is very easy to do with IMAP, but it can take time. More»

Google XML Sitemaps plugin for Wordpress

XML Sitemaps are documents which list all the pages in a site, including some metadata for each page. They are useful for search engine indexing. Arne Brachhold has created a great free sitemap plugin for WordPress called Google XML Sitemaps More»

Site redesign - v6.0

Finally finished redesigning the site. Still testing it and cleaning it up, but it’s pretty much there. The old one was a bit fiddly, and I wanted to separate the blog from the portfolio proper. Also, I intend to add more Ajax and Flash functionality, bit by bit as I have time.

Quickly removing empty array elements in PHP

A quick way to remove empty elements from an array is using array_filter without a callback function.
$myArray = array_filter( $myArray ); This will also remove 0s though. More»

Copying files matching a pattern, preserving directory structure, with cpio

How to copy files matching a pattern to a different directory preserving the folder structure. For example, you want to duplicate a directory within a version controlled project, and need to ignore all the .svn folders. More»

Passing variables from a web page into a swf when the page loads

Passing variables into a Flash movie embedded in a web page is easy with SWFObject. You pass them in with a bit of JavaScript, and they are available in Actionscript in the root.loaderInfo.parameters array. More»

Is a swf being run from a web page or the Flash IDE?

While developing, it is often useful to be able to tell whether a Flash movie is being run from a web page or not. That’s easily done by checking the flash.system.Capabilities.playerType property. More»

Using filter_var to validate email addresses in PHP

As from version 5.2, PHP comes with built-in data filtering. Which makes validating emails and URL very, very easy. More»

Kiss Of The Spider Woman

Despite the good directing, I guess this worked better as a book or a play than a movie. More»

Batch unrar from the command line on Mac OS X

Rar is a popular archive format on the web. When I need to unarchive several rar files at once, I use RarLab’s command line tool. Here’s how.
More»

Which application categories are available in Bebo?

This is a list of the categories Bebo’s applications could be filed under – two categories for each application. Copied the list on 4th Dec 2008, for my reference. More»

Removing black border from Mac OS X Leopard screenshots

When you take a screenshot of a window with Mac OS X Leopard (CMD+CTRL+SHIFT+4, then spacebar), and paste it into Photoshop, it will be surrounded by an annoying black frame around it. Here’s how to get rid of it. More»

Ant on OS X Leopard

After getting my new Mac, I started using Ant as usual without thinking much of it, until it occurred to me that I never installed, it was there already! Shame the default installation is flawed. More»

Getting ant to read user parameters

You can set use the input task to make Ant ask for parameters on the command line at runtime. More»

Assorted OpenOffice tips

OpenOffice, the shareware office application suite built in Java, is potentially very useful, but can be a pain in the neck. In this page I’ll collect quick tips and how-tos as I find them. More»

Using OpenOffice to batch convert file formats on OS X

In my increasingly more and more frustrating attempt at finding some use for OpenOffice, I tackled file formats, including batch file conversion. As you can expect for an application written in Java, it wasn’t easy. More»

Connecting to mySql from OpenOffice.org on OSX

I tried to have a play with the OpenOffice 3.0 db app to see how it would work on OSX with MAMP, as an alternative to phpMyAdmin. As expected with anything Java, that turned out to be a pain the backside, involving jars, missing drivers, mistery classpaths, and the usual badly documented Java hookery-pookery. Eventually I got there, and here’s how. More»

Setting up OS X for PHP Development with MAMP

Setting up a Mac for PHP development used to involve a few visits to Marc Liyanage’s excellent site, playing with NetInfo and the command line. But now there’s MAMP, and NetInfo is gone. So here’s how to setup PHP development on Leopard. [Note: since writing this, it looks like Marc has started distributing PHP packages again.] More»

Setting A Bash Prompt in OS X

To change the command line prompt on bash, my shell of choice, you need to edit the file .bash_profile in your home directory. To do that, UNIX machos will tell you to use vi. This I find only slightly less painful than walking on my knees on dried chickpeas, and I won’t touch it (I won’t even touch vim, its marginally less awkward cousin). More»

Reading Strategies: SQ3R, PQRST and all that

I am always interested in ways of structuring, presenting, and absorbing information. I came across SQ3R while reading Peter Barry’s excellent Beginning Theory. SQ3R is one of a family of study algorithms for humans, and it is not too dissimilar from the way search spiders scan web pages. More»

The Girl Who Leapt Through Time

Sometimes I wonder about the ICA’s film curators. You’d think if they choose a Japanese animation for a Saturday night show, it’s bound to be a good one, right? Not a soppy coming of age drama for teenagers. Yeah, me too. More»

Can't Stop, Won't Stop

Not the “definitive history of hip hop” the pull quotes on the cover promise, more a “history of ghetto politics and hip hop up to the LA riots”. Still a good read though. Well, half of it, anyway. More»

New Year 2008 in Cyprus

We arrived in Cyprus on a cheap charter flight on the 29th of December, and stayed for a week until the 5th of January.
Would I recommend it? More»

Aphrodite's Birthplace

As we were looking for a toilet off the motorway on the way to Lefkosia (Nicosia), we passed by Aphrodite’s birthplace. It’s a lovely spot for a break, a little walk on a pebbly beach, and there’s a hut where you can buy yourself a cup of tea. More»

Hiking in Stavros tis Psokas

We drove from occupied Northern Cyprus to the Troodos mountains in the west. Excellent drive, through barren landscapes with classical Turkish music on the radio, like some middle eastern version of Paris, Texas. More»

Polis

Like most of Cyprus, Polis and the nearby area have been invaded by British pensioners and their property buying ways. More»

Lefkosia (Nicosia)

The EU/NATO approach to solving The Cyprus Problem can be summarized as “Swamp them money. Rich people don’t fight”. And nowhere is this more apparent than the capital, Lefkosia, an intriguing city. More»

How to use a meta tag to redirect a page

Using the “meta-refresh” technique for redirecting to a new URL is bad, but sometimes there’s no other way to go. Here’s how to make it work. More»

Babel

A miserable, pointless movie with unrealistic plot but excellent photography. More»

Sending emails with non ASCII characters from ASP

To have an ASP page send an email with non-ASCII European text (Cyrillic, Greek, Czech, etc) you’ll need to use UTF-8. More»

Machuca

A look at Chilean society at the end of the Allende era told trough the eyes of two kids from opposite social background. Well made but perhaps a bit slow and melodramatic, it is worth seeing if you are interested in journey through a different time and culture. More»

Reading multi language text in Microsoft Office

Reading documents with Cyrillic text is a breeze on a Mac, but with MS Office it can be a right pain the backside. If your company does business in the Russian market it can be very frustrating. Here’s a quick tip on how to read multi language characters – to write Cyrllic and co, you’ll have to buy a license*. More»

Ghost in the Shell

Classic cyberpunk caper in the Akira league, with great visual ideas, a rushed plot and diabolical soundtrack and dubbing. Definitively worth seeing if you like good animation More»

Serving an Excel Worksheet to a browser.

Writing an excel worksheet to a browser is pretty simple – all you need is the correct response type, and to format the data using an HTML table. More»

Handling dates in Javascript

A few tips. More»

Converting a collection to a JScript object in ASP

Enumerators are collections of data that can be iterated through. Although useful, they are not compliant with ECMAScript standards, and therefore I prefer not to use them. Some objects in the ASP environment however, such as Request.Form, are provided as Enumerators, and need to be converted them to standard JScript objects. Here’s a couple of routines to do so. More»

Skewing random numbers towards 0

A quick way to skew random numbers towards 0 is to raise them to some powers – the higher the power, the higher the skew. Obviously not the most efficient way of doing it, but could be useful in certain occasions where performance is not an issue.
var num:Number = Math.pow( Math.random(), 2 );

A del.icio.us bookmarklet

I like Alan Marklet’s Maker, a tool that let you create bookmarklets to add links to del.icio.us (and other services). But I wanted more functionality, so I hacked his code and created my own version. More»

Finding files on the command line and doing something with them

This will unzip all files from a_directory into another_directory
find a_directory -iname "*.zip" -exec unzip -d another_directory {} \;

This add all image files inside a_directory to CVS as binary.
find a_directory -iname '*.gif' -or -iname '*.jpg' -exec cvs add -kb {} \;

P For Pile of Crap

I went to watch “V For Vendetta” and thought it was utter rubbish. More»

What's Inside My Mac

All the software and apps in my Mac – a reminder for when I need to rebuild it from scratch. More»