martes, mayo 05, 2009

Una de cal y una de arena

En estos días hubieron varias noticias que creo van a tener trascendencia en el mundo tecnológico en el que vivimos y que nos da de comer.
Por un lado, la compra de Sun por parte de Oracle me preocupa bastante, ya que como programador Java y con años de trabajo invertidos en esta plataforma, es inquietante que pueda pasar con la plataforma en lo sucesivo. Oracle no se caracteriza por trabajar muy bien con el resto del mundo.
Por el otro, estos días se dice que Linux llegó al 1% de participación del mercado.... Es poco no? Vamos a ver cuanto se tarda en llegar al 5%.
Les comparto dos links interesantes:

miércoles, marzo 11, 2009

Problema con Java y campos float en Oracle 10

Me encontré con un problema realmente raro estos dias. Algunas partes de nuestra aplicación dejaron de grabar la parte decimal de los números en la base de datos, luego de actualizarla a Oracle 10.
Despues de mucho buscar, encontré que el problema se producía cuando se ejecutaba statement.setFloat() o statement.setObject() con un float. Reemplazándolo con statement.setDouble() todo funciona correctamente.
Alguien más tiene un problema parecido http://clint-hill.com/2008/12/19/when-floats-dont-float/ y lo explica mejor.

domingo, marzo 08, 2009

Como saber que archivos tienen un emblema en Gnome

Para usuarios de Linux y Gnome
Hace rato que quería hacer un pequeño programita que me devuelva una lista de los archivos a los cuales les apliqué un emblema con Nautilus.
Es muy simple:
Aca devuelvo una lista de los que tienen el emblema "important"



import os
import xml.dom.minidom

# cargo una lista con los archivos de metadata de nautilus
# cada archivo se corresponde con un directorio
def getFiles(parent, metadataFileList):
arqs = os.listdir(parent)
for a in arqs:
if os.path.isdir(parent + "/" + a):
getFiles(parent + "/" + a)
else:
if a[0:4] == "file" :
metadataFileList.append(a)

# obtengo el nombre real del directorio
def getRealPath(fileName):
fileName = fileName.replace("%2F","/")
fileName = fileName.replace("%2520"," ")
# le quito el file:// al principio y el .xml al final
return fileName[7:-4]


# busco los archivos con el emblema
def searchFilesWithEmblem(metadataFileName,emblem):
fileList = []
domMetadata = xml.dom.minidom.parse(metadataFileName)
for fileNode in domMetadata.childNodes[0].childNodes:
if fileNode.nodeType == fileNode.ELEMENT_NODE and fileNode.localName == "file":
for child in fileNode.childNodes:
if child.nodeType == child.ELEMENT_NODE and child.localName == "keyword" and child.attributes["name"].value == emblem:
fileList.append(fileNode.attributes["name"].value)
return fileList

# Leo variable de entorno
myhome = os.environ.get("HOME")
emblem = "important"
metadataFileList = []
metadataFilesPath = myhome+"/.nautilus/metafiles"
getFiles(metadataFilesPath,metadataFileList)
for metadataFileName in metadataFileList :
realPath = getRealPath(metadataFileName)
filesWithEmblem = searchFilesWithEmblem(metadataFilesPath+"/"+metadataFileName,emblem)
for fileName in filesWithEmblem:
print realPath+"/"+fileName


sábado, enero 17, 2009

Vacaciones en Uruguay!

Estuvimos una semana de vacaciones con Marcela en Uruguay.
Nos hospedó nuestro amigo Rodolfo, quien está poniendo en marcha con algunos amigos el "Pereira Bar"
Con Marce la pasamos bárbaro, vagueando bastante. Estuvimos haciendo chistes acerca de escribir "Como tener un matrimonio y sobrevivir" o algo por el estilo.
Recorrimos un poco, escuchamos algunos ensayos de murgas y comparsas y nos pegamos una escapada hasta el Chuy.
A mi me sirvió para desconectarme bastante, al tercer o cuarto día ya estabamos hablando de ideas para llevar adelante este año...

domingo, octubre 26, 2008

Fin de una etapa

Hace una semana, tuvimos una Asamblea en nuestro Distrito Scout y se eligió un nuevo Director. Asi finalizó mi breve servicio en el cargo que llevé durante un año.
Retrospectivamente, hay cosas que hubiera hecho de otra forma, pero francamente, a veces hay que intentar y algunas cosas salen y otras no.
Aunque estuve un año com Director, completando el mandato de Marcelo, siento que se completó un ciclo que empezamos hace seis años, cuando Marcela comenzó como Asistente de Programa y armamos el equipo de programa con Alicia, Walter, Marcela y yo. Luego contamos con la luz de Lilian, la fuerza que aportaron Noemi, Gogui, Edith y Daniel, y este año el impecable y callado trabajo de Adriana.
En estos seis años hicimos muchas actividades de las cuales estamos orgullosos, una Apertura de Año con todo el distrito acampando, otra en la rivera,otra invadiendo Quilmes dando a conocer las 100 años, la de este año del Señor de los Anillos, la cantidad de módulos de capacitación que organizó el distrito y puso al servicio de la zona, o los talleres de capacitación continua.
Volviendo a este año, todos los que nos conocen, saben que no hubiera podido hacer nada sin Marcela, mi compañera de aventuras dentro y fuera del Movimiento, y yo tambien lo se.
Por todo esto, es que hoy solo puedo terminar con una palabra... GRACIAS

Bancarrota de conciencias

Estas semanas por todos lados se habla de la crisis financiera y los estados del primer mundo, comenzando por EEUU, aplicaron medidas urgentes en las que pusieron fortunas para rescatar a los banqueros del desastre que provocaron.
EEUU autorizó un rescate de 700bn u$s
Si esto no fuera suficientemente exasperante, lo podemos comparar con las cifras que serían necesarias para llegar a los Objetivos del Milenio
  • $16bn por año para proveer educacion a todo el mundo
  • $50bn por año para proveer salud a todo el mundo
  • $50bn por año para ayudar alos paises del 3er mundo a adaptarse al cambio climartico
  • $200bn por año para alcanzar los Objetivos del Milenio
  • $30bn por año para acabar con el hambre
  • $50bn por reducir a la mitad la cantidad de niños que mueren por pobreza
Sin palabras....

Mas informacion

jueves, septiembre 25, 2008

Feliz Cumple Fedora! Hola Gnome 2.24!

Hoy es un dia de fiesta, que tenemos los amantes del software libre cada 6 meses. Una nueva iteración de mi escritorio favorito Gnome.Mas informacion
También se cumplen 5 años del comienzo del proyecto Fedora.
Fedora es un proyecto que siempre está avanzando sobre los límites de las posibilidades del software libre, y a veces estar en la avanzada es como estar de campamento. Uno no tiene todas las comodidades pero vive experiencias muy interesantes. Tiene una comunidad que crece todo el tiempo y en algun momento voy a encontrar la forma de participar activamente para agradecer todo lo que recibo de ellos.
Por ahora, solo Muchas Gracias!!!

lunes, septiembre 15, 2008

Java 1.6 en Linux bloquea teclado

Estoy usando mi IDE favorita para Java IntelliJIDEA, pero desde hace unos dias, y coincidiendo con cambio de máquina y la instalacion de Fedora 9 me estuvo enloqueciendo un bug, que en determinadas situaciones bloqueaba completamente el teclado. No se podia desbloquear de ninguna manera y habia que resetear la maquina! Si hubiera querido que la máquina se me colgara, usaria Windows! :)
Finalmente encontré una página http://www.jetbrains.net/jira/browse/IDEA-15434 donde decía que era un problema con el Java 1.6 y con un link para bajarse el IntellijIDEA 7 compilado con java 1.5.
Problema resuelto

Cronica de las colonias Galesas

Terminé de leer la interesante "Cronica de las colonias Galesas de la Patagonia", escrita por Abraham Matthews, uno de sus primeros pobladores. Es muy interesante, más alla de las penurias que padecieron y como se las arreglaron para sobrevivir y prosperar, ver que ya en esos momentos habia problemas con la inflación en la Argentina o como la exportacion de cereales hizo que los precios de los mismos fueran influidos por los valores internacionales.

lunes, septiembre 08, 2008

Firebird SQL y Fedora 9

Hoy tuvimos problemas esporádicos de acceso a la base de datos en el servidor nuevo donde tenemos instalado Fedora 9

El error que daba era:
connection rejected by remote interface, error code: HY000

Despues de varias pruebas, la solucion fue desinstalar la version FirebirdCS e instalar la version FirebirdSS
Las dos tienen un funcionamiento distinto, en cuanto a como manejan threads y rocesos y la primera evidentemente estaba experimentando una incompatibilidad con el sistema operativo.
La version actual es 2.1.1
Despues de instalar el rpm, hay que setear el password con /opt/firebird/bin/changeDBAPassword.sh
Esta version de la base no necesita el paquete xinetd por lo que lo desinstalé.
No vi en ningun lado una recomendacioń de que version usar en cada sistema operativo.