code

Strongly Connected Components in Ruby

I've had a massive pile of code and experiments sitting around for too long. It's time to move on, but I thought, why not throw it out to rot instead of just disposing of it? Who knows, the stuff...

By , 28th November 2007 In:

When a language is only as good as its tools

Ruby programs can be written in unicode, meaning that you can label a real lambda. Once, when working on a school assignment to build a simple regular expression interpreter, I had a similar flash...

By , 8th November 2007 In:

Lessons learned from FullCodePress

Since Ali posted 20 things I learned at FullCodePress, I thought I'd chime in with my own observations from the perspective of being programmer for the Code Blacks: Working side by side is...

By , 12th September 2007 In:

Py3000

Python 3.0a1 release hits the network, with significant backwards incompatible changes. The best way to describe this is a shedding of the snake's skin, sloughing off a whole bunch of weird ambiguities...

By , 1st September 2007 In:

Software is not made of Bricks

Raganwald dissects the misguided metaphor from a software process perspective. I have come to believe that these kinds of problems are even more prevalent in the web development world than in...

10 LET M EQ MIND ROT 20 GOTO 10

I hate to agree with grouchy old Dijkstra, but unfortunately now it's impossible to deny: BASIC is what killed my ability to be a truly great programmer. Dijkstra was right, GOTO completely rots your...

Putting Python and Django on the iPhone

Not for the weak of heart, but the prospect of wrangling the call database with Django is a tantalizing hint of things to come...

By , 24th August 2007 In:

Code Blacks are FullCodePress Champions

What a weekend. One of the most intense storms of blogging and flickrizing that I've ever seen, and definitely the most intense all nighter I've ever experienced. Our charity client was so blown...

By , 20th August 2007 In:

Ready To Go!

The two teams have just briefed, the rooms have been set up, the network is streaming, and we're gathering up all the final bits and pieces we're gonna need (post-it notes, and assorted bits of...

By , 17th August 2007 In:

FullCodePrevise

We're safe and sound in balmy Sydney, where we await the arrival of the Australian team. We're planning to take it pretty easy on Friday with a bit of tinkering, a bit of touristy stuff, before...

By , 17th August 2007 In:

Is PHP Doomed?

There's a tide of opinion suggesting that PHP is threatened with extinction as standard hardware begins to favour widening multicore processors. This would be a fair argument if PHP was a general...

Reconstruction 3: Pipes Feed Caching

Various parts of this site are meshed from other services such as ReBlog, Google Reader, and del.icio.us, and I use a Yahoo Pipes assembly to merge these publishing streams into a single RSS feed...

By , 8th August 2007 In:

Reconstruction 2: PHP5 Migration

Finally found some time to work on rolling this big ball of mud onto a more robust foundation. Before going any further, I need to get the site up and running on PHP5 (as well as Apache2 and Mysql5...

By , 7th August 2007 In:

Running multiple hosts on OS X

The process is just as straightforward on OS X as it is on Windows - if you do things manually. The catch for me was that I needed to set up a script to automate the process. Normally, OS X expects...

By , 20th July 2007 In:

Java Chases Its Tail Calls

John Rose talks about implementing support for tail call optimization in the JVM. I've been waiting for this one, as in my mind, it has long been one of the biggest holes in the leaky dike of...

Building a Treemap Reporter for SimpleTest

Treemaps emerged in the mid 90's as a method of visualizing heirachies, and have since been widely used throughout the software design community. But very little work is out there exploring visualizations...

Ahm gunna Australia

I am privileged to be a part of the first NZ FullCodePress team, to travel to Sydney in August. By luck or whatever else, I somehow find myself right in the middle of it... What is possible for...

By , 11th July 2007 In:

FullCodePress Selection

Finalists for the New Zealand FullCodePress team have been selected, and I'm one of them! Final selection is tomorrow. Good luck to everyone who has been nominated, especially the other two selected...

CSS Is Unmaintainable

Everyone thinks that the major problems of CSS are mostly due to incompatible browser implementations but that's not quite the full story. It can be hard to see how cascading style sheets are not...

By , 19th April 2007 In:

Undocumenting PHP: It's about Time

This article is a work in progress, part of a new series "Undocumenting PHP", which explores and discusses some of the less well documented or uncommon aspects of PHP. After running into a weird...

By , 3rd April 2007 In:

Running multiple virtual hosts under Apache on Windows XP

This will be of no interest to most people but it's useful to note for future reference. The various click-installer solutions to set up Apache and PHP under Windows such as WAMP don't seem to automate...

By , 20th March 2007 In:

Reconstruction 1: Uri Path Completion

Well I went to upload some new writing and just snapped - I couldn't write here until I was happy with the way it was presented. So I tore down all the styles and javascripts, leaving just a structural...

By , 20th March 2007 In:

The Difference Between Programming and Software Development?

Why learning Haskell/Python makes you a worse programmer: So, learning Python and Haskell has demoralised me and encouraged me to write code that is bizarre and difficult to understand, and,...

By , 3rd October 2006 In:

Rethinking Persistence

People are starting to catch on to two very powerful ideas - that functional languages are ideal for building persistent storage repositories, and that a huge subset of web applications don't need...

By , 22nd September 2006 In:

The problem with CSS dropdown menus

This technique been mentioned in passing for a couple of years now, and recently seems to be gaining a fair amount of attention. Many web designers love the idea of building dropdowns like this....

Thoughts of a Lonely Programmer

The writer is doubtless stricken with writers block And can thus, for weeks, vanish into a myriad of dark rooms Where conversation dangles under glistening rows of liquor. The programmer is expected...

By , 13th July 2006 In:

Thinking Beyond Java

Last year, I picked up this curious book which seemed to sum up the zeitgeist of web programming in 2005 - an interesting and polemical twist from O'Reilly

Dohpacity

Joel on Software has published the first draft of a short essay on usability, where he makes the salient point that: Something is usable if it behaves exactlyas expected. This principle of usability...

By , 8th March 2006 In:

Resource Dissonance Format

Recently, I've been looking for good case studies of the practical benefits of RDF adoption, and while I've found a little interesting stuff, I've been noticing a severe dissonance in the volume of...

By , 2nd February 2006 In:

Google Web Authoring Survey

Google have released a bunch of high level statistics from a recent survey (SVG capable browser required), looking at the relative frequency of HTML elements across more than a billion web documents....

By , 26th January 2006 In:

Higher Order Primitives in PHP (and more...)

Thanks again to Harry, I stumbled across two fascinating projects that tackle a particular fundamental problem in PHP5. The ambition of metaphp is to take over the world, and that's actually not such...

By , 21st January 2006 In:

Google and Link Relationships

Google is based on the concept of the web as a gigantic directed graph. Edges in this graph are determined by directional hyperlinks between web pages. How many of us understand how the usage of rel...

By , 27th November 2005 In:

XHTML Design Patterns

The key concept that underlies the modern web is the separation of presentation and structure, and recently, there has been a lot of interest in documenting the synthesis of human friendly and...

By , 3rd October 2005 In:

Zen and the Art of Template Engines

Without exception, programmers espouse separation of logic and display as an ideal principle. In practice, however, programmers and template engine producers are loath to enforce separation, fearing...

By , 25th September 2005 In:

How Microformats are Different

In response to More Thoughts on How Microformats are Different, I'm starting to wonder if maybe there is room for another proper noun that describes "a specific compound of semantic XHTML units",...

By , 25th September 2005 In:

Howling arrays of wolves

Physical/Mental side-effects include howling arrays of wolves that cannot be popped out;

By , 6th September 2005 In:

Hoodlum Scripting

Why and MenTaLguY show how to upwink javascript into web requests - is this a replacement for Greasemonkey, or just total insanity?

By , 27th August 2005 In:

I really thought it was over

But it's not... Yet the author of this new RSS 3 spec has made a more-than-insignificant oversight: he's missed the fact that RSS 3 already exists and it's a f**king joke... Aaron Swartz certainly...

By , 23rd August 2005 In:

Entity Relational Diagrams in HTML

This is a prototype of a language modelling tool, created for the purpose of helping designers, information architects, and developers collaborate better. If you want to check it out, and have access...

By , 21st August 2005 In:

You Get What You Pay For

This piece landed in my inbox twice today, and immediately caught my attention. It's well written, and makes some excellent points that I think are exactly on the mark. Paul Graham has elaborated...

On Semantic HTML

Having slogged through the trenches on some pretty large scale HTML and CSS builds, I tend to have a somewhat jaundiced view of declarative syntax. There’s only so many hundreds of hours you...

By , 5th August 2005 In:

Mandatory Greasemonkey Update

Any users of Greasemonkey who aren't on the mailing list, and didn't see the latest round of security discussions should immediately read this and follow the requisite steps... Update: Simon has...

By , 20th July 2005 In:

do.del.icio.us

I've started a simple repository of Greasemonkey User Scripts. Mostly experiments I've been playing with in my spare time, and occasional annoyances with sites that I feel compelled to fix. The most...

By , 12th June 2005 In:

Only Send What You Need

Managing RESTful AJAX operations is an open problem. While I say that aspects of managing HTTP requests, and designing UI feedback cannot be understood in isolation and must...

By , 5th June 2005 In:

Asynchronous Representational State Transfer

AJAX is not new(s). Previously, I've been critical of the nomenclature, perhaps more for aesthetic reasons than anything else, but I have to agree with Simon Willison, who...

By , 4th June 2005 In:

Multicolumn Layouts in CSS

Gecko support for CSS3 multicolumn layouts looks interesting... I know next to nothing about CSS3 in Mozilla, but this is something that I have wanted to use on a...

By , 3rd May 2005 In:

Four reasons...

Why you would choose PHP over Java on your next major CMS development project: You want to write anywhere, run once. You want to work directly with classes,...

By , 31st March 2005 In:

Ajax and UX

Amongst those of the user experience and information architecture persuasion, there seems to be a growing trend that involves taking interesting new technological and interactive...

By , 21st February 2005 In:

Style Object Stew

Think you understand the basics of HTML and the Document Object Model? Start with a basic CSS selector: #items { width:180px; height:220px; } Now the HTML that this CSS decorates: ...

By , 21st September 2004 In:

Extracting Tabular Data from HTML Tables

Despite having been a significant catalyst for the success of the world-wide-web, use of the humble 'ol <table> has been drived to the backroads with current conventions...

By , 10th September 2004 In:

Links

aesthetics ai algebra algorithms antiquity apache archaeology architecture art aspects books browsers capitalism catastrophism circuits classics code cognition cointel communication computing css culture data design dom economics editing education encoding entanglement expressions facism filters formats games generators geopolitics graphics hardware history horror html http ideas industry information interaction java javascript language languages learning logic management mapping maps mathematics media memetic metadata mistakes models mozilla mythos neocon objects oil oldskool opensource optimization organization osx parsing patterns perl persistence philosophy php physics politics power projection propaganda psychology python quantum refactoring ruby science security sociology software space symmetry testing truth typography urban usability war xml