Act Voyager ---- long story

No Comments

Happy New Year from outer space...

since the last report a lot has happened on our journey with Act-Voyager... So, let me try to write down the episode of this saga...

In the months leading to the Act-hackathon there where two things being worked on...

Firstly, there is now a 'Act-out-of-the-Box' that makes it super easy to start hacking on Act (current version). With three simple commands, any developer can be up and running and start writing their own bits.

    curl -Os
    vagrant up
    vagrant ssh

And then, point your favourite browser to: http://localhost:8080/voyager to see a very bare Act-instance.

What it will need to work, is of course VirtualBox and Vagrant. It will download a Vagrant base image from my company server, which is preconfigured with Apache, mod_perl, PostgreSQL and the dependencies of Act. Thanks to many contributions of others it is workable and is something that needs updates as the Act-Voyager moves on... one of them, is including DBIx::Class as a core dependency in the Act-out-of-the-Box base image.

And secondly, I started working (and finished) the DBIx::Class Schema for Act. During the London Perl Workshop, I spend quite some time with 'SysPete' who gave a lot of advice on what to do with the DBIx::Class Schema for Act. There is soo much possible and nice to do with DBIx::Class, but for Act-Voyager it was advised to just stick to what was needed... a nice sugar-coated schema (using DBIx::Class::Candy) and documented attributes to explain what the purpose of each is. DBIx::Class::Schema::Loader does do POD in a excessive technical manner. Ribasushi had to convince me that it was better to remove verbose defaults, which enhance readability for experienced users.

The schema has already been proven to be usable in some branches of the Act Voyager project...

Which brings me to the star-map of the Act-Voyager project... "a Journey through the Universe" where we explore new galaxies and make small adjustments to the plans as we go... with one goal, a Next Generation Act, extensible and fun to hack on.

The original plan needed some adjustments... and it will need more whilst traveling along the stars. I am very fortunate to have a Grant-Manager that understands that development of the Next Generation Act is a project that needs flexibility. She does agree on the new plan below, which already had some adjustments since the Hackathon in Lyon.

  1. Orientation and fundamentals ( 1.000 USD ) FINISHED, needs continuos updates
    • Make Act 'hackable; with "Act-out-of-the-Box"
    • DBIx::Class schema
  2. Port Core Act to DBIx::Class schema ( 1.000 USD )
    • Make Act::Object sub-classes into proxies for DBIx::Class::Result classes
    • They have the same attributes and methods as the original ones
    • Retaining the tests that currently exists
  3. Dancer2 implementation ( 1.500 USD )
    • move mod_perl handlers to Dancer2 routes
    • have Dancer2 routes fill in the original template
  4. RESTapi ( 1.000 USD )
    • define all useful resources
    • write the POST, GET, PUT and DELETE methods (and more)
    • test, test and test
    • write documentation
  5. Theme Based Templates ( 1.500 USD )
    • Find a proper frontend framework (Foundation)
    • Define Layouts
    • Define Pages
    • Redo the entire ACT with new templates and themes
    • Decide which SASS variable will be editable
    • Run several default Themes and Colorschemes
    • Write a admin/theme-selector

The next two milestones, porting Core Act and building a Dancer2 implementation, are the steps that will ensure that all the old conferences (and the current) can be viewed and visited by bots once the Jurassic Apache and mod_perl implementation are shut down. For these legacy instances it will be sufficient that the pages can be rendered and no changes in the schedule or attendees have to be made. Therefore not all the handlers need to be moved to Dancer2. These routes gather information from the database and are used to fill the variables for TemplateToolkit. Those templates do not need to be changed and thus we can keep the websites backward compatible. Using Act::Legacy::Objects as proxies to the DBIx::Class::Schema for Act gives the flexibility to change the underlying database structure, without breaking the code that handles the original Act::Objects.

And somewhere along the line, there should come a tool that can read the 175 .INI files, the httpd.conf and possibly write them back as well. Those files contain valuable information not stored in the database, but are actually the 'root' objects for DBIx::Class::Schema. Most objects are related to an instance of a conference, but since there are no Conference tables yet, there can not be any relationships to select talks given during a specific conference, or list all attendees.

And then, of course we had a wonderful hackathon, full of action, fun and drama and produced some really cool prototypes that actually might work "in production". Unfortunately BooK and I had not fully prepared the hackathon, and there was no real clear path of direction. For a moment I even was worried about the crew members of the Act-Voyager. But you can't expect things to go very smooth when there are such great minds together that have their own backgrounds, their own experiences ... and yet have to get to the point that they were honourable people that were willing to work on Act, despite the differences.

There were made several patches to Act, Act-out-of-the-Box, done some design at the RESTapi side and some great ideas about how to move forward. Enough 'materials' to work with for the next couple of weeks and get to the next galaxy-stop, the Port of Act Core to DBIx::Schema.

Many thanks for all that support for this project, those who support this financially, but also those crew-members I consider my friends. People that encourage me to continue this exploration and voyage, that will lead us to a Next Generation Act! Thanks for all that came to Lyon (where my MacBook was stolen from the hotel room - and thanks for the generous help to buy a new one while waiting for the insurance). Special thanks for BooK who helped clearing the mess after the mutiny on the command-deck - and Liz who made sure I kept my head focused on this community project.

it's going to be a very exciting Act 2015!

Theo van Hoesel

Leave a comment

About TPF

The Perl Foundation - supporting the Perl community since 2000. Find out more at

About this Entry

This page contains a single entry by Elizabeth Mattijsen published on January 2, 2015 12:56 PM.

Call For Grant Proposals (January 2015 Round) was the previous entry in this blog.

Grant Reports for December is the next entry in this blog.

Find recent content on the main index or look in the archives to find all content.


OpenID accepted here Learn more about OpenID
Powered by Movable Type 6.2.2