OS X: Acelerar el arranque de aplicaciones

Acelerar el inicio de aplicaciones

OSX utiliza una caché para evitar la ralentización de inicio de apps enlazando dinámicamente a una series de recursos compartidos.

Esta caché puede corromperse o simplemente pueden no haberse realizado correctamente los enlaces por lo que una purga y reconstrucción de esta acelerará notablemente el arranque de las aplicaciones.

Para realizarla escribe en el Terminal los siguientes comandos, uno a uno y esperando a que se realice la tarea:

sudo update_dyld_shared_cache -debug
sudo update_dyld_shared_cache -force

Reinicia el Mac y observarás las mejoras.

Gulp – Instalación en OS X 10.11

Gulp

Gulp.js es un sistema de construcción que permite automatizar tareas comunes de desarrollo, tales como la minificación de código JavaScript, recarga del navegador, compresión de imágenes, validación de sintaxis de código y un sin fin de tareas más.

No solamente nos soluciona el problema de tener que utilizar múltiples herramientas en nuestro flujo de trabajo sin que nos permite ejecutarlo todo desde un único lugar.

Instalando globalmente Gulp

Gulp requiere Nodejs y Npm (administrador de paquetes de Node) por lo que debes tenerlos instalados antes. Aquí tienes un tutorial para hacerlo.

Abre el Terminal ( + ESPACIO para abrir Spotlight y escribe terminal) y dispara el siguiente comando:

npm install -g gulp

Instalando localmente – package.json

Para un proyecto local necesitas preparar primero un archivo package.json para configurar tus paquetes y dependencias Node/npm. Desde el Terminal cambia el directorio a tú carpeta de proyecto y dispara el siguiente comando para crear el archivo package.json:

npm init

Esto te ayuda a crear el archivo, aquí tienes la salida generada:

tonidg@[~/Desktop]: npm init
This utility will walk you through creating a package.json file.
It only covers the most common items, and tries to guess sensible defaults.
See `npm help json` for definitive documentation on these fields
and exactly what they do.
Use `npm install <pkg> --save` afterwards to install a package and
save it as a dependency in the package.json file.
Press ^C at any time to quit.
name: (Desktop) mi_proyecto
version: (1.0.0) 0.0.1
description: ejemplo de mi proyecto
entry point: (index.js)
test command:
git repository:
keywords:
author: Toni DG
license: (ISC)
About to write to /Users/tonidg/Desktop/package.json:
{
"name": "mi_proyecto"
"version": "0.0.1"
"description": "ejemplo de mi proyecto"
"main": "index.js"
"scripts":
"test": "echo \"Error: no test specified\" && exit 1
}
"author": "Toni DG"
"license": "ISC"
}

Tu solo tienes que añadir los valores para Nombre, Versión, Descripción y Autor. Mantén los demás campos en blanco y el archivo será escrito en la carpeta de tú proyecto. Tras esto puedes eliminar algunos de los campos en blanco en un editor de texto, obteniendo algo así:

{
"name": "mi_proyecto",
"version": "0.0.1",
"description": "ejemplo de mi proyecto",
"author": "Toni DG"
}

Fíjate en que la última coma ha sido eliminada.

Una vez tenemos nuestro archivo json situado podemos instalar el paquete Gulp localmente desde la linea de comandos en nuestro proyecto, esto escribirá a nuestro archivo package.json por lo que asegúrate de estar en el directorio del proyecto. Instala mediante:

npm install gulp --save-dev

Ahora nuestro package.json debería ser algo así:

{
"name": "test_proyecto",
"version": "1.0.0",
"description": "test",
"author": "Toni DG",
"devDependencies": {
"gulp": "^3.9.1"
}
}

Para añadir mas plugins, como por ejemplo el de recarga en vivo del navegador utiliza la siguiente sintaxis:

npm install browser-sync --save-dev

El parámetro -save-dev guardará el paquete como una dependencia del proyecto así que escribirá en el archivo package.json. Ahora mostrará algo así:

{
"name": "test_proyecto",
"version": "1.0.0",
"description": "test",
"author": "Toni DG",
"devDependencies": {
"gulp": "^3.9.1",
"browser-sync": "^2.11.1"
}
}

gulpfile.js

Nuestro último archivo de configuración es gulpfile.js el cual le dice a Gulp que debe hacer. Añade este archivo a la raíz de tú proyecto e inserta:

var gulp = require('gulp');

Como tenemos el plugin browsersync instalado vamos a crear una tarea que nos permita ver el proyecto web en el navegador y que este se recargue automáticamente cada vez que cambiemos el CSS. Ahora nuestro gulpfile.js será así:

var gulp = require('gulp');
var browserSync = require('browser-sync').create();
gulp.task('sync', function() {
browserSync.init({
proxy: "my_project.dev",
files: "*.css,*.php,css/*css"
});
});

Ahora ejecutamos nuestra tarea desde la linea de comandos usando:

gulp sync

Eso es todo, esta es una guía básica de inicio y no pretende más que eso, preparar tú entorno. Existen multitud de plugins  disponibles, repásalos y comprueba todo lo que pueden hacer por ti mejorando tus flujos de trabajo.

El archivo Hosts: como modificarlo con cualquier editor de texto

OS X El Capitan

El archivo hosts de un ordenador es usado por el sistema operativo para guardar la correspondencia entre dominios de Internet y direcciones IP. Este es uno de los diferentes métodos que usa el sistema operativo para resolver nombres de dominios. Antiguamente cuando no había servidores DNS que resolvieran los dominios, el archivo era el único encargado de hacerlo, pero dejó de utilizarse cuando Internet empezó a crecer en nombres de dominio, pasando a usar servidores de resolución de DNS. En muchos sistemas operativos este método es usado preferentemente respecto a otros como el DNS. En la actualidad también es usado para bloquear contenidos de Internet como la publicidad web.

En Mac, el archivo esta localizado en private/etc/. Para editarlo simplemente vamos a utilizar un comando desde el Terminal ejecutando el editor de texto que queramos (en nuestro ejemplo TextEdit) y lanzando el archivo dejándolo listo para su edición.

Lanzando Hosts en TexEdit desde el Terminal

+ ESPACIO para abrir Spotlight y escribe Terminal. Desde él lanza el siguiente comando:

sudo open -a TextEdit /etc/hosts

Terminal nos pide nuestra contraseña, introdúcela.

[aesop_image imgwidth=”100″ img=”https://tonidg.es/wp-content/uploads/2016/03/Terminal-Abrir-Hosts.png” alt=”Terminal” align=”center” lightbox=”off” caption=”Terminal” captionposition=”center”]

 

[aesop_image imgwidth=”100″ img=”https://tonidg.es/wp-content/uploads/2016/03/TextEdit-Editando-Hosts.png” alt=”TextEdit” align=”center” lightbox=”off” caption=”TextEdit” captionposition=”center”]

 

Si el archivo estuviera bloqueado y no pudieras editarlo seguramente tengas el SIP activado, para desactivarlo y obtener más información acerca de ello puedes consultar mi anterior artículo Desactivando el sistema de protección de integridad SIP de OS X El Capitan.

Node.js – Instalación en OSX El Capitan 10.11

Node.js - Instalación en OSX El Capitan

Node.js usa el motor de JavaScript V8 de Google: una VM tremendamente rápida y de gran calidad escrita por gente como Lars Bak, uno de los mejores ingenieros del mundo especializados en VMs. No olvidemos que V8 es actualizado constantemente y es uno de los intérpretes más rápidos que puedan existir en la actualidad para cualquier lenguaje dinámico. Además las capacidades de Node para I/O (Entrada/Salida) son realmente ligeras y potentes, dando al desarrollador la posibilidad de utilizar a tope la I/O del sistema.

Instalando Node.js

Para instalar Node.js en OSX puedes descargar un paquete pre-compilado desde https//nodejs.org mediante el cual podrás hacerlo de forma rápida y sencilla. Haz click y consigue la última versión estable.

[aesop_image imgwidth=”100″ img=”https://tonidg.es/wp-content/uploads/2015/11/Descargando-Node.png” alt=”Descargando Node” align=”center” lightbox=”off” caption=”Descargando Node” captionposition=”center”]

Con la instalación además conseguiremos npm. Npm es un administrador de paquetes para Node el cual nos facilita obtener paquetes adicionales.

[aesop_image imgwidth=”100″ img=”https://tonidg.es/wp-content/uploads/2015/11/Instalando-Node.png” alt=”Instalando Node” align=”center” lightbox=”off” caption=”Instalando Node” captionposition=”center”]

Al final de la instalación te recordará que te asegures de que /usr/local/bin está en tú $PATH. Para hacerlo abre el Terminal y escribe el siguiente comando:

echo $PATH

Deberías ver algo parecido a esto:

[aesop_image imgwidth=”100″ img=”https://tonidg.es/wp-content/uploads/2015/11/Comprobando-PATH.png” alt=”Comprobando $PATH” align=”center” lightbox=”off” caption=”Comprobando $PATH” captionposition=”center”]

Después de la instalación podemos comprobar que todo ha ido bien abriendo una sesión JavaScript de Node. Escribe en el Terminal:

node

y después:

console.log('hello node');

Deberás ver algo como esto:

[aesop_image imgwidth=”100″ img=”https://tonidg.es/wp-content/uploads/2015/11/Comprobando-Node.png” alt=”Comprobando Node” align=”center” lightbox=”off” caption=”Comprobando Node” captionposition=”center”]

Para salir de una sesión de Node puedes presionar CONTROL + C.

Recuerda que para actualizar simplemente descarga la última versión y sobreescribe la anterior. Puedes consultar tú versión con:

node -v

Instalando paquetes para Node

Existen multitud de paquetes como por ejemplo el popular Grunt.js, puedes utilizar el comando npm para obtener un listado completo:

npm search

Para instalar un paquete ejecuta:

npm install easyimage

Para listar paquetes desde un directorio de proyecto:

npm ls

Para actualizar paquetes npm:

npm update

Y eso es todo, te recomiendo buscar ayudas o realizar algún tutorial si te estás iniciando en Node.

Sass – Instalar y actualizar en OSX 10.11 El Capitan

Instalar y actualizar Sass en OSX

Sass es una herramienta de pre-procesado CSS que nos permite escribir código usando variables, selectores, herencias, etc, para posteriormente compilarlo en una salida de CSS regular.

Los beneficios de la utilización de Sass son notorios en proyectos de tamaño medio – grande manteniendo su estructura modular y con sencillos elementos re-utilizables.

Trabajar con Sass ayuda al proceso de actualización de código gracias a la utilización de variables, tan solo necesitarás modificar las instancias de estas al inicio del proyecto y ellas se cambiaran a lo largo de todo el CSS.

Codificamos primero a un formato .scss y luego compilamos a un archivo de CSS regular .css, puedes consultar las ayudas del sitio oficial de Sass para más información.

Comprobando Ruby

Sass se ejecuta bajo el lenguaje de programación Ruby el cual viene incluido en OSX, abre el terminal y ejecuta el siguiente comando:

ruby -v

La salida debería ser algo parecido a esto:

[aesop_image imgwidth=”100″ img=”https://tonidg.es/wp-content/uploads/2015/11/Comprobando-Ruby.png” alt=”Comprobando Ruby” align=”center” lightbox=”off” caption=”Comprobando Ruby” captionposition=”center”]

Instalando

La instalación es de lo mas sencilla, simplemente escribe en el Terminal el comando:

sudo gem install sass

Te pedirá la contraseña de administrador, tras esto procederá a la instalación y una vez terminado deberías ver algo parecido a esto:

[aesop_image imgwidth=”100″ img=”https://tonidg.es/wp-content/uploads/2015/11/Instalando-Sass.png” alt=”Instalando Sass” align=”center” lightbox=”off” caption=”Instalando Sass” captionposition=”center”]

Comprobando la versión

Teclea en el Terminal:

sass - v

Y la salida debería ser la siguiente:

[aesop_image imgwidth=”100″ img=”https://tonidg.es/wp-content/uploads/2015/11/Comprobando-la-version-de-Sass.png” alt=”Comprobando la versión de Sass” align=”center” lightbox=”off” caption=”Comprobando la versión de Sass” captionposition=”center”]

 

Compilando a CSS

Hay dos formas de compilar archivos .scss a CSS regular .css, estáticamente o dinámicamente. En el primer caso tu le pasas el nombre de archivo o archivos en un directorio a compilar y genera las salidas respondiendo al comando. En el segundo, Sass monitoriza un archivo o directorio que contiene varios archivos y realiza el compilado según se hagan cambios en estos.

Compilado estático de un solo archivo

Para compilar un archivo simple teclea el siguiente comando en el Terminal:

sass --update archivocss.scss

O para compilar un directorio que contiene múltiples archivos:

sass --update /directorio/

Lo cual produce los nuevos archivo archivocss.css

Monitorizar un simple archivo

sass --watch sass archivocss.scss

Te informará que está a la espera de cambios en el archivo. Puedes presionar CONTROL + C para finalizar el monitorizado.

Monitorizar un directorio que contiene múltiples archivos

sass --watch /directorio/

Puedes cancelar la monitorización o finalizarla presionando CONTROL + C.

Actualizando Sass

Por último, para actualizar a la última versión de Sass en OSX ejecuta el comando:

sudo gem update sass

Instalar mcrypt para PHP en Mac OSX El Capitan

Escritorio MAC

mcrypt es un método de encriptado de archivos que usa técnicas seguras de intercambio de datos. Estas son requeridas para algunas web apps como Magento o un framework PHP como Laravel.

mcrypt para PHP, proceso para la instalación

Command Line Tools

Lo primero que necesitas es tener instaladas las herramientas de comandos en línea.

Ya sabes, abre el Terminal desde Aplicaciones > Utilidades > Terminal o bien CTRL + ESPACIO para abrir Spotlight y tecleando Terminal.

Ejecuta lo siguiente:

xcode-select --install

Desactivar SIP/rootless

Ahora necesitas desactivar el SIP de OSX El Capitan para poder instalar en algunos directorios protegidos del sistema. Tienes más información sobre el SIP y como desactivarlo en mi anterior artículo, consúltalo aquí.

Resumiendo, para desactivarlo reinicia el ordenador y entra en el modo de Recuperación. Seguidamente abre el Terminal y ejecuta el siguiente comando:

csrutil disable

Obteniéndolo en OS X El Capitan 10.11

Lanza el Terminal, cambia de directorio (cd) a la cuenta de inicio y crea un directorio en el que trabajarás llamado crypt

cd ~ ; mkdir mcrypt ; cd mcrypt

Obtén libmcrypt 2.5.8 desde Source Forge, es una descarga directa.

Obtén el código PHP en formato tar.gz o .bz2 (OSX El Capitan viene con la versión 5.5.27)

Mueve ambos archivos a tu directorio de trabajo mcrypt y vuelve al Terminal, escribe el siguiente comando para entrar en el:

cd ~/mcrypt

Expande ambos archivos desde el Terminal (también puedes hacer doble click desde el Finder):

tar -zxvf libmcrypt-2.5.8.tar.gz
tar -zxvf php-5.6.13.tar.gz

Elimina los archivos comprimidos:

rm *.gz

Configurando libmcrypt

Entra al directorio libmcrypt:

cd libmcrypt-2.5.8

Libmcrypt necesita ser configurado:

./configure
make
sudo make install

Con libmcrypt configurado y las librerías instaladas es hora de crear la extensión mcrypt para PHP.

Instalando Autoconf

Instala autoconf desde el Terminal:

cd ~/mcrypt
curl -O http://ftp.gnu.org/gnu/autoconf/autoconf-latest.tar.gz
tar xvfz autoconf-latest.tar.gz
cd autoconf-2.69/
./configure
make
sudo make install

Compilando las extensión mcrypt para PHP

cd ../php-5.6.13/ext/mcrypt/
/usr/bin/phpize

La salida debería ser algo parecido a esto:

Configuring for:
PHP Api Version: 20121113
Zend Module Api No: 20121212
Zend Extension Api No: 220121212<./configure

make
sudo make install

El resultado debería ser algo así:

Installing shared extensions: /usr/lib/php/extensions/no-debug-non-zts-20121212/

Si obtuvieras algún error es que no has desactivado SIP.

cp: /usr/lib/php/extensions/no-debug-non-zts-20121212/#INST@17000#: Operation not permitted

Activando la extensión mcrypt.so para PHP

Abre /etc/php.ini y añade la siguiente linea al final:

extension=mcrypt.so

Si no existiera un archivo php.ini, necesitarás crear uno desde php.ini.default en la misma localización:

sudo cp /etc/php.ini.default /etc/php.ini

Y permitir acciones de escritura:

sudo chmod u+w /etc/php.ini

Entonces añade la linea de arriba con tu editor de textos:

sudo nano /etc/php.ini

o

sudo vi /etc/php.ini

Asegúrate que las extensiones dinámicas están activadas:

extension_dl = On

Y añade la línea:

extension=mcrypt.so

Re-iniciar Apache

sudo apachectl restart

Eso es todo ya tienes instalado mcrypt para PHP, crea una página PHP con la instrucción phpinfo(); para ver que se carga correctamente.

Instalar Homebrew en OSX El Capitan

Código CSS

La forma más sencilla de instalar software open source y herramientas Unix a nuestro Mac OSX es mediante un administrador de paquetes. Desafortunadamente OSX no viene con uno pero hay gente que se cuida de ello y nos lo traen desde Homebrew.

Homebrew no es la única opción pero si la más nueva y popular. Si deseas investigar otras opciones puedes consultar MacPorts y Fink.

Obtener XCode

El primer paso y previo a la instalación de Homebrew es obtener y aceptar la licencia de Xcode. Puedes descargarlo si no lo tienes desde la App Store.

[aesop_image imgwidth=”100″ img=”https://tonidg.es/wp-content/uploads/2015/10/XCode.png” alt=”Instalando XCode” align=”center” lightbox=”off” caption=”Instalando XCode” captionposition=”center”]

Trás esto, abre la aplicación y acepta las condiciones de la licencia.

Por último, instala las Herramientas de comandos en linea con el siguiente comando desde Terminal:

xcode-select --install

Instalando Homebrew

Para ejecutar el script de instalación teclea el siguiente comando desde Terminal:

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

[aesop_image imgwidth=”100″ img=”https://tonidg.es/wp-content/uploads/2015/10/Instalando-Homebrew.png” alt=”Instalando Homebrew” align=”center” lightbox=”off” caption=”Instalando Homebrew” captionposition=”center”]

Así de simple. Ya lo tenemos instalado, ahora podemos consultar si ha habido algún inconveniente durante la instalación con:

brew doctor

Para buscar una aplicación:

brew search

Para instalar:

brew install <nombre-de-la-aplicación>

Para listar todas las apps instaladas por Homebrew:

brew list

Para borrar una app instalada:

brew remove <nombre-de-la-aplicación>

Para actualizar Homebrew:

brew update

Para ver lo que puedes hacer:

man brew

 

Actualizando a PHP 5.6 o 7 en Mac OSX El Capitan

Instalando todas las Google Web Fonts en Mac

Mac OSX El Capitan trae preinstalada la versión 5.5.27 de PHP, en esta entrada veremos como actualizar a versiones más recientes de un modo sencillo y desde el Terminal.

La última versión estable que instalaremos en esta guía está sacada del listado de versiones mantenidas para Mac OSX, puedes consultarlas desde aquí.

Descargando e instalando PHP 5.6

Abre el Terminal desde Aplicaciones > Utilidades > Terminal o bien CTRL + ESPACIO para abrir Spotlight y tecleando Terminal.

Escribe el siguiente comando:

curl -s http://php-osx.liip.ch/install.sh | bash -s 5.6

[aesop_image imgwidth=”100″ img=”https://tonidg.es/wp-content/uploads/2015/10/Instalando-PHP-5.6.png” alt=”Instalando PHP 5.6″ align=”center” lightbox=”off” caption=”Instalando PHP 5.6″ captionposition=”center”]

Eso es todo, se descargará e instalará la versión 5.6 en /usr/local/php5. El script además desactivará la versión 5.5 del archivo httpd.conf de Apache y activará en él la más reciente.

Puedes testear la nueva versión creando un archivo en la raíz web llamado phpinfo.php con la simple función <?php phpinfo();?>.

Desactivando el sistema de protección de integridad SIP de OS X EL Capitan

iMac escritorio editando hosts

Con la llegada de OS X El Capitan Apple nos trae un nuevo modo de protección del sistema frente a ataques externos y / o malos usos por parte del usuario. El System Integrity Protection o SIP añade nuevas funciones a las ya implementadas en Yosemite que afectan a todos los procesos del sistema.

El sistema SIP de OS X El Capitan protege sobre todo a usuarios no avanzados de ataques malware o usos incorrectos del sistema impidiendo instalar cualquier cosa en una serie de carpetas, las pone por decirlo de alguna manera en cuarentena para todos a excepción del propio sistema.

Puede modificarse parcialmente el comportamiento de SIP mediante la aplicación ‘csrutil’ desde el Terminal, activándolo, desáctivandolo o aplicando diferentes configuraciones.

Tal vez, como usuario avanzado estés interesado por diferentes razones desactivar el sistema. Para ello deberás reiniciar el ordenador y entrar en el modo de recuperación presionando CMD + R durante el arranque. Tras esto deberás iniciar el Terminal y tan solo escribir lo siguiente:

csrutil disable; reboot

Con ‘reboot’ reiniciaremos automáticamente el sistema con SIP desactivado.

Puedes activarlo de nuevo con:

csrutil enable

Y eso es todo. Te aconsejaría no manipular el SIP si no eres un usuario avanzado o no estás completamente seguro de lo que estás haciendo.

Crear un instalador de OSX El Capitan en una unidad USB

Con la reciente aparición de la nueva versión de OSX tal vez estés pensando en hacer una instalación limpia, desde cero.

Para ello vamos a crear un instalador de OSX El Capitan en un unidad USB, tras esto, tan solo tendrás que arrancar el ordenador manteniendo pulsada la tecla ALT con lo que se te abrirá un menú pudiendo, desde él, escoger la unidad raíz desde la que instalar así como la unidad destino.

Para la instalación limpia deberás acceder a la utilidad de discos y formatear la unidad destino.

Pasemos pues a la creación de la unidad, necesitarás una unidad con al menos 8Gb libres ya que el instalador ocupa unos 6Gb. Descárgalo antes desde la Mac App Store.

El instalador se descarga directamente a la carpeta de Aplicaciones, nota que al finalizar la descarga este se abrirá así que ciérralo sin mas.

Preparando la unidad USB

Abre la Utilidad de Discos escribiéndolo en Spotlight mediante CTRL + P o Aplicaciones > Utilidades > Utilidad de Discos.

[aesop_image imgwidth=”100″ img=”https://tonidg.es/wp-content/uploads/2015/10/Utilidad-de-Discos.png” alt=”Utilidad de Discos” align=”center” lightbox=”off” caption=”Utilidad de Discos” captionposition=”center”]

Selecciona tú unidad USB y bórrala poniéndole como nombre ‘ElCapInstaler’. Deja el formato por defecto ‘OS X Plus (con registro)’.

[aesop_image imgwidth=”100″ img=”https://tonidg.es/wp-content/uploads/2015/10/Borrando-la-unidad.png” alt=”Borrando la unidad” align=”center” lightbox=”off” caption=”Borrando la unidad” captionposition=”center”]

Creando el instalador

Ahora abre el Terminal desde Spotlight mediante CTRL + P o Aplicaciones > Utilidades > Terminal y escribe el siguiente comando:

sudo /Applications/Install\ OS\ X\ El\ Capitan.app/Contents/Resources/createinstallmedia --volume /Volumes/ElCapInstaller --applicationpath /Applications/Install\ OS\ X\ El\ Capitan.app --nointeraction

Trás pedirte la contraseña se iniciará el proceso, cuando finalice has de ver algo parecido a esto:

[aesop_image imgwidth=”100″ img=”https://tonidg.es/wp-content/uploads/2015/10/Terminal.png” alt=”Terminal” align=”center” lightbox=”off” caption=”Terminal” captionposition=”center”]

Y ya está, ya tienes tú unidad preparada.