Convertir coordenadas UTM y geográficas (Colombia)

Más que un manual para gente que ya sepa de topografía, cartografía o ingeniería, el siguiente es un resumen de las herramientas en línea que (a mi parecer) son más útiles para convertir las coordenadas que se pueden obtener con herramientas de uso común entre arquitectos o delineantes.

Normalmente, en arquitectura se suele trabajar con levantamientos topográficos hechos con el llamado sistema de coordenadas UTM (Universal Transversal de Mercator), que marca la distancia en metros de la abcisa (x o Este) y la ordenada (y o Norte), a partir de un punto de referencia que suele cambiar dependiendo de las zonas del sistema cartográfico establecido:

Sin embargo, a la hora de georreferenciar un punto de un proyecto con herramientas de arquitectura como AutoCAD o Revit, o software no especializado como Google Earth, no siempre se logra la conversión correcta de un sistema de coordenadas a otro. Por ejemplo, si fuera por los tutoriales, y usando los servicios en línea que hay, uno diría que las coordenadas UTM del centro de la Plaza de Bolívar en Bogotá, según Google Earth, son: 602489.26 m E, 508305.27 m N. Sin embargo, no es así porque la información no es suficiente.

Por ejemplo, supongamos que el centro de la Plaza de Bolívar esté en las coordenadas geográficas 4.5981206, -74.0782322 (según Google Maps). Lo primero que hay que hallar es el sistema de cada zona. La página más práctica que encontré fue spatialreference.org, que permite ver la zona cubierta por cada sistema de referencia. Por ejemplo, la zona que incluye a Bogotá es EPSG:3116 MAGNA-SIRGAS / Colombia-Bogotá. En dicha página sólo hay que explorar las opciones Previous o Next para saber qué sistema de referencia cubre la zona que deseamos buscar en el resto del país.

Detalle del sitio spatialreference.org con la zona cubierta por la zona Magna-Sirgas Colombia-Bogotá del sistema EPSG:3116 (en las opciones Previous/Next se ve el área cubierta por cada sistema)

Una vez hallado el sistema podemos entrar a EPSG.io y, habiendo introducido el sistema de referencia y el sistema de coordenadas al que queremos hacer la conversión, obtendremos las coordenadas correctas. Que en el ejemplo de la Plaza de Bolívar son 999919.63, 1000212.36 en el sistema UTM.

Conversor de coordenadas del sitio EPSG.io. Es necesario saber el sistema de coordenadas del punto, y el sistema al que queremos convertirlas.

Una vez obtenidas las coordenadas es más fácil trabajar con software como AutoCAD o Civil Map que utilizan diferentes sistemas de coordenadas para la geolocalización de proyectos. También es útil entre arquitectos a la hora de hacer trámites ante la aeronáutica civil, que exige estas coordenadas a la hora de expedir normas para licencias de construcción en predios cercanos a los aeropuertos. Como digo, esta guía va dirigida a arquitectos o delineantes, que no tienen (tenemos) la misma formación en esto que los topógrafos o los ingenieros, por lo cual el artículo queda abierto a correcciones y sugerencias.

Simulando el cubo de Rubik en Excel

Hace ya unos tres años que comencé a estudiar el cubo de Rubik, aquel rompecabezas inventado por Erno Rubik en 1974 y que se convertió en el juguete más vendido de la historia. Coincidió la compra de mi primer cubo (hace muchos más años, uno muy barato y malo en una cacharrería) con la lectura de un artículo de una revista sobre su historia y el hallazgo de métodos para resolverlo y de todas sus curiosidades matemáticas. También descubrí que es una afición muy popular (sobre todo entre coleccionistas) y para muchos, casi un deporte. Así pues, también comencé una pequeña colección de estos rompecabezas:

Mi pequeña colección de cubos de Rubik y sus variantes.

Si bien hay simuladores en línea o para PC, siempre pensé que una buena forma de entender cómo funciona el cubo de Rubik y sus variantes (porque a Rubik sólo puede atribuírsele el clásico de 3x3x3 capas), era poder ver todas sus caras al tiempo (es decir, como un cubo desplegado). Y las únicas aplicaciones que encontré para ver un cubo en 2D eran archivos de Excel, muy ingeniosos pero que se limitaban al cubo de 3x3x3. Así que pensé que podría hacer un simulador 2D de cubos desde 2 hasta n capas. Todavía está en proceso, pero para quien le interese (y tenga sugerencias), el resultado a día de hoy está aquí.

Ejemplo con valor de n=4. Se puede seleccionar cada cara, un punto de la cara (flechas de arriba), y la dirección de giro de la capa (flechas de abajo)

Es más bien un pasatiempo y un repaso de programación que una aplicación ready-to-use, pero permite ver cómo funciona no sólo el cubo, sino los algoritmos que permiten resolverlo o generar patrones.

Cómo girar una matriz cuadrada

Como uso Excel para repasar mis ejercicios de programación, resulta que para poder girar las capas del cubo simulado en Excel necesitaba saber algo que no pude encontrar ni en mis apuntes ni en la web: cómo girar una matriz de n x n (al menos no en Visual Basic). Así que aquí va una propuesta de cómo resolví el problema en Excel a partir de una hoja en blanco y una matriz de 4×4 con los números del 1 al 16:

Girar a la derecha

Sub GirarR()
Dim i, j, n, x, y As Integer
Dim m() As Integer
n = 4 'Este valor se puede obtener de otra forma
ReDim m(1 To n, 1 To n) As Integer
'Girar matriz
x = n
y = 1
For i = 1 To n
For j = 1 To n
m(i, j) = Cells(x, y)
x = x - 1
Next j
y = y + 1
x = n
Next i
'Mostrar en pantalla
For i = 1 To n
For j = 1 To n
Cells(i, j) = m(i, j)
Next j
Next i
End Sub

Girar a la izquierda

Sub GirarL()
Dim i, j, n, x, y As Integer
Dim m() As Integer
n = 4 'Este valor se puede obtener de otra forma
ReDim m(1 To n, 1 To n) As Integer
'Girar matriz
x = 1
y = n
For i = 1 To n
For j = 1 To n
m(i, j) = Cells(x, y)
x = x + 1
Next j
y = y - 1
x = 1
Next i
'Mostrar en pantalla
For i = 1 To n
For j = 1 To n
Cells(i, j) = m(i, j)
Next j
Next i
End Sub

Diseñando juegos (de cartas)

“Cualquiera puede inventar una nueva variante del ajedrez en diez segundos, e infortunadamente muchos lo hacen.”

David Pritchard

Además de jugar habitualmente ajedrez y póquer (y también interesarme en el go), no sólo me han interesado otros juegos (principalmente abstractos) sino que alguna vez he tenido ideas para crear uno o varios propios. Revisando toda la gama de juegos de mesa, desde los clásicos (parqués, damas chinas, lo mal diseñado que está el Monopoly…), los juegos abstractos (desde el ajedrez hasta el proyecto GIPF), y los juegos de cartas coleccionables (desde el Super Triumph hasta el Magic), hace un tiempo vengo barajando -literalmente- la idea de un juego híbrido: un juego de estrategia con cartas sobre tablero.

Mi idea se basa en juegos como el aquí llamado Super Triumph (o Tope & Quartet), del cual se conoce un par de juegos (y algunas readaptaciones). El concepto es el mismo: barajas basadas en grupos de elementos (personajes, vehículos, etc.), con seis características con un valor numérico, que deben competir por tener el mayor o el menor valor del mismo ítem. La diferencia es que las cartas no se enfrentan directamente, sino que en realidad son elementos de un juego desarrollado sobre un campo más extenso.

Parte de mi idea era aprovechar una vasta colección de imágenes de todo tipo, principalmente personajes mitológicos o vehículos como los del Super Triumph: aviones, automóviles, motos, barcos, tanques, etc. Y aquí entra en escena nuestro viejo conocido Excel, para llevar a cabo dos cosas: organizar las imágenes en colecciones y grupos, asignándoles características y valores, y programar los juegos para que sean jugables.

Carta genérica de una colección (Dioses, en este caso)

Habiendo organizado la colección de imágenes por grupos, y habiéndole asignado a cada imagen siete atributos (cuando me di cuenta de que el estándar eran seis ya era muy tarde) con valores entre 1 y 10, comencé a crear los juegos. El primero tiene el nombre tentativo de Conect-Go, una mezcla de juego basado en conectar casillas que además toma prestado del go el concepto de territorio. De ese juego publiqué un reglamento sucinto en el foro BoardGameGeek, un portal dedicado a toda clase de juegos de cartas y tablero.

Ejemplo de partida de Conect-Go. El jugador azul está cercado: no puede seguir ocupando más casillas, pues está rodeado de territorio de su rival (rojas), casillas muertas (grises), o casillas que no pueden ser atacadas en diagonal (marcadas con un doble cero). El jugador rojo ha ganado la partida por 16 puntos contra 14.

El Conect-Go consiste en ocupar la mayor cantidad de casillas sobre el tablero, y a cada casilla se le asigna una carta ante la cual debe enfrentarse el jugador que quiera ocuparla. Cada jugador recibe puntos por casillas ocupadas, por conectar dos bordes opuestos del tablero, o por cada casilla de un territorio ocupado por el rival pero que a su vez esté rodeado totalmente por casillas de su adversario (como en el go). Un reglamento más detallado está en el enlace mencionado antes.

Otro juego que pude terminar por estos días tiene el creativísimo nombre de Push Cards o EmpujaCartas (creo que nadie que haya inventado juegos antes ha sido muy bueno con eso de los nombres). Se juega entre dos, tres o cuatro jugadores, sobre un tablero de 7 por 7 casillas más una primera fila en la que cada jugador comienza situando sus cartas. Desde el punto de vista de cada jugador, cada columna representa cada uno de los atributos de las cartas; por lo que se asume que un jugador coloca allí una carta cuyo valor en ese ítem sea el mayor.

Ejemplo de partida de PushCards.

Las cartas pueden avanzar y, si tienen mayor valor en el atributo correspondiente a la columna en que se encuentran que las cartas de los demás jugadores, entonces pueden empujarlas. Los jugadores reciben puntos por cada carta propia que logre llegar a la fila opuesta (coronadas), y por cada carta que logren empujar hasta sacarla del tablero (expulsadas). Dos o más cartas de un mismo jugador pueden formar un grupo que puede empujar a una o varias de los demás jugadores, si tienen más valor en el atributo de la columna correspondiente. Algo divertido del juego (cuando se juega con tres o cuatro jugadores) es que una carta puede ser fuerte en una columna; pero al estar en una fila, puede ser empujada por aquél jugador a su izquierda o derecha (para quien esa fila es la columna donde su carta es más fuerte).

No sé qué tan viable sea adaptar estos juegos a cartas físicas, así que por ahora prefiero mantenerlos así, con soporte en Excel. Cuando tenga versiones enteramente jugables tal vez las publique. Por lo pronto, lo que empezó como una versión casera de Facemash terminó convertido en un repaso a mis apuntes de programación, en un curso básico de diseño de juegos de cartas, y en un punto menos de mi lista de asuntos pendientes. Tal vez al fin me dedique a un juego de cartas sin tablero y de otra naturaleza. Por lo pronto, lo siguiente sea tal vez enfrentar otro asunto pendiente en Excel, esta vez con los cubos de Rubik.

P.D.: Hablando de juegos de cartas, la gente de En una baldosa acaba de publicar su juego de cartas, de momento disponible sólo en territorio argentino. Se ve muy interesante.

Cómo darle una oportunidad al Go

Acabo de recibir mi flamante copia de Fritz 16, de la empresa alemana Chessbase, la más reciente versión del programa de ajedrez más reconocido del mundo, y ganador del último duelo de ajedrez entre humanos y máquinas en el terreno de la inteligencia artificial. La derrota del campeón mundial de entonces, el ruso Vladimir Kramnik contra Deep Fritz en 2006 supuso la aceptación definitiva de la superioridad de las máquinas, pero contrario a lo que se supondría, no representó un avance significativo en el desarrollo de la inteligencia artificial. En parte, porque el escenario empleado (el ajedrez) si bien es muy vasto, no es el mayor dentro del campo de los juegos abstractos; y también porque el enfoque usado desde los años 50 (algoritmos predefinidos) era muy limitado. En cambio, las victorias de AlphaGo sobre los mejores jugadores humanos de go, y las victorias de AlphaZero sobre AlphaGo en go y sobre Stockfish en ajedrez, sí representan un avance importante en emular artificialmente aquello que llamamos inteligencia.

Si nos quedamos para siempre con la victoria de Deep Blue sobre Kasparov en 1997, sería como suponer que las calculadoras son inteligentes porque pueden resolver operaciones matemáticas mejor que los seres humanos. Lo hacen porque están hechas para eso, y ya. O como suponer que los test de inteligencia no miden la inteligencia, sino la capacidad de resolver tests de inteligencia. O creer que ya hemos llegado al techo de la inteligencia humana. La importancia de AlphaZero radica en que por primera vez se ha conseguido que una máquina tenga la capacidad de aprender. Y hablando de aprender, y de romper paradigmas, la irrupción de AlphaGo ha debido despertar la curiosidad de más de uno por saber en qué cosa exactamente las máquinas han vencido otra vez al ser humano. Y esa cosa es nada menos que el milenario juego del go.

Niños jugando al go (Fuente: LasIndias.blog)

El go, nombre japonés para el juego chino llamado weiqi y conocido en Corea como baduk, es considerado el juego abstracto más antiguo que se juega hoy en día en su forma original. Nació en China hace 2.500 años pero otras fuentes hablan de 4.000 años o más. Hablo de romper paradigmas porque hasta no hace mucho en Occidente el juego más complejo y profundo que conocíamos era el ajedrez, aunque en opinión de expertos como el psicólogo Fernand Gobet (maestro internacional de ajedrez, por cierto), la complejidad del go radica en el tamaño del tablero (361 puntos contra 64 casillas del ajedrez) y nada más. Sin embargo, a pesar de tener reglas muy sencillas y sólo un tipo de piezas, es mucho más complejo que cualquier otro juego; por lo cual fue el último gran reto de los programadores, que tuvieron que crear un ente inteligente para que aprendiera un juego imposible de abarcar por fuerza bruta.

John Nash, jugando al go en “A Beautiful Mind”. Quienes saben de go dicen que esa escena fue terrible.

El go es muy popular en Japón, China y Corea del Sur, mucho más de lo que es el ajedrez en Occidente; y es conocido en parte por la influencia de la cultura popular de esos países en nuestras latitudes. Ahora bien, para contribuir a masificarlo, ¿cómo se puede aprender? Existen varios inconvenientes para encontrar información al respecto. Uno es la ambigüedad de la palabra go, que obliga a buscarla acompañada de las palabras weiqi y baduk. Otro es su poca difusión social. En Colombia existe la Asociación Nacional de Go, que no es una federación propiamente dicha (a pesar de formar parte de la IGF), por lo cual se desconoce por ejemplo un escalafón nacional, aunque organizan actividades de formación y difusión, así como torneos y partidas los domingos por la tarde en sitios como el centro comercial Bulevar Niza, en Bogotá.

En estos tiempos es más fácil encontrar recursos digitales en sitios web de otros países, como Argentina, por ejemplo. Sin embargo, la falta de interés y difusión hace que sitios como “El camino interactivo hacia el Go” terminen desatendidos (eso y los cambios tan drásticos en plataformas como Java o Flash). Pero sobre todo, a diferencia del ajedrez (y a diferencia de países como Estados Unidos), no hay una cultura del “tutorial” sobre go en español, lo que sería decisivo para su masificación hoy en día. Por eso hay que destacar una iniciativa reciente, la del argentino Luciano Zinni, con su canal de YouTube que ofrece el que por ahora es el mejor contenido en español para principiantes:

Aparte de este hallazgo, volviendo a los formatos tradicionales, un libro muy interesante es Introducción al Go, de Hilario Fernandez Long y Adalberto Moderc, editado en Argentina en 1983. Recuerda mucho a Bobby Fischer Teaches Chess en su diagramación y a la hora de llevar de la mano al principiante a través de los conceptos del juego. Y con respecto al software, donde se hace más obvia la diferencia de su estado-del-arte con el ajedrez, podría decirse que Leela es el Chessbase del go, un programa gratuito bastante fuerte que además permite analizar y administrar bases de partidas. Otro programa gratuito es GNU Go, que no tiene interfaz gráfica pero que puede usar entre otras, la de programas que a la vez son clientes de servidores como KGS Go Server o Pandanet, en los cuales, por cierto, es más fácil encontrar jugadores que en clubes o asociaciones locales.

Hablando de internet, también se puede jugar desde el navegador en sitios como OGS, donde se puede jugar en tiempo real o por e-mail, como en FICGS. En estos sitios suele haber foros, aunque no es fácil encontrar grupos enfocados en asesorar a los principiantes. En cualquier caso, este ha sido mi pequeño aporte para darle una oportunidad al go de hacerse un lugar en el gusto de la gente por el placer de un buen desafío mental. Aunque visto así, en realidad somos nosotros los que deberíamos darnos la oportunidad de conocer y disfrutar de un juego tan interesante, y tras lo visto últimamente, tan desafiante para nuestro concepto de inteligencia.

P.D.: Seguramente estoy cometiendo errores u omisiones a la hora de mencionar sitios de internet, canales de YouTube, libros u otras referencias. Si algo me interesa ahora es que si alguien conoce mejores opciones, las comparta.

Obsolescencia programada: experiencias en primera persona

Uno de los puntos que más ha marcado a la humanidad en las últimas generaciones es su relación con la tecnología. Una relación que adopta muchas formas; la más usual, sin embargo, suele ser la dependencia. Mucha gente ya no conoce formas de comunicarse o transmitir información que no sean las que ofrece la tecnología; pero sobre todo, una forma especial de tecnología como parte del sistema económico imperante, en el cual todo es objeto de mercado.

Hace ya varios años que se emitió Comprar, tirar, comprar: un documental que dio mucho de qué hablar. Ha servido para ilustrar el concepto de obsolescencia programada, para alimentar el pensamiento conspiracionista y también para ser objeto de debate por parte del escepticismo organizado. Y no pensé que fuera a tocarme directamente, pero llega un momento en que, por más que uno pueda seguir existiendo con Windows 95 98 Millenium XP, el entorno circundante podría volver a la Edad de Piedra si desapareciera sólo uno de los avances tecnológicos omnipresentes hoy en día.

Comencemos con el PC. No sé quién o cuando se creó la idea de que la tecnología debía acompañar a las personas donde quiera que estuviesen, de que para acceder a la tecnología y la información no hacía falta anclarse junto a un PC. Así nació el concepto de movilidad, en la forma de smartphones y tablets, que ofrecían la posibilidad de acceso tecnológico unicamente con fines de entretenimiento y consumo, pero que por más que se hablara de la “muerte del PC”, nunca iban a reemplazarlo como herramienta de trabajo (porque sí, la gente que trabaja aún necesita y quiere un PC). Después de odiar a muerte a Windows Millenium arrastrándose en un viejo clón AMD 486, lo cambié por un Dual Core con Windows XP desde hace unos siete años y medio, que debe ir al doctor en estos días pero que aún funciona. Y si quisiera seguirle el juego a las distribuciones de Linux con sus versiones cada seis meses, lo seguiría usando con arranque dual.

El problema es que mi oficio me obliga a usar ciertas versiones de programas que ya no corren en un procesador que aún arrastra la marca Pentium (por lo cual no me lo reciben ni como donación). Y es la clase de software por la cual Linux sigue sin ser una opción: si una versión de AutoCAD tan obsoleta como la 2012 funciona en modo “garbage” con Wine, no tiene sentido hablar de las demás. Hace unos meses compré un portátil con Windows 8.1, un Toshiba (maquinón para trabajar como pocos, pero Toshiba decidió abandonar el mercado doméstico y enfocarse en empresas). luego de ver cómo en el trabajo se compraron varios portátiles Asus con Windows 8, obligándome (por ser parte de mi trabajo) a actualizarlos a la versión 8.1. Ahora que Microsoft ofrece la posibilidad de actualizar a Windows 10, me pregunto si será obligatorio pasarlos de Windows 8 a Windows 10 (porque por muchos hackeos al registro, pasar a 8.1 es casi obligatorio).

Uno supone que después del fiasco de Windows Vista, tanto Microsoft como los fabricantes habrán coincidido en que el equipo de mejor funciona no es el que tenga el procesador más potente, sino el que tenga el sistema que use los recursos de hardware de modo más eficiente. Por eso es fácil ver equipos que funcionan mejor con Windows 8 que con el 7, por ejemplo. Aún así, me temo que las nuevas características de conextividad y “experiencia de usuario” evolucionen más rápido que la inteligencia del usuario final, cuando por ejemplo, los clientes de la empresa en que trabajo piden información digital que luego son incapaces de descargar, y uno termina copiándola en un CD para llevárselo en el transporte público.

Otro ejemplo es el de los smartphones. Tengo un Android de gama baja, con algunas aplicaciones muy útiles (como TransmiSITP, por ejemplo), pero soy muy ingenuo al pensar que el resto del entorno lo usa para llamadas y mensajes. Mi jefe casi me obliga a instalar WhatsApp porque le sale muy caro enviar SMS. Yo me opuse (si la empresa me paga un plan de datos, bien; si no, no), pero un compañero con su flamante Samsung parece haber olvidado el concepto de mensaje de texto. Cámaras de chorrocientos megapixeles para selfies o fotos al espejo con destino al facebook vía 10G, para los mismos usuarios que mencioné antes, que cambian de smartphone cada año pero incapaces de hacer aquello que podía hacerse con el Nokia 1100. El otro extremo es el de la secretaria, que piensa que el celular es un “fijo portátil”.

Por último, impresoras. Señores de Lexmark: ¿por qué algunos de sus modelos están diseñados con partes imposibles de conseguir como repuesto, para solucionar daños que ocurren a escasos meses de haberse vencido la garantía? Y para colmo, salen con un firmware atrasado en dos versiones a la de Windows. Tenemos un multifuncional que dejó de funcionar como impresora porque aquella parte que arrastra el papel es más difícil de conseguir que el santo grial. O bueno, funciona a veces, porque empiezo a pensar que las impresoras son la primera forma de vida inteligente basada en silicio:

2011-09-21-582g

Teorías las hay de todo tipo. La teoría de reducir la población mundial no tendría sentido si por ejemplo, se quieren vender millones de smartphones de gama media y baja. Regla N° 1 del capitalismo: crear consumidores (literalmente hablando). Otra teoría dice que la tecnología es una forma de ortopedia que reemplazó facultades que alguna vez tuvo la humanidad (la telefonía móvil reemplazó a la telepatía, por ejemplo). O también la teoría de que la obsolescencia programada obedece al plan de que sólo sea reconocido como información, conocimiento y cultura aquello transmitido mediante un gadget. Es cierto que ya no usamos la escritura cuneiforme, pero no justifica la idea de reemplazar toda forma de expresión humana por las posibilidades de una pantalla táctil. A veces la idea de un apocalipsis es pensar con el deseo, pero si llegara a ocurrir una no muy improbable tormenta electromagnética, por ejemplo, me pregunto quienes serían los primeros en regresar a la Edad de Piedra.

A vueltas con los lectores de RSS

En su momento comenté que el único uso que daba a mi cuenta de Google era el uso de Google Reader, el cuál cerró en julio de 2013, justo cuando me había suscrito ya a un montón de blogs vía RSS. Después de probar varias opciones de entre todas las que aprovecharon el cierre del servicio de Google, por apariencia, organización (y porque no tengo tiempo de probarlas todas) elegí Bloglines, un lector de RSS clásico que amenazó con cerrar en 2010 y que hoy está fuera de línea.

Portapapeles01
Netvibes, lector de RSS.

Bloglines ofrecía un servicio entre suficiente y justo lo que buscaba a la hora de reemplazar a Google Reader: un árbol de categorías a la izquierda y vista previa de contenido a la derecha. Por eso descarté otras opciones que sólo mostraban entradas en miniatura o títulos sin posibilidad de ordenar por categorías.

Justamente acabo de enterarme que WordPress tiene una opción para leer blogs, eligiendo la opción Lector (arriba a la izquierda). Sin embargo, sólo ofrece vistas previas de contenido (con la apariencia del escritorio de WordPress) y no permite categorizar las suscripciones.

El problema con Bloglines, al día de hoy, es que su servidor está caído; tanto bloglines.com como dashboard.bloglines.com están fuera de línea. Sin embargo, en Netvibes se puede entrar con las credenciales de la cuenta de Bloglines, crear un archivo .xml de ese escritorio (Cuenta/Salvaguardar datos), e importarlo allí mismo para crear otro escritorio, o en otro lector de RSS.

Como muchos usuarios, prefiero un servicio web en lugar de instalar programas de escritorio o complementos en navegadores de otros equipos. Por eso no me gustaron opciones como Thunderbird, el cliente de correo electrónico de Mozilla, que muestra categorías pero no los blogs de cada una, sólo la vista previa de los contenidos.

La última opción por estudiar era la de alojar un lector de RSS en un servidor web. La única opción que encontré fue TinyTinyRSS, un lector para instalar en servidores FTP, con licencia GPL, y que se puede instalar automáticamente en servidores gratuitos de alojamiento web como Hostinger. Sin embargo, es lento al cargar las fuentes, la apariencia no es muy agradable (aunque se pueden instalar temas), y carece de funciones como marcado automático de entradas leídas. También existen servicios para instalar como NewsBlur, que son de pago.

TinyTinyRSS, lector de RSS alojado en servidor web.

Los feeds son y seguirán siendo una herramienta útil e indispensable de acceder a la información o compartirla, por más que se quiera frivolizar esto último al dar mayor importancia a las redes sociales por encima de los blogs; para muchos usuarios (justamente aquellos cuya opinión es la que más impacto tiene), las redes sociales como fuente de información no son suficientes.

Otra cosa: detrás de todo servicio gratuito en Internet se esconde el objetivo que diferencia a una empresa de una ONG: “si es gratis, podemos cerrar cuando nos dé la gana”. Google consideró que su Reader no era rentable; al parecer Bloglines puede cerrar definitivamente. Aún así, los feeds siguen siendo parte importante de la web, y si algo lo demuestra es que por algo no faltan opciones.

¿Por qué Excel 2013 es tan lento con las macros?

Ha de existir una muy buena razón para que el software que la mayoría de la gente usa como estándar de facto, exija cada vez más y más recursos de sistema; y al mismo tiempo, sea cada vez más pesado y lento. Por ejemplo, Excel, el gestor de hojas de cálculo de Microsoft. Para muchos nostálgicos, XP  fue la última buena versión de Windows (el sistema de reparación de conexiones de red en las versiones superiores parece diseñado por burócratas), y para los usuarios que recién aprenden a combinar la ofimática con la programación, la última buena versión de Excel fue la 2003. ¿Por qué? Porque a partir de Excel 2007 las macros de Visual Basic no es que sean lentas: se arrastran.

No creo que los brillos de Office 2007 o la interfaz Ribbon justifiquen pasar de 300 MHz de procesador a 1 GHz como mínimo para mover Windows 8 y Office 2013, sólo para seguir viendo a Excel como un programa de hacer tablas. Tampoco explican por qué Excel 2013 tarda el doble que 2003 en ejecutar una macro que implique gran cantidad de datos. Es cierto que hay que tener sentido de economía del lenguaje y buen criterio de diseño al crear macros, pero aun así no hay razón para la diferencia de tiempo en ejecutar una misma macro en dos versiones diferentes de un mismo programa.

Investigando un poco, la lentitud de Excel 2013 en ejecutar macros tiene que ver con medidas de seguridad y cifrado adicionales a partir de la version 2013 (eso dicen, pero en Excel 2007 la lentitud es igual); y por esas razones de seguridad es que Microsoft no parece querer hacer algo al respecto. La mayoría de las dudas de los usuarios tienen que ver con proteger y cifrar hojas o libros, pero también al ejecutar macros que usen datos de una o varias hojas (como algunos ejercicios que he hecho previamente). Por ejemplo, un ejercicio como de primer curso de programación, podría ser el siguiente: ejecutar una macro que llene 100 filas de números aleatorios de tal modo que en cada fila haya 10 números entre 1 y 100, que estén ordenados de menor a mayor, y que resalte en color las celdas que contengan números primos. ¿Qué explicación hay para que Excel 2013 sobre Windows 8, en un core i7 de ocho núcleos, tarde lo mismo o más que en un Pentium Dual-Core con Windows XP y Excel 2003?

Algunas soluciones -debidas a los usuarios, porque a MS parece no importarle un comino-, tienen que ver con la forma en que Excel devuelve en pantalla el proceso de los datos. Por ejemplo, Excel 2013 mejora un poco la velocidad de una macro si su código se escribe entre las líneas:

Application.Calculation = xlCalculationManual

y

Application.Calculation = -4105

y aun así se siente el uso del procesador que hace el PC. Otras líneas de código entre las cuales se puede escribir la macro son:

Application.ScreenUpdating = False

y

Application.ScreenUpdating = True

Como dije antes, Excel no es un programa destinado sólo para hacer tablas o llevar contabilidad básica. Las macros son la mejor forma que muchos usuarios avanzados pueden manipular grandes cantidades de datos. Por ejemplo, como aficionado al ajedrez, me pregunto cómo espera la federación internacional (FIDE) que un usuario revise una base de datos de 486.619 jugadores (a la fecha, y creciendo) desde un archivo de texto, en un programa que no sea Excel. La versión 2003 no sirve porque se quedó en 65.536 filas. Otras suites ofimáticas, como LibreOffice, pueden abrirla, pero al hacer operaciones básicas sin macros como ordenarla, colapsan el sistema, gracias a sus lagunas de memoria (y con todo respeto, LibreOffice Basic es una engorrosa mala imitación de juguete de VB6).

¿La solución? Para mí no hubo otra que instalar Office 2003 en Windows 8.1 (para algo sirve el asistente de compatibilidad). Excel 2003 funciona rapidísimo ejecutando macros, y el compilador de Visual Basic es casi igual a la última versión (7.1) -otra razón que no justifica mucho el cambio. Para hacer tablas bonitas o revisar bases de chorrocientos mil registros, siempre estará ahí la versión moderna.