Reducir el tamaño de un PDF en Mac

Recientemente me tope con un “problemilla”, al escanear varios documentos un archivo PDF de 35 paginas llegó a pesar 35 MB y pues este tamaño esta fuera de los limites para enviarse por correo electrónico. La solución básica que viene en internet es:

  1. Abre el PDF en Preview
  2. Dale en Exportar
  3. Selecciona el Filtro Quartz de reducir tamaño de archivo
  4. Presiona Guardar

Lo que sucedió es que la imagen del archivo se redujo demasiado que quedó ilegible, lo que encontré y les compartiré es un método que nos permite tener un rango variable entre la calidad que tenemos y esa máxima que deja ilegible el documento (al menos si son puras imágenes).

Primero que nada gracias a Jerome Colas por crear los filtros respectivos, estos los podemos descargar de este enlace: Filtros PDF Jerome Colas <https://github.com/joshcarr/Apple-Quartz-Filters/>

Para instalarlos, primero descomprime la carpeta y copia los archivos a /System/Library/Filters     (Si no sabes como llegar a esa carpeta, abre el programa Terminal, y escribe open /System/Library/Filters)

Ahora si, siguiendo el procedimiento anterior podemos ver todos los filtros en Filtros Quartz.

Filtros Quartz

Espero esto les pueda ayudar.

OSX10.9.xctoolchain no existe

Si alguna vez te ha sucedido este error en tu Mac:

/Applications/Xcode.app/Contents/Developer/Toolchains/OSX10.9.xctoolchain/usr/bin/cc: No such file or directory

A mi me salió y es un verdadero dolor de cabeza y mas si eres primerizo con una Mac, pues esto se debe a que se cree que estan rotas unas dependencias en /usr/include en Mac OS X 10.9.

Lo que me solucionó el problema es ir a la siguiente carpeta:

/Applications/Xcode.app/Contents/Developer/Toolchains/

y correr

ln -s XcodeDefault.xctoolchain OSX10.9.xctoolchain

con permisos de administrador.

Node.js – Entendiendo la programación orientada a eventos

En lo personal se me ha hecho difícil entender la programación orientada a eventos en especial los conceptos de I/O bloqueado y no bloqueado, ahora que los entiendo se que es lo que hace a Node.js diferente y por que la gente habla tanto de el, lo explicaré con dos analogías que se usan en la vida real.

Continue reading “Node.js – Entendiendo la programación orientada a eventos”

Cómo explicarle a un niño de 6 años los Closures de Javascript

Recordando una clase de programación que tuve en la escuela, donde me era complicado explicar el tema a alguien que no sabía programación, llegué a esta respuesta en StackOverflow de como una gran imaginación puede ayudar a explicar cosas complicadas hasta a niños pequeños, les dejo la respuesta:

Había una vez:

Una princesa…

function princess() {

Ella vivía en un mundo maravilloso lleno de aventuras. Ahí conoció a un carismático príncipe, montó sobre un unicornio todo el mundo, combatió dragones, platicó con animales y realizó muchas otras cosas fantásticas.

    var adventures = [];

    function princeCharming() { /* ... */ }

    var unicorn = { /* ... */ },
        dragons = [ /* ... */ ],
        squirrel = "Hello!";

Pero ella tiene que regresar siempre a su aburrido mundo lleno de rutinas y “adultos”.

    return {

Y ella casi siempre les platicaba sobre sus fantásticas aventuras como princesa.

        story: function() {
              return adventures[adventures.length - 1];
        }
    };
}

Pero todo lo que ellos ven es a una pequeña niña…

var littleGirl = princess();

… que cuenta historias sobre magia y fantasía.

littleGirl.story();

Y aunque los adultos conozcan a las verdaderas princesas, ellos nunca creerán en los unicornios y dragones por que ellos nunca los podrán ver. Los adultos dicen que ellos solo existen dentro de la imaginación de la niña.

Pero nosotros conocemos la verdad: que la pequeña niña con la princesa dentro…

… es realmente una princesa con una pequeña niña dentro de ella.

 

Como usar las tarjetas de crédito (Opinión)

Según Wikipedia una  “La tarjeta de crédito es un instrumento material de identificación del usuario, que puede ser una tarjeta plástica con una banda magnética, un microchip y un número en relieve. Es emitida por un banco o entidad financiera que autoriza a la persona a cuyo favor es emitida, utilizarla como medio de pago en los negocios adheridos al sistema, mediante su firma y la exhibición de la tarjeta. Es otra modalidad de financiación, por lo tanto, el usuario supone asumir la obligación de devolver el importe dispuesto y de pagar los intereses, comisiones bancarias y gastos pactados.” Continue reading “Como usar las tarjetas de crédito (Opinión)”