Project Status, March-June 2007
collecting collections of digital information
[by Mark Overmeer, 2007-07-06] NLnet's contribution to the CPAN6 project is planned to span a year. This progress report covers a first time-frame: the first of March up to the end of June: four months.
The project plan lists a progress report after the first two month, but for various reasons this was not feasible; mainly because it was impossible to allocate sufficient time to complete the programming tasks.
NLnet's participation in the CPAN6 development has two faces, which will be discussed separately:
- prolonged support for promotional activities
- partial development support
1. Promotional activities
The promotional work is targeted on future user groups. In this case, the effect of the project is indirect: CPAN6 is an infrastructure which can be used to as an open/save button in nearly any application. So, the application developers must be convinced to include the connection with CPAN, which is probably more difficult than convincing end-users.
One of the first targeted communities is that of the Perl developers, which can use CPAN6 to distribute the products of their new language version (Perl6) and Parrot. Presentations about CPAN6 were given during the Dutch and German Perl Workshops (resp Feb and March), and two talks during the monthly well-visited Perl Mongers meeting of Amsterdam.pm. Chosen is to avoid too many presentations on the core of CPAN6 to the Perl community, but to focus on general purpose modules which are create as side-products for this project. This reduces the chance that people get overfed with the same story, over and over again.
During the German Perl Workshop, extensive debates took place with the designer and maintainer of Perl's popular CPAN, with a focus the probable reasons for this archives popularity. During the Perl Hackathon in Arnhem in March, two days were spent to discuss and explore various interface techniques. For NLnet, a plan for promotion was produced. An overview of CPAN6 features was presented during a little frequented day organized by the Dutch Linux user community (NLLGG).
In total, three new CPAN6 related presentations were added to the two existing. This adds up to about seven hours of material for various audiences.
On the moment, only a small symbolic sponsoring form the German Perl Mongers was collected as additional support. Negotiations with Atos are under way, but delayed for personal reasons on their side; they may contribute in validating the XML schemas. The CPAN6 project will be completed on own expense, if there are no additional fundings.
Next to financial contributions, people are sought to help improve the software directly. To achieve this, the software has been split in various large, general purpose components. Each of the released components has a few users and contributors now. This will improve the code quality before it gets integrated as CPAN6.
2. Implementation
On the software side, major steps were taken to create some crucial building bricks. The infrastructure will be pluggable, which means that at least the interconnections and one example implementation for each pluggable interface must be realized.
As example graphical front-end, the choice was made for an Web2.0/Ajax enabled web-browser. The big advantage is that the same interface can be used on any graphical platform without the need to install additional libraries. The browser communicates with a local daemon which is doing the processing. The jQuery library implements Web2.0 and hides most JavaScript programming in a very clean way. jQuery is proud on its non-intrusiveness1. A number of experiments were made to create an understandable user interface, and discussed with a few people.
Work on a new XML Schema and SOAP implementation for Perl is ongoing. The existing modules in Perl for SOAP are not validating, very incomplete, and unmaintainable in quality. Progress has been made on the final steps in the WSDL/SOAP code, completing this module. About a dozen users made contact, with bug-reports and contributions: the user community is growing. This XML::Compile module gets regular updates.
Two major complications I decided to tackle together, before any core implementation should commence: a facility to share code between graphical and command-line interfaces, and simple internationalization. The combination was never done before, so a new Perl module created. Now, it is easy to have unicode error messages in Chinese go to the web-interface, and at the same time Latin1 English versions of the error to syslog, while the software (any pluggable component) using this new module can fully ignore character-set and language translations. This module was released under the name Log::Report on CPAN in June, and was received very well amongst the Perl Mongers.
Finally, some progress was in the CPAN6 core infrastructure, especially the "store" component which needs to be able to store unicode, unlimited length names on any operating system. Not a simple task, but realized with specialist help.
3. Upcoming promotional activities
Three abstracts were submitted for the European Perl conference (YAPC) in Vienna in August, and one for the European Linux Conference in Cambridge in September. The latter will require a new paper, which describes CPAN6 without Perl. For other ideas, see the promotion plan.
4. Upcoming developments
In the next weeks, the SOAP implementation will be completed, and tested in real-life environment (three volunteers have offered their time). Slowly, the focus will shift from the general modules to the specific CPAN6 application.
5. Schedule
The promotional activities took more time than the planned four hours per week, because preparing papers and talks, plus the meetings themselves are all taking days per presence.
On the implementation side, only half the originally intended time could be spent. On the positive side, this will give me more time to find additional sponsors. Also, the development is on pace, and March 2008 is still the intended date of release.