tag:blogger.com,1999:blog-65714077275178901362024-02-20T09:58:11.956+01:00olidroide blogBlog personal sobre programación en Android, Software libre, curiosidades...Anonymoushttp://www.blogger.com/profile/17716074326023007944noreply@blogger.comBlogger38125tag:blogger.com,1999:blog-6571407727517890136.post-7434620411969266692016-02-28T20:26:00.006+01:002016-02-28T20:26:45.745+01:00Sígueme en mi nuevo dominio olidroide.esYa puedes seguirme desde mi nuevo dominio <a href="http://olidroide.es/">olidroide.es</a><br />
<br />
<a href="http://olidroide.es/">Nos vemos allí</a>Anonymoushttp://www.blogger.com/profile/17716074326023007944noreply@blogger.com0tag:blogger.com,1999:blog-6571407727517890136.post-23180023591348595582012-01-07T21:24:00.001+01:002012-01-07T21:24:28.243+01:00Modelos de negocio con Software Libre<span style="font-family: Arial, Helvetica, sans-serif; font-size: large;"><b>Licenciamiento dual</b></span><br />
Es un modelo que solamente sirve para licencia no permisivas como la GPL. El autor, de esta forma puede vender el software cerrado. Esto no tiene sentido en licenciamientos permisivos, pues cualquiera puede cerrar el software y venderlo al igual que lo podría hacer el autor original. Google puede estar aplicando algo similar, porque su desarrollo es cerrado, y cuando sacan al mercado una nueva versión Samsung ya tiene disponible Android adaptado a sus terminales. Esto es porque tengan una acuerdo de licenciamiento.<br />
<br />
<span style="font-family: Arial, Helvetica, sans-serif; font-size: large;"><b>Open Core</b></span><br />
Aunque nos puede confundir con el licenciamiento dual, la diferencia se marca en que la parte que es privativa tienen extras con coste que no tiene la parte con licencia libre. Muchas empresas utilizan este modelo de negocio como <a href="http://www.zimbra.com/">Zimbra</a> o <a href="http://www.mysql.com/services/">MySQL</a>. Este modelo es muy discutido por no ser muy satisfactorio hacia la comunidad, pues mantienen durante un tiempo o no, código que no puede ser utilizado nada mas que por el desarrollador.<br />
<br />
<span style="font-family: Arial, Helvetica, sans-serif; font-size: large;"><b>Especialistas de producto</b></span><br />
También muy utilizado, esto se debe a que cuando eres el desarrollador de un software, posees la ventaja natural de tener mayor experiencia que tus competidores. <a href="http://www.alfresco.com/es/">Alfresco</a> es una compañia que da soporte sobre su gestor documental. Por otro lado, IBM da soporte a otros productos que no son suyos, pero gracias al renombre que tiene, muchas empresas confían en ellos antes que en contratar a otras personas.<br />
<br />
<span style="font-family: Arial, Helvetica, sans-serif; font-size: large;"><b>Proveedores de plataformas</b></span><br />
Tener una serie de software y ofrecerlo a la carta. Todo el mundo conoce <a href="http://www.ubuntu.com/">Ubuntu</a>, <a href="http://www.redhat.es/">RedHat</a>... cualquier distribución Linux se ha convertido en un proveedor de plataformas. Existe el aliciente de que tanto el nombre como logotipos de la empresa pueden ser propiedad privada, pro lo que no podemos coger Ubuntu y redistribuirlo como si fuera tuyo. Por ejemplo<a href="http://linuxmint.com/"> Linux Mint </a>se basa de la distribución de Ubuntu, pero no usa ningún elemento corporativo de Ubuntu.<br />
<br />
<span style="font-family: Arial, Helvetica, sans-serif; font-size: large;"><b>Proveedores de una serie de productos</b></span><br />
Preparas software, y lo ofreces todo integrado. IBM se ha convertido en una especialista de este sector. Otro ejemplo claro de este modelo es Sun, que integraba una serie de software como MySQL, OpenOffice y lo vendía en conjunto para usar sus servidores. Además poseían el aliciente de ser los fabricantes de dicho software, y mejor que ellos no existían.<br />
<br />
<span style="font-family: Arial, Helvetica, sans-serif; font-size: large;"><b>Compañías de consultoría</b></span><br />
Personas con experiencia en integración o en expectativas de mercado. Gracias a estos servicios puedes posicionarte mejor contra tus competidores, o preveer que software elegir para una gestión empresarial. Existen casos que los mismos consultores son los encargados de crear una versión customizada de lo que necesites.<br />
<br />
<span style="font-family: Arial, Helvetica, sans-serif; font-size: large;"><b>Costes compartidos</b></span><br />
Rehusar y no reinventar la rueda. Android no nació desde cero, se dedicaron a coger proyectos muy estables (Kernel de Linux) integrarlos y ofrecer una buena API. Nokia hizo lo mismo con <a href="http://maemo.org/">Maemo</a>. ¿Porqué <a href="http://www.android.com/branding.html">Android</a> triunfó y Maemo no? posiblemente sea Google que estuviera detrás de todo esto, empresa especializada en publicidad.<br />
<br />
<span style="font-family: Arial, Helvetica, sans-serif; font-size: large;"><b>Ingresos indirectos</b></span><br />
<a href="http://shop.canonical.com/">La tienda de Canonical</a> es un ejemplo de ingresos indirectos, realmente no están ganando dinero por el software si no por la venta de otros productos. No siempre hace falta que sea venta de otros productos. En el caso de Linux, hay mayor implantación en servidores que en escritorio, y los fabricantes de hardware lo saben. Por esta razón, les interesa que los servidores que venden sean compatibles con Linux, por lo que realizaran desarrollo hacia Linux de manera indirecta.Anonymoushttp://www.blogger.com/profile/17716074326023007944noreply@blogger.com0tag:blogger.com,1999:blog-6571407727517890136.post-31508829610626238632012-01-07T20:32:00.003+01:002012-01-07T20:32:42.801+01:00Costes y beneficios al usar Software Libre<div style="text-align: justify;">
<b style="font-family: Arial, Helvetica, sans-serif;"><span style="font-size: large;">Funcionalidad</span></b></div>
<div style="text-align: justify;">
Con Software Libre podemos acceder a tecnología puntera. Gracias al sistema de Early Release, se libera el código según se está desarrollando. Tiene como desventaja los problemas de estabilidad, ya que son desarrollos aún no testados. Pero si lo que quieres es software comprobado, aunque esto no quiere decir que esté libre de errores, puedes escoger en descargarte la versión estable. Existen usuarios que esto no les parece una ventaja, pues están acostumbrados a su software y no quieren cambiar, este colectivo no necesita lo último y ven este aspecto una desventaja.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<b>Ejemplo</b></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://3.bp.blogspot.com/-CDnmsdfCwy0/TwiUhRJk27I/AAAAAAAABq8/8hacug-IUlY/s1600/nodejs-dark.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="148" src="http://3.bp.blogspot.com/-CDnmsdfCwy0/TwiUhRJk27I/AAAAAAAABq8/8hacug-IUlY/s200/nodejs-dark.png" width="200" /></a></div>
<div class="separator" style="clear: both; text-align: justify;">
<br /></div>
<div style="text-align: justify;">
JavaScript, es un lenguaje muy conocido, y es igual tanto en cliente como en servidor. Se unifica el desarrollo de un mismo programa, para dos ámbitos completamente distintos, facilitando la tarea de cambiar entre la ejecución procesada por la máquina del cliente o por la eficiencia del servidor. Esto funciona gracias a la máquina virtual de Javascript que tienen los navegadores web. Existe un proyecto interesante llamado <a href="http://nodejs.org/">node.js</a>, que abstrae todo lo necesario para tener una máquina virtual de Javascript sin necesidad de navegador web.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<span style="font-family: Arial, Helvetica, sans-serif; font-size: large;"><b>Adquisición de tecnología</b></span></div>
<div style="text-align: justify;">
Con Software Libre, adquirir tecnología, es adquirir conocimiento. Únicamente hacen falta las ganas y tiempo para estudiar como funciona. Cada uno puede autogestionarse el aprendizaje de la tecnología que necesitamos.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<b>Ejemplo</b></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://1.bp.blogspot.com/-sWX1Q_7OaFg/Twib3S9_icI/AAAAAAAABrM/dnZ3smWVaKc/s1600/cloud-computing.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="150" src="http://1.bp.blogspot.com/-sWX1Q_7OaFg/Twib3S9_icI/AAAAAAAABrM/dnZ3smWVaKc/s200/cloud-computing.jpg" width="200" /></a></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Si deseamos implementar Cloud computing en nuestra empresa, tenemos varias opciones, que busquemos información y estudiamos cómo funciona, o contratar los servicios de otra empresa que nos expliquen como funciona. Incluso puede que encontremos gente experta en esa tecnología y la podamos incluir entre la plantilla de trabajo. Muchos de nosotros tenemos instalado Ubuntu, al tiempo podemos convertirnos en expertos en este Sistema Operativo y podemos dar servicio como desarrollador de Ubuntu, pero no necesariamente necesitamos un certificado oficial de Canonical para conocerlo todo acerca de este Sistema Operativo.</div>
<div style="text-align: justify;">
<br /></div>
<b><div style="text-align: justify;">
<b><span style="font-family: Arial, Helvetica, sans-serif; font-size: large;">Eficiencia económica</span></b></div>
</b><div style="text-align: justify;">
¿Cuantos recursos necesito para que un programa de mantenga al día? Linux es eficiente por una razón, y es el trabajo voluntario de las personas. Porque existen ocasiones en las que te encuentres que algo no funciona, y tienes la posibilidad (y habilidad) de poder solucionarlo. Con software privativo, nadie va arreglando los errores de Windows, porque básicamente, no se puede y podría ser una práctica ilegal si llegaras a poseer su código fuente.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<b>Ejemplo</b></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://1.bp.blogspot.com/-garOmZppK2E/Twib-vhQXYI/AAAAAAAABrU/4ZTyS5-tc7I/s1600/220px-Tux.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="200" src="http://1.bp.blogspot.com/-garOmZppK2E/Twib-vhQXYI/AAAAAAAABrU/4ZTyS5-tc7I/s200/220px-Tux.png" width="168" /></a></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
El Kernel Linux, existen miles de personas desarrollándolo. pero no hay nadie que haya invertido una gran cantidad de dinero para que eso funcione, y aún así funciona. Seguramente lo que se ha invertido en el desarrollo de Linux sea inferior a lo que se ha gastado Microsoft con Windows, por eso es más eficiente.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<span style="font-family: Arial, Helvetica, sans-serif; font-size: large;"><b>Nuevas oportunidades</b></span></div>
<div style="text-align: justify;">
Para combatir con otros que ya tienen un buen mercado. En este caso puede que no exista otra alternativa.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<b>Ejemplo</b></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://3.bp.blogspot.com/-urRqd6I9HqE/TwiX19CqMOI/AAAAAAAABrE/3viRljBWY5s/s1600/logo-libre-office.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="81" src="http://3.bp.blogspot.com/-urRqd6I9HqE/TwiX19CqMOI/AAAAAAAABrE/3viRljBWY5s/s320/logo-libre-office.png" width="320" /></a></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
LibreOffice respecto a Microsoft Office. Si LibreOffice tuviera un precio similar o mejor, puede que nadie se haya molestado ni en probarlo. En este caso en concreto, LibreOffice proviene de un fork de OpenOffice realizado por la comunidad, ya que por la compra de Sun por parte de Oracle, existía un riesgo de abandono del proyecto.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<span style="font-family: Arial, Helvetica, sans-serif; font-size: large;"><b>Economía del software</b></span></div>
<div style="text-align: justify;">
<span style="font-family: inherit;">Lo que realmente demanda la sociedad que consume software, no son programas... es un servicio. No se quieren preocupar si su ordenador deja de funcionar. Imaginemos que alguien lleva la contabilidad de su empresa de alimentación, no sabrá y no tendrá mas interés que en manejar su programa de facturación, lo demás no le importa. En un modelo privativo, lo que se vende no es el software en sí, sino licencias. Una vez que tienes licencia, se olvidan completamente del usuario, y si te diriges a ellos por cualquier problema, te </span>redirigirán<span style="font-family: inherit;"> a una empresa encargada de solucionar problemas. Imaginemos la misma situación en la venta de un </span>vehículo<span style="font-family: inherit;"> nuevo, en el que una vez comprado, ya no se responsabilizan de un error de fabricación. Con Software Libre no existen costes de licencia, pero si deseas, puedes invertir el coste de lo ahorrado en la licencia en mantenimiento real.</span></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<b>Ejemplo</b></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-MSOJ_1TdkIY/TwicamwqRFI/AAAAAAAABrc/7W_N2mN1YrM/s1600/LogoGDOCS.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="200" src="http://2.bp.blogspot.com/-MSOJ_1TdkIY/TwicamwqRFI/AAAAAAAABrc/7W_N2mN1YrM/s200/LogoGDOCS.png" width="200" /></a></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Programas en la nube. Como Google Docs, al no tener el software instalado en tu ordenador se pueden aplicar cambios incluso cuando el usuario ni siquiera los ha detectado.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<b><span style="font-family: Arial, Helvetica, sans-serif; font-size: large;">Adaptación a las necesidades específicas</span></b></div>
<div style="text-align: justify;">
Si tienes una necesidad, y además tienes dinero o tiempo, siempre contratar a alguien que te realice los cambios o hacerlos por tu cuenta. En el modelo privativo, por mucho que quieras cambiar el logotipo al inicio del ordenador, no será nunca bienvenido en la empresa que lo ha implantado, aunque lleves mucho dinero.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<b>Ejemplo</b></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://3.bp.blogspot.com/-Fr2G15z0cbI/TwidmJW28zI/AAAAAAAABrk/zWS9jUKxBKE/s1600/Hello_World_In_Several_Languages.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="155" src="http://3.bp.blogspot.com/-Fr2G15z0cbI/TwidmJW28zI/AAAAAAAABrk/zWS9jUKxBKE/s200/Hello_World_In_Several_Languages.png" width="200" /></a></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Algo tan sencillo como traducir un programa. Como se puede observar, en mucho Software Libre, existen multitud de idiomas soportados. Esto es debido a que la gente le gusta ver los programas en su idioma, y si puede traducirlo lo hará. En el modelo privativo, si no está entre los intereses de negocio de la empresa, puede que no veas su software en tu idioma nunca.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
El valor del Software Libre es ser disruptivo, y encontrar la forma de aproverchar oportunidades. Google con Android encontró la mejor manera de competir contra iOS de Apple. Hay que ser creativo, crear tejidos sostenibles para mantener vivo el proyecto.</div>Anonymoushttp://www.blogger.com/profile/17716074326023007944noreply@blogger.com0tag:blogger.com,1999:blog-6571407727517890136.post-19615792868543952722011-11-26T13:04:00.001+01:002011-11-27T21:52:07.814+01:00Shell<div class="separator" style="clear: both; text-align: center;">
<a href="http://3.bp.blogspot.com/-c6em1E9wQa0/TtKioEjSE7I/AAAAAAAABqc/CvaZ_btLqxU/s1600/shell.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://3.bp.blogspot.com/-c6em1E9wQa0/TtKioEjSE7I/AAAAAAAABqc/CvaZ_btLqxU/s1600/shell.png" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div style="text-align: justify;">
Para la mayoría de personas, cuando un informático hace aparición en sus vidas, los ven como a esas personas que para hacer funcionar cualquier cosa, se sientan delante de la pantalla y se ponen a<a href="http://hackertyper.net/"> teclear cosas</a>. Es decir, que todo lo que hacemos, si no es de la <a href="http://en.wikipedia.org/wiki/Shell_(computing)">Shell</a> (o también conocida como la linea de comandos) no somos verdaderos informáticos. Algo de razón tienen, pero realmente ¿Es tan importante utilizar la Shell?</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Exactamente una Shell no deja de ser una aplicación mas del Sistema Operativo, pero tiene ciertas particularidades, entre las mas importantes, es la primera que se ejecuta cuando el usuario inicia sesión. Puede ejecutar otras aplicaciones tanto en segundo plano como compilar el <a href="http://olidroide.blogspot.com/2011/11/kernel-linux.html">Kernel de Linux</a>, para que podamos realizar otras tareas o en primer plano, como por ejemplo un juego.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Para definir la importancia de que sea el primer programa que se ejecuta al inicio de sesión debemos remontarnos al inicio del sistema. Resumiendo, lo que primero que hacemos es pulsar el botón de encendido de nuestra máquina (O mediante <a href="http://es.wikipedia.org/wiki/WoL">Wake On LAN</a>). La <a href="http://es.wikipedia.org/wiki/BIOS">BIOS</a> entonces tomará control del hardware, dependiendo de cómo este configurado buscará un dispositivo que contenga un <a href="http://es.wikipedia.org/wiki/MBR">MBR</a> con el que inciar, puede ser un disco duro, un disco o un pendrive. Este a su vez apuntará a una <a href="http://es.wikipedia.org/wiki/Partici%C3%B3n_de_disco">partición</a> que contenga un cargador de arranque, en Linux es utilizado comúnmente <a href="http://es.wikipedia.org/wiki/Grub">GRUB</a> o <a href="http://es.wikipedia.org/wiki/Lilo_(Linux)">LILO</a>. Y lo primero que hará es cargar el Kernel, que desplegará todo el resto de programas gracias al proceso <span style="font-family: 'Courier New', Courier, monospace;"><a href="http://es.wikipedia.org/wiki/Init">init</a></span>. Después de realizar los procesos de inicio, llega la pantalla de acceso en el que debemos introducir usuario y contraseña para que haga la comprobación de credenciales, comparándolo con el contenido de <span style="font-family: 'Courier New', Courier, monospace;">/etc/passwd</span>. Si es correcto lanza la aplicación <span style="font-family: 'Courier New', Courier, monospace;">/bin/bash</span></div>
<div style="text-align: justify;">
<span style="font-family: 'Courier New', Courier, monospace;"><br /></span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://upload.wikimedia.org/wikipedia/commons/e/e7/Bash_screenshot.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="400" src="http://upload.wikimedia.org/wikipedia/commons/e/e7/Bash_screenshot.png" width="293" /></a></div>
<span style="font-family: 'Courier New', Courier, monospace;"><br /></span><br />
<div style="text-align: justify;">
<span style="font-family: inherit;">Al final la Shell es un programa más, y como todo programa, existen multitud de versiones y de variedades. La más famosa es <a href="http://es.wikipedia.org/wiki/Bash">Bash</a> ya que viene incluida en la mayoría de distribuciones Linux, pero también en Mac OS X y ha sido portado a Windows gracias a <a href="http://es.wikipedia.org/wiki/Cygwin">Cygwin</a>.</span></div>
<div style="text-align: justify;">
<span style="font-family: inherit;"><br /></span></div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://upload.wikimedia.org/wikipedia/commons/3/36/Ken_n_dennis.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="http://upload.wikimedia.org/wikipedia/commons/3/36/Ken_n_dennis.jpg" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Ken Thompson a la izquierda</td></tr>
</tbody></table>
<span style="font-family: inherit; text-align: justify;">La primera Shell que se publicó fue la </span><a href="http://en.wikipedia.org/wiki/Thompson_shell" style="font-family: inherit; text-align: justify;">Thompson Shell</a><span style="font-family: inherit; text-align: justify;">, desarrollada por Ken Thompson en 1971. Es una Shell muy sencilla, podía hacer redirecciones y pipes, como por ejemplo sacar la salida de un programa hacia un fichero.</span><br />
<span style="font-family: inherit;"><br /></span><br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://upload.wikimedia.org/wikipedia/commons/a/a3/Steve_Bourne_at_SDWest2005.hires.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="320" src="http://upload.wikimedia.org/wikipedia/commons/a/a3/Steve_Bourne_at_SDWest2005.hires.jpg" width="223" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Stephen Bourne</td></tr>
</tbody></table>
<span style="font-family: inherit; text-align: justify;">En 1977 apareció </span><a href="http://en.wikipedia.org/wiki/Bourne_shell" style="font-family: inherit; text-align: justify;">Bourne Shell</a><span style="font-family: inherit; text-align: justify;">, desarrollada por Stephen Bourne. Fue mayormente conocida como </span><i style="font-family: inherit; text-align: justify;">sh,</i><span style="font-family: inherit; text-align: justify;">consiguió desbancar a la Thompson Shell. Como principal caracteristica es que está orientada a la programación y tenía la capacidad de enviar señales (Ctrl + c). Aún se sigue utilizando como la Shell por defecto del usuario </span><i style="font-family: inherit; text-align: justify;">root</i><span style="font-family: inherit; text-align: justify;">.</span><br />
<span style="font-family: inherit;"><br /></span><br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://upload.wikimedia.org/wikipedia/commons/e/e2/Bill_joy.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="320" src="http://upload.wikimedia.org/wikipedia/commons/e/e2/Bill_joy.jpg" width="255" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Bill Joy</td></tr>
</tbody></table>
<div style="text-align: justify;">
<span style="font-family: inherit;">A pesar de ser escrito en 1978, </span><a href="http://en.wikipedia.org/wiki/C_shell" style="font-family: inherit;">C Shell</a><span style="font-family: inherit;">, no se popularizó hasta los 80 y como indica su nombre está escrita en </span><a href="http://en.wikipedia.org/wiki/C_(programming_language)" style="font-family: inherit;">C</a><span style="font-family: inherit;">. Bill Joy, además de escribir esta Shell múltiplataforma es el fundador de Sun Microsystem. Como mejora a destacar es el historial de comandos, alias y autocompletado de comandos, que sin duda fue la </span><i style="font-family: inherit;">killer feature</i><span style="font-family: inherit;"> de esta Shell.</span></div>
<div style="text-align: justify;">
<span style="font-family: inherit;"><br /></span></div>
<div style="text-align: justify;">
<a href="http://en.wikipedia.org/wiki/TENEX_C_shell">Tenex C Shell</a>, también conocida por tcsh es una Shell compatible con C Shell. Desarrollada por Ken green en 1975. Mejoraba el autocompletado, incorpora UNICODE para la codificación de caracteres. Es la shell por defecto de tipo BSD, la FreeBSD, DragonflyBSD y DesktopBSD. Es la favorita por muchos programadores.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<a href="http://en.wikipedia.org/wiki/Korn_Shell">Korn Shell</a> se presentó en 1983, por AT&T Bell Laboratories. Respeta el estándar de leguaje de Shell (<a href="http://en.wikipedia.org/wiki/Posix">POSIX</a>). Durante 17 años fue propietario, y fue en el año 2000 cuando se liberó bajo una licencia pública de AT&T, pero en el 2005 se ha licenciado bajo Common Public Licens. Es por esto que se crearon alternativas como pdksh, mksh... pdksh es la shell por defecto de OpenBSD. Ha dado pie a otros proyectos, otros proyectos tomaron este código para pequeños proyectos, pues es muy compatible con otros. mksh es usada en Android.</div>
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://upload.wikimedia.org/wikipedia/commons/3/35/BrianJFox.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="320" src="http://upload.wikimedia.org/wikipedia/commons/3/35/BrianJFox.png" width="239" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Brian Fox</td></tr>
</tbody></table>
<div style="text-align: justify;">
La Shell más famosa es <a href="http://en.wikipedia.org/wiki/Bash_(Unix_shell)">Bash</a>, que proviene de Bourne-again shell, publicada en 1989 por Brian Fox. Tiene las ideas de todas las anteriores, pero permite programar funciones. Viene con la mayoría de distribuciones GNU/Linux y Mac OS X 10.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<a href="http://en.wikipedia.org/wiki/Z_shell">Z Shell</a> o zsh, es la Shell más moderna, escrita en 2007. Es el Proyecto de doctorado de Paul Flastad, y el nombre viene en homenaje a su profesor <a href="http://cs-www.cs.yale.edu/homes/shao/">Zhong Shao</a> de la universidad de Princenton, pues su nombre de login es <i>zsh</i>. Destaca por la correción automática, es completamente configurable. Muy utilizada por programadores.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Después de dar un repaso por varias Shell, ¿Cómo podemos utilizarlas? Muy fácil, simplemente nos lo instalamos desde los repositorios. Por ejemplo, si queremos instalar <span style="font-family: 'Courier New', Courier, monospace;">zsh</span> desde una distribución basada en Debian:</div>
<div style="text-align: justify;">
<br /></div>
<blockquote class="tr_bq">
<span style="font-family: 'Courier New', Courier, monospace;">sudo apt-get update && sudo apt-get install zsh</span></blockquote>
Una vez instalado, lanzamos la Shel mediante el comando <span style="font-family: 'Courier New', Courier, monospace;">zsh.</span><span style="font-family: inherit;"> Pero si queremos saber que Shell se ejecuta con el sistema, basta con escribir:</span><br />
<span style="font-family: inherit;"><br /></span><br />
<blockquote class="tr_bq">
<span style="font-family: 'Courier New', Courier, monospace;">ls -l /bin/sh</span></blockquote>
<br />Anonymoushttp://www.blogger.com/profile/17716074326023007944noreply@blogger.com0tag:blogger.com,1999:blog-6571407727517890136.post-20009173358743414472011-11-19T13:36:00.001+01:002011-11-24T16:35:07.719+01:00Kernel Linux<div style="text-align: justify;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://upload.wikimedia.org/wikipedia/commons/thumb/3/35/Tux.svg/510px-Tux.svg.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="200" src="http://upload.wikimedia.org/wikipedia/commons/thumb/3/35/Tux.svg/510px-Tux.svg.png" width="170" /></a></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Ya han pasado 20 años desde que este "pequeño" proyecto personal fuera <a href="http://groups.google.com/group/comp.os.minix/msg/b813d52cbc5a044b">comunicado</a> al mundo un 25 de Agosto de 1991. Tal y como muchos proyectos de Software Libre, todo empezó como una idea personal. Pero acabó siendo quizás el proyecto de mayor relevancia en la historia tanto del Software Libre como de la informática.</div>
<div style="text-align: justify;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://upload.wikimedia.org/wikipedia/commons/thumb/6/69/Linus_Torvalds.jpeg/391px-Linus_Torvalds.jpeg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="http://upload.wikimedia.org/wikipedia/commons/thumb/6/69/Linus_Torvalds.jpeg/391px-Linus_Torvalds.jpeg" width="208" /></a></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
El nombre de Linux proviene de su creador <a href="http://es.wikipedia.org/wiki/Linus_Torvalds">Linus Torvalds</a> de Finlandia, que a sus 21 años de edad, quiso realizar un Sistema Operativo similar a <a href="http://es.wikipedia.org/wiki/Unix">Unix</a>. Con la ayuda del código que <a href="http://es.wikipedia.org/wiki/Andrew_S._Tanenbaum">Tanenbaum</a> desarrolló en <a href="http://es.wikipedia.org/wiki/Minix">Minix</a>, pudo crear una base que ejecutara programas sobre arquitecturas de <a href="http://es.wikipedia.org/wiki/Intel_80386">80386</a>.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Desde la primera versión 0.01, que inicialmente tuvo como nombre inicial <a href="http://es.wikipedia.org/wiki/Historia_de_Linux#El_nombre">Freax</a>, contaba con 10239 líneas de código, pasando de los 14 millones de líneas de código que tiene actualmente.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Sobre la robustez del código, se han realizado estudio sobre la fiabilidad del código. <a href="http://www.coverity.com/">Coverity</a>, empresa dedicada al testeo de seguridad, realizó un estudio a la versión 2.6 del kernel, como <a href="http://lwn.net/Articles/115530/">resultado</a> se obtuvo 985 bugs en 5,7 millones de líneas de código. A pesar de la alarmante cifra, si comparamos con cualquier software comercial, la cifra está entre 20 y 30 bugs por cada mil líneas de código, unos 114000 bugs en 5,7 millones de líneas.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
A pesar de la gran cantidad de contribuidores, más de un millar de empresas colaboradoras, no quiere decir que no sea un software robusto. Es la experiencia de cada contribuidor, el que hace que el kernel sea tan estable.</div>
<div style="text-align: justify;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://personalpages.manchester.ac.uk/staff/m.dodge/cybergeography/atlas/linux_kernel_large.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="http://personalpages.manchester.ac.uk/staff/m.dodge/cybergeography/atlas/linux_kernel_large.png" width="291" /></a></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
La arquitectura es de tipo <a href="http://es.wikipedia.org/wiki/N%C3%BAcleo_monol%C3%ADtico">monolítico</a>, esto hace que la ejecución de todos o su mayoría de servicios del sistema se encuentren en el mismo espacio de direcciones. Es decir, que están dentro del código, esto provoca mejor rendimiento, pero también puede provocar mayor inestabilidad.</div>
<div style="text-align: justify;">
Por contrapartida, existen los microkernel, en el que la ejecución de servicios del sistema se hacen en el espacio de usuario como servidores. Es menos complejo, más portable y mantenible. Un ejemplo de microkernel es Minix.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Esta diferencia de arquitectura provocó una gran discusión entre los creadores de ambos sistemas, pues por aquella época, en 1992, <a href="http://www.dina.dk/~abraham/Linus_vs_Tanenbaum.html">Tanenbaum acusaba a Linux de estar obsoleto</a>.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
En el kernel de Linux, como en otros Sistemas Operativos existen los <a href="http://es.wikipedia.org/wiki/M%C3%B3dulo_de_n%C3%BAcleo">módulos</a>, que dan soporte a nuevo hardware, sistema de archivos o incluir nuevas llamadas al sistema. Para trabajar con éstos módulos existen una serie de herramientas llamadas LKM tools que componen las siguientes aplicaciones:</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<br /></div>
<ul>
<li style="text-align: justify;"><b>lsmod</b>: Listar los módulos cargados.</li>
<li style="text-align: justify;"><b>insmod</b>: Cargar un módulo en memoria. Se encuentra en la ruta <span style="font-family: 'Courier New', Courier, monospace;">/lib/modules</span></li>
<li style="text-align: justify;"><b>rmmod</b>: Quitar un módulo de la memoria.</li>
<li style="text-align: justify;"><b>modprobe</b>: Usa el fichero de depencias para saber cual hace falta de verdad. Con <span style="font-family: 'Courier New', Courier, monospace;">modprobe -l </span><span style="font-family: inherit;">podemos sacar una lista de las dependencias.</span></li>
<li style="text-align: justify;"><b>depmod</b>: Crea un fichero de depencias.<span style="font-family: 'Courier New', Courier, monospace;"> depmod -a</span> , para regerenar el listado de dependencias. y ser guarda en<span style="font-family: 'Courier New', Courier, monospace;"> /lib/modules/$(uname -r)/modules.dep</span></li>
<li style="text-align: justify;"><b>modinfo</b>: Da información detalla sobre un determinado driver. <span style="font-family: 'Courier New', Courier, monospace;">$ modinfo module_name</span> (sacado de lsmod)</li>
</ul>
<div>
<div style="text-align: justify;">
Existe también una lista negra de módulos, pues si no queremos cargar cierto módulo por incompatibilidad con el hardware, lo debemos incluir en este directorio: </div>
</div>
<div>
<div style="text-align: justify;">
<br /></div>
</div>
<div>
<div style="text-align: justify;">
<span style="font-family: 'Courier New', Courier, monospace;">/etc/modprobre.d/</span></div>
</div>
<div>
<div style="text-align: justify;">
<span style="font-family: 'Courier New', Courier, monospace;"><br /></span></div>
</div>
<div>
<div style="text-align: justify;">
<span style="font-family: inherit;">o en el siguiente fichero de </span>configuración<span style="font-family: inherit;">:</span></div>
</div>
<div>
<div style="text-align: justify;">
<span style="font-family: 'Courier New', Courier, monospace;"><br /></span></div>
</div>
<div>
<div style="text-align: justify;">
<span style="font-family: 'Courier New', Courier, monospace;">/etc/modprobre.conf</span></div>
</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Muy bien, pero... Quiero la última versión del kernel. Existen veces que te compras un ordenador nuevo, y puede que ciertos componentes no funcionen con tu distribución habitual. ¿Cómo solucionar esto? Compilando la última versión del kernel.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Primero necesitamos las herramientas para compilar, para ello debemos descargarnos los siguientes programas:</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<span style="font-family: 'Courier New', Courier, monospace;">gcc , binutils, build-essentials, kernel-package, libncurse5-dev</span></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Por ejemplo, desde una distribución basada en Debian sería los siguientes comandos:</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<span style="font-family: 'Courier New', Courier, monospace;">sudo apt-get update</span></div>
<div style="text-align: justify;">
<span style="font-family: 'Courier New', Courier, monospace;">sudo apt-get install gcc binutils build-essential kernel-package libncurses5-dev </span></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Una vez que tenemos las herramientas, necesitamos el kernel, nos lo descargamos de la web oficial del kernel, <a href="http://kernel.org/">kernel.org</a></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
La mejor opción es descargarnos la última versión estable, aunque si queremos lo último siempre podremos utilizar una <i>Release Candidate</i>, marcadas con <b>rc</b>. A la fecha de este post, la última versión es la 3.1.1</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Una vez descargado debemos descomprimirlo</div>
<br />
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<span style="font-family: 'Courier New', Courier, monospace;">sudo tar -xvf linux-3.1.1.tar.bz2 -C /usr/src/</span></div>
<div style="text-align: justify;">
<br /></div>
<br />
<div style="text-align: justify;">
Y ahora vamos donde lo descomprimimos en:</div>
<div style="text-align: justify;">
<br /></div>
<br />
<div style="text-align: justify;">
<span style="font-family: 'Courier New', Courier, monospace;">cd /usr/src/linux-3.1.1/</span></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Ahora podemos modificar la configuración del kernel gracias a la herramienta <span style="font-family: 'Courier New', Courier, monospace;">menuconfig</span></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<span style="font-family: 'Courier New', Courier, monospace;">sudo make menuconfig</span></div>
<div style="text-align: justify;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://3.bp.blogspot.com/-iZy2pR2Qmcc/Tsi1t9Cu6uI/AAAAAAAABqU/7tMg8Zn7KfM/s1600/Pantallazo-Terminal.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="214" src="http://3.bp.blogspot.com/-iZy2pR2Qmcc/Tsi1t9Cu6uI/AAAAAAAABqU/7tMg8Zn7KfM/s320/Pantallazo-Terminal.png" width="320" /></a></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Esto nos brinda la posibilidad de marcar o desmarcar módulos que nos interesen o que no deseamos que carguen porque sabemos que no lo vamos a necesitar. Puede ser un arma de doble filo, pues si sabemos configurarlo correctamente, tendremos un kernel más ligero y con lo justo para funcionar. Pero si no ponemos todo lo que necesita podremos quedarnos con una distribución que no arranque.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Si no estamos muy seguro de que hacer en este caso, siempre podemos utilizar:</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<span style="font-family: 'Courier New', Courier, monospace;">sudo make oldconfig</span></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Con esto creará una configuración como la del kernel que te esta funcionando actualmente, así nos aseguramos de que va funcionar correctamente.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Una vez que guardemos el fichero de configuración, pasamos a compilarlo. Tan sencillo como:</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<span style="font-family: 'Courier New', Courier, monospace;">sudo make -j8</span></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Dependiendo de vuestro ordenador tardará mas o menos.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<br /></div>
<br />
<div style="text-align: justify;">
Después de compilar necesitamos instalarlo:</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<span style="font-family: 'Courier New', Courier, monospace;">sudo make modules_install install</span></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Esto creará unos ficheros en el directorio <span style="font-family: 'Courier New', Courier, monospace;">/boot/</span> del tipo:</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<span style="font-family: 'Courier New', Courier, monospace;">cd /boot/</span></div>
<div style="text-align: justify;">
<span style="font-family: 'Courier New', Courier, monospace;">ls -la | grep 3.1.1</span></div>
<br />
<br />
<ul>
<li style="text-align: justify;"><span style="font-family: 'Courier New', Courier, monospace;">System.map-3.1.1</span></li>
<li style="text-align: justify;"><span style="font-family: 'Courier New', Courier, monospace;">vmlinuz-3.1.1</span></li>
<li style="text-align: justify;"><span style="font-family: 'Courier New', Courier, monospace;">initrd.img-3.1.1</span></li>
<li style="text-align: justify;"><span style="font-family: 'Courier New', Courier, monospace;">config-3.1.1</span></li>
</ul>
<div style="text-align: justify;">
<span style="font-family: inherit;">En caso de no encontrar ningún fichero con un nombre similar a la versión de nuestro kernel, debemos utilizar:</span></div>
<div style="text-align: justify;">
<span style="font-family: inherit;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: 'Courier New', Courier, monospace;">sudo update-initramfs -u -k 3.1.1</span></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Esto pertenece al<a href="http://es.wikipedia.org/wiki/Initramfs"> Initial RAM disk (initrd),</a> son una serie de ficheros usados en el proceso de arranque del kernel. Básicamente montan el sistema de ficheros raíz.</div>
<div style="text-align: justify;">
Si el comando anterior no nos ha actualizado o generado un fichero initramfs, debemos crear uno nuevo con:</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<span style="font-family: 'Courier New', Courier, monospace;">sudo update-initramfs -c -k 3.1.1</span></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Por último, este comando nos ha generado una nueva configuración del sistema de arranque grub, si lo deseamos modificar, podemos hacerlo directamente desde:</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<span style="font-family: 'Courier New', Courier, monospace;">sudo vim /boot/grub/grub.cfg</span></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Pero si finalmente queremos aplicar la configuración debemos utilizar:</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<span style="font-family: 'Courier New', Courier, monospace;">sudo update-grub</span></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Ya solamente queda reiniciar y a disfrutar!</div>
<br />
<br />
<br />
<br />Anonymoushttp://www.blogger.com/profile/17716074326023007944noreply@blogger.com0tag:blogger.com,1999:blog-6571407727517890136.post-90981592392884063762011-11-06T20:50:00.001+01:002011-11-06T20:52:13.162+01:00MySQL<div class="separator" style="clear: both; text-align: center;">
<a href="http://en.wikipedia.org/wiki/File:MySQL.svg"><img border="0" height="165" src="http://upload.wikimedia.org/wikipedia/en/6/62/MySQL.svg" width="320" /></a></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Es muy difícil encontrar hoy en día a alguien que no conozca <a href="http://www.mysql.com/">MySQL</a> o no haber utilizado alguna web que albergara información con este software, <a href="http://en.wikipedia.org/wiki/TYPO3">TYPO3</a>, <a href="http://en.wikipedia.org/wiki/Joomla">Joomla</a>, <a href="http://en.wikipedia.org/wiki/WordPress">WordPress</a>, <a href="http://en.wikipedia.org/wiki/Drupal">Drupal</a>, <a href="http://en.wikipedia.org/wiki/Twitter">Twitter</a> o <a href="http://en.wikipedia.org/wiki/Wikipedia">Wikipedia</a> son parte de una gran lista de ejemplos. Pero muchas veces usamos software sin investigar cómo ha sido su desarrollo o qué es lo que hace tan especial a este sistema de gestión de bases de datos.</div>
<div style="text-align: justify;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://upload.wikimedia.org/wikipedia/commons/5/55/David_Axmark.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="200" src="http://upload.wikimedia.org/wikipedia/commons/5/55/David_Axmark.jpg" width="136" /></a><a href="http://upload.wikimedia.org/wikipedia/commons/b/bf/Monty_in_prague.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="200" src="http://upload.wikimedia.org/wikipedia/commons/b/bf/Monty_in_prague.jpg" width="150" /></a></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Se desarrolló por <a href="http://en.wikipedia.org/wiki/David_Axmark">David Axmark</a> y <a href="http://en.wikipedia.org/wiki/Michael_Widenius">Michael Widenius</a> por la empresa<a href="http://en.wikipedia.org/wiki/MySQL_AB"> MySQL AB</a>, una empresa sueca dedicada al Software Libre desde 1995. <a href="http://en.wikipedia.org/wiki/SQL">SQL</a> es el lenguaje desarrollado en 1981 por IBM y que se convirtió en estándar en 1986 gracias a la publicación SQL-86 hecha por ANSI. Michael estaba creando rutinas de bajo nivel para conectar bases de datos, trató de usar <a href="http://en.wikipedia.org/wiki/MSQL">mSQL</a>, por entonces era lo más eficiente, pero no lo suficientemente rápido y flexible para sus necesidades. Por lo que creó una API basada en SQL, y cuyo nombre contiene el nombre de la hija de Michael, <b>My</b>SQL.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Desde que el 23 de Mayo de 1995 apareciera la primera versión interna, fueron expandiendo su software a diferentes arquitecturas y Sistemas Operativos. Tras 13 años de mejoras y con la versión 5 en marcha, el 26 de Febrero de 2008, Sun Microsystems compra MySQL AB por la cifra de 1 billón de dólares. Ahora Sun Microsystems fue comprada por Oracle el 27 de Enero de 2010, y con ello MySQL pertenece a Oracle. Gracias a esta compra, Oracle es hoy por hoy la empresa con el software de bases de datos más importante, pues cuenta con un negocio corporativo desde hace mucho tiempo, y su única competencia era MySQL.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Esta compra, creo una gran controversia, incluso apareció un movimiento llamado <a href="http://monty-says.blogspot.com/2009/12/help-saving-mysql.html">"Save MySQL" promovida por Widenius</a> por el temor de que Oracle dejase abandonado el desarrollo de MySQL y se centrara en su linea de negocio privativo como viene siendo habitual. Finalmente se continuará con un sistema de doble licencia, comercial y GPL. De igual manera, como es habitual en esto casos, se realizó un fork llamado <a href="http://en.wikipedia.org/wiki/MariaDB">MariaDB</a>.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Como modelo de negocio, existe <a href="http://en.wikipedia.org/wiki/MySQL_Enterprise">MySQL Enterprise</a>, es un servicio de suscripción y está orientado a un mercado profesional.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Si queremos empezar a utilizar MySQL, es muy fácil. Desde una distribución basada en Debian, podemos usar desde la linea de comandos:</div>
<div style="text-align: justify;">
<br /></div>
<blockquote class="tr_bq">
<div style="text-align: justify;">
<span style="font-family: 'Courier New', Courier, monospace;">$ sudo apt-get install mysql-server</span></div>
</blockquote>
<div style="text-align: justify;">
Con este sencillo comando podremos instalar el servidor de base de datos. Durante la instalación nos pedirá que introduzca una contraseña para el usuario root de la base de datos.</div>
<div style="text-align: justify;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://3.bp.blogspot.com/-m9C_rqAgYhU/TrbaM004wdI/AAAAAAAABqE/Ld9CvyfBK2c/s1600/Mysql01.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="172" src="http://3.bp.blogspot.com/-m9C_rqAgYhU/TrbaM004wdI/AAAAAAAABqE/Ld9CvyfBK2c/s400/Mysql01.png" width="400" /></a></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Una vez instalado, desde la linea de comando podremos acceder mediante el siguiente comando:</div>
<div style="text-align: justify;">
<br /></div>
<blockquote class="tr_bq">
<div style="text-align: justify;">
<span style="font-family: 'Courier New', Courier, monospace;">$ mysql -u root -p</span></div>
</blockquote>
<div style="text-align: justify;">
Introducimos la contraseña que introducimos anteriormente, y ya estamos dentro de la consola de MySQL. Desde aqui podremos hacer todo tipo de operaciones. Entre las más básicas se encuentran:</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Ver en una lista, las bases de datos que almacena MySQL:</div>
<blockquote class="tr_bq">
<div style="text-align: justify;">
<span style="font-family: 'Courier New', Courier, monospace;">show databases;</span></div>
</blockquote>
<div style="text-align: justify;">
Buscar cuales tienen una letra s en su nombre:</div>
<blockquote class="tr_bq">
<div style="text-align: justify;">
<span style="font-family: 'Courier New', Courier, monospace;">show databases like "%s%";</span></div>
</blockquote>
<div style="text-align: justify;">
Utiliza la base de datos de nombre mysql:</div>
<blockquote class="tr_bq">
<div style="text-align: justify;">
<span style="font-family: 'Courier New', Courier, monospace;">use mysql;</span></div>
</blockquote>
<div style="text-align: justify;">
Muestra las tablas de la base de datos activa:</div>
<blockquote class="tr_bq">
<div style="text-align: justify;">
<span style="font-family: 'Courier New', Courier, monospace;">show tables;</span></div>
</blockquote>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Pero también se pueden realizar acciones sin necesidad de entrar a la consola de MySQL, directamente con el comando <i>mysqladmin</i> :</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Crear una base de datos con el nombre olidroide:</div>
<div style="text-align: justify;">
<br /></div>
<blockquote class="tr_bq">
<div style="text-align: justify;">
<span style="font-family: 'Courier New', Courier, monospace;">mysqladmin -u root -p create olidroide</span></div>
</blockquote>
<div style="text-align: justify;">
Eliminar una base de datos con el nombre olidroide:</div>
<blockquote class="tr_bq">
<div style="text-align: justify;">
<span style="font-family: 'Courier New', Courier, monospace;">mysqladmin -u root -p drop olidroide</span></div>
</blockquote>
<div style="text-align: justify;">
Mostrar los parámetros de configuración que utiliza la base de datos, las caches y el sistema de codificación entre otra información importante:</div>
<blockquote class="tr_bq">
<div style="text-align: justify;">
<span style="font-family: 'Courier New', Courier, monospace;">mysqladmin -u root -p variables</span></div>
</blockquote>
<div>
<div style="text-align: justify;">
<br /></div>
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://www.pagondel.org/wp-content/uploads/2010/08/mysqlWorkbench.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://www.pagondel.org/wp-content/uploads/2010/08/mysqlWorkbench.png" /></a></div>
<div>
<div style="text-align: justify;">
<br /></div>
</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Puede que la linea de comando no resulte atractiva para ciertos usuarios. Existen herramientas gráficas que ayudan el uso y la gestión de este tipo de bases de datos. Por eso existe <a href="http://mysqlworkbench.org/">MySQL Workbench</a>, integra en una sola herramienta desarrollo, administración y diseño de bases de datos. Personalmente creo que es una herramienta muy completa y bastante estable. El hecho que sea multiplataforma ayuda para no tener problemas de desarrollo en cualquier entorno.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Es muy sencillo de instalar, todos los pasos y mas detalles se pueden encontrar en su web: <a href="http://wb.fabforce.eu/">http://wb.fabforce.eu/</a></div>
<div style="text-align: justify;">
<br /></div>Anonymoushttp://www.blogger.com/profile/17716074326023007944noreply@blogger.com0tag:blogger.com,1999:blog-6571407727517890136.post-45521151246536124252011-07-03T22:56:00.002+02:002011-07-03T22:56:45.687+02:00Todos nos beneficiamos con el Software Libre<div style="text-align: justify;">Muchas veces, parece como si el que mayor beneficio saca del Software Libre es el usuario final. Mucho software se hace para ayudar con una necesidad generalizada. Pero a pesar de esta premisa, el usuario final somos todos, pues que el se libere un programa afecta al usuario final, al desarrollador y al integrador.</div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;"><b>Usuarios finales</b></div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;">Como producto final del que vamos a disfrutar, podemos asegurar que utilizando Software Libre evitaremos monopolios. Todos tienen el acceso al código, pero cada empresa un interés único, esto puede crear una competencia real. Como por ejemplo el caso de dos entornos de escritorio famosos, Gnome y KDE, al que podemos sumarle ahora Unity, integrado en las próximas versiones de una de las mas famosas distribuciones Linux, Ubuntu.</div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;">Confianza, aunque como en la mayoría de los casos, depende del éxito del programa, siempre podemos decir que tener acceso al código, nos permitirá modificarlo tanto para adaptar nuevas necesidades como exportar datos para portarlo a otro programa. Imaginemos un programa de contabilidad, que dejara de mantenerse por cualquier razón. En este caso podríamos obtener los datos para pasarlo a otro programa de contabilidad. Nos podemos olvidar de cajas negras en las que introducimos datos, se procesan "mágicamente" y nos devuelven resultados, sin saber que ha pasado entre medias.</div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;">Todo programa libre como cualquier otro programa, debe ser probado antes de su salida oficial. Pero en el caso del Software Libre podemos predecir que ese programa ha sido testeado en un entorno real, porque el acceso a programas libres es más económico, sin versiones de prueba o por tiempo limitado. Libre de probar y si no te gusta utilizar otro.</div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;"><b>Desarrolladores</b></div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;">Oportunidad de competencia, aún teniendo pocos recursos. No es necesario invertir en costosas licencias para ver que al final no cumple con lo que necesitas para desarrollar. Como se decía antes, se prueba y si no te convence, utilizas otro o lo adaptas.</div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;">Tomar ventaja respecto a tus competidores, pero con un previo análisis, pues si partimos de una misma base, no es bueno acabar haciendo lo mismo. En ese caso, es mejor la colaboración con un proyecto.</div><div style="text-align: justify;">Los canales de distribución son baratos y globales. Ofrecer un proyecto de Software Libre es ofrecer un repositorio de donde cualquiera pueda obtenerlo, poder ejecutarlo o poder distribuirlos.</div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;">Podemos obtener beneficios sobre las modificaciones de dicho software para posteriormente venderlo. Un caso muy práctico es el uso de los desarrolladores web que utilizan Apache para montar un servidor, PHP como herramienta de desarrollo, y posteriormente utilizar una base de Drupal para montar una web. En todo momento está usando software, y no por ello no deja de cobrar por el servicio, que es hacer la página web. Pudiendo además, durante el desarrollo encontrar fallos que reportar o incluso arreglar para ser devueltos a la comunidad.</div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;"><b>Integradores</b></div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;">Todo el Software Libre está a su disposición. Si un programa no se ajusta al resto, siempre existe la posibilidad de adaptarlo, el código fuente está disponible. Partes de software pueden ser integrados, no es necesario integrar el software completo. Tal como decía antes, no hay cajas negras, si deseas integrar una serie de software, siempre podrás analizar los parámetros que entran en el programa y ver su proceso.</div>Anonymoushttp://www.blogger.com/profile/17716074326023007944noreply@blogger.com1tag:blogger.com,1999:blog-6571407727517890136.post-72055676303582959782011-07-03T01:44:00.001+02:002011-07-03T01:45:25.702+02:00Calidad en el Software Libre<div style="text-align: justify;">¿Cómo podemos medir la calidad en el Software Libre?</div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;">Es un gran problema, porque la percepción de calidad es diferente para cada persona, los intereses de uno son completamente diferentes al del otro. Pero si que podemos definir una serie de aspectos que pueden ayudarnos a decidir porqué un software es de mejor calidad que otro.</div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;"><b>Eficiencia,</b> porque debe cumplir con todos los requerimientos planteado previamente, utilizando los recursos mínimos necesarios para dicha tarea. Se puede medir concretando previamente las necesidades que va a suplir el software y comprobar posteriormente si las cumple.</div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;"><b>Reusabilidad</b>, es la capacidad con la que está desarrollado el software para que pueda ser utilizado en otras funciones o proyectos diferentes.</div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;"><b>Usabilidad</b>, las funcionalidades que es capaz de ofrecer para ser ejecutado.</div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;"><b>Modularidad</b>, capacidad de división en partes del proyecto para que sus funcionalidades queden aisladas entre si, y se puedan desarrollar de manera autónoma.</div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;"><b>Claridad</b>, tanto el código como la funcionalidad final del software, deben ser concretas y definidas, sin que sea complejo volver a analizar su funcionamiento.</div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;"><b>Robustez</b>, garantiza la integridad de los datos que use el software, y que en un mal funcionamiento no provoque errores en su conjunto.</div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;"><b>Seguridad</b>, compromiso de los datos, y del sistema en general para utilizarlo con fines ilícitos, o hacer un mal funcionamiento.</div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;">Además de seguir éstas pautas, se utilizan los estándares. No solamente es llevar un papeleo extenso sobre la manera de realizar un desarrollo. Calidad es cultura, experiencia, buenas prácticas... Los desarrolladores no son elementos fáciles de intercambiar.</div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;">La relación entre calidad y proceso son muy discutibles, pues no quiere decir que una buena calidad de producto tenga una buena calidad de proceso y al revés. Pero si que se puede generalizar que si un software está desarrollado por gente con mucha reputación, podemos asegurar que vamos a tener un buen desarrollo, ya que esas personas ya tienen cultura adquirida.</div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;">Hay comunidades de software que se han ganado la confianza de los desarrolladores, y tienen guías propias de buenas practicas, como las siguientes:</div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;"><a href="https://wiki.ubuntu.com/LoCoCouncil/LoCoTeamsBestPracticesandGuidelines/es">https://wiki.ubuntu.com/LoCoCouncil/LoCoTeamsBestPracticesandGuidelines/es</a></div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;"><a href="https://wiki.ubuntu.com/UGR/Bugs/BestPractices">https://wiki.ubuntu.com/UGR/Bugs/BestPractices</a></div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;"><a href="https://wiki.mozilla.org/Mozilla.org/Contribute/Best_Practices">https://wiki.mozilla.org/Mozilla.org/Contribute/Best_Practices</a></div>Anonymoushttp://www.blogger.com/profile/17716074326023007944noreply@blogger.com1tag:blogger.com,1999:blog-6571407727517890136.post-40249870928253578682011-07-03T00:27:00.001+02:002011-07-03T00:29:46.210+02:00QSOS - Selección de proyectos de Software Libre<div class="separator" style="clear: both; text-align: center;"><a href="http://www.qsos.org/"><img border="0" height="124" src="http://2.bp.blogspot.com/-bm4moQgNfKM/Tg-Rt56IjWI/AAAAAAAABco/pZ-YOgS1LQA/s320/Qsos-medium.png" width="320" /></a></div><br />
Qualification and Selection Open Source software, traduciendo literalmente, Calificación y Selección de software de Fuentes Abiertas. Gracias a esta metodología, podemos trazar y argumentar de una manera objetiva la selección de entre varios proyectos de Software Libre. Esta metodología es de origen Francés, de la empresa <a href="http://es.wikipedia.org/wiki/Atos_Origin">Atos Origin</a>.<br />
<br />
QSOS define 4 pasos que debemos tomar:<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="http://3.bp.blogspot.com/-AYgfaYZmdU0/Tg-YdzyiWAI/AAAAAAAABcs/yf1P0O1-Isg/s1600/processus_4_etapes.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="392" src="http://3.bp.blogspot.com/-AYgfaYZmdU0/Tg-YdzyiWAI/AAAAAAAABcs/yf1P0O1-Isg/s640/processus_4_etapes.png" width="640" /></a></div><br />
<br />
<ol><li><b>Definir </b>y organizar qué va a ser evaluado. Puede ser que solamente nos interese una cierta funcionalidad de un software, y puede que exista software que solamente tenga esa funcionalidad que buscamos. Vemos a que familia de software pertenece pues no es lo mismo definir criterios para una software de retoque fotográfico que uno para monitorizar un sistema.<br />
En este punto también se observa con detalle el tipo de licencia, si podemos tomar posesión del código o es una licencia vírica como lo puede ser GPL.<br />
Por último, también se define el tipo de comunidad. Si es un desarrollador por su cuenta, un grupo de desarrolladores, organización o entidad legal.<br />
</li>
<li><b>Evaluar</b> el software de la competencia en contra de los criterios definidos anteriormente, incluidos los riesgos de la naturaleza de ese proyecto. <br />
De esta fase debemos reportar 2 informes, una tarjeta identificativa por cada proyecto evaluado, para realizar búsquedas rápidas, ver aspectos técnicos y servicios.<br />
Y el otro reporte es un hoja de evaluación que contiene las funcionalidades cubiertas, riesgos que cubre a partir de un usuario y un integrador. Puntuación de 0 a 2, definidos como funcionalidad cubierta, 0 no, 1 media y 2 total.<br />
</li>
<li><b>Calificación</b> según los criterios de la organización en ejes de evaluación, y el filtrado de la selección relacionados con su contexto. Se definen filtros, por ejemplo el software con funcionalidades incompletas, se filtra por tarjeta identificativa.<br />
</li>
<li><b>Selección</b> del software que cumple con todas las necesidades descritas al inicio y anotar los programas que compiten. Para ello hay que crear una malla con todas las puntuaciones del paso anterior y organizarlos.</li>
</ol><div class="separator" style="clear: both; text-align: center;"><a href="http://1.bp.blogspot.com/-4VVlwu4FpP0/Tg-aLGgKcHI/AAAAAAAABcw/tCSYsDL7-0Q/s1600/qsos-tools.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="232" src="http://1.bp.blogspot.com/-4VVlwu4FpP0/Tg-aLGgKcHI/AAAAAAAABcw/tCSYsDL7-0Q/s400/qsos-tools.png" width="400" /></a></div><div><br />
</div><div><br />
</div><div>Ver la metodología se esta manera puede parecer difícil de entender, pero con QSOS quisieron realizar algo diferente, y consiguieron unificar el método con el que se realizan éstas métricas y cuando realicemos un QSOS, podemos compartirlo. </div><div><br />
</div><div class="separator" style="clear: both; text-align: center;"><a href="http://4.bp.blogspot.com/-b3zdWTxTOEY/Tg-aqTbf6uI/AAAAAAAABc0/wmOLnnYq0cA/s1600/o3s.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://4.bp.blogspot.com/-b3zdWTxTOEY/Tg-aqTbf6uI/AAAAAAAABc0/wmOLnnYq0cA/s1600/o3s.png" /></a></div><div><br />
</div><div><br />
</div><div>Existen también herramientas que nos facilitan esta tarea, como la O3S Open Source Selection Software Tool, <a href="http://www.qsos.org/o3s/">http://www.qsos.org/o3s/</a>. Pero dentro de la sección de <a href="http://www.qsos.org/?cat=4">Tools</a> de la web QSOS vemos que hay otras herramientas como la <a href="http://www.qsos.org/?p=73">Xuleditor</a>, que como su nombre indica, utilizar el motor gráfico de Firefox.</div>Anonymoushttp://www.blogger.com/profile/17716074326023007944noreply@blogger.com0tag:blogger.com,1999:blog-6571407727517890136.post-75793052028554281752011-07-01T13:53:00.001+02:002011-07-02T18:22:52.016+02:00Ohloh - comunidad de desarrolladores<div class="separator" style="clear: both; text-align: center;"><a href="http://1.bp.blogspot.com/-5nwvpmxlCDg/Tg20c_X86ZI/AAAAAAAABbw/9-m6six7qDo/s1600/ohloh.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="132" src="http://1.bp.blogspot.com/-5nwvpmxlCDg/Tg20c_X86ZI/AAAAAAAABbw/9-m6six7qDo/s200/ohloh.png" width="200" /></a></div><a href="https://www.ohloh.net/">Ohloh</a> es un directorio público de Software Libre y personas que lo desarrollan y/o usan. Aunque pueda parecer una forja donde alojar proyectos, no lo es.<br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="http://3.bp.blogspot.com/-AL4BIZ_wgeU/Tg20kGsE0HI/AAAAAAAABb0/16Z10_Z4zq8/s1600/lenguajes.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="216" src="http://3.bp.blogspot.com/-AL4BIZ_wgeU/Tg20kGsE0HI/AAAAAAAABb0/16Z10_Z4zq8/s640/lenguajes.png" width="640" /></a></div><br />
En Ohloh se centran en un análisis de los proyectos que tiene enlazado. Gracias a los datos que obtiene de los repositorios oficiales de los proyectos puede realizar diferentes informes sobre el<a href="https://www.ohloh.net/languages/compare"> uso del lenguaje de programación</a>, el <a href="https://www.ohloh.net/repositories/compare">sistema de control de versiones</a> o incluso <a href="https://www.ohloh.net/p/compare">comparar varios proyectos</a>.<br />
<br />
No obstante, puedes realizar otro de consultas gracias a su <a href="https://www.ohloh.net/api/getting_started">API</a> abierta, con <a href="https://www.ohloh.net/api/examples">ejemplos de uso</a> en varios lenguajes de programación.<br />
<div class="separator" style="clear: both; text-align: center;"><a href="http://4.bp.blogspot.com/-xJBG5D4dmV4/Tg20qT0_-yI/AAAAAAAABb4/9i_oc-GQs7E/s1600/Selecci%25C3%25B3n_002.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://4.bp.blogspot.com/-xJBG5D4dmV4/Tg20qT0_-yI/AAAAAAAABb4/9i_oc-GQs7E/s1600/Selecci%25C3%25B3n_002.png" /></a></div><div class="separator" style="clear: both; text-align: center;"><br />
</div>Al visualizar un proyecto en concreto, podemos observar que Ohloh hace un análisis del mismo, y crea un indice propio al que llama <a href="https://www.ohloh.net/wiki/allfactoids">factoids</a>. Podemos ver la actividad de usuarios a <a href="https://www.ohloh.net/p/firefox/map">nivel geográfico</a>, pero para que esto funcione correctamente, tiene que existir usuarios registrados que marquen que usan dicho software.<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="http://4.bp.blogspot.com/-1CPY5qpfSSk/Tg21FZopPFI/AAAAAAAABb8/rceT2zQKPHE/s1600/mapa.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://4.bp.blogspot.com/-1CPY5qpfSSk/Tg21FZopPFI/AAAAAAAABb8/rceT2zQKPHE/s1600/mapa.png" /></a></div><br />
Gracias a estas herramientas, podemos hacer un estudio sobre las motivaciones de los desarrolladores y de los usuarios finales, ya que ambas partes son importantes en el crecimiento de un proyecto.Anonymoushttp://www.blogger.com/profile/17716074326023007944noreply@blogger.com0tag:blogger.com,1999:blog-6571407727517890136.post-78149882360268672442011-06-27T21:48:00.000+02:002011-06-27T21:48:52.194+02:00Estructura social - Modelo de cebolla<div class="separator" style="clear: both; text-align: center;"><a href="http://2.bp.blogspot.com/-NREw1vL_pc4/TgjZbL7ROKI/AAAAAAAABWY/HiKfbiW9FaE/s1600/onions-4.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="265" src="http://2.bp.blogspot.com/-NREw1vL_pc4/TgjZbL7ROKI/AAAAAAAABWY/HiKfbiW9FaE/s320/onions-4.jpg" width="320" /></a></div><br />
<div style="text-align: justify;">No, no os quiero hacer llorar con este post... qué fácil es hacer un chiste malo cuando se incluye una cebolla... Hoy quiero explicar un sistema de estructuración de proyectos de Software Libre. Se llama el modelo en cebolla, denominado así por su similitud a las capas de una cebolla, y este caso, la importancia que tiene según se accede al núcleo.</div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;">Esta estructura social es muy común en la mayoría de proyectos de software, en el caso de software libre, existe la oportunidad de llegar hasta el centro, mientras que en software privativo puede que nos quedemos en la capa mas externa siempre. Esto es debido a que en esta estructura, en la capa más externas se encuentran todos los usuarios de un programa. En la siguiente capa mas interna, se encuentran los usuarios activos. Estos empiezan a comprometerse, colaborando en búsqueda de bugs, crear algún parche, traducir... Para que sus modificaciones sean revisadas, deben comunicárselo a la siguiente capa, donde se encuentran lo co-developers, personas que llevan tiempo realizando modificaciones, colaborando, y que tienen un tiempo reservado para realizar este tipo de tareas. Es una capa importante, pues la comunicación y la ayuda entre estas dos capas debe ser la mas intensa, pues la siguiente capa, que es el núcleo, se encuentran los coordinadores del proyecto, y sus desarrolladores.</div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;">Podemos ver claramente cual es la dirección que debe tomar cualquier persona que quiera colaborar, y seguir este orden es importante, pues así se mantiene un flujo de pasos que debe seguir para ser parte del núcleo. Esto sirve para explicar la meritocracia, pues según realizas tareas, más posibilidades tienes de ir quitando capas a la cebolla.</div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;">Con esta estructura, también se explica la cantidad de personas implicadas en un proyecto de Software Libre, pues cuanto mas externa sea la capa, mayor cantidad de personas hay implicadas. Como suele pasar, el núcleo es muy pequeño, representa a esa minoría, dedicada a que funcione, comparada con la gran cantidad de gente que utiliza ese software.</div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;">El modelo en cebolla, brinda a asemejarlo con bastante facilidad a muchas estructuras, a pesar de que ahora mismo nos ocupa la estructura social, podemos también asemejarlo al código, en el que existe una API que se comunica con el exterior del programa, y esta API se comunica con el núcleo, que internamente tiene una serie de funciones divididas en bibliotecas. El núcleo a su vez se comunicará con el hardware. Es un modelo que estructura muy bien cada parte de un programa.</div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;">Es importante saber la existencia, y la aplicación de esta estructura social en un proyecto, pues si no estuvieran definidos, puede ser difícil de mantener una gran cantidad de código, listas de correo, parches, etc... </div>Anonymoushttp://www.blogger.com/profile/17716074326023007944noreply@blogger.com0tag:blogger.com,1999:blog-6571407727517890136.post-46268858189562211932011-06-26T21:16:00.000+02:002011-06-26T21:16:26.135+02:00Open Data - Datos abiertos en las administraciones públicas<div class="separator" style="clear: both; text-align: center;"><a href="http://www.muycomputerpro.com/2011/04/06/desafio-exteder-open-data-espana/"><img border="0" height="213" src="http://1.bp.blogspot.com/-pabrdBQ3ogo/Tgd4xJsir6I/AAAAAAAABWU/mnTcAJzCTnA/s320/opendata.jpg" width="320" /></a></div><br />
<div style="text-align: justify;">¿Cuantas veces necesitamos acceder a datos administrativos de tu ayuntamiento?, o datos a nivel demográfico, estaciones meteorológicas o incluso las cámaras de tráfico para ver si hay atasco en un determinado punto kilométrico. Datos que son recogidos, administrados por el organismo competente, para realizar estudios y/o censarlo. Si esos datos, nos conciernen a todos los ciudadanos ¿Porqué no tener acceso a ellos?</div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;"><a href="http://en.wikipedia.org/wiki/Open_data">Open Data</a> es un movimiento que determinados datos, estén libres a todo el mundo, sin restricciones de copyright, patentes u otro mecanismo de control. Esto no implica únicamente en desarrollar una web, en el que aparezcan un serie de datos. Implica que se deben desarrollar mecanismos de comunicación, accesible, legible, comprensible, estructurado y reutilizable. Esto puede ser mediante una <a href="http://es.wikipedia.org/wiki/API">API</a> con el que cualquier aplicación pueda conversar con esos datos. De esta manera no se limita el uso a la aplicación web, si no al de cualquier tipo de aplicación, de escritorio o móvil.</div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;">Para cumplir esta serie de requisito, podríamos decir que hacen falta tres conceptos que debe cumplir todo ayuntamiento con datos accesibles:</div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;"><b>Transparencia: </b>La administración pública debería permitir el acceso sobre actos que se están realizando y sobre sus planos de actuación. Permitiendo a los ciudadanos poder realizar un control de la acción gubernamental, y poder crear valor a partir de estos datos cedidos.</div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;"><b>Colaboración: </b>Estos cambios se realizan para implicar más al ciudadano, empresas, asociaciones y otros agentes, permitiendo realizar un trabajo conjunto.</div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;"><b>Participación: </b>Favorece el derecho de la ciudadanía a participar activamente en las actuaciones sobre asuntos públicos de los organismos oficiales del estado.</div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;">Aunque el movimiento parece que está estrechamente relacionado con el Software Libre, no quiere decir que a pesar de tener datos abiertos, se utilicen herramientas privativas, para el manejo de los mismos. Un posible ejemplo es la utilización de Google Maps para representar la situación geográfica donde se encuentran las estaciones meteorológicas. A pesar de tener datos abiertos, y Google Maps, que tiene una API abierta, no quiere decir que los datos estén almacenados en sistemas cerrados. En este caso recomendaría el uso de <a href="http://www.openstreetmap.org/">OpenStreetMaps</a>.</div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;">Obviamente, hay ciertos tipos de datos que las Administraciones no pueden hacer públicos, como son los datos de carácter personal, los sujetos a propiedad intelectual o aquellos que estén relacionados con la seguridad.</div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;">Podemos contar con la experiencia de otras administraciones extranjeras que ya han empezado a dar acceso abierto a sus datos. Como el de Estados Unidos <a href="http://www.data.gov/">http://www.data.gov/</a> , el gobierno británico <a href="http://data.gov.uk/">http://data.gov.uk/ </a>, y a nivel nacional, el País Vasco <a href="http://opendata.euskadi.net/">http://opendata.euskadi.net</a>.</div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;">Desde <a href="http://www.cenatic.es/">Cenatic</a> se ha creado un video en el que <a href="mailto:manuel.velardo@cenatic.es">Manuel Velardo</a> describe las características de este movimiento.</div><div><div style="text-align: center;"><iframe allowfullscreen="" frameborder="0" height="344" src="http://www.youtube.com/embed/qzw7bhsgOlc?fs=1" width="425"></iframe></div></div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;">Creo que si todos los ayuntamientos aceptaran Open Data, como forma de comunicarse con la ciudadanía, mejorarían problemas sociales, económicos o incluso ideológicos. Open Data es la comunicación entre gobierno y ciudadano de la forma más directa y diversa posible.</div><br />
Más información en el documento realizado por la Junta de Castilla y León:<br />
<a href="http://www.orsi.jcyl.es/web/jcyl/ORSI/es/Plantilla100Detalle/1262860952313/1262860952313/1284139023547/Redaccion">http://www.orsi.jcyl.es/web/jcyl/ORSI/es/Plantilla100Detalle/1262860952313/1262860952313/1284139023547/Redaccion</a>Anonymoushttp://www.blogger.com/profile/17716074326023007944noreply@blogger.com0tag:blogger.com,1999:blog-6571407727517890136.post-63428838770938060272011-06-26T15:22:00.000+02:002011-06-26T15:22:49.219+02:00Creative Commons<div class="separator" style="clear: both; text-align: center;"><a href="http://es.wikipedia.org/wiki/Archivo:CC-logo.svg"><img border="0" height="76" src="http://4.bp.blogspot.com/-4vhV2Oyg2SA/TgcZjR79OrI/AAAAAAAABWA/BgBe6a2ee34/s320/512px-CC-logo.svg.png" width="320" /></a></div><br />
Cuando hablamos de Software Libre, nos referimos a todo aquel software que siguen las 4 libertades básicas descritas por la Free Software Foundation. Pero estamos hablando de software, ¿Podemos aplicar estas libertades a otra cosa que no sea software?<br />
<br />
Sí, y para ello se fundó la <a href="http://es.wikipedia.org/wiki/Creative_Commons">Creative Commons</a>, mediante nuevas licencias, permite reducir las barreras legales respecto a la creación de contenido creativo, como pueden ser contenido textual, fotográfico, pictórico musical o audiovisual.<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="http://1.bp.blogspot.com/-jHwfm3IMaT4/Tgcc7GCFkzI/AAAAAAAABWE/f8mXFyzpj90/s1600/fundadoresCC.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="136" src="http://1.bp.blogspot.com/-jHwfm3IMaT4/Tgcc7GCFkzI/AAAAAAAABWE/f8mXFyzpj90/s400/fundadoresCC.png" width="400" /></a></div><br />
Fue fundada en 2001 por <a href="http://en.wikipedia.org/wiki/Lawrence_Lessig"> Lawrence Lessig</a>, <a href="http://en.wikipedia.org/wiki/Hal_Abelson">Hal Abelson</a>, y <a href="http://en.wikipedia.org/wiki/Eric_Eldred">Eric Eldred</a>.Pero hasta<a href="http://creativecommons.org/about/history/"> Diciembre de 2002</a> no se hicieron públicas el primer conjunto de licencias. Pero ya existían licencias libres, ¿para qué mas?. Aunque pueda parecer que es una proliferación de licencias, en Creative Commons buscan solucionar ciertos problemas que con el software no se daban.<br />
<div class="separator" style="clear: both; text-align: center;"><a href="http://2.bp.blogspot.com/-xYjucx9bGJQ/TgclwP6GbhI/AAAAAAAABWQ/XSOYc2EBeW0/s1600/license-layers.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="200" src="http://2.bp.blogspot.com/-xYjucx9bGJQ/TgclwP6GbhI/AAAAAAAABWQ/XSOYc2EBeW0/s200/license-layers.png" width="154" /></a></div>Crearon una serie de capas visuales, de tal manera que fueran fácilmente identificadas y aplicadas.<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="http://creativecommons.org/licenses/by/3.0"><img border="0" src="http://i.creativecommons.org/l/by/3.0/88x31.png" /></a></div><div class="separator" style="clear: both; text-align: center;"><b>CC BY</b></div><div class="separator" style="clear: both; text-align: justify;"><b>Reconocimiento: </b>Debe reconocer los créditos de la obra de la manera especificada por el autor o el licenciador (pero no de una manera que sugiera que tiene su apoyo o apoyan el uso que hace de su obra).</div><div class="separator" style="clear: both; text-align: justify;"><br />
</div><div class="separator" style="clear: both; text-align: center;"><a href="http://creativecommons.org/licenses/by-sa/3.0"><img border="0" src="http://i.creativecommons.org/l/by-sa/3.0/88x31.png" /></a></div><div class="separator" style="clear: both; text-align: center;"><b>CC BY-SA</b></div><div class="separator" style="clear: both; text-align: justify;"></div><div class="separator" style="clear: both; text-align: justify;"><b>Reconocimiento: </b>Debe reconocer los créditos de la obra de la manera especificada por el autor o el licenciador (pero no de una manera que sugiera que tiene su apoyo o apoyan el uso que hace de su obra).</div><div class="separator" style="clear: both; text-align: justify;"><b>Compartir bajo la misma licencia:</b> Si altera o transforma esta obra, o genera una obra derivada, sólo puede distribuir la obra generada bajo una licencia idéntica a ésta.</div><br />
<div class="separator" style="clear: both; text-align: left;"><b><br />
</b></div><div class="separator" style="clear: both; text-align: center;"><a href="http://i.creativecommons.org/l/by-nd/3.0/88x31.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://i.creativecommons.org/l/by-nd/3.0/88x31.png" /></a></div><div class="separator" style="clear: both; text-align: center;"><b>CC BY-ND</b></div><div class="separator" style="clear: both; text-align: justify;"></div><div class="separator" style="clear: both; text-align: justify;"><b>Reconocimiento:</b> Debe reconocer los créditos de la obra de la manera especificada por el autor o el licenciador (pero no de una manera que sugiera que tiene su apoyo o apoyan el uso que hace de su obra).</div><div class="separator" style="clear: both; text-align: justify;"><b>Sin obras derivadas:</b> No se puede alterar, transformar o generar una obra derivada a partir de esta obra.</div><br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="http://creativecommons.org/licenses/by-nc/3.0"><img border="0" src="http://i.creativecommons.org/l/by-nc/3.0/88x31.png" /></a></div><div style="text-align: center;"><span class="Apple-style-span" style="color: black;"><b><a href="http://www.blogger.com/"></a><span id="goog_1570669370"></span><span id="goog_1570669371"></span>CC BY-NC</b></span></div><div style="text-align: justify;"><span class="Apple-style-span" style="color: black;"></span></div><div style="text-align: justify;"><span class="Apple-style-span" style="color: black;"><b>Reconocimiento:</b> Debe reconocer los créditos de la obra de la manera especificada por el autor o el licenciador (pero no de una manera que sugiera que tiene su apoyo o apoyan el uso que hace de su obra).</span></div><div style="text-align: justify;"><span class="Apple-style-span" style="color: black;"><b>No comercial:</b> No puede utilizar esta obra para fines comerciales.</span></div><div style="text-align: justify;"><span class="Apple-style-span" style="color: black;"><br />
</span></div><div class="separator" style="clear: both; text-align: center;"><span class="Apple-style-span" style="color: black;"></span></div><div style="text-align: justify;"><div class="separator" style="clear: both; text-align: center;"><a href="http://creativecommons.org/licenses/by-nc-sa/3.0"><img border="0" src="http://i.creativecommons.org/l/by-nc-sa/3.0/88x31.png" /></a></div><div style="text-align: center;"><span class="Apple-style-span" style="color: black;"><b>CC BY-NC-SA</b></span></div></div><br />
<b>Reconocimiento: </b>Debe reconocer los créditos de la obra de la manera especificada por el autor o el licenciador (pero no de una manera que sugiera que tiene su apoyo o apoyan el uso que hace de su obra).<br />
<b>No comercial:</b> No puede utilizar esta obra para fines comerciales.<br />
<b>Compartir bajo la misma licencia:</b> Si altera o transforma esta obra, o genera una obra derivada, sólo puede distribuir la obra generada bajo una licencia idéntica a ésta.<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="http://creativecommons.org/licenses/by-nc-nd/3.0"><img border="0" src="http://i.creativecommons.org/l/by-nc-nd/3.0/88x31.png" /></a></div><div style="text-align: center;"><b>CC BY-NC-ND</b></div><br />
<br />
<b>Reconocimiento:</b> Debe reconocer los créditos de la obra de la manera especificada por el autor o el licenciador (pero no de una manera que sugiera que tiene su apoyo o apoyan el uso que hace de su obra).<br />
<b>No comercial:</b> No puede utilizar esta obra para fines comerciales.<br />
<b>Sin obras derivadas:</b> No se puede alterar, transformar o generar una obra derivada a partir de esta obra.<br />
<br />
<br />
<b>CC 0</b><br />
Esta licencia permite al autor dejar su obra al dominio público, de esta manera no tendrá ningún derecho sobre la obra, incluso de atribución.<br />
<br />
Para aplicar una licencia de Creative Commons, podemos utilizar la <a href="http://creativecommons.org/choose/">herramienta oficial</a>.<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="http://1.bp.blogspot.com/-dl_9EjH2xho/TgchhoqM1GI/AAAAAAAABWM/bQSfgOoAtG0/s1600/freeCulturalWorks.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://1.bp.blogspot.com/-dl_9EjH2xho/TgchhoqM1GI/AAAAAAAABWM/bQSfgOoAtG0/s1600/freeCulturalWorks.png" /></a></div>Debido a estas diferenciadas licencias, se creó <a href="http://freedomdefined.org/Definition">Free Cultural Works</a>, que trata de definir un trabajo cumpliendo las 4 libertades básicas del movimiento del Software Libre. Pero desde Creative Commons se ha asegurado cumplir con esta definición a través de la licencia de Reconocimiento y Reconocimiento-CompartirIgual. El dominio público también cumple con los requisitos de la Free Cultural Works, y para identificar claramente una obra con ésta definición se creó un logo.<br />
<br />
Puede que haya licencias que se adecuen a tus necesidades, pero pueden ser un arma de doble filo, puede que no quieras que con tu obra no se beneficie nadie económicamente. Pero puede jugar en tu contra, si alguna vez deseas utilizarlo para una actividad comercial y cobres por ello, o en el peor de los casos, debes competir contra tu misma fuente. Estarías infringiendote a ti mismo. Por supuesto, que esto no se aplica si no hay nadie que acuse de violación de derechos, y nadie se tira piedras a su propio tejado.<br />
<br />
Después de analizar las posibilidades que nos ofrece Creative Commons, creo que es interesante utilizar este tipo de licencias, pues incluyen siempre el reconocimiento del autor, protegiendo así del problema que muchos autores se les pasa por la cabeza, el temido plagio.<br />
Ya existen sitios donde puedes comprar, contenido bajo licencias Creative Commons, como <a href="http://www.jamendo.com/">Jamendo</a> para la música, <a href="http://www.flickr.com/">Flickr</a> para fotos, o <a href="http://blip.tv/">Blip.tv</a> para videos, y actualmente <a href="http://www.youtube.com/">youtube</a>.Anonymoushttp://www.blogger.com/profile/17716074326023007944noreply@blogger.com0tag:blogger.com,1999:blog-6571407727517890136.post-70501869548726262842011-06-26T01:08:00.000+02:002011-06-26T01:08:48.017+02:00Roles en un proyecto de Software Libre<div style="text-align: justify;">Si planeas empezar con un proyecto de Software Libre desde cero, puede que este apartado sea irrelevante. Parece que los roles empiezan a ser importantes cuando hay una cierta cantidad involucrada. Pero definir y saber qué y quién va ha realizar determinadas tareas, puede ser crucial en ciertos momentos para que el proyecto siga adelante. Es fácil que un proyecto de Software Libre tenga muchos colaboradores, por su propia naturaleza.</div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;">En 1975, <a href="http://es.wikipedia.org/wiki/Fred_Brooks">Fred Brooks</a> definió la <a href="http://es.wikipedia.org/wiki/Ley_de_Brook">Ley de Brooks</a>, decía que cuando un proyecto de software crece, lo hace de manera exponencial, y cuando además está retrasando su salida el Manager tiende añadir a mas gente nueva al proyecto para terminar antes. Esto es un grave error pues esa gente nueva no conoce el modelo y tiene que ponerse al día, y al final acaban picando código alocadamente.</div><div style="text-align: justify;">En Software Libre cuando mas grande es el proyecto, más propenso a tener roles. Como una gran orquesta, en la que cada uno debe dar su parte en su debido tiempo. Consiguiendo así una armonía.</div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;">Paso a describir una serie de roles básicos en cualquier proyecto:</div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;"><b>Desarrolladores</b></div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;">Los creadores de código. Deben informar de sus cambios, no sirve de nada ser un <i>lobo solitario</i> y desarrollar por tu cuenta. Eligen que entorno de desarrollo se va a utilizar, aunque hay casos en los que no hay definido un IDE. Sus objetivos están dirigidos por lo que dicta la comunidad, pero sin llegar a la pasividad. No todos los desarrolladores tienen derecho a commit en el repositorio del proyecto, pues hay casos que deben ser revisados. Una vez realizado ese commit, hay que actualizar la lista de funcionalidades o errores corregidos.</div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;"><b>Maintainers</b></div><div style="text-align: justify;"><br />
</div><br />
<div style="text-align: justify;">Existen muchas subcategorias:</div><br />
<ul><li style="text-align: justify;"><b>Patch Manager:</b> Puede que el desarrollador no da a basto con los Bugs, y el Patch Manager debe canalizar esto. Debe acotar los bugs, ver cual es importante o no, si existe el patch que alguien lo revise o ellos mismos.</li>
<li style="text-align: justify;"><b>Manager de traduccion:</b> documentación, código, internacionalización u localización. Portar código de un lenguaje de programación hacia a otro. Los mensajes de la interfaz. Los manuales. </li>
<ul><li style="text-align: justify;"><b>Internacionalizacion</b> trata de adaptar el software para otras culturas y/o idiomas, favorece la protabilidad. Da soporte para distintas monedas, soporte para unicode.</li>
<li style="text-align: justify;"><b>Localizacion</b> son los mensajes de la interfaz de usuario.</li>
</ul><li style="text-align: justify;"><b>Documentation manager:</b> la guia del usuario, es una tarea tediosa. Se pueden vender como guías.</li>
<li style="text-align: justify;"><b>Issue Manager:</b> Parecido al patch manager, pero también atiende a las peticiones. Encaja la oferta con la demanda.</li>
<li style="text-align: justify;"><b>FAQ Manager:</b> Cuando un proyecto es grande es necesario. La tarea es sencilla, leer los foros y wikis en busca de preguntas. Tratar de buscar las mas frecuentes. Se formula bien la pregunta y se responde, y reorganizarlo para que no exista preguntas duplicadas y organizarlo por categorías.</li>
<li style="text-align: justify;"><b>Release Manager:</b> Se encarga de las nuevas release, en Ubuntu son cada 6 meses. Suele ser un cargo que cambia mucho de persona, porque es una tarea agotadora. Tiene en la cabeza el RoadMap, tiene que cumplirlo, y si se desvía, trata de que haya consenso. Coordina todo para que haya homogeneidad.</li>
</ul><div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;"><b>Documentation writer</b></div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;">Lo que más importa es que escriba bien y no mucha cantidad. Lo mas conciso posible, con posibilidad de crear una guia del desarrollador. Un buen ejemplo <a href="http://library.gnome.org/admin/system-admin-guide/stable/index-info.html.en">GNOME Project system-admin-guide</a>. También debe escribir/revisar la documentación de Man.</div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;"><b>Distribution Developer</b></div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;">Se encarga de la homogeneidad del proyecto de paqueteria. Revisa las licencias. </div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;"><b>Traductores</b></div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;">Hasta que el desarrollador no termina, no empiezan a traducir. Esto es debido porque puede haber cambios finales, en el que se muestre o se deje de mostrar un mensaje por pantalla. Por lo que tienen un esfuerzo extra antes de la siguiente release, pues siempre se están cambiando código contiuamente.</div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;"><b>Tester</b></div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;">Personas encargadas de probar el programa, su correcto funcionamiento, o incluso forzar para que de errores. El skill de estos tester no es meramente técnico, cade vez es más social y útil por que da una visión más amplia del usuario final.</div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;"><b>Community Manager</b></div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;">Construir, alimentar y expandir la comunidad, son las prioridades de esta persona. Que exista buen ambiente, proporciona atajos para encontrar a la persona que quieres, pues si alguien se quiere incorporar a realizar una tarea muy específica, es preferible que tenga contacto con las personas que han desarrollado o modificado esa parte de código. Al final puede acabar como un relaciones publicas. Cualquier proyecto colaborativo es necesario este rol, no solamente en proyectos de software. Ayudan a encontrar fuentes de ingresos. No se encarga directamente en todo, delega todo. Tiene un rango multidisciplinar. Son gente hiperactiva. Escuchan. Ayuda la colaboracion entre varios roles. Periodicamente hacen brainstorming, conferencias, para aportar nuevas ideas. Recomendaciones y guias de buena conducta.</div><div style="text-align: justify;"><b><br />
</b></div><div style="text-align: justify;"><b>Project Leader</b></div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;">Persona mas relevante o influencia en el proyecto, o por ser el fundador o porque te lo hayas ganado (Meritocracia). Por ser el fundador es fácil, por estar desde el principio y puso las reglas, el ejemplo mas claro es Linus Torvalds. Por meritocracia, es más difícil, se pueden equivocar sin tantos problemas como el fundador, pues el fundador lo debe conocer mejor que nadie. A veces se encuentran dictadores benevolentes, cuando se detecta que hay opiniones enfrentadas, se pide la actuación del dictador benevolente y se aplica su decisión.Capturan la esencia de la motivación del proyecto.</div></div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;">Todos estos roles no tienen porque ser obligatorios. Aunque muchos de ellos son indispensables, como los desarrolladores y un community manager que promocione el proyecto. Incluso se pueden crear nuevos roles, como los encargados del diseño de la aplicación, como su iconografía y darle un resultado vistoso. Antes este rol no tenía mucho sentido, pero poco a poco, la interfaz del usuario ha ido tomando un papel importante en el desarrollo de software. Por otro lado, llegar a conseguir uno de estos roles en ciertos proyectos, puede ser muy fácil en algunos casos o todo lo contrario. En el proyecto <a href="http://www.apache.org/">Apache</a> tiene un proceso fuerte para incorporar a nuevas personas.</div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;">La finalidad de estos roles, es saber lo que tiene que hacer cada persona, en cada momento. También ayuda a involucrar a más gente el proyecto, que no tienen skill de programador, pero quieren colaborar igualmente. Nunca hay que rechazar una colaboración ;)</div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;"><br />
</div>Anonymoushttp://www.blogger.com/profile/17716074326023007944noreply@blogger.com0tag:blogger.com,1999:blog-6571407727517890136.post-68125244130411355902011-06-25T22:57:00.003+02:002011-06-25T23:01:16.642+02:00La Catedral y el Bazar<div class="separator" style="clear: both; text-align: center;"><a href="http://oreilly.com/catalog/9780596001087/"><img border="0" height="320" src="http://4.bp.blogspot.com/-4ylkp1tFxUU/TgXTnHtgvSI/AAAAAAAABV4/WyHi_fCt5CE/s320/lrg.jpg" width="206" /></a></div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;">Cuando hablamos de este ensayo, estamos también hablando de <a href="http://es.wikipedia.org/wiki/Eric_S._Raymond">Eric S. Raymond</a>. En 1997 se le consideró una figura líder del movimiento Open Source. Fue cofundador de la <a href="http://www.opensource.org/">OSI (Open Source Initiative)</a>. Contribuyó a la liberación del <a href="http://es.wikipedia.org/wiki/Netscape_Navigator">navegador web Netscape</a>. Como programador coordino el cliente de correo <a href="http://es.wikipedia.org/wiki/Fetchmail">Fetchmail</a>, colaboró en <a href="http://es.wikipedia.org/wiki/Emacs">Emacs</a>, y <a href="http://es.wikipedia.org/wiki/Ncurses">Ncurses</a>.</div><div style="text-align: justify;"><br />
</div><div class="separator" style="clear: both; text-align: center;"><a href="http://esr.ibiblio.org/"><img border="0" src="http://2.bp.blogspot.com/-U1dKvW7_oTI/TgXW2UKHcnI/AAAAAAAABV8/rIoTT-8KTRI/s1600/portrait.jpg" /></a></div><div style="text-align: justify;">Y gracias a la colaboaración de este software, lo que le llevo a escribir un ensayo sobre dos modelos opuestos de desarrollo, la <b>catedral</b> es el modelo que utilizaban la mayoría de fabricantes de software, y el <b>bazaar</b>, más parecido al Software Libre.</div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;">Durante el ensayo, analiza 19 lecciones sobre su experiencia en estos dos modelos de desarrollo.</div><div style="text-align: justify;"><br />
</div><ol><li><div style="text-align: justify;"><i>Todo buen proyecto de software comienza con la necesidad personal del programador</i>.</div><div style="text-align: justify;">Comienzan como su proyecto mascota, que cuidan y miman, pues es su obra. Al contrario que ocurre con el software privativo, en el que el programador realiza una tarea impuesta guste o no. Esta motivación explica grandes proyectos como el núcleo Linux.</div><div style="text-align: justify;"><br />
</div></li>
<li><div style="text-align: justify;"><i>Los buenos programadores saben qué escribir. Los mejores, que reescribir (y reutilizar).</i>Absolutamente importante en el Software Libre, Linus Torvalds no empezó desde cero, cogió partes de <a href="http://es.wikipedia.org/wiki/Minix">Minix</a>. Aunque finalmente reescribió el código, fue fundamental para comenzar con el proyecto.</div><div style="text-align: justify;"><br />
</div></li>
<li><div style="text-align: justify;"><i>"Contemple desecharlo; de todos modos tendrá que hacerlo." (Fred Brooks, The Mythical Man-Month, Capítulo 11). </i>No se entiende el problema hasta que lo implementas por primera vez, por eso es recomendable, empezar de nuevo alguna vez.</div><div style="text-align: justify;"><br />
</div></li>
<li><div style="text-align: justify;"><i>Si tienes la actitud adecuada, encontrarás problemas interesantes.</i></div><div style="text-align: justify;">Eric se encontró con un cliente de correo <a href="http://pages.interlog.com/~esmith/flames/pop.html">popclient</a> interesante escrito por Carl Harris, pero lo tenía abandonado. Eric debía tomar la decisión de cogerlo y empezar a coordinarlo por su cuenta.</div><div style="text-align: justify;"><br />
</div></li>
<li><div style="text-align: justify;"><i>Cuando se pierde el interés en un programa, el último deber es heredarlo a un sucesor competente.</i></div><div style="text-align: justify;">Antes de abandonar un proyecto de Software Libre, hay que encontrar un sucesor, que lo trate como si fuera de la mascota que tratábamos en el primer punto. Como bien dice el eslogan <i>"No los abandones, ellos no lo harían"</i>, siempre hay alguien dispuesto a asumir ese cargo.</div><div style="text-align: justify;"><br />
</div></li>
<li><div style="text-align: justify;"><i>Tratar a los usuarios como colaboradores es la forma más apropiada de mejorar el código, y la más efectiva de depurarlo.</i></div><div style="text-align: justify;">Y qué mejor ejemplo que el núcleo Linux. Cualquier persona tiene acceso al código y/o cambiarlo, encuentra fallos, y los puede arreglar, y en caso de no saber arreglar, lo puede comunicar al resto.</div><div style="text-align: justify;"></div></li>
<li><div style="text-align: justify;"><i>Libere rápido y a menudo, y escuche a sus clientes.</i></div><div style="text-align: justify;">Totalmente necesario, y es fomentado gracias al sistema de canales de software. Se pueden mantener tres lineas de proceso, una estable, en la que se mantiene para implementar con gran cantidad de fallos testeados. Las <i>nightly </i>versiones previas a una estable para que los testeadores empiecen a probar posibles errores y corregirlos para la versión estable. Y un canal diario, en el que cambio que sea realice, cambio que está disponible al mundo. De esta manera estimulamos tanto a desarrolladores, usuarios entusiastas, y usuario s finales.</div><div style="text-align: justify;"></div></li>
<li><div style="text-align: justify;"><i>Dada una base suficiente de desarrolladores asistentes y beta-testers, casi cualquier problema puede ser caracterizado rápidamente, y su solución ser obvia al menos para alguien.</i></div><div style="text-align: justify;">O definir la <b>Ley Linus</b> <i>"con muchas miradas, todos los errores saltarán a la vista". </i>En este punto se diferencia la <b>catedral</b>, con meses de revisión exhaustivos para alcanzar el máximo número de errores. Por eso se tarda tanto en aparecer nuevas versiones.</div><div style="text-align: justify;">Por otro lado, el <b>bazar</b>, asume que los errores son evidentes cuando se muestra a desarrolladores entusiastas. Por consecuencia se libera más a menudo por incluir los cambios de estos.</div><div style="text-align: justify;"></div></li>
<li><div style="text-align: justify;"><i>Las estructuras de datos inteligentes y el código burdo funcionan mucho mejor que en el caso inverso.</i></div><div style="text-align: justify;">Un problema universal es la dificultad de entender el código que otra persona a escrito. Realizar diagramas o definir las estructuras de datos utilizadas, permiten comprender mejor el funcionamiento del programa.</div><div style="text-align: justify;"><br />
</div></li>
<li><div style="text-align: justify;"><i>Si usted trata a sus analistas (beta-testers) como si fueran su recurso más valioso, ellos le responderán convirtiéndose en su recurso más valioso.</i>Tal y como cuenta Eric, en su experiencia con Fetchmail, creo una lista beta para todos los que le preguntaron por la implementación. Anunciaba nuevas <i>releases</i> para estimular a que la gente lo probara. Escuchaba las opiniones de estos usuarios primerizos. Como consecuencia, dar importancia a estos recurso hará que tu software sea más práctico al final.</div><div style="text-align: justify;"></div></li>
<li><div style="text-align: justify;"><i>Lo más grande, después de tener buenas ideas, es reconocer las buenas ideas de sus usuarios. Esto último es a veces lo mejor. </i>Obtener las opiniones de los usuarios es lo mas enriquecedor que debes tener en cuenta.</div><div style="text-align: justify;"></div></li>
<li><div style="text-align: justify;"><i>Frecuentemente, las soluciones más innovadoras y espectaculares provienen de comprender que la concepción del problema era errónea.</i>Esto me recuerda mucho al punto 3, en algún momento, gracias a haber atendido a las sugerencias de los usuarios, podemos encontrarnos que el camino o las soluciones que se proponen son erróneas. Parar, dar marcha atrás para coger otro camino, es duro, pero merece la pena.</div><div style="text-align: justify;"><br />
</div></li>
<li><div style="text-align: justify;"><i>"La perfección (en diseño) se alcanza no cuando ya no hay nada que agregar, sino cuando ya no hay algo que quitar."</i>Cuando el código va mejorando y se va simplificando, es cuando se hace lo correcto. Respecto a la interfaz de usuario, creo que pasa lo mismo. Para mi un claro ejemplo es Gnome, pasó de un entorno de escritorio para hackers, ya que cada componente tenia gran cantidad de configuración, a pasar a ser un escritorio multidisciplinar, se fue aligerando la interfaz de usuario, quitando opciones innecesarias.</div><div style="text-align: justify;"><br />
</div></li>
<li><div style="text-align: justify;"><i> Toda herramienta es útil empleándose de la forma prevista, pero una *gran* herramienta es la que se presta a ser utilizada de la manera menos esperada.</i>Aquí juega un papel importante la innovación, dar al usuario esa manera de usar un programa que incluso mejora las expectativas.</div><div style="text-align: justify;"><br />
</div></li>
<li><div style="text-align: justify;"><i>Cuándo se escribe software para una puerta de enlace de cualquier tipo, hay que tomar la precaución de alterar el flujo de datos lo menos posible, y ¡*nunca* eliminar información a menos que los receptores obliguen a hacerlo!</i>Puede parecer un comentario único para el proyecto en el que trabajaba Eric, pero creo que tiene importancia en la manera que si tienes un programa, que debe leer una entrada estandarizada, y después sacarla por pantalla o tratarla para una salida, debe mantener el mismo estándar.</div><div style="text-align: justify;"></div></li>
<li><div style="text-align: justify;"><i>Cuando su lenguaje está lejos de un Turing completo, entonces el azúcar sintáctico puede ser su amigo.</i></div><i><div style="text-align: justify;"></div></i></li>
<li><div style="text-align: justify;"><i>Un sistema de seguridad es tan seguro como secreto. Cuídese de los secretos a medias.</i></div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;">Estas dos lecciones son propias del proyecto Fetchmail, habla sobre el sistema de seguridad de la aplicación, cómo guardar y encriptar las contraseñas.</div><div style="text-align: justify;"></div></li>
<li><div style="text-align: justify;"><i>Para resolver un problema interesante, comience por encontrar un problema que le resulte interesante.</i>Es la única forma de no abandonar un proyecto, como le ocurrió a Carl Harris. Hay muchos motivos para motivar a un desarrollador, en el Software Libre, mayormente no es económico, es mas bien una satisfacción de su ego y su reputación entre desarrolladores.</div><div style="text-align: justify;"></div></li>
<li><div style="text-align: justify;"><i>Si el coordinador de desarrollo tiene un medio al menos tan bueno como lo es Internet, y sabe dirigir sin coerción, muchas cabezas serán, inevitablemente, mejor que una.</i></div><div style="text-align: justify;">Cuando Eric escribió esto, aún estaban empezando a dar sus frutos el Software Libre como movimiento. Creo que hoy en día está claro el éxito de un producto libre.</div></li>
</ol><div><div style="text-align: justify;">Tras estas 19 lecciones, tengo que recordar que es un ensayo, carece de rigor. Trata de generalizar todos los proyectos de Software Libre, aplicándole un modelo de bazar. Esto puede ser confuso, pues proyectos cómo el núcleo Linux pueden aparentar más un modelo de catedral, con un dictador benevolente a la cabeza que es Linus Torvalds. Quizá el bazar no es la definición mas correcta para definir un proyecto de Software Libre. Puede que el modelo de catedral y bazar de Eric se viera influenciado por los acontecimientos que se vivían por aquel entonces.</div></div><div><div style="text-align: justify;"><br />
</div></div><div><div style="text-align: justify;">En cualquier caso, el mejor modelo que define el Software Libre es aquél que garantice las cuatro libertades.</div></div>Anonymoushttp://www.blogger.com/profile/17716074326023007944noreply@blogger.com0tag:blogger.com,1999:blog-6571407727517890136.post-90985624095379150072011-06-24T22:38:00.000+02:002011-06-24T22:38:04.654+02:00PYMES ¿Cómo le afecta que el software sea libre o privativo?Existe un momento en toda empresa, en el que se debe informatizar. Ya sea para gestionar la contabilidad, las facturas, hacer caja, escribir documentos o incluso publicitarse mediante un blog... Para manejar estos datos es importante decidir que software se va a utilizar para dicha tarea. Existe multitud de programas para ayudarnos en cada propósito. Entre ellas hay gran variedad de Software Libre. Pero, ¿en qué medida nos beneficia utilizar este tipo de software?<br />
<br />
<b>Interoperabilidad</b><br />
<br />
Cuando elegimos Software Libre, aceptamos que tenemos libertad para utilizar el código fuente. Gracias a esta característica, sabemos cómo el programa procesa los datos, cómo se comunica con el hardware y la manera de introducir nuevos cambios para adaptarlo a cada necesidad en particular. Aunque no sea intrínseco, en la mayoría de los casos, el Software Libre cumple con estándares. Un claro ejemplo es del navegador web Firefox, incluye características del estándar de HTML, CSS o JavaScript. Pero también trae efectos de renderizado propios de Firefox y que no se incluye en ningún otro navegador. Esto ocurre con Internet Explorer, pero la diferencia es que, en Firefox al tener acceso al código, pueden incluirse como estándar de HTML5.<br />
<br />
<b>Control de los datos</b><br />
<br />
No hay puertas traseras. Puede haberlas, pero sería dejarlas a conciencia o por error. Con el acceso al código, podemos trazar por donde entrar los datos, y donde deben acabar. Puede que para empresas pequeñas que manejen poca cantidad de información, ésto no importe, pero ahora que muchos datos están en la nube, hay que tener en cuenta empresas como Google, deben cumplir con leyes Americanas, que <a href="http://www.pcworld.com/article/188581/the_googlensa_alliance_questions_and_answers.html">podrían obligar a tener puertas traseras con la NSA</a> para cumplir la seguridad nacional. En el peor de los casos, hay proveedores en la nube que permiten la realización de backups en dispositivos locales.<br />
<br />
<b>Independencia del proveedor</b><br />
<br />
En muchos casos, el software se hace a medida para solventar ciertas necesidades únicas en cada empresa. El acceso al código es fundamental para que podamos cambiar a otro proveedor de software y éste lo pueda entender. Aunque hay casos como <a href="http://www.liferay.com/">Liferay</a>, que a pesar de ser Software Libre, son el único proveedor en España.<br />
<br />
<b>Ahorro de licencias</b><br />
<br />
El Software Libre es comúnmente "vendido" por suprimir por completo el coste de las licencias. Hay programas en lo que esto no es una realidad, porque no existe una alternativa a la altura. Sí... los que usen <a href="http://es.wikipedia.org/wiki/Autodesk_AutoCAD">AutoCAD</a> para arquitectura, deberán seguir utilizando su licencia, porque <a href="http://es.wikipedia.org/wiki/Blender">Blender</a> es más especifico para la animación. Pero en otros ámbitos, existen alternativas totalmente viables, como <a href="http://es.wikipedia.org/wiki/LibreOffice">LibreOffice</a> como suite ofimática. Pero el ahorro de licencias no quiere decir me guardo ese coste desde el principio. Si veníamos de utilizar software privativo, hay que adaptarlo a la alternativa con Software Libre, hay casos mas fáciles y otros más complejos. Si nunca se ha usado el nuevo software, hay que enseñar a los usuarios a utilizarlo. Puede que un principio haya que reinvertir el mismo gasto en adaptarse a este cambio, pero en cualquier caso, es un gasto que irá en decremento.<br />
<br />
<b>Decisiones de adquisición</b><br />
<br />
Puede ser nulo, eres libre de probar un nuevo software, comprobar si se adapta o poder adaptarlo a tus necesidades. Con software privativo no podemos hacer esto, pues aunque existan versiones de prueba, en algunos casos son con características capadas o por una duración determinada que no permite exprimir lo suficiente para tomar una decisión.<br />
<br />
<b>Gestión de instalación, más seguro de virus.</b><br />
<br />
Es parte de la cultura del Software Libre, todo el mundo quiere la última versión. Y el sistema de paquetes ayuda a este hecho. Hay proyectos que actualizan cada 6 meses, como <a href="http://es.wikipedia.org/wiki/Ubuntu">Ubuntu</a>. En otros casos, puedes asociarte al canal de desarrollo de Firefox, y utilizar las últimas versiones compiladas dia a dia. Esto puede ser un engorro para más de algún administrador de sistemas que necesite comprobar la retrocompatibilidad, pero esta característica hace que el software siempre esté corrigiendo errores o incluyendo nuevas características. Actualmente hay ordenadores de oficina que tienen un Sistema Operativo de hace 10 años, me refiero a Windows XP. Aunque hayan sacado actualizaciones, hay que recordar que es un software que se creó hace ya bastante tiempo y eso puede acarrear muchos problemas de seguridad.<br />
<br />
Creo que estos son unos puntos a tener en cuenta necesariamente, cuando vayamos a implementar software en una empresa. No debemos olvidarlos, pues muchas decisiones que se toman al principio, son cruciales para el futuro de esa información.Anonymoushttp://www.blogger.com/profile/17716074326023007944noreply@blogger.com0tag:blogger.com,1999:blog-6571407727517890136.post-59745488390055098142011-06-24T20:07:00.000+02:002011-06-24T20:07:11.340+02:00Software Libre<div style="text-align: justify;">Dentro de poco hará un año que empecé con el <a href="http://www.urjc.es/estudios/masteres_universitarios/informatica/software_libre/index.htm">Máster en Software Libre en la Universidad Rey Juan Carlos</a>. Cuando empecé apenas llevaba tiempo usando Software Libre. No sabía exactamente que implicaba el uso legal de este tipo de software, cómo influye en la sociedad o si existían modelos de negocio detrás de este movimiento.</div><br />
<div class="separator" style="clear: both; text-align: center;"><a href="http://es.wikipedia.org/wiki/Archivo:Richard_Stallman_2005_(chrys).jpg"><img border="0" height="200" src="http://4.bp.blogspot.com/-6wNzarKAjQQ/TgS-rPpRzxI/AAAAAAAABVc/1fRil2SdsyY/s200/Richard_Stallman_2005_%2528chrys%2529.jpg" width="181" /></a></div><br />
<div style="text-align: justify;">Para empezar a entender todos los entresijos, hay que remontarse a este personaje, <a href="http://es.wikipedia.org/wiki/Richard_Stallman">Richard M. Stallman</a> que por culpa de una impresora, a la que no podía <a href="http://en.wikipedia.org/wiki/Hacker_(hobbyist)">hackear</a> para hacerla funcionar con sus ordenadores, porque su fabricante no le envió el <a href="http://es.wikipedia.org/wiki/Codigo_fuente">código fuente</a>, empezó a idear el <a href="http://es.wikipedia.org/wiki/Manifiesto_GNU">manifiesto GNU</a>. A principios de los 80, por el <a href="http://es.wikipedia.org/wiki/Instituto_Tecnol%C3%B3gico_de_Massachusetts">MIT</a> y otras instituciones, no temían si el código del programa que estaba desarrollando lo cogiera otra persona, por aquel entonces se ayudaba entre programadores compartiendo código. Entonces empezaron a obligar a los empleados de estas instituciones a firmar un acuerdo de no divulgación. Este par de hechos, hicieron ver a Stallman que había que conservar esa comunidad de Hackers, en la que el código, como conocimiento básico era transmitido sin ningún problema.</div><br />
<div class="separator" style="clear: both; text-align: center;"><a href="http://es.wikipedia.org/wiki/Archivo:Heckert_GNU_white.svg"><img border="0" height="195" src="http://1.bp.blogspot.com/-m-lgcniYKt0/TgTCuydArwI/AAAAAAAABVg/eiNhVIEZICE/s200/535px-Heckert_GNU_white.svg.png" width="200" /></a></div><div class="separator" style="clear: both; text-align: center;"><br />
</div>En 1983 Stallman anunció el <a href="http://es.wikipedia.org/wiki/Proyecto_GNU">Proyecto GNU</a>, pero no fue hasta 1985 cuando se publicó el manifiesto, del que se pueden extraer las 4 libertades fundamentales.<br />
<br />
<ul><li><b>Libertad 0</b>, ejecutar el programa para cualquier propósito.</li>
<li><b>Libertad 1</b>, estudiar/modificar el programa para aprender o usarlo como quieras. Se requiere del código fuente de forma legible para realizar esta acción.</li>
<li><b>Libertad 2</b>, redistribuir copias para ayudar al prójimo.</li>
<li><b>Libertad 3</b>, distribuir las versiones modificadas.</li>
</ul><div class="separator" style="clear: both; text-align: center;"></div><div class="separator" style="clear: both; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: center;"><a href="http://es.wikipedia.org/wiki/Archivo:FSF-Logo.svg"><img border="0" height="36" src="http://4.bp.blogspot.com/-daDlXcz_9kQ/TgTHn6pqhiI/AAAAAAAABVo/WzGn6EcjjpM/s320/800px-FSF-Logo.svg.png" style="cursor: move;" width="320" /></a></div><div><br />
</div><div style="text-align: justify;">En este mismo se año también se creo la <a href="http://www.gnu.org/graphics/license-logos.html">Free Software Foundation</a>. Fundación encargada de eliminar las restricciones de copia, redistribución, modificación o manejo dél código.</div><div style="text-align: justify;"><br />
</div><br />
<div style="text-align: justify;">Tal y como se dicta, son libertades y no obligaciones. Esto quiere decir que si realizas modificaciones de un software que sea libre, no tienes la obligación de distribuir esos cambios realizados en ese software.</div><div style="text-align: justify;">Esto es lo que ocurre cuando un programa no tiene licencia. La licencia dicta lo que se puede, y se debe hacer con ese código. Para ello el autor debe poner claramente, bajo qué licencia publica su código. Pues si no pone nada, no se sabe si es libre o no.</div><div><div class="separator" style="clear: both; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: center;"></div><div style="text-align: center;"><span class="Apple-style-span" style="color: #0000ee; text-decoration: underline;"><br />
</span></div></div><div class="separator" style="clear: both; text-align: center;"><a href="http://www.gnu.org/graphics/license-logos.html"><img border="0" src="http://3.bp.blogspot.com/--KMCWgPX740/TgTG2dRugmI/AAAAAAAABVk/p1Sw_3f5FKg/s1600/gplv3-127x51.png" /></a></div><div class="separator" style="clear: both; text-align: center;"><br />
</div><div style="text-align: justify;">Para solucionar este problema se creo la <a href="http://www.gnu.org/copyleft/gpl.html">GPL</a>. Básicamente lo que obliga esta licencia es a preservar que un programa sea siempre libre, de tal manera que las versiones modificadas, cuando sean publicadas deberán ser también GPL.</div><div><br />
</div><div class="separator" style="clear: both; text-align: center;"><a href="http://es.wikipedia.org/wiki/Archivo:NewTux.svg"><img border="0" height="200" src="http://2.bp.blogspot.com/-4gOyx2aEVMk/TgTK3Mi_k9I/AAAAAAAABVs/jZozzWuvc-Y/s200/500px-NewTux.svg.png" width="166" /></a></div><div><br />
</div><div>Ahora que estaban sentadas las bases del Software Libre, en abril de 1991 empezó a crearse <a href="http://es.wikipedia.org/wiki/N%C3%BAcleo_Linux">Linux</a>, el núcleo de un sistema operativo desarrollado por <a href="http://es.wikipedia.org/wiki/Linus_Torvalds">Linus Torvalds</a> con 21 años, bajo licencia GPLv2.</div><div><br />
</div><div class="separator" style="clear: both; text-align: center;"><a href="http://es.wikipedia.org/wiki/Archivo:Opensource.svg"><img border="0" src="http://3.bp.blogspot.com/-EmXcu6c_jm4/TgTMsW1ygZI/AAAAAAAABVw/gTv2tmq0I0E/s1600/288px-Opensource.svg.png" /></a></div><div>Mientras Linux crecía de manera exponencial, se crearon multitud de empresas que utilizaban y apoyaban este movimiento. Pero poco a poco se vio que los ideales de la Free Software Foundation, eran demasiado restrictivos para el mundo empresarial/comercial. En 1998 se creó la <a href="http://es.wikipedia.org/wiki/Open_Source_Initiative">Open Source Initiative</a>, a raíz de la liberación del <a href="http://es.wikipedia.org/wiki/Netscape_Communicator">navegador web Netscape</a>. Por aquél entonces <a href="http://es.wikipedia.org/wiki/Eric_S._Raymond">Eric S. Raymond</a> publicó <i>La catedral y el bazar, </i>analiza dos modelos de crear software libre, son las guías para el desarrollo de un proyecto libre. Junto con <a href="http://es.wikipedia.org/wiki/Bruce_Perens">Bruce Perens</a>, crearon esta iniciativa.</div><div><br />
</div><div class="separator" style="clear: both; text-align: center;"><a href="http://www.redhat.com/"><img border="0" height="102" src="http://2.bp.blogspot.com/-s4iHNk6XK3k/TgTQQS4eVmI/AAAAAAAABV0/35Aax2eOLMQ/s320/redhat-logo1.jpg" width="320" /></a></div><div>Entre todas las empresas que aparecieron, hay que dar una mención especial a <a href="http://es.wikipedia.org/wiki/Red_Hat">Red Hat,</a> ya que demostró que el uso de Software Libre puede hacer funcionar a una empresa económicamente. En agosto de 1998 salió a bolsa obtuvieron una gran posición.</div><div><br />
</div><div>Para mí, estos son los grandes, primeros hitos de la historia del Software Libre. Creo que con esto se demuestra la filosofía con la Free Software Foundation, la aplicación con el núcleo Linux, la GPL y la OSI, y los beneficios que puede tener una empresa como RedHat.</div><div><br />
</div><div>Como recomendación para ampliar más información, recomiendo este documental <a href="http://video.google.com/videoplay?docid=7707585592627775409#">REVOLUTION OS</a> y la publicación de Richard M. Stallman <i><a href="http://oreilly.com/openbook/freedom/">Free as in freedom</a>.</i></div>Anonymoushttp://www.blogger.com/profile/17716074326023007944noreply@blogger.com0tag:blogger.com,1999:blog-6571407727517890136.post-36893324439146148372011-06-18T23:59:00.001+02:002011-06-18T23:59:39.001+02:00KDE<div class="separator" style="clear: both; text-align: center;"><a href="http://www.kde.org/stuff/clipart/klogo-official-oxygen-128x128.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://www.kde.org/stuff/clipart/klogo-official-oxygen-128x128.png" /></a></div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;"><a href="http://www.kde.org/">Kool Desktop Environment</a>, así es una de las grandes alternativas al de entorno de escritorio para Linux. La famosa K proviene de <a href="http://es.wikipedia.org/wiki/Common_Desktop_Environment">CDE</a> de Sun Microsystem, el que hasta entonces era lo que se usaba.</div><div style="text-align: justify;"><br />
</div><div class="separator" style="clear: both; text-align: center;"><a href="http://qt.nokia.com/logo.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://qt.nokia.com/logo.png" /></a></div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;"><a href="http://es.wikipedia.org/wiki/KDE">KDE</a> es Software Libre, es obligatorio que toda aplicación incluida en KDE sea libre. Este concepto lo tienen muy claro, porque KDE se basa en el toolkit gráfico <a href="http://es.wikipedia.org/wiki/Qt_(biblioteca)">Qt</a>, básicamente porque el creador ,<a href="http://es.wikipedia.org/wiki/Matthias_ettrich"> Matthias Ettrich</a>, estaba trabajando con esta tecnología. Cuando empezó a crearse este proyecto, Qt era propiedad de TrollTech, y por entonces el código no era libre. Después fue comprado por Nokia y lo volvió a licenciar bajo LGPL. En el tiempo que no era Software Libre, es cuando apareció el proyecto Gnome, buscando esa libertad que no tenían con KDE.</div><div style="text-align: justify;"><br />
</div><div class="separator" style="clear: both; text-align: center;"><a href="http://forum.notebookreview.com/linux-compatibility-software/320937-kubuntu-8-10-a.html"><img border="0" src="http://t2.gstatic.com/images?q=tbn:ANd9GcSrFFPCVoLG6zg9ACyEckn8peaYx-7LNXCTmzlHdqZKya0022Ve&t=1" /></a></div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;">No solamente KDE es un entorno de escritorio, son aplicaciones y además con capacidades multiplataforma, pudiendose usar tanto en Windows, Mac OS X o Linux. Por supuesto que esto aumenta la complejidad de la aplicación, pues cuando se desarrolla pensando en multiplataforma, hay que tener en cuenta los elementos característicos de cada Sistema Operativo. En Windows, el sistema de ficheros tiene como raiz en la mayoría de los casos C:/ pero esto no es viable en Linux, en el que la raiz es /. Por eso hay que utilizar las herramientas de la API creadas para todos los Sistemas Operativos compatibles, y realizar llamadas a esas funciones, que ya se encargará de reconoce en que sistema se encuentra y qué parámetros deberá utilizar. </div><div style="text-align: justify;">También hay que recordar que como plataforma compatible están <a href="http://es.wikipedia.org/wiki/Maemo">Maemo</a> y <a href="http://es.wikipedia.org/wiki/Meego">Meego</a>, Sistemas Operativos para dispositivos móviles, impulsadas por Nokia, sobretodo Maemo, del que existen en venta unos pocos terminales.</div><div style="text-align: justify;"><br />
</div><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://upload.wikimedia.org/wikipedia/commons/c/ce/Matthias_Ettrich_LinuxTag_2005-06-23.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="320" src="http://upload.wikimedia.org/wikipedia/commons/c/ce/Matthias_Ettrich_LinuxTag_2005-06-23.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Matthias Ettrich</td></tr>
</tbody></table><div style="text-align: justify;">KDE empezó en Octubre de 1996, por <a href="http://es.wikipedia.org/wiki/Matthias_ettrich"> </a><a href="http://es.wikipedia.org/wiki/Matthias_ettrich">Matthias Ettrich</a>. Un año después, en Agosto de 1997, se realizó el primer meeting para organizar todo lo creado hasta entonces, KDE ONE. Poco después se consolidó <a href="http://ev.kde.org/">KDE e.V.</a> asociación sin animo de lucro que sirve para coordinar las subvenciones y donaciones recibidas. Posee la única empleada de todo KDE.</div><div style="text-align: justify;">En Abril de 1998 se crea la <a href="http://es.wikipedia.org/wiki/KDE_Free_Qt_Foundation">KDE Free Qt Foundation,</a> cuya principal misión es si alguna vez Nokia decide cerrar Qt, esta fundación de mantener un fork de la última versión libre bajo licencia BSD.</div><div style="text-align: justify;">En Julio de 1998 aparece KDE 1.0 y en Septiembre del mismo año, se libera Qt bajo GPLv2.</div><div style="text-align: justify;">en Octubre de 2000 aparece KDE 2, después de otros dos años, en Octubre de 2002 aparece KDE 3. Por lógica parece que en el 2004 debería aparecer KDE 4, pero no fue hasta el 2008 cuando apareció KDE 4. Cada versión ademas corresponde a una nueva versión de Qt, y en el último cambio fue muy drástico, pues Qt cambió mucho internamente, y tuvieron que trabajar mucho para cumplir con estos cambios. A pesar de su esfuerzos, KDE 4 se la recuerda por sus numerosos fallos, que posteriormente fueron corrigiendo en siguientes versiones.</div><div style="text-align: justify;">La numeración de las versiones tienen el modelo KDE x.y.z donde:</div><br />
<ul><li style="text-align: justify;">x pertenece a un gran cambio.</li>
<li style="text-align: justify;">y un cambio menor.</li>
<li style="text-align: justify;">z versiones parcheadas.</li>
</ul><div style="text-align: justify;">La licencia que tiene hoy dia KDE son LGPLv2, BSD, MIT, X11 y su documentación está en FDL. Qt mantuvo durante mucho tiempo la filosofía de su licencia propietaria QPL, que permitía usar sus librerías, siempre y cuando no comercialices tu software, si deseas comercializarlo debías pagar la licencia y te daban soporte.</div><div style="text-align: justify;"><br />
</div><div class="separator" style="clear: both; text-align: center;"><a href="http://www.kde.org/stuff/clipart/logo-akademy.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="182" src="http://www.kde.org/stuff/clipart/logo-akademy.png" width="320" /></a></div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;">La comunidad realiza varias actividades, entre ellas las KDE Developer Meetings, cada año se realiza una, desde 1997. Con el tiempo paso a llamarse aKademy. También se hacen meetings de subgrupos como por ejemplo el de KDEEDU. Se destaca el aKademy de 2009 por realizarla conjuntamente con Gnome.</div><div style="text-align: justify;">Como en otros proyectos similares, existe la meritocracia, pero dejan de lado la figura del dictador benevolente. Existen <a href="https://mail.kde.org/mailman/listinfo">listas de correos</a>, <a href="http://forum.kde.org/">foro</a> y chat en irc.freenode en el canal #KDE, para una buena comunicación con gente interesada en el proyecto.</div><div style="text-align: justify;">Para obtener el derecho a commit, no es tan estricto como en otros proyectos. Aqui hace falta una persona que te avale dentro del proyecto, y también hayas contribuido previamente con parches.</div><div style="text-align: justify;">No solamente necesitan programadores, pues también necesitan traductores, artistas gráficos, testers, escritores para documentar o promotores para dar marketing.</div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;">Existen empresas que gracias a KDE realizan su labor, como por ejemplo Kolab Konsortium que desarrollan un servidor de tipo LDAP, para compartir contactos , correo...</div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;">Toda esta información fue extraida gracias a la charla de <a href="mailto:aleixpol@kde.org">Aleix Pol González</a> que pertenece a <a href="http://www.kde-espana.es/">KDE España</a>, que dio en el Máster en Software Libre 2010/2011. Podéis ver los videos de la charla en los siguientes enlaces:</div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;"><a href="http://blip.tv/mswl/casos-de-estudio-ii-kde-parte-i-4812873">http://blip.tv/mswl/casos-de-estudio-ii-kde-parte-i-4812873</a></div><div style="text-align: justify;"><a href="http://blip.tv/mswl/casos-de-estudio-ii-kde-parte-ii-4812920">http://blip.tv/mswl/casos-de-estudio-ii-kde-parte-ii-4812920</a></div>Anonymoushttp://www.blogger.com/profile/17716074326023007944noreply@blogger.com0tag:blogger.com,1999:blog-6571407727517890136.post-88369637814905757852011-06-18T14:10:00.000+02:002011-06-18T14:10:14.191+02:00The Corpora - Qbo<div class="separator" style="clear: both; text-align: center;"><a href="http://4.bp.blogspot.com/-kyaFvfFFrDg/TfyK2yZOj2I/AAAAAAAABVU/29ByGjIO84w/s1600/Qbo%2527s-thumb-640x426-108.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="266" src="http://4.bp.blogspot.com/-kyaFvfFFrDg/TfyK2yZOj2I/AAAAAAAABVU/29ByGjIO84w/s400/Qbo%2527s-thumb-640x426-108.jpg" width="400" /></a></div><div class="separator" style="clear: both; text-align: center;"><br />
</div><div class="separator" style="clear: both; text-align: justify;">The corpora es una empresa robótica de España, creada en el 2006 por <a href="http://thecorpora.com/blog/?page_id=2">Francisco Javier Paz</a> entusiasta de los robots y experto en seguridad informática, vino a una sesión del Máster en Software Libre a presentarnos su proyecto, <a href="http://thecorpora.com/blog/">Qbo</a>.</div><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://thecorpora.com/blog/wp-content/uploads/2009/08/AboutMe-300x246.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="http://thecorpora.com/blog/wp-content/uploads/2009/08/AboutMe-300x246.jpg" style="cursor: move;" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Francisco Javier Paz - Qbo</td></tr>
</tbody></table><div class="separator" style="clear: both; text-align: center;"></div><div class="separator" style="clear: both; text-align: justify;">Qbo quiere romper con el modelo que se está siguiendo hasta ahora sobre la comercialización de robots. Actualmente, las empresas que se dedican a la fabricación o el desarrollo de robots asumen todo el gasto generado para crear el robot. </div><div class="separator" style="clear: both; text-align: justify;"><br />
</div><div class="separator" style="clear: both; text-align: justify;">El material con el que se fabrica es muy caro, el molde para crear una pieza en producción tiene un coste aproximado de 30000€, en el caso de Qbo, tiene 35 piezas. Cierto es que para el desarrollo se utilizan prototipado rápido con una calidad muy inferior a la final. Por otro lado tenemos el coste en I+D, los ingenieros encargados de que todo eso no sea solamente un montón de hierros con circuitos, creando la lógica y cómo se va desenvolver con el entorno. Estos costes incrementan el valor del producto, para que sea rentable y causa que mucha gente no compre un robot, solamente por el precio final en el mercado, como es el caso de Sony con el robot-perro Aibo con un coste final alrededor de 3500€.</div><div class="separator" style="clear: both; text-align: justify;"><br />
</div><div class="separator" style="clear: both; text-align: justify;">Con Qbo se plantea un nuevo modelo de mercado, solamente venden la caja, esto puede ir dirigido a fabricantes que quieran incluir sus modificaciones y su lógica para después venderlo, o para usuarios finales, que deseen crear un robot a su medida.</div><div class="separator" style="clear: both; text-align: justify;"><br />
</div><div class="separator" style="clear: both; text-align: center;"><a href="http://3.bp.blogspot.com/-8Vpqc6HkSqQ/TfyPYp5G6BI/AAAAAAAABVY/sEdor0tu2KE/s1600/arduino_logo_white.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://3.bp.blogspot.com/-8Vpqc6HkSqQ/TfyPYp5G6BI/AAAAAAAABVY/sEdor0tu2KE/s1600/arduino_logo_white.png" /></a></div><div class="separator" style="clear: both; text-align: justify;"><br />
</div><div class="separator" style="clear: both; text-align: justify;"><br />
</div><div class="separator" style="clear: both; text-align: justify;">El hardware está basado en <a href="http://es.wikipedia.org/wiki/Arduino">Arduino</a>, tiene una gran comunidad trabajando detrás. Permite adaptar todo lo que queramos. Se basa en un chip con un lenguaje de programación (Basado en C) y a partir de este chip, se van añadiendo componentes, como por ejemplo una webcam, GPS...</div><div class="separator" style="clear: both; text-align: justify;"><br />
</div><div class="separator" style="clear: both; text-align: center;"><a href="http://upload.wikimedia.org/wikipedia/commons/5/53/OpenCV_Logo_with_text.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="200" src="http://upload.wikimedia.org/wikipedia/commons/5/53/OpenCV_Logo_with_text.png" width="161" /></a><a href="http://www.ros.org/_wiki/images/ros_org.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://www.ros.org/_wiki/images/ros_org.png" /></a> </div><div class="separator" style="clear: both; text-align: justify;">Por software lleva Linux como núcleo. <a href="http://en.wikipedia.org/wiki/ROS_(Robot_Operating_System)">ROS</a> como sistema de control, framework. <a href="http://en.wikipedia.org/wiki/Festival_Speech_Synthesis_System">Festival</a> para el habla sintética. <a href="http://en.wikipedia.org/wiki/Julius_(software)">Julius</a> como reconocedor de voz, aunque le falta un modelo acústico y se ha creado <a href="http://www.voxforge.org/">VoxForge</a> para colaborar con tu propia voz en el proyecto. <a href="http://en.wikipedia.org/wiki/Opencv">OpenCV</a> es una libreria para el reconocimiento espacial, reconoce objetos y su profundidad, de esta manera hace <a href="http://es.wikipedia.org/wiki/SLAM_(rob%C3%B3tica)">slam</a> alrededor de donde se encuentra y crea un mapa interno.</div><div class="separator" style="clear: both; text-align: justify;"><br />
</div><div class="separator" style="clear: both; text-align: justify;">Aparte de utilizar componentes libres y software libre, donde reside toda la "magia" del proyecto es en su sistema para gestionar la base del conocimiento. Esta base es la que se encarga de la lógica del robot, donde va a consultar ante cualquier elección que deba tomar. Su modelo en especial es que está en la nube, por lo que todo lo que aprenda un robot, o le enseñen, estará a disposición del resto de robots, pudiendo tener el mismo conocimiento al mismo tiempo.</div><div class="separator" style="clear: both; text-align: justify;"><br />
</div><div class="separator" style="clear: both; text-align: justify;">Este modelo es totalmente innovador y muy útil. Pongámonos en el papel de <a href="http://es.wikipedia.org/wiki/ASIMO">ASIMO</a> este robot tiene un desarrollo lógico que está creado por <a href="http://www.cmlabs.com/">CMLabs</a>. Ellos programan la lógica, pero ¿Que pasa si hay un caso de uso que no habían pensado?, se quedarían todos los robots sin ese conocimiento hasta que no recibieran una actualización por parte de ellos. Y lo peor de todo es que hay otras empresas como esta, que crean su lógica y no la usan nada mas que para un dispositivo en concreto.</div><div class="separator" style="clear: both; text-align: justify;"><br />
</div><div class="separator" style="clear: both; text-align: justify;">La idea es clara, un modelo cerrado en el mundo de la robótica, no da y no ha dado sus frutos. Este cambio fomentará al uso de estas tecnología, a mejorarla entre todos (Crowdsourcing), y a un precio asequible. Por que no es lo mismo desarrollarlo sin tener el hardware que con él.</div><div class="separator" style="clear: both; text-align: justify;"><br />
</div><div class="separator" style="clear: both; text-align: justify;">Los videos de la presentación los podéis encontrar en:</div><div class="separator" style="clear: both; text-align: justify;"><a href="http://blip.tv/mswl/casos-de-estudio-ii-the-corpora-parte-i-4851272">http://blip.tv/mswl/casos-de-estudio-ii-the-corpora-parte-i-4851272</a></div><div class="separator" style="clear: both; text-align: justify;"><a href="http://blip.tv/mswl/casos-de-estudio-ii-the-corpora-parte-ii-4851391">http://blip.tv/mswl/casos-de-estudio-ii-the-corpora-parte-ii-4851391</a></div><div class="separator" style="clear: both; text-align: center;"><br />
</div>Anonymoushttp://www.blogger.com/profile/17716074326023007944noreply@blogger.com1tag:blogger.com,1999:blog-6571407727517890136.post-24379470972363971322011-06-18T11:26:00.000+02:002011-06-18T11:26:03.198+02:00Gnome, historia y comunidad<div class="separator" style="clear: both; text-align: center;"></div><div class="separator" style="clear: both; text-align: center;"><a href="http://live.gnome.org/BrandGuidelines?action=AttachFile&do=get&target=GnomeBrandBook-FullLogo.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://live.gnome.org/BrandGuidelines?action=AttachFile&do=get&target=GnomeBrandBook-FullLogo.png" /></a></div><br />
<div style="text-align: justify;">Para entender el porqué de la existencia de este gran proyecto de Software Libre, que ha creado un modelo a seguir y del que aprender debemos remontarnos al principio de sus orígenes.</div><div style="text-align: justify;"><br />
</div><div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><br />
</div><div class="separator" style="clear: both; text-align: center;"><a href="http://3.bp.blogspot.com/--3gyy2en7AA/Tfxsy56r-9I/AAAAAAAABVI/IaooQVLYetA/s1600/W95KDE1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="280" src="http://3.bp.blogspot.com/--3gyy2en7AA/Tfxsy56r-9I/AAAAAAAABVI/IaooQVLYetA/s640/W95KDE1.png" width="640" /></a></div><div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><br />
</div><div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><div style="text-align: justify;"><b>1995</b>, apareció Windows 95. Fue el gran éxito de Microsoft, consiguieron llevar a casi todos los ordenadores del mundo su escritorio.</div></div><div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><div style="text-align: justify;"><b>1996</b>, empieza <a href="http://es.wikipedia.org/wiki/Matthias_Ettrich">Matthias Ettrich</a> a crear KDE por la necesidad de crear un entorno de escritorio para Unix</div></div><div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><div style="text-align: justify;"><b>1997</b>, se anuncia Gnome.</div></div><div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><div style="text-align: justify;"><br />
</div></div><div style="text-align: justify;">A pesar de que existía una herramienta de escritorio, KDE tenía problemas de licencia. Todo depende de Qt, una librería gráfica usada en este entorno de escritorio, por aquel entonces no era Software Libre, pertenecía a Troll Tech, y posteriormente pasó a Nokia y ahora... ¿Microsoft? Con Gnome, querían mejorar y crear una alternativa de interfáz gráfica de escritorio carente en UNIX. Hasta entonces se utilizaba X-Window de tal manera que cada aplicación quedaba muy aislada, manteniendo una interfaz poco homogénea.</div><div style="text-align: justify;">También se buscaba integrar aplicaciones tal y como hace Windows, que viene integrado un reproductor de video y audio, gestor de correo, buscaminas... :P</div><br />
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://upload.wikimedia.org/wikipedia/commons/thumb/b/b6/Federico_Mena_Quintero.jpg/450px-Federico_Mena_Quintero.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="200" src="http://upload.wikimedia.org/wikipedia/commons/thumb/b/b6/Federico_Mena_Quintero.jpg/450px-Federico_Mena_Quintero.jpg" width="150" /></a> </td> <td><img border="0" height="200" src="http://upload.wikimedia.org/wikipedia/commons/thumb/1/1a/Miguel_de_Icaza.jpg/439px-Miguel_de_Icaza.jpg" width="146" /><span class="Apple-style-span" style="font-size: small;"> </span></td> </tr>
<tr><td class="tr-caption" style="text-align: center;">Federico Mena<span class="Apple-style-span" style="font-size: small;"><a href="http://upload.wikimedia.org/wikipedia/commons/thumb/1/1a/Miguel_de_Icaza.jpg/439px-Miguel_de_Icaza.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><br />
</a></span></td><td class="tr-caption" style="text-align: center;"><div style="text-align: center;">Miguel de Icaza<span class="Apple-style-span" style="font-size: small;"><a href="http://upload.wikimedia.org/wikipedia/commons/thumb/1/1a/Miguel_de_Icaza.jpg/439px-Miguel_de_Icaza.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><br />
</a></span></div></td></tr>
</tbody></table><div style="text-align: justify;">¿Y quienes empezaron con todo este lio? Uno de los responsables fue <span id="goog_1882070407"></span><a href="http://es.wikipedia.org/wiki/Miguel_de_Icaza">Miguel de Icaza</a><span id="goog_1882070408"></span>, por aquel entonces tuvo cierto contacto con Microsoft donde le fascinó tecnologías como <a href="http://es.wikipedia.org/wiki/ActiveX">ActiveX</a>. Quería transladar esta tecnología al mundo UNIX, asi que se juntó con su compañero de estudios <a href="http://es.wikipedia.org/wiki/Federico_Mena">Federico Mena</a>.</div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;">Para comenzar este gran proyecto, se intentó no partir desde cero, ya que jugaban con gran desventaja, KDE y Windows llevaban mas tiempo cuando esto todavía no había empezado. La reutilización es uno de los paradigmas del Software Libre, así que decidieron contactar con Troll Tech para que cambiaran la licencia de Qt. No recibieron respuesta...</div><div class="separator" style="clear: both; text-align: center;"><a href="http://live.gnome.org/GTKLogo?action=AttachFile&do=get&target=gtk-logo.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://live.gnome.org/GTKLogo?action=AttachFile&do=get&target=gtk-logo.png" /></a></div><br />
<div style="text-align: justify;">Necesitaban un toolkit gráfico, Federico trabajaba en el proyecto <a href="http://es.wikipedia.org/wiki/The_Gimp">The Gimp</a>, este software tiene su propio toolkit, asi que manos a la obra, separaron este componente del resto de la aplicación y nació <a href="http://es.wikipedia.org/wiki/GTK%2B">GTK Gimp ToolKit</a>.</div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;">A partir de entonces empezó a expandirse, en Agosto de 1997 se anuncia oficialmente a la comunidad. fueron sacando versiones en las que destaco la 0.20 por ser la primera en poder distribuirse. La versión 0.99 apareció casi un año después de anunciar en Noviembre de 1998, y poco después en Marzo de 1999 apareció la versión 1.00, fue un desastre porque por aquél entonces, tenían una guerra de versiones, en la que Gnome era la que menor versión tiene y creían que podría parecer un software inferior. Por esto emprezaron a utilizar el nombre de los meses como identificador de versión, October Gnome... pero al pasar un año, vieron que esta estrategia no era muy factible.</div><br />
<div class="separator" style="clear: both; text-align: center;"><a href="http://www.kdeblog.com/wp-content/uploads/2009/07/logo-guadec.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://www.kdeblog.com/wp-content/uploads/2009/07/logo-guadec.png" /></a></div><br />
<div style="text-align: justify;">En Marzo de 2000 se celebra la primera Guadec en Paris. Un punto de encuentro de usuarios y desarrolladores de Gnome.</div><div style="text-align: justify;">Agosto de 2000 se crea la fundación Gnome apoyada por grandes empresas como IBM, Red Hat, Sun Microsystem (Oracle) y otras fundaciones como la Free Software Foundation.</div><div style="text-align: justify;">Ya en Abril del 2001 se celebra la segunda Guadec en Copenague, y sale la versión 1.4 que traía novedades como <a href="http://es.wikipedia.org/wiki/Nautilus_(inform%C3%A1tica)">Nautilus</a> como gestor de ficheros, <a href="http://es.wikipedia.org/wiki/Evolution_(software)">Evolution</a> como cliente de correo, <a href="http://es.wikipedia.org/wiki/Abiword">Abiword</a> y <a href="http://es.wikipedia.org/wiki/Gnumeric">Gnumeric</a> como herramientas ofimáticas.</div><br />
<div class="separator" style="clear: both; text-align: center;"><a href="http://1.bp.blogspot.com/--8T8Bc4NJMM/TfxeCz0MFZI/AAAAAAAABU8/j36SMIXBCLg/s1600/gnome2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://1.bp.blogspot.com/--8T8Bc4NJMM/TfxeCz0MFZI/AAAAAAAABU8/j36SMIXBCLg/s1600/gnome2.png" /></a></div><br />
<div class="separator" style="clear: both; text-align: center;"><a href="http://3.bp.blogspot.com/-H5AU5BB6AAM/TfxfwhqJa8I/AAAAAAAABVA/_2HHr6O2hpQ/s1600/20100331_gnome230.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="73" src="http://3.bp.blogspot.com/-H5AU5BB6AAM/TfxfwhqJa8I/AAAAAAAABVA/_2HHr6O2hpQ/s200/20100331_gnome230.png" width="200" /></a></div><br />
<div style="text-align: justify;">A pesar de todos los esfuerzos para crear un entorno para el usuario, aún era un entorno de escritorio demasiado hacker, demasiadas configuraciones, que para un usuario normal puede asustarle. Se realizaron estudios de usabilidad, accesibilidad para personas con discapacidad puedan usarlo, por ejemplo, utilizar un teclado en braile. Este estudio lo llevo acabo Sun Microsystem, y fue importante este hecho, pues que una empresa de gran tamaño, tiene mayor recurso, y no todo el mundo se puede permitir el hardware que hace falta para probarlo en condiciones reales. Todo esto se fue consolidando para salir en la nueva versión Gnome 2, junto con la Guadec de Sevilla. Con esta nueva versión se garantizo la retrocompatibilidad de la API / ABI con la versiones anteriores de Gnome. Aladidos como VFS, para acceso a carpetas virtuales, Gobject es un sistema de orientación de objetos. GDKPixBuf para la carga y manipulación de imágenes. Fueron incluyendo más aplicaciones en cada versión hasta que llegó Gnome 3.</div><div class="separator" style="clear: both; text-align: center;"><a href="http://1.bp.blogspot.com/-IfHt1r0bmkI/Tfxg6JJEUaI/AAAAAAAABVE/OHiZ56S8Avo/s1600/logo.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://1.bp.blogspot.com/-IfHt1r0bmkI/Tfxg6JJEUaI/AAAAAAAABVE/OHiZ56S8Avo/s1600/logo.png" /></a></div><br />
<div style="text-align: justify;">Al principio querían hacer coincidir la salida de la versión 2.30 como la versión 3, por el juego de números al correr la coma, y quitar el 2, nos da la versión 3. Pero aún no estaba preparado, no querían que ocurriera lo mismo que pasó con el lanzamiento de KDE 4.</div><div style="text-align: justify;">Realizaron grandes cambios visuales, ahora utiliza <a href="http://en.wikipedia.org/wiki/Clutter_(toolkit)">Clutter</a> como toolkit gráfico, con el que se puede realizar efectos 3D. Esto puede que en ordenadores más antiguos sea un problema, pues necesita de una aceleradora gráfica, aunque los problemas provienen sobretodo en los drivers para Linux de las tarjetas gráficas, no están lo suficientemente optimizados para que funcione fluido. A pesar de Clutter que nos sirve para los efectos visuales, no quiere decir que se abandona GTK, aparece la versión 3, con el que se rompe con la retrocompatibilidad. No quiere decir que no funciones aplicaciones en GTK2 sino que no podrán ejecutar componentes de diferentes versiones simultáneamente. El sistema de temas pasa a ser programado bajo CSS, una gran ayuda y facilidad para muchos desarrolladores web, acostumbrados a usar este estándar.Y empiezan a aparece características multitouch, que por ahora no se usan pero da una visión sobre donde podrá implementarse Gnome 3, como por ejemplo tablets o smartphones.</div><div style="text-align: justify;"><br />
</div><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://tieguy.org/pics/GNOME/GUADEC2006/PEOPLE/29x43" style="margin-left: auto; margin-right: auto;"><img border="0" height="237" src="http://tieguy.org/pics/var/albums/GNOME/GUADEC2006/PEOPLE/29x43.png?m=1251394988" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><a href="http://tieguy.org/pics/GNOME/GUADEC2006/PEOPLE/29x43">GNOME IS PEOPLE!</a></td></tr>
</tbody></table><div style="text-align: justify;">Después de hablar de la historia, no quiero cerrar el post sin hablar de las personas responsables de este proyecto, de la comunidad de Gnome. La comunidad está dividida en equipos, de los cuales existen de <a href="http://developer.gnome.org/">desarrollo</a>, <a href="http://live.gnome.org/TranslationProject/">traductores</a>, <a href="http://live.gnome.org/DocumentationProject/">documentadores</a>, <a href="http://live.gnome.org/Accessibility/">accesibilidad</a> o <a href="http://live.gnome.org/GnomeMarketing/">Marketing</a>. También existe la <a href="http://live.gnome.org/Bugsquad/">brigada de bugs</a> que coordinan el bugzilla ahorrando trabajo extra a los desarrolladores. Existe una web centralizada con los recursos de <a href="http://live.gnome.org/">comunicación</a>, pero también puedes comunicarte a través de <a href="http://mail.gnome.org/mailman/listinfo">listas de correo</a>, canales de char <a href="http://live.gnome.org/GnomeIrcChannels">IRC</a>. También existe una<a href="http://projects.gnome.org/"> lista de aplicaciones incluidas</a> en el entorno.</div><div style="text-align: justify;">Existe la meritocracia por lo que a pesar de que exista cierta facilidad para dar tu opinión en listas de correo y demás, tiene mayor valor alguien que esté dentro del proyecto, y que haya colaborado previamente. Esto puede causar la ira de muchos Trolls dispuestos a flamear hilos de conversación, por eso se ha creado un <a href="http://live.gnome.org/CodeOfConduct">código de conducta</a> para evitar discusiones innecesarias.</div><div style="text-align: justify;">Cualquier persona puede llegar a ser un committer del repositorio, para que alguien obtenga este permiso tiene que realizar una petición de cuenta, que por regla general es impulsado por el <a href="http://live.gnome.org/MaintainersCorner">maintainer</a> del modulo. Una vez obtenidos los permisos de commit no quiere decir que puedes subir cualquier código, debe ser revisado.</div><div style="text-align: justify;">El maintainer es el encargado de un módulo, escribe las release notes, revisa parches para aprobarlos o rechazarlos, siempre explicando porqué y animando a que siga colaborando guiando qué cosas no fueron las correctas. Al final no dejan de ser <a href="http://en.wikipedia.org/wiki/Benevolent_dictatorship">dictadores benevolentes</a>, ya que sus cambios no es obligatoriamente revisado.</div><div style="text-align: justify;"><br />
</div><div class="separator" style="clear: both; text-align: center;"><a href="http://4.bp.blogspot.com/-1fmEKxIy9_g/Tfxu-SyxKfI/AAAAAAAABVM/DLaMIRqQlEc/s1600/gplv3-logo-red.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="81" src="http://4.bp.blogspot.com/-1fmEKxIy9_g/Tfxu-SyxKfI/AAAAAAAABVM/DLaMIRqQlEc/s200/gplv3-logo-red.png" width="200" /></a><a href="http://3.bp.blogspot.com/-3NuAUk1pdjI/Tfxu_IXYkCI/AAAAAAAABVQ/lZlrXzn-ygs/s1600/lgpl-v3-logo.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="67" src="http://3.bp.blogspot.com/-3NuAUk1pdjI/Tfxu_IXYkCI/AAAAAAAABVQ/lZlrXzn-ygs/s200/lgpl-v3-logo.png" width="200" /></a></div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;">Si quieres apoyar al movimiento puedes encontrar mas información en <a href="http://www.es.gnome.org/">Gnome Hispano</a>. Toda esta información ha sido recopilada gracias a las clases de Carlos García Campos realizadas durante el Master de Software Libre 2010/2011. Podéis encontrar los videos en los siguientes enlaces:</div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;"><a href="http://blip.tv/mswl/casos-de-estudio-ii-gnome-parte-i-4792190">http://blip.tv/mswl/casos-de-estudio-ii-gnome-parte-i-4792190</a></div><div style="text-align: justify;"><a href="http://blip.tv/mswl/casos-de-estudio-ii-gnome-parte-ii-4792249">http://blip.tv/mswl/casos-de-estudio-ii-gnome-parte-ii-4792249</a></div>Anonymoushttp://www.blogger.com/profile/17716074326023007944noreply@blogger.com0tag:blogger.com,1999:blog-6571407727517890136.post-76622739920693245892011-06-08T22:33:00.000+02:002011-06-08T22:33:05.792+02:00NetiquetasCuando mantenemos un proyecto de Software Libre o nos queremos dirigir a una comunidad ya establecida, no debemos lanzarnos a escribir en sus listas de correo, foros o cualquier canal de comunicación público, si no antes cuidar nuestro lenguaje, a quién nos dirigimos y si realmente nuestra consulta es necesaria. Cada caso tiene unas ciertas reglas que deberíamos preguntarnos antes de escribir y después de escribir.<br />
<br />
Para dirigirse a en un BTS (Bug Tracking System), intentar describir como reproducir ese bug, leer las instrucciones del mismo BTS sobre como se debe reportar un error en este sistema, si tenemos diferentes errores abir diferentes hilos. No utilizar un BTS como un foro de discusión, y sobretodo, y quizás lo mas importante, buscar o tratar de encontrar si tu error no existía previamente.<br />
<br />
El código fuente también debe cuidar el aspecto, hay que utilizar las estructuras comunes de guías de estilo para cada lenguaje. Cada persona tiene su forma de escribir su propio código, pero para que todo el mundo nos sea más fácil comunicarnos con nuestro propio código, debemos escribir siguiendo unos patrones de estilo. No se escribe igual un código en Java y otro en Python, debido a su sintáxis, su escritura también difieren.<br />
Cuando hacemos commit en el repositorio oficial debemos cuidar que el mensaje sea lo suficiente claro y conciso, no debe ocupar mucho, para que al verlo se pueda identificar qué cambios se han realizado, sin tener que ir linea por linea comparando código.<br />
<br />
Si dentro del proyecto, estamos en un nivel jerárquico que nos posiciona como committers, y todos los parches deben ser aprobados por nosotros, como un dictador benevolente, debemos cuidar la manera de dirigirnos ante la persona que nos envía un parche. No todo el mundo tiene el mismo nivel sobre el proyecto, si por alguna razón, su parche es rechazado, cuidaremos nuestro lenguaje, pues la persona al otro lado, puede sentirse muy ofendido, y existen casos en los que con mucha razón. Un clásico ejemplo es el de Linus Torvalds <a href="https://lists.linux-foundation.org/pipermail/desktop_architects/2005-December/001588.html">https://lists.linux-foundation.org/pipermail/desktop_architects/2005-December/001588.html</a> pues no cuida sus formas.<br />
<br />
Estas y muchas más reglas fueron descritas por primera vez en el <a href="http://www.rfc-editor.org/rfc/rfc1855.txt">RFC 1855</a> . Más adelante, este tipo de personas o actos fueron tomando nombres, creando una jerga hacker, en las que podemos encontrar palabras como:<br />
<br />
<b>Flame</b>: Término para describir una discusión sin sentido dentro de un foro o lista de correo.<br />
<b>Troll</b>: Persona que dedica esfuerzos a crear Flame.<br />
<b>Lamer</b>: Persona que a pesar de no tener un alto conocimiento técnico, presumen de tenerlo para tratar de tener fama.Anonymoushttp://www.blogger.com/profile/17716074326023007944noreply@blogger.com0tag:blogger.com,1999:blog-6571407727517890136.post-77623921859535395682011-06-06T21:34:00.000+02:002011-06-06T21:34:57.602+02:00Forjas, ¿Dónde alojar tu proyecto de software?Cuando empiezas con un proyecto de software, no pensamos donde vamos a almacenar ese código que vamos escribiendo. Pero cuando llega el momento en el que decides liberar todo ese trabajo con el que te has peleado, para poder ayudar a otras personas con tu esfuerzo, necesitas un lugar para que el gran público pueda verlo, descargarlo, modificarlo y ejecutarlo. Para eso nacieron las forjas.<br />
<br />
A continuación detallo unas forjas de las que he tenido experiencia:<br />
<br />
<div style="text-align: center;"><b><a href="http://www.blogger.com/goog_1963949795">Google Code</a></b></div><div class="separator" style="clear: both; text-align: center;"><span class="Apple-style-span" style="margin-left: 1em; margin-right: 1em;"><a href="http://code.google.com/hosting/"><img border="0" height="87" src="http://www.hacktheipodtouch.com/wp-content/uploads/2008/12/google_code.png" width="200" /></a></span></div>Uno de los grandes para empezar. Google cuenta con esta forja que permite subir proyectos. A pesar de tener mucha fama a nivel internacional, cuenta con una serie de limitaciones:<br />
<br />
<ul><li>Sistema de control de versiones: Subversion o Mercurial. No es que me parezcan pocas pero creo que mucha gente hecha en falta Git.</li>
<li>Licencias permitidas: Apache, Artistic, BSD, GPLv2, GPLv3, LGPL, MIT, MPL y EPL aunque puedes utilizar cualquiera que esté aprobada por la <a href="http://opensource.org/licenses">OSI</a>. Creo que es suficiente, aunque no deja de ser una pequeña limitación.</li>
<li>El número de proyectos que puedes alojar por persona, es de 25.</li>
<li>Desde ciertos paises no puedes acceder a esta herramienta, Cuba, Iran, Libia, Corea del Norte, Sudan y Siria. </li>
<li>Google Code no es libre, por lo que no podremos montar nuestra propia forja al estilo Google.</li>
</ul><div>Como ventaja, es la API que incluye, con la que podrás integrar fácilmente otros productos de Google como Analytics. Permite crear una Wiki por proyecto.</div><div><br />
</div><div style="text-align: center;"><b><a href="http://www.blogger.com/goog_1963949799">Github</a></b></div><div class="separator" style="clear: both; text-align: center;"><a href="https://github.com/"><img border="0" height="88" src="http://upload.wikimedia.org/wikipedia/commons/thumb/b/b3/GitHub.svg/567px-GitHub.svg.png" width="200" /></a></div><div class="separator" style="clear: both; text-align: center;"><br />
</div><div class="separator" style="clear: both; text-align: left;">Uno de los repositorios con control de versiones Git más famosos. Al igual que la forja de Google, los proyectos que subamos, deben tener una licencia de Software Libre. Pero en este caso permite crear repositorios cerrados pagando una cuota. Se detacan su fácil y agradable interfaz para navegar por partes del código públicado. No es Software Libre, pero nos facilitan su propio repositorio con gran cantidad de software liberado de sus recursos, como la creación de wikis, la API o la forma de colorear la sintaxis de código.</div><div class="separator" style="clear: both; text-align: left;"><br />
</div><div class="separator" style="clear: both; text-align: center;"><b><a href="http://www.blogger.com/goog_1963949804">Morfeo Project</a></b></div><div class="separator" style="clear: both; text-align: center;"><span class="Apple-style-span" style="margin-left: 1em; margin-right: 1em;"><a href="http://www.morfeo-project.org/"><img border="0" height="67" src="http://www.ceslcam.com/uploads/pics/morfeo.jpg" width="320" /></a></span></div><div class="separator" style="clear: both; text-align: left;"><br />
</div><div class="separator" style="clear: both; text-align: left;">Forja de ámbito nacional, la conocí gracias al contacto con <a href="http://cenatic.morfeo-project.org/?=es">Cenatic</a>, donde mantengo alojado mi proyecto <a href="http://forge.morfeo-project.org/projects/visorodfmovil/">visor ODF para Android</a>. La mantienen varias entidades como Telefónica, GSyC/LibreSoft, Universidad Rey Juan Carlos (URJC), Universidad Politécnica de Madrid (UPM), Cenatic entre otros, y forman parte del <a href="http://qualipso.org/">centro de competencia Qualipso</a>. Quizás no cuente con el estilo visual que competidores de la talla de Google, pero es un buen punto de partida para dar a conocer un proyecto dentro del ámbito nacional.</div><div class="separator" style="clear: both; text-align: left;"><br />
</div><div class="separator" style="clear: both; text-align: left;">Por supuesto, existe una gran cantidad de forjas que no he mencionado, y de las que existe una buena tabla comparativa en Wikipedia: <a href="http://en.wikipedia.org/wiki/Comparison_of_open_source_software_hosting_facilities">http://en.wikipedia.org/wiki/Comparison_of_open_source_software_hosting_facilities</a></div><div class="separator" style="clear: both; text-align: left;"><br />
</div><div class="separator" style="clear: both; text-align: left;"><br />
</div><div class="separator" style="clear: both; text-align: center;"><br />
</div><div><br />
</div>Anonymoushttp://www.blogger.com/profile/17716074326023007944noreply@blogger.com0tag:blogger.com,1999:blog-6571407727517890136.post-37916145466934100632011-04-03T21:37:00.001+02:002011-06-24T21:25:32.993+02:00Caso de éxito: Ayuntamiento de Zaragoza<div class="separator" style="clear: both; text-align: center;"><a href="http://www.zaragoza.es/contenidos/azlinux/css/logo_azlinux.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://www.zaragoza.es/contenidos/azlinux/css/logo_azlinux.png" /></a></div><br />
Acabo de empezar la nueva asignatura sobre implantación en el Máster en Software Libre. Para ir abriendo boca, sobre lo que tratará la asginatura, nos estuvieron explicando como se está migrando el ayuntamiento de Zaragoza hacia Software Libre.<br />
<br />
Todo empezó en el <a href="http://www.elpais.com/articulo/internet/Zaragoza/pasa/Linux/ahorrar/millon/ano/elpeputec/20070222elpepunet_4/Tes">2005</a> por una acuerdo entre partidos políticos, decidiera realizar este paso. En un primer momento, como suele pasar en estos casos, es hablar del ahorro en el coste de las licencias. Es un punto con el que no hay que discutir con nadie, pues todo el mundo está de acuerdo en tener lo mismo de manera gratuita. Pero es importante saber que en una fase inicial de una migración, no se debe recortar por completo el desembolso que se realizaba en la compra de licencias. En la primera fase hay que utilizar ese coste para modernizar equipos, dar formación y subvencionar a las personas encargadas de dar soporte.<br />
<br />
No olvidemos que es una migración, esto quiere decir inevitablemente un cambio. Este cambio en algunos aspectos puede ser drásticos, pero en otros no. En la migración del ayuntamiento de Zaragoza decidieron crear varias fases de migración. Lo primero es saber de qué es lo que se dispone. Tanto el software que se utiliza actualmente como el hardware, son esenciales para ver en qué debemos invertir al principio.<br />
<br />
Tras analizar lo que tenemos a disposición y en uso, fue hacer una migración "ligera". Es decir, buscar Software Libre con versión tanto para Windows como para Linux. Hay una gran cantidad y que es usada a diario. De esta manera, los usuarios pueden empezar a introducirse con pequeños cambios, como puede ser sustituir Internet Explorer por Firefox, Outlook por Thunderbird, Windows Media Player por VLC...<br />
<br />
Aunque no todas las aplicaciones son fáciles de migrar. Es el caso de la solución ofimática. El claro cambio es pasar de Microsoft Office a OpenOffice. Esta parte es dificil, pues el formato con el que se guarda los documentos de Office, es totalmente cerrado. Como resultado, muchos documentos no se ven como "se deberían ver" en OpenOffice, ya que por ingeniería inversa, se ha conseguido parsear formatos nativos de Office. Por otra parte, no tenemos que olvidar las macros, escritas en Visual Basic en los sistemas Microsoft Office y OOBasic para los de OpenOffice, de los que se tuvieron que reescribir gran parte de las macros para su correcto funcionamiento.<br />
<br />
Aqui entra en juego, algo por el que toda sucursal del gobierno debe ir planteándose migrar, pues por decreto, toda documentación que sea emitida hacia el ciudadano de manera electrónica, deberá estar en un formato abierto.<br />
<br />
Durante este proceso de adaptación, se deben formar a los técnicos que darán soporte una vez realizada la implantación.<br />
<br />
Una vez preparado todo el software compatible tanto en sistemas privativos como libres, se necesita dar un paso muy grande, cambiar el Sistema Operativo. Para ello crearon una propia distribución <a href="http://zonalinux.com.ar/azlinux-la-distribucion-de-linux-del-ayuntamiento-de-zaragoza-en-espana/">AZLINUX</a>. Que tiene como base OpenSUSE. Es importante esta base, pues dentro del kernel compilado ofrecido por Novell, contiene un elemento fundamental para la integración con la red del ayuntamiento, <a href="http://en.wikipedia.org/wiki/Novell_eDirectory">Novell Directory Service NDS</a>.<br />
<br />
¿Porque es necesario este componente? Es debido a que la migración, no solamente en este caso, en la mayoría de los casos, se parte de sistemas cerrados en los que muchos usuarios ya están acostumbrados a su uso. Ya sea por resistencia al cambio, o por sencillamente, no cambiar por su correcto uso, hay cierto software que no se puede migrar tan fácilmente. Por eso contamos con herramientas como <a href="http://en.wikipedia.org/wiki/Wine_(software)">WINE</a>, capaza de emular las librerias y capas lógicas de Windows, para que podamos ejecutar aplicaciones de Windows en sistemas Linux.<br />
<br />
Ha sido muy grata contar con una experiencia real de una migración tan masiva como la que está sucendiendo en el Ayuntamiento de Zaragora. Durante este transcurso, en su <a href="http://zaragozaciudad.net/azlinux/">blog</a> como en su Twitter <a href="http://twitter.com/azlinuxzgz#">@azlinuxzgz</a> nos tienen al dia de recursos y<a href="http://www.zaragoza.es/contenidos/azlinux/migracionescritoriosl.pdf"> documentación muy práctica</a> y a tener en cuenta para futuras migraciones.Anonymoushttp://www.blogger.com/profile/17716074326023007944noreply@blogger.com0tag:blogger.com,1999:blog-6571407727517890136.post-56613913977610162502011-03-01T21:14:00.002+01:002011-03-01T21:15:10.225+01:00Canonical<div class="separator" style="clear: both; text-align: center;"><a href="http://upload.wikimedia.org/wikipedia/commons/thumb/1/15/Canonical_logo.svg/761px-Canonical_logo.svg.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="52" src="http://upload.wikimedia.org/wikipedia/commons/thumb/1/15/Canonical_logo.svg/761px-Canonical_logo.svg.png" width="400" /></a></div><div class="separator" style="clear: both; text-align: center;"><br />
</div><div style="text-align: justify;">Al igual que ocurre con Mozilla, cuando pensamos en Canonical se nos va la mente a Ubuntu. Pero tenemos muchas diferencias con la fundación Mozilla. <a href="http://www.canonical.com/">Canonical Ltd.</a> es una empresa privada. Como cualquier empresa, está bajo las órdenes de su directivo <a href="http://es.wikipedia.org/wiki/Mark_Shuttleworth">Mark Shuttleworth</a>, que además es fundador y la principal fuente de ingresos viene de su capital personal, ganados a pulso por vender su antigua empresa, <a href="http://es.wikipedia.org/wiki/Thawte">Thawte</a> por 575 millones de dólares.</div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;">La organización física de la empresa, fue en un principio totalmente virtual, pero con el tiempo establecieron diversas <a href="http://www.canonical.com/about-canonical/contact/our-offices">oficinas</a> en la Isla de Man, Londres, Lexington, Shanghai, São Paulo, Montreal y Taipei. Además ha pasado de ser 2 personas en nómina (2004) a 350 en más de 30 paises (2011). Por supuesto, muchas de estas personas realizan <a href="http://www.canonical.com/about-canonical/careers">teletrabajo</a>.</div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;">El modelo de negocio no es desde luego vender software, ya que puedes conseguir sus productos de manera gratuita (Aunque no todos son Software Libre, como la <a href="https://wiki.ubuntu.com/UbuntuOne/Contribute">parte servidor de Ubuntu one</a>), incluso puedes <a href="https://shipit.ubuntu.com/">pedir</a> distribuciones de Ubuntu de manera gratuita a tu domicilio. Su principal plan de ingresos es el de <a href="http://www.canonical.com/enterprise-services">prestación de servicios</a>.</div><br />
<div class="separator" style="clear: both; text-align: center;"><a href="http://upload.wikimedia.org/wikipedia/commons/thumb/9/9d/Ubuntu_logo.svg/600px-Ubuntu_logo.svg.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="74" src="http://upload.wikimedia.org/wikipedia/commons/thumb/9/9d/Ubuntu_logo.svg/600px-Ubuntu_logo.svg.png" width="320" /></a></div><div class="separator" style="clear: both; text-align: center;"><br />
</div><div class="separator" style="clear: both; text-align: justify;">No puedo dejar atrás al principal producto de Canonical. <a href="http://www.ubuntu.com/">Ubuntu</a> es una <a href="http://es.wikipedia.org/wiki/Distribuci%C3%B3n_Linux">distribución Linux</a>, basada en la reconocida distribución <a href="http://www.debian.org/">Debian</a>. Como nota personal, es la distribución con la que me inicié en el mundo de Software Libre, y la que sigo utilizando, hasta que no encuentre una cosa que me guste más. Aunque suene mal, el modelo de desarrollo en proyectos de Software Libre es así, ya que la mayoría puedes probarlo sin ningún problema.</div><div class="separator" style="clear: both; text-align: left;"><br />
</div><div class="separator" style="clear: both; text-align: left;">Pero también hay que nombrar otros proyectos, que son de gran importancia, tales como:</div><div class="separator" style="clear: both; text-align: left;"><br />
</div><div class="separator" style="clear: both; text-align: center;"><a href="http://upload.wikimedia.org/wikipedia/commons/7/72/Launchpad_logo.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://upload.wikimedia.org/wikipedia/commons/7/72/Launchpad_logo.png" /></a></div><div class="separator" style="clear: both; text-align: center;"><br />
</div><div class="separator" style="clear: both; text-align: left;"><a href="https://launchpad.net/">Launchpad</a> es una forja de proyectos, escrita en Python y licencia <a href="http://en.wikipedia.org/wiki/Affero_General_Public_License">Affero</a>. Tiene un sistema de seguimientos de errores (Bug Tracking System), y un creador de paquetes para Ubuntu, entre otras características. El sistema para alojar el código es:</div><div class="separator" style="clear: both; text-align: left;"><br />
</div><div class="separator" style="clear: both; text-align: center;"><a href="http://upload.wikimedia.org/wikipedia/en/thumb/c/c1/Bazaar_logo_(software_product).svg/125px-Bazaar_logo_(software_product).svg.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://upload.wikimedia.org/wikipedia/en/thumb/c/c1/Bazaar_logo_(software_product).svg/125px-Bazaar_logo_(software_product).svg.png" /></a></div><div class="separator" style="clear: both; text-align: left;"><br />
</div><div class="separator" style="clear: both; text-align: left;"><a href="http://bazaar.canonical.com/">Bazaar</a>, un sistema de control de versiones, creado por Canonical y la comunidad. Escrito en Python, <a href="http://en.wikipedia.org/wiki/Pyrex_(programming_language)">Pyrex</a> y C. Licenciado bajo <a href="http://en.wikipedia.org/wiki/GPLv2#Version_2">GPLv2</a> o superior. Como principal ventaja respecto a <a href="http://es.wikipedia.org/wiki/Subversion">Subversion</a> o <a href="http://en.wikipedia.org/wiki/Concurrent_Versions_System">CVS</a>, es que es un sistema distribuido sin necesidad de un servidor central, tal y como ocurre con <a href="http://en.wikipedia.org/wiki/Git_(software)">Git</a>.</div><div class="separator" style="clear: both; text-align: left;"><br />
</div><div class="separator" style="clear: both; text-align: left;">Hay mucho más software desarrollado por Canonical, pero también hay que recordar que también han creado una linea de ejemplo de cómo crear una imagen, y la importancia del Community Manager. <a href="http://en.wikipedia.org/wiki/Jono_Bacon">Jono Bacon</a> describio en su libro "<a href="http://www.artofcommunityonline.org/">Art of community</a>" su experiencia y pautas de como debe ser la figura del Community Manager.</div><div class="separator" style="clear: both; text-align: left;"><br />
</div><div class="separator" style="clear: both; text-align: left;">Un buen hueco se ha ganado Canonical, y eso se nota en la comunidad, pues creo que al final son los que demuestran las buenas prácticas de una empresa, que dedica sus recursos a fomentar el Software Libre, tal y como fue creado. Pues a pesar de las criticas que puede recibir por los cambios que despliega en cada nueva versión de Ubuntu, hay que recordar, que este proyecto, es una jerarquía con dictador benevolente, y la encabeza Mark, al igual que Linus Torvarlds con Linux.</div>Anonymoushttp://www.blogger.com/profile/17716074326023007944noreply@blogger.com0tag:blogger.com,1999:blog-6571407727517890136.post-47992830076883283672011-02-22T23:27:00.000+01:002011-02-22T23:27:59.554+01:00Mozilla Foundation<div class="separator" style="clear: both; text-align: center;"><a href="http://www.mozilla.org/foundation/identity-guidelines/mozilla-foundation.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://www.mozilla.org/foundation/identity-guidelines/mozilla-foundation.png" /></a></div>Al hablar de <a href="http://www.mozilla.org/">Mozilla</a> rápidamente no se nos quita de la cabeza Firefox. Y con toda la razón, el navegador web de esta fundación sin ánimo de lucro, es el producto estrella de sus contribuciones al mundo del Software Libre. Según la web de estadisticas de uso en la web, <a href="http://gs.statcounter.com/#browser-eu-monthly-200912-201012">StatCounter</a>, Firefox a ganado a Internet Explorer en Europa en cuanto a cuota de mercado. De la cual, también hay que agradecer a <a href="http://www.google.com/chrome?hl=es">Google Chrome</a>, que como podemos observar está subiendo a un buen ritmo.<br />
<div height="400" id="browser-eu-monthly-200912-201012" style="height: 400px; width: 500px;" width="500"></div>Source: <a href="http://gs.statcounter.com/#browser-eu-monthly-200912-201012">StatCounter Global Stats - Browser Market Share</a><br />
<script src="http://www.statcounter.com/js/FusionCharts.js" type="text/javascript">
</script><script src="http://gs.statcounter.com/chart.php?browser-eu-monthly-200912-201012" type="text/javascript">
</script><br />
<br />
¿Qué podemos decir de Firefox que no sepamos ya? Lo que quizás no se conozca tanto a los 'culpables' del navegador que fomenta la utilización de <a href="http://www.w3c.es/">estándares web</a> y el resto de aplicaciones.<br />
<br />
La fundación Mozilla nació en uno de los hitos en la historia del Software libre, cuando <a href="http://es.wikipedia.org/wiki/Netscape_Navigator">Netscape</a> liberó el código fuente de su navegador web en el año 1998. Su <a href="http://www.mozilla.org/about/mission.html">misión</a> es promover la libertad, innovación y oportunidad a la web. Por eso sus <a href="http://www.mozilla.org/projects/">proyectos</a> están relacionados con la red de redes, como por ejemplo <a href="http://www.getthunderbird.com/">Thunderbird</a>, un cliente de correo de escritorio.<br />
<div class="separator" style="clear: both; text-align: center;"><a href="http://www.mozilla.org/images/product-thunderbird-50.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://www.mozilla.org/images/product-thunderbird-50.png" /></a></div><div class="separator" style="clear: both; text-align: center;"><br />
</div>También han desarrollado herramientas para desarrolladores, que facilitan la tarea del testeo de proyectos. <a href="http://www.bugzilla.org/">Bugzilla</a> y <a href="http://getfirebug.com/">Firebug</a>, han entrando como herramienta de control de calidad, enseñándonos y ayudándonos a cómo se debe gestionar correctamente un proyecto software.<br />
<div class="separator" style="clear: both; text-align: center;"><a href="http://www.mozilla.org/images/projects/firebug.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://www.mozilla.org/images/projects/firebug.png" /><span class="Apple-style-span" style="-webkit-text-decorations-in-effect: none; color: black;"></span></a><a href="http://www.mozilla.org/images/bugzilla.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://www.mozilla.org/images/bugzilla.png" /></a></div><div class="separator" style="clear: both; text-align: center;"><a href="http://www.mozilla.org/images/projects/firebug.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><br />
</a></div><div class="separator" style="clear: both; text-align: justify;">Por supuesto, podemos <a href="http://www.mozilla.org/contribute/">colaborar</a> con la fundación de distintas formas, ya que no hace falta tener un perfil de desarrollador para poder hacer algo. Por ejemplo podemos <a href="https://wiki.mozilla.org/L10n:Web_parts">traducir</a> Firefox a nuestra lengua materna, <a href="http://creative.mozilla.org/challenges">hacer diseños y/o logos</a> para promocionar, o incluso ayudar a otros usuarios que tengan dudas y que se acaban de iniciar, pues es mejor que alguien no técnico pueda solventar una duda a otra persona que está utilizando por primera vez Firefox.</div><div class="separator" style="clear: both; text-align: center;"><a href="http://www.mozilla.org/images/contribute/localization.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://www.mozilla.org/images/contribute/localization.png" /></a><a href="http://www.mozilla.org/images/contribute/testpilot.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://www.mozilla.org/images/contribute/testpilot.png" /></a><a href="http://www.mozilla.org/images/contribute/sumo.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://www.mozilla.org/images/contribute/sumo.png" /></a></div><div class="separator" style="clear: both; text-align: center;"><br />
</div><div class="separator" style="clear: both; text-align: justify;">Como hemos podido ver, la fundación Mozilla posee un ecosistema del que podemos y deberíamos aprender. Y del que podemos formar parte de él.</div>Anonymoushttp://www.blogger.com/profile/17716074326023007944noreply@blogger.com0