miércoles, 29 de junio de 2011

unclutter

Estos pequeños programas, unixlike, que nos hacen la vida mas fácil en nuestro día a día. Esto es lo que realmente mola de linux.

Esta vez se trata de una pequeñez, que cuando lo tienes puesto te olvidas de que lo tienes. Cumple exactamente su propósito porque para esto ha sido creado.

unclutter, es una aplicación que simplemente te esconde el cursor del mouse de la pantalla después de un tiempo de no ser usado, o cuando estás escribiendo. Es especialmente cómodo en caso de tener una pantalla no muy grande, o si te pasas el dia programando ( como un servidor ).

[Instalación]
Bueno..... que os voy a contar que no sepais?
sudo aptitude install unclutter

[Configuración]
Qué? Nono, U-N-I-X-L-I-K-E. La configuración por defecto ya va de lujo.

[Cómo usarlo]
unclutter &

Y listo. Cada 12 segundos, aproximadamente, de inactividad del ratón, el cursor desaparece, a la que mueves el ratón, el cursor aparece de nuevo.

Genial!

domingo, 12 de junio de 2011

Famoso "noatime"

Bueno señores, hoy vamos a ver una configuración muy simple de aplicar, y que hace que el sistema vaya muuucho más flúido. Y estoy hablando del parámetro "noatime".

Qué es esto de "noatime"? Pues "noatime " es un parámetro especial en el montaje de los dispositivos como discos duros o memórias extraibles. Se acostumbra a modificar en el fichero /etc/fstab.

[Explicación]
Resulta que nuestro sistema de ficheros guarda, para cada uno de nuestros ficheros, un parámetro que se llama "atime", o "access time". Total, que cada vez que accedemos ( leemos ) un fichero, el valor "atime" se actualiza. Así podemos saber cuál fué la última vez que accedimos/leimos un determinado fichero.

Pero claro, esto tiene un comportamiento no deseado: Resulta que por cada lectura que hacemos a disco, necesitamos escribir algo a disco!! ( actualizar el valor "access time"). Esto parece absurdo! Para leer tenemos que escribir.

Habrá alguien que pensará: exagerado! No es para tanto. Total, tiene que escribir a disco tan solo unos pocos bytes, esto no es nhà.

Pues bueno, resulta que escribir estos pocos bytes si jode, y mucho. Me explico. Linux tiene un sistema fantástico de caches, completamente transparente para el usuario. Te permite hacer lo siguiente:

# cat ./bashrc
# cat ./bashrc


La primera vez que haces el "cat" de cualquier fichero ( en nuestro caso, .bashrc ), se va al disco duro, y lo lee. Pero también lo pone en la memória RAM. La segunda vez que ejecutas el comando "cat", sabe que lo tiene cacheado y lo lee directamente de memória RAM. No hace falta tocar disco duro. Esto hace que el sistema vaya muuuucho más rápido, ya que todo los ficheros que hayas leido una vez ( y no se hayan modificado ) ya están cacheados, y no se precisa leer a disco. Pero que pasa si no tenemos desactivado el "atime", pues que con cada lectura, aunque la tuvieses cacheada, tienes que hacer una escritura a disco para actualizar el tiempo de acceso. Nos ha jodido.

Esto, en portátiles tiene un impacto muy grande ya que al cabo de X segundos de no utilizar el disco duro, éste se para. Un tema de ahorro de energía. Qué pasa si queremos hacer una lectura o escritura? Pues que el disco se tiene que volver a poner a girar con el consiguiente consumo energético/tiempo perdido. Pero si intentamos leer un fichero CACHEADO por el sistema, el disco duro ni se entera. Sigue parado. Por lo que es genial.

[HOTWO]
Cómo activar la opción "noatime"?
Con tu editor preferido (gedit, nano, emacs) el fichero, en mi caso "vim":
# sudo vim /etc/fstab

Busca tu disco duro principal. Lo mas seguro es que sea una entrada como esta:
UUID=3e9532f9-226c-4f17-ae64-dad42519a1fc / ext4 errors=remount-ro 0 1

y añade simplemente "noatime" en las opciones para que quede tal que así:
UUID=3e9532f9-226c-4f17-ae64-dad42519a1fc / ext4 noatime,errors=remount-ro 0 1

y punto. Reinicia y ya lo tienes.


[Prueba de concepto]
Para los menos crédulos: que os den ¬¬. Y para los mas frikis, vamos a hacer una prueba de concepto. El siguiente comando busca TODOS los ficheros están en /etc y les hace un "cat". Redirijo la salida a /dev/null porque no me interesa ver el contenido de los ficheros, sinó que simplemente mi máquina los lea enteritos una vez y los cachee. Fijáos, de 2.62 segundos a 0.037. Y la segunda vez sin tocar disco duro!!! It rocks!!

inedit@tpad:/etc$ time find /etc -name ".*" -exec cat '{}' ";" > /dev/null 2>/dev/null

real 0m2.622s
user 0m0.024s
sys 0m0.044s
inedit@tpad:/etc$ time find /etc -name ".*" -exec cat '{}' ";" > /dev/null 2>/dev/null

real 0m0.037s
user 0m0.020s
sys 0m0.016s

[Cuándo aplicar esta configuración]
Bueno pues, recomendado, a todas las máquinas en general. Sin excepción.

Muy recomendado, en portátiles. Por el tema de ahorro de corriente, y del encendido/parado del disco.

Y OBLIGATORIO en los equipos:
- Servidores ( web-ftp-sambda ) con muchas lecturas. Aquí si que utilizar el sistema de cachés es algo básico, y no quitar el atime podría hacer que el rendimiento fuese pésimo.
- Equipos con discos duros SSD. Esto es debido a que los SSD tienen un número de escrituras máximas por bloque, y al llegar este número se desactiva el bloque y no se utiliza nunca más. Por lo que tener el "atime" activado significa que la vida del disco va a ser mucho mas corta.


El desarrollador del kernel Ingo Molnar dijo:

Atime updates are by far the biggest IO performance deficiency that Linux has today. Getting rid of atime updates would give us more everyday Linux performance than all the pagecache speedups of the past 10 years, _combined_.


Un saludo, Jan!

x201 Software - Sobre configuraciones, programas instalados y demás

En el post anterior he hecho un pequeño review sobre el Lenovo ThinkPad x201. En el hablábamos de las prestaciones a nivel de hardware. Ahora toca hablar de el software que tengo instalado en el juguetito.


[Sistema Operativo]
Pues, por supuesto, Debian 6.0 en testing. La instalación limpia, sin servidor de X, ni impresoras ni nada. Todo lo he ido instalando después "on demand".

Por qué Debian y no otra? Bueno, al final hay 1000 distribuciones y cada uno elige la que más se adapta a sus necesidades. En mi caso:

Es estable: esto es importante ya que utilizo el portátil tanto para ocio como para el trabajo. No me puedo permitir el lujo de actualizar por la noche y que la mañana siguiente en el curro me peten las X, o que me quede sin audio (para poder recibir llamdas por VozIP y demás).
Sistema gestor de paquetes: es genial, muy práctico y simple de usar. Cualquier cosa que necesite está ahí.
Altamente configurable: me encanta toquetear y personalizar todo. Pero las configuraciones por defecto ya te lo dejan listo para trabajar.
Actualizan cada vez que hace falta: Antes usaba Ubuntu y sacaban muchas cosas en poco tiempo. Cada 6 meses, nueva versión. Esto va en contra de la estabilidad del sistema.
Y la mas importante de todas: porque me sale de los mismísimos _ _ _ _ _ _ _ (rellénese con "cojones")


[Programas básicos]
Nótese que me he tirado muchas horas ( debería decir dias? ) configurando el juguetito. Primero porque me la pone morcillona, segundo porque trabajo mas cómdo/rápido/mejor. Quiero decir que todas estas configuraciones no las he hecho en una tarde. Pero es cosa de ir haciendo poco a poco. Vale bastante la pena tener las cosas exactamente como a uno le gustan.

  • Gestor de ventanas: OpenBox # MUY tuneado
  • Navegadores: Chromium, Firefox4.0
  • Editor de texto: vim
  • Terminal: gnome-terminal y xterm, también uso tilda # bastante personalizado, tanto .bashrc como .inputrc
  • File Manager: Thunar ( no lo utilizo para un carajo )
  • Visor de imágenes: feh
  • Visor de PDF's: xpdf / evince
  • Mensajería (MSN/Jabber): Pidgin
  • Dock: tint2
  • Gestor de escritorio: ninguno. Lo tengo siempre vacío de iconos.
  • Información sistema: conky en el escritorio.
  • Conexiones: network-manager ( a falta de alternativa mejor ).
  • Cliente IRC: irssi
  • Cliente correo: Normalmente utilizo el navegador, pero tengo el mutt configurado también.
  • Servicios: ssh, básico. openvpn que se conecta a un servidorcillo dándome un canal seguro por si lo necesito.
  • Lanzador de comandos: gmrun
  • Cliente de VozIP: blink o sjphone. También uso Skype para el curro
  • Reproductor de música: moc (básico, es un reproductor por línea de comandos)
  • Escriotorio remoto: rdesktop para cuando tengo que trabajar con Juindous, y TeamView para dar soporte a clientes.
  • Volumen audio: aumix / alsamixer. Los dos por línea de comandos.
  • Ofimatica: libreoffice (casi no lo uso para nada)


[Scripts]
Pues tengo un script, que iré comentado en los próximos posts, que es el centro del universo de mi portátil. Ahí he ido recopilando todos los procedimientos que voy repitiendo cada día en un solo script. El script se llama "tpad" en un alarde de originalidad (el portátil es un ThinkPAD). Me permite hacer cosas tan variadas como: blockear las pantalla, añadir las claves SSH al ssh-agent, montar de forma segura un flash drive con encriptación Luks, cambiar el idioma del teclado, apagar/reiniciar el equipo, control de la salida de video, etc... la mayoría de estos comandos son accesibles mediante un shortcut configurado en .config/openbox/rc.conf, así como des de cualquier termianl. Al comando en cuestión le he puesto completion y ayuda. Como digo, ya os iré mostrando lo que hace este ficherito.

[Configuraciones de sistema]
Por ejemplo:
  • Modificar /etc/fstab para poner el parámetro "noatime" a los discos, así como crear puntos de montaje de tipo /tmpfs par hacer que vaya todo mas flúido.
  • Que tanto Firefox como Chrome utilizen la memória RAM para almacenar sus ficheros temporales ( normalmente van sobre disco ).
  • Quitar servicios innecesarios al inicio del sistema.
  • Cambiar el sistema de completion de bash, para que cuando inicies una nueva terminal todo cargue mucho mas rápido.
  • Cachear ficheros para que estén en memória y tenga que hacer menos lecturas a disco cuando trabajo.
  • Desactivar la memória swap.
  • Configurar "iptables" para blindar el PC contra ataques en red local.
  • Quitar el puto "beep" de los cojones del sistema.
  • Remapear algunas teclas del teclado.



Bueno vamos, que estos son los programas mínimos que necesito para ir tirando. Como ya os he dicho, voy a ir comentado próximamente algunos de ellos, y las configuraciones que me han sido más útiles a mi, tanto por un tema de usabilidad, como por un tema de eficiencia.

Os dejo con una captura de pantalla del escritorio, y otra con un benchmarck sacado por el programa bootchart, para ponerle los dientes largos a mas de uno ;) [1]. Si por lo sea has leido algo que te interesa en este post, y quieres que amplie un poco la información, no dudes en dejar un comentario y te soluciono las dudas que tengas!




[1]: Arranque en 21 segundos ;) Y sin SSD. Todavía.
Un saludo, y hasta la próxima!

Lenovo X201 review

Hace tiempo ya -sobre noviembre del año pasao- me compré un portátil nuevo.

El juguete en cuestión es un Lenovo ThinkPad x201. Una monada, la verdad. Con decir que ha sido una de las mejores compras que he hecho en la vida, creo que lo digo todo. Y voy a hacer un poquito de review:

[PRESTACIONES]
Veamos de prestaciones quetal está:
Modelo: Lenovo ThinkPad x201 - 3249
  • Procesador: Intel i5 M540 a 2.53GHz. 3M de caché. 2 cores o 4 con HyperThreading ( 5053.44 bogomits cada uno ). [1]
  • Memória RAM: 6GB (4GB+2GB) DDR3 a 1066. No soporta Dual Channel.
  • Disco duro: 240GB a 5200rpms.
  • Gráfica: Integrada en el procesador [1]. Soporta video de alta definición así como dos pantallas conectadas al mismo tiempo.
  • Pantalla: 12.1 pulgadas, WXGA Display (16:10)
  • Batería: 6 celdas, nos da una autonomia de entre 3.5 horas de trabajo intensivo, o unas 5 si no utilizamos internet ni mucho disco.
  • Puertos: Gibabit Ethernet, Modem, 3USB, microfono/audio, ExpressCard, 5-1 MediaCard Reader, VGA
  • Otros: Lector de huella digital, LED que ilumina el teclado
  • Teclado: De lo mejorcito, full-size con un tacto espectacular.
  • Mouse: TrackPad y TouchPad (utilizo el TrackPad, es MUY cómodo)
  • Peso: 1,47 Kg

[HARDWARE]
Y ahora que hemos visto los datos en bruto, vamos a comentarlos un poquito.

El procesador es un i5, y va muy muy fino. Haciendo "vida normal" (navegando, programando, etc...) el uso siempre está en un 1% [2]. La temperatura ronda los 46 grados en invierno y los 50 en verano. El ventilador que refrigera todo se oye muy poquito ( almenos no parece que el portátil vaya a hacer un despegue vertical, como hacen muchos otros portátiles ). Con 6GB de memória voy mas que sobrado; al iniciar el sistema hay 100MB de memória usados, a la horita de utilizar el PC hay entre 400MB y 600MB usados. Nunca lo he visto superar el GB[2]. La targeta gráfica funciona muy bien para el uso doméstico/trabajo. Nunca lo he probado para jugar a juegos de última generación, pero seguramente se quede un poco corto. Para reproducir flash o ver videos HD va muy fina, aunque utiliza el 25% de la CPU, por lo que el portátil inevitablemente se calienta.

El disco duro es mas que suficiente, y con mi configuración[2] necesito solo 6GB para el sistema/programas. Los demás son para mis cosicas. Aún así dentro de muy poquito lo voy a cambiar por un SSD y disco que hay ahora montado lo usaré de disco extraible USB. Esto si va a ser la caña.

Todo lo demás: pues la pantalla tiene el tampaño perfecto para mi: no es un netbook donde no puedes ver casi nhà, pero tampoco es una pantalla de cine enorme que hace que la batería del portátil se gaste antes, y el tamaño/peso del juguete aumente considerablemente. La batería es suficiente, aunque siempre tienes que ir con el cargador ( con 4 horas de autonomía lo tengo que cargar 3 veces al día, como os podeis imaginar ). Sobre los puertos solo se hecha en falta otro conector de vídeo que no sea VGA, pero bueno. El TrackPad va de lujo y lo mejor sin duda es el teclado. Si os fijais en las fotos, ocupa el 100% de la superfície del portátil pero el tamaño de las teclas es el estándart. Va muy muy bien. Un tacto genial. Cuando cambias a cualquier otro teclado te das cuenta de lo cómodo que es el del x201.

Lo que le falla: Los altavoces, sin duda, son una mierda. La calidad del audio deja bastante que desear. Y le falta otra salida de vídeo como DVI. Y en el modelo que compré también le falta una webcam. Pero hay modelos que si la incluyen. Estaría bien un puerto USB 3.0, que no tiene. Y le sobra el Modem. Ya no estamos en los años noventa.

Estética: se puede ver en las fotos. Pequeño, ligero, el teclado ocupa toda la superfície. Cuando lo coges se nota sólido. El diseño es algo austero, pero a mi personalmente me gusta así.

[PRECIO]
Pues no lo regalan. Yo lo compré en EEUU por unos 920€. En españa creo que el precio base ronda los 1100€. Pero, sin duda alguna, vale mucho la pena gastarse este dinero. Yo, antes de comprarlo me decía: "vale Jan, por 1100€ puedes tener un porátil de 600€ un PC de sobremesa de 500€". Si ahora mismo tuviese que volver a comprarlo, compraría exactamente este mismo modelo. Mis compañeros y gente del mundillo de la informática me ha dicho que me va a durar 4-5 años fácil fácil. Mi jefe y un compañero mio tienen un x60s de hace 5 años y todavía trabajan a diario con ellos.

[CONLUSIÓN]
Un porátil con unas prestaciones muy buenas. Tiene muchos pros y pocos contras. Es un portátil para trabajar y navegar, no para jugar. Portable, ligero pero con la última tecnología del mercado. Lo recomiendo al 100%. No es barato, pero la inversión vale la pena con creces. Yo, después de 7 meses ya lo he amortizado :)


[FOTICAS]
http://tpholic.com/xe/files/attach/images/63/226/373/004/SNC00489.jpg
http://buildaroo.com/wp-content/uploads/2010/12/Lenovo-ThinkPad-x201-side-and-back.jpeg
http://ultimosavances.com/wp-content/uploads/2010/02/x201.jpg
http://www.abeststore.com/blog/wp-content/uploads/2010/07/Lenovo-ThinkPad-X201.jpg

Nótese que algunos portátiles tienen touchPad o webcam y otros no. Todo esto es opcional.

[1]: http://ark.intel.com/Product.aspx?id=43544
[2]: Ya hablaremos porqué en el apartado de Software