Web GUI: New Testcase Runners For PHPUnit From Sebastian Bergmann

11 11 2007

A few days ago I uploaded a webbased GUI for PHPUnit from Sebastian Bergmann to sourceforge. as part of the Cool project. I use it myself very intensively and it could be very useful for others as well. But oh, the download statistic is pretty bad. Time to blog about it and some other pulsating evolutions.

The cool address is http://cool.sf.net.

PHPUnit is the standard for unit testing with PHP. It runs pretty well on command line as well as in continous integration environments. The documentation from Sebastian Bergman is excellent and freely available. But pretty GUIs for it are still rare.

The address of PHPUnit: http://phpunit.de

Robert Lemke did a first approach to bring up a GUI as a T3 extension, with some interesting concepts. But it was still a little difficult to work with it. Now Kasper Ligaard from Denmark did a big job to improve Roberts extension and the result is very promising.

The extension key is phpunit.

Daniel Brüßler from Germany assisted by improving the PEAR installer extension, so that you can easily update PHPUnit via PEAR channel, as often as a new version has been released.

The extension key is PEAR.

Mario Rimann and Oliver Klee stepped ahead an improved the quality of the Seminar Manager extension by unit testing.

I hope we will see more well tested TYPO3 extensions in future.

To have a nice GUI available also outside the world of TYPO3 I migrated the Ideas of Robert and Kasper to PHPUnit_CoolUI. Another source inspiration is
PHPUnit2 HTML Runner from Dave Spurr (UK). Unfortunately it depends on an older version of PHPUnit, so that I didn’t get it running.





Report: Phing – Don’t repeat yourself

5 11 2007

DRY,

Don’t Repeat Yourself (DRY, also known as Once and Only Once or Single Point of Truth (SPOT)) is a process philosophy aimed at reducing duplication, particularly in computing. The philosophy emphasizes that information should not be duplicated, because duplication increases the difficulty of change, may decrease clarity, and leads to opportunities for inconsistency. DRY is a core principle of Andy Hunt and Dave Thomas’s book The Pragmatic Programmer. [0]

[0] Wikipedia: http://en.wikipedia.org/wiki/Don%27t_repeat_yourself/

Read the rest of this entry »





Report: Resize a Logical Volume on Ubuntu Feisty upon upgrade to Gutsy Gibbon

13 10 2007

Today I upgrade from Ubuntu 7.04 (Feisty Fawn) to the release candidate of Ubuntu 7.10 (Gutsy Gibbon). During the update the logical volume /usr comes to it’s limits. I need to add 1 GB of diskspace. It’s a reiserfs. I should be able to extend the running mounted volume.

The overall steps are 3

  1. Backup first
  2. Extending the logical volume
  3. Extending the filesystem on the volume

Read the rest of this entry »





Report: Expandable Controller of Lib/Div

7 09 2007

yesterday I had the first opportunity to test the expandable controller
feature of lib. To remember: It’s a way to register an additional
collection of action methods to an existing controller class, either from
within the same extension or from a foreign one.

Read the rest of this entry »





Wisdom: 6 Top Secrets of Successful TYPO3 Programming

20 08 2007
  1. Clear the caches.
  2. Check the rights.
  3. Check the pathes.
  4. Include the static template.
  5. Open your eyes.
  6. Oops, it did work already …




Study: The Presentation-Abstraction-Control architecture of TYPO3

6 08 2007

Everybody is speaking about Model-View-Controller architecture (MVC). Has TYPO3 a MVC architecture? What do you think?

Many developers will answer this question with a clear YES. The data are in a database. Obviously there must be a model. TYPO3 generates webpages from this using HTML templates. So there is a view. Bingo. But stop. First questions pop up now:

  • Having a database layer, an application-server layer and a client layer (browser) makes it a three-tier architecture. But that is not the definition of MVC.
  • What exactly is the controller?
  • Why do we speak of TS templates?
  • Does typoscript belong to the view or is it rather the controller?

Read the rest of this entry »





HOWTO: Using the typolink function

1 08 2007

Typolink matters

Links are the magic stuff that keep the web together.
It would be understatement to say that links characterize the web.
They simply make the web. No links, no web.

Links get even more important for a content management system like
TYPO3. They not only point from one page to the other, they even controll
the whole system with all the many parameters. The parameters can
be visible for the user or hidden behind hash values or “pretty URLs”.

If this parameters are not perfectly done, the system starts to
fail. Language settings get lost, frames jump out of a frameset,
caching doesn’t work, the page is getting slow, XHTML becomes invalid,
JavaScript breaks, and and and …

Read the rest of this entry »





Fight the no_cache parameter II

27 07 2007

From 1.650.000 to 2.460.000 – disaster in progress

3 monthes passed. It’s time to do the test again.


April 17. 2007 — Juli 27. 2007
2.050.000 — 2.550.000 (google.de: “no_cache=1″)
1.650.000 — 2.460.000 (google.de: inurl:”no_cache=1″)

While in april there there were 20% fewer hits when prepending “inurl:” to the search this difference is 5% today. This indicates that the algorithm may have been modified. That should be considerd when looking at the results.

The results of both queries exploded, ca. 25% for the first search term, ca. 50% for the second.

Will the TYPO3 community be able to invert the trend to a growing amount of ill caching pages?





Pilot: Prototype of a Typoscript Compiler that Generates a PHP Array, Build with Flex and Bison

11 05 2007

Some people say, “Don’t trust a developer that didn’t write his own compiler.”. A few days ago I finished the first version of my first compiler. It compiles typoscript to a php array.

Source and Binary for LInux


a.line.of = Typopscript

$TS['a.']['line.']['of'] = 'Typoscript';
 

It is implemented using Flex and Bison the open source implementations of Lex and Yacc. The result is a little C progam. You can feed TS into the compiler from within any PHP script and get a PHP array back in return.
Read the rest of this entry »





Conception: Workflow Mechanism of a YES-NO Questionnaire

7 05 2007

Introduction

Often people like to have a questionnaire with multipage forms, that they can setup and configure on their own. They would like to work with a simple configuration list of questions or with the assistance of a wizzard. It should be able to branch into subforms depending on the selected answers.

Motivation

I have different ideas, how this could be done and want to scratch down my ideas for the first model with a very abstract concept, that I call a pure YES-NO questionary. The other ideas are based on the YES-NO concept. Just like you can build complex programs and data on top of the primitive 0 1 bit structure.

Read the rest of this entry »