miércoles, 19 de febrero de 2020

Acrobat Reader: Cómo cambiar el nombre de usuario

Cambiar el nombre de usuario en Acrobat Reader es tan poco intuitivo que llegue a pensar que era imposible... y sin embargo, no solo puede hacerse, sino que es muy fácil. La clave está en no comenzar a buscar un ajuste que no existe en las opciones y preferencias del usuario, tal como haríamos con otros programas, sino seguir estos pasos:

1. Abre cualquier documento en Acrobat Reader, tras seleccionar cualquier fragmento de texto, haz clic en el botón derecho del ratón para que aparezca este menú.


2. Elige la opción Resaltar texto y, a continuación, vuelve a hacer clic con el botón derecho y elige Propiedades... Se abrirá el siguiente cuadro de diálogo:

3. Basta con hacer clic en la pestaña General y aparecerá por fin la opción que buscábamos:


4. Ahora podemos escribir en el campo Autor el texto que queramos que aparezca como usuario que ha redactado el comentario.

¡Y ya está! Hay que tener cuidado, no obstante, con un detalle. El cambio que acabamos de hacer solo se aplicará a la nota que acabamos de crear. Sin creamos una nueva, se escribirá con el nombre anterior. Afortunadamente, este comportamiento es muy fácil de cambiar. Solo hay que marcar la casilla Convertir propiedades en predeterminadas y el nombre que escribamos será el que se utilice a partir de ese momento.

Aparte de cambiar el nombre de usuario, este procedimiento también sirve para cambiar otros ajustes, como el color de la nota y la opacidad. En realidad, este método tiene bastante sentido, ya que es más lógico considerar el nombre del usuario como una propiedad de las notas que de la aplicación. Como de costumbres, es una de esas cosas que son muy fáciles... cuando sabes hacerlas.

martes, 29 de octubre de 2019

ReTexter: Guía instantánea de patrones

ReTexter incluye un par de patrones para obtener resultados rápidamente, pero ¿qué ocurre si quieres algo más concreto? Si es así, puedes utilizar patrones para indicar exactamente lo que quieres cambiar. Tal vez tardes un poco, pero la ventaja es que, una vez que definas los cambios, podrás aplicarlos luego a cualquier otro texto en cuestión de segundos.

A continuación, vamos a ver estos patrones ordenados por complejidad, del más sencillo al más complicado:

1. El más simple
Ejemplo: efeto → efecto
Operación: replaceToken
Sirve para: para cambiar una o varias palabras sin complicaciones. Si se encuentra un texto, se sustituye por el otro.
Utilízalo para: cualquier operación que se podría hacer prácticamente con el Buscar y reemplazar de un procesador de texto (sin cambios de género ni de número).
 
Si el texto hace un uso particular de las mayúsculas, se imitará en el texto reemplazado. Es decir, el ejemplo anterior cambiaría efeto, Efeto y EFETO por efecto, Efecto y EFECTO, pero no afectaría  a efetos.

2. El comodín
Ejemplo: vueso* → vuestro
Operación: replaceToken
Sirve para: para cambiar varias palabras que tienen una raíz en común.
Utilízalo para: cambios similares al anterior, pero cuando hay varias palabras muy parecidas.

¡Ten cuidado! Esta operación suele ser impredecible y, por ejemplo, si quisieras simplificar el ejemplo anterior para que incluyera también vuesa (vues* → vuestr), te encontrarías con que los vuestro los convierte en vuesttro, así que haz pruebas antes de utilizarlo.

3. El variable
Ejemplo: tan gran $1 → $1 tan grande
Operación: replaceToken
Sirve para: para cambiar de posición una o varias palabras. Por ejemplo, en el ejemplo anterior serviría para cambiar tan gran miedo por miedo tan grande, pero también tan gran alegría por alegría tan grande, etc.
Utilízalo para: cuando quieres reordenar una expresión. Recuerda que cada variable solo corresponde a una sola palabra. Para localizar varias palabras, deberás añadir más variables.

4. El variable quisquilloso
Ejemplo: en $gerundio1 → $gerundio1
Operación: replaceToken
Sirve para: para cambiar varias palabras desconocidas, pero de una categoría gramatical concreta. Por ejemplo, en el ejemplo anterior serviría para cambiar en viviendo por viviendo, pero también en llegando por llegando, etc.
Utilízalo para: cambios muy genéricos, pero a la vez muy específicos respecto a la categoría gramatical. Una vez más, ¡cuidado con las consecuencias inesperadas! Si son muy genéricos, es fácil que los resultados sean de risa (o para llorar).

Por el momento, puedes utilizar $verbo, $infinitivo y $gerundio, pero la lista se ampliará próximamente. Si necesitas utilizar varios, añade lo que quieras después de la palabra clave. Por ejemplo $verbo1, $verboPrincipal y $verboA, servirán igualmente.

4. El variable quisquilloso y con transformación
Ejemplo: en $gerundio1:infinitivo → al $gerundio1
Operación: replaceToken
Sirve para: para cambiar palabras desconocidas, que además necesitas transformar a una forma diferente. Por ejemplo, en el ejemplo anterior serviría para cambiar en llegando por al vivir, pero también en volviendo por al volver, etc.
Utilízalo para: reformular completamente una expresión.

Muy importante: observa que en el texto final no se indica la categoría de destino. Es decir, no hay que escribir $gerundio1:infinitivo sino solo $gerundio1 (aunque la palabra ahora sea un infinitivo, vaya).

5. El completo
Ejemplo: poner → colocar
Operación: replaceLemma
Sirve para: para cambiar palabras concretas, pero que se presentan en muchas formas posibles, como verbos. Por ejemplo, en el ejemplo anterior serviría para cambiar pongo por coloco, pero también poniendo por colocando, puse por coloqué, etc.
Utilízalo para: verbos y nombres, especialmente cuando haya un cambio de género implicado.

Muy importante: hasta cierto punto, este cambio tiene en cuenta el cambio de género. Es decir, si cambias efecto por consecuencia, se intentarán ajustar los determinantes y adjetivos cercanos. Por ejemplo, un efecto espantoso se cambiará por una consecuencia espantosa y origen del efecto se cambiará por origen de la consecuencia. No obstante, es una operación complicada y tal vez tengas que hacer algunos ajustes finales.

Con estas posibilidades, ya es fácil hacer un gran número de cambios, pero dado que ReTexter está en pleno desarrollo, próximamente se añadirán y refinarán estas funciones, así que si echas de menos alguna función o tienes alguna sugerencia, no dudes en escribir un comentario.

lunes, 21 de octubre de 2019

Libro: «Los 7 hábitos de la gente altamente efectiva» de Stephen Covey

Hay un viejo dicho en marketing que afirma que «la mitad del gasto en marketing acaba en la basura. El problema es que nadie sabe qué mitad es». Al comenzar a leer este libro, es conveniente saber que en este caso tendremos que aplicar esta regla dos veces. Es decir, es fácil que no estemos de acuerdo con la mitad de lo que leamos y, hasta de esa mitad que nos parece bien, la mitad no nos aporte nada nuevo. Sin embargo, ese 25% que queda tiene ideas tan bien transmitidas y con tal potencial de transformación que hacen que la lectura del libro merezca la pena.


Tal vez los problemas comiencen con el propio título: «Los 7 hábitos de la gente altamente efectiva» parece preceder a una larga lista de consejos que harán que rindamos más en el trabajo, algo del estilo «Acuéstate temprano», «Pasea antes de desayunar» o frases motivadoras como «Somos dueños de nuestro destino». No es así, para bien y para mal. Si alguien espera encontrar recetas mágicas para conseguir el éxito, no las encontrará aquí, aunque esa es precisamente su mayor virtud. En lugar de marcar un camino establecido, este libro anima al lector a encontrar su brújula personal, basada en sus cualidades, aptitudes y valores concretos. Y dado que todos somos diferentes, no sirve de nada tomar prestada la brújula de otro, ya que lo que al vecino le funciona estupendamente podría conducirnos a nosotros al precipicio. No queda más remedio que aprender a conocerse, algo nada fácil teniendo en cuenta lo fácil que es confundir lo que somos con lo que nos gustaría ser o, incluso, con lo que otros quieren que seamos. Hay que reflexionar para encontrar y dar forma a unos principios que encajen con lo que realmente somos y sentimos, algo que exige tiempo y esfuerzo más allá del que exige la lectura de sus páginas. Por tanto, más que devorarlo en unos pocos días, merece la pena ir leyéndolo poco a poco, compaginando su lectura con nuestras reflexiones sobre cómo se aplica lo que  describe a nuestra vida.

Aunque este libro suele colocarse en las secciones de empresa y marketing, su utilidad va más allá de lo profesional, tal como confirma que muchos de los ejemplos que menciona no correspondan al mundo de la empresa, sino a la familia y, en concreto, a la educación de los hijos. Por tanto, sea cual sea el objetivo que nos tracemos, en este libro encontraremos herramientas con las que, para empezar, ese objetivo que nos hemos fijado tiene sentido para nosotros y, una vez que tengamos esta certeza, aplicar un enfoque estructurado para lograrlo.

Incluso no tenemos ganas de trazarnos ningún objetivo y consideramos que en la vida el camino es más importante que el destino, este libro puede ser útil ya que, tal como he comentado, se trata más de una brújula que de un mapa o un itinerario. En algún momento tendremos que tomar una decisión  y, a la hora de hacerlo, nos vendrá muy bien un faro que nos oriente, aunque solo sea para señale el camino que deseamos evitar. Y ni siquiera hace falta que este conocimiento sobre nosotros mismos nos impulse a tomar una decisión diferente. Tan solo saber que estamos haciendo lo que consideramos correcto nos ayudará a afrontar situaciones difíciles con una mejor disposición y mayor tranquilidad. A fin de cuentas, si hay algo peor que estar perdido es acabar en un lugar donde no se quiere estar.

lunes, 14 de octubre de 2019

ReTexter: Una aplicación para cambiar textos en cuestión de segundos

Aunque he desarrollado varias aplicaciones para analizar textos con mucha precisión, llevaba un tiempo con ganas de crear una aplicación más inmediata y desenfadada, algo así como un PhotoShop o FaceApp para textos, algo con lo que cualquier pudiera jugar con un texto, aplicándole filtros interesantes sin tener que ser un profesional del lenguaje ni tener que navegar por una larga serie de tablas y gráficos repletos de datos.

La idea acabó de cobrar forma cuando hace poco releí mi relato favorito de Agatha Christie: «Tres ratones ciegos», una breve historia que desde siempre me ha fascinado por su ambientación. Un matrimonio joven que tras casarse apresuradamente alquila habitaciones en la casa que una tía les ha dejado en herencia, unos misteriosos desconocidos, una tormenta de nieve que les deja convenientemente incomunicados...

Aunque he disfrutado leyéndola tanto como la primera vez, la traducción de C. Peraire del Molino utilizaba a veces los pronombres con los verbos de una forma un tanto arcaica:

Una corriente de aire frío le dio en la nuca. Molly volvióse extrañada. ¿Es que se había abierto la puerta? ¿Habría entrado alguien en la habitación? No, el salón estaba vacío, mas de pronto sintióse nerviosa… asustada. ¿Y si entraba alguien?

Aunque finalmente me resigné a releer la novela tal cual pensé que, utilizando un etiquetador como petraTAG, sería realmente fácil acercar el texto a nuestro siglo. Bastaba con localizar las palabras desconocidas que terminasen en -le o -se (es decir, los ya comentados volvióse y algún que otro dirigióle igualmente nefasto). Si al quitarle la partícula final, el resultado se etiquetaba como un verbo en tiempo pretérito, el pronombre y el verbo podían separarse para invertirlos.

El resultado es una nueva aplicación creada en Java que por el momento he llamado ReTexter y que puede descargarse gratuitamente desde http://www.antakirasoftware.com/retexter/.

La interfaz de la aplicación es deliberadamente sencilla: un campo para indicar el texto que queremos cambiar, un cuadro combinado para elegir entre dos filtros, otro campo por si queremos guardar los resultados y, por último, una casilla para no ver los detalles del proceso. El programa está configurado para que nada más descargarlo seleccione automáticamente un pequeño fragmento de demostración. Por tanto, tras arrancarlo, cuando nos aparezca la pantalla de inicio solo tenemos que hacer clic en Procesar para que aparezca el siguiente resultado:

Ella volvióse extrañada. ¿Habría entrado alguien en la habitación? No, el salón estaba vacío, mas de pronto sintióse nerviosa… asustada. ¿Y si entraba alguien? Ella se volvió extrañada. ¿Habría entrado alguien en la habitación? No, el salón estaba vacío, mas de pronto se sintió nerviosa… asustada. ¿Y si entraba alguien?

El mismo archivo contiene una frase especialmente pensada para la otra operación disponible, el cambio de segunda a tercera persona. Por tanto, si en el cuadro combinado elegimos la opción «Convertir segunda persona a tercera persona» en lugar de la que aparece de manera predeterminada, veremos:

Tú y ella corréis a lo largo del tren. Cuando llegáis al furgón, oís ruido de pasos detrás de vosotros.
Usted y ella corren a lo largo del tren. Cuando llegan al furgón, oyen ruido de pasos detrás de ustedes.

Es fácil ver que esta operación es más compleja que la anterior: hay que flexionar varios verbos, tener en cuenta las mayúsculas y, aún así, quedan cuestiones a las que volveremos más adelante.

Por el momento, estas son las dos funciones que incorpora esta nueva aplicación. ¿Qué os parecen? ¿Se os ocurre alguna otra que lo haría más útil? ¿Creéis que la información podría mostrarse de una manera más útil? Para cualquier sugerencia o duda, no dudéis en dejarnos un comentario.


lunes, 13 de mayo de 2019

Elige tu propio hola mundo (i): formato

Aunque he terminado varios cursos y he escrito algún programa corto en Python, nunca he terminado de sentirme cómodo con este lenguaje, probablemente porque nunca antes había emprendido un proyecto con la suficiente envergadura para afianzar mis conocimientos.

Por tanto, ahora que acabo de terminar un curso a fin de repasar lo que ya sé y ver este lenguaje desde otro punto de vista, he decidido iniciar un proyecto donde pueda aplicar lo que aprendo. En principio, había pensado hacer algo de generación automática de textos, a ser posible relatos o novelas, pero he preferidopor algo más concreto: crear una aplicación que trabaje con libros del estilo de la famosa saga de los ochenta «Elige tu propia aventura».



La originalidad de esta saga, una de las más vendidas de literatura juvenil, radicaba en que en lugar de leerse linealmente, cada pocas páginas plantea al lector varias opciones entre las que debe elegir una, por ejemplo:

Te sujetas mientras el helicóptero choca contra el hielo y se desliza al tuntún. Se parte un lado del fuselaje y arde, con grandes llamas.
Te quedan unos pocos segundos para salir con vida... ¡sólo tienes tiempo de coger una cosa!
Si coges las bengalas, pasa a la página 72.
Si coges las cerillas y la linterna, pasa a la página 80.
Si coges un saco de dormir, pasa a la página 95.

Estos libros tan populares también han ejercido una gran influencia en una generación que marcó una tendencia definitiva hacia un entretenimiento que mezclaba ficción con capacidad de decisión.

Antes de escribir ni una sola línea, necesitaba convertir algún libro a este formato. Ya había trabajado en un proyecto similar, pero en Java, en el que a partir de una hoja de cálculo, se generaba una página web, compatible con Kindle, con la historia en cuestión. En aquella ocasión, el formato era bastante estricto y utilizaba la columna en la que se colocaba cada texto en la columna para diferenciar entre descripciones y opciones.

Para este proyecto, quería que el programa aceptara el texto en el formato más próximo al original posible, para reducir al mínimo el tiempo que se tardaba en convertir un libro a este formato o redactarlo desde cero. Por tanto, decidí que el programa detectara automáticamente las opciones donde encontrara el texto «pasa a la página». El único elemento nuevo que había que introducir sería indicar al principio de cada página su número. Por tanto, una página tendría la siguiente forma:

[...]
*página 19
A esa altura estas bastante seguro de que has recorrido la mayor parte de la distancia que te separa de la última cabaña. No puede faltarte más de un kilómetro y medio para llegar al refugio... y a la radio. A través de la nieve, que cae torrencialmente, divisas un arqueado saliente rocoso que forma algo parecido a una diminuta cueva. ¿Te refugiarás allí y esperarás a que amaine la tormenta o seguirás adelante?
Si te pones a cubierto, pasa a la página 37.
Si continúas la marcha, pasa a la página 27.
*página 21
[...]

El archivo de entrada es un formato de texto plano pero, para que sea posible añadir ilustraciones y estilos de letra, admite etiquetas html. De esta manera, con un poco de práctica es posible convertir un libro de este tipo directamente extraído mediante OCR en una media hora. Para ver un ejemplo de este libro interactivo redactado con este formato, basta con visitar este siguiente repositorio en GitHub, pero si quieres recordar de inmediato la lectura de este libro, puedes leer nuestra miniaventura interactiva, aunque en este caso, no se trata de uno de los libros de aquella colección mítica, sino una aventura nueva redactada expresamente para servir de ejemplo. Notarás que es muy corta, ¿te atreves a continuarla?

Ahora solo queda escribir un programa que sea capaz de trabajar con este texto, pero eso lo veremos en la siguiente entrega.

sábado, 31 de marzo de 2018

AlphaGo: ¿un enfrentamiento entre hombre y máquina?

El documental AlphaGo se plantea como la habitual historia de éxito. Comenzamos conociendo al equipo de DeepMind, una empresa de inteligencia artifical de Google, para que luego se nos muestre muestre el reto al que se enfrentará y, a partir de ahí, el histórico torneo en el que participó contra el campeón del mundo de Go, un antiquísimo juego de mesa oriental, que se presenta de manera similar a cualquiera de los combates de boxeo de la saga de Rocky. El formato es ágil y ameno, aunque la emoción dependerá en parte de que sepamos el desenlace final. A este respecto, el documental hace un buen trabajo ya que no solo se centra en el resultado final, sino en el número exacto de victorias que consiguieron ser humano y máquina, algo que es más fácil que no sepamos.


Aparte de contarnos una historia entretenida, el verdadero interés de este documental radica en las reflexiones que se van entrelazando con el avance de la historia. Brillan en particular las aportaciones de Fan Hui, el campeón europeo de Go que fue el primer jugador profesional que se enfrentó al sistema creado por DeepMind. Sus primeras reacciones ante la máquina son las habituales: primero escepticismo y condescencencia con la máquina, a la que considera incapaz de ganarle, luego sorpresa al comprobar su capacidad y por último enfado y tristeza cuando el ordenador le derrota. Pero lo interesante, es que después de esta previsible cadena de emociones acontece un florecimiento, en el que se da cuenta de que la máquina puede a ayudarle a convertirse en un jugador mejor y se presta a colaborar para aumentar su poder.

La contradicción entre el deseo de que gane la máquina y el miedo a que lo haga flota sobre todo el documental. Incluso hay un momento en el que uno de sus creadores indica que la victoria de la máquina le produce cierta tristeza, porque demuestra que la especie humana ha quedado superada. Dado que probablemente se trate del mayor logro profesional de su vida, es interesante preguntarse si realmente lo siente o si se considera obligado, ya sea de manera consciente o inconsciente, o ponerse en parte en el bando de los humanos.

Estas reacciones son cada muy habituales cada vez que la inteligencia artificial se menciona en los medios. Por lo general, se tiende a desmerecer los méritos de las máquinas y parapetarse en los campos en los que todavía no nos han superado: no es tan maravilloso que un ordenador nos gane al ajedrez, se equivocan cuando hacen una traducción automática, nunca serán capaces de escribir una novela ni tener sentido común ni sentir aprecio por los demás... dicen con frecuencia supuestos especialistas que no son conscientes de que las últimas barreras ante la capacidad de los ordenadores van cayendo.

Ante estos avances tecnológicos que pueden ser revolucionarios, merece la pena mirar atrás y meditar sobre los efectos que han tenido sobre la raza humana progresos similares. Aunque el referente habitual es la revolución industrial del siglo XVIII, tal vez sea mejor retroceder aún más y remontarse a los tiempos de la invención de la escritura, cuando aún no existían los libros. Para los sabios de aquellos tiempo, tuvo que ser todo un agravio que los conocimientos que ellos con tanto cuidado atesoraban y transmitían oralmente quedaran plasmados en una forma física que los pusiera al alcance de cualquier que supiera leerlos. Alguien probablemente pensó que dejar por escrito tales conocimientos fomentaría la pereza mental del ser humano, que delegaría en los libros los conocimientos y no se preocuparía de fortalecer su intelecto.

Ahora que han pasado miles de año, sabemos con certeza que el resultado ha sido precisamente el contrario. Los libros nos han permitido vivir más tiempo, adaptarnos mejor al mundo y, literalmente, llegar a las estrellas. La inteligencia artificial nos ofrece ahora una manera de almacenar nuestros conocimientos, no de una manera estática sino activa y dinámica. No es que vayan a arrebatarnos nuestro sentido común, es que están comenzando a permitirnos fijarlo y ampliarlo, de una manera no tan distinta a cómo los libros ya nos permitieron hacerlo una vez.

Por qué el dinero ya no fabrica mitos

La ritualización como respuesta a la avalancha de contenido infinito.  Nunca se había invertido tanto dinero en producir contenido y...