Día del Software Libre Guanajuato 16 Noviembre 2013

Hola a todos,

El próximo sábado 16 de Noviembre celebraremos el día del Software Libre en nuestro estado Guanajuato , la ciudad sede será en Irapuato, Gto.

sfd2

Estamos solicitando aun la participación de ponentes y así mismo de patrocinadores.

La entrada a nuestro evento es libre.

Nuestro sitio web es: http://diadelsoftwarelibre.com/wpress/16-de-noviembre-sfdgto-2013/

Registro de Asistentes: http://diadelsoftwarelibre.com/wpress/pre-registro/

Registro de Ponentes: http://diadelsoftwarelibre.com/wpress/abierto-el-call-4-papers/

Como llegar al evento: http://diadelsoftwarelibre.com/wpress/como-llegar-al-evento/

Wiki Oficial de nuestro evento: http://wiki.softwarefreedomday.org/2013/Mexico/Guanajuato/Comunidad-de-Software-Libre-Guanajuato

Email de contacto: sfdgto@gmail.com

Los esperamos !!!

Saludos

Firefox OS @ Linux Mint 13

Para poner en marcha Firefox OS  hay que hacer lo siguiente:

La gente de Mozilla recomienda usar una distribución de Linux con gcc 4.6 o Mac OS X (Mountain Lion) ya que distros con gcc 4.7 como Ubuntu 12.10 pudiesen ser incompatible al momento de compilar los fuentes de Firefox OS.

También necesitas un teléfono compatible o en caso de no contar con un teléfono compatible se puede usar un emulador (arm / x86) el cual vamos a construir para realizar nuestras pruebas con Firefox OS.

En el sitio de Mozilla se menciona que solo los dispositivos con Android 4 (aka Ice Cream Sandwich) están soportados.

Para Linux es necesario instalar los siguientes programas y para no compilar los fuentes y dependencias puedes usar un gestor de paquetes e instalar los programas rápido.

$ sudo apt-get install autoconf2.13 bison bzip2 ccache curl flex gawk gcc g++ g++-multilib git ia32-libs lib32ncurses5-dev lib32z1-dev libgl1-mesa-dev libx11-dev make

Necesitas instalar el programa Android Debug Bridge (ADB), instala el SDK de Android y posteriormente establece un par de variables de entorno como se muestra a continuación:

jacob@puerkita /media/bsdfreedisk/all/Downloads/FirefoxOS/B2G $ cat /etc/profile.d/android.sh
 #!/bin/bash
export SDK_HOME=/home/jacob/Downloads/android/android-sdk-linux
 export ANDROID_TOOLS=$SDK_HOME/tools
 export PATH=$SDK_HOME/platform-tools:$ANDROID_TOOLS:$PATH

A continuación es necesario configurar ccache , ccache agiliza por ejemplo una re-compilación “cacheando” el resultado de previas compilaciones, los lenguajes soportados con C, C++, Objective C/C++

El valor por omisión para ccache es de 1GB , la compilación de Firefox OS satura muy rápido la cache de ccache , para dar un poco de mas espacio en disco usa el siguiente comando:

$ ccache --max-size 2GB

Ahora necesitamos obtener el codigo de FirefoxOS y para ello necesitamos clonar el repositorio de B2G usando Git.

$ git clone git://github.com/mozilla-b2g/B2G.git

Una vez terminado el proceso anterior debes cambiarte al directorio B2G

$ cd B2G

A continuación necesitamos saber con cual dispositivo se va instalar FirefoxOS o en el caso que solo quieras desarrollar pruebas puedes usar el emulador, en mi caso use un emulador para arm.

$ ./config.sh emulator

Las opciones de dispositivos soportados y emuladores es:

- galaxy-s2 – galaxy-nexus – nexus-s – nexus-s-4g – otoro – unagi – pandaboard – emulator – emulator-x86

Para compilar e instalar Firefox OS y una vez que te has situado en el directorio B2G , es escribir el siguiente comando:

./build.sh

Un punto interesante es que si tu computadora tiene mas de un core por procesador puedes aprovecharte de ello , por ejemplo para realizar el proceso de compilación de Firefox OS en paralelo puedes usar la siguiente opción, si tienes mas cores puedes usarlos, solo recuerda dejar algo de recursos para que tu puedas seguir trabajando mientras se compila Firefox OS ya que de lo contrario se puede quedar congelada tu computadora mientras el proceso termina.

./build.sh -j2

Dentro del directorio B2G hay un archivo de texto plano oculto el cual puedes editar para añadir opciones de compilación , por ejemplo si mueves hacia otra computadora o de directorio todo tu código de Firefox OS puedes indicar o también puedes establecer el numero de cores a usar , un punto interesante es que puedes definir que tipo de emulador vas a generar es decir basado en arm o x86, en mi caso DEVICE_NAME=emulator

$ cat .config
MAKE_FLAGS=-j2
GECKO_OBJDIR=/media/bsdfreedisk/all/Downloads/FirefoxOS/B2G/objdir-gecko
DEVICE_NAME=emulator
DEVICE=generic
LUNCH=full-eng

En lo que termina puedes ir a tomar una o mejor dicho varias tazas de café ;)

Una vez que ha terminado el proceso puedes iniciar el emulador y antes de eso solo mencionar que hay 2 clases de emuladores , el primero basado en arm y el segundo sobre X86 siendo este mas rápido que arm , se recomienda usar arm .

Para iniciar el emulador :

Verifica si está corriendo ADB (Android Debugger)
el adb que viene dentro de Firefox OS (b2g) está en la siguiente dirección:

$B2G/out/host/<platform>/bin (Linux)
$B2G/out/host/darwin-x86/bin (Mac OS X)

jacob@puerkita /media/bsdfreedisk/all/Downloads/FirefoxOS/B2G $ ps aux | grep adb
jacob     9754  0.0  0.0  14104   920 pts/2    S+   19:07   0:00 grep --colour=auto adb

Iniciar ADB server:

jacob@puerkita /media/bsdfreedisk/all/Downloads/FirefoxOS/B2G $ out/host/linux-x86/bin/adb start-server
* daemon not running. starting it now on port 5037 *
* daemon started successfully *

Comprobar que ADB está corriendo:

jacob@puerkita /media/bsdfreedisk/all/Downloads/FirefoxOS/B2G $ ps aux | grep adb
jacob    11428  0.0  0.0  20016   660 pts/0    Sl   19:44   0:00 adb fork-server server

Por omisión solo 512 MB de memoria ram y partición de disco son usados para cambiar estos parámetros puedes editar el script “run-emulator.sh”, en mi caso establecí 1GB de ram y disco.

export PATH=$PATH:$TOOLS_PATH
${DBG_CMD} $EMULATOR \
   -kernel $KERNEL \
   -sysdir $B2G_HOME/out/target/product/$DEVICE/ \
   -data $B2G_HOME/out/target/product/$DEVICE/userdata.img \
   -memory 1024 \
   -partition-size 1024 \
   -skindir $B2G_HOME/development/tools/emulator/skins \
   -skin HVGA \
   -verbose \
   -gpu on \
   -qemu $TAIL_ARGS

recordar que es un imagen que corre en Qemu, para especificar un dns para que tu emulador pueda resolver dominios en internet puedes añadir las opciones dentro del mismo script como lo hice yo, por ejemplo:

if [ "$DEVICE" = "generic_x86" ]; then
    EMULATOR=$TOOLS_PATH/emulator-x86
    KERNEL=$B2G_HOME/prebuilts/qemu-kernel/x86/kernel-qemu
else
    EMULATOR=$TOOLS_PATH/emulator
    KERNEL=$B2G_HOME/prebuilts/qemu-kernel/arm/kernel-qemu-armv7
    TAIL_ARGS="$TAIL_ARGS -cpu cortex-a8 -dns-server 10.128.128.128"

A continuación puedes lanzar el emulador

./run-emulator.sh

Básicamente esto es lo que se está ejecutando a traves del script “run-emulator.sh”

jacob     7585 94.5 11.6 1771812 434480 pts/1  Rl+  18:15  36:50 /media/bsdfreedisk/all/Downloads/FirefoxOS/B2G/out/host/linux-x86/bin/emulator64-arm -kernel /media/bsdfreedisk/all/Downloads/FirefoxOS/B2G/prebuilts/qemu-kernel/arm/kernel-qemu-armv7 -sysdir /media/bsdfreedisk/all/Downloads/FirefoxOS/B2G/out/target/product/generic/ -data /media/bsdfreedisk/all/Downloads/FirefoxOS/B2G/out/target/product/generic/userdata.img -memory 512 -partition-size 512 -skindir /media/bsdfreedisk/all/Downloads/FirefoxOS/B2G/development/tools/emulator/skins -skin HVGA -verbose -gpu on -qemu -cpu cortex-a8

Algunas capturas de pantalla:

Nginx upload module

pues nada que Facebook tiene la culpa pues cada ves menos uso el blog para escribir…en fin.

En días pasados estuve trabajando con Galaxy para análisis de datos etc y etc, si bien es cierto que para usar Galaxy en modo “pro” , por así llamarlo, es necesario configurar e instalar una serie de dependencias por ejemplo PostgreSql, un servidor ProFtpd para usuarios virtuales, un servidor web y proxy como Nginx..etc y etc, sin embargo un problema que sucede es que al compilar Nginx, mi ejemplo:

./configure –prefix=/usr –with-http_ssl_module –with-http_perl_module –conf-path=/etc/nginx/nginx.conf –error-log-path=/var/log/nginx/nginx_error.log –pid-path=/var/run/nginx/nginx.pid –lock-path=/var/lock/nginx/ –http-log-path=/var/log/nginx/nginx_access.log –add-module=/home/jacob/Downloads/bio/galaxy/nginx_upload_module-2.2.0 ; make

al compilar Nginx con el modulo para “uploads” en Linux Mint 13 hay un error y el error no es mas que el uso de una variable “sin uso” ya que gcc está tratando todos los warnings como error, la solución es muy sencilla , yo escogería alguna de estás opciones que seguro no son las únicas..

  1. Eliminas la variable.
  2. Editas el archivo “Makefile” y eliminas “-Werror”  al menos para la parte donde compila el fuente en cuestión.
  3. Inicializas a un valor nulo o en una sentencia haces uso de la variable , verifica con calma lo que sucede en el codigo fuente y listo.

La opción #1 no la recomiendo mucho puede que en alguna otra parte del código de Nginx haga referencia y te lleves sorpresas, cuestión de revisar.

El error:

/home/jacob/Downloads/bio/galaxy/nginx_upload_module-2.2.0/ngx_http_upload_module.c:1681:18: error: variable ‘result’ set but not used [-Werror=unused-but-set-variable]

¿ un parche ? hice uno pero no tiene ningún sentido , pierdes menos tiempo en editar el fuente o el archivo Makefile.

easyRAE iniciando..

Nada ,ahora que nuestra comunidad Mono Hispano ha regresado …

Hace varios años desarrolle una aplicación, para el escritorio de Linux, que permite consultar el diccionario de la Rea Academia Española  , también hay una versión que empece a probar para jugar un poco con el iPhone 3G/Monotouch al menos con el emulador.

La aplicación genera una base de conocimiento de tal manera que los usuarios interesados pudiesen buscar y encontrar el significado, localmente en su computadora , de alguna palabra muy rápido.

La ultima versión permite al usuario generar, exportar e importar una base de conocimiento (BC) la cual el usuario estará generando dinamicamente al momento de consultar al diccionario de la Real Academia Española. El usuario se encargara de subir  su base de conocimiento en un servidor a través de a aplicación easyRAE, algo parecido a MonoDoc, la base de conocimiento se actualizara cada que el usuario decida subir sus actualizaciones y estará disponible para su descarga como archivo compreso y permitirá alimentar a la aplicación easyRAE de mas usuarios.

Básicamente como se muestra en la figura anterior, 5 consultas generan un total de 90KB de consultas descargadas, 1000 consultas generan 17.57 M sin compresión. Una base de conocimiento, con compresión, de 1000 consultas, da un total de 1.9 M

En la versión 0.2 era posible usar easyRAE por linea de comandos

* opciones para la linea de comandos:

- – word : consulta la base de datos de la Real Academia Española.

- – disable-ui : deshabilita la interfaz GtkSharp

- – help : muestra la ayuda.

Ejemplo de uso:

$easyRAE  – – word estilo  – – disable-ui

Esto permite consultar la palabra estilo en el diccionario de la RAE

Un nuevo comienzo Mono Hispano

pues nada que Alberto me ha comunicado que vamos empezar nuevamente con Mono-Hispano, bueno ya comenzó..

Hola a todos,

De nuevo estamos en marcha. Ya están abierto el registro al wordpress de Mono Hispano. Por favor si estáis interesados en formar parte de una futura lista de correo de Mono Hispano y/o en colaborar escribiendo artículos por favor registraros. En el menú de la derecha tenéis la opción “Registrarse”.

Para acceder a documentación sobre Mono, GTK#, C# y ASP.NET en Linux así como la forma de configurarlo todo echad un vistazo al Wiki de Mono Hispano y especialmente al libro de desarrolladores de Mono, también encontraréis un interesante listado de tutoriales. Solo tenéis que pulsar en el botón “Manuales” en la página del wiki.

Los que manejáis bien el inglés echad un vistazo a la página del proyecto Mono en inglés.

Los que buscáis un IDE de desarrollo para programar en C# en Linux, desarrollar para el framework Mono, visitad la página, también en inglés del IDE MonoDevelop

Alberto

¿a qué estáis esperando?..vale pues a ! ser Monos !

Mono Hispano

MonoGame y Microsoft XNA mi primer juego

Pues nada que al fin me pude hacer tiempo para empezar con MonoGame , MonoGame es una implementación XNA para Mono. El framework XNA  te permite desarrollar juegos para diversas plataformas como el XBOX 360, Windows Phone 7 y Windows 7.

Gracias al equipo de MonoGame ahora es posible escribir programas para las plataformas que he mencionado anteriormente usando Linux, Mac OS X con Mono.. simplemente es genial !! , esto no es nada nuevo y ya tiene tiempo de ir avanzando el proyecto sin embargo apenas estoy haciendo algunas pruebas pues si bien recordaran siempre he sido aficionado a los vídeo juegos y a su desarrollo.

Sí, por supuesto que existen apis para desarrollar “games” con Python y otros lenguajes de programación pero finalmente es una cuestión de que lenguaje te gusta mas y como te sientes mas cómodo para trabajar en este apartado.

En Linux, para los que usan MonoDevelop pueden seguir usando la interfaz y desarrollar en ello,  ¿Qué necesitas?

Mono , MonoDevelop (opcionalmente) y MonoGame

¿Cuál Linux? Linux Mint 12, pero puedes usar cualquiera.

¿versión de Mono? yo use la versión 2.10.7 (Mono JIT compiler version 2.10.7 (tarball Wed Dec  7 13:31:31 CST 2011)) compilada desde fuentes.

para no trastear tanto, mi pequeño “game” que programe no hace prácticamente nada,  solo mueve una imagen (sprite) con el logo de monogame arriba, abajo, izquierda, derecha de acuerdo a la tecla up, down, left, right veamos una imagen:

Pues nada que para compartir los fuentes intentare preparar algo mas interesante que simplemente mover un sprite.

XNA GameStudio 4 se ve que tiene buena pinta , sin embargo ni siquiera tengo Windows en el ordenador así que para mi no es opción.

Software Freedom Day Guanajuato 2011

Las ultimas imágenes de lo sucedido en nuestro evento Software Freedom Day Guanajuato 2011. El software libre es único, nos ha permitido relacionarnos con mas personas con el mismo espíritu de ayudar a los demás, hacer amigos, convivir, compartir nuestros conocimientos, exponer proyectos que poco o mucho vamos aportando en la medida de nuestras posibilidades, finalmente todos aportamos nuestro granito de arena al Software Libre, la idea es no perder el animo de seguir organizando este tipo de eventos, nos vemos el próximo año y gracias a todos.

ahhh pero qué rico cafecito en las palomas !!!

Software Freedom Day Guanajuato 2011

Me complace anunciar que nuestro evento fue exitoso, sin duda el trabajo en equipo hace la diferencia y fue lo que nos permitió salir adelante, sin embargo lo importante fue la asistencia de todos ustedes, gracias a todos.

 

Material de presentaciones en formato pdf para su descarga:

   

En su momento dejaremos disponibles las presentaciones restantes.

Gracias a todos nuestros amigos y patrocinadores, un saludo a Víctor Manuel quien nos visito desde España , sin duda un viaje muy largo, muy buena charla Víctor, nos vemos el próximo año, gracias a todos por igual , muchas gracias.