miércoles, 10 de diciembre de 2008
The Open Source Coffee Machine
miércoles, 3 de diciembre de 2008
Linux consigue entrar en iPhone
Linux consigue entrar en iPhone
Un grupo de desarrolladores que se hacen llamar The Dev Team han sido capaces de llevar el kernel de Linux al iPhone e iPod Touch.
Por Rosalía Arroyo [02-12-2008]
El kernel 2.6 de Linux, muy limitado, muestra sólo la línea de comandos, pero otras partes del sistema operativo, como los gráficos y la conexión de red, también funcionan.
Inicialmente The Dev Team se hizo famoso por crear la herramienta necesaria para desbloquear el iPhone y permitir a los usuarios instalar cualquier aplicación en su terminal y utilizar el teléfono de Apple con cualquier operador de redes GSM. Aunque los desarrolladores continúan mejorando estas herramientas, ha sido un secreto a voces que estaban trabajando en otros proyectos. La semana pasada el equipo sorprendió a los usuarios poniendo Linux en el iPhone; un logro considerado un hito, algo revolucionario, ya que es la primera vez que el iPhone es capaz de ejecutar un sistema operativo alternativo.
The Dev Team afirman que aunque al Linux portado le faltan muchos controladores, los componentes clave necesarios para una funcionalidad básica y la funcionalidad de la línea de comandos sí se han llevado al iPhone.
Instalar Linux en un iPhone o un iPod Touch requiere una serie de pasos que los desarrolladores no recomiendan hacer a los que no tengan grandes conocimientos. Básicamente el proceso es hacer una copia del contenido del dispositivo, instalar un componente llamado OpeniBoot y Linux Kernel 2.6. La aplicación permite la existencia de múltiples sistemas operativos en el gadget. Con OpeniBoot y Linux Kernel 2.6 instalado en el iPhone o iPod los usuarios podrán optar entre el sistema operativo Linux o el del iPhone cada vez que arranquen su terminal.
Losing My Software Rights?
Losing My Software Rights?
from the work-for-hire-but-not-for-you dept.
martes, 25 de noviembre de 2008

jueves, 13 de noviembre de 2008
UML

Hola a todos!
En pregrado utilice UML tanto para proyectos de algunas materias como en la tesis de grado.
No es novedad que a muchos programadores no nos guste hacer los diagramas, pero lo que si es cierto es que estos diagramas ayudan muchisimo a la hora de entender y desarrollar un sistema.
La ventaja que veo de UML, es que no hace falta conocer de programacion a fondo para entender un sistema por medio de los diagramas. La forma en que estan desarrollados los diagramas ayudan a que visualmente, entendamos como funciona e interactua el sistema de una forma bastante sencilla, a su vez, desde el punto de vista del programador, ayuda a entender que metodos, atributos y el comportamiento que tienen los componentes del sistema.
Para mi tesis de pregrado, empleamos una variante de UML, UML Extendido, la idea es tomar UML y añadirle mas funcionalidades especificas de la plataforma en que se quiere desarrollar siguiendo la notacion UML, asi por ejemplo la extension de UML que usamos fue enfocada a aplicaciones web, donde se podia representar en el diagrama un nivel de detalle que llegaba a definir si era una pagina web, un servlet o base de datos. Asi tambien existen UML Extendido para web services, XML,entre otros.
Lo importante para mi, es que un modelo UML bien realizado, ayudara a entender el comportamiento de un sistema, tanto para el usuario como para el desarrollador. Ya que como se muestra en las lecturas, la nomenclatura usada y las formas empleadas son muy intuitivas (especialmente los casos de uso y diagramas de estado).
domingo, 2 de noviembre de 2008

miércoles, 29 de octubre de 2008

¿Qué aportes da la Ingeniería del Software al desarrollo de aplicaciones basadas en SL?
Como se aprecia en las lecturas, nos comentan que el software libre no posee una forma digamos tradicional de gestionar un proyecto. Existen digamos varias maneras que pueden adaptarse al software libre.
Sin embargo se pueden adaptar metodologias de la ingenieria del software para ser usadas en aplicaciones basadas en software libre, como por ejemplo establecer un comite de gestion del proyecto, de manera tal que el principal del comite delege funciones. Pero si el proyecto es de mediano a pequeño impacto se pueden prescindir de metodologias y hacerlo de una manera mas dinamica.
Podemos ver entonces que para la mayoria de proyectos de software libre se puede usar el modelo iterativo que define el ciclo de vida del desarrollo de software ya que se adapta a los requisitos cambiantes del entorno de SL.
En general la ingenieria del software puede proveer de sus metodologias, procesos y herramientas para ayudar al desarrollo de software libre, obviamente haciendo cambios para que se adapten al esquema del SL, pero esto ayudara a que el software producido sea de calidad, confiable y que si se necesitan cambios, se continue usando la metodologia empleada o por el contrario se seleccione otra metodologia a fin de optimizar los tiempos.
¿Cuáles son los factores claves para gestionar exitosamente proyectos de SL?
Como vemos en las lecturas no hay una forma estandar de gestionar un proyecto de SL, dada la naturaleza del SL que debe ir adaptandose a cambios constantemente, y por tanto pueden existir varias formas para gestionar proyectos de SL, e incluso varias formas aplicadas a un mismo proyecto.
Es asi como vemos que para grandes proyectos, la manera recomendad seria por medio de un comite de gestion donde una persona principal es quien decide los pasos y delegacion de funciones. Cuando es necesario realizar un cambio, el proceso va de abajo hacia arriba, siendo el comite quien decidira a la final si se incorpora o no al proyecto el cambio solicitado, siendo clave en este esquema la comunicacion de los miembros del proyecto.
Pero si hablamos de proyectos pequeños, entonces le damos prioridad a publicar nuevas funcionalidades y versiones, mas que seguir una calendario de actividades. Por ultimo se podria limitar a gestionar un proyecto a nivel de simplemente resolver fallos o requisitos y publicar los mismos.
¿Qué técnicas nos ayudan a estimar el desarrollo del SL?.
Podemos hablar de estudios de factibilidad, para determinar cuales fases, modulos o tareas son factibles de realizar. Tambien se puede realizar un analisis del sistema de informacion, cuando ya existe el mismo y es necesario modificarlo o mejorarlo.
Como todo sistema, es necesario su diseño, desde definir la arquitectura, hasta el entorno bajo el cual funcionara, de manera que sus componentes se integren sin problemas. Tambien podemos incluir, temas analisis de seguridad, de rendimiento y costos, esto con el fin de tener a priori un estimado lo mas real posible del desarrollo del SL.
sábado, 18 de octubre de 2008

Hola a todos!.
Indudablemente muchos de nosotros usamos o hemos usado en algun momento software libre y nos hemos dado cuenta que son programas muy bien desarrollados, que cumplen nuestras necesidades y que ademas no pagamos licencia alguna y podemos distribuir sin problemas.
Entonces, por qué el software debe ser libre?, porque indudablemente todos debemos tener acceso al conocimiento y a la información sin ninguna restricción. Lo comparo como si las bibliotecas exigieran un pago anual por ingresar y consultar los libros, seria realmente absurdo e ilógico.
Claro esta que inmediatamente me hago la pregunta como desarrollador que soy, si el software es libre, entonces quien lo desarrolló, puede sustentarse economicamente de esa manera?. Sin mucho analisis uno diría de inmediato, no. Pero luego de revisar los videos, las paginas, ciertamente hay un nuevo modelo de negocios, que rompe el paradigma del software propietario.
Por tanto, como desarrollador, veo que existe un forma de, apoyar y crear software libre, pero a la vez percibir una retribucion monetaria, porque en el mundo actual invertir tiempo y esfuerzo en hacer un producto y no obtener algo a cambio, ciertamente no sustenta a nadie.
Pero esa opcion es sin duda alguna, desarrollar un programa y ofrecerlo bajo licencia de software libre y/o open source. Y luego dar soporte al mismo, y ofrecer la creacion de modulos especializados a cambio de un importe monetario.
Este esquema lo utiliza JBoss (una division de RedHat http://www.jboss.com) su software en open source, cualquiera puede bajarlo, copiarlo, modificarlo y distribuirlo, pero ellos ofrecen soporte, entrenamiento y consultoria como un servicio pago. Como consecuencia de esto los productos de JBoss son muy buenos, rapidos, confiables, de calidad y usados en muchas empresas.
Vemos entonces que el software si debe ser libre para todos, y desde el punto de vista de los desarrolladores, si pueden crear software libre y adoptar el nuevo modelo de negocios para percibir ganancias.

Despue de ver el video y visitar las paginas y portales, sin duda alguna tengo una vision mas clara de lo que se refiere el software libre y el open source.
Con el video de Stallman ya comprendo su idea y el por qué de su iniciativa, ciertamente lo apoyo, es muy cierto que los software propietarios en general cuando presentan fallas, o bien no lo solventan o demoran mucho tiempo en dar solucion, lo que conlleva a fallas en seguridad.
Otro punto importante es que con el paso de los años ciertamente Linux ha conseguido mas mercado por su interfaz grafica mejorada, que permite al usuario final poder utilizarlo sin necesidad de conocer a fondo comandos por consola, etc. Es un punto super importante porque recordemos que para una masificacion de un producto, el mismo debe ser facil de utilizar, sino estariamos limitandolo a su uso exclusivo de desarrolladores o analistas.
Las paginas visitadas se aprecia que todas poseen un formato sencillo, donde todas destacan principalmente que ofrecen ayuda, documentacion y soporte para todo lo relacionado con software libre y sistemas GNU, en la pagina del gobierno en particular incluso se aprecian requerimientos de servicios para en materia de software libre, asi como tambien la posibilidad de registrarse y formar parte del equipo de colaboradores.
Tambien visite la pagina personal de richard stallman la cual incluye muchos topicos, como del mismo proyecto GNU, asi como tambien de relatos y fotos de viajes realizados e incluso toca la parte politica mundial, en especial me llamo la atencion una seccion donde solicita personas que lo ayuden con una peticion de no permitir que en los aeropuertos del reino unido (UK) tomen las huellas dactilares de las personas, lo que aprecio es que esta involucrado en todas las areas que se refieran a libertades.
martes, 14 de octubre de 2008
lunes, 13 de octubre de 2008

Como dice en la pagina de www.gnu.org, software libre es significado de libertad, no de precio. Es libertad de correr, copiar, distribuir, estudiar, cambiar y mejorar el software.
Tambien da libertad de hacer modificaciones y usarlas para el uso propio, y si estos cambios se publican al publico, no hay necesidad de notificarles a nadie. La forma de distribucion puede ser tanto en codigo fuente como ejecutable, aunque siempre se aconseja que sea al menos el codigo fuente para poder permitir a terceros su modificacion y mantener el concepto de software libre.
Un punto importante es que software libre no significado no-comercial, ya que el mismo debe estar disponible para su uso, desarrollo y distribucion comercial.
Otro punto a destacar son las distintas categorias que tiene el software libre: software libre, codigo abierto, de dominio publico, copyleft, software libre no-copyleft, software bajo GPL (General Public License), software semi-libre (el cual no es libre pero viene con permisos especificos de uso, copia, distribucion y modificacion).
Hay varias motivaciones para el uso y la proliferacion de software libre, entre las destacadas estan, el mejorar, complementar un software existente, ofrecer seguridad, flexibilidad, independencia, ademas de eficiencia economica. Y la motivacion mas importante es, (heredada de la cultura hacker) es que el software es conocimiento y debe difundirse sin obstaculos.
A nivel historico, el punto mas importante, en mi opinion, fue cuando Richard Stallman comenzo a trabajar en el proyecto GNU y posteriormente funda la Free Software Foundation, lo considero el mas relevante dado que fue quien definio los conceptos y las formas de distribucion del software libre, resultante de establecer un orden en el surgiente mundo del software libre.
Como consecuencia se definieron las llamadas cuatro libertades que expresan:
1. Ejecutar el programa con cualquier propósito (privado, educativo, público, comercial, militar, etc.)
2. Estudiar y modificar el programa (para lo cual es necesario poder acceder al código fuente)
3. Copiar el programa de manera que se pueda ayudar al vecino o a cualquiera
4. Mejorar el programa y publicar las mejoras
Es importante señalar que las libertades 1 y 3 obligan a que se tenga acceso al código fuente.
La "libertad 2" hace referencia a la libertad de modificar y redistribuir el software libremente licenciado bajo algún tipo de licencia de software libre que beneficie a la comunidad
jueves, 9 de octubre de 2008
Bienvenidos a mi Blog

Hola a todos!
Con esta entrada doy inicio a mi Blog relacionado con la materia y el Software Libre.
Espero les sea util la informacion que vaya publicando en el mismo!
La imagen publicada es "Duke" la mascota de Java, desde hace 1 año, Sun Microsystem ha colocado a disposicion de los desarrolladores ciertas partes del codigo del JDK (Java Development Kit) bajo open source, progresivamente ha colocado mas partes del JDK y se espera que en poco tiempo todo el codigo sea open source. La idea es, crear nuevas versiones del JDK basado en las modificaciones realizadas por las personas y buscando un mejor y mas completo kit de herramientas para Java.
Saludos!
Pedro