Oscureciendo las aplicaciones

[software]

Continuo intentando oscurecer el monitor del ordenador, esta vez con las aplicaciones, y especialmente las que uso para programar, que son las que más horas me consumen.

Eclipse

Eclipse Color Themes Plugin es un plugin muy interesante que te permite cambiar el estilo del área de edición. No solo eso, sino que su web sirve como lugar donde descargarse una gran variedad de temas de distintos colores. Actualmente he probado unos cuantos, pero todavía no me decido por ninguno, aunque Sunburst me está gustando bastante.

El problema es que solo cambia el área de edición, pero el resto del interfaz sigue siendo demasiado brillante. Por suerte tenemos Dark Juno, que es un tema oscuro para la interfaz. Tiene algunos fallitos, pero son totalmente soportables a cambio de descansar la vista.

Eclipse con Dark Juno y Sunburst aplicados

Netbeans

Dark Nimbus Theme es un plugin para Netbeans que oscurece la interfaz de Netbeans. Las instrucciones no son muy claras, así que estos son los pasos a seguir:

  1. Descargamos el plugin.
  2. En Netbeans vamos a Tools -> Plugins -> Downloaded -> Add Plugins…
  3. Seleccionamos el fichero descargado y seguimos las instrucciones de instalación.
  4. Cerramos Netbeans y abrimos el fichero /etc/netbeans.conf en la carpeta donde está Netbeans instalado.
  5. Buscamos la línea que empieza por netbeans_default_options y al final, antes de las comillas, añadimos –laf Nimbus. Debe quedar algo así:
    netbeans_default_options="-J-client [...] --laf Nimbus"
  6. Arrancamos el Netbeans y el plugin debería estar funcionando. Vamos a Tools -> Options -> Fonts & Colors.
  7. En Profile seleccionamos Norway Today.

En realidad podemos seleccionar cualquier otro Profile, pero Norway Today usa colores similares a Dark Nimbus y funcionan muy bien juntos.

NetBeans con Dark Nimbus y Norway Today aplicados

uTorrent

Black uTorrent Skin: Fácil de instalar y bastante resultón. Tiene un par de fallos, como que no cambie el fondo de la barra lateral, por lo que hay que ocultarla con F7 para que no moleste, y estaría bien que las partes en gris también se modificaran, pero imagino que el programa no da la opción de cambiar el color de esas partes.

uTorrent con Black uTorrent Skin aplicado

Recomendaciones de anime – Temporada de primavera 2013

[anime]

Anime de la temporada de primavera 2013

Las series de esta temporada han sido lamentables. Un par empezaron bien, pero rápidamente perdieron el rumbo. Por suerte han salido algunas películas que sí merecen la pena ver.

Kotonoha no Niwa

Esta es la simple historia de un joven que quiere ser zapatero y la mujer con la que se encuentra en el parque los días de lluvia. Buena historia, buenos personajes y un diseño visual exquisito. Se echa en falta más historias de este tipo en el anime actual. Si tuviese que nombrar una serie similar de los últimos años sería Sakamichi no Apollon.

Death Billiards

Parte del Anime Mirai 2013 que está financiado por el Young Animator Training Project, Death Billiards es una historia autoconclusiva de 25 minutos con más intensidad y emoción que otras series que duran una temporada entera. Igual exagero un poco, pero en serio, de los mejores 25 minutos invertidos en ver anime esta temporada. Prefiero no contar nada por no desvelar ningún elemento de la trama. Simplemente echarle un vistazo!

Chihayafuru S2

Si hay una serie que puedo recomendar es la segunda temporada de Chihayafuru, pero claro, te tiene que haber gustado la primera, porque es básicamente más de lo mismo. No es que eso sea particularmente malo, los 25 capítulos se pasan volando, a pesar de que los nuevos personajes aportan poco a la trama, siendo un recurso más bien cómico, al menos en esta temporada. Tal vez tomen más relevancia según avance la historia, pero la probabilidad de una tercera temporada parece que es muy baja.

Ver los últimos libros abiertos en la página principal del Sony Reader PRS-T1

[gadgets] [programación]

Por defecto, en la página principal del Sony Reader PRS-T1 aparece en grande el último libro abierto y los 3 últimos libros añadidos al dispositivo. Esto es increíblemente poco útil, teniendo en cuenta que lo más probable es que mucho de los libros que se meten en el dispositivo no los vas a leer inmediatamente. También es muy poco útil si como yo siempre estás alternando entre dos libros (en mi caso entre un libro y un manga). Como lo más probable es que los insertara hace tiempo, pues cada vez que quiero cambiar, tendría que irme a la página con todos los libros y buscarlos. Un rollo vamos.

Lo peor de todo es que esto es algo que los usuario llevan pidiendo mucho tiempo, y en ninguna actualización del firmware se les ha ocurrido añadirlo como una opción.

Por suerte, existe una forma de lograr esta funcionalidad mediante una pequeña modificación en la base de datos interna del dispositivo. Esta base de datos es accesible desde el explorador de ficheros cuando el lector está conectado al ordenador, y no hay que tener miedo a hacer algo mal, porque siempre podemos borrar el fichero de la base de datos y el dispositivo creará un nuevo automáticamente.

La solución original se encuentra en este foro, pero no acaba de estar bien detallada en el mensaje inicial. Los pasos a realizar serían estos:

  1. Descargar y descomprimir el programa SQLiteSpy.

  2. Conectar el Sony Reader PRS-T1 al ordenador y copiar el fichero [unidad:]\Sony_Reader\database\books.db a una carpeta local. Es conveniente hacer una copia adicional de este fichero por si lo queremos recuperar.

  3. Lanzamos SQLiteSpy y abrimos books.db mediante File -> Open Database.

  4. Copiamos este código en la consola:

    CREATE TRIGGER recently_opened_trigger AFTER UPDATE OF reading_time ON books
    BEGIN
       UPDATE books SET added_date = 0 WHERE _id = new._id;
       UPDATE books SET added_date = reading_time WHERE reading_time NOT NULL AND _id <> new._id;
    END
    

    Codigo en la consola del SQLiteSpy para books.db

  5. Ejecutamos el código con Execute -> Execute SQL.

  6. Comprobamos que el trigger se ha añadido correctamente expandiendo en la barra de la izquierda books y a continuación Triggers, donde veremos uno llamado recently_opened_trigger.

  7. Salimos del SQLiteSpy. Cuando pregunte si queremos guardar los cambios, decimos que no, pues la base de datos ya está actualizada.

  8. Copiamos nuestro books.db al Sony Reader PRS-T1, sobreescribiendo el original.

  9. Desconectamos el dispositivo del ordenador.

Existe un problema con este método y consiste en que es incompatible con usar dos dispositivos de almacenamiento en el Sony Reader PRS-T1. Por ejemplo, en mi caso yo tengo el manga en la memoria SD mientras que los libros los tengo en la memoria interna. El problema consiste en que cuando se lee un libro, solo se lanzará el trigger de la base de datos donde está el libro, por lo que la otra base de datos se queda sin actualizar, causando un comportamiento errático de la página principal.

La solución consiste en utilizar un trigger distinto que mantenga un comportamiento consistente en la página principal. La contrapartida es que el libro que se está leyendo actualmente aparecerá dos veces, una en grande como libro actual, y otra en pequeño dentro del listado de los últimos leídos. Es un pequeño inconveniente pero no hay manera de evitarlo. La única solución sería usar únicamente uno de los dispositivos de almacenamiento.

El código es el siguiente:

CREATE TRIGGER recently_opened_trigger AFTER UPDATE OF reading_time ON books
BEGIN
   UPDATE books SET added_date = new.reading_time WHERE new.reading_time NOT NULL AND _id = old._id;
END

El procedimiento es el mismo explicado anteriormente, pero hay que acordarse de repetir el proceso con la base de datos de la tarjeta SD.

También es interesante decir que este método también funciona en el Sony Reader PRS-T2.

Microsoft da marcha atras con el DRM… y yo seguiré sin comprarme la Xbox ONE

[reflexiones] [videojuegos]

Ayer, 20 de junio, y tras el aluvión de críticas recibidas a sus políticas restrictivas que ya comenté en un artículo anterior, Microsoft ha dado marcha atrás y ha anunciado la eliminación de todas las restricciones que querían introducir en esta generación de consolas.

Esto es una buena noticia para todos. Es mi opinión que de no haber cambiado el rumbo, la Xbox ONE iba a ser un desastre rotundo para Microsoft, dejando la PlayStation 4 de Sony como la única opción viable, y por tanto perdiendo la competencia en el mercado. Con esta rectificación, Microsoft vuelve a la palestra y tendremos una buena lucha entre las dos.

Pero lo siento Microsoft, ya no tienes mi confianza. Estos dos últimos años solo ha salido para Xbox 360 un único juego exclusivo que yo quisiera jugar, The Witcher 2, mientras que para la PlayStation 3 he visto como se seguía haciendo un esfuerzo para sacar juegos exclusivos y de calidad. The Last of Us, Beyond: Two Souls, Dragon’s Crown, Ni No Kuni, Tales os Xillia, Journey… y seguro que me dejo alguno más.

Y como mazazo final, Xbox ONE no saldrá de inicio en Japón. Al inicio de la anterior generación, Microsoft realizó una importante inversión para adentrarse en el mercado japonés, publicando un buen número de juegos orientados a dicho mercado. En parte, ese fue uno de los motivos por los que me compré una Xbox 360. Realmente pensaba que la 360 lograría cierto éxito en Japón como para que se desarrollaran más juegos nipones para ella. Me equivoqué, y Microsoft no tardó en rendirse en Japón.

Con la ONE ni siquiera lo van a intentar. Han dado Japón por perdido antes de empezar, y para mi, una consola sin juegos japoneses pierde gran parte de su atractivo.

PlayStation 4 sigue siendo la opción a seguir.

Por qué no compraré la Xbox ONE

[reflexiones] [videojuegos]

Mucho se ha hablado de la Xbox ONE estos días, en gran parte debido a lo vagas y contradictorias que han sido las declaraciones de Microsoft tras la presentación de la consola el pasado 21 de mayo. Tres son los grandes puntos que se están debatiendo: que Kinect tenga que estar siempre funcionando y escuchando, la conexión cada 24 horas de la consola para poder jugar,  y las restricciones que pondrá a los usuario a la hora de usar juegos de segunda mano.

El tema de Kinect es el que menos me preocupa. Yo creo que gracias a Kinect (o PlayStation 4 Eye en la consola de Sony) se pueden crear nuevas experiencias en los juegos. Pero los desarrolladores solo se van a molestar en estas funcionalidades si hay garantía de que todos los usuarios tendrán estos periféricos. ¿Problemas de privacidad? Tal vez. Pero en el peor de los casos, siempre puedes meter el Kinect en un cajón mientras sigue conectado a la consola, y ahí ni verá ni escuchará nada.

Para mi, los grandes problemas son los otros dos puntos.

¿Conexión cada 24 horas para poder jugar? Supongamos estos escenarios:

  • Nos vamos a pasar la nochevieja a una casa rural ¿nos llevamos la Xbox ONE? No. No funcionará.
  • Me cambio de compañía de internet, y el cambio me deja una semana sin conexión. Una semana sin jugar.
  • Me mudo a mi nueva casa, y me cuesta un mes tener internet. Un mes sin jugar.
  • ¿Puedo hacer una Lan Party con mis amigos en el chalet? No. No funcionará.
  • Dentro de 10 años, sacaré la Xbox ONE del armario para echar unas partidas a ese juego que tanto me gustó…. No. Los servidores estarán ya apagados. No funcionará.

Y estos son ejemplos pensados en 5 minutos. Seguro que hay muchos más casos en los que la gente directamente no podrá jugar.

En cuanto al tema de los juegos de segunda mano, os cuento un poco mi historia con las consolas:

Megadrive: Me la regalaron mis padres, por lo que no fue elección mía. Los juegos eran caros y mis amigos tenían la Super Nintendo, por lo que jugué a pocos juegos en ella.

PlayStation: Esta me la compré yo. Mis amigos la tenían, y nada más comprármela me dejaron un montón de juegos. Después me fui comprando algunos juegos y los fui prestando. Al final pude jugar a más juegos de los que me podría haber permitido comprar.

GameCube: Un amigo la tenía y por eso la compré. Pudimos comprar juegos a medias, y nos prestamos los juegos que teníamos. Jugué incluso a mas juegos que en la Play 1.

Xbox 360: Casi todos mis amigos se la compraron. Me dejaron muchísimos juegos y yo presté muchos de los mios. Sin duda la consola en la que más juegos he jugado.

Y llegamos a la Xbox ONE. Te comprarás la consola, te comprarás 1 o 2 juegos, y cuando te los acabes, ¿que harás? Tus amigos no te podrán prestar juegos, tu no podrás prestarle juegos a tus amigos. Sin duda está se convertirá en la consola en la que menos juegos vas a jugar.

Mañana es la conferencia del Microsoft en el E3, y la verdad es que no creo que puedan hacer nada que me convenza para comprarla. Da igual que los 15 juegos exclusivos que van a anunciar sean los mejores juegos de la historia, que lo dudo, si no se los puedo prestar a un amigo, si un amigo no me los puede prestar, esta consola no me interesa.

¡Que se hundan! Que vean que este tipo de practicas no van a ser toleradas por los usuario y que cambien el modelo de negocio. Que todo vuelva a ser sencillo. Que un amigo me deje un juego, yo llegue a casa, lo meta en la consola, me siente en el sofá, y pueda empezar a jugarlo.

Por último, un mensaje a Sony. Tienes todas las papeletas para que te compre una PlayStation4. No seas como Microsoft. No desperdicies esta oportunidad de volver a reinar.

Mañana lunes saldremos de dudas.

Oscureciendo la web

[internet]

Últimamente, al final del día me duelen los ojos y la cabeza. Me paso el día frente a la pantalla del ordenador y la mayoría de aplicaciones que utilizo y webs que visito tienen un fondo blanco o muy claro, produciendo mucha luminosidad. He pensado que tal vez, si cambio esos fondos tan brillantes por otros más oscuros, me acabará doliendo menos la cabeza. Algunas webs ofrecen distintos temas que permiten cambiar los colores, pero la mayoría tienen un estilo único.

Aquí es donde entra Stylish en acción. Básicamente, es un complemento para Firefox que permite añadir código CSS a cualquier página web, y que este código se vuelva a cargar cada vez que visites la web (como si hicieses cambios con el Firebug, y los cambios siguen ahí cuando refrescas la página). En userstyles.org hay un montón de temas que ha subido la gente para una buena variedad de páginas web. Estas son las que estoy usando actualmente:

NeoGAF

NeoGAF Pro Dark: No solo lo vuelve oscuro, sino que además añade algunos estilos que lo hacen más bonito. NeoGAF ha lanzado su nuevo aspecto para 2013 y esta nueva versión trae la posiblidad de cambiar a un tema oscuro, así que ya no es necesario usar Stylish. Ha salido también la nueva versión de este estilo, y oscurece un poco más la web, así que vuelve a valer la pena usarlo.

Twitter

[Actualización: 7/2/2014] Con los últimos cambio en la interfaz online de Twitter, la combinación de estilos que usaba hasta ahora ya no es efectiva. Por suerte he encontrado Dark Twitter by Batmop que casi me gusta más que la conbinación anterior.

Twitter Dark CALM Blue Glow: Versión oscura con algunos toques de azul. Tiene algunos fallos, pero son facilmente corregibles.

Twitter Wide 1020px: Hace Twitter más ancho para aprovechar más la pantalla.

Gmail

Gmail Dark Theme Fix: ¡Este lo he hecho yo! Básicamente, le da un fondo oscuro a los mensajes, que actualmente es blanco.

Youtube

Black Youtube by Panos: Su nombre lo dice todo, Youtube con un fondo negro.

Youtube centered, no recomendations, no comments: Este también es creación mía. Elimino la barra derecha de recomendaciones y elimino los comentarios. Después hago más grande el vídeo y lo pongo todo centrado. Junto con el estilo de Panos para hacer Youtube oscuro se consigue una muy buena combinación.

Google

Black Google By Panos: Como su nombre indica, es Google pero en negro. La pena es que solo funciona para la búsqueda de texto. Para imágenes falla bastante y en el resto de aplicaciones de Google no parece hacer nada.

Wikipedia

Wikipedia – Dark, blue, simple: Como su nombre bien indica, fondo oscuro con letras blancas y enlaces en azul.

Wikipedia – Layout, enhanced: Este funciona en conjunción con el anterior, logrando un resultado muy agradable. Esconde todos lo menús en una barra superior, dejando en pantalla solo el texto para una mejor lectura.

Ocultar con Adblock un div que no tiene ni “class” ni “id”

[internet]

Ya expliqué en un artículo anterior como bloquear un div que tenía una clase. Ocultar un div que tiene un “id” es igual de sencillo:

Ocultar div con clase: ##div.la-clase

Ocultar div con “id”: ##div#el-id

¿Pero que ocurre cuando un div no tiene ni clase ni “id”? Entonces tendremos que recurrir a filtrar según sus atributos. Supongamos que tenemos este div:

<div style="width: 200px; height: 150px; background-color: blue; border-style: dotted; border-color: red;">
...
</div>

En este caso podriamos hacer un filtro con el contenido del “style”:

##div[style="width: 200px; height: 150px; background-color: blue; border-style: dotted; border-color: red;"]

Pero tal vez hay otros divs similares, con el mismo borde pero distintos tamaños, entonces haríamos lo siguiente:

##div[style*="border-style: dotted; border-color: red;"]

El asterisco indica cualquier elementos que incluya esos estilos.

En la documentación del Adblock tienen una completa lista de ejemplos de filtros.

La pregunta es, ¿se podría ocultar un div que no tiene clase, ni “id”, ni ningún atributo?

Recomendaciones de anime – Temporada de invierno 2013

[anime]

Anime de la temporada de invierno 2013

La temporada de invierno ha sido tremendamente floja. Se ha salvado algún anime entretenido, pero nada digno de ser recomendado. Por tanto, mis tres recomendaciones son series que empezaron en la temporada anterior y que han concluido en esta temporada.

Zetsuen no Tempest

Genial adaptación del manga del mismo nombre. Buena trama, buenos personajes y una gran dirección artística y de animación. Pese a conocer la trama, los capítulos mantienen todo el interés.

PSYCHO-PASS

Tenía ganas de ver esta serie tanto por su concepto como por las personas implicadas en el proyecto. Por suerte no ha decepcionado y hemos tenido un anime lleno de acción e intriga. Salvo por un par de capítulos reguleros, la serie ha estado a un gran nivel, y el final, aun dejando las cosas bien atadas, deja con ganas de más.

JoJo’s Bizarre Adventure

Un clásico, del que no había visto ni su anterior adaptación al anime ni el manga, por lo que esta ha sido una ocasión perfecta para disfrutarlo.

Ocultar “A quién seguir” en twitter usando AdBlock Plus

[internet]

Yo uso Twitter vía web, y sigo a poca gente y no me apetece tener un cuadro ofreciéndome seguir a gente que no me interesa, así que indagando un poco vi que se puede usar AdBlock Plus para ocultarlo con mucha facilidad. Esto es lo que hay que hacer:

  1. Instalar AdBlock Plus.
  2. En el menú del ABP, vamos a Preferencias de filtros…
  3. Pulsamos el botón Añadir grupo de filtros. Como nombre le he puesto Twitter.
  4. En el desplegable de Acciones para el filtro de Twitter seleccionamos Mostrar/ocultar filtros.
  5. Pulsamos en Añadir filtro y escribimos ##div.wtf-module

Y ya está, así de fácil. Los corchetes ## indican que queremos ocultar, div indica que lo que queremos ocultar es un div y .wtf-module indica que el elemento a ocultar tiene la clase wtf-module.

En la página de ABP tenéis una excelente documentación sobre como escribir filtros.

Tabla de componentes fonéticos de Kanji para recordar II

[japonés]

Sigo con mi aprendizaje del japonés, y por fin hace unos meses terminé de memorizar las lecturas on-yomi del libro Kanji para recordar II. Ahora estoy aprendiendo gramática y vocabulario con Japones en viñetas, que la verdad es que a modo de iniciación me está gustando bastante. Parte de las nuevas lecturas kun-yomi que estoy aprendiendo ahora me están costando de memorizar porque no las había escuchado nunca, así que estoy utilizando la tabla de componentes fonéticos que viene con KPRII, pero me resulta un poco incomodo tener que consultar el libro cada vez que tengo que usar la tabla, así que pasé todo la información a una tabla y me la imprimí (también podría haber hecho una fotocopia… pero bueno :P)

Os dejó aquí el PDF por si alguien lo encuentra útil:

Tabla de componentes fonéticos de Kanji para recordar II