You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
219 lines
10 KiB
XML
219 lines
10 KiB
XML
<?xml version="1.0"?>
|
|
<page title="The Last Craft?" here="Last Craft">
|
|
<long_title>
|
|
The Last Craft? Web developer tutorials on PHP, Extreme programming
|
|
and Object Oriented development
|
|
</long_title>
|
|
<content>
|
|
<introduction>
|
|
<p>
|
|
This site focuses mostly on developing with lightweight web technologies such as
|
|
<a href="http://www.php.net/">PHP</a>,
|
|
especially when applied with agile methodologies such as
|
|
<a href="http://www.extremeprogramming.org/">XP</a>.
|
|
No guarantee of quality is given or even intended.
|
|
It is hoped only that what you find gives you ideas and enthusiasm
|
|
from a fellow computer programmer.
|
|
</p>
|
|
<p>
|
|
I've been a little busy of late with children (two versions).
|
|
They take quite a chunk of your professional life and 100% of
|
|
what's left!
|
|
Hopefully the projects below should start to get back on track.
|
|
</p>
|
|
</introduction>
|
|
<section name="what" title="Ongoing projects">
|
|
<p>
|
|
My latest project is <a href="cgreen.html">Cgreen</a>.
|
|
It's a C unit tester.
|
|
There are a couple of C unit testing tools out there already of course.
|
|
What makes <em>Cgreen</em> different is that it is pure C99, includes
|
|
a tutorial right here and has facilities for creating mock functions.
|
|
Mock functions should lead to more decoupled C code if Mock objects are
|
|
anything to go by.
|
|
It's alpha status right now until I get feedback from other users.
|
|
So if you want to be influential, try it out right now.
|
|
The project has been mostly funded by <a href="http://www.wordtracker.com/">Wordtracker</a>,
|
|
for which I am very grateful.
|
|
</p>
|
|
<p>
|
|
Along with Jon Ramsey, I am a founder of
|
|
<a href="http://www.phplondon.org/wiki/">PHP London</a>, a PHP user
|
|
group not surprisingly based in London.
|
|
It's going well.
|
|
The networking meetings take place on the first Thursday of every month
|
|
at a pub.
|
|
</p>
|
|
<p>
|
|
In addition the group organises other events that include the 2nd
|
|
<a href="http://phpconference.co.uk/">London UK PHP Conference</a>.
|
|
This is a one day event on Friday the 23rd of February 2007 and costs only
|
|
fifty quid.
|
|
</p>
|
|
<p>
|
|
The <a local="simple_test">SimpleTest PHP unit tester</a>
|
|
is available for download from your nearest
|
|
<a href="http://sourceforge.net/projects/simpletest/">SourceForge</a>.
|
|
It is a PHP unit test and web test framework.
|
|
Users of <a href="http://www.junit.org/">JUnit</a> will be
|
|
familiar with most of the interface.
|
|
The <a href="http://jwebunit.sourceforge.net/">JWebUnit</a>
|
|
style functionality is more complete now.
|
|
It has support for SSL, forms, frames, proxies and basic authentication.
|
|
The current CVS code should become the 1.0.1 release real soon now and
|
|
includes file upload and many small improvements.
|
|
The idea is that common but fiddly PHP tasks, such as logging into a site,
|
|
can be tested easily.
|
|
</p>
|
|
<p>
|
|
My most neglected project right now is a requirents testing
|
|
and sign-off tool called
|
|
<a href="http://sourceforge.net/projects/arbiter">Arbiter</a>.
|
|
It's actually best described in this
|
|
<a href="http://www.sitepoint.com/forums/showthread.php?t=193797">Sitepoint thread</a>,
|
|
but basically think of it as a document driven FIT for small
|
|
web projects only.
|
|
The project is currently stalled due the birth of children and
|
|
writing projects.
|
|
</p>
|
|
<p>
|
|
Also on the subject of open source, <a href="http://www.wordtracker.com/">Wordtracker</a>
|
|
have kindly agreed to publish some of their in house tools.
|
|
A Wordtracker spin off is <a local="fakemail">fakeMail</a>.
|
|
Testing applications that send e-mails can be a right royal pain because
|
|
of all of the infrastructure involved.
|
|
You will likely need an SMPT gateway that talks to a POP client that
|
|
you can read the queue from.
|
|
That's a lot of set up.
|
|
<a local="fakemail">Fakemail acts as an SMTP gateway</a> on any port
|
|
you define.
|
|
When you send it a mail it simply copies that mail to the local file
|
|
system in whatever directory you want.
|
|
You then just have to look at the local file.
|
|
It means that you must be able to configure your application to use
|
|
a port other than 25, but that's not usualy difficult.
|
|
</p>
|
|
</section>
|
|
<section name="why" title="Why the Last Craft?">
|
|
<p>
|
|
A craft is defined as...
|
|
<div class="quotation">
|
|
Art or skill; dexterity in particular manual employment;
|
|
hence, the occupation or employment itself; manual art; a
|
|
trade.
|
|
</div>
|
|
</p>
|
|
<p>
|
|
If you lose a screw or clasp from a hand made jewellery box it is hopeless to
|
|
try to find a replacement. Nothing else is quite the same and the mechanism will
|
|
fail to work. It may even cause more damage when applied. You need to find the original maker
|
|
or someone of the same skill to make you another.
|
|
Sound like software?
|
|
Yet mechanical parts today are interchangeable.
|
|
</p>
|
|
<p>
|
|
Writing software has resisted mass production.
|
|
As soon as a part of it becomes
|
|
routine it can be automated.
|
|
Once it is you don't need a programmer any more.
|
|
Routine programming jobs no longer exist.
|
|
All that is left is the unsolved problems that require
|
|
a higher level of skill in constructing their solutions.
|
|
</p>
|
|
<p>
|
|
This dependency on the ability of the artisan, combined with nothing quite fitting
|
|
together properly, is what gives software the pre-industrial feel.
|
|
</p>
|
|
</section>
|
|
<section name="crc" title="The cards?">
|
|
<p>
|
|
The panel at the top is supposed to resemble a standard office index card.
|
|
The way it is marked out is called a
|
|
<a href="http://www.c2.com/doc/crc/draw.html">CRC card</a>.
|
|
It stands for Classes, Responsibilities and
|
|
Collaborations and is the cheapest software development tool you
|
|
can find.
|
|
You really do buy a pack of cards.
|
|
<p>
|
|
</p>
|
|
The role is written at the top and would often be just a class
|
|
name.
|
|
The left side is the object's responsibilities and on the
|
|
right collaborations (within the page I have treated these as
|
|
internal links and external links repectively).
|
|
A group of developers can point at, discuss and discard cards
|
|
in the heat of design session.
|
|
It makes it especially difficult for only one person to take charge
|
|
of a discussion in the way you can with a UML tool or notepad.
|
|
Try scribbling out five cards before someone gets a look in.
|
|
</p>
|
|
<p>
|
|
Now nothing beats a whiteboard for collaboration, but if the level
|
|
of detail is getting too high and you want a temporary record,
|
|
give the CRC cards a try.
|
|
</p>
|
|
</section>
|
|
</content>
|
|
<internal>
|
|
<link>
|
|
<a href="#what">Projects</a> under development.
|
|
All free and open source software.
|
|
</link>
|
|
<link>
|
|
<a href="#why">Why Last Craft?</a>
|
|
Odd name isn't it?
|
|
</link>
|
|
<link>
|
|
<a href="#crc">Why this index card</a> at the top?
|
|
</link>
|
|
</internal>
|
|
<external>
|
|
<link>
|
|
<a local="simple_test">SimpleTest</a> is a PHP unit test framework.
|
|
</link>
|
|
<link>
|
|
My article on <a href="http://www.developerspot.com/tutorials/php/test-driven-development/page1.html">TDD</a>
|
|
</link>
|
|
<link>
|
|
My article on the
|
|
<a href="http://www.phppatterns.com/index.php/article/articleview/75/1/1/">Registry Pattern</a>.
|
|
</link>
|
|
<link>
|
|
Site E-mail is
|
|
<a href="http://spamcop.net">SpamCop</a>
|
|
filtered which I cannot recommend enough.
|
|
</link>
|
|
</external>
|
|
<meta>
|
|
<keywords>
|
|
software development,
|
|
computer programmer,
|
|
php programming,
|
|
programming php,
|
|
software development tools,
|
|
software development company,
|
|
php tutorial,
|
|
free php scripts,
|
|
bespoke software development uk,
|
|
corporate web development,
|
|
architecture,
|
|
php resources,
|
|
wordtracker,
|
|
xslt,
|
|
java,
|
|
bug tracker,
|
|
bug reporting,
|
|
unit test,
|
|
php testing,
|
|
test cases tutorial,
|
|
explain unit test case,
|
|
unit test example,
|
|
xml
|
|
</keywords>
|
|
<description>
|
|
A web site of software development tutorials and examples with an
|
|
emphasis on web programming, testing, agile methodology and PHP
|
|
development
|
|
</description>
|
|
</meta>
|
|
</page> |