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: @mari...
Software Libre / Open Source
● Acceso al código.
● Buena documentación.
● Los problemas o dudas ya las han tenido
otras pe...
Lenguajes de programación
● Python => Multi - paradigma
● Ruby => Expresivo
● Java => Multi plataforma
● PHP => Orientado ...
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 T...
Frameworks
● Python: Django, Web2py, Tornado
● PHP: Symfony2, Zend, PhalconPHP
● Ruby: Ruby on Rails
● Java: Spring, Hiber...
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ú
●...
Recomendaciones
● Migrar a Linux
● Usar controlador de versiones.
● Aplicar: TDD, BDD, DDD.
● Uso de metodologías ágiles: ...
¿Preguntas?
@mario21ic
Upcoming SlideShare
Loading in …5
×

Desarrollo tecnologias software_libre_open_source

865 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
865
On SlideShare
0
From Embeds
0
Number of Embeds
24
Actions
Shares
0
Downloads
21
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Desarrollo tecnologias software_libre_open_source

  1. 1. Desarrollo con Tecnologías Software Libre y OpenSource Por: Mario J. Inga Cahuana @mario21ic
  2. 2. ¿Quién soy? ● Miembro de Apesol ● Software Developer ● SysAdmin GNU/Linux ● Aficionado a la [in]Seguridad ● Twitter: @mario21ic ● Github: http://github.com/mario21ic
  3. 3. 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
  4. 4. Lenguajes de programación ● Python => Multi - paradigma ● Ruby => Expresivo ● Java => Multi plataforma ● PHP => Orientado Web ● C/C++
  5. 5. IDE ● Eclipse ● Netbeans ● Ninja-Ide
  6. 6. Eclipse
  7. 7. Editor de texto ● Gedit ● Geany ● Vim ● Emacs ● Brackets
  8. 8. VIM
  9. 9. Control de versiones
  10. 10. Control de versiones ● Git ● Mercurial ● Subversion ● Bazaar
  11. 11. Repositorios en la nubeRepositorios en la nube ● Github ● Bitbucket ● Launchpad
  12. 12. GithubGithub
  13. 13. Dependency manager
  14. 14. Dependency manager ● PHP: Composer ● Python: Pip, Buildout ● Ruby: Bundler ● Java: Ant, Maven, Gradle
  15. 15. Environments Diferentes: - Interpretes - Dependencias - Módulos - Librerías - Etc
  16. 16. Isolated Environments ● PHP: Virtualhost en Apache, Nginx ● Python: Virtualenv ● Ruby: Rbenv, RVM ● Java: Virtualhost de Tomcat, Gladfish
  17. 17. Frameworks ● Python: Django, Web2py, Tornado ● PHP: Symfony2, Zend, PhalconPHP ● Ruby: Ruby on Rails ● Java: Spring, Hibernate, Mybatis, Struts, Server Faces, PrimeFaces
  18. 18. Micro Frameworks ● Python: Bottle, Flask ● PHP: Silex ● Ruby: Sinatra ● Java: Spark
  19. 19. Test Unitario ● Python: Unittest ● Ruby: Rake ● PHP: PhpUnit ● Java: JUnit
  20. 20. Testing Funcionales ● Python: Behave ● Ruby: Rspec, Cucumber ● PHP: PphSpec, Behat ● Java: JBehave
  21. 21. Integración contínua ● Buildbot => Python ● Sismo => PHP ● Jenkins => Java ● Travis CI => Libre
  22. 22. Jenkins
  23. 23. Bases de datos ● MySQL ● MariaDB ● PostgreSQL ● Firebird ● SQLite
  24. 24. Modelador Database ● MySQL Workbench ● FabForce DBDesigner 4 ● PgModeler
  25. 25. Mysql Workbench
  26. 26. NoSQL ● MongoDB ● Redis ● CouchDB ● Cassandra ● Neo4j
  27. 27. Modelador UML ● ArgoUML ● Umbrello ● BoUML
  28. 28. ArgoUML
  29. 29. Gestión de Proyectos ● Redmine ● Trac ● Bugzilla ● MantisBt
  30. 30. Redmine
  31. 31. Casos de éxito ● Facebook ● Twitter ● Google ● Redhat ● HSBC ● Toyota Motor ● NASA ● Odoo (OpenERP)
  32. 32. ¿ Y en Perú? ● Grupo El Comercio ● Grupo La República ● RPP, Radio Programas del Perú ● CRP, Corporación Radial del Perú ● Consultoras
  33. 33. 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
  34. 34. ¿Preguntas? @mario21ic

×