Reducing eye strain

I usually program for several hours a day. I often end up with eye strain caused by looking at the screen for hours without a break. I’ve been experimenting with different things to see how I can reduce this problem. Here I want to share 4 tips I’ve discovered to reduce eye strain when programming for a long time:

1. Use a color scheme with light background.

Dark color schemes look really cool, I know. I love the one that comes with ST2 by default:

Default Color Scheme in ST2

However, after using these kind of color schemes for a while, I’ve noticed that my eyes get tired more quickly. I didn’t understand why. Specially because I’ve heard a lot of people saying that dark color schemes are actually better to reduce eye strain. After reading more about it, I discovered that there are multiple studies confirming that dark text on light background is much easier to read.

Right now I’m using this colorscheme:

My current colorscheme

It feels so much better!

Dark backgrounds are not completely bad if you use some low contrast scheme like Zenburn. I would like to try it one of these days.

2. Adjust screen color temperature at night.

Monitors’ color temperature is usually set at 6500K. This is similar to sunlight. This is okay for the day but it can hurt your eyes at night, specially if you use a Tungsten-like light as I do. There is a nice program to automatically adjust color temperature in your monitor called F.lux. It’s a bit hard to get used to it at the beginning, but once you do, you are going to love it.

3. Adjust room lighting.

I’ve found that the key factor to produce eye strain is to have unbalanced light between your screen and the room you’re in. I’ve discovered that I prefer to work on a slightly dark room with medium-high screen brightness. A dark room will hurt my eyes as well as a sun-like lighting.

4. Take a break.

In the end, the best tip is just to take breaks from time to time. Don’t abuse the use of the computer. Go out for a walk or a coffee. Come back later and keep working.

 

Ready Player One

Me divertí mucho leyendo Ready Player One. Llegué al libro por recomendación de Nicholas. Concuerdo con él en que definitivamente el libro no es una obra maestra, no es el Snow Crash de la época, pero aún así es una buena novela.

Creo que es fácil disfrutar el libro si uno creció con la cultura pop de los ochentas y noventas y además si uno es un fanático de los videojuegos y un poco geek. Es inevitable sentir un poco de nostalgia con las innumerables referencias a estas cosas que hay en el libro. Me encantó el hecho de que es muy fácil de leer y que engancha inmediatamente. Es difícil dejarlo una vez que se ha empezado, y uno termina leyendo todo en dos o tres sentadas. Mi lista de libros dejados a medio leer es tan grande que empezar uno así es un alivio.

Entre las cosas que no me gustaron está lo plano de los personajes. Es díficil hacerse una clara idea mental de ellos; probablemente debido a que sus personalidades están pobremente descritas, salvo por el hecho de que todos son obsesivamente geeks. Los personajes no sobresalen entre sí. También me pareció que muchas de las situaciones en el libro son bastante predecibles y a veces un poco repetitivas. Pero bueno, a pesar de todo eso, como dije antes, es un buen libro. Lo recomiendo para pasar un par de tardes entretenidas.

Libros electrónicos: epub vs kindle.

Hace un tiempo comentaba que tenía ganas de comprar un Kindle. Al final no lo compré porque me regalaron una Galaxy Tab. La tablet me ha gustado mucho. Contrario a lo que pensé inicialmente, me ha parecido magnífica para leer libros electrónicos.

La Galaxy Tab viene con un programa para leer libros electrónicos que utiliza el formato EPUB. Este formato no sólo es popular, sino que también es, a diferencia del formato del Kindle, un estándar abierto. Como siempre he simpatizado con el tema de los estándares abiertos y el software libre, decidí empezar mi experiencia con los libros electrónicos usando EPUB.

Al principio todo fue genial. Los primeros libros que compré fueron técnicos, los compré en oreilly.com, que por cierto ofrece un muy buen servicio: los libros son baratos, vienen sin DRM y una vez comprados se pueden descargar en diferentes formatos. Desafortunadamente, a partir de ahí la experiencia con EPUB fue más bien mala, he aquí las razones:

  • Por lo general los libros en formato EPUB son más caros. No sé exactamente la razón, pero así es. Un ejemplo: “The Art of Game Design” de Jesse Schell cuesta US $48.83 para el Kindle de Amazon, no obstante, la versión EPUB en Barnes & Noble o en ebooks.com cuesta US $59.95. La diferencia es casi del 20%. La única excepción que he encontrado es  oreilly.com, donde los libros realmente son más baratos que en Amazon.
  • Los programas para leer EPUB no son tan buenos. Esto es verdad al menos en la Galaxy Tab. He probado varios programas y ninguno se puede igualar al Kindle para Android. Los mejores que he probado son Aldiko y el lector que viene por defecto en la tablet. Al primero le faltan características, como la posibilidad de resaltar, y el segundo se siente lento y pesado.
  • El DRM mata al estándar abierto. ¿De qué sirve el estándar abierto si tiene DRM?. La mayoría de las tiendas de libros EPUB los venden con DRM. El DRM no sería tan problemático sino fuera porque este no está estandarizado. Esto quiere decir que, aunque existen muchos programas que pueden leer EPUB, no todos pueden decodificar el DRM. Gracias a esto tuve una experiencia bastante frustrante: Compré un libro en ebooks.com después de dos intentos fallidos en otras librerías. Justo después de pagarlo, me enteré de que el libro, pese a estar en formato EPUB, sólo puede ser leído con Adobe Digital Editions, el cual no tiene versión ni para el Android de mi Galaxy Tab, ni para Linux. Quién me manda a comprar la versión cara sólo porque vienen en “formato abierto”. La solución fue fea: crackear el DRM con un programa del bajo mundo y copiarlo a la tablet.

Después de este tipo de experiencias, decidí comprar algunos libros para el Kindle de Android. Me parece que Amazón ha hecho un excelente trabajo haciendo que la experiencia de los libros electrónicos sea realmente atractiva. He aquí algunos puntos interesantes:

  • La aplicación del Kindle en Android está muy pulida. Es rápida, estable y tiene las características esenciales: resaltar, buscar en el diccionario y poner marcadores.
  • Amazon soporta muchos dispositivos: puedo leer en mi Galaxy Tab, en mi PC con Linux o en un iPad o Kindle reader si los tuviera. Incluso puedo leerlo en la web usando el Cloud Reader, que por cierto está muy pulido. Lo más interesante de todo esto es que todas estas aplicaciones se sincronizan. Si estoy en cierta página en el Galaxy Tab y luego abro el Cloud Reader, el libro estará en la misma página en la que lo dejé en incluso con los resaltados y marcadores que agregué. No hay nada como esto en EPUB .
  • La experiencia de la tienda integrada. Desde la misma aplicación del Kindle puedo buscar nuevos libros en la tienda de Amazon. Puedo leer los comentarios y calificaciones de otras personas, y con un click puedo descargar una versión de muestra gratis con uno o dos capítulos para ver qué tal es el libro. Otro click y ya el libro está comprado (más barato), listo para leer y sincronizado con todos los dispositivos. De nuevo, como esto no he visto nada en EPUB.

Es cierto que el formato de Amazon es propietario y también tiene DRM. Sin embargo este último parece ser inevitable. Y la experiencia de usuario de Amazon simplemente le da mil vueltas a todo lo demás. Por supuesto también hay desventajas:

  • No puedo importar libros en la aplicación de Kindle, lo cual me limita a lo que pueda comprar en Amazon. Esto es realmente un problema cuando uno quiere libros en español. El otro día quería empezar a leer “La Fiesta del Chivo”  de Vargas Llosa, lo encontré fácilmente en EPUB (pirata porque no encontré dónde comprarlo) pero en la tienda Kindle sólo está en inglés. Tampoco puedo usar los libros que ya compré en EPUB ni siquiera los de O’Reilly que están disponibles en un formato compatible con el Kindle.

Me gustaría ver más tiendas de libros electrónicos sin DRM, esto seguramente mejoraría la experiencia en general, pero lo veo poco probable. También me gustaría que se facilitara la publicación de libros electrónicos, de la misma manera que se ha facilitado la publicación de aplicaciones para celulares. Sería muy interesante empezar a ver más libros indies. O incluso pensar en escribir uno y saber que el problema de la publicación y distribución está solucionado.

Nuevo blog

Este es mi nuevo blog. Es el tercero que empiezo. El primero lo empecé en 2004 y lo cerré en 2006 para mudarme al difunto freaks-unidos.net, donde empecé el segundo. Después de siete años, el sitio cayó y parece que no volverá a levantarse, así que decidí abrir este nuevo blog. Me queda pendiente publicar las antiguas entradas en algún lado.

La temática del blog será la misma de siempre, temas de tecnología, programación y algo de cultura o política de vez en cuando. Espero no dejarlo tan abandonado como el anterior.

Super Mario Bros

Hace unas semanas se celebró el aniversario 25 de Super Mario Bros. Hace unos días, alguien preguntó en StackExchange en qué lenguaje de programación estaba escrito. En Reddit surgieron varios comentarios interesantes:

abadidea:

Hi, I am a NES programmer! It is actually not that hard if you grok manual memory management. The 6502 instruction set is simple (but not at all orthogonal) and the NES has a lot of
hardware registers that do Interesting Things for you. The only serious limitation in my mind is the extremely limited color capabilities of the PPU, the NES’s equivalent of a GPU.

NES in a nutshell: you have 2Kb of onboard RAM. There’s an 8Kb window where your cartridge can patch more in. It can even bankswitch to have different sets of 8Kb. You have a 32Kb program
ROM window and that too can be bankswitched, usually in 8 or 16Kb sections. Graphics have an 8Kb window, two pages of 256 8×8 tiles. The remaining space in the 64Kb memory is various
hardware registers where you do your IO and configuring the graphics and sound generators. There is only one timer available, the TV refresh signal. On an NTSC NES it will raise an
interrupt 60 times a second, and on a PAL one, 50.

El CPU 6502 corría a sólo 1.79Mhz. Las limitaciones técnicas eran grandes. Aún así, Super Mario Bros no fue el mejor juego logrado para el NES. El mejor, en mi opinión, fue tal vez Super Mario Bros 3, una verdadera joya.

Creo que programar con limitaciones es más divertido, aunque no más productivo. En ese sentimiento se inspiran concursos como Java 4k o Sizehack. De vez en cuando es bueno programar por diversión, y sólo por diversión.

Por aquí está un clon de Super Mario Bros escrito en Javascript y HTML:

http://jsmario.com.ar/

Me pregunto cuales serán sus requerimientos mínimos.

Testing is the new compiling.

Static typing fan: Static typing allows earlier detection of programming mistakes.

Valid if the only kind of errors you’re worried about are type errors. If you think (and you should) that your code might contain other kind of errors, you should write unit tests and those will catch type errors anyway.

Dynamic typing fan: With dynamic languages you don’t waste time compiling.

Valid if you don’t test or check your code at all. Otherwise, you still have to waste time running tests and checkers.

Testing is my new perfect excuse for legitimately slacking off!

XKCD: Compiling

Libros Electrónicos

Estoy antojado de comprar un lector de libros electrónicos, como el famoso Kindle de Amazon. Lo que más me gusta de este tipo de aparatos, es que su sistema de tinta electrónica los hace ver como libros de papel. Es por esta razón que no compraría un iPad para leer libros electrónicos; leer en una pantalla siempre me ha parecido incómodo. La idea de tener cientos de libros en un pequeño y liviano aparato me parece genial.

A pesar de las ventajas de los libros electrónicos, hay varias cosas que me inquietan de este nuevo paradigma. Por ejemplo, ¿Cómo se puede prestar un libro electrónico? Parece que lo que se ha concebido sólo plantea la posibilidad de que yo pueda comprar un libro electrónico, no pedirlo prestado. Por supuesto que se pueden copiar electrónicamente, pero dentro del sistema, esto sería piratería. Uno no viola la ley al pedir un libro de papel prestado. ¿Qué pasaría con iniciativas como la Librería de los Freaks Unidos?

¿Dónde quedan las bibliotecas? A mi me gusta mucho el concepto de las bibliotecas. En Popayán soy fiel usuario de la Biblioteca Luis Ángel Arango. Casi no compro libros, pero pido muchos prestados a la biblioteca, que me los deja llevar por 21 días. En la universidad la biblioteca fue fundamental. Sobretodo porque, por lo general, uno sólo necesita un pedazo del libro. Las fotocopias son una ayuda excelente. Además, muchos libros de la universidad son muy caros. En una universidad pública como la mía, yo conocí compañeros que pagaban matrícula semestral menor al valor de un solo libro. Sin biblioteca ellos no hubieran podido estudiar.

Me parece que los libros, en general, son muy caros. Por supuesto que también pienso que los autores deberían poder lucrarse de lo que escriben. A veces pienso que si un libro costara $5.000 pesos en vez de $50.000 sería comprado diez veces más y el autor terminaría ganando igual.

Algo positivo de los libros electrónicos es que terminarán acabando con las editoriales, aquellas intermediarias cuyo objetivo es lucrarse de la lejanía de los autores y los lectores. Con los libros de papel los autores necesitan una editorial. Ellos solos no pueden imprimir y distribuir los libros. Con los libros electrónicos y la Internet, será cuestión de tiempo para que los lectores puedan comprar directamente de los autores.

Deshacerse de las editoriales me parece genial. Para los lectores significaría pagar menos. Para los autores significaría que nadie decide qué se puede publicar y qué no. El interés principal de las editoriales es el lucro. Los autores, en cambio, usualmente tienen más motivaciones que el simple dinero. Un mundo sin necesidad de editoriales también le abre las puertas al contenido libre.

En general me gustaría ver un sistema en el que los libros electrónicos sean muy baratos. Deberían ser más baratos que fotocopiar un libro de papel. Aún así, los autores deberían poder lucrarse. Yo creo que esto puede ser posible al reducir los costos del sistema actual: los materiales, la impresión, distribución y, sobre todo, las editoriales codiciosas. Habrá que ver cómo termina todo.