Cosas Interesantes

lunes, 18 de enero de 2010

Nuevo FIMWARE de JOTAS: el JOTAS 04 para Mi PAPYRE 6.1 reader / New MOD FIRMWARE: JOTAS 04

NOTA: esta entrada debió publicarse el 20100111, pero por error quedó como borrador.
Uno de nuestros gurús residentes, JOTAS se ha decidido por fin a lanzar sus propias compilaciones de FIRMWARE. Está basado en la versión de BUGGINS de 20091108, a la que se han ido incluyendo mejoras y modificaciones, entre ellas una versión de COOLREADER renovada parcialmente, y generada, como el resto del firmware, en el SDK antiguo y con el WolfLinux 2.6.11.7

CARACTERISTICAS DEL FIRMWARE

- Arranca en español y totalmente configurada.
- Permite la carga de nuevas librerías “en caliente” desde la carpeta SD:\lib (sin "punto")
- BOOKSHELF con menú de contexto “Abrir-Copiar-Borrar”
- Incluye DJVU de TIGRAN v1.96

MEJORAS EN COOLREADER 
Versión renovada, del COOLREADER 3.0.19 (20100109)
- Disponibles 40 tamaños de letra, con incrementos de punto en punto.
- Disponible nuevo escalado de márgenes con valores de 0-5-8-10-15-20-25-30.
- Disponible nuevo escalado de interlineado con valores de 80-90-100-110-120-130-140-150%.
- Los Marcadores e Libros recientes ya no tienen la limitación de 1 página, pudiendo configurarse 32 y 16 respectivamente.
- Permite cambiar y asignar la función de todas las teclas de función.
- Ficheros de idioma y ayuda mejorados y revisados.


Lo tenéis para vuestra comodidad en DESCARGAS PAPYRE – FIRMWARE - Nº16


Based in BUGGINS 20091108, with a  lot of debugging and some enhacements; and a renewed COOLREADER version. Download in DESCARGAS PAPYRE – FIRMWARE - Nº16

Nueva versión FIRMWARE TIRWAL 2.0 para Mi PAPYRE 6.1 reader / New TIRWAL’s FIRMWARE versión

FIRMWAROMETRO_TIRWAL Hacía ya unos días que TIRWAL no nos sorprendía con una actualización de su FIRMWARE, pero sabíamos que estaba al caer.

NOVEDADES EN COOLREADER
Con respecto a la versión 1.9 la gran novedad es la incorporación del COOLREADER 3.0.21 en su última compilación de 20100114, que es el mismo que están montando BIV SUMY y BUGGINS; aunque TIRWAL es el primero que lo lanza ya compilado dentro del firmware y no como librería.

Y COMO SIEMPRE…
Incluye ya compilados los ficheros de silabeo en ESPAÑOL para COOLREADER de JOTAS y SOLSTICIO (esJOTAS y esSOLSTICIO)

Para vuestra comodidad la podéis descargar desde DESCARGAS PAPYRE  - FIRMWARE – Nº 20

domingo, 17 de enero de 2010

Más RegEx para mejorar los ebooks de Mi PAPYRE reader (Cap.02)

 

 

 

PAPYRE STREETDesde PAPYRE STREET, Coco va a continuar lo que explicamos en el Cap.01 sobre RegEX ayudandonos con más ejemplos de cómo utilizar RegEx, lo que ya hemos comprobado que es muy útil para mejorar nuestros  ebooks. Seguimos usando como ejemplo unas búsquedas sobre el programa SIGIL, pero Coco profesor ya sabeis que podeis utilizar RegEx en otros programas como OFFICE WORD, OPENOFFICE, grep, etc…

MÁS EJEMPLOS PRÁCTICOS
Revisando un ebook me doy cuenta de que hay un problema generalizado con los textos en cursiva.
CLICK para IMAGEN Después de algunos textos en cursiva, como el nombre propio “Kon-Tiki”, por ejemplo; la letra cursiva no acaba después de dicha palabra como debería ser sino que el atributo de cursiva se prolonga mucho más allá, en algunos casos, hasta el final del párrafo. Esto es capaz de arruinar por completo el libro. Pulsad encima de la imagen para ver el tipo de SUSTITUCIÓN que es necesaria.
CLICK para CODE Cómo las palabras itálica son términos concretos (“daymio”, “shogun”, …) podremos realizar la búsqueda apoyandonos en ellas.
Vamos a corregir todas las ocurrencias en la que la palabra “daymio” esté involucrada.
¿QUE HAY QUE BUSCAR?


Como siempre:
- Una parte o cadena de carácteres fija, que es siempre igual. En este caso, el codigo para conectar la cursiva con la palabra “daymio” a continuación:
<span class="italic1em">daimyo
- Una parte variable, que pueden ser varias líneas de texto: Asi pues, entre corchetes ([]) tendremos que escribir una expresión que pueda comprender cualquier texto, de ejemplos anteriores ya conocemos [a-zA-Z0-9]* que encontrará cualquier número (por el asterisco) de letras y números. Pero en este caso no es suficiente, ya que en varias líneas de texto podemos encontrar espacios, guiones, signos de puntuación, exclamaciones, interrogaciones, y caracteres no incluidos en a-zA-z, como las vocales con tílde, por ejemplo. Asi pues añadimos todo eso para dejar una expresión:
[\(\ÑñÓÁÉÍÚ¡!?¿*(¼)\).,;a-zA-Z0-9\-_\s\c]*
Los caracteres especiales van encerrados entre \(\…\) –parentesis-barra inversa- y al final añado “\s” para los espacios (y suele incluir el tabulador). “\-“ es necesario para que encuentre el carácter guión, porque cómo se utiliza para definir las cadenas a encontrar (“A-Za-z0-9”) debe ser tratado como caracter especial. Podiamos haber incluido otros caracteres especiales como: *:«»'-%=º—{ 
- Otra parte no variable, en nuestro caso, el cierre de la etiqueta “span” que termina la aplicación de la class “italic1em”, que aplica un estilo con cursiva: </span>
La expresión completa encerrando la parte variable entre parentesis queda:  

<span class="italic1em">daimyo([\(\ÑÓÁÉÍÚ¡!?¿*(¼)\).,;a-zA-Z0-9-_\s\c]*)</span>
Y ahora tengo que crear la expresión de sustitución:
Será:
<span class="italic1em">daimyo</span>

Porque lo que quiero es que justo después de la cadena “daimyo” se acabe la cursiva. Pero luego tendrá que venir todo el texto que hubiera entre “daimyo” y el cierre de “<span>”; añadimos “\1” que representa la primera parte variable que tengamos en la expresión de búsqueda:
<span class="italic1em">daimyo</span>\1

Click to IMAGE
Si pulsais en las imágenes podreis ver el cambio realizado
Click to IMAGEOTRO EJEMPLO 
CLICK para CODE Si pulsas en la foto, verás el cambio que quiere hacerse:

 


image 

Es decir:
Buscar
<div class="s([0-9{1,0}]*)">(\n\s*)<p class="calibre2"><span class="([a-z]*)">([ñÑÓÁÉÍÚáéíóú¿?,;._A-Za-z0-9\s\-·]*)</span></p>(\n\s*)</div>
Y sustituir por:
<div class="s37">\2<p class="calibre2"><span class ="italic">\4</span></p>\5</div>

“\2”, “\4” y “5” hacen referencia a las partes variables entre parentesis de la expresión de busqueda (la 2nda, la 4ta y la 5ta): (\n\s*),([ñÑÓÁÉÍÚáéíóú¿?,;._A-Za-z0-9\s\-·]*) y (\n\s*) 
respectivamente. 


Esto es todo por hoy, seguiremos poniendo ejemplos de RegEx.


Y recordad, niños, esto es CERCA image15 y esto es LEJOS image315
sábado, 16 de enero de 2010

Aprendiendo a usar EXPRESIONES REGULARES (RegEx) en SIGIL para retocar los libros de Mi PAPYRE 6.1 reader

PAPYRE STREETDesde PAPYRE STREET, Coco va a ayudarnos hoy a manejar RegEx, lo que seguramente nos será muy útil para mejorar nuestros  ebooks. Vamos a utilizar como ejemplo unas búsquedas sobre el programa SIGIL, que es estupendo pero tiene el problemilla de que sólo genera la TOC (tabla de contenidos) para lo que esté incluido entre etiquetas heading (1 a 6); por lo que uno se encuentra con que hay que recrear el índice del libro desde cero. Y si uno tiene 78 capítulos divididos en 6 libros, se puede tirar un buen rato, además de saltarse alguno o cometer algún error. Coco profesor Está técnica RegEx está disponible en todo tipo de programas, desde OFFICE WORD a lenguajes de programación como PYTHON; o el famoso GREP de LINUX.

RegEX: Buscar y Sustituir mediante EXPRESIONES REGULARES 
RegEx
es simplemente un “lenguaje” para BUSCAR y REEMPLAZAR texto. Es muy potente y tremendamente productivo cuando se sabe utilizar. Digo “lenguaje” entre comillas porque desgraciadamente NO ES UN ESTANDAR y los distintos motores de búsqueda RegEx incluidos en las distintas aplicaciones o lenguajes tienen diferencias en su sintaxis. En cualquier caso, una vez entendido el concepto no es mucho problema. SIGIL utiliza las convenciones de notación heredadas de Qt, el entorno de desarrollo que se ha usado para programarlo; aunque he leido que el autor está pensando sustituirlo por PCRE, que es la biblioteca PERL para RegEx incluida en C y sus variantes o en cualquier lenguaje de programación que permita usar librerias (Visual Basic).

¿Que hace RegEx y cómo lo hace?
RegEx
permite buscar cadenas de texto sin declarar explicitamente sus componentes, lo que hace que sea posible encontrar cosas como: “un texto de 5 caracteres junto a 3 números al final de una palabra”, es decir permite añadir variables e incluso lógica a la busqueda de cadenas. Y a la hora de reemplazar permite definir que partes de la cadena deben ser reemplazadas y cuales no, lo que permite una flexibilidad completa. Pero todo esto es mucho más fácil de describir con un ejemplo.
EJEMPLO PRÁCTICO image Necesito quitar los <p class="calibre2"> y </p> que estan alrededor del grupo <img class=”calibre6”.../>

  Voy a buscar cuantos tengo en el texto:

image


El problema para seleccionar las 13 ocurrencias a la vez es que lo que sigue a  <...src=../images/...p> es variable ya que son los diferentes nombres de los gráficos insertados en el libro. Asi que en realidad lo que quiero encontrar son 2 cadenas fijas con una parte variable (PV)en el centro:
<p class="calibre2"><img class="calibre6" src=(PV)/></p>
Voy a construir la RegEx que me seleccione esa parte variable:
Escribo entre corchetes los componentes que hay, para empezar “puntos” (.) y “barra inversa” (/) y como hay más de uno le pongo el asterisco (*) al final que significa “que el numero sea indifente”.



image
Si compruebo con “Contar” SIGIL me dice que ha encontrado 13 ocurrencias, luego vamos bien. Pero además hay números y letras, que podrán ser mayusculas o minusculas (no lo sé cierto); asi que los añado a la expresión de búsqueda:
imageCompuebo y sigo teniendo 13 ocurrencias, parece que ya he encontrado la parte variable (PV)luego sólo me resta añadir la cadena fija del final que empieza en la comilla (“) de cierre
image
Asi pues la expresión RegEx de búsqueda es:
<p class="calibre2"><img class="calibre6" src="[./a-zA-Z0-9]*" /></p> Pero ahora crear la expresión de sustitución:
Lo primero para poder reemplazar es que la parte/s variable/s de la expresión de búsqueda debe/n encerrarse entre parentesis ():
<p class="calibre2"><img class="calibre6" src="([./a-zA-Z0-9]*)" /></p>
Y ahora vamos con la expresión de sustitución:
Como queremos quitar la parte de los <p class="calibre2"> y </p> será:
<img class="calibre6" src="([./a-zA-Z0-9]*)" />

pero sustituimos todas las partes variables (lo que está entre parentesis) por “\número”; es decir si tuvieramos 2 partes variables sustituiriamos por “\1” y “\2”. En nuestro caso queda así:
<img class="calibre6" src="\1" />
image image Le damos al botón de “Replace All”…
image image Como vemos ha realizado correctamente la sustitución. De un solo golpe 13 reeemplazos. Como veis, tremendamente útil.

En http://gskinner.com/RegExr/ teneis una página que puede ayudar a aprender y entender las expresiones regulares
http://www.regular-expressions.info/charclass.html
Vamos a seguir trabajando más ejemplos de RegEx (Expresiones Regulares) en próximas entradas, porque esta ya está quedando muy larga.

Y recordad, niños, esto es CERCA image1 y esto es LEJOS image31

Nueva versión del FIRMWARE oficial de GRAMMATA para el PAPYRE 6.1: v2.20

image En breve, GRAMMATA lanzará la versión 2.20ES del FIRMWARE OFICIAL para mi PAPYRE 6.1 reader. Estamos a la espera de más detalles.


MODIFICACION 20100116
Aunque podemos suponer que será más o menos la adaptación de la versión de la 2.20EN de 20091124 de JINKE, cuya mayor novedad era incorporar el ADE para PDF y ePUB con 9x zoom; y el reloj en “6.Ajustes-Settings” 



Info de ZONA EBOOK (pulsar badge en columna derecha del BLOG).

viernes, 15 de enero de 2010

Correcciones y Adiciones al tiGOR 2010 20100113

PORQUE NADIE ES PERFECTO…
BIV_SUMY ha lanzado unas correcciones y añadidos sobre el FIRMWARE “tiGOR 2010 20100113”

BUENAS PRACTICAS
Pero antes de nada vamos a recordar unas buenas prácticas muy convenientes en esta época que andamos cambiando los FIRMWARES cada 2x3:
- Antes de la actualización conviene hacer una copia del directorio “SD:\crengine” que como sabéis es dónde están alojadas las opciones de configuración de COOLREADER. Especialmente, todos los ficheros *.INI y *.CSS
- Después de actualizar, realizar un reset (pinchando en el agujero que está al lado de la tapa de la batería) para que el primer arranque del reader PAPYRE 6.1 sea “limpio”.
- Nada más arrancar poner el reloj en hora para mantener coherente la lista de libros recientemente leídos con se fecha-hora.

AÑADIDOS
Podéis descargar de DESCARGAS PAPYRE FIRMWARE Nº18a el fichero de texto que contiene un par de párrafos que debéis añadir a SD:\crengine\keymaps.ini porque si no la función de remapeado de teclas no funcionará correctamente. Pero lo mejor es que en DESCARGAS PAPYRE FIRMWARE Nº19 os está esperando una nueva versión de COOLREADER, (20100114) en forma de librería. Si queréis actualizar el programa podéis descomprimir el archivo (libfb2.so) en HD:\.lib.
Así arrancará el nuevo COOLREADER.
jueves, 14 de enero de 2010

Nuevo FIRMWARE de Biv_SUMY: tiGOr BOOK 2010 para Mi PAPYRE 6.1 reader (v20100113) / New FIRMWARE from Biv_SUMY: tiGOr BOOK 2010 (v20100113)

HOMER AGOBIADO MAS FIRMWARES CON NUEVAS PRESTACIONES
Me está empezando a pasar como a Homer que para manejarse con tanto nuevo FIRMWARE, tiene uno que ser ingeniero atómico. Poruqe efectivamente, cada nuevo FIRMWARE incorpora nuevas funcionalidades cada vez más potentes y complejas.



tiGOR BOOK 2010 de Biv_SUMY
Y lo último es el “tiGOR BOOK 2010” v20100113 de Biv_SUMY que basado en el BUGGINS 20100110 NewSDK (ver estas entradas) lo mejora añadiendo nuevas funcionalidades. Porque al contener el KERNEL de sistema desarrollado a partir del nuevo SDK tiene la ventaja de la velocidad. Pero Biv_SUMY lo ha llenado de novedades y mejoras (que a veces no son la misma cosa).

NOVEDADES Y MEJORAS


- Eliminadas fuentes y lenguajes asiaticos para aligerar
- Nuevas Fuentes añadidas: Bookman Old Style, Dejavu Serif, Droid Serif, Georgia, MysIC, Verdana, AcademyC, BalticaC, BannicovC, Garamound, JournalC, NewJournalC, NewStandartC, ScoolBookC 
- Se ha cambiado el nuevo COOLREADER 3.0 al skin BLANCO
- Se ha cambiando la apariencia del MENU general del BOOKSHELF
- Directorio “.lib” para depositar librerias para su arranque “en caliente” sin necesidad de recompilar el FIRMWARE (puede estar tanto en HD:\ como en SD:\)


- Posibilidad de utilizar el BOOKSHELF como shell del sistema para ejecutar scripts (!!)
- A la variable PATH del sistema se han añadido dos directorios nuevos:


/mnt/.bin – es decir, para localizar “.bin” en la raiz de SD:\ (tarjeta)
/home/.bin - es decir, para localizar “.bin” en la raiz de HD:\ (memoria interna). Desconozco la utilidad de esta opción: investigaremos.

LECTORES POR DEFECTO Y ALTERNATIVOS, AHORA CONFIGURABLES
Como recordareis de la versión de BUGGINS 20100110 NewSDK permitia elegir para cada tipo de libro entre un lector primario y otro secundario. Pues mediante un archivo filetype.conf depositado en la raiz de SD:\ podremos configurar esa elección y por lo que he visto algunas cosas más.

COOLREADER y DJVU

Y por supuesto la ultima versión de COOLREADER 3.0 que incluye un editor de configuración de teclado de tipo gráfico. Y la última versión del DJVU de TIGRÁN

LOS SCRIPTS
Los scripts deberan ser escritos en BASH (*.sh) y requieren que la primera línea del archivo sea:
#! /bin /sh

PERO...
Todavía quedan algunos pequeños bugs que depurar como por ejemplo que los FB2 no muestran la serie y el número de serie en el BOOKSHELF como hacían antes.


INSTALACIÓN


El archivo ZIP comprimido contiene el fichero del FIRMWARE (V3Update.bin) y el fichero de configuración  filetype.conf que puede copiarse a la raiz de la tarjeta SD:\ si se desea experimentar.

Como siempre, disponible en DESCARGAS PAPYRE FIRMWARE Nº18

Precauciones a tener en cuenta si utilizamos el DRM de ADOBE en nuestro PAPYRE 6.1 reader / Things to be careful about when using ADOBE DRM in Mi PAPYRE 6.1 reader

image

Muchos usuarios que se decantan por los ebooks en PDF o ePUB utilizan ADE de ADOBE en su PC para comunicarse con el PAPYRE o lector electrónico; y así gestionar su biblioteca. Pero si estás utilizando ebooks con DRM, ADE se hace prácticamente imprescindible.

LA AUTORIZACIÓN DEL DISPOSITIVO
ADE debe autorizar el dispositivo que se conecta al PC para trabajar con él. Para ello, el dispositivo conectado, es detectado, identificado, y se solicitan las credenciales al servidor de ADOBE para autorizar al tándem dispositivo-usuario.
Este proceso podemos verlo en nuestro PAPYRE, dentro del directorio
SD:\.adobe-digital-editions\  o si alguna vez te has conectado con ADE sin tener la tarjeta SD insertada en el dispositivo, también en HD:\.adobe-digital-editions\ 
Vemos dentro del directorio 2 archivos en XML: “device.xml” y “activation.xml”

DEVICE.XML
 CODE
Vemos que incorpora toda la información necesaria para identificar el dispositivo. El PAPYRE, como es lógico es identificado como un JINKE V3. El deviceClass coincide con el DEV ID que podemos ver en la opción de MENÚ “Acerca de”.   

ACTIVATION.XML
image 
Vemos que la activación y autorización se hace para el binomio usuario-dispositivo y que el token de activación parece que se realiza contra el <fingerprint> un campo que, en principio debería ser independiente de la identificación (nombre, etc....) que se haga del dispositivo. Hasta aquí todo parece correcto.

SIN EMBARGO…
Por eso me llamó mucho la atención el informe de varios usuarios que cuentan que tras haber cambiado de FIRMWARE varias veces, ADE les negaba la activación y el acceso a sus libros comprados con protección DRM porque habían agotado el número de slots de dispositivo disponibles. Es decir, ADE “pensaba” que estaban intentando leer los libros en DISPOSITIVOS DISTINTOS.
¿Es esto posible? Me puse a investigar un poco…
Y efectivamente, después de actualizar a la versión 20100110 de BUGGINS inspeccione de nuevo mi DEVICE.XML …
device.xml Resulta que ahora tengo un ¡¡¡LBOOK READER con un DEVICE SERIAL DIFERENTE!!!

Aunque el <fingerprint> es el mismo, parece posible que ADE llegue a pensar que no son el mismo dispositivo.
Para resolver el tema, hubo que entrar en una interminable ronda de servicio de soporte con ADOBE y demostrar que en realidad el dispositivo era el mismo y no que no se había intentado hacer trampa.
Así pues, si utilizáis ADE con libros de pago protegidos con DRM; tened la precaución de “retirar” la autorización del dispositivo antes de actualizar el FIRMWARE (que es el supuesto para cuando se cambia realmente de dispositivo). Si no, os podéis encontrar con la desagradable sorpresa de que ADE no os permite acceder a lo que legítimamente es vuestro.

LA SOLUCIÓN

Debeis iniciar ADE con el ebook conectado y pulsar CTRL-SHIFT-E para “desautorizar” el ebook. Os evitareis futuros problemas ya que ADE sólo permite una cierta cantidad de dispositivos distintos.

miércoles, 13 de enero de 2010

Buenas noticias sobre el reader HANLIN A6/A9 para su distribución por GRAMMATA en el mercado español: nace el PAPYRE 9.0 / Newsflash: Good news about the A6/A9 for the Spanish market

GRAMMATAParece que mi reader PAPYRE 6.1 va a tener pronto familia. Efectivamente, Juan González,  director de GRAMMATA, recien bajado del avión desde Las Vegas; dónde ha acudido a la feria  CES 2010 que ha sido el foro de exhibición de las últimas novedades en informática de consumo, ha tenido la gentileza de confirmarnos ciertos extremos sobre los nuevos lectores electrónicos A6/A9.

”Efectivamente estuvimos probando los nuevos dispositivos de JINKE y negociando la incorporación a GRAMMATA”
En el stand de JINKE las sensaciones al probar el dispositivo no han podido ser más positivas, especialmente con la nueva tecnología de tinta eléctrónica SiPIX, que sustituirá a la VIZPLEX que es la que actualmente se utiliza en el PAPYRE. Tanto es así que podemos confirmar fechas y precios para el primer lanzamiento, que será el del dispositivo de 9”, y que siguiendo la nomenclatura habitual se llamará PAPYRE 9.0.


”Por lo pronto, esperamos tener el Papyre 9.0 en abril de 2010 a un precio de 350€ IVA y transporte incluidos”

Con lo que se confirma el precio rompedor del dispositivo, que ronda el 30% de diferencia en menor precio para funcionalidades equiparables.

martes, 12 de enero de 2010

Las mejoras del FIRMWARE 20100110 NewSDK de BUGGINS / Enhancements in BUGGINS’ FIRMWARE 20100101 NewSDK

ESTO PROMETE…
Según lo vamos usando, más contentos estamos de haber migrado a este FIRMWARE. Además de la velocidad y la estabilidad (el PAPYRE 6.1 no se ha quedado tostao ni una sola vez), empezamos a encontrar las mejoras.

LAS MEJORAS
- Puedes elegir para los distintos formatos de ebook entre el lector por defecto y el alternativo.

TXT, HTML, RTF: COOLREADER 3.0, Alternativo = HANLIN con 1x, 2x sin márgenes y 3x apaisado
PDF:  ADE de Adobe, Alternativo = xPDF (desgraciadamente esto parece que no funciona, todavía)
ePUB:  ADE de Adobe, Alternativo = COOLREADER 3.0 ¡Por fin vamos a poder elegir fácilmente leer un ePUB con CR3 o con ADE!
El primario se elige con la pulsación normal y el alternativo con la pulsación larga. Saldrá el famoso menú de contexto de “Abrir-Copiar-Borrar” y elegimos “1.Abrir”
- Si se borra un libro se elimina su entrada de la lista de libros recientemente leídos.
- el Icono de la bateria se ha dibujado con segmentos negros que hacen que se distinga mejor si esta llena/vacía.
- Ahora tiene un “buffer” de teclado. Si damos varias pulsaciones rápidas se producirán todas, no como antes que se perdían y solo se ejecutaba la primera.
- La fuente de sistema afecta también al BOOKSHELF y además podemos verlo inmediatamente.

LOS FALLOS
En el FB2, ya no muestra la serie de la novela.

Y EL SDK 3 ESTÁ AQUÍ PARA QUEDARSE…
Porque parece ser que el FIRMWARE del futuro A6/A9 estará basado en el mismo SDK.
© Cosas Interesantes