Grafoscopio

Check-in [e0de9ed340]
Login

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:Using the unversioned file for the Grafoscopio Manual.
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1: e0de9ed34000f856ffed7e2f5e2b50c7dcc36b69
User & Date: offray 2018-10-15 22:23:58
Context
2018-10-16
16:16
Improving image references. check-in: 3e2401eb67 user: offray tags: trunk
2018-10-15
22:23
Using the unversioned file for the Grafoscopio Manual. check-in: e0de9ed340 user: offray tags: trunk
21:10
Addressing [034355733a] means also to created distinct repositories for the Dataviz package. The contents of the deleted folder now are hosted in: https://mutabit.com/repos.fossil/dataviz/ . check-in: 97342fb1de user: offray tags: trunk
Changes
Hide Diffs Unified Diffs Ignore Whitespace Patch

Deleted readme.markdown.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
--- exportedFrom: 3039248a87625e2f4e338e94f02e8a0c041fbb73   ---  # Grafoscopio

This `readme` file introduce Grafoscopio in a quick way, to have a panoramic
view of it and having it working easily.
It is a edited shorter version of the [full user manual][full-manual], please refer to
it for detailed documentation.

## Overview



## This tool and you



Grafoscopio is a moldable tool for literate computing and reproducible
research developed on [Pharo][pharo] live coding and computing integrated environment, 
in the context of a PhD research in a hacker space of the Global South ([HackBo][hackbo] 
in Bogotá, Colombia), that is being actively used, developed and documented.
We will expand on the points of the previous definition.

  - Being moldable [@moldable-debugger-2014] means that is easy to adapt the tool to several problems,
    which follows the opposite popular path of trying to force several problems into a predefined tool.
    Tools change us. So we need to change them back to express our concerns and to help us 
    in dealing with complex issues and problems in a flexible way.
  - Literate computing [@literate-computing-2015] is a way  of intertwining prose, code, data 
    and visualizations to make data based storytelling, experimentation, exploration and 
    documentation in diverse broad fields like academia, journalism, research and (h)ac(k)tivism.
    Grafoscopio allows the creation of literate computing structured interactive notebooks, that 
    take the form of a tree-like programmable document.
  - Research claims and findings and supporting data and visualizations can be integrated in 
    interactive notebooks with historic traceability, allowing reproducible research.
  - Because of the continuity and uniformity of the Pharo environment [@pbe-2016], Grafoscopio blurs 
    the distinction between code, data, document, application and IDE [^ide] and tries to blur 
    also the distinction between interactive documents authors and software developers. 
  - From the particular context where is being developed (HackBo hackerspace and a PhD research on
    Design and Creation), Grafoscopio is concived as a empowering simple and self contained *pocket
    infrastructure* (that work off-line/on-line  from USB thumb drives and/or low resources machines 
    [@luna-grafoscopio-2014]), wich states a critical approach to exclusionary ideas about data, coding, 
    research, and their practicioners, places, and supporting tools and infrastructures.
    In the [Grafoscopio web page][grafoscopio-en], we showcase several projects aligned with such
    critical approach and the idea that technology is mostly not neutral, wich is also reflected in some parts
    of this text and in the fact that we're opinionated about technology and its uses.
    I hope you find our technology and themes choices empowering and reavealing of alternatives.

  [^ide]: IDE: Integrated software Development Environment


Grafoscopio is intended to be used by learners and researchers in several fields: 
academia, journalism, activism, hacktivism and for anyone interested in open reproducible 
research and data storytelling backed by data and agile visualizations [@bergel_agile_2016].
This document assumes that you are such person. 
We will introduce the general features of Grafoscopio and point to several external and internal 
resources to complete your panoramic view of the ecosystem that let you deep your knowledge.

We included introductory resources to learn Pharo and data visualization, 
processing and storage related technologies (see the `Help` menu), and 
the [Grafoscopio web page][grafoscopio-en] (see figure \ref{fig:web-page-en}) shows several 
examples of how to use them for specific projects: 
Panama Papers as reproducible research; open community innovation in access to medicine 
information; Twitter data selfies; specific domain visualizations for medicine information; 
open, garage and citizen science and research.
*This whole manual was also created using Grafoscopio* and is also an example of the type 
of documents you can create with this tool.
We hope to inspire you to create and publish your own projects.

This document, by not trying to be comprenhensive, is a first invitation to know the 
Grafoscopio environment and to deep your knowledge with the use of it and other related resources.
You will see that, despite of being a manual, it includes pretty practical examples and invitations.
That is because I think that learning something new is more like reading a map
that reading a manual: you make first a panoramic view of where you are and
where you want to be, and take a practical approach to making your tasks and
reaching your destination.

No prior knowledge of programming is supposed to follow this manual.

![ Detail for the Grafoscopio [English web page][grafoscopio-en]. ](./Docs/Imagenes/grafoscopio-webpage-en.png){#fig:web-page-en width=50%}

**Important note** `>` *A prototype pointing to future possibilites* | 
Despite of being pretty usable, you will see that Grafoscopio is not totally finished,
and this shows in a few spots of the Graphical User Interface (GUI) that "point to the future", towards
funtionality still to be implemented.
It's an unusual approach, but I think that is important to convey some sense of possibility,
and work to be done in the GUI, instead of a fully polished "product" or a GUI that hides what is not ready.
This conviction comes from the [hackathons and workshops][dataweek] where we worked and evolved 
Grafoscopio, while the workshop was happening(!), thanks to the dynamic, moldable and continuous nature 
of the Pharo live coding environment.
Blurring the distinction between interactive documents authors and software developers, means to put
the whole environment at their dispossal, and to show the community that they can be part of this 
future possibilities, and that is why we take this unusual approach to GUI.

Where the GUI is more a remainder for the future, I will point that using the **TBD** remark (for To Be Done).

## Place in the ecosystem



### Similar tools

Grafoscopio is similar to other tools and has been inspired by many
of them, while is trying to bring also new possibilities, by combining
different ideas, diverging from others, puting "parallel" ideas into
dialog and, hopefully, bringing new ones. 
Here we talk about the similarities and differences with other tools.

  - Like [Jupyter][jupyter],  or [Zeppling][zeppling], [Beaker][beaker] 
    or [nteract][nteract], Grafoscopio provides interactive notebook functionality, 
    but it is focused only on Pharo code right now, instead of being a 
    "language neutral" notebook (but this could be a feature for the future).
    Grafoscopio is a multiplatform (Mac, Windows, Gnu/Linux) desktop 
    application (like nteract, or Electron Beaker),  instead of a web one 
    (like Jupyter, Zepelling or Beaker), providing a simple, extensible, 
    powerful, self-contained and portable environment for interactive computing, 
    (as said it can run from a USB thumb drive, modest computers
    and anything in between and beyond).
  - Grafoscopio organizes documents in a tree like metaphor, also called the *outline*, or the 
    notebook, that is interactive and programmable, like [Org Mode][org-mode], [Leo Editor][leo], 
    [TeXmacs][texmacs] or [Pollen][pollen] and share with them the idea that the 
    "document is the program"[^book-program] (or a programable container 
    of small  chunks of programs and scripts).
    Also, the document author, can define custom tags that can be used to traverse the 
    document tree and produce multiple customized views and outputs from a single document.
    A single notebook can contain short or book size interactive documents
    (this full manual is in a single Grafoscopio notebook). 
  - Like [Jupyter Lab][jupyterlab], Grafoscopio environment supports needs beyond the notebook. 
    Grafoscopio achieves this by leveraging the advantange of the extensible Pharo computing 
    environment and ecosystem, where it inhabits, with powerful tools for several computing taks, beyond
    and complementary to interactive documentation and reproducible research: GUI bulding, data processing 
    and visualization, unit testing, code repositories and source management, among others. 
  - Grafoscopio uses the [Roassal agile visualization engine][roassal], to build interactive 
    visualizations and export them to the web.
    Roassal provides similar functionality to other visualization engines and toolkits like [d3.js][d3js], 
    [RaphaelJS][raphaeljs], [Processing][processing] or [Flare][flare], but, by being part of the Pharo 
    live coding  environment, it invites to a more explorative and dynamic building of visualizations in 
    an agile way.
  -  At the moment, notebook sharing and collaboration and print (PDF) and web (HTML) publishing 
    are supported, but in the future we hope to provide advanced interactive notebook publishing 
    features in a distributed p2p fashion (see next section for the techologies that enable this).


[^book-program]: 
    The idea of the "document is a program" is a paraphrasis of "the book is a program",
    stated in the Pollen documentation, which is a short phrase to express a powerful idea
    about burring the disctinction between the document and the program, that is present 
    in several programs, like TeXmacs, Leo, Org Mode, and, of course, Grafoscopio.

### Technologies behind

Grafoscopio tries to become a simple, understandable, moldable, 
versatile and flexible tool thanks to the power of [Pharo][pharo] 
environment and ecosystem and the combination with mature external 
and internal frameworks and tools. It uses: 

  -  Internal tools and frameworks:
    - [GT Tools][gt-tools] and [Spec][spec] for embeddable code playgrounds, GUI and interactive 
      notebook nodes.
    - [Roassal][roassal] for data visualization.
    - [STON][ston] for a light data storage and a human friendly notebooks format.
    - [NeoJSON][neojson] for interacting with structured hierarchical [JSON][json] data.
    - [Citezen][citezen]: for reading and exporting bibliographies to the [BibTeX][bibtex] format.
    - [Fuel][fuel]: For medium data storage and objects serialization.
    - [UDBC][udbc]: For connection and management of external data bases.
  - External tools and frameworks:
    - [Fossil SCM][fossil] for collaboration, publication and traceability of the documents history 
      (including this very manual).
    - [Pandoc][pandoc] for exporting to printing (PDF) and web (HTML) formats.
    - [SQLite][sqlite] for storage and management of tabular data, for the `Dataviz` companion package.

Despite of trying to provide a friendly, cohesive and empowering user experience (UX) by
integrating default external minimalist and/or self-contained tools into the data exploration 
and document publishing workflow, other external tools could be integrated ([Git][git], 
more data bases, including [NoSQL][nosql], other exporters and 
[light markup languages][light-markup-languages] and so on). 



## Installation instructions

If you want to install Grafoscopio on Pharo 6 or 6.1, there are two ways of doing:
via the Pharo catalog or via running a script from the playground.
Both suppose that you have already installed and running Pharo for your platform
(Windows, Gnu/Linux or Mac) from its [download page][pharo-download],
and will be explained below, from the easiest one to the far easy ones.
Also both of them use the Monticello package manager, so dependencies are
managed automatically for you, making the procedures really short, even for
the script based one.

Different install procedures suit different tastes and needs and bring alternatives,
so, if one doesn't work for you or your need/taste, you can try others, or just
leave it like that, if your chosen method worked.



## Install from the Pharo catalog

To install Grafoscopio, from Internet in Pharo 6 or 6.1, from the Pharo Catalog, follow this steps:

1. Open the World Menu by making main (right) click in any place that is not occupied by a window. and
    then choose `Tools > Catalog Browser`, as shown in the figure \ref{fig:catalog-world-menu}.

  ![ Install screen 1 | Opening the Cataog Browser from the World Menu. ](./Docs/Imagenes/Install/catalog-world-menu.png){#fig:catalog-world-menu}

2. In the Catalog Browser window that was just opened, go to the "Search Input" field and write 
    "Grafoscopio" (without the quotes) as shown in figure \ref{fig:catalog-grafoscopio-search},
    an press the `Enter` key. A list of results matching the search criteria will be shown.

  ![ Searching for Grafoscopio in the Catalog Browser. ](./Docs/Imagenes/Install/catalog-grafoscopio-search.png){#fig:catalog-grafoscopio-search }

3. Click on the line available packages that say "Grafoscopio", it will become highlighted and the description
    below will be filled with details about the project/package. Then click on the most left icon above the
    "Available" tab, with the tooltip that says "Install stable version", as shown in figure
     \{fig:catalog-install-stable}

 ![ Install stable version from the Catalog Browser. ](./Docs/Imagenes/Install/catalog-install-stable.png){#fig:catalog-install-stable }


4. While the installation is running, some progress bars with package names are going to be showed
  (see figure \ref{fig:install-screen3}):

 ![ Install screen 3 | Installation progress bars. ](./Docs/Imagenes/Install/progress-bar.png){#fig:install-screen3}

5. When the installation ends we will see two indicators (as shown in figure \ref{fig:install-screen4}):
  - Messages in the lower left corner telling that installation is complete and documentation is installed.
  - A tool bar in the upper side of the Pharo window, called the docking bar.

  ![ Install screen 4 | Installation ended. ](./Docs/Imagenes/Install/install-ended.png){#fig:install-screen4}


## Install from a script

There are two ways of running scripts in the Pharo environment:
one by importing them from Internet and the other by writing them
manually.

If you want to run a Pharo script from its web address, open the spotter
(`Shift + Enter`) and paste the address and then press `Enter` to open
the interactive *playground* and finally press the `Do it and go` green play 
button or its shorcut (`Ctrl + Shift + g`). 
(An empty *playground*  and its play button are showed in  figure
\ref{fig:empty-playground})

![ Empty *playground* and its play button. ](./Docs/Imagenes/Install/empty-playground-1.png){#fig:empty-playground}

Installing via scripts consists in two steps: the first step makes available the configuration
of the project or package we want to install, that tells where the package/project and its
dependencies are located and in which order they need to be installed; the second step
runs (or loads) such configuration, making the new software available in our system.
We are going to learn next how to run this two steps, by running separately from different playgrounds
or by loading them progressively from the same playground.

For example, if you want to run the first part of the install script, open the
spotter and paste this address <http://ws.stfx.eu/ADBWX39G4FX0>.
You will see a screenshot similar to figure \ref{fig:install-script-part1},
showing the web address you have pasted and the first lines of the script
below, marked in grey. 

![ Loading the install configuration package. ](./Docs/Imagenes/Install/install-script-part1.png){#fig:install-script-part1} 

Press `Enter` or select with the mouse the area with the grey background. 
You will see the interactive playground with the script loaded.
We will see more details about the playground later.
For the moment press the play button or the shorcut (`Ctrl + Shift + g`).
You will see that the playground has been executed.
An executed playground contains a new column with details of the object
resulting from that execution, as shown in figure \ref{fig:executed-playground}.

![ Executed playground. ](./Docs/Imagenes/Install/executed-playground.png){#fig:executed-playground} 

Now repeat the procedure, opening the spotter, pasting this url <http://ws.stfx.eu/CZ87ZZ2SXCEM> 
and executing the second part of the installation script (showed in figure \ref{fig:install-script-part2}).

![ Loading Grafoscopio. ](./Docs/Imagenes/Install/install-script-part2.png){#fig:install-script-part2}

You will see the progress bars and the ending of the installation process,
as described in the steps 4 to 5 of the previous section.

Is usual to run the previous two steps in a single playground, by executing parts of it.
Here we are going to show you how to do it, with the same installation example we
have done so far.
Open a playground (`Ctrl` + `o` + `w`) and write this (or paste the URL of 
[this playground](http://ws.stfx.eu/3Y1KILRMCKO3), in the spotter, as before):

~~~{.numberLines}
"Start by loading the configuration of Grafoscopio"
  Gofer new
    url: 'http://smalltalkhub.com/mc/Pharo/MetaRepoForPharo60/main';
    package: 'ConfigurationOfGrafoscopio';
  load.

"After that load Grafoscopio"
ConfigurationOfGrafoscopio load.
 
~~~



Now select with the mouse the first 5 lines of the script and make click with the mouse 
secondary button. A contextual menu will be show near to the selection, as shown in the figure 
\ref{fig:playground-partial-execution}.
Choose from that menu the `Do it and go` option (or press the `Ctrl + g`  keyboard combination).
Only the selected part of the script will be executed.

![ Selecting the script part that will be executed and deploying the contextual menu. ](./Docs/Imagenes/Install/playground-partial-execution.png){#fig:playground-partial-execution}

![ Executing the second part of the script. ](./Docs/Imagenes/Install/playground-partial-execution2.png){#fig:playground-partial-execution2}
 
Now select the second part of the script, the last two lines, as shown in figure 
\ref{fig:playground-partial-execution2} and repeat the previous procedure.
You will see the progress bars and the ending of the installation process,
as described in the steps 4 to 5 of the previous section.

## Save the installation in your Pharo computing environment

**Important**: Once we have Grafoscopio installed, by any of the means shown in this section, is important
to save the modifications to our computing  environment, by making click in any clean part of the GUI 
(not occupied by any window) to deploy the *World Menu*.
There we choose `Save`, to save the system with the same name, or `Save as` to save it with a new one
(see figure \ref{fig:install-screen5}).

  ![ Saving changes to our Pharo environment via the World Menu. ](./Docs/Imagenes/Install/save-menu.png){#fig:install-screen5 width="50%"}

## Usage instructions

For detailed usage instruction please read the extended version of this `readme`
file in the [Grafoscopio User Manual](./Docs/En/Books/Manual/manual.pdf).
This short `readme`, derived from that manual, follows the [JOSS][joss] outline for
a quick overview of the software.  

## Examples

There is a dedicated complementary package, called `Dataviz`, with examples, 
that was build with educative purposes, for a recurrent local workshop called 
the Data Week, where we invite a diverse community in gender, professions,
educational and life backgrounds and is automatically installed when you
install Grafoscopio.
Also we have a Spanish introductory tutorial, that is directed towards beginners.

To see such examples please execute this code form the *playground*:


~~~{.numberLines}
"This opens the Spanish tutorial"
GrafoscopioNotebook open: GrafoscopioDocs tutorial
~~~

~~~{.numberLines}
"This opens the introductory notebook to the Dataviz package"
GrafoscopioNotebook open: DatavizDocs introNotebook
~~~

## API documentation

Because Grafoscopio inhabits a full live coding environment,
it follows the custom of making the API documentation available
inside a dynamic environment, instead in some static web page.
To open the Grafoscopio package inside the system browser,
and see the messages organized by protocols execute:


~~~{.numberLines}
"Browser the notebook API"
GrafoscopioNotebook browse.

"Browse the document tree API"
GrafoscopioNode browse.
~~~

## Tests

The core functionality of Grafoscopio document tree model is tested.
If you want to see and run the tests, just open the tests package by
executing:

~~~{.numberLines}
GrafoscopioNodeTest browse
~~~



From there, you can use the extensive test environment provided by Pharo.
For a short introduction to how to run test on this environment,
I recommend to watch the [Coding a Little Domain Specific Language video ][mooc-w3-14],
from the [Pharo MOOC][mooc].

## Known bugs

There is a non critical but annoying bug that presents from time
to time when you are using the notebook GUI.

Some times, when you click the document tree a window popup
with an error message, titled 
"`MessageNotUnderstood: receiver of "selectedMorphList" is nil`", 
as shown in figure \ref{fig:bug}.

![ The know bug message. ](./Docs/Imagenes/Notebook/bug.png){#fig:bug}


If that is the case, you still can continue your writing in the current document,
clicking on other notebook nodes and editing them, but if the message presents
again (usually when selecting the same node that originated it the first time),
you can save the notebook and reopen it again from the 
`Launch > Recent notebooks...` docking bar menu.

We are going to hunt and squeeze that bug out of existance.
Resistance is futile.
To help us with this or other bugs please look at the Community Guidelines to
know how to contribute to the project.

## Community Guidelines



## Seek support

Grafoscopio has a small and new born community.
You can reach it by following the contact links
in the Grafoscopio page in 
[Spanish](http://mutabit.com/grafoscopio/)
or in [English](http://mutabit.com/grafoscopio/index.en.html).

Also you can discuss issues related with Grafoscopio in the
[Pharo users community](http://pharo.org/community) 
mailing list.
We are in such list and try to be active participants there
and bridge the local Spanish community with the international
one.

## Report issues or problems

To report issues or problems with the software and/or its documentation 
please visit our [ticket section][grafoscopio-tickets] Fossil repository.
Before creating a new ticket, please be sure to visit the 
[current tickets][grafoscopio-tickets-current], to see if your issue/problem has been
not reported already.

## Contribute to the project

As we said, Grafoscopio wants to help in blurring the distinction
between software developer and interactive document author,
so we are pretty open to several ways of contribution: from
bug reports, as explained above, to the creation of interactive
documentation, domain specific languages (DSLs) and visualizations,
or software functionality.

Contributions usually take part on our recurrent [Data Week][dataweek] 
hackathon/workshop and there you will learn how to use and adapt 
the software, starting by the basics, creating DSLs and crafting
visualizations and integrating them into interactive notebooks.
You will also learn how to use Fossil and how to commit to our 
shared repositories for [code][grafoscopio-sthub] and for 
[documents and issues][grafoscopio-fossil].
Besides this manual, we are creating also a tutorial (in Spanish) with all 
these themes covered, as memories for us and others to remember and learn from.
The idea, as was said before, is to have multilingual documentation with a *local
first* approach.

If you don't have the chance to assist to one of our face to face learning workshops
and hackathons or to use the resulting notebooks, but still want and already know
who to contribute, you can also ask for permisions in the respositories using any of 
the contact methods listed above.
We are a small, new born and friendly community with low traffic
mail communication and can discuss about contributions on an
individual  case by case approach, so your words, bugfix and suggestions 
will be listened and taking into account and integrated when and where they 
make sense.

Welcome again to our community :-).

[agileviz-quickstart]: https://dl.dropboxusercontent.com/u/31543901/AgileVisualization/QuickStart/0101-QuickStart.html
[beaker]: http://beakernotebook.com/
[bibtex]: https://en.wikipedia.org/wiki/BibTeX
[chocolatey]: https://chocolatey.org/
[citezen]: http://people.untyped.org/damien.pollet/software/citezen/
[d3js]: https://d3js.org/
[dataweek]: http://mutabit.com/dataweek/
[etherpad]: https://en.wikipedia.org/wiki/Etherpad
[flare]: http://flare.prefuse.org/
[floor-function]: https://en.wikipedia.org/wiki/Floor_and_ceiling_functions
[fossil]: http://fossil-scm.org/
[fuel]: http://rmod.inria.fr/web/software/Fuel
[full-manual]: ./Docs/En/Books/Manual/manual.pdf
[joss]: http://joss.theoj.org/
[grafoscopio-en]: http://mutabit.com/grafoscopio/index.en.html
[grafoscopio-fossil]: http://mutabit.com/repos.fossil/grafoscopio/
[grafoscopio-tickets]: http://mutabit.com/repos.fossil/grafoscopio/ticket
[grafoscopio-tickets-current]: http://mutabit.com/repos.fossil/grafoscopio/rptview?rn=1
[grafoscopio-sthub]: http://smalltalkhub.com/#!/~Offray/Grafoscopio
[git]: https://en.wikipedia.org/wiki/Git
[github]: https://en.wikipedia.org/wiki/GitHub
[gogs]: https://gogs.io/
[gt-tools]: http://gtoolkit.org/
[hackbo]: http://hackbo.co/
[json]: http://en.wikipedia.org/wiki/JavaScript_Object_Notation
[jupyter]: http://jupyter.org/
[jupyterlab]: http://jupyterlab.github.io/jupyterlab/
[latex]: https://en.wikipedia.org/wiki/LaTeX
[leo]: http://leoeditor.com
[light-markup-languages]: https://en.wikipedia.org/wiki/Light_markup_language
[manual-tip]: http://mutabit.com/repos.fossil/grafoscopio/dir?tip&name=Docs/En/Books/Manual
[markdown]: http://pandoc.org/MANUAL.html#pandocs-markdown
[mooc]: https://siemenbaader.github.io/PharoMooc-website/
[mooc-spotter1]: http://rmod-pharo-mooc.lille.inria.fr/MOOC/Videos/W3/C019-Videos-Spotter1-BrowsingAClassWithSpotter-V2-HD_720p_4Mbs.m4v
[mooc-spotter2]: http://rmod-pharo-mooc.lille.inria.fr/MOOC/Videos/W3/C019-Videos-Spotter2-Categories-V2-HD_720p_4Mbs.m4v
[mooc-w3-14]: http://amara.org/en/videos/04UWGMwnrdXz/info/rmod-pharo-mooclilleinriafrc019-videos-redo-dsl-hd_720p_4mbsm4v/
[neojson]: https://ci.inria.fr/pharo-contribution/job/EnterprisePharoBook/lastSuccessfulBuild/artifact/book-result/NeoJSON/NeoJSON.html
[nix]: http://nixos.org/nix/
[nosql]: https://en.wikipedia.org/wiki/NoSQL
[nteract]: https://nteract.io/
[oop-pharo-2017]: https://ci.inria.fr/pharo-contribution/view/Books/job/LearningObjectOrientedProgramming/98/artifact/book.pdf
[org-mode]: http://orgmode.org/
[pastebin]: https://en.wikipedia.org/wiki/Pastebin
[pandoc]: http://pandoc.org/
[pharo]: http://pharo.org/
[pharo-download]: http://pharo.org/download
[pollen]: http://docs.racket-lang.org/pollen/
[processing]: https://processing.org/
[raphaeljs]: https://dmitrybaranovskiy.github.io/raphael/
[roassal]: http://agilevisualization.com/
[rolling-release]: https://en.wikipedia.org/wiki/Rolling_release
[spec]: http://files.pharo.org/books/spec-tutorial/
[spotter]: http://gtoolkit.org/#spotter
[sqlite]: http://sqlite.org/
[ston]: https://github.com/svenvc/ston/blob/master/ston-paper.md
[texmacs]: http://texmacs.org/
[udbc]: http://www.smalltalkhub.com/#!/~TorstenBergmann/UDBC 
[zeppling]: http://zeppelin-project.org/
[zotero]: https://www.zotero.org/
[zotero-manual]: https://www.zotero.org/groups/diseo_y_creacion_phd_msc_universidad_de_caldas/items/collectionKey/PHGTCZVT

## Licenses

Grafoscopio and its tutorial is licensed under MIT license and the readme and the User 
Manual, and other documentaiton is licensed under a modified P2P license.
To see a full copy of such respective licenses, please visit the files under this repository:

  - [Grafoscopio MIT License](./Docs/En/Licenses/grafoscopio-mit.md)
  - [Documentation P2P License](./Docs/En/Licenses/documents-p2p-ismb.md)


<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<






















































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































Changes to readme.md.html.

487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
[d3js]: https://d3js.org/
[dataweek]: http://mutabit.com/dataweek/
[etherpad]: https://en.wikipedia.org/wiki/Etherpad
[flare]: http://flare.prefuse.org/
[floor-function]: https://en.wikipedia.org/wiki/Floor_and_ceiling_functions
[fossil]: http://fossil-scm.org/
[fuel]: http://rmod.inria.fr/web/software/Fuel
[full-manual]: ./Docs/En/Books/Manual/manual.pdf
[joss]: http://joss.theoj.org/
[grafoscopio-en]: http://mutabit.com/grafoscopio/index.en.html
[grafoscopio-fossil]: http://mutabit.com/repos.fossil/grafoscopio/
[grafoscopio-tickets]: http://mutabit.com/repos.fossil/grafoscopio/ticket
[grafoscopio-tickets-current]: http://mutabit.com/repos.fossil/grafoscopio/rptview?rn=1
[grafoscopio-sthub]: http://smalltalkhub.com/#!/~Offray/Grafoscopio
[git]: https://en.wikipedia.org/wiki/Git







|







487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
[d3js]: https://d3js.org/
[dataweek]: http://mutabit.com/dataweek/
[etherpad]: https://en.wikipedia.org/wiki/Etherpad
[flare]: http://flare.prefuse.org/
[floor-function]: https://en.wikipedia.org/wiki/Floor_and_ceiling_functions
[fossil]: http://fossil-scm.org/
[fuel]: http://rmod.inria.fr/web/software/Fuel
[full-manual]: ../../uv/Docs/En/Books/Manual/manual.pdf
[joss]: http://joss.theoj.org/
[grafoscopio-en]: http://mutabit.com/grafoscopio/index.en.html
[grafoscopio-fossil]: http://mutabit.com/repos.fossil/grafoscopio/
[grafoscopio-tickets]: http://mutabit.com/repos.fossil/grafoscopio/ticket
[grafoscopio-tickets-current]: http://mutabit.com/repos.fossil/grafoscopio/rptview?rn=1
[grafoscopio-sthub]: http://smalltalkhub.com/#!/~Offray/Grafoscopio
[git]: https://en.wikipedia.org/wiki/Git