exportedFrom: 91d6a6f330b1657c01f4bf791538615ca05bd9b0 graphics: yes
Proposal for the 2017 Pharo Summer of Code by Offray Luna
Introduction
Grafoscopio is a tool for literate computing and reproducible research, for the Pharo environment, that allows authors to intertwine prose, code, agile visualizations, develop domain specific languages, by providing an interactive notebook metaphor as an structured programable tree/outline. Thanks to preliminary integration with external tools, like Pandoc and Fossil, exporting to several formats (including print/PDF and web/HTML), and historical version control and collaboration are provided. Because of this, Grafoscopio is interesting to a wide audience including scholars, researchers, activist, journalist, students, among others.
A functional version of Grafoscopio is available though the Pharo Catalog, but there are still rough edges in User Experience (UX) and test coverage that need to be solved to make Grafoscopio usable on a day to day basis, particularly focusing the writing experience support for markup needs, making it smooth, and to be, at least in pair with the code writing experience, provided by the Pharo interactive playground. The possible users for Grafoscopio are intended to deal with code. Some of the will be novice coders, coming from fields like journalism or activism, so the experience of working with external tools, including installation and configuration must be friendly to beginners, to let them focus on their main domain problems, instead of the ones of infrastructure and setup.
This Summer of code proposal is intended to work on the above problems to improve user experience, external tool integration and test coverage.
Project goals
The project goals are:
- Implement a markup editor for text writing, with links browsing (via an external browser), files preview and syntax highlighting, font size change and the common features of a minimal markup editor.
- Improve the integration with external tools, including assisted installation via external multiplatform package manager (Nix and Chocolatey for the Mac/Linux and Windows platforms, respectively).
Future developments
- Implement node and notebooks transclusion (like Org Mode and Leo).
- Integrate a language spell checker for text nodes.
Implementation
- For improving UX writing experience a customization of the Pharo playground will be implemented, extending on what is available now using the Spec-GT bridge, to support Pandoc's markdown syntax with hightlighting (via SmaCC or PetitParser), web links browsing (using WebBrowser) and files preview (with customized inspectors) and font size changes.
- To implement external tools integration the OSUnix, OSMac and OSWindow will be used to install and use the external package managers (Nix, Chocolatey).
Timeline
The granularity of the more complex project is spread in several weeks, but the advances and blocking issues will be reported to the mentor(s) weekly and it can be made more granular with the interaction with community during the Summer of Code and are subject to Tutors advice for modification.
Weeks | Goals | |
---|---|---|
1 - 2 | Annotate reading of the Spec Book generating a companion notebook of the Spec Book and modified widgets for Grafoscopio and keyboard shortcuts for notebook editing. | |
3 - 7 | Implementing a markup editor for markdown, for text nodes similar to the one we have now for code. A customized playground with markdown support, web links browsing and texts and files preview. | |
8-9 | Output storage support for playground computations (similar to OrgMode or Jupyter, including literature review). | |
10 | Nix integration to support external tools installation (Pandoc, LateX, Fossil, Sqlite) on GNU/Linux and Mac. | |
11 | Chocolatey integration to support external tools installation (Pandoc, LateX, Fossil, Sqlite) on Windows. | |
12 | Review previous deliverable and goals and implement further development goals, if there is time. |
Table: Summer of code timeline.
Benefits to Community
Grafoscopio has been used in several workshops+hackathon of a recurrent local event, called the Data Week (we have now 8 editions) that have shown how this tool can be used by a diverse variety of authors to introduce them to coding and the development of Domain Specific Languages and agile visualization on differentent themes, with special support for data activism. It is a way to expose the advanges of the Pharo ecosystem to this wider audience beyond the usual software developer and/or researcher, so a more mature and friendly Grafoscopio, that can be used to write diverse interactive documents, from note taking, to tutorials, to complete thesis, can be a powerful way to spread the Pharo advantages and show them in the context of current trends of literate computing and reproducible research. This is also useful to develop computational narratives on Pharo and non Pharo related themes and frameworks.
Related Work
- On customization of the playground to support alternative markups and custom inspector, the Moose team made some experiments [1] [2] using Pillar, but with other syntax and using external pillar files, instead of self contain Grafoscopio notebooks created inside the image.
- On alternative interfaces that allow font increase and decrease Stephan Eggermont has made some test with his alternative UI with coding cards and keyboard driven IDE.
- On integration of Spec and GT Tools, Johan Fabry has worked on a bridge, that is being used now in Grafoscopio.
- The integration with the operative system has been working with a Graphical Torsten Berman's Quick Access. The same integration with the operative system will be provided with a different graphical interface.
About me
I'm the Grafoscopio author and I'm making my PhD research on Design and Creation asking about the reciprocal modification of digital tools and communities. For that, moldable tools, agile visualization and meta systems provided by the Pharo ecosystem has been intrumental on prototyping new tools that empower local communities. I have been an active member of the Pharo community since mid 2014, both virtually, in the users mailing list and slack channels, and face to face in the Smalltalks Argentina 2015, ESUG 2016, and making my internship with the Roassal team in University of Chile / Object Profile and I'm developing the local Data Week hackathon+workshop, where we approach the Pharo environment via data activism themes, creating interactive and visual computing narratives on related issues. I have been presenting Pharo and Grafoscopio in the local context: our local hackerspace (HackBo, Bogotá Colombia), Laboratorio de Ideas (Medellín, Colombia), the Ciudad de Datos research project with researchers from tree Colombian universities (Universidad Javeriana, Bogota; Universidad de Antioquia in Medellín, Universidad de Caldas in Manizales), AbreLatam Open Data regional meeting.
- email addresses:
- offray@riseup.net
- offray@mutabit.com
- Twitter: @offrayLC
- Source code repositories:
(For phone and postal address please send an email).
Please use the tickets system in this repository to provide feedback about the proposal.