10 de octubre de 2013

ZFS portado oficialmente gracias a OpenZFS

Hace tiempo que no pongo nada por aquí. No es porque no haya novedades en el mundillo, es por culpa de una apretada agenda. Pero hoy saco tiempo para contaros algo sobre el que a día de hoy es mi "sistema de archivos" favorito, ZFS.

ZFS es un "sistema de archivos" creado por Sun Microsystems para Solaris en 2005 bajo licencia CDDL, lo cual lo hace incompatible con el kernel de Linux debido a las diferencias entre CDDL y GNU/GPL. Con la absorción de Sun por parte de Oracle el proyecto quedó relegado a un segundo plano y Oracle se limitó a continuar con el soporte y registrar el nombre ZFS con fines comerciales, pero apenas se ha proseguido con el desarrollo. Desde 2007 hubo implementaciones de ZFS en otros SOs como Linux, OSx, FreeBSD etc... pero tanto el desarrollo de la rama principal como el soporte seguían en manos de Sun, y luego de Oracle.

En septiembre saltó la noticia en la LinuxCon. Matt Ahrens, uno de los autores originales de ZFS se ponía al frente del proyecto OpenZFS, dando continuidad a ZFS esta vez como proyecto de software libre apoyado por numerosos desarrolladores y empresas. Aunque la licencia sigue siendo CDDL, ya es posible descargar el código fuente o bien los binarios para diferentes distribuciones, también tenemos repositorios etc...

Vamos a ver un poco en que consiste ZFS. Como dije antes es un "sistema de ficheros" como pueden serlo FAT, NTFS, EXT, BTRFS etc... pero lo pongo entrecomillado porque ZFS además es un gestor de volúmenes como LVM, VxVm etc... Combina ambas funcionalidades.

Como gestor de volúmenes sus características son:
  • Es promiscuo. ZFS permite añadir medios de almacenamiento en un pool, y estos medios de almacenamiento pueden ser de casi cualquier tipo conocido. Un disco completo, una partición, un simple fichero, una espacio de direccionamiento RAM, una LUN externa etc...
  • Permite configurar los pools con los niveles de RAID mas usados, pero re-implementados como RAID-Z. RAIDZ1 equivale a RAID-5, RAIDZ2 es una RAID-6 (doble paridad). Ya se ha implementado RAIDZ3 (triple paridad debido al tamaño que pueden alcanzar los zpool). La principal diferencia es que gracias al copy-on-write se elimina el efecto write-hole de RAID. Por supuesto también se permite hacer un mirror de 2 zpool.

Como sistema de archivos sus características son:
  • Es un sistema de archivos de 128bit. Su límite es de 16EB (Exabytes) para un volumen, fichero o atributo cualquiera. El tamaño máximo de un zpool es de un ZettaByte (de ahí ZettaByte File System). Esto es: 1.180.591.620.717.400.000.000 bytes. Es decir, si creáramos documentos de 1Mb a razón de 100 por segundo  hasta llenar todos los volúmenes de 16EB en un zpool de 1ZB tardaríamos 929.420 años y pico en llenarlo.
  • Es transaccional copy-on-write, es decir, mientras sea posible no se sobrescribe ningún bloque, si no que se crean nuevos bloques y se redirigen los punteros. Esto permite las funciones de snapshots, clones y deduplicación de datos.
  • Es autoreparable. Con niveles RAID si se comprueba que un bloque se ha corrompido (mediante hashes) se reconstruye a través de la paridad automáticamente, incluso sin que se haya solicitado dicho bloque.
  • Permite añadir nuevos discos a un pool de manera dinámica, aumentando el ancho de banda y reconfigurando el nivel RAID de manera autónoma.
Seguro que estáis pensando que con esas características OpenZFS está muy bien para entornos de alta disponibilidad, servidores, superordenadores etc... Pero lo cierto es que es muy sencillo y fiable en entorno doméstico. Principalmente por que la gestión se realiza únicamente con 2 comandos, zpool y zfs, y porque además dispone de una GUI muy cómoda. La gestión de cuotas se puede hacer por volumen o por usuario y es exportable e importable. Por todo ello es mi "sistema de archivos favorito" y ahora que hay un proyecto libre para dar continuidad, se va a convertir en el sistema de archivos que voy a usar en casa.

8 de junio de 2013

Brico: Cambiando la salida de audio-vídeo al momento.

Hace tiempo que conecté la salida de HDMI del ordenador a la televisión para usarlo también de media center. Si alguno lo ha hecho sabrá que es un rollo cambiar a mano la salida de vídeo y audio a HDMI cada vez que quieres ver una película o jugar en la TV en vez de en el ordenador. Pero como buenos linuxeros sabemos que todo tiene arreglo.

Lo primero, que tenemos:
Tenemos una tarjeta de vídeo con salida HDMI conectada a un televisor y DVI a el monitor que usamos normalmente. Ademas tenemos una tarjeta de sonido conectada a los altavoces del ordenador pero queremos que al ver la televisión el sonido salga por HDMI.

Y que queremos:
Cambiar la salida de sonido y de vídeo sin tener que entrar a cambiar la configuración de monitores o pulseadio, simplemente pulsando una tecla.

Pues vamos al tema. Para cambiar la salida de vídeo podemos usar el software de configuración de nuestra tarjeta, como nvidia-settings, aticonfig etc... pero es mas sencillo y mas engorroso con disper, un switcher rápido de salida de vídeo. Para instalarlo es tan simple como:

sudo apt-get install disper

Una vez instalado veamos que nos da:

desmontando@linux:~/scripts$ disper -l
display DFP-0: Acer AL2021  resolutions: 640x400, 640x480, 800x600, 1024x768, 1152x864, 1280x1024, 1600x1200 display DFP-1: LG Electronics LG TV  resolutions: 640x480, 720x480, 720x576, 800x600, 1280x720, 1152x864, 1920x1080, 1024x768, 1360x768


Como vemos nos saca un listado de todos los dispositivos y modos disponibles. Con las opciones del comando podemos sacar solo el display y modo activos:

desmontando@linux:~/scripts$ disper -l
backend: nvidia
associated displays: CRT-0, CRT-1, DFP-0, DFP-1 metamode: DFP-0: nvidia-auto-select @1600x1200 +0+0 scaling: default, default, default, default xinerama info order:


En la linea metamode tenemos el modo activo que en este caso corresponde al monitor DFP-0 con resolución 1600x1200. si cambiamos la salida será:

desmontando@linux:~/scripts$ disper -l
backend: nvidia
associated displays: CRT-0, CRT-1, DFP-0, DFP-1
metamode: DFP-1: nvidia-auto-select @1920x1080 +0+0
scaling: default, default, default, default
xinerama info order:


Para cambiarlo con disper, podemos consultar la ayuda. En ella vemos que con las opciones -s y -S podemos habilitar solo la salida primaria o secundaria a nuestro gusto. Además con -r establecemos la resolución nativa. Con -q le decimos que no saque nada (quiet). En mi caso he optado por usar la resolución para detectar el monitor activo. En caso de usar la misma resolución en ambos monitores debería usar el ID (DFP-X).

Así que ya tenemos:
disper -p -q | metamode | awk '{print $4}' para obtener la salida activa.
disper -S -q -r 1920x1080 para activar solo la TV.
disper -s -q -r 1600x1200 para activar solo el monitor.


Vamos con el sonido, este me ha costado algo mas. Para manejar pulseaduio por consola disponemos del comando pacmd (este ya está instalado). Al igual que con las salidas de vídeo lo primero es determinar cuantas salidas de audio tenemos, para ello:

pacmd list-sinks

Nos sacará un montón de información, sobre todo si tenemos algo reproduciéndose. Lo mejor es para todo y filtrar por lo que realmente nos interes, el index:

desmontando@linux:~/scripts$ pacmd list-sinks | grep index
    index: 0
  * index: 1


Como vemos tenemos 2 dispositivos, el que está marcado con asterisco es el activo en mi caso la tarjeta integrada, es decir, la salida a los altavoces del ordenador. La index 0 es la salida HDMI. Para cambiarlo el comando es:

pacmd set-default-sink X

Pero claro, eso solo sirve si no hay nada reproduciendo, si hay algo tendríamos que cerrar el reproductor y volverlo a abrir para que cambiara la salida, o bien cambiar nosotros la salida a mano. Para ver los streams que hay reproduciendo en pulseaudio:

pacmd list-sink-inputs

Como ya tenemos claro que salidas queremos en cada momento solo nos queda juntar todo en un script. Es algo sencillo, o tenemos audio y vídeo al monitor del ordenador o audio y vídeo por HDMI en el televisor. No quiero mas modos u opciones. El script quedaría:

#!/bin/sh
PAINS=`pacmd list-sink-inputs | grep index | awk '{print $2}'`
STATUS=`disper -p -q | grep metamode | awk '{print $4}'`
case $STATUS in
@1600x1200)
disper -S -q -r 1920x1080
SINK=0
;;
@1920x1080)
disper -s -q -r 1600x1200
SINK=1
;;
esac
pacmd set-default-sink $SINK
for INS in $PAINS
do
        pacmd move-sink-input $INS $SINK
done


Una vez creado el script simplemente le damos permisos de ejecución, y tras probarlo a mano le asignamos una tecla rápida en los atajos de teclado. A partir de ahora solo tendremos que pulsar una tecla cada vez que queramos cambiar las salidas de audio y vídeo.

31 de mayo de 2013

Cerrando bugs al tun tun.

Hace tiempo que no publicaba nada, en parte por falta de tiempo y en parte por falta de noticias.

La falta de tiempo viene en parte por temas laborales en parte por culpa de Steam para linux y sobre todo del Humble Bundle de Double Fine. Tim Schafer me puede...

La falta de noticias viene por la inmovilidad del sector en estas últimas semana. Windows 8 viene mas cerrado que nunca, los fabricantes no se enteran de que mucha gente compra un hardware por el hardware en si, siguen saliendo distribuciones día si y día también, Android se come el mercado móvil aunque la mayoría de sus usuarios piensan que el SO es Galaxy y que es Googel el que meter morralla a Smasung y no del revés. Hangout no ha venido a ser un Whatsapp killer, ni creo que lo pretenda en realidad, sigue habiendo defensores y detractores del software propietario en linux etc...

Pero la noticia de hoy es un poco diferente. Hoy vamos a hablar de un bug, un bug muy famoso. En 2004 Mark Shuttelworth abría el bug #1 de Ubuntu en launchpad.

https://bugs.launchpad.net/ubuntu/+bug/1

¿El problema? Microsoft tenía mayor cuota de mercado. Era muy difícil ir a una tienda e intentar comprar un ordenador que no trajera software propietario. Pues bien ayer el mismo Mark daba por cerrado el bug. Y aquí su explicación para quien se la quiera leer: https://bugs.launchpad.net/ubuntu/+bug/1/comments/1834

Para quien no, a grandes rasgos el CEO de Canonical nos explica que a día de hoy y con los dispositivos portátiles acaparando una gran cuota de mercado doméstico podemos encontrar software libre en una gran parte de los dispositivos de mercado. IOS y Android están ahí para quedarse y representan una sana competencia. Como el mismo admite Ubuntu no ha tenido un gran papel en ese cambio, pero ha estado ahí y va a seguir intentando obtener su trozo de pastel.

A título personal creo que es un bug, como otros tantos, cerrados prematuramente. No soy partidario del software 100% libre, y entiendo y respeto que software libre y propietario convivan y aporten lo mejor de ambos. Pero a día de hoy comprar un equipo sin software propietario es cada vez mas difícil incluso que en 2004. Instalar linux en un ordenador que venga de serie con Windows 8 y UEFI cada vez es mas complicado, e incluso imposible en algunos sistemas.

Deberían de plantearse reabrir el bug.

17 de enero de 2013

Anonimato en Internet.


Cada día se habla mas del anonimato en Internet. Mientras que la mayoría de gobiernos están tratando de ejercer un mayor control sobre la red de redes los usuarios cada día valoran mas el anonimato a la hora de usar los servicios online. Cada vez que visitamos una página web, un servicio online, este blog por ejemplo, nuestra dirección IP pública queda registrada. Muchas páginas descargan en nuestro equipo las llamadas cookies, pequeños ficheros con información mas o menos particular que aunque en un principio buscaban hacer mas sencillos ciertos procesos al final se han usado para cosas menos inocentes.

¿Es posible navegar por Internet de forma anónima?

Si, todo depende del nivel de anonimato que queramos tener. Vamos a ver algunas formas.

La forma mas sencilla de mantener el anonimato en Internet nos la brindan los propios navegadores. Hoy en día los mas comunes como Firefox o Chrome disponen de un modo navegación privada, que consiste en que durante ese modo de navegación no se guardan historial de páginas visitadas, cookies, contraseñas etc... Sin embargo los servidores que visitamos si que guardan nuestra conexión, dirección IP, rutinas de navegación etc... Así que al fin y al cabo es una buena forma de mantener el anonimato, pero solo en nuestro ordenador.

Si buscamos en cualquier buscador como navegar anónimamente por Internet nos saldrán cientos de resultados de proxys anónimos como anonymouse, hidemyass o youhide. Un servidor proxy redirige nuestra conexión a otros servidores web enmascarándola en la suya propia, y limitando la información que el servidor web obtiene de nuestra conexión. Un servidor proxy nos garantiza una conexión anónima hacia otros servidores, pero el servidor proxy puede seguir capturando nuestros datos de conexión, IP de origen, hábitos de navegación y otros datos interesantes y con salida al mercado. Muchos servidores proxy comunes en realidad se dedican a eso, otros simplemente incluyen su publicidad en las páginas que visitamos a través de ellos.

Dar con un proxy seguro y fiable nos puede facilitar mucho las cosas a la hora de navegar de manera anónima, pero siempre será mas fiable si lo hacemos nosotros. Hay cientos de manuales para instalar squid en linux y configurarlo como proxy anónimo, así que no voy a detallar el proceso.

Hemos visto que el modo de navegación privada del navegador no nos hace anónimos en Internet, los servidores proxy online no son de fiar, y un squid configurado por nosotros no siempre oculta nuestra IP pública, ya que lo hace para los servidores que la piden pero no para los equipos de red por los que pasamos. Una buena solución sería conectarnos a un servidor proxy online a través de nuestro proxy. Nuestro anonimato va mejorando.

Si habéis buscado con un poco mas de ahínco la forma de ser anónimos en Internet seguro que habéis oído hablar o incluso habéis probado la red TOR. La red TOR es una red independiente que funciona usando clientes como relays anónimos, es decir cualquier equipo que se conecte a la red TOR enruta su conexión a través de otros clientes y servidores, hay toda una Internet dentro de la red TOR y también permite entrar y salir a Internet de manera anónima. Surgió como un proyecto para crear una red alternativa y segura, y se convirtió en el basurero de la red. Esta bien como curiosidad pero la posibilidad de ser muy anónimos es un azucarillo para pederastas, traficantes de todo tipo, delincuentes, ciberdelincuentes, terroristas etc... Pasear por la red TOR es como pasear por Baghdad, Ciudad Juarez o similares de noche con una capucha. Que nadie te reconozca no implica que nadie te vaya a hacer nada...

Entonces, ¿cual es el mejor método de navegar de forma anónima y segura por Internet? Por supuesto, el sentido común. Y proxychains claro, con proxychains se pueden hacer verdaderas maravillas.

11 de enero de 2013

Usando Unity like a pro.

El último escritorio de Ubuntu, Unity, ha sido uno de los más criticados por su extrema sencillez y poca posibilidad de personalización. La mayoría de los usuarios acostumbrados a entornos Gnome o KDE se le echaron encima, hizo ponerse las pilas al lento equipo de desarrollo de Gnome3 y ha sido criticado en medios, foros y blogs. Ha provocado forks y ñapas para Gnome y ha devuelto escritorios como Fluxbox o XFCE al escritorio por defecto en algunas distribuciones que usaban Gnome2.

Sin embargo, como cualquier otro escritorio Linux que se precie, tras un corto periodo de adaptación lo cierto es que se hace de lo más eficiente que he probado jamás. La curva de aprendizaje es genial, y en la era de los dispositivos táctiles es una interfaz muy intuitiva, tanto que no hace falta profundizar para hacer un buen uso, ahora bien, si queremos tenemos la posibilidad de mejorar nuestra capacidad de trabajo con Unity. Para ello primero vamos a ver de qué disponemos y para qué sirve cada cosa.

Panel Superior:  Inicialmente el panel superior de Unity solo dispone de un acceso al Dash y los indicadores de notificaciones, fecha y hora, control de volumen y sesión. Además se usa para integrar el menú de aplicaciones al estilo MacOS.

Launcher: El panel lateral o Lanzador contiene iconos de acceso directo a aplicaciones. Estos iconos se pueden añadir, eliminar, reordenar, etc.

Dash: Es el nuevo menú que pone en marcha Unity. En principio permite arrancar aplicaciones que tenemos instaladas pero no están en el lanzador, sugiere aplicaciones disponibles, busca documentos etc…  Pero tiene muchas más funciones y opciones.

Tecla Súper: Para los nuevos, la tecla Súper en Linux es la tecla de Windows.

Escritorio Unity
Bien, pues vamos a empezar por lo básico, como arrancar una aplicación. Para ello tenemos varias opciones, la primera y más sencilla, si tenemos un acceso directo en el Lanzador, haciendo click en el acceso directo. Ahora bien, también podemos usar la tecla Súper. Si solo la pulsamos una vez, saldrá el Dash, pero si la dejamos presionada, aparecerán los atajos del Lanzador. Con Súper + 1 lanzamos la aplicación del primer icono del lanzador, Súper + 2 la segunda etc…

La segunda opción es lanzarla desde el Dash, al igual que antes presionamos Súper una vez, cuando aparezca el Dash podemos navegar por el hasta encontrar la aplicación y hacer click en ella, navegar con las teclas del cursos y arrancar con Intro o bien buscar la aplicación escribiendo las primeras letras en el Dash para filtrar. Una vez lanzada la aplicación en el Dash aparece en el Lanzador, y con el botón derecho podemos decir que se quede como acceso directo.

Como veis tenemos muchas formas, más y menos complejas, de hacer lo mismo, para que cada cual use la que le parezca más cómoda.

Ahora vamos a profundizar en el Dash, como hemos dicho antes, con la tecla Súper abrimos el Dash principal, pero hay 2 Dash más para conocer.

El Dash principal combina un lanzador rápido, menú principal, recientes, búsqueda e indexación de documentos etc… Si nos fijamos en la parte inferior incorpora 4 iconos que enfocan el Dash en todo (casita), solo aplicaciones (herramientas), solo documentos (folio) o solo música (nota musical).

El Dash con sus iconos de categoría.
Además el Dash permite el uso de lentes que amplían las búsquedas como la famosa lente para Amazon que tanto polvo ha levantado, la de Wikipedia, Google Docs, una calculadora y muchas más que hay disponibles e irán saliendo.

El Dash de ejecución nos permite ejecutar un programa directamente sin necesidad de abrir la consola. Se invoca con Alt + F2 al igual que el menú ejecutar en otros escritorios Linux.

El Dash de aplicación realiza búsquedas en los menús y funciones de la aplicación que estemos usando. Se invoca con la tecla Alt. Por ejemplo, estamos haciendo un documento en LibreOffice y no nos acordamos, no sabemos cómo se insertan columnas. Podemos rebuscar por todos los menús de formato, herramientas, ver, insertar etc… o podemos presionar Alt y escribir “columna”, el Dash nos dará todas las opciones del menú en la que aparezca dicha palabra, como insertar columnas, formato de columnas etc…

El Dash de aplicación para Chromium.

Como podéis ver las opciones que nos ofrece Unity para facilitarnos tareas en el día a día son muchas más de las que se mencionan inicialmente y hay muchas más que podemos utilizar. Para ello siempre podemos poner de fondo esta chuleta hasta que desarrollemos una forma de movernos adaptada a nuestras costumbres y necesidades que nos resulte cómoda.


Otra de las cosas que no suele gustar de Unity es el GlobalMenu, es decir, que el menú de Archivo, Editar etc... de las aplicaciones aparece directamente en el panel. Para deshabilitarlo simplemente tenemos que abrir una Terminal y teclear:

sudo apt-get autoremove appmenu-gtk appmenu-gtk3 appmenu-qt

Tras reiniciar la sesión los menús volverán a situarse en la ventana de aplicación en vez de en el panel.

3 de enero de 2013

Ubuntu Phone toma forma.


Feliz Año Nuevo!!!
Vuelvo a mi abandonado blog para traeros novedades calientes del mundillo.

Canonical nos tiene preparado un regalo para Reyes. Ubuntu Phone toma forma como SO móvil y empieza a presentar un proyecto sólido.

De momento las preview que hay presentan un SO funcional muy similar a un Android con la estética a la que Ubuntu nos tiene acostumbrados, pero el principal cambio anunciado viene de abajo. Las apps correrán de forma nativa en HTML5, con lo que se prescinde del pesado Dalvik + Java de Android. Por eso los requerimientos que ponen para los futuros Ubuntu Phones en la gama de entrada están en la media de la mayoría de smartphones del mercado. Por otro lado hoy en día un SO para smartphone no tiene sentido sin una buena tienda de apps. Y ahí es donde HTML5 es una gran ventaja. Portar apps HTML5 al móvil es muy sencillo, y ya hay muchas apps HTML5 para navegador que cubren la mayoría de requerimientos de los usuarios. Además traer apps de Android o iOS no debería ser mucho más complejo. Aun no hay nada seguro al respecto pero entiendo que Canonical, o bien creará su propia tienda de Apps a partir de su nube Ubuntu One + Music Store + Software Center aunque vistas sus últimas maniobras puede ser que también se integren con Amazon. Si bien la simbiosis de Canonical y Amazon sigue levantando pasiones.
En una nota de la FSF firmada por el mismo Stallman se alerta sobre la existencia de funciones que envían por internet a servidores de Canonical información privada sin consentimiento de los usuarios, comparando a la empresa de Ubuntu a la altura de Microsoft o Apple. Dicha nota ha provocado una oleada de reportes de bugs en Launchpad, algunas bastante graciosas:

(Ojo, el siguiente enlace contiene referencias altamente geeks)

Desde aquí aprovecho para decir que:
  • Integrar búsquedas online en el dash de Unity me parece un gran acierto, ya sean en Amazon, en la Wikipedia o en forocoches, por poner que no queden.
  • La información que se envía solo corresponde a búsquedas, lo cual no excluye que Canonical debería aclarar si usa esa información y con qué fines.
  • Las búsquedas en el dash o dash lens se pueden modificar, instalar, desinstalar, habilitar, deshabilitar etc… Como usuarios de un SO libre cualquier usuario es libre de hacerlo, así que no seamos catastrofistas Sr. Stallman.

Por cierto, estoy preparando una pequeña entrada sobre atajos para el uso de Unity y el Dash. Espero poder publicarla pronto.