4 de diciembre de 2013

No hay Wi-Fi tras suspender el PC en Ubuntu

ubuntu (4)

Este es un incómodo bug que hay en Ubuntu 13.10 que hace que la conexión a Internet se pierda tras suspender el ordenador. Hasta el momento he podido comprobar por mi propia cuenta que ocurra en Ubuntu 13.10 y en Xubuntu 13.10. He comprobado que ocurre en redes wi-fi pero también ocurre con conexiones por cable.

Hay un bug registrado en el Launchpad de Ubuntu (#1234469), pero hasta que se resuelva, en la propia entrada se menciona un comando que sirve para reiniciar la tarjeta de red, algo que parece hacer volver la conexión:

sudo nmcli nm sleep false

Por mi parte lo he probado, y manita de santo. Esperemos que lo corrijan pronto porque me he tenido que hacer un shell script por si acaso se me olvida el comando en el momento más inoportuno y no tengo otro ordenador a mano para consultarlo.

23 de noviembre de 2013

¿Qué es un inodo?

En UNIX, el inodo es la estructura guarda la información del archivo, como la fecha de creación, el usuario que es dueño del archivo, su tamaño e información sobre dónde se encuentran físicamente los bloques de datos que guardan los bytes de ese archivo en el disco, para que cuando se tenga que leer o escribir en él el sistema operativo sepa dónde apuntar con la aguja en el disco duro. No contiene ningún nombre, pese a lo que inicialmente puedas pensar. En su lugar, un inodo se identifica por un número; cada archivo tiene un número de inodo distinto.

La estructura del inodo también contiene información sobre el tipo de archivo que tiene el inodo. El tipo de archivo no es el tipo que podemos pensar de "archivo de texto", "imagen", "archivo de música". En realidad, el tipo de archivo hace referencia a si es un archivo de datos normal, a una carpeta, a un enlace simbólico... Por ejemplo, la carpeta es un tipo de archivo más con una entrada en la tabla de inodos. La diferencia es que cuando el sistema ve que es de tipo carpeta lo trata de forma especial y no como si fuera otro archivo.

22 de noviembre de 2013

¿Qué quiere decir LTS en Ubuntu y derivados?

Ubuntu 12.04 LTS
LTS son las siglas de Long Term Support. Cuando una distribución de Ubuntu, o de cualquiera de sus derivados como Kubuntu, Xubuntu o Lubuntu, es de tipo LTS, quiere decir que recibirá soporte y actualizaciones durante más tiempo que otra versión.

Tradicionalmente, Ubuntu ha lanzado una versión cada 6 meses. Cada versión de Ubuntu lleva el número del año y del mes en el que se publica; por ejemplo, Ubuntu 13.10 quiere decir que salió en octubre de 2013.

Como todo software, Ubuntu tiene fallos, y por ello de vez en cuando se lanzan actualizaciones que corrigen defectos en el sistema operativo. Del mismo modo, las aplicaciones también pueden necesitar parches o simplemente disponer de nuevas versiones que están disponibles a partir de los repositorios. Una versión normal de Ubuntu tiene soporte durante 9 meses, lo que significa que transcurridos 9 meses, dejan de publicarse actualizaciones y mejoras para esa distribución, haciendo del software menos seguro frente a vulnerabilidades. Afortunadamente, pasado ese tiempo, otra versión habrá salido por lo que siempre es posible actualizar, algo que incluso te invita a hacer el propio gestor de actualizaciones cuando ocurre.

Las versiones de Ubuntu que son LTS, reciben soporte y actualizaciones durante más tiempo, concretamente se estableció a 5 años en abril de 2012. Eso significa que habrá actualizaciones durante 5 años. Transcurrido ese tiempo, la versión será finalmente declarada obsoleta y no se actualizará más. Las versiones LTS se publican cada 2 años. La versión LTS más reciente ha sido la 12.04, con soporte hasta 2017. Se espera que la siguiente versión LTS sea la 14.04.

Por lo general, las actualizaciones en las versiones LTS son más discretas y seguras que en las versiones no-LTS, que se basan en obtener lo último. Si estás buscando un entorno seguro, tal vez deberías considerar instalar una versión LTS. Si por el contrario buscas tener lo último, una versión no-LTS te mantendrá al día. Uno de los problemas de las versiones no-LTS es que en ocasiones el software instalado en sus repositorios puede estar un par de versiones por detrás respecto a otras ediciones no-LTS. Por ejemplo, en el momento de escribir este artículo, la versión de LibreOffice disponible en los repositorios de Ubuntu 12.04 sigue siendo la 3.5, mientras que en otros repositorios no-LTS son versiones superiores a la 4.0.

En definitiva, la decisión sobre usar una distribución LTS o una distribución no-LTS depende fundamentalmente de lo que busques como usuario: algo más seguro, o algo más moderno.

21 de noviembre de 2013

Mi experiencia usando ElementaryOS: es más un hasta luego que un adiós

Durante el último mes y medio he probado en mis dos ordenadores la distribución Linux Elementary OS 0.2, la cual está basada en Ubuntu 12.04 LTS. Por un lado, ser una versión 0.2 implica que es una beta todavía en desarrollo, y que por lo tanto tiene fallos que poco a poco se irán corrigiendo. Sin embargo por otro lado está basada en otra distribución de Linux más estable y que además es de tipo LTS así que funciona sobre una base segura.

Una de las características principales de Elementary OS es que pone el diseño casi a un nivel tan prioritario (o incluso más prioritario) que el resto de la plataforma. Hacer esto sin hacer que el resto del sistema pierda rendimiento es complicado, pero eOS es capaz de conseguir un diseño que enamora en un entorno completamente funcional.

eOS es una de las pocas distribuciones de Linux que “imita” (dejémoslo al menos en “recuerda”) a la interfaz de usuario de MacOS X. Mientras que muchas distribuciones imitan el funcionamiento de Windows, probablemente para hacer más sencilla la transición por parte de nuevos usuarios, eOS dispone de un dock, un panel superior y algunos efectos que recuerdan mucho al sistema operativo de Apple.

Elementary OS viene con un conjunto de aplicaciones diseñadas prácticamente de cero. Entre ellas:
  • Gala, un gestor de ventanas basado en Mutter. Dispone de características como los escritorios virtuales, el modo exposé, para visualizar todas las aplicaciones abiertas, y por supuesto, composición de escritorio, como cualquier sistema operativo a día de hoy.
  • Pantheon es el nombre que recibe tanto el gestor de archivos como la terminal. No hay mucho que decir de ellos aparte de su look simplificado.
  • Scratch es un editor de textos muy similar a gedit (su ventana de opciones es igual por lo que probablemente simplemente sea un fork).
  • Otras aplicaciones como Maya, un calendario; Noise, un reproductor de música; Geany, un cliente de correo, o Shotwell, un visor de fotografías.
  • También trae de serie el navegador web Midori, aunque cambiarlo por otro como Firefox o Chrome es muy sencillo. Y si necesitas más aplicaciones, dispone del centro de software, donde comparte repositorio con Ubuntu 12.04.
He contado Elementary OS como si fuera un buen sistema. Entonces, ¿por qué lo he dejado de usar? Como digo en el título, más que un adiós es un hasta luego, puesto que me ha gustado mucho la forma en la que está hecha la distribución y espero poder volver a usarlo cuando sea más estable. He aquí algunos de los motivos por los que lo he abandonado.
  • Algunas aplicaciones se cierran sin previo aviso. He visto que esto ocurra a Midori, Noise y Pantheon Files.
  • Algunas aplicaciones no se cierran cuando deben. Esto le ocurre a Pantheon Terminal, sobre todo cuando abres varias pestañas y luego las intentas cerrar con el comando exit. En estos casos la terminal vuelve a escribir ‘exit’ pero nunca llega a cerrarse.
  • Aunque Elementary Tweaks añade muchas personalizaciones, muchas de las aplicaciones tienen escasas opciones y no es del todo sencillo modificar su comportamiento.
Sin embargo, hasta que no pruebes Elementary por ti mismo no podrás comprobar realmente qué te parece. Antes de probar Elementary no me terminaba de convencer a partir de las capturas de pantalla. Sin embargo un día decidí instalarlo en mi ordenador y su funcionamiento me fascinó. Si realmente tienes interés en probarlo, puedes descargarlo gratis o haciendo una donación desde su web principal en elementaryos.org.

20 de noviembre de 2013

Zim: una wiki de escritorio bastante útil

Desde que empecé a estudiar en la universidad, mi sistema de organización de apuntes principal ha sido el ordenador. Tomar apuntes de lo que se explica en clase usando un ordenador es una técnica cómoda, efectiva, muy útil, pero sólo si se sabe hacer bien. Parte de hacerlo bien cae en la propia forma en la que tomes apuntes, pero parte de ello cae también en el programa que uses para tomar esos apuntes.

A principios de 2013 migré el sistema operativo del ordenador que usaba para tomar notas a Linux. Hasta entonces, venía usando un programa estupendo para tomar apuntes: Microsoft OneNote. OneNote es uno de los pocos programas que no se puede criticar de Microsoft. Permite organizar apuntes al instante en cuadernos, secciones y páginas; permite escribir en cualquier parte de la página de cualquier forma, escribiendo, dibujando, subrayando; permite imprimir directamente archivos sobre una página del cuaderno, algo que es útil para subrayar y tomar notas de documentos en PDF...

Cuando cambié a Linux, necesitaba algo que reemplazase a OneNote. Y este programa dejó el listón bastante alto, necesitaba algo que fuera tan flexible y robusto como OneNote, o de lo contrario iba a tardar poco en regresar a Windows. Zim estuvo ahí para coger el relevo.



Zim se define como una wiki de escritorio. Una vez creas un cuaderno nuevo, dispones de una interfaz donde puedes añadir páginas y crear subpáginas de otras páginas.

Dentro de una página puedes escribir una cantidad ilimitada de texto. A diferencia de OneNote no se puede dibujar sobre el papel, pero a cambio, es bastante flexible en cuanto a capacidad de escritura.

Puedes añadir títulos, maquetar texto en negrita o cursiva, agregar imágenes, insertar enlaces a páginas web o a otras páginas dentro del mismo cuaderno... un formato similar al de una wiki real, de hecho hace uso de un lenguaje de tipo wiki, lo que nos permite escribir directamente usando sus marcas de formato y luego simplemente redibujar el documento para poder ver los títulos y todos los efectos de texto.

Además, Zim permite exportar páginas o un cuaderno completo en muchos formatos: LaTeX, Markdown, HTML... siendo esta última bastante última ya que permitiría usar Zim como un editor de sitios web pudiendo definir la estructura completa de un sitio web.

Zim es bastante útil para organizarse en el día a día, no sólo para tomar apuntes, sino para cualquier otra cosa que necesites, como un sistema para guardar notas rápidas (como números de teléfono), un sistema para gestionar información sobre proyectos, o incluso un diario.

Zim está disponible tanto para Linux como para Windows y hay un port para MacOS X disponible. Puedes descargarlo todo desde su página web oficial, en http://zim-wiki.org.

27 de octubre de 2013

Apagar el Bluetooth sin apagar el Wi-Fi en un portátil HP Pavilion con Linux

Si estáis pensando en comprar un ordenador y el sistema operativo que vais a usar es Linux, no compréis un HP. Nunca sabremos si es porque Microsoft les ha metido mano, pero dan demasiados problemas cuando intentas instalar algo que no sea Windows. Cuelgues, cosas que no funcionan, drivers que no van bien...

Claro que si sois como yo y no sabíais esto y ya os habéis comprado el ordenador y encima le habéis instalado otro sistema operativo, entonces tenéis dos alternativas. Una es comprarse otro ordenador nuevo, algo que en los tiempos que corren, salvo que seáis ricos no es del todo recomendable, y otra es intentar aguantar lo máximo que se pueda hasta que pueda cambiarse por otro.

Al margen de los muchos fallos que tiene mi HP Pavilion dm1 en Linux (como que el ordenador se cuelgue o que el teclado deje de responder), uno de los fallos que más me molesta es que el Wi-Fi y el Bluetooth estén conectados al mismo controlador. Eso significa que cuando encendamos el ordenador, el Bluetooth estará encendido por defecto, y si nos vamos al menú para intentar apagarlo... ¡oh, sorpresa! Esto apagará también el WiFi.

Para arreglar este comportamiento he descubierto una forma que hace uso del programa rfkill. No sé si es la única que funciona, no sé si es la que funciona siempre, no sé si le funciona a otra persona que no sea yo. Si este procedimiento no funciona en tu ordenador, lo siento, continúa buscando.

  1. Apaga las conexiones inalámbricas pulsando la tecla para apagar el WiFi de tu teclado (en mi HP Pavilion dm1 es F12, o bien Fn+F12 si como yo habéis desactivado las auto-teclas rápidas en el BIOS del ordenador). Con esto se apagaran tanto Bluetooth como WiFi.
  2. Vuelve a pulsar la tecla para encenderlas de nuevo. Esto hará que se encienda el WiFi, pero también el Bluetooth.
  3. Ahora, abre una terminal y escribe el siguiente comando: sudo rfkill list. Deberás escribir tu contraseña. En la pantalla se te mostrará una lista de las distintas conexiones que tiene tu ordenador, tanto LAN, como WiFi, como Bluetooth. Localiza aquella que se llame "hci0", que debería ser la última. Toma nota del número que aparece a la izquierda. Por ejemplo, en mi lista sale "5: hci0: Bluetooth" así que mi número es el 5.
  4. Ahora escribe el comando sudo rfkill block [num], donde [num] es el número de la conexión que tenía asignado hci0. En mi caso, hci0 tenía el número 5 así que yo escribo sudo rfkill block 5.
Notas al respecto:
  • Esto habrá que hacerlo cada vez que apaguemos, suspendamos o volvamos a pulsar la tecla para apagar el WiFi del ordenador.
  • Es importante seguir antes los pasos 1 y 2. De no hacerlos, hci0 tendrá la conexión número 0, pero al intentar ejecutar rkfill block 0 nada ocurrirá.
  • Cada vez que se apagan las conexiones inalámbricas a hci0 se le asigna otro número. Inicialmente se le asigna el 5 porque las conexiones 1 a 4 ya están tomadas, pero si apagas y enciendes otra vez las conexiones tendrás que repetir los pasos indicando que ahora quieres bloquear la conexión 6. Si luego suspendes, tendrás que repetirlo bloqueando la 7, y así sucesivamente.

21 de octubre de 2013

Cómo añadir el botón Minimizar a las ventanas de ElementaryOS 0.2

Una de las características de diseño de ElementaryOS que sin duda más podría chocar con las personas que se instalen esta distribución de Linux es el hecho de que por defecto las ventanas no tienen un botón de Minimizar. Tienen un botón de Cerrar en el margen izquierdo de la ventana y un botón de Maximizar en el margen derecho, al estilo OS X, pero no hay ningún botón para minimizar u ocultar de otro modo las ventanas.

Esto es una cuestión de diseño de Elementary OS. Sin embargo, la belleza del software libre está en que si quieres hacer una modificación al sistema, siempre hay alguna forma de hacerlo. En esta entrada de blog voy a mostraros cómo volver a mostrar este botón.


En primer lugar tendremos que instalar un programa llamado Elementary Tweaks, disponible a través del repositorio PPA de Elementary Update. Si no tienes aún este repositorio, instálalo con el comando:

# add-apt-repository ppa:versable/elementary-update
# apt-get update

Una vez se haya instalado el repositorio, podrás instalar Elementary Tweaks instalando el programa elementary-tweaks:

# apt-get install elementary-tweaks

Con eso se instalará el programa, que se integra con las preferencias del sistema. Simplemente abre las preferencias yendo a Aplicaciones > Preferencias del sistema o haciendo clic en el icono si aún sigue en tu dock.

Haz clic sobre el icono Tweaks, en la sección Personal. Dentro, en la ficha General: Apariencia, que debería estar seleccionada por defecto, encontrarás en la parte principal de la ventana una opción denominada "Disposición de los botones". Seleccionando cualquier opción que no sea "elementary" ni "Sólo cerrar" verás un icono para Minimizar en la ventana.


Con esto quedará visible este botón.

Los diseñadores de Elementary OS argumentan que el botón Minimizar no es tan esencial, ya que muchas plataformas, como los móviles o Windows 8 no lo tienen, y que sólo es una costumbre del pasado. Para algunas personas como yo, el botón minimizar no es sólo una cuestión de diseño, es un botón útil para ocultar ventanas y para navegar entre ellas más rápido. Los móviles y Windows 8 tienen en común que sólo pueden mostrar en la pantalla una cosa a la vez, por lo que no tienen el problema de querer navegar por las ventanas. Como estudiante que soy, cuando trabajo en mi ordenador suelo tener varios documentos PDF abiertos a la vez, y el botón Minimizar me ayuda a ocultar los que no quiero mirar en ese momento para no distraerme con ellos.

7 de octubre de 2013

Linux Mint: Cómo establecer Google como motor de búsqueda por defecto en Firefox

Por cuestiones internas de los desarrolladores de Linux Mint, el navegador web Firefox, que viene preinstalado con Mint, tiene al buscador DuckDuckGo como predeterminado tanto en la barra de búsqueda como en la barra de direcciones.

Probablemente habrá gente a la que le guste DuckDuckGo; probablemente habrá motivos para preferir DuckDuckGo a Google; pero aún así muchos estamos acostumbrados a la búsqueda de Google y simplemente el cambio no nos hace gracia, al fin y al cabo, deberíamos ser libres de usar el buscador que queramos sin que nada nadie nos lo imponga, ¿no?

Para usar Google como buscador en Firefox, hay que hacer un par de cosas:

Añadir Google a la barra de búsqueda

La barra de búsqueda aparece en la parte superior derecha del navegador y por defecto en Linux Mint está configurada para usarse con DuckDuckGo. Si desplegamos la flecha que hay junto al icono de DuckDuckGo veremos que tampoco aparece Google instalado.



Para instalar el motor de búsqudeda Google tenemos que irnos a la página de motores de búsqueda de Linux Mint, y buscar en la parte inferior de la página el icono de Google (deberíanos asegurarnos de que hacemos clic en el icono de Google, hay otro enlace con el mismo icono pero que lleva a Google Scholar).

Una vez en la página del motor de búsqueda de Google podemos desplegar la flecha que hay en la barra de búsqueda y entonces veremos una opción para añadir Google como motor de búsqueda de Firefox.






Hecho eso, podemos volver a hacer clic en la flecha y veremos que está instalado. Podemos hacer clic en el menú en Administrar motores de búsqueda... y mover Google arriba o eliminar DuckDuckGo o lo que queráis.

Usar Google como motor de búsqueda de la barra de direcciones

Por si no sabías esto, si escribes un término de búsqueda en la barra de direcciones y pulsas Enter también puedes buscarlo en Internet usando el motor que tengas asignado.

Al igual que con la barra de búsqueda, la barra de direcciones también está conectada con DuckDuckGo. Para cambiarla, tendremos que abrir una pestaña nueva, escribir about:config en la barra de direcciones y pulsar Enter. Tras aceptar que tendrás cuidado, verás la configuración interna de Firefox.


Para usar Google en la barra de direcciones debes insertar en la búsqueda que hay en la parte superior en la página el texto keyword.URL. En la lista aparecerá una única entrada con el mismo nombre. Haz doble clic sobre ella y en el cuadro de texto que aparece escribe http://www.google.es/?q=.


Ahora, cada vez que escribas una búsqueda en la barra de direcciones y pulses Enter, serás redirigido a Google con tu búsqueda. Cómodo, y sencillo.

9 de julio de 2013

Cambiar la resolución de la pantalla con xrandr y cvt

Cuando se enciende un ordenador o se enchufa un monitor, se lee de dicho monitor una información llamada EDID que contiene los datos sobre las frecuencias a las que funciona el monitor o las resoluciones soportadas.

Con xrandr podemos cambiar la resolución gráfica de la pantalla a través de la línea de comandos sin usar las opciones correspondientes a nuestro entorno de escritorio. Obviamente esto sólo tiene sentido si se ejecuta el comando desde una de las terminales virtuales con un servidor gráfico como X corriendo.

Algunos de los usos básicos de xrandr son:

Listar los monitores y las resoluciones que soportan
Basta con ejecutar el comando xrandr en la consola y nos devolverá los monitores enchufados, incluyendo su código. Por ejemplo, en mi caso al ejecutar xrandr se devuelve esto:

$ xrandr
Screen 0: minimum 320 x 200, current 1366 x 768, maximum 32767 x 32767
VGA1 connected 1366x768+0+0 (normal left inverted right x axis y axis) 410mm x 230mm
   1152x864       75.0  
   1024x768       75.1     70.1     60.0  
   832x624        74.6  
   800x600        72.2     75.0     60.3     56.2  
   640x480        72.8     75.0     66.7     60.0  
   720x400        70.1  
   1280x720       59.9  
   1366x768       59.8* 

Como veis en la parte superior del código devuelto, mi monitor lo detecta como VGA1. Este es un código que tendremos que usar en el resto de funciones para que xrandr sepa con qué monitor estamos trabajando (con el nuestro, con una TV o con un proyector...). También se muestran las distintas resoluciones que soporta y las frecuencias de refresco a las que funciona el monitor.

Establecer un modo de pantalla
Podemos establecer un modo de pantalla usando el comando:

$ xrandr --output <dispositivo> --mode <resolucion>

Donde <dispositivo> es el código del dispositivo con el que estamos trabajando (por ejemplo, VGA1 en mi caso), y <resolucion> es la resolución de pantalla que queramos usar y que por supuesto debe estar en la lista. Por ejemplo:

$ xrandr --output VGA1 --mode 1366x768

Añadir nuevos modos de pantalla no detectados
En algunos casos el EDID puede no ser leído correctamente y podría no ser posible establecer alguna resolución en concreto. Esto puede ser un problema ya que si estamos configurando un monitor TFT o un proyector no podríamos establecer la resolución óptima y eso podría tener el inconveniente de que la visión del monitor no será nítida, tal vez la resolución de aspecto no coincida...

Para solucionar eso podemos crear modos nuevos con la ayuda de otro programa llamado cvt. Con cvt podremos crear Modelines, que son definiciones de modos gráficos que pueden ser procesados por xrandr y establecidos como resoluciones.

Para usar cvt tenemos que usar dos o tres parámetros. Como mínimo tenemos que indicarle el ancho y el alto de la resolución que queremos crear, aunque también podemos indicarle la frecuencia de refresco. Por ejemplo:

$ cvt 1280 720       # 1280x720, frecuencia predeterminada
$ cvt 1280 720 60    # 1280x720, 60 Hz de refresco

Nos devolverá una línea con la información que le hemos pedido:

$ cvt 1280 720
# 1280x720 59.86 Hz (CVT 0.92M9) hsync: 44.77 kHz; pclk: 74.50 MHz
Modeline "1280x720_60.00"   74.50  1280 1344 1472 1664  720 723 728 748 -hsync +vsync

Este código podemos introducirlo en xrandr para añadir la resolución nueva. Tendremos que descartar la primera línea, que empieza con la almohadilla, ya que no es útil. Nos interesa la segunda línea, la que empieza con Modeline, aunque tampoco nos interesa esa palabra, sino que sólamente querremos introducir el bloque "1280x720_60.00"   74.50  1280 1344 1472 1664  720 723 728 748 -hsync +vsync.

Para agregar este modo a xrandr tenemos que usar la siguiente secuencia de comandos:

1. Crear el modo
Simplemente ejecutando el comando
$ xrandr --newmode <línea de Modeline>

donde <línea de Modeline> es lo que nos ha devuelto CVT, como ya hemos dicho a partir de la palabra Modeline pero sin incluir ésta misma. Por ejemplo:

$ xrandr --newmode "1280x720_60.00"   74.50  1280 1344 1472 1664  720 723 728 748 -hsync +vsync

2. Añadir el modo a una pantalla
Una vez creado el modo tendremos que añadir ese modo que hemos configurado a un monitor usando el comando

$ xrandr --addmode <dispositivo> <modo>

de modo que <dispositivo> es el dispositivo gráfico al que lo queremos añadir (como VGA1), y <modo> es el nombre del modo que hemos creado, que es ese código que venía entre comillas en la línea generada con cvt, por ejemplo, "1280x720_60.00". De modo que esto se podría hacer así:

$ xrandr --addmode VGA1 1280x720_60.00

Ahora podemos ejecutar xrandr a secas para ver como ya ha sido añadido a la lista y podríamos establecer ese modo simplemente haciendo xrandr --set VGA1 --mode 1280x720_60.00. Como se ve, este código entre comillas que viene generado por CVT identifica al modo. Si os resulta un poco incómodo siempre podéis cambiarlo por algo más simplificado como por ejemplo "1280x720" a secas.

7 de julio de 2013

Directorios de usuario en Apache2 con userdir + PHP activo

Si tienes un ordenador multiusuario que tenga habilitado un servidor web y te interesa que cada usuario pueda tener su propia porción de dicho servidor para almacenar sus propios archivos, el mod userdir te resultará muy útil, ya que le da a cada usuario del sistema un directorio propio dentro del servidor, que se encuentra dentro de su carpeta de usuario, por lo que dentro de dicho directorio de usuario tendrá total control sobre los archivos y carpetas ahí alojados.

Para habilitar el mod userdir lo único que hay que hacer es ejecutar el comando para activar complementos de Apache indicando que se quiere activar userdir, y reiniciar el servicio de Apache2 para que los cambios se tengan en cuenta:

# a2enmod userdir
# service apache2 restart

Hecho eso, todos los usuarios son libres de crear una carpeta en su HOME llamada public_html. Para acceder a esa carpeta desde el servidor web, sólo hay que navegar en el navegador a la subcarpeta /~[usuario], donde ~ es el símbolo de la tilde, que puede ser escrito usando el carácter Alt Gr + 4 en un teclado estándar, y donde [usuario] es el nombre de usuario de Linux. Por ejemplo, si tu usuario es foo, tu carpeta será /home/foo/public_html, y para acceder desde un navegador web habrá que navegar hasta http://localhost/~foo, por ejemplo.

Por defecto PHP5 no está activado en los directorios de user_dir, pero esto es algo que podemos habilitar accediendo al archivo de configuración de PHP5, php5.conf, que por defecto se debería encontrar en la ubicación /etc/apache2/mods-enabled/php5.conf (dando por hecho que PHP5 está activo). Recuerda que necesitas ser superusuario o root para poder hacer los cambios que vamos a hacer.

Dentro de ese archivo encontrarás una sección cuyo contenido será algo parecido a esto:

<IfModule mod_userdir.c>
    <Directory /home/*/public_html>
        php_admin_value engine Off
    </Directory>
</IfModule>

Habrá que comentar o eliminar la línea que dice php_admin_value engine Off. Hecho eso, guardar los cambios en el archivo, y volver a reiniciar el servicio de Apache2 para que se actualicen las configuraciones usando de nuevo el comando

# service apache2 restart

Hecho eso, podrás crear archivos PHP dentro de las carpetas public_html y comprobarás que puedes ejecutar códigos PHP.

5 de julio de 2013

Descomprimir tarballs (.tar.gz) desde la terminal

Del mismo modo que anteriormente comentamos cómo crear archivadores en formato tarball desde la terminal, hoy vamos a ver cómo descomprimirlos. Si no tenemos acceso a un entorno gráfico (por ejemplo, porque sea una sesión de SSH o porque no haya ningún entorno instalado), o si no queremos usar el entorno para hacer algo que se puede hacer desde la terminal, podemos descomprimir archivadores de tipo .tar.gz usando comandos en la terminal.

Para descomprimir un archivador, podemos usar simplemente el siguiente comando tar, suponiendo que el archivo se llame archivador.tar.gz (probablemente no, así que tendrás que sustituirlo por el nombre del tarball que estás intentando descomprimir):

tar -zxvf archivador.tar.gz

Con esto extraerás el archivo en la carpeta en la que te encuentres. Si dentro del archivador hay una carpeta con todos los archivos dentro, se extraerá tal cual esa carpeta con todos sus archivos, dentro de ella. Si dentro del archivador hay varios archivos directamente en la raíz, la carpeta en la que te encuentres se llenará con todos esos archivos. Tenlo en cuenta.

Por eso, puedes cambiar el directorio en el que se extraen los archivos usando el parámetro -C, un espacio, y el directorio en el que quieres extraer los archivos. Por ejemplo, para extraer el archivador Informes2012.tar.gz en la carpeta ~/Documentos/AntiguosInformes, independientemente de donde se encuentre originalmente el archivador, el comando que puede usarse es:

tar -zxvf archivador.tar.gz -C ~/Documentos/AntiguosInformes

El resto de parámetros que se usan al principio del comando tar son:

  • x: Indica que se quiere extraer un archivador.
  • z: Indica que el archivador está comprimido en formato GZip, por lo que antes de extraer el archivador habrá que descomprimirlo.
  • v: Pide que se muestre en pantalla los nombres de los archivos según se van extrayendo. Para hacerlo más silencioso puede omitirse esta letra, en cuyo caso no verás esa información.
  • f: Indica que se quiere trabajar con un archivo, cuyo nombre se indica a continuación (por eso el nombre del archivador se escribe tras la F).

3 de julio de 2013

Comprimir tarballs (.tar.gz) desde la terminal

Si no podemos trabajar con un entorno gráfico en nuestra máquina Linux, porque no haya ningún entorno instalado, o porque estemos trabajando en una sesión SSH, o porque simplemente no nos da la gana abandonar la terminal para comprimir o descomprimir un archivo o una carpeta, podemos usar la terminal para crear tarballs (esos archivos comprimidos que terminan en .tar.gz) o para descomprimirlos.

Si queremos comprimir un conjunto de archivos y carpetas, la forma más rápida es usar el comando CD para ir a la carpeta padre en la que se encuentre la carpeta cuyos archivos queremos comprimir. Por ejemplo, si queremos comprimir los archivos que se encuentran dentro del directorio ~/Documentos/Abril_2013, nos iremos a la carpeta ~/Documentos ya que es donde se encuentra la carpeta Abril_2013, cuyos archivos queremos comprimir.

Una vez dentro, ejecutamos el siguiente comando para comprimir esa carpeta en un archivo llamado anteriores.tar.gz. Este nombre es un ejemplo, cámbialo por el nombre que quieras que tenga pero terminado siempre en .tar.gz:

tar -czvf anteriores.tar.gz Abril_2013

Esto archivará el contenido de la carpeta en un archivador llamado anteriores.tar y luego lo comprimirá para crear anteriores.tar.gz. Los cuatro parámetros en forma de letra que indicamos al principio significan lo siguiente:
  • c: Indica que queremos crear un archivo.
  • z: Indica que queremos comprimir ese archivo usando Gzip (.gz).
  • v: Indica que queremos que nos muestre por pantalla los archivos que ha procesado. Podemos omitir esta letra si queremos que no nos escriba en pantalla esa información.
  • f: Indica que debe crear un archivo con los datos procesados, cuyo nombre se indica a continuación.
Si queremos comprimir varios archivos o carpetas en un mismo archivador; por ejemplo, queremos crear un archivador con dos carpetas, o no queremos irnos a la carpeta superior porque hay archivos en la carpeta que no queremos incluir, podemos simplemente irnos directamente a la carpeta donde se encuentran los archivos que queremos comprimir (por ejemplo ~/Documentos/Abril_2013) y ejecutar el siguiente comando, indicando tras el nombre del archivador los nombres de todos los archivos y carpetas a comprimir separados por espacios. Si un archivo tiene espacios debemos anteponer una barra lateral (\) delante del espacio del archivo para que no lo considere como una separación entre dos archivos:

tar -czf anteriores.tar.gz InformeVentas.pdf InformeCompras.pdf Informe\ Resultados.pdf

17 de marzo de 2013

5 navegadores web alternativos que no son ni Firefox ni Chrome

Mientras que en otros sistemas operativos como Windows o MacOS los navegadores web vienen integrados en el sistema operativo haciendo que desinstalar respectivamente Internet Explorer o Safari sea, hacks aparte, imposible, en Linux, esto no funciona así. Normalmente en este sistema operativo el motor de renderizado y la aplicación en sí funcionan en paquetes distintos, permitiendo incluso usar el ordenador sin tener ningún navegador web instalado: si el sistema operativo necesita mostrar algo como una página web simplemente tendrá a mano el motor de renderizado para dibujar lo que necesite.

Es por ello que en Linux tenemos la elección del navegador a nuestro gusto. Podemos elegir el que queramos y no estamos obligados a quedarnos con ninguno. Obviamente, en muchos casos nos encontraremos con navegadores que son forks de otros ya existentes, cambiando funcionalidades para centrarse en una tarea en concreto, como el difunto Flock, un fork de Mozilla Firefox centrado en las redes sociales.

Precisamente, en este artículo, me gustaría recomendaros cinco navegadores web interesantes que no son ni Mozilla Firefox, ni Google Chrome (o Chromium), es decir, cinco navegadores alternativos que podemos tener instalados en nuestro ordenador, como segundas opciones, o incluso como navegador principal.

Midori


Midori es un navegador web que me llama la atención por lo simplificada y limpia que es su interfaz de usuario. Siendo el navegador web por defecto de Elementary OS (una distribución de Linux que también intenta destacar por una interfaz simplificada y limpia), Midori es un navegador que usa el motor de renderizado WebKit.

Epiphany



Epiphany es el navegador web oficial del proyecto GNOME. Aunque la interfaz de usuario de Epiphany 3.x no me gusta tanto como la que tenía Epiphany 2.x (en general no me gusta nada que tenga que ver con GNOME 3), sigue siendo un buen navegador, con un API para complementos.

Konqueror


Konqueror es el navegador web oficial del proyecto KDE, similar al Epiphany para GNOME. Su motor, KHTML, fue adaptado en su momento por Apple para dar vida a lo que hoy en día es WebKit. Tiene soporte completo para HTML4, CSS1, CSS2 y CSS3.

Además, Konqueror sirve como gestor de archivos, visor de archivos multiformato con soporte para PDF, texto, hojas de cálculo... vamos, una joya multiusos.

Dillo



Dillo es un navegador web muy ligero (pesa menos de 1 MB) ideal para ordenadores antiguos de bajas prestaciones. No obstante, su soporte como navegador web principal queda en entredicho, pues Dillo es tan ligero que tiene un soporte muy limitado de la mayoría de las tecnologías que usa la web a día de hoy, como JavaScript, CSS o HTML5.

En cualquier caso, es un navegador interesante si queremos ver páginas web simples basadas en HTML puro o como navegador de fallback en caso de que todo falle. Además, como explico más adelante junto a la descripción del siguiente navegador, puede ser útil si estamos desarrollando una página web que deba cumplir estándares de accesibilidad.

Lynx


Lynx es un navegador web basado en texto con un montón de años de desarrollo a sus espaldas. Como navegador web basado en texto, Lynx se ejecuta en una terminal. Se lleva mal con tablas, y como es lógico, no interpreta correctamente CSS ni muestra imágenes. Entonces, ¿para qué querríamos instalar este navegador de todos modos?

Si estamos trabajando con una terminal y no queremos cambiar de medio, bien porque estemos trabajando desde una sesión SSH en otro ordenador, o bien porque seamos muy fans de la terminal, siempre podemos acceder de forma rápida y sin cambiar de ventana a un navegador web rápido donde buscar algo.

Este navegador, junto a Dillo, pueden ser bastante útiles si estamos desarrollando una web que deba cumplir un estándar de accesibilidad. Muchos diseñadores web modernos olvidan que no todos los navegadores web van a ser capaces de interpretar las "obras de arte" que diseñan. Y no me estoy refiriendo a navegadores web obsoletos como IE6, sino a navegadores que por su diseño no lo permiten, como los lectores de pantalla o los dispositivos braile para personas ciegas. Internet es un medio libre, no pongamos barreras a aquellos que lo tienen más difícil.

16 de marzo de 2013

tasksel: instalando múltiples paquetes a la vez

tasksel es un programa útil que puede interesarnos cuando intentemos instalar un programa complejo en nuestro ordenador que se componga de múltiples paquetes, como por ejemplo, un entorno gráfico o un servidor web.

De este modo, en vez de instalar manualmente todos los paquetes en aptitude o apt-get, con el peligro que esto conlleva (escribir en la terminal tres líneas de nombres de paquetes para que apt-get te responda que uno de los paquetes está mal escrito), podemos simplemente marcar una tarea y dejar que el sistema instale automáticamente todos los paquetes que hacen esa tarea.

Captura de pantalla de tasksel

En distribuciones basadas en APT como Debian, Ubuntu o derivados, se puede instalar tasksel con cualquier gestor de paquetes, por ejemplo:

$ sudo apt-get install tasksel

Hecho esto, nos bastará con ejecutar el programa con permisos de administrador y marcar las tareas que queramos instalar en nuestro ordenador.

# tasksel

En la interfaz de tasksel, las tareas aparecen como entradas de una lista. Aquellas tareas cuyos componentes ya estén instalados en nuestro ordenador aparecerán con un asterisco a la izquierda. En caso contrario, no. Podemos marcarlas o desmascarlas para instalar o desinstalar tareas. Cuando seleccionemos Aceptar, el programa automáticamente instalará y desinstalará los paquetes que sean necesarios.