Este documento presenta una introducción a una API RESTful creada con Node.js. Explica brevemente Node.js y las APIs RESTful, y luego muestra la estructura y código de un servidor de ejemplo que expone una API para gestionar charlas. El código incluye modelos, rutas y servicios para operaciones CRUD sobre recursos de charla, implementando así una API RESTful completa para la gestión de charlas.
NodeJS es una plataforma que permite programar servidores dedicados en Javascript de forma sencilla y eficaz. Pese a que Javascript no es un lenguaje con soporte a la concurrencia, el carácter no bloqueante de las operaciones que realizan accesos de entrada salida E/S permite avanzar los flujos de ejecución aumentando la productividad y la escalabilidad del sistema total. En efecto, los tiempos de espera en cada operación motivados por los accesos a disco son aprovechados para procesar nuevas peticiones entrantes en el servidor. Pese a sus innegables ventajas en productividad, el modelo de programación se complica. Dado que ahora las operaciones se liberan del flujo de control para retomarse posteriormente, ¿cómo podemos determinar cuándo una operación ha terminado? ¿Cómo podemos recuperar sus resultados? ¿Cómo gestionamos sus errores potenciales? A lo largo de este texto presentaremos diferentes modelos de programación que pueden ser empleado para dar respuesta a estas y otras preguntas en el marco de la programación asíncrona.
Despliegue de aplicaciones en Azure Web AppsHernan Guzman
Presentación usada para conferencia sobre despliegue de aplicaciones en Azure Web Apps en el Politecnico Jaime Isaza Cadavid y la Universidad Autónoma Latinoamericana
NodeJS es una plataforma que permite programar servidores dedicados en Javascript de forma sencilla y eficaz. Pese a que Javascript no es un lenguaje con soporte a la concurrencia, el carácter no bloqueante de las operaciones que realizan accesos de entrada salida E/S permite avanzar los flujos de ejecución aumentando la productividad y la escalabilidad del sistema total. En efecto, los tiempos de espera en cada operación motivados por los accesos a disco son aprovechados para procesar nuevas peticiones entrantes en el servidor. Pese a sus innegables ventajas en productividad, el modelo de programación se complica. Dado que ahora las operaciones se liberan del flujo de control para retomarse posteriormente, ¿cómo podemos determinar cuándo una operación ha terminado? ¿Cómo podemos recuperar sus resultados? ¿Cómo gestionamos sus errores potenciales? A lo largo de este texto presentaremos diferentes modelos de programación que pueden ser empleado para dar respuesta a estas y otras preguntas en el marco de la programación asíncrona.
Despliegue de aplicaciones en Azure Web AppsHernan Guzman
Presentación usada para conferencia sobre despliegue de aplicaciones en Azure Web Apps en el Politecnico Jaime Isaza Cadavid y la Universidad Autónoma Latinoamericana
La Web está evolucionando a pasos agigantados en los últimos tiempos. Una de las direcciones de avance en este sentido apunta hacia su modularización. En lugar de construir pesadas aplicaciones monolíticas, parece estar más en sintonía con los principios arquitectónicos de la Web hacer un desarrollo dirigido por la construcción de componentes Web sencillos, atómicos y funcionales que fomenten su reutilización transversal y puedan utilizarse como etiquetas de autor personalizadas para articular soluciones elaboradas. Pero más allá de limitarnos a construir componentes Web y utilizarnos de manera conjunta en una página huesped, la orientación a componentes exige encontrar cierto grado de interoperabilidad entre los mismos para ofrecer una sensación de continuidad en su uso al usuario final.
De acuerdo a esta idea, en esta charla comenzaremos haciendo una revisión de la tecnología utilizada para la construcción de componentes Web según las especificaciones estándar de la W3C y del WWG, haciendo uso de la Plataforma de soporte Polymer de Google como implementación nuclear de referencia. Esto nos dará pie para presentar el problema de cómo puede abordarse la construcción de soluciones Web orientadas a componentes para ofrecer niveles de interoperabilidad adecuados. Ofreceremos, en este sentido, algunas soluciones arquitectónicas al respecto y presentaremos ejemplos de su aplicabilidad práctica en contextos realistas.
Orientando a Componentes la Web
Charla Desarrollo de sobre Componentes Web en Polymer para HTML5 Spain Madrid 14/07/14
La Web está evolucionando a pasos agigantados en los últimos tiempos. Una de las direcciones de avance en este sentido apunta hacia su modularización. En lugar de construir pesadas aplicaciones monolíticas, parece estar más en sintonía con los principios arquitectónicos de la Web hacer un desarrollo dirigido por la construcción de componentes Web sencillos, atómicos y funcionales que fomenten su reutilización transversal y puedan utilizarse como etiquetas de autor personalizadas para articular soluciones elaboradas. Pero más allá de limitarnos a construir componentes Web y utilizarnos de manera conjunta en una página huesped, la orientación a componentes exige encontrar cierto grado de interoperabilidad entre los mismos para ofrecer una sensación de continuidad en su uso al usuario final.
De acuerdo a esta idea, en esta charla comenzaremos haciendo una revisión de la tecnología utilizada para la construcción de componentes Web según las especificaciones estándar de la W3C y del WWG, haciendo uso de la Plataforma de soporte Polymer de Google como implementación nuclear de referencia. Esto nos dará pie para presentar el problema de cómo puede abordarse la construcción de soluciones Web orientadas a componentes para ofrecer niveles de interoperabilidad adecuados. Ofreceremos, en este sentido, algunas soluciones arquitectónicas al respecto y presentaremos ejemplos de su aplicabilidad práctica en contextos realistas.
Damos a un repaso a las principales características de Angular 2 y como aprovechas las nuevas revoluciones en el desarrollo frontend: Web components y TypeScript
Se muestra una introducción a Web Services, un caso de la vida real, se propone un ejercicio y finalmente se muestra un ejemplo del tipo "hola mundo" y se explica como se realiza
La Web está evolucionando a pasos agigantados en los últimos tiempos. Una de las direcciones de avance en este sentido apunta hacia su modularización. En lugar de construir pesadas aplicaciones monolíticas, parece estar más en sintonía con los principios arquitectónicos de la Web hacer un desarrollo dirigido por la construcción de componentes Web sencillos, atómicos y funcionales que fomenten su reutilización transversal y puedan utilizarse como etiquetas de autor personalizadas para articular soluciones elaboradas. Pero más allá de limitarnos a construir componentes Web y utilizarnos de manera conjunta en una página huesped, la orientación a componentes exige encontrar cierto grado de interoperabilidad entre los mismos para ofrecer una sensación de continuidad en su uso al usuario final.
De acuerdo a esta idea, en esta charla comenzaremos haciendo una revisión de la tecnología utilizada para la construcción de componentes Web según las especificaciones estándar de la W3C y del WWG, haciendo uso de la Plataforma de soporte Polymer de Google como implementación nuclear de referencia. Esto nos dará pie para presentar el problema de cómo puede abordarse la construcción de soluciones Web orientadas a componentes para ofrecer niveles de interoperabilidad adecuados. Ofreceremos, en este sentido, algunas soluciones arquitectónicas al respecto y presentaremos ejemplos de su aplicabilidad práctica en contextos realistas.
Orientando a Componentes la Web
Charla Desarrollo de sobre Componentes Web en Polymer para HTML5 Spain Madrid 14/07/14
La Web está evolucionando a pasos agigantados en los últimos tiempos. Una de las direcciones de avance en este sentido apunta hacia su modularización. En lugar de construir pesadas aplicaciones monolíticas, parece estar más en sintonía con los principios arquitectónicos de la Web hacer un desarrollo dirigido por la construcción de componentes Web sencillos, atómicos y funcionales que fomenten su reutilización transversal y puedan utilizarse como etiquetas de autor personalizadas para articular soluciones elaboradas. Pero más allá de limitarnos a construir componentes Web y utilizarnos de manera conjunta en una página huesped, la orientación a componentes exige encontrar cierto grado de interoperabilidad entre los mismos para ofrecer una sensación de continuidad en su uso al usuario final.
De acuerdo a esta idea, en esta charla comenzaremos haciendo una revisión de la tecnología utilizada para la construcción de componentes Web según las especificaciones estándar de la W3C y del WWG, haciendo uso de la Plataforma de soporte Polymer de Google como implementación nuclear de referencia. Esto nos dará pie para presentar el problema de cómo puede abordarse la construcción de soluciones Web orientadas a componentes para ofrecer niveles de interoperabilidad adecuados. Ofreceremos, en este sentido, algunas soluciones arquitectónicas al respecto y presentaremos ejemplos de su aplicabilidad práctica en contextos realistas.
Damos a un repaso a las principales características de Angular 2 y como aprovechas las nuevas revoluciones en el desarrollo frontend: Web components y TypeScript
Se muestra una introducción a Web Services, un caso de la vida real, se propone un ejercicio y finalmente se muestra un ejemplo del tipo "hola mundo" y se explica como se realiza
Presentación que explica de manera breve y sencilla lo que es el Internet, sus antecedentes y la importancia que tiene en la actualidad, además de explicar lo que es el navegador web, y los más utilizados.
este trabajo es con el fin de q los tedudiantes y docentes aprendan y se puedan apoyar por medio de este navegador q sepan q es muy util parea nuestro uso pedagogico.
Resumen de redes (el modelo OSI, el modelo TCP/IP, TCP vs UDP, conceptos varios)
https://www.asanzdiego.com/2019/08/recursos-de-mi-modulo-tecnologias-de-internet-impartido-en-la-uah.html
Resumen computación (Complejidad computacional, estructuras de datos, teoría de grafos)
https://www.asanzdiego.com/2019/08/recursos-de-mi-modulo-tecnologias-de-internet-impartido-en-la-uah.html
Desde que empecé con Linux hace años, la consola, los scripts y yo nos hemos ido conociendo poco a poco hasta que ha surgido una bonita amistad. Hoy, en cuanto me surge la oportunidad juego con ellos para automatizar casi cualquier cosa de mi sistema operativo.
En esta charla quiero enseñar a programar scripts de Bash desde cero e ir subiendo la complejidad para terminar con AWK.
Originalmente es un taller que presenté en el t3chfest y que tuvo muy buena acogida, y que para el CommitConf he reducido y reestructurado como charla para que los que vengáis aprendáis los conceptos básicos de Bash y de AWK.
Desarrollo de aplicaciones descentralizadas en la Blockchain de EthereumAdolfo Sanz De Diego
Este año, como Proyecto de Fin de Máster me he pegado con el desarollo de aplicaciones descentralizadas (ÐApps) con contratos inteligentes (Smart Contracts) en la Blockchain de Ethereum.
En este taller pretendo hacer una pequeña aplicación descentralizada con un pequeño contrato inteligente, y enseñar todo lo que yo he aprendido a base de golpes.
Veremos un poco de Solidity, un lenguaje para programar contratos inteligentes. Utilizaremos también Truffle, un framework para desarrollar y testear aplicaciones descentralizadas. Necesitaremos usar web3js para llamar desde nuestra web a la Blockchain. Usaremos MetaMask para interactuar con la aplicación. Y para minar nuestras transacciones de prueba levantaremos una instancia de Ganache.
JHipster es un generador de código basado en Yeoman que nos genera un proyecto con Spring Boot en el back-end y con Angular en el front-end.
Llevo un año y medio desarrollando con Spring Boot y Angular y desde hace unos meses, mis nuevos desarrollos los realizo con JHipster. Por eso me he decidido a proponer este taller en donde montaré una pequeña aplicación con este tándem, y en donde hablaré también de mi propia experiencia.
Para poder asistir al taller es necesario tener instalado JHipster y tu IDE favorito (yo usaré Spring Tool Suite para back y Visual Studio Code para front). Para no tener problemas de descarga durante el taller tenéis que crearos un proyecto vacío, en el cual haremos modificaciones durante el taller. Creároslo con los valores por defecto, y luego ejecutarlo con ./mvnw para que se descarguen todas las librerías. Deberíais poder ver algo en http://localhost:8080 ;)
En los años 70, en el MIT, los primeros hackers compartían sus códigos, como los chefs comparten sus recetas. Uno de esos hackers, Richard Stallman, creó en los 80 la Free Software Foundation. Desde entonces el movimiento del Software Libre no ha parado de crecer, invadiendo no solo los ámbitos informáticos, sino extendiéndose al resto de la sociedad.
En esta charla quiero hablar de la historia del Software Libre: como surgió, personas destacadas, y cómo poco a poco ha ido expandiéndose. Hablaré de las distintas licencias de Software Libre, sus similitudes y sus diferencias. Pero también hablaré de las licencias Creative Commons, del movimiento Open Hardware y del movimiento Open Data. Hablaré de cómo puedes colaborar con estos movimientos, y por qué es bueno para tí, para tu carrera profesional y para la sociedad. Terminaré haciendo una reflexión de cómo podría llegar a ser el futuro si la revolución del Software Libre sigue su progresión.
En los años 70, en el MIT, los primeros hackers compartían sus códigos, como los chefs comparten sus recetas. Uno de esos hackers, Richard Stallman, creó en los 80 la Free Software Foundation. Desde entonces el movimiento del Software Libre no ha parado de crecer, invadiendo no solo los ámbitos informáticos, sino extendiéndose al resto de la sociedad. En esta charla quiero hablar de la historia del Software Libre: como surgió, personas destacadas, y cómo poco a poco ha ido expandiéndose. Hablaré de las distintas licencias de Software Libre, sus similitudes y sus diferencias. Pero también hablaré de las licencias Creative Commons, del movimiento Open Hardware y del moviemiento Open Data. Hablaré de cómo puedes colaborar con estos movimientos, y por qué es bueno para tí, para tu carrera profesional y para la sociedad. Terminaré haciendo una reflexión de cómo podría llegar a ser el futuro si la revolución del Software Libre sigue su progresión.
Después de participar en un montón de hackathones como participantes, y después de haber co-organizado más de 20 hackathones, nos gustaría compartir con vosotros todo nuestro conocimiento sobre hackathones, ya sea como participante pero sobre todo como organizador.
Primero intento definir que es un hacker. Luego cuento como y cuando surgieron los hackers. Para continuar listo los hitos más importantes que desde mi punto de vista han conseguido. Y para terminar hago una reflexión de cómo podría llegar a ser el futuro que nos espera si la ética hacker sigue extendiéndose, no solo ya a ámbitos informáticos, sino al resto de la sociedad.
Primero intento definir que es un hacker. Luego cuento como y cuando surgieron los hackers. Para continuar listo los hitos más importantes que desde mi punto de vista han conseguido. Y para terminar hago una reflexión de cómo podría llegar a ser el futuro que nos espera si la ética hacker sigue extendiéndose, no solo ya a ámbitos informáticos, sino al resto de la sociedad.