Data Week

Artifact [00f5f6d505]
Login

Artifact 00f5f6d505299a8e66a0269d798f5ca4ba15a81b:

Wiki page [dataweek3-3] by digitalfredy 2016-03-02 22:23:50.
D 2016-03-02T22:23:50.475
L dataweek3-3
N text/x-markdown
P 48b4c83977e6379e3dac888e10c762bf1a1cc5a8
U digitalfredy
W 6207
Data week día 3:
==============
Jueves 27 de febrero de 2016
    
Tutorial está en el ProfStef, que se lanza en el playground:
<pre>
    ProfStef go
</pre>
  
[Hola mundo!](http://mutabit.com/offray/blog/en/entry/dumb-hello-world)

- [Ruby](https://www.ruby-lang.org/en/): es el hijo de Smalltalk criado por Perl y por Python).
  - [Ejemplos de Ruby](https://en.wikipedia.org/wiki/Ruby_%28programming_language%29#Examples)
- [Tracing the Dynabook](http://tkbr.ccsp.sfu.ca/dynabook/)
- [Tutorial interactivo](http://mutabit.com/repos.fossil/dataweek/doc/tip/Ediciones/2/tutorial.ston)
- [Unix haters handbook](https://en.wikipedia.org/wiki/The_Unix-Haters_Handbook)
- [Repositorio del data week](http://mutabit.com/repos.fossil/dataweek/index)

Apuntes Tutorial
--------------
Los siguientes son algunos apuntes de los participantes en el taller que se hizo el tutorial, se conservan como memoria del taller pero se recomienda revisar directamente el tutorial desde la barra de herramientas de Grafoscopio.

###TUTORIAL

**Inspector de objetos**: Me permite explorar la base de datos  y entrar a los detalles de los objetos

Comandos:
    
- (Cmd) o (Alt) + D = Ejecuta la linea seleccionada
- (Cmd) o (Alt) + P= Imprime (poner cursor en la linea pero si genera error, seleccionar todo)
- (Cmd) o (Alt) + I= Propiedades del objeto (Inspector de objetos)
- Ejecutar todo el código: Clic con el botón play (esquina superior derecha del playground)
    
**Instanciar**: pasar de lo abstracto a lo concreto.  (Los operadores son mensajes)

- Character cr. "Cambio de línea"
- Character space. "Espacio"
- ,  "Para concatenar"
- SplitOn. "Para separar caracteres"
- #  "Designa Símbolo"
- == Comparación
- =  Otro tipo de Comparación
- : "Asignación"
- . "Hace que una sentencia se ejecute"
- | "Operación lógica OR, Dos premisas se cumple cualquiera de ellas"
- & "Operación lógica AND, Dos premisas se una de ellas"
- @ "Coordenada, un punto cartesiano, geométrico / En (Una cosa como a la otra)"


Una cadena es una colección  de caracteres (String)

Un símbolo es una cadena de caracteres único globalmente. Es una manera de refererirme en modos no unívocos a algo.

En matemáticas hay dos tipos de igualdad:
    
- ***x=3*** es una ***Asignación***. A la variable x le estamos asignando el valor 3
- ***2=3*** es una ***Comparación***. Dados dos elementos conocidos decir si es o no el mismo. En este caso, 2=3 da FALSO ;)
    
Para Smalltalk l es así:
    
- ***x := 3*** es una ***Asignación***
- ***2 = 3*** es una ***Comparación***
- ***a == a***  es una ***Comparación fuerte***. ¿Se trata del mismo símbolo? Comparación de unicidad del objeto

Hay dos tipos de arreglos:
    
- Los arreglos literales: #() Yo defino los objetos y si no están definidos los defino dentro de la regla
- Los arreglos dinámicos: { ( Puedo hacer cálculos antes de meterlos dentro del arreglo
    
Diferencia entre arreglo dinámico y estático:

<pre>
        #( (2+3)  (6+6)  'hello' , 'Stef') size. En este caso 5 (Aquí se lee la coma como un caracter)
</pre>
<pre>
       { (2+3) . (6+6) . 'hello' , 'Stef' }size. En este caso 3 (Aquí  'hello' , 'Stef'  fue concatenado)
</pre>


[Ecuaciones de Maxwell](https://en.wikipedia.org/wiki/Maxwell's_equations)

###MENSAJES

- Unarios: Un objeto, un mensaje 1 class.
- Binarios: Un objeto, (mensaje en la mitad), un objeto, (mensaje en la mitad), otro objeto (las operaciones son mensajes +-*/ = ) 1 + 1 = 2.
- Keywords:  (:) Mensajes con argumentos (between: and: max: to: do:) 4 between: 0 and: 3.

<pre>
for i (1;10;i++),

1 to: 10 do: []
</pre>

PRIORIDAD

Unario > Binario > Keywords"

<pre>
2 + 3 raisedTo: 2. 

2 raisedTo: (3 + 2). 

(2 raisedTo: 3) + 2.
</pre>


El orden matemático no se aplican en Pharo


En Pharo yo puedo ejecutar cualquier cosa en cualquier momento sin un orden específico

[Artículo Wired UK sobre App para asmáticos que mide la calidad del aire en Londres](http://www.wired.co.uk/news/archive/2016-02/23/apple-researchkit-asthma-health-app)


Objetos, Mensajes y Clausuras

Los bloques son las Clausuras. Los bloques usan paréntesis cuadrados para definirse [ ] Guardamos el código para usarlo después cuando las condiciones estén dadas. Uno puede definir variables dentro de bloques
Permiten metaprogramación

[ | ]  es la mínima expresión en SmallTalk

Small Talk tiene únicamente 6 palabras reservadas
Una colección es un arreglo de objetos de diferente índole
Collect: Dada una colección coleccione bajo una condición  otra colección 
Select: Muestra los objetos que cumplen la condición
Reject: NO muestra los que cumplen la condición


[DATASET DE CONTRATOS](https://github.com/dav009/contra)
Contexto:
- https://openspending.org/
- http://openbudgets.eu/
- http://data.okfn.org/
- http://presupuestoabierto.org/
- http://macro.media.mit.edu/

Comunidades recomendadas para participar:
- [Open Data Colombia](https://groups.google.com/forum/#!forum/opendataco)
 -Sin cuenta de gmail: mandar un correo a opendataco+subscribe@googlegroups.com 
- [Discuss en la Open Knowledge](https://discuss.okfn.org/)


[Ejemplo set de datos de la Silla Vacía](http://lasillavacia.com/historia/los-cacaos-y-los-amigos-que-financian-los-candidatos-en-bogota-51961) [Google drive](https://docs.google.com/spreadsheets/d/12VSfpsZu1RWufYisVjpgxRVXxhTShAOCtKhEkSygN_c/pubhtml?gid=1093409245&single=true)

[JSON](https://en.wikipedia.org/wiki/JSON)
  - [Ejemplo de pares atributo, valor en un archivo JSON](https://en.wikipedia.org/wiki/JSON#Example)
  - [Ejemplo de esquema y datos en JSON](https://en.wikipedia.org/wiki/JSON#Schema_and_metadata)

SQLite:
======

- [Sitio web oficial de SQLite](http://sqlite.org/)
  - [Por qué usarlo?](http://sqlite.org/whentouse.html)
- Instalación:
  1. Entramos a: http://sqlite.org/download.html
  2. Buscamos en "Precompiled binaries"

##Tipos de Bases de datos:
- Cliente -servidor: En este caso se  intenta crear un lugar de información al que accedamos todos.
- No Cliente-servidor: El resto
    


Z 9f5553aae47dda1d705fe585e48ec1cb