Reducir tamaño de PDF en MacOS

Tengo varios archivos PDF que se acercan o incluso superan el gigabyte de tamaño como resultado de escanear documentos de varias páginas. Son ficheros poco prácticos ya no solamente por su peso si no porque cargar semejante archivo en memoria hace que consultarlos sea un proceso más costoso de lo que sería deseable.

Hay una forma sin embargo de reducir el tamaño de archivo en MacOS empleando ColorSync, una de esas herramientas incluídas por defecto en el sistema y muy desconocidas para la mayoría de nosotros. Este programa se puede lanzar desde Launchpad/Otros.

En la ventana que se abre, debemos crear un nuevo filtro personalizado, pulsando el botón «+» y añadir un componente de efectos de imagen. Escogeremos la compresión de imagen y la configuraremos como se ve en la siguiente captura de pantalla:

Una vez hecho esto, podemos acudir al menú Archivo/Abrir o simplemente arrastrar el PDF que queramos reducir sobre el icono de ColorSync en el Dock y este se abrirá.

En la barra inferior podemos seleccionar el filtro que hemos creado y pulsar en aplicar.
Por último, podemos guardar el documento (sobreescribiendo el original) o acudir a Archivo/Guardar como para poder guardarlo con otro nombre.

Dependiendo del tipo de documento, los resultados serán más o menos efectivos. En archivos con muchas imágenes es donde notaremos mayor beneficio. He hecho algunas pruebas y estos han sido algunos resultados:
– Original 1,2 GB a 100 MB
– Original 586 MB a 98,6 MB
– Original 360 MB a 49 MB
– Original 360 KB a 36 KB
En general, para documentos con mezcla de textos, imágenes en B/N e imágenes en color, el tamaño final oscila entre un 60% o incluso un 10% del original.

Anuncio publicitario

Servidor privado de World of Warcraft


No sé qué tendrá el World of Warcraft que siempre me ha apetecido volver. Lo intenté retomar en un par de ocasiones, aunque es cierto que ya no dispongo de tanto tiempo para disfrutarlo como la primera vez que lo jugué.
Por el camino, los servidores privados en los que jugaba han desaparecido y el soporte de Mac parece un tanto abandonado, pero aún existe una posibilidad que cualquiera puede aprovechar y que soporta hasta la versión 3.3.5a (Wrath of the Lich King).
Funcionará en Windows, MacOS y Linux; aunque la versión del cliente del juego no es compatible con versiones recientes de MacOS por ser una aplicación de 32-bit; pero como hemos visto también este inconveniente se puede solucionar.

Empezaremos instalando Docker, ya sea descargándolo de la web oficial o, como en mi caso, a través de Homebrew:
$ brew install --cask docker
A continuación, descargaremos el software azerothcore, una implementación hecha mediante ingeniería inversa del servidor de juego que correrá como un contenedor de docker, lo que hará mucho más fácil tanto la instalación de todas las herramientas necesarias como su actualización y mantenimiento. Descomprimimos sus contenidos donde no nos estorben, entramos al directorio mediante la terminal y obtenemos la última versión de los paquetes necesarios:
$ docker compose pull
Una vez que este proceso haya concluido, lo cual depende principalmente de la velocidad de la conexión a internet, importaremos a las bases de datos del servidor todos los datos del juego. Puedes irte a tomar un par de cañas mientras la instalación se lleva a cabo 🍺🍺…
$ docker compose up ac-db-import
Y el siguiente paso consiste en arrancar el contenedor del servidor:
$ docker compose up -d

El servidor ya está funcionando pero necesitamos un usuario con el que poder autenticarnos. Para ello, vamos a conectarnos al proceso del servidor a través de una terminal. Para saber el nombre del proceso, introducimos:
$ docker compose ps
En mi caso existe un proceso llamado acore-docker-ac-worldserver-1 al que me puedo conectar con la siguiente orden:
$ docker attach acore-docker-ac-worldserver-1
El simbolo del terminal cambiará a AC>. Crear el usuario es tan fácil como:
AC> account create USUARIO CONTRASEÑA
AC> account set gmlevel USUARIO 3 -1

Donde USUARIO y CONTRASEÑA serán tus credenciales para conectarte al servidor y le habremos dado permisos de GM. Puedes desconectar la terminal del servidor pulsando seguidas las combinaciones de teclas Ctrl+P y Ctrl+Q.

Listo! Hora de que cambies tu configuración de realmlist para que apunte a tu servidor privado. Si juegas desde el mismo ordenador donde tienes el servidor, puedes referirte a él como «localhost» y si es desde otra máquina de tu red local, incluso puedes utilizar el nombre de host (por ejemplo, en mi caso, «MacBook-Pro»).
Y que vuelvas a disfrutar de Azeroth!


Más info:
https://www.chromiecraft.com/es/como-instalar-un-servidor-de-wow-en-tu-computadora/
https://www.azerothcore.org/wiki/install-with-docker

World of Warcraft (32-bit) en MacOS

Hace un par de años que Apple retiró de MacOS el soporte para aplicaciones de 32-bit. A estas alturas, salvo que utilices aplicaciones muy antiguas y abandonadas, esto no debería ser un problema, pero sí que existen algunos programas que ya no podrás ejecutar en versiones nuevas del SO.
Una de ellas es el antiguo cliente de World of Warcraft. Aunque se trataba de una aplicación nativa, Blizzard lo dejó de lado y empezó a ofrecer WoW a través de su servicio Battle.net, que cuenta con una suite muy al estilo Steam, pero que ya no permite modificar el servidor al que te vas a conectar.

En definitiva, sin launcher compatible con 64-bit, la solución pasa por crear una envoltura para la aplicación de Windows a través de traducción de librerías, muy al estilo de otras cosas que hice en Linux.

En primer lugar, instalamos Winery. Puedes descargarlo manualmente desde https://github.com/Gcenx/WineskinServer/releases pero yo prefiero hacerlo con Homebrew, con lo que también se instalarán sus actualizaciones de forma automatizada:
$ brew install --no-quarantine gcenx/wine/unofficial-wineskin
El flag --no-quarantine evitará tener que insistirle (botón derecho/abrir) a MacOS para abrir la aplicación 😉


Si has optado por descargarlo manualmente, lo encontrarás bajo el apartado de Assets comprimido con extensión .txz, y una vez lo hayamos bajado y desempaquetado, tendremos la aplicación tal y cómo se puede ver en esta imagen:

Puedes arrastrarla por ejemplo a tu carpeta de Aplicaciones.

Ejecútala y te encontrarás con algo muy similar a esto:

En primer lugar pulsa la flecha de refrescar y a continuación en el símbolo «+» para comprobar qué motores nuevos puede haber disponibles y escoger el más reciente. Al momento de escribir esto, el más nuevo es WS11WineCX64Bit21.2.0.
Este nombre no nos dice nada, pero el número de versión es el más alto. Confirmamos que lo queremos descargar e instalar:

Una vez que tenemos nuestro motor de traducción, ya podemos crear la envoltura. Hacemos click en «Create New Blank Wrapper» y le damos un nombre, por ejemplo «World of Warcraft».
Este paso le tomará un poco de tiempo a la máquina ya que tiene que configurar una versión específica de Wine con el motor de traducción que le hemos indicado. Una vez esté listo, haz clic en «View wrapper in Finder».

La ventana que se abre contiene lo que será la supuesta aplicación pero por ahora está vacía. Haz clic con el botón derecho sobre ella y elige «Mostrar contenido del paquete». Ahora ejecuta la app Wineskin que hay dentro y selecciona «Install Software»:

Ahora podemos escoger si copiar o mover toda la carpeta con el juego (para Windows). Yo voy a escoger copiar, seleccionaré el directorio donde están todos los archivos del juego y confirmaré cual es el archivo que lanza la aplicación (que en este caso es «Wow.exe»)

Y listo! Se puede toquetear alguna cosa más, como el icono de la aplicación, por ejemplo, pero en principio no es necesario hacer nada extra para conseguir que el juego funcione bajo macOS.
He de decir que también he hecho esto con el Age Of Empires III Complete Collection y no he tenido ningún problema, lo que me ha permitido librarme de una máquina virtual que tenía por ahí para poder ejecutarlo.

La solución no es perfecta, en mi caso a veces se ven algunos artefactos gráficos, pero no estoy seguro de si es cosa del motor de traducción de librerías o de que estoy utilizando macOS Monterey en un Mac que, oficialmente, no lo soporta.

Descargar una web completa

Existe una forma que permite descargar toda una web a una carpeta almacenada de forma local a través del comando wget. En MacOS este comando no viene de serie así que lo instalé a través de Homebrew:
$ brew install wget
En muchas distribuciones de Linux, sin embargo, viene ya con el sistema operativo.

Y ahora para descargar toda una web:
$ wget \
--recursive \
--no-clobber \
--page-requisites \
--html-extension \
--convert-links \
--restrict-file-names=windows \
--domains www.mipagina.com \
--no-parent \
http://www.mipagina.com/subdirectorio/html/

Donde las opciones son:
--recursive: descargar la página web completa.
--domains www.mipagina.com: no descargar nada que no pertenezca a este dominio.
--no-parent: no seguir enlaces fuera de la ruta /subdirectorio/html/.
--page-requisites: descargar todos los recursos necesarios (imágenes, CSS, etc.)
--html-extension: guardar archivos con extensión .html
--convert-links: modificar todos los enlaces para que funcionen de forma local.
--restrict-file-names=windows: modificar nombres de ficheros para que funcionen correctamente bajo Windows (si éste es tu SO).
--no-clobber: no sobreescribir archivos existentes (por si se corta la descarga y vuelves a ejecutar el comando, para que no baje cosas que ya tienes).

Aunque este truco le resultará familiar a todos los fans del intérprete de comandos, pocas veces lo he necesitado y quiero dejarlo por aquí apuntado para un futuro.