Reporting Test Results

- Services in the USA
Blog entries
2010 Feb 03

Perl for Windows statistics.
2010 Feb 02

Showing Perl on non-Perl conferences, getting money from TPF for swag.
2010 Feb 01

Test Automation using Perl classes.
2010 Jan 21

Padre 0.55 Stand alone for Linux based on perl 5.11.4 released.
2010 Jan 20

Working with upstream - installing Perl modules from CPAN.
2010 Jan 19

FPGA Board Integration - using Perl - Rehovot Perl Mongers.
2010 Jan 14

Use case for Strawberry Perl for Windows.
2010 Jan 12

Would you like that people at FOSDEM will hear about your Perl project?.
2010 Jan 05

When will Padre move to Git?.
2010 Jan 04

Padre on ActivePerl, on FOSDEM and on CeBIT - 2010 starts good.
2009 Dec 29

Creating a Live CD for Perl.
2009 Dec 23

Padre 0.53 Stand Alone for Linux on perl 5.11.3 released.
2009 Dec 20

DMOZ - The Open Directory and Perl.
2009 Dec 16

Rehovot Perl Mongers, next meeting on Dec 22 - PDL, Padre.
2009 Dec 09

Experimental Stand-alone Padre for Linux.
2009 Dec 08

Events organizers promoting Perl.
2009 Dec 06

Perl stand on FOSDEM in Belgium.
2009 Dec 05

Promoting Padre using Social networks.
2009 Dec 02

Open Source Business Model.
2009 Dec 01

Rehovot Perl Mongers meeting report - 17th November.
2009 Nov 28

What does "if it ain't broke, don't fix it" really mean?.
2009 Nov 24

Context Sensitive Help using Padre, the Perl IDE.
2009 Nov 24

Beautiful Perl - creating charts and graphs.
2009 Nov 23

How to help people make money using Perl?.
2009 Nov 20

FOSDEM application dead-line in 2 days!.
2009 Nov 18

Padre supporting technologies in addition to Perl.
2009 Nov 14

Poll: What are you using besides Perl?.
2009 Nov 12

Padre Standalone 0.50 for Windows has been released.
2009 Nov 11

New Perl related books.
2009 Nov 08

Padre 0.50 released.
2009 Nov 05

Rehovot Perl Mongers - First meeting - Matlab and PDL.
2009 Nov 03

The Perl editor and IDE market.
2009 Nov 02

Padre 0.49 released - Release early, release often.
2009 Oct 30

Why bother upgrading perl?.
2009 Oct 29

Perl Virtual Appliances.
2009 Oct 28

FOSDEM call for Perl participation.
2009 Oct 26

Perl Editor and IDE Poll results.
2009 Oct 23

Supplying examples with CPAN modules.
2009 Oct 21

Which editor(s) or IDE(s) are you using for Perl development?.
2009 Oct 21

Perl Mongers in Amsterdam.
2009 Oct 20

Perl Mongers: A world tour on the back of a virtual camel.
2009 Oct 16

Perl on FOSDEM.
2009 Oct 13

Padre 0.48 released.
2009 Oct 07

Getting the Perl Mongers into shape.
2009 Oct 04

Helping each other, you and Padre.
2009 Oct 02

My teenage memories and the Parrot Virtual Machine.
2009 Oct 01

oDesk and the market trends.
2009 Sep 29

Looking for a Perl related job?.
2009 Sep 23

YAPC::EU::2009 videos - Larry Wall talking about Perl 6.
2009 Sep 21

Perl in your language.
2009 Sep 21

Why do I teach PHP to my son?.
2009 Sep 18

One-liners to promote Perl.
2009 Sep 16

CPAN client for the beginners.
2009 Sep 14

Padre Standalone for Windows 0.45 released.
2009 Sep 13

What is Perl used for?.
2009 Sep 10

Help packaging Padre on Linux and Mac OSX.
2009 Sep 09

Help! How to deal with madness?.
2009 Sep 07

What I am missing from EPO.
2009 Sep 06

How to get started with Padre?.
2009 Sep 01

Perl projects for newbies.
2009 Aug 31

Improving the Padre experience.
2009 Aug 29

Improving the Moose experience.
2009 Aug 23

Yet another reason why it is important to be nice to newbies.
2009 Aug 22

Women at YAPC.
2009 Aug 21

More women in the Perl community? Why should I care?.
2009 Aug 19

Dreamwidth account for Padre and myself.
2009 Aug 17

How to help Perl in your organization?.
2009 Aug 15

New life in SDL Perl.
2009 Aug 13

Perldoc translations.
2009 Aug 12

Measurable objectives for the Perl ecosystem.
2009 Aug 10

Marketing BOF on YAPC::EU.
2009 Aug 10

YAPC::EU Lisbon, Thank you!.
2009 Aug 06

Where to find Windows users to try Padre, the Perl IDE?.
2009 Aug 03

Perl 6 training report - YAPC::EU 2009.
2009 Jul 28

Padre BOF at YAPC::EU.
2009 Jul 28

Who needs more marketing in the Perl world?.
2009 Jul 26

Why do you learn Perl 6?.
2009 Jul 25

Is it really hard to find good Perl programmers?.
2009 Jul 25

Perception is Reality - we need a director of marketing.
2009 Jul 21

Better collaboration tools.
2009 Jul 20

NetBeans IDE 6.7 Provides Effective Integration with Project Kenai.
2009 Jul 18

Promoting Strawberry Perl for Windows.
2009 Jul 16

Why am I writing Padre? - The business aspect.
2009 Jul 16

Perl 6 Regexes.
2009 Jul 14

Perl 6 files.
2009 Jul 11

Padre standalone installer for Windows - first beta version.
2009 Jul 09

The Success of Ubuntu.
2009 Jul 09

Padre 0.39 released.
2009 Jul 07

The Corporate CPAN II.
2009 Jul 01

Why am I writing Padre?.
2009 Jul 01

Test Reporting system: Smolder wish-list.
2009 Jun 29

The Ubuntu Business model and Perl.
2009 Jun 28

Perl 5 Personal Service.
2009 Jun 25

Padre 0.37 released.
2009 Jun 23

Things I am missing from Iron Man.
2009 Jun 22

When is the next release of Perl?.
2009 Jun 20

Live Help - IRC channels.
2009 Jun 17

Perl 5 to Perl 6 - Arrays.
2009 Jun 16

Perl 5 to Perl 6 - Scalars.
2009 Jun 15

Introduction to PHPUnit.
2009 Jun 13

Comparing the Eclipse Foundation with The Perl Foundation and EPO.
2009 Jun 10

Help your vendor packaging CPAN modules.
2009 Jun 08

Plans for the next 2-3 months.
2009 Jun 04

If you change the code of an open source application no one will support you.
2009 Jun 03

I hate Net::SSH::Perl.
2009 Jun 02

Why www is (un)necessary in the web addresses.
2009 May 31

Planning an SQL or DBI plugin for Padre.
2009 May 30

The importance of frequent binary releases.
2009 May 30

Padre 0.36 released.
2009 May 24

The Corporate CPAN.
2009 May 22

Perl 6 training in Lisbon in August.
2009 May 17

Perl Programming.
2009 May 08

CPAN Dependency browser.
2009 May 04

Ideas for Padre plugins.
2009 Apr 29

If you can read this then you don't need this.
2009 Apr 28

Padre 0.34 Released.
2009 Apr 27

SmartLinks on CPAN now.
2009 Apr 25

Syntax::Highlight::Engine::Kate anyone seen Hans Jeuken?.
2009 Apr 22

Iron Man Blogging contest.
2009 Apr 14

Padre and Catalyst.
2009 Apr 10

You show them mine, I show them yours.
2009 Apr 08

The Perl 5 - Perl 6 divide.
2009 Apr 08

Reporting Test Results.
2009 Apr 05

What is the last element of an infinite list or how to get started with Perl 6 ?.
2009 Mar 30

Perl 6 subroutines.
2009 Mar 25

Testing a (Perl) Web application without a lot of setup.
2009 Mar 23

Embedding Perl 6 in Perl 5.
2009 Mar 21

Padre and Google Summer of Code 2009.
2009 Mar 20

Perl 6: Looping over a list of values one at a time, two at a time and more.
2009 Mar 17

Perl 6: Is a value IN a given list of values?.
2009 Mar 15

Testing PHP Applications.
2009 Mar 13

Perl 6: Scalar, Array and Hash interpolation.
2009 Mar 11

Perl 6: Arrays with unique values.
2009 Mar 10

Testing PHP code with SimpleTest.
2009 Mar 09

Ending the Padre and Parrot integration grant.
2009 Mar 07

Spine, the Perl CMS (Content Management System).
2009 Mar 07

Better Than Grep.
2009 Mar 06

Vim as Perl IDE.
2009 Mar 05

No cookies for me.
2009 Mar 02

German Perl Workshop.
2009 Feb 28

Hands on Perl 6 training in Oslo.
2009 Feb 24

No good Perl for Win32 ?.
2009 Feb 20

Moaning Goat Meter.
2009 Feb 18

Experimental Perl 6 training / workshop in Frankfurt.
2009 Feb 18

Twitter.
2009 Feb 17

Prices.
2009 Feb 17

More Padre blogs.
2009 Feb 16

Methods and Messages: Randal Schwartz on Smalltalk.
2009 Feb 15

What is Modern Perl?.
2009 Feb 15

Padre blogs.
2009 Feb 15

TOP 100 CPAN packages.
2009 Feb 10

The Five Forces in the Language Wars.
2009 Feb 08

Shimming for testing Perl 6 code released to CPAN.
2009 Feb 03

Writing Perl 6 can be frustrating.
2009 Feb 01

Padre 0.26 released.
2009 Jan 21

Mocking real world to test a wrapper.
2009 Jan 18

Test Automation Training in Oslo, Norway.
2009 Jan 17

Operation on a Series of Integers in Perl 6.
2009 Jan 16

Embedding Parrot in Perl 5.
2009 Jan 13

Test Automation using Perl Training in Frankfurt, Germany.
2009 Jan 12

Getting Started with Perl 6.
2009 Jan 10

Perl 6 syntax highlighting.
2009 Jan 01

Perl 6 Cookbook.
2009 Jan 01

New Year's Resolutions.
2008 Dec 30

PPI based Syntax highlighting for Perl 5.
2008 Dec 29

Syntax highlighting for Perl 6.
2008 Dec 11

Plans for Integrating Padre with Parrot and Rakudo.
2008 Dec 10

Grant accepted for Integrating Padre with Parrot and Rakudo.
2008 Dec 10

Plans for the next month or two.
2008 Dec 05

Perlsphere.
2008 Nov 30

Portable Padre 0.19 for Windows.
2008 Nov 27

10-fold grows in Padre user base.
2008 Nov 26

How many test harnesses are too many?.
2008 Nov 25

Licenses on CPAN. Again.
2008 Nov 20

Padre talk in Haifa, reality check.
2008 Nov 17

Padre 0.17 was released.
2008 Nov 11

Talking about Padre and wxPerl in Haifa.
2008 Nov 11

Backlinks or links back to your site.
2008 Nov 10

Building your resume.
2008 Nov 08

How to run an Open Source Project.
2008 Nov 05

Syntax highlighting nightmare.
2008 Nov 03

2008Q4 TPF Grant Proposals.
2008 Nov 02

Subversion committer statistics.
2008 Oct 28

Perl Application Development and Distribution Platform.
2008 Oct 27

Compare Languages by usage.
2008 Oct 23

Yak shaving.
2008 Oct 21

Recursive development that leads nowhere.
2008 Oct 18

Licenses in META.yml on CPAN.
2008 Oct 17

Shall I enable some form of trackback or commenting?.
2008 Oct 15

Shana Tova - New Year's resolution.
2008 Oct 15

Perl needs is_number and similar functions (nearly built in).
2008 Sep 22

The Quest for the Perfect Editor.
2008 Sep 03

Living on the border.
2008 Sep 02

TAP - Test Anything Protocol.
2008 Aug 31

Padre - the journey I..
2008 Aug 21

Who needs an IDE for Perl anyway?.
2008 Aug 09

Padre project web site.
2008 Jul 26

Padre.
2008 Jul 23

White Camel.
2008 Jul 18

Name a Perl IDE - get a Perl book or YAPC ticket.
2008 Jul 09

QA Hackathon in Israel.
2008 Jul 01

OSDC Israel 2009 - Call for organizers.
2008 Jun 10

Selenium on Ubuntu 8.04 (Hardy).
2008 Jun 09

Testing Hello World.
2008 Jun 08

Wifi is working again!.
2008 Jun 07

CPANTS update.
2008 Jun 03

Frequent Internet blackouts.
2008 Jun 03

Upgrading to Ubuntu 8.04 Hardy on Compaq (HP) nc6400. .
2008 May 23

Test Automation Tips.
2008 May 21

Open Source IDE for Perl.
2008 May 21

This week in Ruby.
2008 May 20

Being included on Planet Perl.
2008 May 13

Adding tag cloud to the blog.
2008 May 13

Ubuntu 7.04 (beta) Feisty Fawn on Compaq (HP) nc6400.
2008 May 13

Test automation using Perl master class in Chicago.
2008 May 13

Adding tags to the blog.
2008 May 09

Automated Testing in PHP, Python, Ruby and Perl.
2008 Apr 03

Strawberry Perl for Windows.
2008 Apr 01

Oslo Hackathon day -4.
2008 Mar 27

Blogging about Perl outside the community?.
2008 Mar 27

OSCON Proposals rejected.
2008 Mar 26

Preparing for the QA Hackathon in Oslo.
2008 Mar 25

Missing licenses on CPAN modules?.
2008 Mar 24

License of Perl Modules on CPAN.
2007 Dec 24

Joining Technorati?.
2007 Dec 24

Regular Expressions in Perl 5.10.
2007 Dec 24

Switching in Perl 5.10.
2007 Dec 24

Smart Matching in Perl 5.10.
2007 Dec 24

What's new in Perl 5.10? say, //, state.
2007 Dec 23

The Zulo interview was published.
2007 Dec 08

Frequency of programming languages on LinkedIn.
2007 Dec 06

Interview in Zulo.
2007 Dec 06

Sun Startup Essentials Launch.
2007 Aug 25

Testing PostgresSQL.
2007 Aug 25

Testing Pugs and Perl 6.
2007 Aug 22

Testing Ruby.
2007 Aug 22

Testing GHC, the Glasgow Haskell Compiler.
2007 Aug 21

Testing NUT, the Network UPS Tools.
2007 Aug 21

Testing SQLite .
2007 Aug 20

Smoked Parrot.
2007 Aug 20

Quality Assurance of Perl 5.
2007 Jul 09

Using mod_perl for szabgab.com.
2007 Jul 07

Quality Assurance and Automated Testing in Open Source Software.
2007 Jul 06

Add tags to CPAN modules via CPAN::Forum .
2007 Jun 15

Windows on VMware.
2007 Jun 12

Reducing the social gap of the information age.
2007 May 25

Moving to a new server.
2007 May 04

Preparing an application for distribution.
2007 Apr 30

Spreadsheet::ParseExcel is looking for a maintainer.
2007 Apr 27

CPAN Modules in Linux Distributions.
2007 Apr 18

Version control of single files using Subversion.
2007 Apr 13

Testing results, Perl and CPAN module availability.
2006 Aug 04

Perltraining.org split into two.
2006 Jul 22

Upgrading Ubuntu to 6.06, (Dapper Drake).
2006 Jul 22

Ginger Spam Salad.
2006 Jul 20

Automating the blog.
2006 Jul 19

Wish list: search engine for Perl related sites.
2006 Jul 19

Perltraining.org .
2006 Jul 18

More blog related issues.
2006 Jul 18

Starting a blog.

Upcoming training classes

Berlin, GermanyTest Automation using Perl 8-11 March, 2010
Tel Aviv, IsraelTest Automation using Perl 15-18 March, 2010
Vienna, AustriaTest Automation using Perl 13-16 April, 2010
Stockholm, SwedenTest Automation using Perl 11-14 May, 2010
Stuttgart, GermanyTest Automation using Perl 1-4 June, 2010
Columbus, Ohio, USATest Automation using Perl 15-18 June, 2010
home | blog

Reporting Test Results

Published on 2009.04.08 at 04:50:51

Tags: newsletter, testing, TAP, Perl, Perl 5, Smolder


Abstract

It is not enough to run tests and get OKs and not OKs, it is also important to have a nice way to report these results. In this entry we are going to look at some of the ways TAP streams can be displayed in a nicer way that pure text report.


This entry was first sent out as part of the Test Automation Tips. Visit here to subscribe.

Welcome back

In preparation to the Test Automation classes in Oslo two weeks from now I am going over my comments I made last month in Frankfurt. One of the missing items was showing how the results of the tests that are in TAP format can be presented better.

After all a textual report such as this:

    tap/01-success..........ok   
    tap/02-failure..........1/4 
    #   Failed test 'this fails'
    #   at tap/02-failure.t line 8.
    
    #   Failed test '2+2 should be 4'
    #   at tap/02-failure.t line 9.
    #          got: '4'
    #     expected: '5'
    # Looks like you failed 2 tests of 4.
    tap/02-failure.......... Dubious, test returned 2 (wstat 512, 0x200)
     Failed 2/4 subtests 
    tap/03-exception........1/5 # planning 5 but running only 3 - with exception
    a real exception at tap/03-exception.t line 11.
    # Looks like you planned 5 tests but ran 3.

that goes on for several pages is still too much and hard to read.

Besides people with less technical background won't like it.

So let's take a look at how one can improve this.

TAP the Test Anything Protocol

Just a reminder, we are talking about test results in TAP format. TAP originated from the Perl world but there are implementations of it in every major programming language and even in PostgreSQL.

Turning TAP into an IETF standard is on its way.

The basic idea is that there is a separation between the part that runs the tests and generates raw output and the tool that creates reports from this raw output.

The raw output has an "ok" or "not ok" line for every test unit or assertion with some additional information between those lines. Something like this:

    1..3
    ok 1 - Accessing web page
    ok 2 - Title is correct
    not ok 3 - Clicking on link 'release software'


Test::Harness

Traditionally in the perl world the tests are executed either when running "make test" or "Build test" depending on the packaging system. There is also a tool called "prove" that allows us to run some test files. These all used the Test::Harness module to execute the tests and then create a textual report.

People can also run the test script using the plan "perl" command and they will see the raw, unaltered output of the test script.

Other implementations have their own tools how to run the tests.

The problem earlier was that it was quite hard to replace the formatting options of Test::Harness.

Since the release of TAP::Harness 3 by Andy Armstrong about two years ago the back-end of the Harness became much cleaner that allows the implementation of various other formatting options.

HTML view of TAP using TAP::Formatter::HTML

First we are going to take a look at TAP::Formatter::HTML by Steve Purkis.

The simples way to use it and to show it is by passing it as the formatter option to "prove". The following command will run all the .t files in the t/ subdirectory merging the STDOUT and STDERR (-m) and running quietly (-Q). The output is a single HTML file using the JQuery Javascript library and a few external Javascript and CSS files.

   prove  -m -Q --formatter=TAP::Formatter::HTML t/ > output.html

In order to to show many parts of it I created several test script, ran the above command on it and placed the result on my web server.

Go ahead, check it out.

Collecting test data

As nice as that report is you don't always want to install TAP::Formatter::HTML on every system you run your tests. After all you might not even use Perl for generating the TAP stream.

In addition, later you might want to create additional reports based on historical test results.

For this, we should have a way to collect the results of the test in raw data format. Move them to a central machine and generate the nice reports there, keeping the raw data files as well.

The archiving option of prove was created exactly for this:

    prove -a tap.tar.gz t/

This will run the tests and generate a tarbal from the resulting TAP stream along with a meta.yml file that contains some meta data on the execution. You can take this tar.gz file and move it to another server.

A warning though, the TAP streams of each test file is saved in a file with the exact same name as the test file was. So if you create the archive and the untar it in the same place you will overwrite your test scripts with the TAP streams. Better to open it in another directory.

Generating report from the archived files

Once you have the tar.gz file on the central machine you should be able to create the HTML report. Unfortunately I could not find a nice way to do it but Ash Berlin and Steve Purkis showed me a workaround:

First unzip the file using

    tar xzf tap.tar.gz

Then you can run the following command:

    prove --exec 'cat' -Q --formatter=TAP::Formatter::HTML t/ > output.html

Yes, this will only work on Unix, maybe on windows one can replace 'cat' with 'type' but I have not tried it. In any case I hope soon there will a better solution to this.

Smolder

There is another way to collect and display test archive which is starting to be a more integrated solution.

Michael Peters has developed Smolder more than a year ago but it made it to CPAN only a week ago after the QA Hackathon that was held in Birmingham.

Smolder is a web based application to collect and display TAP streams. Once installed it can be launched with the "smolder" command. By default it provides its own web server and uses SQLite so you don't have to worry about further configuration. Once you see it and decide that you'd like to use it in production with many test systems reporting to it you'll probably invest more in the installation, using Apache as the front-end server and MySQL as the database but at the beginning you can use the simple installation.

Once the system is setup you have a web based administrative interface to add projects, users and associate them with each other. Every user can then upload archived tap results as generated by the -a flag of prove. The system then provides various views of the tests results. You can view the details of a single test run and you can already see some historical data as well.

Public Smolder Server

I did not want to setup a public Smolder server on my machine but if you'd like to see how it looks like you can visit the publicly accessible Smolder installation at Plusthree

Not only that, but if you are running an open source project you can ask Michael if can still add your project to use this public server.

Personally I'd really like to see some open source project that are not written in perl or related to the Perl community having some data there but of course Michael is the one who know if the machine still has capacity to add your project.

Setting up Smolder

So in order to install Smolder you'll have to configure your CPAN shell and then type

    cpan install Smolder

That should install all the dependencies.

Once you installed it, as of version 1.35 you have to do the following to start the server:

First

    mkdir ~/.smolder 
    echo "HostName    smolder.local" > ~/.smolder/smolder.conf

In addition you have to change the /etc/hosts file so smolder.local will resolve to 127.0.01 You can of course use any name with at least one . in it. /etc/hosts needs to have the following line in it:

    127.0.0.1 smolder.local

Then you can launch Smolder using the following command:

    smolder -c ~/.smolder/smolder.conf

It should tell you that it is ready to be accessed using your browser at http://smolder.local:8080/

Uploading TAP streams

You can create users, projects, associate them to each other and upload TAP streams to the server using your browser.

When you had enough of manual uploading you can take a look at the smolder_smoke_signal command that came with Smolder to upload your archived files.

This is the command you can use to do it.

    smolder_smoke_signal --server smolder.foo.com:port \
         --username myself --password s3cr3t --file tap.tar.gz \
         --project MyProject

Now you can setup your test machines or instruct your developers to upload their results after every test run. This will give you plenty of data quickly.

Enjoy and show it around.


This entry was first sent out as part of the Test Automation Tips. Visit here to subscribe.

blog comments powered by Disqus
Tags
Perl (205)
Perl 5 (94)
Padre (73)
IDE (39)
testing (38)
Perl 6 (32)
CPAN (27)
newsletter (22)
training (16)
Parrot (15)
Windows (15)
business (13)
TPF (13)
PHP (13)
TODO (13)
editor (12)
open source (11)
Linux (11)
YAPC (11)
marketing (10)
Rakudo (10)
Ubuntu (9)
Python (9)
Ruby (9)
Israel (8)
blog (8)
FOSDEM (8)
blogs (7)
promotion (7)
Strawberry Perl (6)
TAP (6)
Oslo (6)
Catalyst (5)
PDL (5)
EPO (5)
Matlab (4)
Subversion (4)
test automation (4)
distribution (4)
beginners (4)
Java (4)
SQL (4)
Perl Mongers (4)
5.10 (4)
OSDC (4)
IRC (3)
ecosystem (3)
Mandriva (3)
PIR (3)
Fedora (3)
QA (3)
Debian (3)
Smolder (3)
CeBIT (3)
win32 (3)
automated testing (3)
Perl ecosystem (3)
poll (3)
Rehovot (3)
newbies (3)
Google (3)
web (3)
tags (3)
community (3)
conferences (3)
Perl IDE (3)
Lisbon (3)
vim (2)
regex (2)
new year (2)
Bricolage (2)
interview (2)
Moose (2)
LinkedIn (2)
translation (2)
wifi (2)
women (2)
arrays (2)
JavaScript (2)
Eclipse (2)
grants (2)
software license (2)
SDL (2)
yapceu2009 (2)
Perl6 (2)
Git (2)
CMS (2)
games (2)
smoke testing (2)
Hebrew (2)
Germany (2)
ActivePerl (2)
PAR (2)
Selenium (2)
GUI (2)
license (2)
SimpleTest (2)
wrappers (2)
books (2)
Javascript (2)
Haifa (2)
PPI (2)
Norway (2)
jobs (2)
PostgreSQL (2)
WebGUI (2)
Frankfurt (2)
application (2)
scalar (1)
Haskell (1)
ironman (1)
LiveJournal (1)
Perl community (1)
ack (1)
subroutines (1)
Pisa (1)
unique (1)
hash (1)
screencast (1)
Pugs (1)
social gap (1)
Sun (1)
Ohloh (1)
ISP (1)
project management (1)
Activestate (1)
Canonical (1)
Dreamwidth (1)
Languages (1)
Economy (1)
windows (1)
Build Bot (1)
VCS (1)
comments (1)
grep (1)
tutorial (1)
links (1)
Github (1)
zip (1)
development (1)
scalars (1)
mocking (1)
CPAN::Forum (1)
packaging (1)
configureation management (1)
FPGA (1)
HTML (1)
pastebot (1)
SVN (1)
Mojolicious (1)
New York Times (1)
Strawberry (1)
Linux installation (1)
Hungary (1)
Planetarium (1)
children (1)
WxWidgets (1)
JQuery (1)
map (1)
popularity (1)
vi (1)
assembly (1)
video (1)
applications (1)
BOF (1)
number (1)
XML (1)
plans (1)
documentation (1)
meeting (1)
FreeBSD (1)
Internet (1)
data visualization (1)
switch (1)
website (1)
VMware (1)
cookbook (1)
wxWidgets (1)
upgrade (1)
roles (1)
Yahoo (1)
DNS (1)
search engine (1)
Deutsch (1)
shim (1)
test reporting (1)
ftp (1)
syntax highlighting (1)
say (1)
Lua (1)
CSV (1)
config (1)
POD (1)
Titatium (1)
integers (1)
Visual Basic (1)
Italian (1)
files (1)
command line (1)
French (1)
Chicago (1)
CD (1)
examples (1)
DBI (1)
NPW (1)
commit (1)
German (1)
Win32 (1)
harness (1)
Firefox (1)
smartlinks (1)
C (1)
CentOS (1)
smart match (1)
quality (1)
2009 (1)
outsourcing (1)
CM (1)
perl (1)
events (1)
Apache (1)
Freenode (1)
economy (1)
PAUSE (1)
Modern Perl (1)
charts (1)
Xilinx (1)
SQLite (1)
OSCON (1)
.NET (1)
debugger (1)
Altera (1)
system administration (1)
Belgium (1)
Workshop (1)
sysadmin (1)
foreach (1)
resume (1)
demo (1)
web sites (1)
cm (1)
refactoring (1)
programming languages (1)
Smalltalk (1)
perl blog (1)
screenshots (1)
localization (1)
Mentor (1)
networking (1)
uniq (1)
yapcna2009 (1)
Modules (1)
loops (1)
mod_perl (1)
GHC (1)
perception (1)
Etoys (1)
Gmail (1)
Excel (1)
Modiin (1)
Gtk (1)
Krang (1)
pr (1)
bioinformatics (1)
array (1)
Perl blog (1)
feminism (1)
virtual machine (1)
Planet (1)
Darcs (1)
release (1)
regular expressions (1)
junctions (1)
UPS (1)
given (1)
search (1)
version control (1)
for (1)
kwalitee (1)
Budapest (1)
Amsterdam (1)
blogging (1)
learning (1)
COBOL (1)
Mac (1)
Altavista (1)
trackback (1)
certificate (1)
spam (1)
USA (1)
hackathon (1)
PHPUnit (1)
IRC pastebin (1)
databases (1)
Mibbit (1)
NetBeans (1)
packages (1)
Holland (1)
Shipwright (1)
Last Update: Thu Dec 31 10:20:02 2009