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:
    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) 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