Archive | November, 2003

PHP Marathon Results

Posted on 26 November 2003 by Demian Turner

The first PHP Programming Marathon is over : The Winners? The Problem? The Winning script?

All is here including sources and live working scripts. Enjoy and see you at the next PHP Marathon in March.

Meet the winners and other participants on the channel #phpmarathon on

Comments (0)

View Hidden Passwords Bookmarklet

Posted on 25 November 2003 by Demian Turner

Simon’s always talking about bookmarklets so I figured I’d better find the time to check them out. 

Here’s a really useful one for exposes ‘hidden’ passwords in remembered form fields.  How many times have you had your browser memorise a password then totally forgotten it days/weeks later.

Comments (0)

MySQL or Postgres: Going To War

Posted on 24 November 2003 by Demian Turner

One of the great things about open source is the heated discussions, not to mention the creative use of english.  I often find people who use english as a second or third language much more expressive than native speakers.  Here is a little snippet from an interesting thread I bumped into while researching a new mysterious PHP error message, “Session object destruction failed”.

Men, i was dying from laugh when i readed their “benchmark” information… In db-programmers community there are many similar “benchmarks”, which compare FoxPro with solid nature of Interbase. Many people believe in all these absurds and ask: “hey, why the IB is so slow?!”. My only answer is: “If i go to war, i choose Leopard 2A5 or Leclerc – not Ferrari, i choose BMP-3 – not Iveco truck, ’cause i will fight and question if i survive is vital to me, not to be fast”. In fact, comparing file (“desktop”) database with real SQL-compliant database server is like comparing car with tank and – believe me – programming is like war… If you really want to compare “speed”, do not use any front-ends, only embedded (built-in) capabilities like stored procedures (didn’t see anything like that in MySQL), referential integrity (“why do not use RI?”), triggered actions (i.e. ON UPDATE|ON DELETE CASCADE|DELETE|SET NULL|NO ACTION), triggers (BEFORE|AFTER DELETE|UPDATE|INSERT), custom exceptions, linked UDF’s, two-phase commit, constraints etc. How many of them are present in MySQL? I can say with hand on my heart, that since i started working with Interbase i do not want any DBMS that doesn’t provide me these things. Really, MySQL is very good database compared to dBase, Paradox, FoxPro or even Access, but it’s not a match for any real database server. Do not mix them!

Comments (1)

Seagull 0.3.5.p1-beta bugfix

Posted on 23 November 2003 by Demian Turner

Unfortunately a showstoppoer bug crept into the last Seagull release, the good news is it’s only one line of code to fix it.

If you’re running Seagull 0.3.5 on MySQL please go to


and add a final element to the DataObjects options array:

‘ignore_sequence_keys’  => ‘ALL’

Basically the behaviour of the latest DataObjects, which I updated at the last minute, has changed significantly however the above flag reverts it to previous behaviour.

Alternatively, you can download the patched release here.

Comments (0)

Have More Fun Designing Schemas with DBDesigner 4

Posted on 22 November 2003 by Demian Turner

If ever there was a before and after moment in developing with MySQL, for me at least it’s been since my boss pointed out DBDesigner, what a package.

This open source database design tool from Fabforce has it all, including a lot of the features that it’s more expensive competitors don’t offer, just check out the screenshots.  Here’s a summary of features:

  • Available on Linux / MS Windows
  • User Interfaced based on industry standard layouting software
    • Canvas navigation similar to Adobe Illustrator® and Photoshop®
    • Palettes (docked / floating) including “Bird Eyes view”
    • Available objects include tables, realtions, labels, regions, images
    • Extensive Drag’n’drop support
    • Extensive Popup-Menu support
    • Advanced Editors
    • UNLIMITED Undo-/Redo- functions
    • Copy-/Cut-/Paste clipboard functions (XML, DDL)
    • Align functions
  • Design Mode / Query Mode
  • Reverse engineering MySQL, Oracle, MSSQL and any ODBC databases
  • Userdefined schema-generation
  • Model-To-Database syncronisation
  • Index support
  • Automatic foreign key placement
  • Weak entity support
  • Standard Inserts storing and sync
  • Full documentation capabilities
  • Advanced model printing
  • Output as image
  • All MySQL datatypes with all options
  • User defined datatypes
  • Database storage, ability to save model within database
  • Network-/Multiuser access through database storage
  • Version control*
  • SQL Query Builder
  • SQL Command History
  • SQL Command storage within model
  • Plugin interface

Comments (1)

Seagull 0.3.5-beta Released

Posted on 19 November 2003 by Demian Turner

After a lot of bugfixes and testing by project members, 0.3.5 is finally out the door.  Major changes include:

  • tweak to ErrorHandling class so code now runs at E_ALL with @error muffling working correctly
  • all errors fed back to browser by default, no longer necessary to initiate debug session
  • blocks/templates cleaned up, skins planned for next version
  • app setup considererably simplified, see changelog for details
  • hooks added for xDebug profiling that will silently fail if you don’t have the extension installed
  • schemas added for Postgres, MS SQL, Oracle – Postgres tested and works well

Comments (0)

HTML_Progess Tutorial

Posted on 19 November 2003 by Demian Turner

If you followed last week’s article on progress bars, you’ll be interested to know Laurent Laville has created some tutorials on his excellent package.

These are in phpDocumentor format, quite a slick way to present a tutorial.

Comments (0)

Google Sets

Posted on 19 November 2003 by Demian Turner

The chaps here at work use Google sets, apparently it’s been around for ages.  It’s of matter of using the right tool for the job right, well Google sets solves a lot of common problems.

Imagine you’re looking looking for new PHP forum software, you’ve tried phorum and phpBB and want to try out something new, just start out your set with those items and hit ‘small set’.

Can’t remember the name of that Jimmy Hendrix song you want to download?  Prime your set with the obvious Foxy Lady and Crosstown Traffic and fire away. 

Great way to find out about your competitors in business too.

Comments (0)

Powerpoint productivity

Posted on 14 November 2003 by Demian Turner

Picked up in Jeremy’s comments, original source here.

We had 12.9 gigabytes of PowerPoint slides on our network. And I thought, What a huge waste of corporate productivity. So we banned it. And we’ve had three unbelievable record-breaking fiscal quarters since we banned PowerPoint. Now, I would argue that every company in the world, if it would just ban PowerPoint, would see their earnings skyrocket. Employees would stand around going, “What do I do? Guess I’ve got to go to work.

— Scott McNealy, CEO of Sun Microsystems

Comments (0)

Modeling Trees: Nested Sets and Adjacency Lists

Posted on 13 November 2003 by Demian Turner

We’re thinking of using PEAR‘s NestedSet library on the Seagull project as an improvement on the current MySQL-only tree manipulations offered by HTML_TreeMenu.

Nested sets are more complex to setup than the simple id-parent id paradigm of the adjacent list method, but running typical queries to determine leaf nodes, paths, etc are much easier.

This article on modeling trees has a good overview of the difference between the two approaches, thanks to Andy Crain for pointing it out.

update: the quoted link has since been pulled, but check out this article on modified preorder tree traversal which gives similar background info on the subject.

Comments (1)



Demian Turner's currently-reading book recommendations, reviews, favorite quotes, book clubs, book trivia, book lists



PHPkitchen recommends you also check out the following sites :

Accounting for Small Businesses

FreeAgent sign-up