Desde ayer, que estoy en cama con fiebre y molestia de garganta. Me ha servido para trabajar y ver televisión. Me ha tocado ver todos los noticiarios y los programas con noteros. Y una cosa me ha llamado la atención:
Anoche (lunes) hubo algunos robos en la capital y se vio reflejado en todos los noticiarios como una “ola de asaltos en el sector oriente“. Bueno, esto no me llama tanto la atención…. (robos hay en todas partes, una cosa es que salgan en los medios y otra es que los denuncien) si no que el “plan de contención para estos”.
¿Que le parecen estas diferencias? ¿A mi? Una burla para todos los que no tenemos suficientes recursos para “comprar” esa seguridad. Es más, no entiendo el porque existen estas diferencias. La única respuesta que le encuentro a esto es que el plan cuadrante de “allá” es más organizado que los de los otros sectores…. ahora… ¿por qué pasa eso?

Trabajando en mi proyecto de título, me tope con un problema. Contextualizando un poco el problema:

  • una tabla con un campo serial (autogenerado).
  • una tabla que necesita como llave foranea, el campo serial anterior
  • para ingresar valores a las tablas anteriores, ambas se hacen a través de funciones de postgres.
  • jdbc de postgres
  • La interfaz de jdbc provee el método getGeneratedKeys() que debiera entregar un ResultSet, con todos las llaves que se crearon. Después de un (buen) rato viendo que porque no funcionaba y buscar el problema en mi código dí con las primeras luces de mi problema:

  • La versión que estoy ocupando del jdbc es la última a la fecha 8.3-603 no soporta este método y lamentablemente al ejecutarlo no tira una exception gritando acerca de esto, como al parecer lo hacia en versiones anteriores.
  • Obviamente muy empantanado y sin mucho tiempo de leer la documentación recurrí a la lista en español de postgresql donde me ayudaron a reescribir la función en cuestion, quedando de la siguiente manera:


    CREATE OR REPLACE function ingresarVoucherEntrada( _idEmpleado "int4", _idProveedor "int4", _fechaEmision"date", _documentoAsociado"int4")
    returns int as $$
    insert into voucherEntrada (idEmpleado, idProveedor, fechaEmision, docuementoasociado)
    values ($1, $2, $3,$4);
    select currval(‘voucherentrada_idvoucherentrada_seq’)::int;
    $$ LANGUAGE ’sql’ VOLATILE;

    La parte en negrita es lo que hace la magia. Devuelve un entero, que es el entero que tiene la llave que me interesa recuperar. Y ¿cómo la recupero? Seleccionando el “valor actual” de la secuencia del “voucherentrada_idvoucherentrada_seq”.
    Esta última secuencia (sequence) se genera automáticamente al definir un campo como serial.
    Luego, mi método que ocupa esta función, tiene que devolver el identificador del registro que se ha creado recientemente y se lo paso como parámetro al método que llena la tabla usando el identificador de la primera tabla.

    es importante en esta profesión centrarse en el problema y no irse por las ramas, si sabéis que algo soluciona vuestro problema, a por ello, no os pongáis a mirar y mirar y mirar, porque el tiempo se os va a ir y la fecha de entrega de un proyecto suele ser fija. Somos ingenieros y nos gusta aprender, pero no nos podemos pasar el día aprendiendo sin dar un resultado porque si no no seríamos ingenieros, seríamos científicos.

    Visto en un blog, mientras buscaba más soluciones para algo que ya tengo casi resuelto… y que aplica para muchas cosas… a menos que uno sea genio (el 99.999% de los casos).

    Bueno… una estafa o mi hermano y yo tenemos una comprensión de lectura que apesta. En febrero me llegó el siguiente mensaje:

    sms0

    sms1

    El cual transcribo a continuación:
    “Desde 01/03/08 navega por i-shop y WAP desde tu EPCS por solo $250 la sesion de 2MB, tras ellos se cuenta otra sesion. Mas info en www.entelpcs.cl o en el *100″ (Lo mismo que intente capturar en las fotografias adjuntas).

    El cuento es que hoy por primera vez ocupe el servicio y después de probar algunas conexiones (a http://m.google.cl, al sitio de ishop de EntelPcs, a Samsung Fun Club y a uno para bajar juegos para mi Samsung C406.)
    Obviamente no alcance a descargar 2 MB en estas conexiones. Al rato reviso el saldo y me faltaban como CL$1750 del saldo total. Raro dije yo…
    Llamo a EntelPcs y me salen con el siguiente chiste:
    Usted entendió mal… una sesión se refiere a cada vez que usted se conecta y se desconecta. Baje 1 KB o los 2MB.
    O sea, como me conecte al parecer a 7 sitios distintos, me han cobrado CL$1750.- Obviamente llame para reclamar (por cierto la ejecutiva no quiso ingresar el reclamo ni tampoco quiso ingresar un (auto)reclamo contra ella por no querer ingresar el primer reclamo), me insisitio hasta el cansancio que “así” era el sistema y que no era culpa de ellos que uno no se informara: ¡Pero si la información que ellos me entregan esta mala, o por ultimo confusa!
    Yo finalmente me siento un cliente defraudado, pensando seriamente en cambiarme de compañía móvil (después de ser cliente de Entel cerca de 8 o más años).
    Igual daré la pelea para recuperar esa plata… no es mucho, pero putas que me da rabia estas empresas abusadoras.
    Aquí mismo comentaré como me va.

    Tags para google: entelpcs, wap, estafa, abuso, robo, negligencia, desinformacion, mala atención.

    En marzo del 2009, entregaremos un computador a los niños y niñas pertenecientes al 40 por ciento más vulnerable de la población que ingresen ese año al séptimo básico y que estén en el 30 por ciento de mejor promedio de notas de su nivel. Estamos hablando de más de 30 mil computadores de uso personal, que los alumnos se llevarán a sus hogares y aprovecharán con sus hermanos, familias y amigos.

    Michelle Bachelet, en el discurso del 21 de mayo de 2008.

    RPC es el acrónimo de Remote Procedure Call. Básicamente es la ejecución de código en una máquina distinta a la local. Se supone que estas cosas yo las debi haber visto en el ramo de Redes Computacionales, pero bueh… La cosa es que estas cosas las llegué a ver en el Taller de Sistemas Distribuidos.
    En los siguientes videos, se encuentra un tutorial para la creacion y ejecución de un código bastante sencillo en una máquina remota. Puntualmente es la suma de 2 números. Por debajo pasan varias cosas interesantes, como la representación que hacen de los valores las máquina que ejecuta la acción y quien lo solicita.
    Menos blabla y el video.

    Tags: rpc, ubuntu, linux, portmap, rpcgen.
    Lee el resto de esta entrada »

    Super original con el nombre del post. Hoy estaba algo apestado con las cosas que hacia, y me dedique a algo de ocio y llegue a este vídeo. Últimamente me estoy dejando llevar por la magia de las cosas y no me cuestione si era stop-motion verdadero o habia algo de intervención digital. La cosa es que es maravilloso el video. El video, despues del salto.
    Lee el resto de esta entrada »

    Después de darme varias vueltas tratando de hacer andar unos ejemplos para conectarme a mi servidor de base de datos PostgreSQL, ya descubrí cual era mi problema. En realidad, sabía cual era… pero no encontraba la solución.
    ¿El problema? Quería ocupar el driver jdbc de postgresql, pero por más que le decía a la aplicación que ocupara el CLASSPATH que yo especificaba, no los pescaba. Para más remate, al parecer Ubuntu (la distro que uso en el portátil) por razones historicas, no incluye la variable de entorno CLASSPATH. Y para más más remate, a la maquina virtual de java de sun, tampoco le interesa saber el CLASSPATH.
    Trasteando diversas opciones, hice lo siguiente:

  • Baje el driver jdbc para postgresql.
  • Lo renombre a postgresql.jar
  • Lo copie a /opt/jdk1.6.0_02/jre/lib/ext/ que es la ruta donde me gusta instalar el jdk (que incluye el jre)
  • Ejecute mi .class que necesitaba acceder al dichoso driver y voila! funciona.
  • Conclusión: Las ide como Netbeans o Eclipse si bien nos simplifican la vida y ayudan mucho, nos hacen las cosas demasiado fácil y cuando queremos hacer cosas “básicas” no sabemos… y eso por lo menos para un computín aspirante a informático no esta bien.

    El excelente servicio de correos de google hoy me presento unos problemas. No me dejaba ni enviar ni recibir ya sea usando el cliente web o mi cliente preferido, Evolution. Me rechazaba las contraseñas y desde la web me daba el error 501.
    Todo mal…
    Pasaron cerca de 4 horas… y realmente sentí angustia. Aunque sabia que no había nada importante en los mensajes… necesitaba saber que diablos había. Le debo haber dado retry varias veces en un minuto a la espera de que el servicio se reestableciera. Me asombró la angustia…
    ¡Maldición! Necesito desconectarme.

    Ayer en Ultima Mirada, estaba el subsecretario del interior, Felipe Harboe cuestionaba la permanencia de Douglas Tompkins en el país, ya que el tenia visa de turista. Obviamente no cuestionaba el hecho en si, si no el como usando esa visa, podía comprar propiedades, recibir y hacer donaciones, dar opiniones y un largo etcétera que al parecer molesta a algunas partes del gobierno.
    Lo más chistoso del argumento del Sr. Harboe, era que decía que llevaba entrando y saliendo del país por cerca de ¡129 veces… desde hace más de 20 años!, así que iban a revisar aquello.

    Sr. Harboe… parece que le molesta que este caballero sea dueño de la XI región y los inversionistas no puedan llegar y arrasar con los paisajes naturales para llegar e instalar unas represas para producir energía eléctrica. En vez de cuidar los intereses de solo algunos personajes (que obviamente tienen más $$$ que el común de la gente), dedíquese a velar por los intereses nacionales… y vea la viabilidad del proyecto de las represas… pero exija la versión que incluye el real impacto ambiental… y se dará cuenta de que le saldrá más económico hacer las cosas por otro lado o de otra manera.