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