Archive | December, 2004

Season’s Greetings 2004

Posted on 24 December 2004 by Demian Turner

Just a quite note of thanks to all readers for their interest, support and contributions over the last year, and wishes for a Merry Christmas/Season’s Greetings 2004.

I’ve put up a 0.4.0 pre-release for the Seagull project, check out the changelog and download it here.  Main changes for this release are decent Oracle integration and support, refactoring of many core libs, improved installer, a few new modules and improved article management – enjoy!

Comments (0)

Where’s My Perfect CMS?

Posted on 22 December 2004 by Demian Turner

Scott Goodwin, Mr., has a good article out recently though I can’t tell from when because his CMS, Mambo, apparently doesn’t date articles.

The article starts by identifying the 3 target types of users:

  • End users – who just want to be able to do what they want to do
  • Site administrators – who just want to be able to do what they need to do; and
  • Site installers and programmers – who just want things to work.

then moves on to define what the perfect CMS would comprise:

My "perfect" CMS would make it as easy for users to do stuff as I want to make it for them. It would never make them go "Huh?"

My "perfect" CMS would have a good README file, so that I know how
the database is supposed to e set up, where the files need to go, which
ones need special access setting, and where all of the default settings

My "perfect" CMS would let me do all of the the admin tasks with no
idea of what code is hidden in the background. It would give me
complete flexibility in my entire configuration. It would let me enable
and disable features and functions easily. It would get stuff out of my
way that I’m not using.

My "perfect" CMS the code would have comments. Code blocks would
have explanations in them, so I can find out what each one is supposed
to do. There’d be a description in each module that gives concise
descriptions of the module functions, what they do, what they expect to
get passed, and what they pass back. There’s be html comments embedded
in each module’s output, so that I can look at a page source and see
which part of each page is getting written by which module, and where I
can find debugging information and error messages Would it increase the
page size? Sure – a bit. Would it make it easier for me to
troubleshoot, modify and customize things? Sure – a lot.

Keep in mind that Scott’s point is view is quite unique in that he has literally tried, tested and installed hundreds of PHP CMSs, just look at his site for proof – a luxury few of us can afford.

Comments (0)

Profiling your Apps with Xdebug and KCachegrind

Posted on 22 December 2004 by Demian Turner

A great way to fine tune the performance of your application is to profile it with Xdebug. When configured correctly, Xdebug will output trace files like ‘cachegrind.out.2193401842’ which you can then run through a profiling visualisation app like KCachegrind. Graphical output typically looks like this and this and will detail the number of bytes of RAM consumed by each method in your code, as well as milliseconds spent, helping you isolate bottlenecks.

There are a number of steps you’ll need to take to setup your environment before you can use these tools – if you’re running Windows, forget it, you will need a Linux flavour – the following configuration worked for Fedora Core 2.

Installing Xdebug

This is the easy part, this will give you version 2.0:

pear install xdebug

Installing KCachegrind

Goto the KCachegrind download page. Download the following libs:

  • callgrind-0.9.10
  • valgrind-2.2.0
  • kcachegrind-0.4.5

You’ll also need QT development libs:

  • qt-devel

which will not compile unless you set the following environment vars:

export QTDIR and QTHOME=/usr/lib/qt-3.3

and the KDE libs (core 2 runs the gnome desktop environment by default)

  • kdebase
  • kdebase-devel

and finally, you’ll need the graphviz package:

rpm -ivh

Have fun 🙂

Comments (1)

How do you define Open Source – you Moron

Posted on 15 December 2004 by Demian Turner

I don’t usually have time to follow forum posts on top of countless mailing lists, blogs and personal emails – however this post from the phpAdsNew forum pointed out to me earlier today is clearly an all-time classic.

Context: a number of users are discussing whether a free license key that enables user-tracking invalidates a software project’s claim to be "open source". Here’s a highlight:

You stupid condescending POS.

No phone-home is anonymous – you moron.
You yourself said they were using it to look at the users’ web sites – you moron.

No one criticized the quality of the work – you moron.

There is one issue here – you moron.
Requiring a key is not true open source – you moron
That is the only issue – you moron
Any copy protection (or phone-home) can be broken.
Just putting it in will foil most people who are not able to remove it.
The entire PAN user community is now going to learn Java.

Are you ever going to discuss the facts and stop your stupid name calling – you moron?

How about this? I dare you to disuse the issue.
Or this? I’ll bet you 5 bucks you cannot discuss the issue.

Was that childishly moronic enough?
Did I manage to truly embrace your childish name calling style?
Can you actually have a debate on the facts?

And I am the "ignorant’ one who needs to "grow up."
Look in the mirror SFB.
You started the personal attacks, ignoring the issues.

Hey moron, still waiting for that easy-to-make keyless version!
Instead of just calling names, prove how much smarter you are.
Go on, dazzle us all with your brilliance

Comments (0)

The ArrayObject in PHP5

Posted on 15 December 2004 by Demian Turner

Haven’t been watching Devshed closely enough, they’ve just put out their second article on SPL, the Standard PHP Library, something which otherwise is difficult to get material on.

While the first article was a decent overview of PHP’s implementation of Exceptions, this one examines the ArrayObject and gives an example of traversing the filesystem in even fewer LOC than before 😉

When you look at the class definition, ie which interfaces are being implemented:

class ArrayObject implements IteratorAggregate,
ArrayAccess, Countable { … }

it seems there are more language level objects available than meets the eye.

Comments (1)

PHP Wordsearch Generator

Posted on 13 December 2004 by Demian Turner

Quite a neat project, even if you’re not into word games 😉 Try Overture’s keyword generator (copy into Excel then column select the terms) then build yourself a wordsearch.

Comments (0)

Presentation Slides from Poznan

Posted on 12 December 2004 by Demian Turner

The slides from the Seagull presentation I gave with Michał Pawłowski in Posnan, Poland are now online.

Comments (0)

phpBeans – Enterprise PHP Objects

Posted on 10 December 2004 by Demian Turner

phpBeans is a new standard that enables n-tier development within PHP and other scripting languages, which previously was not possible with PHP alone.

The phpBeans protocol specification defines a method of performing remote method invocation (RMI) on PHP objects across multiple servers. The server API specification defines a series of “default” objects that offer standardized object persistence capabilities, error handling, user and privilege management, and more, across all phpBeans implementations. The client API specification defines a standard set of methods for transparently calling remote objects as if they were real local objects.

Also available for download are the phpBeans Object Server software, and Client API libraries for both PHP and Ruby programming languages, all of which are released under an Open Source license.

For more information, see:

Comments (0)

Call Remote PHP methods from within JavaScript

Posted on 07 December 2004 by Demian Turner

Quite an interesting article by chregu who’s using Harry’s JPSpan package for:

the purpose of fetching data from PHP into a web page which has already loaded, without reloading the entire page.

More than just ‘intelligent’ forms, if/when this takes off that’ll be the end of hitting submit buttons. chregu continues:

But my master plan is, to replace the whole submit/save/reload circle
with a more "natural" way. So if you click "submit", the page isn’t
send, but just the data in the background. The page has not to be
reloaded and you just can work further on the same document. The same
should go for loading a new record entry, just choose it from an
(automaticly retrieved) pop-down field and the data is loaded from the
network, without having to reload the whole page.

Comments (0)

Resources for Choosing a CMS

Posted on 07 December 2004 by Demian Turner

There’s a good article over on TechRepublic with some advice/resources to look at when choosing your next (or first) CMS.

  • CMS
    strategy: Don’t put the cart before the horse

    Content management isn’t about buying a piece of technology. It’s about
    putting business needs first and finding the best solution for your
    organization, processes, and staff. Find out how to handle the first
    critical step: outlining a business strategy.
  • Consider
    these factors when determining ROI on a CMS

    As IT budgets tighten, there’s a strong demand to prove return on
    investment when mapping out big projects, such as implementing a CMS
    solution. We’ll show you how to determine ROI so you can move ahead with
    your CMS project.
  • Defining
    CMS technical requirements

    Defining the technical requirements of a CMS effort is just as critical as
    evaluating the content issues involved. Find out who to talk to, what to
    ask them, and how to avoid common pitfalls when determining the technical
    issues at hand.
  • The
    right content manager can make a CMS hum

    Choosing the right content manager is critical to the success of your CMS
    deployment. Find out what a CMS expert had to say about the role and
    responsibilities of the content manager, and the value inherent in finding
    the perfect candidate for the job.
  • What
    counts in choosing the right CMS

    Most tech leaders think that the big decision involved in implementing a
    CMS is which vendor product to go with. But as four CMS experts relate,
    there are many other factors that are much more important than the actual
    product decision.

Comments (0)



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