DELETED Common/Icons/FontAwesome/Png/tags.png Index: Common/Icons/FontAwesome/Png/tags.png ================================================================== --- Common/Icons/FontAwesome/Png/tags.png +++ Common/Icons/FontAwesome/Png/tags.png cannot compute difference between binary files DELETED Common/Icons/FontAwesome/Svg/tags.svg Index: Common/Icons/FontAwesome/Svg/tags.svg ================================================================== --- Common/Icons/FontAwesome/Svg/tags.svg +++ Common/Icons/FontAwesome/Svg/tags.svg @@ -1,9 +0,0 @@ - - - - - - - - - DELETED Common/Icons/Menda/Png/arrowDown.png Index: Common/Icons/Menda/Png/arrowDown.png ================================================================== --- Common/Icons/Menda/Png/arrowDown.png +++ Common/Icons/Menda/Png/arrowDown.png cannot compute difference between binary files DELETED Common/Icons/Menda/Png/arrowLeft.png Index: Common/Icons/Menda/Png/arrowLeft.png ================================================================== --- Common/Icons/Menda/Png/arrowLeft.png +++ Common/Icons/Menda/Png/arrowLeft.png cannot compute difference between binary files DELETED Common/Icons/Menda/Png/arrowRight.png Index: Common/Icons/Menda/Png/arrowRight.png ================================================================== --- Common/Icons/Menda/Png/arrowRight.png +++ Common/Icons/Menda/Png/arrowRight.png cannot compute difference between binary files DELETED Common/Icons/Menda/Png/arrowUp.png Index: Common/Icons/Menda/Png/arrowUp.png ================================================================== --- Common/Icons/Menda/Png/arrowUp.png +++ Common/Icons/Menda/Png/arrowUp.png cannot compute difference between binary files DELETED Common/Icons/Menda/Png/minus.png Index: Common/Icons/Menda/Png/minus.png ================================================================== --- Common/Icons/Menda/Png/minus.png +++ Common/Icons/Menda/Png/minus.png cannot compute difference between binary files DELETED Common/Icons/Menda/Png/plus.png Index: Common/Icons/Menda/Png/plus.png ================================================================== --- Common/Icons/Menda/Png/plus.png +++ Common/Icons/Menda/Png/plus.png cannot compute difference between binary files DELETED Common/Icons/Menda/Png/smalltalkCode.png Index: Common/Icons/Menda/Png/smalltalkCode.png ================================================================== --- Common/Icons/Menda/Png/smalltalkCode.png +++ Common/Icons/Menda/Png/smalltalkCode.png cannot compute difference between binary files DELETED Common/Icons/Menda/Png/tagAdd.png Index: Common/Icons/Menda/Png/tagAdd.png ================================================================== --- Common/Icons/Menda/Png/tagAdd.png +++ Common/Icons/Menda/Png/tagAdd.png cannot compute difference between binary files DELETED Common/Icons/Menda/Png/tagMinus.png Index: Common/Icons/Menda/Png/tagMinus.png ================================================================== --- Common/Icons/Menda/Png/tagMinus.png +++ Common/Icons/Menda/Png/tagMinus.png cannot compute difference between binary files DELETED Common/Icons/Menda/Svg/arrow-down.svg Index: Common/Icons/Menda/Svg/arrow-down.svg ================================================================== --- Common/Icons/Menda/Svg/arrow-down.svg +++ Common/Icons/Menda/Svg/arrow-down.svg @@ -1,77 +0,0 @@ - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - DELETED Common/Icons/Menda/Svg/arrow-left.svg Index: Common/Icons/Menda/Svg/arrow-left.svg ================================================================== --- Common/Icons/Menda/Svg/arrow-left.svg +++ Common/Icons/Menda/Svg/arrow-left.svg @@ -1,80 +0,0 @@ - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - DELETED Common/Icons/Menda/Svg/arrow-right.svg Index: Common/Icons/Menda/Svg/arrow-right.svg ================================================================== --- Common/Icons/Menda/Svg/arrow-right.svg +++ Common/Icons/Menda/Svg/arrow-right.svg @@ -1,77 +0,0 @@ - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - DELETED Common/Icons/Menda/Svg/arrow-up.svg Index: Common/Icons/Menda/Svg/arrow-up.svg ================================================================== --- Common/Icons/Menda/Svg/arrow-up.svg +++ Common/Icons/Menda/Svg/arrow-up.svg @@ -1,77 +0,0 @@ - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - DELETED Common/Icons/Menda/Svg/minus.svg Index: Common/Icons/Menda/Svg/minus.svg ================================================================== --- Common/Icons/Menda/Svg/minus.svg +++ Common/Icons/Menda/Svg/minus.svg @@ -1,84 +0,0 @@ - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - DELETED Common/Icons/Menda/Svg/plus.svg Index: Common/Icons/Menda/Svg/plus.svg ================================================================== --- Common/Icons/Menda/Svg/plus.svg +++ Common/Icons/Menda/Svg/plus.svg @@ -1,92 +0,0 @@ - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - DELETED Common/Icons/Menda/Svg/tagAdd.svg Index: Common/Icons/Menda/Svg/tagAdd.svg ================================================================== --- Common/Icons/Menda/Svg/tagAdd.svg +++ Common/Icons/Menda/Svg/tagAdd.svg @@ -1,11 +0,0 @@ - - - - - - - - - - - DELETED Common/Icons/Menda/Svg/tagMinus.svg Index: Common/Icons/Menda/Svg/tagMinus.svg ================================================================== --- Common/Icons/Menda/Svg/tagMinus.svg +++ Common/Icons/Menda/Svg/tagMinus.svg @@ -1,10 +0,0 @@ - - - - - - - - - - DELETED Common/Icons/Menda/Svg/view-split-left-right.svg Index: Common/Icons/Menda/Svg/view-split-left-right.svg ================================================================== --- Common/Icons/Menda/Svg/view-split-left-right.svg +++ Common/Icons/Menda/Svg/view-split-left-right.svg @@ -1,141 +0,0 @@ - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - DELETED Data/OpenSpending/seg1.csv Index: Data/OpenSpending/seg1.csv ================================================================== --- Data/OpenSpending/seg1.csv +++ Data/OpenSpending/seg1.csv @@ -1,2 +0,0 @@ -Suma,SegmentoId -699296597336.0,12 DELETED Data/OpenSpending/seg2.csv Index: Data/OpenSpending/seg2.csv ================================================================== --- Data/OpenSpending/seg2.csv +++ Data/OpenSpending/seg2.csv @@ -1,2 +0,0 @@ -Suma,SegmentoId -1247787917094.0,22 DELETED Data/OpenSpending/seg3.csv Index: Data/OpenSpending/seg3.csv ================================================================== --- Data/OpenSpending/seg3.csv +++ Data/OpenSpending/seg3.csv @@ -1,2 +0,0 @@ -Suma,SegmentoId -926267354007.0,41 DELETED Data/OpenSpending/seg4.csv Index: Data/OpenSpending/seg4.csv ================================================================== --- Data/OpenSpending/seg4.csv +++ Data/OpenSpending/seg4.csv @@ -1,2 +0,0 @@ -Suma,SegmentoId -8929380362372.0,42 DELETED Data/OpenSpending/seg5.csv Index: Data/OpenSpending/seg5.csv ================================================================== --- Data/OpenSpending/seg5.csv +++ Data/OpenSpending/seg5.csv @@ -1,2 +0,0 @@ -Suma,SegmentoId -8929380362372.0,42 DELETED Data/OpenSpending/seg6.csv Index: Data/OpenSpending/seg6.csv ================================================================== --- Data/OpenSpending/seg6.csv +++ Data/OpenSpending/seg6.csv @@ -1,2 +0,0 @@ -Suma,SegmentoId -8929380362372.0,42 DELETED Docs/En/Books/AgileVisualization/Figures/agile-visualization-toc.png Index: Docs/En/Books/AgileVisualization/Figures/agile-visualization-toc.png ================================================================== --- Docs/En/Books/AgileVisualization/Figures/agile-visualization-toc.png +++ Docs/En/Books/AgileVisualization/Figures/agile-visualization-toc.png cannot compute difference between binary files DELETED Docs/En/Books/AgileVisualization/agile-visualization.markdown Index: Docs/En/Books/AgileVisualization/agile-visualization.markdown ================================================================== --- Docs/En/Books/AgileVisualization/agile-visualization.markdown +++ Docs/En/Books/AgileVisualization/agile-visualization.markdown @@ -1,780 +0,0 @@ ---- -header-includes: - - \usepackage{minted} - - \usemintedstyle{friendly} ---- -# Agile visualization - - - -## Part 0 - Before the feast - - - -### Preface - -This book is about programming interactive data visualization for people with some experience in programming. - -Computers are traditionally considered as an extension of the human brain: a computer alleviates humans from performing boring and repetitive tasks. Data visualization is a wonderful area in which computer nicely complement what the brain excels at. - -Challenges in data visualization is actually not visualizing data. There are numerous libraries for that purpose. The real challenge is about making visualization that are easily reusable, composable and extensible. How many times have you seen an appealing and sexy visualization on the web that you wish to reuse it with your own data? This book aims at answering that question. - -This book is based on the Roassal visualization engine. All the examples are therefore made for Roassal, and are written in the Pharo programming language. - -The book is made for a large audience. Designing a documentation that find the right balance between what roassal offers, how people want to use it, and considering the previous knowledge people may have is difficult. - -There are three sources of documentation for Roassal2: the http://agilevisualization.com book, examples contains in Roassal2, and the Moose mailing list. Chapters about Mondrian, Roassal1 are more than obsolete by now. - -#### Who should read the book - - - -#### Other visualization platforms - -Although Roassal, Pharo, and Moose are heavily promoted in this book, our goal is not to make you switch language or visualization API. You probably have a good reason for using what you are currently using. In case you are seeking for a fresh experience for visualizing and programming, then we cannot recommend more this tool trilogy. - -Many visualization engines are around. D3js, RaphaelJS, Processing, Flare are popular visualization frameworks supported by a large community. Agile Visualization presents a compelling use of visualizations in many different situations. Feel free to pick and develop ideas presented in this book for your favorite visualization engine. We believe that Agile Visualization will enhance your creativity. - -#### If you do not know Pharo - -Pharo is easy to learn and to use. It comes with fantastic programming tools to make you intimely interact with objects, an object being an elementary computational unit. - -Our advice is to resist the natural tendency to map your knowledge from Java or PHP into Pharo. You will miss the beauty of the thing. You would not enter a French restaurant and order a cheeseburger. Don't you? - -#### If you are already a Pharo/Smalltalk programmer - -If you are a Pharo programmer with the knowledge of some graphical API, then here our advice: You may want to try to work with the core of Roassal. Just focus on Part I of this book. The related code is everything contains within the Roassal2-Core package. Just look at the Roassal Example in the example browser, within Pharo. Play a bit with the concepts belong to Roassal core. Once you understand the basic functionalities of Roassal, we invite you to read more about the builder infrastructure. Builder enables fantastic scripting and visualization composition not seen anywhere else! - -One last advice before beginning your journey: do no try to build any complex visualization in Roassal without having read the builder infrastructure. Builders may ease your life! - -#### Similar books - - - Interactive Data Visualization for the Web by Scott Murray, 2013, is about the D3 library. - The book is essentially about programming interactive visualization using D3. - A free version of the book is available on - -#### Roassal's Sibblings - -How to efficiently visualzing data is a difficult problem that does not come with one unique solution. Roassal addresses this problems in a particular perspective. Other perspectives are also available: - - - D3 - - RaphaelJS - - Protoviz - ... - -#### Acknowledgements - -We would like to thank various people who have contributed to this book. In particular, we would like to thank: - - - Vanessa Peña for her participation in the Roassal and Mondrian chapters. - - The ESUG, Pharo, and Moose communities. Your enthusiastic support and trust in what we have done has always been invaluable. - - Renato Cerro for his help in proofreading. - - You, for your questions, support, bug fixes, contribution, and encouragement. - -We thank Inria Lille Nord Europe for supporting this open-source project and for hosting the web site of this book. We also thank Object Profile for sponsoring the cover. - -We thanks FONDECYT project 1120094 and the Plomo Équipe Associée for having sponsored the book. - -### Introduction - - - -## Part I - Roassal - - - -### Quick Start - -This chapter gives a quick introduction on launching and getting a first try of Roassal. The chapter assumes you have (i) some basic notion of programming and (ii) have a connection to internet. - -### Basic Installation - - - -#### From scratch (novice) - -Installing Roassal is fairly easy. It is just the matter of downloading a couple of files. You simply need to download two .zip files and unzip them. The files are available form: - - - weights about 25 Mb and contains 3 files: `.image`, `.changes`, and a source file. - - A virtual machine is also needed. You can get it from http://pharo.org/download. Pick the virtual machine according to your platform and operating system. The virtual machine weights less than 5 Mb. - -These files are also available from the website . Create a folder and unzip the two downloaded archives. And voila, Roassal, Moose, and Pharo are installed. Your filesystem will not be polluted: the folder contains everything you need. - -#### Loading from Pharo (advanced) - -In case you are a Pharo user and want to integrate Roassal in your working developping environment, you may be interested in loading Roassal directly from its repository. Here is the Gofer script to execute in a Playground: - - Gofer it - smalltalkhubUser: 'ObjectProfile' project: 'Roassal2'; - configurationOf: 'Roassal2'; - loadStable. - -### Running Roassal - -Dragging-and-dropping the file moose.image on the virtual machine will open the Moose programming environment. -Moose is a platform for data and software analysis. Roassal is the visualization engine part of Moose. -Moose and Roassal are written in the Pharo programming language. - -### First visualization - -Open a workspace from the World menu and type the following (or copy if you have using an online version of the book): - -\begin{minted}{smalltalk}[frame=lines] -b := RTMondrian new. - b shape label. - b nodes: (1 to: 100). - b edges connectFrom: [ :i | i // 2 ]. - b layout cluster. - b -\end{minted} - -\begin{minted}{smalltalk}[frame=lines] -path := FileLocator temp. -allFilesUnderPath := path asFileReference allChildren. -b := RTMondrian new. - -b shape circle - color: Color gray trans; - if: [ :aFile | aFile path basename endsWith: '.png' ] color: Color red trans. - b nodes: allFilesUnderPath. - b edges connectFrom: #parent. - b normalizer - normalizeSize: #size min: 10 max: 150 using: #sqrt. - b layout cluster. - b -\end{minted} - -### Geographical CSV data - -Comma-separated values (CSV) is a file format close to what spreedcheat are manipulated. Roassal has facilities to extract data from CSV files. -The following example shows earthquakes over the last 30 days: - -\begin{minted}{smalltalk}[frame=lines] -| tab b | -tab := RTTabTable new input: 'http://earthquake.usgs.gov/earthquakes/feed/v1.0/summary/2.5_hour.csv' asUrl retrieveContents usingDelimiter: $,. -tab removeFirstRow. -tab replaceEmptyValuesWith: '0' inColumns: #(2 3 4 5). -tab convertColumnsAsFloat: #(2 3 4 5). -b := RTMapLocationBuilder new. -b shape circle - size: [ :v | 2 raisedTo: (v - 1) ]; - color: (Color red alpha: 0.3). -tab values do: [ :row | b addPoint: row second @ row third value: row fifth ]. -b build. -\end{minted} - -### Seism activity over time - - - -\begin{minted}{smalltalk}[frame=lines] -tab := RTTabTable new - input: 'http://earthquake.usgs.gov/earthquakes/feed/v1.0/summary/2.5_month.csv' asUrl retrieveContents - usingDelimiter: $,. - tab removeFirstRow. - tab convertColumn: 1 to: [ :s | (DateAndTime fromString: s) julianDayNumber ]. - tab convertColumnsAsFloat: #(5). - - v := RTView new. - es := RTEllipse elementsOn: tab values. - v addAll: es. - es @ RTPopup. - - RTMetricNormalizer new - elements: es; - normalizeColor: #fifth using: { Color orange . Color red }; - alphaColor: 0.3; - normalizeX: #first min: 0 max: 600; - normalizeSize: #fifth min: 0 max: 80 using: [ :mag | 2 raisedTo: (mag - 1) ]. - - es @ (RTLabeled new text: [ :row | row fifth > 6 ifTrue: [ row fifth ] ifFalse: [ '' ] ]). - v @ RTDraggableView. - v -\end{minted} - -### Charting - - - -#### Plotting - - - -\begin{minted}{smalltalk}[frame=lines] - "Preparing the data" - tab := RTTabTable new input: 'http://bit.ly/EbolaCSV' asUrl retrieveContents usingDelimiter: $,. - tab removeFirstRow. - tab replaceEmptyValuesWith: '0' inColumns: #(10 11). - tab convertColumnsAsInteger: #(10 11). - tab convertColumnsAsDateAndTime: #(3 4). - data := tab values reversed. - - "Charting the data" - b := RTGrapher new. - - ds := RTData new. - ds interaction fixedPopupText: [ :row | row value at: 12 ]. - ds dotShape ellipse - color: (Color blue alpha: 0.3); - size: [ :row | (row at: 11) / 5 ]. - ds points: data. - ds connectColor: Color blue. - ds y: [ :r | r at: 10 ]. - ds highlightIf: [ :row | (row at: 10) > 100 ] using: [ :row | row third year ]. - b add: ds. - - b axisX noLabel; numberOfTicks: tab values size. - b axisY noDecimal. - b -\end{minted} - -#### Double plotting - - - -\begin{minted}{smalltalk}[frame=lines] -tab := RTTabTable new input: 'http://bit.ly/CensusGov' asUrl retrieveContents usingDelimiter: $,. - tab removeFirstRow. - tab convertColumnsAsInteger: #('POPESTIMATE2013' 'POPEST18PLUS2013'). - - b := RTDoubleBarBuilder new. - b pointName: [ :row | row at: (tab indexOfName: 'NAME') ]. - "Remove the first line, the sum" - b points: tab values allButFirst. - b bottomValue: [ :row | ((row at: (tab indexOfName: 'POPESTIMATE2013')) / 1000) asInteger ] - titled: 'Pop estimate (x 1000)'. - b topValue: [ :row | ((row at: (tab indexOfName: 'POPEST18PLUS2013')) / 1000) asInteger] - titled: 'Pop +18 estimate (x 1000)'. - b -\end{minted} - -#### Multiple graphs - - - -\begin{minted}{smalltalk}[frame=lines] - b := RTGrapher new. - numberOfDataSets := 5. - - colorNormalizer := RTMultiLinearColorForIdentity new - objects: (1 to: numberOfDataSets). - 1 to: numberOfDataSets do: [ :i | - ds := RTData new. - ds noDot. - ds points: ((1 to: 500) collect: [ :ii | 50 atRandom - 25 ]) cumsum. - ds connectColor: (colorNormalizer rtValue: i). - b add: ds. - ]. - b - - -\end{minted} - -### Timeline - - - -\begin{minted}{smalltalk}[frame=lines] - data := #( - #(WP1 0 4) #(WP2 4 8) - #(WP3 8 12) #(WP4 3 4) - #(WP4 7 9) #(WP4 10 12) - ). - b := RTTimeline new. - s := RTTimelineSet new. - s objects: data. - s lineIdentifier: #first. - s start: #second. - s end: #third. - b add: s. - b axisX - noDecimal; - title: 'Month'; - numberOfLabels: 12. - b -\end{minted} - -### Integration with OpenStreetMap - - - -\begin{minted}{smalltalk}[frame=lines] - -\end{minted} - -### Pharo in a Nutshell - - - -### Overview of Trachel - - - -#### Core of Trachel - - - -#### Canvas - - - -#### Shapes - - - -\begin{minted}{smalltalk}[frame=lines] -| c | -c := TRCanvas new. - 100 timesRepeat: [ - | shape | - shape := TREllipseShape new. - shape size: 50 atRandom. - shape color: Color random. - shape translateTo: (500 atRandom @ 500 atRandom) - (250 @ 250). - c addShape: shape ]. - c -\end{minted} - -#### Fixed Shapes - - - -\begin{minted}{smalltalk}[frame=lines] -| c button | - -c := TRCanvas new. - - 100 timesRepeat: [ c addShape: (TREllipseShape new - color: Color random; - size: 30 atRandom; - translateTo: (400 atRandom @ 400 atRandom)) ]. - - button := TRLabelShape new text: 'move'. - c addShape: button. - button setAsFixed. - button translateBy: 30 @ 30. - - button when: TRMouseClick do: [ :evt | - c camera translateBy: 4 atRandom @ 4 atRandom. - c signalUpdate ]. - c -\end{minted} - -#### Positioning - - - -#### Size - - - -#### Scaling and rotating - - - -#### Colors - - - -#### Callback - - - -#### Constraints between shapes - - - -#### Visualizing data - - - -### Overview of Roassal - - - -#### View, Elements, Shapes and Interactions - - - -#### Shapes - - - -##### Element shapes - - - -##### Edge shapes - - - -##### Functions and metrics as parameters - - - -##### Shape composition - - - -#### Element transformation - - - -#### Group of elements - - - -#### Nesting elements - - - -#### Giving behavior to element with interactions - - - -#### Normalizer - - - -#### Expressing constraints - - - -##### Alignment - - - -##### Resizing - - - -##### Positioning - - - -#### Automatically View Refreshing - - - -#### Visualizing a Domain - - - -#### Code Snippets - - - -##### Edges with invisible extremities - - - -##### Dynamically adding elements - - - -##### Orthogonal lines - - - -##### Dynamically adding edges - - - -### Event and Interaction - - - -### Layout - - - -### Camera - - - -#### Operations - - - -#### Initialization - - - -### Animation - - - -## Part II - Builders - - - -### Builder platform - -This chapter was written with the participation of Yuriy Tymchuk (yuriy.tymchuk@me.com) - -The Roassal visualization engine is a general purpose engine for visualizing data in Smalltalk-based languages. Roassal has been designed to easily map any arbitrary object structure, metrics, properties to visual dimensions. Roassal has been used in a number of software engineering and data visualization projects. - -Visualizations have symptoms similar to software: if not properly designed, a visualization is difficult to extend and reuse in a context different from the one it has been made for at the first place. In software engineering, problems traditionally associated to software reuse, composition, and extension are tremendously alleviated by employing domain-specific languages: a reduced and specialized language for a particular application domain lowers the effort of designing and maintaining software. - -Roassal has been recently extended with a new infrastructure, called builder, to efficiently build and reuse visualization. Builder follows the key principles of domain-specific languages by supporting the definition of domain-specific visualizations, i.e., visualizations tailored to a particular domain. Builder offers a set of reusable building blocks to easily define visual shapes, interaction and layout over any arbitrary domain. A builder encapsulates the logic of a visualization and maps a particular domain to visual elements. - -#### Builder infrastructure - - - -#### Defining a builder with RTBuilder - - - -#### Specifying shapes with RTShapeBuilder - - - -#### Specifying global properties using RTGlobalBuilder - - - -### Charting, Plotting and Curving using Grapher - - - -#### Scatterplot - - - -##### Simple chart - - - -##### Multiple charts - - - -##### Axis configuration - - - -#### Curve - - - -##### Function - - - -##### Stacking - - - -##### Stacking or not stacking a data set - - - -##### Stacking multiple curve - - - -##### Data point aspect - - - -#### Bar - - - -#### Interaction - - - -#### Distribution - - - -#### Logarithmic Scale - - - -#### Axis Range - - - -#### Date on the axis - - - -#### Line Shape - - - -#### Internal of RTCharterBuilder - - - -##### Axis - - - -##### Bar chart - - - -### MapBuilder - - - -### Agile Graph Building - - - -#### Examples of Graph usage - - - -\begin{minted}{smalltalk}[frame=lines] -| b | -b := RTGraphBuilder new. - b nodes if: [ :c | c inheritsFrom: RTShape ]; color: Color green. - b nodes if: [ :c | c inheritsFrom: RTLayout ]; color: Color yellow. - b nodes if: [ :c | 'TR*' match: c name ]; color: Color purple. - b nodes color: Color gray. - - b edges - connectTo: #subclasses; - useInLayout. - - b edges - connectTo: #dependentClasses; - follow: #superclass; - if: [:from :to | ('RT*' match: from name) and: ['TR*' match: to name]]; - color: (Color blue alpha: 0.2). - - b layout cluster. - - b global normalizeSize: #numberOfMethods min: 5 max: 60. - - b addAll: RTObject withAllSubclasses. - b addAll: TRObject withAllSubclasses. - b addAll: TREvent withAllSubclasses. - b build -\end{minted} - -#### Program Structure - - - -##### Nodes - - - -###### Visual shape - - - -###### Scoping - - - -##### Edges - - - -###### Connecting - - - -###### Directed line - - - -###### Follow - - - -##### Layout - - - -##### Global rules - - - -###### Global rule - - - -###### Normalization - - - -#### Chapter summary - - - -### TimeLine - - - -### Mondrian - - - -### Builder composition - - - -#### Composing builders - - - -#### Propagating events - - - -#### Naming visualization - - - -#### World population Example - - - -## Part III - Applications - - - -### Epidemiological Modeling with Kendrick - - - -### Microprint - - - -### AstroCloud - - - -### Analyzing Tweets - - - -### Genetic Algorithm - - - -### OpenStreeMap - - - -#### Moving the camera to particular locations - - - -#### Decorating the map - - - -#### Getting country location - - - DELETED Docs/En/Books/AgileVisualization/agile-visualization.ston Index: Docs/En/Books/AgileVisualization/agile-visualization.ston ================================================================== --- Docs/En/Books/AgileVisualization/agile-visualization.ston +++ Docs/En/Books/AgileVisualization/agile-visualization.ston @@ -1,1536 +0,0 @@ -OrderedCollection [ - GrafoscopioNode { - #header : 'Agile visualization', - #key : '', - #body : '', - #children : OrderedCollection [ - GrafoscopioNode { - #header : 'Part 0 - Before the feast', - #key : '', - #body : '', - #children : OrderedCollection [ - GrafoscopioNode { - #header : 'Introduction', - #key : '', - #body : 'This book is about programming interactive data visualization for people with some experience in programming. - -Computers are traditionally considered as an extension of the human brain: a computer alleviates humans from performing boring and repetitive tasks. Data visualization is a wonderful area in which computer nicely complement what the brain excels at. - -Challenges in data visualization is actually not visualizing data. There are numerous libraries for that purpose. The real challenge is about making visualization that are easily reusable, composable and extensible. How many times have you seen an appealing and sexy visualization on the web that you wish to reuse it with your own data? This book aims at answering that question. - -This book is based on the Roassal visualization engine. All the examples are therefore made for Roassal, and are written in the Pharo programming language. - -The book is made for a large audience. Designing a documentation that find the right balance between what roassal offers, how people want to use it, and considering the previous knowledge people may have is difficult. - -There are three sources of documentation for Roassal2: the http://agilevisualization.com book, examples contains in Roassal2, and the Moose mailing list. Chapters about Mondrian, Roassal1 are more than obsolete by now. ', - #children : OrderedCollection [ - GrafoscopioNode { - #header : 'Who should read the book', - #key : '', - #body : '', - #children : OrderedCollection [ ], - #parent : @6, - #level : 4 - }, - GrafoscopioNode { - #header : 'Other visualization platforms ', - #key : '', - #body : 'Although Roassal, Pharo, and Moose are heavily promoted in this book, our goal is not to make you switch language or visualization API. You probably have a good reason for using what you are currently using. In case you are seeking for a fresh experience for visualizing and programming, then we cannot recommend more this tool trilogy. - -Many visualization engines are around. D3js, RaphaelJS, Processing, Flare are popular visualization frameworks supported by a large community. Agile Visualization presents a compelling use of visualizations in many different situations. Feel free to pick and develop ideas presented in this book for your favorite visualization engine. We believe that Agile Visualization will enhance your creativity.', - #children : OrderedCollection [ ], - #parent : @6, - #level : 4 - }, - GrafoscopioNode { - #header : 'If you do not know Pharo', - #key : '', - #body : 'Pharo is easy to learn and to use. It comes with fantastic programming tools to make you intimely interact with objects, an object being an elementary computational unit. - -Our advice is to resist the natural tendency to map your knowledge from Java or PHP into Pharo. You will miss the beauty of the thing. You would not enter a French restaurant and order a cheeseburger. Don\'t you?', - #children : OrderedCollection [ ], - #parent : @6, - #level : 4 - }, - GrafoscopioNode { - #header : 'If you are already a Pharo/Smalltalk programmer', - #key : '', - #body : 'If you are a Pharo programmer with the knowledge of some graphical API, then here our advice: You may want to try to work with the core of Roassal. Just focus on Part I of this book. The related code is everything contains within the Roassal2-Core package. Just look at the Roassal Example in the example browser, within Pharo. Play a bit with the concepts belong to Roassal core. Once you understand the basic functionalities of Roassal, we invite you to read more about the builder infrastructure. Builder enables fantastic scripting and visualization composition not seen anywhere else! - -One last advice before beginning your journey: do no try to build any complex visualization in Roassal without having read the builder infrastructure. Builders may ease your life!', - #children : OrderedCollection [ ], - #parent : @6, - #level : 4 - }, - GrafoscopioNode { - #header : 'Similar books', - #key : '', - #body : ' - Interactive Data Visualization for the Web by Scott Murray, 2013, is about the D3 library. - The book is essentially about programming interactive visualization using D3. - A free version of the book is available on ', - #children : OrderedCollection [ ], - #parent : @6, - #level : 4 - }, - GrafoscopioNode { - #header : 'Other visualization platforms', - #key : '', - #body : 'How to efficiently visualzing data is a difficult problem that does not come with one unique solution. Roassal addresses this problems in a particular perspective. Other perspectives are also available: - - - D3 - - RaphaelJS - - Protoviz - ...', - #children : OrderedCollection [ ], - #parent : @6, - #level : 4 - }, - GrafoscopioNode { - #header : 'Acknowledgements', - #key : '', - #body : 'We would like to thank various people who have contributed to this book. In particular, we would like to thank: - - - Vanessa Peña for her participation in the Roassal and Mondrian chapters. - - The ESUG, Pharo, and Moose communities. Your enthusiastic support and trust in what we have done has always been invaluable. - - Renato Cerro for his help in proofreading. - - You, for your questions, support, bug fixes, contribution, and encouragement. - -We thank Inria Lille Nord Europe for supporting this open-source project and for hosting the web site of this book. We also thank Object Profile for sponsoring the cover. - -We thanks FONDECYT project 1120094 and the Plomo Équipe Associée for having sponsored the book.', - #children : OrderedCollection [ ], - #parent : @6, - #level : 4 - } - ], - #parent : @4, - #level : 3 - }, - GrafoscopioNode { - #header : 'Introducciones', - #key : '', - #body : '', - #children : OrderedCollection [ ], - #parent : @4, - #level : 3 - } - ], - #parent : @2, - #level : 2 - }, - GrafoscopioNode { - #header : 'Part I - Roassal', - #key : '', - #body : '', - #children : OrderedCollection [ - GrafoscopioNode { - #header : 'Quick Start', - #key : '', - #body : 'This chapter gives a quick introduction on launching and getting a first try of Roassal. The chapter assumes you have (i) some basic notion of programming and (ii) have a connection to internet.', - #children : OrderedCollection [ - GrafoscopioNode { - #header : 'Basic Installation', - #key : '', - #body : '', - #children : OrderedCollection [ - GrafoscopioNode { - #header : 'From scratch (novice)', - #key : '', - #body : 'Installing Roassal is fairly easy. It is just the matter of downloading a couple of files. You simply need to download two .zip files and unzip them. The files are available form: - - - weights about 25 Mb and contains 3 files: `.image`, `.changes`, and a source file. - - A virtual machine is also needed. You can get it from http://pharo.org/download. Pick the virtual machine according to your platform and operating system. The virtual machine weights less than 5 Mb. - -These files are also available from the website . Create a folder and unzip the two downloaded archives. And voila, Roassal, Moose, and Pharo are installed. Your filesystem will not be polluted: the folder contains everything you need.', - #children : OrderedCollection [ ], - #parent : @28, - #level : 4 - }, - GrafoscopioNode { - #header : 'Loading from Pharo (advanced)', - #key : '', - #body : 'In case you are a Pharo user and want to integrate Roassal in your working developping environment, you may be interested in loading Roassal directly from its repository. Here is the Gofer script to execute in a Playground: - -\tGofer it -\t smalltalkhubUser: \'ObjectProfile\' project: \'Roassal2\'; -\t configurationOf: \'Roassal2\'; -\t loadStable.', - #children : OrderedCollection [ ], - #parent : @28, - #level : 4 - } - ], - #parent : @26, - #level : 3 - }, - GrafoscopioNode { - #header : 'Running Roassal', - #key : '', - #body : 'Dragging-and-dropping the file moose.image on the virtual machine will open the Moose programming environment. -Moose is a platform for data and software analysis. Roassal is the visualization engine part of Moose. -Moose and Roassal are written in the Pharo programming language.', - #children : OrderedCollection [ ], - #parent : @26, - #level : 3 - }, - GrafoscopioNode { - #header : 'First visualization', - #key : '', - #body : 'Open a workspace from the World menu and type the following (or copy if you have using an online version of the book):', - #children : OrderedCollection [ - GrafoscopioNode { - #header : 'Example 1: Connecting numbers', - #key : '', - #body : 'b := RTMondrian new. -\tb shape label. -\tb nodes: (1 to: 100). -\tb edges connectFrom: [ :i | i // 2 ]. -\tb layout cluster. -\tb', - #tags : 'código', - #children : OrderedCollection [ ], - #parent : @36, - #level : 4 - } - ], - #parent : @26, - #level : 3 - }, - GrafoscopioNode { - #header : 'Visualizing the file system', - #key : '', - #body : 'path := FileLocator temp. -allFilesUnderPath := path asFileReference allChildren. -b := RTMondrian new. - -b shape circle -\t\tcolor: Color gray trans; -\t\tif: [ :aFile | aFile path basename endsWith: \'.png\' ] color: Color red trans. -\tb nodes: allFilesUnderPath. -\tb edges connectFrom: #parent. -\tb normalizer -\t\t\t\tnormalizeSize: #size min: 10 max: 150 using: #sqrt. -\tb layout cluster. -\tb', - #tags : 'código', - #children : OrderedCollection [ ], - #parent : @26, - #level : 3 - }, - GrafoscopioNode { - #header : 'Geographical CSV data', - #key : '', - #body : 'Comma-separated values (CSV) is a file format close to what spreedcheat are manipulated. Roassal has facilities to extract data from CSV files. -The following example shows earthquakes over the last 30 days:', - #children : OrderedCollection [ - GrafoscopioNode { - #header : 'Seisms on Earth in the last month.', - #key : '', - #body : '| tab b | -tab := RTTabTable new input: \'http://earthquake.usgs.gov/earthquakes/feed/v1.0/summary/2.5_hour.csv\' asUrl retrieveContents usingDelimiter: $,. -tab removeFirstRow. -tab replaceEmptyValuesWith: \'0\' inColumns: #(2 3 4 5). -tab convertColumnsAsFloat: #(2 3 4 5). -b := RTMapLocationBuilder new. -b shape circle -\tsize: [ :v | 2 raisedTo: (v - 1) ]; -\tcolor: (Color red alpha: 0.3). -tab values do: [ :row | b addPoint: row second @ row third value: row fifth ]. -b build.', - #tags : 'código', - #children : OrderedCollection [ ], - #parent : @42, - #level : 4 - } - ], - #parent : @26, - #level : 3 - }, - GrafoscopioNode { - #header : 'Seism activity over time', - #key : '', - #body : '', - #children : OrderedCollection [ - GrafoscopioNode { - #header : 'Timeline of earthquakes', - #key : '', - #body : 'tab := RTTabTable new -\t\t\tinput: \'http://earthquake.usgs.gov/earthquakes/feed/v1.0/summary/2.5_month.csv\' asUrl retrieveContents -\t\t\tusingDelimiter: $,. -\ttab removeFirstRow. -\ttab convertColumn: 1 to: [ :s | (DateAndTime fromString: s) julianDayNumber ]. -\ttab convertColumnsAsFloat: #(5). - -\tv := RTView new. -\tes := RTEllipse elementsOn: tab values. -\tv addAll: es. -\tes @ RTPopup. - -\tRTMetricNormalizer new -\t\telements: es; -\t\tnormalizeColor: #fifth using: { Color orange . Color red }; -\t\talphaColor: 0.3; -\t\tnormalizeX: #first min: 0 max: 600; -\t\tnormalizeSize: #fifth min: 0 max: 80 using: [ :mag | 2 raisedTo: (mag - 1) ]. -\t\t -\tes @ (RTLabeled new text: [ :row | row fifth > 6 ifTrue: [ row fifth ] ifFalse: [ \'\' ] ]). -\tv @ RTDraggableView. -\tv', - #tags : 'código', - #children : OrderedCollection [ ], - #parent : @46, - #level : 4 - } - ], - #parent : @26, - #level : 3 - }, - GrafoscopioNode { - #header : 'Charting', - #key : '', - #body : '', - #children : OrderedCollection [ - GrafoscopioNode { - #header : 'Plotting', - #key : '', - #body : '', - #children : OrderedCollection [ - GrafoscopioNode { - #header : 'Ebola Fatalities', - #key : '', - #body : '\t\"Preparing the data\" -\ttab := RTTabTable new input: \'http://bit.ly/EbolaCSV\' asUrl retrieveContents usingDelimiter: $,. -\ttab removeFirstRow. -\ttab replaceEmptyValuesWith: \'0\' inColumns: #(10 11). -\ttab convertColumnsAsInteger: #(10 11). -\ttab convertColumnsAsDateAndTime: #(3 4). -\tdata := tab values reversed. - -\t\"Charting the data\" -\tb := RTGrapher new. - -\tds := RTData new. -\tds interaction fixedPopupText: [ :row | row value at: 12 ]. -\tds dotShape ellipse -\t\tcolor: (Color blue alpha: 0.3); -\t\tsize: [ :row | (row at: 11) / 5 ]. -\tds points: data. -\tds connectColor: Color blue. -\tds y: [ :r | r at: 10 ]. -\tds highlightIf: [ :row | (row at: 10) > 100 ] using: [ :row | row third year ]. -\tb add: ds. - -\tb axisX noLabel; numberOfTicks: tab values size. -\tb axisY noDecimal. -\tb', - #tags : 'código', - #children : OrderedCollection [ ], - #parent : @52, - #level : 5 - } - ], - #parent : @50, - #level : 4 - }, - GrafoscopioNode { - #header : 'Double plotting', - #key : '', - #body : '', - #children : OrderedCollection [ - GrafoscopioNode { - #header : 'Population per state in the USA', - #key : '', - #body : 'tab := RTTabTable new input: \'http://bit.ly/CensusGov\' asUrl retrieveContents usingDelimiter: $,. -\ttab removeFirstRow. -\ttab convertColumnsAsInteger: #(\'POPESTIMATE2013\' \'POPEST18PLUS2013\'). - -\tb := RTDoubleBarBuilder new. -\tb pointName: [ :row | row at: (tab indexOfName: \'NAME\') ]. -\t\"Remove the first line, the sum\" -\tb points: tab values allButFirst. -\tb bottomValue: [ :row | ((row at: (tab indexOfName: \'POPESTIMATE2013\')) / 1000) asInteger ] -\t\ttitled: \'Pop estimate (x 1000)\'. -\tb topValue: [ :row | ((row at: (tab indexOfName: \'POPEST18PLUS2013\')) / 1000) asInteger] -\t\ttitled: \'Pop +18 estimate (x 1000)\'. -\tb', - #tags : 'código', - #children : OrderedCollection [ ], - #parent : @56, - #level : 5 - } - ], - #parent : @50, - #level : 4 - }, - GrafoscopioNode { - #header : 'Multiple graphs', - #key : '', - #body : '', - #children : OrderedCollection [ - GrafoscopioNode { - #header : 'Multiple graphs', - #key : '', - #body : '\tb := RTGrapher new. -\tnumberOfDataSets := 5. - -\tcolorNormalizer := RTMultiLinearColorForIdentity new -\t\t\t\t\t\tobjects: (1 to: numberOfDataSets). -\t1 to: numberOfDataSets do: [ :i | -\t\tds := RTData new. -\t\tds noDot. -\t\tds points: ((1 to: 500) collect: [ :ii | 50 atRandom - 25 ]) cumsum. -\t\tds connectColor: (colorNormalizer rtValue: i). -\t\tb add: ds. -\t]. -\tb - -', - #tags : 'código', - #children : OrderedCollection [ ], - #parent : @60, - #level : 5 - } - ], - #parent : @50, - #level : 4 - } - ], - #parent : @26, - #level : 3 - }, - GrafoscopioNode { - #header : 'Timeline', - #key : '', - #body : '', - #children : OrderedCollection [ - GrafoscopioNode { - #header : 'Gantt chart', - #key : '', - #body : '\tdata := #( -\t\t#(WP1 0 4) #(WP2 4 8) -\t\t#(WP3 8 12) #(WP4 3 4) -\t\t#(WP4 7 9) #(WP4 10 12) -\t ). -\tb := RTTimeline new. -\ts := RTTimelineSet new. -\ts objects: data. -\ts lineIdentifier: #first. -\ts start: #second. -\ts end: #third. -\tb add: s. -\tb axisX -\t\tnoDecimal; -\t\ttitle: \'Month\'; -\t\tnumberOfLabels: 12. -\tb', - #tags : 'código', - #children : OrderedCollection [ ], - #parent : @64, - #level : 5 - } - ], - #parent : @26, - #level : 3 - }, - GrafoscopioNode { - #header : 'Integration with OpenStreetMap', - #key : '', - #body : '', - #children : OrderedCollection [ - GrafoscopioNode { - #header : 'OpenStreetMap integration', - #key : '', - #body : '', - #tags : 'código', - #children : OrderedCollection [ ], - #parent : @68, - #level : 4 - } - ], - #parent : @26, - #level : 3 - } - ], - #parent : @24, - #level : 3 - }, - GrafoscopioNode { - #header : 'Pharo in a Nutshell', - #key : '', - #body : '', - #children : OrderedCollection [ ], - #parent : @24, - #level : 3 - }, - GrafoscopioNode { - #header : 'Overview of Trachel', - #key : '', - #body : '', - #children : OrderedCollection [ - GrafoscopioNode { - #header : 'Core of Trachel ', - #key : '', - #body : '', - #children : OrderedCollection [ ], - #parent : @74, - #level : 4 - }, - GrafoscopioNode { - #header : 'Canvas', - #key : '', - #body : '', - #children : OrderedCollection [ ], - #parent : @74, - #level : 4 - }, - GrafoscopioNode { - #header : 'Shapes', - #key : '', - #body : '', - #children : OrderedCollection [ - GrafoscopioNode { - #header : 'Random size and colors', - #key : '', - #body : '| c | -c := TRCanvas new. -\t100 timesRepeat: [ -\t\t| shape | -\t\tshape := TREllipseShape new. -\t\tshape size: 50 atRandom. -\t\tshape color: Color random. -\t\tshape translateTo: (500 atRandom @ 500 atRandom) - (250 @ 250). -\t\tc addShape: shape ]. -\tc', - #tags : 'código', - #children : OrderedCollection [ ], - #parent : @80, - #level : 5 - } - ], - #parent : @74, - #level : 4 - }, - GrafoscopioNode { - #header : 'Fixed Shapes', - #key : '', - #body : '', - #children : OrderedCollection [ - GrafoscopioNode { - #header : 'Fixed Shapes', - #key : '', - #body : '| c button | - -c := TRCanvas new. - -\t100 timesRepeat: [ c addShape: (TREllipseShape new -\t\t\t\t\t\t\t\t\tcolor: Color random; -\t\t\t\t\t\t\t\t\tsize: 30 atRandom; -\t\t\t\t\t\t\t\t\ttranslateTo: (400 atRandom @ 400 atRandom)) ]. - -\tbutton := TRLabelShape new text: \'move\'. -\tc addShape: button. -\tbutton setAsFixed. -\tbutton translateBy: 30 @ 30. - -\tbutton when: TRMouseClick do: [ :evt | -\t\tc camera translateBy: 4 atRandom @ 4 atRandom. -\t\tc signalUpdate ]. -\tc ', - #tags : 'código', - #children : OrderedCollection [ ], - #parent : @84, - #level : 5 - } - ], - #parent : @74, - #level : 4 - }, - GrafoscopioNode { - #header : 'Positioning', - #key : '', - #body : '', - #children : OrderedCollection [ ], - #parent : @74, - #level : 4 - }, - GrafoscopioNode { - #header : 'Size', - #key : '', - #body : '', - #children : OrderedCollection [ ], - #parent : @74, - #level : 4 - }, - GrafoscopioNode { - #header : 'Scaling and rotating', - #key : '', - #body : '', - #children : OrderedCollection [ ], - #parent : @74, - #level : 4 - }, - GrafoscopioNode { - #header : 'Colors', - #key : '', - #body : '', - #children : OrderedCollection [ ], - #parent : @74, - #level : 4 - }, - GrafoscopioNode { - #header : 'Callback', - #key : '', - #body : '', - #children : OrderedCollection [ ], - #parent : @74, - #level : 4 - }, - GrafoscopioNode { - #header : 'Constraints between shapes', - #key : '', - #body : '', - #children : OrderedCollection [ ], - #parent : @74, - #level : 4 - }, - GrafoscopioNode { - #header : 'Visualizing data', - #key : '', - #body : '', - #children : OrderedCollection [ ], - #parent : @74, - #level : 4 - } - ], - #parent : @24, - #level : 3 - }, - GrafoscopioNode { - #header : 'Overview of Roassal', - #key : '', - #body : '', - #children : OrderedCollection [ - GrafoscopioNode { - #header : 'View, Elements, Shapes and Interactions', - #key : '', - #body : '', - #children : OrderedCollection [ ], - #parent : @102, - #level : 4 - }, - GrafoscopioNode { - #header : 'Shapes', - #key : '', - #body : '', - #children : OrderedCollection [ - GrafoscopioNode { - #header : 'Element shapes', - #key : '', - #body : '', - #children : OrderedCollection [ ], - #parent : @106, - #level : 5 - }, - GrafoscopioNode { - #header : 'Edge shapes', - #key : '', - #body : '', - #children : OrderedCollection [ ], - #parent : @106, - #level : 5 - }, - GrafoscopioNode { - #header : 'Functions and metrics as parameters', - #key : '', - #body : '', - #children : OrderedCollection [ ], - #parent : @106, - #level : 5 - }, - GrafoscopioNode { - #header : 'Shape composition', - #key : '', - #body : '', - #children : OrderedCollection [ ], - #parent : @106, - #level : 5 - } - ], - #parent : @102, - #level : 4 - }, - GrafoscopioNode { - #header : 'Element transformation', - #key : '', - #body : '', - #children : OrderedCollection [ ], - #parent : @102, - #level : 4 - }, - GrafoscopioNode { - #header : 'Group of elements', - #key : '', - #body : '', - #children : OrderedCollection [ ], - #parent : @102, - #level : 4 - }, - GrafoscopioNode { - #header : 'Nesting elements', - #key : '', - #body : '', - #children : OrderedCollection [ ], - #parent : @102, - #level : 4 - }, - GrafoscopioNode { - #header : 'Giving behavior to element with interactions', - #key : '', - #body : '', - #children : OrderedCollection [ ], - #parent : @102, - #level : 4 - }, - GrafoscopioNode { - #header : 'Normalizer', - #key : '', - #body : '', - #children : OrderedCollection [ ], - #parent : @102, - #level : 4 - }, - GrafoscopioNode { - #header : 'Expressing constraints', - #key : '', - #body : '', - #children : OrderedCollection [ - GrafoscopioNode { - #header : 'Alignment', - #key : '', - #body : '', - #children : OrderedCollection [ ], - #parent : @126, - #level : 5 - }, - GrafoscopioNode { - #header : 'Resizing', - #key : '', - #body : '', - #children : OrderedCollection [ ], - #parent : @126, - #level : 5 - }, - GrafoscopioNode { - #header : 'Positioning', - #key : '', - #body : '', - #children : OrderedCollection [ ], - #parent : @126, - #level : 5 - } - ], - #parent : @102, - #level : 4 - }, - GrafoscopioNode { - #header : 'Automatically View Refreshing', - #key : '', - #body : '', - #children : OrderedCollection [ ], - #parent : @102, - #level : 4 - }, - GrafoscopioNode { - #header : 'Visualizing a Domain', - #key : '', - #body : '', - #children : OrderedCollection [ ], - #parent : @102, - #level : 4 - }, - GrafoscopioNode { - #header : 'Code Snippets', - #key : '', - #body : '', - #children : OrderedCollection [ - GrafoscopioNode { - #header : 'Edges with invisible extremities', - #key : '', - #body : '', - #children : OrderedCollection [ ], - #parent : @138, - #level : 5 - }, - GrafoscopioNode { - #header : ' Dynamically adding elements', - #key : '', - #body : '', - #children : OrderedCollection [ ], - #parent : @138, - #level : 5 - }, - GrafoscopioNode { - #header : 'Orthogonal lines', - #key : '', - #body : '', - #children : OrderedCollection [ ], - #parent : @138, - #level : 5 - }, - GrafoscopioNode { - #header : 'Dynamically adding edges', - #key : '', - #body : '', - #children : OrderedCollection [ ], - #parent : @138, - #level : 5 - } - ], - #parent : @102, - #level : 4 - } - ], - #parent : @24, - #level : 3 - }, - GrafoscopioNode { - #header : 'Event and Interaction', - #key : '', - #body : '', - #children : OrderedCollection [ ], - #parent : @24, - #level : 3 - }, - GrafoscopioNode { - #header : 'Layout', - #key : '', - #body : '', - #children : OrderedCollection [ ], - #parent : @24, - #level : 3 - }, - GrafoscopioNode { - #header : 'Camera', - #key : '', - #body : '', - #children : OrderedCollection [ - GrafoscopioNode { - #header : 'Operations', - #key : '', - #body : '', - #children : OrderedCollection [ ], - #parent : @152, - #level : 4 - }, - GrafoscopioNode { - #header : 'Initialization', - #key : '', - #body : '', - #children : OrderedCollection [ ], - #parent : @152, - #level : 4 - } - ], - #parent : @24, - #level : 3 - }, - GrafoscopioNode { - #header : 'Animation', - #key : '', - #body : '', - #children : OrderedCollection [ ], - #parent : @24, - #level : 3 - } - ], - #parent : @2, - #level : 2 - }, - GrafoscopioNode { - #header : 'Part II - Builders', - #key : '', - #body : '', - #children : OrderedCollection [ - GrafoscopioNode { - #header : 'Builder platform', - #key : '', - #body : 'This chapter was written with the participation of Yuriy Tymchuk (yuriy.tymchuk@me.com) - -The Roassal visualization engine is a general purpose engine for visualizing data in Smalltalk-based languages. Roassal has been designed to easily map any arbitrary object structure, metrics, properties to visual dimensions. Roassal has been used in a number of software engineering and data visualization projects. - -Visualizations have symptoms similar to software: if not properly designed, a visualization is difficult to extend and reuse in a context different from the one it has been made for at the first place. In software engineering, problems traditionally associated to software reuse, composition, and extension are tremendously alleviated by employing domain-specific languages: a reduced and specialized language for a particular application domain lowers the effort of designing and maintaining software. - -Roassal has been recently extended with a new infrastructure, called builder, to efficiently build and reuse visualization. Builder follows the key principles of domain-specific languages by supporting the definition of domain-specific visualizations, i.e., visualizations tailored to a particular domain. Builder offers a set of reusable building blocks to easily define visual shapes, interaction and layout over any arbitrary domain. A builder encapsulates the logic of a visualization and maps a particular domain to visual elements.', - #children : OrderedCollection [ - GrafoscopioNode { - #header : 'Builder infrastructure', - #key : '', - #body : '', - #children : OrderedCollection [ ], - #parent : @162, - #level : 4 - }, - GrafoscopioNode { - #header : 'Defining a builder with RTBuilder', - #key : '', - #body : '', - #children : OrderedCollection [ ], - #parent : @162, - #level : 4 - }, - GrafoscopioNode { - #header : 'Specifying shapes with RTShapeBuilder', - #key : '', - #body : '', - #children : OrderedCollection [ ], - #parent : @162, - #level : 4 - }, - GrafoscopioNode { - #header : 'Specifying global properties using RTGlobalBuilder', - #key : '', - #body : '', - #children : OrderedCollection [ ], - #parent : @162, - #level : 4 - } - ], - #parent : @160, - #level : 3 - }, - GrafoscopioNode { - #header : 'Charting, Plotting and Curving using Grapher', - #key : '', - #body : '', - #children : OrderedCollection [ - GrafoscopioNode { - #header : 'Scatterplot', - #key : '', - #body : '', - #children : OrderedCollection [ - GrafoscopioNode { - #header : 'Simple chart', - #key : '', - #body : '', - #children : OrderedCollection [ ], - #parent : @174, - #level : 5 - }, - GrafoscopioNode { - #header : 'Multiple charts', - #key : '', - #body : '', - #children : OrderedCollection [ ], - #parent : @174, - #level : 5 - }, - GrafoscopioNode { - #header : 'Axis configuration', - #key : '', - #body : '', - #children : OrderedCollection [ ], - #parent : @174, - #level : 5 - } - ], - #parent : @172, - #level : 4 - }, - GrafoscopioNode { - #header : 'Curve', - #key : '', - #body : '', - #children : OrderedCollection [ - GrafoscopioNode { - #header : 'Function', - #key : '', - #body : '', - #children : OrderedCollection [ ], - #parent : @182, - #level : 5 - }, - GrafoscopioNode { - #header : 'Stacking', - #key : '', - #body : '', - #children : OrderedCollection [ ], - #parent : @182, - #level : 5 - }, - GrafoscopioNode { - #header : 'Stacking or not stacking a data set', - #key : '', - #body : '', - #children : OrderedCollection [ ], - #parent : @182, - #level : 5 - }, - GrafoscopioNode { - #header : 'Stacking multiple curve', - #key : '', - #body : '', - #children : OrderedCollection [ ], - #parent : @182, - #level : 5 - }, - GrafoscopioNode { - #header : 'Data point aspect', - #key : '', - #body : '', - #children : OrderedCollection [ ], - #parent : @182, - #level : 5 - } - ], - #parent : @172, - #level : 4 - }, - GrafoscopioNode { - #header : 'Bar', - #key : '', - #body : '', - #children : OrderedCollection [ ], - #parent : @172, - #level : 4 - }, - GrafoscopioNode { - #header : 'Interaction', - #key : '', - #body : '', - #children : OrderedCollection [ ], - #parent : @172, - #level : 4 - }, - GrafoscopioNode { - #header : 'Distribution', - #key : '', - #body : '', - #children : OrderedCollection [ ], - #parent : @172, - #level : 4 - }, - GrafoscopioNode { - #header : ' Logarithmic Scale', - #key : '', - #body : '', - #children : OrderedCollection [ ], - #parent : @172, - #level : 4 - }, - GrafoscopioNode { - #header : 'Axis Range', - #key : '', - #body : '', - #children : OrderedCollection [ ], - #parent : @172, - #level : 4 - }, - GrafoscopioNode { - #header : 'Date on the axis', - #key : '', - #body : '', - #children : OrderedCollection [ ], - #parent : @172, - #level : 4 - }, - GrafoscopioNode { - #header : 'Line Shape', - #key : '', - #body : '', - #children : OrderedCollection [ ], - #parent : @172, - #level : 4 - }, - GrafoscopioNode { - #header : 'Internal of RTCharterBuilder', - #key : '', - #body : '', - #children : OrderedCollection [ - GrafoscopioNode { - #header : 'Axis', - #key : '', - #body : '', - #children : OrderedCollection [ ], - #parent : @208, - #level : 5 - }, - GrafoscopioNode { - #header : 'Bar chart', - #key : '', - #body : '', - #children : OrderedCollection [ ], - #parent : @208, - #level : 5 - } - ], - #parent : @172, - #level : 4 - } - ], - #parent : @160, - #level : 3 - }, - GrafoscopioNode { - #header : 'MapBuilder', - #key : '', - #body : '', - #children : OrderedCollection [ ], - #parent : @160, - #level : 3 - }, - GrafoscopioNode { - #header : 'Agile Graph Building', - #key : '', - #body : '', - #children : OrderedCollection [ - GrafoscopioNode { - #header : 'Examples of Graph usage', - #key : '', - #body : '', - #children : OrderedCollection [ - GrafoscopioNode { - #header : 'Visualization of a software system', - #key : '', - #body : '| b | -b := RTGraphBuilder new. -\tb nodes if: [ :c | c inheritsFrom: RTShape ]; color: Color green. -\tb nodes if: [ :c | c inheritsFrom: RTLayout ]; color: Color yellow. -\tb nodes if: [ :c | \'TR*\' match: c name ]; color: Color purple. -\tb nodes color: Color gray. -\t -\tb edges -\t\tconnectTo: #subclasses; -\t\tuseInLayout. -\t -\tb edges -\t\tconnectTo: #dependentClasses; -\t\tfollow: #superclass; -\t\tif: [:from :to | (\'RT*\' match: from name) and: [\'TR*\' match: to name]]; -\t\tcolor: (Color blue alpha: 0.2). -\t -\tb layout cluster. - -\tb global normalizeSize: #numberOfMethods min: 5 max: 60. -\t -\tb addAll: RTObject withAllSubclasses.\t -\tb addAll: TRObject withAllSubclasses. -\tb addAll: TREvent withAllSubclasses. -\tb build', - #tags : 'código', - #children : OrderedCollection [ ], - #parent : @218, - #level : 5 - } - ], - #parent : @216, - #level : 4 - }, - GrafoscopioNode { - #header : 'Program Structure', - #key : '', - #body : '', - #children : OrderedCollection [ - GrafoscopioNode { - #header : 'Nodes', - #key : '', - #body : '', - #children : OrderedCollection [ - GrafoscopioNode { - #header : 'Visual shape', - #key : '', - #body : '', - #children : OrderedCollection [ ], - #parent : @224, - #level : 6 - }, - GrafoscopioNode { - #header : 'Scoping', - #key : '', - #body : '', - #children : OrderedCollection [ ], - #parent : @224, - #level : 6 - } - ], - #parent : @222, - #level : 5 - }, - GrafoscopioNode { - #header : 'Edges', - #key : '', - #body : '', - #children : OrderedCollection [ - GrafoscopioNode { - #header : 'Connecting', - #key : '', - #body : '', - #children : OrderedCollection [ ], - #parent : @230, - #level : 6 - }, - GrafoscopioNode { - #header : 'Directed line', - #key : '', - #body : '', - #children : OrderedCollection [ ], - #parent : @230, - #level : 6 - }, - GrafoscopioNode { - #header : 'Follow', - #key : '', - #body : '', - #children : OrderedCollection [ ], - #parent : @230, - #level : 6 - } - ], - #parent : @222, - #level : 5 - }, - GrafoscopioNode { - #header : 'Layout', - #key : '', - #body : '', - #children : OrderedCollection [ ], - #parent : @222, - #level : 5 - }, - GrafoscopioNode { - #header : 'Global rules', - #key : '', - #body : '', - #children : OrderedCollection [ - GrafoscopioNode { - #header : 'Global rule', - #key : '', - #body : '', - #children : OrderedCollection [ ], - #parent : @240, - #level : 6 - }, - GrafoscopioNode { - #header : 'Normalization', - #key : '', - #body : '', - #children : OrderedCollection [ ], - #parent : @240, - #level : 6 - } - ], - #parent : @222, - #level : 5 - } - ], - #parent : @216, - #level : 4 - }, - GrafoscopioNode { - #header : 'Chapter summary', - #key : '', - #body : '', - #children : OrderedCollection [ ], - #parent : @216, - #level : 4 - } - ], - #parent : @160, - #level : 3 - }, - GrafoscopioNode { - #header : 'TimeLine', - #key : '', - #body : '', - #children : OrderedCollection [ ], - #parent : @160, - #level : 3 - }, - GrafoscopioNode { - #header : 'Mondrian', - #key : '', - #body : '', - #children : OrderedCollection [ ], - #parent : @160, - #level : 3 - }, - GrafoscopioNode { - #header : 'Builder composition', - #key : '', - #body : '', - #children : OrderedCollection [ - GrafoscopioNode { - #header : 'Composing builders', - #key : '', - #body : '', - #children : OrderedCollection [ ], - #parent : @252, - #level : 4 - }, - GrafoscopioNode { - #header : 'Propagating events', - #key : '', - #body : '', - #children : OrderedCollection [ ], - #parent : @252, - #level : 4 - }, - GrafoscopioNode { - #header : 'Naming visualization', - #key : '', - #body : '', - #children : OrderedCollection [ ], - #parent : @252, - #level : 4 - }, - GrafoscopioNode { - #header : 'World population Example', - #key : '', - #body : '', - #children : OrderedCollection [ ], - #parent : @252, - #level : 4 - } - ], - #parent : @160, - #level : 3 - } - ], - #parent : @2, - #level : 2 - }, - GrafoscopioNode { - #header : 'Part III - Applications', - #key : '', - #body : '', - #children : OrderedCollection [ - GrafoscopioNode { - #header : 'Epidemiological Modeling with Kendrick', - #key : '', - #body : '', - #children : OrderedCollection [ ], - #parent : @262, - #level : 3 - }, - GrafoscopioNode { - #header : 'Microprint', - #key : '', - #body : '', - #children : OrderedCollection [ ], - #parent : @262, - #level : 3 - }, - GrafoscopioNode { - #header : 'AstroCloud', - #key : '', - #body : '', - #children : OrderedCollection [ ], - #parent : @262, - #level : 3 - }, - GrafoscopioNode { - #header : 'Analyzing Tweets', - #key : '', - #body : '', - #children : OrderedCollection [ ], - #parent : @262, - #level : 3 - }, - GrafoscopioNode { - #header : 'Genetic Algorithm', - #key : '', - #body : '', - #children : OrderedCollection [ ], - #parent : @262, - #level : 3 - }, - GrafoscopioNode { - #header : 'OpenStreeMap', - #key : '', - #body : '', - #children : OrderedCollection [ - GrafoscopioNode { - #header : 'Moving the camera to particular locations', - #key : '', - #body : '', - #children : OrderedCollection [ ], - #parent : @274, - #level : 4 - }, - GrafoscopioNode { - #header : 'Decorating the map', - #key : '', - #body : '', - #children : OrderedCollection [ ], - #parent : @274, - #level : 4 - }, - GrafoscopioNode { - #header : 'Getting country location', - #key : '', - #body : '', - #children : OrderedCollection [ ], - #parent : @274, - #level : 4 - } - ], - #parent : @262, - #level : 3 - } - ], - #parent : @2, - #level : 2 - } - ], - #parent : GrafoscopioNode { - #header : 'Arbol principal', - #key : '', - #body : '', - #children : @1, - #level : 0, - #nodesInPreorder : OrderedCollection [ - @282, - @2, - @4, - @6, - @8, - @10, - @12, - @14, - @16, - @18, - @20, - @22, - @24, - @26, - @28, - @30, - @32, - @34, - @36, - @38, - @40, - @42, - @44, - @46, - @48, - @50, - @52, - @54, - @56, - @58, - @60, - @62, - @64, - @66, - @68, - @70, - @72, - @74, - @76, - @78, - @80, - @82, - @84, - @86, - @88, - @90, - @92, - @94, - @96, - @98, - @100, - @102, - @104, - @106, - @108, - @110, - @112, - @114, - @116, - @118, - @120, - @122, - @124, - @126, - @128, - @130, - @132, - @134, - @136, - @138, - @140, - @142, - @144, - @146, - @148, - @150, - @152, - @154, - @156, - @158, - @160, - @162, - @164, - @166, - @168, - @170, - @172, - @174, - @176, - @178, - @180, - @182, - @184, - @186, - @188, - @190, - @192, - @194, - @196, - @198, - @200, - @202, - @204, - @206, - @208, - @210, - @212, - @214, - @216, - @218, - @220, - @222, - @224, - @226, - @228, - @230, - @232, - @234, - @236, - @238, - @240, - @242, - @244, - @246, - @248, - @250, - @252, - @254, - @256, - @258, - @260, - @262, - @264, - @266, - @268, - @270, - @272, - @274, - @276, - @278, - @280 - ] - }, - #level : 1 - } -] DELETED Docs/En/Licenses/LICENSE-Pure-CSS.md Index: Docs/En/Licenses/LICENSE-Pure-CSS.md ================================================================== --- Docs/En/Licenses/LICENSE-Pure-CSS.md +++ Docs/En/Licenses/LICENSE-Pure-CSS.md @@ -1,29 +0,0 @@ -Software License Agreement (BSD License) -======================================== - -Copyright 2013 Yahoo! Inc. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - - * Neither the name of the Yahoo! Inc. nor the - names of its contributors may be used to endorse or promote products - derived from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL YAHOO! INC. BE LIABLE FOR ANY -DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. DELETED Docs/En/Licenses/README-Pure-CSS.md Index: Docs/En/Licenses/README-Pure-CSS.md ================================================================== --- Docs/En/Licenses/README-Pure-CSS.md +++ Docs/En/Licenses/README-Pure-CSS.md @@ -1,16 +0,0 @@ -Pure CSS Layout Examples -======================== - -Layout examples using [Pure CSS][pure] compiled from the [pure-site][] project. - -[pure]: http://purecss.io/ -[pure-site]: https://github.com/yahoo/pure-site - - -License -------- - -This software is free to use under the Yahoo! Inc. BSD license. -See the [LICENSE file][] for license text and copyright information. - -[LICENSE file]: https://github.com/yahoo/pure-site/blob/master/LICENSE.md DELETED Docs/En/Talks/ESUG2016/grafoscopio-ESUG-2016-data-selfies.png Index: Docs/En/Talks/ESUG2016/grafoscopio-ESUG-2016-data-selfies.png ================================================================== --- Docs/En/Talks/ESUG2016/grafoscopio-ESUG-2016-data-selfies.png +++ Docs/En/Talks/ESUG2016/grafoscopio-ESUG-2016-data-selfies.png cannot compute difference between binary files DELETED Docs/En/Talks/ESUG2016/grafoscopio-ESUG-2016.mm Index: Docs/En/Talks/ESUG2016/grafoscopio-ESUG-2016.mm ================================================================== --- Docs/En/Talks/ESUG2016/grafoscopio-ESUG-2016.mm +++ Docs/En/Talks/ESUG2016/grafoscopio-ESUG-2016.mm @@ -1,234 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

- -

-

- Although often considered as a pejorative, the term is also used self-referentially without malice or as a source of pride. Its meaning has evolved to refer to "someone who is interested in a subject (usually intellectual or complex) for its own sake". -

-

- -

-

- Geek - Wikipedia -

- - -
- - - - - - - - - - - - - - - -
-
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
DELETED Docs/En/Talks/ESUG2016/grafoscopio-ESUG-2016.png Index: Docs/En/Talks/ESUG2016/grafoscopio-ESUG-2016.png ================================================================== --- Docs/En/Talks/ESUG2016/grafoscopio-ESUG-2016.png +++ Docs/En/Talks/ESUG2016/grafoscopio-ESUG-2016.png cannot compute difference between binary files DELETED Docs/En/Talks/ESUG2016/grafoscopio-ESUG-2016.svg Index: Docs/En/Talks/ESUG2016/grafoscopio-ESUG-2016.svg ================================================================== --- Docs/En/Talks/ESUG2016/grafoscopio-ESUG-2016.svg +++ Docs/En/Talks/ESUG2016/grafoscopio-ESUG-2016.svg @@ -1,16161 +0,0 @@ - - -GrafoscopioESUG 2016How do wechangethe toolsthat change us?The practices( we + tools + context + ... )Data WeekLooking for numeracy(not only BIG fancy DATA)making sense = numbers + contextNew extra curriculum/supportMailing listPharo MOOCDiverse peoplebackgroundsPhilology studentsJournalistsPhilosophers(Mostly newbie) Programmers(like myself)Librarian4 editionsin almost 1 yearLong Week hackathon/workshopThe toolsGrafoscopioDoc RepositoryST RepositoryHome pageDatavizweLocal hackerspace( Bogotá - Colombia )But beyond your usual "geek/nerd"(i.e. The programmer)Let's bring more geeksActivismTwitter Data SelfiesJournalismPanama Paper & Reproducible ResearchHealthDSL for public health infoHackBohackbo.co DELETED Docs/En/Talks/ESUG2016/grafoscopio-ESUG-2016_2217518226715232305.png Index: Docs/En/Talks/ESUG2016/grafoscopio-ESUG-2016_2217518226715232305.png ================================================================== --- Docs/En/Talks/ESUG2016/grafoscopio-ESUG-2016_2217518226715232305.png +++ Docs/En/Talks/ESUG2016/grafoscopio-ESUG-2016_2217518226715232305.png cannot compute difference between binary files DELETED Docs/En/Talks/ESUG2016/grafoscopio-ESUG-2016_5968308155747760333.png Index: Docs/En/Talks/ESUG2016/grafoscopio-ESUG-2016_5968308155747760333.png ================================================================== --- Docs/En/Talks/ESUG2016/grafoscopio-ESUG-2016_5968308155747760333.png +++ Docs/En/Talks/ESUG2016/grafoscopio-ESUG-2016_5968308155747760333.png cannot compute difference between binary files DELETED Docs/En/Talks/ESUG2016/grafoscopio-people1.png Index: Docs/En/Talks/ESUG2016/grafoscopio-people1.png ================================================================== --- Docs/En/Talks/ESUG2016/grafoscopio-people1.png +++ Docs/En/Talks/ESUG2016/grafoscopio-people1.png cannot compute difference between binary files DELETED Docs/En/Talks/ESUG2016/people2.png Index: Docs/En/Talks/ESUG2016/people2.png ================================================================== --- Docs/En/Talks/ESUG2016/people2.png +++ Docs/En/Talks/ESUG2016/people2.png cannot compute difference between binary files DELETED Docs/En/Talks/grafoscopio-map-en.xmind Index: Docs/En/Talks/grafoscopio-map-en.xmind ================================================================== --- Docs/En/Talks/grafoscopio-map-en.xmind +++ Docs/En/Talks/grafoscopio-map-en.xmind cannot compute difference between binary files DELETED Docs/En/Talks/grafoscopio-talk-map.png Index: Docs/En/Talks/grafoscopio-talk-map.png ================================================================== --- Docs/En/Talks/grafoscopio-talk-map.png +++ Docs/En/Talks/grafoscopio-talk-map.png cannot compute difference between binary files DELETED Docs/En/dev-notes.ston Index: Docs/En/dev-notes.ston ================================================================== --- Docs/En/dev-notes.ston +++ Docs/En/dev-notes.ston @@ -1,591 +0,0 @@ -OrderedCollection [ - GrafoscopioNode { - #header : 'Kanban', - #key : '', - #body : '', - #children : OrderedCollection [ - GrafoscopioNode { - #header : 'To do', - #key : '', - #body : '', - #children : OrderedCollection [ - GrafoscopioNode { - #header : 'New introductory mind map in free plane instead of Xmind', - #key : '', - #body : 'The usual mind map is done in Xmind, which gives nice backgrounds and layouts, -but the new ribbon interface uses a lot of screen\'s real state and its unconfortable for -presentations (the presentation mode is something you need to pay) while freeplane -has a cleaner interface a better keyboard and mouse ergonomy that is pretty useful -in presentations. ', - #children : OrderedCollection [ ], - #parent : @4, - #level : 3 - }, - GrafoscopioNode { - #header : 'Real tags support', - #key : '', - #body : 'For historical reasons, tags only stores a single word: \'código\' (code) or nothing, -because it was the simpliest thing that could work for the shorter amount of time -for the first deliverable in Grafoscopio (that was an article about the need of such tool, -write in itself :-P). - -Now we have time, need & knowledge for a full set of programable tags (as said in the referred article), -starting with link/url tag, that lets Grafoscopio to load such links in the web browser when the -node containing them is doble clicked. - -Links would work in a similar way to Leo: a node mark as link should contain a valid link in its -header or in the first line of its body and when doble clicked such link is loaded in current browser.', - #children : OrderedCollection [ ], - #parent : @4, - #level : 3 - }, - GrafoscopioNode { - #header : 'Small videos', - #key : '', - #body : '', - #children : OrderedCollection [ - GrafoscopioNode { - #header : 'New feature: Sharing Smalltalk workspaces', - #key : '', - #body : 'Script: -Two persons are collaborating in and etherpad or chat room. -One of them shares a workspace url and the other copies this -into a new node header and press Enter and the workspace becomes -avaible to her/him automatically.', - #children : OrderedCollection [ ], - #parent : @10, - #level : 4 - }, - GrafoscopioNode { - #header : 'Switching from text nodes to code nodes', - #key : '', - #body : '', - #children : OrderedCollection [ ], - #parent : @10, - #level : 4 - } - ], - #parent : @4, - #level : 3 - }, - GrafoscopioNode { - #header : 'Interface icons', - #key : '', - #body : 'A visual way to recognize the nature of a node in the left tree: is code?, is text?, is invisible?, is a task?, how advanced? is a link? is an idea?and so on.', - #children : OrderedCollection [ ], - #parent : @4, - #level : 3 - }, - GrafoscopioNode { - #header : 'Syntax highlighting for markdown text nodes', - #key : '', - #body : '', - #children : OrderedCollection [ ], - #parent : @4, - #level : 3 - }, - GrafoscopioNode { - #header : 'Collaborative documentation', - #key : '', - #body : 'With the new introduction of shared workspaces, it is possible to have collaborative -documentation in \"semi-real\" time: two collaborators are in the same etherpad and -share the workspace url so they can paste it in their respective notebook and have -interactive documents that have the same interactive code inside their nodes. - -The following document explores this possibility, using etherpads, but may be a native -p2p protocol for shaing these notebook can be implemented using some native smalltalk -protocol. - -This can be extended to the entire notebook in a \"low tech\" fashion: - - - Two colaborators share and etherpad and are writing the same structured document using - [visdown](http://visdown.amitkaps.com/) markdown variant, which lets them write - structured documents with embeded code/visuals inside. - - The etherpad url is pasted in a Grafoscopio node header and then is processed as an - special url, which means: - - The contents of the etherpad are downloaded. - - [yaml.js](https://github.com/jeremyfa/yaml.js) converts the markdown into JSON using - yaml2json. - - Grafoscopio imports the json structure and converts it into a notebook. - -Note to self: visdown is similar to the idea of yaml + markdown explored with the -brea prototype.', - #children : OrderedCollection [ ], - #parent : @4, - #level : 3 - }, - GrafoscopioNode { - #header : 'Export to pdf', - #key : '', - #body : 'Now exportation is available via pandoc using the exported makrdown fiel from a command, -which, for a nice output can be something as complex as: - -pandoc --latex-engine=lualatex -H preamble.tex -V fontsize=12pt -V documentclass:book -V papersize:letter -V classoption:openright --chapters exported.markdown -o \"exported.pdf\" --bibliography bibliografia.bib --csl csl/apa.csl - -A nice default output should be available from GUI, hidding unnecessary details, but giving -the flexibility to adjust the output as desired.', - #children : OrderedCollection [ ], - #parent : @4, - #level : 3 - }, - GrafoscopioNode { - #header : 'Fossil support', - #key : '', - #body : 'Distribute collaboration with permissions and history should be supported using [fossil](http://fossil-scm.org/). -For this a fossil repository should be administered from Grafoscopio, -This repository could include notebooks and external files like exported or imported -images (png, jpeg), bibliographic files (bibtex, json) and styles (CSL) and related artifacts -for pdf and web (LaTeX styles and templates, pdf outputs, etc) ', - #children : OrderedCollection [ ], - #parent : @4, - #level : 3 - }, - GrafoscopioNode { - #header : 'Sharing node publishing history?', - #key : '', - #body : 'TO BE EVALUATED - -If a node, for example a playground, is imported/exported on-line, you could track the history -of this node and its transformations via succesive imports/exports. -So a collection of urls and operations (import/export) are stored as part of the node and -thus part of the notebook.', - #children : OrderedCollection [ ], - #parent : @4, - #level : 3 - }, - GrafoscopioNode { - #header : 'Installing external apps?', - #key : '', - #body : 'For a fluid working, Grafoscopio relies on external apps, which are not available from Pharo because -they\'re not native apps: - - - pandoc: for document formats conversions - - fossil: for project collaboration and history - - SQLite: for tabular data manipulations (i.e: Panama Papers interative notebook). - - LaTeX: for pdf exportation - -Except for LaTeX, they\'re simple, self contained packages that can be installed easily in the main -Pharo Platforms: Windows, Gnu/Linux & Mac. -Some support has being done for automatic installation of such packages, but this should be -explored and improved, using distro neutral systems like Nix package manager Linux & Mac, -and maybe something similar for Windows (chocolatey?, conda?).', - #children : OrderedCollection [ ], - #parent : @4, - #level : 3 - }, - GrafoscopioNode { - #header : 'Node cache & edition undo/redo', - #key : '', - #body : 'Now nodes are added and deleted without any possibility of undo. -Also there is not possibility of copying and pasting nodes in the same -notebook or between notebooks. -This possiblities should be implemented.', - #children : OrderedCollection [ ], - #parent : @4, - #level : 3 - }, - GrafoscopioNode { - #header : 'Subnode extraction (a la Leo)', - #key : '', - #body : '[Leo editor](http://leoeditor.com/) includes the possiblity to mark a part of a node and made it -a subnode of the current one, with the node body contents being populated by the marked part, -and the node header something between special marks. -A similar feature would be very useful in Grafoscopio to structure the documents and its internals, -splitting big node bodies into smaller children nodes, that compose the bigger one (the parent).', - #children : OrderedCollection [ ], - #parent : @4, - #level : 3 - } - ], - #parent : @2, - #level : 2 - }, - GrafoscopioNode { - #header : 'Doing...', - #key : '', - #body : '', - #children : OrderedCollection [ - GrafoscopioNode { - #header : 'Increasing / Decreasing font sizes for text nodes', - #key : '', - #body : '', - #children : OrderedCollection [ - GrafoscopioNode { - #header : 'Exploring Doru\'s Pillar editor', - #key : '', - #body : '', - #tags : '', - #children : OrderedCollection [ - GrafoscopioNode { - #header : 'Installing', - #key : '', - #body : 'Gofer new - smalltalkhubUser: \'Pier\' project: \'Pillar\'; - configuration; - loadDevelopment.', - #tags : 'código', - #children : OrderedCollection [ ], - #parent : @38, - #level : 5 - }, - GrafoscopioNode { - #header : 'Using', - #key : '', - #body : '(FileLocator home / \'Programas\' / \'Pharo\' / \'Docs\' / \'UpdatedPharoByExample\') asFileReference ', - #tags : 'código', - #children : OrderedCollection [ ], - #parent : @38, - #level : 5 - } - ], - #parent : @36, - #level : 4 - }, - GrafoscopioNode { - #header : 'Exploring Stephan Eggermont\'s CodePanel', - #key : '', - #body : '', - #children : OrderedCollection [ ], - #parent : @36, - #level : 4 - } - ], - #parent : @34, - #level : 3 - }, - GrafoscopioNode { - #header : 'Update documentation', - #key : '', - #body : ' - [X] Instation of documentation should work using fossil JSON views instead of the current - implementation with metadata that needs to be filled manually. - - [ ] Installation of documentation shoud be done automatically with the installation of Grafoscopio. ', - #children : OrderedCollection [ ], - #parent : @34, - #level : 3 - }, - GrafoscopioNode { - #header : 'Update installation to latest versions', - #key : '', - #body : 'The catalog installation of Grafoscopio and Dataviz packages, should load the last stable versions -of them, which include: - - [X] New Spec-Glamour GUI: Read + Execute & Write. - - [ - ] Dataviz package with Twitter Data Selfies. (Dataviz 1.0 works but update to last version must - be done manually still.', - #children : OrderedCollection [ - GrafoscopioNode { - #header : '[ ] Peter\'s new file dialog.', - #key : '', - #body : 'A new file dialog for Pharo. For details see: - -https://github.com/peteruhnak/file-dialog', - #tags : '', - #children : OrderedCollection [ - GrafoscopioNode { - #header : 'Installation', - #key : '', - #body : 'Metacello new - baseline: \'FileDialog\'; - repository: \'github://peteruhnak/file-dialog/repository\'; - load.', - #tags : 'código', - #children : OrderedCollection [ ], - #parent : @50, - #level : 5 - }, - GrafoscopioNode { - #header : 'newNode', - #key : '', - #body : '', - #children : OrderedCollection [ ], - #parent : @50, - #level : 5 - }, - GrafoscopioNode { - #header : 'Opening the file dialog', - #key : '', - #body : '\"This opens the new file dialog \" -UIManager default chooseFileMatching: #(\'*.ston\')', - #tags : 'código', - #children : OrderedCollection [ ], - #parent : @50, - #level : 5 - } - ], - #parent : @48, - #level : 4 - } - ], - #parent : @34, - #level : 3 - } - ], - #parent : @2, - #level : 2 - }, - GrafoscopioNode { - #header : 'Done', - #key : '', - #body : '', - #children : OrderedCollection [ - GrafoscopioNode { - #header : 'Auto-selection', - #key : '', - #body : 'This was an strategy explored to work with the notebook refresh. -The code was getting complicated and a simpler one was implemented, where -the new nodes are not auto-selected, but have to be selected by hand. -At some point this cold be retaken, but for now the current strategy is working.', - #children : OrderedCollection [ - GrafoscopioNode { - #header : 'Launching test notebook', - #key : '', - #body : '| testTree nb | -testTree := GrafoscopioNode new becomeDefaultTestTree. -nb := GrafoscopioNotebook new. -nb notebook: testTree; - notebookContent: testTree. -nb openWithSpec.', - #tags : 'código', - #children : OrderedCollection [ ], - #parent : @60, - #level : 2 - }, - GrafoscopioNode { - #header : 'Launching & inspecting text notebook', - #key : '', - #body : '| testTree nb nodeContent parentNode | -testTree := GrafoscopioNode new becomeDefaultTestTree. -nb := GrafoscopioNotebook new. -nb notebook: testTree; - notebookContent: testTree. -nb openWithSpec. -nodeContent := (testTree children at: 1) children at: 1. -parentNode := nb tree roots at: 1. -nb highlightItemContaining: nodeContent andParent: parentNode ', - #tags : 'código', - #children : OrderedCollection [ ], - #parent : @60, - #level : 2 - }, - GrafoscopioNode { - #header : 'Nicolai\'s example', - #key : '', - #body : '|t nodeBlock | -nodeBlock:= [:class | |node| - node := TreeNodeModel new. - node hasChildren:[ class subclasses isEmpty not]. - node children: [class subclasses collect:[:subclass | nodeBlock value: subclass]]. - node content: class]. -t:=TreeModel new. -t roots: (Morph subclasses collect:[:class | nodeBlock value:class]). -t whenBuiltDo:[ t selectedItem:( t roots first selected:true;takeHighlight;yourself)]. -t openWithSpec -', - #tags : 'código', - #children : OrderedCollection [ ], - #parent : @60, - #level : 2 - } - ], - #parent : @58, - #level : 3 - } - ], - #parent : @2, - #level : 2 - } - ], - #parent : GrafoscopioNode { - #header : 'Arbol principal', - #key : '', - #body : '', - #children : @1, - #level : 0, - #nodesInPreorder : OrderedCollection [ - @68, - @2, - @4, - @6, - @8, - @10, - @12, - @14, - @16, - @18, - @20, - @22, - @24, - @26, - @28, - @30, - @32, - @34, - @36, - @38, - @40, - @42, - @44, - @46, - @48, - @50, - @52, - @54, - @56, - @58, - @60, - @62, - @64, - @66, - GrafoscopioNode { - #header : 'Twitter Data selfies', - #key : '', - #body : '', - #children : OrderedCollection [ - GrafoscopioNode { - #header : 'Metrics for retweeted avatars', - #key : '', - #body : '\"The graphic with squares with area proportional to mentions\" -| storage p v s es | -storage := (FileLocator temp / \'iprofiles.fuel\') asFileReference. -p := TwitterProfileOverview new materializeIProfilesFrom: storage. -v := RTView new. -s := (RTBox new -\t\tsize: [:m | m tweets sqrtFloor * 20 ]) + (RTLabel text: [:m | m tweets]). -es := s elementsOn: (p interactionProfiles). -es @ RTPopup. -v addAll: es. -RTFlowLayout on: es. -v', - #tags : 'código', - #children : OrderedCollection [ ], - #parent : @70, - #level : 3 - }, - GrafoscopioNode { - #header : 'Avatars around and arc', - #key : '', - #body : '\"This is to get some of the Twitter Data Selfies image at...\" -| storage p c avatars avts1 avts2 els arc | -storage := (FileLocator temp / \'iprofiles.fuel\') asFileReference. -p := TwitterProfileOverview new materializeIProfilesFrom: storage. -avatars := (p interactionProfiles copyFrom: 1 to: 20) -\tcollect: [ :e | (TRBitmapShape new form: e avatar) scaleBy: e tweets sqrtFloor * 4]. -avts1 := avatars copyFrom: 1 to: 5. -avts2 := avatars copyFrom: 6 to: 20. -c := TRCanvas new. -\"Composition\" -arc := TRArcShape new alphaAngle: 20 betaAngle: 220 innerRadius: 7450 externalRadius: 7750; color: Color lightGray. -arc I -\tsurroundedBy: avts2 radialGap: 1900 angularGap: 5 renderedIn: c; -\tsurroundedBy: avts1 radialGap: 6200 angularGap: 140 renderedIn: c.', - #tags : 'código', - #children : OrderedCollection [ ], - #parent : @70, - #level : 3 - }, - GrafoscopioNode { - #header : 'Serializing tweets dataviz with fuel to hard disk', - #key : '', - #body : '| tweetsJSON p storage | -tweetsJSON := (FileLocator documents / \'Bio/Twitter-offrayLC/2/data/js/tweets/2016_06.js\') asFileReference. -p := TwitterProfileOverview new. -p splitMessagesByTypeFrom: tweetsJSON. -storage := (FileLocator temp / \'iprofiles.fuel\') asFileReference. -p putTweetsOnInteractionProfiles. -[p putAvatarsOnInteractionProfiles. -p serializeIProfilesTo: storage ] fork', - #tags : 'código', - #children : OrderedCollection [ ], - #parent : @70, - #level : 3 - } - ], - #parent : @68, - #level : 1 - }, - @72, - @74, - @76, - GrafoscopioNode { - #header : 'Random', - #key : '', - #body : '', - #children : OrderedCollection [ - GrafoscopioNode { - #header : 'Theming / Visual Candy', - #key : '', - #body : '', - #children : OrderedCollection [ - GrafoscopioNode { - #header : 'Changing the background image', - #key : '', - #body : '| backgrounds | -\"Nice images to choose from\" -backgrounds := Dictionary new. -backgrounds := -\t{\'pharo\' -> \'http://orig09.deviantart.net/6eb6/f/2016/161/1/f/omnos_the_black_sky_noir_style_hdr_wallpaper_by_charlie_henson-da5oxs0.png\'. -\t\'portal\' -> \'http://orig13.deviantart.net/e8d3/f/2013/092/a/3/glados_s_activation_by_first9-d605rwi.jpg\'. -\t\'ship\' -> \'http://orig01.deviantart.net/9647/f/2014/074/e/4/union_class_super_dreadnought_by_emperormyric-d6qw3im.png\'. -\t\'dock\' -> \'http://www.fullhdwpp.com/wp-content/uploads/Impressive-Clouds-over-the-Dock_www.FullHDWpp.com_www.FullHDWpp.com_.jpg\'. -\t\'fluid\' -> \'http://www.fullhdwpp.com/wp-content/uploads/Colorful-Water-Ink-Painting_www.FullHDWpp.com_.jpg\'. -\t\'nightBeach\' -> \'http://orig00.deviantart.net/4f98/f/2016/208/3/8/watching_the_change_noir_style_wallpaper_by_charlie_henson-dabjbyi.png\'. -\t\'worldMap\' -> \'http://wallpapersonthe.net/wallpapers/b/3840x2400/3840x2400-map_time_infographics_world_time_zones-21181.jpg\'. -\t\'tron\' -> \'http://cdn.wallpapersafari.com/14/60/agZyEq.jpg\'} asDictionary. - -World - backgroundImage: (ImageReadWriter formFromStream: -\t\t\t(ZnEasy get: (backgrounds at: \'tron\') ) contents readStream) - layout: #scaled.', - #tags : 'código', - #children : OrderedCollection [ ], - #parent : @80, - #level : 3 - }, - GrafoscopioNode { - #header : 'Switching to the dark theme', - #key : '', - #body : 'Pharo3DarkTheme beCurrent ', - #tags : 'código', - #children : OrderedCollection [ ], - #parent : @80, - #level : 3 - }, - GrafoscopioNode { - #header : 'Reloading/updating the Grafoscopio docking bar', - #key : '', - #body : 'GrafoscopioGUI updateUI ', - #tags : 'código', - #children : OrderedCollection [ ], - #parent : @80, - #level : 3 - } - ], - #parent : @78, - #level : 2 - }, - GrafoscopioNode { - #header : 'Autocompletion of text fields', - #key : '', - #body : 'TextInputFieldModel new -\tenableGlobalsCompletion; -\topenWithSpec', - #tags : 'código', - #children : OrderedCollection [ ], - #parent : @78, - #level : 2 - } - ], - #parent : @68, - #level : 1 - }, - @80, - @82, - @84, - @86, - @88 - ] - }, - #level : 1 - }, - @70, - @78 -] DELETED Docs/En/offray's-dev-notes.markdown Index: Docs/En/offray's-dev-notes.markdown ================================================================== --- Docs/En/offray's-dev-notes.markdown +++ Docs/En/offray's-dev-notes.markdown @@ -1,50 +0,0 @@ -# Offray's development notes - -This file contains some development notes to myself. -At the beginning the notes were stored on the grafoscopio manual, but the file become big -and here I can separate the documentation by its intended user. - -## Graphical Interface - - - -### Spec Interface - -Here I will try to develop the Spec interface for grafoscopio. -Spec seems more general to the develper and familiar to the user that GT-Tools -for building interfaces. - -### Changing the default icons - - - -### Spec documentation - -This are just some parts taken from to understand Spec better. - -#### Quick Start - - - -#### Example - - - -### Icons - -See the zotero Icons subcollection for grafoscpio at [1], specially the Smallworks and Smalltalkhub related items. - -[1] https://www.zotero.org/groups/diseo_y_creacion_phd_msc_universidad_de_caldas/items/collectionKey/R2K2EHFQ - -#### Icon Factory - -See http://smalltalkhub.com/#!/~peteruhnak/IconFactory for details. - -##### Loading the Icons and Creating Selectors - - - -##### Using the icons - - - DELETED Docs/En/offray's-dev-notes.ston Index: Docs/En/offray's-dev-notes.ston ================================================================== --- Docs/En/offray's-dev-notes.ston +++ Docs/En/offray's-dev-notes.ston cannot compute difference between binary files DELETED Docs/Es/Articulos/Libertadores/Figuras/abstract-biligue.png Index: Docs/Es/Articulos/Libertadores/Figuras/abstract-biligue.png ================================================================== --- Docs/Es/Articulos/Libertadores/Figuras/abstract-biligue.png +++ Docs/Es/Articulos/Libertadores/Figuras/abstract-biligue.png cannot compute difference between binary files DELETED Docs/Es/Articulos/Libertadores/Figuras/arbol-ayuda-pharo.png Index: Docs/Es/Articulos/Libertadores/Figuras/arbol-ayuda-pharo.png ================================================================== --- Docs/Es/Articulos/Libertadores/Figuras/arbol-ayuda-pharo.png +++ Docs/Es/Articulos/Libertadores/Figuras/arbol-ayuda-pharo.png cannot compute difference between binary files DELETED Docs/Es/Articulos/Libertadores/Figuras/arbol-bosquejo-inicial-escrito.png Index: Docs/Es/Articulos/Libertadores/Figuras/arbol-bosquejo-inicial-escrito.png ================================================================== --- Docs/Es/Articulos/Libertadores/Figuras/arbol-bosquejo-inicial-escrito.png +++ Docs/Es/Articulos/Libertadores/Figuras/arbol-bosquejo-inicial-escrito.png cannot compute difference between binary files DELETED Docs/Es/Articulos/Libertadores/Figuras/arbol-de-pruebas-en-codigo.png Index: Docs/Es/Articulos/Libertadores/Figuras/arbol-de-pruebas-en-codigo.png ================================================================== --- Docs/Es/Articulos/Libertadores/Figuras/arbol-de-pruebas-en-codigo.png +++ Docs/Es/Articulos/Libertadores/Figuras/arbol-de-pruebas-en-codigo.png cannot compute difference between binary files DELETED Docs/Es/Articulos/Libertadores/Figuras/arbol-detalle.png Index: Docs/Es/Articulos/Libertadores/Figuras/arbol-detalle.png ================================================================== --- Docs/Es/Articulos/Libertadores/Figuras/arbol-detalle.png +++ Docs/Es/Articulos/Libertadores/Figuras/arbol-detalle.png cannot compute difference between binary files DELETED Docs/Es/Articulos/Libertadores/Figuras/articulo-pdf.png Index: Docs/Es/Articulos/Libertadores/Figuras/articulo-pdf.png ================================================================== --- Docs/Es/Articulos/Libertadores/Figuras/articulo-pdf.png +++ Docs/Es/Articulos/Libertadores/Figuras/articulo-pdf.png cannot compute difference between binary files DELETED Docs/Es/Articulos/Libertadores/Figuras/autoactualizacion-en-navegador-minimalista-panel-actualizado.png Index: Docs/Es/Articulos/Libertadores/Figuras/autoactualizacion-en-navegador-minimalista-panel-actualizado.png ================================================================== --- Docs/Es/Articulos/Libertadores/Figuras/autoactualizacion-en-navegador-minimalista-panel-actualizado.png +++ Docs/Es/Articulos/Libertadores/Figuras/autoactualizacion-en-navegador-minimalista-panel-actualizado.png cannot compute difference between binary files DELETED Docs/Es/Articulos/Libertadores/Figuras/autoactualizacion-en-navegador-minimalista-panel-original.png Index: Docs/Es/Articulos/Libertadores/Figuras/autoactualizacion-en-navegador-minimalista-panel-original.png ================================================================== --- Docs/Es/Articulos/Libertadores/Figuras/autoactualizacion-en-navegador-minimalista-panel-original.png +++ Docs/Es/Articulos/Libertadores/Figuras/autoactualizacion-en-navegador-minimalista-panel-original.png cannot compute difference between binary files DELETED Docs/Es/Articulos/Libertadores/Figuras/autoactualizacion-en-navegador-minimalista.png Index: Docs/Es/Articulos/Libertadores/Figuras/autoactualizacion-en-navegador-minimalista.png ================================================================== --- Docs/Es/Articulos/Libertadores/Figuras/autoactualizacion-en-navegador-minimalista.png +++ Docs/Es/Articulos/Libertadores/Figuras/autoactualizacion-en-navegador-minimalista.png cannot compute difference between binary files DELETED Docs/Es/Articulos/Libertadores/Figuras/autorretrato-metodos-con-fecha.png Index: Docs/Es/Articulos/Libertadores/Figuras/autorretrato-metodos-con-fecha.png ================================================================== --- Docs/Es/Articulos/Libertadores/Figuras/autorretrato-metodos-con-fecha.png +++ Docs/Es/Articulos/Libertadores/Figuras/autorretrato-metodos-con-fecha.png cannot compute difference between binary files DELETED Docs/Es/Articulos/Libertadores/Figuras/codigo-fuente-historia-repo.png Index: Docs/Es/Articulos/Libertadores/Figuras/codigo-fuente-historia-repo.png ================================================================== --- Docs/Es/Articulos/Libertadores/Figuras/codigo-fuente-historia-repo.png +++ Docs/Es/Articulos/Libertadores/Figuras/codigo-fuente-historia-repo.png cannot compute difference between binary files DELETED Docs/Es/Articulos/Libertadores/Figuras/codigo-fuente-rebrand-historia-repo.png Index: Docs/Es/Articulos/Libertadores/Figuras/codigo-fuente-rebrand-historia-repo.png ================================================================== --- Docs/Es/Articulos/Libertadores/Figuras/codigo-fuente-rebrand-historia-repo.png +++ Docs/Es/Articulos/Libertadores/Figuras/codigo-fuente-rebrand-historia-repo.png cannot compute difference between binary files DELETED Docs/Es/Articulos/Libertadores/Figuras/community-asking.jpg Index: Docs/Es/Articulos/Libertadores/Figuras/community-asking.jpg ================================================================== --- Docs/Es/Articulos/Libertadores/Figuras/community-asking.jpg +++ Docs/Es/Articulos/Libertadores/Figuras/community-asking.jpg cannot compute difference between binary files DELETED Docs/Es/Articulos/Libertadores/Figuras/consola-interactiva.jpg Index: Docs/Es/Articulos/Libertadores/Figuras/consola-interactiva.jpg ================================================================== --- Docs/Es/Articulos/Libertadores/Figuras/consola-interactiva.jpg +++ Docs/Es/Articulos/Libertadores/Figuras/consola-interactiva.jpg cannot compute difference between binary files DELETED Docs/Es/Articulos/Libertadores/Figuras/escrito-historia.png Index: Docs/Es/Articulos/Libertadores/Figuras/escrito-historia.png ================================================================== --- Docs/Es/Articulos/Libertadores/Figuras/escrito-historia.png +++ Docs/Es/Articulos/Libertadores/Figuras/escrito-historia.png cannot compute difference between binary files DELETED Docs/Es/Articulos/Libertadores/Figuras/interface-grafoscopio.png Index: Docs/Es/Articulos/Libertadores/Figuras/interface-grafoscopio.png ================================================================== --- Docs/Es/Articulos/Libertadores/Figuras/interface-grafoscopio.png +++ Docs/Es/Articulos/Libertadores/Figuras/interface-grafoscopio.png cannot compute difference between binary files DELETED Docs/Es/Articulos/Libertadores/Figuras/interface-nodos-recursivos.jpg Index: Docs/Es/Articulos/Libertadores/Figuras/interface-nodos-recursivos.jpg ================================================================== --- Docs/Es/Articulos/Libertadores/Figuras/interface-nodos-recursivos.jpg +++ Docs/Es/Articulos/Libertadores/Figuras/interface-nodos-recursivos.jpg cannot compute difference between binary files DELETED Docs/Es/Articulos/Libertadores/Figuras/intro-lado-lado.jpg Index: Docs/Es/Articulos/Libertadores/Figuras/intro-lado-lado.jpg ================================================================== --- Docs/Es/Articulos/Libertadores/Figuras/intro-lado-lado.jpg +++ Docs/Es/Articulos/Libertadores/Figuras/intro-lado-lado.jpg cannot compute difference between binary files DELETED Docs/Es/Articulos/Libertadores/Figuras/ipython-markdown.png Index: Docs/Es/Articulos/Libertadores/Figuras/ipython-markdown.png ================================================================== --- Docs/Es/Articulos/Libertadores/Figuras/ipython-markdown.png +++ Docs/Es/Articulos/Libertadores/Figuras/ipython-markdown.png cannot compute difference between binary files DELETED Docs/Es/Articulos/Libertadores/Figuras/ipython-vista-previa.png Index: Docs/Es/Articulos/Libertadores/Figuras/ipython-vista-previa.png ================================================================== --- Docs/Es/Articulos/Libertadores/Figuras/ipython-vista-previa.png +++ Docs/Es/Articulos/Libertadores/Figuras/ipython-vista-previa.png cannot compute difference between binary files DELETED Docs/Es/Articulos/Libertadores/Figuras/leo-grafoscopio-backup.jpg Index: Docs/Es/Articulos/Libertadores/Figuras/leo-grafoscopio-backup.jpg ================================================================== --- Docs/Es/Articulos/Libertadores/Figuras/leo-grafoscopio-backup.jpg +++ Docs/Es/Articulos/Libertadores/Figuras/leo-grafoscopio-backup.jpg cannot compute difference between binary files DELETED Docs/Es/Articulos/Libertadores/Figuras/nodos-ubicaciones-especificas-original.jpg Index: Docs/Es/Articulos/Libertadores/Figuras/nodos-ubicaciones-especificas-original.jpg ================================================================== --- Docs/Es/Articulos/Libertadores/Figuras/nodos-ubicaciones-especificas-original.jpg +++ Docs/Es/Articulos/Libertadores/Figuras/nodos-ubicaciones-especificas-original.jpg cannot compute difference between binary files DELETED Docs/Es/Articulos/Libertadores/Figuras/nodos-ubicaciones-especificas.jpg Index: Docs/Es/Articulos/Libertadores/Figuras/nodos-ubicaciones-especificas.jpg ================================================================== --- Docs/Es/Articulos/Libertadores/Figuras/nodos-ubicaciones-especificas.jpg +++ Docs/Es/Articulos/Libertadores/Figuras/nodos-ubicaciones-especificas.jpg cannot compute difference between binary files DELETED Docs/Es/Articulos/Libertadores/Figuras/nubes-de-palabras.png Index: Docs/Es/Articulos/Libertadores/Figuras/nubes-de-palabras.png ================================================================== --- Docs/Es/Articulos/Libertadores/Figuras/nubes-de-palabras.png +++ Docs/Es/Articulos/Libertadores/Figuras/nubes-de-palabras.png cannot compute difference between binary files DELETED Docs/Es/Articulos/Libertadores/Figuras/persistencia-guardar-como.png Index: Docs/Es/Articulos/Libertadores/Figuras/persistencia-guardar-como.png ================================================================== --- Docs/Es/Articulos/Libertadores/Figuras/persistencia-guardar-como.png +++ Docs/Es/Articulos/Libertadores/Figuras/persistencia-guardar-como.png cannot compute difference between binary files DELETED Docs/Es/Articulos/Libertadores/Figuras/persistencia-ston.png Index: Docs/Es/Articulos/Libertadores/Figuras/persistencia-ston.png ================================================================== --- Docs/Es/Articulos/Libertadores/Figuras/persistencia-ston.png +++ Docs/Es/Articulos/Libertadores/Figuras/persistencia-ston.png cannot compute difference between binary files DELETED Docs/Es/Articulos/Libertadores/Figuras/realimentacion-artefacto-escritura.png Index: Docs/Es/Articulos/Libertadores/Figuras/realimentacion-artefacto-escritura.png ================================================================== --- Docs/Es/Articulos/Libertadores/Figuras/realimentacion-artefacto-escritura.png +++ Docs/Es/Articulos/Libertadores/Figuras/realimentacion-artefacto-escritura.png cannot compute difference between binary files DELETED Docs/Es/Articulos/Libertadores/Figuras/realimentacion-artefacto-escritura.vue Index: Docs/Es/Articulos/Libertadores/Figuras/realimentacion-artefacto-escritura.vue ================================================================== --- Docs/Es/Articulos/Libertadores/Figuras/realimentacion-artefacto-escritura.vue +++ Docs/Es/Articulos/Libertadores/Figuras/realimentacion-artefacto-escritura.vue @@ -1,304 +0,0 @@ - - - - - - - - - realimentacion-artefacto-escritura.vue - - - #FFFFFF - #404040 - #000000 - SansSerif-plain-14 - http://vue.tufts.edu/rdf/resource/8d98bca1c0a80a8a227c297a42c283ae - - #E6F7FD - #000000 - #000000 - Arial-bold-12 - http://vue.tufts.edu/rdf/resource/8d98bca3c0a80a8a227c297ac5bea86f - - - - #E6F7FD - #000000 - #000000 - Arial-bold-12 - http://vue.tufts.edu/rdf/resource/8d98bca3c0a80a8a227c297ae13a25e1 - - - - #404040 - #404040 - Arial-plain-11 - http://vue.tufts.edu/rdf/resource/8d98bca4c0a80a8a227c297a2308bb41 - - - 7 - 6 - - - - #404040 - #404040 - Arial-plain-11 - http://vue.tufts.edu/rdf/resource/8d98bca7c0a80a8a227c297a2a56048e - - - 6 - 7 - - - - #FFFFFF - #000000 - #000000 - Arial-plain-12 - http://vue.tufts.edu/rdf/resource/8d98bcaac0a80a8a227c297a6c09e536 - - - - #404040 - #404040 - Arial-plain-11 - http://vue.tufts.edu/rdf/resource/8d98bcabc0a80a8a227c297a4f880fd4 - - - 7 - 11 - - - - #404040 - #404040 - Arial-plain-11 - http://vue.tufts.edu/rdf/resource/8d98bcadc0a80a8a227c297a43ff0161 - - - 6 - - - - #404040 - #404040 - Arial-plain-11 - http://vue.tufts.edu/rdf/resource/8d98bcaec0a80a8a227c297abf7a3db9 - - - 11 - 6 - - - - #FFFFFF - #000000 - #000000 - Arial-plain-12 - http://vue.tufts.edu/rdf/resource/8d98bcafc0a80a8a227c297adff54a4b - - - - #404040 - #404040 - Arial-plain-11 - http://vue.tufts.edu/rdf/resource/8d98bcb0c0a80a8a227c297a6974e723 - - - 7 - 17 - - - - #404040 - #404040 - Arial-plain-11 - http://vue.tufts.edu/rdf/resource/8d9a40cac0a80a8a227c297ae6e2debd - - - 17 - 6 - - - - #FFFFFF - #000000 - #000000 - Arial-plain-12 - http://vue.tufts.edu/rdf/resource/9039e11bc0a80a8a227c297aad600a40 - - - - #404040 - #404040 - Arial-plain-11 - http://vue.tufts.edu/rdf/resource/9039e11cc0a80a8a227c297a00cf8d84 - - - 7 - 20 - - - - #404040 - #404040 - Arial-plain-11 - http://vue.tufts.edu/rdf/resource/9039e11dc0a80a8a227c297a91aa0e9e - - - 20 - 6 - - - - #FFFFFF - #000000 - #000000 - Arial-plain-12 - http://vue.tufts.edu/rdf/resource/9039e11ec0a80a8a227c297acd151455 - - - - #404040 - #404040 - Arial-plain-11 - http://vue.tufts.edu/rdf/resource/9039e11fc0a80a8a227c297acb06eef9 - - - 7 - 26 - - - - #404040 - #404040 - Arial-plain-11 - http://vue.tufts.edu/rdf/resource/9039e120c0a80a8a227c297adc4a114c - - - 26 - 6 - - - - http://vue.tufts.edu/rdf/resource/8d98bcb1c0a80a8a227c297a917bebf4 - - 1.0 - - #202020 - - - #B3993333 - #000000 - SansSerif-plain-14 - http://vue.tufts.edu/rdf/resource/8d98bcb2c0a80a8a227c297a1c652233 - - #000000 - #404040 - #000000 - SansSerif-plain-14 - http://vue.tufts.edu/rdf/resource/8d98bcb3c0a80a8a227c297af5e7f4df - - #404040 - #FFFFFF - Gill Sans-plain-36 - http://vue.tufts.edu/rdf/resource/8d98bcb4c0a80a8a227c297a7f1758d4 - - - - #404040 - #FFFFFF - Gill Sans-plain-22 - http://vue.tufts.edu/rdf/resource/8d98bcbac0a80a8a227c297a22d30149 - - - - #404040 - #B3BFE3 - Gill Sans-plain-18 - http://vue.tufts.edu/rdf/resource/8d98bcbcc0a80a8a227c297a9e19064d - - - - - - 2014-11-08 - 6 - /home/offray/Documentos/U/Libertadores/Grafoscopio/Figuras - /home/offray/Documentos/U/Libertadores/Grafoscopio/Figuras/realimentacion-artefacto-escritura.vue - DELETED Docs/Es/Articulos/Libertadores/Figuras/scrivener.jpg Index: Docs/Es/Articulos/Libertadores/Figuras/scrivener.jpg ================================================================== --- Docs/Es/Articulos/Libertadores/Figuras/scrivener.jpg +++ Docs/Es/Articulos/Libertadores/Figuras/scrivener.jpg cannot compute difference between binary files DELETED Docs/Es/Articulos/Libertadores/Figuras/sorted_binary_tree_preorder.pdf Index: Docs/Es/Articulos/Libertadores/Figuras/sorted_binary_tree_preorder.pdf ================================================================== --- Docs/Es/Articulos/Libertadores/Figuras/sorted_binary_tree_preorder.pdf +++ Docs/Es/Articulos/Libertadores/Figuras/sorted_binary_tree_preorder.pdf cannot compute difference between binary files DELETED Docs/Es/Articulos/Libertadores/Figuras/sorted_binary_tree_preorder.svg Index: Docs/Es/Articulos/Libertadores/Figuras/sorted_binary_tree_preorder.svg ================================================================== --- Docs/Es/Articulos/Libertadores/Figuras/sorted_binary_tree_preorder.svg +++ Docs/Es/Articulos/Libertadores/Figuras/sorted_binary_tree_preorder.svg @@ -1,730 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - sorted_binary_tree - - C - - C - - - E - - E - - - H - - H - - - A - - A - - - D - - D - - - D->C - - - - - D->E - - - - - I - - I - - - I->H - - - - - B - - B - - - B->A - - - - - B->D - - - - - G - - G - - - G->I - - - - - F - - F - - - F->B - - - - - F->G - - - - - - - - - - - - - - - - DELETED Docs/Es/Articulos/Libertadores/Figuras/ulysses-image-preview.png Index: Docs/Es/Articulos/Libertadores/Figuras/ulysses-image-preview.png ================================================================== --- Docs/Es/Articulos/Libertadores/Figuras/ulysses-image-preview.png +++ Docs/Es/Articulos/Libertadores/Figuras/ulysses-image-preview.png cannot compute difference between binary files DELETED Docs/Es/Articulos/Libertadores/Figuras/updating-system.jpg Index: Docs/Es/Articulos/Libertadores/Figuras/updating-system.jpg ================================================================== --- Docs/Es/Articulos/Libertadores/Figuras/updating-system.jpg +++ Docs/Es/Articulos/Libertadores/Figuras/updating-system.jpg cannot compute difference between binary files DELETED Docs/Es/Articulos/Libertadores/Figuras/zotero-detalle-items.png Index: Docs/Es/Articulos/Libertadores/Figuras/zotero-detalle-items.png ================================================================== --- Docs/Es/Articulos/Libertadores/Figuras/zotero-detalle-items.png +++ Docs/Es/Articulos/Libertadores/Figuras/zotero-detalle-items.png cannot compute difference between binary files DELETED Docs/Es/Articulos/Libertadores/Figuras/zotero-firefox.png Index: Docs/Es/Articulos/Libertadores/Figuras/zotero-firefox.png ================================================================== --- Docs/Es/Articulos/Libertadores/Figuras/zotero-firefox.png +++ Docs/Es/Articulos/Libertadores/Figuras/zotero-firefox.png cannot compute difference between binary files DELETED Docs/Es/Articulos/Libertadores/Figuras/zotero-integracion.jpg Index: Docs/Es/Articulos/Libertadores/Figuras/zotero-integracion.jpg ================================================================== --- Docs/Es/Articulos/Libertadores/Figuras/zotero-integracion.jpg +++ Docs/Es/Articulos/Libertadores/Figuras/zotero-integracion.jpg cannot compute difference between binary files DELETED Docs/Es/Articulos/Libertadores/Figuras/zotero-pharo-debug.jpg Index: Docs/Es/Articulos/Libertadores/Figuras/zotero-pharo-debug.jpg ================================================================== --- Docs/Es/Articulos/Libertadores/Figuras/zotero-pharo-debug.jpg +++ Docs/Es/Articulos/Libertadores/Figuras/zotero-pharo-debug.jpg cannot compute difference between binary files DELETED Docs/Es/Articulos/Libertadores/Plantillas/default.latex Index: Docs/Es/Articulos/Libertadores/Plantillas/default.latex ================================================================== --- Docs/Es/Articulos/Libertadores/Plantillas/default.latex +++ Docs/Es/Articulos/Libertadores/Plantillas/default.latex @@ -1,202 +0,0 @@ -\documentclass[$if(fontsize)$$fontsize$,$endif$$if(lang)$$lang$,$endif$$if(papersize)$$papersize$,$endif$$for(classoption)$$classoption$$sep$,$endfor$]{$documentclass$} -$if(fontfamily)$ -\usepackage{$fontfamily$} -$else$ -\usepackage{lmodern} -$endif$ -$if(linestretch)$ -\usepackage{setspace} -\setstretch{$linestretch$} -$endif$ -\usepackage{amssymb,amsmath} - -% My custom defined packages -\usepackage{float} -\usepackage{caption} -\usepackage{graphicx} - -\usepackage{ifxetex,ifluatex} -\usepackage{fixltx2e} % provides \textsubscript -\ifnum 0\ifxetex 1\fi\ifluatex 1\fi=0 % if pdftex - \usepackage[T1]{fontenc} - \usepackage[utf8]{inputenc} -$if(euro)$ - \usepackage{eurosym} -$endif$ -\else % if luatex or xelatex - \ifxetex - \usepackage{mathspec} - \usepackage{xltxtra,xunicode} - \else - \usepackage{fontspec} - \fi - \defaultfontfeatures{Mapping=tex-text,Scale=MatchLowercase} - \newcommand{\euro}{€} -$if(mainfont)$ - \setmainfont{$mainfont$} -$endif$ -$if(sansfont)$ - \setsansfont{$sansfont$} -$endif$ -$if(monofont)$ - \setmonofont[Mapping=tex-ansi]{$monofont$} -$endif$ -$if(mathfont)$ - \setmathfont(Digits,Latin,Greek){$mathfont$} -$endif$ -\fi -% use upquote if available, for straight quotes in verbatim environments -\IfFileExists{upquote.sty}{\usepackage{upquote}}{} -% use microtype if available -\IfFileExists{microtype.sty}{% -\usepackage{microtype} -\UseMicrotypeSet[protrusion]{basicmath} % disable protrusion for tt fonts -}{} -$if(geometry)$ -\usepackage[$for(geometry)$$geometry$$sep$,$endfor$]{geometry} -$endif$ -$if(lang)$ -\ifxetex - \usepackage{polyglossia} - \setmainlanguage{$mainlang$} -\else - \usepackage[shorthands=off,$lang$]{babel} -\fi -$endif$ -$if(natbib)$ -\usepackage{natbib} -\bibliographystyle{$if(biblio-style)$$biblio-style$$else$plainnat$endif$} -$endif$ -$if(biblatex)$ -\usepackage{biblatex} -$if(biblio-files)$ -\bibliography{$biblio-files$} -$endif$ -$endif$ -$if(listings)$ -\usepackage{listings} -$endif$ -$if(lhs)$ -\lstnewenvironment{code}{\lstset{language=Haskell,basicstyle=\small\ttfamily}}{} -$endif$ -$if(highlighting-macros)$ -$highlighting-macros$ -$endif$ -$if(verbatim-in-note)$ -\usepackage{fancyvrb} -\VerbatimFootnotes -$endif$ -$if(tables)$ -\usepackage{longtable,booktabs} -$endif$ -$if(graphics)$ -\usepackage{graphicx} -\makeatletter -\def\maxwidth{\ifdim\Gin@nat@width>\linewidth\linewidth\else\Gin@nat@width\fi} -\def\maxheight{\ifdim\Gin@nat@height>\textheight\textheight\else\Gin@nat@height\fi} -\makeatother -% Scale images if necessary, so that they will not overflow the page -% margins by default, and it is still possible to overwrite the defaults -% using explicit options in \includegraphics[width, height, ...]{} -\setkeys{Gin}{width=\maxwidth,height=\maxheight,keepaspectratio} -$endif$ -\ifxetex - \usepackage[setpagesize=false, % page size defined by xetex - unicode=false, % unicode breaks when used with xetex - xetex]{hyperref} -\else - \usepackage[unicode=true]{hyperref} -\fi -\hypersetup{breaklinks=true, - bookmarks=true, - pdfauthor={$author-meta$}, - pdftitle={$title-meta$}, - colorlinks=true, - citecolor=$if(citecolor)$$citecolor$$else$blue$endif$, - urlcolor=$if(urlcolor)$$urlcolor$$else$blue$endif$, - linkcolor=$if(linkcolor)$$linkcolor$$else$magenta$endif$, - pdfborder={0 0 0}} -\urlstyle{same} % don't use monospace font for urls -$if(links-as-notes)$ -% Make links footnotes instead of hotlinks: -\renewcommand{\href}[2]{#2\footnote{\url{#1}}} -$endif$ -$if(strikeout)$ -\usepackage[normalem]{ulem} -% avoid problems with \sout in headers with hyperref: -\pdfstringdefDisableCommands{\renewcommand{\sout}{}} -$endif$ -\setlength{\parindent}{0pt} -\setlength{\parskip}{6pt plus 2pt minus 1pt} -\setlength{\emergencystretch}{3em} % prevent overfull lines -$if(numbersections)$ -\setcounter{secnumdepth}{5} -$else$ -\setcounter{secnumdepth}{0} -$endif$ -$if(verbatim-in-note)$ -\VerbatimFootnotes % allows verbatim text in footnotes -$endif$ - -$if(title)$ -\title{$title$$if(subtitle)$\\\vspace{0.5em}{\large $subtitle$}$endif$} -$endif$ -$if(author)$ -\author{$for(author)$$author$$sep$ \and $endfor$} -$endif$ -\date{$date$} -$for(header-includes)$ -$header-includes$ -$endfor$ - -\begin{document} -$if(title)$ -\maketitle -$endif$ -$if(abstract)$ -\begin{abstract} -$abstract$ -\end{abstract} -$endif$ - -$for(include-before)$ -$include-before$ - -$endfor$ -$if(toc)$ -{ -\hypersetup{linkcolor=black} -\setcounter{tocdepth}{$toc-depth$} -\tableofcontents -} -$endif$ -$if(lot)$ -\listoftables -$endif$ -$if(lof)$ -\listoffigures -$endif$ -$body$ - -$if(natbib)$ -$if(biblio-files)$ -$if(biblio-title)$ -$if(book-class)$ -\renewcommand\bibname{$biblio-title$} -$else$ -\renewcommand\refname{$biblio-title$} -$endif$ -$endif$ -\bibliography{$biblio-files$} - -$endif$ -$endif$ -$if(biblatex)$ -\printbibliography$if(biblio-title)$[title=$biblio-title$]$endif$ - -$endif$ -$for(include-after)$ -$include-after$ - -$endfor$ -\end{document} DELETED Docs/Es/Articulos/Libertadores/Plantillas/latex.template Index: Docs/Es/Articulos/Libertadores/Plantillas/latex.template ================================================================== --- Docs/Es/Articulos/Libertadores/Plantillas/latex.template +++ Docs/Es/Articulos/Libertadores/Plantillas/latex.template @@ -1,101 +0,0 @@ -\documentclass[11pt,article,oneside]{memoir} -%\usepackage[minion]{org-preamble-pdflatex} - -$if(listings)$ -\usepackage{listings} -$endif$ -$if(lhs)$ -\lstnewenvironment{code}{\lstset{language=r,basicstyle=\small\ttfamily}}{} -$endif$ -$if(highlighting-macros)$ -$highlighting-macros$ -$endif$ -$if(verbatim-in-note)$ -\usepackage{fancyvrb} -$endif$ -$if(tables)$ -\usepackage{longtable} -$endif$ - -$if(graphics)$ -\usepackage{graphicx} -% We will generate all images so they have a width \maxwidth. This means -% that they will get their normal width if they fit onto the page, but -% are scaled down if they would overflow the margins. -\makeatletter -\def\maxwidth{\ifdim\Gin@nat@width>\linewidth\linewidth -\else\Gin@nat@width\fi} -\makeatother -\let\Oldincludegraphics\includegraphics -\renewcommand{\includegraphics}[1]{\Oldincludegraphics[width=\maxwidth]{#1}} -$endif$ - -$if(title)$ -\title{\bigskip \bigskip $title$} -$endif$ - -%\author{$for(author)$$author$$sep$\\$endfor$} - -\author{$for(author)$\Large $author.name$\vspace{0.05in} \newline\normalsize\emph{$author.affiliation$} \newline\footnotesize \url{$author.email$}\vspace*{0.2in}\newline $sep$ \and $endfor$} - -%\author{$for(author)$$author.name$ ($author.affiliation$)$sep$ \and $endfor$} - -\date{} - -\begin{document} -\setkeys{Gin}{width=1\textwidth} -%\setromanfont[Mapping=tex-text,Numbers=OldStyle]{Minion Pro} -%\setsansfont[Mapping=tex-text]{Minion Pro} -%\setmonofont[Mapping=tex-text,Scale=0.8]{Pragmata} -\chapterstyle{article-4} -\pagestyle{kjh} - -\published{$date$. Incomplete Draft. Please do not cite without permission.} - -$if(title)$ -\maketitle -$endif$ - -$if(toc)$ -{ -\hypersetup{linkcolor=black} -\setcounter{tocdepth}{$toc-depth$} -\tableofcontents -} -$endif$ - -$if(abstract)$ - -\begin{abstract} - -% \noindent $abstract$ - -\end{abstract} - -$endif$ - -$body$ - -$if(natbib)$ -$if(biblio-files)$ -$if(biblio-title)$ -$if(book-class)$ -\renewcommand\bibname{Bibliography} -$else$ -\renewcommand\refname{References} -$endif$ -$endif$ - -\bibliography{$biblio-files$} - -$endif$ -$endif$ -$if(biblatex)$ -\printbibliography$if(biblio-title)$[title=References]$endif$ - -$endif$ -$for(include-after)$ -$include-after$ - -$endfor$ -\end{document} DELETED Docs/Es/Articulos/Libertadores/bootstrapping-objeto-investigacion.markdown Index: Docs/Es/Articulos/Libertadores/bootstrapping-objeto-investigacion.markdown ================================================================== --- Docs/Es/Articulos/Libertadores/bootstrapping-objeto-investigacion.markdown +++ Docs/Es/Articulos/Libertadores/bootstrapping-objeto-investigacion.markdown @@ -1,987 +0,0 @@ ---- -title: Metáforas y artefactos alternativos de escritura para jalonar la investigación abierta y la ciencia ciudadana y de garage -author: Offray Vladimir Luna Cárdenas -bibliography: grafoscopio-ulibertadores.bib -abstract: | - La investigación purifica la realidad al verla bajo una lente particular y contarla de una manera específica. Estas formas de ver y narrar pueden ser más ricas y diversas si miramos más allá del rol que ha jugado el artículo, el libro y el informe escritos y hacemos visibles todo el conjunto de elementos que permiten llegar a esos resultados finales: bases de datos, algoritmos, software, herramientas etc, y los tratamos como ciudadanos iguales, citables, referenciables y valorados en el mundo de la investigación, de manera tal que se cree un mejor balance entre el proceso y el producto de la investigación, contribuyendo así a hacerla más reproducible, auditable, participativa y transparente. Este actuar está alineado con las búsquedas y objetivos de proyectos como los de la [investigación](https://en.wikipedia.org/wiki/Open_research) y [ciencia](https://en.wikipedia.org/wiki/Open_science) abiertas, la ciencia ciudadana y de garage, el *[Research Object](http://www.researchobject.org/)* y el *[Activist Object](http://activistobject.wordpress.com/about/)*. Para facilitar la transición del escenario actual al propuesto, la hipótesis es que es necesario introducir nuevas artefactos y metáforas de escritura académica, que den cuenta de cómo el texto final constituye sólo la superficie de la investigación y permitan ver más allá de la punta del iceberg. El presente artículo propone y da cuenta de la construcción de uno de esos artefactos, que mediante la metáfora de escritura arbórea, permite explicitar el caracter no lineal de la escritura académica y ver otros elementos bajo la superficie, al tiempo que permite la escritura colaborativa y con historia, la publicación y trazabilidad de la misma, así como la exportación a diferentes formatos (impreso y web, entre otros) e introduce capacidades de recolección, procesamiento y visualización de información dentro de la herramienta misma. Como muestra práctica de las funcionalidades acá esbozadas, este artículo y las visualizaciones de su texto y código el fuente del prototipo fue escrito usando dicho prototipo de escritura alternativa. ---- -# Introducción - -La intensión de este escrito fue explorar formas de escribir diferentes, que permitieran visibilizar los -múltiples objetos de investigación, de los cuales la academia suele no dar cuenta, debido a las prácticas -de validación de saberes que privilegian excesivamente lo escrito y la publicación indexada. -Puede parecer paradójico que se de cuenta del mismo, precisamente a través de la escritura académica, -pero esto permitía tender un puente entre aquellas prácticas y objetos visibles e invisibles. -Es por tanto un escrito que reflexiona sobre la escritura académica, como forma de comunicación y -producción por excelencia dentro de ella, introduciendo nuevas metáforas escriturales y artefactos -digitales para abordarla y habla precisamente sobre tales metáforas y artefactos, desde *el interior* -de los mismos, pero permitiendo la creación de otros artefactos "externos", como los textos para someter a -publicación, sin limitarse a ellos, ni validarse exclusivamente mediante la escritura académica. - -Distintas iniciativas, colectivas e individuales están deconstruyendo y reconfigurando las prácticas con las -cuales se apropia, produce y comunican saberes. -Se agrupan bajo distintas denominaciones, como investigación y ciencia abiertas, ciencia de garage, -*research object*, *activist object* (se hará referencia a ellas de modo colectivo con la sigla ICACG), -complementado y en muchas ocaciones contrastando críticamente las maneras -y lugares hegemónicos desde los que se realizan las labores de apropiación, producción y comunicación de saberes -al interior de la academia y se repiensan los pactos entre esta y la ciudadanía, -pues como diría [@lafuente_critica_2013] "la divulgación no es el único pacto posible entre ciencia y sociedad" y podemos imaginar -tránsitos de doble vía de saberes y comunicación que también van desde la ciudadanía hacia las instituciones científicas -como "sujetos estudiosos" en lugar de como simples "objetos de estudio" o "usuarios finales" de lo que la ciencia produce y es -mediado por el mercado. -Los colectivos y e individuos, en su caracter de académicos vinculados a las instituciones, como -ciudadanos fuera de ellas, o en algún lugar intermedio, están pensando en maneras distintas de -comunicar las respuestas que saberes académicos tradicionalmente se han hecho, de colocar nuevas preguntas -en la intersección entre saberes o de abordar de manera más horizontal y participativa la construcción de saberes -y la formulación de preguntas y respuestas. - -Todas esas nuevas prácticas del ICACG tienen en común la idea de hacer más transparente, abierta y -participativa la construcción de saberes. -Esto implica descentrarse del producto, usualmente el texto escrito, desde el que se da cuenta de los resultados de -investigación, y visibilizar más el proceso. -Construir un puente entre el producto escrito y el proceso que involucra otros artefactos, como bases de -datos, entrevistas, repositorios y artefactos digitales de código, implicará nuevas prácticas académicas que pasarán -por lo escritural, pero que también necesitan otro tipo de metáforas alrededor de la escritura que la conecten con -todo lo invisible que esta deja atrás. -El texto publicado, es entonces sólo la "superficie" de la investigación, pero el acto de escribir para la -academia debe contar con artefactos que den cuenta de sus profundidades y de su caracter no lineal, -ya que, además, no vamos del título a las conclusiones de manera organizada, sino que en la medida en que -exploramos un problema se nos ocurren en distintos momentos, elementos que luego incorporamos a -esta narrativa lineal y ordenada del texto final. - -El siguiente escrito describe un prototipo de software de escritura no lineal y en profundidad para la academia, -que sea consecuente con las iniciativas de ICACG. -Dicho prototipo, por tanto usa estándares abiertos, software libre y repositorios de código, para disponer para -otros el conjunto de herramientas y datos que permitan mayor trazabilidad y transparencia en la construcción -de diversos objetos de conocimiento, en particular el texto escrito, pero sin limitarse a él. - -*El artículo que el lector tiene en sus manos, fue escrito en el prototipo que acá se describe*. -Es decir que se usó una dinámica de *bootstrapping* (véase figura \ref{realimentacion-artefacto-escritura}, arriba), -en la cual un sistema mínimo es usado para jalonar instancias más complejas del mismo sistema, que luego reemplazan -al sistema original. -En este caso, para descentranos del texto como ejercicio académico por excelencia, se inició escribiendo, de -manera emergente y no lineal (siguiendo la jerarquía de clases y métodos de Pharo), en cambio un -artefacto digital para la escritura académica no lineal (véase figura \ref{realimentacion-artefacto-escritura}, centro), lo -que luego nos permitió escribir el artículo desde y sobre dicho artefacto (véase figura \ref{realimentacion-artefacto-escritura}, abajo), -potenciando otras maneras de trabajar, descentradas del texto. -*La escritura no lineal de código, permitió crear un artefacto digital para escritura académica no lineal, -que a su vez permite reflexionar sobre la misma y visibilizar aquellos objetos de investigación que la escritura académica -usualmente oculta, incluyendo su propia historia y artefactos conexos, como aquel con el que se inicio este proceso*. - -\begin{figure}% -\centering -\parbox{4.5in}{ - \includegraphics{Figuras/realimentacion-artefacto-escritura.png} -} -\\ -\begin{minipage}{4.5in}% - \includegraphics{Figuras/interface-grafoscopio.png} -\end{minipage}% -\\ -\begin{minipage}{4.5in}% - \includegraphics{Figuras/articulo-pdf.png} -\end{minipage}% -\caption - {El prototipo para escritura académica acá creado, llamado grafoscopio, se hizo desde una dinámica de \emph{bootstrapping}. - Se creó un artefacto para escribir y luego se escribió sobre el artefacto mismo. Este ejercicio de escritura realimentó el diseño del artefacto. - Se tiene pensado escribir próximamente, ya no sobre el artefacto, sino sobre investigación y ciencia abierta ciudadana y de garage, emplearlo - en talleres transmedia y otras temáticas de modo que esos escenarios venideros aumenten la versatilidad del artefacto y su adecuación - a esos contextos. La figura intermedia muestra una la interface preliminar de grafoscopio y la inferior una versión preliminar de este artículo - exportada a pdf.} -\label{realimentacion-artefacto-escritura}% -\end{figure} - - -El siguiente artículo considera los antecedentes y alcances de la forma como se decidió abordar este problema, introduce -de modo panorámico las iniciativas de ICACG, las condiciones mínimas que debería tener el artefacto para dar cuenta de -otras maneras de escribir, la experiencia de aprendizaje dentro de la comunidad de práctica que creó la infraestructura para -esta solución y, siguiendo en la dinámica autorreferencial, muestra algunas retratos del proceso y el software, hechos desde -el software mismo (le he llamado *selfies* del prototipo), para finalmente dar cuenta de las conclusiones y posibilidades futuras -de este ejercicio de prototipado y primera aproximación investigativa al problema. - -# Parientes cercanos de orígenes distintos: Investigación y ciencia abiertas, ciencia de garaje, ciudana, objetos de investigación y activistas - - - -Como se dijo, la ICACG y los objetos de investigación y activistas son parientes cercanos, en el sentido que consideran maneras -alternativas de apropiar, construir y comunicar conocimiento y otros pactos y preguntas posibles en la relación entre ciencia y -ciudadanía, que van más allá de la divulgación de una vía entre las instituciones científicas y académicas y la ciudadanía en general. -A pesar de estar interconectados, entre estos modos de hacer también existe un dialogo crítico y en ocasiones contrapuesto -y no es de extrañar que, al ser un discurso y práctica emergentes, los lugares donde las deficiones y prácticas se consolidan -sean principalmente lugares en línea sin publicaciones canónicas fruto del acuerdo, aunque eso sí, muchas iniciativas con el -respaldo de prestigiosas instituciones académicas y con intereses en las prácticas que ocurren tanto en el Norte Global, como -en el Sur Global. -Consideraré en este apartatado algunas definiciones, a fin de dar una mirada panorámica e introductoria al -fenómeno, sin ahondar en los diálogos críticos alrededor del mismo. - -La Wikipedia define la investigación abierta como [@wikipedia_open_2014]: - - > La investigación abierta es conducida en el espíritu del software libre y de código abierto. -De modo similar a los esquemas del código abierto, que son construidos alrededor del código fuente que es hecho público, el -tema central de la investigación abierta es dar cuenta clara de la metdología disponible libremente vía Internet, -junto con cualesquiera datos o resultados extraídos o derivados de ellos. -Esto permite la colaboración masiva distribuida y una en la cual cualquiera pueda participar en cualquier nivel del proyecto. - -> Si la investigación es de naturaleza científica, es frecuentemente referida como ciencia abierta. -La investigación abierta puede también incluir ciencias sociales, humanidades, matemáticas, ingeniería y medicina. - -> La investigación abierta está preocupada por hacer la investigación científica más transparente, más colaborativa y -más eficiente. -Un aspecto central es proveer acceso a información científica, especialmente a la investigación publicada es revistas -académicas y a los datos subyacentes, que mucha de la ciencia tradicional intenta ocultar. -Otros aspectos son formas más abiertas de colaboración e involucramiento con una audiencia más amplia, incluyendo -científicos ciudadanos - -La ciencia abierta es, entonces, un subconjunto de la investigación abierta, ella involucra varios campos: - - -Por su parte, el proyecto del objeto de investigación [@research-object-overview] dice: - -> Los resultados útiles de la investigación no son sólo publicaciones tradicionales. -En cambio ellos son todo lo demás que entra en y soporta una investigación. - -> Los "Objetos de Investigación" describen un número de inciativas y abordajes que tratan de describir y asociar todo -este contenido junto en un mecanimos legible por máquinas de modo que pueda ser más fácilmente encontrado y -compartido. - -> Aún más, con artefactos de investigación asociados y descritos de manera legible por máquinas, podemos empezar a -explorar incluso formas más interesantes y novedosas de hacer la investigación reutilizable. - -> Un conjunto de principios junta muchas de esas iniciativas dispares. -Lo que difiere grandemente son los mecanismos que esas iniciativas usan -para lograr esos objetivos. -Sin embargo al procurar seguir un conjunto común de principios, -significa que es más probable ser ampliamente interoperable y reusable - -Dichos principios son [@research-object-overview, ibid] : - -> **Identidad**: Usar identificadores globalmente únicos como nombres para las cosas. - Por ejemplo DOI's para publicaciones o ORCID para investigadores. - Esto es por dos razones: - - > 1. Para que podamos hablar de formas no ambigüas sobre las cosas. - > 2. Para que la gente pueda encontrar esas cosas - -> **Agregación**: Usar algún mecanimos de agregación para asociar cosas que están relacionados - o hacen parte de una más amplia investigación, estudio, etc. - Este es un valor nuclear de los objetos de investigación - proveer los artefactos de soporte que hacen la investigación - potencialmente útil para alguien más. - -> **Anotación** - Proveer metadatos adicionales acerca de esas cosas, cómo se relacionan entre sí, de dónde vienen, cuándo, etc. - Esto ayuda a la gente a descubrir que datos son relevantes y potencialmente útiles. - - -El objeto activista afirma [@activist_object_curating_2014]: - -> Las infraestructuras digitales, las tecnologías mundanas, las arqui- -tecturas ad-hoc, y los nuevos modos de narrar y documentar están -remodelando las prácticas políticas de activistas y ciudadanos. Sabe- -mos que las policas no sólo están hechas de discurso, por el contrario, -están hechas de objetos e infraestructuras que deberíamos considerar -cuidadosamente. Queremos tomar inspiración de esta idea para aprox- -imarnos a la cultura material del activismo político. Específicamente -pretendemos explorar las precarias condiciones del diseño impro- -visado de los objetos activistas y las implicaciones de las prácticas de -documentar y curar los materiales políticos. - - -La ciencia ciudadana y de garage tienen otra mirada. Critical Art Emsamble dice [@critical_art_emsamble_ciencia_2009]: - -> Ciencia de garaje es un término rebosante de posibilidades utópicas; sin embargo, a diferencia de otras florituras retóricas utópicas, -la forma de producción que describe puede tener un impacto revolucionario en el paisaje de la vida cotidiana. En su visión más pomposa -la ciencia de garaje se asocia con visionarios excéntricos y hackers de super nivel que han cambiado el mundo. La bombilla, la radioactividad, -los antibióticos, el sintetizador, el ordenador personal, etc. Todos comenzaron de alguna manera como trabajos caseros. -Puede que los resultados revolucionarios no sean probables pero sin duda son posibles. - -> Pero incluso desde una perspectiva más cotidiana hay un montón de razones para continuar con la ciencia de garaje. -Antes de que la Era Reagan comenzara a minarla, la ciencia ciudadana se fomentaba en EEUU, incluso por parte del Gobierno -(aunque a veces por razones bastante cínicas). Numerosas publicaciones, revistas y otros proveedores de ciencia atendían a las -necesidades de un nutrido público amateur ansioso de acercarse a los nuevos sistemas del conocimiento científico y a los nuevos -materiales y procesos de la ciencia. El resultado fue la creación de una ciudadanía suficientemente enterada de los desarrollos -científicos – y, todavía más importante, de su aplicación en la esfera pública – y con capacidad suficiente para participar de manera -inteligente en las políticas científicas. - -> No hace falta decir que cuando los neoliberales llegaron al poder se dieron cuenta rápidamente de que había que parar esta forma de -política, y la mejor manera de hacerlo era detener toda manifestación de ciencia amateur. -Creían que la gestión y el desarrollo del conocimiento debían llevarlo a cabo pequeños grupos de “expertos” que compartían los valores -ideológicos del neoliberalismo, de forma que el conocimiento y su aplicación pudiera ser controlada únicamente de arriba abajo. - -> [...] - -> Para Critical Art Ensemble parte de nuestra lucha ha sido establecer la ciencia como un lugar popular para la intervención cultural, y de ese modo contribuir a una pedagogía que otorga poder a la gente para retar a los expertos, para convertirse en activos participantes en las políticas del conocimiento de las esferas científica y tecnológica, y expandir las posibilidades para la producción cultural en las disciplinas científicas. - -Por su parte Lafuente [@lafuente_amateurs_2014] conecta a la ciencia ciudadana con el movimiento hacker cuando afirma: - -> Quienes lucharon por la democratización de la experticia (peritaje, evaluación) nunca imaginaron que llegaría nada comparable al movimiento hacker. Originariamente eran unos cuantos programadores que se negaron a permitir que una empresa pudiera patentar el código, algo que para ellos era tan absurdo como privatizar las leyes de Newton, los teoremas matemáticos o el genoma humano. No se pueden reclamar derechos sobre los descubrimientos, incluidos los anónimos, como es el caso de la lengua, el folklore o las semillas. Todos son bienes heredados que debemos legar intactos a nuestros hijos. Inicialmente la resistencia era para defender el conocimiento de su apropiación corporativa. Pero no tardaron en mostrarse ecos en muchos ámbitos del saber. Wikipedia, sin duda, es un hermoso ejemplo de cómo preservar el conocimiento para todos y, lo mejor, entre todos. - -> La cultura hacker pronto resonó con la cultura punk. Ambas daban forma a los anhelos anticonsumistas, antimonopolistas y antielitistas. Ambas representaban una apuesta por la cultura del DIY, las formas cooperativas, las prácticas de garaje y la innovación maker. Hace ya cinco décadas que su presencia no deja de contagiar el mundo de los negocios, la política y la ciencia. Las nociones de software libre, open access y creative commons son tan conocidas como el navegador Firefox y el milagro de Wikipedia. Y es que las culturas hacker adoptan muchas formas, desde las que se concentran en la tarea de hacer accesible el conocimiento a las que luchan por liberarlo y, entre medias, todos las actitudes que se resisten a creer que las cosas son lo que son y nada más. [...] - -> Pero la categoría es mucho más amplia: Son hackers quienes desmontan un coche para tunearlo o quienes hacer una remezcla de sonidos que busca otras armonías y diferentes maneras de compartirlas; también pertenecen a esta plural tribu quienes comparten el coche para ir a trabajo, luchan a favor de la agricultura de proximidad, niegan el derecho a la propiedad intelectual sobre tests genéticos diferenciales y no le hacen ascos a la cultura del remiendo, el reuso, la reparación y el reciclado. En sus formas más blandas los hackers disfrutan haciendo las cosas con sus propias manos, mientras que su rostro más duro se manifiesta cuando hacen públicos documentos que prueban que necesitamos otras formas de gobernanza menos cínicas y mayor transparencia en la vida pública y empresarial. - -Vemos que lo que se comparte en las diferentes iniciativas ICACG es la búsqueda de apertura, transparencia y horizontalidad, -pero las preguntas, metodologías y artefactos pueden ser muy diversos y con posturas que tienen distintos niveles de diálogo -y contrapeso a las dinámicas más hegemónicas de la investigación y la ciencia tradicionales institucionalizadas. -Sin embargo estos artefactos comparten el hecho de estar descentrados del texto y mediados por las tecnologías y -representaciones digitales, además de permitir las búsquedas mencionadas. - -En cuanto al objeto de investigación, el presente prototipo aborda los principios de agregación y anotación, al -permitir explicitar objetos de investigación relacionados y proveer metadatos a partir de árbol de escritura, que -muestra los orígenes de esos otros objetos y la historia del mismo árbol y el prototipo de escritura a partir de -repositorios de código (se verá más al respecto en la siguiente sección). -La agregación y anotación se hacen de modo práctico, pero no se usa ningún estandar de metadatos para la -interoperabilidad, salvo importantes estándares *ad-hoc* como formatos abiertos usados para representar, compartir -y publicar el contenido fruto de este prototipo (STON, BibTeX, markdown, pdf). -En principio de identidad puede ser parte de una investigación futura. -En cuanto al objeto activista, "la deconstrucción acá presente piensa la documentación como un objeto activista, -no sólo asociada a las prácticas políticas explícitas, sino -aquellas que día a día transitan en los documentos académicos que -cosifican la relación poder-conocimiento", continuando en la línea de lo -propuesto por [@luna_cardenas_ecologisaberes_2014 pg 19]. -En cuanto a la ciencia de garage y ciudadana, el presente prototipo es un avance de una -investigación doctoral iniciada en el 2010 en doctorado en diseño y creación de la Universidad de Caldas, -que precisamente ha ocurrido en el Hackerspace de Bogotá, HackBo, a propósito de dinámicas relacionadas -con otras maneras de apropiar la tecnología y la ciencia y participar desde dicha apropiación de la vida -social y pública. -Se espera por tanto que este prototipo continue madurando y desarrollándose en contextos que vinculan las -diferentes prácticas de ICACG y potencie y comunique tales contextos y prácticas, ya sean institucionalizadas -o comunitarias. - -Lo anterior permite enmarcar el prototipo e indagación abordada en este escrito dentro de la pregunta por un artefacto que, construido desde lo local y considerando las necesidades particulares de lugares en el Sur Global, pueda ser usado para -prácticas de ICACG y la exploración y construcción de objetos de investigación y activistas que faciliten los diálogos críticos -y los cruces en los discursos y prácticas antes mencionadas. - -# Antecendentes y alcances - -Este texto continua y extiende lo propuesto en *Ecología de Saberes en Diseño: Un ejemplo desde los -discursos autopoiéticos* [@luna_cardenas_ecologisaberes_2014]. -Allí se afirmaba que las epistemologías del diseño requieren de nuevos artefactos que permitan explorarlas -y comunicarlas y que los mismos deberían dar cuenta de sus ingredientes e historia, -para mostrar que los metabolismos cognitivos propios del diseño no son sólo anabólicos -(de juntura, simplifcación y recombinación) sino catabólicos (de liberación de energía y -componentes para futuras recombinaciones). -Para el caso particular de la escritura académica se mencionaba como se habían hecho algunos -prototipos de la misma usando varios ingredientes de software y se mencionaban caminos posibles -para reasumir la indagación por formas escriturales nuevas. -De los múltiples artefactos mencionados como "utencilios e ingredientes" para cocinar lo escritural -nos concentraremos en dos [@luna_cardenas_ecologisaberes_2014 pg 20, 21]: - -> - Fossil: Un sistema de control de versiones distribuido, minimalista -y autocontenido para publicar los textos y su historia. El -desarrollador lider de Fossil es Dwayne Richard Hipp. - -> - Leo: Un metaeditor de texto para dar cuenta del caracter no -lineal de la escritura y sus niveles de “profundidad”, de los -cuales el texto final en pdf es sólo la “superficie”. Leo permite -escribir de manera “arbórea”, para dar cuenta de lo anterior, -pero además la estructura de árbol es auto-referente, con lo cual -se puede usar una de las ramas para programar recorridos en -todo el árbol, decir qué niveles de profundidad ignorar y ayu- -dar a producir el pdf. Para eso se elaboraron dos -scripts en el lenguaje de programación python, de los cuales se hablará más -adelante. El desarrollador lider de Leo es Edward K. Ream. - -Y en las reconfiguraciones posibles de artefactos, se afirmó que [@luna_cardenas_ecologisaberes_2014 pg 28-29]: - -> Se usaría el entorno Pharo/Smalltalk como componente de *bootstrapping*, -pues integra dentro de sí un lenguaje de programación -mininalista, un poderoso ambiente integrado de desarrollo y una -interface gráfica. La experiencia de usuario inicial es sólo descargar, - decomprimir y usar, sin ningún tipo de privilegio particular, -a diferencia de Leo, que es difícil de instalar en plataformas no -Gnu/Linux, y puede requierir de permisos de administrador en la -máquina. En Pharo se puede recrear mucha de la experiencia de -escritura arbórea básica de Leo y delegar el resto de la misma, en -particular la creación de pdf a servicios ubicados en Internet. - -> La parte de repositorios remotos con copias de seguridad se haría -vía dos sistemas de control de código: Monticello para el software -hecho en Pharo y Brea, desarrollado por este autor, para los -escritos de los usuarios. - -Ese prototipo da cuenta de estos puntos en la medida en que: - - - Recrea mucha de la experiencia de escritura arborea de Leo en Pharo/Smalltalk, - creadola a partir de cero líneas de código pre-existentes, - pero con la valiosa ayuda del Glamorous Toolkit [@tudor_glamorous_2014], - - Usa Fossil y Monticello para el control de código fuente del software e históricos de cambios en los escritos. - -En cuanto a los límites de tiempo, estos fueron de 2 meses de trabajo intenso y uno y medio más de depuración y afinamiento. -Por ello el prototipo no aborda otros elementos mencionados en el artículo original, -la integración el y jalonamiento desde Pharo de otras herramientas (Fossil, LaTeX, pandoc) es parcial, y no se aborda su uso -como servicios en Internet, y muchos de los elementos restantes para producir el pdf -fueron instalados localmente en la máquina donde se hizo el desarrollo y aunque se dar cuenta de su historia vía Internet la -configuración en línea se hizo manualmente manua. -En ese sentido no está dentro de los alcances del prototipo el ser complemente portable, ni multiplataforma, -y por lo pronto permite de modo autónomo sólo la escritura, (re)organización del texto en la interface gráfica y su -exportacióna formatos ligeros y a HTML. -Se espera que futuras versiones del software integren los elementos faltantes de maneras progresivas. - - - -## Software con otras interfaces escriturales - -Se consideró otro software que se aleja de las metáforas usuales de los procesadores de palabra populares -(MS Word o LibreOffice Writer). -Se inició por mirar otros sistemas de escritura esturcutrada, centrados en las palabras y el texto y ausentes de -decoraciones, como: - -- Scrivener: -- Ulises: -- Substance: -- IPython Notebook: - -Los dos primeros son software privativo, por lo tanto su código fuente no puede ser usado libremente como -base para la construcción de nuevo software, sin embargo, la metáfora del corcho para pegar ideas u otras -diferentes formas de ver un mismo escrito, son interesantes, así como la idea de hacer que puedan aparecer -metadatos o imágenes en determinadas partes, por solicitud del usuario. -El tercero brinda una interesante forma de publicación a dos columnas, usando la primera para presentar el -texto y la segunda para el contexto (gráficas, referencias bibliográficas, etc) y es software libre. -El último es software libre y permite la escritura de documentos interactivos y estructurados, pero aún es difícil -de instalar y nos presenta un único documento, que puede extenderse demasiado en documentos que involucran -cálculos, algoritmos, conexiones a bases de datos y gráficos, por tanto no es muy adecuado como base -para explorar la idea de un sistema de escritura donde lo arboreo permita lidiar con la complejidad y el caracter -emergente de la misma. -Además está hecho en varios lenguajes: Python, C, Javascript y HTML, con lo cual la curva de aprendizaje para la -intervención de la interface misma se hace complicada. -La idea de una experiencia de escritura arborea centrada en estructura y palabras con una interface sin adornos de Leo, -se preservó para este prototipo, así como la de un sistema de escritura interactiva, que soportara la recolección y -visualización de datos en concordancia con lo que permite el IPython Notebook - -\begin{figure}% -\centering -\parbox{2.2in}{ - \includegraphics{Figuras/ulysses-image-preview.png} -} -\qquad -\begin{minipage}{2.2in}% - \includegraphics{Figuras/scrivener.jpg} -\end{minipage}% -\\ -\begin{minipage}{4.5in}% - \includegraphics{Figuras/ipython-markdown.png} -\end{minipage}% -\\ -\begin{minipage}{4.5in}% - \includegraphics{Figuras/ipython-vista-previa.png} -\end{minipage}% -\caption - {Tres interfaces alternativas para escritura. Arriba izquierda, ulysses, con su interface centrada en el texto y algunas utilidades como - previsualización de imágenes. Arriba derecha, Scrivener y los corchos y el árbol para organizar la escritura. Centro, IPython y su - experiencia de escritura basada en un lenguaje de etiquetamiento ligero. Abajo el resultado de pasar de dicha escritura al modo de - previsualización (el cambio entre modos ocurre simplemente al presionar la combinación de techas \emph{Shift} + \emph{Enter})} -\label{otras-interfaces-escriturales}% -\end{figure} - -Se consideraron otros lenguajes con la característica de auto-referencialidad e introspección, es decir el hecho de -que el código fuente pueda usarse como datos de modo que, a su vez, se pueda usar una parte del código fuente para -reprogramar el sistema, en particular su interface y sistema de escritura. -Dentro de las opciones estaba el editor de código LightTable, que está desarrolado en ClojureScript (un descendiente -con ideas del lenguaje funcional Lisp desarrollado sobre JavaScript), pero la indagación preliminar en la comunidad [@luna_cardenas_outliner_2014] -permitió ver que el desarrollo y la modificación de la interface gráfica podía ser difícil para un novato, en comparación -con la manera como se podía hacer en Pharo/Smalltalk, que disponía de toolkits para el desarrollo de navegadores y -la presentación y navegación específica para estructuras arbóreas de información [@girba-custom-analyses], el soporte -para programación y exploración de datos interactiva[@girba-playing-with-objects] [@bergel_software_2014], además de ser un entorno -homogéneo donde el mismo paradigma y herramientas son usados consistentemente a lo largo y ancho del entorno, -lo cual permitía un aprendizaje y desarrollo rápido en el tiempo provisto para el desarrollo del prototipo. - -Lo anterior reforzó la elección de Pharo/Smalltalk como entorno para el prototipado, dando continuidad a lo establecido -en el artículo de Ecología de Saberes en diseño y dentro de los límites de alcances y tiempos ya establecidos. - -# *Bootstrapping*: condiciones mínimas para jalonar la complejidad - -Estas fueron las condiciones mínimas que se prefijaron, antes de que el ejercicio de escritura académica se diera: - - 1. Interface gráfica arborea: - 2. Modelo de persistencia de información. - 3. Exportación a formatos externos: Texto plano y pdf. - 4. Soporte de históricos y colaboración sobre los textos exportados vía el control distribuido de versiones de código. - -Debido a lo breve del prototipado y el hecho del que se trataba también de explorar dinámicas de enculturación -[@wenger_communities_1999] dentro de comunidades de práctica de tecnologías digitales, la mayor parte del tiempo estuvo -enfocada en aprender el entorno de desarrollo de la aplicación (lenguaje de desarrollo, librerías de manejo de archivos y -construcción de interfaces, herramientas para gestión de código fuente) y en lograr las características anteriores, y debido al -requerimiento de escritura académica como manera de comunicación/validación de estas prácticas y artefactos, una muy -pequeña parte estuvo dedidaca a la organización como escrito académico de tal experiencia. - -Una vez se cumplieron con las condiciones mínimas 1 a 3, se inició la escritura del texto y la exportación a formatos pdf, para -desde allí afinar la funcionalidad requerida de modo que la exportación fuera más completa: (meta)datos para el escrito de -autor y título, soporte a referencias bibliográficas, y recorridos particulares del árbol que permitían tomar cierta información -para la producción del escrito final, a la vez que permitían ocultar otra que era empleada para metadatos, comentarios, -estructuración o para la exportación a diferentes formatos y/o la publicación de la historia en repositorios de código. -Es decir que las condiciones 1 a 3 fueron prerrequisitos para iniciar con la exploración de la condición 4 y una vez esta se tuvo -se itero sobre las condiciones anteriores: las condiciones mínimas del prototipo permitían ejercicios de escritura que -a su vez servían como base para mirar qué había que cambiar en el prototipo, de modo que el proceso de escritura -entre el prototipo y el artículo final se fuese realimentando, afinando y mejorando. - -# Grafoscopio: Una experiencia de aprendizaje comunitario - - - -Grafoscopio fue el nombre público que se usó a lo largo del proyecto[^nombre-codigo]. -En la siguiente sección se dará cuenta del proceso de construcción del mismo y los hitos y aprendizajes -más importantes durante su desarrollo, como manera de contar aquello que el código fuente no dice por sí mismo. -Si bien no se establecerán correlatos directos con los repositorios de código fuente del escrito o del prototipo, si creo que -es posible rastrear los trozos de esta narrativa en tales repositorios. - -El desarrollo de software en este escrito es visto como un -acto de enculturación desde la perspectiva de [@wenger_communities_1999]. -Se trata de ir adquiriendo los repertorios simbólicos y materiales compartidos por una comunidad de práctica, -en este caso la comunidades de Pharo/Smalltalk. -Prototipar entonces, es explorar ese repertorio en la medida en que se interactua con la comunidad. -Estas comunidades particulares de software libre se articulan alrededor de los artefactos que usan -y lo que estos posibilitan. -Ahora bien, hay varias comunidades interrelacionadas en Pharo y hablaré de ellas de manera indistinta como -la comunidades Pharo, en plural, sin embargo, vale la pena hacer algunas claridades, a partir de lo que ellas -dicen de sí mismas a través de los artefactos y proyectos que las convocan: - - - Pharo [ @pharo-sitio-web]: - - > Te da control total sobre tu experiencia de programación. - Enfocado en simplicidad y realimentación inmediada, es un entorno puro de programación - orientada a objetos *y* un poderoso entorno (piensa en un IDE y un OS empacados en uno) [^IDE-OS]. - - - Moose [@girba-moose-book-intro] - - > es una plataforma de código abierto para expresar análisis de sistemas software y datos en general. - En otras palabras, su objetivo principales es asistir y habilitar al humano en el proceso de comprender grandes - cantidades de datos. - - > Se dirige a varias categorías de personas: - - > - investigadores en el área de análisis de software, minería e ingeniería inversa. - > - ingeniereos y arquitectos quienes quieren entender sistemas y datos y - > - constructores de herramientas. - - - El proyecto de Visualización Agil, que ahora toma la forma de un libro construido sobre estas plataformas, afirma [@agile-visualization]: - - > La visualización ágil es acerca de usar los recursos computacionales para agrandar la mente y las capacidades cognitivas - de nuestro cerebro. - Crear una visualización a la medida, en ciclos extremadamente cortos de producción es lo que caracteriza las ténicas - de visualización, presentadas en este libro. - -> La visualización ágil esta hecha para científicos de datos, periodistas, científicos cmoputacionales e ingenieros de software. -Tan pronto usted necesita procesar datos, numéricos o no, la visualización ágil lo guiará paso a paso para fertilizar sus datos - -Respecto a Moose ha habido un viraje de ser una herramienta para análisis de software a una herramienta para -análisis de datos y ahora el énfasis ha cambiado también hacia la construcción rápida de herramientas a la medida -para analizar y visualizar distintos datos. -Grafoscopio es un ejemplo de ello: una herramienta construida a la medida a partir de Moose, en un tiempo corto incluyendo -en aprendizaje del lenguaje y otras herramientas de Pharo. - -[^nombre-codigo]: - Ubakye fue el nombre código que se escogió para el software de escritura arborea, durante casi todo su desarrollo. - (*uba*, significa semilla y *kye* árbol , en lengua chibcha, una población aborigen ubicada en Colombia). - -[^IDE-OS]: - IDE y OS son las siglas para Entorno Integrado de Desarrollo y Sistema Operativo, respectivamente, por sus iniciales - en inglés. - -Mi propio lugar en la comunidad de Smalltalk empezó con algunas experiencias de enseñanza de la programación -en un curso de introducción a la informática, dictado del 2005 al 2007, en la que exploraron distintas herramientas -y lenguajes, como Python, Scheme, Scratch, Etoys y Bots Inc, encontrando que estás tres últimas eran extremadamente -adecuadas para la enseñanza a novatos, por el uso de metáforas visuales para explicar los elementos de la programación -orientada a objetos y su sintaxis minimalista, como está documentado con mayor detalle en [@luna_cardenas_resolucion_2007]. -Sin embargo, después de dicha experiencia, mi vinculación a la comunidad de Smalltalk fue principalmente a través -de las listas de correo y a pesar de considerarlo para varios proyectos como un enrutador de identidad digital -[@luna_cardenas_ubakye:_2011], [@ubakye-mapa] y un clon del software de presentaciones Prezi, -dichas intenciones nunca llegaron a una primera línea de código. -Otras herramientas, como we2py, Leo o IPython eran más maduras y pertinentes para asumir las tareas de exploración, -uso y prototipado de tecnologías digitales a las cuales me veía constantemente abocado. -No fue sino después de la salida de Pharo en el 2009 como variante basada en Squeak (base para Scrach, Etoys y Bots Inc, en -ese entonces) y el reciente cambio de énfasis hacia la construcción de herramientas a la medida de Moose y la -visualización ágil, que las condiciones estuvieron listas para reemprender un prototipo más factible, con un valor diferencial -que ninguna de las herramientas conocidas tenían, como se explicó ya en la sección de antecedentes. - -Una vez decido que se usaría Pharo, la exploración inició con las interfaces gráficas que servirían para el proyecto. -Se inició mirando la interface del sistema de ayuda de Pharo como tal (véase figura \ref{arbol-ayuda-pharo} ), ya que -unas capturas de pantalla de un sitio relacionado (Squeak/Smalltalk) y una exploración preliminar mostraban un -sistema similar al de navegación arbórea, que seguramente estaría disponible para varias variantes de Smalltalk. -Sin embargo, ya que el sistema de ayuda estaba pensado para programadores, la creación de jerarquías arbóreas y -nuevos temas dentro del mismo requería la escritura de código en el navegador de clases de Pharo y se requería una -experiencia mucho más fluida de escritura que permitiese la creación fluida de tales jeraquías sin necesidad de programar. -El código fuente del sistema de ayudas, en particular el subconjunto de paquetes agrupados bajo la denominación -``Help-System-Core>> Model>> HelpTopic`` sirvió como plantilla para desarrollar la lógica subyacente de grafoscopio, -lo que muestra una de las ventajas fundamentales de entorno continuo de programación ofrecido por Pharo, -en el que no se diferencia entre la aplicación, el entorno de desarrollo y el código fuente, pues si -se encuentra una funcionalidad interesante, es posible acceder a sus instrucciones y copiarlas o modifcarlas hasta -lograr una experiencia de uso cercana a la deseada. -En este periodo se aprendió esencialmente sobre la jerarquía de clases, la definición de objetos y métodos [@deep-into-pharo] -y el uso de colecciones [@pharo-sourcedocs-strings] y cadenas de texto [@sbe-strings], que permitieron definir el modelo y -comportamiento para sobre ellos hacer la interface gráfica. - -\begin{figure}[ht] - \begin{center} - \includegraphics{Figuras/arbol-ayuda-pharo.png} - \caption - {Sistema de ayuda de Pharo. Se puede ver que formar una jerarquía se hace programando. La idea de Grafoscopio era evitar eso para - que cualquiera pudiera crearlas desde una interface gráfica - \label{arbol-ayuda-pharo}} - \end{center} -\end{figure} - -Con la funcionalidad subyacente para definir una jerarquía arbórea de objetos: crearlos, asociarlos como hijos entre sí, borrarlos -y moverlos a distintas partes de la jerarquía, se procedió a construir el borrador de la interface gráfica. -Se evaluaron distintas alternativas dentro del ecosistema Pharo, como Maui y Spec, pero se continuo con Moose y su -*toolkit* Glamorous ([@pbe2-glamour]) para la creación de la interfaces de usuario, debido a lo sencillo de su sintaxis y -su rapidez de prototipado de interfaces. -Los primeros resultados de la interface se pueden ver en la figura \ref{ui-primeros-resultados} - -\begin{figure}% -\centering -\parbox{2.2in}{ - \includegraphics{Figuras/interface-nodos-recursivos.jpg} -}% -\qquad -\begin{minipage}{2.2in}% - \includegraphics{Figuras/nodos-ubicaciones-especificas.jpg} -\end{minipage}% -\caption{Primeros resultados de la interface. Izquierda, nodos que se despliegan recursivamente una y otra vez debido a una invocación recursiva accidental. Derecha, funcionalidad para agregar nodos en lugares arbitrarios. Ambas imágenes fueron compartidas por \emph{twitter} y las url de tales publicaciones hacen parte de los nodos invisibles en este árbol.}% -\label{ui-primeros-resultados}% -\end{figure} - - -Glamorous está orientada a la construcción de sistemas para navegar información pre-existente, pero no tanto -para su modificación directa. - En diálogos con su autor éste dijo que ciertos usos pensados para este proyecto excedían el diseño original y que si bien -serían características deseables, aún no estaban implementados. -De hecho eso y la inercia comunitaria que puede contestar rápidamente o en un par de semanas (que es mucho tiempo -para un proyecto tan corto), sumado a mi propia inexperiencia en el uso del lenguaje y el entorno, demoró mucho -lograr una parte clave de la experiencia de uso, que era la actualización automática de la información en la medida en -que se escribía en el árbol, lo que era necesario para tener una experiencia mínima de escritura amigable que otros -*toolkits* de interface gráfica ya proveen y a que se adecuan más a las expectativas del usuario[^gtk-qt]. -Finalmente fue posible implementar la característica de auto-actualización, para lo cual fue necesario entender el concepto -de *ports* (puertos) y el envío de información entre ellos. -Llegar a dicha comprensión implicó reducir la funcionalidad de auto-actualización a su mínima funcionalidad. -Para ello se creó, en pocas líneas de código y después de quitar todas las complicaciones extra, una interface a la medida -que se pudiera auto-actualizar con el uso de puertos (véase figura \ref{ui-auto-actualizar}). -Desnudar al problema para llegar a su escencia fue proceso que tardó casí semana y media y fue de los más demorado -de entender y programar en mi posición de novato. - -\begin{figure}% -\centering -\parbox{2.2in}{ - \includegraphics{Figuras/autoactualizacion-en-navegador-minimalista-panel-original.png} -}% -\qquad -\begin{minipage}{2.2in}% - \includegraphics{Figuras/autoactualizacion-en-navegador-minimalista-panel-actualizado.png} -\end{minipage}% -\caption{Navegador minimalista para probar la auto-actualización. Izquierda, en su estado original, como estaban los dos desde -el código. Derecha actualizado. La esquina superior derecha con una marca en naranja es la marca clásica de \emph{Pharo} de -que ese panel ha recibido una actualización que aún no ha sido procesada (se le conoce como \emph{dirty}}% -\label{ui-auto-actualizar}% -\end{figure} - - -[^gtk-qt]: - Otros toolkits de desarrollo visual (qt, gtk) proveen ese tipo de comportamiento de auto-actualización por omisión, aunque - la experiencia de programar en ellos, como en la mayoría de lenguajes, es fracturada en el sentido de que no se cuenta con - un continuo entre la interface, el lenguaje de programación, el sistema de gestión de código fuente y la misma interface. - En ese sentido, las demoras que pueden haber al elegir aprender una tecnología no tan popular como Pharo/Smalltalk - son compensadas por la integración del entorno y la uniformidad del lenguaje y el paradigma, pues como se dijo, aprender - en entorno y modificarlo/extenderlo para proyectos particulares, como Ubakye, ocurre desde una experiencia consistente - e integrada todo el tiempo. - -Cuando la actualización automática del contenido en los nodo funcionó el siguiente paso fue la persistencia de la información. -Para esto se usó la librería STON desarrollada por Sven Van Caekenberghe [@caekenberghe-ston]. -Esta librería está inspirada en el popular y sencillo lenguaje de serialización de datos JSON, pero tiene la ventaja de poder -expresar el árbol de manera directa y sencilla, incluidas las referencias (circulares o no) entre diferentes objetos y su lugar en -la jerarquía de clases de Pharo. -STON sabe de los objetos dentro de Pharo y puede serializarlos a archivos de texto o a partir de ellos cargarlos dentro de -Pharo de nuevo. -Así, cada nuevo objeto definido, como los nodos del árbol, llamados nodos Ubakye, fueron mapeados en archivos de texto -plano, que pueden ser compartidos con sólo enviarlos por correo, versionados fácilmente para guardar su historia y -cargados de nuevo en Grafoscopio/Ubakye para continuar con su edición visual e interactiva. -Las únicas inquietudes fueron referidas a si se podía representar el texto incluidas los saltos de línea de manera que -no ocuparan líneas largas con caracteres especiales (como ``\n``) y cómo quitar algunos metadados del texto, como la -fuente, el color, etc. de manera que su representación se mantuviese sencilla. - -Gracias a STON, la persistencia fue muy fluida y sólo tomo unas cuantro líneas de código. -En la figura \ref{persistencia} se ven una captura de pantalla de un trozo del árbol que representa la estructura completa de este escrito, -incluidos nodos invisibles y otros metadatos, y, aprovechando su brevedad, el código que implementa la persistencia del -árbol en disco duro (disponible desde la opción de menú "``Arbol > Guardar como..``"). - -\begin{figure}% -\centering -\parbox{1.4in}{ - \includegraphics{Figuras/arbol-detalle.png} -} -\qquad -\begin{minipage}{3in}% - \includegraphics{Figuras/persistencia-guardar-como.png} -\end{minipage}% -\caption{Persistencia. Izquierda, detalle de un trozo del árbol que representa todo este escrito. Derecha, el método -completo que implementa la persistencia de dicho árbol en pocas líneas de código gracias a STON}% -\label{persistencia}% -\end{figure} - - -La última característica a implementar antes de empezar la escritura del artículo fue el recorrido del árbol en preorden. -Dicho recorrido permite ir desde la raíz del árbol a cada uno de los nodos hijos hasta alcanzar el nodo más profundo dentro -de una jerarquía y luego aplicar el mismo recorrido a los nodos restantes (véase figura \ref{arbol-preorden}). -Existen diferentes estrategias para dicho recorrido, pero las que a mi juicio es mejor y más elegante es la definición recursiva del -recurrido en preorden, en la recorren un árbol en preorden consiste en visitar un nodo raíz y luego visitar en preorde los -subárboles restantes. -La implementación de la recurrencia en un entorno objetual puro es diferente de los entornos mixtos, como python y otros -similares, en los que pueden enmascarar el comportamiento objetual detrás de otras sintaxis. -En particular el hecho de que sean los mensajes entre objetos los que permitan implementar la recurrencia y el hecho de -que las variables pertenezcan a los objetos del dominio y sus métodos y no sean externas a los mismos. -Pensar desde este enfoque purista implicó revisar la literatura[@oo-recursion] y volver a los fundamentos, reimplementando parte de -los ejercicios clásicos como las Torres de Hanoi[@taste-of-smalltalk] e hizo que la implementación tomase un par de dias. -Una vez se tuvo el recorrido en preorden, la exportación a formatos como markdown y pdf fue directa y se inicio la escritura como -tal del artículo. - -\begin{figure}[p] - \centering - \includegraphics[width=0.4\textwidth]{Figuras/sorted_binary_tree_preorder.pdf} - \caption{Recorrido de un arbol en preorden. (Imagen tomada de la Wikipedia: http://ur1.ca/igfow)} - \label{arbol-preorden} -\end{figure} - - - - - - - -La escritura del artículo como tal permitió probar y afinar la funcionalidad del prototipo. -Por ejemplo, de esos esfuerzos que la escritura invisibiliza, como el navegador de funcionalidad -mínima referido en la sección anterior, una vez empecé la escritura del texto, creé un tipo de nodo especial, que empieza por el -la palabra especial ``%invisible``, cuya función es permitir colocar dentro del árbol escritural, cosas que no serán parte de la -salida del pdf, pero que ayudan a organizar la escritura. -En este mismo árbol he puesto un nodo invisible, que contiene el código de dicho ejemplo mínimo (véase figura \ref{nodos-invisibles}), -si bien dicha interface mínima no aparece directamente en grafoscopio, su código y funcionalidad sí hacen parte del repositorio de código -de este escrito. -Este es un ejemplo práctico de como el artefacto digital de grafoscopio permite visibilizar aquello que el texto académico usualmente oculta. - -\begin{figure}[ht] - \begin{center} - \includegraphics{Figuras/autoactualizacion-en-navegador-minimalista.png} - \caption - {Código invisible dentro de un nodo del escrito. En este caso se trata de aquel que permitió la construcción de un navegador que se autoactualizara con algunos cambios. (El resaltado sintáctico de código en grafoscopio no se preserva y es sólo producto de copiarlo desde un *Playground* que sí lo soporta)} - \label{nodos-invisibles} - \end{center} -\end{figure} - - - -Otro elementos que se afinaron fueron los nodos que empiezan con palabras especiales y los métodos que procesan -dichos nodos de una manera particular y los integran o no al texto final, dependiendo de las palabras especiales que -encuentran en ellos. -De este modo era posible indicar al árbol qué tipo de resultado queríamos a partir de determinados tipos de nodos. -Las palabras especiales[^hashtag] para denotar los nodos son: - - - ``%footnote`` para las notas a pie de página, - - ``%config`` para los detalles de configuración del escrito (título, autores, abstract, archivo de bibliografía, ruta y - formatos de almacenamiento). - - ``%invisible`` para los nodos que no se quiere que aparezcan el los formatos exportados (markdown y pdf), pero que - sirven para organizar el texto, como ya se dijo. - - ``%idea`` para los nodos que descomponen en ideas la presentación de una parte del texto, pero que no son una sección - como tal. - - ``%embed`` para los nodos que van embebidos dentro de otros. Esto permite la *transclusión* (inclusión sin copiado) de - trozos de texto en los dentro de sus nodos padre. Los nodos embebidos, por ejemplo, fueron usados en este texto para describir al detalle - la manipulación de gráficas en el pdf final, sin perder continuidad en la escritura de los nodos que invocaban dichas gráficas. - - -[^hashtag]: - Los *hashtags* se popularizaron con *twitter* y tienen que ver con usar palabras pegadas y precedidas del signo "``#``" - para denotar etiquetas de meta-información. - El uso de dichos signos para denotar símbolos era una costumbre habitual en Smalltalk desde hace décadas, lo cual - se puede ver en los manuales de su sintaxis, tutoriales y libros de programación al respecto. - Debido a que Smalltalk y markdown, dos de los lenguajes usados en grafoscopio ya usan este símbolo, - acá se optó por el símbolo de porcentual (``%``) en lugar del de numeral para evitar colisiones con dichos lenguajes - -La integración con referencias bibliográficas se hizo a través del gestor de código abierto Zotero vía Bibtex y las etiquetas -``[@autor]`` colocadas dentro del texto, que soporta el markdown extendido de pandoc (véase figura \ref{integracion-zotero}). -Las referencias bibliográficas eran almacenadas en línea desde Zotero, a través de su integración con firefox. -también se colocaban metadatos y se hacían anotaciones y luego eran exportadas a formato BibTeX . -Una vez en dicho formato se hacía un post-procesamiento desde grafoscopio, que permitía asociar llaves personalizadas a -las referencias bibliográficas y se integraba la bibliografía al pdf final vía pandoc [^zotero-llaves-personalizadas]. - -\begin{figure}% -\centering -\parbox{4.5in}{ - \includegraphics{Figuras/zotero-firefox.png} -} -\\ -\begin{minipage}{4.5in}% - \includegraphics{Figuras/zotero-detalle-items.png} -\end{minipage}% -\\ -\begin{minipage}{4.5in}% - \includegraphics{Figuras/zotero-pharo-debug.jpg} -\end{minipage}% -\caption{Integración con Zotero. Arriba: Zotero utilizado como plugin del navegador firefox al comienzo del artículo. - Centro: Detalle de los items al final del artículo con cerca de 240 items. Abajo: Inicio de la depuración en pharo de la bibliografía para - soporte de llaves bibliográficas personalizadas}% -\label{integracion-zotero}% -\end{figure} - -La colección de literatura recopilada para este escrito alcanzó a tener cerca de 240 item, si bien se citó sólo una fracción de los mismos, -La colección en este caso es diversa y cubre temas de ciencia abierta y reproducible, programación en Smalltalk, visualización de datos. -Esto muestra otro aspecto invisivilizado de la escritura tradiciónal y es que en la indagación preliminar pueden haber vistazos panorámicos -a varios títulos relacionados con una temática y base para otra investigaciones, motivo por el cual los gestores públicos de colecciones bibliográficas -como Mendeley y Zotero se están haciendo cada vez más populares pues además de facilitar el trabajo grupal, permiten encontrar información -agrupada y comentada durante el desarrollo de una investigación, ya sea que esta alcance o no a llegar a la citación final. - - -[^zotero-llaves-personalizadas]: - El soporte para llaves personalizadas esta provisto de manera limitada en Zotero y se hace a través de *plugins* como - Better BibTeX [@better-bibtex]. Sin embargo no fue claro cómo lograr una exportación fluida. Después de consultar la - Interface de Programación de Aplicaciones de Zotero (Zotero API, por sus siglas en inglés) ([@zotero-api], [@zotero-api-intro-ph], - [@zotero-api-v3], [@zotero-bibtex-mit]), fue claro que era más fácil lograr la funcionalidad que se quería directamente a partir de Pharo/Smalltalk - mediante el uso de Citecdzen [@citezen-pollet-repository], [@citezen-pollet-report] [@citezen-barreau]. - -Para afinar la manera en que las figuras se referencian y se disponen, se pasó del código markdown soportado por pandoc, -a imágenes definidas en el más rico y complicado lenguaje de etiquetamiento \LaTeX. -Se espera que exista a futuro también un tipo de nodo especial ``%figura`` que contenta los metadatos de la misma en -STON y se pueda exportar a distintos formatos (Html y LaTeX). - -En simultánea se montó un repositorio de código fuente que contiene las versiones históricas de este texto ya sea en formato -de metadatos STON, de etiquetas ligeras markdown/pandoc o pdf para someterlo a revisión de pares y publicación. -También se incluye otro material integrado al mismo, como gráficas y figuras y archivos de citación bibliográfica, que permiten -rastrear la historia de las referencias bibliográficas. -Se hablará con mayor de dichos repositorios en la siguiente sección. -Los repositorio de código fuente pueden ser consultados en: - - - Software: - - Cuando se llamaba Ubakye (ya no es mantenida más) [@ubakye-smalltalkhub] - - Cuando fue nombrado como grafoscopio (mantenida actualmente) [@grafoscopio-smalltalkhub] - - Este escrito y otra documentación: [@grafoscopio-fossil] - -Se ve, entonces, como el proceso de escritura pasaba así de la funcionalidad mínima del artefacto al llenado del árbol, -para extender la funcionalidad e iterar sobre el árbol, llenándolo de detalles y nuevos tipos de información e integrando/referenciando -información externa. -Este es un despliegue concreto del diagrama conceptual que se ofreció en la figura \ref{realimentacion-artefacto-escritura} al -comienzo de este artículo. - -# *Selfies* del prototipo: Autorretratos desde el software escritural - -Una de las cosas interesantes de Pharo es su capacidad de instrospección, que se refleja en el hecho de que no -sólo puede modificarse desde sí mismo, sino que puede también crear "auto-retratos" o *selfies*, siguiendo el -término de moda en las redes sociales, en la forma de visualizaciones que nos pueden dar un correlato gráfico de -lo que ocurrió en el prototipo y su evolución. -Se mostrará acá, de manera breve parte de esa funcionalidad, pero es acá donde radica uno de los potenciales -más grandes de estas nuevas formas escriturales que pueden conectarla con tendencias actuales en las líneas -de *Big Data*, *Slow Data*, Humanidades Digitales, visualización de información y otros tipos de abordajes que -implican el tratamiento analítico y algorítmico de información relacionada. - -Se abordarán dos tipos de gráficas, unas de estructura y otras de modificación. -Las primeras dan cuenta de cómo quedó el prototipo y las segundas de su cambio en el tiempo bien sea el -texto del artículo o del software para su escritura. -Para los detalles sobre las mismas se recomienda visitar el repositorio para escrito que se referenció en la sección -anterior. - -Respecto a la estructura del escrito haré la ya clásica nube de palabras, en la cual las palabras que se encuentran con -más frecuencia son proporcionales al tamaño con el que aparecen en la gráfica. -Para ello consideraremos dos textos, uno el del texto exportado en Markdown y el otro el del texto en STON. -Es de esperarse que el primero contenga, sólo aquello que se ve en el pdf, mientras que el segundo tendrá información -sobre la estructura del árbol que el pdf oculta, por tanto las palabras que definen esa estructura se harán visibles, -así como las que habitan los nodos etiquetados ``%invisible`` a los que ya se hizo referencia. -Las gráficas de las dos nubes se muestran a continuación: - -![Nube de palabras para este texto. Izquierda, el texto exportado en markdown/pdf. Derecha el texto en formato STON, que representa la estructura arbórea. Como es de esperarse, los elementos que confieren dicha estructura, como *OrderedCollection*, *GrafoscopioNode*, *parent* o *children*, que son invisibles en los formatos exportados, se hacen ahora visibles.](Figuras/nubes-de-palabras.png ) - -Para las gráficas de evolución en el tiempo se considerará una de las posibles vista de como cambia el código. -Dicha vista corresponde a cuándo fue la última vez que cambiaron los métodos que definen la funcionalidad -de grafoscopio y a su tamaño. Los puntos rojizos corresponden al modelo o *backend*, que el usuario no ve, pero que dan -soporte a las operaciones detrás de grafoscopio, lo puntos azulados correponden al *front end* o interface gráfica que el usuario ve -permanentemente. -Se puede ver cómo algunos métodos que definen la funcionalidad básica del backend no cambian desde hace meses, mientras -que los que corresponden a la interface sí lo hacen y son construidos después de que el modelo está claro como lo muestran sus -fechas. -A pesar de que en el diagrama no se ve, los métodos con mayor cantidad de líneas corresponden a aquellos que se ocupan de pintar -el árbol y de la exportación a markdown (con el respectivo procesamiento de las diferentes etiquetas ``%`` que antes se mencionaron). - -![Una de las posibles vistas de historia del código fuente de grafoscopio. Líneas de código contra fecha del último cambio en los métodos que definen la funcionalidad. Los puntos rojos corresponden al *backend* o lógica subyacente de los árboles y los azules al *frontend* o la interface gráfica expuesta al usuario.](Figuras/codigo-fuente-historia-metodos.png ) - -Las gráficas y análisis preliminares acá mostrados corresponden a los datos tomados sobre grafosocopio y este artículo y sólo se abordan -a modo ilustrativo. -Sin embargo, grafoscopio está en condiciones de procesar y visualizar otras fuentes múltiples de información y de hecho planea usarse en futuras -hackatones para el periodismo de datos [^hack-hackers]. -Es en contextos como estos donde se empieza a hacer evidente el potencial de la herramienta dentro de prácticas que no sólo -son propias de la academia, sini también del periodismo y la comunicación, potenciándolas desde las perspectivas de ICACG y abre -un campo para ser abordado a futuro es espacios intra y extra institucionales, de lo cual se hablará con mayor detalle en la siguiente -sección. - -\clearpage - -[^hack-hackers]: - Habrán dos hackatones venideras en la tercera semana de noviembre de 2014 organizadas por el colectivo en red *hack hackers* Bogotá - [1](http://www.meetup.com/Hacks-Hackers-Bogota/events/217038072/) [2](http://www.meetup.com/Hacks-Hackers-Bogota/events/217037532/). - -# Conclusiones y posibilidades futuras - -Efectivamente la elección de tecnologías permitió el desarrollo de otras metáforas escriturales que visibilizaban distintos -artefactos asociados al proceso de escritura, como repositorios de código, históricos del escrito compilaciones bibliográficas -y elementos invisibles en el texto final, pero que hacen parte de la estructura a mayor profundidad del escrito y que quedan -consignados en el las ramas más produndas del árbol de escritura. -La posibilidad de tener un prototipo mínimo que permitiese un ejercicio de escritura básico que a su vez realimentara las -necesidades y diferentes características a implementar dentro del prototipo fue una estrategia efectiva dentro de los -límites y alcances trazados y el hecho de que se pueda desarrollar en primera persona, haciendo difusa la distinción entre -desarrollador de software y escritor de ICACG debería ser extendida a más personas a través de talleres, seminarios y -trabajo y en comunidades de práctica particulares alrededor es estos temas. -Como se dijo, el prototipado y la escritura académica se hicieron en muy corto del tiempo, por lo cual esta es una primera -aproximación con muchas otras posibilidades aún por explorar, que, creo, harían el prototipo más interesante y fácil de usar -en los distintos contextos para los que se pensó, tanto académicos, como de ciencia ciudadana y de garage. - -A continuación se muestran las posibilidades futuras en dos contextos, uno referido a posibles prácticas sociales con -Grafoscopio y otro, más técnico, referido a los posibles cambios de funcionalidad que precisamente potenciarian -y serían a su vez realimentados por dichas prácticas. - - - -## Respecto a las prácticas sociales e investigativas - - - Un iniciativa interesante a explorar sería integrar Grafoscopio a un sistema de publicación consecuente con las propuestas de - ICACG, que permite desde alojar, comentar e indexar *preprints* hasta el soporte de todo el flujo para una publicación de - acceso abierto. - Esta puede ser una iniciativa tanto empresarial, como académica y comunitaria, pues hay indicadores de cambios en las - prácticas editoriales clásicas y un conjunto de personas cuyas necesidades no son atendidas adecuadamente en por las - instituciones y publicaciones actuales y hay muchas complejidades del proceso de publicación académica que pueden - ser abordadas desde nuevas herramientas y ciclos de publicación (véase [@fenner_grammar_2013]. - - - Un campo que sólo se empezo a explorar fue el de la investigación reproducible. - Varias personas se están pregunta por cómo hacer las prácticas investigativas más reproducibles, - [@cannot-reproduce-lab-work] [@results-may-vary] [@open-sci-in-learning] [@peer-review-plus-reproducible] [@beyond-pdf] - [@open-science-to-open-math] - pues esas actividades invisibles que no hacen parte de los escritos se vuelven claves a la hora de hacer reproducible la investigación - en diferentes momentos o entre diferentes instituciones. - Dichas inquietudes abordan el cómo hacer transiciones a investigación reproducible o las que ya nacen con este - caracter. - Grafoscopio es un artefacto ubicado en esta última categoría y es un campo emergente en el cual vale la pena ahondar, - por ejemplo, considerando cómo grafoscopio puede facilitar las prácticas de ciencia reproducible. - - - A pesar de que el prototipo tiene un estado alfa, en el sentido de que es inestable y puede causar pérdida de datos, - ya es posible usarlo en contextos explorativos como seminarios e investigaciones universitarias o espacios *hacker/maker* - [^talleres-dentro-fuera-institucion]. - Las características que permitirían su uso serían las que mejoran el auto-guardado de lo que se ha creado - (véase la siguiente sección),, que no son difíciles de implementar y pueden estar muy rápidamente disponibles en esos - contextos y para el prototipo en general. - - Los usos del prototipo en cada contexto variarían, pero estarían interrelacionados facilitando puentes entre los escenarios - institucionalizados/académicos tradicionales y los no intituiconalizados comunitarios y de garage. - Los no institucionalizados avanzaran de maneras más fluidas, realizando experiencias piloto, por ejemplo el rastrear - y visualizar el discurso político en redes sociales o auditar el gasto público como ejercicios de ciencia ciudadana y de - garaje, mientras que los escenarios más académicos modificarán las técnicas desarrolladas en el primer lugar, para - adecuarlas a sus preguntas y necesidades. - - - Se requiere de un sitio web (quizás hecho desde Grafoscopio mismo), que introduzca el proyecto a sus posibles usuarios - y empaquete el software y las librerías multiplataforma, de manera que se preserve la experiencia de descomprimir y usar - propia de Pharo. - En principio se daría sorporte para sistemas Windows, Mac y Gnu/Linux, pero con posible soporte a Android, pues a pesar de - que la escritura académica no ocurre en esta última, su uso está creciendo y ya hay máquinas virtuales y aplicaciones de - Smalltalk/Pharo portadas a ella, con lo cual no es difícil imaginar que se pueda hacer en el mediano plazo (dependiendo más de - las librerías externas). - Afortunadamente el caracter de software libre y el hecho de que fue desarrollado a partir del mismo en un trinomio - comunidad-empresa-universidad, permite que se trascienda las fronteras de un ejercicio púramente académico y se - puedan crear, desde múltiples iniciativas comunitarias, empresariales y/o cooperativas, dichos avances en sinergia y - sin cuellos de botella que atracen desde las dinámicas de un lugar lo que el otro puede movilizar. - Por supuesto, esta no es una garantía de que lo anterior vaya a ocurrir, sino un escenario favorable. - -[^talleres-dentro-fuera-institucion]: - Algunos talleres en espacios institucionalizados y no institucionalizados se han iniciado ya con el uso de grafoscopio en hackerspaces - (como HackBo) y Universidad (Fundación Universidad Autónoma de Colombia). Se esperaría extender estas experiencias a otros - contextos posteriormente. - -## Respecto al artefacto/prototipo - - - **El árbol es sólo una posibles vista/estructura**: Si bien el ejercicio partió de la idea de estructurar lo escritural a partir de un - árbol, estas no son las únicas metáforas posibles para pensar la escritura, en particular la académica . - Deberían poderse hacer cosas como extrusión de los nodos del árbol para verlos de distintas maneras, añadir aleatoriedad en - su recorrido, ver nubes de etiquetas del escrito, etc. - La forma en que esta primera estructura e interface se puede convertir en otras para percibir información que subyace en - el escrito o relaciones particulares que aún no se han visto, sería una línea de investigación futura. - - - **Etiquetas de metadatos y métodos de acuerdo a las mismas para el tratamiento de información**: Como se dijo, los recorridos en - los árboles consideran ciertas palabras especiales para tratarlas de modo diferente. - La intensión era colocar dichas palabras especiales como etiquetas, de modo que la presencia de las mismas permita - recorrer el árbol y tratar los nodos en él de diferentes maneras, así como colocar distintos elementos dentro de subnodos - de los árboles especiales. - Ampliar el conjunto de etiquetas que permite colocar metadatos a los árboles, recorrerlos y tratarlos de modos particulares es una tarea futura. - Imagino incluso que algunas personas comparten etiquetas y métodos de tratamiento de la información de acuerdo a ellas. - Esto sería similar a como otras comunidades comparten macros y *scripts* de extensión de su software. - En el caso de Grafoscopio, se trataría de que este entienda un mayor vocabulario de metadatos y los comportamientos que - debe asumir para el tratamiento de la información de acuerdo a los mismos. - -- **Integración con gestores de bibliografía académica/investigativa**: La incursión de datos bibliográficos se hace empleando - la notación `` [@autor]`` que provee el *markdown* de *pandoc* y con el *script* de tratamiento para las llaves personalizadas. - Habría que mejorar la importación desde Zotero, por ejemplo, a partir de la url de una colección particular e integrando una - interface gráfica para los autores y obras dentro de grafoscopio de manera que el uso de referencias bibliográficas sea más - amigable y fluido. - -- **Interface gráfica más amigable y funcionalidad extendida/integrada**: Los cambios que se requieren para la interface y - funcionalidad son: - - - Posibilidad de escritura directa en las cabeceras de los nodos y actualización automática, de modo similar a como ya ocurre - con los cuerpos de los nodos. - - La creación automática de repositorios de código para los objetos exportados/invocados a partir del árbol escritura, así - como su publicación en Internet. - Para este caso los repositorios en fossil fueron creados y publicados manualmente, en lugar de desde la herramienta misma. - - Integrar las herramientas externas como librerías incluidas en la solución. - - Mejorar los menús empleando submenús (ahora todos están en un único menú), integrar mejor las funcionalidades de - histórico y colaboración (en el submenú "``Proyecto``"), crear un menú para el tratamiento de nodos (Agregar etiqueta, - agregar tipo de nodo, etc) y adicoinar otras funcionalidades habituales ("Contar palabras", "Corregir ortografía"). - - Soporte de visualización y resaltado sintáctico para lenguajes de etiquetamiento ligero y código De acuerdo al tipo de nodo - en que se esté ubicado y las etiquetas en el mismo, debería visualizarse de modo diferente la información contenida en el - nodo, incluyendo el resaltado sintáctico e didentación adecuadas y la colocación de gráficas embebidas e interactivas. - Algunos adelantos se están haciendo en este sentido con el lengujae ligero del Sistema de Gestión de Contenido Pillar, pero - se requiere extenderlo a lenguajes como markdown en sus distintas variantes y otros. - La graficación embebida e interactiva ya ocurre en Pharo, pero las gráficas no están integradas en grafoscopio aún, lo cual - no deja de ser irónico, aunque habla de las intensiones futuras del proyecto y su motivación original respecto a soportar - narrativas visuales de datos y no sólo o principamente el texto. - - El código requiere formalización pues fue hecho desde la perspectiva de un novato. Cosas como agrupar métodos, pruebas - de código, etc, deben ser incorporadas de manera orgánica en la medida en que el proyecto mismo las vaya necesitando y - se vaya socializando. - - Definir troceado de archivos, de manera similar a como lo hace Leo, así textos grandes se pueden dividir en subsecciones que - luego se integran en un texto mayor y que pueden contener ideas de uno o varios párrafos y notas de escritura. - Ya hay un soporte preliminar para esto vía los nodos ``%embed`` de los trozos de texto a los textos largos que los contendrían, - pero se podría integrar en una doble vía soportando marcar trozos de textos largos y partirlos en múltiples nodos ``%embed``. - - Una interface gráfica que ayude a realizar el etiquetamiento de código sin ocultarlo, similar a la de la wikipedia o editores - similares, que permite que la persona agregue etiquetado ligero a un texto estructurado, mostrando los resultados del - mismo (texto en cursiva rodeado de "``*``", negrilla rodeado de "``**``" y otras etiquetas similares). - - Movimiento de nodos y sus contextos. Una de las cosas claves que tiene la interface arbórea es permitir ver una parte del - escrito y su contexto. - Para el caso de grafoscopio, he definido una cabecera específica "``%footnote``", que me permite asociar nodos hijos de un nodo - particular donde ocurra un llamado a una cita a pie de página a su rescpetivo contenido. - Si el texto del llamado a la nota al pie se moviera, debería moverse también el nodo hijo que contiene su texto. - Este tipo de relación entre un nodo y su contexto, con las operaciones que ocurren con los contenidos puede ser explorado - más allá. - - Atajos de teclado para la escritura: Se requieren maneras de invocar el guardado y movimiento de los nodos, así como el - formateo de los mismos a partir de dichos atajos. - - En los formatos de almacenamiento y serialización de datos, considerar otras alternativas disintas a STON, como Tirade, - particularmente por la posibilidad de representar largas cadenas de texto de manera más legible sin problemas de saltos - de caracter (CR) o textos extremadamente largos de una sola línea, lo cual puede ser un inconveniente también al comparar - versiones en sistemas como fossil. - Göran Kampe, el autor de Tirade, ha hecho una detallada reflexión [@krampe_literal_2012] [@krampe_tirade_2009], - que habría que tener dentro del repertorio de alternativas a explorar en caso de que el formato elegido no sea el adecuado en - los casos mencionados o quizás mediante una combinación de STON como ahora para casi todo el árbol y su estructura, incluyendo - las referencias circulares y Tirade para almacenar los cuerpos de los nodos principalmente. - - Soporte para diferentes plantillas de LaTeX para la producción de pdf y estilos para la web. - -# Agradecimientos - -El prototipo y este texto fueron desarrollados con la cofinanciación de la Fundación Universitaria Los Libertadores para el Hi-Tec Lab, -de la Facultad de Ciencias de la Comunicación y [mutabiT](http://mutabit.com) S.A.S. que proveyó el software e investigaciones anteriores -que sirvieron como punto de partida. - -Un agradecimiento especial también merecen las comunidades de Pharo, Roassal y Moose y las personas dentro de ellas que, en general, -atendieron con prontitud y detalle las preguntas que formulé durante el desarrollo del prototipo. -La comunidad del Hackerspace de Bogotá, [HackBo](http://hackbo.co/), en particular a los asistentes de los talleres de *Indie Web -Science*, quienes desde su acompañamiento y asistencia me han permitido formular inquietudes que toman cuerpo en este artefacto -de software y espero potencien lo que ocurre allí. -Mis estudiantes de la cohorte 11B de la maestría en didáctica de las ciencias de la Fundación Universitaria Autónoma de Colombia leyeron, -como una de las actividades de nuestro seminario de software libre y educación, borradores de este artículo e hicieron valiosos comentarios. - -Finalmente quisiera agradecer especialmente a Yaneth Gil y Andrés Calderón por escuchar varias de mis reflexiones y padecimientos durante el desarrollo de este escrito/prototipo. -A la primera le agradezco, particularmente, la conversación sobre el nombre del software y al segundo su ayuda con la compresión -de la recurrencia en el árbol $n$-ario (efectivamente, como dice la broma de Internet: para entender la recurrencia, primero hay -que entender la recurrencia). - -# Bibliografía - -\bibliography{grafoscopio-ulibertadores} -\bibliographystyle{plainnat} - - DELETED Docs/Es/Articulos/Libertadores/bootstrapping-objeto-investigacion.pdf Index: Docs/Es/Articulos/Libertadores/bootstrapping-objeto-investigacion.pdf ================================================================== --- Docs/Es/Articulos/Libertadores/bootstrapping-objeto-investigacion.pdf +++ Docs/Es/Articulos/Libertadores/bootstrapping-objeto-investigacion.pdf cannot compute difference between binary files DELETED Docs/Es/Articulos/Libertadores/bootstrapping-objeto-investigacion.ston Index: Docs/Es/Articulos/Libertadores/bootstrapping-objeto-investigacion.ston ================================================================== --- Docs/Es/Articulos/Libertadores/bootstrapping-objeto-investigacion.ston +++ Docs/Es/Articulos/Libertadores/bootstrapping-objeto-investigacion.ston cannot compute difference between binary files DELETED Docs/Es/Articulos/Libertadores/ejemplo-minimalista.html Index: Docs/Es/Articulos/Libertadores/ejemplo-minimalista.html ================================================================== --- Docs/Es/Articulos/Libertadores/ejemplo-minimalista.html +++ Docs/Es/Articulos/Libertadores/ejemplo-minimalista.html @@ -1,29 +0,0 @@ - - - - - - - - - - -

Ejemplo minimalista

-

Este es un ejemplo de un archivo minimalista realizado en grafoscopio. Servirá para probar varias caracterísitcas que se desean implementar sin tener que apelar a archivos mucho más grandes y difíciles de leer.

-

Entre las características a soportar están

-
    -
  • Textos largos que incluyan saltos de línea.
  • -
  • Nodos embebidos dentro de otros que puedan ser invovados al llamar un alias.
  • -
-

Quiero mirar si el embebido funciona.

- -

Acá debería continuar más texto.

-

Este es un ejemplo de texto embebido.

-

Y acá vienen más cosas.

-

Subtítulo

-

Y más cosas, sólo por revisar la auto-actualización.

-

Probando nodos embebidos en otros nodos tipo %idea

-

Rin rín renacuajo salió esa mañana

-

muy tieso y muy majo.

- - DELETED Docs/Es/Articulos/Libertadores/ejemplo-minimalista.markdown Index: Docs/Es/Articulos/Libertadores/ejemplo-minimalista.markdown ================================================================== --- Docs/Es/Articulos/Libertadores/ejemplo-minimalista.markdown +++ Docs/Es/Articulos/Libertadores/ejemplo-minimalista.markdown @@ -1,40 +0,0 @@ -# Ejemplo minimalista - -Este es un ejemplo de un archivo minimalista realizado en grafoscopio. -Servirá para probar varias caracterísitcas que se desean implementar sin tener que apelar a archivos -mucho más grandes y difíciles de leer. - -Entre las características a soportar están - - - Textos largos que incluyan saltos de línea. - - Nodos embebidos dentro de otros que puedan ser invovados al llamar un alias. - -Quiero mirar si el embebido funciona. - - -\begin{figure}[ht] - \begin{center} - \includegraphics[scale=0.3]{Figuras/intro-lado-lado.jpg} - \caption - {El prototipo para escritura académica acá creado, llamado Grafoscopio y este artículo que da cuenta de mismo en formato pdf, -uno al lado del otro. El resto del texto muestra cómo se llegó al primero y una vez empezó la escritura, se realimentaron mutualmente - \label{lado-a-lado}} - \end{center} -\end{figure} - -Acá debería continuar más texto. - -Este es un ejemplo de texto embebido. - -Y acá vienen más cosas. - -## Subtítulo - -Y más cosas, sólo por revisar la auto-actualización. - -Probando nodos embebidos en otros nodos tipo %idea - -Rin rín renacuajo salió esa mañana - -muy tieso y muy majo. - DELETED Docs/Es/Articulos/Libertadores/ejemplo-minimalista.pdf Index: Docs/Es/Articulos/Libertadores/ejemplo-minimalista.pdf ================================================================== --- Docs/Es/Articulos/Libertadores/ejemplo-minimalista.pdf +++ Docs/Es/Articulos/Libertadores/ejemplo-minimalista.pdf cannot compute difference between binary files DELETED Docs/Es/Articulos/Libertadores/ejemplo-minimalista.ston Index: Docs/Es/Articulos/Libertadores/ejemplo-minimalista.ston ================================================================== --- Docs/Es/Articulos/Libertadores/ejemplo-minimalista.ston +++ Docs/Es/Articulos/Libertadores/ejemplo-minimalista.ston @@ -1,1 +0,0 @@ -OrderedCollection [ GrafoscopioNode { #header : 'Ejemplo minimalista', #headers : OrderedCollection [ '%embed figura 1', '%embed figura 2', 'Subt\u00EDtulo' ], #key : '', #body : 'Este es un ejemplo de un archivo minimalista realizado en grafoscopio.\nServir\u00E1 para probar varias caracter\u00EDsitcas que se desean implementar sin tener que apelar a archivos\nmucho m\u00E1s grandes y dif\u00EDciles de leer. \n\nEntre las caracter\u00EDsticas a soportar est\u00E1n\n\n - Textos largos que incluyan saltos de l\u00EDnea.\n - Nodos embebidos dentro de otros que puedan ser invovados al llamar un alias.\r\rQuiero mirar si el embebido funciona.\n\n%embed figura 1\r\rAc\u00E1 deber\u00EDa continuar m\u00E1s texto.\r\r%embed figura 2\r\rY ac\u00E1 vienen m\u00E1s cosas.', #children : OrderedCollection [ GrafoscopioNode { #header : '%embed figura 1', #key : '', #body : '\r\\begin{figure}[ht]\n \\begin{center}\n \\includegraphics[scale=0.3]{Figuras/intro-lado-lado.jpg}\r\n \\caption\n {El prototipo para escritura acad\u00E9mica ac\u00E1 creado, llamado Grafoscopio y este art\u00EDculo que da cuenta de mismo en formato pdf, \nuno al lado del otro. El resto del texto muestra c\u00F3mo se lleg\u00F3 al primero y una vez empez\u00F3 la escritura, se realimentaron mutualmente\n \\label{lado-a-lado}}\n \\end{center}\n\\end{figure}', #children : OrderedCollection [ ], #parent : @2, #level : 2 }, GrafoscopioNode { #header : '%embed figura 2', #key : '', #body : 'Este es un ejemplo de texto embebido.', #children : OrderedCollection [ ], #parent : @2, #level : 2 }, GrafoscopioNode { #header : 'Subt\u00EDtulo', #headers : OrderedCollection [ ], #key : '', #body : 'Y m\u00E1s cosas, s\u00F3lo por revisar la auto-actualizaci\u00F3n.', #children : OrderedCollection [ GrafoscopioNode { #header : '%idea nodos embebidos en ideas', #key : '', #body : 'Probando nodos embebidos en otros nodos tipo %idea\r\r%embed prueba\r\rmuy tieso y muy majo.', #children : OrderedCollection [ GrafoscopioNode { #header : '%embed prueba', #key : '', #body : 'Rin r\u00EDn renacuajo sali\u00F3 esa ma\u00F1ana', #children : OrderedCollection [ ], #parent : @12, #level : 4 } ], #parent : @9, #level : 3 } ], #parent : @2, #level : 2 } ], #parent : GrafoscopioNode { #header : 'Bootstrapping the research object', #key : '', #body : '', #children : @1, #level : 0 }, #level : 1 } ] OrderedCollection [ @16, @2, @5, @7, @9, @12, @14 ] }, #level : 1 } ] DELETED Docs/Es/Articulos/Libertadores/grafoscopio-ulibertadores.bib Index: Docs/Es/Articulos/Libertadores/grafoscopio-ulibertadores.bib ================================================================== --- Docs/Es/Articulos/Libertadores/grafoscopio-ulibertadores.bib +++ Docs/Es/Articulos/Libertadores/grafoscopio-ulibertadores.bib @@ -1,1661 +0,0 @@ -@misc{pharo-sourcedocs-strings, - title = {Pharo source documentation: Collections-Strings}, - shorttitle = {pharo-sourcedocs-strings}, - url = {http://magaloma.seasidehosting.st/Collections-Strings}, - urldate = {2014-09-23}, - note = {00000} -} -@misc{new-line-character, - title = {Smalltalk, newline character - Stack Overflow}, - shorttitle = {new-line-character}, - url = {http://stackoverflow.com/questions/1598054/smalltalk-newline-character}, - urldate = {2014-09-23}, - note = {00000} -} -@misc{decoding-text-files, - title = {character encoding - How to correctly decode text files from {FileSystemReadStream} in Pharo 1.4 - Stack Overflow}, - shorttitle = {decoding-text-files}, - url = {http://stackoverflow.com/questions/11739548/how-to-correctly-decode-text-files-from-filesystemreadstream-in-pharo-1-4}, - urldate = {2014-09-23}, - note = {00000} -} -@misc{rebeca_chao_citizens_2013, - title = {Citizens Create Open Data Tools to Drive Transparency in Hong Kong {\textbar} {TechPresident}}, - url = {http://techpresident.com/news/wegov/24251/citizens-create-open-data-tools-drive-transparency-hong-kong}, - urldate = {2014-09-23}, - author = {{Rebeca Chao}}, - month = aug, - year = {2013}, - note = {00000} -} -@misc{_gobernaton_????, - title = {Gobernatón}, - url = {http://hackbo.co/gobernaton}, - urldate = {2014-09-23}, - note = {00000} -} -@misc{_for_????, - title = {for loop - Smalltalk Fibonacci - Stack Overflow}, - url = {http://stackoverflow.com/questions/21945338/smalltalk-fibonacci}, - urldate = {2014-09-23}, - note = {00000} -} -@article{oo-recursion, - title = {Object-Oriented Recursion}, - shorttitle = {oo-recursion}, - url = {http://www.macqueen.us/smalltalkReport/ST/ST09/27be.pdf}, - author = {{Kent Beck}}, - note = {00000} -} -@book{taste-of-smalltalk, - title = {A Taste of Smalltalk}, - isbn = {0393955052}, - shorttitle = {taste-of-smalltalk}, - publisher = {W W Norton \& Co Inc}, - author = {{Ted Kaehler} and {Dave Patterson}}, - year = {1986}, - note = {00050} -} -@misc{ubakye-smalltalkhub, - title = {Ubakye - {SmalltalkHub}}, - copyright = {{MIT}}, - shorttitle = {ubakye-smalltalkhub}, - url = {http://smalltalkhub.com/#!/~Offray/Ubakye/}, - urldate = {2014-09-23}, - author = {Luna Cárdenas, Offray Vladimir}, - month = jul, - year = {2014}, - note = {00000} -} -@misc{agile-visualization, - title = {Agile Visualization}, - shorttitle = {agile-visualization}, - url = {http://agilevisualization.com/#credit}, - urldate = {2014-09-23}, - note = {00093} -} -@misc{kreutzer_basic_1998, - title = {Basic Aspects of Squeak and the Smalltalk-80 Programming Language}, - url = {http://www.cosc.canterbury.ac.nz/wolfgang.kreutzer/cosc205/smalltalk1.html}, - urldate = {2014-09-23}, - author = {Kreutzer, Wolfgang}, - month = jun, - year = {1998}, - note = {00000} -} -@article{jan_steinman_taste_1998, - title = {A Taste of Smalltalk: Object-Oriented Programming From The Bottom Up}, - url = {http://bytesmiths.com/Publications/A%20Taste%20Of%20Smalltalk%20-%20Steinman_1988-11-01-3.pdf}, - number = {44}, - journal = {Microcornucopia}, - author = {{Jan Steinman} and {Barbara Yates}}, - month = dec, - year = {1998}, - note = {00000} -} -@misc{_pharo_????-1, - title = {Pharo Smalltalk Users - Fwd: Call a block inside same block for recursive requirements}, - url = {http://forum.world.st/Fwd-Call-a-block-inside-same-block-for-recursive-requirements-td4664178.html}, - urldate = {2014-09-23}, - note = {00000} -} -@misc{_squeak_????, - title = {squeak - Smalltalk - read input from the keyboard - Stack Overflow}, - url = {http://stackoverflow.com/questions/22933760/smalltalk-read-input-from-the-keyboard}, - urldate = {2014-09-23}, - note = {00000} -} -@misc{caekenberghe-ston, - title = {Smalltalk Object Notation ({STON})}, - shorttitle = {caekenberghe-ston}, - url = {https://github.com/svenvc/ston/blob/master/ston-paper.md}, - urldate = {2014-09-23}, - author = {Caekenberghe, Sven Van}, - month = may, - year = {2012}, - note = {00000} -} -@misc{_squeak_2009, - title = {squeak - Why isn't Smalltalk popular? - Stack Overflow}, - url = {http://stackoverflow.com/questions/711140/why-isnt-smalltalk-popular}, - urldate = {2014-09-23}, - month = apr, - year = {2009}, - note = {00000} -} -@misc{_performance_????, - title = {performance - Comparing newline counts speed between wc and Smalltalk - Stack Overflow}, - url = {http://stackoverflow.com/questions/8040642/comparing-newline-counts-speed-between-wc-and-smalltalk}, - urldate = {2014-09-23}, - note = {00000} -} -@misc{_reverse_????, - title = {Reverse words in a string - Rosetta Code}, - url = {http://rosettacode.org/wiki/Reverse_words_in_a_string#Smalltalk}, - urldate = {2014-09-23}, - note = {00000} -} -@misc{krampe_literal_2012, - title = {Literal arrays vs {JSON} vs {STON} vs Tirade - Roads Less Taken}, - url = {http://goran.krampe.se/2012/05/08/literal-arrays-vs-json-vs-ston-vs-tirade/}, - urldate = {2014-09-23}, - journal = {Roads Less Taken}, - author = {Krampe, Göran}, - month = may, - year = {2012}, - note = {00000} -} -@misc{ingy_dot_net_ingy_2007, - title = {Ingy 2.ö: {YAML} and {JSON}}, - url = {http://blog.ingy.net/2007/05/yaml-and-json.html}, - urldate = {2014-09-23}, - author = {{Ingy döt Net}}, - month = may, - year = {2007}, - note = {00000} -} -@misc{krampe_tirade_2009, - title = {Tirade, a file format for Smalltalkers - Roads Less Taken}, - url = {http://goran.krampe.se/2009/03/16/tirade-a-file-format-for-smalltalkers/}, - urldate = {2014-09-23}, - journal = {Roads Less Taken}, - author = {Krampe, Göran}, - month = mar, - year = {2009}, - note = {00000} -} -@misc{wikipedia_open_2014, - title = {Open research - Wikipedia, the free encyclopedia}, - url = {https://en.wikipedia.org/wiki/Open_research}, - urldate = {2014-09-23}, - author = {{Wikipedia}}, - month = sep, - year = {2014}, - note = {00000} -} -@incollection{sbe-strings, - title = {Chapter 12. Strings}, - isbn = {0079130364}, - shorttitle = {sbe-strings}, - url = {http://stephane.ducasse.free.fr/FreeBooks/ByExample/14%20-%20Chapter%2012%20-%20Strings.pdf}, - booktitle = {Smalltalk by Example: the Developer's Guide}, - author = {{Alex Sharp}}, - year = {1997}, - note = {00000} -} -@misc{_stephane_????, - title = {Stéphane Ducasse :: Free Online Books}, - url = {http://stephane.ducasse.free.fr/FreeBooks/}, - urldate = {2014-09-26}, - note = {00000} -} -@misc{_extracting_????, - title = {Extracting and manipulation numbers from a text string {\textbar} {GNU} Smalltalk}, - url = {http://smalltalk.gnu.org/blog/dragoncity/extracting-and-manipulation-numbers-text-string}, - urldate = {2014-09-26}, - note = {00000} -} -@misc{_blog_????, - title = {Blog of Visual Analytics Group {KU} Leuven}, - url = {http://homes.esat.kuleuven.be/~bioiuser/blog/}, - urldate = {2014-09-26} -} -@misc{_consistent_????, - title = {Consistent way to define document title, subtitle, author, affiliation, abstract etc - {TeX} - {LaTeX} Stack Exchange}, - url = {http://tex.stackexchange.com/questions/137381/consistent-way-to-define-document-title-subtitle-author-affiliation-abstract/137387#137387}, - urldate = {2014-09-26}, - note = {00000} -} -@misc{_impactstory:_????, - title = {Impactstory: about}, - url = {https://impactstory.org/about}, - urldate = {2014-09-26}, - note = {00000}, - keywords = {importante, profundizar} -} -@misc{activist_object_curating_2014, - title = {Curating the Activist Object: About the Activist Object}, - url = {http://activistobject.wordpress.com/about/}, - urldate = {2014-09-26}, - author = {{Activist Object}}, - year = {2014}, - note = {00000} -} -@misc{research-object-overview, - title = {Research Object Overview}, - shorttitle = {research-object-overview}, - url = {http://www.researchobject.org/overview/}, - urldate = {2014-09-26}, - author = {{Research Object}}, - note = {00000} -} -@book{girba-moose-book-intro, - title = {The Moose Book: Introduction}, - shorttitle = {girba-moose-book-intro}, - url = {http://www.themoosebook.org/book/introduction}, - urldate = {2014-09-27}, - author = {Girba, Tudor}, - note = {00000} -} -@misc{girba-custom-analyses, - title = {Moose: custom analyses made easy}, - shorttitle = {girba-custom-analyses}, - url = {http://www.humane-assessment.com/blog/moose-custom-analyses-made-easy}, - urldate = {2014-09-27}, - journal = {Humane assessment}, - author = {Girba, Tudor}, - note = {00000} -} -@misc{tymchuk_vidi_2014, - title = {{ViDI} Visual Design Inspector}, - url = {http://www.slideshare.net/esug/vidi-visual-design-inspector}, - urldate = {2014-09-27}, - author = {Tymchuk, Yuriy}, - collaborator = {Lanza, Michele}, - month = aug, - year = {2014}, - note = {00000} -} -@misc{grant_wythoff_sustainable_????, - title = {Sustainable Authorship in Plain Text using Pandoc and Markdown}, - url = {http://programminghistorian.org/lessons/sustainable-authorship-in-plain-text-using-pandoc-and-markdown}, - urldate = {2014-09-27}, - author = {{Grant Wythoff} and {Dennis Tenen}}, - collaborator = {{Fred Gibbs}}, - note = {00000} -} -@misc{_draft_????, - title = {Draft Docs}, - url = {http://docs.withdraft.com/}, - urldate = {2014-09-27}, - note = {00000} -} -@misc{_leanpub:_????, - title = {Leanpub: Publish Early, Publish Often}, - url = {https://leanpub.com/}, - urldate = {2014-09-27}, - note = {00000} -} -@misc{_why_????, - title = {Why Microsoft Word must Die - Charlie's Diary}, - url = {http://www.antipope.org/charlie/blog-static/2013/10/why-microsoft-word-must-die.html}, - urldate = {2014-09-27}, - note = {00000} -} -@misc{_smalltalk_????-1, - title = {smalltalk - Elegant way to remove the last part of a string? - Stack Overflow}, - url = {http://stackoverflow.com/questions/3053685/elegant-way-to-remove-the-last-part-of-a-string}, - urldate = {2014-09-27}, - note = {00000} -} -@misc{girba-playing-with-objects, - title = {Pharo: Playing with live objects}, - shorttitle = {girba-playing-with-objects}, - url = {http://vimeo.com/97315968}, - urldate = {2014-09-28}, - collaborator = {Girba, Tudor}, - month = jul, - year = {2014}, - note = {00000} -} -@misc{girba_moose_2014, - title = {Moose - how to solve real problems without reading code - {YouTube}}, - url = {http://www.youtube.com/watch?v=mikD2tPrA5w}, - urldate = {2014-09-29}, - collaborator = {Girba, Tudor}, - month = aug, - year = {2014}, - note = {00000} -} -@misc{_nube_????, - title = {Nube de etiquetas en Roassal 2}, - url = {https://upload.facebook.com/ObjectProfile/photos/a.341189379300999.82969.340543479365589/664029063683694/?type=1}, - urldate = {2014-09-29}, - note = {00000} -} -@misc{_how_????, - title = {How to open a txt File in Squeak4.1 - Stack Overflow}, - url = {http://stackoverflow.com/questions/5000602/how-to-open-a-txt-file-in-squeak4-1}, - urldate = {2014-09-30}, - note = {00000} -} -@article{lafuente_amateurs_2014, - title = {Amateurs, activistas y hackers: Tres formas de estar en la ciencia [*] {\textbar} Periódico Diagonal}, - url = {https://www.diagonalperiodico.net/blogs/fuera-clase/amateurs-activistas-y-hackers-tres-formas-estar-la-ciencia.html}, - urldate = {2014-09-30}, - journal = {Diagonal Periodico}, - author = {Lafuente, Antonio}, - month = sep, - year = {2014}, - note = {00000} -} -@misc{critical_art_emsamble_ciencia_2009, - title = {Ciencia de garaje - Medialab-Prado Madrid}, - url = {http://medialab-prado.es/article/garage_science}, - urldate = {2014-09-30}, - author = {{Critical Art Emsamble}}, - month = jan, - year = {2009}, - note = {00000} -} -@misc{_scrivener_????, - title = {Scrivener Writing Software {\textbar} Mac {OS} X {\textbar} Windows}, - url = {http://www.literatureandlatte.com/scrivener.php}, - urldate = {2014-10-01}, - publisher = {Literature \& Latte Ltd}, - note = {00000} -} -@misc{_ulysses_????, - title = {Ulysses}, - url = {http://www.ulyssesapp.com/}, - urldate = {2014-10-01}, - publisher = {The Soulmen {GbR}}, - note = {00260} -} -@misc{aufreiter_substance_2010, - title = {Substance Composer - Create beautiful web publications}, - url = {http://substance.io/composer/}, - urldate = {2014-10-01}, - publisher = {Substance Software {GmbH}}, - author = {Aufreiter, Michael and Buchtala, Oliver}, - year = {2010}, - note = {00000} -} -@misc{_software_????, - title = {Software release life cycle - Wikipedia, the free encyclopedia}, - url = {https://en.wikipedia.org/wiki/Software_release_life_cycle#Alpha}, - urldate = {2014-10-01} -} -@misc{_hazel_????, - title = {Hazel, Python, and {OCR}'d {PDFs} {\textbar} The Hackademic}, - url = {http://hackademic.postach.io/hazel-python-and-ocrd-pdfs}, - urldate = {2014-10-01}, - note = {00000} -} -@misc{_wikify:_????, - title = {Wikify: Alfred Workflow {\textbar} The Hackademic}, - url = {http://hackademic.postach.io/wikify-alfred-workflow}, - urldate = {2014-10-01}, - note = {00000} -} -@misc{_tools_????, - title = {Tools {\textbar} The Hackademic}, - url = {http://hackademic.postach.io/tools}, - urldate = {2014-10-01}, - note = {00000} -} -@misc{_passing_????, - title = {Passing variables to Pandoc - Grupos de Google}, - url = {https://groups.google.com/forum/#!topic/pandoc-discuss/DTt2x8FZ3JI}, - urldate = {2014-10-01}, - note = {00000} -} -@misc{_markdown_????, - title = {markdown - pandoc not converting latex style citations correctly - Stack Overflow}, - url = {http://stackoverflow.com/questions/14288699/pandoc-not-converting-latex-style-citations-correctly}, - urldate = {2014-10-01}, - note = {00000} -} -@misc{activist_object_curating_????, - title = {Curating the Activist Object: Project History}, - url = {http://activistobject.wordpress.com/project-history/}, - urldate = {2014-10-01}, - author = {{Activist Object}}, - note = {00000} -} -@misc{_rediscovering_????, - title = {Rediscovering the {UX} of the legendary {HP}-35 Scientific Pocket Calculator — Medium}, - url = {https://medium.com/@svenvc/rediscovering-the-ux-of-the-legendary-hp-35-scientific-pocket-calculator-d1d497ece999}, - urldate = {2014-10-01}, - note = {00000} -} -@misc{object_profile_roassal_2014, - title = {Roassal Tip \#3: Labelling any Roassal element.}, - url = {https://www.facebook.com/ObjectProfile/photos/a.341189379300999.82969.340543479365589/620967164656551/?type=1&theater}, - urldate = {2014-10-01}, - author = {{Object Profile}}, - month = apr, - year = {2014}, - note = {00000} -} -@article{perez_ipython:_2007, - title = {{IPython}: A System for Interactive Scientific Computing}, - volume = {9}, - url = {http://ipython.org/}, - doi = {10.1109/MCSE.2007.53.}, - number = {3}, - urldate = {2014-10-01}, - journal = {Computing in Science and Engineering}, - author = {Pérez, Fernando and Granger, Brian E.}, - month = jun, - year = {2007}, - note = {00000}, - pages = {21--29} -} -@misc{_pandoc_????, - title = {pandoc - Convert Markdown + Embedded Latex to {PDf} and Doc - {TeX} - {LaTeX} Stack Exchange}, - url = {http://tex.stackexchange.com/questions/104455/convert-markdown-embedded-latex-to-pdf-and-doc}, - urldate = {2014-10-01}, - note = {00000} -} -@misc{_how_????-1, - title = {How can I mix {LaTeX} in with Markdown? - Stack Overflow}, - url = {http://stackoverflow.com/questions/2188884/how-can-i-mix-latex-in-with-markdown}, - urldate = {2014-10-01}, - note = {00000} -} -@misc{luna_cardenas_grafoscopio_2014, - title = {Grafoscopio 3 presentaciones: interface, {STON} y markdown}, - url = {http://www.enlightenment.org/ss/e-54203e5c1de6e7.91406521.jpg}, - urldate = {2014-10-01}, - author = {Luna Cárdenas, Offray Vladimir}, - month = sep, - year = {2014}, - note = {00000} -} -@misc{_grafoscopio_????, - title = {Grafoscopio 3 presentaciones: markdown, pdf, interface}, - url = {http://www.enlightenment.org/ss/e-54232be72039d8.73743775.jpg}, - urldate = {2014-10-01}, - note = {00000} -} -@misc{_grafoscopio:_????, - title = {Grafoscopio: nodos invisibles con código}, - url = {http://www.enlightenment.org/ss/e-5423297ee88c18.64873528.jpg}, - urldate = {2014-10-01}, - note = {00000} -} -@misc{_voodoopad_????, - title = {{VoodooPad} from Plausible Labs}, - url = {https://plausible.coop/voodoopad/}, - urldate = {2014-10-01}, - note = {00000} -} -@misc{_how_????-2, - title = {How do I put keywords after abstract in amsart? - {TeX} - {LaTeX} Stack Exchange}, - url = {http://tex.stackexchange.com/questions/57793/how-do-i-put-keywords-after-abstract-in-amsart/57796#57796}, - urldate = {2014-10-01}, - note = {00000} -} -@misc{_conversion_????, - title = {conversion - Can an 'Abstract' parameter be passed to pandoc to create a latex file? - {TeX} - {LaTeX} Stack Exchange}, - url = {http://tex.stackexchange.com/questions/75404/can-an-abstract-parameter-be-passed-to-pandoc-to-create-a-latex-file}, - urldate = {2014-10-01}, - note = {00000} -} -@misc{_smalltalk_????-2, - title = {Smalltalk}, - url = {http://java.ociweb.com/mark/programming/Smalltalk.html}, - urldate = {2014-10-01} -} -@misc{_future_????, - title = {Future Of Smalltalk}, - url = {http://c2.com/cgi/wiki?FutureOfSmalltalk}, - urldate = {2014-10-01}, - note = {00478} -} -@misc{_[pharo-users]_????, - title = {[Pharo-users] Unicode in Smalltalk}, - url = {http://lists.gforge.inria.fr/pipermail/pharo-users/2013-March/005963.html}, - urldate = {2014-10-01}, - note = {00000} -} -@misc{_character_????-1, - title = {character encoding - How to correctly decode text files from {FileSystemReadStream} in Pharo 1.4 - Stack Overflow}, - url = {http://stackoverflow.com/questions/11739548/how-to-correctly-decode-text-files-from-filesystemreadstream-in-pharo-1-4}, - urldate = {2014-10-01}, - note = {00000} -} -@phdthesis{schenk_quicksilver:_2014, - title = {Quicksilver: A Framework for Hierarchical Data Analysis}, - url = {http://scg.unibe.ch/archive/masters/Sche14a.pdf}, - school = {University of Bern}, - author = {Schenk, Dennis}, - month = sep, - year = {2014}, - note = {00000} -} -@misc{fenner_six_????, - title = {Six Misunderstandings about Scholarly Markdown}, - url = {http://blog.martinfenner.org/2014/03/03/six-misunderstandings-about-scholarly-markdown/}, - urldate = {2014-10-01}, - author = {Fenner, Martin}, - note = {00000}, - keywords = {importante, por comentar} -} -@misc{fenner_challenges_????, - title = {Challenges in automated {DOI} resolution}, - url = {http://blog.martinfenner.org/2013/10/13/broken-dois/}, - urldate = {2014-10-01}, - author = {Fenner, Martin}, - note = {00000} -} -@misc{fenner_grammar_2013, - title = {The Grammar of Scholarly Communication}, - url = {http://blog.martinfenner.org/2013/11/17/the-grammar-of-scholarly-communication/}, - urldate = {2014-10-01}, - author = {Fenner, Martin}, - month = nov, - year = {2013}, - note = {00000} -} -@misc{wikipedia_parsing_????, - title = {Parsing expression grammar - Wikipedia, the free encyclopedia}, - url = {http://en.wikipedia.org/wiki/Parsing_expression_grammar}, - urldate = {2014-10-01}, - author = {{Wikipedia}}, - note = {00000} -} -@inproceedings{ford_parsing_2004, - address = {Venice, Italy}, - title = {Parsing Expression Grammars: A Recognition-Based Syntactic Foundation}, - url = {http://bford.info/pub/lang/peg}, - urldate = {2014-10-01}, - booktitle = {Symposium on Principles of Programming Languages}, - author = {Ford, Bryan}, - month = jan, - year = {2004}, - note = {00251} -} -@misc{wikipedia_wikipedia:lua_????, - title = {Wikipedia:Lua - Wikipedia, the free encyclopedia}, - url = {http://en.wikipedia.org/wiki/Wikipedia:Lua}, - urldate = {2014-10-01}, - author = {{Wikipedia}}, - note = {00000} -} -@misc{_structured_????, - title = {Structured Documents for Science: {JATS} {XML} as Canonical Content Format {\textbar} {PLOS} Tech}, - url = {http://blogs.plos.org/tech/structured-documents-for-science-jats-xml-as-canonical-content-format/}, - urldate = {2014-10-01}, - note = {00000} -} -@misc{beyond-pdf, - address = {Universität Bielefeld}, - title = {Publikationswerkzeuge für offene Wissenschaft und freie Software}, - shorttitle = {beyond-pdf}, - url = {http://www.ub.uni-bielefeld.de/~cpietsch/markdown/#/1}, - urldate = {2014-10-01}, - author = {{Christian Pietsch} and {Vitali Peil} and {Najko Jahn}}, - month = nov, - year = {2013}, - note = {00000} -} -@misc{fenner_commenting_????, - title = {Commenting on scientific papers}, - url = {http://blog.martinfenner.org/2013/10/25/commenting-on-scientific-papers/}, - urldate = {2014-10-01}, - author = {Fenner, Martin}, - note = {00000} -} -@book{wenger_communities_1999, - title = {Communities of practice}, - publisher = {Cambridge University Press}, - author = {Wenger, Etienne}, - month = dec, - year = {1999}, - note = {00092} -} -@misc{_ui_????, - title = {{UI} with Pharo - Education 0.2}, - url = {http://blog.ofset.org/hilaire/index.php?post/2010/04/10/UI-with-Pharo}, - urldate = {2014-06-23}, - note = {00000}, - keywords = {interface gráfica, tutoriales} -} -@misc{bergel_software_2014, - title = {Software as graph}, - url = {http://vimeo.com/94724841}, - urldate = {2014-06-24}, - author = {Bergel, Alexandre}, - year = {2014}, - note = {00000} -} -@book{deep-into-pharo, - title = {Deep into Pharo}, - isbn = {September 1, 2013}, - shorttitle = {deep-into-pharo}, - url = {http://www.deepintopharo.com/}, - urldate = {2014-06-25}, - publisher = {Square Bracket Associates}, - author = {{Alexandre Bergel} and {Damien Cassou} and {Stéphane Ducasse} and {Jannik Laval}}, - note = {00000} -} -@misc{macfarlane_pandoc_2014, - title = {Pandoc}, - url = {http://johnmacfarlane.net/pandoc/}, - urldate = {2014-07-04}, - author = {MacFarlane, John}, - month = may, - year = {2014}, - note = {00000} -} -@misc{_collections_????, - title = {Collections in Smalltalk Hamming’s Problem Revisited}, - url = {http://web.cecs.pdx.edu/~cs410aph/Lectures/Listy%20things%20in%20Smalltalk/Listy%20things.pdf}, - note = {00000} -} -@misc{_pharo_????-2, - title = {Pharo Smalltalk Users - Roassal \& Spec?}, - url = {http://forum.world.st/Roassal-amp-Spec-td4690745.html}, - urldate = {2014-07-29}, - note = {00000}, - keywords = {interface gráfica} -} -@misc{_roassal:_????, - title = {Roassal: Nube de etiquetas.}, - url = {https://upload.facebook.com/ObjectProfile/photos/a.341189379300999.82969.340543479365589/664029063683694/?type=1}, - urldate = {2014-08-04}, - note = {00000} -} -@misc{Girba-2011, - title = {Holistic software assessment (Uni Zurich - 2011) on Vimeo}, - shorttitle = {Girba-2011}, - url = {http://vimeo.com/42073344?from=outro-local}, - urldate = {2014-08-19}, - note = {00000} -} -@misc{_orderedcollection-adding_????, - title = {{OrderedCollection}-adding - {GNU} Smalltalk Library Reference}, - url = {https://www.gnu.org/software/smalltalk/manual-base/html_node/OrderedCollection_002dadding.html}, - urldate = {2014-08-20}, - note = {00000} -} -@article{luna_cardenas_ecologisaberes_2014, - title = {Ecología de Saberes en Diseño: Un ejemplo desde los discursos autopoiéticos}, - url = {http://mutabit.com/deltas/repos.fossil/doctorado-offray/doc/tip/Tesis/ExamenCandidatura/Escrito2/luna-offray-ecologia-de-saberes-en-diseno.pdf}, - author = {Luna Cárdenas, Offray Vladimir}, - year = {2014}, - note = {00000} -} -@misc{_twitter_????, - title = {Twitter Roassal {PlayGround}}, - url = {http://smalltalkhub.com/#!/~arturozambrano/TwitterRoassalPlayGround}, - urldate = {2014-08-26}, - note = {00000} -} -@incollection{_chapter_????, - title = {Chapter 8: Streams}, - url = {http://www.inf.ufsc.br/poo/smalltalk/ibm/tutorial/chap8.html}, - urldate = {2014-08-28}, - note = {00002} -} -@misc{_why_????-1, - title = {Why Medium Notes Are Different and How to Use Them Well — About Medium — Medium}, - url = {https://medium.com/about/why-medium-notes-are-different-and-how-to-use-them-well-5972c72b18f2}, - urldate = {2014-10-01}, - note = {00000} -} -@misc{_peerj_????, - title = {{PeerJ} Questions: a new way to never 'Publish \& Forget' again - {PeerJ} Blog}, - url = {http://blog.peerj.com/post/62886292466/peerj-questions-a-new-way-to-never-publish-forget}, - urldate = {2014-10-01}, - note = {00000} -} -@misc{_why_????-2, - title = {Why bioinformaticians hate the “traditional journal article” {\textbar} What You're Doing Is Rather Desperate}, - url = {http://nsaunders.wordpress.com/2013/11/06/why-bioinformaticians-hate-the-traditional-journal-article/}, - urldate = {2014-10-01}, - note = {00000} -} -@misc{_ropensci_????, - title = {{rOpenSci} - Open Tools for Open Science}, - url = {http://ropensci.org/}, - urldate = {2014-10-01}, - note = {00000} -} -@misc{healy_plain_2014, - title = {Plain Text, Papers, Pandoc}, - url = {http://kieranhealy.org/blog/archives/2014/01/23/plain-text/}, - urldate = {2014-10-01}, - author = {Healy, Kieran}, - month = jan, - year = {2014}, - note = {00000} -} -@misc{fenner_metadata_2013, - title = {Metadata in Scholarly Markdown}, - url = {http://blog.martinfenner.org/2013/06/29/metadata-in-scholarly-markdown/}, - urldate = {2014-10-01}, - author = {Fenner, Martin}, - month = jun, - year = {2013}, - note = {00000} -} -@misc{_how_????-3, - title = {How to reference a figure in pandoc markdown? - Grupos de Google}, - url = {https://groups.google.com/forum/#!topic/pandoc-discuss/MxGKvnNI08c}, - urldate = {2014-10-01}, - note = {00000} -} -@misc{_emacs_????, - title = {Emacs Pandoc-mode}, - url = {http://joostkremers.github.io/pandoc-mode/}, - urldate = {2014-10-02}, - note = {00000} -} -@misc{jonathan_frederic_ipython+markdown+pandoc+limitations_????, - title = {{IPython}+Markdown+Pandoc+Limitations}, - url = {http://nbviewer.ipython.org/urls/gist.githubusercontent.com/jdfreder/6734825/raw/529872f1b4544d6e270c92c0335c6a348ce6cf4a/IPython+Markdown+Pandoc+Limitations.ipynb#}, - urldate = {2014-10-02}, - author = {{Jonathan Frederic}}, - note = {00000} -} -@misc{oscar_merida_publishing_2014, - title = {Publishing alchemy with markdown and pandoc}, - url = {http://www.slideshare.net/omerida/alchemy-markdownpandoc}, - urldate = {2014-10-02}, - author = {{Oscar Merida}}, - month = aug, - year = {2014}, - note = {00000} -} -@misc{_luatex_????, - title = {{LuaTeX} Welcome}, - url = {http://www.luatex.org/}, - urldate = {2014-10-02}, - note = {00000} -} -@misc{_no_????, - title = {No Graphics Extension recognized • Graphics, Figures \& Tables • {LaTeX} Community}, - url = {http://latex-community.org/forum/viewtopic.php?f=45&t=24019}, - urldate = {2014-10-02}, - note = {00000} -} -@misc{_2014_????, - title = {2014 01-ticosa}, - url = {http://www.slideshare.net/pharoproject/2014-01ticosa-ter}, - urldate = {2014-10-02}, - note = {00000} -} -@misc{better-bibtex, - title = {Better {BibTeX}: Citation Keys}, - shorttitle = {better-bibtex}, - url = {https://zotplus.github.io/better-bibtex/Citation-Keys.html}, - urldate = {2014-10-03}, - author = {{ZotPlus}}, - note = {00000 bibtex: zotero-1378135-2195} -} -@misc{_lesson_????, - title = {Lesson Directory}, - url = {http://programminghistorian.org/lessons/}, - urldate = {2014-10-03}, - note = {00003} -} -@misc{_ten_????, - title = {Ten Things I Hate About Object-Oriented Programming — The {JOT} Blog}, - url = {http://blog.jot.fm/2010/08/26/ten-things-i-hate-about-object-oriented-programming/}, - urldate = {2014-10-04}, - note = {00000} -} -@misc{_tudor_????, - title = {Tudor "Doru" Girba: Publications}, - url = {http://www.tudorgirba.com/publications}, - urldate = {2014-10-07}, - note = {00000}, - keywords = {bibtex, citezen} -} -@misc{citezen-barreau, - title = {Citezen Université Lille 1 - Résumé de stage - licence mention Informatique 2010-2011}, - shorttitle = {citezen-barreau}, - url = {http://www.fil.univ-lille1.fr/~decomite/ue/ResumesStages/2010/resumes/barreau/abstract.php}, - urldate = {2014-10-07}, - author = {Barreau, Adrien}, - note = {00000} -} -@techreport{citezen-pollet-report, - title = {Citezen, a nicer bibliography toolkit}, - shorttitle = {citezen-pollet-report}, - url = {http://vst.ensm-douai.fr/ESUG2009Media/uploads/1/citezen-EsugAwards2009.pdf}, - author = {Pollet, Damien}, - note = {00000} -} -@misc{_latex/floats_????, - title = {{LaTeX}/Floats, Figures and Captions - Wikibooks, open books for an open world}, - url = {https://en.wikibooks.org/wiki/LaTeX/Floats,_Figures_and_Captions}, - urldate = {2014-10-07}, - note = {00000} -} -@misc{healey_kjhealy/latex-custom-kjh_????, - title = {kjhealy/latex-custom-kjh}, - url = {https://github.com/kjhealy/latex-custom-kjh}, - urldate = {2014-10-07}, - author = {Healey, Kieran}, - note = {00000} -} -@misc{_michele_????, - title = {Michele Lanza {\textgreater} Publications}, - url = {http://www.inf.usi.ch/faculty/lanza/publications.html}, - urldate = {2014-10-07}, - note = {00000} -} -@misc{wettel_visually_????, - title = {Visually Localizing Design Problems with Disharmony Maps}, - url = {http://www.slideshare.net/wettel/visually-localizing-design-problems-with-disharmony-maps-presentation}, - author = {Wettel, Richard and Lanza, Michele}, - note = {00041} -} -@phdthesis{junker_kumpel:_????, - title = {Kumpel: Visual Exploration of File Histories}, - url = {http://scg.unibe.ch/archive/masters/Junk09a.pdf}, - author = {Junker, Matthias}, - note = {00002} -} -@misc{zotero-api-v3, - title = {Zotero Web {API} Documentation v. 3}, - shorttitle = {zotero-api-v3}, - url = {https://www.zotero.org/support/dev/web_api/v3/basics}, - urldate = {2014-10-07}, - note = {00000} -} -@misc{_lyz:_????, - title = {{LyZ}: {LyX} plugin for Zotero « The Joys and Sorrows Of a Life At Sea}, - url = {http://www.klubko.net/en/lyz/}, - urldate = {2014-10-07}, - note = {00000} -} -@misc{zotero-api, - title = {Zotero Web {API} v3}, - shorttitle = {zotero-api}, - url = {https://www.zotero.org/support/dev/web_api/v3/start}, - urldate = {2014-10-07}, - author = {Fritz, Christian}, - note = {00000} -} -@misc{zotero-bibtex-mit, - title = {Zotero with {LaTeX} and {BibTeX} - Zotero at {MIT} - Research Guides at {MIT} Libraries}, - shorttitle = {zotero-bibtex-mit}, - url = {http://libguides.mit.edu/content.php?pid=55482&sid=406343}, - urldate = {2014-10-07}, - note = {00000} -} -@misc{_pandoc_????-1, - title = {Pandoc Citations}, - url = {http://gitit.net/Pandoc%20Citations}, - urldate = {2014-10-07}, - note = {00000} -} -@misc{krautzberger_why_????, - title = {Why markdown, not \${\textbackslash}{LaTeX}\$?}, - url = {http://boolesrings.org/krautzberger/2011/08/03/why-markdown-not-latex/}, - urldate = {2014-10-07}, - author = {Krautzberger, Peter}, - note = {00000} -} -@misc{_welcome_????, - title = {Welcome to {GNU} {TeXmacs} ({FSF} {GNU} project)}, - url = {http://www.texmacs.org/tmweb/home/welcome.en.html}, - urldate = {2014-10-07}, - note = {00000} -} -@misc{_ometa:_????, - title = {{OMeta}: an Object-Oriented Language for Pattern Matching}, - url = {http://tinlizzie.org/ometa/}, - urldate = {2014-10-07}, - note = {00063} -} -@techreport{viewpoints_research_institute_steps_2010, - title = {{STEPS} Toward Expressive Programming Systems 2010 Progress Report Submitted to the National Science Foundation ({NSF}) October 2010.}, - url = {http://www.vpri.org/pdf/tr2010004_steps10.pdf}, - institution = {Viewpoints Research Institute}, - author = {{Viewpoints Research Institute}}, - year = {2010}, - note = {00000} -} -@misc{breuer_lecture_????, - title = {Lecture - Visualising Numbers (Part 1) - Felix Breuer's Blog}, - url = {http://blog.felixbreuer.net/2011/08/23/visualising-numbers-part1.html}, - urldate = {2014-10-07}, - author = {Breuer, Felix}, - note = {00000} -} -@misc{open-science-to-open-math, - title = {From Open Science to Open Mathematics - Felix Breuer's Blog}, - shorttitle = {open-science-to-open-math}, - url = {http://blog.felixbreuer.net/2013/07/14/from-open-science-to-open-mathematics.html}, - urldate = {2014-10-07}, - author = {Breuer, Felix}, - note = {00000} -} -@misc{breuer_qute_????, - title = {Qute for {PC}/Mac}, - url = {http://www.inkcode.net/qute}, - urldate = {2014-10-07}, - author = {Breuer, Felix}, - note = {00000} -} -@misc{breuer_qute_2011, - title = {Qute for {PC}/Mac}, - url = {http://blog.felixbreuer.net/2011/06/30/qute.html}, - urldate = {2014-10-07}, - journal = {Felix Breuer's Blog}, - author = {Breuer, Felix}, - month = jun, - year = {2011} -} -@misc{_skribilo:_????, - title = {Skribilo: The Ultimate Document Programming Framework}, - url = {http://www.nongnu.org/skribilo/}, - urldate = {2014-10-07}, - note = {00000} -} -@misc{_programming_????, - title = {The Programming Historian: Lesson Directory}, - url = {http://programminghistorian.org/lessons/}, - urldate = {2014-10-07}, - note = {00000}, - keywords = {por leer} -} -@misc{_-line_????, - title = {The On-Line Encyclopedia of Integer Sequences® ({OEIS}®)}, - url = {http://oeis.org/}, - urldate = {2014-10-07} -} -@misc{zotero-api-intro-ph, - title = {Intro to the Zotero {API}}, - shorttitle = {zotero-api-intro-ph}, - url = {http://programminghistorian.org/lessons/intro-to-the-zotero-api.html}, - urldate = {2014-10-07}, - author = {{Amanda Morton}}, - collaborator = {{Fred Gibbs}}, - note = {00000} -} -@misc{_latex/importing_????, - title = {{LaTeX}/Importing Graphics - Wikibooks, open books for an open world}, - url = {https://en.wikibooks.org/wiki/LaTeX/Importing_Graphics}, - urldate = {2014-10-07}, - note = {00000} -} -@misc{_how_????-4, - title = {How can I install just {pdfTeX} and {pdfLaTeX} without additional stuff on a mac? - {TeX} - {LaTeX} Stack Exchange}, - url = {http://tex.stackexchange.com/questions/102644/how-can-i-install-just-pdftex-and-pdflatex-without-additional-stuff-on-a-mac}, - urldate = {2014-10-07}, - note = {00000} -} -@misc{_pdflatex_????, - title = {pdflatex binaries for win32? - {TeX} - {LaTeX} Stack Exchange}, - url = {http://tex.stackexchange.com/questions/36400/pdflatex-binaries-for-win32}, - urldate = {2014-10-07}, - note = {00000} -} -@misc{_markdown_????-1, - title = {Markdown to {LaTeX} conversion with a custom preamble using Pandoc - Earthwithsun.com}, - url = {http://earthwithsun.com/questions/356032/markdown-to-latex-conversion-with-a-custom-preamble-using-pandoc}, - urldate = {2014-10-07}, - note = {00000} -} -@misc{wettel_codecity_????, - title = {{CodeCity} Video Tutorials}, - url = {http://www.inf.usi.ch/phd/wettel/codecity-tutorials.html}, - urldate = {2014-10-08}, - author = {Wettel, Richard}, - note = {00000} -} -@incollection{_agile_????-1, - title = {Agile Visualization: Agile Graph Building}, - url = {https://dl.dropboxusercontent.com/u/31543901/AgileVisualization/Graph/0204-Graph.html}, - urldate = {2014-10-08}, - note = {00000} -} -@article{bracha_pluggabletypesystems_2004, - title = {{PluggableTypeSystems}}, - url = {http://bracha.org/pluggableTypesPosition.pdf}, - author = {Bracha, Gilad}, - month = oct, - year = {2004}, - note = {00000} -} -@misc{chris_taylor_rewarding_2013, - title = {Rewarding contributions to public resources with the Mozilla {OBI}}, - url = {http://www.slideshare.net/ChrisTaylor3/rewarding-contributions-to-public-resources-with-the-mozilla-obi}, - urldate = {2014-10-10}, - author = {{Chris Taylor}}, - month = jul, - year = {2013}, - note = {00000} -} -@misc{_using_????, - title = {Using {ImpactStory}: an Introduction}, - url = {http://www.slideshare.net/SarahG_SS/using-impactstory-an-introduction}, - urldate = {2014-10-10}, - note = {00000} -} -@misc{_altmetrics_????, - title = {Altmetrics 2014-4-15-slideshare}, - url = {http://www.slideshare.net/CMHSL/altmetrics-2014415slideshare}, - urldate = {2014-10-10}, - note = {00000} -} -@misc{_altmetric_????, - title = {Altmetric - We Make Article Level Metrics Easy.}, - url = {http://www.altmetric.com/}, - urldate = {2014-10-10}, - note = {00000} -} -@misc{_plumx_????, - title = {{PlumX} - Peter Brusilovsky}, - url = {https://plu.mx/u/pbrusilovsky}, - urldate = {2014-10-10}, - note = {00000} -} -@misc{_plumx_????-1, - title = {{PlumX}}, - url = {https://plu.mx/}, - abstract = {{PlumXTM} is an impact dashboard that provides evidence of how research output in all its forms is being utilized, interacted with, and talked about around the world. Harvesting metrics from a multitude of online sources, {PlumX} offers an exciting new way to see the influence of researchers, groups, and institutions. You no longer have to wait for years until the research is eventually cited before you gain any insight. Don’t limit yourself to articles—{PlumX} tracks dozens of artifact types. Through summaries and visualizations of the data you can quickly see metrics never before available. You can also dive into the data using the {PlumX} toolset or export to it to the tools you currently use.}, - urldate = {2014-10-10}, - note = {00002} -} -@misc{_tweet_????, - title = {Tweet Your Pubs: How Altmetrics are Changing the Way We Measure Resea…}, - url = {http://www.slideshare.net/featherr/tweet-your-pubs}, - urldate = {2014-10-10}, - note = {00000} -} -@misc{_altmetrics_????-1, - title = {\#altmetrics 101}, - url = {http://www.slideshare.net/mishdalton/altmetrics-101}, - urldate = {2014-10-10}, - note = {00000} -} -@misc{_papercritic_????, - title = {{PaperCritic} Tour}, - url = {http://www.papercritic.com/tour}, - urldate = {2014-10-10}, - note = {00000} -} -@misc{_introduction_????, - title = {Introduction to Altmetrics}, - url = {http://www.slideshare.net/lmgalloway/introductionto-altmetrics-062013}, - urldate = {2014-10-10}, - note = {00000} -} -@misc{_spoton2013:_????, - title = {{SpotOn}2013: Yet another wonderful meeting {\textbar} petermr's blog}, - url = {http://blogs.ch.cam.ac.uk/pmr/2013/11/10/spoton2013-yet-another-wonderful-meeting/}, - urldate = {2014-10-10}, - note = {00000} -} -@misc{_beyond_????, - title = {Beyond the {PDF}}, - url = {https://sites.google.com/site/beyondthepdf/}, - urldate = {2014-10-10}, - note = {00000}, - keywords = {Talleres} -} -@article{_toward_????, - title = {Toward Reproducible Computational Research: An Empirical Analysis of Data and Code Policy Adoption by Journals}, - url = {http://www.plosone.org/article/info%3Adoi%2F10.1371%2Fjournal.pone.0067111}, - urldate = {2014-10-10}, - note = {00015} -} -@misc{peer-review-plus-reproducible, - title = {“It’s not only peer-reviewed, it’s reproducible!” {\textbar} {OKF} Open Science Working Group}, - shorttitle = {peer-review-plus-reproducible}, - url = {http://science.okfn.org/2013/10/18/its-not-only-peer-reviewed-its-reproducible/}, - urldate = {2014-10-10}, - author = {Kraker, Peter}, - note = {00000} -} -@misc{_solo13lego:_????, - title = {\#solo13lego: Research Roles Through Lego {\textbar} The Stilettoed Mathematician}, - url = {http://sophiekershaw.wordpress.com/2013/11/14/research-roles-through-lego/}, - urldate = {2014-10-10}, - note = {00000} -} -@misc{results-may-vary, - title = {Results may vary: Collaborations Workshop, Oxford 2014}, - shorttitle = {results-may-vary}, - url = {http://www.slideshare.net/carolegoble/results-may-vary-collaborations-workshop-oxford-2014}, - urldate = {2014-10-10}, - author = {{Carole Goble}}, - month = aug, - year = {2014}, - note = {00000} -} -@misc{_science_????, - title = {Science Code Manifesto}, - url = {http://sciencecodemanifesto.org/}, - urldate = {2014-10-10}, - note = {00003} -} -@misc{_recomputation.org_????, - title = {recomputation.org Home Page - recomputation.org}, - url = {http://recomputation.org/}, - urldate = {2014-10-10}, - note = {00000} -} -@misc{_gigascience_????, - title = {{GigaScience}}, - url = {http://www.gigasciencejournal.com/}, - urldate = {2014-10-10}, - note = {00008} -} -@misc{_best_????, - title = {Best Practices for Scientific Computing}, - url = {http://arxiv.org/abs/1210.0530}, - urldate = {2014-10-10}, - note = {00039} -} -@misc{_crapl:_????, - title = {The {CRAPL}: An academic-strength open source license}, - url = {http://matt.might.net/articles/crapl/}, - urldate = {2014-10-10}, - note = {00000} -} -@misc{cannot-reproduce-lab-work, - title = {I Cannot Reproduce The Work From My Own Laboratory}, - shorttitle = {cannot-reproduce-lab-work}, - url = {http://www.slideshare.net/pebourne/ebi121102013}, - urldate = {2014-10-10}, - author = {Bourne, Philip E.}, - note = {00000} -} -@misc{_results_????, - title = {Results may vary: what is reproducible? …{ISMB}/{ECCB} 2013 Keynote Goble}, - url = {http://www.slideshare.net/carolegoble/ismb2013-keynotecleangoble}, - urldate = {2014-10-10}, - note = {00000} -} -@article{charlton_peer_????, - title = {Peer usage versus peer review}, - author = {Charlton, Bruce G}, - note = {00004} -} -@misc{_political_????, - title = {Political Science Replication {\textbar} Twitter: @{PolSciReplicate} {\textbar} Facebook: https://www.facebook.com/{PoliticalScienceReplicationBlog}}, - url = {http://politicalsciencereplication.wordpress.com/}, - urldate = {2014-10-10}, - note = {00000} -} -@misc{_open_????, - title = {Open Repositories 2013. Schedule / Presentations}, - url = {http://or2013.net/program/session-schedule}, - urldate = {2014-10-10}, - note = {00000} -} -@misc{_promoting_????, - title = {Promoting Insight-Based Evaluation of Visualizations}, - url = {http://dl.acm.org/citation.cfm?id=1320860}, - urldate = {2014-10-10}, - note = {00092} -} -@misc{_toward_????-1, - title = {Toward Measuring Visualization Insight}, - url = {http://dl.acm.org/citation.cfm?id=1137267}, - urldate = {2014-10-10}, - note = {00206} -} -@misc{_standards_????, - title = {Standards for Science Mapping and Classifications – workshop at the {ISSI} 2013 {\textbar} {KNOWeSCAPE}}, - url = {http://knowescape.org/standards-for-science-mapping-and-classifications-workshop-at-the-issi-2013/}, - urldate = {2014-10-10}, - note = {00000} -} -@misc{_jetbrains_????, - title = {{JetBrains} {onBoard} Online Magazine :: Language Oriented Programming: The Next Programming Paradigm}, - url = {http://www.onboard.jetbrains.com/is1/articles/04/10/lop/}, - urldate = {2014-10-10}, - note = {00000} -} -@misc{_side_????, - title = {side by side minipage figures - {TeX} - {LaTeX} Stack Exchange}, - url = {http://tex.stackexchange.com/questions/68001/side-by-side-minipage-figures/193104#193104}, - urldate = {2014-10-11}, - note = {00000} -} -@misc{_how_????-5, - title = {How do I set variables in latex template used for pandoc markdown to pdf conversion - {TeX} - {LaTeX} Stack Exchange}, - url = {http://tex.stackexchange.com/questions/102873/how-do-i-set-variables-in-latex-template-used-for-pandoc-markdown-to-pdf-convers}, - urldate = {2014-10-11}, - note = {00000} -} -@misc{girba_moose_????-1, - title = {Moose Tutorial at {WCRE} 2008}, - url = {http://www.slideshare.net/girba/moose-tutorial-wcre-2008-presentation?src=related_normal&rel=5580749}, - urldate = {2014-10-11}, - author = {Girba, Tudor}, - note = {00000} -} -@misc{_tools_2011, - title = {{TOOLS} Europe 2011 – Day 1}, - url = {http://blog.jot.fm/2011/08/}, - urldate = {2014-10-11}, - journal = {The {JOT} Blog}, - month = aug, - year = {2011}, - note = {00000} -} -@phdthesis{_noop:_????, - title = {{NOOP}: A mathematical model of object-oriented programming}, - url = {http://scholarship.rice.edu/handle/1911/70199}, - urldate = {2014-10-11}, - note = {00003} -} -@misc{_daniels_????, - title = {Daniel's Blog: Alan Kay on Object-Oriented Programming}, - url = {http://himmele.blogspot.com/2010/11/alan-kay-on-object-oriented-programming.html}, - urldate = {2014-10-11}, - note = {00000} -} -@misc{_latex/internationalization_????, - title = {{LaTeX}/Internationalization - Wikibooks, open books for an open world}, - url = {https://en.wikibooks.org/wiki/LaTeX/Internationalization}, - urldate = {2014-10-11}, - note = {00000} -} -@misc{_how_????-6, - title = {how to add a jpg image in Latex - Stack Overflow}, - url = {http://stackoverflow.com/questions/3134187/how-to-add-a-jpg-image-in-latex}, - urldate = {2014-10-11}, - note = {00000} -} -@article{steven_douglas_cochran_subfigure_2005, - title = {The subfigure Package}, - url = {http://mirror.math.ku.edu/tex-archive/obsolete/macros/latex/contrib/subfigure/subfigure.pdf}, - author = {{Steven Douglas Cochran}}, - month = mar, - year = {2005}, - note = {00000} -} -@misc{_how_????-7, - title = {How to display side-by-side figures in {LaTeX} {\textbar} The Endeavour}, - url = {http://www.johndcook.com/blog/2009/01/14/how-to-display-side-by-side-figurs-in-latex/}, - urldate = {2014-10-11}, - note = {00000} -} -@misc{_placing_????, - title = {Placing figures/tables side-by-side ({\textbackslash}minipage)}, - url = {http://texblog.org/2007/08/01/placing-figurestables-side-by-side-minipage/}, - urldate = {2014-10-11}, - note = {00000} -} -@article{_visually_????, - title = {Visually Supporting Source Code Changes Integration: the Torch Dashboard}, - url = {http://rmod.lille.inria.fr/archives/papers/Uqui10a-Torch-WCRE10.pdf}, - note = {00008} -} -@misc{_pandoc-templates_????, - title = {pandoc-templates / templates / latex.template}, - url = {https://raw.githubusercontent.com/kjhealy/pandoc-templates/master/templates/latex.template}, - urldate = {2014-10-11}, - note = {00000} -} -@misc{_pandoc_????-2, - title = {Pandoc User’s Guide}, - url = {http://johnmacfarlane.net/pandoc/README.html}, - urldate = {2014-10-11}, - note = {00000} -} -@misc{_writing_????, - title = {Writing workflow: Markdown, Pandoc, {LaTeX} and the likes {\textbar} Data-Intuitive}, - url = {http://www.data-intuitive.com/2013/06/writing-workflow-markdown-pandoc-latex-and-the-likes/}, - urldate = {2014-10-11}, - note = {00000} -} -@misc{_template/elsarticle.latex_????, - title = {template/elsarticle.latex at master · cboettig/template}, - url = {https://github.com/cboettig/template/blob/master/manuscripts/components/elsarticle.latex}, - urldate = {2014-10-11}, - note = {00000}, - keywords = {{LaTeX}, pandoc} -} -@misc{_pandoc-templates/default.latex_????, - title = {pandoc-templates/default.latex at master · jgm/pandoc-templates}, - url = {https://github.com/jgm/pandoc-templates/blob/master/default.latex}, - urldate = {2014-10-11}, - note = {00000} -} -@book{_science_2012, - title = {Science as an open enterprise}, - isbn = {978-0-85403-962-3}, - url = {https://royalsociety.org/~/media/Royal_Society_Content/policy/projects/sape/2012-06-20-SAOE.pdf}, - month = jun, - year = {2012}, - note = {00020} -} -@misc{_science_????-1, - title = {Science as an open enterprise: Final report {\textbar} Royal Society}, - url = {https://royalsociety.org/policy/projects/science-public-enterprise/report/}, - urldate = {2014-10-11}, - note = {00000} -} -@article{_promoting_????-1, - title = {Promoting Insight Based Evaluation of Visualizations: From Contest to Benchmark Repository}, - journal = {{IEEE} transactions on visualization and computer graphics}, - note = {00092} -} -@misc{_re-use_????, - title = {Re-use and Reproducibility: Opportunities and Challenges}, - url = {http://or2013.net/sites/or2013.net/files/OR2013-July92013-STODDEN.pdf}, - note = {00000} -} -@misc{_role_????, - title = {The Role of Data Repositories in Reproducible Research {\textbar} Institution for Social and Policy Studies}, - url = {http://isps.yale.edu/news/blog/2013/07/the-role-of-data-repositories-in-reproducible-research#.VDhN3ESVthE}, - urldate = {2014-10-11}, - note = {00000} -} -@misc{_curation_????, - title = {Curation Continuum}, - url = {http://ands.org.au/guides/curation.continuum.html}, - urldate = {2014-10-11}, - note = {00034} -} -@misc{_what_????, - title = {What is holding us back?}, - url = {http://blog.martinfenner.org/2013/11/11/what-is-holding-us-back/}, - urldate = {2014-10-11}, - note = {00075} -} -@article{open-sci-in-learning, - title = {The case for an open science in technology enhanced learning}, - volume = {3}, - shorttitle = {open-sci-in-learning}, - number = {6}, - journal = {Int. J. Technology Enhanced Learning}, - author = {Kraker, Peter and Leony, Derick and Reinhardt, Wolfgang and Beham, Günter}, - year = {2011}, - note = {00003}, - pages = {643} -} -@misc{_myexperiment_????, - title = {{myExperiment}}, - url = {http://www.myexperiment.org/}, - urldate = {2014-10-11}, - note = {00104} -} -@misc{citezen-pollet-repository, - title = {Citezen}, - shorttitle = {citezen-pollet-repository}, - url = {http://people.untyped.org/damien.pollet/software/citezen/}, - urldate = {2014-10-12}, - author = {Pollet, Damien}, - note = {00000} -} -@misc{_kendrick:_????, - title = {Kendrick: Domain-Specific Language and Simulation Plaform for mathematical epidemiology modeling.}, - url = {https://github.com/UMMISCO/Kendrick}, - urldate = {2014-10-13}, - note = {00000} -} -@misc{_hismo_????, - title = {Hismo Importer}, - url = {http://www.enlightenment.org/ss/e-543b30a9a3fae3.70933846.jpg}, - urldate = {2014-10-13}, - note = {00000} -} -@misc{_creating_????, - title = {Creating custom browsers out of {GTInspector} extensions}, - url = {http://www.humane-assessment.com/blog/creating-custom-browsers-out-of-inspector-extensions}, - urldate = {2014-10-15}, - note = {00000} -} -@misc{_latex_????, - title = {{LaTeX} Templates » The Legrand Orange Book}, - url = {http://www.latextemplates.com/template/the-legrand-orange-book}, - urldate = {2014-10-17}, - note = {00000} -} -@misc{_latex_????-1, - title = {{LaTeX} Templates » Tufte-Style Book}, - url = {http://www.latextemplates.com/template/tufte-style-book}, - urldate = {2014-10-17}, - note = {00000} -} -@misc{_latex_????-2, - title = {{LaTeX} Templates}, - url = {http://www.latextemplates.com/}, - urldate = {2014-10-17}, - note = {00051} -} -@misc{_sage:_????, - title = {Sage: Open Source Mathematics Software: A Non-technical Overview of the {SageMathCloud} Project}, - url = {http://sagemath.blogspot.com/2014/10/a-non-technical-overview-of.html}, - urldate = {2014-10-17}, - note = {00000} -} -@article{lafuente_critica_2013, - title = {La crítica de la ciencia}, - volume = {141}, - url = {http://www.profesiones.org/var/plain/storage/original/application/55787586cfc72081a1dc891d40a3fbb5.pdf}, - journal = {Profesiones}, - author = {Lafuente, Antonio}, - month = feb, - year = {2013}, - note = {00000}, - pages = {48--49} -} -@misc{_pharo_????-3, - title = {Pharo Smalltalk Developers - the glamorous toolkit project}, - url = {http://forum.world.st/the-glamorous-toolkit-project-td3349849.html}, - urldate = {2014-10-21}, - note = {00000} -} -@misc{tudor_glamorous_2014, - title = {the glamorous toolkit}, - url = {http://gt.moosetechnology.org/}, - urldate = {2014-10-21}, - author = {Tudor, Girba and Chis, Andrei and Syrel, Alex}, - year = {2014}, - note = {00000} -} -@misc{luna_cardenas_outliner_2014, - title = {Outliner for Light Table or on blurring the distinction beween programmers and non programmers. · Issue \#1530 · {LightTable}/{LightTable}}, - url = {https://github.com/LightTable/LightTable/issues/1530#issuecomment-46760429}, - urldate = {2014-10-21}, - author = {Luna Cárdenas, Offray Vladimir}, - month = jun, - year = {2014}, - note = {00000} -} -@misc{pharo-sitio-web, - title = {Pharo - Welcome to Pharo!}, - shorttitle = {pharo-sitio-web}, - url = {http://pharo.org/}, - urldate = {2014-10-21}, - note = {00000} -} -@article{luna_cardenas_resolucion_2007, - title = {Resolución Colectiva de Problemas desde Modelos Multiagente: un diálogo entre la teoría y el aula}, - url = {http://mutabit.com/deltas/repos.fossil/offray-maestria-tesis/doc/tip/EscritoTesis/articuloTesisMaestriaRevistaMagis.pdf}, - author = {Luna Cárdenas, Offray Vladimir}, - year = {2007}, - note = {00000} -} -@misc{luna_cardenas_ubakye:_2011, - title = {Ubakye: usemos las redes sociales en lugar de que ellas nos sigan usando Offray Luna}, - url = {https://www.4shared.com/audio/tBoBE-0B/Ubakye_Usemos_las_redes_social.html}, - urldate = {2014-10-21}, - author = {Luna Cárdenas, Offray Vladimir}, - collaborator = {Ortega, Christian}, - month = sep, - year = {2011}, - note = {00000} -} -@misc{_giles_????, - title = {Giles Bowkett: Smalltalk, Outside The Ivory Tower?}, - url = {http://gilesbowkett.blogspot.com/2007/07/smalltalk-outside-ivory-tower.html}, - urldate = {2014-11-02}, - note = {00000} -} -@misc{_squeak_????-1, - title = {Squeak is like an operating system {\textbar} Tekkie}, - url = {http://tekkie.wordpress.com/2007/07/19/squeak-is-like-an-operating-system/}, - urldate = {2014-11-02}, - note = {00000} -} -@misc{_commandshell_????, - title = {{CommandShell}}, - url = {http://wiki.squeak.org/squeak/1914}, - urldate = {2014-11-02}, - note = {00000} -} -@misc{_netjam.org_????, - title = {{NetJam}.{ORG} - networked music collaboration}, - url = {http://netjam.org/flow/}, - urldate = {2014-11-02}, - note = {00000} -} -@misc{_weaknesses_????, - title = {The Weaknesses of Smalltalk are the Strengths of Erlang (eighty-twenty news)}, - url = {http://www.eighty-twenty.org/index.cgi/tech/smalltalk/weaknesses-of-smalltalk-strengths-of-erlang-20110508.html}, - urldate = {2014-11-02}, - note = {00000} -} -@misc{_lurking_????, - title = {The Lurking Smalltalk in Unix and Plan 9 [pdf] {\textbar} Hacker News}, - url = {https://news.ycombinator.com/item?id=7719685}, - urldate = {2014-11-02}, - note = {00000} -} -@incollection{_osprocess_????, - title = {{OSProcess}}, - url = {http://pharo.gemtalksystems.com/book/PharoTools/OSProcess/}, - urldate = {2014-11-03}, - booktitle = {Pharo - the {collaborActive} book}, - note = {00000} -} -@misc{_seaside_????, - title = {seaside - Would you start learning Smalltalk? - Stack Overflow}, - url = {http://stackoverflow.com/questions/149042/would-you-start-learning-smalltalk}, - urldate = {2014-11-03}, - note = {00000} -} -@misc{_why_????-3, - title = {Why Smalltalk isn't just "another language".}, - url = {http://www.dafydd.net/archive/2010/why-smalltalk-isnt-just-another-language/}, - urldate = {2014-11-03}, - note = {00000} -} -@misc{_programming_????-1, - title = {programming languages - What is so special about Smalltalk? - Stack Overflow}, - url = {http://stackoverflow.com/questions/1821266/what-is-so-special-about-smalltalk}, - urldate = {2014-11-03}, - note = {00000} -} -@misc{_smalltalk_????-3, - title = {smalltalk - Squeak or Pharo for the beginning Smalltalker? - Stack Overflow}, - url = {http://stackoverflow.com/questions/8426981/squeak-or-pharo-for-the-beginning-smalltalker}, - urldate = {2014-11-03}, - note = {00000} -} -@misc{_serialization_????, - title = {serialization - What gives Smalltalk the ability to do image persistence, and why can't languages like Ruby/Python serialize themselves? - Stack Overflow}, - url = {http://stackoverflow.com/questions/13424027/what-gives-smalltalk-the-ability-to-do-image-persistence-and-why-cant-language}, - urldate = {2014-11-03}, - note = {00000} -} -@misc{_why_????-4, - title = {Why is smalltalk not a functional programming language? - Stack Overflow}, - url = {http://stackoverflow.com/questions/3527753/why-is-smalltalk-not-a-functional-programming-language}, - urldate = {2014-11-03}, - note = {00000} -} -@misc{_functional_????, - title = {Functional Programming in Smalltalk}, - url = {http://onsmalltalk.com/functional-programming-in-smalltalk}, - urldate = {2014-11-03}, - note = {00000} -} -@misc{_smalltalk/x_????, - title = {Smalltalk/X Programmers guide - Smalltalk for Lispers}, - url = {http://live.exept.de/doc/online/english/programming/stForLispers.html}, - urldate = {2014-11-03}, - note = {00000} -} -@misc{_objective-smalltalk:_????, - title = {Objective-Smalltalk: Examples}, - url = {http://objective.st/Examples/}, - urldate = {2014-11-03}, - note = {00000} -} -@misc{_graphics_????, - title = {graphics - Dedicated pages for figures featuring automatic fit-to-page scaling and automatic portrait/landscape selection - {TeX} - {LaTeX} Stack Exchange}, - url = {http://tex.stackexchange.com/questions/84310/dedicated-pages-for-figures-featuring-automatic-fit-to-page-scaling-and-automati#84312}, - urldate = {2014-11-03}, - note = {00000} -} -@misc{_tirade_????, - title = {Tirade, first trivial use - Roads Less Taken}, - url = {http://goran.krampe.se/2009/04/20/tirade-first-trivial-use/}, - urldate = {2014-11-03}, - note = {00000} -} -@misc{_category:_????, - title = {Category: Tirade - Roads Less Taken}, - url = {http://goran.krampe.se/category/tirade/}, - urldate = {2014-11-03}, - note = {00000} -} -@misc{_tirade_????-1, - title = {Tirade, supporting embedded text - Roads Less Taken}, - url = {http://goran.krampe.se/2011/04/15/tirade-supporting-embedded-text/}, - urldate = {2014-11-03}, - note = {00000} -} -@misc{_tirade_????-2, - title = {Tirade, part 2 - Roads Less Taken}, - url = {http://goran.krampe.se/2009/03/20/tirade-part-2/}, - urldate = {2014-11-03}, - note = {00000} -} -@misc{_how_????-8, - title = {How do I include meta tags in Pandoc-generated {HTML}? - Stack Overflow}, - url = {http://stackoverflow.com/questions/25410701/how-do-i-include-meta-tags-in-pandoc-generated-html}, - urldate = {2014-11-03}, - note = {00000} -} -@misc{_hybrid_????, - title = {Hybrid workflow how-to: Making automated workflows, part 1 {\textbar} {DIGITAL} {PUBLISHING} {TOOLKIT} for the Arts and Culture}, - url = {http://digitalpublishingtoolkit.org/2014/10/hybrid-workflow-how-to-making-automated-workflows-part-1/}, - urldate = {2014-11-03}, - note = {00000} -} -@article{_operating_????, - title = {The operating system: should there be one?}, - url = {http://plosworkshop.org/2013/preprint/kell.pdf}, - note = {00000} -} -@misc{_bestselling_????, - title = {Bestselling Author David Hewson About Writing and His Forthcoming Book About Ulysses {\textbar} Ulysses {III} Blog}, - url = {http://ulyssesapp.com/blog/2014/10/david-hewson/}, - urldate = {2014-11-06}, - note = {00000} -} -@misc{_dreams_????, - title = {Dreams of a Scorpion: Scripting with Smalltalk}, - url = {http://dreamsofascorpion.blogspot.com/2008/05/scripting-with-smalltalk.html}, - urldate = {2014-11-07}, - note = {00000} -} -@incollection{pbe2-glamour, - title = {Glamour}, - shorttitle = {pbe2-glamour}, - booktitle = {Deep into pharo}, - author = {Girba, Tudor}, - pages = {191--207} -} -@misc{ubakye-mapa, - title = {Ubakye aprendizaje e identidad digital}, - copyright = {Creative Commons Attribution - Share Alike 3.0 Unported License}, - shorttitle = {ubakye-mapa}, - url = {http://mutabit.com/deltas/repos.fossil/mtb-charlas-talleres/doc/tip/Ubakye/ubakyeAprendizajeIdentidadDigital.png}, - urldate = {2014-11-14}, - author = {Luna Cárdenas, Offray Vladimir}, - month = jun, - year = {2012} -} -@misc{grafoscopio-smalltalkhub, - title = {Grafoscopio - {SmalltalkHub}}, - shorttitle = {grafoscopio-smalltalkhub}, - url = {http://smalltalkhub.com/#!/~Offray/Grafoscopio/}, - urldate = {2014-11-18}, - author = {Luna Cárdenas, Offray Vladimir} -} -@misc{grafoscopio-fossil, - title = {Grafoscopio: Repositorio de documentación}, - shorttitle = {grafoscopio-fossil}, - url = {http://mutabit.com/deltas/repos.fossil/grafoscopio/index}, - urldate = {2014-11-18}, - author = {Luna Cárdenas, Offray Vladimir} -} DELETED Docs/Es/Ejemplos/prueba.markdown Index: Docs/Es/Ejemplos/prueba.markdown ================================================================== --- Docs/Es/Ejemplos/prueba.markdown +++ Docs/Es/Ejemplos/prueba.markdown @@ -1,27 +0,0 @@ ---- -header-includes: - - \usepackage{minted} - - \usemintedstyle{friendly} ---- -# Intro - -Hi, I'm a demo file used to test and show some features of grafoscopio. -Yon can find more about grafoscopio at: . - -Grafoscopio combines two kinds of nodes: textual node and code nodes. - -Textual nodes are written in a popular light markup language called -[markdown](https://en.wikipedia.org/wiki/Markdown), -in particular an extensible and powerful variant called -[Pandoc's markdown](http://pandoc.org/README.html#pandocs-markdown), -so we can have some fancy features like: links, *italics*, **bold**, bullet lists, -tables, footnotes, bibliographic references among others. - -Code nodes are interactive. They can be executed to query data, create -visualizations, automatize tasks and almost everything. -They're wrote in the easy and powerful Smalltalk language. - -\begin{minted}{smalltalk}[frame=lines] -PharoTutorial openPharoZenWorkspace -\end{minted} - DELETED Docs/Es/Ejemplos/prueba.pdf Index: Docs/Es/Ejemplos/prueba.pdf ================================================================== --- Docs/Es/Ejemplos/prueba.pdf +++ Docs/Es/Ejemplos/prueba.pdf cannot compute difference between binary files DELETED Docs/Es/Ejemplos/prueba.ston Index: Docs/Es/Ejemplos/prueba.ston ================================================================== --- Docs/Es/Ejemplos/prueba.ston +++ Docs/Es/Ejemplos/prueba.ston @@ -1,44 +0,0 @@ -OrderedCollection [ - GrafoscopioNode { - #header : 'Intro', - #key : '', - #body : 'Hi, I\'m a demo file used to test and show some features of grafoscopio. -Yon can find more about grafoscopio at: . - -Grafoscopio combines two kinds of nodes: textual node and code nodes. - -Textual nodes are written in a popular light markup language called -[markdown](https://en.wikipedia.org/wiki/Markdown), -in particular an extensible and powerful variant called -[Pandoc\'s markdown](http://pandoc.org/README.html#pandocs-markdown), -so we can have some fancy features like: links, *italics*, **bold**, bullet lists, -tables, footnotes, bibliographic references among others. - -Code nodes are interactive. They can be executed to query data, create -visualizations, automatize tasks and almost everything. -They\'re wrote in the easy and powerful Smalltalk language.', - #children : OrderedCollection [ ], - #parent : GrafoscopioNode { - #header : 'Arbol principal', - #key : '', - #body : '', - #children : @1, - #level : 0, - #nodesInPreorder : OrderedCollection [ - @4, - @2, - GrafoscopioNode { - #header : 'Code', - #key : '', - #body : 'PharoTutorial openPharoZenWorkspace', - #tags : 'c\u00F3digo', - #children : OrderedCollection [ ], - #parent : @4, - #level : 1 - } - ] - }, - #level : 1 - }, - @6 -] DELETED Docs/Es/Manual/manual-grafoscopio.html Index: Docs/Es/Manual/manual-grafoscopio.html ================================================================== --- Docs/Es/Manual/manual-grafoscopio.html +++ Docs/Es/Manual/manual-grafoscopio.html @@ -1,288 +0,0 @@ - - - - - - - - - - - -

Manual de Grafoscopio

-
    -
  • Versión: 0.1
  • -
  • Autor: Offray Vladimir Luna Cárdenas
  • -
  • Correo: offray@mutabit.com
  • -
-

Agradecimientos

-

Grafoscopio no hubiera sido posible sin la ayuda de muchas personas vinculadas a diversos lugares comunitarios e institucionales. Acá un listado de algunos de esos lugares y personas.

-
    -
  • mutabiT.
  • -
  • HackBo, el hackerspace de Bogotá, en particular las personas asistentes a los talleres de Indie Web Science y en especial Iván Pulido, Rafael Medina y Camilo Hurtado.
  • -
  • Las comunidades de Pharo, Moose y Agile Visualization.
  • -
  • El HiTec Lab de la Fundación Universitaria Los Libertadores.
  • -
  • La Fundación Visonte.
  • -
-

Algunas personas han ayudado mucho con su escucha y apoyo, al margen de cualquier vinculación intitucional y/o comunitaria. Entre ellas: Andrés Calderón, Hilda Cárdenas y Yanneth Gil.

-

¿Qué y para qué es grafoscopio?

-

Grafoscopio es una herramienta amoldable y flexible para la creación de documentos interactivos estructurados por capas. Sirve para alentar nuevas prácticas escriturales y de visualización de datos que puede ser usado en distintas contextos: escritura académica, educación, narrativa y periodismo de datos, ciencia e investigación abiertas, ciudadanas y/o de garage, narrativa transmedia, activismo y muchos más.

-

Veámos en detalle algunos elementos de la definición:

-
    -
  • Sobre los documentos digimos que eran:

    -
      -
    • Documentos estructurados y por capas: Grafoscopio permite centrarse en las palabras y su estructura, sin distracciones de otra índole. Delega la apariencia a plantillas y programas externos permitiendo concentrarse sólo en la escritura y la estructura de la misma. Para la estructura usa un árbol que permite expresar secciones del texto: títulos, subtítulos, capítulos, ideas, e incluso partes invisibles, que ayudan a redactar aquello que sí se va a ver. Para las palabras usa un sencillo y popular lenguaje de etiquetas (llamado markdown), que se aprende en pocos minutos y permite expresar elementos del texto: enfasis (cursiva), enfasis fuerte (negrilla), listas de items, numeraciones, tablas y referencias a gráficos.

    • -
    • Documentos Interactivos: Grafoscopio permite que los documentos, además de palabras y estructura, incluyan automatismos que extraen y calculan información externa y crean gráficos dinámicos a partir de ella, entre muchos otros usos. Incluso todo el árbol de un documento es programable, con lo cual podemos usar un mismo árbol (o algunas de sus partes) para crear diversos documentos a partir de distintos recorridos, lo cual brinda posibilidades extensas: galerías de imágenes web a partir de todas las figuras referenciadas, exportar el documento como un micrositio web, tomar partes de Internet e integrarlas a un documento, etc. Te invitamos a aprender a programar, pero incluso si es una decisión que no has tomado, podrás emplear esas funcionalidades a partir de los plugins y extensiones que la comunidad irá construyendo.

    • -
  • -
  • Sobre la herramienta digimos que era amoldable y flexible. Con esto nos referimos a que es fácil adaptar la herramienta a otros propósitos, contextos o intenciones. Esto definitivamente requiere de programación y de que entiendas el entorno de desarrollo de software integrado con grafoscopio, el paradigma de programación orientada a objetos y el lenguaje Smalltalk. Si ya sabes programar, este otro paradigma
    -será beneficioso para mejorar la forma en que abordas problemas, incluso si no lo usas en tu entorno cotidiano; y si aún no sabes, te invitamos a una experiencia con un nivel de flexibilidad, interactividad que no hemos encontrado en otros lados. Tomará tiempo y paciencia, pero será progresivo, muy gratificante, empoderador y definitivamente menos demorado que los abordajes usuales. Esto va en contra de los libros tipo "aprenda a programar en 21 días" y como decía "alguien en Internet", no se encuentran libros similares sobre tocar un instrumento musical, pintar o aprender a cocinar. La maestría cuesta, sin embargo, grafoscopio está allí para ayudarte. Puedes pasar de los documentos estructurados, sin ninguna programación a los documentos interactivos, y de estos a la programación y modificación del entorno completo. Notarás que gracias a la uniformidad del entorno, las transiciones serán fluidas, en caso de que quieras emprenderlas, y dispondremos de espacios comunitarios (digitales y análogos), así como momentos de encuentro para facilitar el aprendizaje. La subsección "Aprende" de la página web referenciada al final, muestra algunos de esos espacios y momentos.

  • -
-

Ya sea que estés interesado en la escritura sin distracciones o en los documentos dinámicos e interactivos, grafoscopio será una herramienta que te permita explorar y expresar tus ideas de modos más fluidos.

-

Para mayor información sobre Grafoscopio visita:

-

http://mutabit.com/grafoscopio/

-

Instalación y ejecución

-

Empezar a usar grafoscopio será sencillo. Consistirá en 3 pasos: 1) descargar la versión para tu plataforma, 2) descomprímirlo y 3) ejecutarlo. Si lo quieres llevar contigo o copiarlo a otras máquinas, bastará con que copies la carpeta donde está el programa y listo! Incluso lo podrás ejecutar desde memorias USB.

-

Gnu/Linux

-
    -
  • Descargar grafoscopio para Gnu/Linux de http://mutabit.com/grafoscopio
  • -
  • Descomprimirlo.
  • -
  • Ejecutar el archivo grafoscopio.sh que aparece en la raíz de la carpeta descomprimida
  • -
-

ADVERTENCIA: Si está ejecutando una distribución de Gnu/Linux de 64 bits, debe instalar el soporte para ejecución de las librerías de 32 bits. Usualmente se llaman ia-32.

-

Windows

-
    -
  • Descargar grafoscopio para Gnu/Linux de http://mutabit.com/grafoscopio
  • -
  • Descomprimirlo.
  • -
  • Ejecutar el archivo grafoscopio.bat que aparece en la raíz de la carpeta descomprimida
  • -
-

OSX

-

Aún no se ha empaquedado esta versión.

-

Código fuente

-

Otra manera de instalar grafoscopio consiste en descargar primero la versión de Moose para nuestra plataforma y luego usar el gestor de paquetes que viene integrado para instalarlo desde el código fuente. Esencialmente se ejecutan 4 pasos:

-
    -
  1. Descargar la variante de la máquina virtual de Pharo para Windows, Gnu/Linux, ó OSX y descomprimirla.

  2. -
  3. Descargar la imagen de Moose.

  4. -
  5. Lanzar la máquina virtual en la plataforma y abrir la imagen de Moose.

  6. -
  7. Abrir un playground y ejecutar lo siguiente:

  8. -
-
Gofer new 
-    smalltalkhubUser: 'SvenVanCaekenberghe' project: 'STON';
-    package: 'STON-Core';
-    load.
- 
-Gofer new 
-    smalltalkhubUser: 'Offray' project: 'Grafoscopio';
-    package: 'Grafoscopio';
-    load.
-

Y listo!

-

Para ejecutar grafoscopio, dentro de un workspace ejecutamos:

-
GrafoscopioBrowser startDockingBar
-

Panorámica Rápida

-

Si estás en esta parte del documento imaginamos que ya tienes instalado grafoscopio, e incluso que estás mirando este documento desde grafoscopio mismo. Si ese no es el caso, te recomendamos que:

-
    -
  • Vayas a http://mutabit.com/grafoscopio, instales grafoscopio, lo ejecutes y abras este documento haciendo click en el menú superior en Ayuda > Manual en grafoscopio.

  • -
  • Maximices la ventana del documento y hagas click en la fecha que aparece junto a "Manual de Grafoscopio" y luego selecciones "Panorámica Rápida". Deberías estar viendo este documento.

  • -
-

Ahora que estamos seguros de que estás leyendo este documento dentro de grafoscopio, te mostraremos cómo funciona la interface:

-
    -
  • A la izquierda tienes un arbol. Este jerarquiza la información en ramas o nodos. Un nodo consta de dos partes básicas:

    -
      -
    • Una cabecera o título, que suele tener un texto corto, por ejemplo, para este nodo es "Panorámica Rápida"
    • -
    • Un cuerpo o contenido, que ya despliega los textos detallados del nodo, por ejemplo, el texto que ahora lees.
    • -
    -

    A su vez un nodo puede agrupar a otros nodos. En ese caso el nodo que agrupa a los otros se conoce como padre y los agrupados en éste, se conocen como hijos. Por ejemplo, el nodo padre de este nodo se titula "Manual de Grafoscopio" y un nodo hijo de este nodo se titula "Modificar y exportar subárboles" Cuando un nodo tiene hijos, se reconoce porque tiene una flecha a su izquierda que apunta hacia la derecha. Si haces click en esa flecha, apunta hacia abajo y muestra los hijos del nodo. Si haces click en una flecha hacia abajo, apunta de nuevo a la derecha y oculta los hijos del nodo.

    -

    Lo anterior nos permite navegar el árbol de dos maneras: haciendo click en cada nodo, de acuerdo a lo explicado, o haciendo click en cualquier parte del árbol y desplazándonos luego con las flechas del teclado.

  • -
-

Para continuar, despliega el árbol de la izquierda y ubícate en el hijo de este nodo titulado "Modificar y exportar subárboles"

-

Modificar y exportar subárboles

-

¡Bien! estás en el primer ejercicio. Si leíste el nodo "Panorámica rápida" ya sabes la terminología básica de nodos padres e hijos y también como navegar en un árbol o lo intuías por tu cuenta (la prueba es que estás acá).

-

Este primer ejercicio consistirá en aprender a modificar un documento, lo cual permitirá luego crear los propios.

-

Cuando estás dentro de una parte de un árbol, como acá, el nodo en el que estás parado, sus hijos, los hijos de esos hijos y así suscesivamente constituyen lo que se llama un "subárbol".

-

Por ejemplo, si en el tutorial digital te paras en el nodo titulado "Subárbol de ejemplo" se despliega lo siguiente:

-
- Primera sección
-- Segunda sección
-  - Primera subsección
-  - Segunda subsección
-    - Primera sub-subsección
-    - Tercera subsección
-

Como verás, podemos anidar información, con lo cual vamos dando cuenta de la estructura que queremos que tenga un documento. Si quieres, dale una mirada a los contenidos del subárbol, pero no olvides luego volver acá, pues aquí continua la explicación.

-

Bien, digamos que quieres ver cómo luce este subárbol como documento en HTML. Para exportar cualquier subárbol como HTML haces lo siguiente:

-
    -
  • Párate en el nodo que quieres exportar, en este caso el titulado "Subarbol de ejemplo"
  • -
  • Haces click en el botón con puntos suspensivos "...", que aparece más a la derecha (si, no es una muy buena elección para un ícono, estamos trabajando en ello).
  • -
  • Elige la opción "Arbol > Exportar como HTML". Te preguntará si quieres exportar todo el árbol, refiriendose a todo el documento o el subárbol, refiriéndose a donde estás ubicado. Elije la segunda opción.
  • -
  • Luego haz click en el menú de puntos suspensivos
  • -
-

Etiquetas, tipos de nodos, y modos

-

Nodos de configuración

-

Una mención especial merece el nodo "Configuración". notarás que tiene una etiqueta con el nombre "config" y si haces click en él verás unos datos de la forma:

-

Eso es lo que se llama un diccionario en Smalltalk, y es una manera de representar atributos y sus valores. En este nodo, estamos diciendo dónde queremos que se guarde el documento que se produciría al exportar este subárbol. La mejor forma de verlo en acción es

-

Nodos invisibles

-

Nodos de notas a pie de página

-

Nodos de imágenes y figuras

-

Nodos de código

-

Nodos transmedia

-

Escultores de icebergs o el por qué de grafoscopio

-

Acá te contamos del lugar que espera llenar grafoscopio. De las fuentes de inspiración y los espacios que no creíamos que estuviesen ocupados.

-

La metáfora del iceberg para la crear, escribir y visualizar: lo que ves es sólo la superficie de lo que tienes

-

El iceberg es una buena metáfora para la creación en general: el resultado es sólo muestra la superfie de un proceso que es más profundo. En la mayoría de los proyectos, cada informe, texto, visualización, esta sustentado por un conjunto de soportes, autores, archivos e insumos, que quedan por fuera del documento que apeló a los mismos para existir. Dichas conexiones quedan ocultas bajo el texto o la gráfica; las tablas tienen los datos, pero no las consultas que los extrayeron, los insumos se deperdigan en la cabeza de los autores, las carpetas y referencias bibliográficas cuyo uso más allá de las citas. Se puede tener un texto suscinto y de fácil lectura o extenso y detallado, pero siempre se oculta las complejidades que lo construyen, lo cual dificulta la participación y transparencia posterior, propia de los procesos más horizontales e incluyentes.

-

Por ello se requieren metáforas escriturales distintas, que integren las distintas capas y niveles de profundidad propios de proyectos complejos como estos. En esencia se trata de pasar de las metáforas Lo Que Ves Es Lo Que Obtienes o WYSIWYG (por las siglas en inglés para What You See Is What You Get) a metáforas de "escritura tipo iceberg" donde Lo Que Ves Es Sólo La Superficie De Lo Que Tienes.

-

Grafosocpio intenta explorar un buen balance entre detalle y legibilidad usando las estructuras arbóreas en la que la escritura se organiza por capas. Las capas más profundas, contienen los detalles que permite la estructuración y escritura de documentos como los antes mencionados, y en las capas más externas, está aquello que el lector va a ubicar e incluso la organización para diferentes tipos de lectores, permitiendo a la vez dar cuenta, en un documento integrado, de recursos externos, anidamientos y relaciones internas y otros elementos constitutivos pero distintos del texto.

-

Este tipo alternativo de formas escriturales ayudaría en varios sentidos:

-
    -
  • Se alejaría de las comparaciones clásicas entres abordajes similares. Una metáfora escritural distinta requiere otra forma de pensar respecto al proceso de escritura que va más allá de la hoja en blanco y las carpetas, propias de los procesadores de palabra tradicionales.
  • -
  • Facilitaría la colaboración entre los miembros de un grupo que cra en colectivo.
  • -
  • Facilitaria la trazabilidad asociada a los procesos de creación.
  • -
-

La invitación es a sumergirnos juntos en esta exploración y construcción compartida.

-

Fuentes de inspiración: Ideas prestadas y propias

-

Grafoscopio es un proyecto en permanente evolución y no lo digo como frase cliché, sino en el sentido de que intenta adecuarse a las necesidades cambiantes del entorno, es decir a las de sus usuarios y co-creadores (para ver un trazo de hacía dónde podría ir, te invito a consultar la sección titulada "Mapa de Ruta" en este mismo documento). De hecho, grafoscopio surgió de esas necesidades cambiantes y particulares, pues nada de lo que había hasta el momento daba cuenta precisamente la experiencia de escritura y uso del computador que yo quería tener y que, creo, que sería útil para más personas. El proyecto ha recibido inspiración de diversas fuentes como TeXmacs, Leo, IPython, LaTeX, Lout, pandoc, varios lenguajes de etiquetamiento ligero (ascii doc, markdown, reStructuredText y txt2tags), y comparte ideas con otros sistemas como pollen y org mode, que conocí despúes. Sin embargo, grafoscopio intenta crear una experiencia que no está propiamente en ninguna de las herramientas antes mencionadas (a pesar de que usa algunas de ellas por ejp pandoc y fossil, como piezas del software, que le dan nueva funcionalidad sin reinventar la rueda). Pharo/Smalltalk es el vehículo para explorar el encuentro, mutación y recombinación de estas ideas y el surgimiento de nuevas.

-

Ideas similares:

-
    -
  • Al igual que LaTeX, TeXmacs y Lout intenta producir documentos de alta calidad visual, particularmente en su exportación como pdf.
  • -
  • De IPython notebook (o Jupyter, el proyecto posterior), TeXmacs y Mathematica, toma la idea de escribir documentos interactivos que van más allá del texto y lo combinan con cálculos, visualizaciones, simulaciones, etc.
  • -
  • De Leo y mathematica toma la idea de documentos computables. El documento es un árbol con ramificaciones que son calculables (celdas en mathematica e IPython y nodos en Leo). Al igual que en Leo las partes del árbol (los nodos) pueden introducir automatismos que modifican el documento en parte o en su totalidad o incluso podrían modificar el funcionamiento e interface del software (como los macros de la ofimática clásica). Esta idea de un documento programable y que puede programar todo el entorno ha estado en sistemas como Lisp desde los 60's e emacs y ha tomado cuerpo en sucesores recientes de este legado como Pollen/Racket y org-mode.
  • -
  • De los lenguajes de etiquetamiento ligero, toma la idea de una escritura centrada en el texto, en las palabras, que se puede escribir fácilmente y sin preocuparse por adornos visuales al delegar los temas de presentación a hojas de estilo y programas externos (idea que está en otros sistemas como Ulysses, Substance, IPython, Ghost, etc). text2tags en particular merece una especial mención, por su sintaxis extensible por el usuario vía expresiones regulares. Y aunque es una forma de extensión poco elegante, comparada con que provee Pollen, vía funciones, o el mismo Smalltalk, vía mensajes, si fue una primera aproximación a la idea de que un lenguaje de documentación podía permanencer simple a la vez de extensible.
  • -
-

Ideas diferentes:

-
    -
  • A diferencia de TeXmacs, LaTeX, Leo e IPython, intenta tener un empaquetado e instalación sencillas, tipo descargue, descomprima y use, sin pensar mucho en el sistema operativo, los gestores de paquetes, etc. Las dependencias externas deben ser mínimas, portables (compiladas estáticamente) y venir dentro del instalador en el archivo compreso (pandoc, fossil y a futuro lout, constituyen dichas dependencias)
  • -
  • A diferencia de Leo, se concentra en la experiencia de escritura de textos interactivos. Leo es más versátil, pero también más complicado, pues tiene que lidiar con cómo se integra con archivos externos y las instrucciones uso e instalación y modificación están orientadas a un público más técnico (casi cualquier cosa se tiene que hacer editando archivos de Leo). Los documentos interactivos tiene capas, a diferencia de IPython, donde, si el documento se pone muy largo, puede hacerse pronto inmanegable y el afinamiento para convertirlo en pdf implica afinar manualmente el archivo LaTeX intermedio.
  • -
  • A diferencia de Leo, TeXmacs, IPython es más fácil de entender, extender y modificar. Fuí usuario de Leo varios años y sólo hasta los últimos años empecé a cambiarlo de modo superficial. Los cambios que hice a TeXmacs también se vieron limitados. Traduje buena parte del manual a español e hice algunos scripts para personalizar los menús de la interface. TeXmacs está hecho con Scheme y C++, lenguajes bien diferentes y si bien con el primero se podría hacer parte de los cambios, si se quiere llegar a profundidad, se requiere del segundo. IPython consta de múltiples capas que requieren conceptos y tecnologías diversos para hacer que funcione: json, python, html, zeroMQ, programación de cliente y servidor, lenguajes de scripting, programación imperativa y objetual.

    -

    Todas las anteriores herramientas están hechas desde la tradición Unix de tener archivos estáticos, que se editan desde editores externos, con idiosincracias distintas, lo cual genera una curva de aprendizaje más inclinada.
    -En cambio, creé el primer alfa grafoscopio en un par de meses, incluido el aprendizaje de los rudimentos de Smalltalk (lenguaje y entorno). Esto es un mérito del entorno altamente interactivo, uniforme e integrado y la sintaxis sencilla y poderosa que provee Pharo/Smalltalk, frente al paradigma más convencional y extendido, pero menos fluido, de los sistemas operativos.

  • -
-

Dicho todo esto, grafoscopio es una herramienta que espera tener su propio lugar. No pretende desplazar a ninguna y, como dije, le debe mucha inspiración a las que he mencionado. Guardo profundo respeto y admiración por los autores, las comunidades detrás de tales herramientas y por las herramientas mismas y si bien las uso menos en la medida que grafoscopio madura, siguen teniendo un lugar en mi baticinturón (y mi corazón :-P).

-

Exploración Recomendada

-

Estamos preparando unos documentos interactivos para la exploración de grafoscopio. Puedes descargarlos, abrirlos en grafoscopio y mirar cómo funcionan. Acá están los enlaces:

- -

Mapa de Ruta

-

¿Cuándo un artefacto (digital o no) está listo para liberarse al público? Me parece que la respuesta tiene que ver con la experiencia de uso. El principal criterio de dicha experiencia es que no debe ser confusa. Esto no quiere decir que esté completa o que sea totalmente amigable o "intuitiva" (ese término siempre me ha parecido engañoso y me pregunto: ¿de acuerdo a la intuición de quién?). Se trata sobre todo de que las personas sepan qué esperar del artefacto.

-

Muchas de estas espectativas se pueden informar con la documentación. Algo que haga claro cuáles son las ofertas, limitaciones y potencialdades del artefacto. Este mapa de ruta intenta aclarar esos aspectos.

-

He organizado el mapa de ruta en forma de un tablero Kanban, con tres lugares "Por Hacer", "Hecho" y "Haciendo", que junto con el repositorio de código fuente (en Monticello) y de documentación (en fossil) del proyecto muestran cómo se van implementando las diferentes características que se integran en la experiencia de usuario. Puedes revisar cada una de las tres secciones del Kanban para ver en qué estamos trabajando, que hemos resuelto y qué tenemos proyectado hacia el futuro.

-

Para la primera versión pública grafoscopio debería desde soportar una primera experiencia tres pasos: descargue, descomprima y explore. Esto quiere decir que debe tener una barra de tareas con acceso a las funcionalidades más empleadas y la documentación en distintos formatos.

-

De ahí en adelante se puede establecer un modelo de rolling release, similar al de algunas distribuciones del sistema operativo Gnu/Linux, como Arch, en el que acceder a nuevas caracteríscas nuevas del sistema, simplemente sea actualizarse a la última versión (para esto actualmente existe una opción de menú integrada a la interfaz gráfica, que hace esto).

-

Ese es el mapa, por lo pronto, pero se reciben sugerencias de futuras rutas.

-

Kanban

-

Por Hacer

-

Las características futuras previstas son:

-
    -
  • Un procedimiento asistido para la instalación de TeX.
  • -
  • Soporte para creación de pdf locales vía Lout y un conversor de postscript a pdf (¿quizás ghostscript?).
  • -
  • Más ejemplos de documentos interactivos, particularmente asociados a ciencia abierta, ciudadana y de garage.
  • -
  • ¿Pruebas unitarias? (son necesarias, lo que no sé es si para esta versión ya tengamos rudimentos de como se hacen).
  • -
  • Mejorar los nodos de texto con: -
      -
    • Botones para embeber notas al pie de página, imagenes, cambiar el tamaño de las fuentes.
    • -
    • Resaltado sintáctico para markdown: Los nodos de texto actuales no muestran pistas de color que permitan guiar al autor. La idea es que se soporte opciones de resultado sintáctico y hacia futuro algunas ayudas tipográficas (cursivas, negrillas, etc). Luego se pueden dar soporte a otros lenguajes.
    • -
    • Mejor comportamiento como editor de texto, respetando el espacio en blanco con los saltos de línea.
    • -
  • -
  • Objetos en los nodos: Actualmente tenemos dos tipos de nodos, aquellos que son sólo texto, y los playgrounds, pero aún no están tan bién integrados como se podría. Se requiere un mejor tiepo de integración, haciendo que el nodo genérico sorpote distintos tipos de mensajes de los nodos embebidos y delegue a los mismos disintas comportamientos. También se requieren distintos tipos de nodos, empezando por los nodos de imagen, quer permitan ver cómo lucen tales imagenes y enviarles mensajes (escalarlas, exportarlas, etc).
  • -
  • Aztlek propone la idea de que el árbol de grafoscopio permita cambiar el código fuente del mismo, o presentarlo de manera arbórea, en lugar de desde el navegador de clases. Es una idea interesante, habría que mirar cuánto del cambio de interface se requiere o se puede mapear de uno al otro, pues el navegador de clases es bastante poderoso y adecuado para la escritura de código, mientras que grafoscopio está centrado en la escritura de texto, acompañado por código y visualizaciones.
  • -
-

Haciendo

-
    -
  • [X] Integrado pandoc para la exportación a distintos formatos y fossil para el control histórico de documentos y la colaboración.
  • -
  • En caso de que se quiera exportar como pdf debe indicar que se debe instalar TeX en la versión de Windows, Linux o Mac, con los enlaces respectivos.
  • -
-

Hecho

-
Barra de herramientas fija
-
    -
  • Una barra de herramientas fija con los siguientes menus: -
      -
    • Lanzar -
        -
      • Nuevo documento interactivo
      • -
      • Documentos interactivos recientes ...
      • -
      • Documentos interactivos de ejemplo.
      • -
    • -
    • Ayuda. -
        -
      • Manual en HTML La cargaría desde el sistema de archivos y vendría integrado en la descarga.
      • -
      • Manual en Pdf .
      • -
      • Arbol de grafosocpio Se debe colocar la ayuda en formatos distintos a grafoscopio, pues las gráficas integradas no se ven dentro del árbol.
      • -
    • -
  • -
-

.

-

adas no se ven dentro del árbol.

-

ste es un listado de los asistentes a los talleres sobre grafoscopio:

-

Antes del lanzamiento público

-
    -
  • Yanneth Gil.
  • -
  • Camilo Hurtado.
  • -
  • Offray Luna.
  • -
  • Rafael Medina.
  • -
  • Iván Pulido.
  • -
-

2015

-

Mayo

-
1 y 2
-

Asistentes:

-
    -
  • Offray Luna Cárdenas.
  • -
  • Cesar Augusto Arias Peñaranda.
  • -
  • Miguel Sánchez.
  • -
  • Milena Moreno.
  • -
  • Juan Pablo Morales.
  • -
  • William Delgado.
  • -
-

Memorias:

-
    -
  • Enlaces: -
      -
    • http://etherpad.wikimedia.org/p/grafoscopio-3
    • -
    • http://etherpad.wikimedia.org/p/grafoscopio-4
    • -
  • -
  • Hitos: -
      -
    • Mapa de presentación actualizado.
    • -
    • Proceso de instalación actualizado a Pharo 4.
    • -
  • -
-
9
-

Asistentes:

-
    -
  • Ivan Pulido.
  • -
  • Juan Pablo Morales.
  • -
  • William Delgado.
  • -
  • Offray Luna
  • -
-

Memorias: - Enlaces: - http://etherpad.wikimedia.org/p/grafoscopio-5

-
    -
  • Temas: -
      -
    • Visualización.
    • -
  • -
- - DELETED Docs/Es/Manual/manual-grafoscopio.markdown Index: Docs/Es/Manual/manual-grafoscopio.markdown ================================================================== --- Docs/Es/Manual/manual-grafoscopio.markdown +++ Docs/Es/Manual/manual-grafoscopio.markdown @@ -1,471 +0,0 @@ -# Manual de Grafoscopio - - - Versión: 0.1 - - Autor: Offray Vladimir Luna Cárdenas - - Correo: offray@mutabit.com - - -## Agradecimientos - - Grafoscopio no hubiera sido posible sin la ayuda de muchas personas vinculadas a diversos lugares comunitarios e institucionales. -Acá un listado de algunos de esos lugares y personas. - - - mutabiT. - - HackBo, el hackerspace de Bogotá, en particular las personas asistentes a los talleres de Indie Web Science y en especial - Iván Pulido, Rafael Medina y Camilo Hurtado. - - Las comunidades de Pharo, Moose y Agile Visualization. - - El HiTec Lab de la Fundación Universitaria Los Libertadores. - - La Fundación Visonte. - -Algunas personas han ayudado mucho con su escucha y apoyo, al margen de cualquier vinculación intitucional y/o comunitaria. -Entre ellas: Andrés Calderón, Hilda Cárdenas y Yanneth Gil. - -## ¿Qué y para qué es grafoscopio? - -Grafoscopio es una herramienta amoldable y flexible para la creación de *documentos* interactivos estructurados -por capas. -Sirve para alentar nuevas prácticas escriturales y de visualización de datos que puede ser usado en distintas -contextos: escritura académica, educación, narrativa y periodismo de datos, ciencia e investigación abiertas, -ciudadanas y/o de garage, narrativa transmedia, activismo y muchos más. - -Veámos en detalle algunos elementos de la definición: - - - Sobre los *documentos* digimos que eran: - - - *Documentos estructurados y por capas:* Grafoscopio permite centrarse en las palabras y su estructura, sin - distracciones de otra índole. - Delega la apariencia a plantillas y programas externos permitiendo concentrarse sólo en la escritura y la - estructura de la misma. Para la estructura usa un árbol que permite expresar secciones del texto: títulos, subtítulos, capítulos, ideas, - e incluso partes invisibles, que ayudan a redactar aquello que sí se va a ver. Para las palabras usa un sencillo y popular lenguaje de - etiquetas (llamado *markdown*), que se aprende en pocos minutos y permite expresar elementos del texto: enfasis (*cursiva*), enfasis - fuerte (**negrilla**), listas de items, numeraciones, tablas y referencias a gráficos. - - - *Documentos Interactivos:* Grafoscopio permite que los documentos, además de palabras y estructura, incluyan - automatismos que extraen y calculan información externa y crean gráficos dinámicos a partir de ella, entre muchos otros usos. - Incluso todo el árbol de un documento es programable, con lo cual podemos usar un mismo árbol (o algunas de sus partes) para - crear diversos documentos a partir de distintos recorridos, lo cual brinda posibilidades extensas: galerías de imágenes web a partir - de todas las figuras referenciadas, exportar el documento como un micrositio web, tomar partes de Internet e integrarlas a un - documento, etc. - Te invitamos a aprender a programar, pero incluso si es una decisión que no has tomado, podrás emplear esas - funcionalidades a partir de los *plugins* y extensiones que la comunidad irá construyendo. - - - Sobre la herramienta digimos que era *amoldable y flexible*. - Con esto nos referimos a que es fácil adaptar la herramienta a otros propósitos, contextos o intenciones. - Esto definitivamente requiere de programación y de que entiendas el entorno de desarrollo de software integrado - con grafoscopio, el paradigma de programación orientada a objetos y el lenguaje Smalltalk. Si ya sabes programar, este otro paradigma - será beneficioso para mejorar la forma en que abordas problemas, incluso si no lo usas en tu entorno cotidiano; y si aún no sabes, - te invitamos a una experiencia con un nivel de flexibilidad, interactividad que no hemos encontrado en otros lados. - Tomará tiempo y paciencia, pero será progresivo, muy gratificante, empoderador y definitivamente menos demorado - que los abordajes usuales. - Esto va en contra de los libros tipo "aprenda a programar en 21 días" y como decía "alguien en Internet", no se encuentran libros - similares sobre tocar un instrumento musical, pintar o aprender a cocinar. - La maestría cuesta, sin embargo, grafoscopio está allí para ayudarte. - Puedes pasar de los documentos estructurados, sin ninguna programación a los documentos interactivos, y de estos a la - programación y modificación del entorno completo. - Notarás que gracias a la uniformidad del entorno, las transiciones serán fluidas, en caso de que quieras emprenderlas, y - dispondremos de espacios comunitarios (digitales y análogos), así como momentos de encuentro para facilitar el aprendizaje. - La subsección "Aprende" de la página web referenciada al final, muestra algunos de esos espacios y momentos. - -Ya sea que estés interesado en la escritura sin distracciones o en los documentos dinámicos e interactivos, grafoscopio será -una herramienta que te permita explorar y expresar tus ideas de modos más fluidos. - -Para mayor información sobre Grafoscopio visita: - - - -## Instalación y ejecución - -Empezar a usar grafoscopio será sencillo. -Consistirá en 3 pasos: 1) descargar la versión para tu plataforma, 2) descomprímirlo y 3) ejecutarlo. -Si lo quieres llevar contigo o copiarlo a otras máquinas, bastará con que copies la carpeta donde está el programa -y listo! Incluso lo podrás ejecutar desde memorias USB. - -### Gnu/Linux - - - Descargar grafoscopio para Gnu/Linux de - - Descomprimirlo. - - Ejecutar el archivo `grafoscopio.sh` que aparece en la raíz de la carpeta descomprimida - -**ADVERTENCIA**: Si está ejecutando una distribución de Gnu/Linux de 64 bits, debe instalar -el soporte para ejecución de las librerías de 32 bits. Usualmente se llaman ia-32. - -### Windows - - - Descargar grafoscopio para Gnu/Linux de - - Descomprimirlo. - - Ejecutar el archivo `grafoscopio.bat` que aparece en la raíz de la carpeta descomprimida - -### OSX - -Aún no se ha empaquedado esta versión. - -### Código fuente - -Otra manera de instalar grafoscopio consiste en descargar primero la versión de Moose para -nuestra plataforma y luego usar el gestor de paquetes que viene integrado para instalarlo desde -el código fuente. -Esencialmente se ejecutan 4 pasos: - -1. Descargar la variante de la máquina virtual de Pharo para - [Windows](http://files.pharo.org/vm/pharo/win/Pharo-VM-win-stable.zip), - [Gnu/Linux](http://files.pharo.org/vm/pharo/linux/Pharo-VM-linux-stable.zip), - ó [OSX](http://files.pharo.org/vm/pharo/mac/Pharo-VM-mac-stable.zip) - y descomprimirla. - -2. Descargar la [imagen de Moose](https://ci.inria.fr/moose/job/moose-5.0/lastSuccessfulBuild/artifact/moose-5.0.zip). - -3. Lanzar la máquina virtual en la plataforma y abrir la imagen de Moose. - -4. Abrir un playground y ejecutar lo siguiente: - -~~~ {#instalar-grafoscopio .smalltalk} -Gofer new - smalltalkhubUser: 'SvenVanCaekenberghe' project: 'STON'; - package: 'STON-Core'; - load. - -Gofer new - smalltalkhubUser: 'Offray' project: 'Grafoscopio'; - package: 'Grafoscopio'; - load. -~~~ - -Y listo! - -Para ejecutar grafoscopio, dentro de un *workspace* ejecutamos: - -```smalltalk -GrafoscopioBrowser startDockingBar -``` - -## Panorámica Rápida - -Si estás en esta parte del documento imaginamos que ya tienes instalado grafoscopio, e incluso que estás mirando este -documento desde grafoscopio mismo. -Si ese no es el caso, te recomendamos que: - - - Vayas a , instales grafoscopio, lo ejecutes y abras este documento haciendo click - en el menú superior en `Ayuda > Manual en grafoscopio`. - - - Maximices la ventana del documento y hagas click en la fecha que aparece junto a "Manual de Grafoscopio" y luego - selecciones "Panorámica Rápida". Deberías estar viendo este documento. - -Ahora que estamos seguros de que estás leyendo este documento dentro de grafoscopio, te mostraremos cómo funciona -la interface: - - - A la izquierda tienes un arbol. Este jerarquiza la información en ramas o nodos. Un nodo consta de dos partes básicas: - - - Una cabecera o título, que suele tener un texto corto, por ejemplo, para este nodo es "Panorámica Rápida" - - Un cuerpo o contenido, que ya despliega los textos detallados del nodo, por ejemplo, el texto que ahora lees. - - A su vez un nodo puede agrupar a otros nodos. En ese caso el nodo que agrupa a los otros se conoce como padre y los - agrupados en éste, se conocen como hijos. - Por ejemplo, el nodo padre de este nodo se titula "Manual de Grafoscopio" y un nodo hijo de este nodo se titula "Modificar y exportar subárboles" - Cuando un nodo tiene hijos, se reconoce porque tiene una flecha a su izquierda que apunta hacia la derecha. - Si haces click en esa flecha, apunta hacia abajo y muestra los hijos del nodo. - Si haces click en una flecha hacia abajo, apunta de nuevo a la derecha y oculta los hijos del nodo. - - Lo anterior nos permite navegar el árbol de dos maneras: haciendo click en cada nodo, de acuerdo a lo explicado, o - haciendo click en cualquier parte del árbol y desplazándonos luego con las flechas del teclado. - -Para continuar, despliega el árbol de la izquierda y ubícate en el hijo de este nodo titulado "Modificar y exportar subárboles" - -### Modificar y exportar subárboles - -¡Bien! estás en el primer ejercicio. -Si leíste el nodo "Panorámica rápida" ya sabes la terminología básica de nodos -padres e hijos y también como navegar en un árbol o lo intuías por tu cuenta (la prueba es que estás acá). - -Este primer ejercicio consistirá en aprender a modificar un documento, lo cual permitirá luego crear los propios. - -Cuando estás dentro de una parte de un árbol, como acá, el nodo en el que estás parado, sus hijos, los hijos de esos hijos -y así suscesivamente constituyen lo que se llama un "subárbol". - -Por ejemplo, si en el tutorial digital te paras en el nodo titulado "Subárbol de ejemplo" se despliega lo siguiente: - - - Primera sección - - Segunda sección - - Primera subsección - - Segunda subsección - - Primera sub-subsección - - Tercera subsección - -Como verás, podemos anidar información, con lo cual vamos dando cuenta de la estructura que queremos que tenga -un documento. -Si quieres, dale una mirada a los contenidos del subárbol, pero *no olvides luego volver acá*, pues aquí continua la explicación. - -Bien, digamos que quieres ver cómo luce este subárbol como documento en HTML. -Para exportar cualquier subárbol como HTML haces lo siguiente: - - - Párate en el nodo que quieres exportar, en este caso el titulado "Subarbol de ejemplo" - - Haces click en el botón con puntos suspensivos "...", que aparece más a la derecha - (si, no es una muy buena elección para un ícono, estamos trabajando en ello). - - Elige la opción "Arbol > Exportar como HTML". Te preguntará si quieres exportar todo el árbol, refiriendose a todo el - documento o el subárbol, refiriéndose a donde estás ubicado. Elije la segunda opción. - - Luego haz click en el menú de puntos suspensivos - - -### Etiquetas, tipos de nodos, y modos - - - -#### Nodos de configuración - -Una mención especial merece el nodo "Configuración". -notarás que tiene una etiqueta con el nombre "config" y si haces click en él verás unos datos de la forma: - -Eso es lo que se llama un diccionario en Smalltalk, y es una manera de representar atributos y sus valores. -En este nodo, estamos diciendo dónde queremos que se guarde el documento que se produciría al exportar -este subárbol. -La mejor forma de verlo en acción es - -#### Nodos invisibles - - - -#### Nodos de notas a pie de página - - - -#### Nodos de imágenes y figuras - - - -#### Nodos de código - - - -#### Nodos transmedia - - - -## Escultores de icebergs o el por qué de grafoscopio - -Acá te contamos del lugar que espera llenar grafoscopio. -De las fuentes de inspiración y los espacios que no creíamos -que estuviesen ocupados. - -### La metáfora del iceberg para la crear, escribir y visualizar: lo que ves es sólo la superficie de lo que tienes - -El iceberg es una buena metáfora para la creación en general: el resultado es sólo muestra -la superfie de un proceso que es más profundo. -En la mayoría de los proyectos, cada informe, texto, visualización, esta sustentado por un -conjunto de soportes, autores, archivos e insumos, que quedan por fuera del documento -que apeló a los mismos para existir. -Dichas conexiones quedan ocultas bajo el texto o la gráfica; las tablas tienen los datos, pero no las -consultas que los extrayeron, los insumos se deperdigan en la cabeza de los autores, las carpetas y -referencias bibliográficas cuyo uso más allá de las citas. -Se puede tener un texto suscinto y de fácil lectura o extenso y detallado, pero siempre se oculta las -complejidades que lo construyen, lo cual dificulta la participación y transparencia posterior, propia -de los procesos más horizontales e incluyentes. - -Por ello se requieren metáforas escriturales distintas, que integren las distintas capas -y niveles de profundidad propios de proyectos complejos como estos. -En esencia se trata de pasar de las metáforas *Lo Que Ves Es Lo Que Obtienes* o WYSIWYG (por las siglas en inglés para -*What You See Is What You Get*) a metáforas de "escritura tipo *iceberg*" donde *Lo Que Ves Es Sólo La Superficie De Lo Que Tienes*. - -Grafosocpio intenta explorar un buen balance entre detalle y legibilidad usando las estructuras arbóreas -en la que la escritura se organiza por capas. -Las capas más profundas, contienen los detalles que permite la estructuración y escritura de documentos -como los antes mencionados, y en las capas más externas, está aquello que el lector va a ubicar e incluso -la organización para diferentes tipos de lectores, permitiendo a la vez dar cuenta, en un documento -integrado, de recursos externos, anidamientos y relaciones internas y otros elementos constitutivos pero -distintos del texto. - -Este tipo alternativo de formas escriturales ayudaría en varios sentidos: - - - Se alejaría de las comparaciones clásicas entres abordajes similares. Una metáfora escritural distinta requiere - otra forma de pensar respecto al proceso de escritura que va más allá de la hoja en blanco y las carpetas, propias - de los procesadores de palabra tradicionales. - - Facilitaría la colaboración entre los miembros de un grupo que cra en colectivo. - - Facilitaria la trazabilidad asociada a los procesos de creación. - -La invitación es a sumergirnos juntos en esta exploración y construcción compartida. - -### Fuentes de inspiración: Ideas prestadas y propias - -Grafoscopio es un proyecto en permanente evolución y no lo digo como frase cliché, sino -en el sentido de que intenta adecuarse a las necesidades cambiantes del entorno, es decir -a las de sus usuarios y co-creadores (para ver un trazo de hacía dónde podría ir, te invito a -consultar la sección titulada "Mapa de Ruta" en este mismo documento). -De hecho, grafoscopio surgió de esas necesidades cambiantes y particulares, pues nada de -lo que había hasta el momento daba cuenta precisamente la experiencia de escritura y uso -del computador que yo quería tener y que, creo, que sería útil para más personas. -El proyecto ha recibido inspiración de diversas fuentes como TeXmacs, Leo, IPython, LaTeX, Lout, pandoc, -varios lenguajes de etiquetamiento ligero (ascii doc, markdown, reStructuredText y txt2tags), -y comparte ideas con otros sistemas como pollen y org mode, que conocí despúes. -Sin embargo, grafoscopio intenta crear una experiencia que no está propiamente en ninguna -de las herramientas antes mencionadas (a pesar de que usa algunas de ellas por ejp pandoc y fossil, -como piezas del software, que le dan nueva funcionalidad sin reinventar la rueda). -Pharo/Smalltalk es el vehículo para explorar el encuentro, mutación y recombinación de estas -ideas y el surgimiento de nuevas. - -**Ideas similares**: - - - Al igual que LaTeX, TeXmacs y Lout intenta producir documentos de alta calidad visual, - particularmente en su exportación como pdf. - - De IPython notebook (o Jupyter, el proyecto posterior), TeXmacs y Mathematica, toma - la idea de escribir documentos interactivos que van más allá del texto y lo combinan con - cálculos, visualizaciones, simulaciones, etc. - - De Leo y mathematica toma la idea de documentos computables. - El documento es un árbol con ramificaciones que son calculables (celdas en mathematica - e IPython y nodos en Leo). - Al igual que en Leo las partes del árbol (los nodos) pueden introducir automatismos - que modifican el documento en parte o en su totalidad o incluso podrían modificar el funcionamiento - e interface del software (como los macros de la ofimática clásica). - Esta idea de un documento programable y que puede programar todo el entorno ha estado en - sistemas como Lisp desde los 60's e emacs y ha tomado cuerpo en sucesores recientes de este - legado como Pollen/Racket y org-mode. - - De los lenguajes de etiquetamiento ligero, toma la idea de una escritura centrada en el texto, - en las palabras, que se puede escribir fácilmente y sin preocuparse por adornos visuales al delegar - los temas de presentación a hojas de estilo y programas externos (idea que está en otros sistemas - como Ulysses, Substance, IPython, Ghost, etc). - text2tags en particular merece una especial mención, por su sintaxis extensible por el usuario vía - expresiones regulares. - Y aunque es una forma de extensión poco elegante, comparada con que provee Pollen, vía funciones, - o el mismo Smalltalk, vía mensajes, si fue una primera aproximación a la idea de que un lenguaje - de documentación podía permanencer simple a la vez de extensible. - -**Ideas diferentes**: - - - A diferencia de TeXmacs, LaTeX, Leo e IPython, intenta tener un empaquetado e instalación sencillas, tipo - descargue, descomprima y use, sin pensar mucho en el sistema operativo, los gestores de paquetes, - etc. - Las dependencias externas deben ser mínimas, portables (compiladas estáticamente) y venir dentro del - instalador en el archivo compreso (pandoc, fossil y a futuro lout, constituyen dichas dependencias) - - A diferencia de Leo, se concentra en la experiencia de escritura de textos interactivos. - Leo es más versátil, pero también más complicado, pues tiene que lidiar con cómo se integra con archivos - externos y las instrucciones uso e instalación y modificación están orientadas a un público más técnico - (casi cualquier cosa se tiene que hacer editando archivos de Leo). - Los documentos interactivos tiene capas, a diferencia de IPython, donde, si el documento se pone muy - largo, puede hacerse pronto inmanegable y el afinamiento para convertirlo en pdf implica afinar - manualmente el archivo LaTeX intermedio. - - A diferencia de Leo, TeXmacs, IPython es más fácil de entender, extender y modificar. - Fuí usuario de Leo varios años y sólo hasta los últimos años empecé a cambiarlo de modo superficial. - Los cambios que hice a TeXmacs también se vieron limitados. - Traduje buena parte del manual a español e hice algunos scripts para personalizar los menús de la interface. - TeXmacs está hecho con Scheme y C++, lenguajes bien diferentes y si bien con el primero se podría hacer - parte de los cambios, si se quiere llegar a profundidad, se requiere del segundo. - IPython consta de múltiples capas que requieren conceptos y tecnologías diversos para hacer que funcione: - json, python, html, zeroMQ, programación de cliente y servidor, lenguajes de *scripting*, programación - imperativa y objetual. - - Todas las anteriores herramientas están hechas desde la tradición Unix de tener archivos estáticos, que - se editan desde editores externos, con idiosincracias distintas, lo cual genera una curva de aprendizaje - más inclinada. - En cambio, creé el primer alfa grafoscopio en un par de meses, incluido el aprendizaje de los rudimentos - de Smalltalk (lenguaje y entorno). - Esto es un mérito del entorno altamente interactivo, uniforme e integrado y la sintaxis - sencilla y poderosa que provee Pharo/Smalltalk, frente al paradigma más convencional y - extendido, pero menos fluido, de los sistemas operativos. - -Dicho todo esto, grafoscopio es una herramienta que espera tener su propio lugar. -No pretende desplazar a ninguna y, como dije, le debe mucha inspiración a las que he mencionado. -Guardo profundo respeto y admiración por los autores, las comunidades detrás de tales -herramientas y por las herramientas mismas y si bien las uso menos en la medida que -grafoscopio madura, siguen teniendo un lugar en mi baticinturón (y mi corazón :-P). - - -## Exploración Recomendada - -Estamos preparando unos documentos interactivos para la exploración de grafoscopio. -Puedes descargarlos, abrirlos en grafoscopio y mirar cómo funcionan. -Acá están los enlaces: - - - Agile Visualization: | [Sitio Web](http://agilevisualization.com/) | [Documento de grafoscopio](http://mutabit.com/deltas/repos.fossil/grafoscopio/doc/tip/Docs/En/Books/AgileVisualization/agile-visualization.ston) - - -## Mapa de Ruta - -¿Cuándo un artefacto (digital o no) está listo para liberarse al público? -Me parece que la respuesta tiene que ver con la experiencia de uso. -El principal criterio de dicha experiencia es que no debe ser confusa. -Esto no quiere decir que esté completa o que sea totalmente amigable - o "intuitiva" (ese término siempre me ha parecido engañoso y me pregunto: -¿de acuerdo a la intuición de quién?). -Se trata sobre todo de que las personas sepan qué esperar del artefacto. - -Muchas de estas espectativas se pueden informar con la documentación. -Algo que haga claro cuáles son las ofertas, limitaciones y potencialdades -del artefacto. -Este mapa de ruta intenta aclarar esos aspectos. - -He organizado el mapa de ruta en forma de un tablero Kanban, con tres -lugares "Por Hacer", "Hecho" y "Haciendo", que junto con el repositorio de -código fuente (en Monticello) y de documentación (en fossil) del proyecto muestran -cómo se van implementando las diferentes características que se integran -en la experiencia de usuario. -Puedes revisar cada una de las tres secciones del Kanban para ver en qué -estamos trabajando, que hemos resuelto y qué tenemos proyectado hacia -el futuro. - -Para la primera versión pública grafoscopio debería desde soportar una primera experiencia tres pasos: -descargue, descomprima y explore. -Esto quiere decir que debe tener una barra de tareas con acceso a las funcionalidades más -empleadas y la documentación en distintos formatos. - -De ahí en adelante se puede establecer un modelo de *rolling release*, similar al de algunas distribuciones del -sistema operativo Gnu/Linux, como Arch, en el que acceder a nuevas caracteríscas nuevas del sistema, simplemente -sea actualizarse a la última versión (para esto actualmente existe una opción de menú integrada a la interfaz -gráfica, que hace esto). - -Ese es el mapa, por lo pronto, pero se reciben sugerencias de futuras rutas. - -### Kanban - - - -#### Por Hacer - -Las características futuras previstas son: - - - Un procedimiento asistido para la instalación de TeX. - - Soporte para creación de pdf locales vía Lout y un conversor de postscript a pdf (¿quizás ghostscript?). - - Más ejemplos de documentos interactivos, particularmente asociados a ciencia abierta, ciudadana y de garage. - - ¿Pruebas unitarias? (son necesarias, lo que no sé es si para esta versión ya tengamos rudimentos de - como se hacen). - - Mejorar los nodos de texto con: - - Botones para embeber notas al pie de página, imagenes, cambiar el tamaño de las fuentes. - - Resaltado sintáctico para markdown: Los nodos de texto actuales no muestran pistas de color que permitan - guiar al autor. La idea es que se soporte opciones de resultado sintáctico y hacia futuro algunas ayudas tipográficas - (cursivas, negrillas, etc). Luego se pueden dar soporte a otros lenguajes. - - Mejor comportamiento como editor de texto, respetando el espacio en blanco con los saltos de línea. - - Objetos en los nodos: Actualmente tenemos dos tipos de nodos, aquellos que son sólo texto, y los playgrounds, pero - aún no están tan bién integrados como se podría. - Se requiere un mejor tiepo de integración, haciendo que el nodo genérico sorpote distintos tipos de mensajes de los - nodos embebidos y delegue a los mismos disintas comportamientos. - También se requieren distintos tipos de nodos, empezando por los nodos de imagen, quer permitan ver cómo - lucen tales imagenes y enviarles mensajes (escalarlas, exportarlas, etc). - - Aztlek propone la idea de que el árbol de grafoscopio permita cambiar el código fuente del mismo, o presentarlo - de manera arbórea, en lugar de desde el navegador de clases. - Es una idea interesante, habría que mirar cuánto del cambio de interface se requiere o se puede mapear de uno al - otro, pues el navegador de clases es bastante poderoso y adecuado para la escritura de código, mientras que - grafoscopio está centrado en la escritura de texto, acompañado por código y visualizaciones. - -#### Haciendo - - - [X] Integrado pandoc para la exportación a distintos formatos y fossil para el control histórico - de documentos y la colaboración. - - En caso de que se quiera exportar como pdf debe indicar que se debe instalar TeX en la versión de - Windows, Linux o Mac, con los enlaces respectivos. - - -#### Hecho - - - -##### Barra de herramientas fija - - - Una barra de herramientas fija con los siguientes menus: - - Lanzar - - Nuevo documento interactivo - - Documentos interactivos recientes ... - - Documentos interactivos de ejemplo. - - Ayuda. - - Manual en HTML La cargaría desde el sistema de archivos y vendría integrado en la descarga. - - Manual en Pdf . - - Arbol de grafosocpio - Se debe colocar la ayuda en formatos distintos a grafoscopio, pues las gráficas integradas no se ven - dentro del árbol. - - DELETED Docs/Es/Manual/manual-grafoscopio.pdf Index: Docs/Es/Manual/manual-grafoscopio.pdf ================================================================== --- Docs/Es/Manual/manual-grafoscopio.pdf +++ Docs/Es/Manual/manual-grafoscopio.pdf cannot compute difference between binary files DELETED Docs/Es/Manual/manual-grafoscopio.ston Index: Docs/Es/Manual/manual-grafoscopio.ston ================================================================== --- Docs/Es/Manual/manual-grafoscopio.ston +++ Docs/Es/Manual/manual-grafoscopio.ston @@ -1,1234 +0,0 @@ -OrderedCollection [ - GrafoscopioNode { - #header : 'Manual de Grafoscopio', - #key : '', - #body : ' - Versi\u00F3n: 0.1 - - Autor: Offray Vladimir Luna C\u00E1rdenas - - Correo: offray@mutabit.com -', - #children : OrderedCollection [ - GrafoscopioNode { - #header : 'Agradecimientos', - #key : '', - #body : ' Grafoscopio no hubiera sido posible sin la ayuda de muchas personas vinculadas a diversos lugares comunitarios e institucionales. -Ac\u00E1 un listado de algunos de esos lugares y personas. - - - mutabiT. - - HackBo, el hackerspace de Bogot\u00E1, en particular las personas asistentes a los talleres de Indie Web Science y en especial - Iv\u00E1n Pulido, Rafael Medina y Camilo Hurtado. - - Las comunidades de Pharo, Moose y Agile Visualization. - - El HiTec Lab de la Fundaci\u00F3n Universitaria Los Libertadores. - - La Fundaci\u00F3n Visonte. - -Algunas personas han ayudado mucho con su escucha y apoyo, al margen de cualquier vinculaci\u00F3n intitucional y/o comunitaria. -Entre ellas: Andr\u00E9s Calder\u00F3n, Hilda C\u00E1rdenas y Yanneth Gil. ', - #children : OrderedCollection [ ], - #parent : @2, - #level : 2 - }, - GrafoscopioNode { - #header : '\u00BFQu\u00E9 y para qu\u00E9 es grafoscopio?', - #key : '', - #body : 'Grafoscopio es una herramienta amoldable y flexible para la creaci\u00F3n de *documentos* interactivos estructurados -por capas. -Sirve para alentar nuevas pr\u00E1cticas escriturales y de visualizaci\u00F3n de datos que puede ser usado en distintas -contextos: escritura acad\u00E9mica, educaci\u00F3n, narrativa y periodismo de datos, ciencia e investigaci\u00F3n abiertas, -ciudadanas y/o de garage, narrativa transmedia, activismo y muchos m\u00E1s. - -Ve\u00E1mos en detalle algunos elementos de la definici\u00F3n: - - - Sobre los *documentos* digimos que eran: - - - *Documentos estructurados y por capas:* Grafoscopio permite centrarse en las palabras y su estructura, sin - distracciones de otra \u00EDndole. - Delega la apariencia a plantillas y programas externos permitiendo concentrarse s\u00F3lo en la escritura y la - estructura de la misma. Para la estructura usa un \u00E1rbol que permite expresar secciones del texto: t\u00EDtulos, subt\u00EDtulos, cap\u00EDtulos, ideas, - e incluso partes invisibles, que ayudan a redactar aquello que s\u00ED se va a ver. Para las palabras usa un sencillo y popular lenguaje de - etiquetas (llamado *markdown*), que se aprende en pocos minutos y permite expresar elementos del texto: enfasis (*cursiva*), enfasis - fuerte (**negrilla**), listas de items, numeraciones, tablas y referencias a gr\u00E1ficos. - - - *Documentos Interactivos:* Grafoscopio permite que los documentos, adem\u00E1s de palabras y estructura, incluyan - automatismos que extraen y calculan informaci\u00F3n externa y crean gr\u00E1ficos din\u00E1micos a partir de ella, entre muchos otros usos. - Incluso todo el \u00E1rbol de un documento es programable, con lo cual podemos usar un mismo \u00E1rbol (o algunas de sus partes) para - crear diversos documentos a partir de distintos recorridos, lo cual brinda posibilidades extensas: galer\u00EDas de im\u00E1genes web a partir - de todas las figuras referenciadas, exportar el documento como un micrositio web, tomar partes de Internet e integrarlas a un - documento, etc. - Te invitamos a aprender a programar, pero incluso si es una decisi\u00F3n que no has tomado, podr\u00E1s emplear esas - funcionalidades a partir de los *plugins* y extensiones que la comunidad ir\u00E1 construyendo. - - - Sobre la herramienta digimos que era *amoldable y flexible*. - Con esto nos referimos a que es f\u00E1cil adaptar la herramienta a otros prop\u00F3sitos, contextos o intenciones. - Esto definitivamente requiere de programaci\u00F3n y de que entiendas el entorno de desarrollo de software integrado - con grafoscopio, el paradigma de programaci\u00F3n orientada a objetos y el lenguaje Smalltalk. Si ya sabes programar, este otro paradigma - ser\u00E1 beneficioso para mejorar la forma en que abordas problemas, incluso si no lo usas en tu entorno cotidiano; y si a\u00FAn no sabes, - te invitamos a una experiencia con un nivel de flexibilidad, interactividad que no hemos encontrado en otros lados. - Tomar\u00E1 tiempo y paciencia, pero ser\u00E1 progresivo, muy gratificante, empoderador y definitivamente menos demorado - que los abordajes usuales. - Esto va en contra de los libros tipo \"aprenda a programar en 21 d\u00EDas\" y como dec\u00EDa \"alguien en Internet\", no se encuentran libros - similares sobre tocar un instrumento musical, pintar o aprender a cocinar. - La maestr\u00EDa cuesta, sin embargo, grafoscopio est\u00E1 all\u00ED para ayudarte. - Puedes pasar de los documentos estructurados, sin ninguna programaci\u00F3n a los documentos interactivos, y de estos a la - programaci\u00F3n y modificaci\u00F3n del entorno completo. - Notar\u00E1s que gracias a la uniformidad del entorno, las transiciones ser\u00E1n fluidas, en caso de que quieras emprenderlas, y - dispondremos de espacios comunitarios (digitales y an\u00E1logos), as\u00ED como momentos de encuentro para facilitar el aprendizaje. - La subsecci\u00F3n \"Aprende\" de la p\u00E1gina web referenciada al final, muestra algunos de esos espacios y momentos. - -Ya sea que est\u00E9s interesado en la escritura sin distracciones o en los documentos din\u00E1micos e interactivos, grafoscopio ser\u00E1 -una herramienta que te permita explorar y expresar tus ideas de modos m\u00E1s fluidos. - -Para mayor informaci\u00F3n sobre Grafoscopio visita: - -', - #children : OrderedCollection [ ], - #parent : @2, - #level : 2 - }, - GrafoscopioNode { - #header : 'Instalaci\u00F3n y ejecuci\u00F3n', - #key : '', - #body : 'Empezar a usar grafoscopio ser\u00E1 sencillo. -Consistir\u00E1 en 3 pasos: 1) descargar la versi\u00F3n para tu plataforma, 2) descompr\u00EDmirlo y 3) ejecutarlo. -Si lo quieres llevar contigo o copiarlo a otras m\u00E1quinas, bastar\u00E1 con que copies la carpeta donde est\u00E1 el programa -y listo! Incluso lo podr\u00E1s ejecutar desde memorias USB. ', - #children : OrderedCollection [ - GrafoscopioNode { - #header : 'Gnu/Linux', - #key : '', - #body : ' - Descargar grafoscopio para Gnu/Linux de - - Descomprimirlo. - - Ejecutar el archivo `grafoscopio.sh` que aparece en la ra\u00EDz de la carpeta descomprimida - -**ADVERTENCIA**: Si est\u00E1 ejecutando una distribuci\u00F3n de Gnu/Linux de 64 bits, debe instalar -el soporte para ejecuci\u00F3n de las librer\u00EDas de 32 bits. Usualmente se llaman ia-32.', - #children : OrderedCollection [ ], - #parent : @8, - #level : 3 - }, - GrafoscopioNode { - #header : 'Windows', - #key : '', - #body : ' - Descargar grafoscopio para Gnu/Linux de - - Descomprimirlo. - - Ejecutar el archivo `grafoscopio.bat` que aparece en la ra\u00EDz de la carpeta descomprimida', - #children : OrderedCollection [ ], - #parent : @8, - #level : 3 - }, - GrafoscopioNode { - #header : 'OSX', - #key : '', - #body : 'A\u00FAn no se ha empaquedado esta versi\u00F3n.', - #children : OrderedCollection [ ], - #parent : @8, - #level : 3 - }, - GrafoscopioNode { - #header : 'C\u00F3digo fuente', - #key : '', - #body : 'Otra manera de instalar grafoscopio consiste en descargar primero la versi\u00F3n de Moose para -nuestra plataforma y luego usar el gestor de paquetes que viene integrado para instalarlo desde -el c\u00F3digo fuente. -Esencialmente se ejecutan 4 pasos: - -1. Descargar la variante de la m\u00E1quina virtual de Pharo para - [Windows](http://files.pharo.org/vm/pharo/win/Pharo-VM-win-stable.zip), - [Gnu/Linux](http://files.pharo.org/vm/pharo/linux/Pharo-VM-linux-stable.zip), - \u00F3 [OSX](http://files.pharo.org/vm/pharo/mac/Pharo-VM-mac-stable.zip) - y descomprimirla. - -2. Descargar la [imagen de Moose](https://ci.inria.fr/moose/job/moose-5.0/lastSuccessfulBuild/artifact/moose-5.0.zip). - -3. Lanzar la m\u00E1quina virtual en la plataforma y abrir la imagen de Moose. - -4. Abrir un playground y ejecutar lo siguiente: - -~~~ {#instalar-grafoscopio .smalltalk} -Gofer new - smalltalkhubUser: \'SvenVanCaekenberghe\' project: \'STON\'; - package: \'STON-Core\'; - load. - -Gofer new - smalltalkhubUser: \'Offray\' project: \'Grafoscopio\'; - package: \'Grafoscopio\'; - load. -~~~ - -Y listo! - -Para ejecutar grafoscopio, dentro de un *workspace* ejecutamos: - -```smalltalk -GrafoscopioBrowser startDockingBar -```', - #children : OrderedCollection [ - GrafoscopioNode { - #header : 'Detalles', - #key : '', - #body : 'Este nodo da los detalles de instalaci\u00F3n de grafoscopio en una instancia de Pharo 4. La intensi\u00F3n de hacer opcionales todas las dependencias de Moose, -relacionadas con an\u00E1lisis de software y dejar s\u00F3lo aquellas referidas a visualizaci\u00F3n de datos.', - #tags : 'invisible', - #children : OrderedCollection [ - GrafoscopioNode { - #header : 'Script de instalaci\u00F3n', - #key : '', - #body : '\"This script installs [grafoscopio](http://mutabit.com/grafoscopio) in Pharo 4.0\" - -\"Prerrequisites: -----------------\" - -\"Visualization library (which also makes main menu loadable)\" -Gofer it -\tsmalltalkhubUser: \'ObjectProfile\' project: \'Roassal2\'; -\tconfigurationOf: \'Roassal2\'; -\tloadDevelopment. - -\"Open/save files on STON format\" -Gofer new -\tsmalltalkhubUser: \'SvenVanCaekenberghe\' project: \'STON\'; -\tconfigurationOf: \'Ston\'; -\tloadBleedingEdge. - -\"Moose and Roassal integration\" -Gofer new -\tsmalltalkhubUser: \'Moose\' project: \'Glamour\'; -\tpackage: \'Glamour-Tools\'; -\tpackage: \'Glamour-Roassal2-Presentations\'; -\tload. -\t -Gofer new -\tsmalltalkhubUser: \'Moose\' project: \'GToolkit\'; -\tpackage: \'GT-InspectorExtensions-CoreRoassal\'; -\tload. - -\"Integration with external tools\" -Gofer new - smalltalkhubUser: \'Offray\' project: \'Grafoscopio\'; - package: \'Grafoscopio-ExternalTools\'; - load. - -\"HTML scrapping\" -Gofer new - smalltalkhubUser: \'PharoExtras\' project: \'Soup\'; - configurationOf: \'Soup\'; - loadStable. - -\"Data visualization\" -Gofer new - smalltalkhubUser: \'Offray\' project: \'Dataviz\'; - package: \'Dataviz\'; - load. - -\"Grafoscopio -------------\" -Gofer new - smalltalkhubUser: \'Offray\' project: \'Grafoscopio\'; - package: \'Grafoscopio\'; - load.', - #tags : 'c\u00F3digo', - #children : OrderedCollection [ ], - #parent : @18, - #level : 5 - }, - GrafoscopioNode { - #header : 'Carga de configuraciones', - #key : '', - #body : '(ConfigurationOfSoup project version: #stable) load.', - #tags : 'c\u00F3digo', - #children : OrderedCollection [ ], - #parent : @18, - #level : 5 - } - ], - #parent : @16, - #level : 4 - } - ], - #parent : @8, - #level : 3 - } - ], - #parent : @2, - #level : 2 - }, - GrafoscopioNode { - #header : 'Panor\u00E1mica R\u00E1pida', - #key : '', - #body : 'Si est\u00E1s en esta parte del documento imaginamos que ya tienes instalado grafoscopio, e incluso que est\u00E1s mirando este -documento desde grafoscopio mismo. -Si ese no es el caso, te recomendamos que: - - - Vayas a , instales grafoscopio, lo ejecutes y abras este documento haciendo click - en el men\u00FA superior en `Ayuda > Manual en grafoscopio`. - - - Maximices la ventana del documento y hagas click en la fecha que aparece junto a \"Manual de Grafoscopio\" y luego - selecciones \"Panor\u00E1mica R\u00E1pida\". Deber\u00EDas estar viendo este documento. - -Ahora que estamos seguros de que est\u00E1s leyendo este documento dentro de grafoscopio, te mostraremos c\u00F3mo funciona -la interface: - - - A la izquierda tienes un arbol. Este jerarquiza la informaci\u00F3n en ramas o nodos. Un nodo consta de dos partes b\u00E1sicas: - - - Una cabecera o t\u00EDtulo, que suele tener un texto corto, por ejemplo, para este nodo es \"Panor\u00E1mica R\u00E1pida\" - - Un cuerpo o contenido, que ya despliega los textos detallados del nodo, por ejemplo, el texto que ahora lees. - - A su vez un nodo puede agrupar a otros nodos. En ese caso el nodo que agrupa a los otros se conoce como padre y los - agrupados en \u00E9ste, se conocen como hijos. - Por ejemplo, el nodo padre de este nodo se titula \"Manual de Grafoscopio\" y un nodo hijo de este nodo se titula \"Modificar y exportar sub\u00E1rboles\" - Cuando un nodo tiene hijos, se reconoce porque tiene una flecha a su izquierda que apunta hacia la derecha. - Si haces click en esa flecha, apunta hacia abajo y muestra los hijos del nodo. - Si haces click en una flecha hacia abajo, apunta de nuevo a la derecha y oculta los hijos del nodo. - - Lo anterior nos permite navegar el \u00E1rbol de dos maneras: haciendo click en cada nodo, de acuerdo a lo explicado, o - haciendo click en cualquier parte del \u00E1rbol y desplaz\u00E1ndonos luego con las flechas del teclado. - -Para continuar, despliega el \u00E1rbol de la izquierda y ub\u00EDcate en el hijo de este nodo titulado \"Modificar y exportar sub\u00E1rboles\"', - #children : OrderedCollection [ - GrafoscopioNode { - #header : 'Modificar y exportar sub\u00E1rboles', - #key : '', - #body : '\u00A1Bien! est\u00E1s en el primer ejercicio. -Si le\u00EDste el nodo \"Panor\u00E1mica r\u00E1pida\" ya sabes la terminolog\u00EDa b\u00E1sica de nodos -padres e hijos y tambi\u00E9n como navegar en un \u00E1rbol o lo intu\u00EDas por tu cuenta (la prueba es que est\u00E1s ac\u00E1). - -Este primer ejercicio consistir\u00E1 en aprender a modificar un documento, lo cual permitir\u00E1 luego crear los propios. - -Cuando est\u00E1s dentro de una parte de un \u00E1rbol, como ac\u00E1, el nodo en el que est\u00E1s parado, sus hijos, los hijos de esos hijos -y as\u00ED suscesivamente constituyen lo que se llama un \"sub\u00E1rbol\". - -Por ejemplo, si en el tutorial digital te paras en el nodo titulado \"Sub\u00E1rbol de ejemplo\" se despliega lo siguiente: - - - Primera secci\u00F3n - - Segunda secci\u00F3n - - Primera subsecci\u00F3n - - Segunda subsecci\u00F3n - - Primera sub-subsecci\u00F3n - - Tercera subsecci\u00F3n - -Como ver\u00E1s, podemos anidar informaci\u00F3n, con lo cual vamos dando cuenta de la estructura que queremos que tenga -un documento. -Si quieres, dale una mirada a los contenidos del sub\u00E1rbol, pero *no olvides luego volver ac\u00E1*, pues aqu\u00ED continua la explicaci\u00F3n. - -Bien, digamos que quieres ver c\u00F3mo luce este sub\u00E1rbol como documento en HTML. -Para exportar cualquier sub\u00E1rbol como HTML haces lo siguiente: - - - P\u00E1rate en el nodo que quieres exportar, en este caso el titulado \"Subarbol de ejemplo\" - - Haces click en el bot\u00F3n con puntos suspensivos \"...\", que aparece m\u00E1s a la derecha - (si, no es una muy buena elecci\u00F3n para un \u00EDcono, estamos trabajando en ello). - - Elige la opci\u00F3n \"Arbol > Exportar como HTML\". Te preguntar\u00E1 si quieres exportar todo el \u00E1rbol, refiriendose a todo el - documento o el sub\u00E1rbol, refiri\u00E9ndose a donde est\u00E1s ubicado. Elije la segunda opci\u00F3n. - - Luego haz click en el men\u00FA de puntos suspensivos - ', - #children : OrderedCollection [ - GrafoscopioNode { - #header : 'Sub\u00E1rbol de ejemplo', - #key : '', - #body : '', - #tags : 'invisible', - #children : OrderedCollection [ - GrafoscopioNode { - #header : 'Primera secci\u00F3n', - #key : '', - #body : 'Este texto est\u00E1 colocado dentro de un secci\u00F3n. -Su jerarqu\u00EDa es de nivel 1, con respecto al nodo titulado \"Primer ejercicio\", en el sentido de que si se exportara el -sub\u00E1rbol de dicho nodo, el nodo actual tendr\u00EDa un t\u00EDtulo de nivel 1.', - #children : OrderedCollection [ ], - #parent : @28, - #level : 5 - }, - GrafoscopioNode { - #header : 'Segunda secci\u00F3n', - #key : '', - #body : 'Este es un segundo texto est\u00E1 colocado dentro de un secci\u00F3n. -Su jerarqu\u00EDa es de nivel 1, con respecto al nodo titulado \"Primer ejercicio\", en el sentido de que si se exportara el -sub\u00E1rbol de dicho nodo, el nodo actual tendr\u00EDa un t\u00EDtulo de nivel 1.', - #children : OrderedCollection [ - GrafoscopioNode { - #header : 'Primera subsecci\u00F3n', - #key : '', - #body : 'Este es un primer texto est\u00E1 colocado dentro de una subsecci\u00F3n. -Su jerarqu\u00EDa es de nivel 2, con respecto al nodo titulado \"Primer ejercicio\", en el sentido de que si se exportara el -sub\u00E1rbol de dicho nodo, el nodo actual tendr\u00EDa un t\u00EDtulo de nivel 2.', - #children : OrderedCollection [ ], - #parent : @32, - #level : 5 - }, - GrafoscopioNode { - #header : 'Segunda subsecci\u00F3n', - #key : '', - #body : 'Este es un primer texto est\u00E1 colocado dentro de una subsecci\u00F3n. -Su jerarqu\u00EDa es de nivel 2, con respecto al nodo titulado \"Primer ejercicio\", en el sentido de que si se exportara el -sub\u00E1rbol de dicho nodo, el nodo actual tendr\u00EDa un t\u00EDtulo de nivel 2.', - #children : OrderedCollection [ ], - #parent : @32, - #level : 5 - }, - GrafoscopioNode { - #header : 'Primera sub-subsecci\u00F3n', - #key : '', - #body : '', - #children : OrderedCollection [ ], - #parent : @32, - #level : 5 - } - ], - #parent : @28, - #level : 5 - } - ], - #parent : @26, - #level : 4 - } - ], - #parent : @24, - #level : 3 - }, - GrafoscopioNode { - #header : 'Etiquetas, tipos de nodos, y modos', - #key : '', - #body : '', - #children : OrderedCollection [ - GrafoscopioNode { - #header : 'Nodos de configuraci\u00F3n', - #key : '', - #body : 'Una menci\u00F3n especial merece el nodo \"Configuraci\u00F3n\". -notar\u00E1s que tiene una etiqueta con el nombre \"config\" y si haces click en \u00E9l ver\u00E1s unos datos de la forma: - -Eso es lo que se llama un diccionario en Smalltalk, y es una manera de representar atributos y sus valores. -En este nodo, estamos diciendo d\u00F3nde queremos que se guarde el documento que se producir\u00EDa al exportar -este sub\u00E1rbol. -La mejor forma de verlo en acci\u00F3n es ', - #children : OrderedCollection [ ], - #parent : @40, - #level : 4 - }, - GrafoscopioNode { - #header : 'Nodos invisibles', - #key : '', - #body : '', - #children : OrderedCollection [ ], - #parent : @40, - #level : 4 - }, - GrafoscopioNode { - #header : 'Nodos de notas a pie de p\u00E1gina', - #key : '', - #body : '', - #children : OrderedCollection [ ], - #parent : @40, - #level : 4 - }, - GrafoscopioNode { - #header : 'Nodos de im\u00E1genes y figuras', - #key : '', - #body : '', - #children : OrderedCollection [ ], - #parent : @40, - #level : 4 - }, - GrafoscopioNode { - #header : 'Nodos de c\u00F3digo', - #key : '', - #body : '', - #children : OrderedCollection [ ], - #parent : @40, - #level : 4 - }, - GrafoscopioNode { - #header : 'Nodos transmedia', - #key : '', - #body : '', - #children : OrderedCollection [ ], - #parent : @40, - #level : 4 - } - ], - #parent : @24, - #level : 3 - } - ], - #parent : @2, - #level : 2 - }, - GrafoscopioNode { - #header : 'Escultores de icebergs o el por qu\u00E9 de grafoscopio', - #key : '', - #body : 'Ac\u00E1 te contamos del lugar que espera llenar grafoscopio. -De las fuentes de inspiraci\u00F3n y los espacios que no cre\u00EDamos -que estuviesen ocupados.', - #children : OrderedCollection [ - GrafoscopioNode { - #header : 'La met\u00E1fora del iceberg para la crear, escribir y visualizar: lo que ves es s\u00F3lo la superficie de lo que tienes', - #key : '', - #body : 'El iceberg es una buena met\u00E1fora para la creaci\u00F3n en general: el resultado es s\u00F3lo muestra -la superfie de un proceso que es m\u00E1s profundo. -En la mayor\u00EDa de los proyectos, cada informe, texto, visualizaci\u00F3n, esta sustentado por un -conjunto de soportes, autores, archivos e insumos, que quedan por fuera del documento -que apel\u00F3 a los mismos para existir. -Dichas conexiones quedan ocultas bajo el texto o la gr\u00E1fica; las tablas tienen los datos, pero no las -consultas que los extrayeron, los insumos se deperdigan en la cabeza de los autores, las carpetas y -referencias bibliogr\u00E1ficas cuyo uso m\u00E1s all\u00E1 de las citas. -Se puede tener un texto suscinto y de f\u00E1cil lectura o extenso y detallado, pero siempre se oculta las -complejidades que lo construyen, lo cual dificulta la participaci\u00F3n y transparencia posterior, propia -de los procesos m\u00E1s horizontales e incluyentes. - -Por ello se requieren met\u00E1foras escriturales distintas, que integren las distintas capas -y niveles de profundidad propios de proyectos complejos como estos. -En esencia se trata de pasar de las met\u00E1foras *Lo Que Ves Es Lo Que Obtienes* o WYSIWYG (por las siglas en ingl\u00E9s para -*What You See Is What You Get*) a met\u00E1foras de \"escritura tipo *iceberg*\" donde *Lo Que Ves Es S\u00F3lo La Superficie De Lo Que Tienes*. - -Grafosocpio intenta explorar un buen balance entre detalle y legibilidad usando las estructuras arb\u00F3reas -en la que la escritura se organiza por capas. -Las capas m\u00E1s profundas, contienen los detalles que permite la estructuraci\u00F3n y escritura de documentos -como los antes mencionados, y en las capas m\u00E1s externas, est\u00E1 aquello que el lector va a ubicar e incluso -la organizaci\u00F3n para diferentes tipos de lectores, permitiendo a la vez dar cuenta, en un documento -integrado, de recursos externos, anidamientos y relaciones internas y otros elementos constitutivos pero -distintos del texto. - -Este tipo alternativo de formas escriturales ayudar\u00EDa en varios sentidos: - - - Se alejar\u00EDa de las comparaciones cl\u00E1sicas entres abordajes similares. Una met\u00E1fora escritural distinta requiere - otra forma de pensar respecto al proceso de escritura que va m\u00E1s all\u00E1 de la hoja en blanco y las carpetas, propias - de los procesadores de palabra tradicionales. - - Facilitar\u00EDa la colaboraci\u00F3n entre los miembros de un grupo que cra en colectivo. - - Facilitaria la trazabilidad asociada a los procesos de creaci\u00F3n. - -La invitaci\u00F3n es a sumergirnos juntos en esta exploraci\u00F3n y construcci\u00F3n compartida.', - #children : OrderedCollection [ ], - #parent : @54, - #level : 3 - }, - GrafoscopioNode { - #header : 'Fuentes de inspiraci\u00F3n: Ideas prestadas y propias', - #key : '', - #body : 'Grafoscopio es un proyecto en permanente evoluci\u00F3n y no lo digo como frase clich\u00E9, sino -en el sentido de que intenta adecuarse a las necesidades cambiantes del entorno, es decir -a las de sus usuarios y co-creadores (para ver un trazo de hac\u00EDa d\u00F3nde podr\u00EDa ir, te invito a -consultar la secci\u00F3n titulada \"Mapa de Ruta\" en este mismo documento). -De hecho, grafoscopio surgi\u00F3 de esas necesidades cambiantes y particulares, pues nada de -lo que hab\u00EDa hasta el momento daba cuenta precisamente la experiencia de escritura y uso -del computador que yo quer\u00EDa tener y que, creo, que ser\u00EDa \u00FAtil para m\u00E1s personas. -El proyecto ha recibido inspiraci\u00F3n de diversas fuentes como TeXmacs, Leo, IPython, LaTeX, Lout, pandoc, -varios lenguajes de etiquetamiento ligero (ascii doc, markdown, reStructuredText y txt2tags), -y comparte ideas con otros sistemas como pollen y org mode, que conoc\u00ED desp\u00FAes. -Sin embargo, grafoscopio intenta crear una experiencia que no est\u00E1 propiamente en ninguna -de las herramientas antes mencionadas (a pesar de que usa algunas de ellas por ejp pandoc y fossil, -como piezas del software, que le dan nueva funcionalidad sin reinventar la rueda). -Pharo/Smalltalk es el veh\u00EDculo para explorar el encuentro, mutaci\u00F3n y recombinaci\u00F3n de estas -ideas y el surgimiento de nuevas. - -**Ideas similares**: - - - Al igual que LaTeX, TeXmacs y Lout intenta producir documentos de alta calidad visual, - particularmente en su exportaci\u00F3n como pdf. - - De IPython notebook (o Jupyter, el proyecto posterior), TeXmacs y Mathematica, toma - la idea de escribir documentos interactivos que van m\u00E1s all\u00E1 del texto y lo combinan con - c\u00E1lculos, visualizaciones, simulaciones, etc. - - De Leo y mathematica toma la idea de documentos computables. - El documento es un \u00E1rbol con ramificaciones que son calculables (celdas en mathematica - e IPython y nodos en Leo). - Al igual que en Leo las partes del \u00E1rbol (los nodos) pueden introducir automatismos - que modifican el documento en parte o en su totalidad o incluso podr\u00EDan modificar el funcionamiento - e interface del software (como los macros de la ofim\u00E1tica cl\u00E1sica). - Esta idea de un documento programable y que puede programar todo el entorno ha estado en - sistemas como Lisp desde los 60\'s e emacs y ha tomado cuerpo en sucesores recientes de este - legado como Pollen/Racket y org-mode. - - De los lenguajes de etiquetamiento ligero, toma la idea de una escritura centrada en el texto, - en las palabras, que se puede escribir f\u00E1cilmente y sin preocuparse por adornos visuales al delegar - los temas de presentaci\u00F3n a hojas de estilo y programas externos (idea que est\u00E1 en otros sistemas - como Ulysses, Substance, IPython, Ghost, etc). - text2tags en particular merece una especial menci\u00F3n, por su sintaxis extensible por el usuario v\u00EDa - expresiones regulares. - Y aunque es una forma de extensi\u00F3n poco elegante, comparada con que provee Pollen, v\u00EDa funciones, - o el mismo Smalltalk, v\u00EDa mensajes, si fue una primera aproximaci\u00F3n a la idea de que un lenguaje - de documentaci\u00F3n pod\u00EDa permanencer simple a la vez de extensible. - -**Ideas diferentes**: - - - A diferencia de TeXmacs, LaTeX, Leo e IPython, intenta tener un empaquetado e instalaci\u00F3n sencillas, tipo - descargue, descomprima y use, sin pensar mucho en el sistema operativo, los gestores de paquetes, - etc. - Las dependencias externas deben ser m\u00EDnimas, portables (compiladas est\u00E1ticamente) y venir dentro del - instalador en el archivo compreso (pandoc, fossil y a futuro lout, constituyen dichas dependencias) - - A diferencia de Leo, se concentra en la experiencia de escritura de textos interactivos. - Leo es m\u00E1s vers\u00E1til, pero tambi\u00E9n m\u00E1s complicado, pues tiene que lidiar con c\u00F3mo se integra con archivos - externos y las instrucciones uso e instalaci\u00F3n y modificaci\u00F3n est\u00E1n orientadas a un p\u00FAblico m\u00E1s t\u00E9cnico - (casi cualquier cosa se tiene que hacer editando archivos de Leo). - Los documentos interactivos tiene capas, a diferencia de IPython, donde, si el documento se pone muy - largo, puede hacerse pronto inmanegable y el afinamiento para convertirlo en pdf implica afinar - manualmente el archivo LaTeX intermedio. - - A diferencia de Leo, TeXmacs, IPython es m\u00E1s f\u00E1cil de entender, extender y modificar. - Fu\u00ED usuario de Leo varios a\u00F1os y s\u00F3lo hasta los \u00FAltimos a\u00F1os empec\u00E9 a cambiarlo de modo superficial. - Los cambios que hice a TeXmacs tambi\u00E9n se vieron limitados. - Traduje buena parte del manual a espa\u00F1ol e hice algunos scripts para personalizar los men\u00FAs de la interface. - TeXmacs est\u00E1 hecho con Scheme y C++, lenguajes bien diferentes y si bien con el primero se podr\u00EDa hacer - parte de los cambios, si se quiere llegar a profundidad, se requiere del segundo. - IPython consta de m\u00FAltiples capas que requieren conceptos y tecnolog\u00EDas diversos para hacer que funcione: - json, python, html, zeroMQ, programaci\u00F3n de cliente y servidor, lenguajes de *scripting*, programaci\u00F3n - imperativa y objetual. - - Todas las anteriores herramientas est\u00E1n hechas desde la tradici\u00F3n Unix de tener archivos est\u00E1ticos, que - se editan desde editores externos, con idiosincracias distintas, lo cual genera una curva de aprendizaje - m\u00E1s inclinada. - En cambio, cre\u00E9 el primer alfa grafoscopio en un par de meses, incluido el aprendizaje de los rudimentos - de Smalltalk (lenguaje y entorno). - Esto es un m\u00E9rito del entorno altamente interactivo, uniforme e integrado y la sintaxis - sencilla y poderosa que provee Pharo/Smalltalk, frente al paradigma m\u00E1s convencional y - extendido, pero menos fluido, de los sistemas operativos. - -Dicho todo esto, grafoscopio es una herramienta que espera tener su propio lugar. -No pretende desplazar a ninguna y, como dije, le debe mucha inspiraci\u00F3n a las que he mencionado. -Guardo profundo respeto y admiraci\u00F3n por los autores, las comunidades detr\u00E1s de tales -herramientas y por las herramientas mismas y si bien las uso menos en la medida que -grafoscopio madura, siguen teniendo un lugar en mi baticintur\u00F3n (y mi coraz\u00F3n :-P). -', - #children : OrderedCollection [ ], - #parent : @54, - #level : 3 - } - ], - #parent : @2, - #level : 2 - }, - GrafoscopioNode { - #header : 'Exploraci\u00F3n Recomendada', - #key : '', - #body : 'Estamos preparando unos documentos interactivos para la exploraci\u00F3n de grafoscopio. -Puedes descargarlos, abrirlos en grafoscopio y mirar c\u00F3mo funcionan. -Ac\u00E1 est\u00E1n los enlaces: - - - Agile Visualization: | [Sitio Web](http://agilevisualization.com/) | [Documento de grafoscopio](http://mutabit.com/deltas/repos.fossil/grafoscopio/doc/tip/Docs/En/Books/AgileVisualization/agile-visualization.ston) -', - #children : OrderedCollection [ ], - #parent : @2, - #level : 2 - }, - GrafoscopioNode { - #header : 'Mapa de Ruta', - #key : '', - #body : '\u00BFCu\u00E1ndo un artefacto (digital o no) est\u00E1 listo para liberarse al p\u00FAblico? -Me parece que la respuesta tiene que ver con la experiencia de uso. -El principal criterio de dicha experiencia es que no debe ser confusa. -Esto no quiere decir que est\u00E9 completa o que sea totalmente amigable - o \"intuitiva\" (ese t\u00E9rmino siempre me ha parecido enga\u00F1oso y me pregunto: -\u00BFde acuerdo a la intuici\u00F3n de qui\u00E9n?). -Se trata sobre todo de que las personas sepan qu\u00E9 esperar del artefacto. - -Muchas de estas espectativas se pueden informar con la documentaci\u00F3n. -Algo que haga claro cu\u00E1les son las ofertas, limitaciones y potencialdades -del artefacto. -Este mapa de ruta intenta aclarar esos aspectos. - -He organizado el mapa de ruta en forma de un tablero Kanban, con tres -lugares \"Por Hacer\", \"Hecho\" y \"Haciendo\", que junto con el repositorio de -c\u00F3digo fuente (en Monticello) y de documentaci\u00F3n (en fossil) del proyecto muestran -c\u00F3mo se van implementando las diferentes caracter\u00EDsticas que se integran -en la experiencia de usuario. -Puedes revisar cada una de las tres secciones del Kanban para ver en qu\u00E9 -estamos trabajando, que hemos resuelto y qu\u00E9 tenemos proyectado hacia -el futuro. - -Para la primera versi\u00F3n p\u00FAblica grafoscopio deber\u00EDa desde soportar una primera experiencia tres pasos: -descargue, descomprima y explore. -Esto quiere decir que debe tener una barra de tareas con acceso a las funcionalidades m\u00E1s -empleadas y la documentaci\u00F3n en distintos formatos. - -De ah\u00ED en adelante se puede establecer un modelo de *rolling release*, similar al de algunas distribuciones del -sistema operativo Gnu/Linux, como Arch, en el que acceder a nuevas caracter\u00EDscas nuevas del sistema, simplemente -sea actualizarse a la \u00FAltima versi\u00F3n (para esto actualmente existe una opci\u00F3n de men\u00FA integrada a la interfaz -gr\u00E1fica, que hace esto). - -Ese es el mapa, por lo pronto, pero se reciben sugerencias de futuras rutas.', - #children : OrderedCollection [ - GrafoscopioNode { - #header : 'Kanban', - #key : '', - #body : '', - #children : OrderedCollection [ - GrafoscopioNode { - #header : 'Por Hacer', - #key : '', - #body : 'Las caracter\u00EDsticas futuras previstas son: - - - Un procedimiento asistido para la instalaci\u00F3n de TeX. - - Soporte para creaci\u00F3n de pdf locales v\u00EDa Lout y un conversor de postscript a pdf (\u00BFquiz\u00E1s ghostscript?). - - M\u00E1s ejemplos de documentos interactivos, particularmente asociados a ciencia abierta, ciudadana y de garage. - - \u00BFPruebas unitarias? (son necesarias, lo que no s\u00E9 es si para esta versi\u00F3n ya tengamos rudimentos de - como se hacen). - - Mejorar los nodos de texto con: - - Botones para embeber notas al pie de p\u00E1gina, imagenes, cambiar el tama\u00F1o de las fuentes. - - Resaltado sint\u00E1ctico para markdown: Los nodos de texto actuales no muestran pistas de color que permitan - guiar al autor. La idea es que se soporte opciones de resultado sint\u00E1ctico y hacia futuro algunas ayudas tipogr\u00E1ficas - (cursivas, negrillas, etc). Luego se pueden dar soporte a otros lenguajes. - - Mejor comportamiento como editor de texto, respetando el espacio en blanco con los saltos de l\u00EDnea. - - Objetos en los nodos: Actualmente tenemos dos tipos de nodos, aquellos que son s\u00F3lo texto, y los playgrounds, pero - a\u00FAn no est\u00E1n tan bi\u00E9n integrados como se podr\u00EDa. - Se requiere un mejor tiepo de integraci\u00F3n, haciendo que el nodo gen\u00E9rico sorpote distintos tipos de mensajes de los - nodos embebidos y delegue a los mismos disintas comportamientos. - Tambi\u00E9n se requieren distintos tipos de nodos, empezando por los nodos de imagen, quer permitan ver c\u00F3mo - lucen tales imagenes y enviarles mensajes (escalarlas, exportarlas, etc). - - Aztlek propone la idea de que el \u00E1rbol de grafoscopio permita cambiar el c\u00F3digo fuente del mismo, o presentarlo - de manera arb\u00F3rea, en lugar de desde el navegador de clases. - Es una idea interesante, habr\u00EDa que mirar cu\u00E1nto del cambio de interface se requiere o se puede mapear de uno al - otro, pues el navegador de clases es bastante poderoso y adecuado para la escritura de c\u00F3digo, mientras que - grafoscopio est\u00E1 centrado en la escritura de texto, acompa\u00F1ado por c\u00F3digo y visualizaciones.', - #children : OrderedCollection [ ], - #parent : @64, - #level : 4 - }, - GrafoscopioNode { - #header : 'Haciendo', - #key : '', - #body : ' - [X] Integrado pandoc para la exportaci\u00F3n a distintos formatos y fossil para el control hist\u00F3rico - de documentos y la colaboraci\u00F3n. - - En caso de que se quiera exportar como pdf debe indicar que se debe instalar TeX en la versi\u00F3n de - Windows, Linux o Mac, con los enlaces respectivos. -', - #children : OrderedCollection [ - GrafoscopioNode { - #header : 'Arreglar la exportaci\u00F3n a html', - #key : '', - #body : '| pandoc markdownFileLocation htmlFileLocation workingFile | - -workingFile := FileSystem disk workingDirectory parent / \'Repo/Docs/Es/Manual/manual-grafoscopio.ston\' . - -pandoc := (FileSystem disk workingDirectory / \'Platform\' / \'Linux\' / \'Programs\' / \'Pandoc\' / \'pandoc\') fullName. - -markdownFileLocation := ((workingFile parent) / workingFile basenameWithoutExtension) fullName, \'.markdown\'. -htmlFileLocation := ((workingFile parent) / workingFile basenameWithoutExtension) fullName, \'.html\'.', - #tags : 'c\u00F3digo', - #children : OrderedCollection [ ], - #parent : @68, - #level : 5 - } - ], - #parent : @64, - #level : 4 - }, - GrafoscopioNode { - #header : 'Hecho', - #key : '', - #body : '', - #children : OrderedCollection [ - GrafoscopioNode { - #header : 'Barra de herramientas fija', - #key : '', - #body : ' - Una barra de herramientas fija con los siguientes menus: - - Lanzar - - Nuevo documento interactivo - - Documentos interactivos recientes ... - - Documentos interactivos de ejemplo. - - Ayuda. - - Manual en HTML La cargar\u00EDa desde el sistema de archivos y vendr\u00EDa integrado en la descarga. - - Manual en Pdf . - - Arbol de grafosocpio - Se debe colocar la ayuda en formatos distintos a grafoscopio, pues las gr\u00E1ficas integradas no se ven - dentro del \u00E1rbol. -', - #children : OrderedCollection [ - GrafoscopioNode { - #header : 'Implementaci\u00F3n de partida', - #key : '', - #body : '\"This code creates a docking bar\" - -|d| -\"World deleteDockingBars.\" -d:= - DockingBarMorph new. - World worldMenu items copy select:[:i| i hasSubMenu] thenDo:[:i| - d - add: i contents - icon: i icon - help: i contents - subMenu: i subMenu]. - d adhereToTop; - openInWorld.', - #tags : 'c\u00F3digo', - #children : OrderedCollection [ ], - #parent : @74, - #level : 6 - } - ], - #parent : @72, - #level : 5 - } - ], - #parent : @64, - #level : 4 - } - ], - #parent : @62, - #level : 3 - } - ], - #parent : @2, - #level : 2 - }, - GrafoscopioNode { - #header : 'Talleres', - #key : '', - #body : 'Este es un listado de los asistentes a los talleres sobre grafoscopio:', - #tags : 'invisible', - #children : OrderedCollection [ - GrafoscopioNode { - #header : 'Antes del lanzamiento p\u00FAblico', - #key : '', - #body : ' - Yanneth Gil. - - Camilo Hurtado. - - Offray Luna. - - Rafael Medina. - - Iv\u00E1n Pulido.', - #children : OrderedCollection [ ], - #parent : @78, - #level : 3 - }, - GrafoscopioNode { - #header : '2015', - #key : '', - #body : '', - #children : OrderedCollection [ - GrafoscopioNode { - #header : 'Mayo', - #key : '', - #body : '', - #children : OrderedCollection [ - GrafoscopioNode { - #header : '1 y 2', - #key : '', - #body : 'Asistentes: - - - Offray Luna C\u00E1rdenas. - - Cesar Augusto Arias Pe\u00F1aranda. - - Miguel S\u00E1nchez. - - Milena Moreno. - - Juan Pablo Morales. - - William Delgado. - -Memorias: - - - Enlaces: - - http://etherpad.wikimedia.org/p/grafoscopio-3 - - http://etherpad.wikimedia.org/p/grafoscopio-4 - - - Hitos: - - Mapa de presentaci\u00F3n actualizado. - - Proceso de instalaci\u00F3n actualizado a Pharo 4. -', - #children : OrderedCollection [ ], - #parent : @84, - #level : 5 - }, - GrafoscopioNode { - #header : '9', - #key : '', - #body : 'Asistentes: - - - Ivan Pulido. - - Juan Pablo Morales. - - William Delgado. - - Offray Luna - -Memorias: - - Enlaces: - - http://etherpad.wikimedia.org/p/grafoscopio-5 - - - Temas: - - Visualizaci\u00F3n. -', - #children : OrderedCollection [ - GrafoscopioNode { - #header : 'Banderas', - #key : '', - #body : '\"This code was modified from flags example of Composite Shapes in roassal examples browser\" -| view shape els flags beforeSample sampleData afterSample | - -\"View and composite shape which will contain all subshapes\" -view := RTView new. -shape := RTCompositeShape new. -\"Subshapes\" -beforeSample := (RTBox new color: Color red; height: 20; width: 100). -sampleData := (RTBox new color: #second; height: 20; width: 15). -afterSample := (RTBox new color: #third; height: 20; width: 5). -\"Composing the shape\" -shape add: beforeSample. -shape add: sampleData translateBy: 40 @ 0. -shape add: afterSample translateBy: 45 @ 0. -flags := Dictionary new. -flags at: \'France\' put: (Array with: Color red with: Color green with: Color yellow). - - -els := shape elementsOn: flags values. -els @ RTDraggable. -view addAll: els. - -RTGridLayout new on: els. - -^ view', - #tags : 'c\u00F3digo', - #children : OrderedCollection [ ], - #parent : @88, - #level : 6 - }, - GrafoscopioNode { - #header : 'Stackbar plot example.', - #key : '', - #body : '\t| b | -\tb := RTStackBarPlot new. -\tb interaction popupText. -\tb colorPalette colors: (Array with: Color blue with: Color red with: Color green with: Color orange ). -\tb add: #(10 3 1). - -\tb barWidth: 200 height: 20. -\tb build. -\tb view', - #tags : 'c\u00F3digo', - #children : OrderedCollection [ ], - #parent : @88, - #level : 6 - }, - GrafoscopioNode { - #header : 'Histograma doble', - #key : '', - #body : '\"Crea histograma \'doble\' con valores positivos y negativos. Adaptado del ejemplo de histograma con valores negativos de Roassal.\" -\t| data b ds | -\tdata := (1 to: 20) collect: [ :v | 10 atRandom - 5 ]. -\t\"atRandom tiene una sintaxis particular, el valor final es desde donde empieza el random y el primero el rango. -\tEn este caso, empieza en -5 y su rango es 10, por tanto va entre -5 y 5\" -\t -\tb := RTGrapher new. - -\tb extent: 300 @ 200. -\t -\t\"Primer set de datos\" -\tds := RTStackedDataSet new. -\tds interaction popup. -\tds points: data. -\tds barShape width: 8; -\t color: (Color green alpha: 0.3); -\t if: [:value | value < 0 ] fillColor: (Color red alpha: 0.3). -\tb add: ds. - -\t\"Segundo set de datos\" -\tdata := (1 to: 20) collect: [ :v | 20 atRandom - 5 ]. -\tds := RTStackedDataSet new. -\tds interaction popup. -\tds points: data. -\tds barShape width: 8; -\t color: (Color blue alpha: 0.3); -\t if: [:value | value < 0 ] fillColor: (Color yellow alpha: 0.3). -\tb add: ds. -\tb build. -\t^ b view', - #tags : 'c\u00F3digo', - #children : OrderedCollection [ ], - #parent : @88, - #level : 6 - } - ], - #parent : @84, - #level : 5 - }, - GrafoscopioNode { - #header : '16', - #key : '', - #body : '', - #children : OrderedCollection [ - GrafoscopioNode { - #header : 'Bosquejos de visualizaci\u00F3n', - #key : '', - #body : '', - #children : OrderedCollection [ - GrafoscopioNode { - #header : 'Forma b\u00E1sica: centro y epiciclos', - #key : '', - #body : '| canvas diameter nucleous epicycle | -\"Crea un c\u00EDrculo de tama\u00F1o fijo y color aleatorio\" -canvas := TRCanvas new. - -\"nucleous\" -nucleous := TREllipseShape new. -diameter := 200. \"This sould be variable, representing time.\" -nucleous size: diameter. -nucleous color: Color lightGreen. -canvas addShape: nucleous. - -\"epicycle\" -epicycle := TREllipseShape new. -\"The following two values should be computed dynamically. Just testing them for aesthetical reasons\" -epicycle size: 35. -epicycle color: Color blue. -epicycle translateTo: (diameter / 2 @ 0). -canvas addShape: epicycle. - -\"Showing the end result\" -canvas', - #tags : 'c\u00F3digo', - #children : OrderedCollection [ ], - #parent : @98, - #level : 7 - }, - GrafoscopioNode { - #header : 'Epiciclo con ubicaci\u00F3n aleatoria', - #key : '', - #body : '| canvas diameter angle nucleous epicycle | -\"Crea un c\u00EDrculo de tama\u00F1o fijo y color aleatorio\" -canvas := TRCanvas new. - -\"nucleous\" -nucleous := TREllipseShape new. -diameter := 200. \"This sould be variable, representing time.\" -nucleous size: diameter. -nucleous color: Color lightGreen. -canvas addShape: nucleous. - -\"epicycle\" -epicycle := TREllipseShape new. -\"The following two values should be computed dynamically. Just testing them for aesthetical reasons\" -angle := ( 360 atRandom asFloat ) * (Float pi / 180) . -epicycle size: 35. -epicycle color: Color lightRed. -epicycle translateTo: (( ( diameter / 2 ) * ( angle cos )) @ (( diameter / 2 ) * ( angle sin )) ). - -\"Labels -label := RTLabelled new text: \'1k\'. -label top. -epicycle @ label.\" - -canvas addShape: epicycle. - -\"Showing the end result\" -canvas .', - #tags : 'c\u00F3digo', - #children : OrderedCollection [ ], - #parent : @98, - #level : 7 - }, - GrafoscopioNode { - #header : 'C\u00EDrculo numerado', - #key : '', - #body : '| v circle ex1 ex2 line retweets reach diameter radious | - -diameter := 60. -radious := diameter / 2. -v := RTView new. - -circle := (RTEllipse new size: diameter; borderColor: Color black; color: Color transparent) element. -ex1 := RTBox element. -ex2 := RTBox element. -ex1 translateTo: radious negated @ 0. -ex2 translateTo: radious @ 0. -line := (RTLine new; color: Color black) edgeFrom: ex1 to: ex2. -v add: circle; add: line. - -retweets := (RTLabel text: 5) element. -reach := (RTLabel text: \'3.1k\') element. -v add: retweets; add: reach. -retweets translateTo: 0 @ -12. -reach translateTo: 0 @ 12. - -v -', - #tags : 'c\u00F3digo', - #children : OrderedCollection [ ], - #parent : @98, - #level : 7 - } - ], - #parent : @96, - #level : 6 - }, - GrafoscopioNode { - #header : 'Extracci\u00F3n de datos', - #key : '', - #body : '', - #children : OrderedCollection [ - GrafoscopioNode { - #header : 'Data scrapper para el trino', - #key : '', - #body : '\t| client source anUrl stats echoesTemp echoes | -\tanUrl := \'https://twitter.com/offrayLC/status/599196718152949760\'. -\tclient := ZnClient new. -\tclient get: anUrl. -\tclient isSuccess -\t\tifTrue:[ -\t\t\tsource := Soup fromString: (client) contents asString]. -\tstats := source findAllTagsByClass: \'stats\'. -\techoesTemp := ((stats at: 1) children at: 4) children select: [:each | each name isNotNil]. -\techoes := echoesTemp collect: [:each | (each attributeAt: \'href\') copyReplaceAll: \'/\' with: \'\']. -\t - -\t -\t', - #tags : 'c\u00F3digo', - #children : OrderedCollection [ ], - #parent : @106, - #level : 7 - }, - GrafoscopioNode { - #header : 'N\u00FAmero total de followers de los \"ecos\"', - #key : '', - #body : '\t| client source anUrl stats echoesTemp echoes totalFollowers | -\tanUrl := \'https://twitter.com/offrayLC/status/599196718152949760\'. -\tclient := ZnClient new. -\tclient get: anUrl. -\tclient isSuccess -\t\tifTrue:[ -\t\t\tsource := Soup fromString: (client) contents asString]. -\tstats := source findAllTagsByClass: \'stats\'. -\techoesTemp := ((stats at: 1) children at: 4) children select: [:each | each name isNotNil]. -\techoes := echoesTemp collect: [:each | (each attributeAt: \'href\') copyReplaceAll: \'/\' with: \'\']. -\ttotalFollowers := 0. -\t(echoes collect: [ :each | ( TwitterProfile new scrapDataFromProfile: each ) followers ] ) do: [ :each | totalFollowers := (totalFollowers + each) ]. -\ttotalFollowers', - #tags : 'c\u00F3digo', - #children : OrderedCollection [ ], - #parent : @106, - #level : 7 - }, - GrafoscopioNode { - #header : 'Arco con etiquetas', - #key : '', - #body : '', - #children : OrderedCollection [ - GrafoscopioNode { - #header : 'Versi\u00F3n 1', - #key : '', - #body : '| view shape elems label | - view := RTView new. - shape := RTArc new - innerRadius: [ :i | i *50]; - externalRadius: [ :i | (i * 50) + 4]; - alphaAngle: 45; - betaAngle: 135; - color: Color black. - elems := shape elementsOn: (1 to: 2). - view addAll: elems. - - label := RTLabelled new text: #yourself. - label left. - elems @ label. -view', - #tags : 'c\u00F3digo', - #children : OrderedCollection [ ], - #parent : @112, - #level : 8 - }, - GrafoscopioNode { - #header : 'Versi\u00F3n 2', - #key : '', - #body : 'view := RTView new. -shape := RTArc new - innerRadius: [ :i | i *50]; - externalRadius: [ :i | (i * 50) + 4]; - alphaAngle: 270; - betaAngle: 90; - color: Color black. -elems := shape elementsOn: (1 to: 2). -view addAll: elems. - -label := RTLabelled new text: #yourself. -label top. -elems @ label. - -view', - #tags : 'c\u00F3digo', - #children : OrderedCollection [ ], - #parent : @112, - #level : 8 - } - ], - #parent : @106, - #level : 7 - } - ], - #parent : @96, - #level : 6 - } - ], - #parent : @84, - #level : 5 - } - ], - #parent : @82, - #level : 4 - } - ], - #parent : @78, - #level : 3 - } - ], - #parent : @2, - #level : 2 - } - ], - #parent : GrafoscopioNode { - #header : 'Arbol principal', - #key : '', - #body : '', - #children : @1, - #level : 0, - #nodesInPreorder : OrderedCollection [ - @118, - @2, - @4, - @6, - @8, - @10, - @12, - @14, - @16, - @18, - @20, - @22, - @24, - @26, - @28, - @30, - @32, - @34, - @36, - @38, - @40, - @42, - @44, - @46, - @48, - @50, - @52, - @54, - @56, - @58, - @60, - @62, - @64, - @66, - @68, - @70, - @72, - @74, - @76, - @78, - @80, - @82, - @84, - @86, - @88, - @90, - @92, - @94, - @96, - @98, - @100, - @102, - @104, - @106, - @108, - @110, - @112, - @114, - @116 - ] - }, - #level : 1 - } -] DELETED Docs/Es/Presentaciones/AbreLatam2016/LICENSE Index: Docs/Es/Presentaciones/AbreLatam2016/LICENSE ================================================================== --- Docs/Es/Presentaciones/AbreLatam2016/LICENSE +++ Docs/Es/Presentaciones/AbreLatam2016/LICENSE @@ -1,212 +0,0 @@ - - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright 2015 Google Inc - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - - All code in any directories or sub-directories that end with *.html or - *.css is licensed under the Creative Commons Attribution International - 4.0 License, which full text can be found here: - https://creativecommons.org/licenses/by/4.0/legalcode. - - As an exception to this license, all html or css that is generated by - the software at the direction of the user is copyright the user. The - user has full ownership and control over such content, including - whether and how they wish to license it. DELETED Docs/Es/Presentaciones/AbreLatam2016/Tutorial/step01-initial-HTML-setup.html Index: Docs/Es/Presentaciones/AbreLatam2016/Tutorial/step01-initial-HTML-setup.html ================================================================== --- Docs/Es/Presentaciones/AbreLatam2016/Tutorial/step01-initial-HTML-setup.html +++ Docs/Es/Presentaciones/AbreLatam2016/Tutorial/step01-initial-HTML-setup.html @@ -1,36 +0,0 @@ - - - - - - - - - - MDL-Static Website - - - - - - - - - - - DELETED Docs/Es/Presentaciones/AbreLatam2016/Tutorial/step02-MDL-layout-component.html Index: Docs/Es/Presentaciones/AbreLatam2016/Tutorial/step02-MDL-layout-component.html ================================================================== --- Docs/Es/Presentaciones/AbreLatam2016/Tutorial/step02-MDL-layout-component.html +++ Docs/Es/Presentaciones/AbreLatam2016/Tutorial/step02-MDL-layout-component.html @@ -1,61 +0,0 @@ - - - - - - - - - - MDL-Static Website - - - - - - -
-
-
- Simple portfolio website -
- -
-
-
- Simple portfolio website - -
-
-

Hello world!

-
-
- - - - DELETED Docs/Es/Presentaciones/AbreLatam2016/Tutorial/step03-the-grid-component.html Index: Docs/Es/Presentaciones/AbreLatam2016/Tutorial/step03-the-grid-component.html ================================================================== --- Docs/Es/Presentaciones/AbreLatam2016/Tutorial/step03-the-grid-component.html +++ Docs/Es/Presentaciones/AbreLatam2016/Tutorial/step03-the-grid-component.html @@ -1,79 +0,0 @@ - - - - - - - - - - MDL-Static Website - - - - - - -
-
-
- Simple portfolio website -
- -
-
-
- Simple portfolio website - -
-
-
-
-

Hello world!

-
-
Cell 1
-
Cell 2
-
Cell 3
-
- -
-
- - - - DELETED Docs/Es/Presentaciones/AbreLatam2016/Tutorial/step04-customising-the-layout.html Index: Docs/Es/Presentaciones/AbreLatam2016/Tutorial/step04-customising-the-layout.html ================================================================== --- Docs/Es/Presentaciones/AbreLatam2016/Tutorial/step04-customising-the-layout.html +++ Docs/Es/Presentaciones/AbreLatam2016/Tutorial/step04-customising-the-layout.html @@ -1,201 +0,0 @@ - - - - - - - - - - MDL-Static Website - - - - - - - -
-
-
- Simple portfolio website -
-
- -
-
-
- Simple portfolio website - -
-
-
-
-
- -
-
-

Blog template

-
-
- Enim labore aliqua consequat ut quis ad occaecat aliquip incididunt. Sunt nulla eu enim irure enim nostrud aliqua consectetur ad consectetur sunt ullamco officia. Ex officia laborum et consequat duis. -
-
- Read more -
-
-
-
- -
-
-

Sunt nulla

-
-
- Enim labore aliqua consequat ut quis ad occaecat aliquip incididunt. Sunt nulla eu enim irure enim nostrud aliqua consectetur ad consectetur sunt ullamco officia. Ex officia laborum et consequat duis. -
-
- Read more -
-
-
-
- -
-
-

Android.com website

-
-
- Enim labore aliqua consequat ut quis ad occaecat aliquip incididunt. Sunt nulla eu enim irure enim nostrud aliqua consectetur ad consectetur sunt ullamco officia. Ex officia laborum et consequat duis. -
-
- Read more -
-
-
-
- -
-
-

Dashboard template

-
-
- Enim labore aliqua consequat ut quis ad occaecat aliquip incididunt. Sunt nulla eu enim irure enim nostrud aliqua consectetur ad consectetur sunt ullamco officia. Ex officia laborum et consequat duis. -
-
- Read more -
-
-
-
- -
-
-

Text-heavy website

-
-
- Enim labore aliqua consequat ut quis ad occaecat aliquip incididunt. Sunt nulla eu enim irure enim nostrud aliqua consectetur ad consectetur sunt ullamco officia. Ex officia laborum et consequat duis. -
-
- Read more -
-
-
-
- -
-
-

Ex officia laborum

-
-
- Enim labore aliqua consequat ut quis ad occaecat aliquip incididunt. Sunt nulla eu enim irure enim nostrud aliqua consectetur ad consectetur sunt ullamco officia. Ex officia laborum et consequat duis. -
-
- Read more -
-
-
-
- -
-
-

Stand-alone article

-
-
- Enim labore aliqua consequat ut quis ad occaecat aliquip incididunt. Sunt nulla eu enim irure enim nostrud aliqua consectetur ad consectetur sunt ullamco officia. Ex officia laborum et consequat duis. -
-
- Read more -
-
-
-
- -
-
-

MDL website

-
-
- Enim labore aliqua consequat ut quis ad occaecat aliquip incididunt. Sunt nulla eu enim irure enim nostrud aliqua consectetur ad consectetur sunt ullamco officia. Ex officia laborum et consequat duis. -
-
- Read more -
-
-
-
- -
-
-

Consequat ut quis

-
-
- Enim labore aliqua consequat ut quis ad occaecat aliquip incididunt. Sunt nulla eu enim irure enim nostrud aliqua consectetur ad consectetur sunt ullamco officia. Ex officia laborum et consequat duis. -
-
- Read more -
-
-
- -
-
- - - - DELETED Docs/Es/Presentaciones/AbreLatam2016/Tutorial/step05-individual-pages/about.html Index: Docs/Es/Presentaciones/AbreLatam2016/Tutorial/step05-individual-pages/about.html ================================================================== --- Docs/Es/Presentaciones/AbreLatam2016/Tutorial/step05-individual-pages/about.html +++ Docs/Es/Presentaciones/AbreLatam2016/Tutorial/step05-individual-pages/about.html @@ -1,106 +0,0 @@ - - - - - - - - - - MDL-Static Website - - - - - - - -
-
-
- Simple Portfolio Layout -
-
- -
-
-
- Simple Portfolio Layout - -
-
-
- -
-
-

About

-
-
- -
- -
-

Introduction

-
-

- Excepteur reprehenderit sint exercitation ipsum consequat qui sit id velit elit. Velit anim eiusmod labore sit amet. Voluptate voluptate irure occaecat deserunt incididunt esse in. Sunt velit aliquip sunt elit ex nulla reprehenderit qui ut eiusmod ipsum do. Duis veniam reprehenderit laborum occaecat id proident nulla veniam. Duis enim deserunt voluptate aute veniam sint pariatur exercitation. Irure mollit est sit labore est deserunt pariatur duis aute laboris cupidatat. Consectetur consequat esse est sit veniam adipisicing ipsum enim irure. -

-
- - - - -

Irure mollit est sit labore

- -
-

- Excepteur reprehenderit sint exercitation ipsum consequat qui sit id velit elit. Velit anim eiusmod labore sit amet. Voluptate voluptate irure occaecat deserunt incididunt esse in. Sunt velit aliquip sunt elit ex nulla reprehenderit qui ut eiusmod ipsum do. Duis veniam reprehenderit laborum occaecat id proident nulla veniam. Duis enim deserunt voluptate aute veniam sint pariatur exercitation. Irure mollit est sit labore est deserunt pariatur duis aute laboris cupidatat. Consectetur consequat esse est sit veniam adipisicing ipsum enim irure. -

-
-
-
- - -
- -
-
- - - - DELETED Docs/Es/Presentaciones/AbreLatam2016/Tutorial/step05-individual-pages/blog.html Index: Docs/Es/Presentaciones/AbreLatam2016/Tutorial/step05-individual-pages/blog.html ================================================================== --- Docs/Es/Presentaciones/AbreLatam2016/Tutorial/step05-individual-pages/blog.html +++ Docs/Es/Presentaciones/AbreLatam2016/Tutorial/step05-individual-pages/blog.html @@ -1,174 +0,0 @@ - - - - - - - - - - MDL-Static Website - - - - - - - -
-
-
- Simple Portfolio Layout -
-
- -
-
-
- Simple Portfolio Layout - -
-
-
-
-
- -
-
-

Velit anim eiusmod labore sit amet

-
- Posted 2 days ago -
share
-
- Share via social media -
-
-
-

Excepteur reprehenderit sint exercitation ipsum consequat qui sit id velit elit. Velit anim eiusmod labore sit amet. Voluptate voluptate irure occaecat deserunt incididunt esse in. Qui ullamco consectetur aute fugiat officia ullamco proident Lorem ad irure. Sint eu ut consectetur ut esse veniam laboris adipisicing aliquip minim anim labore commodo.

- Category: Latest -
-
-
-
-
-

Voluptate voluptate

-
-
- -
-
- Posted 2 days ago -
share
-
- Share via social media -
-
-
-

Excepteur reprehenderit sint exercitation ipsum consequat qui sit id velit elit. Velit anim eiusmod labore sit amet. Voluptate voluptate irure occaecat deserunt incididunt esse in.

-
-
-
-
-
- Pamukkale.jpg -
-
-
-
- -
-
- Excepteur reprehenderit sint exercitation ipsum consequat qui sit id velit elit. -
-
-

Velit anim eiusmod labore sit amet. Voluptate voluptate irure occaecat deserunt incididunt esse in. Qui ullamco consectetur aute fugiat officia ullamco proident Lorem ad irure. Sint eu ut consectetur ut esse veniam.

-
-
-
-
-

- Conference event:
- May 24, 2016
- 7-11pm -

-
-
- - Add to Calendar - -
- event -
-
-
-
-

adipiscing

-
-
- Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenan convallis. -
- -
-
-
- -
-
-

Loren

-
-
- Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenan convallis. -
- -
-
- -
-
- - - - DELETED Docs/Es/Presentaciones/AbreLatam2016/Tutorial/step05-individual-pages/contact.html Index: Docs/Es/Presentaciones/AbreLatam2016/Tutorial/step05-individual-pages/contact.html ================================================================== --- Docs/Es/Presentaciones/AbreLatam2016/Tutorial/step05-individual-pages/contact.html +++ Docs/Es/Presentaciones/AbreLatam2016/Tutorial/step05-individual-pages/contact.html @@ -1,111 +0,0 @@ - - - - - - - - - - MDL-Static Website - - - - - - - -
-
-
- Simple Portfolio Layout -
-
- -
-
-
- Simple Portfolio Layout - -
-
-
-
-
-

Contact

-
-
- -
-
-

- Enim labore aliqua consequat ut quis ad occaecat aliquip incididunt. Sunt nulla eu enim irure enim nostrud aliqua consectetur ad consectetur sunt ullamco officia. Ex officia laborum et consequat duis. -

-

- Excepteur reprehenderit sint exercitation ipsum consequat qui sit id velit elit. Velit anim eiusmod labore sit amet. -

-
-
- - - Letters and spaces only -
-
- - -
-
- - -
-

- -

-
-
-
-
- -
-
- - - - DELETED Docs/Es/Presentaciones/AbreLatam2016/Tutorial/step05-individual-pages/index.html Index: Docs/Es/Presentaciones/AbreLatam2016/Tutorial/step05-individual-pages/index.html ================================================================== --- Docs/Es/Presentaciones/AbreLatam2016/Tutorial/step05-individual-pages/index.html +++ Docs/Es/Presentaciones/AbreLatam2016/Tutorial/step05-individual-pages/index.html @@ -1,201 +0,0 @@ - - - - - - - - - - MDL-Static Website - - - - - - - -
-
-
- Simple Portfolio Layout -
-
- -
-
-
- Simple Portfolio Layout - -
-
-
-
-
- -
-
-

Blog template

-
-
- Enim labore aliqua consequat ut quis ad occaecat aliquip incididunt. Sunt nulla eu enim irure enim nostrud aliqua consectetur ad consectetur sunt ullamco officia. Ex officia laborum et consequat duis. -
-
- Read more -
-
-
-
- -
-
-

Sunt nulla

-
-
- Enim labore aliqua consequat ut quis ad occaecat aliquip incididunt. Sunt nulla eu enim irure enim nostrud aliqua consectetur ad consectetur sunt ullamco officia. Ex officia laborum et consequat duis. -
-
- Read more -
-
-
-
- -
-
-

Android.com website

-
-
- Enim labore aliqua consequat ut quis ad occaecat aliquip incididunt. Sunt nulla eu enim irure enim nostrud aliqua consectetur ad consectetur sunt ullamco officia. Ex officia laborum et consequat duis. -
-
- Read more -
-
-
-
- -
-
-

Dashboard template

-
-
- Enim labore aliqua consequat ut quis ad occaecat aliquip incididunt. Sunt nulla eu enim irure enim nostrud aliqua consectetur ad consectetur sunt ullamco officia. Ex officia laborum et consequat duis. -
-
- Read more -
-
-
-
- -
-
-

Text-heavy website

-
-
- Enim labore aliqua consequat ut quis ad occaecat aliquip incididunt. Sunt nulla eu enim irure enim nostrud aliqua consectetur ad consectetur sunt ullamco officia. Ex officia laborum et consequat duis. -
-
- Read more -
-
-
-
- -
-
-

Ex officia laborum

-
-
- Enim labore aliqua consequat ut quis ad occaecat aliquip incididunt. Sunt nulla eu enim irure enim nostrud aliqua consectetur ad consectetur sunt ullamco officia. Ex officia laborum et consequat duis. -
-
- Read more -
-
-
-
- -
-
-

Stand-alone article

-
-
- Enim labore aliqua consequat ut quis ad occaecat aliquip incididunt. Sunt nulla eu enim irure enim nostrud aliqua consectetur ad consectetur sunt ullamco officia. Ex officia laborum et consequat duis. -
-
- Read more -
-
-
-
- -
-
-

MDL website

-
-
- Enim labore aliqua consequat ut quis ad occaecat aliquip incididunt. Sunt nulla eu enim irure enim nostrud aliqua consectetur ad consectetur sunt ullamco officia. Ex officia laborum et consequat duis. -
-
- Read more -
-
-
-
- -
-
-

Consequat ut quis

-
-
- Enim labore aliqua consequat ut quis ad occaecat aliquip incididunt. Sunt nulla eu enim irure enim nostrud aliqua consectetur ad consectetur sunt ullamco officia. Ex officia laborum et consequat duis. -
-
- Read more -
-
-
- -
-
- - - - DELETED Docs/Es/Presentaciones/AbreLatam2016/Tutorial/step05-individual-pages/portfolio-example01.html Index: Docs/Es/Presentaciones/AbreLatam2016/Tutorial/step05-individual-pages/portfolio-example01.html ================================================================== --- Docs/Es/Presentaciones/AbreLatam2016/Tutorial/step05-individual-pages/portfolio-example01.html +++ Docs/Es/Presentaciones/AbreLatam2016/Tutorial/step05-individual-pages/portfolio-example01.html @@ -1,119 +0,0 @@ - - - - - - - - - - MDL-Static Website - - - - - - - -
-
-
- Simple Portfolio Layout -
-
- -
-
-
- Simple Portfolio Layout - -
-
-
-
-
-

Blog template

-
-
- -
-
- Includes - Design, UX and Frontend Development -
-
-

Introduction

-
-

- Excepteur reprehenderit sint exercitation ipsum consequat qui sit id velit elit. Velit anim eiusmod labore sit amet. Voluptate voluptate irure occaecat deserunt incididunt esse in. Sunt velit aliquip sunt elit ex nulla reprehenderit qui ut eiusmod ipsum do. Duis veniam reprehenderit laborum occaecat id proident nulla veniam. Duis enim deserunt voluptate aute veniam sint pariatur exercitation. Irure mollit est sit labore est deserunt pariatur duis aute laboris cupidatat. Consectetur consequat esse est sit veniam adipisicing ipsum enim irure. -

-
-
- -
-

Initial Idea's

-
- -
-
-

- Excepteur reprehenderit sint exercitation ipsum consequat qui sit id velit elit. Velit anim eiusmod labore sit amet. Voluptate voluptate irure occaecat deserunt incididunt esse in. Sunt velit aliquip sunt elit ex nulla reprehenderit qui ut eiusmod ipsum do. Duis veniam reprehenderit laborum occaecat id proident nulla veniam. Duis enim deserunt voluptate aute veniam sint pariatur exercitation. Irure mollit est sit labore est deserunt pariatur duis aute laboris cupidatat. Consectetur consequat esse est sit veniam adipisicing ipsum enim irure. -

-
-

Final Concept

-
- -
-
- -
-
-

- Excepteur reprehenderit sint exercitation ipsum consequat qui sit id velit elit. Velit anim eiusmod labore sit amet. Voluptate voluptate irure occaecat deserunt incididunt esse in. Sunt velit aliquip sunt elit ex nulla reprehenderit qui ut eiusmod ipsum do. Duis veniam reprehenderit laborum occaecat id proident nulla veniam. Duis enim deserunt voluptate aute veniam sint pariatur exercitation. Irure mollit est sit labore est deserunt pariatur duis aute laboris cupidatat. Consectetur consequat esse est sit veniam adipisicing ipsum enim irure. -

-
-
-
-
- -
-
- - - - DELETED Docs/Es/Presentaciones/AbreLatam2016/Tutorial/styles.css Index: Docs/Es/Presentaciones/AbreLatam2016/Tutorial/styles.css ================================================================== --- Docs/Es/Presentaciones/AbreLatam2016/Tutorial/styles.css +++ Docs/Es/Presentaciones/AbreLatam2016/Tutorial/styles.css @@ -1,113 +0,0 @@ - -.portfolio-header { - position: relative; - background-color: #D8D8D8; - background-image: url(images/header-bg.jpg); -} - -.portfolio-header .mdl-layout__header-row { - padding: 0; - -webkit-justify-content: center; - -ms-flex-pack: center; - justify-content: center; -} - -.portfolio-navigation-row { - background-color: rgba(0, 0, 0, 0.08); - text-transform: uppercase; - height: 45px; -} - -.portfolio-navigation-row .mdl-navigation { - text-align: center; - max-width: 900px; - width: 100%; -} - -.portfolio-navigation-row .mdl-navigation__link { - -webkit-flex: 1; - -ms-flex: 1; - flex: 1; - line-height: 42px; -} - -.portfolio-header .mdl-layout__drawer-button { - background-color: rgba(197, 197, 197, 0.44); -} - -.portfolio-navigation-row .is-active { - position: relative; - font-weight: bold; -} - -.portfolio-navigation-row .is-active:after { - content: ""; - width: 70%; - height: 2px; - display: block; - position: absolute; - bottom: 0; - left: 0; - background-color: rgb(255,64,129); - left: 15%; -} - - -img.article-image { - width: 100%; - height: auto; -} - -.portfolio-max-width { - max-width: 900px; - margin: auto; -} - -.portfolio-copy { - max-width: 700px; -} - -.portfolio-card .mdl-card__title { - padding-bottom: 0; -} - -.no-padding { - padding: 0; -} - -.no-left-padding{ - padding-left: 0; -} - -.no-bottom-padding { - padding-bottom: 0; -} - -.padding-top { - padding: 10px 0 0; -} - -.portfolio-share-btn { - position: relative; - float: right; - top: -4px; -} - -.demo-card-event > .mdl-card__actions { - -webkit-align-items: center; - -ms-flex-align: center; - align-items: center; - box-sizing: border-box; - display: -webkit-flex; - display: -ms-flexbox; - display: flex; -} - -.portfolio-contact .mdl-textfield { - width: 100%; -} - -.portfolio-contact form { - max-width: 700px; - margin: auto; -} DELETED Docs/Es/Presentaciones/AbreLatam2016/about.html Index: Docs/Es/Presentaciones/AbreLatam2016/about.html ================================================================== --- Docs/Es/Presentaciones/AbreLatam2016/about.html +++ Docs/Es/Presentaciones/AbreLatam2016/about.html @@ -1,108 +0,0 @@ - - - - - - - - - - MDL-Static Website - - - - - - - -
-
-
- - - Simple portfolio website - -
-
- -
-
-
- -
-
-
- -
-
-

About

-
-
- -
- -
-

Introduction

-
-

- Excepteur reprehenderit sint exercitation ipsum consequat qui sit id velit elit. Velit anim eiusmod labore sit amet. Voluptate voluptate irure occaecat deserunt incididunt esse in. Sunt velit aliquip sunt elit ex nulla reprehenderit qui ut eiusmod ipsum do. Duis veniam reprehenderit laborum occaecat id proident nulla veniam. Duis enim deserunt voluptate aute veniam sint pariatur exercitation. Irure mollit est sit labore est deserunt pariatur duis aute laboris cupidatat. Consectetur consequat esse est sit veniam adipisicing ipsum enim irure. -

-
- - - - -

Irure mollit est sit labore

- -
-

- Excepteur reprehenderit sint exercitation ipsum consequat qui sit id velit elit. Velit anim eiusmod labore sit amet. Voluptate voluptate irure occaecat deserunt incididunt esse in. Sunt velit aliquip sunt elit ex nulla reprehenderit qui ut eiusmod ipsum do. Duis veniam reprehenderit laborum occaecat id proident nulla veniam. Duis enim deserunt voluptate aute veniam sint pariatur exercitation. Irure mollit est sit labore est deserunt pariatur duis aute laboris cupidatat. Consectetur consequat esse est sit veniam adipisicing ipsum enim irure. -

-
-
-
- - -
- -
-
- - - - DELETED Docs/Es/Presentaciones/AbreLatam2016/blog.html Index: Docs/Es/Presentaciones/AbreLatam2016/blog.html ================================================================== --- Docs/Es/Presentaciones/AbreLatam2016/blog.html +++ Docs/Es/Presentaciones/AbreLatam2016/blog.html @@ -1,176 +0,0 @@ - - - - - - - - - - MDL-Static Website - - - - - - - -
-
-
- - - Simple portfolio website - -
-
- -
-
-
- -
-
-
-
-
- -
-
-

Velit anim eiusmod labore sit amet

-
- Posted 2 days ago -
share
-
- Share via social media -
-
-
-

Excepteur reprehenderit sint exercitation ipsum consequat qui sit id velit elit. Velit anim eiusmod labore sit amet. Voluptate voluptate irure occaecat deserunt incididunt esse in. Qui ullamco consectetur aute fugiat officia ullamco proident Lorem ad irure. Sint eu ut consectetur ut esse veniam laboris adipisicing aliquip minim anim labore commodo.

- Category: Latest -
-
-
-
-
-

Voluptate voluptate

-
-
- -
-
- Posted 2 days ago -
share
-
- Share via social media -
-
-
-

Excepteur reprehenderit sint exercitation ipsum consequat qui sit id velit elit. Velit anim eiusmod labore sit amet. Voluptate voluptate irure occaecat deserunt incididunt esse in.

-
-
-
-
-
- Pamukkale.jpg -
-
-
-
- -
-
- Excepteur reprehenderit sint exercitation ipsum consequat qui sit id velit elit. -
-
-

Velit anim eiusmod labore sit amet. Voluptate voluptate irure occaecat deserunt incididunt esse in. Qui ullamco consectetur aute fugiat officia ullamco proident Lorem ad irure. Sint eu ut consectetur ut esse veniam.

-
-
-
-
-

- Conference event:
- May 24, 2016
- 7-11pm -

-
-
- - Add to Calendar - -
- event -
-
-
-
-

adipiscing

-
-
- Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenan convallis. -
- -
-
-
- -
-
-

Loren

-
-
- Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenan convallis. -
- -
-
- -
-
- - - - DELETED Docs/Es/Presentaciones/AbreLatam2016/contact.html Index: Docs/Es/Presentaciones/AbreLatam2016/contact.html ================================================================== --- Docs/Es/Presentaciones/AbreLatam2016/contact.html +++ Docs/Es/Presentaciones/AbreLatam2016/contact.html @@ -1,113 +0,0 @@ - - - - - - - - - - MDL-Static Website - - - - - - - -
-
-
- - - Simple portfolio website - -
-
- -
-
-
- -
-
-
-
-
-

Contact

-
-
- -
-
-

- Enim labore aliqua consequat ut quis ad occaecat aliquip incididunt. Sunt nulla eu enim irure enim nostrud aliqua consectetur ad consectetur sunt ullamco officia. Ex officia laborum et consequat duis. -

-

- Excepteur reprehenderit sint exercitation ipsum consequat qui sit id velit elit. Velit anim eiusmod labore sit amet. -

-
-
- - - Letters and spaces only -
-
- - -
-
- - -
-

- -

-
-
-
-
- -
-
- - - - DELETED Docs/Es/Presentaciones/AbreLatam2016/images/about-header.jpg Index: Docs/Es/Presentaciones/AbreLatam2016/images/about-header.jpg ================================================================== --- Docs/Es/Presentaciones/AbreLatam2016/images/about-header.jpg +++ Docs/Es/Presentaciones/AbreLatam2016/images/about-header.jpg cannot compute difference between binary files DELETED Docs/Es/Presentaciones/AbreLatam2016/images/alafuente_400x400.jpg Index: Docs/Es/Presentaciones/AbreLatam2016/images/alafuente_400x400.jpg ================================================================== --- Docs/Es/Presentaciones/AbreLatam2016/images/alafuente_400x400.jpg +++ Docs/Es/Presentaciones/AbreLatam2016/images/alafuente_400x400.jpg cannot compute difference between binary files DELETED Docs/Es/Presentaciones/AbreLatam2016/images/android-desktop.png Index: Docs/Es/Presentaciones/AbreLatam2016/images/android-desktop.png ================================================================== --- Docs/Es/Presentaciones/AbreLatam2016/images/android-desktop.png +++ Docs/Es/Presentaciones/AbreLatam2016/images/android-desktop.png cannot compute difference between binary files DELETED Docs/Es/Presentaciones/AbreLatam2016/images/apuestas.jpg Index: Docs/Es/Presentaciones/AbreLatam2016/images/apuestas.jpg ================================================================== --- Docs/Es/Presentaciones/AbreLatam2016/images/apuestas.jpg +++ Docs/Es/Presentaciones/AbreLatam2016/images/apuestas.jpg cannot compute difference between binary files DELETED Docs/Es/Presentaciones/AbreLatam2016/images/bifurcation-points-complex-system.png Index: Docs/Es/Presentaciones/AbreLatam2016/images/bifurcation-points-complex-system.png ================================================================== --- Docs/Es/Presentaciones/AbreLatam2016/images/bifurcation-points-complex-system.png +++ Docs/Es/Presentaciones/AbreLatam2016/images/bifurcation-points-complex-system.png cannot compute difference between binary files DELETED Docs/Es/Presentaciones/AbreLatam2016/images/contact-image.jpg Index: Docs/Es/Presentaciones/AbreLatam2016/images/contact-image.jpg ================================================================== --- Docs/Es/Presentaciones/AbreLatam2016/images/contact-image.jpg +++ Docs/Es/Presentaciones/AbreLatam2016/images/contact-image.jpg cannot compute difference between binary files DELETED Docs/Es/Presentaciones/AbreLatam2016/images/datos-plurales.png Index: Docs/Es/Presentaciones/AbreLatam2016/images/datos-plurales.png ================================================================== --- Docs/Es/Presentaciones/AbreLatam2016/images/datos-plurales.png +++ Docs/Es/Presentaciones/AbreLatam2016/images/datos-plurales.png cannot compute difference between binary files DELETED Docs/Es/Presentaciones/AbreLatam2016/images/dog.png Index: Docs/Es/Presentaciones/AbreLatam2016/images/dog.png ================================================================== --- Docs/Es/Presentaciones/AbreLatam2016/images/dog.png +++ Docs/Es/Presentaciones/AbreLatam2016/images/dog.png cannot compute difference between binary files DELETED Docs/Es/Presentaciones/AbreLatam2016/images/eggs-basket.jpg Index: Docs/Es/Presentaciones/AbreLatam2016/images/eggs-basket.jpg ================================================================== --- Docs/Es/Presentaciones/AbreLatam2016/images/eggs-basket.jpg +++ Docs/Es/Presentaciones/AbreLatam2016/images/eggs-basket.jpg cannot compute difference between binary files DELETED Docs/Es/Presentaciones/AbreLatam2016/images/example-blog01.jpg Index: Docs/Es/Presentaciones/AbreLatam2016/images/example-blog01.jpg ================================================================== --- Docs/Es/Presentaciones/AbreLatam2016/images/example-blog01.jpg +++ Docs/Es/Presentaciones/AbreLatam2016/images/example-blog01.jpg cannot compute difference between binary files DELETED Docs/Es/Presentaciones/AbreLatam2016/images/example-blog02.jpg Index: Docs/Es/Presentaciones/AbreLatam2016/images/example-blog02.jpg ================================================================== --- Docs/Es/Presentaciones/AbreLatam2016/images/example-blog02.jpg +++ Docs/Es/Presentaciones/AbreLatam2016/images/example-blog02.jpg cannot compute difference between binary files DELETED Docs/Es/Presentaciones/AbreLatam2016/images/example-blog03.jpg Index: Docs/Es/Presentaciones/AbreLatam2016/images/example-blog03.jpg ================================================================== --- Docs/Es/Presentaciones/AbreLatam2016/images/example-blog03.jpg +++ Docs/Es/Presentaciones/AbreLatam2016/images/example-blog03.jpg cannot compute difference between binary files DELETED Docs/Es/Presentaciones/AbreLatam2016/images/example-blog04.jpg Index: Docs/Es/Presentaciones/AbreLatam2016/images/example-blog04.jpg ================================================================== --- Docs/Es/Presentaciones/AbreLatam2016/images/example-blog04.jpg +++ Docs/Es/Presentaciones/AbreLatam2016/images/example-blog04.jpg cannot compute difference between binary files DELETED Docs/Es/Presentaciones/AbreLatam2016/images/example-blog05.jpg Index: Docs/Es/Presentaciones/AbreLatam2016/images/example-blog05.jpg ================================================================== --- Docs/Es/Presentaciones/AbreLatam2016/images/example-blog05.jpg +++ Docs/Es/Presentaciones/AbreLatam2016/images/example-blog05.jpg cannot compute difference between binary files DELETED Docs/Es/Presentaciones/AbreLatam2016/images/example-blog06.jpg Index: Docs/Es/Presentaciones/AbreLatam2016/images/example-blog06.jpg ================================================================== --- Docs/Es/Presentaciones/AbreLatam2016/images/example-blog06.jpg +++ Docs/Es/Presentaciones/AbreLatam2016/images/example-blog06.jpg cannot compute difference between binary files DELETED Docs/Es/Presentaciones/AbreLatam2016/images/example-blog07.jpg Index: Docs/Es/Presentaciones/AbreLatam2016/images/example-blog07.jpg ================================================================== --- Docs/Es/Presentaciones/AbreLatam2016/images/example-blog07.jpg +++ Docs/Es/Presentaciones/AbreLatam2016/images/example-blog07.jpg cannot compute difference between binary files DELETED Docs/Es/Presentaciones/AbreLatam2016/images/example-work01.jpg Index: Docs/Es/Presentaciones/AbreLatam2016/images/example-work01.jpg ================================================================== --- Docs/Es/Presentaciones/AbreLatam2016/images/example-work01.jpg +++ Docs/Es/Presentaciones/AbreLatam2016/images/example-work01.jpg cannot compute difference between binary files DELETED Docs/Es/Presentaciones/AbreLatam2016/images/example-work02.jpg Index: Docs/Es/Presentaciones/AbreLatam2016/images/example-work02.jpg ================================================================== --- Docs/Es/Presentaciones/AbreLatam2016/images/example-work02.jpg +++ Docs/Es/Presentaciones/AbreLatam2016/images/example-work02.jpg cannot compute difference between binary files DELETED Docs/Es/Presentaciones/AbreLatam2016/images/example-work03.jpg Index: Docs/Es/Presentaciones/AbreLatam2016/images/example-work03.jpg ================================================================== --- Docs/Es/Presentaciones/AbreLatam2016/images/example-work03.jpg +++ Docs/Es/Presentaciones/AbreLatam2016/images/example-work03.jpg cannot compute difference between binary files DELETED Docs/Es/Presentaciones/AbreLatam2016/images/example-work04.jpg Index: Docs/Es/Presentaciones/AbreLatam2016/images/example-work04.jpg ================================================================== --- Docs/Es/Presentaciones/AbreLatam2016/images/example-work04.jpg +++ Docs/Es/Presentaciones/AbreLatam2016/images/example-work04.jpg cannot compute difference between binary files DELETED Docs/Es/Presentaciones/AbreLatam2016/images/example-work05.jpg Index: Docs/Es/Presentaciones/AbreLatam2016/images/example-work05.jpg ================================================================== --- Docs/Es/Presentaciones/AbreLatam2016/images/example-work05.jpg +++ Docs/Es/Presentaciones/AbreLatam2016/images/example-work05.jpg cannot compute difference between binary files DELETED Docs/Es/Presentaciones/AbreLatam2016/images/example-work06.jpg Index: Docs/Es/Presentaciones/AbreLatam2016/images/example-work06.jpg ================================================================== --- Docs/Es/Presentaciones/AbreLatam2016/images/example-work06.jpg +++ Docs/Es/Presentaciones/AbreLatam2016/images/example-work06.jpg cannot compute difference between binary files DELETED Docs/Es/Presentaciones/AbreLatam2016/images/example-work07.jpg Index: Docs/Es/Presentaciones/AbreLatam2016/images/example-work07.jpg ================================================================== --- Docs/Es/Presentaciones/AbreLatam2016/images/example-work07.jpg +++ Docs/Es/Presentaciones/AbreLatam2016/images/example-work07.jpg cannot compute difference between binary files DELETED Docs/Es/Presentaciones/AbreLatam2016/images/example-work08.jpg Index: Docs/Es/Presentaciones/AbreLatam2016/images/example-work08.jpg ================================================================== --- Docs/Es/Presentaciones/AbreLatam2016/images/example-work08.jpg +++ Docs/Es/Presentaciones/AbreLatam2016/images/example-work08.jpg cannot compute difference between binary files DELETED Docs/Es/Presentaciones/AbreLatam2016/images/example-work09.jpg Index: Docs/Es/Presentaciones/AbreLatam2016/images/example-work09.jpg ================================================================== --- Docs/Es/Presentaciones/AbreLatam2016/images/example-work09.jpg +++ Docs/Es/Presentaciones/AbreLatam2016/images/example-work09.jpg cannot compute difference between binary files DELETED Docs/Es/Presentaciones/AbreLatam2016/images/fairy.jpg Index: Docs/Es/Presentaciones/AbreLatam2016/images/fairy.jpg ================================================================== --- Docs/Es/Presentaciones/AbreLatam2016/images/fairy.jpg +++ Docs/Es/Presentaciones/AbreLatam2016/images/fairy.jpg cannot compute difference between binary files DELETED Docs/Es/Presentaciones/AbreLatam2016/images/favicon.png Index: Docs/Es/Presentaciones/AbreLatam2016/images/favicon.png ================================================================== --- Docs/Es/Presentaciones/AbreLatam2016/images/favicon.png +++ Docs/Es/Presentaciones/AbreLatam2016/images/favicon.png cannot compute difference between binary files DELETED Docs/Es/Presentaciones/AbreLatam2016/images/feedback-randomness.png Index: Docs/Es/Presentaciones/AbreLatam2016/images/feedback-randomness.png ================================================================== --- Docs/Es/Presentaciones/AbreLatam2016/images/feedback-randomness.png +++ Docs/Es/Presentaciones/AbreLatam2016/images/feedback-randomness.png cannot compute difference between binary files DELETED Docs/Es/Presentaciones/AbreLatam2016/images/footer-background.png Index: Docs/Es/Presentaciones/AbreLatam2016/images/footer-background.png ================================================================== --- Docs/Es/Presentaciones/AbreLatam2016/images/footer-background.png +++ Docs/Es/Presentaciones/AbreLatam2016/images/footer-background.png cannot compute difference between binary files DELETED Docs/Es/Presentaciones/AbreLatam2016/images/funny-toilet-signs.jpg Index: Docs/Es/Presentaciones/AbreLatam2016/images/funny-toilet-signs.jpg ================================================================== --- Docs/Es/Presentaciones/AbreLatam2016/images/funny-toilet-signs.jpg +++ Docs/Es/Presentaciones/AbreLatam2016/images/funny-toilet-signs.jpg cannot compute difference between binary files DELETED Docs/Es/Presentaciones/AbreLatam2016/images/gender-form.png Index: Docs/Es/Presentaciones/AbreLatam2016/images/gender-form.png ================================================================== --- Docs/Es/Presentaciones/AbreLatam2016/images/gender-form.png +++ Docs/Es/Presentaciones/AbreLatam2016/images/gender-form.png cannot compute difference between binary files DELETED Docs/Es/Presentaciones/AbreLatam2016/images/gender-form.png~ Index: Docs/Es/Presentaciones/AbreLatam2016/images/gender-form.png~ ================================================================== --- Docs/Es/Presentaciones/AbreLatam2016/images/gender-form.png~ +++ Docs/Es/Presentaciones/AbreLatam2016/images/gender-form.png~ cannot compute difference between binary files DELETED Docs/Es/Presentaciones/AbreLatam2016/images/hacker-hacked.png Index: Docs/Es/Presentaciones/AbreLatam2016/images/hacker-hacked.png ================================================================== --- Docs/Es/Presentaciones/AbreLatam2016/images/hacker-hacked.png +++ Docs/Es/Presentaciones/AbreLatam2016/images/hacker-hacked.png cannot compute difference between binary files DELETED Docs/Es/Presentaciones/AbreLatam2016/images/header-bg.jpg Index: Docs/Es/Presentaciones/AbreLatam2016/images/header-bg.jpg ================================================================== --- Docs/Es/Presentaciones/AbreLatam2016/images/header-bg.jpg +++ Docs/Es/Presentaciones/AbreLatam2016/images/header-bg.jpg cannot compute difference between binary files DELETED Docs/Es/Presentaciones/AbreLatam2016/images/ios-desktop.png Index: Docs/Es/Presentaciones/AbreLatam2016/images/ios-desktop.png ================================================================== --- Docs/Es/Presentaciones/AbreLatam2016/images/ios-desktop.png +++ Docs/Es/Presentaciones/AbreLatam2016/images/ios-desktop.png cannot compute difference between binary files DELETED Docs/Es/Presentaciones/AbreLatam2016/images/logo.png Index: Docs/Es/Presentaciones/AbreLatam2016/images/logo.png ================================================================== --- Docs/Es/Presentaciones/AbreLatam2016/images/logo.png +++ Docs/Es/Presentaciones/AbreLatam2016/images/logo.png cannot compute difference between binary files DELETED Docs/Es/Presentaciones/AbreLatam2016/images/mineria-choco.jpg Index: Docs/Es/Presentaciones/AbreLatam2016/images/mineria-choco.jpg ================================================================== --- Docs/Es/Presentaciones/AbreLatam2016/images/mineria-choco.jpg +++ Docs/Es/Presentaciones/AbreLatam2016/images/mineria-choco.jpg cannot compute difference between binary files DELETED Docs/Es/Presentaciones/AbreLatam2016/images/periferia.png Index: Docs/Es/Presentaciones/AbreLatam2016/images/periferia.png ================================================================== --- Docs/Es/Presentaciones/AbreLatam2016/images/periferia.png +++ Docs/Es/Presentaciones/AbreLatam2016/images/periferia.png cannot compute difference between binary files DELETED Docs/Es/Presentaciones/AbreLatam2016/images/periferia.png~ Index: Docs/Es/Presentaciones/AbreLatam2016/images/periferia.png~ ================================================================== --- Docs/Es/Presentaciones/AbreLatam2016/images/periferia.png~ +++ Docs/Es/Presentaciones/AbreLatam2016/images/periferia.png~ cannot compute difference between binary files DELETED Docs/Es/Presentaciones/AbreLatam2016/images/photo-wide.jpg Index: Docs/Es/Presentaciones/AbreLatam2016/images/photo-wide.jpg ================================================================== --- Docs/Es/Presentaciones/AbreLatam2016/images/photo-wide.jpg +++ Docs/Es/Presentaciones/AbreLatam2016/images/photo-wide.jpg cannot compute difference between binary files DELETED Docs/Es/Presentaciones/AbreLatam2016/images/photo.jpg Index: Docs/Es/Presentaciones/AbreLatam2016/images/photo.jpg ================================================================== --- Docs/Es/Presentaciones/AbreLatam2016/images/photo.jpg +++ Docs/Es/Presentaciones/AbreLatam2016/images/photo.jpg cannot compute difference between binary files DELETED Docs/Es/Presentaciones/AbreLatam2016/images/pigeon.png Index: Docs/Es/Presentaciones/AbreLatam2016/images/pigeon.png ================================================================== --- Docs/Es/Presentaciones/AbreLatam2016/images/pigeon.png +++ Docs/Es/Presentaciones/AbreLatam2016/images/pigeon.png cannot compute difference between binary files DELETED Docs/Es/Presentaciones/AbreLatam2016/images/portfolio-example-01.jpg Index: Docs/Es/Presentaciones/AbreLatam2016/images/portfolio-example-01.jpg ================================================================== --- Docs/Es/Presentaciones/AbreLatam2016/images/portfolio-example-01.jpg +++ Docs/Es/Presentaciones/AbreLatam2016/images/portfolio-example-01.jpg cannot compute difference between binary files DELETED Docs/Es/Presentaciones/AbreLatam2016/images/portfolio-example-02.jpg Index: Docs/Es/Presentaciones/AbreLatam2016/images/portfolio-example-02.jpg ================================================================== --- Docs/Es/Presentaciones/AbreLatam2016/images/portfolio-example-02.jpg +++ Docs/Es/Presentaciones/AbreLatam2016/images/portfolio-example-02.jpg cannot compute difference between binary files DELETED Docs/Es/Presentaciones/AbreLatam2016/images/portfolio-example-03.jpg Index: Docs/Es/Presentaciones/AbreLatam2016/images/portfolio-example-03.jpg ================================================================== --- Docs/Es/Presentaciones/AbreLatam2016/images/portfolio-example-03.jpg +++ Docs/Es/Presentaciones/AbreLatam2016/images/portfolio-example-03.jpg cannot compute difference between binary files DELETED Docs/Es/Presentaciones/AbreLatam2016/images/portfolio-example-04.jpg Index: Docs/Es/Presentaciones/AbreLatam2016/images/portfolio-example-04.jpg ================================================================== --- Docs/Es/Presentaciones/AbreLatam2016/images/portfolio-example-04.jpg +++ Docs/Es/Presentaciones/AbreLatam2016/images/portfolio-example-04.jpg cannot compute difference between binary files DELETED Docs/Es/Presentaciones/AbreLatam2016/images/portfolio-example-05.jpg Index: Docs/Es/Presentaciones/AbreLatam2016/images/portfolio-example-05.jpg ================================================================== --- Docs/Es/Presentaciones/AbreLatam2016/images/portfolio-example-05.jpg +++ Docs/Es/Presentaciones/AbreLatam2016/images/portfolio-example-05.jpg cannot compute difference between binary files DELETED Docs/Es/Presentaciones/AbreLatam2016/images/portfolio-example-06.jpg Index: Docs/Es/Presentaciones/AbreLatam2016/images/portfolio-example-06.jpg ================================================================== --- Docs/Es/Presentaciones/AbreLatam2016/images/portfolio-example-06.jpg +++ Docs/Es/Presentaciones/AbreLatam2016/images/portfolio-example-06.jpg cannot compute difference between binary files DELETED Docs/Es/Presentaciones/AbreLatam2016/images/rhino-unicorn.png Index: Docs/Es/Presentaciones/AbreLatam2016/images/rhino-unicorn.png ================================================================== --- Docs/Es/Presentaciones/AbreLatam2016/images/rhino-unicorn.png +++ Docs/Es/Presentaciones/AbreLatam2016/images/rhino-unicorn.png cannot compute difference between binary files DELETED Docs/Es/Presentaciones/AbreLatam2016/images/riesgo-vs-beneficio.png Index: Docs/Es/Presentaciones/AbreLatam2016/images/riesgo-vs-beneficio.png ================================================================== --- Docs/Es/Presentaciones/AbreLatam2016/images/riesgo-vs-beneficio.png +++ Docs/Es/Presentaciones/AbreLatam2016/images/riesgo-vs-beneficio.png cannot compute difference between binary files DELETED Docs/Es/Presentaciones/AbreLatam2016/images/speed-of-light.png Index: Docs/Es/Presentaciones/AbreLatam2016/images/speed-of-light.png ================================================================== --- Docs/Es/Presentaciones/AbreLatam2016/images/speed-of-light.png +++ Docs/Es/Presentaciones/AbreLatam2016/images/speed-of-light.png cannot compute difference between binary files DELETED Docs/Es/Presentaciones/AbreLatam2016/images/triada-reforzada.png Index: Docs/Es/Presentaciones/AbreLatam2016/images/triada-reforzada.png ================================================================== --- Docs/Es/Presentaciones/AbreLatam2016/images/triada-reforzada.png +++ Docs/Es/Presentaciones/AbreLatam2016/images/triada-reforzada.png cannot compute difference between binary files DELETED Docs/Es/Presentaciones/AbreLatam2016/images/triada.png Index: Docs/Es/Presentaciones/AbreLatam2016/images/triada.png ================================================================== --- Docs/Es/Presentaciones/AbreLatam2016/images/triada.png +++ Docs/Es/Presentaciones/AbreLatam2016/images/triada.png cannot compute difference between binary files DELETED Docs/Es/Presentaciones/AbreLatam2016/images/triada.png~ Index: Docs/Es/Presentaciones/AbreLatam2016/images/triada.png~ ================================================================== --- Docs/Es/Presentaciones/AbreLatam2016/images/triada.png~ +++ Docs/Es/Presentaciones/AbreLatam2016/images/triada.png~ cannot compute difference between binary files DELETED Docs/Es/Presentaciones/AbreLatam2016/images/user.jpg Index: Docs/Es/Presentaciones/AbreLatam2016/images/user.jpg ================================================================== --- Docs/Es/Presentaciones/AbreLatam2016/images/user.jpg +++ Docs/Es/Presentaciones/AbreLatam2016/images/user.jpg cannot compute difference between binary files DELETED Docs/Es/Presentaciones/AbreLatam2016/images/user.png Index: Docs/Es/Presentaciones/AbreLatam2016/images/user.png ================================================================== --- Docs/Es/Presentaciones/AbreLatam2016/images/user.png +++ Docs/Es/Presentaciones/AbreLatam2016/images/user.png cannot compute difference between binary files DELETED Docs/Es/Presentaciones/AbreLatam2016/index-10.html Index: Docs/Es/Presentaciones/AbreLatam2016/index-10.html ================================================================== --- Docs/Es/Presentaciones/AbreLatam2016/index-10.html +++ Docs/Es/Presentaciones/AbreLatam2016/index-10.html @@ -1,104 +0,0 @@ - - - - - - - - - - Datos Críticos e incluyentes .:| Offray Luna , @offrayLC |:. AbreLatam 2016 - - - - - - - - - - - - -
-
-
- - Datos Críticos e incluyentes .:| Offray Luna , @offrayLC |:. AbreLatam 2016 - -
- - -
-
-
- -
-
-
-
-
-

Buscar en la periferia

-
-
- -
-
-
-
-

No para coptar sus lógicas = sólo "emprendimientos"

-
-
- -
-
-
- -
-
- - - - DELETED Docs/Es/Presentaciones/AbreLatam2016/index-2.html Index: Docs/Es/Presentaciones/AbreLatam2016/index-2.html ================================================================== --- Docs/Es/Presentaciones/AbreLatam2016/index-2.html +++ Docs/Es/Presentaciones/AbreLatam2016/index-2.html @@ -1,116 +0,0 @@ - - - - - - - - - - Datos Críticos e incluyentes .:| Offray Luna, @offrayLC |:. AbreLatam 2016 - - - - - - - - - - - - -
-
-
- - Datos Críticos e incluyentes .:| Offray Luna , @offrayLC |:. AbreLatam 2016 - -
- - -
-
-
- -
-
-
-
-
- -
-
-




- ''Los datos son la respuesta a una pregunta que se pudo haber hecho de otra forma''

-
- Antonio LaFuente, parafraseando a Ulrick Beck -
-
-
-
-
-

Algunos datos son inmutables...

-
-
- -
-
-
-
-

La mayoría son un diseño nuestro...

-
-
- -
-
-
- -
-
- - - - DELETED Docs/Es/Presentaciones/AbreLatam2016/index-3.html Index: Docs/Es/Presentaciones/AbreLatam2016/index-3.html ================================================================== --- Docs/Es/Presentaciones/AbreLatam2016/index-3.html +++ Docs/Es/Presentaciones/AbreLatam2016/index-3.html @@ -1,117 +0,0 @@ - - - - - - - - - - Datos Críticos e incluyentes .:| Offray Luna , @offrayLC |:. AbreLatam 2016 - - - - - - - - - - - - - -
-
-
- - Datos Críticos e incluyentes .:| Offray Luna , @offrayLC |:. AbreLatam 2016 - -
- - -
-
-
- -
-
-
-
-
-

Las métricas introducen comportamientos

-
-
- -
-
- Determinan "campos" de visión...
-
- -
-
-
-

y agendas, por ejemplo...

-
-
-

— "Emprendimiento"

-

— P.I.B.

-

— Publicaciones indexadas

-

— "Innovación"

-

— "Silicon Valey colombiano

-
-
-
- -
-
- - - - DELETED Docs/Es/Presentaciones/AbreLatam2016/index-4.html Index: Docs/Es/Presentaciones/AbreLatam2016/index-4.html ================================================================== --- Docs/Es/Presentaciones/AbreLatam2016/index-4.html +++ Docs/Es/Presentaciones/AbreLatam2016/index-4.html @@ -1,152 +0,0 @@ - - - - - - - - - - Datos Críticos e incluyentes .:| Offray Luna , @offrayLC |:. AbreLatam 2016 - - - - - - - - - - - - - -
-
-
- - Datos Críticos e incluyentes .:| Offray Luna , @offrayLC |:. AbreLatam 2016 - -
- - -
-
-
- -
-
-
-
-
-

Las métricas introducen comportamientos

-
-
- -
-
- Determinan "campos" de visión...
-
- -
-
-
-

- Realimentación + Azar

-
-


-
- - - -
-
-
-
-

Los datos nos "condicionan"

-
-
- -
-
- -
-
-
-
-

de manera individual

-
-
-
- -
-
- -
-
-
-
-

y colectiva

-
-
-
- -
-
- -
-
-
- -
-
- - - - DELETED Docs/Es/Presentaciones/AbreLatam2016/index-5.html Index: Docs/Es/Presentaciones/AbreLatam2016/index-5.html ================================================================== --- Docs/Es/Presentaciones/AbreLatam2016/index-5.html +++ Docs/Es/Presentaciones/AbreLatam2016/index-5.html @@ -1,117 +0,0 @@ - - - - - - - - - - Datos Críticos e incluyentes .:| Offray Luna , @offrayLC |:. AbreLatam 2016 - - - - - - - - - - - - -
-
-
- - Datos Críticos e incluyentes .:| Offray Luna , @offrayLC |:. AbreLatam 2016 - -
- - -
-
-
- -
-
-
-
-




- Los datos al servicio de un mundo plural/incluyente, requieren apuestas diversas

-
-
-
-
-
- -
-
-




- "Emprendimiento" (con datos o lo que sea): Apuesta única para un mundo diverso

-
-
-
-
-
-
- -
-
-
-
- -
-
-
-
-
- -
-
- - - - DELETED Docs/Es/Presentaciones/AbreLatam2016/index-6.html Index: Docs/Es/Presentaciones/AbreLatam2016/index-6.html ================================================================== --- Docs/Es/Presentaciones/AbreLatam2016/index-6.html +++ Docs/Es/Presentaciones/AbreLatam2016/index-6.html @@ -1,117 +0,0 @@ - - - - - - - - - - Datos Críticos e incluyentes .:| Offray Luna , @offrayLC |:. AbreLatam 2016 - - - - - - - - - - - - -
-
-
- - Datos Críticos e incluyentes .:| Offray Luna , @offrayLC |:. AbreLatam 2016 - -
- - -
-
-
- -
-
-
-
-




- Los datos al servicio de un mundo plural/incluyente, requieren apuestas diversas

-
-
-
-
-
- -
-
-




- "Emprendimiento" (con datos o lo que sea): Apuesta única para un mundo diverso

-
-
-
-
-
-
- -
-
-
-
- -
-
-
-
-
- -
-
- - - - DELETED Docs/Es/Presentaciones/AbreLatam2016/index-7.html Index: Docs/Es/Presentaciones/AbreLatam2016/index-7.html ================================================================== --- Docs/Es/Presentaciones/AbreLatam2016/index-7.html +++ Docs/Es/Presentaciones/AbreLatam2016/index-7.html @@ -1,123 +0,0 @@ - - - - - - - - - - Datos Críticos e incluyentes .:| Offray Luna , @offrayLC |:. AbreLatam 2016 - - - - - - - - - - - - -
-
-
- - Datos Críticos e incluyentes .:| Offray Luna , @offrayLC |:. AbreLatam 2016 - -
- - -
-
-
- -
-
-
-
-




- -

-
-
-
-
-
- -
-
-



- "Emprendimiento": lo pocos que más se benefician, son los que menos arriesgan -

-
-
-
-
-
-
-


- Si de verdad lo sueñas y lo intentas, puedes ser el siguiente: - Facebook/Google/Uber del naciente "Silicon Valley" Colombiano - (de los datos/apps). -

-
- ...pero el fuerte de la inversión gubernamental se irá en tu mentor, co-working, - y ecosistema inversor. -
-
-
- -
-
-
- -
-
- - - - DELETED Docs/Es/Presentaciones/AbreLatam2016/index-8.html Index: Docs/Es/Presentaciones/AbreLatam2016/index-8.html ================================================================== --- Docs/Es/Presentaciones/AbreLatam2016/index-8.html +++ Docs/Es/Presentaciones/AbreLatam2016/index-8.html @@ -1,126 +0,0 @@ - - - - - - - - - - Datos Críticos e incluyentes .:| Offray Luna , @offrayLC |:. AbreLatam 2016 - - - - - - - - - - - - -
-
-
- - Datos Críticos e incluyentes .:| Offray Luna , @offrayLC |:. AbreLatam 2016 - -
- - -
-
-
- -
-
-
-
-




- -

-
-
-
-
-
- -
-
-
-
- -
-
-
-
-
- -
-
-
-
-
-
-

Mayor beneficio: inversionistas, mentores, logística, infraestructura. -

-
-



-
-
-
-

Mayor riesgo: emprendedores, jóvenes. -

-
-
-
- -
-
- - - - DELETED Docs/Es/Presentaciones/AbreLatam2016/index-9.html Index: Docs/Es/Presentaciones/AbreLatam2016/index-9.html ================================================================== --- Docs/Es/Presentaciones/AbreLatam2016/index-9.html +++ Docs/Es/Presentaciones/AbreLatam2016/index-9.html @@ -1,121 +0,0 @@ - - - - - - - - - - Datos Críticos e incluyentes .:| Offray Luna , @offrayLC |:. AbreLatam 2016 - - - - - - - - - - - - -
-
-
- - Datos Críticos e incluyentes .:| Offray Luna , @offrayLC |:. AbreLatam 2016 - -
- - -
-
-
- -
-
-
-
-




- ¿Podría ser de otra forma? -

-
-
-
-
-
- -
-
-
-
- -
-
-
-
-
-
-





- Buscar en la periferia... -

-
-
-
-
- -
-
-
-
-
- -
-
- - - - DELETED Docs/Es/Presentaciones/AbreLatam2016/index.html Index: Docs/Es/Presentaciones/AbreLatam2016/index.html ================================================================== --- Docs/Es/Presentaciones/AbreLatam2016/index.html +++ Docs/Es/Presentaciones/AbreLatam2016/index.html @@ -1,100 +0,0 @@ - - - - - - - - - - Datos Críticos e incluyentes .:| Offray Luna , @offrayLC |:. AbreLatam 2016 - - - - - - - - - - - - -
-
-
- - Datos Críticos e incluyentes .:| Offray Luna , @offrayLC |:. AbreLatam 2016 - -
- - -
-
-
- -
-
-
-
-
- -
-
-




- ''Los datos son la respuesta a una pregunta que se pudo haber hecho de otra forma''

-
- Antonio LaFuente, parafraseando a Ulrick Beck -
-
-
-
- -
-
- - - - DELETED Docs/Es/Presentaciones/AbreLatam2016/portfolio-example01.html Index: Docs/Es/Presentaciones/AbreLatam2016/portfolio-example01.html ================================================================== --- Docs/Es/Presentaciones/AbreLatam2016/portfolio-example01.html +++ Docs/Es/Presentaciones/AbreLatam2016/portfolio-example01.html @@ -1,121 +0,0 @@ - - - - - - - - - - MDL-Static Website - - - - - - - -
-
-
- - - Simple portfolio website - -
-
- -
-
-
- -
-
-
-
-
-

Blog template

-
-
- -
-
- Includes - Design, UX and Frontend Development -
-
-

Introduction

-
-

- Excepteur reprehenderit sint exercitation ipsum consequat qui sit id velit elit. Velit anim eiusmod labore sit amet. Voluptate voluptate irure occaecat deserunt incididunt esse in. Sunt velit aliquip sunt elit ex nulla reprehenderit qui ut eiusmod ipsum do. Duis veniam reprehenderit laborum occaecat id proident nulla veniam. Duis enim deserunt voluptate aute veniam sint pariatur exercitation. Irure mollit est sit labore est deserunt pariatur duis aute laboris cupidatat. Consectetur consequat esse est sit veniam adipisicing ipsum enim irure. -

-
-
- -
-

Initial Ideas

-
- -
-
-

- Excepteur reprehenderit sint exercitation ipsum consequat qui sit id velit elit. Velit anim eiusmod labore sit amet. Voluptate voluptate irure occaecat deserunt incididunt esse in. Sunt velit aliquip sunt elit ex nulla reprehenderit qui ut eiusmod ipsum do. Duis veniam reprehenderit laborum occaecat id proident nulla veniam. Duis enim deserunt voluptate aute veniam sint pariatur exercitation. Irure mollit est sit labore est deserunt pariatur duis aute laboris cupidatat. Consectetur consequat esse est sit veniam adipisicing ipsum enim irure. -

-
-

Final Concept

-
- -
-
- -
-
-

- Excepteur reprehenderit sint exercitation ipsum consequat qui sit id velit elit. Velit anim eiusmod labore sit amet. Voluptate voluptate irure occaecat deserunt incididunt esse in. Sunt velit aliquip sunt elit ex nulla reprehenderit qui ut eiusmod ipsum do. Duis veniam reprehenderit laborum occaecat id proident nulla veniam. Duis enim deserunt voluptate aute veniam sint pariatur exercitation. Irure mollit est sit labore est deserunt pariatur duis aute laboris cupidatat. Consectetur consequat esse est sit veniam adipisicing ipsum enim irure. -

-
-
-
-
- -
-
- - - - DELETED Docs/Es/Presentaciones/AbreLatam2016/styles.css Index: Docs/Es/Presentaciones/AbreLatam2016/styles.css ================================================================== --- Docs/Es/Presentaciones/AbreLatam2016/styles.css +++ Docs/Es/Presentaciones/AbreLatam2016/styles.css @@ -1,170 +0,0 @@ -.portfolio-header { - position: relative; - background-image: url(images/header-bg.jpg); -} - -.portfolio-header .mdl-layout__header-row { - padding: 0; - -webkit-justify-content: center; - -ms-flex-pack: center; - justify-content: center; -} - -.mdl-layout__title { - font-size: 14px; - text-align: center; - font-weight: 300; -} - -.is-compact .mdl-layout__title span { - display: none; -} - -.portfolio-logo-row { - min-height: 200px; -} - -.is-compact .portfolio-logo-row { - min-height: auto; -} - -.portfolio-logo { - background: url(images/logo.png) 50% no-repeat; - background-size: cover; - height: 150px; - width: 150px; - margin: auto auto 10px; -} - -.is-compact .portfolio-logo { - height: 50px; - width: 50px; - margin-top: 7px; -} - -.portfolio-navigation-row { - background-color: rgba(0, 0, 0, 0.08); - text-transform: uppercase; - height: 45px; -} - -.portfolio-navigation-row .mdl-navigation { - text-align: center; - max-width: 900px; - width: 100%; -} - -.portfolio-navigation-row .mdl-navigation__link { - -webkit-flex: 1; - -ms-flex: 1; - flex: 1; - line-height: 42px; -} - -.portfolio-header .mdl-layout__drawer-button { - background-color: rgba(197, 197, 197, 0.44); -} - -.portfolio-navigation-row .is-active { - position: relative; - font-weight: bold; -} - -.portfolio-navigation-row .is-active:after { - content: ""; - width: 70%; - height: 2px; - display: block; - position: absolute; - bottom: 0; - left: 0; - background-color: rgb(255,64,129); - left: 15%; -} - -.portfolio-card .mdl-card__title { - padding-bottom: 0; -} - -.portfolio-blog-card-full-bg { - background: url(images/example-blog03.jpg) center / cover; -} - -.portfolio-blog-card-event-bg { - background: url(images/example-blog05.jpg) center / cover; -} - -.portfolio-blog-card-strip-bg { - background: url(images/example-blog06.jpg) center / cover; -} - -.portfolio-blog-card-compact .mdl-card__title { - padding-bottom: 0; -} - -.portfolio-blog-card-bg > .mdl-card__actions { - height: 52px; - padding: 16px; - background: rgba(0, 0, 0, 0.2); -} - -img.article-image { - width: 100%; - height: auto; -} - -.portfolio-max-width { - max-width: 900px; - margin: auto; -} - -.portfolio-copy { - max-width: 700px; -} - -.no-padding { - padding: 0; -} - -.no-left-padding{ - padding-left: 0; -} - -.no-bottom-padding { - padding-bottom: 0; -} - -.padding-top { - padding: 10px 0 0; -} - -.portfolio-share-btn { - position: relative; - float: right; - top: -4px; -} - -.demo-card-event > .mdl-card__actions { - -webkit-align-items: center; - -ms-flex-align: center; - align-items: center; - box-sizing: border-box; - display: -webkit-flex; - display: -ms-flexbox; - display: flex; -} - -.portfolio-contact .mdl-textfield { - width: 100%; -} - -.portfolio-contact form { - max-width: 550px; - margin: auto; -} - -footer { - background-image: url(images/footer-background.png); - background-size: cover; -} - DELETED Docs/Es/Presentaciones/Imagenes/330px-Diffusion_of_ideas.svg.png Index: Docs/Es/Presentaciones/Imagenes/330px-Diffusion_of_ideas.svg.png ================================================================== --- Docs/Es/Presentaciones/Imagenes/330px-Diffusion_of_ideas.svg.png +++ Docs/Es/Presentaciones/Imagenes/330px-Diffusion_of_ideas.svg.png cannot compute difference between binary files DELETED Docs/Es/Presentaciones/Imagenes/addicted-powerpoint.gif Index: Docs/Es/Presentaciones/Imagenes/addicted-powerpoint.gif ================================================================== --- Docs/Es/Presentaciones/Imagenes/addicted-powerpoint.gif +++ Docs/Es/Presentaciones/Imagenes/addicted-powerpoint.gif cannot compute difference between binary files DELETED Docs/Es/Presentaciones/Imagenes/bifurcation-design.png Index: Docs/Es/Presentaciones/Imagenes/bifurcation-design.png ================================================================== --- Docs/Es/Presentaciones/Imagenes/bifurcation-design.png +++ Docs/Es/Presentaciones/Imagenes/bifurcation-design.png cannot compute difference between binary files DELETED Docs/Es/Presentaciones/Imagenes/bifurcation-points-complex-system.png Index: Docs/Es/Presentaciones/Imagenes/bifurcation-points-complex-system.png ================================================================== --- Docs/Es/Presentaciones/Imagenes/bifurcation-points-complex-system.png +++ Docs/Es/Presentaciones/Imagenes/bifurcation-points-complex-system.png cannot compute difference between binary files DELETED Docs/Es/Presentaciones/Imagenes/bifurcation-technology.png Index: Docs/Es/Presentaciones/Imagenes/bifurcation-technology.png ================================================================== --- Docs/Es/Presentaciones/Imagenes/bifurcation-technology.png +++ Docs/Es/Presentaciones/Imagenes/bifurcation-technology.png cannot compute difference between binary files DELETED Docs/Es/Presentaciones/Imagenes/by-sa.png Index: Docs/Es/Presentaciones/Imagenes/by-sa.png ================================================================== --- Docs/Es/Presentaciones/Imagenes/by-sa.png +++ Docs/Es/Presentaciones/Imagenes/by-sa.png cannot compute difference between binary files DELETED Docs/Es/Presentaciones/Imagenes/contratos-publicos.png Index: Docs/Es/Presentaciones/Imagenes/contratos-publicos.png ================================================================== --- Docs/Es/Presentaciones/Imagenes/contratos-publicos.png +++ Docs/Es/Presentaciones/Imagenes/contratos-publicos.png cannot compute difference between binary files DELETED Docs/Es/Presentaciones/Imagenes/countries_implicated_in_the_Panama_Papers.svg.png Index: Docs/Es/Presentaciones/Imagenes/countries_implicated_in_the_Panama_Papers.svg.png ================================================================== --- Docs/Es/Presentaciones/Imagenes/countries_implicated_in_the_Panama_Papers.svg.png +++ Docs/Es/Presentaciones/Imagenes/countries_implicated_in_the_Panama_Papers.svg.png cannot compute difference between binary files DELETED Docs/Es/Presentaciones/Imagenes/dynabook-children.png Index: Docs/Es/Presentaciones/Imagenes/dynabook-children.png ================================================================== --- Docs/Es/Presentaciones/Imagenes/dynabook-children.png +++ Docs/Es/Presentaciones/Imagenes/dynabook-children.png cannot compute difference between binary files DELETED Docs/Es/Presentaciones/Imagenes/grafoscopio-webpage-top.png Index: Docs/Es/Presentaciones/Imagenes/grafoscopio-webpage-top.png ================================================================== --- Docs/Es/Presentaciones/Imagenes/grafoscopio-webpage-top.png +++ Docs/Es/Presentaciones/Imagenes/grafoscopio-webpage-top.png cannot compute difference between binary files DELETED Docs/Es/Presentaciones/Imagenes/herramientas-amoldables-1.png Index: Docs/Es/Presentaciones/Imagenes/herramientas-amoldables-1.png ================================================================== --- Docs/Es/Presentaciones/Imagenes/herramientas-amoldables-1.png +++ Docs/Es/Presentaciones/Imagenes/herramientas-amoldables-1.png cannot compute difference between binary files DELETED Docs/Es/Presentaciones/Imagenes/herramientas-amoldables-2.png Index: Docs/Es/Presentaciones/Imagenes/herramientas-amoldables-2.png ================================================================== --- Docs/Es/Presentaciones/Imagenes/herramientas-amoldables-2.png +++ Docs/Es/Presentaciones/Imagenes/herramientas-amoldables-2.png cannot compute difference between binary files DELETED Docs/Es/Presentaciones/Imagenes/herramientas-amoldables-3.png Index: Docs/Es/Presentaciones/Imagenes/herramientas-amoldables-3.png ================================================================== --- Docs/Es/Presentaciones/Imagenes/herramientas-amoldables-3.png +++ Docs/Es/Presentaciones/Imagenes/herramientas-amoldables-3.png cannot compute difference between binary files DELETED Docs/Es/Presentaciones/Imagenes/herramientas-amoldables-4.png Index: Docs/Es/Presentaciones/Imagenes/herramientas-amoldables-4.png ================================================================== --- Docs/Es/Presentaciones/Imagenes/herramientas-amoldables-4.png +++ Docs/Es/Presentaciones/Imagenes/herramientas-amoldables-4.png cannot compute difference between binary files DELETED Docs/Es/Presentaciones/Imagenes/open-spending.png Index: Docs/Es/Presentaciones/Imagenes/open-spending.png ================================================================== --- Docs/Es/Presentaciones/Imagenes/open-spending.png +++ Docs/Es/Presentaciones/Imagenes/open-spending.png cannot compute difference between binary files DELETED Docs/Es/Presentaciones/Imagenes/richard-stallman.gif Index: Docs/Es/Presentaciones/Imagenes/richard-stallman.gif ================================================================== --- Docs/Es/Presentaciones/Imagenes/richard-stallman.gif +++ Docs/Es/Presentaciones/Imagenes/richard-stallman.gif cannot compute difference between binary files DELETED Docs/Es/Presentaciones/Imagenes/richardstallman.jpg Index: Docs/Es/Presentaciones/Imagenes/richardstallman.jpg ================================================================== --- Docs/Es/Presentaciones/Imagenes/richardstallman.jpg +++ Docs/Es/Presentaciones/Imagenes/richardstallman.jpg cannot compute difference between binary files DELETED Docs/Es/Presentaciones/Imagenes/sketchpad.jpg Index: Docs/Es/Presentaciones/Imagenes/sketchpad.jpg ================================================================== --- Docs/Es/Presentaciones/Imagenes/sketchpad.jpg +++ Docs/Es/Presentaciones/Imagenes/sketchpad.jpg cannot compute difference between binary files DELETED Docs/Es/Presentaciones/Imagenes/smalltalk-72-1977.jpg Index: Docs/Es/Presentaciones/Imagenes/smalltalk-72-1977.jpg ================================================================== --- Docs/Es/Presentaciones/Imagenes/smalltalk-72-1977.jpg +++ Docs/Es/Presentaciones/Imagenes/smalltalk-72-1977.jpg cannot compute difference between binary files DELETED Docs/Es/Presentaciones/Imagenes/unix-fathers.jpg Index: Docs/Es/Presentaciones/Imagenes/unix-fathers.jpg ================================================================== --- Docs/Es/Presentaciones/Imagenes/unix-fathers.jpg +++ Docs/Es/Presentaciones/Imagenes/unix-fathers.jpg cannot compute difference between binary files DELETED Docs/Es/Presentaciones/Imagenes/unreproducible.png Index: Docs/Es/Presentaciones/Imagenes/unreproducible.png ================================================================== --- Docs/Es/Presentaciones/Imagenes/unreproducible.png +++ Docs/Es/Presentaciones/Imagenes/unreproducible.png cannot compute difference between binary files DELETED Docs/Es/Presentaciones/Imagenes/word-2007-interface.png Index: Docs/Es/Presentaciones/Imagenes/word-2007-interface.png ================================================================== --- Docs/Es/Presentaciones/Imagenes/word-2007-interface.png +++ Docs/Es/Presentaciones/Imagenes/word-2007-interface.png cannot compute difference between binary files DELETED Docs/Es/Presentaciones/bifurcation-children-parent-detail.png Index: Docs/Es/Presentaciones/bifurcation-children-parent-detail.png ================================================================== --- Docs/Es/Presentaciones/bifurcation-children-parent-detail.png +++ Docs/Es/Presentaciones/bifurcation-children-parent-detail.png cannot compute difference between binary files DELETED Docs/Es/Presentaciones/grafoscopio-celfi-2016.jpg Index: Docs/Es/Presentaciones/grafoscopio-celfi-2016.jpg ================================================================== --- Docs/Es/Presentaciones/grafoscopio-celfi-2016.jpg +++ Docs/Es/Presentaciones/grafoscopio-celfi-2016.jpg cannot compute difference between binary files DELETED Docs/Es/Presentaciones/grafoscopio-map.xmind Index: Docs/Es/Presentaciones/grafoscopio-map.xmind ================================================================== --- Docs/Es/Presentaciones/grafoscopio-map.xmind +++ Docs/Es/Presentaciones/grafoscopio-map.xmind cannot compute difference between binary files DELETED Docs/Es/Presentaciones/grafoscopio-mapa-detalle.png Index: Docs/Es/Presentaciones/grafoscopio-mapa-detalle.png ================================================================== --- Docs/Es/Presentaciones/grafoscopio-mapa-detalle.png +++ Docs/Es/Presentaciones/grafoscopio-mapa-detalle.png cannot compute difference between binary files DELETED Docs/Es/Presentaciones/grafoscopio-mapa.png Index: Docs/Es/Presentaciones/grafoscopio-mapa.png ================================================================== --- Docs/Es/Presentaciones/grafoscopio-mapa.png +++ Docs/Es/Presentaciones/grafoscopio-mapa.png cannot compute difference between binary files DELETED Docs/Es/Presentaciones/grafoscopio.mm Index: Docs/Es/Presentaciones/grafoscopio.mm ================================================================== --- Docs/Es/Presentaciones/grafoscopio.mm +++ Docs/Es/Presentaciones/grafoscopio.mm @@ -1,350 +0,0 @@ - - - - - - - - - -

- Grafoscopio -

- - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

- ¿Y si la inspiración para el futuro -

-

- estuviese en el pasado y -

-

- en lo transfronterizo? -

- - - -
- - - - - - - - - - - - - - - - - - - - - - - -

- Bifurcación -

-

- (recombinación?) -

- - - -
- - - - - - - - - - - - - - - - -
-
-
-
-
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

- "Big Data" -

-

- vs -

-

- Frictionless Data -

- - - -
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
-
- - - - - - - - - - - - - - - - - - - - - - - -
DELETED Docs/Es/Presentaciones/grafoscopio.pdf Index: Docs/Es/Presentaciones/grafoscopio.pdf ================================================================== --- Docs/Es/Presentaciones/grafoscopio.pdf +++ Docs/Es/Presentaciones/grafoscopio.pdf cannot compute difference between binary files DELETED Docs/Es/Presentaciones/grafoscopio.svg Index: Docs/Es/Presentaciones/grafoscopio.svg ================================================================== --- Docs/Es/Presentaciones/grafoscopio.svg +++ Docs/Es/Presentaciones/grafoscopio.svg @@ -1,16716 +0,0 @@ - - -GrafoscopioAutorLicencia¿Preguntas?Comentarios / CharlaInvestigaciónrepensarde garageCiudadanaAbiertaReproducibleAmoldableCuando lo único que unotiene es un martillo,todo parece un clavole damos a los problemasla forma de las herramientasque tenemos para resolverlosLa "innovación" sevolvió un lugar común¿Y si la inspiración para el futuroestuviese en el pasado yen lo transfronterizo?Puntos debifurcaciónBifurcación(recombinación?)Free (as in Freedom) Softwaredynabook childrenGUI - 1977sketchpadunix fathersimágenes tomadas de:Jonas, WolfgangDesign Research and its Meaning to theMethodological Development of the DisciplineEjpsMetáforas "adecuadas"... (X = Y)Agile + bio + hacking¿Podría seral contrario?Los invisibleslugares comunesPara empezar...GraciasAsistentesOrganizadores DELETED Docs/Es/Tutoriales/Cinemania/add-comments-filled.png Index: Docs/Es/Tutoriales/Cinemania/add-comments-filled.png ================================================================== --- Docs/Es/Tutoriales/Cinemania/add-comments-filled.png +++ Docs/Es/Tutoriales/Cinemania/add-comments-filled.png cannot compute difference between binary files DELETED Docs/Es/Tutoriales/Cinemania/add-comments.png Index: Docs/Es/Tutoriales/Cinemania/add-comments.png ================================================================== --- Docs/Es/Tutoriales/Cinemania/add-comments.png +++ Docs/Es/Tutoriales/Cinemania/add-comments.png cannot compute difference between binary files DELETED Docs/Es/Tutoriales/Cinemania/add-new-messages.png Index: Docs/Es/Tutoriales/Cinemania/add-new-messages.png ================================================================== --- Docs/Es/Tutoriales/Cinemania/add-new-messages.png +++ Docs/Es/Tutoriales/Cinemania/add-new-messages.png cannot compute difference between binary files DELETED Docs/Es/Tutoriales/Cinemania/class-messages-adding.png Index: Docs/Es/Tutoriales/Cinemania/class-messages-adding.png ================================================================== --- Docs/Es/Tutoriales/Cinemania/class-messages-adding.png +++ Docs/Es/Tutoriales/Cinemania/class-messages-adding.png cannot compute difference between binary files DELETED Docs/Es/Tutoriales/Cinemania/create-new-package.png Index: Docs/Es/Tutoriales/Cinemania/create-new-package.png ================================================================== --- Docs/Es/Tutoriales/Cinemania/create-new-package.png +++ Docs/Es/Tutoriales/Cinemania/create-new-package.png cannot compute difference between binary files DELETED Docs/Es/Tutoriales/Cinemania/new-object-created.png Index: Docs/Es/Tutoriales/Cinemania/new-object-created.png ================================================================== --- Docs/Es/Tutoriales/Cinemania/new-object-created.png +++ Docs/Es/Tutoriales/Cinemania/new-object-created.png cannot compute difference between binary files DELETED Docs/Es/Tutoriales/Cinemania/new-object-dirty.png Index: Docs/Es/Tutoriales/Cinemania/new-object-dirty.png ================================================================== --- Docs/Es/Tutoriales/Cinemania/new-object-dirty.png +++ Docs/Es/Tutoriales/Cinemania/new-object-dirty.png cannot compute difference between binary files DELETED Docs/Es/Tutoriales/Cinemania/new-package-created.png Index: Docs/Es/Tutoriales/Cinemania/new-package-created.png ================================================================== --- Docs/Es/Tutoriales/Cinemania/new-package-created.png +++ Docs/Es/Tutoriales/Cinemania/new-package-created.png cannot compute difference between binary files DELETED Docs/Es/Tutoriales/Cinemania/protocol-adding.png Index: Docs/Es/Tutoriales/Cinemania/protocol-adding.png ================================================================== --- Docs/Es/Tutoriales/Cinemania/protocol-adding.png +++ Docs/Es/Tutoriales/Cinemania/protocol-adding.png cannot compute difference between binary files DELETED Docs/Es/Tutoriales/Cinemania/system-browser-traversed.png Index: Docs/Es/Tutoriales/Cinemania/system-browser-traversed.png ================================================================== --- Docs/Es/Tutoriales/Cinemania/system-browser-traversed.png +++ Docs/Es/Tutoriales/Cinemania/system-browser-traversed.png cannot compute difference between binary files DELETED Docs/Es/Tutoriales/Cinemania/system-browser.png Index: Docs/Es/Tutoriales/Cinemania/system-browser.png ================================================================== --- Docs/Es/Tutoriales/Cinemania/system-browser.png +++ Docs/Es/Tutoriales/Cinemania/system-browser.png cannot compute difference between binary files DELETED Docs/Es/Tutoriales/DataSelfies/recibimos-tu-solicitud.png Index: Docs/Es/Tutoriales/DataSelfies/recibimos-tu-solicitud.png ================================================================== --- Docs/Es/Tutoriales/DataSelfies/recibimos-tu-solicitud.png +++ Docs/Es/Tutoriales/DataSelfies/recibimos-tu-solicitud.png cannot compute difference between binary files DELETED Docs/Es/Tutoriales/DataSelfies/solicita-tu-archivo.png Index: Docs/Es/Tutoriales/DataSelfies/solicita-tu-archivo.png ================================================================== --- Docs/Es/Tutoriales/DataSelfies/solicita-tu-archivo.png +++ Docs/Es/Tutoriales/DataSelfies/solicita-tu-archivo.png cannot compute difference between binary files DELETED Docs/Es/Tutoriales/DataSelfies/twitter-configuracion.png Index: Docs/Es/Tutoriales/DataSelfies/twitter-configuracion.png ================================================================== --- Docs/Es/Tutoriales/DataSelfies/twitter-configuracion.png +++ Docs/Es/Tutoriales/DataSelfies/twitter-configuracion.png cannot compute difference between binary files DELETED Docs/Es/Tutoriales/tutorial.ston Index: Docs/Es/Tutoriales/tutorial.ston ================================================================== --- Docs/Es/Tutoriales/tutorial.ston +++ Docs/Es/Tutoriales/tutorial.ston @@ -1,1740 +0,0 @@ -OrderedCollection [ - GrafoscopioNode { - #header : 'Presentación', - #key : '', - #body : 'El presente documento tiene como finalidad ayudarte a comprender el funcionamiento básico de Pharo y Grafoscopio. -Se trata de un documento rápido. Para una introducción alternativa a grafoscopio, su historia, inspiraciones e innovación, -puedes revisar el \"Manual de grafoscopio\", que está disponible desde el menú ̀Ayuda ̀ en sus distintos formatos. -Tanto este tutorial como el manual están construyéndose y podrían llegar a integrarse luego en un único documento. - -Para navegar este tutorial, si lo estás viendo como un documento interactivo dentro de grafoscopio, -(si no lo estás viendo así, te recomendamos que lo abras para hacer la experiencia más interactiva) -basta con que hagas click en cada uno de los nodos que aparecen en el árbol lateral izquierdo. -Dichos nodos pueden contener otros subnodos lo cual se indica por un pequeño triángulo a la izquierda del nombre -del nodo, que puede estar apuntando a la derecha, para indicar que los contenidos del nodo están comprimidos -o hacia abajo, cuando están extendidos. -Para desplegar o contraer los contenidos de un nodo que agrupa a otros, haces click en dicho triángulo. -', - #children : OrderedCollection [ ], - #parent : GrafoscopioNode { - #header : 'Arbol principal', - #key : '', - #body : '', - #children : @1, - #level : 0, - #nodesInPreorder : OrderedCollection [ - @4, - @2, - GrafoscopioNode { - #header : 'Agradecimientos', - #key : '', - #body : 'Este tutorial es producto del trabajo realizado durante varios talleres en el hackerspace - [Hackbo](http://hackbo.co) en Bogotá, Colombia, entre ellos: - - - Los talleres de indie web science, ( 1 noviembre de 2014) - - Los talleres del [Data Week](http://mutabit.com/dataweek) y sus eventos preparatorios y posteriores. - -Agradecemos a las personas que asistieron a los talleres y ayudaron con su presencia a probar este material, -Entre ellos: César Augusto Arias, Claudia Baez, Carlos Barreneche, Luis Alejandro Bernal, Fernando Castro, -Felix Gerlof, Florencia Goldsman, Camilo Hurtado, Luis Linares, Offray Luna, Rafael Medida, Gloria Meneses, -Fredy Pulido, Iván Pulido, Sebastian Pulido y David Salvador.', - #children : OrderedCollection [ ], - #parent : @4, - #level : 1 - }, - GrafoscopioNode { - #header : 'Introductorio: Professor Stef', - #headers : OrderedCollection [ - 'Tutorial 1', - 'Tutorial 2', - 'Tutorial 3', - 'Tutorial 4', - 'Tutorial 5.', - 'Tutorial 6', - 'Tutorial 7', - 'Tutorial 8', - 'Tutorial 9', - 'Tutorial 10', - 'Tutorial 11' - ], - #key : '', - #body : 'Este tutorial mostrará los aspectos básicos de la sintaxis de Smalltalk y está basado -en el tutorial ProfStef que viene integrado a Pharo, pero convertido en un cuaderno -interactivo de Grafoscopio. -Está separado por lecciones. que vienen numeradas y en ocasiones están agrupadas. -Para ver el contenido particular de una lección se debe hacer click en ella en el árbol -lateral a la izquierda. -Si están agrupadas, se verá un triangulito en el título que las agrupa. -Al hacer click en él, se mostrarán los contenidos del mismo, que podremos seguir -explorando con la misma lógica. -', - #children : OrderedCollection [ - GrafoscopioNode { - #header : 'Lección 1: Bienvenida', - #headers : OrderedCollection [ ], - #key : '', - #body : '\"Hola!, Soy el profesor Stef. Debes querer que te ayude a aprender -Pharo. Así que vamos a la primera lección: aprender a ejecutar código. -Para ello hay varias opciones: - - Opción 1: Selecciona el texto debajo, o coloca el cursor luego del punto, dale clic - derecho y selecciona \'do it (d)\' - - Opción 2: Haz click en el botón con el ícono de play que aparece justo cerca a la - esquina superior derecha de este panel\" - -ProfStef openPharoZenWorkspace - -', - #tags : 'código', - #children : OrderedCollection [ ], - #parent : @8, - #level : 2 - }, - GrafoscopioNode { - #header : 'Lección 2: Haciendo', - #headers : OrderedCollection [ ], - #key : '', - #body : '\"Excelente! (quise decir Súper)). Acabas de ejecutar una expresión de Pharo. Más precisamente, -enviaste el mensaje \'next\' a PharoTutorial class (¡soy yo!). - -Nota que puedes correr este tutorial nuevamente evaluado \'PharoTutorial go\'. -\'PharoTutorial previous\' te devolverá a la lección anterior. - -También puedes ejecutar \'Do it\' usando el comando de teclado \'ALT d\' (esto cambia de acuerdo a -tu sistema operativo/computador: puede ser \'CMD d\' o \'CTRL d\'). - -Trata de evaluar las siguientes expresiones:\" - -Nautilus open. - -SmalltalkImage current aboutThisSystem. - -\"Ahora ve a la siguiente lección\"', - #tags : 'código', - #children : OrderedCollection [ ], - #parent : @8, - #level : 2 - }, - GrafoscopioNode { - #header : 'Lección 3: Imprimiendo', - #headers : OrderedCollection [ ], - #key : '', - #body : '\"Now you\'re a Do It master ! Let\'s talk about printing. -It\'s a Do It which prints the result next to the expression you\'ve selected. -For example, select the text below, open the menu and click on \'print it (p)\':\" - -1 + 2. - -\"You\'ve seen the letter \'p\' between parentheses next to \'print it\' ? It indicates the -ALT- (or CMD- or CTRL-) shortcut to execute this command. - -Try ALT-p (or CMD-p or CTRL-p) on the following expressions:\" - -Date today. - -Time now. - -\"The result is selected, so you can erase it using the backspace key. Try it !\" - -SmalltalkImage current datedVersion. - -\"Ahora ve a la siguiente lección\"', - #tags : 'código', - #children : OrderedCollection [ ], - #parent : @8, - #level : 2 - }, - GrafoscopioNode { - #header : 'Lección 4: Inspeccionando', - #key : '', - #body : '\"Now you\'re a Do It and Print It master ! Let\'s talk about inspecting. -It\'s a Do It which opens an Inspector on the result of evaluating the expression you\'ve selected. -The Inspector is a tool that allows you to have a look inside an object. - -For example, select the text below, open the menu and click on \'inspect it (i)\':\" - -1 / 2. - -\"You\'ve seen the letter \'i\' between parentheses next to \'inspect it\' ? It indicates the -ALT- (or CMD- or CTRL-) shortcut to execute this command. - -Try ALT-i (or CMD-i or CTRL-i) on the following expressions:\" - -DateAndTime today. - -Float pi. - -SystemVersion current. - -\"Ahora ve a la siguiente lección\"', - #tags : 'código', - #children : OrderedCollection [ ], - #parent : @8, - #level : 2 - }, - GrafoscopioNode { - #header : 'Tipos básicos', - #key : '', - #body : '', - #children : OrderedCollection [ - GrafoscopioNode { - #header : 'Lección 5: Números', - #key : '', - #body : '\"You now know how to execute Pharo code. - -Now let\'s talk about basic objects. - -1, 2, 100, 2/3 ... are Numbers, and respond to many messages evaluating mathematical expressions. -Evaluate these ones:\" - -2. - -20 factorial. - -1000 factorial / 999 factorial. - -(1/3). - -(1/3) + (4/5). - -(1/3) asFloat. - -1 class. - -1 class maxVal class. - -(1 class maxVal + 1) class. - -\"Ahora ve a la siguiente lección\"', - #tags : 'código', - #children : OrderedCollection [ ], - #parent : @22, - #level : 3 - }, - GrafoscopioNode { - #header : 'Lección 6: Caracteres', - #key : '', - #body : '\"Un caracter puede ser instanciado usando el operador $\" - -$A. - -$A class. - -$@ charCode. - -Character cr. - -Character space. - -\"Puedes imprimir todos los 256 caracteres del código extendido ASCII\" - -Character allByteCharacters. - -\"Ahora ve a la siguiente lección\"', - #tags : 'código', - #children : OrderedCollection [ ], - #parent : @22, - #level : 3 - }, - GrafoscopioNode { - #header : 'Lección 7: Cadenas', - #headers : OrderedCollection [ ], - #key : '', - #body : '\"Un String o cadena es una colección de caracteres. -Usa comillas simples para crear un objeto String. -Imprime estas expresiones\" - -\'a\' class. - -$a class. - -\'PharoTutorial\'. - -\'PharoTutorial\' size. - -\'abc\' asUppercase. - -\'NO more Hello World!\' reverse. - -\'Adan no calla con nada\' reverse. - -\'Anita lava la tina\' reverse. - -\"Puedes acceder a cada caracter usando \'at:mensaje\'\" - -\'PharoTutorial\' at:6. - -\"La concatenación de String usa el operador coma:\" - -\'PharoTutorial\', \' is cool\'. \"versión cambiada\" - -\'Pharo tutorial \', \' is cool\', \' when i active the code \'. - -\"Ahora ve a la siguiente lección\"', - #tags : 'código', - #children : OrderedCollection [ ], - #parent : @22, - #level : 3 - }, - GrafoscopioNode { - #header : 'Lección 8: Símbolos', - #headers : OrderedCollection [ ], - #key : '', - #body : '\"Un \'Symbol\' es un String único globalmente. - -Hay uno y solo un Symbol #PharoTutorial. Pueden existir varios objetos String \'PharoTutorial\' - -(Message=retorna \'true\' si los dos objetos son IGUALES)\" - -\'PharoTutorial\' asSymbol. - -#PharoTutorial asString. - -\"Notra: En mátemáticas hay dos tipos de igualdad: - -x = 3 <- Aginación. A la variable x, le estamos asignando el valor 3. -2 = 3 <- Comparación: dados dos elementos conocidos decir si es o no el mismo. - -Para Smalltalk es: - -x := 3. <- Aginación. -2 = 3 <- Comparación. -a == a <- Comparación fuerte. Se trata del mismo símbolo? -\" - -\'PharoTutorial\' = \'PharoTutorial\'. -\'PharoTutorial\' == \'PharoTutorial\'. - -#PharoTutorial = \'PharoTutorial\'. -#PharoTutorial == \'PharoTutorial\'. - -(2 asString) == (2 asString). - -(2 asString) asSymbol == (2 asString) asSymbol. - - -\"Ahora ve a la siguiente lección\" -', - #tags : 'código', - #children : OrderedCollection [ ], - #parent : @22, - #level : 3 - }, - GrafoscopioNode { - #header : 'Lección 9: Arreglos:', - #headers : OrderedCollection [ ], - #key : '', - #body : 'Pharo', - #tags : 'código', - #children : OrderedCollection [ ], - #parent : @22, - #level : 3 - }, - GrafoscopioNode { - #header : 'Lección 10: Arreglos dinámicos', - #headers : OrderedCollection [ ], - #key : '', - #body : '\"Los arreglos dinámicos son creados durante el tiempo de ejecución, es decir que podemos -guardar en ellos cálculos que luego se ejecutarán y determinarán lo que en ellos se guarda\" - -{ (2+3).(6*6) }. - -\"Comparemos este arreglo estático\" - -#( (2+3) (6+6) \'hello\' , \'Stef\') size. - -\"con este arreglo dinámico:\" - -{ (2+3) . (6+6) . \'hello\' , \'Stef\' } size. - -\"Ahora ve a la siguiente lección\" -', - #tags : 'código', - #children : OrderedCollection [ ], - #parent : @22, - #level : 3 - } - ], - #parent : @8, - #level : 2 - }, - GrafoscopioNode { - #header : 'Mensajes', - #key : '', - #body : '', - #children : OrderedCollection [ - GrafoscopioNode { - #header : 'Lección 11: Unarios', - #headers : OrderedCollection [ ], - #key : '', - #body : '\"Los mensajes son enviados a objetos. -Hay tres tipos de mensajes: unary (unarios), binary (binary) y keyword. - -Los mensajes unarios tienen la forma siguiente. - -anObject aMessage - -Tu ya has enviado mensajes unarios. Por ejemplo:\" - -1 class. -#b class. - -$b class. - -true not. - -false not. - -Time now. - -Date today. - -Date yesterday. - -Date tomorrow. - -Float pi. - -\"Ahora ve a la siguiente lección\" -', - #tags : 'código', - #children : OrderedCollection [ ], - #parent : @40, - #level : 3 - }, - GrafoscopioNode { - #header : 'Lección 12: Binarios', - #headers : OrderedCollection [ ], - #key : '', - #body : '\"Los mensajes binarios tienen la forma siguiente: -anObjecto aMessage anotherObject\" - -3 + 2. - -25 * 25. - -1 + 1 = 2. - -Date today + 3 weeks. - -Date today + 3 years. - -Date today - 3 years. - -false | false. - - -true | false. - - -true | true. - -false | true. - - -true & true. - -true & false. - -10 @ 100. - -10 <= 12. - - -10 >= 12. - -\'ab\', \'cd\'. - -Date today < Date yesterday. -Date today > Date yesterday. - -\"Ahora ve a la siguiente lección\"', - #tags : 'código', - #children : OrderedCollection [ ], - #parent : @40, - #level : 3 - }, - GrafoscopioNode { - #header : 'Lección 13: keywords', - #key : '', - #body : '\"Los mensajes \'keyword\' son mensajes con argumentos. Tienen la siguiente forma: - anObject akey: anotherObject akey2: anotherObject2\" - - -4 between: 0 and: 5. - -\"El mensaje lo que nos dice es: si (4) esta entre (0 y 10) cuya respuesta es verdadero, pero si cambio el valor del 0 por 3, el resultado es falso\" - -1 max: 3. - -\"determina el valor máximo\" - -Color r:1 g:0 b:0. - -\"El mensaje es r:g:b: implementado en la clase Color. Note que también puede escribir\" - -Color -\tr: 15 -\tg: 99 -\tb: 100. - -\t -\"Si quieres usar código RGB usando valores de 0 a 255, como es la práctica usual, deberás -escribirlos como cociente, de forma que sean un número entre 0 y 1. -Por ejemplo r: x/255 g: y/255 b: z/255, donde x,y,z son los valores entre 0 y 255 correspondientes al código que color que queremos obtener.\" -\t -\"Ahora ve a la siguiente lección\"', - #tags : 'código', - #children : OrderedCollection [ ], - #parent : @40, - #level : 3 - }, - GrafoscopioNode { - #header : 'Lección 14: Prioridad', - #key : '', - #body : '\"los mensajes unarios son ejectuados primero, los mensajes binarios son ejecutados despues -y finalmente las cadenas de mensajes: paréntesis > Unary > Binary > Keywords\" - -2 + 3 raisedTo: 2. - -2 + 3 + 4. - - -2 raisedTo: (3 + 2). - -(0@0) class. - -0@0 corner: 100@200. - -(0@0 corner: 100@200) class. - -\"entre mensajes de procedencia similar, las expresiones son ejectuadas de izquierda a derecha\" - --3 abs negated reciprocal. - -\"Ahora ve a la siguiente lección\"', - #tags : 'código', - #children : OrderedCollection [ ], - #parent : @40, - #level : 3 - }, - GrafoscopioNode { - #header : 'Lección 15: Cambiar prioridad de los mensajes', - #key : '', - #body : '\"usar parentesis cambia el orden de evaluación de la sentencia, primero se ejecuta la parte interna() -y posteriormente la sentencia\" - -(2 + 3) squared. - -(2 raisedTo: 3) + 2. - -(0@0 extent: 100@200) bottomRight. - -\"Ahora ve a la siguiente lección\"', - #tags : 'código', - #children : OrderedCollection [ ], - #parent : @40, - #level : 3 - }, - GrafoscopioNode { - #header : 'Lección 16: Prioridad de los mensajes matemáticos', - #key : '', - #body : '\"Las reglas tradicionales de las matematicas NO aplican dentro de Pharo.\" - -2 * 10 + 2. - -\"aqui el mensaje por (*) es enviado a dos, corresponde a 20, entonces 20 reciben el mensaje +, - -recuerde que todos los mensajes simpre siguen una regla precente de izquierda a derecha, sin excepciones.\" - -2 + 2 * 10. - -2 + (2 * 10). - -(2 * 10) + 2. - -8 - 5 / 2. - -(8 - 5) / 2. - -8-(5/2). - -\"Ahora ve a la siguiente lección\"', - #tags : 'código', - #children : OrderedCollection [ ], - #parent : @40, - #level : 3 - }, - GrafoscopioNode { - #header : 'Lección 17: Mensajes en cascada', - #key : '', - #body : '\"; es un operador en cascada. Es usado para enviar mensajes al mismo receptor -Abrir un Transcript (consola):\" - -Transcript open. - -\"Entonces:\" - -Transcript show: \'hola\'. -Transcript cr. -Transcript show: \'Pharo\'. - - -\"Es igual a:\" - -Transcript -\t show: \'hello\'; -\t cr; -\t show: \'Pharo\'. - -\"Intenta ir a la siguiente leccion con un cascada de dos mensjaes \'siguiente\'\" - -\"Ahora ve a la siguiente lección\"', - #tags : 'código', - #children : OrderedCollection [ ], - #parent : @40, - #level : 3 - }, - GrafoscopioNode { - #header : 'Lección 18: Perdido?', - #key : '', - #body : '\"Esta era una lección que venía en el viejo tutorial. Fue mantenida para -preservar la numeración. No es necesario hacer nada\" - -\"Ahora ve a la siguiente lección\"', - #tags : 'código', - #children : OrderedCollection [ ], - #parent : @40, - #level : 3 - } - ], - #parent : @8, - #level : 2 - }, - GrafoscopioNode { - #header : 'Lección 19: Bloques', - #key : '', - #body : '\"Los mensajes en cascada son chéveres. Ahora hablemos de los bloques. -Los bloques son métodos anónimos que pueden ser almacenados en variables y ejecutados por demanda. - -Los bloques están delimitados por paréntesis cuadrados: []\" - -[Nautilus open]. - -\"No abre un Nautilus porque el bloque no es ejecutado. - -Acá hay otro bloque que suma 2 a su argumento (su argumento se llama x):\" - -[:x | x+2]. - -\"Podemos ejecutar un bloque enviandole mensajes \'value\' \" -[:x | x+2] value: 5. - -[Nautilus open] value. - -[:x | x+2] value: 10. - -[:x :y | x - y] value:3 value:5. - -\"Ahora ve a la siguiente lección\"', - #tags : 'código', - #children : OrderedCollection [ ], - #parent : @8, - #level : 2 - }, - GrafoscopioNode { - #header : 'Lección 20: Asignación de Bloques', - #key : '', - #body : '\"Los bloques pueden ser asignados a variables y ejecutados después. - -Note que |b| es la declaración de una variable llamada \'b\' y que \':=\' asigna un valor a una variable. - -Selecciona las siguientes tres líneas e imprimelas (Print it)\" - -| b | - -[:x | x+2] value: 20. - - -b := [:x | x+2]. - - -b value: 20. - - -\"Ahora ve a la siguiente lección\"', - #tags : 'código', - #children : OrderedCollection [ ], - #parent : @8, - #level : 2 - }, - GrafoscopioNode { - #header : 'Lección 21: Condicionales', - #key : '', - #body : '\"Los condicionales son sólo menajes enviados a objetos Boolean (booleanos)\" - -1 < 2 - ifTrue: [Transcript show: \'Es cierto\'] - ifFalse: [Transcript show: \'Es falso\']. - -\"Aquí el mensajes es ifTrue:ifFalse - -Prueba esto:\" - -Transcript open. - -3 > 10 -\tifTrue: [Transcript show: \'Quizás hay un error ....\'] -\tifFalse: [Transcript show: \'No: 3 es menor que 10\']. - -3=3 ifTrue: [ProfStef openPharoZenWorkspace]. - -\"Ahora ve a la siguiente lección\"', - #tags : 'código', - #children : OrderedCollection [ ], - #parent : @8, - #level : 2 - }, - GrafoscopioNode { - #header : 'Lección22: Ciclos e Iteradores', - #key : '', - #body : '\"Los ciclos con iteradores de alto nivel sobre las colecciones, implementados como métodos regulares.\" - -\"Ciclos básicos: - to: do: - to:by:do\" - -1 to: 10. - -1 to: 15 do: - [:i | Transcript show: i*2 + x \"asString\"; cr ]. - -1 to: 20 by: 3 do: [:i | Transcript show: i asString; cr]. - -30 to: 0 by: -2 do: - [:i | Transcript show: i asString; cr]. - -\"Ahora ve a la siguiente lección\"', - #tags : 'código', - #children : OrderedCollection [ - GrafoscopioNode { - #header : '¿Qué hacer cuando necesito tanto el índice como el objeto?', - #key : '', - #body : '\"doWithIndex permite trabajar con los objetos y con su índice, es decir tener bloques -que reciben dos argumentos\" -| Colors | - -Colors := OrderedCollection new. -Colors -\tadd:(Color r: 1 g: 0 b: 0); -\tadd:(Color r: 0 g: 1 b: 0); -\tyourself. -Colors doWithIndex: [ :color :i | Transcript show: \'El color número \', i asString, \' es: \', color name asString; cr ] -', - #tags : 'código', - #children : OrderedCollection [ ], - #parent : @66, - #level : 3 - } - ], - #parent : @8, - #level : 2 - }, - GrafoscopioNode { - #header : 'Lección 23: Colecciones', - #key : '', - #body : '\"El mensaje do: es enviado a una colección de objetos (Array, Set, OrderedCollection), -evaluando el bloque para cada elemento. - -Acá queremos imprimir todos los números sobre el Transcript (una consola)\" - -| miColeccion | - -#(11 38 3 -2 10) do: [:each | - Transcript show: each*2; cr]. - -\"Some other really nice iterators\" - -miColeccion := #(11 38 3 -2 10) collect: [:each | each abs]. - -#(11 38 3 -2 10) collect: [:each | each odd]. - -#(11 38 3 -2 10) select: [:each | each odd]. - -#(11 38 3 -2 10) select: [:each | each >= 10]. - -#(11 38 3 -2 10) reject: [:each | each > 10]. - -#(11 38 3 -2 10) - do: [:each | Transcript show: each printString] - separatedBy: [Transcript show: \'.\']. - - -\"Ahora ve a la siguiente lección\"', - #tags : 'código', - #children : OrderedCollection [ ], - #parent : @8, - #level : 2 - }, - GrafoscopioNode { - #header : 'Opcional', - #key : '', - #body : 'Las siguientes lecciones son algo más avanzadas y referidas a elementos de interfaces gráficas -(botones, morphs) y cambios en caliente en los métodos de Smalltalk. -Si bien son importantes, las exploraremos con detalle en otros lugares, así que puedes -pasar a la lección 28 de este tutorial y luego ir a otros nodos como los de -código elegante en Pharo y otros ejemplos minimalistas para terminar en los distintos -proyectos del nodo titulado \"Visualización de datos\".', - #children : OrderedCollection [ - GrafoscopioNode { - #header : 'Lección24', - #key : '', - #body : '\"Los objetos son instancias de sus clases. Usualmente, enviamos el mensaje #new a una clase -para crear una instancia de esta clase. - -El mensaje #allInstances enviado a una clase, responde un arreglo con todas las instancias de esta clase. - -Por ejemplo, miremos cuántas instancias de SimpleButtonMorph existen, imprimiendo la siguiente línea:\" - -SimpleButtonMorph allInstances size. - -\"Ahora creemos una nueva instancia de él\" - -SimpleButtonMorph new -\tlabel: \'Un agradable botón\'; -\topenCenteredInWorld. - -\"Ves el botón centrado en el mundo? La lista de todas las instancias debería contener una instancia más:\" - -SimpleButtonMorph allInstances size. - -\"Juguemos con él:\" - -SimpleButtonMorph allInstances last -\tlabel: \'El Tutorial de Pharo es cheeevere !\'; -\tcolor: Color cyan. -\t -\"Borrémosla y pidámosle al sistema limpiar la memoria:\" - -SimpleButtonMorph allInstances last delete. -Smalltalk garbageCollect. -SimpleButtonMorph allInstances size. - -\"Haz click sobre el botón para ir a la siguiente lección:\" - -SimpleButtonMorph new -\tlabel: \'Go to next lesson\'; -\ttarget: [ProfStef next. -\t\t\tSimpleButtonMorph allInstances last delete]; -\tactionSelector: #value; -\topenCenteredInWorld. -\t -\"Ahora ve a la siguiente lección\"', - #tags : 'código', - #children : OrderedCollection [ ], - #parent : @72, - #level : 3 - }, - GrafoscopioNode { - #header : 'Lección 25', - #key : '', - #body : '\"Puedes inspeccionar y cambiar el sistema en tiempo de ejecución. - -Mira el código fuente del método #ifFalse:ifTrue: de la clase True:\" - -(True>>#ifFalse:ifTrue:) definition. - -\"O sólo su comentario:\" - -(True>>#ifFalse:ifTrue:) comment. - -\"Acá están todos los métodos que implementa el ProfStef, base de este notebook:\" - -ProfStef selectors. - -\"Creemos un nuevo método para ir a la siguiente lección:\" - -ProfStef class compile:\'goToNextLesson - self next\'. - -\"Wow! No puedo esperar a usar mi nuevo método!\" - -\"Ahora ve a la siguiente lección\"', - #tags : 'código', - #children : OrderedCollection [ ], - #parent : @72, - #level : 3 - }, - GrafoscopioNode { - #header : 'Lección 26', - #key : '', - #body : '\"Tan chévere, ¿no? Antes de ir más allá, removamos este método:\" - -ProfStef respondsTo: #goToNextLesson. - -ProfStef class removeSelector: #goToNextLesson. - -ProfStef respondsTo: #goToNextLesson. - -\"Ahora mover hacia adelante\" - -\"Ahora ve a la siguiente lección\"', - #tags : 'código', - #children : OrderedCollection [ ], - #parent : @72, - #level : 3 - }, - GrafoscopioNode { - #header : 'Lección 27', - #key : '', - #body : '\"Pharo is full of objects. There are windows, text, numbers, dates, colors, points and much more. You can interact with objects in a much more direct way than is possible with other programming languages. - -Every object understands the message \'explore\'. As a result, you get an Explorer window that shows details about the object.\" - -Date today explore. - -\"This shows that the date object consists of a point in time (start) and a duration (one day long).\" - -PharoTutorial explore. - -\"You see, PharoTutorial class has a lot of objects. Let\'s take a look at my code:\" - -PharoTutorial browse. - -\"Ahora ve a la siguiente lección\"', - #tags : 'código', - #children : OrderedCollection [ ], - #parent : @72, - #level : 3 - } - ], - #parent : @8, - #level : 2 - }, - GrafoscopioNode { - #header : 'Lección 28', - #key : '', - #body : '\"The Debugger may be the most famous tool of Smalltalk environments. It will open as soon as an unmanaged Exception occurs. - -The following code will open the debugger on the message stack, select PharoSyntaxTutorial>>divideTwoByZero\". - -PharoSyntaxTutorial new divideTwoByZero. - -\"Ahora ve a la siguiente lección\"', - #tags : 'código', - #children : OrderedCollection [ ], - #parent : @8, - #level : 2 - } - ], - #parent : @4, - #level : 1 - }, - @11, - @14, - @17, - @20, - @22, - @24, - @26, - @28, - @31, - @34, - @37, - @40, - @42, - @45, - @48, - @50, - @52, - @54, - @56, - @58, - @60, - @62, - @64, - @66, - @68, - @70, - @72, - @74, - @76, - @78, - @80, - @82, - GrafoscopioNode { - #header : 'Intermedio: Scripting', - #key : '', - #body : '', - #children : OrderedCollection [ - GrafoscopioNode { - #header : '\"one liners\"', - #key : '', - #body : 'Estos scripts de una sóla línea (o \"casi una\" :-P) que fueron tomados de -[elegant pharo code](https://medium.com/concerning-pharo/elegant-pharo-code-bb590f0856d0#.6kmkvmvre). -Recomendamos que le des una mirada esta excelente entrada de blog com más detalles e -ir completando los ejemplos que iniciamos acá.', - #children : OrderedCollection [ - GrafoscopioNode { - #header : 'Get the HTML source of a web page', - #key : '', - #body : '\'http://www.pharo.org\' asUrl retrieveContents -', - #tags : 'código', - #children : OrderedCollection [ ], - #parent : @86, - #level : 3 - }, - GrafoscopioNode { - #header : 'Compute difference in days between two dates', - #key : '', - #body : '(\'2014-07-01\' asDate - \'2013/2/1\' asDate) days', - #tags : 'código', - #children : OrderedCollection [ ], - #parent : @86, - #level : 3 - }, - GrafoscopioNode { - #header : 'Decimal digit length of 42!', - #key : '', - #body : '42 factorial decimalDigitLength', - #tags : 'código', - #children : OrderedCollection [ ], - #parent : @86, - #level : 3 - }, - GrafoscopioNode { - #header : 'Set up an HTTP server that returns the current timestamp', - #key : '', - #body : '(ZnServer startDefaultOn: 8080) - onRequestRespond: [ :request | - ZnResponse ok: (ZnEntity with: DateAndTime now printString) ]', - #tags : 'código', - #children : OrderedCollection [ ], - #parent : @86, - #level : 3 - }, - GrafoscopioNode { - #header : 'Split a string on dashes, reverse the order of the elements and join them using slashes', - #key : '', - #body : '| email url | -email := \'gpmeneses@gmail.com\'. -url := \'http://www.gravatar.com/avatar/\', (MD5 hashMessage: email trimBoth asLowercase) hex, \'.jpg\'. -(ZnEasy getJpeg: url) asMorph openInWindow -', - #tags : 'código', - #children : OrderedCollection [ ], - #parent : @86, - #level : 3 - }, - GrafoscopioNode { - #header : 'Convert all JPG files in the current directory to PNG format', - #key : '', - #body : '(FileLocator workingDirectory filesMatching: \'*.jpg\') do: [ :each | - (each withExtension: \'png\') writeStreamDo: [ :out | - each readStreamDo: [ :in | - (PNGReadWriter on: out) nextPutImage: - (JPEGReadWriter on: in) nextImage ] ] ]', - #tags : 'código', - #children : OrderedCollection [ ], - #parent : @86, - #level : 3 - }, - GrafoscopioNode { - #header : 'Sum of the primes up to 64', - #key : '', - #body : '(Integer primesUpTo: 64) sum', - #tags : 'código', - #children : OrderedCollection [ ], - #parent : @86, - #level : 3 - } - ], - #parent : @84, - #level : 2 - }, - GrafoscopioNode { - #header : '\"Few liners\" ;-)', - #key : '', - #body : 'Estos son otros scripts interesantes que fueron tomados de ejemplos de la comunidad. -Los créditos al autor original están colocados en los comentarios de cada script.', - #children : OrderedCollection [ - GrafoscopioNode { - #header : 'Composición y escalado de morphs (elementos gráficos)', - #key : '', - #body : '\"Este script toma una image grande, la coloca como fondo y coloca dos morphs simples, un -círculo y un rectángulo escalados sobre ella. Puede tardar un poco en ejecutarse\" -| window pane board background scaler| - -background := AlphaImageMorph withForm: -\t(ZnEasy getJpeg: \'http://i.imgur.com/K1QR9vA.jpg\'). -background lock. - -board := PasteUpMorph new. -board -color: Color gray; -borderWidth: 3; -borderColor: Color black; -extent: 2000@2000; -backgroundMorph: background; -addMorph: (CircleMorph new color: Color cyan; position: 41@23; yourself); -addMorph: (Morph new color: Color orange; position: 1200@1200; yourself). - -scaler := TransformMorph new. -scaler extent: 1000@1000. -scaler scale: 0.5@0.5. -scaler addMorph: board. - -pane := ScrollPane new. -pane scroller addMorph: scaler. - -window := pane openInWindow. -window position: 20@20; extent: 420@420. -', - #tags : 'código', - #children : OrderedCollection [ ], - #parent : @102, - #level : 3 - }, - GrafoscopioNode { - #header : 'Traer un avatar asociado a un correo electrónico', - #key : '', - #body : '| email url | -email := \'gpmeneses@gmail.com\'. -url := \'http://www.gravatar.com/avatar/\', (MD5 hashMessage: email trimBoth asLowercase) hex, \'.jpg\'. -(ZnEasy getJpeg: url) asMorph openInWindow -', - #tags : 'código', - #children : OrderedCollection [ ], - #parent : @102, - #level : 3 - }, - GrafoscopioNode { - #header : 'Graficar un AST (árbol de sintaxis abstracta)', - #key : '', - #body : '| ast builder | -ast := RBParser parseExpression: \'self foo. super foo\'. - builder := RTMondrian new. - builder shape ellipse size: 15. - builder nodes: ast allChildren. - builder edges connectFrom: #parent. - builder layout tree. - builder', - #tags : 'código', - #children : OrderedCollection [ ], - #parent : @102, - #level : 3 - }, - GrafoscopioNode { - #header : 'OSM: Consultar Nominatim', - #key : '', - #body : '\"Thanks to Henrik Nergard\" -\"Nominatim es un motor de búsqueda para OpenStreetMap. -Para mayor información sobre este consultar: - -http://nominatim.openstreetmap.org/ - -Este pequeño script extrae resultados de Nominatim -\" - -| baseURL query settings result entries | - -query := UIManager default request: \'Find location for\' . - -baseURL := \'http://nominatim.openstreetmap.org/search/\'. -settings := \'?format=jsonv2&limit=10\'. - -result := MCFileTreeJsonParser parse: (baseURL , query asString, settings) asZnUrl retrieveContents. - -(result collect: [ :dct | -\t(dct at: \'display_name\') -> -\t\t((dct at: \'lat\') asNumber @ (dct at: \'lon\') asNumber) -]) inspect .', - #tags : 'código', - #children : OrderedCollection [ ], - #parent : @102, - #level : 3 - }, - GrafoscopioNode { - #header : 'Lista de las capitales del mundo', - #key : '', - #body : '\"Thanks to Hernán Morales Durand\" -((NeoJSONReader fromString: ( - ZnEasy - get: \'http://api.geonames.org/countryInfoJSON\' - username: \'demo\' - password: \'\') contents) at: #geonames) collect: [ : d | d at: #capital ]', - #tags : 'código', - #children : OrderedCollection [ ], - #parent : @102, - #level : 3 - }, - GrafoscopioNode { - #header : 'Jugando un poco con Internet Movie Database', - #key : '', - #body : '', - #children : OrderedCollection [ - GrafoscopioNode { - #header : 'Afiche de tu película favorita', - #key : '', - #body : '', - #children : OrderedCollection [ - GrafoscopioNode { - #header : 'Ejemplos', - #key : '', - #body : '', - #tags : '', - #children : OrderedCollection [ - GrafoscopioNode { - #header : 'Blade Runner', - #key : '', - #body : '(ZnEasy getJpeg: ((NeoJSONReader fromString: - (ZnClient new - url: \'http://www.omdbapi.com/\'; - queryAt: \'t\' put: \'Blade Runner\'; - get; - contents)) at: #Poster)) -', - #tags : 'código', - #children : OrderedCollection [ ], - #parent : @118, - #level : 5 - }, - GrafoscopioNode { - #header : 'Back to the future', - #key : '', - #body : '(ZnEasy getJpeg: ((NeoJSONReader fromString: - (ZnClient new - url: \'http://www.omdbapi.com/\'; - queryAt: \'t\' put: \'Back to the future\'; - get; - contents)) at: #Poster)) -', - #tags : 'código', - #children : OrderedCollection [ ], - #parent : @118, - #level : 5 - }, - GrafoscopioNode { - #header : 'Ghost in the Shell', - #key : '', - #body : '(ZnEasy getJpeg: ((NeoJSONReader fromString: - (ZnClient new - url: \'http://www.omdbapi.com/\'; - queryAt: \'t\' put: \'ghost in the shell\'; - get; - contents)) at: #Poster)) -', - #tags : 'código', - #children : OrderedCollection [ ], - #parent : @118, - #level : 5 - }, - GrafoscopioNode { - #header : 'Good will hunting', - #key : '', - #body : '(ZnEasy getJpeg: ((NeoJSONReader fromString: - (ZnClient new - url: \'http://www.omdbapi.com/\'; - queryAt: \'t\' put: \'Good will hunting\'; - get; - contents)) at: #Poster)) -', - #tags : 'código', - #children : OrderedCollection [ ], - #parent : @118, - #level : 5 - } - ], - #parent : @116, - #level : 5 - }, - GrafoscopioNode { - #header : 'Deconstruyendo el ejemplo', - #key : '', - #body : '', - #children : OrderedCollection [ - GrafoscopioNode { - #header : 'Película con variable', - #key : '', - #body : '| aTitle | - -aTitle := \'Fight club\'. - -(ZnEasy getJpeg: ((NeoJSONReader fromString: - (ZnClient new - url: \'http://www.omdbapi.com/\'; - queryAt: \'t\' put: aTitle; - get; - contents)) at: #Poster)) -', - #tags : 'código', - #children : OrderedCollection [ ], - #parent : @128, - #level : 6 - }, - GrafoscopioNode { - #header : 'Con bloques para contenidos traer el JSON)', - #key : '', - #body : '| getJSONString | - -getJSONString := [ :aTitle | ZnClient new - url: \'http://www.omdbapi.com/\'; - queryAt: \'t\' put: aTitle; - get; - contents]. - -getJSONString value: \'Fight club\'. - -(ZnEasy getJpeg: ((NeoJSONReader fromString: - (getJSONString value: \'Fight club\')) at: #Poster)) -', - #tags : 'código', - #children : OrderedCollection [ ], - #parent : @128, - #level : 6 - }, - GrafoscopioNode { - #header : 'Usando dos bloques', - #key : '', - #body : '| getJSONString movieInfoFromJSONString jsonDataString | - -getJSONString := [ :aTitle | ZnClient new - url: \'http://www.omdbapi.com/\'; - queryAt: \'t\' put: aTitle; - get; - contents]. - -jsonDataString := getJSONString value: \'Fight club\'. - -movieInfoFromJSONString := [ :aJSONString | NeoJSONReader fromString: aJSONString]. - - -ZnEasy getJpeg:((movieInfoFromJSONString value: jsonDataString) at: #Poster) -', - #tags : 'código', - #children : OrderedCollection [ ], - #parent : @128, - #level : 6 - }, - GrafoscopioNode { - #header : 'Con llaves para diferentes atributos de la peli', - #key : '', - #body : '| getJSONString movieInfoFromJSONString jsonDataString movieInfoForKey getPoster | - -getJSONString := [ :aTitle | ZnClient new - url: \'http://www.omdbapi.com/\'; - queryAt: \'t\' put: aTitle; - get; - contents]. - -jsonDataString := getJSONString value: \'E.T.\'. -movieInfoFromJSONString := [ :aJSONString | NeoJSONReader fromString: aJSONString]. -movieInfoForKey := [ :aKey | (movieInfoFromJSONString value: jsonDataString) at: aKey ]. -movieInfoForKey value: #Actors. -getPoster := [:key | ZnEasy getJpeg:(movieInfoForKey value: key)] value: #Poster -', - #tags : 'código', - #children : OrderedCollection [ ], - #parent : @128, - #level : 6 - } - ], - #parent : @116, - #level : 5 - } - ], - #parent : @114, - #level : 4 - } - ], - #parent : @102, - #level : 3 - } - ], - #parent : @84, - #level : 2 - } - ], - #parent : @4, - #level : 1 - }, - @86, - @88, - @90, - @92, - @94, - @96, - @98, - @100, - @102, - @104, - @106, - @108, - @110, - @112, - @114, - @116, - @118, - @120, - @122, - @124, - @126, - @128, - @130, - @132, - @134, - @136, - GrafoscopioNode { - #header : 'CInemania: Creando el primer paquete', - #key : '', - #body : 'Acá tomaremos el ejemplo anterior de Open Movie Data Base y lo convertiremos en una aplicación. -Esto nos permitirá entender la lógica con la que eso se hace y \"leer\" la forma en que otras aplicaciones -están hechas.', - #children : OrderedCollection [ - GrafoscopioNode { - #header : 'Los de Offray', - #key : '', - #body : '', - #children : OrderedCollection [ - GrafoscopioNode { - #header : 'Crear un nuevo paquete', - #key : '', - #body : '\"Esta es la ventana que nos pide el nombre de un paquete que estamos agregando al sistema\" -ZnEasy getPng: \'http://mutabit.com/repos.fossil/grafoscopio/doc/tip/Docs/Es/Tutoriales/Cinemania/create-new-package.png\'', - #tags : 'código', - #children : OrderedCollection [ ], - #parent : @140, - #level : 3 - }, - GrafoscopioNode { - #header : 'Paquete recien creado', - #key : '', - #body : '\"Una vez hallamos creado el paquete cinemanía veremos lo siguiente:\" - -ZnEasy getPng: \'http://mutabit.com/repos.fossil/grafoscopio/doc/tip/Docs/Es/Tutoriales/Cinemania/new-package-created.png\' - -\"Este es el paquete vacio, aún sin ningún objeto en particular\"', - #tags : 'código', - #children : OrderedCollection [ ], - #parent : @140, - #level : 3 - }, - GrafoscopioNode { - #header : 'Comentarios de una clase: por llenar', - #key : '', - #body : '\"Recien se crea una clase, aparece un símbolo de admiración al lado izquierdo -de su nombre. Si hacemos click en el botón \'Comments\' podremos indicar el propósito de dicha -clase, como se muestra en la siguiente pantalla\" -ZnEasy getPng: \'http://mutabit.com/repos.fossil/grafoscopio/doc/tip/Docs/Es/Tutoriales/Cinemania/add-comments.png\'', - #tags : 'código', - #children : OrderedCollection [ ], - #parent : @140, - #level : 3 - }, - GrafoscopioNode { - #header : 'Comentarios de una clase: llenándolos (dirty)', - #key : '', - #body : '\"Reemplazamos la plantilla de comentarios que se nos da por omisión, por alguna descripción de lo que hace el paquete. -Veremos que la esquina superior derecha está resaltada, lo que indica que el comentario aún no se ha salvado, -como muestra esta pantalla\" - -ZnEasy getPng: \'http://mutabit.com/repos.fossil/grafoscopio/doc/tip/Docs/Es/Tutoriales/Cinemania/add-comments-filled.png\' - -\"y luego salvamos usando Comand S (Mac), Ctrl S (Windows, Gnu/Linux) o el menú\"', - #tags : 'código', - #children : OrderedCollection [ ], - #parent : @140, - #level : 3 - } - ], - #parent : @138, - #level : 2 - } - ], - #parent : @4, - #level : 1 - }, - @140, - @142, - @144, - @146, - @148, - GrafoscopioNode { - #header : 'Borradores', - #key : '', - #body : 'Acá encontrarás código que aún no está tan maduro como el que has visto hasta el momento. -Son algunos apuntes de diferentes prototipos que están avanzando y algún código que no continuo. -Pharo es un entorno dinámico que mejora continuamente. -Al darte una mirada de estos borradores puedes ver parte del proceso de construcción del cierto -código y vincularte al proceso. - -Futuras versiones de este cuaderno interactivo, tendrán ediciones más maduras y robustas del -código.', - #children : OrderedCollection [ - GrafoscopioNode { - #header : 'Visualización de datos', - #key : '', - #body : 'Acá están recopilados algunos ejemplos que hemos hecho con data scrapping (raspado de datos)', - #children : OrderedCollection [ - GrafoscopioNode { - #header : 'Twitter', - #key : '', - #body : '', - #children : OrderedCollection [ - GrafoscopioNode { - #header : 'Usando algunos scrappers predefinidos', - #key : '', - #body : '', - #children : OrderedCollection [ - GrafoscopioNode { - #header : 'Ejemplo 1: Un perfil', - #key : '', - #body : '', - #tags : 'código', - #children : OrderedCollection [ ], - #parent : @156, - #level : 4 - }, - GrafoscopioNode { - #header : 'Ejemplo 2: Dos perfiles', - #key : '', - #body : '| perfil1 perfil2 perfiles | - -perfil1 := TwitterProfile new. -perfil2 := TwitterProfile new. - -\"Vmmos a crear un nuevo perfil\" -perfil1 scrapDataForProfile: \'PetroGustavo\'. -perfil2 scrapDataForProfile: \'JuanManSantos\'. - -perfiles := OrderedCollection new. -perfiles -\tadd: perfil1; -\tadd: perfil2. -perfiles.', - #tags : 'código', - #children : OrderedCollection [ ], - #parent : @156, - #level : 4 - }, - GrafoscopioNode { - #header : 'Ejemplo 3: Varios perfiles', - #key : '', - #body : '| perfil perfiles misPoliticos | - -misPoliticos := #(\'PetroGustavo\' \"Alcalde de Bogotá\" -\t\t\t\t\t\t\'JuanManSantos\' \"Presidente de Colombia\" -\t\t\t\t\t\t\'ginaparody\' \"Ministra de educación de Colombia\" -\t\t\t\t\t\t\'CFKArgentina\' \"Presidenta de Argentina\"). - -perfiles := OrderedCollection new. - -misPoliticos do: [:politico | -\t \tperfil := TwitterProfile new. -\t\tperfil scrapDataForProfile: politico. -\t\tperfiles add: perfil.]. -perfiles.', - #tags : 'código', - #children : OrderedCollection [ ], - #parent : @156, - #level : 4 - } - ], - #parent : @154, - #level : 3 - }, - GrafoscopioNode { - #header : 'Deconstruyendo un scrapper.', - #key : '', - #body : '', - #children : OrderedCollection [ - GrafoscopioNode { - #header : 'Traerse el html', - #key : '', - #body : '\t| client anUrl aProfileName | -\taProfileName := \'dominemosLasTIC\'. -\tanUrl := \'https://twitter.com/\', aProfileName. -\tclient := ZnClient new. -\tclient get: anUrl.', - #tags : 'código', - #children : OrderedCollection [ ], - #parent : @164, - #level : 4 - }, - GrafoscopioNode { - #header : 'Encontrar algo dentro del html', - #key : '', - #body : '\t| client anUrl aProfileName | -\taProfileName := \'dominemosLasTIC\'. -\tanUrl := \'https://twitter.com/\', aProfileName. -\tclient := ZnClient new. -\tclient get: anUrl.', - #tags : 'código', - #children : OrderedCollection [ ], - #parent : @164, - #level : 4 - } - ], - #parent : @154, - #level : 3 - } - ], - #parent : @152, - #level : 2 - }, - GrafoscopioNode { - #header : 'Contratos públicos', - #key : '', - #body : '', - #children : OrderedCollection [ - GrafoscopioNode { - #header : 'Visualización Guía: Treemapping', - #key : '', - #body : 'Para mirar cómo se han realizado los gastos presupuestales, usaremos como visualización guía una que es producida por -la técnica de *treemapping* y que permite explorar cómo una jerarquía está compuesta por partes disyuntas que la conforman -(como en el caso de la división de presupuestos). -Para mayor información sobre dicha técnica véase la -[página de la wikipedia sobre treemapping](https://en.wikipedia.org/wiki/Treemapping)', - #children : OrderedCollection [ - GrafoscopioNode { - #header : 'Ejemplo 1', - #key : '', - #body : '\t| b | -\tb := RTTreeMapBuilder new. -\tb shape fillColor: Color veryLightGray. -\t -\tb from: (1 to: 17) using: [#()]. -\tb weight: #yourself. -\tb build. -\t^ b view', - #tags : 'código', - #children : OrderedCollection [ ], - #parent : @172, - #level : 4 - }, - GrafoscopioNode { - #header : 'Ejemplo 2', - #key : '', - #body : 'RTTreeMapExample new exampleNumber', - #tags : 'código', - #children : OrderedCollection [ ], - #parent : @172, - #level : 4 - }, - GrafoscopioNode { - #header : 'Integrando datos a la visualización', - #key : '', - #body : '| aFile aCharacter table b | - -aFile := (FileLocator documents / \'DataWeek\' / \'query-subtotales-por-segmentos.csv\') asFileReference. -aCharacter := $,. -table := RTTabTable new input: aFile contents usingDelimiter: aCharacter. -table valuesOfColumn: 2. - -\tb := RTTreeMapBuilder new. -\tb shape fillColor: Color veryLightGray. -\tb from: (2 to: table numberOfRows) using: [#()]. -\tb weight: [:n | (table valuesOfColumn: 2) at: n ]. -\tb build. -\tb view. -table values', - #tags : 'código', - #children : OrderedCollection [ ], - #parent : @172, - #level : 4 - }, - GrafoscopioNode { - #header : 'Probando OpenSpending', - #key : '', - #body : '| contratos archivo | - -archivo := (FileLocator documents / \'DataWeek\' / \'query-subtotales-por-segmentos.csv\') asFileReference. -contratos := OpenSpending new. -contratos loadDataFromCSV: archivo usingDelimiter: $,. -contratos', - #tags : 'código', - #children : OrderedCollection [ ], - #parent : @172, - #level : 4 - }, - GrafoscopioNode { - #header : 'Treemap con etiquetas', - #key : '', - #body : '', - #children : OrderedCollection [ - GrafoscopioNode { - #header : 'Primera versión', - #key : '', - #body : '| b labels popup | -\tlabels := RTLabel elementsOn: #(\'uno\' \'dos\' \'tres\' \'cuatro\' \'cinco\'). -\tpopup := RTPopup new. -\tpopup text: [:object | labels at: object ]. -\tb := RTTreeMapBuilder new. -\tb shape fillColor: Color random. -\tb from: (1 to: 5) using: [#()]. -\tb weight: [:n | n]. -\tb build. -\tb view elements @ RTLabelled. -\t^ b view.', - #tags : 'código', - #children : OrderedCollection [ ], - #parent : @182, - #level : 5 - }, - GrafoscopioNode { - #header : 'Entendiendo popups dinámicos', - #key : '', - #body : '', - #tags : 'código', - #children : OrderedCollection [ ], - #parent : @182, - #level : 5 - } - ], - #parent : @172, - #level : 4 - } - ], - #parent : @170, - #level : 3 - } - ], - #parent : @152, - #level : 2 - } - ], - #parent : @150, - #level : 2 - } - ], - #parent : @4, - #level : 1 - }, - @152, - @154, - @156, - @158, - @160, - @162, - @164, - @166, - @168, - @170, - @172, - @174, - @176, - @178, - @180, - @182, - @184, - @186 - ] - }, - #level : 1 - }, - @6, - @8, - @84, - @138, - @150 -] DELETED Docs/Imagenes/675px-Xerox_Alto.jpg Index: Docs/Imagenes/675px-Xerox_Alto.jpg ================================================================== --- Docs/Imagenes/675px-Xerox_Alto.jpg +++ Docs/Imagenes/675px-Xerox_Alto.jpg cannot compute difference between binary files DELETED Docs/Imagenes/DataSelfies/Twitter/esperar-correo.png Index: Docs/Imagenes/DataSelfies/Twitter/esperar-correo.png ================================================================== --- Docs/Imagenes/DataSelfies/Twitter/esperar-correo.png +++ Docs/Imagenes/DataSelfies/Twitter/esperar-correo.png cannot compute difference between binary files DELETED Docs/Imagenes/DataSelfies/Twitter/exportacion-index.png Index: Docs/Imagenes/DataSelfies/Twitter/exportacion-index.png ================================================================== --- Docs/Imagenes/DataSelfies/Twitter/exportacion-index.png +++ Docs/Imagenes/DataSelfies/Twitter/exportacion-index.png cannot compute difference between binary files DELETED Docs/Imagenes/DataSelfies/Twitter/settings.png Index: Docs/Imagenes/DataSelfies/Twitter/settings.png ================================================================== --- Docs/Imagenes/DataSelfies/Twitter/settings.png +++ Docs/Imagenes/DataSelfies/Twitter/settings.png cannot compute difference between binary files DELETED Docs/Imagenes/DataSelfies/Twitter/solicitar-archivo.png Index: Docs/Imagenes/DataSelfies/Twitter/solicitar-archivo.png ================================================================== --- Docs/Imagenes/DataSelfies/Twitter/solicitar-archivo.png +++ Docs/Imagenes/DataSelfies/Twitter/solicitar-archivo.png cannot compute difference between binary files DELETED Docs/Imagenes/Install/grafos-install-query.png Index: Docs/Imagenes/Install/grafos-install-query.png ================================================================== --- Docs/Imagenes/Install/grafos-install-query.png +++ Docs/Imagenes/Install/grafos-install-query.png cannot compute difference between binary files DELETED Docs/Imagenes/Install/grafoscopio-spotter-install-from-catalog.png Index: Docs/Imagenes/Install/grafoscopio-spotter-install-from-catalog.png ================================================================== --- Docs/Imagenes/Install/grafoscopio-spotter-install-from-catalog.png +++ Docs/Imagenes/Install/grafoscopio-spotter-install-from-catalog.png cannot compute difference between binary files DELETED Docs/Imagenes/Install/instalacion-cargando.png Index: Docs/Imagenes/Install/instalacion-cargando.png ================================================================== --- Docs/Imagenes/Install/instalacion-cargando.png +++ Docs/Imagenes/Install/instalacion-cargando.png cannot compute difference between binary files DELETED Docs/Imagenes/Install/instalacion-ejecutar.png Index: Docs/Imagenes/Install/instalacion-ejecutar.png ================================================================== --- Docs/Imagenes/Install/instalacion-ejecutar.png +++ Docs/Imagenes/Install/instalacion-ejecutar.png cannot compute difference between binary files DELETED Docs/Imagenes/Install/instalacion-instalado.png Index: Docs/Imagenes/Install/instalacion-instalado.png ================================================================== --- Docs/Imagenes/Install/instalacion-instalado.png +++ Docs/Imagenes/Install/instalacion-instalado.png cannot compute difference between binary files DELETED Docs/Imagenes/Install/install-ended.png Index: Docs/Imagenes/Install/install-ended.png ================================================================== --- Docs/Imagenes/Install/install-ended.png +++ Docs/Imagenes/Install/install-ended.png cannot compute difference between binary files DELETED Docs/Imagenes/Install/install-from-playground.png Index: Docs/Imagenes/Install/install-from-playground.png ================================================================== --- Docs/Imagenes/Install/install-from-playground.png +++ Docs/Imagenes/Install/install-from-playground.png cannot compute difference between binary files DELETED Docs/Imagenes/Install/install-question.png Index: Docs/Imagenes/Install/install-question.png ================================================================== --- Docs/Imagenes/Install/install-question.png +++ Docs/Imagenes/Install/install-question.png cannot compute difference between binary files DELETED Docs/Imagenes/Install/progress-bar.png Index: Docs/Imagenes/Install/progress-bar.png ================================================================== --- Docs/Imagenes/Install/progress-bar.png +++ Docs/Imagenes/Install/progress-bar.png cannot compute difference between binary files DELETED Docs/Imagenes/Install/save-menu.png Index: Docs/Imagenes/Install/save-menu.png ================================================================== --- Docs/Imagenes/Install/save-menu.png +++ Docs/Imagenes/Install/save-menu.png cannot compute difference between binary files DELETED Docs/Imagenes/Install/spotter-grafos-first-launch.png Index: Docs/Imagenes/Install/spotter-grafos-first-launch.png ================================================================== --- Docs/Imagenes/Install/spotter-grafos-first-launch.png +++ Docs/Imagenes/Install/spotter-grafos-first-launch.png cannot compute difference between binary files DELETED Docs/Imagenes/Writing_desk.jpg Index: Docs/Imagenes/Writing_desk.jpg ================================================================== --- Docs/Imagenes/Writing_desk.jpg +++ Docs/Imagenes/Writing_desk.jpg cannot compute difference between binary files DELETED Docs/Imagenes/alan_Kay_and_the_prototype_of_Dynabook.jpg Index: Docs/Imagenes/alan_Kay_and_the_prototype_of_Dynabook.jpg ================================================================== --- Docs/Imagenes/alan_Kay_and_the_prototype_of_Dynabook.jpg +++ Docs/Imagenes/alan_Kay_and_the_prototype_of_Dynabook.jpg cannot compute difference between binary files DELETED Docs/Imagenes/clutered-desktop.jpg Index: Docs/Imagenes/clutered-desktop.jpg ================================================================== --- Docs/Imagenes/clutered-desktop.jpg +++ Docs/Imagenes/clutered-desktop.jpg cannot compute difference between binary files DELETED Docs/Imagenes/dataweek-1.jpg Index: Docs/Imagenes/dataweek-1.jpg ================================================================== --- Docs/Imagenes/dataweek-1.jpg +++ Docs/Imagenes/dataweek-1.jpg cannot compute difference between binary files DELETED Docs/Imagenes/desktops-recurrence.jpg Index: Docs/Imagenes/desktops-recurrence.jpg ================================================================== --- Docs/Imagenes/desktops-recurrence.jpg +++ Docs/Imagenes/desktops-recurrence.jpg cannot compute difference between binary files DELETED Docs/Imagenes/docking-bar.png Index: Docs/Imagenes/docking-bar.png ================================================================== --- Docs/Imagenes/docking-bar.png +++ Docs/Imagenes/docking-bar.png cannot compute difference between binary files DELETED Docs/Imagenes/dynabook-children.png Index: Docs/Imagenes/dynabook-children.png ================================================================== --- Docs/Imagenes/dynabook-children.png +++ Docs/Imagenes/dynabook-children.png cannot compute difference between binary files DELETED Docs/Imagenes/floral-matryoshka.jpg Index: Docs/Imagenes/floral-matryoshka.jpg ================================================================== --- Docs/Imagenes/floral-matryoshka.jpg +++ Docs/Imagenes/floral-matryoshka.jpg cannot compute difference between binary files DELETED Docs/Imagenes/ghost9.jpg Index: Docs/Imagenes/ghost9.jpg ================================================================== --- Docs/Imagenes/ghost9.jpg +++ Docs/Imagenes/ghost9.jpg cannot compute difference between binary files DELETED Docs/Imagenes/grafoscopio-mapa-detalle.png Index: Docs/Imagenes/grafoscopio-mapa-detalle.png ================================================================== --- Docs/Imagenes/grafoscopio-mapa-detalle.png +++ Docs/Imagenes/grafoscopio-mapa-detalle.png cannot compute difference between binary files DELETED Docs/Imagenes/grafoscopio-mapa.png Index: Docs/Imagenes/grafoscopio-mapa.png ================================================================== --- Docs/Imagenes/grafoscopio-mapa.png +++ Docs/Imagenes/grafoscopio-mapa.png cannot compute difference between binary files DELETED Docs/Imagenes/grafoscopio-workflow.png Index: Docs/Imagenes/grafoscopio-workflow.png ================================================================== --- Docs/Imagenes/grafoscopio-workflow.png +++ Docs/Imagenes/grafoscopio-workflow.png cannot compute difference between binary files DELETED Docs/Imagenes/grafoscopio.png Index: Docs/Imagenes/grafoscopio.png ================================================================== --- Docs/Imagenes/grafoscopio.png +++ Docs/Imagenes/grafoscopio.png cannot compute difference between binary files DELETED Docs/Imagenes/grafoscopioDetail.png Index: Docs/Imagenes/grafoscopioDetail.png ================================================================== --- Docs/Imagenes/grafoscopioDetail.png +++ Docs/Imagenes/grafoscopioDetail.png cannot compute difference between binary files DELETED Docs/Imagenes/hackerspaces-org.png Index: Docs/Imagenes/hackerspaces-org.png ================================================================== --- Docs/Imagenes/hackerspaces-org.png +++ Docs/Imagenes/hackerspaces-org.png cannot compute difference between binary files DELETED Docs/Imagenes/herramientas-amoldables-1.png Index: Docs/Imagenes/herramientas-amoldables-1.png ================================================================== --- Docs/Imagenes/herramientas-amoldables-1.png +++ Docs/Imagenes/herramientas-amoldables-1.png cannot compute difference between binary files DELETED Docs/Imagenes/herramientas-amoldables-2.png Index: Docs/Imagenes/herramientas-amoldables-2.png ================================================================== --- Docs/Imagenes/herramientas-amoldables-2.png +++ Docs/Imagenes/herramientas-amoldables-2.png cannot compute difference between binary files DELETED Docs/Imagenes/herramientas-amoldables-3.png Index: Docs/Imagenes/herramientas-amoldables-3.png ================================================================== --- Docs/Imagenes/herramientas-amoldables-3.png +++ Docs/Imagenes/herramientas-amoldables-3.png cannot compute difference between binary files DELETED Docs/Imagenes/herramientas-amoldables-4.png Index: Docs/Imagenes/herramientas-amoldables-4.png ================================================================== --- Docs/Imagenes/herramientas-amoldables-4.png +++ Docs/Imagenes/herramientas-amoldables-4.png cannot compute difference between binary files DELETED Docs/Imagenes/iceberg.jpg Index: Docs/Imagenes/iceberg.jpg ================================================================== --- Docs/Imagenes/iceberg.jpg +++ Docs/Imagenes/iceberg.jpg cannot compute difference between binary files DELETED Docs/Imagenes/koenig's_steam_press-1814.png Index: Docs/Imagenes/koenig's_steam_press-1814.png ================================================================== --- Docs/Imagenes/koenig's_steam_press-1814.png +++ Docs/Imagenes/koenig's_steam_press-1814.png cannot compute difference between binary files DELETED Docs/Imagenes/lens.png Index: Docs/Imagenes/lens.png ================================================================== --- Docs/Imagenes/lens.png +++ Docs/Imagenes/lens.png cannot compute difference between binary files DELETED Docs/Imagenes/leo-tree.png Index: Docs/Imagenes/leo-tree.png ================================================================== --- Docs/Imagenes/leo-tree.png +++ Docs/Imagenes/leo-tree.png cannot compute difference between binary files DELETED Docs/Imagenes/logo-plant.png Index: Docs/Imagenes/logo-plant.png ================================================================== --- Docs/Imagenes/logo-plant.png +++ Docs/Imagenes/logo-plant.png cannot compute difference between binary files DELETED Docs/Imagenes/logo-plant.svg Index: Docs/Imagenes/logo-plant.svg ================================================================== --- Docs/Imagenes/logo-plant.svg +++ Docs/Imagenes/logo-plant.svg @@ -1,198 +0,0 @@ - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - DELETED Docs/Imagenes/mac_desktop-6c.jpg Index: Docs/Imagenes/mac_desktop-6c.jpg ================================================================== --- Docs/Imagenes/mac_desktop-6c.jpg +++ Docs/Imagenes/mac_desktop-6c.jpg cannot compute difference between binary files DELETED Docs/Imagenes/media-maraton.jpg Index: Docs/Imagenes/media-maraton.jpg ================================================================== --- Docs/Imagenes/media-maraton.jpg +++ Docs/Imagenes/media-maraton.jpg cannot compute difference between binary files DELETED Docs/Imagenes/monticello-browser.png Index: Docs/Imagenes/monticello-browser.png ================================================================== --- Docs/Imagenes/monticello-browser.png +++ Docs/Imagenes/monticello-browser.png cannot compute difference between binary files DELETED Docs/Imagenes/nbsqlite-integration-test.png Index: Docs/Imagenes/nbsqlite-integration-test.png ================================================================== --- Docs/Imagenes/nbsqlite-integration-test.png +++ Docs/Imagenes/nbsqlite-integration-test.png cannot compute difference between binary files DELETED Docs/Imagenes/playground-from-spotter.png Index: Docs/Imagenes/playground-from-spotter.png ================================================================== --- Docs/Imagenes/playground-from-spotter.png +++ Docs/Imagenes/playground-from-spotter.png cannot compute difference between binary files DELETED Docs/Imagenes/playground-from-world-menu.png Index: Docs/Imagenes/playground-from-world-menu.png ================================================================== --- Docs/Imagenes/playground-from-world-menu.png +++ Docs/Imagenes/playground-from-world-menu.png cannot compute difference between binary files DELETED Docs/Imagenes/repository-info.png Index: Docs/Imagenes/repository-info.png ================================================================== --- Docs/Imagenes/repository-info.png +++ Docs/Imagenes/repository-info.png cannot compute difference between binary files DELETED Docs/Imagenes/repository-type.png Index: Docs/Imagenes/repository-type.png ================================================================== --- Docs/Imagenes/repository-type.png +++ Docs/Imagenes/repository-type.png cannot compute difference between binary files DELETED Docs/Imagenes/samfax.jpg Index: Docs/Imagenes/samfax.jpg ================================================================== --- Docs/Imagenes/samfax.jpg +++ Docs/Imagenes/samfax.jpg cannot compute difference between binary files DELETED Docs/Imagenes/scrivener-write_structure_revise-lg.jpg Index: Docs/Imagenes/scrivener-write_structure_revise-lg.jpg ================================================================== --- Docs/Imagenes/scrivener-write_structure_revise-lg.jpg +++ Docs/Imagenes/scrivener-write_structure_revise-lg.jpg cannot compute difference between binary files DELETED Docs/Imagenes/seeing-spaces-bret-victor.png Index: Docs/Imagenes/seeing-spaces-bret-victor.png ================================================================== --- Docs/Imagenes/seeing-spaces-bret-victor.png +++ Docs/Imagenes/seeing-spaces-bret-victor.png cannot compute difference between binary files DELETED Docs/Imagenes/sketchpad.jpg Index: Docs/Imagenes/sketchpad.jpg ================================================================== --- Docs/Imagenes/sketchpad.jpg +++ Docs/Imagenes/sketchpad.jpg cannot compute difference between binary files DELETED Docs/Imagenes/smalltalk-72-1977.jpg Index: Docs/Imagenes/smalltalk-72-1977.jpg ================================================================== --- Docs/Imagenes/smalltalk-72-1977.jpg +++ Docs/Imagenes/smalltalk-72-1977.jpg cannot compute difference between binary files DELETED Docs/Imagenes/spotter.png Index: Docs/Imagenes/spotter.png ================================================================== --- Docs/Imagenes/spotter.png +++ Docs/Imagenes/spotter.png cannot compute difference between binary files DELETED Docs/Imagenes/stepsweb-01.png Index: Docs/Imagenes/stepsweb-01.png ================================================================== --- Docs/Imagenes/stepsweb-01.png +++ Docs/Imagenes/stepsweb-01.png cannot compute difference between binary files DELETED Docs/Imagenes/tutorial-abrir.png Index: Docs/Imagenes/tutorial-abrir.png ================================================================== --- Docs/Imagenes/tutorial-abrir.png +++ Docs/Imagenes/tutorial-abrir.png cannot compute difference between binary files DELETED Docs/Imagenes/tutorial-actualizado.png Index: Docs/Imagenes/tutorial-actualizado.png ================================================================== --- Docs/Imagenes/tutorial-actualizado.png +++ Docs/Imagenes/tutorial-actualizado.png cannot compute difference between binary files DELETED Docs/Imagenes/tutorial-actualizar-confirmar.png Index: Docs/Imagenes/tutorial-actualizar-confirmar.png ================================================================== --- Docs/Imagenes/tutorial-actualizar-confirmar.png +++ Docs/Imagenes/tutorial-actualizar-confirmar.png cannot compute difference between binary files DELETED Docs/Imagenes/tutorial-actualizar.png Index: Docs/Imagenes/tutorial-actualizar.png ================================================================== --- Docs/Imagenes/tutorial-actualizar.png +++ Docs/Imagenes/tutorial-actualizar.png cannot compute difference between binary files DELETED Docs/Imagenes/tutorial-leccion-1.png Index: Docs/Imagenes/tutorial-leccion-1.png ================================================================== --- Docs/Imagenes/tutorial-leccion-1.png +++ Docs/Imagenes/tutorial-leccion-1.png cannot compute difference between binary files DELETED Docs/Imagenes/tutorial-maximisar-toc.png Index: Docs/Imagenes/tutorial-maximisar-toc.png ================================================================== --- Docs/Imagenes/tutorial-maximisar-toc.png +++ Docs/Imagenes/tutorial-maximisar-toc.png cannot compute difference between binary files DELETED Docs/Imagenes/typewriter.jpg Index: Docs/Imagenes/typewriter.jpg ================================================================== --- Docs/Imagenes/typewriter.jpg +++ Docs/Imagenes/typewriter.jpg cannot compute difference between binary files DELETED Docs/Imagenes/unix-fathers.jpg Index: Docs/Imagenes/unix-fathers.jpg ================================================================== --- Docs/Imagenes/unix-fathers.jpg +++ Docs/Imagenes/unix-fathers.jpg cannot compute difference between binary files DELETED Docs/Imagenes/windows-95-desktop.png Index: Docs/Imagenes/windows-95-desktop.png ================================================================== --- Docs/Imagenes/windows-95-desktop.png +++ Docs/Imagenes/windows-95-desktop.png cannot compute difference between binary files DELETED Docs/Imagenes/word-2007-interface.png Index: Docs/Imagenes/word-2007-interface.png ================================================================== --- Docs/Imagenes/word-2007-interface.png +++ Docs/Imagenes/word-2007-interface.png cannot compute difference between binary files DELETED Scripts/grafoscopio.sh Index: Scripts/grafoscopio.sh ================================================================== --- Scripts/grafoscopio.sh +++ Scripts/grafoscopio.sh @@ -1,1 +0,0 @@ -../pharo moose-5.0.image Grafoscopio.st DELETED Scripts/grafoscopio.st Index: Scripts/grafoscopio.st ================================================================== --- Scripts/grafoscopio.st +++ Scripts/grafoscopio.st @@ -1,1 +0,0 @@ -GrafoscopioBrowser open DELETED css/layouts/marketing-old-ie.css Index: css/layouts/marketing-old-ie.css ================================================================== --- css/layouts/marketing-old-ie.css +++ css/layouts/marketing-old-ie.css @@ -1,294 +0,0 @@ -* { - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; -} - -/* - * -- BASE STYLES -- - * Most of these are inherited from Base, but I want to change a few. - */ - -body { - line-height: 1.7em; - color: #7f8c8d; - font-size: 13px; -} - -h1, -h2, -h3, -h4, -h5, -h6, -label { - color: #34495e; -} - -.pure-img-responsive { - max-width: 100%; - height: auto; -} - -/* - * -- LAYOUT STYLES -- - * These are some useful classes which I will need - */ - -.l-box { - padding: 1em; -} - -.l-box-lrg { - padding: 2em; - border-bottom: 1px solid rgba(0,0,0,0.1); -} - -.is-center { - text-align: center; -} - -/* - * -- PURE FORM STYLES -- - * Style the form inputs and labels - */ - -.pure-form label { - margin: 1em 0 0; - font-weight: bold; - font-size: 100%; -} - -.pure-form input[type] { - border: 2px solid #ddd; - box-shadow: none; - font-size: 100%; - width: 100%; - margin-bottom: 1em; -} - -/* - * -- PURE BUTTON STYLES -- - * I want my pure-button elements to look a little different - */ - -.pure-button { - background-color: #1f8dd6; - color: white; - padding: 0.5em 2em; - border-radius: 5px; -} - -a.pure-button-primary { - background: white; - color: #1f8dd6; - border-radius: 5px; - font-size: 120%; -} - -/* - * -- MENU STYLES -- - * I want to customize how my .pure-menu looks at the top of the page - */ - -.home-menu { - padding: 0.5em; - text-align: center; - box-shadow: 0 1px 1px rgba(0,0,0, 0.10); -} - -.home-menu.pure-menu-open { - background: #2d3e50; -} - -.pure-menu.pure-menu-open.pure-menu-fixed { - /* Fixed menus normally have a border at the bottom. */ - border-bottom: none; - /* I need a higher z-index here because of the scroll-over effect. */ - z-index: 4; -} - -.home-menu .pure-menu-heading { - color: white; - font-weight: 400; - font-size: 120%; -} - -.home-menu .pure-menu-selected a { - color: white; -} - -.home-menu a { - color: #6FBEF3; -} - -.home-menu li a:hover, -.home-menu li a:focus { - background: none; - border: none; - color: #AECFE5; -} - -/* - * -- SPLASH STYLES -- - * This is the blue top section that appears on the page. - */ - -.splash-container { - background: #1f8dd6; - z-index: 1; - overflow: hidden; - /* The following styles are required for the "scroll-over" effect */ - width: 100%; - height: 88%; - top: 0; - left: 0; - position: fixed !important; -} - -.splash { - /* absolute center .splash within .splash-container */ - width: 80%; - height: 50%; - margin: auto; - position: absolute; - top: 100px; - left: 0; - bottom: 0; - right: 0; - text-align: center; - text-transform: uppercase; -} - -/* This is the main heading that appears on the blue section */ - -.splash-head { - font-size: 20px; - font-weight: bold; - color: white; - border: 3px solid white; - padding: 1em 1.6em; - font-weight: 100; - border-radius: 5px; - line-height: 1em; -} - -/* This is the subheading that appears on the blue section */ - -.splash-subhead { - color: white; - letter-spacing: 0.05em; - opacity: 0.8; -} - -/* - * -- CONTENT STYLES -- - * This represents the content area (everything below the blue section) - */ - -.content-wrapper { - /* These styles are required for the "scroll-over" effect */ - position: absolute; - top: 87%; - width: 100%; - min-height: 12%; - z-index: 2; - background: white; -} - -/* This is the class used for the main content headers (

) */ - -.content-head { - font-weight: 400; - text-transform: uppercase; - letter-spacing: 0.1em; - margin: 2em 0 1em; -} - -/* This is a modifier class used when the content-head is inside a ribbon */ - -.content-head-ribbon { - color: white; -} - -/* This is the class used for the content sub-headers (

) */ - -.content-subhead { - color: #1f8dd6; -} - -.content-subhead i { - margin-right: 7px; -} - -/* This is the class used for the dark-background areas. */ - -.ribbon { - background: #2d3e50; - color: #aaa; -} - -/* This is the class used for the footer */ - -.footer { - background: #111; -} - -/* - * -- TABLET (AND UP) MEDIA QUERIES -- - * On tablets and other medium-sized devices, we want to customize some - * of the mobile styles. - */ - -/* We increase the body font size */ - -body { - font-size: 16px; -} - -/* We want to give the content area some more padding */ - -.content { - padding: 1em; -} - -/* We can align the menu header to the left, but float the - menu items to the right. */ - -.home-menu { - text-align: left; -} - -.home-menu ul { - float: right; -} - -/* We increase the height of the splash-container */ - -/* .splash-container { - height: 500px; - }*/ - -/* We decrease the width of the .splash, since we have more width - to work with */ - -.splash { - width: 50%; - height: 50%; -} - -.splash-head { - font-size: 250%; -} - -/* We remove the border-separator assigned to .l-box-lrg */ - -.l-box-lrg { - border: none; -} - -/* - * -- DESKTOP (AND UP) MEDIA QUERIES -- - * On desktops and other large devices, we want to over-ride some - * of the mobile and tablet styles. - */ DELETED css/layouts/marketing.css Index: css/layouts/marketing.css ================================================================== --- css/layouts/marketing.css +++ css/layouts/marketing.css @@ -1,292 +0,0 @@ -* { - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; -} - -/* - * -- BASE STYLES -- - * Most of these are inherited from Base, but I want to change a few. - */ -body { - line-height: 1.7em; - color: #7f8c8d; - font-size: 13px; -} - -h1, -h2, -h3, -h4, -h5, -h6, -label { - color: #34495e; -} - -.pure-img-responsive { - max-width: 100%; - height: auto; -} - -/* - * -- LAYOUT STYLES -- - * These are some useful classes which I will need - */ -.l-box { - padding: 1em; -} - -.l-box-lrg { - padding: 2em; - border-bottom: 1px solid rgba(0,0,0,0.1); -} - -.is-center { - text-align: center; -} - - - -/* - * -- PURE FORM STYLES -- - * Style the form inputs and labels - */ -.pure-form label { - margin: 1em 0 0; - font-weight: bold; - font-size: 100%; -} - -.pure-form input[type] { - border: 2px solid #ddd; - box-shadow: none; - font-size: 100%; - width: 100%; - margin-bottom: 1em; -} - -/* - * -- PURE BUTTON STYLES -- - * I want my pure-button elements to look a little different - */ -.pure-button { - background-color: #1f8dd6; - color: white; - padding: 0.5em 2em; - border-radius: 5px; -} - -a.pure-button-primary { - background: white; - color: #1f8dd6; - border-radius: 5px; - font-size: 120%; -} - - -/* - * -- MENU STYLES -- - * I want to customize how my .pure-menu looks at the top of the page - */ - -.home-menu { - padding: 0.5em; - text-align: center; - box-shadow: 0 1px 1px rgba(0,0,0, 0.10); -} -.home-menu.pure-menu-open { - background: #2d3e50; -} -.pure-menu.pure-menu-open.pure-menu-fixed { - /* Fixed menus normally have a border at the bottom. */ - border-bottom: none; - /* I need a higher z-index here because of the scroll-over effect. */ - z-index: 4; -} - -.home-menu .pure-menu-heading { - color: white; - font-weight: 400; - font-size: 120%; -} - -.home-menu .pure-menu-selected a { - color: white; -} - -.home-menu a { - color: #6FBEF3; -} -.home-menu li a:hover, -.home-menu li a:focus { - background: none; - border: none; - color: #AECFE5; -} - - -/* - * -- SPLASH STYLES -- - * This is the blue top section that appears on the page. - */ - -.splash-container { - background: #1f8dd6; - z-index: 1; - overflow: hidden; - /* The following styles are required for the "scroll-over" effect */ - width: 100%; - height: 88%; - top: 0; - left: 0; - position: fixed !important; -} - -.splash { - /* absolute center .splash within .splash-container */ - width: 80%; - height: 50%; - margin: auto; - position: absolute; - top: 100px; left: 0; bottom: 0; right: 0; - text-align: center; - text-transform: uppercase; -} - -/* This is the main heading that appears on the blue section */ -.splash-head { - font-size: 20px; - font-weight: bold; - color: black; - border: 3px solid white; - padding: 1em 1.6em; - font-weight: 100; - border-radius: 5px; - line-height: 1em; -} - -/* This is the subheading that appears on the blue section */ -.splash-subhead { - color: white; - letter-spacing: 0.05em; - opacity: 0.8; -} - -/* - * -- CONTENT STYLES -- - * This represents the content area (everything below the blue section) - */ -.content-wrapper { - /* These styles are required for the "scroll-over" effect */ - position: absolute; - top: 87%; - width: 100%; - min-height: 12%; - z-index: 2; - background: white; - -} - -/* This is the class used for the main content headers (

) */ -.content-head { - font-weight: 400; - text-transform: uppercase; - letter-spacing: 0.1em; - margin: 2em 0 1em; -} - -/* This is a modifier class used when the content-head is inside a ribbon */ -.content-head-ribbon { - color: white; -} - -/* This is the class used for the content sub-headers (

) */ -.content-subhead { - color: #1f8dd6; -} - .content-subhead i { - margin-right: 7px; - } - -/* This is the class used for the dark-background areas. */ -.ribbon { - background: #2d3e50; - color: #aaa; -} - -.ribbon a { - color: #AECFE5; -} -.ribbon li a:hover, -.ribbon li a:focus { - background: none; - border: none; - color: white; -} - -/* This is the class used for the footer */ -.footer { - background: #111; -} - -/* - * -- TABLET (AND UP) MEDIA QUERIES -- - * On tablets and other medium-sized devices, we want to customize some - * of the mobile styles. - */ -@media (min-width: 48em) { - - /* We increase the body font size */ - body { - font-size: 16px; - } - /* We want to give the content area some more padding */ - .content { - padding: 1em; - } - - /* We can align the menu header to the left, but float the - menu items to the right. */ - .home-menu { - text-align: left; - } - .home-menu ul { - float: right; - } - - /* We increase the height of the splash-container */ -/* .splash-container { - height: 500px; - }*/ - - /* We decrease the width of the .splash, since we have more width - to work with */ - .splash { - width: 50%; - height: 50%; - } - - .splash-head { - font-size: 250%; - } - - - /* We remove the border-separator assigned to .l-box-lrg */ - .l-box-lrg { - border: none; - } - -} - -/* - * -- DESKTOP (AND UP) MEDIA QUERIES -- - * On desktops and other large devices, we want to over-ride some - * of the mobile and tablet styles. - */ -@media (min-width: 78em) { - /* We increase the header font size even more */ - .splash-head { - font-size: 300%; - } -} DELETED grafoscopio.sh Index: grafoscopio.sh ================================================================== --- grafoscopio.sh +++ grafoscopio.sh @@ -1,1 +0,0 @@ -./bin/pharo shared/grafoscopio.image DELETED images/common/file-icons.png Index: images/common/file-icons.png ================================================================== --- images/common/file-icons.png +++ images/common/file-icons.png cannot compute difference between binary files DELETED images/dataweek-small.png Index: images/dataweek-small.png ================================================================== --- images/dataweek-small.png +++ images/dataweek-small.png cannot compute difference between binary files DELETED images/example-blog02.jpg Index: images/example-blog02.jpg ================================================================== --- images/example-blog02.jpg +++ images/example-blog02.jpg cannot compute difference between binary files DELETED images/first-paper.png Index: images/first-paper.png ================================================================== --- images/first-paper.png +++ images/first-paper.png cannot compute difference between binary files DELETED images/grafoscopio-logotype.png Index: images/grafoscopio-logotype.png ================================================================== --- images/grafoscopio-logotype.png +++ images/grafoscopio-logotype.png cannot compute difference between binary files DELETED images/header-bg.jpg Index: images/header-bg.jpg ================================================================== --- images/header-bg.jpg +++ images/header-bg.jpg cannot compute difference between binary files DELETED images/infomed-detail.png Index: images/infomed-detail.png ================================================================== --- images/infomed-detail.png +++ images/infomed-detail.png cannot compute difference between binary files DELETED images/innovacion-abierta.png Index: images/innovacion-abierta.png ================================================================== --- images/innovacion-abierta.png +++ images/innovacion-abierta.png cannot compute difference between binary files DELETED images/notebook-detail.png Index: images/notebook-detail.png ================================================================== --- images/notebook-detail.png +++ images/notebook-detail.png cannot compute difference between binary files DELETED images/paper-med-info.png Index: images/paper-med-info.png ================================================================== --- images/paper-med-info.png +++ images/paper-med-info.png cannot compute difference between binary files DELETED images/smalltalk-ide-light-1.png Index: images/smalltalk-ide-light-1.png ================================================================== --- images/smalltalk-ide-light-1.png +++ images/smalltalk-ide-light-1.png cannot compute difference between binary files DELETED images/smalltalk-ide.png Index: images/smalltalk-ide.png ================================================================== --- images/smalltalk-ide.png +++ images/smalltalk-ide.png cannot compute difference between binary files DELETED images/smalltalk-ide1.png Index: images/smalltalk-ide1.png ================================================================== --- images/smalltalk-ide1.png +++ images/smalltalk-ide1.png cannot compute difference between binary files DELETED images/structure-tree.png Index: images/structure-tree.png ================================================================== --- images/structure-tree.png +++ images/structure-tree.png cannot compute difference between binary files DELETED images/timeline-1.png Index: images/timeline-1.png ================================================================== --- images/timeline-1.png +++ images/timeline-1.png cannot compute difference between binary files DELETED images/timeline-2.png Index: images/timeline-2.png ================================================================== --- images/timeline-2.png +++ images/timeline-2.png cannot compute difference between binary files DELETED images/timeline.png Index: images/timeline.png ================================================================== --- images/timeline.png +++ images/timeline.png cannot compute difference between binary files DELETED index.en.html Index: index.en.html ================================================================== --- index.en.html +++ index.en.html @@ -1,429 +0,0 @@ - - - - - - - - - - Grafoscopio | mutabiT - - - - - - - - - -
- -
-
- - - - - -
- - -
- -
- - - -
-
- -
- -
-
Grafoscopio
-
Explorative & interactive writing + flexible data visualization
-
-
- - Grafoscopio is a moldable tool for interactive documentation and data visualization, that is being used in citizen, garage & - open science, reproducible research, (h)ac(k)tivism, open & community innovation, domain specific visualization and data journalism, - and has a lot of other potential uses. - Grafoscopio is covered by a Free Libre Open Source Software license (MIT) and it has an associated hackathon/workshop, - called the Data Week, - oriented to citizen concerns, which are related and mediated by data and visualization. - There we learn, adapt and feedback this tool.
- Grafoscopio is and integrates simple and self-cointained "pocket infractures", that can be execute On/Off-line, from a USB thumb drive, a rasperry-Pi alike computer, a modest server or any hardware in between and beyond. -
-
-
-
-
-
-

Write, structure & unify

-
-
- -
-
- - Different types of documents all them in a single site. Group, give hierarchy and visualize what you want and create - different views of the same informaion. - -
- -
- -
-
-

Compute & visualize

-
-
- -
-
- - Connect several & heterogeneous data sources and integrate them through powerfull and flexible custom visualizations. - -
- -
- -
-
-

Collaborate & publish

-
-
- -
-
- - Templates and the historical control change, will ease the individual and collective work. - Also publish in pdf and html and share the last version with your audience. - -
- -
- -
-
-

Explore & modify

-
-
- -
-
- - Use the powerful and interactive integrated development environment to see how the tool is made and to adapt it to different needs. - -
- -
-
-
- -
-
-
- -
-
-
Download
-

- Grafoscopio runs on Pharo Smalltalk, for Windows, Gnu/Linux & Mac Platforms. -

-

- - Download & execute  chevron_right - -

-
-
-
-
- -
Learn
-
-
-
-
- - - -
-
- - - -
-
- - - -
-
-
-

Workshops & Documentation

-
-
-
-

- Our main hands on face to face learning space is our week long (36 hours) workshop/hackathon. - Look for more details in the Data Week homepage. -

-

- The documentation for Grafoscopio is being written in itself. - It will be an example of interactive documentation and its pdf exportation capabilities. -

-

- This are some early drafts of the documentation made in grafoscopio (in Spanish): -

- -
-
-
-
-
-
- -
Thanks
-
-
-
-
- - - -
-
- - - -
-
- - - -
-
- - - -
-
- - - -
-
-
-
-
-
-

- Grafoscopio would not be possible without the help of many individuals in different communities - and institutions. - Here is a list of some of these places and individuals: -

-

-

    -
  • mutabiT.
  • -
  • HackBo, a hackerspace in Bogotá, en particular las personas asistentes a los talleres de Indie Web Science, especialmente: Rafael Medida, Iván Pulido, Camilo Hurtado & Fernando Castro Toro.
  • -
  • The Pharo, Moose - and Agile Visualization communities. - Specially: Tudor Girba, Alexandre Bergel, Nicolai Hess, Peter Uhnák, Miltón Mamani & Johan Fabry.
  • -
  • El HiTec Lab de la Fundación Universitaria Los Libertadores, en especial: Jose David Cuartas. -
  • -
-

-

- Some individuals have helped a lot with their support and listen, without a particular link to a - community or institution. - Thanks to: Andrés Calderón, Hilda Cárdenas, Divian Luna and Yanneth Gil. -

-
-
-
-
-
-
-
-
-
-
-
- -
Contact
-

- We have two main methods for contact: -

-

-

-

-
-
-
-
- -
-
- - - DELETED index.html Index: index.html ================================================================== --- index.html +++ index.html @@ -1,422 +0,0 @@ - - - - - - - - - - Grafoscopio | mutabiT - - - - - - - - - -
- -
-
- - - - - -
- - - - - - -
-
- -
- -
-
Grafoscopio
-
Escritura interactiva emergente + visualización de datos flexible
-
-
- - Grafoscopio es una herramienta amoldable para documentación interactiva y visualización de datos, que está siendo usada para ciencia abierta, ciudadanas y de garage, investigación reproducibles, (h)ac(k)tivismo, innovación abierta y comunitaria , visualizaciones de dominio específico, y periodismo de datos, entre otros usos actuales y potenciales. - Grafoscopio está cubierto por una licencia libre y de código abierto (MIT) y se socializa, realimenta y modifica en un taller-hackatón recurrente de una semana llamado el Data Week, que está orientado principalmente desde preguntas ciudadanas mediadas por datos y visualización.
- Grafoscopio es y usa "infraestructuras de bolsillo", sencillas y autocontenidas, que pueden ejecutarse On/Off-line, - desde una memoria USB, una rasberry-Pi, un servidor modesto y cualquier otra infraestructura intermedia o más potente. -
-
-
-
-
-
-

Escribe, estructura y unifica

-
-
- -
-
- - Distintos tipos documentos todos ellos en un sólo sitio. Jeraquiza, agrupa y visibiliza aquello que quieres y crea diferentes vistas de la misma información. - -
- -
- -
-
-

Cálcula y visualiza

-
-
- -
-
- - Puedes conectar varias fuentes de información heterogeneas e intégrarlas mediante visualizaciones poderosas y flexibles. - -
- -
- -
-
-

Colabora y publica

-
-
- -
-
- - Las plantillas y el control histórico de cambios, facilitarán el trabajo individual y colectivo, así como su publicación en pdf y html. - -
- -
- -
-
-

Explora y modifica

-
-
- -
-
- - Usa el poderoso entorno interactivo de programación integrado, para ver cómo está hecha la herramienta y adaptarla a diversas necesidades. - -
- -
-
-
- -
-
-
- -
-
-
Descarga
-

- Grafoscopio funciona sobre Pharo Smalltalk, sobre plataformas Windows, Gnu/Linux y Mac. -

-

- - Descarga y ejecuta  chevron_right - -

-
-
-
-
- -
Aprende
-
-
-
-
- - - -
-
- - - -
-
- - - -
-
-
-

Talleres y Documentación

-
-
-
-

- Nuestro principal espacio de aprendizaje experiencial y cara a cara es taller-hackatón de una semana (36 hours). - Mira más detalles en la página del Data Week. -

-

- La documentación para Grafoscopio esta escribiéndose dentro de la misma herramienta. - Será un ejemplo de documentación interactiva y las capacidades de exportación a pdf. -

-

- Por lo pronto te invitamos a leer los siguientes documentos: -

- -
-
-
-
-
-
- -
Créditos
-
-
-
-
- - - -
-
- - - -
-
- - - -
-
- - - -
-
- - - -
-
-
-
-
-
-

- Grafoscopio no hubiera sido posible sin la ayuda de muchas personas vinculadas a diversas - lugares comunitarios e institucionales. - Acá un listado de algunos de esos lugares y personas: -

-

-

    -
  • mutabiT.
  • -
  • HackBo, a hackerspace in Bogotá, en particular las personas asistentes a los talleres de Indie Web Science, especialmente: Rafael Medida, Iván Pulido, Camilo Hurtado & Fernando Castro Toro.
  • -
  • Las comunidades de Pharo, Moose - y Agile Visualization. - En especial: Tudor Girba, Alexandre Bergel, Nicolai Hess, Peter Uhnák, Miltón Mamani & Johan Fabry.
  • -
  • The HiTec Lab in the Fundación Universitaria Los Libertadores, specialy: Jose David Cuartas. -
  • -
-

-

- Algunas personas han ayudado mucho con su escucha y apoyo, - al margen de cualquier vinculación intitucional y/o comunitaria. - Entre ellas: Andrés Calderón, Hilda Cárdenas, Divian Luna y Yanneth Gil. -

-
-
-
-
-
-
-
-
-
-
-
- -
Contacto
-

- Tenemos dos métodos principales de contacto: -

-

-

    -
  • Lista de correo abierta comunitaria: - -
  • -
  • Si está interesado en apoyar Grafoscopio económicamente, - adaptarlo o extenderlo, crear visualizaciones a la medida o un taller de - capacitación como el Data Week, escríbanos a nuestro - correo empresarial. -
  • -
-

-
-
-
-
- -
-
- - - DELETED install.st Index: install.st ================================================================== --- install.st +++ install.st @@ -1,45 +0,0 @@ -" ============================== Grafoscopio instalation script ============================== by Offray Vladimir Luna Cárdenas offray@mutabit.com Under MIT License This script installs grafoscopio for the first time. If you already has grafoscopio, use 'Actualizar > Grafoscopio' to update it. " - " Prerrequisites --------------- " -"Visualization library (which also makes main menu loadable)" - Gofer it smalltalkhubUser: 'ObjectProfile' project: 'Roassal2'; configurationOf: 'Roassal2'; loadVersion: '1.15'. - -"Open/save files on STON format" -Gofer new - smalltalkhubUser: 'SvenVanCaekenberghe' project: 'STON'; - configurationOf: 'Ston'; - loadBleedingEdge. - -"Moose and Roassal integration" -Gofer new - smalltalkhubUser: 'Moose' project: 'Glamour'; - package: 'Glamour-Tools'; - package: 'Glamour-Roassal2-Presentations'; - load. - -Gofer new - smalltalkhubUser: 'Moose' project: 'GToolkit'; - package: 'GT-InspectorExtensions-CoreRoassal'; - load. - "SQLite Support" Gofer new url: 'http://ss3.gemtalksystems.com/ss/NBSQLite3'; package: 'NBSQLite3'; load. Gofer new url: 'http://smalltalkhub.com/mc/PharoExtras/NBSQLite3/main'; package: 'NBSQLite3-Examples'; load. - -"HTML scrapping" -Gofer new - smalltalkhubUser: 'PharoExtras' project: 'Soup'; - configurationOf: 'Soup'; - loadDevelopment. - -"Data visualization helpers" -Gofer new - smalltalkhubUser: 'Offray' project: 'Dataviz'; - package: 'Dataviz'; - load. - "Integration with external tools" -Gofer new - smalltalkhubUser: 'Offray' project: 'Grafoscopio'; - package: 'Grafoscopio-ExternalTools'; - load. " Grafoscopio itself ------------------ " -Gofer new - smalltalkhubUser: 'Offray' project: 'Grafoscopio'; - package: 'Grafoscopio'; - load. - "Some beauty for the interface's icons --------------------------------------- This is taken from: http://smallworks.eu/web/blog/2015-04-30-idea-icon-pack-for-pharo " Gofer it smalltalkhubUser: 'Pharo' project: 'MetaRepoForPharo40'; configurationOf: 'IdeaIcons'; loadStable. ThemeIcons current: #IdeaUIThemeIcons asClass new. "In Pharo 3 and 4, you might need to execute this" AbstractNautilusUI resetIconCaches. DELETED leame.md Index: leame.md ================================================================== --- leame.md +++ leame.md @@ -1,11 +0,0 @@ -# Leame - -Este archivo contiene una pequeña presentación de lo que vamos a encontrar -en las carpetas que componen la documentación del proyecto grafoscopio y -está ubicado en la raiz de Dichas carpetas. - - - `Docs/` contiene la documentación de grafoscopio en borrador. - Adentro hay dos subcarpetas `Es/` para la documentación en español, - el idioma original y `En/` para inglés. Nuevas subcarpetas pueden - ser agregadas para otros idiomas, usando su código ISO 639-1 de dos - letras. DELETED styles.css Index: styles.css ================================================================== --- styles.css +++ styles.css @@ -1,542 +0,0 @@ -/** - * Copyright 2015 Google Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -body { - margin: 0; -} - -/* Disable ugly boxes around images in IE10 */ -a img{ - border: 0px; -} - -::-moz-selection { - background-color: #6ab344; - color: #fff; -} - -::selection { - background-color: #6ab344; - color: #fff; -} - -.android-search-box .mdl-textfield__input { - color: rgba(0, 0, 0, 0.87); -} - -.android-header .mdl-menu__container { - z-index: 50; - margin: 0 !important; -} - - -.mdl-textfield--expandable { - width: auto; -} - -.android-fab { - position: absolute; - right: 20%; - bottom: -26px; - z-index: 3; - background: #64ffda !important; - color: black !important; -} - -.android-mobile-title { - display: none !important; -} - - -.android-logo-image { - height: 28px; - width: 140px; -} - - -.android-header { - overflow: visible; - background-color: white; -} - - .android-header .material-icons { - color: #767777 !important; - } - - .android-header .mdl-layout__drawer-button { - background: transparent; - color: #767777; - } - - .android-header .mdl-navigation__link { - color: #757575; - font-weight: 700; - font-size: 14px; - } - - .android-navigation-container { - /* Simple hack to make the overflow happen to the left instead... */ - direction: rtl; - -webkit-order: 1; - -ms-flex-order: 1; - order: 1; - width: 500px; - transition: opacity 0.2s cubic-bezier(0.4, 0, 0.2, 1), - width 0.2s cubic-bezier(0.4, 0, 0.2, 1); - } - - .android-navigation { - /* ... and now make sure the content is actually LTR */ - direction: ltr; - -webkit-justify-content: flex-end; - -ms-flex-pack: end; - justify-content: flex-end; - width: 800px; - } - - .android-search-box.is-focused + .android-navigation-container { - opacity: 0; - width: 100px; - } - - - .android-navigation .mdl-navigation__link { - display: inline-block; - height: 60px; - line-height: 68px; - background-color: transparent !important; - border-bottom: 4px solid transparent; - } - - .android-navigation .mdl-navigation__link:hover { - border-bottom: 4px solid #8bc34a; - } - - .android-search-box { - -webkit-order: 2; - -ms-flex-order: 2; - order: 2; - margin-left: 16px; - margin-right: 16px; - } - - .android-more-button { - -webkit-order: 3; - -ms-flex-order: 3; - order: 3; - } - - -.android-drawer { - border-right: none; -} - - .android-drawer-separator { - height: 1px; - background-color: #dcdcdc; - margin: 8px 0; - } - - .android-drawer .mdl-navigation__link.mdl-navigation__link { - font-size: 14px; - color: #757575; - } - - .android-drawer span.mdl-navigation__link.mdl-navigation__link { - color: #8bc34a; - } - - .android-drawer .mdl-layout-title { - position: relative; - background: #6ab344; - height: 160px; - } - - .android-drawer .android-logo-image { - position: absolute; - bottom: 16px; - } - -.android-be-together-section { - position: relative; - height: 800px; - width: auto; - background-color: #f3f3f3; - background: url('images/slide01.jpg') center 30% no-repeat; - background-size: cover; -} - -.logo-font { - font-family: 'Roboto', 'Helvetica', 'Arial', sans-serif; - line-height: 1; - color: #767777; - font-weight: 500; -} - -.android-slogan { - font-size: 60px; - padding-top: 160px; -} - -.android-sub-slogan { - font-size: 21px; - padding-top: 24px; -} - -.android-create-character { - font-size: 21px; - padding-top: 400px; -} - - .android-create-character a { - text-decoration: none; - color: #767777; - font-weight: 300; - } - -.android-screen-section { - position: relative; - padding-top: 60px; - padding-bottom: 80px; -} - -.android-screens { - text-align: right; - width: 100%; - white-space: nowrap; - overflow-x: auto; -} - -.android-screen { - text-align: center; -} - -.android-screen .android-link { - margin-top: 16px; - display: block; - z-index: 2; -} - -.android-image-link { - text-decoration: none; -} - -.android-wear { - display: inline-block; - width: 160px; - margin-right: 32px; -} - - .android-wear .android-screen-image { - width: 40%; - z-index: 1; - } - - -.android-phone { - display: inline-block; - width: 64px; - margin-right: 48px; -} - - .android-phone .android-screen-image { - width: 100%; - z-index: 1; - } - - -.android-tablet { - display: inline-block; - width: 110px; - margin-right: 64px; -} - - .android-tablet .android-screen-image { - width: 100%; - z-index: 1; - } - - .android-tablet .android-link { - display: block; - z-index: 2; - } - - -.android-tv { - display: inline-block; - width: 300px; - margin-right: 80px; -} - - .android-tv .android-screen-image { - width: 100%; - z-index: 1; - } - - -.android-auto { - display: inline-block; - width: 300px; - overflow: hidden; -} - - .android-auto .android-screen-image { - display: block; - height: 300px; - z-index: 1; - } - - -.android-wear-section { - position: relative; - background: url('images/wear.png') center top no-repeat; - background-size: cover; - height: 800px; -} - -.android-wear-band { - position: absolute; - bottom: 0; - width: 100%; - text-align: center; - background-color: #37474f; -} - -.android-wear-band-text { - max-width: 800px; - margin-left: 25%; - padding: 24px; - text-align: left; - color: white; -} - - .android-wear-band-text p { - padding-top: 8px; - } - -.android-link { - text-decoration: none; - color: #8bc34a !important; -} - - .android-link:hover { - color: #7cb342 !important; - } - - .android-link .material-icons { - position: relative; - top: -1px; - vertical-align: middle; - } - -.android-alt-link { - text-decoration: none; - color: #64ffda !important; - font-size: 16px; -} - - .android-alt-link:hover { - color: #00bfa5 !important; - } - - .android-alt-link .material-icons { - position: relative; - top: 6px; - } - -.android-customized-section { - text-align: center; -} - -.android-customized-section-text { - max-width: 500px; - margin-left: auto; - margin-right: auto; - padding: 80px 16px 0 16px; -} - - .android-customized-section-text p { - padding-top: 16px; - } - -.android-customized-section-image { - background: url('images/devices.jpg') center top no-repeat; - background-size: cover; - height: 400px; -} - -.android-more-section { - padding: 80px 0; - max-width: 1044px; - margin-left: auto; - margin-right: auto; -} - - .android-more-section .android-section-title { - margin-left: 12px; - padding-bottom: 24px; - } - -.android-card-container { -} - - .android-card-container .mdl-card__media { - overflow: hidden; - background: transparent; - } - - .android-card-container .mdl-card__media img { - width: 100%; - } - - .android-card-container .mdl-card__title { - background: transparent; - height: auto; - } - - .android-card-container .mdl-card__title-text { - color: black; - height: auto; - } - - .android-card-container .mdl-card__supporting-text { - height: auto; - color: black; - padding-bottom: 56px; - } - - .android-card-container .mdl-card__actions { - position: absolute; - bottom: 0; - } - - .android-card-container .mdl-card__actions a { - border-top: none; - font-size: 16px; - } - -.android-footer { - background-color: #fafafa; - position: relative; -} - - .android-footer a:hover { - color: #8bc34a; - } - - .android-footer .mdl-mega-footer--top-section::after { - border-bottom: none; - } - - .android-footer .mdl-mega-footer--middle-section::after { - border-bottom: none; - } - - .android-footer .mdl-mega-footer--bottom-section { - position: relative; - } - - .android-footer .mdl-mega-footer--bottom-section a { - margin-right: 2em; - } - - .android-footer .mdl-mega-footer--right-section a .material-icons { - position: relative; - top: 6px; - } - - -.android-link-menu:hover { - cursor: pointer; -} - - -/**** Mobile layout ****/ -@media (max-width: 900px) { - .android-navigation-container { - display: none; - } - - .android-title { - display: none !important; - } - - .android-mobile-title { - display: block !important; - position: absolute; - left: calc(50% - 70px); - top: 12px; - transition: opacity 0.2s cubic-bezier(0.4, 0, 0.2, 1); - } - - /* WebViews in iOS 9 break the "~" operator, and WebViews in OS X 10.10 break - consecutive "+" operators in some cases. Therefore, we need to use both - here to cover all the bases. */ - .android.android-search-box.is-focused ~ .android-mobile-title, - .android-search-box.is-focused + .android-navigation-container + .android-mobile-title { - opacity: 0; - } - - .android-more-button { - display: none; - } - - .android-search-box.is-focused { - width: calc(100% - 48px); - } - - .android-search-box .mdl-textfield__expandable-holder { - width: 100%; - } - - .android-be-together-section { - height: 350px; - } - - .android-slogan { - font-size: 26px; - margin: 0 16px; - padding-top: 24px; - } - - .android-sub-slogan { - font-size: 16px; - margin: 0 16px; - padding-top: 8px; - } - - .android-create-character { - padding-top: 200px; - font-size: 16px; - } - - .android-create-character img { - height: 12px; - } - - .android-fab { - display: none; - } - - .android-wear-band-text { - margin-left: 0; - padding: 16px; - } - - .android-footer .mdl-mega-footer--bottom-section { - display: none; - } -}