Este documento presenta el lenguaje de programación Go de Google. Go ofrece la flexibilidad de Python con la velocidad del código compilado, usando un modelo de programación concurrente basado en canales. Incluye paquetes para crear servidores web, manejar bases de datos y más. Aunque los binarios son grandes y carece de generics, Go sigue siendo popular para proyectos que requieren alta concurrencia y rendimiento.
CommitConf 2019 - Micronaut y GraalVm: La combinación perfectaIván López Martín
Micronaut es un framework para microservicios en la JVM que no utiliza reflection y pre-calcula todo lo necesario para el funcionamiento de las aplicaciones ahead-of-time (AoT) durante la compilación. De esta forma consigue que las aplicaciones arranquen extremadamente rápido y que consuman muy poca memoria.
¿Qué pasaría si te dijera que puedes reducir el tiempo de arranque en órdenes de magnitud? ¿Y si pudieras reducir aún más el consumo de memoria?
GraalVM es una nueva máquina virtual de Oracle que soporta muchos lenguajes en runtime. Además GraalVM tiene la habilidad de compilar las aplicaciones Java a binarios nativos, haciendo que sea el compañero ideal de Micronaut. En esta charla aprenderás cómo funciona GraalVM y cómo puedes aprovechar toda su potencia para convertir tus aplicaciones Micronaut a binarios nativos.
CommitConf 2019 - Micronaut y GraalVm: La combinación perfectaIván López Martín
Micronaut es un framework para microservicios en la JVM que no utiliza reflection y pre-calcula todo lo necesario para el funcionamiento de las aplicaciones ahead-of-time (AoT) durante la compilación. De esta forma consigue que las aplicaciones arranquen extremadamente rápido y que consuman muy poca memoria.
¿Qué pasaría si te dijera que puedes reducir el tiempo de arranque en órdenes de magnitud? ¿Y si pudieras reducir aún más el consumo de memoria?
GraalVM es una nueva máquina virtual de Oracle que soporta muchos lenguajes en runtime. Además GraalVM tiene la habilidad de compilar las aplicaciones Java a binarios nativos, haciendo que sea el compañero ideal de Micronaut. En esta charla aprenderás cómo funciona GraalVM y cómo puedes aprovechar toda su potencia para convertir tus aplicaciones Micronaut a binarios nativos.
Jesús Olmos - ChromeHack, a html5/chrome webhack tool [Rooted CON 2013]RootedCON
Presentación en exclusiva para RootedCON de una extensión para el navegador Chrome que lo transformará en un navegador de ataque. Consiguiendo altas velocidades de ataque sin hacer caer el web-server puesto que se adapta a el. Permite estadísticas de ataque, es multiproceso y multi thread con un bus de comunicación interno entre los componentes, muy ergonómico y sencillo de usar.
Algunas características: Fuzzea, craquea, ejecuta los eventos javascript, audit pasivo mientras navegas, IA de aprendizaje, tanteador de paramestros, logger, notificador de inicio/fin, gestor de wordlists y simbiosis con apps externas.
El web hacking no es nada nuevo, y es un tema mas que explotado, sin embargo una app free revolucionaria que va a ser usada en todo el planeta, por su potencia y facilidad de uso.
Según la evolución de las herramientas de web hacking, cada vez se han ido unificando mas en tools que lo hacen todo y cada vez mas cercanas al navegador (proxies) pero ahora la tool de ataque es el propio navegador, el cual realizara el hack manual y también el hack automatico combiando.
Las páginas web con contenido dinamico, hacen que muchas tools queden obsoletas al no emular el javascript, y aunque se emule el javascript nunca se hará mejor que desde el propio navegador. Esta tool dispara los eventos javascript de la página para atacar desde un estado de normalidad y adaptandose a la velocidad que absorva el servidor. A su vez, aprovecha la sandbox de protección mas potente que existe, para evitar vulnerabildiades de contra-ataque (ataque a traves del ataque)
La ponencia, combinará detalles técinos sobre comunicación entre componentes chrome y la sandbox de protección, con evolución del web-hacking y un poco de inteligencia artificial.
La IA consiste en:
- aprendizaje simple: retroalimentar las wordlist según se navega
- sistema experto: tantear parámetros de la forma mas efectiva
- aprendizaje complejo: aprender los ataques manuales elaborados por el auditor.
Plone es un gestor de contenidos implementado en Python sobre el framework de aplicaciones Zope. Recientemente Plone cumplio 9 años y durante este tiempo se realizaron iniciativas y acciones que aún son inéditas en muchos programas y comunidades libres.
En esta charla analiza cuestiones técnicas, de comundiad y legales que forman parte de las lecciones aprendidas por la comunidad Plone y que pueden ser de utilidad en Drupal.
101 Panel Tech Days - Spock: O por qué deberías utilizarlo para testear tu có...Iván López Martín
Recuerdas esos días en los que testeabas utilizando JUnit? ¡Qué! ¿Todavía lo usas? ¿Es aburrido, verdad? Seguro que te inventas un montón de excusas para no testear tu código. Por suerte esos días pertenecen ahora al pasado porque Spockestá entre nosotros.
Spock es un framework de tests basado en Groovy que podemos utilizar para testear aplicaciones Java y Groovy que hace que escribir tests sea divertido otra vez. Podemos escribir tests totalmente expresivos, fáciles de leer y de mantener debido a su DSL y a todo el poder de Groovy.
En esta charla tipo live-coding aprenderás por medio de ejemplos los conceptos básicos de Spock y verás qué fácil es testear aplicaciones Java. ¡Te advierto que después de la charla no tendrás ningún excusa para no testear tu código!
Codemotion Madrid 2019 - ¡GraalVM y Micronaut: compañeros perfectos!Iván López Martín
Micronaut es un framework para microservicios de la JVM que utiliza ahead-of-time (AoT) compilation en lugar de reflection. GraalVM es una nueva máquina virtual de Oracle que tiene la habilidad de compilar las aplicaciones Java a binarios nativos, haciendo que sea el compañero ideal de Micronaut. Con ambos el arranque de las aplicaciones es extremadamente rápido y el consumo de memoria muy pequeño. En esta charla aprenderás cómo sacar provecho a GraalVM en tus aplicaciones Micronaut convirtiéndolas a aplicaciones nativas y cómo funciona la integración de ambos frameworks.
Jupyter e IPython para manipulación de datosSoftware Guru
Durante SGCE se presentó una herramienta de análisis de datos corriendo en web desde un servidor ARM tipo Raspberry Pi, analizando feeds de twitter en tiempo real.
La herramienta se llama IPython y su plataforma, llamada Jupyter permite ejecutar de forma paralela instancias de Python, Julia y Scala, entre otros lenguajes.
Hablaremos de estas herramientas de software libre como entornos de análisis de datos avanzados capaces de escalar de dispositivos IoT hasta clusters de alto rendimiento capaces de gestionar decenas de servidores bajo la misma plataforma.
Go es un lenguaje de programación de código abierto lanzado por Google en 2009, creado con la motivación de manejar el nivel de programación que tiene Google en cuanto a número de líneas de código y la cantidad de ingenieros que trabajan en el código. Además, para facilitar la interconexión de programas dentro de sistemas distribuidos de miles de máquinas.
En este meetup revisamos este lenguaje, sus principales características, qué empresas lo usan, cómo dar los primeros pasos y una aplicación de ejemplo.
Groovy es un lenguaje alternativo para la JVM, al ser un lenguaje dinámico, permite que usemos conceptos como metaprogramación; característica que sirve como base para manipular el código en tiempo de ejecución.
Groovy extiende las librerías estándar de Java con una colección de clases que son implementadas con metaprogramación para facilitar el uso de diversos APIs. Esta colección se llama GDK, mostraremos los diversos usos que tiene y como ayudan al desarrollador.
Para finalizar veremos como participar en manipulación del byte-code que genera el compilador de Groovy con simples anotaciones de Java. Mostrare las anotaciones que Groovy provee y como podemos implementar las propias.
Estas caracteristicas del lenguaje; forman una triada que permiten potenciar y elevar las capacidades de los desarrolladores que usen Groovy para sus aplicaciones.
Support slides of the talk "Accessibility on Flutter" which I made for the I FlutterConf in Marbella (October 18-11, 2019). In the talk, we saw the importance of accessibility in apps, how and why we remade Outbarriers with Flutter and some tips to make apps accessible with Flutter.
XXV Betabeers Granada: Blockchain, más allá de las criptomonedasJM Robles
¿Hay valor más allá de la especulación con las criptomonedas? Por supuesto! En esta charla vemos el potencial que tienen los Smart Contract, montamos en directo una red privada y lo ejecutamos. Además veremos el futuro próximo del minado y analizamos las ICOs y sus posibles uso fraudulentos.
Jesús Olmos - ChromeHack, a html5/chrome webhack tool [Rooted CON 2013]RootedCON
Presentación en exclusiva para RootedCON de una extensión para el navegador Chrome que lo transformará en un navegador de ataque. Consiguiendo altas velocidades de ataque sin hacer caer el web-server puesto que se adapta a el. Permite estadísticas de ataque, es multiproceso y multi thread con un bus de comunicación interno entre los componentes, muy ergonómico y sencillo de usar.
Algunas características: Fuzzea, craquea, ejecuta los eventos javascript, audit pasivo mientras navegas, IA de aprendizaje, tanteador de paramestros, logger, notificador de inicio/fin, gestor de wordlists y simbiosis con apps externas.
El web hacking no es nada nuevo, y es un tema mas que explotado, sin embargo una app free revolucionaria que va a ser usada en todo el planeta, por su potencia y facilidad de uso.
Según la evolución de las herramientas de web hacking, cada vez se han ido unificando mas en tools que lo hacen todo y cada vez mas cercanas al navegador (proxies) pero ahora la tool de ataque es el propio navegador, el cual realizara el hack manual y también el hack automatico combiando.
Las páginas web con contenido dinamico, hacen que muchas tools queden obsoletas al no emular el javascript, y aunque se emule el javascript nunca se hará mejor que desde el propio navegador. Esta tool dispara los eventos javascript de la página para atacar desde un estado de normalidad y adaptandose a la velocidad que absorva el servidor. A su vez, aprovecha la sandbox de protección mas potente que existe, para evitar vulnerabildiades de contra-ataque (ataque a traves del ataque)
La ponencia, combinará detalles técinos sobre comunicación entre componentes chrome y la sandbox de protección, con evolución del web-hacking y un poco de inteligencia artificial.
La IA consiste en:
- aprendizaje simple: retroalimentar las wordlist según se navega
- sistema experto: tantear parámetros de la forma mas efectiva
- aprendizaje complejo: aprender los ataques manuales elaborados por el auditor.
Plone es un gestor de contenidos implementado en Python sobre el framework de aplicaciones Zope. Recientemente Plone cumplio 9 años y durante este tiempo se realizaron iniciativas y acciones que aún son inéditas en muchos programas y comunidades libres.
En esta charla analiza cuestiones técnicas, de comundiad y legales que forman parte de las lecciones aprendidas por la comunidad Plone y que pueden ser de utilidad en Drupal.
101 Panel Tech Days - Spock: O por qué deberías utilizarlo para testear tu có...Iván López Martín
Recuerdas esos días en los que testeabas utilizando JUnit? ¡Qué! ¿Todavía lo usas? ¿Es aburrido, verdad? Seguro que te inventas un montón de excusas para no testear tu código. Por suerte esos días pertenecen ahora al pasado porque Spockestá entre nosotros.
Spock es un framework de tests basado en Groovy que podemos utilizar para testear aplicaciones Java y Groovy que hace que escribir tests sea divertido otra vez. Podemos escribir tests totalmente expresivos, fáciles de leer y de mantener debido a su DSL y a todo el poder de Groovy.
En esta charla tipo live-coding aprenderás por medio de ejemplos los conceptos básicos de Spock y verás qué fácil es testear aplicaciones Java. ¡Te advierto que después de la charla no tendrás ningún excusa para no testear tu código!
Codemotion Madrid 2019 - ¡GraalVM y Micronaut: compañeros perfectos!Iván López Martín
Micronaut es un framework para microservicios de la JVM que utiliza ahead-of-time (AoT) compilation en lugar de reflection. GraalVM es una nueva máquina virtual de Oracle que tiene la habilidad de compilar las aplicaciones Java a binarios nativos, haciendo que sea el compañero ideal de Micronaut. Con ambos el arranque de las aplicaciones es extremadamente rápido y el consumo de memoria muy pequeño. En esta charla aprenderás cómo sacar provecho a GraalVM en tus aplicaciones Micronaut convirtiéndolas a aplicaciones nativas y cómo funciona la integración de ambos frameworks.
Jupyter e IPython para manipulación de datosSoftware Guru
Durante SGCE se presentó una herramienta de análisis de datos corriendo en web desde un servidor ARM tipo Raspberry Pi, analizando feeds de twitter en tiempo real.
La herramienta se llama IPython y su plataforma, llamada Jupyter permite ejecutar de forma paralela instancias de Python, Julia y Scala, entre otros lenguajes.
Hablaremos de estas herramientas de software libre como entornos de análisis de datos avanzados capaces de escalar de dispositivos IoT hasta clusters de alto rendimiento capaces de gestionar decenas de servidores bajo la misma plataforma.
Go es un lenguaje de programación de código abierto lanzado por Google en 2009, creado con la motivación de manejar el nivel de programación que tiene Google en cuanto a número de líneas de código y la cantidad de ingenieros que trabajan en el código. Además, para facilitar la interconexión de programas dentro de sistemas distribuidos de miles de máquinas.
En este meetup revisamos este lenguaje, sus principales características, qué empresas lo usan, cómo dar los primeros pasos y una aplicación de ejemplo.
Groovy es un lenguaje alternativo para la JVM, al ser un lenguaje dinámico, permite que usemos conceptos como metaprogramación; característica que sirve como base para manipular el código en tiempo de ejecución.
Groovy extiende las librerías estándar de Java con una colección de clases que son implementadas con metaprogramación para facilitar el uso de diversos APIs. Esta colección se llama GDK, mostraremos los diversos usos que tiene y como ayudan al desarrollador.
Para finalizar veremos como participar en manipulación del byte-code que genera el compilador de Groovy con simples anotaciones de Java. Mostrare las anotaciones que Groovy provee y como podemos implementar las propias.
Estas caracteristicas del lenguaje; forman una triada que permiten potenciar y elevar las capacidades de los desarrolladores que usen Groovy para sus aplicaciones.
Support slides of the talk "Accessibility on Flutter" which I made for the I FlutterConf in Marbella (October 18-11, 2019). In the talk, we saw the importance of accessibility in apps, how and why we remade Outbarriers with Flutter and some tips to make apps accessible with Flutter.
XXV Betabeers Granada: Blockchain, más allá de las criptomonedasJM Robles
¿Hay valor más allá de la especulación con las criptomonedas? Por supuesto! En esta charla vemos el potencial que tienen los Smart Contract, montamos en directo una red privada y lo ejecutamos. Además veremos el futuro próximo del minado y analizamos las ICOs y sus posibles uso fraudulentos.
18º Betabeers Granada: Cómo hacer un BOT para Facebook y BatteverJM Robles
Los BOTs o asistentes inteligentes están de moda. Ahora puedes colocar un asistente virtual inteligente que atienda a tus potenciales clientes usando tu fanpage de Facebook. Contaremos cómo puedes hacer eso gracias a la tecnología de IBM Bluemix y Watson
8º Betabeers Granada: Agresso ERP PoC por Unit4JM Robles
Los chicos de Unit4 presentan su proof-of-concept de App para smartwatch Android Wear y Sony de su ERP Agresso. Explican las principales limitaciones que le encuentran a la plataforma así como sus ventajas.
8º Betabeers Granada: Android Wear y sus smartwatchesJM Robles
Introducción al 8º Betabeers Granada sobre Android Wear y sus smartwatches. GDG Granada nos presentó la tecnología y Unit4 nos enseño una aplicación real para los nuevos smartwatchs
4º Betabeers Granada: De pelis 3D, máquinas recretivas y antivirusJM Robles
En la 4º edición de Betabeers Granada, los chicos de Kandor Graphics nos contaron su experiencia a la hora de crear la película 3D "Justin y la Espada de Valor". En la sección de proyectos se presento el antivirus Bithidraulyco y la ginda la puso las máquinas recreativas de RecreGames (el networking nunca fue más divertido)
Greyman: desarrollando videojuegos y animaciones 3D espectaculares - 3º Betab...JM Robles
Máximo y Miguel Angel nos presentan su nueva start-up, Greyman, dedicada a crear videojuegos pero focalizados a la animación 3D dado su gran background adquirido creando los 93' minutos de nada de Justin y la Espada de Valor.
Desarrollo colaborativo con GIT por @jjmerelo - 3º Betabeers GranadaJM Robles
JJ Merelo (@jjmerelo) nos cuenta las bondades de GIT para el desarrollo colaborativo de software y ¡libros!
También explica las grandes features que tiene GITHUB
La Oficina de Software Libre de la Universidad de GranadaJM Robles
Pablo Hinojosa nos presentó la gran labor que realiza la Oficina de Software Libe de la Universidad de Granada para formentar el uso del Software Libre
El pasado 28 de Noviembre tuvo lugar en Granada el 1º Betabeers. Esteban Dorado dió la charla principal sobre Google App Engine para Apps Móviles. Pablo Hinojosa presentó la Oficina de Software Libre de la Universidad de Granda. Los chicos de Giftday nos presentaron su prometedora App. Descubrimos que Obsso manifiesta que cambiar is the new comprar gracias a Víctor González. Nos echamos unas cervezas de rigor gracias a Digitalilusion S.L.
2. README.txt
- ¿Por qué?
- Primeros pasos, Go go go!
- Vistazo rápido
- Paquetes para todo
- Marchando un webserver!
- ¿Quién usa esto?
- No todo es tan bonito
- ¡Me lo quedo!
- The 6W
3. ¿Por qué?
BSD License
-
- = +
simplicidad / flexibilidad / RAD eficiencia
Go 0 Go 1
11/2009 2010 2011 2012 03/2012
4. Primeros pasos, Go go go!
- Benchmark* servidor web
VS
- Apache Benchmark Go fue un 119% más rápido que Python
% ab -n 40000 -c 8 http://localhost:port/
5. Vistazo rápido
- "Sintaxis conocida"
if , for, switch, package pthread
C/C++
- ... pero peculiar:
var i int
for i = 0; i < n ; i++ {
fmt.Println(i)
}
threading
- Go es concurrente: CSP Python
miCanal := make(chan string)
go func() {
miCanal <- "desde el hilo"
}()
fmt.Println(<- miCanal)
7. Marchando un webserver!
Pasos:
1. Instalar Go
(descomprimir un zip)
2. Establecer variables
de entorno GOROOT y
PATH
3. Abrir shell y copiar el
ejemplo
4. Obtener
dependencias
% go get
5. Compilar
% go build
6. Voilá!
¡46 líneas!
8. ¿Quién usa esto?
- MapReduce
-
- Stat Hat
- Airbrake
- Canonical
- Novartis
- ...
9. No todo es tan bonito
- Binarios gordos
3,4 MB
- "Alergia"
- Garbage collector
- Generics
interface{}
10. ¡Me lo quedo!
- Quiero empezar con Go
play.golang.org
co
po
un
ar
jug
e Download , install & go
m
lo
ar tour
ici
Só
In
ra l día groups.google.com/groups/golang-nuts
Esta
golang.org
En
la
nu
be
developers.google.com/appengine/doc/go/overview
Po
rta
rm
i lib
rer
ía
fav
gnu/linux windows mac osx
ori
ta*
godashboard.appspot.com/project & Cgo
x86 x86_64 arm
11. The 6W
- ¿Qué?
Lenguaje flexible como Python con la eficiencia de C
- ¿Quién?
Google y la comunidad de SL
- ¿Donde?
golang.org
- ¿Cómo?
Compilando y optimizando el código
- ¿Cuándo?
Go 1, Marzo 2012
- ¿Por qué?
Desarrollar más rápido, ejecutar con menos recursos