Grant Proposal: Perl-Based Platform


The Grants Committee has received the following grant proposal for the January/February round. Before the Committee members vote, we would like to solicit feedback from the Perl community on the proposal.

Review the proposal below and please comment here by February 20th, 2018. The Committee members will start the voting process following that and the conclusion will be announced the last week of February.

Perl-Based Platform

  • Name:

    John Napiorkowski

  • Amount Requested:

    USD $1,500


Complete development of the partially-operational platform.

Benefits to the Perl Community

Few people understand what The Cloud is, and fewer still have access.

The Perl community will benefit by having wide-spread free access to a Perl-based Cloud computing platform, which will showcase Perl as both modern and competitive against other Cloud technologies.


The platform itself will be updated with new features which will automatically become available to all users.

Project Details

The platform is a Perl-based Cloud computing software system created from scratch.

Numerous technologies are utilized in the current version of, including but not limited to:

  • Perl
  • Catalyst MVC
  • ShinyCMS
  • RPerl
  • GCC C++
  • Javascript
  • CGI::Ajax
  • Ace Editor

I have reviewed the source code and started initial planning discussions with the founder, Will Braswell.


Phase 1, LAMP Installer Script Section 51

  • Review & Comprehend Script
  • Upgrade Section 51 "PERL CLOUDFORFREE" To Function Properly
  • Demonstrate Section 51 Installing CloudForFree Software In Ubuntu 16.04
  • Upgrade CFF Server To RPerl v3.2

Phase 2, IDE Code Editor

  • Create Linux User Account For Existing & New Users
  • New Copies Of Learning RPerl Exercises
  • Save All Files In Linux User Home Directories
  • Button For "Save File" Function
  • Save & Quit Functions For Ace Editor vi & emacs Keyboard Commands
    • :w :wq ZZ etc.
    • Ctrl-x Ctrl-s Ctrl-x s Ctrl-x Ctrl-w etc.
  • Multiple Open Files Via Tab Widget

Phase 3, Open GitHub Issues

  • Review & Comprehend All Open GitHub Issues
  • Collaborate With Client Personnel To Plan Solutions For Each Open Issue
  • Implement Solutions For Each Open Issue

Phase 4, Terminal Emulation

  • Full xterm Terminal Emulation For Command-Line Job Execution
  • Includes All VT100 & VT102 & VT220 Features
  • Resize Number Of Rows & Columns By Window Resize
  • Resize Font Size By User Configuration
  • Backspace, Tab, Other Special Command Characters
  • Arbitrary Placement Of Characters At Any Row & Column
  • Color Characters & Background
  • Curses & Other Menu Support
  • Full Window (F10) & Full Screen (F11)

Phase 5, Graphical Output & Mouse Input

  • Full X-Windows Graphics Output Using Xpra HTML5 Client
  • Generate Output Using SDL From Perl & C
  • Mouse Left-Click, Right-Click, Drag, Scroll
  • Resize Number Of Available X & Y Pixels By Window Resize
  • Full Window (F10) & Full Screen (F11)

Phase 6, GitHub Repositories Integration

  • Import & Setup User's GitHub Keys Via Linux User Account (From Phase 2)
  • List Of All GitHub Repos With User As Owner Or Collaborator
  • Admin Mode, Display All Repos
  • Allow User To Enter Any Other Readable GitHub Repo URL ex.
  • Buttons For Basic User Git Commands
    • clone
    • add
    • commit
    • push
    • pull
    • checkout
    • status
  • Do Not Duplicate Any GitHub Web Functionality

Phase 7, Job Queue

  • Job Scheduler & Monitor Using OAR (1st Choice), Or HTCondor Or Slurm (2nd Choices)
  • Manage User's Jobs Via Linux User Account (From Phase 2)
  • List Of All Current Jobs With User As Owner
  • Admin Mode, Display All Jobs
  • FileManager For Selecting *.pl RPerl Programs To Run
  • Buttons For Basic Job Control Commands
    • start
    • restart
    • stop (SIGTERM)
    • force stop (SIGKILL)
    • pause (SIGSTOP)
    • continue (SIGCONT)
    • show/hide CLI (From Phase 4)
    • show/hide GUI (From Phase 5)
  • Display Resources: FLOPS, Cores, Memory, Storage; Total, Unused, Available To User

Project Schedule

I can start in about a week or so.

This is a very complex job, I expect it could take 3 to 5 months to complete.

Completeness Criteria

This grant is done when a new version of is made available with all the new features listed herein.


I am the maintainer of Catalyst MVC and I have 77 distributions on CPAN:

I am a member of the Austin Perl Mongers with Will Braswell, the creator of both RPerl and

We have worked together for several years on various Perl projects, both open source and commercial.


RPerl would never compile for me. Is it possible to remove RPerl from dependencies?

One of the primary purposes of the platform is to provide an easy way for people to use RPerl without having to install it on their own local machine.

So no, there is no logical way to remove RPerl from the dependencies, that would make into something which it is not.

If you have problems compiling RPerl, you should ask for my help or open a GitHub issue.

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 Coke published on February 13, 2018 4:44 PM.

Grant Proposals: January/February 2017 was the previous entry in this blog.

TPC February Newsletter 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