SlideShare una empresa de Scribd logo
1 de 34
Descargar para leer sin conexión
Desarrollo con Tecnologías
Software Libre y OpenSource
Por: Mario J. Inga Cahuana
@mario21ic
¿Quién soy?
● Miembro de Apesol
● Software Developer
● SysAdmin GNU/Linux
● Aficionado a la [in]Seguridad
● Twitter: @mario21ic
● Github: http://github.com/mario21ic
Software Libre / Open Source
● Acceso al código.
● Buena documentación.
● Los problemas o dudas ya las han tenido
otras personas.
● Aplicación de buenas prácticas: testing,
integración contínua, comentarios, coding
style, etc
Lenguajes de programación
● Python => Multi - paradigma
● Ruby => Expresivo
● Java => Multi plataforma
● PHP => Orientado Web
● C/C++
IDE
● Eclipse
● Netbeans
● Ninja-Ide
Eclipse
Editor de texto
● Gedit
● Geany
● Vim
● Emacs
● Brackets
VIM
Control de versiones
Control de versiones
● Git
● Mercurial
● Subversion
● Bazaar
Repositorios en la nubeRepositorios en la nube
● Github
● Bitbucket
● Launchpad
GithubGithub
Dependency manager
Dependency manager
● PHP: Composer
● Python: Pip, Buildout
● Ruby: Bundler
● Java: Ant, Maven, Gradle
Environments
Diferentes:
- Interpretes
- Dependencias
- Módulos
- Librerías
- Etc
Isolated Environments
● PHP: Virtualhost en Apache, Nginx
● Python: Virtualenv
● Ruby: Rbenv, RVM
● Java: Virtualhost de Tomcat, Gladfish
Frameworks
● Python: Django, Web2py, Tornado
● PHP: Symfony2, Zend, PhalconPHP
● Ruby: Ruby on Rails
● Java: Spring, Hibernate, Mybatis, Struts,
Server Faces, PrimeFaces
Micro Frameworks
● Python: Bottle, Flask
● PHP: Silex
● Ruby: Sinatra
● Java: Spark
Test Unitario
● Python: Unittest
● Ruby: Rake
● PHP: PhpUnit
● Java: JUnit
Testing Funcionales
● Python: Behave
● Ruby: Rspec, Cucumber
● PHP: PphSpec, Behat
● Java: JBehave
Integración contínua
● Buildbot => Python
● Sismo => PHP
● Jenkins => Java
● Travis CI => Libre
Jenkins
Bases de datos
● MySQL
● MariaDB
● PostgreSQL
● Firebird
● SQLite
Modelador Database
● MySQL Workbench
● FabForce DBDesigner 4
● PgModeler
Mysql Workbench
NoSQL
● MongoDB
● Redis
● CouchDB
● Cassandra
● Neo4j
Modelador UML
● ArgoUML
● Umbrello
● BoUML
ArgoUML
Gestión de Proyectos
● Redmine
● Trac
● Bugzilla
● MantisBt
Redmine
Casos de éxito
● Facebook
● Twitter
● Google
● Redhat
● HSBC
● Toyota Motor
● NASA
● Odoo (OpenERP)
¿ Y en Perú?
● Grupo El Comercio
● Grupo La República
● RPP, Radio Programas del Perú
● CRP, Corporación Radial del Perú
● Consultoras
Recomendaciones
● Migrar a Linux
● Usar controlador de versiones.
● Aplicar: TDD, BDD, DDD.
● Uso de metodologías ágiles: kanban,
scrum, lean, xp, pomodoro.
● Aprender al menos un lenguaje cada año
¿Preguntas?
@mario21ic

Más contenido relacionado

La actualidad más candente

Swift sin hype y su importancia en el 2017
 Swift sin hype y su importancia en el 2017  Swift sin hype y su importancia en el 2017
Swift sin hype y su importancia en el 2017 Software Guru
 
Análisis de Grav Cms, ¿es mejor que Wordpress?
Análisis de Grav Cms, ¿es mejor que Wordpress?Análisis de Grav Cms, ¿es mejor que Wordpress?
Análisis de Grav Cms, ¿es mejor que Wordpress?Daniel Primo
 
Java mission control para monitoreo, administración y profilig de aplicacione...
Java mission control para monitoreo, administración y profilig de aplicacione...Java mission control para monitoreo, administración y profilig de aplicacione...
Java mission control para monitoreo, administración y profilig de aplicacione...César Hernández
 
Mejorando la productividad en proyectos java EE con CI y CD - OTN 2015
Mejorando la productividad en proyectos java EE con  CI y CD - OTN 2015 Mejorando la productividad en proyectos java EE con  CI y CD - OTN 2015
Mejorando la productividad en proyectos java EE con CI y CD - OTN 2015 César Hernández
 
Conferencia sobre "Scripting en gvSIG" con la versión 2.x
Conferencia sobre "Scripting en gvSIG" con la versión 2.xConferencia sobre "Scripting en gvSIG" con la versión 2.x
Conferencia sobre "Scripting en gvSIG" con la versión 2.xÓscar Martínez Olmos
 
Quita, que tú no sabes; ya lo hago yo. Generación e inyección de código en ti...
Quita, que tú no sabes; ya lo hago yo. Generación e inyección de código en ti...Quita, que tú no sabes; ya lo hago yo. Generación e inyección de código en ti...
Quita, que tú no sabes; ya lo hago yo. Generación e inyección de código en ti...Alberto Sanz Herrero
 
Desarrollando con PHP en Windows
Desarrollando con PHP en WindowsDesarrollando con PHP en Windows
Desarrollando con PHP en WindowsAntonio Ognio
 
Inyección de dependencia
Inyección de dependenciaInyección de dependencia
Inyección de dependenciaAdrián Paredes
 
Desarrollo en 4G(Groovy, Grails, Git, GoogleAppEngine)
Desarrollo en 4G(Groovy, Grails, Git, GoogleAppEngine)Desarrollo en 4G(Groovy, Grails, Git, GoogleAppEngine)
Desarrollo en 4G(Groovy, Grails, Git, GoogleAppEngine)Jose Juan R. Zuñiga
 
Gestiona tus dependencias con NuGet, VSTs y MyGet
Gestiona tus dependencias con NuGet, VSTs y MyGetGestiona tus dependencias con NuGet, VSTs y MyGet
Gestiona tus dependencias con NuGet, VSTs y MyGetLuis Fraile
 

La actualidad más candente (20)

Swift sin hype y su importancia en el 2017
 Swift sin hype y su importancia en el 2017  Swift sin hype y su importancia en el 2017
Swift sin hype y su importancia en el 2017
 
Análisis de Grav Cms, ¿es mejor que Wordpress?
Análisis de Grav Cms, ¿es mejor que Wordpress?Análisis de Grav Cms, ¿es mejor que Wordpress?
Análisis de Grav Cms, ¿es mejor que Wordpress?
 
Java mission control para monitoreo, administración y profilig de aplicacione...
Java mission control para monitoreo, administración y profilig de aplicacione...Java mission control para monitoreo, administración y profilig de aplicacione...
Java mission control para monitoreo, administración y profilig de aplicacione...
 
Mejorando la productividad en proyectos java EE con CI y CD - OTN 2015
Mejorando la productividad en proyectos java EE con  CI y CD - OTN 2015 Mejorando la productividad en proyectos java EE con  CI y CD - OTN 2015
Mejorando la productividad en proyectos java EE con CI y CD - OTN 2015
 
Conferencia sobre "Scripting en gvSIG" con la versión 2.x
Conferencia sobre "Scripting en gvSIG" con la versión 2.xConferencia sobre "Scripting en gvSIG" con la versión 2.x
Conferencia sobre "Scripting en gvSIG" con la versión 2.x
 
Skipfish
Skipfish Skipfish
Skipfish
 
Quita, que tú no sabes; ya lo hago yo. Generación e inyección de código en ti...
Quita, que tú no sabes; ya lo hago yo. Generación e inyección de código en ti...Quita, que tú no sabes; ya lo hago yo. Generación e inyección de código en ti...
Quita, que tú no sabes; ya lo hago yo. Generación e inyección de código en ti...
 
Dia1
Dia1Dia1
Dia1
 
Dia2
Dia2Dia2
Dia2
 
Desarrollando con PHP en Windows
Desarrollando con PHP en WindowsDesarrollando con PHP en Windows
Desarrollando con PHP en Windows
 
Principios de diseño
Principios de diseñoPrincipios de diseño
Principios de diseño
 
Inyección de dependencia
Inyección de dependenciaInyección de dependencia
Inyección de dependencia
 
Solid
SolidSolid
Solid
 
Una gota de elixir 2017
Una gota de elixir   2017Una gota de elixir   2017
Una gota de elixir 2017
 
No quiero vuestra basura en Android
No quiero vuestra basura en AndroidNo quiero vuestra basura en Android
No quiero vuestra basura en Android
 
Grails en SG08
Grails en SG08Grails en SG08
Grails en SG08
 
Desarrollo en 4G(Groovy, Grails, Git, GoogleAppEngine)
Desarrollo en 4G(Groovy, Grails, Git, GoogleAppEngine)Desarrollo en 4G(Groovy, Grails, Git, GoogleAppEngine)
Desarrollo en 4G(Groovy, Grails, Git, GoogleAppEngine)
 
Java poliglota
Java poliglotaJava poliglota
Java poliglota
 
Cómo contribuir en Proyectos de Código Abierto
Cómo contribuir en Proyectos de Código AbiertoCómo contribuir en Proyectos de Código Abierto
Cómo contribuir en Proyectos de Código Abierto
 
Gestiona tus dependencias con NuGet, VSTs y MyGet
Gestiona tus dependencias con NuGet, VSTs y MyGetGestiona tus dependencias con NuGet, VSTs y MyGet
Gestiona tus dependencias con NuGet, VSTs y MyGet
 

Similar a Desarrollo tecnologias software_libre_open_source

Los reinos de finizens - Nuestro stark tecnológico
Los reinos de finizens - Nuestro stark tecnológicoLos reinos de finizens - Nuestro stark tecnológico
Los reinos de finizens - Nuestro stark tecnológicoFinizens
 
Curso Angular 9 - CodeURJC - Marzo 2020
Curso Angular 9 - CodeURJC - Marzo 2020Curso Angular 9 - CodeURJC - Marzo 2020
Curso Angular 9 - CodeURJC - Marzo 2020Micael Gallego
 
Del free style al mvp
Del free style al mvpDel free style al mvp
Del free style al mvpJuanjo Marti
 
Socialbro por dentro - Betabeers Córdoba (18/10/2012)
Socialbro por dentro - Betabeers Córdoba (18/10/2012)Socialbro por dentro - Betabeers Córdoba (18/10/2012)
Socialbro por dentro - Betabeers Córdoba (18/10/2012)betabeers
 
Herramientas Ágiles para Desarrollo
Herramientas Ágiles para DesarrolloHerramientas Ágiles para Desarrollo
Herramientas Ágiles para DesarrolloGastón Guillerón
 
Herramientas agilesdesarrollo
Herramientas agilesdesarrolloHerramientas agilesdesarrollo
Herramientas agilesdesarrollogabrielpiccoli
 
Desarrollo rápido de apps web con laravel - DevAcademy
Desarrollo rápido de apps web con laravel - DevAcademyDesarrollo rápido de apps web con laravel - DevAcademy
Desarrollo rápido de apps web con laravel - DevAcademyJorge Antonio Linares Vera
 
Grails and Continuous delivery
Grails and Continuous deliveryGrails and Continuous delivery
Grails and Continuous deliveryInfo ArtdeCode
 
PHP Conference Argentina 2014
PHP Conference Argentina 2014PHP Conference Argentina 2014
PHP Conference Argentina 2014aciliainternet
 
Twittalicious - Desarrollo de un Producto con Drupal
Twittalicious - Desarrollo de un Producto con DrupalTwittalicious - Desarrollo de un Producto con Drupal
Twittalicious - Desarrollo de un Producto con DrupalRuben Teijeiro
 
Twittalicious - Desarrollo de un Producto con Drupal
Twittalicious - Desarrollo de un Producto con DrupalTwittalicious - Desarrollo de un Producto con Drupal
Twittalicious - Desarrollo de un Producto con DrupalRojomorgan
 

Similar a Desarrollo tecnologias software_libre_open_source (20)

Los reinos de finizens - Nuestro stark tecnológico
Los reinos de finizens - Nuestro stark tecnológicoLos reinos de finizens - Nuestro stark tecnológico
Los reinos de finizens - Nuestro stark tecnológico
 
Curso Angular 9 - CodeURJC - Marzo 2020
Curso Angular 9 - CodeURJC - Marzo 2020Curso Angular 9 - CodeURJC - Marzo 2020
Curso Angular 9 - CodeURJC - Marzo 2020
 
Pucela testingdays testing_en_php
Pucela testingdays testing_en_phpPucela testingdays testing_en_php
Pucela testingdays testing_en_php
 
Sobre GrooScript
Sobre GrooScriptSobre GrooScript
Sobre GrooScript
 
Del free style al mvp
Del free style al mvpDel free style al mvp
Del free style al mvp
 
Socialbro por dentro - Betabeers Córdoba (18/10/2012)
Socialbro por dentro - Betabeers Córdoba (18/10/2012)Socialbro por dentro - Betabeers Córdoba (18/10/2012)
Socialbro por dentro - Betabeers Córdoba (18/10/2012)
 
Python vs El Mundo
Python vs El MundoPython vs El Mundo
Python vs El Mundo
 
"Al rico" PHP
"Al rico" PHP"Al rico" PHP
"Al rico" PHP
 
20170405 - Ecosistema Javascript
20170405 - Ecosistema Javascript20170405 - Ecosistema Javascript
20170405 - Ecosistema Javascript
 
Herramientas Ágiles para Desarrollo
Herramientas Ágiles para DesarrolloHerramientas Ágiles para Desarrollo
Herramientas Ágiles para Desarrollo
 
Herramientas agilesdesarrollo
Herramientas agilesdesarrolloHerramientas agilesdesarrollo
Herramientas agilesdesarrollo
 
Principios de cloud native
Principios de cloud nativePrincipios de cloud native
Principios de cloud native
 
Desarrollo rápido de apps web con laravel - DevAcademy
Desarrollo rápido de apps web con laravel - DevAcademyDesarrollo rápido de apps web con laravel - DevAcademy
Desarrollo rápido de apps web con laravel - DevAcademy
 
Curso Php
Curso PhpCurso Php
Curso Php
 
Grails and Continuous delivery
Grails and Continuous deliveryGrails and Continuous delivery
Grails and Continuous delivery
 
PHP Conference Argentina 2014
PHP Conference Argentina 2014PHP Conference Argentina 2014
PHP Conference Argentina 2014
 
Scrum para uno
Scrum para unoScrum para uno
Scrum para uno
 
Go
GoGo
Go
 
Twittalicious - Desarrollo de un Producto con Drupal
Twittalicious - Desarrollo de un Producto con DrupalTwittalicious - Desarrollo de un Producto con Drupal
Twittalicious - Desarrollo de un Producto con Drupal
 
Twittalicious - Desarrollo de un Producto con Drupal
Twittalicious - Desarrollo de un Producto con DrupalTwittalicious - Desarrollo de un Producto con Drupal
Twittalicious - Desarrollo de un Producto con Drupal
 

Más de Mario IC

Aws Security Latam - Criptografia con KMS
Aws Security Latam - Criptografia con KMSAws Security Latam - Criptografia con KMS
Aws Security Latam - Criptografia con KMSMario IC
 
Aws Community Day Guatemala Criptografia con AWS KMS
Aws Community Day Guatemala Criptografia con AWS KMSAws Community Day Guatemala Criptografia con AWS KMS
Aws Community Day Guatemala Criptografia con AWS KMSMario IC
 
Testing Ansible Playbook con Molecule + TestInfra
Testing Ansible Playbook con Molecule + TestInfraTesting Ansible Playbook con Molecule + TestInfra
Testing Ansible Playbook con Molecule + TestInfraMario IC
 
Automatización de tareas con Ansible
Automatización de tareas con AnsibleAutomatización de tareas con Ansible
Automatización de tareas con AnsibleMario IC
 
Earthly, Dockerfile con esteroides
Earthly, Dockerfile con esteroidesEarthly, Dockerfile con esteroides
Earthly, Dockerfile con esteroidesMario IC
 
Infraestructura como Codigo para Developers
Infraestructura como Codigo para DevelopersInfraestructura como Codigo para Developers
Infraestructura como Codigo para DevelopersMario IC
 
Terraspace, the definitive terraform framework
Terraspace, the definitive terraform frameworkTerraspace, the definitive terraform framework
Terraspace, the definitive terraform frameworkMario IC
 
Manejo de packages en Kubernetes con Helm
Manejo de packages en Kubernetes con HelmManejo de packages en Kubernetes con Helm
Manejo de packages en Kubernetes con HelmMario IC
 
Cloud native Computing Perú Octubre
Cloud native Computing Perú OctubreCloud native Computing Perú Octubre
Cloud native Computing Perú OctubreMario IC
 
Agiles Peru 2019 - Infrastructure As Code
Agiles Peru 2019 - Infrastructure As CodeAgiles Peru 2019 - Infrastructure As Code
Agiles Peru 2019 - Infrastructure As CodeMario IC
 
Workshop Infrastructure as Code - Suestra
Workshop Infrastructure as Code - SuestraWorkshop Infrastructure as Code - Suestra
Workshop Infrastructure as Code - SuestraMario IC
 
Docker Compose to Production with Docker Swarm
Docker Compose to Production with Docker SwarmDocker Compose to Production with Docker Swarm
Docker Compose to Production with Docker SwarmMario IC
 
GDG Lima - Docker Compose
GDG Lima - Docker ComposeGDG Lima - Docker Compose
GDG Lima - Docker ComposeMario IC
 
Docker Lima meetup - 22 de junio
Docker Lima meetup - 22 de junioDocker Lima meetup - 22 de junio
Docker Lima meetup - 22 de junioMario IC
 
Docker Compose para el Docker Lima Meetup Mayo
Docker Compose para el Docker Lima Meetup MayoDocker Compose para el Docker Lima Meetup Mayo
Docker Compose para el Docker Lima Meetup MayoMario IC
 
Testing en BDD con Python y Behave
Testing en BDD con Python y BehaveTesting en BDD con Python y Behave
Testing en BDD con Python y BehaveMario IC
 
Infrastructure as Code with Terraform
Infrastructure as Code with TerraformInfrastructure as Code with Terraform
Infrastructure as Code with TerraformMario IC
 
Docker Birthday Peru #dockerbday
Docker Birthday Peru #dockerbdayDocker Birthday Peru #dockerbday
Docker Birthday Peru #dockerbdayMario IC
 
Modelado de API con RAML
Modelado de API con RAMLModelado de API con RAML
Modelado de API con RAMLMario IC
 
Docker Ecosystem: Part V - Docker Registry
Docker Ecosystem: Part V - Docker RegistryDocker Ecosystem: Part V - Docker Registry
Docker Ecosystem: Part V - Docker RegistryMario IC
 

Más de Mario IC (20)

Aws Security Latam - Criptografia con KMS
Aws Security Latam - Criptografia con KMSAws Security Latam - Criptografia con KMS
Aws Security Latam - Criptografia con KMS
 
Aws Community Day Guatemala Criptografia con AWS KMS
Aws Community Day Guatemala Criptografia con AWS KMSAws Community Day Guatemala Criptografia con AWS KMS
Aws Community Day Guatemala Criptografia con AWS KMS
 
Testing Ansible Playbook con Molecule + TestInfra
Testing Ansible Playbook con Molecule + TestInfraTesting Ansible Playbook con Molecule + TestInfra
Testing Ansible Playbook con Molecule + TestInfra
 
Automatización de tareas con Ansible
Automatización de tareas con AnsibleAutomatización de tareas con Ansible
Automatización de tareas con Ansible
 
Earthly, Dockerfile con esteroides
Earthly, Dockerfile con esteroidesEarthly, Dockerfile con esteroides
Earthly, Dockerfile con esteroides
 
Infraestructura como Codigo para Developers
Infraestructura como Codigo para DevelopersInfraestructura como Codigo para Developers
Infraestructura como Codigo para Developers
 
Terraspace, the definitive terraform framework
Terraspace, the definitive terraform frameworkTerraspace, the definitive terraform framework
Terraspace, the definitive terraform framework
 
Manejo de packages en Kubernetes con Helm
Manejo de packages en Kubernetes con HelmManejo de packages en Kubernetes con Helm
Manejo de packages en Kubernetes con Helm
 
Cloud native Computing Perú Octubre
Cloud native Computing Perú OctubreCloud native Computing Perú Octubre
Cloud native Computing Perú Octubre
 
Agiles Peru 2019 - Infrastructure As Code
Agiles Peru 2019 - Infrastructure As CodeAgiles Peru 2019 - Infrastructure As Code
Agiles Peru 2019 - Infrastructure As Code
 
Workshop Infrastructure as Code - Suestra
Workshop Infrastructure as Code - SuestraWorkshop Infrastructure as Code - Suestra
Workshop Infrastructure as Code - Suestra
 
Docker Compose to Production with Docker Swarm
Docker Compose to Production with Docker SwarmDocker Compose to Production with Docker Swarm
Docker Compose to Production with Docker Swarm
 
GDG Lima - Docker Compose
GDG Lima - Docker ComposeGDG Lima - Docker Compose
GDG Lima - Docker Compose
 
Docker Lima meetup - 22 de junio
Docker Lima meetup - 22 de junioDocker Lima meetup - 22 de junio
Docker Lima meetup - 22 de junio
 
Docker Compose para el Docker Lima Meetup Mayo
Docker Compose para el Docker Lima Meetup MayoDocker Compose para el Docker Lima Meetup Mayo
Docker Compose para el Docker Lima Meetup Mayo
 
Testing en BDD con Python y Behave
Testing en BDD con Python y BehaveTesting en BDD con Python y Behave
Testing en BDD con Python y Behave
 
Infrastructure as Code with Terraform
Infrastructure as Code with TerraformInfrastructure as Code with Terraform
Infrastructure as Code with Terraform
 
Docker Birthday Peru #dockerbday
Docker Birthday Peru #dockerbdayDocker Birthday Peru #dockerbday
Docker Birthday Peru #dockerbday
 
Modelado de API con RAML
Modelado de API con RAMLModelado de API con RAML
Modelado de API con RAML
 
Docker Ecosystem: Part V - Docker Registry
Docker Ecosystem: Part V - Docker RegistryDocker Ecosystem: Part V - Docker Registry
Docker Ecosystem: Part V - Docker Registry
 

Desarrollo tecnologias software_libre_open_source