Presentación realizada para la asignatura de Aplicaciones y Servicios Web del curso 2013-2014 en la FIB-UPC.
Introduce aspectos básicos del lenguage y muestra cuál sería el flujo de trabajo con CoffeeScript tanto en entornos "aislados"/"standalone" como trabajando con el framework Symfony2.
Experiencia del grupo Aula Virtual con Gitlab+SonarQube, trabajando con la filosofía open source de Sakai. Destaca la posibilidad de documentar el proyecto con markdown, la edición online, la revisión de código en línea mediante comentarios, las métricas de Sonar Qube sobre deuda técnica, entre otras
Muchas veces por desconocimiento y mal asesoramientos tanto en las nuevas empresas como en empresas ya constituidas se instala software sin licencias. Perdiendo la posibilidad de mejorar la productividad e incluso reducir los costes para la empresa.
Experiencia del grupo Aula Virtual con Gitlab+SonarQube, trabajando con la filosofía open source de Sakai. Destaca la posibilidad de documentar el proyecto con markdown, la edición online, la revisión de código en línea mediante comentarios, las métricas de Sonar Qube sobre deuda técnica, entre otras
Muchas veces por desconocimiento y mal asesoramientos tanto en las nuevas empresas como en empresas ya constituidas se instala software sin licencias. Perdiendo la posibilidad de mejorar la productividad e incluso reducir los costes para la empresa.
No solo un lenguaje puede resolver los problemas que se enfrentan al desarrollar aplicaciones. Cada lenguaje tiene su semántica y sin duda su aplicación. En la plataforma Java desde hace algunos años se brinda soporte para numerosos lenguajes, muchos de ellos creados específicos para la plataforma y otros traídos y adaptados para que puedan explotar las bondades, herramientas y librerías que desde hace muchos años forman parte del ecosistema Java.
En esta charla mostraremos algunos de los lenguajes mas representativos y mas usados en la plataforma Java, los lenguajes que mostraremos son Jython, JRuby, Scala y Groovy. Veremos un poco de su historia y como fueron integrados a la plataforma, así como algunos casos de éxito del uso de estos lenguajes. Ademas de ello analizaremos algunas herramientas disponibles para su uso.
Al termino de la charla los asistentes sabrán que existen muchas alternativas de lenguajes de programación sobre la plataforma Java para desarrollar aplicaciones sumamente escalables y algunas de las tendencias del mercado.
Esta ponencia tiene como objetivo mostrar como conjuntar y aprovechar las ventajas de trabajar con Groovy & Grails, llevar el control del versionado con Git y simular la puesta en producción de la aplicación en GoogleAppEngine.
Introducción a la programación para joomlaRoberto Segura
Introducción a la programación para Joomla usando un módulo de ejemplo.
Usado para el hangout: http://www.joomgouts.com/programas/3x12-introduccion-a-la-programacion-para-joomla-primeros-pasos
Introduccción a la programación en Joomla!Roberto Segura
¿Quieres saber lo fácil que es empezar a programar extensiones para Joomla? ¿Qué necesitas? ¿Qué beneficios tiene Joomla frente a otras plataformas? Esta sesión pretende resolver todas tus dudas y enseñarte el camino para ponerte a programar.
NET5 es la nueva plataforma de desarrollo unificada, para programar cualquier tipo de aplicaciones modernas con Visual Studio. La construcción de nuevas aplicaciones .NET5, se pueden desarrollar y publicar en diferentes sistemas operativos, plataformas de nube, plataformas móviles, IoT y otros dispositivos con diferentes lenguajes y herramientas.
Charla para la #PEUMConf2018.
Introducción a docker, cómo hemos evolucionado los entornos de desarrollo, desde la instalación de soluciones manualmente, uso de servidores, vagrant...
Realización de una demo práctica usando docker-compose para montar un entorno de desarrollo de algo tipo Php, Wordpress, Node...
Casper JS - Asegurando la calidad en front-end DrupalDavid Gil Sánchez
En esta sesión presentaremos como estamos utilizando CasperJS (http://casperjs.org/) para asegurar la calidad de algunos de nuestros desarrollos y evitar los tan temidos (y comunes) bugs de regresión.
Mostraremos el uso básico de CasperJS y veremos un caso real en el que estamos testando la lógica principal de un portal con procesos complejos que involucran submits de formularios multipaso, testeo con multiples roles, etc...
Actualizar a nuevos frameworks, paradigmas, explorar en proyectos "greenfield" está genial, pero ¿y si el software que estás manteniendo lleva años funcionando y no lo puedes modificar así como así? ¿Puedes modernizarlo de alguna manera: procesos, automatización, testing...?
En esta charla compartiremos las experiencias de cómo una aplicación "legacy" ha ido evolucionando con el paso de los años sin tocar el core de la aplicación (Java + Struts + MySQL), simplemente optimizando los procesos mediante la automatización de tareas, virtualización de entornos y gestión de la configuración.
No solo un lenguaje puede resolver los problemas que se enfrentan al desarrollar aplicaciones. Cada lenguaje tiene su semántica y sin duda su aplicación. En la plataforma Java desde hace algunos años se brinda soporte para numerosos lenguajes, muchos de ellos creados específicos para la plataforma y otros traídos y adaptados para que puedan explotar las bondades, herramientas y librerías que desde hace muchos años forman parte del ecosistema Java.
En esta charla mostraremos algunos de los lenguajes mas representativos y mas usados en la plataforma Java, los lenguajes que mostraremos son Jython, JRuby, Scala y Groovy. Veremos un poco de su historia y como fueron integrados a la plataforma, así como algunos casos de éxito del uso de estos lenguajes. Ademas de ello analizaremos algunas herramientas disponibles para su uso.
Al termino de la charla los asistentes sabrán que existen muchas alternativas de lenguajes de programación sobre la plataforma Java para desarrollar aplicaciones sumamente escalables y algunas de las tendencias del mercado.
Esta ponencia tiene como objetivo mostrar como conjuntar y aprovechar las ventajas de trabajar con Groovy & Grails, llevar el control del versionado con Git y simular la puesta en producción de la aplicación en GoogleAppEngine.
Introducción a la programación para joomlaRoberto Segura
Introducción a la programación para Joomla usando un módulo de ejemplo.
Usado para el hangout: http://www.joomgouts.com/programas/3x12-introduccion-a-la-programacion-para-joomla-primeros-pasos
Introduccción a la programación en Joomla!Roberto Segura
¿Quieres saber lo fácil que es empezar a programar extensiones para Joomla? ¿Qué necesitas? ¿Qué beneficios tiene Joomla frente a otras plataformas? Esta sesión pretende resolver todas tus dudas y enseñarte el camino para ponerte a programar.
NET5 es la nueva plataforma de desarrollo unificada, para programar cualquier tipo de aplicaciones modernas con Visual Studio. La construcción de nuevas aplicaciones .NET5, se pueden desarrollar y publicar en diferentes sistemas operativos, plataformas de nube, plataformas móviles, IoT y otros dispositivos con diferentes lenguajes y herramientas.
Charla para la #PEUMConf2018.
Introducción a docker, cómo hemos evolucionado los entornos de desarrollo, desde la instalación de soluciones manualmente, uso de servidores, vagrant...
Realización de una demo práctica usando docker-compose para montar un entorno de desarrollo de algo tipo Php, Wordpress, Node...
Casper JS - Asegurando la calidad en front-end DrupalDavid Gil Sánchez
En esta sesión presentaremos como estamos utilizando CasperJS (http://casperjs.org/) para asegurar la calidad de algunos de nuestros desarrollos y evitar los tan temidos (y comunes) bugs de regresión.
Mostraremos el uso básico de CasperJS y veremos un caso real en el que estamos testando la lógica principal de un portal con procesos complejos que involucran submits de formularios multipaso, testeo con multiples roles, etc...
Actualizar a nuevos frameworks, paradigmas, explorar en proyectos "greenfield" está genial, pero ¿y si el software que estás manteniendo lleva años funcionando y no lo puedes modificar así como así? ¿Puedes modernizarlo de alguna manera: procesos, automatización, testing...?
En esta charla compartiremos las experiencias de cómo una aplicación "legacy" ha ido evolucionando con el paso de los años sin tocar el core de la aplicación (Java + Struts + MySQL), simplemente optimizando los procesos mediante la automatización de tareas, virtualización de entornos y gestión de la configuración.
Kubernetes technical overview and our experience at Restorando :: Buenos Aire...Restorando
A technical overview of kubernetes (in spanish). We, at Restorando, are running it in production for 6+ months.
This was presented at the AWS meet up, with some other guys talking about other options to run Docker in production on AWS. We talked about kubernetes (what we are using :))
Some animations are not correctly shown here, sorry about that.
Curso de Angular 9 para desarrollo de aplicaciones SPA (Single Page Application).
● Tema 1: Introducción a Angular: TypeScript y herramientas
● Tema 2: Componentes
● Tema 3: REST y Servicios
● Tema 4: Aplicaciones multipágina: Router
● Tema 5: Librerías de componentes
● Tema 6: Publicación
Si quiere descargar la presentación y los códigos fuente, dirijase a:
http://programaciondecomputadoresunalmzl.wikispaces.com/codigos_y_diapositivas
Le agradecería si me reporta los errores que encuentre en la diapositiva (daalvarez arroba unal punto edu punto co)
Charla en la que hablé sobre cómo hemos llegado al ecosistema actual de JavaScript, pasando por las distintas tecnologías web que hemos ido conociendo.
FirebugNext ¿Qué se viene en la nueva versión de Firebug?hidekel
En esta presentación voy a presentar en sociedad las nuevas mejoras realizadas en Firebug 1.5.
Un repaso sobre las mejoras funcionales, de UI, optimizaciones y la presentación del nuevo
sistema de extensión de Firebug. También mencionaré como se puede ayudar al desarrollo de
próximas versiones de Firebug.
Introducción al Desarrollo de software usando containers en local mediante Earthly. Para evitar issues en entorno de continuous integration y continuous delivery que no puedan replicarse facilmente
Jenkins - don't break my builds! is an introductory talk in spanish I gave at the PHP Conference 2013 in Argentina. I spoke about how I met Contintinuous Integration at Google in 2005, and how my experience has been since. I also gave tips on how to start using it in projects that have no "integration" to speak of (such as most PHP projects).
We broke up with the monolith, and started dating #eventSourcing - #symfonyCatJavier Ferrer González
How we're trying to develop a new chat service through WebSockets at letgo coming from a monolithic REST API.
The challenge: Maintain the backwards compatibility. We don't want to force the mobile app users to update in order to use the new system. Furthermore, we have a lot of uncertainty on how the new system will perform, so in order to reduce it, we're taking advantage of an Event Sourcing approach in order to process in the new chat system in the staging environment the actual production load of the current system.
If you want to learn more about the whole process we've followed and not just the synchronization part, come to the Software Craftsmanship Barcelona! This time we (@SergiGP and me, @JavierCane, will try to explain some more interesting things about how we're trying to develop this new chat system and, maybe you could bring some interesting discussion points :D).
I'll do a video summarizing some of the talk conceptos for the http://codely.tv video blog, so stay tuned! http://twitter.com/CodelyTV
Slides de la charla "Redescubre la programación - Code Smells, Refactorings, y cosa fina" para la jornada de puertas abiertas (OpenDay) del Máster en Programación Web de Alto Rendimiento (MPWAR) de LaSalle.
Introducción a los Code Smells y el Refactoring junto con una visión global de lo que ofrece el máster.
Ejemplo de replanteamiento de diseño de Software en Uvinum.
Introducir conceptos como Clean Code, Code Smells, Refactoring, Arquitectura Hexagonal, testing, Domain-Driven Design, etc.
Más información: http://javierferrer.me/informatica-real-orientacion/
Video: https://www.youtube.com/watch?v=fKWvYyNrtAI
Slides de una sesión para tratar de explicar en qué consiste el trabajo de un informático en "El Mundo Real™" a chavales que están acabando la ESO.
#SpyFiles - Análisis de #FinFisher y los Conflictos Políticos del Malware-as-...Javier Ferrer González
Presentación del trabajo sobre el Leak publicado por WikiLeaks "SpyFiles" acerca del uso de FinFisher, un virus espía (malware/spyware) vendido a gobiernos para espiar a sus propios ciudadanos.
Más información: http://javierferrer.me/finfisher-conflictos-politicos-malware/
Trabajo expuesto el 15/12/2014 en la asignatura de Seguridad Informática de la Facultat d'Informàtica de Barcelona - Universitat Politècnica de Catalunya (FIB-UPC). Llevado a cabo por Jaume López, Marc Vijfschaft y Javier Ferrer.
Presentación sobre el proyecto realizado para la asignatura de Gestión de Proyectos de Software de la Facultad de Informática de Barcelona (FIB-UPC) por todo el subgrupo 13 del curso 2013-2014.
Presentación realizada para la asignatura de Aplicaciones y Servicios Web del curso 2013-2014 en la FIB-UPC.
Da unas pinceladas muy básicas sobre el framework de desarrollo web Ruby on Rails.
El contenido de la presentación se rige en base a la rúbrica de evaluación de la asignatura, de ahí que salgan quizás demasiados datos históricos y de perspectivas
Es un diagrama para La asistencia técnica o apoyo técnico es brindada por las compañías para que sus clientes puedan hacer uso de sus productos o servicios de la manera en que fueron puestos a la venta.
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informáticavazquezgarciajesusma
En este proyecto de investigación nos adentraremos en el fascinante mundo de la intersección entre el arte y los medios de comunicación en el campo de la informática.
La rápida evolución de la tecnología ha llevado a una fusión cada vez más estrecha entre el arte y los medios digitales, generando nuevas formas de expresión y comunicación.
Continuando con el desarrollo de nuestro proyecto haremos uso del método inductivo porque organizamos nuestra investigación a la particular a lo general. El diseño metodológico del trabajo es no experimental y transversal ya que no existe manipulación deliberada de las variables ni de la situación, si no que se observa los fundamental y como se dan en su contestó natural para después analizarlos.
El diseño es transversal porque los datos se recolectan en un solo momento y su propósito es describir variables y analizar su interrelación, solo se desea saber la incidencia y el valor de uno o más variables, el diseño será descriptivo porque se requiere establecer relación entre dos o más de estás.
Mediante una encuesta recopilamos la información de este proyecto los alumnos tengan conocimiento de la evolución del arte y los medios de comunicación en la información y su importancia para la institución.
3. ¿Qué es?
● Capa por encima de JavaScript
○ Lenguaje creado para simplificar JavaScript.
○ El código en CoffeeScript se compila y genera
JavaScript.
○ No penaliza rendimiento (no interpreta en tiempo de
ejecución)
CoffeeScript
Compilador
CoffeeScript
JavaScript
6. Flujo de trabajo (“standalone”)
Instalación
1. Instalar Homebrew (Mac OS)
○ Entra en conflicto con Macports
○ No se ejecuta como sudo
○ Necesita permisos totales del usuario
actual en /usr/local
2. Instalar Node.js (Mac OS)
○
brew install node
3. Instalar CoffeeScript vía npm
○
npm install -g http://github.com/jashkenas/coffee-script/tarball/master
i.
/usr/local/bin/coffee -> /usr/local/lib/node_modules/coffeescript/bin/coffee
ii.
/usr/local/bin/cake -> /usr/local/lib/node_modules/coffee-script/bin/cake
7. Flujo de trabajo (“standalone”)
Compilación
A. Única compilación de todo *.coffee dentro de
coffeescripts/ a javascripts/
○
coffee -o javascripts/ -c coffeescripts/
B. Añadir watcher
○
coffee -w -o javascripts/ -c coffeescripts/
C. Unificar varios .coffee en 1 único .js
○
coffee -j javascripts/app.js -c coffeescripts/*.coffee
8. Flujo de trabajo (Symfony2)
Instalación
1. Añadir a
composer.json
el paquete
2. Modificar config.yml
(gestión assetic)
9. Flujo de trabajo (Symfony2)
Desarrollo y compilación
3. Inclusión asset en plantilla twig
4. Compilación assetic
php app/console assetic:dump
10. Pros y contras
● Pros
○ Al compilar se unan patrones JavaScript, haciéndolo
más rápido y usando menos código.
○ Código más legible.
● Contras
○ Los mensajes de compilación poco explícitos.
○ No hay relación directa entre el código CS y el JS
generado al compilar (depuración).
○ Adaptación a un nuevo lenguaje.
○ Migrar código JS existente a CS
11. Vitalidad del proyecto
● GitHub
○
○
○
○
3499 Commits (último mes: 16 de 11 autores)
2924 Issues cerrados (último mes: 23)
54 Releases
125 Contributors
● Real World™:
○ Posterous
○ Airbnb Mobile
○ Basecamp Mobile
○ https://github.com/jashkenas/coffee-script/wiki/In-TheWild
●
24/12/2009 versión 0.1 (actual: 1.6.3)
12. Conclusiones
● JavaScript ya no es sólo para listeners de
eventos “tontos” ni efectos webs old school.
● Pre-procesadores ayudan
● Código más simple y legible
● “Nuevo” lenguaje
● Fuerte contra en debug
● Mapeo “débil” frente a AngularJS/Knockout
13. Referencias
● Web oficial: http://coffeescript.org/
● GitHub: https://github.com/jashkenas/coffee-script
● Migraciones de JS a CS: http://js2coffee.org/
● Libro CoffeeScript: Accelerated JavaScript
Development: http://pragprog.
com/book/tbcoffee/coffeescript