My Articles
[Click to print this article]
One of the things I enjoy doing is writing, especially writing about algorithms and
development methodologies.
Why? Well, several reasons I suppose. First is that the study of algorithms is based in
mathematics, and that's the subject I got my BSc degree in at Kings College, University
of London, way back in 1979.
Second is that algorithms and data structures have been fascinating for me ever since
I bought two awful libraries for Turbo Pascal. The first was a library for reading and
writing Lotus 1-2-3 files (I no longer have the code unfortunately). It was so bad that
it would write Lotus 1-2-3 files with one cell that Lotus couldn't read. I rewrote it
all and had many a happy hour writing the expression parser for the cell formulas. The
other library was an extremely inefficient implementation of some standard data structures:
linked lists, trees, etc. Again, I disliked the code so much that I rewrote it (some
parts turned out to be over 10 times faster) and it became EZSTRUCS, and
eventually EZDSL.
Third is that I just enjoy teasing out complex algorithms into efficient code.
This website contains lots of articles on various subjects,
all published here for the first time. Sometimes I write articles for other people or
sites and these are collected here (as much as I can, but note than some of these links
are broken).
Mixture of articles published on CodeFez:
CodeFez
Link published: Mon, 8-Nov-2004
If you think things seem a little thin around here, there's only so much of me to go round. (My wife would probably say, justifiably, that there's too much of me to go round: I should diet and exercise more...) Anyway, starting last Saturday, 6 November, CodeFez opened its doors. Read more...
My other writing home
Link published: Thu, 2-Dec-2004
For completeness' sake, here is a list of my November articles on CodeFez. Read more...
Latest articles on CodeFez
Link published: Mon, 3-Jan-2005
December's editorials on CodeFez. Read more...
Latest articles on CodeFez
Link published: Mon, 31-Jan-2005
January's editorials on CodeFez. Read more...
Latest articles on CodeFez
Link published: Tue, 1-Mar-2005
February's editorials on CodeFez. Read more...
Algorithm articles published elsewhere:
Writing Parsers in C# (part 4) - Building the target
Link published: Wed, 17-Sep-2003
The fourth in a series of implementing parsers. This
installment
[link broken] shows how to modiffy the parser class hierarchy in order to build the target object. To be continued... (C#)
Simple Pattern Matching
Link published: Mon, 15-Sep-2003
It seems simple enough: how do you match a pattern with ? and * wildcards to a string? Well, actually it is pretty easy once you take care of the boundary cases: see how.... (C#)
Writing Parsers in C# (part 3)
Link published: Tue, 9-Sep-2003
The third in a series of implementing parsers. This
installment
[link broken] introduces parsers as a class hierarchy: OOP gone crazy! To be continued... (C#)
Calculating the ISO week number for a date
Link published: Wed, 20-Aug-2003
Someone asked this question on The Code Project: how do you calculate the ISO week number for a given date? See how... (C#)
Calculating the number of months & days between two dates
Link published: Fri, 15-Aug-2003
This is still something that developers think is easy. It isn't and just shows that they haven't thought enough about what answers they expect. Check out why... (C#)
Writing Parsers in C# (part 2)
Link published: Tue, 12-Aug-2003
The second in a series of implementing parsers. This
installment
[link broken] lays down some of the groundwork for parsing a URI (Uniform
Resource Identifier). To be continued... (C#)
Writing Parsers in C# (part 1)
Link published: Tue, 12-Aug-2003
The first in a series of articles on implementing parsers. This
installment
takes it easy by describing how to parse a comma-separated values file
(CSV). And it's not just a case of calling String.Split(). (C#)
Ask A Thousand Times
Link published: Tue, 12-Aug-2003
How do Google and the other search engines generate results so quickly
from a simple couple of words? It can't just be processor power.
Explore
how to index a large set of documents so that searches are almost instantaneous.
(Delphi)
Gilding Pale Streams
Link published: Tue, 12-Aug-2003
Streams are a great invention; in fact, so good that you should embrace
them wholeheartedly in your code. This
article
explores various extensions to the Delphi TStream class to help you.
(Delphi)
What's the Difference?
Link published: Tue, 12-Aug-2003
A problem that keeps on rearing its head and nobody seems to know
how it's done is the problem of working out the changes from one
file to a later version. Find out how with this
article.
(Delphi)
The Slithy Tove
Link published: Wed, 13-Aug-2003
I was browsing around the dark nether regions of my hard disk and came across my very first published article. For fun I present it here: understanding the overlay manager in Turbo Pascal 6.0.