2008Q2 Grant Proposal - Perl on a Stick
- Name: Adam Kennedy
- Title: Perl on a Stick
- Synopsis: [...] 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.[...]
Perl on a Stick
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.
This completes the proposal, I look forward to your feedback.
I think this sounds like a great idea. Adam has a good track record (see Strawberry Perl) and seems like the obvious person to do this work.
The matching grant from Stonehenge seems like a great sweetener too.
This is a fantastic idea! I'd love to be able to work in Perl in an embedded format and this seems to be just the ticket. In addition, to be able to carry Perl in my pocket on a memory stick would be fantastic. I hope this becomes a reality.
A portable Perl installation would be great. I would be able to show customers some Perl applications without a Perl installation on their machine...
Portable Perl sounds awesome to me. +1
Great idea, would be very useful!
That seems a wonderful idea. Always having Perl handy even on computers on which it is not installed will be a real life-saver.
Really a project worth funding. I would love to have it on my stick.
I've spoken with Adam about this project before, and it sounds like a great idea. As said above, he has a good track record. This seems like a good investment.
I can't imagine my vote will go very far here, but I love this idea. At the very least it'd finally give me an excuse to start playing with Perl on Win32!
I was gung-ho about this proposal until I got to the Amount Requested section. Is this a proposal for travel money or for Perl on a Stick? Why should I care about the cost of flights or whether Adam is a funded author or not?
I've worked with Adam successfully in the past, and respect him greatly. I'd be perfectly happy if TPF chooses to fund this, but I found the proposal to be disconcerting and a little bizarre.
I think the whole idea of making Perl friendlier for the Windows users is a key aspect of the further advancement of Perl.
I also think that having a working community based version of Perl in Windows would benefit both the Perl community and my training business so I'd like to support both the Perl on a Stick proposal and the further development of Chocolate Perl.
I'll leave covering the costs of Adams flights to those who want to see him in person but I'd like to help him work on Strawberry and Chocolate Perl
So I would like to offer to match dollar for dollar any grant he receives from other sources up to 5000 USD.
Perl Training Israel
The precedent I was looking to follow in this grant is Damian Conway's grant from a few years ago, where he was funded to travel around a bunch of places while working on various things for a year.
In my case, instead of a year, it will be 3 months.
The costing details are illustrative of my estimated expenses for the 3 months, the author note was to illustrate the difference between my trip and the previous precedent in this area.
In any case, it also makes for an excellent development environment for a portable Perl distribution, and provide much better awareness of the issues involved.
The resulting product should be better directly as a result of the development being done "on the road".
I think this is a great idea and a great way to spread perly goodness.