If you can't read please download the document
Upload
juan-j-merelo
View
1.456
Download
0
Embed Size (px)
Citation preview
Lightwave in Motion
Cmo alcanzar la fama, la fortuna e incrementar tu ndice H mediante el software libre
Juan Julin Merelo GuervsOficina de Software LibreUniversidad de Granada
Qu voy a contar?
Qu es software libre
Razones para liberar software
No-razones para no liberarlo
Cmo hacerlo
Imagen CC de Lets ideas compete http://www.flickr.com/photos/question_everything/4541149167/in/photostream/
Libertad de ejecutar
http://home.sprynet.com/~dbrukman/Sigmund.jpg De lo que se trata es de que la licencia no se impida que se hagan determinadas cosas. Por ejemplo, esto no lo pueden usar los profesores, o no se puede usar con fines polticos o comerciales. Una vez publicado, se trata de poder hacer lo que a uno le d la gana con el software. La importancia de esta libertad est relacionada con la satisfaccin de las expectativas, y sobre todo, con el hecho de que la adquisicin transfiere la propiedad a quien lo adquiere. Si lees la letra pequea de cualquier software comercial, vers que tiene muchas restricciones; para empezar, son licencias, no transferencias de propiedad. Por ejemplo, no puedes hacer ningn truco para evitar errores tcnicos del software, segn la licencia de Microsoft. Por ejemplo, es muy normal restringir el nmero de copias que se pueden sacar: el antivirus F-Prot lo reduce a una, a pesar de que la ley espaola permite hasta tres. http://www.f-prot.com/download/license.htmlEs normal tambin la restriccin temporal, y por supuesto la espacial (no necesariamente porque se vayan usar para armas de destruccin masiva, sino por acuerdos exclusivos de distribucin), o son licencias intransferibles: no puedes revender, por ejemplo.
Libertad de estudiar
Obtenida de http://flickr.com/photos/sarahvanessa/2281107307/sizes/o/Si no se tiene acceso al cdigo fuente no se puede estudiar ni examinar, claro.La libertad de examinar es importante para el usuario, porque le permite corregir errores que sepa corregir, ver si lo estn tangando por algn lado, e incluso modificarlo para algn tema para el que no estuvo concebido originalmente.La calle encuentra sus propios usos para la tecnologa.
De hecho, tiene tanta importancia que el software que permite esta libertad se llama de fuentes abiertas u open source o abierto. Pero no todo el software abierto es libre, aunque s al contrario; en la prctica, sin embargo, hay poca distincinMs referencia en la wikipedia http://en.wikipedia.org/wiki/Open_source pero va ms all del software. Si quieres pasearte por el universo de las licencias, mira aqu:http://en.wikipedia.org/wiki/Comparison_of_free_software_licencesEn realidad, la principal diferencia entre open source y free software es de nfasis:http://en.wikipedia.org/wiki/Open-source_software: Free software is defined in terms of giving the user freedom. This reflects the goal of the free software movement. Open source highlights that the source code is viewable to all and proponents of the term usually emphasize the quality of the software and how this is caused by the development models which are possible and popular among free and open source software projects.Tambin http://www.gnu.org/philosophy/open-source-misses-the-point.html:Open source is a development methodology; free software is a social movement.
.. y modificar
Obtenida de http://www.flickr.com/photos/ikex/1673554482/ Pero tambin es importante para el desarrollador, por las mismas razones: convierte a los usuarios en productores, porque pueden ayudar a corregir errores, o a desarrollar algo cuando el desarrollador original ya no quiera (o no pueda) hacerlo.
Libertad de copiar
Tomado de http://www.gnome-look.org/Uno puede usar un programa en todos los sitios que quiera, y pasrselo a quien uno quiera. Desde el punto de vista de una universidad u organismo pblico, tiene sentido: ya te estn pagando por desarrollar algo. Si lo vendes (y si te lo permite el organismo) puedes obtener beneficios adicionales, pero la sociedad en su conjunto obtiene muchos ms beneficios copindolo libremente; obtiene un retorno del dinero que ha invertido en tu trabajo. La copia libre tambin favorece la difusin, y crea una meritocracia en la que los creadores de proyectos libres son conocidos, tienen fama, e incluso pueden conseguir ingresos hablando sobre ellos, ofreciendo soporte sobre los mismos, o adaptndolos a un fin determinado.
Libertad de mejorar
http://www.flickr.com/photos/waj/2791640706/ Claramente relacionada con libertad 2, la de estudiar y modificar, aade a la libertad de copiar la posibilidad de distribuir copias de tus mejoras al software. En realidad lo ms habitual es que las mejoras se pasen al creador del software, que lo reconocer en el fuente, pero hay casos de luchas entre desarrolladores que han dado lugar a varios productos diferentes, que a su vez compiten entre s. En todo esto siempre se respeta y se acredita el autor original, por supuesto; en cada fichero quedar claro quin lo cre y quin le hizo qu cambio.
Lo importante es la libertad
Obtenido dehttp://www.flickr.com/photos/alimander/754031712/No se puede imponer el software libre. Va en contra de su propio principio, y adems es contraproducente. A la hora de liberar un programa siempre est la decisin personal, que ni puedes imponer ni te pueden imponer. Es mejor siempre persuadir.
Software libre no es software gratis
Como hay derecho a copiar, el coste marginal es nulo, pero ni es gratis el soporte, ni la instalacin, ni la formacin, ni nada de lo dems. Incluso se puede vender.De la misma forma, todo lo que es gratis no es libre. Tiene la libertad de copiar, pero no el resto de las libertades. En algunos casos puede ser incluso una trampa.La imagen est sacada de http://www.flickr.com/photos/sophistechate/2668512887/
10. El software libre es un vehculo de transmisin de conocimiento.
Vamos, que los trabajos estn bien, pero no los lee ni el potito; qu mejor forma de transmitirlo que usando el mtodo que realmente hemos creado para probar lo que queremos probar.
9. La ciencia no lo es si no es reproducible: liberar el software permite a cualquiera obtener los mismos resultados.
La historia clsica de mtodo autopoitico de Varela, o la de uno mismo... Pero es que adems, al corroborar los resultados o simplemente compararlos con los propios, aumenta el nmero de citas de los trabajos que describan el software.
8. Fomenta buenas prcticas en el desarrollo de software.
Cuestiones de seguridad, documentacin, desarrollo por capas, tener una hoja de ruta del desarrollo de la aplicacin o la librera...
7. Crea comunidad aldededor de un grupo, y aumenta el inters en la ciencia.
OpenNebula, por ejemplo, tiene una enorme comunidad de seguidores; MPITB, hecho por Javier Fernndez Baldomero, tambin: por ejemplo, aqu detallan las modificaciones que le han hechohttp://www.tbrri.com/~spichardo/HPC.html Y todos los trabajos que lo mencionan http://atc.ugr.es/~javier/investigacion/papers/mpitb_octave_papers.html
6. Acerca la ciencia al pblico, a la sociedad, y mejora la percepcin de la universidad
5. Hace pblico y patente para empresas y otros grupos el conocimiento y experiencia de los autores.
Te identifican como experto en de cara al pblico, empresas y dems; no slo experto en el objetivo final, sino en la metodologa usada.
4. Crea otro canal para la difusin de la investigacin y el trabajo propios.
Un canal que, por supuesto, hay que potenciar desde los diferentes medios sociales existentes: blogs, Facebook, twitter. Tiene tu grupo twitter o Facebook?
3. Devuelve a la sociedad lo que la sociedad ha invertido en la creacin de conocimiento por nuestra parte.
Realmente lo devuelve de forma ms directa, porque un programa se puede usar directamente; si no en su totalidad, s en parte del mismo. Aunque un programa se libera completo, parte del fuente puede servir.
2. Fomenta la colaboracin interdisciplinar
Aunque todo el mundo tiene que hacer software, no todo el mundo sabe hacerlo; y el liberar software hace que se pueda colaborar entre personas de diseo de interaccin, analistas, programadores, expertos en el algoritmo que se vaya a implementar.
1. Aumenta la calidad de la investigacin o proyecto resultante, al posibilitar la colaboracin espontnea (y altruista)
No slo por la colaboracin, sino tambin por las buenas prcticas que se han tenido en cuenta desde el principio del diseo. Tambin se pueden usar herramientas de eScience, comoTaverna, con el problema de que no empieza a ser til hasta que no hay un nmero determinado de herramientas en el campo.
I. No est perfecto
II. Lo documento y lo libero
Hasta cierto punto, una versin de la anterior, pero algo que te encuentras con ms frecuencia.
III. Lo he hecho para mi
IV. Quiero venderlo
Hay empresasq ue se basan enteras en software libre, pero es que algunos programas que se han liberado en la UGR forman tambin parte de una empresa.
V. No quiero que me lo copien
VI. No tengo tiempo
VII. No me da la gana
Quiero liberar software, cuntame como
Poner de acuerdo a todas las partes relacionadas.
Elegir una licencia
Publicar los fuentes
Usar una forja para continuar el desarrollo y atraer comunidad.
En algn momento, hablar con la OSL para que os echemos una mano
La liberacin es cosa de todos
Todos los autores tienen que autorizar la liberacin del cdigo
Tutores, directores de proyecto, compaeros de prcticas...
Imagen de dugspr en http://www.flickr.com/photos/dugspr/2414695004/in/photostream/
Elegir una licencia
Especifica qu se puede hacer o no.
GPL = 4 libertades + copyleft
EUPL = proyectos europeos
MIT, Academic Free Licence, BSD = investigacin universitaria
Elige la tuya: http://sl.ugr.es/013j
Imagen de Special Collections Wofford College http://www.flickr.com/photos/littlejohncollection/4322753389/in/photostream/
Consideraciones para una licencia
Se licencia todo
Tener en cuenta licencias de cdigo incluido.
Licencia libre tambin para documentacinY todo tipo de contenido.
Imagen de Mark Berry http://www.flickr.com/photos/hotcherry/1358179930/in/photostream/
Cmo se licencia?
Sin publicacin, no hay liberacin
El cdigo fuente debe estar disponible.
Crear una pgina web para difundirlo.
Publicar actualizaciones peridicas.
Publicar pronto, publicar a menudo.
Por supuesto, hay que incluir todo lo necesario para que se recree el ejecutable, incluyendo ficheros de contenido, proyectos del entorno de desarrollo, si es posible un Makefile o el sistema de compilacin que se use. La imagen es de WenchMagnet en http://www.flickr.com/photos/wenchmagnet/2048075690/in/photostream/
Forjando nuestro H-ascensor
Una buena prctica es trabajar usando un sistema de control de fuentes.
Permiten:Desarrollo colaborativo.
Versionado fcil.
Publicacin automtica.
Foto de Guillaume Linard, http://www.flickr.com/photos/moiguigui/3318067229/in/photostream/
Cmo controlamos las fuentes?
Sistemas de control de fuentes centralizados o distribuidos.
Elegir forja: sitio en InternetGoogle Code
Github
Launchpad
Elegir sistema de control de fuentes
Imagen de http://www.flickr.com/photos/ddebold/5217115094/in/photostream/ por donjd2
Ciclo de desarrollo
Descargar las fuentesActualizar fuentesModificacionesComprometer actualizaciones (Commit)Actualizar repositorio
Opciones de forjas
Github + git
Google Code + mercurial o subversion
Launchpad + bazaar
Bitbucket + mercurial
Forja rediris + Subversion
Sourceforge + cualquiera
Imagen de Rex Hammock en http://www.flickr.com/photos/rexblog/2680379787/in/photostream/
E your Science!
Creacin de flujos de trabajo con Taverna
Se trata de implementar diferentes partes del algoritmo integrando trabajo ya hecho de formas nuevas
Se usa un interfaz visual.
Se publican los paquetes experimentales a la vez que el trabajo (o antes).
Obtenida la imagen de: http://edutechwiki.unige.ch/en/File:Dragon-workflow.png
No hace falta ir tan lejos
Ciencia con software libre > ciencia
Eso es todo
Muchas gracias por su atencin
Foto de http://www.flickr.com/photos/mrjoro/89187454/in/photostream/ por MrJoro