java.io.EOFException y el JavaKeyStore para applets

Una de las características por la cual me encanta Gentoo es por su excelente soporte a Java y sin titubear puedo decir que es uno de los sistemas operativos más flexibles para desarrollo en Java pudiendo elegir los compiladores y maquinas virtuales que deseo utilizar con un par de comandos.

A decisión personal utilizo OpenJDK como mi maquina virtual de cabecera y OracleJDK solo para mi navegador web (por algunos certificados que OpenJDK no tiene). En medio cambios abruptos y mal planificados de maquinas virtuales  obtuve como resultado una corrupción en el almacén de certificados confiables sin siquiera percatarme.

Luego, al intentar acceder a el portal en linea de mi banco, recibía el siguiente error:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
java.io.EOFException
    at java.io.DataInputStream.readInt(DataInputStream.java:392)
    at sun.security.provider.JavaKeyStore.engineLoad(JavaKeyStore.java:645)
    at sun.security.provider.JavaKeyStore$JKS.engineLoad(JavaKeyStore.java:55)
    at java.security.KeyStore.load(KeyStore.java:1214)
    at com.sun.deploy.security.DeploySigningCertStore$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at com.sun.deploy.security.DeploySigningCertStore.loadCertStore(Unknown Source)
    at com.sun.deploy.security.DeploySigningCertStore.load(Unknown Source)
    at com.sun.deploy.security.DeploySigningCertStore.load(Unknown Source)
    at com.sun.deploy.panel.CertificatesInfo.reset(Unknown Source)
    at com.sun.deploy.panel.CertificatesInfo.(Unknown Source)
    at com.sun.deploy.panel.CertificatesDialog.(Unknown Source)
    at com.sun.deploy.panel.SecurityPanel.certsBtnActionPerformed(Unknown Source)
    at com.sun.deploy.panel.SecurityPanel.access$000(Unknown Source)
    at com.sun.deploy.panel.SecurityPanel$1.actionPerformed(Unknown Source)
    at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
    at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)
    at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
    at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
    at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
    at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:289)
    at java.awt.Component.processMouseEvent(Component.java:6505)
    at javax.swing.JComponent.processMouseEvent(JComponent.java:3321)
    at java.awt.Component.processEvent(Component.java:6270)
    at java.awt.Container.processEvent(Container.java:2229)
    at java.awt.Component.dispatchEventImpl(Component.java:4861)
    at java.awt.Container.dispatchEventImpl(Container.java:2287)
    at java.awt.Component.dispatchEvent(Component.java:4687)
    at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
    at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492)
    at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
    at java.awt.Container.dispatchEventImpl(Container.java:2273)
    at java.awt.Window.dispatchEventImpl(Window.java:2719)
    at java.awt.Component.dispatchEvent(Component.java:4687)
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:723)
    at java.awt.EventQueue.access$200(EventQueue.java:103)
    at java.awt.EventQueue$3.run(EventQueue.java:682)
    at java.awt.EventQueue$3.run(EventQueue.java:680)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
    at java.awt.EventQueue$4.run(EventQueue.java:696)
    at java.awt.EventQueue$4.run(EventQueue.java:694)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:693)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:244)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:163)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:151)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:147)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:139)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:97)

El error en si no es muy descriptivo y me genero un dolor de cabeza horrible. Luego de leer un poco en los foros de Oracle, el verdadero problema es que el archivo de certificados para el usuario en ejecución estaba dañado y por ser un archivo de configuración a nivel de usuario este no es eliminado con cada reinstalación/desinstalación de Java (esto tambien ocurre en Windows).

¿Solución?

La solución más factible al dañar este archivo es eliminarlo, es casi imposible editarlo a mano porque su contenido es binario, vale la pena resaltar que si el archivo esta vació recibirán el mismo error antes mencionado. Asi que procedemos a borrarlo:

1
rm $HOME/.java/deployment/security/trusted.certs

Como consecuencia de este paso, en el primer intento de ejecución de un applet tendremos que confirmar nuevamente si confiamos en el y esto sucederá con todos los applets previamente confirmados. Engorroso pero nuevamente puedo entrar a ver mi estado de cuenta :D.

Creando tu propio Gentoo Overlay en GitHub

Aunque actualmente Gentoo disponibiliza overlays en Git para sus usuarios, nunca esta de más entender la estructura básica de un overlay y configurarla por nosotros mismos, por ejemplo en GitHub.

¿Que es un overlay?
Un overlay es un origen extra de ebuilds que no son parte del arbol de portage principal . Generalmente se utilizan para disponibilizar paquetes de Software para Gentoo con fines diversos, incluyendo experimentación, paquetes bleeding edge, separación de proyectos, pruebas de paquetes. Todo esto aprovechando las ventajas de portage y aprovechar paquetes ya existentes como dependencias.

¿Existen otras alternativas?
Una alternativa muy común es el uso de overlays locales, sin embargo son innumerables las ventajas que provee un administrador de versiones y si se tiene más de un equipo con Gentoo los ebuilds del overlay se pueden distribuir de una manera más fácil utlizando layman.

Creando la estructura de nuestro overlay
Para fines prácticos el overlay se llamara tuxtor y estará ubicado en un folder denominado tuxtor.

Como primer paso debemos crear la estructura del overlay para luego enviar los archivos a nuestro repositorio. Por definición los overlays conservan la misma estructura del arbol de portage donde se tienen como directorios de primer nivel las categorías de los paquetes y dentro de cada categoría un folder que corresponde a un paquete, uno o mas ebuilds que corresponden a distintas versiones del paquete y el archivo Manifest para la ejecución de verificaciones con checksum md5.

Por ejemplo para mi versión de mendeleydesktop 1.6, la estructura seria completa seria

tuxtor
--sci-misc
----mendeleydesktop
------mendeleydesktop-1.6.ebuild
------Manifest

Luego de tener listos nuestros ebuilds necesitamos añadir un directorio denominado profiles que en el arbol principal portage se utiliza para almacenar un set de configuraciones que dependerán del perfil de sistema operativo con el cual se haya instalado Gentoo. Aunque se pueden agregar varias configuraciones dentro del folder profiles, el requisito mínimo es crear el directorio con un archivo de texto simple denominado repo_name el cual debe contener el nombre que deseamos para nuestro overlay:

tuxtor
--profiles
----repo_name

Integración con Layman

También necesitamos preparar nuestro overlay de tal forma de que layman pueda saber de su existencia y le haga el amor, para esto necesitamos crear un archivo .xml con la estructura descrita en la documentación de layman. Aunque este archivo puede estar en cualquier otra parte y describir no solo uno sino varios repositorios con varios orígenes (ssh,git,svn,mercurial,http,https), GitHub ofrece acceso plano via http al archivo y este puede ser aprovechado.

Por ejemplo mi XML tiene la siguiente estructura:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE repositories SYSTEM "/dtd/repositories.dtd">
<repositories xmlns="" version="1.0">
  <repo quality="experimental" status="unofficial">
    <name>tuxtor</name>
    <description>Tuxtor Personal Overlay</description>
    <homepage>https://github.com/tuxtor/tuxtor-gentoo-overlay</homepage>
    <owner>
      <email>tuxtor@shekalug.org</email>
      <name>Víctor Orozco</name>
    </owner>
    <source type="git">git://github.com/tuxtor/tuxtor-gentoo-overlay.git</source>
    <feed></feed>
  </repo>
</repositories>

La parte mas importante del archivo es el tag source type, en el caso de git, este debe apuntar a la URL read only del respositorio git. Convenientemente lo ubico dentro del folder tuxtor

tuxtor
--overlay.xml

Una vez hecho esto procedemos a hacer push de los archivos que estan dentro del folder tuxtor y nuestro overlay pasa a su nueva morada en GitHub.

Para integrarlo a layman en nuestro sistema Gentoo solo necesitamos obtener la URL de acceso plano al archivo overlay.xml y editar la variable overlays en el archivo /etc/layman/layman.cfg y agregar la URL antes obtenida. Por ejemplo mi archivo contiene la siguiente estructura:

overlays  : http://www.gentoo.org/proj/en/overlays/repositories.xml
https://raw.github.com/tuxtor/tuxtor-gentoo-overlay/master/overlay.xml

Por ultimo basta con hacer un layman -L para actualizar el listado de overlays disponibles y agregar el overlay con un layman -a <repo_name> donde repo_name corresponde al nombre que definimos en el archivo XML. Este nombre no tiene que ser necesariamente el definido en el archivo repo_name dentro de profiles, pero es más consistente con otras herramientas como eix y te evita dolores de cabeza.

Y listos, a emerger!

Oracle y los errores en criticos en Java

Recientemente la maquina virtual de Java y más específicamente el plugin de Java para exploradores web ha sido duramente criticado por errores graves de seguridad, donde en algunas plataformas se resolvía con actualizar la versión de Java y en otras dependia de la implementación propia y cerrada

A decir verdad los errores de Software que pueden derivar en una falla de seguridad grave le ocurren a la mayoría de los productos, idealmente mientras menos ocurran es mejor, pero están presentes en Linux, Windows, Mac por dar algunos ejemplos o plataformas superseguras como OpenBSD con backdoors del FBI incluidos.

¿Entonces porque decimos que un Software es más seguro que otro o porque decimos que una plataforma de desarrollo es más segura que otra?. Ademas de la frecuencia de aparición de errores que desde mi punto de vista es la métrica más visible, otro factor bastante importante es como estos errores son abordados y es un problema del que Oracle esta aun aprendiendo a reaccionar porque a diferencia de sus bases de datos que comúnmente están aisladas tras varios firewall, acceder y explotar una vulnerabilidad en el plugin de la maquina virtual de Java es más simple respecto al numero de puntos de control que deben ser burlados.

Hace tres dias Ars Technica (en ingles) publico un reportaje respecto a una vulnerabilidad critica en Java que preocupo a varios lideres de la comunidad Java a nivel mundial (y a su servidor por andar de metido en conversaciones de grandes) sobre todo porque ya han sido dos golpes grandes en menos de 6 meses. A mi parecer el tono noticia es un poco amarillista, pero cuando la seguridad esta en juego el amarillo realmente es un buen color para decir que algo esta pasando y eso no justifica la pobre administración que Oracle realiza (o realizaba?) respecto a los zero day bugs.

Una de las cosas que me gusta del Software Libre es la transparencia de errores críticos en casos tan notables como Debian o Gentoo, donde los errores son revelados lo más antes posible y a su vez los parches son liberados en un tiempo corto. Sin embargo en el reportaje de Ars Technica a pesar de sus reiterados intentos por obtener una respuesta por parte de Oracle, la única información clara y oficial era que a pesar de la gravedad del bug el plan de actualización seguirá como si nada hubiera pasado escondiendo todo bajo la alfombra. Si, yo también vi eso como un error garrafal.

Pero no todo ha sido malo para Java desde el cambio de dueño y Oracle esta reaccionando más rápido de lo que esperaríamos invirtiendo en esta área fundamental a petición de la comunidad (aunque usted no lo crea). Luego de una breve discusión acerca de la inminente necesidad de un jalón de orejas por el impacto que pueden tener estos errores en productos más nuevos como JavaFX, fue presentado a la comunidad Milton Smith como la nueva persona a cargo de la seguridad de Java SE y literalmente lo tiraron a los leones para que hubiera comunicación de ideas con la gente que usa Java en la calle.

Luego de una breve discusión del reportaje de Ars Technica la respuesta del mismo Milton fue que un nuevo lanzamiento de Java estaba listo para instalar, ademas de que se habia elevado la alerta de seguridad y esto traería una pequeña modificación en la numeración de versiones de Java. Para los que están acostumbrados a desarrollar Software saben que este tipo de cosas no son como encender la tele y ver el programa de Chabelo, la respuesta fue muy rápida hablando en tiempos de desarrollo.

El FUD ya esta hecho y con la popularidad de Java en juego veremos si es suficiente la buena voluntad y lanzamientos más frecuentes, por mi parte me encanta el valor agregado que genera escuchar a la comunidad :D.

Streaming gratuito de LinuxCon/OpenCloud 2012

¿Eres un amante del Open Source pero tu salario no te permite ni comprar un McFlurry?, ¿Quisieras saber que pasa en uno de los mayores eventos relacionados a Linux en el mundo pero vives en tangamandapio?, ¿La migra no te deja entrar a otros paises porque tienes cara de traficante? este post puede ser para ti.

Del 29 al 31 de agosto como muchos de los Linux followers ya saben se llevara a cabo la Linux Conference paralelo a la OpenCloud en San Diego, CA, USA, y este año nuevamente tenemos a nuestra disposición streaming gratuito del evento.

Basta con inscribirse en esta pagina, y no esta de más revisar el horario para ver cuales presentaciones califican como imperdibles.

TuxOnIce con particiones LVM encriptadas con cryptoLuks en Funtoo

Una de mis motivaciones para utilizar TuxOnIce es la posibilidad de hibernar hacia un archivo común a diferencia de swusp (la hibernación de serie en el kernel Linux), pero con mi reciente migración hacia LVM+cryptoLuks ninguna de las configuración que realizaba funcionaban. Aunque con algunas desventajas de rendimiento, el uso de sistemas de archivos encriptados es casi obligatorio en equipos moviles y en Funtoo la tarea es practicamente automatica con una guía detallada en la Funtoo wiki con ayuda de better-initramfs que es compatible de serie con TuxOnIce.

Sin entrar en detalles el procedimiento basico de hibernación es generar una imagen de lo que se encuentra actualmente en la memoria RAM y dependiendo de la configuración de TuxOnIce esta es almacenada en una partición swap/un swapfile/un archivo común y esta imagen es restaurada al iniciar el sistema nuevamente. Sin embargo luego de comprobar que podía arrancar desde rootfs encriptado recordé que en el orden normal de arranque la restauración de la imagen hibernada tiene prioridad incluso sobre initramfs y  me encontré frente al dilema: ¿Y ahora como le digo al Grub que busque la imagen de TuxOnIce si rootfs esta encriptada, swap también y se desencriptan con un prompt de initramfs?

Luego de un par de horas de frustración minutos me encontré con la solución, los propios parches de TuxOnIce toman en cuenta este problema y habilitando la opción CONFIG_TOI_IGNORE_LATE_INITCALL el kernel es configurado para  esperar por la ejecucion de initramfs antes de intentar restaurar una imagen de TuxOnIce. Esta opción se encuentra en:

Power management and ACPI options                                                                                                                                                                                                                                │  
  │       -> Enhanced Hibernation (TuxOnIce)
  │             -> Wait for initrd/ramfs to run, by default

La documentación de la opción de compilación también indica que este parametro puede ser sobreescrito directamente en el Grub utlizando la opción:

toi_initramfs_resume_only=1

Luego solo queda recompilar el kernel o agregar la opción toi_initramfs_resume_only y preparar el Grub con la opción tuxonice y el valor resume= en los parametros de arranque del grub como indica el manual de better-initramfs lo cual es bastante sencillo utilizando boot-update. Despues de 7 hibernaciones exitosas puedo decir que funciona muy bien.

 

[Quick-Tip] LaTeX Error: File `titlesec.sty’ not found en Gentoo

Luego de una actualización de rutina (emerge world+emerge depclean) mi editor favorito Tex me presentaba el error «! LaTeX Error: File `titlesec.sty'» al compilar algunos articulos. Luego de revisar dependencias note que TeXstudio solo depende del paquete virtual virtual/latex-base para marcar la dependencia de LaTeX.

La mayoria de usuarios en Gentoo utiliza texlive como su distribución Tex y habiendo migrado entre varios editores supongo que mi sistema quedo con un paquete huérfano que incluía titlesec.sty y que fue eliminado con emerge depclean solo quedándome con texlive-core y mucha frustración por no poder compilar mis archivos Tex.

¿Solucion?

La mayoria de blogs recomienda instalar texlive completo sin embargo en Gentoo basta con texlive-latexextra y con un

emerge texlive-latexextra

El problema esta resuelto. ¿Porque no instalar todo texlive?, Pues basicamente porque la combinación texlive-extras+texlive-core es más pequeña y el control atómico de paquetes y dependencias en Gentoo es maravilloso.

Nace la Red Internacional de Software Libre

Esta es una copia textual del texto disponible en: Software Libre Argentina. Lo publico para ayudar a su difusión entre las comunidades de Software Libre de América Latina, tuve la oportunidad de verlo en el FISL13, esperen el sitio pronto en risol.org 😀
———–
En el marco del Foro Internacional de Software Libre en su 13a edición en Porto Alegre, Brasil, participantes y representantes de comunidades y grupos de diversos países acuerdan la construcción de una Red Internacional de Software Libre. Entre los antecedentes del presente acuerdo se encuentran convenios previos tales como los firmados en FISL 2004, CONSEGI 2008 y Acuerdo Atlántico (FISL 2011).

Entendiendo que la defensa del Software Libre debe ser a nivel internacional y que el avance de políticas en su favor puede ser amenazado por distintos escenarios -como se evidencia por ejemplo en el caso paraguayo- la Red se propone los siguientes objetivos:

1) Afianzar las relaciones entre sus miembros para fortalecer la defensa de las iniciativas de Software Libre en sus países y regiones, a través de acciones globales coordinadas para apoyar las locales.

2) Difundir y defender al Software Libre como componente medular de la Soberanía Tecnológica.

3) Compartir experiencias, prácticas y documentación en el ámbito del Software y Conocimiento Libres, fortaleciendo y fomentando el trabajo local de sus miembros en cada uno de sus ámbitos de acción.

4) Generar y mantener una agenda estratégica de trabajo de La Red con el fin de expresar a través de diferentes voces, los objetivos consensuados.

Para ello se propone, al corto plazo, desarrollar un plan de acción conjunto para el cumplimiento de los objetivos compartidos y establecer los mecanismos y espacios más adecuados para el trabajo concreto y localizado.

Convocamos a todos los actores comprometidos con el Software Libre a integrarse a esta Red y trabajar en sus objetivos fundacionales definiendo las acciones futuras

Firmantes:

ASL (Asociação Software Livre Brasil)

SoLAr (Software Libre Argentina)

Asociación Formación, Cultura y Solidaridad, – Iniciativa Focus, España

CISOL (Congreso Internacional de Software Libre), Zacatecas, México

CESoL (Centro de estudios de Software Libre), Uruguay

CTL (Centro de tecnologías libres), Chile

SLE (Software Livre Educacional), Brasil

CADESOL (Cámara de Empresas de Software Libre), Argentina

COSIT AC, México

COSOLIG (Comunidad de Software Libre Garcilasina) Univeridad Inca Garcilaso de la Vega, Perú.

COS (Centro Open Source), Perú

SLGT – (Software Libre Guatemala)

MISOL (Misiones Software Libre), Argentina

Cinco años (+/- 3 meses) del Abismo de Tux

Eran otros tiempos en el 2007, estaba en mi tercer año de universidad, usar twitter era realmente hipster , solo los gringos usaban Facebook y en Guatemala lo que estaba de moda era espiar a tu amor imposible en hi5 y nacieron blogs hasta para que el perro de la vecina informara al mundo el color de los calzones del día (recuerdan las reuniones en Pizza Hut?).

De manera muy personal y sin datos en mano puedo conjeturar que muchos notaron la debacle de la civilización blog a partir del 2009 y análogamente a lo sucedido con los tripulantes del arca en Rage, muchos de nosotros logramos saltar a la nueva era blog, cambiamos nuestras «editoriales» a  temas nuestros intereses donde los burdos intentos de crear el Gizmodo chapín fueron muriendo (si, yo también lo hice), aceptamos que tumblr desbancara a wordpress con los aficionados a post cortos, fotoblogs y copiar contenido.

Ya que no tengo una motivación en particular para justificar esta reflexión en el 5to. aniversario y no en el 6to. o 4to., solo diré que el 5 me parece un número bonito y que según el teorema de Abel-Ruffini la ecuación de quinto grado es la de menor grado que no tiene fórmula para su resolución (bravo por ellas!)

¿Posts más visitados en estos 5 años?

Aunque perdí casi año y medio de estadísticas en mi afán de no depender de servicios de terceros U_U los lugares más visitados al día de hoy son:

1- El abismo de tux: Me asusta que aun hay gente que entre directamente a la pagina principal, pero eso dicen las estadísticas :O.

2 – Java+Puerto serial y paralelo (parte 1): Irónicamente la parte 2 es la más fácil, pero supongo que ha sido un buen punto de entrada … o al menos eso espero.

3 –Ingenieria en Sistemas en la USAC (parte 1 – como funciona todo): Post sarcástico de tres partes con mis vivencias en la Universidad de San Carlos, uno de mis favoritos de todos los tiempos si me lo preguntan, dicen que hasta doña Delia lo leyó y se cago de la risa.

4 – DOSbox y Prehistorik 2 (más vueltas al pasado): Fans de prehistorik 2 que viejos estamos, ¿alguno de ustedes consiguió el 100% en todos los niveles?

5 – Java+Puerto paralelo(parte 2): Como supuse muchos entran por la parte 1 y terminan en la 2 porque la solución es más trivial.

5 – Manual de instalación Gentoo Facil: Un manual que fue popular en la universidad porque en los cursos de sistemas operativos una de las tareas más tradicionales es explorar la construcción de un sistema GNU/Linux utilizando Gentoo, un día de estos revisare si todos los pasos son validos aun.

7 – Mientras más conocemos el mundo, más complicado es: Este si no lo entiendo, fue una simple anécdota de un día que tuve que visitar un café Internet y me fui a mi casa con la paranoia de que la computadora tenia un keylogger y que habían cambiado mi blog por fotos de chinitas en pelota, tal vez llegan a través de Google images buscando imágenes del mundo o algo así.

8 – PostgreSQL vrs. Oracle: Cuando hice este post me documente con fuentes de terceros, ahora ya trabaje más a fondo con ambos RDBMS en instalaciones con millones de transacciones al día, me sigue gustando más PostgreSQL (aclaro, Oracle no es malo).

9 – La facultad de ingenieria USAC es presa del software propietario: Una reflexión que dio de que hablar respecto al burdo examen de «computación» que se realizaba (se realiza aun?) en la admisión a la USAC, aunque mi critica va enfocada a la evaluación exclusiva de Software propietario en los comentarios se evidenciaron muchas de las motivaciones a solo evaluar ofimática que sigo sosteniendo que no es computación, yo seguro lo pierdo porque llevo varios años usando OpenOffice/LibreOffice.

10 – Cyanogenmod 7 y Google Apps para paises con market restringido: El más nuevo de todos, básicamente explico como usar Market Enabler para saltarse la discriminación racial por ip que Google tiene en el Android Market para instalar las Google Apps.

¿Post favoritos?

No recuerdo todos mis posts así que no puedo tener favoritos, ¿alguno de los que aun comenta en el blog tiene alguno en especial?.

¿Otros datos?

El ranking más creíble que se utilizaba en su momento era el de blogalaxia, alguna vez llegue al top 10 de Guatemala y aunque nunca competí por el primer lugar (porque nunca fue ese mi objetivo) es un buen lugar para un blog que habla de disparates, ingeniería en sistemas de la San Carlos, tecnologías libres, tips en Linux, si se dan cuenta todos son públicos objetivo reducidos. También acabo de notar que los que están al tope de la lista tienen posts en el 2012 (estan vivoooos!) y el que más bloguea es Luis Figueroa de Carpe Diem con temática libertaria, me pregunto si entre los primeros 100 habrá alguna contraparte marxista o si ellos se quedaron eternamente enamorados de «bloguear» en las paredes -coches-.

¿Algunas anécdotas?

  • Me entrevistaron en la radio por mi critica a la iniciativa de ley del cibercrimen, todo inicio como un post cómico y motivo la socialización de la iniciativa de ley hasta en la universidad.
  • Salí en la prensa con una critica a las religiones, algunos puntos son validos aun y en otros mi opinión cambio un poco, sin embargo nunca me volví ateo.
  • Recibí amenazas un par de veces por lo que publicaba, no se alarmen era gente que perdió cuando fui instructor auxiliar.
  • De los correos que recibo regularmente la mayoría son con preguntas de Gentoo y la carrera de sistemas en la USAC, no me molesta contestar ambos porque ayudo a Gentoo y a los pobre chavitos que cierta secretaria recibe con mirada inquisidora.
  • Comparto el hosting con la comunidad shekalug.
  • En mis anteriores trabajos presente mi blog como prueba que se administrar Linux, siempre funciono.
  • Todos mis post tienen errores de redacción, lo se.

¿Planes para el futuro?

¿Aun siguen ahí?, pues seguir pagando el hosting (se aceptan donaciones) y seguir publicando cuando encuentro algo interesante, el blog se ha vuelto más técnico y el lado personal lo mantengo ahora en mi blog en ingles, aun no uso servicios de terceros para mis imágenes y sigo manteniendo mi log de imagenes aleatorias, he pensado en bloguear en portugués pero ya tengo suficiente trabajo. Cuando llegue a viejo si no me mata antes una enfermedad, un marero o más recientemente un vendedor de droga de una favela, mi versión de memorias de vida sera este blog, ha sido divertido.

#FISL13 Dia Final -Porto Alegre y Risol-

Luego de una salida nocturna por Porto Alegre mi plan para mi ultimo día en la ciudad era simple: conocer la ciudad. Como cualquier ciudad grande en el mundo se le cataloga de peligrosa pero se podría decir que fui entrenado en Guatemala y se tomar mis precauciones muy bien, demasiado bien para mi gusto.

Aunque vivo en el estado de Rio Grande do Sul, solo había estado en Porto Alegre un par de horas y no conocía mucho, entonces busque en la siempre confiable Wikipedia  donde me llamo la atención el parque Farrouphilha. Un par de búsquedas más y como en los viejos tiempos tome mi mochila y decidí explorar confiando en el transporte publico de Brasil que puede ser catalogado como incomodo si se le compara con algún sistema Europeo pero como muy bueno y organizado si se toma como punto de comparación cualquier sistema de Latinoamerica, afortunadamente no me perdí y me pude guiar con mi siempre confiable GPS y una aplicación de paradas de bus.

Al llegar al parque fue evidente que como muchas cosas en este estado, la ciudad tiene aires europeos y me encanto que a pesar del supuesto peligro, la ciudad siga teniendo gente en las plazas publicas para hacer ejercicio, juntarse con los amigos y compartir un chimarrão sin necesidad de atrincherarse en shoppings, mis padres me comentan que así era Guatemala hace muchos años. El parque es complementado con un mercado de artesanías y productos diversos que de seguro volveré a visitar cuando sea el tiempo de comprar recuerdos para Guatemala y luego de darme cuenta que me había quedado sin dinero visite uno de los campos de la UFRGS para buscar un cajero, dar un rápido almuerzo y seguir mi recorrido, solo que en este punto me di cuenta que había un tour por la ciudad por aproximadamente $7, una ganga si tomo en cuenta que me hubiera gastado más dando el recorrido en el transporte publico sin el valor agregado de tener guiá turístico.

El recorrido duro más o menos dos horas donde es evidente  la mezcla de elementos Españoles, Portugueses y Alemanes propios del estado, complementado con la historia de la ciudad y los puntos arquitectónicos para hacer turismo, los estadios del Gremio y del Inter(mundialista), la calle más bonita del mundo y casualmente la puesta de sol en el «rio» Guaiba que según dicen era una atracción y yo me entere cuando ya la estaba viendo. El único problema del Tour es que no regresaba al punto original por la hora que lo tome y mi teléfono se estaba quedando sin batería así que use el viejo sistema de hablar con la gente, preguntar donde estoy (mi portugués ha mejorado mucho y he perdido el miedo a hablar) y después de 3 cuadras a pie y un bus regrese a la PUC-RS, local donde se llevo a cabo el FISL.

Creación de Risol

Al llegar al FISL me acerque a los stands y pude participar en la discusión final para la conformación de la Red Internacional de Software Libre, mi aporte no fue mucho porque me había perdido el debate previo y no vi a tiempo la invitación que se me hiciera vía identi.ca para participar. Acá aplique el «más vale tarde que nunca» y creo que muchos asistentes en el evento coincidimos en el hecho de que difundir el Software Libre fuera de las esferas técnicas necesita mayor integración regional por la percepción de importancia que este tipo de uniones puede generar. Luego de esto se procedió a dar el cierre al FISL y dar la lectura de la creación de la Red Internacional de Software Libre en portugués y español con participaciones de gente de España, Mexico, Peru, Argentina, Brasil, Uruguay y Guatemala :D.

Consideraciones finales?
Me encanta ese termino, aprendí a utilizarlo cuando en un paper no tengo evidencia suficiente para afirmar algo. Sin embargo dude en publicar algunas de las cosas en estos cuatro post por el miedo a ser acusado de malinche como bien describe Adin en su blog. Por lo que a mi concierne creo que viví uno de los «boom» de las comunidades de Software Libre y Cultura Libre en Guatemala, y que cuando di el paso hacia un lado estaba comenzando cierta antipatía por el tema principalmente motivada por luchas internas entre gente que quiere hacer las cosas de distintas formas. Luego volví a involucrarme en el tema con Guatejug y pude tener una perspectiva más exteriorizada del asunto y puedo exponer cuatro ideas:

  • Al movimiento de Software Libre en Guatemala le falta renovación, muchos de los que lo integramos 4 o 5 años atrás, ahora ya estamos viejos y a veces es evidente la falta de manos para ayudar, posiblemente se generaron muchos nuevos usuarios de Software Libre pero gente que este dispuesta a dar de su tiempo a cambio de difundir las ideas de Cultura Libre no ha sido tanta.
  • Falta cierta tolerancia, la «lucha» entre Free Software y Open Source siempre va a existir, sin embargo no todo tiene que terminar en comunidades partidas en dos. Por algunas polémicas que han sido descritas en los canales de IRC que frecuento he podido notar que algunos desacuerdos se han llenado de ataques personales los cuales desmotivan a cualquier persona con deseo de aportar, no tengo forma de describir como esto se origina porque incluso yo me vi involucrado en algunos de estos problemas :D. Sin embargo tengo una idea del asunto y mi opinión es que falta convertir muchas «reglas y convenciones» de conocimiento tácito a explicito. Por ejemplo el uso de imágenes en publicidad, donde los viejos asumen que todo debe ser generado con Software Libre pero nadie se lo ha indicado a los nuevos y la pelea que sigue a este proceso polariza a los miembros de las comunidades tecnológicas. Se gastan energías innecesarias en las mismas peleas de siempre y se van terceros involucrados con algo que pudo estar bien especificado desde el inicio, no es lo mismo lanzar una convocatoria estableciendo requisitos y dando motivos validos y elocuentes de porque ciertas cosas son de esa forma a hacerlo con un «aahhh porque sos tan mula, eso no se hace así desde que los dinosaurios tenían un show con un bebe rosado».
  • Y por el otro lado tambien tengo que decirlo hay gente que es bastante intransigente cuando se le indica que algo no esta bien con la fundamentación suficiente y en lugar de aceptar ideas probadas como suyas simplemente inician cruzadas separatistas creando su comunidad «más cool y con menos calorías», creo que esto también es parte de nuestros genes o nuestra forma de vida como Guatemaltecos porque se ve a diario en Universidades, Iglesias y Partidos Políticos, preferimos dividirnos antes que negociar puntos en común para el beneficio de todos. Personalmente me considero alguien intransigente en ciertas ideas e intolerante en ciertos aspectos (como escuchar reggaeton) pero he conocido gente que bien podría fundar la iglesia de las cabezas duras creando su propia comunidad de usuarios Linux solo porque en otra le aconsejaron respetar ciertas normas de netiqueta tan comunes en Internet.
  • Existe cierta falta de organización. La creación de SLGT fue un paso muy grande y sin embargo falta una estructura más formal para hacer propuestas más serias, he visto varios esfuerzos independientes que su problema ha sido ese, ser muy independientes y aislados. Sin datos y casos de estudio no se pueden realizar afirmaciones de carácter concluyente e incluso esos estudios se podrían generar desde la academia, pero se vuelve al mismo problema de estar unicamente fundamentados en pura pasión por el Software Libre que si bien es cierto es el elemento más importante, debo decir que nunca fue suficiente porque no garantiza la continuidad de los esfuerzos. Espero que algún valiente considere esta idea y sobre todo espero que los detractores a esta idea dejen trabajar al que lo haga y no lo desmotiven con «eso no funciona en Guatemala», porque son ideas que han dado resultado en varios países y realidades socioeconomicas, piénsenlo.

#FISL13 Dia 3 -Algunos consejos para .gt-

Tercer y casi  ultimo relato de mi primer FISL, luego de un inicio bastante impresionante y de conferencias bastante constructivas, estaba listo para el día que participaría en el Workshop científico del evento, sin embargo la presentación estaba casi lista así que decidí nuevamente asistir a conferencias de mi interés.

Presentaciones.
Plasma Active — Freeing the Device Spectrum – Sebastian Kügler
Para todos aquellos que han soñado con utilizar KDE hasta en su tablet (soy usuario de Gnome aclaro) Sebastián presento los avances y de como plasma esta siendo portado hacia otros dispositivos de la mano de Qt, al igual que Mozilla con su Boot to Geecko, fue resaltado el hecho de que el proyecto no nace con el objetivo de destruir/competir contra iOS y Android sino más bien aportar un sistema operativo realmente controlado por una comunidad independiente de desarrolladores y no por una comunidad como la de Android donde las cosas se hacen más al estilo «Google libera cuando quiere». Ademas de esto fue presentada una demo de como seria una tablet con plasma en ejecución, me pareció bonita la verdad, pero si me lo preguntan aun tiene más apariencia de computadora de escritorio, supongo que por el tema de Qt que se utilizo en la demo.

A Content Management Primer: What I Wish I Knew – Richard Esplin
Como parte de mis desarrollos estaba interesado en conocer más de CMS del tipo de Alfresco y que mejor charla que la que te puede dar un desarrollador de Alfresco (lo supe hasta que estaba adentro xD), en esta charla fue expuesto el concepto básico de Alfresco como un repositorio de contenidos y como el estándar CMIS facilita la integración de front end independientes con Alfresco, las ventajas de utilizar un administrador de documentos probado y escalable frente a una implementación propia desde 0 (hace sentido si pensamos como confiamos en DMBS relacionales y no implementamos nuestro propio sistema de almacenamiento de datos en archivos planos). Luego de un par de demostraciones integrando Alfresco mediante CMIS con Java y Python, vino en tiempo de preguntas y respuestas donde presente un par de dudas que me surgieron en la charla y hasta un libro gane por mi participación :D.

OSS and Economic Development: A World Tour of Government-Centric Ecosystems – Deborah Bryant
De nuevo una charla interesante mas comunitaria que técnica, estuve a punto de irme y sin embargo fue muy bueno quedarme, en esta charla Deborah explicaba como fue conformada la Open Source Initiative, un poco de historia, la misión que tiene la OSI y las diferencias frente a puntos de vista mas puristas como la FSF y como organizaciones independientes pueden ser beneficiadas de pertenecer a la OSI, en esta charla aproveche para preguntar como en otras realidades más conservadoras y sin exposición mundial -como la Guatemalteca- organizaciones de Software Libre pueden ser beneficiadas y tomar ventajas del trabajo de la OSI ademas de pedirle algunos consejos para ser trasladados a la gente que trabaja en Guatemala por el Software Libre, aunque el tiempo de preguntas era corto ella quedo interesada y pudimos hablar después respecto del tema, que bueno que no he olvidado mi ingles al 100%.

Luego de salir de la charla volví a encontrarme con la gente de Mexico para cambiar más ideas, Farid Bielma me comento sobre el Congreso Mexicano de la Sociedad de la Información y me pidieron promoverlo en Guatemala (tarea pendiente BTW). Luego del almuerzo en el área de conferencistas pude conversar más tranquilamente con Deborah Bryant y conversar sobre los problemas que se presentan en países más pequeños como Guatemala en materia de grupos independientes de tecnología interesados en realizar un impacto más grande en la sociedad de la información y no solo en generar nuevos usuarios de Software Libre. Luego de intercambiar ideas y conversar de como las organizaciones tecnológicas necesitan de heterogeneizarse y ser conformadas no solo por gente de tecnología y como la OSI puede ayudar a estas organizaciones. Entre los consejos recibidos fue de nuevo la inminente  nececidad de formalizar la organización de Software Libre en Guatemala como primer paso para hacer cosas más grandes, ademas de sustentar las propuestas con estudios de caso y datos concretos como se ha hecho en otros países, es genial ver como esta gente estuvo en el mismo punto que muchos de nosotros como entusiastas de Software Libre y como lograron crecer.

Para este entonces, estaba listo para participar en el Workshop presentando parte de mi trabajo de graduación en la USAC y con esto terminaba el Workshop para dar paso a una presentación invitada, mis 15 minutos de fama literalmente :D.

Radar Parlamentar – Analisando votações parlamentares com dados abertos -PoliGNU
Algunos miembros del grupo de usuarios del politécnico de la universidad de São Paulo hicieron una introducción a su herramienta denominada Radar Parlamentar, según los autores todo comenzó al darse cuenta de la dificultad de analizar los datos producto de las políticas de datos abiertos del gobierno de Brasil y como esta disponibilidad no es suficiente para ofrecer resultados concluyentes. Basados en estos datos ellos desarrollaron una herramienta para la creación de un mapa político basado en la participación parlamentar (votación y aprobación de leyes) y como la herramienta sin un supuesto inicial presenta los mismos resultados que toda la gente en Brasil «supone» respecto a la ideología de sus partidos, acá solo pude imaginarme como quedaría el mapa en Guatemala y sobre todo como quedaría si se toma en cuenta un análisis histórico con la mutación de partidos tan común. Lo más interesante de esta herramienta es que fue sustentada en matemáticas y vectores sin un proceso de investigación formal ya que nació, creció y se formo dentro de las listas de usuarios del grupo y como con sugerencias de miembros multidisciplinarios se pudo crear la herramienta, todo un ejemplo de un modelo de investigación científica abierta, las ovaciones fueron merecidas por cierto.

Luego de esta conferencia se realizo la premiación a los trabajos científicos donde un miembro del mismo programa de maestría en el que estoy gano el primer lugar con la creación de una herramienta para refactorización de código OpenMP en Eclipse, se disponibilizaron todos los papers de una forma gratuita y bajo licencia libre

Y bueno otro día del FISL había terminado y estaba listo para asistir a un evento más social que queda fuera del alcance de estos FISL posts :D.