"Hola, mundo" macarrufo

Vamos a descansar un poco de tanto Kindle y vamos a picar algo de código, que para eso estamos donde estamos =). La próxima entrada, eso sí, será la tercera y definitiva del ciclo dedicado al lector de Amazon. Aprovechando que estoy convaleciente y en paro he comenzado un curso para sacarme la certificación MCPD, o Microsoft Certified Professional Developer. Como todos los cursos, comienza lento: hemos empezado con la teoría y hoy, una semana después del inicio del curso, hemos picado nuestro primer código. Como no podía ser de otro modo, ha sido el venerado “Hola, mundo”. Como quiera que yo ya tengo algo de experiencia bajo el brazo, mientras el profesor explicaba el proceso de creación de la solución, el picado del código y la compilación del mismo, yo me he dedicado a hacer cosillas y explorar un poco más el objeto Console. Y aquí os traigo los resultados de lo que se me ha ocurrido en un ratejo.

El programa es bien sencillo: un "Hola, Mundo" que parpadea. Vamos a ver cómo conseguimos este efecto en la consola con C#

 static void Main(string[] args)
 {
     Console.Title = "BLINK demo!";
     Blink("Hola, Mundo");
 }
 

Ésta es la función main(): desde ella llamamos al método Blink, permitiéndonos la floritura de establecer el título de la ventana de comandos.

 /// <summary>
 /// Método para hacer parpadear en consola 
 /// el texto enviado como parámetro
 /// </summary>
 /// <param name="text"></param>
 private static void Blink(string text)
 {
     int i = 1; //Determinar iteraciones
     do
     {
         //Si estamos en una iteracion par
         //el color del texto es blanco
         //si es impar en negro; 
         
         if(i%2 == 0) 
             Console.ForegroundColor = ConsoleColor.White;
         else 
             Console.ForegroundColor = ConsoleColor.Black;
         //Centramos el cursor en anchura
         Console.CursorLeft = 
             (Console.WindowWidth/2)-(text.Length/ 2);
         //Centramos el cursor en altura
         Console.CursorTop = 
             Console.WindowHeight/2;
         //Escribimos el texto
         Console.Write(text);
         i++;
         //Ponemos un ligero retardo para evitar
         //un parpadeo demasiado rapido
         Thread.Sleep(150);
         //para evitar hacer un overflow a la variable i
         //la reseteamos ;)
         if (i >= 100) i = 0;
     } while (!Console.KeyAvailable); 
     //Terminamos al pulsar cualquier tecla
 }
 
 

Creamos la variable i sencillamente para llevar una cuenta de las iteraciones del bucle do. No porque nos interese saber cuántas iteraciones vamos a ejecutar, sino porque nos interesa alternar el color de la fuente de la consola entre negro y blanco para hacer parpadear nuestro mensaje. Al entrar en el bucle lo primero que preguntamos es si i es par, realizando la operación i%2 que halla el resto de una división entre dos y comparándolo con cero. Si es igual, es decir que no hay resto, el número contenido en i es par y asignamos el color blanco al texto de consola. En caso contrario es impar y asignamos el color negro. Como el color de fondo de la consola es negro, al poner el color de texto (o primer plano) en negro, en esencia el texto desaparecerá, que es exactamente lo que queremos conseguir.

Con las asignaciones Console.CursorLeft y Console.CursorTop colocamos el cursor de la consola donde queramos para que escriba el mensaje, en este caso centrado en altura y anchura gracias a que sabemos el ancho y el alto de la ventana de la consola mediante las propiedades Console.WindowWidth y Console.WindowHeight.

Después dos truquitos: utilizamos Thread.Sleep(150) para detener la ejecución del hilo principal (y único, en este caso) durante 150 milisegundos y hacer de este modo que el parpadeo sea apreciable. Después hemos metido una forma un tanto grosera de evitar un error: si dejamos corriendo infinitamente el bucle llegará un momento que el valor de i sea demasiado grande para un integer, así que al llegar a un valor cualquiera lo reseteamos. Bueno, exactamente cualquier no. Tiene que ser un valor par ya que hemos empezado el bucle por un valor impar, si queremos ponernos finos. 

Por último, examinemos la condición de salida del bucle while(!Console.KeyAvaliable). Esta condición ejecutará el bucle do mientras no haya una tecla pulsada en el búfer de entrada, es decir que el bucle seguirá corriendo indefinidamente hasta que el usuario pulse cualquier tecla. 

Y ya está. Un ejemplo sencillote para sorprender a vuestro profe la próxima vez que tengáis que hacer un "Hola, mundo" en C#. 

Bueno, vale, lo admito: esta entrada ha sido más que nada para probar el formateo de código en el blog. Perdonad la tontuna. :)

may26

Kindle básico (II)

Una vez nos hemos quitado de encima las diferencias entre precios y modelos, vamos a entrar en chicha con uno de los más impresionantes puntos a favor del Kindle como lector: el ecosistema Kindle.

Ecosistema

kindle-front-graphiteEntendemos por ecosistema Kindle toda la organización que Amazon ha puesto alrededor de su lector, y a su servicio, para facilitar la vida a sus usuarios. Evidentemente, Kindle es el foco en el que Amazon ha dispuesto sus esfuerzos para que sus usuarios accedan a los libros electrónicos. Pero ahora, cuando digo Kindle no me refiero al dispositivo hardware, sino al ecosistema.

Porque se puede usar Kindle sin comprar un Kindle: la aplicación está disponible para su descarga en PC Windows, Mac; y en los SOs de iPhone, Android, Blackberry  y Windows Phone 7.

Todas estas aplicaciones software no se diseñaron para sustituir al lector hardware (aunque bien podrían) sino para complementarlo. Gracias a Whispernet y Whispersync, el círculo se cierra y el ecosistema se hace completo.

Whispernet es el nombre que ha dado Amazon a la tecnología 3G que usa para los Kindles. A efectos del usuario, esto significa que un lector con Whispernet (es decir, con 3G) puede funcionar directamente desde que lo sacamos de la caja sin necesidad de usar o tener un ordenador: buscamos, compramos, descargamos directamente desde el Kindle. Además, no necesitamos acceso a un hotspot de Wi-Fi para ello: el 3G es casi tan ubicuo como la cobertura de los móviles.

Pero donde está la verdadera magia del sistema es en Whispersync, la tecnología de Amazon para sincronizar automáticamente nuestras bibliotecas y puntos de lectura entre distintos dispositivos. Al comprar un libro en mi Kindle lo tengo automáticamente disponible para su descarga en cualquiera de las versiones hardware o software que tenga registradas del lector y, gracias a Whispersync, puedo continuar su lectura ininterrumpidamente entre distintos dispositivos. Dejo de leer en la página 35 de un libro en el Kindle (físico) y puedo continuar por esa misma página en la app Kindle de mi iPhone, por ejemplo.

Y como dije en el punto anterior, todo esto sin necesidad de pagar nada, ni elegir ningún operador ni configurar absolutamente nada: sencillamente instalar y funcionar.

Obtener libros

Este ecosistema y su facilidad de uso es lo que confiere a Amazon una enorme ventaja sobre sus competidores. Y de ese esperpento malparido llamado Libranda mejor ni hablamos, que me cabreo. Otro día.

Veamos ahora un poco más en detalle el proceso de comprar un libro por Amazon para después compararlo con el proceso de pasar nuestros propios documentos al lector.

Podemos, como ya hemos dicho, navegar por el catálogo de libros disponibles para Kindle en Amazon desde el mismo dispositivo, bien hojeando las novedades, las sugerencias de Amazon relacionadas con nuestras compras previas (al igual que en su web) o buscando por palabras clave. Una vez localizado el libro que queremos, podemos elegir bajas una muestra del mismo o directamente comprarlo. En ambos casos recibiremos lo seleccionado en nuestro dispositivo generalmente en menos de un minuto o podremos empezar a leer. Si hemos realizado la compra desde un navegador “normal” en un ordenador el proceso es exactamente el mismo, con la salvedad de que tendremos que conectar la red Whispernet en el Kindle para recibir todas las descargas que tengamos pendientes. Amazon carga nuestras compras directamente a la tarjeta de crédito o débito que tengamos consignada como medio de pago en nuestra cuenta, y nos identifica porque al comprar el Kindle lo hemos registrado con nuestra cuenta de cliente, por tanto reconoce automáticamente quiénes somos y dónde debe realizar los cobros. Desde el Kindle no tenemos que introducir ninguna contraseña ni validarnos para nada.

Por cierto, permitidme que comparta con vosotros un pequeño truco: buscando en Kindle por los términos “spanish edition” nos aparecen 10.414 títulos disponibles en nuestro idioma en el catálogo de Amazon.

Pero claro, no sólo de libros comprados en Amazon vive el hombre. Podemos pasar documentos propios al Kindle sin tener que comprarlos a Amazon. Documentos propios, libros electrónicos comprados en otras librerías online o descargados del Proyecto Gutenberg, páginas web guardadas en modo texto para leer con más calma, y sí, también, libros de dudosa procedencia. A pesar de que los libros comprados en Amazon tienen DRM y un formato exclusivo de Amazon (AZW, en realidad un MOBI con algunos cambios en la estructura interna), el lector es compatible con bastantes más formatos con la única y clamorosa excepción del EPUB.

Pasar los documentos al lector es bien sencillo: conectándolo al ordenador mediante USB y pasando los ficheros como si fuera un disco duro externo, sin necesidad de engorros estilo iTunes, sincronías ni demás pavadas. También podemos hacer que Amazon nos lo envíe por correo a la cuenta de nuestro lector. Aquí tenéis una página (en inglés) que detalla todas las opciones disponibles.

Y también podemos usar Calibre. Es una aplicación gratuita desarrollada por Kovid Goyal que merece una entrada aparte. De momento baste decir que, entre otras muchas cosas, nos permite organizar nuestra biblioteca local en el ordenador, convertir libros a varios formatos y copiar libros desde nuestro eReader al ordenador y viceversa. Tiene soporte nativo para el Kindle y funciona como una maravilla. Si descargas libros de internet te encontrarás con el formato ePUB más de una vez, que es incompatible con el Kindle. Lo cargas en Calibre, lo conviertes a MOBI, lo pasas al Kindle y a disfrutar. Eso sí, hay que tener en cuenta que todas las ventajas antes mencionadas en el ecosistema se pierden en los documentos cargados en el lector que no pertenecen al catálogo de Amazon y no han sido adquiridos allí. 

may13

Kindle básico (I)

Kindle DXDesde hace unos cuantos meses soy el feliz poseedor de un Kindle DX. Aunque mi primer lector fue un Grammata Papyre, me decidí a probar el lector de Amazon con el Kindle 2 y desde entonces no he necesitado probar ninguno más.

Sin embargo, soy consciente de que un lector que sólo se vende en una tienda online como Amazon, que no tiene soporte en castellano, y que no tiene soporte nativo para uno de los formatos de ebook más extendidos (EPUB) no es, a priori, muy atractivo para el consumidor español. Y sinceramente creo que es un error. En mi opinión, el Kindle es, por muchos motivos, el mejor lector de ebooks disponible en el mercado actualmente.

En esta entrada y en las siguientes quiero ofrecer una ayuda al potencial comprador de Kindle: los distintos formatos, opciones de compra y precios, dónde y cómo conseguir libros para el Kindle, manejo y cuidados, complementos de software y hardware, etc.

Modelos y precios

Actualmente se pueden elegir entre dos modelos de Kindle: el Kindle y el Kindle DX. La principal diferencia entre ellos es el tamaño: el Kindle tiene una pantalla de 6 pulgadas mientras que la del DX es de 9,7 pulgadas. Los precios de ambos dispositivos varían dependiendo de la variante de Kindle que elijamos, como vemos en la siguiente tabla:

Modelo Wi-Fi 3G Publicidad Precio
Kindle DX No No $379
Kindle 3 No $189
Kindle 3 No No $139
Kindle 3 No $114

Primera duda que se plantea: ¿Kindle DX o Kindle 3? Pues depende del uso que le vayas a dar a tu lector: si sólo vas a leer libros cuyo contenido sea primordialmente texto (novelas, ensayos, libros de autoayuda, etc) con el Kindle 3 te sobra. Pero si piensas leer libros técnicos, revistas o cualquier otro tipo de publicación con muchos gráficos, tablas donde la maquetación sea importante, necesitas un DX. La pantalla de nueve pulgadas del DX es perfecta para leer PDFs sin tener que redistribuir una página del PDF en varias pantallas del lector, ni tener que hacer zoom ni nada por el estilo: cada pantalla de tu lector es una página completa del PDF, y se leen estupendamente. Además, a pesar de ser más grande no pesa mucho más, y se puede sostener y leer cómodamente con una mano.

Si nos decantamos por un Kindle 3, tenemos tres opciones donde elegir: WiFi + 3G, sólo WiFi y sólo WiFi con anuncios, la más reciente y económica. Una vez más, el uso que queramos dar al lector nos facilita la elección: el factor diferencial es el 3G. Usamos el 3G en el Kindle principalmente para acceder a la tienda Kindle de Amazon desde el propio dispositivo y poder buscar, comprar y descargar libros en cuestión de segundos, y para navegar por la web con ciertas limitaciones.

(Aprovecho para dejar claro desde un buen principio que, a diferencia de otras compañías, Amazon nos ofrece el servicio 3G del que dispone nuestro lector completamente gratis, uno de los factores que hacen a esta opción mucho más atractiva, no sólo por el precio sino por la comodidad: no hay que elegir operador ni configurar nada, según sacas el Kindle de la caja, a funcionar)

Por lo tanto, si tenemos previsto acceder a Internet en lugares sin cobertura WiFi necesitamos el 3G, en caso contrario con WiFi es más que suficiente. Por último, ¿con o sin anuncios?

La modalidad con publicidad es el último invento de Amazon para hacer su lector si cabe más universal y accesible: a 76€ al cambio, creo que es el lector más barato del mercado con diferencia. Todos los Kindles tienen un salvapantallas que se activa cuando el lector lleva un determinado tiempo inactivo, los salvapantallas de los Kindle normales son imágenes relacionadas con la literatura, autores, etc. En el Kindle con publicidad, los salvapantallas son anuncios. De hecho, los anuncios sólo se ven cuando no estamos usando el Kindle (en modo salvapantallas a pantalla completa), o cuando estamos en la pantalla principal (la Home) en una barra inferior como las aplicaciones con publicidad de los smartphones. A diferencia de éstas, sin embargo, la publicidad nunca se ve cuando estamos leyendo un libro. Por lo tanto, una opción muy atractiva.

may04