Defectos genéticos (I)

Tengo un par de defectos genéticos que forman un combo:

  • Pestañas que siempre se me meten en los ojos
  • Pestañas puntiagudas

El resultado del combo ha sido una pestaña que se me metió en la parte superior del ojo y se quedó “atrancada”, de manera que no salía por sí sola. El tenerlas puntiagudas ha hecho que la córnea se me quede hecha unas trizas.

El oftalmólogo me la ha sacado, me recetó un colirio y me sacó 30 leuros de alá del bolsillo. Bien caro que me ha salido el defecto :(

Cleverbot.com: fraude

Kio vi parolas?
Bonegue ! Mi volas al paroli en Esperanto, cxu vi volas paroli en Esperanto ?
Jes!
Cleverbot, what’s the point in ever thinking about the tomb when you’re much too busy returning to the womb?

¿Por qué me responde en inglés?

¿Por qué ni siquiera sigue su propia línea argumental? (me preguntó si quería hablar en esperanto)

¿Por qué me pregunta como si yo fuera Cleverbot?

 

Conclusion:

 

Un popurrí de textos de chat-ChatRoulette, donde te mezcla conversaciones con otras personas en más o menos tiempo real. Seguro que con algún tipo de filtro más o menos sofisticado, claro.

¡Fraude! ;)

Cargar ficheros contenidos en un .jar

Para cargar ficheros contenidos en el .jar hay que utilizar el método Class.getResourceAsStream(String nombre). Este método devuelve un InputStream de manera que puedes leer los bytes con un InputStreamReader, un BufferedReader, o cargar un Properties.

Para obtener la clase simplemente hay que utilizar el método getClass() que posee todo objeto por heredar de Object.

El nombre del recurso puede contener una ruta. Si la dirección es relativa, se toma a partir del paquete actual (pero la ruta con ‘/’ en vez de ‘.’). Si la dirección es absoluta, se busca en el classpath y por lo tanto también en el propio jar.

 

Carga básica

package com.nishilua.mischorradas ;
InputStream inRelativo = getClass().getResourceAsStream("archivos/archivo.txt") ;
InputStream inAbsoluto = getClass().getResourceAsStream("/archivos/archivo.txt") ;

En el primer caso (línea 3) inRelativo, se carga del directorio del jar (o del classpath): /com/nishilua/mischorradas/archivos/archivo.txt

En el segundo caso (línea 4) inAbsoluto, se carga del directorio contenido en el jar (o classpath): /archivos/archivo.txt

 

Lectura con BufferedReader

Para leer archivos de texto tal vez prefiramos leer  línea por línea, por lo que es útil la clase BufferedReader:

BufferedReader in = new BufferedReader(new InputStreamReader(getClass().getResourceAsStream("/archivos/archivo.txt"))) ;

Para cargar un recurso desde la raíz del classpath (en vez desde el packete al que pertenece la clase obtenida mediante getClass()), se ha de utilizar:

getClassLoader().getResourceAsStream() ;

Más información en los siguientes enlaces:

 

Lectura de un fichero .properties

Por último, la lectura de un fichero properties mediante el método load():

Properties opciones = new Properties() ;
opciones.load(getClass().getResourceAsStream("/archivos/archivo.properties")) ;

 

Vídeo en HTML5

El siguiente enlace contiene una explicación detallada y genial: Dive Into HTML5

El resumen sencillo es:

  • Utilizar como doctype: html (sin nada más)
  • Utilizar el formato Webm (codec de vídeo VP8 y audio Vorbis)
  • Utilizar el tag <video> de HTML5
  • Configurar en Apache el MIME type añadiendo a la configuración lo siguiente: AddType video/webm .webm

Como curiosidad, he añadido a apache2.conf las siguientes líneas de configuración:

AddType video/ogg .ogv
AddType video/mp4 .mp4
AddType video/webm .webm