Mostrando entradas con la etiqueta Modernidades. Mostrar todas las entradas
Mostrando entradas con la etiqueta Modernidades. Mostrar todas las entradas

sábado, 26 de marzo de 2011

Secretos Inconfesables 1: Eurovisión



Todo el mundo tiene alguna afición o gusto inconfesable, siempre hay algo que a uno le gusta y le da vergüenza reconocer que le gusta. En mi caso, y en referencia a esa afición inconfesable, he de reconocer que he salido del armario ya hace unos años: ya hace unos años que empecé a confesar públicamente que soy seguidor del Festival de Eurovisión.

No han sido pocas las burlas y los comentarios jocosos de amigos y conocidos acerca de ese tema, pero no considero que sea una afición de friki, o no más que estar enganchado a juegos como el Wow o el Second Life, leer novelas de Corín Tellado o beber el Vodka con Coca-Cola, o echarle ketchup a las croquetas.

Para mi mujer fue una gran sorpresa, y de hecho a ella no le parece una cosa mala, salvo cuando a falta de un mes para el festival le dejo como único CD del coche el de las canciones del festival y luego en los trayectos que hacemos juntos le pregunto por ellas.

El caso es que ayer, viniendo a casa de mi madre de visita, le puse 19 de as 43 canciones participantes este año. ¿Y cómo lo conseguí si aún no ha salido el CD oficial con todas las canciones, y no saldrá hasta mediados de abril? Pues muy sencillo, gracias a www.youtube.com y al gestor de descargas JDownloader.

Abrí la página de Youtube con el video del pais participante, copié la url a un documento de texto, y así hasta que tuve unos cuantos. Luego abrí el JDownloader y añadí los enlaces. Luego seleccioné las pistas de mp3 asociadas y las descargué. Finalmente las grabé en un USB... y pal coche.

Os dejo aquí los enlaces de las 19 primeras canciones:
http://www.youtube.com/watch?v=35yy7Ls3ptc
http://www.youtube.com/watch?v=_OO7p_iKwAk
http://www.youtube.com/watch?v=s88qtWo7byY
http://www.youtube.com/watch?v=vvZlEAP5Z28
http://www.youtube.com/watch?v=Asz9f-9SxiE
http://www.youtube.com/watch?v=ZD09ThCx4Cw
http://www.youtube.com/watch?v=urqhlnWLXxs
http://www.youtube.com/watch?v=I4naw9iUrTw
http://www.youtube.com/watch?v=dtcsw6vLENg
http://www.youtube.com/watch?v=kXFGFCRV3z0
http://www.youtube.com/watch?v=fmGLd3zqW9Q
http://www.youtube.com/watch?v=aGVZktHLZhk
http://www.youtube.com/watch?v=NRG2lY9CuL8
http://www.youtube.com/watch?v=h65xXOVrQzQ
http://www.youtube.com/watch?v=uEb7hRo-Qyk
http://www.youtube.com/watch?v=LvnLWlHqMqM
http://www.youtube.com/watch?v=44ydDZlsruk
http://www.youtube.com/watch?v=jtaD4Ayt0kg
http://www.youtube.com/watch?v=Wy_oB_FYd7s
http://www.youtube.com/watch?v=foI2HlqsWQk
http://www.youtube.com/watch?v=75ux9AvDPfI
http://www.youtube.com/watch?v=JmBMQJlzTa4

Después de leer el artículo antes de publicarlo... he de reconocer que sí, un poco friki si que soy.

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?

lunes, 17 de enero de 2011

Hay que ver lo que inventa el hombre blanco...


Según he leido en referencias por internet adelante, se trata del sistema más rápido para servir cervezas que se conoce. Las sirve hasta nueve veces más rápido que con un grifo de cerveza convencional.

Los vasos tienen una abertura circular en la base, que queda cerrada mediante un imán, parecido a los típicos imanes publicitarios de nevera. Este nuevo rápido sistema de servir cervezas es de gran interes para  bares llenos, chiringuitos veraniegos o barras en fiestas populares, eventos deportivos, o ferias, que aumentarían sus  ventas por ser capaces de servir más cervezas por minuto.

Además, el imán de cierre, se puede utilizar para mostrar mensajes publicitarios, por lo que el coste de los vasos se podría reducir.

¿Alguien lo ha visto ya por ahí?

miércoles, 12 de enero de 2011

Acabar lo que se emprende o echarle morro y pasar de todo.


"Y ya van 4", "Y ya van 5", "Y ya van 7", "Y ya van 8", "Y ya van 9", "Y ya van 10", "Y ya van 11", esta ha sido la evolución del título de un post acerca de mi reciente abandono del tabaco, que evidentemente está a medio escribir. Pero el motivo de no terminarlo, no solo radica en que considero que 11 son muy pocos días para ponerse a presumir en un blog de que uno ha dejado de fumar.

Recientemente, una buena amiga, @Berta1974, me envió un enlace de @victurs que como yo, estaba pasando por el trance de abandonar el tabaco, con la diferencia de que él, lo había hecho antes de que la nueva Ley Antitabaco se lo pusiera mucho más fácil, y tras leerlo, le comenté que tenía un post muy parecido a medio escribir. De hecho, le comenté que era especialista en tener posts a medio escribir. Por lo que decidí iniciar uno nuevo acerca de dicho tema, y no parar hasta finalizarlo.

Soy una persona con bastante facilidad para inciar artículos en el blog, pero acabarlos me cuesta muchísimo. De hecho esa es una constante en mi vida, de la que en absoluto me siento orgulloso. Me cuesta acabar todo lo que emprendo en general. Pero en el caso de este blog, quizá debería aprovecharme del nombre del mismo para no tener que acabarlos, estoy pensando en a partir de ahora, símplemente, cuando se me "seca la idea" dejo de escribir y punto.

¡Es una idea genail! Ni siquiera tengo por qué acabar la frase. Al final incluyo un "texto tipo" explicando que el artículo es una trapallada, que por eso está en este blog, y que si alguien quiere acabarlo, que lo copie, lo pegue en su blog o diario íntimo y lo termine, eso sí, que me ponga una referencia en su publicación para mantener mi ego mínimamente alimentado.


Dedicado a mi twitera favorita: @Berta1974, que inspiró este artículo y que espero no me llame cara dura si empiezo a hacer lo que he propuesto en él.

Fotografía: The Missing Piece 2, de Andronicus Riyono (http://riyono.com/)

martes, 5 de octubre de 2010

Televisión y Redes Sociales: "Gran Primo"

Como soy un desastre en lo que a la velocidad de creación y publicación de artículos en este blog, hoy, que me he decidido a escribir en él y terminar un artículo dedicado a la Televisión y las Redes Sociales que empecé en el mes de Junio o Julio, me he dado cuenta de que está totalmente desactualizado debido a los movimientos que han sucedido en las televisiones durante el verano.

Primero de todo, dejo aquí el artículo original, tal y como lo había empezado:
Hoy me he encontrado el siguiete twit.

@veo7 En Veo7 intentamos aprovechar al máximo las redes sociales. ¿Crees que hay algún punto que podamos o debamos mejorar? #veo7

Veo7, es un canal de televisión pionero en el uso de las nuevas tecnologías aplicadas a sus programas con el fin de dotarlos de interactividad con su audiencia. Recordemos algunos ejemplos:
  • Recientemente, durante el programa La Vuelta al Mundo, en el que participaba como tertuliano @melchormiralles, en el transcurso de una conversación telefónica con Willy Toledo, utilizó la información recibida mediante twiter y enviada por los televidentes para rebatir las argumentaciones del actor.
  • La misma semana, en el programa de @juanfmiranda, 7 Noticias 7 Opiniones, en el que participaba como tertuliano el polémico Carlos Pumares, me fijé que mi hija pequeña, sonreía al oir la voz del mismo, cosa que me hizo gracia e escribí un twit explicando la simpática situación. Durante el programa, el presentador se lo dijo a Carlos Pumares que se quedó sorprendidisimo.
  • Desde hace más de un mes, Veo7 dispone en su parrilla de un programa dedicado enteramente a las redes sociales y de todo aquello que tenga que ver con ellas: Twisión, en el que en directo se atiende a los mensajes enviados por la audiencia: por ejemplo, en uno de ellos, se bajó la música de fondo porque así lo solicitaron los televidentes a través de Twitter. De hecho el programa Twision fue nominado
Han pasado ya tres meses desde que empecé este artículo, y durante ese tiempo han sucedido un montón de cosas, empezando por grandes movimientos a todos los niveles en el mundo de la radio-televisión en España, la desbandada de la SER a la COPE, con la consiguiente rabieta del último Director de Informativos de TVE en época de Franco, irrupción de nuevos canales de televisión, y el cambio de dirección y rumbo de Veo7 con la salida de Melchor Miralles (@melchormiralles), y la llegada de Ernesto Sáenz de Buruaga (ese moldeable periodista ascendido en los años de Aznar con su ansia por controlar algún grupo mediatico), que se ha traducido también, en la salida de la tertulia de Federico Jimenez Losantos de la parrilla de Veo7, a cambio de la entrada de la tertulia de S. de Buruaga en la COPE, produciendo un pobrisimos resultados de audiencia en comparación con la temporada anterior, aunque seguramente, previsibles buenos resultados de expansión y subvención una vez llegado el PP al poder.

Esta salida ha provocado cambios en el canal Veo7, su usuario de twitter @veo7, más conocido entre los twiteros como "la máquina twiteadora" o "el becario explotado de Veo7", apenas envía mensajes, de hecho, en el momento que estaba escribiendo este artículo, a 5 de Octubre, ha llegado el primer twit de @veo7 desde el 18 de Septiembre. Veo7 ha dejado de incluir los twits en sus programas, ha retirado de su web la sección dedicada a la twitertulia, palabra inventada por @Berta1974, que usaba el hashtag #veo7 y que fue sustituido por #twitertulia tras los cambios en Veo7 y que fue nuevamente cambiado a #hv7 por sus antiguos asíduos, debido a la longitud de la palabra twitertulia.

Recientemente en un encuentro digital a través de twitter, tuve la ocasión de hacer las siguientes preguntas a Melchor Miralles:
@carlos_fk: @melchormiralles ¿Recomiendas la interacción con los televidentes en estos debates x internet? ¿Sabes de TVs interesadas en esto? #inp

@melchormiralles: @carlos_fk lo recomiendo a saco.Trate de hacerlo en VEO7.pero creo que en general a las cadenas no les interesa mucho, ¿no? :-DD #inp

@carlos_fk: @melchormiralles ¿quieres decir q a las cadenas no les interesa nada lo que sus televidentes opinen? Sólo los quieren para enviar SMSs? #inp

@melchormiralles: @carlos_fk pues mas o menos creo que si #inp
No quiero hacer aquí una disquisición acerca de las redes sociales y la televisión, @Berta1974 en su blog ya ha hecho un trabajo impecable en lo que se refiere a eso, sólo quiero hacer una pequeña reflexión acerca de hacia dónde parecía ir la televisión, y hacia dónde va ahora. El televidente no importa, sólo importa que se trague los anuncios, y responda bien al adoctrinamiento. Esperemos que las respuestas de Melchor Miralles no se cumplan, cosa que según nos contaba en su blog @fjabrego, el otro presentador de Twision, podría ser. Pero en cualquier caso, invitan a la reflexión las palabras de Miralles, claro que como televidentes siempre podemos optar por apagar la televisión y charlar con los "twiteros de guardia" en ese momento.

Nota: #hv7 significa Huerfanos de Veo7

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.

sábado, 14 de noviembre de 2009

DNI, NIF, NIE

Muchas veces, a la hora de escribir un programa, hacer una web, etc, nos vemos en la necesidad de recoger información personal de un usuario, y en algunos casos, entre dicha información nos encontramos con el NIF/NIE de alguna persona.

Siempre que me he puesto a buscar por internet adelante, he encontrado montones de scripts que validan, calculan y formatean los NIFs, pero nunca he encontrado uno que me sirviera para los números de identificación de extranjeros, NIE.

¿Qué es eso del NIE? Pues muy sencillo, es un NIF para extranjeros. En un principio puede parecer una chorrada, pero no lo es en absoluto. Por ejemplo: Un inglés, llamémosle Paul Gascoigne, por ejemplo, quiere comprarse un pisito en Benidorm para pasar sus vacaciones en alguna terraza de la ciudad nadando en cerveza. Para realizar la compra necesitará un número de identificación ante hacienda (que somos todos, incuidos algunos extranjeros). Un NIF no se le puede dar, pues es sólo para personas con nacionalidad española. Por eso David, deberá obtener un NIE antes de poder adquirir su pisito-resaquero.

Básicamente un NIE es lo mismo que un NIF pero en el que se ha cambiado su primer dígito por una letra, que puede ser X, Y o Z. Por otro lado, a la hora de calcular la letra final, estas X,Y o Z se substituyen por un 0, 1 o 2 respectivamente, a partir de este momento, el cálculo es exáctamente el mismo que para el NIF.

A continuación muesto una serie de funciones javascript para validar y calcular automáticamente tanto NIF como NIE:

/*
  * Por CNG (www.trapallada.com).
  */
  function esNumerico(x)
  {
    var expresionRegularNDigitos = /^(\d*)$/;
    return x.match(expresionRegularNDigitos);
  }

  function esNifNie(x)
  {
    var expresionRegularNIE = /^[X-Z0-9]{1}[0-9]{7}$/;
    return x.match(expresionRegularNIE);
  }

  function obtenLetraNIF ( dni, destino )
  {
    dni.value = dni.value.toUpperCase();
    if ( esNifNie( dni.value ) )
    {
      var nifTmp = '';
      if ( esNumerico( dni.value ) )
      {
        nifTmp = dni.value;
      }
      else
      {
        switch( dni.value.charAt(0).toUpperCase() )
        {
          case 'X': nifTmp = dni.value.replace(/X/gi, "0");
                    break;
          case 'Y': nifTmp = dni.value.replace(/Y/gi, "1");
                    break;
          case 'Z': nifTmp = dni.value.replace(/Z/gi, "2");
                    break;
          default:  alert('NIF/NIE incorrecto');
        }
      }

        if ( nifTmp.length == 8 )
        {
          var cadena = 'TRWAGMYFPDXBNJZSQVHLCKET';
          var posicion = nifTmp % 23;
          destino.value = cadena.charAt(posicion);
        }
        else
        {
          destino.value = '';
        }
      }
      else
      {
        alert('NIF/NIE incorrecto');
      }
    }  
  }


Para probar este código deberemos incluir un inputbox html que realice las llamadas adecuadas:







CC-GNU LGPL


Este software está sujeto a la CC-GNU LGPL o superior.

domingo, 8 de noviembre de 2009

Convertir código ASP a PHP.

Problema: Dispongo de una web que hice hace tiempo utilizando tecnología ASP con conexiones a una base de datos access y ahora:

1- Quiero cambiar de tipo de servidor en mi proveedor de hospedaje a uno en linux para pagar menos al mes.

2- Quiero dejar de utilizar mi web para utilizar alguna herramienta de publicación como Wordpress o un CMS.

En ambos casos me gustaría poder seguir utilizando algunas de mis funciones ASP sin tener que recodificar todo manualmente, ya que eso me haría perder bastante tiempo.

Solución: ¡¡¡asp2php!!!

Se trata de un programita que te permite convertir código asp a php, respetando bastante la estructura original de los fichero, por lo que te será fácil retocar el código php generado si no tienes demasiados conocimientos de php, aunque sea símplemente por comparación con el archivo ASP original.

Pero veamos un ejemplo con los resultados de la conversión:

' Por CNG (www.trapallada.com).
Function getLiteral(intIdLiteral)
Set DB = Server.CreateObject("ADODB.Connection")
Set RS = Server.CreateObject("ADODB.Recordset")
DB.Mode = adModeReadWrite
DB.Open "dsn=miDSN;"

strSQL = "select literal from tLiterales where id=" + CStr(intIdLiteral)
RS.Open strSQL, DB, 3, 2
If RS.EOF or RS.BOF Then
strLiteral= "null"
Else
strLiteral= Trim(RS.Fields(0).Value)
End If
RS.Close
DB.Close
getLiteral= strENUNCIADO
End Function

generaría

// Por CNG (www.trapallada.com).
function getLiteral($intIdLiteral)
{
extract($GLOBALS);

// $DB is of type "ADODB.Connection"
// $RS is of type "ADODB.Recordset"
echo $adModeReadWrite;
$DB=mysql_connect("servidorDDSS","","");
mysql_select_db("",$DB);

$strSQL="select literal from tLiterales where id="+($intIdLiteral);
$rs=mysql_query($strSQL);
if (($RS==0) || ($RS_BOF==1))
{
$strLiteral="null";
}
else
{
$strLiteral=trim((0)->$Value);
}
mysql_close($DB);
$function_ret=$strLiteral;
return $function_ret;
}


El programa funciona en línea de comandos, pero para evitar lo engorroso del mismo, existen diferentes frontales para windows, MacOX e incluso para entorno web.  Yo sólo he probado el asp2php shell, con resultados magníficos por cierto. Lo único que hay que hacer es descomprimir el los archivos de asp2php y de asp2php shell en la misma carpeta.

miércoles, 25 de marzo de 2009

Codificación de los acentos en páginas web

file-html-128Generalmente cuando uno prepara una página web estática se limita a escribir "a saco" el texto que esta debe mostrar, incluyendo acentos y carácteres especiales. Esto no supone un problema si utilizamos un editor de páginas web que automáticamente fije la codificación del contenido, aunque lo lógico sería utilizar los tags de HTML para su correcta visualización. Por ejemplo, se deberá usar á (a aguda) para mostrar una á.

El problema se puede presentar al crear una página web dinámicamente, ya sea con ASP, jsp, php o cualquier otra tecnología en la que los textos que se deben mostrar se obtienen de una fuente de datos como una tabla de una base de datos y que han sido introducidos por terceros. En algunos casos, como sobre todo sucede con el navegador Firefox nos podemos encontrar con sorpresas, como ver unos rombitos en el lugar de alguna vocal acentuada. Ver un ejemplo (sólo firefox).

Para evitar este problema, deberemos incluir en la cabecera de la página el siguiente meta tag:

<meta content="text/html; charset=iso-8859-1" http-equiv="Content-Type"></meta>

Lo que informa al navegador de la codificación que debe utilizar para interpretar los carácteres de la página mostrada.

Otra opción es obligar al servidor a incluir dicho tag automáticamente. Esto se hace añadiendo al archivo .htaccess lo siguiente:

AddType text/html;charset=ISO-8859-1 .html

miércoles, 18 de marzo de 2009

Parámetros en línea de comandos en java

Una de las cosas más engorrosas a la hora de preparar una pequeña aplicación java en línea de comandos,al igual que en otros lenguajes de programación, es el tener que controlar todos los parámetros que se le pasan a la aplicación, el orden de los mismos, que vayan separados al estilo -s -l -r o -slr...

Existe un proyecto de Martian Software Inc. llamado JSAP, que será de gran ayuda para este tipo de cosas. Lo descubrí casi de casualidad y me parece una maravilla. Pero veamos un ejemplo: Imaginemos un programa que lee de un archivo una serie de datos, los procesa, y los escribe en un archivo de salida, exceptuando los datos que generan alguna incidencia que son grabados en un tercer archivo de errores, la aplicación además parará cuando se produzcan un número de errores igual al indicado en otro parámetro, es decir el clásico problema de metodología Warnier.

El programa debería ejecutarse con un comando del estilo de:

java com.trapallada.programa -i entrada.txt -o salida.txt -e errores.txt -n 500


donde los parámetros podrían ser aparecer en cualquier orden.

/*
* Por CNG (www.trapallada.com).
*/
public static void main(String[] args)
{
try
{
JSAP jsap = new JSAP();

// Se crean los diferentes parámetros:
// Parámetro del fichero de entrada
FlaggedOption optEntrada = new FlaggedOption("Fichero de Entrada")
.setStringParser(JSAP.STRING_PARSER)
.setRequired(true)
.setShortFlag('i')
.setLongFlag("input");

// Parámetro del fichero de salida
FlaggedOption optSalida = new FlaggedOption("Fichero de Salida")
.setStringParser(JSAP.STRING_PARSER)
.setRequired(true)
.setShortFlag('o')
.setLongFlag("output");

// Parámetro del fichero de errores
FlaggedOption optErrores = new FlaggedOption("Fichero de Errores")
.setStringParser(JSAP.STRING_PARSER)
.setRequired(true)
.setShortFlag('e')
.setLongFlag("errores");

// Parámetro del fichero de número de errores (no obligatorio)
FlaggedOption optNumeroErrores = new FlaggedOption("Número de Errores")
.setStringParser(JSAP.INTEGER_PARSER)
.setRequired(false)
.setShortFlag('n')
.setLongFlag("numErrores");

// Registramos los parámetros
jsap.registerParameter(optEntrada);
jsap.registerParameter(optSalida);
jsap.registerParameter(optErrores);
jsap.registerParameter(optNumeroErrores);

// Se procesan los argumentos de la línea de comandos
JSAPResult config = jsap.parse(args);

// Si se produce algún error generamos el mensaje de error con JSAP.
if (!config.success())
{
System.err.println();
System.err.println("Uso: java " + Lector.class.getName());
System.err.println(" " + jsap.getUsage());
System.err.println();
System.exit(1);
}

// Se recogen los datos del la configuración cargada desde los
// parámetros de la línea de comandos.
String entrada = config.getString(optEntrada.getID());
String salida = config.getString(optSalida.getID());
String errores = config.getString(optErrores.getID());
Integer numErrores = new Integer(config.getInt(optNumeroErrores.getID()));
}
catch (Exception e)
{
e.printStackTrace();
}
}

Esto sería lo que devolvería la ejecución de la clase en el caso de no poner nada a continuación de la llamada a la misma (sin parámetros).

Uso: java com.trapallada.programa
(-i|--input) <Fichero de Entrada> (-o|--output) <Fichero de Salida> (-e|--errores) <Fichero de Errores> [(-n|--numErrores) <Número de Errores>]

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

sábado, 17 de enero de 2009

Entrevista a un blogger



1. ¿Por qué creaste o ingresaste en tu blog? Por que quería ver de qué iba el rollo ese de los blogs. Pro probar, como más o menos todo a lo que me he apuntado en Internet.

2. ¿Cuántas bitácoras lees al día a parte de la tuya? Leo dos o tres, pero ojeo lo artículos de muchas, además, luego siempre pululo un rato por la red a ver que encuentro.

3. ¿Sabes lo que es un lector de rss? Si, y de hecho los uso porque son cómodos para seguir varios blogs, pero no me gustan demasiado. Para los periodicos por ejemplo, los odio.

4. ¿Has baneado alguna vez a gente de los comentarios? Sí, y es que hay gente que es realmente maleducada. Quisiera que los comentarios ofensivos fueran causados por mis maravillosos argumentos, pero más bien, creo que es porque la gente no suele ser capaz de expresar las pocas ideas que tiene de manera escrita, con órden y educación. De hecho yo muchas veces sufro del mismo problema.

5. ¿Cuál es el beneficio y cuál el perjuicio que te ocasiona este mundo de los blogs? Beneficio: Me entretengo y trato de conservar e incluso mejorar mi prosa escrita. Perjuicio: Más trabajo y sentimiento de culpabilidad cuando paso temporadas sin escribir ningún post y pienso que voy a perder los pocos lectores que pueda tener.