Perl on a Stick
Title: Perl on a Stick
Name: Adam Kennedy
Grant Manager: Ricardo Signes
Duration: Full-time month
Started: July, 2008
With Perl 5.10.0 proving the basics for "relocation" (the movement of the Perl binary to other paths) and Strawberry Perl 5.10.0 showing solid progress in providing an Open Source Win32 Perl distribution, the next major step for Perl portability is to literally make it "Portable" and to create a Perl distribution suitable for installation to portable flash memory devices, iPods, mobile phones, cameras, etc.
Since the hosts of these devices are PCs at libraries, hotels, internet cafes and universities, Win32 is the obvious operating system to aim for, and Strawberry Perl (more specifically the Perl::Dist toolkit) is the obvious platform on which to build it.
The initial goal is to create a module (or series of modules) in the Portable:: namespace to handle the internals of implementing portability support (modifications to Config.pm, CPAN, MiniCPAN, File::HomeDir and so on) , add functionality to automatically modify a Strawberry Perl .zip distribution to make it run on a portable device, build support for generating a Portable distribution directly in Perl::Dist, and to make the methodology compatible with existing portable application groups, such as portableapps.com.
Much of this project will be before and during a proposed three month 15-monger, 3-conference speaking tour, which will serve as the ideal situation in which to "dog food" the product. I hope to have a full portable Strawberry Perl distribution ready for release at my OSCON Strawberry Perl talk. The grant will help partially offset the significant cost of this trip and make it more viable.
Benefits to the Perl Community:
A working Portable Perl distribution would bring a wide range of benefits to the Perl Community.
For one, there is the convenience of being able to travel without a laptop and still have all the benefits of being able to carry custom-build Perl applications with you.
Trainers could get a huge benefit with students, as the students can be issued a fully working Perl install on a flash drive at the start of a Perl programming course, and all the complications of installing Perl can be removed. Indeed, Stonehenge has suggested doing a dollar for dollar match of any TPF grant (up to $2000) purely on the benefits to them of having a portable Perl distribution for use in training.
Because it will be supported at the Perl::Dist layer, this project should also bring added benefits in allowing anyone building Perl-based Win32 application installers using Perl::Dist to also create a portable version of their application with little or no work.
As the importable of parellism and distributed computing increases, a portable Perl distribution could allow for a simple flash device to temporarily "take over" to take part in ad-hoc distributed computing clusters WITHOUT having to install anything on the host, and without the need to reboot, or subvert the operating system. Distributed Portable Perl application could run entirely natively, within the normal security environment of the host.
A handful of cheap 1 gig flash drives could be used to "borrow" entire rooms of computers at schools, universities to internet cafes to assemble temporary distributed computing clusters on the fly.
There are almost certainly additional uses for a portable Perl distribution that I have not yet considered.
Starting from some initial proof-of-concept experiments (see Portable.pm on CPAN) I intend to start working on making a more robust Portable.pm implementation immediately.
One I have quit my job in the days before YAPC::NA, I intend to work full time on finalising Portable.pm, the .zip modification process and integration into Perl::Dist from then, through the YAPC::NA hackfests, all the way until OSCON. This should represent, in aggregate, around one month full time equivalent work.
I intend to try to release the first portable distribution at the same time as the July 2008 Strawberry Perl release.
I am a Perl programmer with 10 years of experience, the founder and current pumpking of Strawberry Perl, author of File::HomeDir and 150+ CPAN modules, a CPAN admin, experienced public speaker, and two-time previous recipient of TPF grants, both of which were completed successfully.
Although in the second grant I did not deliver the originally-planned work, it cannot be denied that both grants have provided significant advancements, and have provided exceptional value for money to the Perl Foundation.
The initial estimated direct cost of the speaking tour is around $10,000 US dollars (airfares alone are around $3500-4000). The opportunity cost of the trip is also significantly more than that amount, and as I am not a book author I don't expect the trip to generate any income of any kind.
That said, I understand that the TPF no longer makes large grants of this scale, and that the stated maximum grant size for this cycle is $3000.
Thus, I request the maximum $3,000 amount, and I hope to offset some of the remainder with matching grants from other organisations, such as the Stonehenge "Rock Star" grants, and potentially with speaking fees by providing additional talks to companies in some of the 15 cities. I also hope to reduce accomodation costs where possibly by being hosted with mongers from the 15 cities.
None of this is certain, however, and I would of course appreciate any addition if an exception to the limit were able to be made.