• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Rg   Software Libre Y Otras Hierbas
 

Rg Software Libre Y Otras Hierbas

on

  • 902 views

 

Statistics

Views

Total Views
902
Views on SlideShare
900
Embed Views
2

Actions

Likes
0
Downloads
8
Comments
0

1 Embed 2

http://www.linkedin.com 2

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Rg   Software Libre Y Otras Hierbas Rg Software Libre Y Otras Hierbas Presentation Transcript

    • De software libre y otras hierbas 8 de octubre del 2008 Santiago Lizardo <santiago.lizardo@gmail.com>    
    • Presentación Santiago Lizardo Oscares Analista de sistemas ➢ ➢Sun Certified Enterprise Architect (SCEA) ➢Sun Certified Java Programmer (SCJP) ➢Zend Certified Engineer (ZCE, PHP) Blog http://santiago.lizardo.info    
    • Presentación Tiempo completo: abiquo Explorando tecnologias como grid computing  (computación intensiva), cloud, distributed file  systems, sensor networks. Tiempo parcial: emprendedor Realización de prototipos y proyectos de software  libre.    
    • Agenda Profesión, vocación ● La importancia de sentirse un artesano ●Comunicación Profesionales con mas valor ●Escena actual Lo que se usa y porque ●Tecnologias emergentes Lo próximo ●Trabajo en equipo Comparación de metodologias ●Consideraciones tecnicas Pensar primero, desarrollar despues ●Proceso de desarrollo de software Desde la concepción de la idea hasta la publicación ●Software libre     Un nuevo modelo de negocios y oportunidades
    • Profesión, vocación Notable crecimiento en la demanda de profesionales en  todo el mundo. ●Desplazarse a otras ciudades ●Trabajar de forma remota con internet Infinidad de recursos a nuestro alcanze de forma gratuita. Unicos requisitos para llevar adelante una idea: ➔Tiempo ➔Conocimientos ➔Hardware    
    • Profesión, vocación ¿Que podemos hacer con nuestro conocimiento? ✔Desarrollar aplicaciones comerciales/libres ✔ Web (portales, mashups, comunidades) ✔ Escritorio (videojuegos, SGBD) ✔ Celulares ✔Escribir un blog ✔Documentar ✔Reportar/corregir bugs Artesanos del siglo XXI ●Creatividad ●Puntillismo    
    • Profesión, vocación Nuestros conocimientos son utiles mas alla de las fronteras  laborales. Saber usarlos para tareas cotidianas convierte nuestra profesión  en una vocación, de la que sacaremos mas provecho. Ejemplos Desarrollar una aplicación para gestionar nuestro presupuesto ● Desarrollar un videojuego para compartir con amigos ● Programar algoritmos como si fueran crucigramas ●    
    • Profesión, vocación Conseguir ser diferencial Tomar el camino dificil ➢ Tener iniciativa > emprender ➢ Para obtener Satisfacción personal ➢ Reconocimiento frente a empleadores ➢    
    • Comunicación Un profesional integral tiene  cualidades tecnicas y humanas. La importancia de la comunicación: Transmitir bien un mensaje (digitalmente, en persona) ● Humildad ● Utilización de redes de contacto profesionales: LinkedIn, http://www.linkedin.com  ➢ Xing, http://www.xing.com  ➢ Para encontrar: Nuevos empleos ● Colaboradores para un proyecto ● Expertos en areas especificas de conocimiento ●    
    • Comunicación Medios Internet ● Blog (escribe el tuyo o comenta en otros) ● Foros Presenciales ● Eventos ● Conferencias/charlas ● Grupos de usuario (Linux, Blender, ...) ● ¿No existe un grupo con tus intereses? ¡Crealo!    
    • Escena actual Web 2.0 Contenidos creados y mantenidos por el usuario  Ofrecen API y servicios Web que permiten integrar sus   servicios por parte de terceros Ejemplos:   Wikipedia (enciclopedia)  YouTube (videos)  Flickr (fotos)     
    • Escena actual Mashups Aplicaciones Web que ofrecen valor añadido integrando datos de  otras fuentes. (a través de su API o mediante screen scrapping) Panoramio: Geolocalización de fotos http://www.panoramio.com/     
    • Escena actual Cuadro tecnologico segun tipo de aplicación Tipo de aplicación Tecnologia libre Tecnologia propietaria Aplicación de escritorio Java Standard Edition .NET Aplicación Web empresarial Java Enterprise Edition .NET (ASP) Aplicación Web PHP ASP Videojuego C/C++ Aplicación móvil Java Mobile Edition .NET Mobile    
    • Tecnologias emergentes Cloud computing Amazon Elastic Cloud Computing (Amazon EC2) ● Google App Engine (GAE) ● 1 server 1 ­ n servers 1 ­ ∞ servers    
    • Tecnologias emergentes La Web semantica (Web 3.0) Es una descripción de metadata que da información sobre un  contenido y elementos relacionados, sin preocuparse por la  presentación de esos datos (!HTML) Permitira buscar contenidos y obtener resultados que tenga  relacion directa o indirecta con la frase escrita. Ejemplo de Web semantica: ● RSS: Catalogación de contenidos de noticias y eventos    
    • Trabajo en equipo / roles Jefes de proyecto Analistas Arquitectos Programadores y Quality assurance desarrolladores (beta testers)    
    • Consideraciones tecnicas Desarrollar teniendo en cuenta I18N (internacionalización abreviado) ● ●Flexibilidad (extensibilidad, modularidad) ●Portabilidad (Linux, Windows, Mac, ...) ●Interoperabilidad (API, Web services, ...) ●Mantenibilidad (documentación, testing, ...)    
    • Consideraciones tecnicas / patrones de diseño Son soluciones a problemas de diseño, que han demostrado  reusabilidad en diferentes aplicaciones y tecnologias. Entre los mas populares se encuentra el MVC  (Model/View/Controller) que propone la separación de las capas  logicas de una aplicación. Vista Modelo Swing Controlador BBDD Logica de negocios HTML/JSP XML WAP    
    • Consideraciones tecnicas / herramientas Control de versiones Equipos de desarrollo numerosos (+3) Copia de seguridad, e historico Edición de un mismo fichero de forma simultanea Soluciones libres CVS (concurrent versioning system) ➔ Subversion (SVN) ➔ Soluciones propietarias SourceSafe ➔    
    • Consideraciones tecnicas / buenas practicas Pruebas unitarias Se refiere a la practica de crear pruebas para cada unidad de  codigo que exista en una aplicación. (por ejemplo, una clase de  test para cada clase del proyecto) Esto permite: Identificar rapidamente errores consecuencia de un cambio. ● Mantener el codigo libre de errores ● Herramientas *unit: cppunit, junit, Nunit, etc...    
    • Consideraciones tecnicas / herramientas Entornos de desarrollo Los entornos de desarrollo integrado (IDE) son herramientas que  permiten la creación (devel), depuración (debug) e incluso la  optimización (profiling) de aplicaciones desde un mismo  programa. Eclipse es una de esas fantasticas herramientas que te permitira  trabajar y cambiar de tecnologias facilmente: Eclipse CDT (C/C++) ➢ Eclipse PDT (PHP) ➢ Eclipse JEE (Java Enterprise Edition, Web applications) ➢    
    • Procesos de desarrollo / metodos pesados Rational unified process (RUP)    
    • Procesos de desarrollo / metodos agiles Caracteristicas comunes: ● Entregas rapida del software ● Retroalimentación Metodologias agiles ● eXtreme programming (XP) ● Scrum ● FDD (Feature driven development) ● TDD (Test driven development)    
    • Procesos de desarrollo / metodos agiles Extreme programming (XP) ●Programación de a pares ●Desarrollo iterativo ●Pruebas unitarias ●Simplicidad Scrum Autoorganización del equipo ● Gestión del tiempo y tareas de forma autonoma ●    
    • Software libre / modelo de negocio Software propietario Orientado a productos Ingresos por: ✔Licencia Software libre Orientado a servicios Ingresos por: ✔Soporte tecnico ✔Extensiones ✔Funcionalidades ad­hoc    
    • Software libre / proceso Concepción de la idea Desarrollo del prototipo Publicación del desarrollo Recepción de feedback por parte de la comunidad    
    • Software libre / licencias Publicar el código de nuestro proyecto no significa perder nuestro  control sobre el. Las licencias existen para proteger nuestro valor intelectual, y  poner algunas reglas en su redistribución. Licencias mas conocidas: GPL: Publicar código. No permite derivados comerciales ● LGPL: Similar a GPL. Puede ser usado en software  ● propietario. CPAL: Exige mostrar un logo del software original. ● Otras... ●    
    • Software libre / plataformas Plataformas para hospedar nuestro software libre: SourceForge, http://www.sourceforge.net  ● Google Code, http://code.google.com/hosting/  ● Servicios ofrecidos: Control de versiones (SVN, CVS) ● Hosting Web ● Mailing list ● Wiki ●    
    • ¿Preguntas?    
    • ¡Muchas gracias! Feedback sobre esta presentación a santiago.lizardo@gmail.com