Mostrando entradas con la etiqueta informática. Mostrar todas las entradas
Mostrando entradas con la etiqueta informática. Mostrar todas las entradas

domingo, 27 de febrero de 2011

Internet está lleno de mierda

No parece que aporte gran cosa mi comentario en el título de este artículo, pero es la gran verdad. Internet está cada vez más lleno de mierda, de contenidos basura, de contenidos mediocres, incompletos, sesgados, incorrectos, etc.

Por mi trabajo, relacionado con el mundo de la informática, muchas veces tengo que resolver dudas que me aparecen o me plantean, y claro, como uno, a pesar de ser tremendamente listo, y guapo, que no se me olvide, tiene sus limitaciones, debo tirar muchas veces de internet, especialmente foros, donde siempre suele haber uno o dos individuos que han tenido el mismo problema que yo para resolver, ya que tampoco suelo ser tan especial de ser la primera persona en el mundo que tiene un problema concreto. Hasta aquí todo correcto ¿no?

Cada vez más, encuentro que hay mucho gurú de pacotilla que se dedica a responder preguntas en "el mundo de los mayores". Y claro, cuando urge encontrar una respuesta a una pregunta tremendamente especializada el encontrarse "mierda" suele sacar a uno de sus casillas. De hecho entre mis compañeros de trabajo ya son famosas mis frases: "Internet está lleno de idiotas" o "Internet está lleno de mierda". Sólo pondré un ejemplo, que no se produjo en el trabajo, pues no considero que las cosas de la oficina deben quedarse en la oficina.

Acababa de instalarme yo el Wamp, un conjunto de aplicaciones para convertir un equipo cualquiera en un servidor Apache+MySQL+PHP, porque deseaba ver cómo se vería una web en la que estoy trabajando en mis ratos libres desde mi iPhone. Una vez instalado, teclee en el teléfono la IP del ordenador y a través de la Wifi de casa accedí desde el teléfono al PC con el mencionado Wamp.

En la pantalla del teléfono, me aparecia el mensaje típico de Apache de "Forbidden", que no estaba autorizado a ver la dirección solicitada. Esto se debe, a que el Wamp, en la versión que yo instalé, por defecto, sólo deja ser accedido desde el própio PC que lo tiene instalado, y si se desea que se permita el acceso desde otros equipos se debe configurar el Apache.

Rápidamente busqué en el Google, cómo solucionar esto y me encontré con la respuesta de un pseudo-gurú de pacotilla de estos, y la verdad, me puse de tan mal humor, que pense en llamarle de todo en el foro en que había escrito la respuesta. Según él, debía comprobar los puertos abiertos en mi firewall, y abrir el puerto 80, el de el protocolo http, para poder ver la página que deseaba ver.

La respuesta correcta evidentemente no era esa. ¿Cómo va a responder el servidor Apache diciendo que no está autorizado a ver la página solicitada, porque el error "Forbidden" lo generan los servidores web, si el puerto de dicho servidor está cerrado en el firewall? Me gustaría que el melón que se lució con su respuesta contestara una tontería para reirme, o se hiciera pequeñito poco a poco, y sólo volviese a entrar en foros para seguidores de Paris Hilton en la MTV, o para aprender a hacer la o con un canuto. Si el puerto estuviera cerrado, en mi navegador se me informaría de que no se pudo conectar con el servidor. La respuesta correcta es que hay que editar el archivo de configuración de Apache, decirle que se debe poder acceder desde la ip 0.0.0.0, cambiar una serie de líneas la palabra deny por allow y viceversa, y no recuerdo ahora si algo más.

En mi caso, y para una cosa tan sencilla como esta, en seguida vi que el tipo que escribía no tenía mucha idea de lo que estaba diciendo, pero encontrarse esto en un foro para una persona con menos conocimientos, puede suponer hacerle perder un par de horas "fozando" en su firewall, con el consiguiente peligro que tiene esto para un inexperto.

El artículo era este: http://www.webestilo.com/foros/mensaje.phtml?foro=3&msg=49284

Bueno, hasta aquí la parte seria del artículo, he llegado al punto en que no se seguir. Si alguien considera que es una buena base para continuarlo o escribir algo, que lo copie, lo edite o lo que se le ocurra. Pero eso sí, que me nombre, porque mi ego necesita de alimento también.


Ahora viene la parte del artículo "donde se me va":

Como aprovechar esto para dar un pelotazo.

Desde hoy, y enmarcado en el ámbito de mi ambición por conquistar el mundo, propongo la creación de un sello de calidad en las respuestas de los foros, los artículos en los blogs, etc., al que llamaré IPM (Internet Puta Madre), que implique que el contenido ha sido confirmado por uno o varios expertos en el tema, que evidentemente realizarán su trabajo alttruistamente. Los sitios de internet que deseen obtener la certificación deberán pagarme a mi un canon por impresión del artículo, y evidentemente solicitaré al Ministerio del ramo una jugosa subvención.

martes, 8 de febrero de 2011

¿Está el e-Mail obsoleto?

Pudiera parecer una pregunta extraña, pero si observamos a nuestro alrededor la forma en que la llamada Web 2.0, junto con la aparición de las Redes Sociales, han modificado la manera de entender y usar Internet.

En los orígenes de Internet, los servicios que la red de redes ofrecía eran mucho más limitados que ahora; sólo existían cosas como el correo electrónico, los grupos de noticias, las listas de distribución, el gopher y la web, que nada tenía que ver con la web de ahora.


Así eran Yahoo.com y Amazon.com en 1995.

Aunque todos los servicios tenían un uso bastante extendido, salvo quizá el gopher, era el correo electrónico la estrella de los servicios que Internet ofrecía.Cuando una persona, usuaria del Internet de medidados de los 90 quería impresionar a alguien y convencerle de la utilidad y la maravilla que suponía el uso de Internet, lo que hacía, era efectuarle una demostración del uso del correo electrónico. La verdad es que en aquella época, la posibilidad de escribir una carta, enviarla, y recibir la respuesta apenas unos minutos después, en un mundo en el que el único correo que se conocía era el correo ordinario, en el que ese mismo proceso suponía dos o tres días en el mejor de los casos, siempre que el interlocutor estuviera cerca, suponía un avance de tal magnitud, que acabó revolucionando la forma de comunicarse de la gente.

Desde entonces han pasado 15 años e Internet y los servicios que ofrece han evolucionado mucho, y si bién, de los servicios primitivos, sólo se siguen utilizando ampliamente la web, que nada tiene que ver con aquella de 1995, y el correo electrónico que sí es prácticamente igual al que se usaba entonces, aunque con algunos matices, claro. Y son estos matices, los que nos deben hacer reflexionar acerca de la futura evolución del correo electrónico.

Mi primera cuenta de correo electrónico no era mía, como muchos de los que empezamos con esto de internet a finales de los 90, nuestra primera cuenta de correo era de otra persona, en mi caso, era la de mi madre en la universidad.

Cuando entré en el mundo laboral, fui uno de los primeros en disponer de cuenta de correo eletrónico personal en mi empresa por el hecho de ser Técnico de Sistemas en ella, de hecho, teníamos cuenta de correo, el director general, los directores de departamento, y dos o tres personas más en el departamento de informática.Y tras varios malos entendidos acerca del desarrollo de algunos proyectos, recuerdo que mi jefe, me dijo que guardara copia de todo correo electrónico que enviara y recibiera. A medida que el uso del correo electrónico se fue extendiendo en la empresa, observé comportamientos extraños desde mi punto de vista, pues algunos compañeros imprimían los correos electrónicos como prueba de haber recibido una orden o algo así. A mi esos comportamientos siempre me parecieron absurdos, y de hecho le demostré una vez a uno de ellos, que con el word y un poco de paciencia, se puede imprimir un mensaje ficticio cuando queramos, además de modificar fechas de envío, etc.

Tiempo después, las empresas y organizaciones empezaron a recelar del correo electrónico y se puso de moda la inclusión de mensajes pie de correo hablando de la inseguridad de un correo electrónico y confiando en la buena voluntad del receptor, pidiendole que borre el mensaje si no es él el destinatario del mismo. (Nunca entenderé por qué esas cláusulas se ponen al final de los mensajes ¿para qué pedirle a alguien que no lea y borre algo después de que lo haya leído? Es decir, a lo mejor soy yo un poco raro, pero los mails se leen desde la primera línea a la última, incluidos los que se leen en diagonal ¿no?).

Además el correo electrónico presenta importantes problemas para las empresas de cierto tamaño: es un agujero de seguridad por el que un virus se puede extender rápidamente por la organización, supone un importante gasto de espacio en almacenamiento y proceso, consumo de ancho de banda, gestión de todos los correos basura. Imagine vd. lector, tener que contestar 20 o 30 correos electónicos al día ¿cuanto tiempo supone esto?

Ahora, por primera vez una empresa se plantea eliminar el correo electrónico en sus comunicaciones internas. La empresa se llama Atos Origin, una multinacional Francesa del sector de la Tecnologías de la Información, a través de su Consejero Delegado y Presidente, Thierry Breton, planea abandonar el correo electrónico para sus comunicaciones internas y sustituirlo por aplicaciones de comunicación mejoradas, así como nuevas herramientas de redes sociales más colaborativas. De hecho en la actualidad, la mencionada empresa ya dispone de una herramienta de comunicación interna muy parecida al Microsoft Messenger llamada Agora. Según sus propias palabras:

"El volumen de correos que mandamos y recibimos es insostenible para el negocio"

"Los gestores pasan entre 5 y 20 horas a la semana leyendo y escribiendo emails", 

"En Atos Origin, por ejemplo, hemos establecido herramientas de colaboración y plataformas de comunidad, para compartir y seguir la pista a ideas en temas de innovación"

"los negocios necesitan más en este terreno y el email se está quedando fuera de las mejores formas en la que una compañía puede hacer negocios".

Otros datos apuntados por el Presidente de Atos Origin son:

En 2013, más de la mitad de todos los nuevos contenidos digitales será el resultado de cambios y la edición de la información existente.

Las redes sociales son ahora más populares que el correo electrónico y la búsqueda.

Los mandos intermedios pasar más de 25% de su tiempo buscando información.

2010: Los usuarios corporativos recibieron 200 emails por día, el 18% de los cuales eran spam.

En mi opinión, esta apuesta, es arriesgada, pero marca una dirección a la que los demás irán uniendose con el tiempo, unos porque ven sufren las mismas dificultades que Atos Origin hoy en día, y otros porque se dejan llevar por la corriente. Aunque lo que no plantea el Sr. Breton, es ¿Como nos comunicaremos con el exterior de nuestra organización?

En cualquier caso, cojamos conceptos de redes sociales como Twitter, Facebook, Tuenti o incluso el fracasado Google Wave, junto con otros servicios existentes, pasados y futuros y quizá tengamos el futuro sustituto del correo electrónico, al menos internamente a las empresas. ¿O quizá no?

viernes, 19 de marzo de 2010

Quince segundos de fama en Twision

En el mundo de internet, no solo entre "frikis" y "geeks" recalcitrantes, y especialmente en la red social Twitter están de moda los mensajes que el astronauta de la agencia espacial japonesa Soichi Noguchi, que da la casualidad que tambien es twitero, @Astro_soichi, y envía con fotos tomadas en su tiempo libre desde la Estación Espacial Internacional (ISS) a Twitter como entretenimiento.

Soichi, normalmente en cada uno de sus envíos adjunta una foto y un pie de foto en el que indica lo que se puede ver en la misma, pero el pasado 16 de Octubre de 2010, rompió esta forma de actuar. No se si por desconocer el nombre de la ciudad que había fotografíado, o por conertir su actividad en una adivinanza a nivel mundial.

La foto en cuestión que publicó fue la siguiente:

Fotografía tomada por @Astro_Soichi

Cuando me quedé mirando la foto por primera vez, estaba un poco despistado, pues el no ver la entrada de la Ria despista un poco, pero al fijarme en el puente de la derecha (Puente de Rande) y la forma de los muelles del puerto de la ciudad me dije: "Coño, si esto es Vigo". Rápidamente vi los comentarios que habían incluido en la página en que estba la foto, y la verdad es que la gente estaba algo despistadilla, exceptuando uno que dijo símplemente "Spain?", otros apuntaban a Estambul, Montenegro, el Canal de la Mancha. Finalmente me lancé e un frenesí de twits escribiendo los siguientes:
@Astro_Soichi http://twitpic.com/18x0jv - Vigo, Spain. I'm there!!! 11:51 AM Mar 16th via TwitPic


@Astro_Soichi http://twitpic.com/18x0jv - Vexo Vigo, vexo Cangas, tamen vexo Redondela... Eng: I see Vigo, I see Cangas, I also see Redond 11:54 AM Mar 16th via TwitPic


@Astro_Soichi http://twitpic.com/18x0jv - What i have won??? 11:56 AM Mar 16th via TwitPic


@Astro_Soichi http://twitpic.com/18x0jv - You can see Rande Bridge on le right (http://www.grijalvo.com/Albaiges/Puente_de_Rande.jpg) 11:58 AM Mar 16th via TwitPic


@Astro_Soichi http://twitpic.com/18x0jv - You can see PSA Factory on the left (white building) and close to it Balaidos Stadium. 11:59 AM Mar 16th via TwitPic


@Astro_Soichi http://twitpic.com/18x0jv - On the north side you can see Cangas do Morrazo (left) and Moaña (center). 12:00 PM Mar 16th via TwitPic


@Astro_Soichi http://twitpic.com/18x0jv - Top-left corner Barra Beach (http://www.lugaresnaturistas.org/Pontevedra/barra1.jpg) 12:02 PM Mar 16th via TwitPic


@Astro_Soichi http://twitpic.com/18x0jv - http://saudade.blogia.com/upload/20051114145117-volvo-vigo2.jpg Volvo Ocean Race Start in Vigo on 12:16 PM Mar 16th via TwitPic


@Astro_Soichi http://twitpic.com/18x0jv - More on the left that what pic shows Cies Islands (http://www.guardian.co.uk/travel/2007/feb/16/be 12:24 PM Mar 16th via TwitPic

Al día siguiente para sorpresa mía, comprobé la repercusión que este juego a las adivinanzas había causado en los medios de comunicación, pues tanto La Voz de Galicia, que dedicaba su contraportada al tema, como Xornal.com , así como Antena 3 Televisión como Veo7 en su nuevo programa Twision, se hacían echo del juego entre el astronauta japonés y los twiteros. De hecho en Twision me nombraron, cosa que me hizo mucha ilusión, aunque me lo perdí por culpa de mi santa esposa.

Ayer, antes del programa fuimos a cenar a casa de mi madre, y tras la cena, empezamos a ver el programa allí. Mi mujer, que el tema de la tecnología lo lleva fatal, de hecho, ni siquiera se cree que los twits de  @melchormiralles sean de él, sino que dice que son de "algún currito" de Veo7, empezó, con el apoyo de mi madre, que desde que me casé parece que es mi suegra, a protestar,  y a decir que se quería ir para casa, que el programa era una chufa, que yo era un tarao de internet, que tenía sueño (lo típico), y se puso tan pesada, que aprovechando la publicidad tras la entrada a saco de @pablo_vfr salimos escopeteados para casa. Pero claro, tardamos 15 minutos, y al llegar y encender la tele sólo pude ver a Melchor Miralles despidiendo el programa. Ahora que un seguidor del programa me ha enviado el video del mismo, que majísimo es @jjimenez, le voy a hacer #FF hasta el verano por lo menos todos los viernes, lo voy a cargar en el teléfono y ponerselo a todas horas. Y es que yo también puedo ser muy insistente.

Para el que lo quiera, aquí tiene la dirección de la página con la foto donde originalmente la colgó @Astro_Soichi, mis comentarios no aparecen pues sólo lo hacen los más recientes. http://twitpic.com/photos/Astro_Soichi

Y el que quiera ver los 15 segundos de fama: http://vimeo.com/10293847 a partir del minuto 46 y 35 segundos.

martes, 8 de diciembre de 2009

Desencriptar una cadena en Java

En prácticamente todas las aplicaciones, siempre es necesaria la encriptación de algún tipo de información. El ejemplo más simple son las contraseñas de usuario, información personal o cualquier tipo de información sensible dentro del ámbito de la aplicación.

Anteriormente, habíamos visto un mecanismo para encriptar contraseñas y convertir el texto encriptado en una cadena almacenable en una base de datos o fichero sin problemas de codificación, mediante el API estandar de Java.

Veamos ahora cómo sería el proceso inverso:

  String cadena = "WZMLNsMJeI2PDCPuWudVucLfRyQlffqA" +
                  "1yYKWLOLuCv2SzIcw0Aegh6w3o6FjQ3T";
  String semilla = "0123456789";
  String cadenaDesencriptada = null;
  String tmp = new String( ( semilla.trim().concat("99999999") ).substring(0, 8 ) );
      
  byte[] claveDesc = new BASE64Decoder().decodeBuffer( cadena );
  SecretKeySpec desKey = new SecretKeySpec( tmp.getBytes(), "DES");
      
  Cipher cipher = Cipher.getInstance("DES/ECB/PKCS5Padding");
  cipher.init(Cipher.DECRYPT_MODE, desKey);
      
  cadenaDesencriptada = new String(cipher.doFinal(claveDesc));


Tras ejecutar el anterior código, obtendríamos la cadena original "No se a quien odio más, a Batman o a Guti" dentro de la variable cadenaDesencriptada.

Evidentemente, todo el código del ejemplo habrá que incluirlo dentro del correspondiente bloque try-catch y realizar la gestión de excepciones adecuada según nuestra aplicación.

Ver artículo: Encriptar una cadena en Java

miércoles, 2 de diciembre de 2009

Manifiesto “En defensa de los derechos fundamentales en internet”

Compas


Ante la inclusión en el Anteproyecto de Ley de Economía sostenible de modificaciones legislativas que afectan al libre ejercicio de las libertades de expresión, información y el derecho de acceso a la cultura a través de Internet, los periodistas, bloggers, usuarios, profesionales y creadores de internet manifestamos nuestra firme oposición al proyecto, y declaramos que…


1.- Los derechos de autor no pueden situarse por encima de los derechos fundamentales de los ciudadanos, como el derecho a la privacidad, a la seguridad, a la presunción de inocencia, a la tutela judicial efectiva y a la libertad de expresión.

2.- La suspensión de derechos fundamentales es y debe seguir siendo competencia exclusiva del poder judicial. Ni un cierre sin sentencia. Este anteproyecto, en contra de lo establecido en el artículo 20.5 de la Constitución, pone en manos de un órgano no judicial -un organismo dependiente del ministerio de Cultura-, la potestad de impedir a los ciudadanos españoles el acceso a cualquier página web.

3.- La nueva legislación creará inseguridad jurídica en todo el sector tecnológico español, perjudicando uno de los pocos campos de desarrollo y futuro de nuestra economía, entorpeciendo la creación de empresas, introduciendo trabas a la libre competencia y ralentizando su proyección internacional.

4.- La nueva legislación propuesta amenaza a los nuevos creadores y entorpece la creación cultural. Con Internet y los sucesivos avances tecnológicos se ha democratizado extraordinariamente la creación y emisión de contenidos de todo tipo, que ya no provienen prevalentemente de las industrias culturales tradicionales, sino de multitud de fuentes diferentes.

5.- Los autores, como todos los trabajadores, tienen derecho a vivir de su trabajo con nuevas ideas creativas, modelos de negocio y actividades asociadas a sus creaciones. Intentar sostener con cambios legislativos a una industria obsoleta que no sabe adaptarse a este nuevo entorno no es ni justo ni realista. Si su modelo de negocio se basaba en el control de las copias de las obras y en Internet no es posible sin vulnerar derechos fundamentales, deberían buscar otro modelo.

6.- Consideramos que las industrias culturales necesitan para sobrevivir alternativas modernas, eficaces, creíbles y asequibles y que se adecuen a los nuevos usos sociales, en lugar de limitaciones tan desproporcionadas como ineficaces para el fin que dicen perseguir.

7.- Internet debe funcionar de forma libre y sin interferencias políticas auspiciadas por sectores que pretenden perpetuar obsoletos modelos de negocio e imposibilitar que el saber humano siga siendo libre.

8.- Exigimos que el Gobierno garantice por ley la neutralidad de la Red en España, ante cualquier presión que pueda producirse, como marco para el desarrollo de una economía sostenible y realista de cara al futuro.

9.- Proponemos una verdadera reforma del derecho de propiedad intelectual orientada a su fin: devolver a la sociedad el conocimiento, promover el dominio público y limitar los abusos de las entidades gestoras.

10.- En democracia las leyes y sus modificaciones deben aprobarse tras el oportuno debate público y habiendo consultado previamente a todas las partes implicadas. No es de recibo que se realicen cambios legislativos que afectan a derechos fundamentales en una ley no orgánica y que versa sobre otra materia.

domingo, 22 de noviembre de 2009

Encriptar una cadena en Java

En prácticamente todas las aplicaciones, siempre es necesaria la encriptación de algún tipo de información. El ejemplo más simple son las contraseñas de usuario, información personal o cualquier tipo de información sensible dentro del ámbito de la aplicación.

Veamos cómo podemos codificar una cadena cualquiera utilizando el API estandar de Java.

        String claveEncriptada = null;
        String claveOriginal = "No se a quien odio más, a Batman o a Guti";
        String semilla = "0123456789";

        // Generamos una clave secreta.
        SecretKeySpec desKey = new SecretKeySpec(new String((semilla.trim().concat("99999999")).substring(0, 8)).getBytes(), "DES");
        Cipher cipher = Cipher.getInstance("DES/ECB/PKCS5Padding");
        cipher.init(Cipher.ENCRYPT_MODE, desKey);
        byte[] claveEncriptadaBytes = cipher.doFinal( claveOriginal.getBytes() );
        claveEncriptada = new BASE64Encoder().encode( claveEncriptadaBytes );






Evidentemente el código mostrado anteriormente habrá que incluirlo en un método con su generador de clave y su bloque try-catch.

Como podemos ver, la cadena que tratamos de codificar es: "No se a quien odio más, a Batman o a Guti" y el resultado que obtendríamos si ejecutaramos las instrucciones del listado sería: "WZMLNsMJeI2PDCPuWudVucLfRyQlffqA1yYKWLOLuCv2SzIcw0Aegh6w3o6FjQ3T".

La semilla, es utilizada por el algoritmo de encriptación para cifrar la cadena. Si quisieramos desencriptar la cadena obtenida, necesitaríamos la semilla para poder hacerlo. Es como la llave que abre la caja fuerte que contiene el contenido desencriptado original. A la hora de realizar una aplicación es de suma importancia que cada dato que encriptemos tenga una semilla diferente para no comprometer el total de la información en el caso de que la misma sea descubierta. El mecanismo para la elección debe ser elegido cuidadosamente para dificultar el trabajo a un posible "ladrón" que quisiera acceder a la información.

Es importante tener en cuenta que la encriptación genera una cadena de bytes, los cuales, transformados en una cadena de carácteres podría implicar la existencia de carácteres extraños en la misma, cosa que nos podría dar problemas a la hora de almacenar la información encriptada en una base de datos si no tenemos en cuenta que podemos insertar dicho tipo de cadenas a la hora de almacenarlas en fichero o base de datos. Para evitar dicho problema, utilizamos el codificación BASE64.

Ver artículo: Desencriptar una cadena en Java

Gracias a Gomstor por encontrar un error en el código que ya ha sido corregido.

jueves, 19 de febrero de 2009

Evitar inicialización accidental de Informix

En mi opinión, una de las cosas que los señores de IBM debería corregir, cuando publiquen el esperado Infomix Cheetah, es el tema de la opción de inicialiación de las bases de datos con la opción -i del comando oninit.

Es relativamente fácil lanzar el comando oninit –i accidentalmente y perder las bases de datos, por lo que es recomendable enmascarar el programa oninit. Para esto renombraremos el comando oninit de $INFORMIXDIR/bin/oninit a $INFORMIXDIR/bin/oninit.cmd.

Luego creamos un script oninit que filtre el uso de la opción –i

# oninit
# Por CNG (www.trapallada.com).
#
# Script que enmascara el oninit de informix para
# evitar el oninit -i que inicializa la base de datos

ARGUMENTOS=""
LANZAR=1

while getopts ivyI opcion
do
case $opcion in
i) echo -e "\n   La opcion -i esta bloqueada para evitar inicializaciones"
echo "   accidentales de la base de datos. Utilice la opcion -I"
echo -e "   i mayuscula para inicializar la base de datos.\n"
LANZAR=0;;
v) ARGUMENTOS=v${ARGUMENTOS};;
y) ARGUMENTOS=y${ARGUMENTOS};;
I) ARGUMENTOS=i${ARGUMENTOS};;
esac
done

if ( test $LANZAR -eq 1 ) then
oninit.cmd -${ARGUMENTOS}
fi

jueves, 12 de febrero de 2009

Obtener los campos SERIAL de Informix tras un INSERT



Problema:

Tras hacer un INSERT en una tabla de Informix que contiene campos del tipo SERIAL nos encontramos con que tras realizarlo, tenemos todos los datos del registro excepto los autogenerados por la base de dato.

Solución:

// Por CNG (www.trapallada.com).
PreparedStatement preparedStatement = null;
ResultSet resultSet = null;

String queryString = "INSERT INTO " + TABLA + " (" + CAMPOS +
") VALUES ( ?,?,?,? )";
preparedStatement = conn.prepareStatement(queryString,
Statement.RETURN_GENERATED_KEYS);

int i = 1;
// El primer campo de la tabla es SERIAL
preparedStatement.setInt(i++, 0);
preparedStatement.setString( i++, vo.getCampo2() );
preparedStatement.setString(i++, vo.getCampo3() );
preparedStatement.setString(i++, vo.getCampo4() );

int insertedRows = preparedStatement.executeUpdate();
resultSet = preparedStatement.getGeneratedKeys();

resultSet.next();
vo.setCampo1( resultSet.getInt(1) );

En el momento de crear el PreparedStatement incluimos el parámetro Statement.RETURN_GENERATED_KEYS para indicarle a la aplicación que recupere los valores de los SERIAL generados por la base de datos.

Tras ejecutar el INSERT, se recupera un ResultSet con los campos SERIAL generados con el método getGeneratedKeys() del PreparedStatement.

Tras eso, accedemos al ResultSet para obtener los valores.