software-liberado

Estudiando sobre papel II
En breve terminarán las clases y llega el momento de prepararse para el curso siguiente. Los apuntes se actualizan, se ponen al día, se limpian y es un buen momento para considerar liberarlos. Liberar los apuntes permite que más personas tengan acceso a ellos, desde dentro y fuera de la comunidad universitaria; además, siendo libres, la gente aportará a los mismos desde lo más simple, un enlace que ya no funciona, hasta aportaciones más complejas y significativas, que pueden enseñarnos cosas y ayudarnos a mejorar la materia que impartimos en nuestra universidad. La universidad es conocimiento y es universal, y cuanto más visibles y libres sean los apuntes más benefician a todo el mundo, inclusive a la persona que los ha liberado, que puede recibir citas en los mismos, incrementando ese número H al que todos le prestamos atención.
Y liberar unos apuntes es muy fácil. Sólo hay que elegir estos pasos.

  1. Decidir sobre la licencia. Para contenido la licencia más generalizada es la llamada CC o creative commons. Una licencia es un permiso de utilización con ciertas restricciones, codificadas en el nombre y logo de la licencia. Todas tienen la partícula by, que indica que la autoría se debe reconocer siempre. Pero además añade una serie de partículas. Desde la OSL aconsejamos que se libere con la provisión share alike, o compartir de la misma forma. Cualquier persona que modifique y publique esos apuntes o parte de ellos, aparte de reconocer la autoría, tendrá que liberar el conjunto con la misma licencia. Esta provisión viral preserva los derechos del autor y además se considera una licencia de cultura libre. Es importante en esta licencia respetar la de los contenidos que se incluyan: imágenes, trozos de código. Si una imagen tiene este tipo de licencia, estaremos obligados a usarla para respetarlo. Cualquier imagen con licencia creative commons se puede usar sin problemas, siempre acreditando al autor como sea posible. Si sólo tiene contenido propio, uno puede usar la licencia que desee.
  2. Hay que publicar de forma efectiva esos apuntes de forma que estén accesibles en la web, y con la licencia bien visible; generalmente basta con incluir el icono en cada página donde se publique. Afortunadamente, publicar en la web hoy en día es bien fácil. Si tenemos los apuntes en cualquier formato de procesador de textos, todos tienen una opción de exportar a HTML o Web que te genera una serie de ficheros que puedes subir directamente, en HTML mejor que en PDF que no se puede visualizar directamente desde la web. Ahora, hay que alojar esos ficheros. Nuestro servicio de informática ofrece un servicio de alojamiento web que se puede usar. por parte de cualquier miembro de la comunidad universitaria, pero hay muchas más formas de hacerlo. Desde Google Sites, hasta hacerlos públicos desde Google Drive o Dropbox, pasando por usar servicios como Slideshare o Issuu para publicar directamente en formato de procesador de textos o presentación. Si usas git y GitHub, para nosotros es muy aconsejable publicarlos directamente en GitHub Pages, lo que también te permite gestionar fácilmente errores y peticiones de cambio.
  3. Si se usa una plataforma de enseñanza tal como Moodle o Swad, estos apuntes se pueden enlazar desde la misma para que estén disponibles para la clase; también se puede exportar a PDF o a cualquier otro formato e insertarlo en la plataforma, como es natural. Siempre será mejor tener una sola fuente, la publicada en abierto en la web, que tener varias que además habrá que actualizar cuando se cambie. De la misma forma, se puede publicar también en alguna plataforma como el DIGIBUG de la UGR o en plataformas de publicaciones como ResearchGate o Figshare, para obtener un identificador único y que pueda ser citada. En cualquiera de los lugares que se publique, conviene poner en lugar bien visible el nombre de los autores y el correo electrónico de contacto.

De todos estos pasos, en realidad sólo hacen falta los dos primeros. Y si te sientes atascado en cualquiera de ellos, para eso estamos la Oficina, nos puedes contactar por correo electrónico o teléfono interno, 20207 o 78394.

Vamos a empezar por lo más fácil: Cuando. La respuesta es muy simple: ahora

El mejor momento para liberar cualquier contenido, sea código, sea código con un informe explicativo o trabajo científico, siempre es ahora. Si lo que deseas es que su trabajo se conozca y también beneficiar a la comunidad que te ha dado financiación o simplemente apoyo, es mejor hacerlo desde el principio, desde la primera línea de código de un fichero README. El hacerlo ahora manda un mensaje claro: estoy abierto a cualquier sugerencia, y cualquiera puede copiar y mejorar mi trabajo en cualquier estadio de su desarrollo; también podéis sugerir cambios o mejoras y hacerlo durante el desarrollo del mismo, no al final cuando ni yo me puedo beneficiar ni posiblemente nadie porque la cantidad de información, código más informe, sea demasiado apabullante para que le sirva a nadie. Estamos en el mes de abril y te quedarán dos meses, quizás cinco si es en septiembre. Abre tu repositorio ya. Y si vas a empezarlo próximamente, crea el repositorio en abierto desde el principio y trabaja con él. Habla con tu tutor para que interaccione contigo también en abierto y a través del repositorio. Y, por supuesto, la liberación es un camino de dos vías. Si algún compañero tuyo también lo ha liberado, ayúdale, échale una mano, comprueba el código, hazle pull request. Nada más transparente que un repositorio para saber quién ha hecho qué.

Y el hecho de que se sepa que ese trabajo lo has hecho tú es precisamente uno de los porqués, el más importante. Las empresas usan tu repositorio como un currículum vitae, hasta el punto de que hay empresas que se dedican exclusivamente a hacer data mining de GitHub buscando a personas que tengan un perfil determinado, reflejado en lo que tienen publicado en GitHub. Seguramente estés usando una tecnología interesante en tu TFG/TFM/tesis que tenga demanda en el mercado. Ten por seguro que alguien lo va a ver, o que lo va a tener presente en la entrevista de trabajo para publicarlo o no. Git y GitHub es la herramienta que tienen en común todas las empresas y el hecho de que demuestres que lo conoces y lo usas también va a contar a tu favor.

Y finalmente, eso nos da el dónde. Hoy en día el sitio para liberar proyectos es GitHub. Las facilidades sociales y de gestión de proyectos que tienen no tienen ahora mismo igual. Aunque hay otros repositorios gratuitos como BitBucket o GitLab, este incluso libre, lo cierto es que tener un proyecto en un sitio popular como GitHub facilita su visilibidad y también que se interacciones con el resto de los programadores. Además, es el que se utiliza en ránkings provinciales como el de Israel Blancas; aparecer en ese ránking va a permitir también que conozcan tu trabajo y eventualmente que te den uno, que es de lo que se trata.

Nos queda un como. Liberar un trabajo es simplemente cuestión de asignarle una licencia. Y asignarle una licencia es tan fácil como colocar un fichero que se llame LICENSE en el directorio principal, que contenga los términos de la licencia; también se debe añadir una referencia a esa licencia en las cabeceras de todos los ficheros. Por ejemplo, Synapse de Marco Fernández Pranno (un proyecto liberado ya y que se leerá próximamente) tiene licencia MIT. Por otro lado, el texto en sí suele tener licencias Creative Commons, licencias específicas para contenido, como la tesis de Pablo García Sánchez, por ejemplo, que también se liberó desde el principio. Para no mezclar licencias el texto suele ir o en otro directorio o directamente en otro repositorio, aunque no pasa nada para que vayan juntos.

Practica también la ciencia abierta. Si tu tesis tiene un componente de investigación, habrás hecho experimentos, tendrás ficheros de configuración, una bitácora de resultados, los datos. Eso también se puede, y se debe, liberar. Puedes ir publicando los datos y subiéndolos a Figshare o algún otro sitio que te permita asignarle un URL permanente y también citarlo como si de un trabajo se tratara. Esto se escapa de la temática estricta de esta historia, pero puedes informarte en esta presentación y esta otra que explica los conceptos y las herramientas que se pueden usar.

¿A qué esperas pues para liberar tu TFM? Recuerda que el mejor momento siempre es ahora, y si necesitas ayuda y asesoramiento por parte de la Oficina de Software Libre, ya sabes donde encontrarnos.

Cada cierto tiempo, desde la OSL organizamos campañas de donación de material informático a distintas ONGs y organizaciones, dicho material proviene de las donaciones que recibimos de particulares, pero sobretodo del material recogido de las diferentes entidades de la UGR. Particularmente, los ordenadores recibidos son utilizados enteros o por piezas para recuperar ordenadores completos que funcionen únicamente con software libre, pero mientras que este trabajo es realizado tantos los ordenadores como el resto de material (monitores, impresoras, faxes…) son guardados en nuestro almacén.

Aunque los técnicos encargados de gestionar todo este material están continuamente trabajando en este material es inevitable que este se acabe acumulando, es por eso que hemos decidido desarrollar una pequeña aplicación que nos permita realizar una gestión de inventario mediante códigos de barras.

índice

Pese a que esta primera versión tiene todavía una estética poco visual, es totalmente funcional. Podemos tanto crear las etiquetas con los códigos de barras como procesar dichos códigos y editar los elementos, guardando dichos cambios en nuestra base de datos, que es una hoja de cálculo de Google por cuestiones de interoperabilidad con otros proyectos de gestión interna.

gestion

insercion

Como todo el software que desarrollamos en la OSL está disponible en uno de nuestros repositorios en GitHub, para que cualquier pueda verlo, estudiarlo, modificar y explotarlo como desee.

El próximo día 19 de noviembre la comunidad de Drupal celebra este día el lanzamiento definitivo de Drupal 8.0.0 , lo que se ha llamado “transición a un nuevo modelo Cms” . Dupal es un programa libre, con licencia GNU/GPL, escrito en PHP, combinable con MySQL, desarrollado y mantenido por una activa comunidad de usuarios, en España tenemos Drupal Hispano.

drupal8-release-party

Y te esperamos en el Salón de Grados de la Facultad de Informática de Granada (Etsiit) a las 19:30 para celebrarlo.

No faltes.

Rellena el siguiente Formulario

En la Oficina de Software Libre de la Universidad de Granada no paramos de trabajar así que acabamos de terminar una nueva versión de la plataforma UGR transparente que corrige los errores de funcionamiento que existían hasta ahora. Todo el código desarrollado es libre y se puede encontrar en este repositorio de GitHub, así que se interesa conocer mejor el estado del proyecto solo tienes que seguir leyendo.

Motivación de los cambios:

En la versión anterior se producía siempre un error interno del servidor cuando se cargaba una página por primera vez, además de forma intermitente las tablas de las páginas se mostraban vacías. Esto era debido a que por el funcionamiento asíncrono de Node.js, puede ser que la llamada retorne antes de que se completen las operaciones en su totalidad, por lo que se podía producir la situación de que se intentase visualizar una página antes de que la información del contenido que tenía que recuperarse de la base de datos pudiera haber sido recuperada o incluso accedida. Si la página se intentaba mostrar antes de que la base de datos fuera accedida, los recursos no se encontraban creados y por eso siempre daba un error la primera vez que se visualizaba; si la página se intentaba mostrar antes de que la información hubiera sido recuperada, los recursos ahora si existían, pero estaban vacíos por lo que las tablas de la página se mostraban vacías; solo si la llamaba retornaba cuando todas las operaciones habían sido completadas, lo que significa que la página se intentaba mostrar una vez la información ya había sido recuperada completamente de la base de datos, era cuando la página se mostraba correctamente.

Para evitar el error interno del servidor, al arrancar el servidor en transparente.ugr.es se hacía una carga inicial de todas las páginas mediante la orden “curl“, pero el problema de las tablas vacías seguía estando ahí. Como no conseguí encontrar la forma de arreglar estos errores que se producían por la asincronía entre las operaciones, y el uso de la base de datos era similar al de un índice al que igualmente había que introducirle los datos manualmente desde archivos externos JSON, empecé a desarrollar una nueva versión en la que se sustituyera la función de la base de datos con la carga de los archivos JSON directamente desde la aplicación, esto podría solucionar todos estos errores porque el propio Node.js mediante el módulo “fs“, que provee de la funcionalidad para operar con entrada/salida de ficheros, tiene un método para que la lectura de estos archivos se haga de forma síncrona [fs.readFileSync(archivo)]. Como los archivos son leídos de forma síncrona (forma de la que no era posible recuperar los datos de la base de datos), tanto el error interno como el error en las tablas vacías han dejado de producirse debido a que ya nunca se intentará visualizar las páginas antes de que los datos estén cargados.

Comparación de versiones:

En la versión anterior de UGR transparente, desde el archivo principal de la aplicación “app.js” se cargaba el contenido del archivo “config.json” (también en raíz), que tenía la configuración de acceso a la base de datos MongoDB de la que recuperaba el contenido de las tablas que se visualizan en las diferentes páginas de la web; también de dicho archivo, se recuperaba el contenido de las páginas sin tablas: “Inicio“, “Presentación” y página de error; y además la siguiente información sobre el contenido de cada una de las páginas: categoría, colección, contenido, dataset, nombre y plantilla. En la nueva versión, la información de cada una de las páginas se ha movido a archivos JSON independientes: “claustro.json“, “estadistica.json“, etc. (que también son cargados desde “app.js“), el contenido que se recuperaba desde la base de datos se ha introducido también en esos archivos JSON. Todos estos archivos se encuentran en una nueva carpeta “config” situada en raíz, además la información recuperada se ha simplificado a: nombre, plantilla, contenido y datos.

Toda la información cargada desde “app.js” luego es utilizada desde los archivos JS que se encuentran en la carpeta “routes” correspondientes a cada una de las secciones de la página UGR transparente: “administracion.js“, “docencia.js“, “gestionInvestigacion.js” y “normativaLegal.js“. En la versión anterior, se recuperaba la configuración de acceso a la base de datos desde la información cargada, y mediante iteraciones por las colecciones correspondiente a la página a visualizar, se almacena en variables el contenido recuperado, contenido que luego era gestionado cuando Express generaba la página web después de procesar la plantilla Jade pertinente. En la nueva versión, la recuperación de la información está mucho más simplificada porque se obtiene directamente de la información cargada desde “app.js“, recuperando el contenido de los archivos “config.json” y “PAGINA.json“; por ejemplo, para la gestionar la sección “Administración“, en el archivo “administracion.js” se recupera la información de “config.json” que nos dará la dirección del servidor con los datos (open.data.ugr en este caso) y también recupera la información de los archivos “personal.json” para la página “Personal“, “infoEconomica.json” para la página “Información Económica” y “servicios.json” para la página “Servicios“, esta información es la que usará Express para generar la página que se vaya a visualizar.

En las plantillas Jade de la carpeta “views“, también se ha cambiado la forma de acceder a las variables con la información de la página que la plantilla recibe. En la versión anterior, los valores del contenido eran recibidos en arrays bidimensionales con el contenido recuperado de la base de datos, que tenían que ser procesados mediante varios bucles for; en la versión actual, los valores de contenido son recibidos directamente como campos de archivo JSON, por lo que pueden ser fácilmente accedidos como un array unidimensional.

Ventajas e inconvenientes:

Como ventajas encontramos en primer lugar, que al eliminar MongoDB se liberan una gran cantidad de recursos del sistema; además, a falta de pasar los test pertinentes, no se ha vuelto a producir ningún fallo en la carga o visualización de los datos en las páginas. Como ya no dependemos de la base de datos, el trabajar directamente con los archivos JSON nos da una mayor manejabilidad como es que se puedan adaptar en cualquier momento y directamente la estructura y contenido de los archivos según las necesidades.

Un inconveniente que existe en este versión es algo que también existía en la versión anterior, y es que los datos provienen de archivos JSON que hay que crear manualmente, por lo que si el número de datos es elevado, el proceso de introducción de datos se puede volver realmente pesado.

Siguiente trabajo:

El problema de tener que crear los JSON directamente se podría solucionar si se pudieran recuperar los datos directamente desde el servidor de open.data.ugr, como ese portal esta construido con CKAN que usa una base de datos PostgreSQL para almacenar los datos y además provee de una API para acceder a los datos, sería deseable encontrar la llamada o llamadas que permitieran recuperar los mismos datos que se encuentran en los archivos JSON, algo que todavía no he conseguido encontrar. Una vez que se encontraran estas llamadas, los datos se podrían recuperar directamente utilizando el backend Recline.js que nos permite fácilmente recuperar la información (ejemplo en el scriptprueba_recline.js” de la carpeta “public/script“) y trabajar con ella usando las funciones de las que nos provee, o bien, recuperar la información mediante consultas AJAX (ejemplo en el scriptprueba_acceso.js” también en la carpeta “public/script“) y trabajar con funciones que desarrollemos para trabajar con la información recuperada.

Lo próximo en lo que voy a trabajar es en realizar los test de cobertura, siendo lo primero todo lo que se refiera al acceso a datos. Empezaré viendo como utilizar el framework de test “Mocha” para todo esto. Otros aspectos que quedan pendientes son la integración continua y el aprovisionamiento.

A los participantes en el certamen de proyectos libres les animamos a que se pasen por nuestra oficina para darles una serie de ideas sobre cómo echar a andar el proyecto y qué hacer para que sea fácil colaborar con él. Es una lista de comprobación de diferentes puntos, que os vamos a poner a continuación por si no podéis pasaros por la OSL. Es también útil para el CUSL.

  1. Lo más importante es la licencia. Si no tiene licencia, no es libre. Una licencia es un fichero llamado LICENSE en el directorio principal y una cabecera en cada uno de los ficheros del proyecto que haga referencia a la misma. Elegir una licencia no es trivial, pero si necesitáis que os echemos una mano, no tenéis más que preguntar.
  2. Los recursos como música, imágenes, iconos y demás tienen una licencia diferente. Conviene que se agrupen en un solo directorio y se le ponga una licencia libre, normalmente Creative Commons
  3. Aunque cada uno puede usar la metodología que quiera, aconsejamos usar desarrollo basado en pruebas (en alguna versión, como desarrollo basado en comportamiento). Eso implica escribir tests unitarios para cada una de las características del sistema, sus funciones, y que la cobertura sea la máxima posible. Todos los lenguajes de programación tienen un marco de test, pero si tienes duda sobre qué usar en tu proyecto, una vez más, pregunta.
  4. Necesitas programar esas pruebas para añadirle integración continua, que consiste en hacer integraciones de código continuamente (en vez de hacer ciclos de programación y ciclos de integración) y, cada vez que se hace, pasar los tests programados anteriormente. Podéis usar sitios como Travis, que se configura simplemente con un fichero en YAML que especifica el entorno y dice como se pasan los tests
  5. Como todos usáis git a estas alturas, podéis considerar la posibilidad de trabajar sobre varias ramas, al menos una de desarrollo y otra `master`. Así podéis trabajar especulativamente sobre la rama de desarrollo y pasar a la máster sólo cuando vayáis a incorporarlo a la publicación final.
  6. En todos los proyectos de software libre es muy importante la comunicación. Abrid una cuenta de Twitter al proyecto, que también podéis configurar en GitHub para tuitear cada vez que se haga un commit. Si ya tenéis un blog, abrid una categoría para el proyecto. Si no lo tenéis, os aconsejamos que uséis GitHub pages. Tras la generación original de la página desde el panel de control, este script te puede configurar el repo para que se actualice automáticamente desde el README.md y, por supuesto, para que puedas añadir lo que desees desde él. GitHub pages usa Jekyll, y se puede usar directamente para crear un blog; Octopress funciona sobre Jekyll y permite trabajar un poco más fácilmente con blogs, pero quizás es un poco más complicado de usar. Podéis usar el que quieras, pero poned historias periódicamente con soluciones que se os haya ocurrido, tutoriales para usar lo que tengáis, tecnologías que hayáis tenido que aprender o, en general, lo que se os ocurra. Esto es imprescindible para contactar con y crear comunidad alrededor del proyecto.
  7. Usad los issues de Github para organizar las tareas. Si usáis alguna otra herramienta, conviene que la conectéis con GitHub para que se refleje vuestra actividad también allí. Los issues permiten también a los usuarios comunicarse con vosotros y ver claramente el avance del mismo. También es importante: los issues se cierran siempre con un commit.
  8. Tened una hoja de ruta, o al menos un fichero TODO donde indiquéis qué es lo que queréis hacer y por dónde vais. La hoja de ruta, además, incluirá cuando pensáis publicar algo y qué va a incluir; la hoja de ruta se traducirá en milestones o hitos que puedes incluir en GitHub y los issues se pueden asignar también a los Milestones. Por ejemplo, si alguien os envía un informe de error se puede asignar a un hito determinado: la versión 0.0.3, pongamos. En la hoja de ruta convendría que hubiera un hito antes del hackatón a principios de marzo y otro antes del final del certamen, a principios de junio.

Bueno, pues otro ordenador funcionando con un arranque dual, menos da una piedra.

imagen1

EL problema que tenía el dueño de este portátil en concreto era que una vez instalado Ubuntu el Grub2 de este si reconocía Windows 8 pero al intentar acceder a Windows desde el Grub2 no se podía acceder a Windows. Después de comprobar con un Live CD de Gparted, lo prefiero al que trae la propia Live de Ubuntu, comprobé que tenía varias particiones primarias, entre ellas el loader (cargador) de Windows, partición de recuperación de Windows, la partición C o donde esta alojado el SO y otra como recuperación del propio Sony Vaio al final del disco o tabla de particiones y creo que alguna más había por ahí desperdiga.

Un poco de historia de los protocolos y funciones que trae de serie Windows 8

Secure Boot es un protocolo de UEFI y su función es la de impedir la ejecución de cualquier software no firmado y certificado por el fabricante. En octubre de 2012, la Fundación Linux ha anunciado su propio método de tratar con Secure Boot, que se refiere como un PreBootloader. Algunas placas bases permiten deshabilitar la funcion “Secure Boot”, en este caso si se pudo, pero no todos los ordenadores provistos de este sistema coaccionador y restrictivo tienen habilitada la función para poder desactivarlo y por tanto instalar una alternativa Libre y totalmente funcional de cualquier distribución GNU/Linux.

Sabemos que con EFI todas las particiones son primarias y acepta hasta 128 de ellas en el disco duro por el estándar GPT, para la colocación de la tabla de particiones en un disco duro físico.

Por tanto se entiende algo mejor la cantidad de particiones primarias que me encontré (unas 5 o 6 ) a la hora de instalar Ubuntu en el Sony Vaio modelo SVF1531B4EW  y los problemas que puede tener alguien que no este acostumbrado a realizar estas operaciones.

Realmente después de pasar unas horas trasteando en el portátil para poder instalar una distribución GNU/Linux te das cuenta que el/o los propietarios de los ordenadores achacan, no todos, el “problema” o la dificultad de instalación al propio SO GNU/Linux, cuando en realidad es de Windows. Cuando Pablo (técnico de la OSL) me comento que lo ideal sería explicar los problemas y zancadillas que pone este SO privativo a la hora de poder contar con un arranque dual y disfrutar de un SO libre y eliminar de cuajo al culpable, como a las malas hierbas, para instalar sin más preámbulos ni problemas el SO GNU/Linux en todo el disco duro, me plantee muy seriamente si ya está bien de tener que andar “peleándome” con estos problemas una y otra vez para que cualquier usuario disfrute, si señor DISFRUTE, de un excelente sistema operativo y Libre. Por esto para las próximas instalaciones, si las hay, solo instalo GNU/Linux o que se lo dejen preparado los de Windows para que se pueda instalar otro SO.

Solución

La solución en este caso en concreto fue tan sencilla, o no, (ya que aún así nos la tengo todas conmigo de que el dueño del portátil no tenga que estar deshabilitando el secure o fast boot constantemente antes de arrancar desde un Live CD), como entrar a la configuración por medio del botón llamado (Botón Assist, botón WEB, botón VAIO) que incluye este modelo de portátil y desactivar la función en la Bios del Secure Boot, luego ya con el Live CD de Gparted  redimensione la partición C de Windows para crear dentro de ella una en formato Ext4 de x GB, dentro de esta nueva partición Ext4 cree otra de unos veintitantos GB como sistema de archivos /raíz, otra contigua como /home y al final deje unos 4GB más para la Swap o partición virtual. El resto fue un coser y no cantar , que yo solo canto por Camarón y lo hago fatal, la instalación que el propio instalador de Ubuntu te va guiando de manera sencilla y clara (siguiente, siguiente).

instalar_ubuntu_12_10_01

El buen software comienza por reconocer una carencia y desarrollar una aplicación para subsanarla.

Etiquetar un producto químico en función de su contenido, peligrosidad, etc no es una tarea simple, exige conocer una serie de normativas y estándares, y un error puede tener consecuencias muy desagradables.

Además es una de esas cosas que se harían mucho mejor si se pudiera automatizar, al menos, parte de la lógica del proceso.

Esto es lo que hace Lester, el último software liberado en la Universidad de Granada y el primero liberado por parte del personal de administración y servicios de la misma.

Como se puede ver en la nota de prensa de abajo, se trata de una aplicación web programada en Java, JavaScript y HTML y liberada bajo licencia GNU-GPL, cuyo código está disponible en GitHub. Su cometido es generar, a partir de los datos (peligrosidad, caducidad, etc) introducidos por el usuario, una imagen que cumple con los estándares europeos de etiquetado de productos.

Pantalla del programa Lester

Pantalla del programa Lester

Nota de prensa:

Dos personas de la administración de la UGR liberan un programa para etiquetar reactivos de laboratorio siguiendo estándares europeos.

La colaboración de una programadora del Centro de Servicios de Informática y Redes de Comunicación, Carmen López, y un técnico de laboratorio del Departamento de Ecología, Eulogio Corral, ha dado lugar al programa Lester, una aplicación basada en la web que permite etiquetar, siguiendo estándares europeos, envases de productos químicos.

La aplicación, una vez instalada en cualquier servidor web, permite elegir diferentes datos sobre el reactivo, su peligrosidad y fecha de caducidad, e incluir en la etiqueta diversas imágenes que dan, de forma universal, indicaciones sobre su manipulación.
Este programa, liberado con la colaboración de la Oficina de Software Libre, integrada en la Delegación del Rector para Tecnologías de la Información y la Comunicación, puede ser descargado de forma gratuita de https://github.com/malglam/Lester y es uno de los primeros programas liberados por el personal de administración de una universidad española.

Al ser libre, cualquier otra universidad o empresa de cualquier parte del mundo puede adaptar el programa a sus propias necesidades, y por supuesto usarlo de forma totalmente libre y gratuita.

Se supone que, como dice el título, este post es para anunciar que SLUGR, el acortador de URLs de la Universidad de Granada, ahora muestra QRcodes, que pueden ser usados para incluirlos en carteles y ese tipo de cosas.

Pero, como dicho así es demasiado breve y soso, permitidme que me extienda un poco más y, de camino, clave una pequeña pica en favor del Software Libre como modelo de desarrollo:

Debido, sobre todo, al auge de las redes sociales y a herramientas como Twitter o identi.ca (donde el número de caracteres que se pueden publicar está muy limitado), los acortadores de URL han ido ganando popularidad, y ahora existen montones de ellos.

En 2009, para resolver una necesidad concreta en la Universidad de Granada, se encargó a esta Oficina de Software Libre que programase uno de estos acortadores de URL para su uso en la UGR. De este modo se usaba una herramienta interna, se aportaba un servicio más a la comunidad universitaria, se daba más imagen de unidad y ese tipo de cosas.

El resultado fue sl.ugr.es que, naturalmente, está programado bajo una licencia libre (concretamente, una Affero GPL).

(Como nota curiosa cabe decir que, debido al analfabetismo parcial del programador combinado con una cierta dislexia funcional, el programa se llama “SLUGR”, “Sluger”, “Slugre” o algo aún más extraño, dependiendo de donde lo leas escrito)

Algún tiempo más tarde, la gente de Codeko andaba buscando también un acortador de URLs, pero que tuviese unas características bastante específicas que no tenía ninguna otra herramienta similar.

Al parecer, lo que ellos necesitaban, era incluir la posibilidad de que se conservasen las extensiones de los archivos originales en la propia URL corta, para poder incluir imágenes en páginas y esas cosas.

Al ser Software Libre, decidieron usar SLUGR como base para desarrollar sobre él su propia variante. Como en su momento ya contamos por aquí, de ahí nació go4.es que, naturalmente, también es una herramienta libre (tal como lo exige la licencia).

Parece que de go4.es ha partido algún proyecto más, pero me temo que no les sigo la pista y no sé por donde andan, por lo que no pudo alargar mucho más esta historia (lo que seguramente es una suerte, en cualquier caso).

El caso es que una de las mejoras que go4.es tenía sobre SLUGR es que, al crear una URL corta, muestra un QRcode. Los QRcodes son otra de esas cosas que se están volviendo muy populares, esta vez debido al auge de los smartphones y dispositivos similares.

Y, dado que go4.es es, como hemos visto, software libre, ha sido trivial copiar su código legítimamente para que SLUGR haga lo mismo. Y sin guerras de patentes ni ejércitos de abogados.

Con lo que llegamos a donde empezamos: Que SLUGR ahora muestra QRcodes, que pueden ser usados para incluirlos en carteles y ese tipo de cosas, y que desarrollar Software Libre (y colaborar haciéndolo) es infinitamente más cómodo.

Un profesor del departamento de Física Atómica, Molecular y Nuclear de la UGR libera un programa que permite hacer cálculos de transporte de neutrones

Los neutrones son partículas nucleares que como su nombre indica, no tienen carga eléctrica (son neutras) y por tanto para ellos las nubes electrónicas son transparentes, por lo que interaccionan solamente con los núcleos de diversas formas: rebotando, como si fueran bolas lanzadas contra un bosque de columnas, o produciendo reacciones nucleares en las que son capturadas y pueden dar lugar a la emisión de un rayo gamma, un protón o una partícula alfa. Por ello, los cálculos de la dosis producida por un haz de los mismos en su aplicación como radioterapia es complejo, incluyendo distintos tipos de radiación secundaria que producen efectos biológicos de distinta magnitud.

El programa PONEDOS (POint NEutron source absorbed and equivalent ICRP DOSe), creado por el Dr. Ignacio Porras, del departamento de Física Atómica, Molecular y Nuclear, permite estimar precisamente esa dosis mediante simulación Monte Carlo, incluyendo factores peso para los distintos tipos de radiación secundaria emitida. El método necesario para hacerlo fue publicado en el año 2008 en Physics in Medicine and Biology, pero el programa no ha sido liberado hasta este momento.

Este programa, que ha sido liberado con el apoyo de la Oficina de Software Libre de la Universidad de Granada, puede ser usado a partir de ahora por investigadores de física nuclear y física médica de universidades y hospitales de todo el mundo, que podrán usarlo tal cual o adaptarlo a sus propias necesidades.

Todos los ficheros necesarios para usar el programa se pueden descargar de http://sl.ugr.es/ponedos; este programa se une a las decenas liberadas por la universidad de Granada, pero es el primero liberado por el departamento y de los primeros en la Facultad de Ciencias.

Contacto:
Ignacio Porras, porras@ugr.es
Departamento de Física Atómica, Molecular y Nuclear
958 240030

Web Jornadas de Software Libre
Logo y enlace Web Jornadas de Software Libre 2018
Web SereIngeniera
Logo y enlace Web SereIngeniera 2018
Web Campus Infantil 2018
Logo y enlace Web Campus Infantil 2018
Calendario
julio 2018
lunes martes miércoles jueves viernes sábado domingo
25 junio, 2018

Categoría: General9:00 pm: Campus Infantil - 1º turno

9:00 pm: Campus Infantil - 1º turno
26 junio, 2018

Categoría: General9:00 pm: Campus Infantil - 1º turno

9:00 pm: Campus Infantil - 1º turno
27 junio, 2018

Categoría: General9:00 pm: Campus Infantil - 1º turno

9:00 pm: Campus Infantil - 1º turno
28 junio, 2018

Categoría: General9:00 pm: Campus Infantil - 1º turno

9:00 pm: Campus Infantil - 1º turno
29 junio, 2018

Categoría: General9:00 pm: Campus Infantil - 1º turno

9:00 pm: Campus Infantil - 1º turno
30 junio, 2018 1 julio, 2018
2 julio, 2018

Categoría: General9:00 pm: Campus de Chicas

9:00 pm: Campus de Chicas

Categoría: General9:00 pm: Campus Infantil - 1º turno

9:00 pm: Campus Infantil - 1º turno
3 julio, 2018

Categoría: General9:00 pm: Campus de Chicas

9:00 pm: Campus de Chicas

Categoría: General9:00 pm: Campus Infantil - 1º turno

9:00 pm: Campus Infantil - 1º turno
4 julio, 2018

Categoría: General9:00 pm: Campus de Chicas

9:00 pm: Campus de Chicas

Categoría: General9:00 pm: Campus Infantil - 1º turno

9:00 pm: Campus Infantil - 1º turno
5 julio, 2018

Categoría: General9:00 pm: Campus de Chicas

9:00 pm: Campus de Chicas

Categoría: General9:00 pm: Campus Infantil - 1º turno

9:00 pm: Campus Infantil - 1º turno
6 julio, 2018

Categoría: General9:00 pm: Campus de Chicas

9:00 pm: Campus de Chicas

Categoría: General9:00 pm: Campus Infantil - 1º turno

9:00 pm: Campus Infantil - 1º turno
7 julio, 2018 8 julio, 2018
9 julio, 2018

Categoría: General9:00 pm: Campus de Chicas

9:00 pm: Campus de Chicas

Categoría: General9:00 pm: Campus Infantil - 2º turno

9:00 pm: Campus Infantil - 2º turno
10 julio, 2018

Categoría: General9:00 pm: Campus de Chicas

9:00 pm: Campus de Chicas

Categoría: General9:00 pm: Campus Infantil - 2º turno

9:00 pm: Campus Infantil - 2º turno
11 julio, 2018

Categoría: General9:00 pm: Campus de Chicas

9:00 pm: Campus de Chicas

Categoría: General9:00 pm: Campus Infantil - 2º turno

9:00 pm: Campus Infantil - 2º turno
12 julio, 2018

Categoría: General9:00 pm: Campus de Chicas

9:00 pm: Campus de Chicas

Categoría: General9:00 pm: Campus Infantil - 2º turno

9:00 pm: Campus Infantil - 2º turno
13 julio, 2018

Categoría: General9:00 pm: Campus de Chicas

9:00 pm: Campus de Chicas

Categoría: General9:00 pm: Campus Infantil - 2º turno

9:00 pm: Campus Infantil - 2º turno
14 julio, 2018 15 julio, 2018

Categoría: General10:00 pm: Inscripción JSLUGR

10:00 pm: Inscripción JSLUGR
16 julio, 2018

Categoría: General9:00 pm: Campus Infantil - 2º turno

9:00 pm: Campus Infantil - 2º turno
17 julio, 2018

Categoría: General9:00 pm: Campus Infantil - 2º turno

9:00 pm: Campus Infantil - 2º turno
18 julio, 2018

Categoría: General9:00 pm: Campus Infantil - 2º turno

9:00 pm: Campus Infantil - 2º turno
19 julio, 2018

Categoría: General9:00 pm: Campus Infantil - 2º turno

9:00 pm: Campus Infantil - 2º turno
20 julio, 2018

Categoría: General9:00 pm: Campus Infantil - 2º turno

9:00 pm: Campus Infantil - 2º turno
21 julio, 2018 22 julio, 2018
23 julio, 2018 24 julio, 2018 25 julio, 2018 26 julio, 2018 27 julio, 2018 28 julio, 2018 29 julio, 2018
30 julio, 2018 31 julio, 2018 1 agosto, 2018 2 agosto, 2018 3 agosto, 2018 4 agosto, 2018 5 agosto, 2018
Archivos
Categorías