Archivo por meses: Diciembre 2013

Teclado mecánico Razer Blackwidow Ultimate 2013

Para los que trabajamos todos los días (y muchas horas) con un teclado, éste se convierte en una herramienta fundamental, pues es nuestro periférico principal de comunicación con el PC. Sí, están las pantallas táctiles, el ratón, los touchpads… pero yo soy de los que piensan que se es mucho más productivo con un teclado que con los otros dispositivos.

Además, yo creo que cada cosa está pensada con un fin en mente. Así por ejemplo, para ver vídeos de youtube tirado en el sofá, nada mejor que una tablet; para trabajar con fotografía viene muy bien una tableta digitalizadora… pero para introducir datos, texto, etc., lo más cómodo es un teclado.

Lo mismo que hay pantallas mejores que otras, impresoras mejores que otras, ratones mejores que otros, pues también existen teclados… y *teclados*. En este artículo os voy a hablar de los últimos: los *teclados*, es decir, teclados cojonudos 😉

El que uno piense que un producto es mejor que otro es porque considera que en ciertos factores (que para él tienen más importancia) el uno es superior al otro.

Así pues, de igual forma que es dificil comparar un ratón con un trackball, pues no son dispositivos exactamente iguales, también es complicado comparar teclados que poseen características claramente diferenciadas. Por ejemplo, un teclado de tipo slim no tiene nada que ver con uno mecánico, por lo que el que uno diga que un teclado slim como el de los iMac es mejor que un mecánico es porque prefiere el tacto, la delgadez -entre otros factores- al sonido, la suavidad o el feedback que puede proporcionar un buen teclado mecánico.

Una vez hecha la intro, os comento un poco mis impresiones referentes al teclado Razer BlackWidow 2013.

Es un teclado mecánico que usa el sistema Cherry MX Blue, característica por la que me decanté por este teclado. Me explico. Existen distintos tipos de mecanismos de tecla para teclados mecánicos. Los más conocidos son los Cherry MX, que tienen distintos códigos de colores para diferenciar uno de otro.

Así, entre otros, tenemos los siguientes mecanismos: Blue, Red, Brown y Black . Cada uno cuenta con unas características concretas, que sobre todo hace que se diferencien en el ruido, en el tipo de feedback (*) o en la dureza para presionar la tecla. Aquí podéis ver más información sobre cómo funciona cada mecanismo y aquí tenéis un vídeo donde podréis ver y, sobre todo, escuchar, cómo suenan estos mecanismos.

Para que os hagáis una idea, los teclados de tipo Cherry MX Black, tienen los mecanismos de las teclas más duros, así que hay que presionar más fuerte. Esto, para escribir mucho texto, para programar, etc., puede ser un poco molesto, pero para muchos “jugones” es el mejor mecanismo, ya que es difícil la pulsación accidental de una tecla.

Los Cherry MX Blue, como el Razor Blackwidow Ultimate 2013 que tengo el placer de estar disfrutando mientras escribo este artículo, son mecanismos pensados para escribir mucho y, aunque también son cómodos para jugar, se necesita un poco de práctica para hacerte con clic al pulsar, y es que emiten un sonido característico al pulsar las teclas. Son, de hecho, los más ruidosos de todos los mecanismos Cherry MX.

Como ventajas de este tipo de mecanismos podríamos citar las siguientes: son muy suaves (hay que hacer muy poca fuerza para pulsar las teclas); con el clic sabes perfectamente que la tecla se ha pulsado sin tener que mirar la pantalla

Como inconvenientes: yo no veo ninguna pega a este tipo de mecanismos, porque es el que más me gusta, pero es justo señalar que no es, para nada, silencioso. A mí, personalmente, me gusta el clic que produce, pero si te molestan los ruidos de las teclas, éste no es tu teclado.

En particular, el teclado Razor Blackwidow Ultimate 2013 cuenta, además, con algunas características adicionales (además del contar con mecanismos Cherry MX Blue, por supuesto) que lo hacen más atractivo:

  • Múltiples niveles de luminosidad en las teclas
  • 5 teclas adicionales de tipo macro programables
  • Materiales de construcción de alta calidad
  • Cableado largo de alta calidad
  • Cuenta con conector en el teclado para USB 2.0
  • Cuenta con conectores en el teclado para unos auriculares (sonido y micrófono)

Aquí tenéis un vídeo donde podéis ver cómo es el teclado, cómo está hecho (desmontan unas teclas para mostrar los mecanismos Cherry MX Blue), cómo suena y cómo se ve (sobre todo en la oscuridad).

Si escribís mucho, si programáis habitualmente, o si simplemente os gustaría disfrutar de uno de los mecanismos más cómodos para trabajar delante del ordenador, os lo recomiendo encarecidamente (nunca mejor dicho, porque baratos no son precisamente estos teclados ;-).

 

 

(*) Con Feedback nos referimos a que al pulsar una tecla sabemos que ha sido presionada correctamente y acción asociada se ha producido. Así, al pulsar la tecla “A” y notar el feedback (por el clic que hace al llegar hasta la mitad de la pulsación, por ejemplo) tenemos la certeza, sin tener que mirar la pantalla, que la tecla “A” ha sido pulsada correctamente y la letra “A” aparecerá en la pantalla.

Un poco de… Emacs (V): números de línea

Introducción

En ocasiones, cuando estamos editando un archivo de texto, nos puede interesar saber el número de línea en el que nos encontramos. Si estamos tecleando código fuente nos puede interesar que se muestre a la izquierda el número de línea (aunque espero que no sea para usar instrucciones de tipo goto… :-P).

Vamos a ver cómo hacer éstas y otras funciones con los números de línea desde nuestro editor de texto favorito (emacs, por supuesto).

Contar líneas, palabras, caracteres

Emacs tiene varias funciones para contar líneas y palabras. Unas de las más útiles son:

count-lines-page

que nos muestra el número total de líneas y luego entre paréntesis muestra las líneas antes de la actual y las que hay después (ejemplo: 53 (50 + 3)).

Si queremos contar palabras y caracteres:

count-words

Esto nos indica el número de líneas, de palabras y de caracteres del documento.

Ambas funciones tienen la opción de usarse para una región (i.e., un fragmento de texto seleccionado): count-lines-region y count-words-region.

Mostrar número de línea actual

Si queremos que siempre que escribamos se muestre el número de línea en la barra de estado (modeline) podemos ejecutar en el minibuffer este comando:

line-number-mode

Esta función es de tipo toggle (conmutador), es decir, que cada vez que la ejecutamos conmuta, en este caso, el modo “número de líneas”. Así, si la ejecutamos una vez nos indicará que el modo de número de líneas está activado. Si la ejecutamos otra vez lo desactiva. La siguiente lo vuelve a activar, y así sucesivamente.

Con este modo, como decimos, el número de línea aparece en la barra de estado de emacs (modeline).

Conocer la línea actual

Si queremos conocer el número de línea actual y no tenemos activado el modo “line-number-mode” visto antes, podemos ejecutar esta función en el minibuffer:

what-line

y nos lo dirá (¡qué listo que es este editor! ;-)).

También existe la función what-cursor-position, que en este caso nos dirá en qué caracter está el cursor y qué posición ocupa en el documento.

Mostrar números de línea a la izquierda

Si lo que queremos es mostrar a la izquierda el número de la línea podemos usar uno de los muchos modos que han creado otros usuarios. Aquí tenéis una buena descripción de los modos y funciones disponibles referentes a numeración de líneas en emacs. En particular, yo uso yo uso line-num.el.

Este modo muestra, a la izquierda de cada línea, el número de la misma. Si queréis usar este modo, tenéis que tener el fichero con el código (*) del mismo en el directorio $HOME/.emacs.d por un lado y, por el otro, en el fichero $HOME/.emacs.el incluir esta línea

(load "line-num.el")

Una vez hecho esto, para activar el modo en el editor, ejecutaremos esto en el minibuffer:

linum-mode

Esta función activa el modo linum, que es el que nos mostrará los números de línea a la izquierda. Si queremos desactivarlo haremos como en el caso anterior: volver a ejecutarlo, ya que es, también, una función de tipo conmutador.

Cuando usáis este modo, las líneas os aparecen así:

emacs-linum_mode

Espero que os haya resultado útil el artículo. Si tenéis alguna duda o sugerencia dejadme un comentario.

 

(*) Emacs es un editor extensible, al que se pueden añadir infinidad de funciones nuevas usando el lenguaje de programación emacs-lisp. Simplemente cargando al inicio el fichero con el código fuente de dichas funciones ya las tendremos disponbiles para su uso. Asimismo, se pueden cambiar funciones, comportamientos y combinaciones de teclas para personalizarlo y adaptarlo para nuestra comodidad.

Qué es la virtualización

En una entrada anterior (concretamente en ésta) os comentaba cómo virtualizar de forma muy sencilla usando el software VirtualBox.

En aquél artículo comentaba que no iba a entrar a explicar qué era la virtualización, los tipos que hay, etc. Bien, pues eso es lo que os voy a explicar en éste.

En lugar de escribiros un artículo, que puede ser un poco pesado para leer (me suelo enrollar bastante, lo reconozco), me remito a la presentación que hice allá por Julio de 2011 y que expuse en la Universidad durante un pequeño ciclo de charlas de Caldum.

Era una charla corta, así que intenté abreviar pero dejando -o intentándolo, al menos- los conceptos lo más claros posibles. Al final de la misma se explica brevemente cómo usar KVM.

Aquí os pongo el enlace para que los descarguéis la presentación en pdf.

 

Detectando fallos de disco con S.M.A.R.T.

En un anterior artículo os mencioné que existía una tecnología llamada S.M.A.R.T. que sirve para detectar los fallos de los discos duros y poder actuar antes de que sea demasiado tarde. Os comenté que ya os hablaría en otro artículo de ella. Bien, pues ha llegado el momento 😉

Las siglas de S.M.A.R.T. significan Self Monitoring Analysis and Reporting Technology, y como su nombre indica, es una tecnología que sirve para analizar, monitorizar y obtener informes de los parámetros que influyen en la vida de los discos duros.

Para poder usar esta tecnología, ésta debe estar soportada por el disco duro (prácticamente todos los discos duros actuales, si no todos, la soportan) y también por la BIOS (lo que también suele suceder), donde tiene que estar habilitada.

Dado que es una tecnología que sirve para almacenar datos estadísticos de errores y uso del disco duro que os permitirán anticiparos a la pérdida de datos, no hay razón para no activarla. En algún foro leí una vez que la única podría ser que usárais algún tipo de disco flash de los primeros que no soportaran esta tecnología y, por tanto, al estar activada en BIOS, os diera problemas para arrancar (puesto que el disco no la soporta). En cualquier otro caso (que será el 99,99%) os recomiendo que la activéis.

Para consultar los datos que se van guardando sobre el estado del disco duro, existen muchas utilidades (tanto para Linux como para Mac y Windows). En mi caso, me voy centrar en la utilidad para Linux llamada smartmontools.

Para instalarla, ya sabéis (en debian y derivadas):

aptitude install smartmontools (*)

Esto os proporciona el comando smartctl, con el que podréis realizar varios tests y ver la información recogida por S.M.A.R.T. en vuestro disco duro. A continuación vamos a ver algún ejemplo.

smartctl -i /dev/sdx

donde /dev/sdx el disco duro que queréis chequear (/dev/sda, /dev/sdb…; si son IDE: /dev/hda, /dev/hdb…).

Este comando nos da distinta información del disco duro (número de serie, versión del firmware, si está habilitada o no la funcionalidad SMART…):

# smartctl -i /dev/sdb
smartctl 5.43 2012-06-30 r3573 [x86_64-linux-3.8.0-19-generic] (local build)
Copyright (C) 2002-12 by Bruce Allen, http://smartmontools.sourceforge.net
=== START OF INFORMATION SECTION ===
Device Model: ST9750420AS
Serial Number: 5WS3JZ6F
LU WWN Device Id: 5 000c50 04521203c
Firmware Version: 0002DEM1
User Capacity: 750.156.374.016 bytes [750 GB]
Sector Sizes: 512 bytes logical, 4096 bytes physical
Device is: Not in smartctl database [for details use: -P showall]
ATA Version is: 8
ATA Standard is: ATA-8-ACS revision 4
Local Time is: Fri Nov 15 09:56:34 2013 CET
SMART support is: Available - device has SMART capability.
SMART support is: Enabled

Otro ejemplo:

# smartctl -H /dev/sdb
smartctl 5.43 2012-06-30 r3573 [x86_64-linux-3.8.0-19-generic] (local build)
Copyright (C) 2002-12 by Bruce Allen, http://smartmontools.sourceforge.net
=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED
Please note the following marginal Attributes:
ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE
190 Airflow_Temperature_Cel 0x0022 067 035 045 Old_age Always In_the_past 33 (0 18 33 24 0)

Este comando muestra información sobre el estado de salud general del disco. Si pone PASSED, como en el ejemplo mostrado, el disco duro está Ok. Si mostrara algo como FAILING, entonces tenemos que pensar en hacer backup inmediatamente.

En concreto, os pongo el ejemplo de otro disco duro que tengo que me ha dado algún que otro problema últimamente:

# smartctl -H /dev/sdl
smartctl 6.2 2013-04-20 r3812 [x86_64-linux-3.11.0-13-generic] (local build)
Copyright (C) 2002-13, Bruce Allen, Christian Franke, www.smartmontools.org
=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: FAILED!
Drive failure expected in less than 24 hours. SAVE ALL DATA.
Failed Attributes:
ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE
 5 Reallocated_Sector_Ct 0x0033 001 001 036 Pre-fail Always FAILING_NOW 4095

Como véis, tiene problemas (y no pequeños). El problema es que están fallando muchos sectores (ha habido muchos realojamientos de sectores). Total, que me tengo que comprar otro.

Ahora probemos este comando:

smartctl -A /dev/sdb

Con este comando se muestran diferentes atributos SMART del disco duro (en concreto, se muestran 30):

smartctl_a

En este caso ponemos una captura de pantalla para que se vean más claros los datos del ejemplo.

Aspectos interesantes de los datos aportados por el comando anterior:

  • RAW_VALUE es el valor crudo, es decir, el valor real. Por ejemplo, el número de horas que lleva el disco encendido.
  • VALUE. El valor RAW_VALUE es convertido a un número entre 1 y 253 por un algoritmo ejecutado en el propio firmware del disco. Aquí, los números bajos son malos y los altos son buenos. Si un valor es igual o está por debajo del umbral (columna THRES, de THREShold), diremos que el disco ha fallado y aparecerá en la columna WHEN_FAILED. Si esta columna aparece vacía es que todo va bien (las cosas no están fallando). Si hay valores en sus filas, entonces debemos empezar a pensar en hacer backup y cambiar de disco.
  • TYPE. Vemos dos posibilidades: Pre-fail y Old-age. Quiere decir que si observamos un fallo en algún atributo de tipo Pre-fail, se espera un fallo inminente del disco. Si falla en alguno de Old-age, es que se ha alcanzado el final de la vida del disco.

Además de smartctl se incluye, en el paquete smartmontools, el demonio smartd. Éste se encarga de realizar monitorización periódica de los discos del equipo y tomar las acciones que se le indiquen en su fichero de configuración, como enviar un mail al administrador de sistemas, por ejemplo.

Para más información al respecto podéis visitar la wiki oficial del proyecto aquí.

 

(*) Yo siempre uso aptitude, pero podéis usar igualmente apt-get. También podéis usar la utilidad de vuestra distro para instalar software (Synaptic, Muon…). Si queréis usar aptitude pero no está instalada (en las últimas versiones de Ubuntu/Kubuntu/… ocurre), haced esto:

apt-get install aptitude

Reparar disco duro con sectores defectuosos

Introducción

La vida útil de los discos duros es limitada, y más con el uso que les damos actualmente; ¿quién no se ha comprado un disco de 1 TB y al poco tiempo lo tenía completamente lleno?

Por eso, es bueno hacer copias de seguridad con cierta periodicidad, dependiendo ésta de la criticidad de los datos (del valor que tengan para nosotros) y de la frecuencia de modificación de los mismos.

Si no tenemos la precaución de hacer estas copias de seguridad y ocurre un fallo en el disco duro es probable que perdamos todo, y la recuperación de nuestros archivos, si aún es posible, puede tener un coste que se puede escapar de un bolsillo normal y corriente (como el mío por ejemplo). Vamos, que en estos casos casi merece más la pena hacer de nuevo el viaje al Caribe que enviar el disco a reparar para recuperar las fotos del que hicimos el año pasado.

En ocasiones no se estropea completamente el disco, sino que da fallo en algún sector (sector es la unidad lógica mínima de un disco duro, para entendernos). Esto lo notamos cuando vamos a copiar un archivo a o desde un disco duro y se queda un rato “pensando”, dando error de copia al final (normalmente de “redundancia cíclica”).

El que en un disco duro comiencen a fallar los sectores es señal de que es el principio del fin del mismo. Esto no tiene por qué suponer que haya que tirarlo, ni mucho menos, pero yo no dejaría en dicho disco mis fotos más preciadas (al menos, no sin tener un par de copias más en otros lugares).

A pesar de estos pequeños fallos podemos seguir utilizándolo con la particularidad de que cuando vaya a usar ese sector o sectores defectuosos probablemente volverá a dar fallo. ¿Cómo aislamos estos sectores de forma que el sistema operativo no los use más y así no provoque estos fallos? Esto es lo que vamos a tratar de contestar en lo que resta de post, porque vamos a ver cómo hacer esto (en GNU/linux, por supuesto) con distintas herramientas, como badblocks o fsck -entre otras-.

Badblocks

Cito de la Wikipedia (lo explican genial, como siempre): “badblocks es una utilidad disponible para Linux que permite localizar y aislar los sectores defectuosos de una unidad de disco”.

Por tanto, ejecutando dicha utilidad (aunque se puede usar también como parte de la utilidad e2fsck) podemos recopilar una lista de sectores defectuosos encontrados. Esta lista la podemos guardar en un fichero de texto plano que luego podemos pasarle como argumento al comando que realiza el formateo para que tenga en cuenta dichos sectores defectuosos y no los use.

Por tanto, primero ejecutaríamos la utilidad badblocks sobre nuestro disco (pongamos que es, por ejemplo /dev/sdb, aunque podemos especificar también una partición, como “/dev/sdb5”):

# badblocks -svn /dev/sdb -o sectores_defectuosos.txt

donde:

-s –> muestra una barra de proceso
-v –> modo verbose (muestra los errores encontrados)
-n –> usa el modo no destructivo
-o –> especifica el fichero donde se guarda la salida

Al ejecutar dicho comando aparecerá algo como:

Revisando los bloques dañados en modo lectura-escritura no destructiva

Esto quiere decir que no se van a borrar los datos que tenemos en el disco. Aparecerá un porcentaje que va subiendo muy lentamente, así que armaros de paciencia porque es un proceso lento (pensad que va sector a sector y en un disco de 500 GB, por ejemplo, tiene más de 1000 millones de sectores (de 512 bytes cada uno).

Ahora formatearíamos el disco duro (o partición). Si lo queremos en fat32, lo haríamos así:

mkdosfs -F32 -v -l sectores_defectuosos.txt -n LABEL /dev/sdb

Si lo queremos en ext4 haríamos esto:

mkfs.ext4 -v -l sectores_defecuosos.txt -L LABEL /dev/sdb

donde:

-v –> modo verbose (muestra toda la salida de mensajes)
-l –> Le indicamos el fichero que contiene la lista de sectores defectuosos
-n/-L –> Especifica la etiqutea (LABEL o nombre de Volumen) del disco o partición (en mkdosfs esta opción es con “-n” y en mkfs.ext4 -en mke2fs en general- se usa la opción “-L”)

Otras posibilidades

Con mkfs.ext4

También se podría hacer ambas cosas al mismo tiempo de esta forma:

mkfs.ext4 -c /dev/sdb

donde:

-c Es para marcar los bloques defectuosos. Si pusiéramos -cc hace una búsqueda pero no destructiva

Con fsck.ext4

También se puede pasar un chequeo (con fsck) y pedirle que repare todos los fallos que encuentre:

fsck.ext4 -c -p /dev/sdb

donde:

-c (ídem del anterior)
-p Busca y repara los errores

Utilidades de los fabricantes de discos duros

Cada marca tiene su propia utilidad (la cuál, en principio, sólo vale para los discos de esa marca). Suelen funcionar bastante bien. En particular, yo he probado la de Seagate en alguna ocasión con buen resultado. En este caso, la utilidad se llama Seatools y tenéis la posibilidad de descargaros una iso con la que podéis arrancar (previo a quemar un CD con ella, obviamente) vuestro equipo y lanzarla directamente para revisar vuestro(s) disco(s) duro(s).

S.M.A.R.T

Por último, comentaros que existe una tecnología llamada SMART que permite monitorizar el estado del disco de forma que se pueda uno anticipar a un fallo grave pudiendo recuperar los datos antes. Pero de esto hablaremos en otro artículo.

Apuntes finales

Con las utilidades badblocks (en windows tendríamos chkdsk, con resultados similares), estamos solucionando el problema a nivel del sistema de ficheros. Esto quiere decir que nosotros lanzamos la utilidad para que se marquen los sectores defectuosos y el sistema operativo será consciente de ello, de forma que la próxima vez que vaya a escribir en los mismos, al verlos marcados, no lo haga y busque otros “sanos”.

Sin embargo, es menester comentar -ya para terminar este artículo- que los propios discos duros también realizan su detección de sectores defectuosos, de tal forma que si en una escritura de un sector observan que éste tiene algún problema, directamente lo descartan y usan otro, siendo todo esto transparente al sistema operativo. Mediante S.M.A.R.T. al que hacíamos referencia antes (y del que probablemente hablaremos en un artículo próximo) se pueden consultar estos cambios, de forma que si vemos que se están produciendo muchos, podemos comenzar a plantearnos cambiar de disco duro.

Hay mucha información sobre esto en Internet. En partcicular, os recomiendo empezar por aquí.

Espero que os haya resultado útil el artículo.