# Grafoscopio

Check-in [e0de9ed340]

Overview
Comment: Using the unversioned file for the Grafoscopio Manual. Tarball | ZIP archive | SQL archive family | ancestors | descendants | both | files | file ages | folders e0de9ed34000f856ffed7e2f5e2b50c7dcc36b69 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

 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 . 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 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)  < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < <     
 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