Activar compresión GZIP en servidores Apache para aumentar la velocidad de nuestros sitios web

Logo servidor web ApacheA día de hoy, prácticamente todos nuestros potenciales usuarios soportarán a través de sus navegadores páginas web servidas de forma comprimida. ¿Por qué es importante comprimir el código HTML resultante que enviamos? Para mejorar el rendimiento del sitio.

Ya hemos comentado otros métodos que tenemos a nuestro alcance para optimizar la velocidad de nuestro sitio como el uso de Minify, en concreto hablamos en el caso particular de WordPress y su plugin WP-Minify.

Hoy os traemos una optimización de la parte del servidor. La idea es enviar comprimido las partes que mejor ratio de compresión obtienen. La estructura central de una página, sea cual sea la tecnología del lado del servidor que usemos (PHP, Python, Ruby, etc) va a ser siempre código HTML. Este código al comprimirse reducirá su peso enormemente, en unas ratios que fácilmente llegan y superan al 90%. Igual ocurre con otros ficheros tipo texto: CSS y JavaScript por ejemplo.

Otro tipo de contenido que servimos desde nuestro sitio no obtiene ratios tan favorable y es hasta contraproducente comprimirlo por el coste en recursos que se tiene para luego no obtener un beneficio. Hablo de imágenes, ficheros PDF, contenido multimedia…

Por lo tanto, veamos rápidamente cómo activar la compresión usando gzip en nuestro servidor Apache y a la vez configurarlo, de forma que tengamos el rendimiento óptimo.

Leer más » 15 Comentarios

Espacio en disco en Linux

No es algo que no os haya contado antes, de hecho, en algunas de mis entradas anteriores aparecía dentro de algunas comprobaciones o mencionándolo como un comando que se nos puede quedar corto para algunas tareas. Pero ha sido hoy, a través de un email que he recibido esta mañana, cuando he pensado crear una simple entrada para recalcar el uso del comando df (Disk Free).

Es bastante sencillo, incluso apuesto a que la mayoría de vosotros lo conocéis. Simplemente, abrís un terminal y ejecutáis el comando df:

ahornero@6581-D:~$ df -h

Filesystem Size Used Avail Use% Mounted on
/dev/sda5 54G 3.3G 48G 7% /
tmpfs 1.5G 0 1.5G 0% /lib/init/rw
udev 1.5G 212K 1.5G 1% /dev
tmpfs 1.5G 140K 1.5G 1% /dev/shm
/dev/sda6 92G 51G 37G 58% /home

Leer más » 1 Comentario

Parámetros opcionales en funciones de JavaScript

El desarrollo web siempre tiene dos interacciones: la que se produce en el lado del servidor y la que se produce en el lado del cliente. Esta segunda cada vez tiene más relevancia para conseguir una mejor experiencia del usuario y JavaScript es el responsable de ésto.

JavaScript es una de esas tecnologías que se pensó para abordar pequeños problemas, pero que por cuestiones de compatibilidad y aceleración tecnológica, se ha convertido en una tecnología versátil a la vez que necesaria para poder afrontar las exigencias de la actualidad.

En lenguajes como PHP, podemos hacer uso de parámetros opcionales (aquí explicaba su uso al hablar de cómo podíamos imitar la sobrecarga de funciones en el curso de PHP orientado a objetos), por ejemplo:

function crearPersona($nombre = "")

Y sus respectivas llamadas:

crearPersona("Javier");
crearPersona();

Sin embargo, en JavaScript no tenemos esta posibilidad, aunque al igual que ocurría con la sobrecarga de funciones en PHP, podemos imitarlo. Veamos cómo.

Leer más » 4 Comentarios

Aumentar el tamaño máximo de subida de ficheros con Apache y PHP

Es muy frecuente que cuando estemos desarrollando algún tipo de aplicación web, tengamos la necesidad de poder subir ficheros. La subida de ficheros es una operación relativamente simple, pero tiene una limitación, el tamaño del mismo. Esta limitación podemos gestionarla a través de PHP dentro del php.ini (en función de cuál sea tu distribución se encontrará en un sitio u otro, en mi caso está en /etc directamente).

Logo PHP

¿Qué parámetros deberemos modificar?

Leer más » 1 Comentario

Instalar Chromium en Ubuntu

Chromium es un navegador web de código abierto, a partir del cual se basa el código fuente de Google Chrome. Chromium está liberado bajo la licencia BSD con partes que están sujetas a una variedad de diferentes licencias de código abierto, incluyendo la licencia MIT, LGPL y otras más. Personalmente es mi navegador favorito y creo que lo será por mucho tiempo gracias a su usabilidad y sencillez.

La instalación de Chromium en Ubuntu es muy sencilla:

Leer más » 2 Comentarios

Eliminar widgets del escritorio en WordPress

Los widgets dentro del escritorio, son un componente relativamente novedoso en WordPress (aparecieron en la versión 2.7). Pueden ser útiles para mostrar ciertos datos, por ejemplo los resultados de Google Analytics.

Sin embargo, debemos asegurarnos tener control sobre ellos, cuando le instalamos WordPress a un cliente y modificamos muchas cosas mostrar más widget de la cuenta puede ser un problema.

Para conseguir personalizar el escritorio usaremos el siguiente método.

function quitar_widgets_escritorio() {
 global $wp_meta_boxes;

 // quitar el widget de enlaces entrantes
 unset($wp_meta_boxes['dashboard']['normal']['core']
['dashboard_incoming_links']);	

 // quitamos unos pocos más: right-now, primario y secundario
 unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_right_now']);
 unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_primary']);
 unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_secondary']);
}

// lo unimos a su hook
add_action('wp_dashboard_setup', 'quitar_widgets_escritorio' );

Como podéis ver la idea es hacer un unset del elemento deseado dentro de la colección: $wp_meta_boxes[‘dashboard’]. En el Codex tenéis más información sobre esta colección y todo lo referente a los widgets del escritorio.

Quitar widgets dependiendo del rol de usuario

Por supuesto, también podemos realizar esta misma operación teniendo en cuenta el rol del usuario. Es muy útil si queremos distinguir entre: administradores, editores, colaboradores… y mostrarle a cada uno la información deseada:

Leer más » 1 Comentario

Permisos de superusuario (root) en portátiles TIC

Es posible que, si sois poseedores de un portátil de los que subvenciona (al 100%) La Junta de Andalucía o si tenéis algún conocido que tenga acceso a uno, hayáis percibido que estos regalitos no disponen de permisos de administración, con lo que de ninguna manera podréis instalar bajo el sistema ninguna herramienta que no se encuentre fuera del respositorio de La Junta.

Tenemos dos opciones para hacernos con permisos de superusuario:

  • Cambiar la contraseña del root. Para lo que os recomiendo sigáis esta guía que os propuse hace tiempo.
  • O meter dentro del grupo de los sudoers al usuario predeterminado. Daros una vuelta igualmente por la entrada que os comento, así podréis elegir mejor la opción que estiméis más oportuna, personalmente prefiero esta última para este caso en concreto.

Existen más opciones, como por ejemplo crear otro usuario con los permisos necesarios, pero no vamos a explicar otros casos para atender al segundo que os proponía en la lista, así:

Para realizar esta tarea necesitamos, y al igual que en el otro tutorial, un LiveCD. Con cualquier distro de Ubuntu nos valdría.

Leer más » 2 Comentarios

¿Por qué usar el triple igual en JavaScript para comparar?

Los lenguajes no tipados de forma explícita, como JavaScript, suelen darnos a la vez comodidad, por no tener que escribir repetidamente el tipo; y quebraderos de cabeza, por los problemas que podemos tener en ocasiones al hacer igualaciones o pasar parámetros.

Sin embargo, el lenguaje nos provee de mecanismos para poder, al menos en parte, esquivar estos problemas. Uno de ellos es usar el triple-igual, en lugar de el doble-igual, a la hora de comparar.

¿Por qué?

Porque al usar el triple-igual obligamos al intérprete a que compare también tipos. Veamos ejemplos.

Ejemplos

alert(99 == "99"); // devolverá true
alert(99 === "99"); // devolverá false

Leer más » 4 Comentarios

Montar imágenes que no son ISO: NRG, BIN/CUE, MDF/MDS, IMG, DAA en Linux

Si hablamos la semana pasada de cómo montar una imagen ISO de forma gráfica y desde la consola, hoy vamos a hablar de cómo montar las demás imágenes en Linux. Aunque no sean las estándares, son muy frecuentes y muy comunes o si no preguntadle a todos los que usen Nero, Alcohol 120% o cualquier software de grabación similar propietario.

Imágenes NRG de Nero

Las imágenes NRG pueden montarse sin problemas directamente desde la terminal haciendo:

$ sudo mkdir /mnt/punto/de/montaje
$ mount -t iso9660 -o loop,offset=307200 imagen.nrg /mnt/punto/de/montaje

El resto de formatos no puede montarse directamente, por lo que siempre haremos el siguiente proceso:

  1. Convertir la imagen a estándar ISO
  2. Montar la imagen en ISO: en modo texto o mediante interfaz gráfico

Veamos uno a uno los conversores de los que disponemos.

Leer más » 1 Comentario

Personalizar Unity con MyUnity

Uno de las principales desventajas de Unity es su falta de personalización. Sin embargo, hay una aplicación que te permite, en cierta medida, modificar los aspectos y parámetros de dicha interfaz para configurarlo a tu gusto: MyUnity.

Para instalar MyUnity abre una terminal de consola y ejecuta lo siguiente:

sudo add-apt-repository ppa:myunity/ppa

sudo apt-get update && sudo apt-get install myunity

sudo apt-get install myunity

Ahora abre la aplicación MyUnity y personaliza la interfaz a tu gusto. read more

Leer más » 1 Comentario