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!
Posted on 22 December 2004 by Demian Turner
Scott Goodwin, Mr. OpenSourceCMS.com, 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
belong.
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.
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:
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)
and finally, you’ll need the graphviz package:
rpm -ivh http://www.graphviz.org/pub/graphviz/ARCHIVE/graphviz-1.12-1.i386.rpm
Have fun
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.
Right.
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."
Right.
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
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.
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.
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.
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:
http://www.phpbeans.com/
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.
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.