Data Week

Artifact [48b4c83977]
Login

Artifact 48b4c83977e6379e3dac888e10c762bf1a1cc5a8:

Wiki page [dataweek3-3] by digitalfredy 2016-03-02 21:59:08.
D 2016-03-02T21:59:08.882
L dataweek3-3
N text/x-markdown
U digitalfredy
W 5851
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)


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"
XXXXX
- ==  o =  Dos tipos 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:
XXXXXXXXXXXXXXXX
    
    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:
        
        #( (2+3)  (6+6)  'hello' , 'Stef') size. En este caso 5 (Aquí se lee la coma como un caracter)

       { (2+3) . (6+6) . 'hello' , 'Stef' }size. En este caso 3 (Aquí  'hello' , 'Stef'  fue concatenado)


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.


for i (1;10;i++),

1 to: 10 do: []

PRIORIDAD

Unario > Binario > Keywords"


2 + 3 raisedTo: 2. 

2 raisedTo: (3 + 2). 

(2 raisedTo: 3) + 2.


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

[ I ]  es la mínima expresión en Small Talk

Small Talk tiene 6 palabras reservadas, Phython
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 mandan 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
  - https://en.wikipedia.org/wiki/JSON#Example Ejemplo de pares atributo, valor en un archivo JSON 
  - https://en.wikipedia.org/wiki/JSON#Schema_and_metadata

SQLite:
======

- http://sqlite.org/
Por qué usarlo: http://sqlite.org/whentouse.html

## Instalación:
    
Entramos a: http://sqlite.org/download.html y buscamos en:
Precompiled binari

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 910a09b4f2271653412c1a6cce4914ae