Guillermo,
I'm interested in helping, but at this point, I think I'd be most helpful
working at improving documentation (mainly editing) rather than working on
Pharo code itself. (I'd like to work toward that, though.)
I���ve been doing a pass on the structure, and I was thinking on a rough structure as follows:
1) Intro to FFI (callouts, function and library lookup, intro to value marshalling)
2) Marshalling (sending arguments, literal arguments, more on marshalling, basic C types: ints, floats, pointers and how they are transformed to pharo objects and vice-versa���)
3) Complex types: strings, unions, arrays, opaque types
4) Derived types on the Pharo side: How to design nice classes with all this
5) Callbacks
6) Memory management
I did already a pass on 1), and I got blocked in 2), though I want to release a version of it this week.
If you���re up for it, there are several things we can do:
- review the english :)
- give feedback on what is missing, what is not understandable, what can be explained better
- testing the examples?
I'm still a newbie with Pharo, but I am a good writer/editor. And I expect
that working with Pharo documentation would be another means of increasing
my knowledge of the Pharo ecosystem -- so that's additional incentive for
me.
Cool :)
I gather that the PDF books are written using Pillar, which I know nothing
about. Are there resources & guides for this tool/format that would help me
learn how to make & edit these kinds of documents?
Pillar is a markup syntax (from Pier���s CMS, if you know it).
Pillar comes with a document model, parser and generators to html, pdf (through latex), and others���
In Pillar���s readme there are the installation instructions + usage.
If you check the travis file in the ffi booklet repository
You���ll see it is built with pillar 7.4.1. In other words
# install pillar
$ cd pillar && ./scripts/build.sh && cd ..
# go into the booklet repository and build the pdf
$ ./pillar/build/pillar build pdf
Although you���ll need a mostly up-to-date latex version (latexmk required, plus several other packages, check Pillar���s readme)
Also, I've never contributed to an open source project; Pharo seems to be a
good place to start doing so. I see that most of the documentation, web
pages, booklets, etc. are in English so there's the advantage that English
is my first language (and I actually paid attention in school :^). I'm
also aware, from experience, that Documentation is rarely the first choice
for developers to apply their time & enthusiasm���
And it���s super important nevertheless ^^.