u4x application review

1 view
Skip to first unread message

Hinrik Örn Sigurðsson

unread,
Mar 29, 2009, 2:13:22 AM3/29/09
to tpf-gsoc-students
I would appreciate some comments on my application (http://nix.is/gsoc/
gsoc-u4x.txt), which is near completion now, I think. Here it is in
full.

Name: Hinrik Örn Sigurðsson
Email: hinr...@gmail.com
Project title: Perl 6 end-user documentation

Synopsis
I will work to implement the end-user documentation reader as
proposed
by Carl Mäsak[1] in his Userdocs For Christmas project (u4x). I
will
also make a plugin for the Perl GUI editor which uses this
application
to access documentation. Finally will write new documentation for
Perl
6, as well as porting documentation from others.

Benefits to the community
Perl 6 is still being designed. However, large parts of the
language
specification have been well vetted and have become mostly stable
by
now. Anyone joining the effort of developing implementations, and
of
course end users of said implementations, would very much benefit
from
comprehensive, easy-to-get-at documentation.

Details
The main task will be writing "psi", a tool akin to Perl 5's
"perldoc"
and Ruby's "ri". It should be the first place programmers look for
information about the language, how a particular method works,
solutions
to common problems, etc. I will look into various other such
tools,
starting with "ri", for ideas about features that might be useful
to
implement.

I will use Martin Berends' Pod::Parser[2] to handle the rendering
of Pod
documents.

The most important piece of existing Perl 6 documentation is the
language specification contained in the so-called Synopses[3]. I
would
like to make those accessible to the user through "psi", and maybe
work
on making them more readable.

I would make "psi" flexible enough to be usable via a plugin for
the
Perl GUI editor Padre[4]. I would write such a plugin (in Perl 6)
with
help from Padre's author, Gabor Szabo.

I will also write new documentation for various Perl 6 language
constructs. That would include the builtin functions, standard
classes
and enums, special variables, and so on. It's hard to predict how
much I
will be able to derive from the Synopses, but I where the
documentation
is good, I will at least offer more usage examples and discussion.

The language constructs that I would commit to document would
include at
least all special names and variables (listed in Synopsis 28),
most
language constructs introduced in Synopses 2, 3 and 4, and most of
the
builtin functions mentioned in Synopsis 29. I would also document
some
of the classes in the setting library (Synopsis 32), focusing on
the
ones that have the most complete implementation.

Where it might be useful, I will (authors permitting) convert 3rd
party
documentation to Pod for use in tutorials and FAQs about Perl 6.
Potential sources include the Perl 6 Apocalypses and Exegeses,
articles
on <http://perl.com>, posts on <http://use.perl.org>, and
<http://en.wikibooks.org/wiki/Perl_6_Programming>.

Deliverables
* Write the command tool "psi", to access Perl 6 documentation

* Write a Perl 6 plugin for Padre that gives access to "psi"

* Make the Synopses accessible from "psi"

* Write/port Perl 6 tutorials/FAQs and make them accessible with
"psi"

* Documentation a sizable portion of the builtin functions,
special
names, standard language constructs, as well as some classes
in the
setting library.

Schedule
There might be some overlap between the objectives in practice,
but I
expect I will follow this outline reasonably well. Since the
language
specification is still inn flux, I have placed the writing of new
documentation at the end, so that less effort will have to be
spent on
keeping it up to date.

Preparation, Apr 20th to May 22nd
Weeks 1 and 2
I will study "perldoc", "ri" and various other languages'
documentation
tools and their features.

Weeks 3 and 4
Get up to speed on how Pod::Parser works and how I could use it in
"psi". Help improve Pod::Parser if it needs some work before being
usable in "psi".

First phase, May 23rd to July 13th
Weeks 5 and 6
Start prototyping "psi". Write a Padre plugin for it so it will be
usable by people who prefer GUIs.

Weeks 7, 8, and 9
Continue working on "psi". Implement the major features that are
needed.
Write tests and documentation for it as I go along.

Weeks 10, 11, and 12
Make the Synopses and other existing documentation accessible
through
"psi". Gather any useful 3rd party documentation, port it to Perl
6 Pod,
and make it accessible. Start writing something like Perl 5's
"perlintro" man page, using ideas from other material such as
Apocalypses/Exegeses 1 and 2.

Second phase, July 14th to August 17th
Weeks 13 and 14
Write documentation about basic Perl 6 features (as specified by
Synopses 2, 3, and 4), Write a few tutorials like the Perl 5
tutorial
man pages. The relevant Apocalypses and Exegeses will be
especially
useful in that regard.

Weeks 15 and 16
Write user docs for most of the builtin functions listed in
Synopsis 29.
Document the interfaces of some of the classes in the setting
library
(Synopsis 32), prioritizing the ones that have the most complete
implementation.

Version control
I would like to use "git", and host the "psi" code on github.
Seeing as
this project is not really tied to Rakudo as much as Perl 6 in
general,
it seems wise to keep the code in its own repository.

Likely mentor(s)
Possibly Carl Mäsak or Martin Berends.

Bio
I am a 23 year-old student and programmer from Iceland. I co-
maintain a
modestly-sized Perl 5 project[5], as well as having written a few
other
modules[6].

As for Perl 6, I am familiar with the contents of the Synopses,
having
read them while rewriting the vim syntax file for Perl 6[7], which
is
mostly complete now.

Licensing
I would publish my code under either the same terms as Rakudo Perl
6,
namely Artistic 2.0, or GPL 3.

Eligibility
I am studying at an Icelandic college this semester and have
documentation to that effect.

References
1. <http://use.perl.org/~masak/journal/38279>
2. <http://tinyurl.com/d75tdb>
3. <http://perlcabal.org/syn/>
4. <http://padre.perlide.org/>
5. <http://search.cpan.org/dist/POE-Component-IRC/>
6. <http://search.cpan.org/~hinrik/>
7. <http://svn.pugscode.org/pugs/util/perl6.vim>
Reply all
Reply to author
Forward
0 new messages