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:
    ProfStef go
[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:
        #( (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 [ | ] 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