Grafoscopio

Documentation
Login

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:

Future developments

Implementation

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

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.

(For phone and postal address please send an email).

Please use the tickets system in this repository to provide feedback about the proposal.