domingo, 31 de marzo de 2013

Cómo recuperar archivos eliminados de una tarjeta SD


Me ha ocurrido un par de veces que he borrado accidentalmente un grupo de fotos ya que en el menú contextual de Thunar, "Eliminar" está muy cerca del "Copiar" y la aplicación no es muy preguntona; directamente borra.

A no desesperar, he aquí la solución.

Este es un aporte de Agustín Kanashiro, convirtiéndose así en uno de los ganadores de nuestra competencia semanal: "Compartí lo que sabés sobre Linux". ¡Felicitaciones Agustín!

Lo primero es que inmediatamente después de haber borrado los archivos, NO copiar nada en la memoria SD.

Instalación

Primero hay que bajar testdisk ya sea haciendo apt-get install testdisk o pacman -S testdisk.

Crear una imagen

Desde la línea de comandos, creamos una imagen a disco de nuestra tarjeta SD. Debemos tener suficiente espacio en disco para hacerlo.

  dd if=/dev/DISPOSITIVO of=memory_card.img bs=512

Donde DISPOSITIVO es el lector de tarjeta SD. En mi caso es mmcblk0.

Eso se obtiene haciendo:

  sudo fdisk -l

Obtendremos algo como esto:

  Disco /dev/mmcblk0: 3965 MB, 3965190144 bytes  49 heads, 48 sectors/track, 3292 cylinders, 7744512 sectores en total  Units = sectores of 1 * 512 = 512 bytes  Sector size (logical/physical): 512 bytes / 512 bytes  I/O size (minimum/optimal): 512 bytes / 512 bytes  Identificador del disco: 0x00000000

Recupar archivos

En un terminal escribimos:

  photorec memory_card.img



La aplicación es bastante sencilla de usar y la utilidad da la opción de recuperar todos los archivos, pero no los recupera con los nombres originales. Igualmente, lo más importante es que pueden recuperar los archivos. 

jueves, 21 de febrero de 2013

El gestor de archivos Athena es ya una realidad

El gestor de archivos Athena es ya una realidad

Athena —administrador de archivos bifurcado de Nautilus por Ikey Doherty y Georgi Karavasilev— ha comenzado a materializarse después de la gran aceptación que tuvo por parte de los usuarios, quienes quedaron maravillados con los bocetos de la aplicación presentados hace unas semanas.

Georgi Karavasilev colgó en su perfil de Google+ la primera captura de Athena en funcionamiento, señalando que se trata de un primer paso de muchos que aún hay que dar.

El gestor de archivos Athena es ya una realidad

«Acabo de compilar Athena en Ubuntu», se puede leer en el perfil de Karavasilev, quien agrega después: «Primera observación: necesita mucho más trabajo (¡no se pueden imaginar cuánto!) antes de lucir tan espléndido como en los bocetos; segunda observación: las cosas básicas están más o menos ahí».

Es tanto el trabajo que Georgi Karavasilev ha adelantado que algunas características, como la vista por columnas o el manejo inteligente de pestañas, tendrán que esperar hasta la próxima versión mayor. «Esta [versión] ya requiere un infierno de trabajo aún sin esas dos [características]», confiesa.

Athena fue concebido con la finalidad de ofrecer a los usuarios un administrador de archivos con una gran cantidad de funcionalidades y una interfaz la mar de agradable a la vista. Servirá también como gestor de archivos por defecto en la distribución SolusOS, aunque se espera que otras distribuciones adopten la aplicación.

Más información – Athena, un nuevo administrador de archivos bifurcado de Nautilus
Fuente – Perfil de Georgi Karavasilev en Google+I love Ubuntu

martes, 19 de febrero de 2013

Sublime Text 2 – El mejor editor de código de 2012

Algo que nos caracteriza a los programadores es nuestro cariño por nuestro editor de código. Una vez te acostumbras a uno es como tu almohada: cuesta mucho cambiarla por otra.

Sin embargo debido a la buena crítica de la comunidad, recientemente instalé Sublime Text 2, el que según la opinión es el mejor editor de código del mercado. Tan buenas han sido mis impresiones que he decidido aparcar mi querido Komodo Edit y, como cientos de bloggers antes que yo, le voy a dedicar este artículo.

Icono de Sublime Text 2

Icono de Sublime Text 2

Ya me has convencido, quiero descargarlo

Si eres de esas personas impulsivas que necesitan pocos motivos para el cambio tal vez ya estás convencido de que Sublime es lo que necesitas para convertirte en el mejor programador del mundo. Puedes descargar Sublime gratis en su página oficial. Aquí tenemos los dos primeros puntos positivos: distribución gratuita (aunque no de licencia gratuita) y compatible con OS X (10.6+), Windows 32 y 64 bits, y Linux 32 y 64 bits.

La versión de evaluación no está limitada en tiempo y el precio no está nada mal: 59?, menos de lo que gasta un fumador medio al mes.

Ya lo he descargado, ¿qué tiene de bueno?

Lo primero que vemos en Sublime Text 2 es una interfaz fea sobria. No tenemos elementos visuales que distraigan, lo que demuestra que no es un juguete: está hecho para trabajar. En mi opinión Sublime tiene el objetivo de aumentar mágicamente la productividad del programador, y esta interfaz inmersiva logra centrarnos en el código. Por supuesto, podemos modificar el tema de colores desde las preferencias, por uno más acorde a nuestros gustos.

Interfaz de Sublime Text 2

Interfaz de Sublime Text 2

Sublime sigue la filosofía de VIM, es decir, el teclado manda y el ratón es un elemento completamente innecesario. Con algo de práctica, no sentirás la necesidad de levantar las manos del teclado para navegar entre las diferentes opciones ni para realizar ningún tipo de acción. Esto no es ser "Old Style", es ser productivos.

Algo increíble de Sublime es la posibilidad de descargar (o crear) plugins que mejoren ciertos aspectos del editor. Mediante estos plugins (llamados packages) podremos usarZen Coding totalmente integrado en el editor, LESS, correctores de sintaxis, trabajar directamente vía FTP o minificar nuestros archivos JS o CSS? Las posibilidades son infinitas y adaptables a nuestro estilo o lenguajes.

Otro apartado que aumenta nuestra productividad es la creación de nuestros propiossnippets o fragmentos de código. En este vídeo de Fluid Web Studio vemos como podemos ahorrarnos mucho tiempo de desarrollo de esta forma:

También podremos situar nuestro cursor en varias líneas a la vez y escribir, borrar o editar todas ellas a la vez, o bien unificar varias líneas usando una simple combinación de teclas.

En resumen

Decir que Sublime Text 2 es el editor definitivo como rezan algunos titulares es exagerado y con pocas miras al futuro, pero sí innova en un campo donde todo parecía inventado. Además reúne lo mejor de otros editores donde no se puede innovar. Personalmente he decidido usar este editor por el tiempo que me ahorra en muchas tareas y porque cuanto más lo uso, a base de plugins, snippets y atajos de teclado aprendidos, más productivo me vuelvo.

Fuente: http://www.antonionavajas.com

miércoles, 6 de febrero de 2013

NoSQL vía My Java Zone

NoSQL

Hoy veremos una pequeña introducción de lo que es NoSQL, muchos ya han escuchado sobre las base de datos NoSQL por su gran capacidad de escalabilidad. Usualmente es común que se usen las base de datos relacionales, siguen siendo las mas usadas para la mayoría de los proyectos, pero cuando se tienen miles de usuarios concurrentes y millones de consultas diarias dichas base de datos relacionales no se comportan como se espera, ahí es donde surge el uso de las base de datos NoSQL.

Las bases de datos NoSQL son sistemas de almacenamiento de información que no cumplen con el esquema ya conocido entidad-relación, no imponen una estructura de datos en forma de tablas y relaciones entre ellas , son más flexibles, ya que suelen permitir almacenar información en otros formatos como clave-valor, Mapeo de Columnas, Documentos o Grafos.

Ventajas

  • Escalabilidad horizontal: Permite añadir mas recursos con solo agregar mas nodos al sistema en caliente, sin la necesidad de reiniciar el servidor o el sistema.
  • Tolerante a fallos y redundancia
  • No generan cuellos de botella
  • Estructura dinámica: Cada registro puede contener una información con diferente forma cada vez.
  • Se ejecutan en máquinas baratas sin problemas.
  • Manejan con facilidad una gran cantidad de datos.
Tipos de Base de datos NoSQL

  • Key-Value: llave-valor es la forma mas típica, como un HashMap donde cada elemento esta identificado por una llave única, lo que permite la recuperación de la información de manera muy rápida. Ejemplo: BigTable, Cassandra, SimpleDB, entre otras.
  • Basada en Documentos: estas almacenan la información como un documento (generalmente con una estructura simple como JSON o XML) y con una llave única. Es similar a las bases de datos Key-value, pero con la diferencia que el valor es un fichero que puede ser entendido. Si el servidor entiende los datos, puede hacer operaciones con ellos. Ejemplo: MongoDB, CouchDB, entre otras.
  • Orientadas a Grafos: Hay otras bases de datos que almacenan la información como grafos donde las relaciones entre los nodos son lo mas importante. Ejemplo: Neo4j, DEX, OrientDB, entre otras.
  • Orientadas a Columnas: guardan los valores en columnas en lugar de filas ya que con este cambio ganamos mucha velocidad en lecturas, si se requiere consultar un número reducido de columnas, es muy rápido hacerlo pero no es  eficiente para realizar escrituras.
Pronto veremos algunas aplicaciones donde mostremos como conectar java con este tipo de base de datos, abriendo asi aun mas la gama de posibilidades al momento de hablar de persistencia de datos.

jueves, 20 de diciembre de 2012

CUSTUBUNTU herramienta de personalización para Ubuntu / Linux Mint

Custubuntu es un software de código abierto que permite a los usuarios de Ubuntu para personalizar fácilmente su escritorio con los temas, iconos e indicadores. Custubuntu Con usted también será capaz de personalizar la configuración de Nautilus y los estilos visuales.

custubuntu
custubuntu
custubuntu

Instalación de Custubuntu en Ubuntu / Linux Mint, Introduzca los comandos en la terminal:
https://downloads.sourceforge.net/project/custubuntu/custubuntu_0.2_all.deb wget  sudo dpkg-i custubuntu_0.2_all.deb && sudo rm custubuntu_0.2_all.deb  




La distribución más popular del 2012 en Distrowatch

viernes, 23 de noviembre de 2012

Comandos para conocer el sistema (identificar hardware y algunas configuraciones de software)

Introducción

Un equipo de cómputo consta de dispositivos físicos llamados de forma global hardware, y componentes lógicos llamados software. Existen herramientas que permiten identificar ambas partes, ya sea para conocer las características del equipo como para medir su desempeño y/o diagnosticar posibles fallas.

Cuando existe la necesidad de solicitar apoyo en la resolución de problemas es importante poder aportar toda la información que sea posible y necesaria sobre el hardware y el software que conforman el equipo. En ese sentido, este artículo puede verse como una expansión de otro más antiguo en el que explicábamos dónde se encuentran los archivos de registro del sistema.


Justificación

A la hora de buscar respuestas a los problemas que puedas enfrentar al usar Linux es necesario proporcionar toda la información necesaria sobre el problema en cuestión, como por ejemplo: el tipo de computadora que tienes, versión de Debian, versión del kernel, sistema de escritorio, etc. Eso ayudará a describir los pasos que llevaste a cabo para provocar o solucionar el problema.

Es más fácil solicitar y obtener apoyo cuando se sabe cómo proporcionar dicha información, y este artículo pretende ofrecer una lista de comandos para alcanzar dicho objetivo. Muchos usuarios nuevos de Debian GNU/Linux no saben cómo aportar toda la información posible y podrían no recibir la ayuda adecuada, simplemente por no saber proporcionar la información adecuada.


Convenciones

En algunos comandos la información resultante excede la altura de la pantalla, así que para facilitar la lectura de dicha información se usa el paginador less y de esta manera es posible desplazarse hacia abajo y hacia arriba visualizando toda la información. Para salir del paginador simplemente se presiona la tecla Q (quit). A continuación 2 ejemplos de cómo se usará dicho paginador:

  dmesg | less

y

  less /etc/apt/sources.list


Información del fabricante y del modelo

Fabricante del equipo:

  sudo dmidecode -s system-manufacturer

Nombre del producto:

  sudo dmidecode -s system-product-name

Versión del producto:

  sudo dmidecode -s system-version

Número de serie del equipo:

  sudo dmidecode -s system-serial-number

SKU (Stock Keeping Unit) ó P/N (Part Number) del producto:

  sudo dmidecode | grep -i sku

Más información detallada:

  sudo dmidecode


Información del procesador

Mostrar el nombre del fabricante, modelo, y velocidad:

  grep 'vendor_id' /proc/cpuinfo ; grep 'model name' /proc/cpuinfo ; grep 'cpu MHz' /proc/cpuinfo

Mostrar la arquitectura (32 o 64 bits):

  sudo lshw -C CPU | grep width

Nota: El paquete lshw no está instalado de manera predeterminada, por lo que antes de usarlo es necesaria su instalación.

Mostrar el tipo de máquina:

  uname -m

Mostrar si el procesador soporta "Extensiones de Virtualización" (Intel-VT ó AMD-V), las cuales se activan desde la configuración de BIOS del equipo:

Si el procesador es Intel, se necesita saber si aparece el valor "vmx":

  grep -i vmx /proc/cpuinfo

Si el procesador es AMD, se necesita saber si aparece el valor "svm":

  grep -i svm /proc/cpuinfo


Información de la batería

  acpi -bi

ó

  acpitool -B

Nota: el comando acpitool no se encuentra instalado de forma predeterminada.


Memoria RAM y partición SWAP

Mostrar el total de memoria RAM y la partición swap (cambiar el último parámetro por: -b = Bytes, -k = Kilobytes, -m = Megabytes, -g = Gigabytes, según convenga):

  free -o -m

y otra forma de hacerlo es así:

  grep 'MemTotal' /proc/meminfo; grep 'SwapTotal' /proc/meminfo

Para mostrar en qué partición (y el tamaño) está el swap:

  sudo swapon -s


Kernel

Mostrar el nombre y versión del kernel:

  uname -sr


Shell

Mostrar el shell en uso:

  echo $SHELL


Distribución

Mostrar el nombre, versión y nombre clave de la distribución:

  lsb_release -idc


Entorno del usuario

Nombre del usuario actual:

  echo $USER

Nombre del equipo:

  echo $HOSTNAME

Directorio base del usuario actual:

  echo $HOME

Directorio de trabajo actual:

  echo $PWD

o

  pwd


Hardware

Listar los dispositivos PCI / PCIe

  lspci

Listar todos los dispositivos PCMCIA

  /sbin/lspcmcia

Listar todos los dispositivos USB:

  lsusb

Listar todos los dispositivos detectados como SCSI:

  lsscsi

Nota: El paquete anterior no está instalado de manera predeterminada, por lo que antes de usarlo es necesaria su instalación.

Módulos que se han indicado al kernel que cargue durante el arranque:

  cat /etc/modules

Listar todos los módulos que cargó el sistema:

  lsmod | less

Listar el hardware (información resumida):

  sudo lshw -short

Listar el hardware (información extensa):

  sudo lshw | less

Nota: El paquete lshw no está instalado de manera predeterminada, por lo que antes de usarlo es necesaria su instalación.


Medios de almacenamiento y arranque

Listar las particiones en los medios de almacenamiento:

  sudo fdisk -l

Conocer el espacio usado y disponible en las particiones:

  df -h

Conocer en qué partición (y el tamaño) está swap:

  sudo swapon -s

Mostrar las entradas registradas para el gestor de arranque GRUB "Legacy" (hasta la versión 0.97):

  sudo grep -i title /boot/grub/menu.lst | grep "#" -v

Mostrar las entradas registradas para el gestor de arranque GRUB 2:

  sudo grep -i menuentry /boot/grub/grub.cfg | grep "#" -v

Mostrar la tabla de particiones (File System TABle) que el sistema monta automáticamente durante el arranque:

  less /etc/fstab

Mostrar el valor UUID (Universally Unique IDentifier) de todas las particiones:

  sudo blkid


Redes

Listar los dispositivos de red alámbricos PCI:

  lspci | grep -i ethernet

Listar los dispositivos de red inalámbricos PCI:

  lspci | grep -i network

Listar los dispositivos de red USB:

  lsusb | grep -i ethernet ; lsusb | grep -i network

Mostrar los módulos cargados por el sistema, para controlar tarjetas de red inalámbricas:

  lsmod | grep iwl

Mostrar información del controlador usado por un dispositivo de red específico (se debe sustituir la palabra interfaz por el nombre lógico de la tarjeta de red, por ejemplo eth0, wlan0, ath0, etc.):

  sudo ethtool -i interfaz

Nota: El paquete anterior no está instalado de manera predeterminada, por lo que antes de usarlo es necesaria su instalación.

Configuración de las tarjetas de red y sus direcciones IP asignadas:

  cat /etc/network/interfaces

Resolución de Nombres de Dominio:

  cat /etc/resolv.conf

Mostrar el contenido del archivo HOSTS:

  cat /etc/hosts

Nombre del equipo, tal y como se verá en la red local:

  cat /etc/hostname

ó

  grep 127\.0\.1\.1 /etc/hosts

ó

  echo $HOSTNAME

Direcciones IP locales de las tarjetas de red alámbricas (resumen):

  /sbin/ifconfig | grep -i direc | grep -i bcast

si el sistema está en inglés se usa:

  /sbin/ifconfig | grep -i addr | grep -i bcast

Direcciones IP locales de las tarjetas de red alámbricas (detalle):

  /sbin/ifconfig

Direcciones IP locales de las tarjetas de red inalámbricas (resumen):

  /sbin/iwconfig | grep -i direc | grep -i bcast

si el sistema está en inglés se usa:

  /sbin/iwconfig | grep -i addr | grep -i bcast

Direcciones IP locales de las tarjetas de red inalámbricas (detalle):

  /sbin/iwconfig

Mostrar la tabla de enrutamiento:

  sudo route -n

Para conocer la dirección IP pública (externa):

  curl ip.appspot.com


Repositorios / actualización del sistema

Visualizar el contenido del archivo sources.list, el cual contiene las direcciones de los repositorios:

  less /etc/apt/sources.list


Video

Listar las tarjetas de vídeo (PCI / PCIe):

  lspci | grep -i vga

Para determinar si el equipo soporta aceleración de gráficos es necesario que esté instalado el paquete de herramientas mesa-utils. Dicho paquete contiene el comando glxinfo:

  glxinfo | grep -i render

Para calcular los FPS (frames per second) se ejecuta el siguiente comando:

  timeout 60 glxgears

El cual mostrará durante 60 segundos (con la ayuda del comando timeout) una ventana pequeña con una animación de 3 engranajes, mientras que al mismo tiempo en la ventana de la terminal se mostrarán los valores promedios de fotogramas por segundo (FPS, frames per second):

Ejemplo del desempeño gráfico de un sistema:

338 frames in 5.4 seconds = 62.225 FPS
280 frames in 5.1 seconds = 55.343 FPS
280 frames in 5.2 seconds = 54.179 FPS
280 frames in 5.2 seconds = 53.830 FPS
280 frames in 5.3 seconds = 53.211 FPS
338 frames in 5.4 seconds = 62.225 FPS
280 frames in 5.1 seconds = 55.343 FPS
280 frames in 5.2 seconds = 54.179 FPS
280 frames in 5.2 seconds = 53.830 FPS
280 frames in 5.3 seconds = 53.211 FPS

Ejemplo de un mejor desempeño gráfico en otro sistema:

2340 frames in 5.0 seconds = 467.986 FPS
2400 frames in 5.0 seconds = 479.886 FPS
2080 frames in 5.0 seconds = 415.981 FPS
2142 frames in 5.0 seconds = 428.346 FPS
2442 frames in 5.0 seconds = 488.181 FPS
2295 frames in 5.0 seconds = 458.847 FPS
2298 frames in 5.0 seconds = 459.481 FPS
2416 frames in 5.0 seconds = 483.141 FPS
2209 frames in 5.0 seconds = 441.624 FPS
2437 frames in 5.0 seconds = 487.332 FPS

Para mostrar la configuración actual del servidor X (X Window System):

  less /etc/X11/xorg.conf

Para conocer la resolución actual (anchura x altura) y frecuencia de barrido (MHz):

  xrandr | grep '*'

Para conocer todas las resoluciones que la configuración actual soporta:

  xrandr

Para mostrar las cámaras web (USB):

  lsusb | grep -i camera

El siguiente ejemplo muestra el resultado de 2 cámaras web conectadas a un mismo equipo:

Bus 001 Device 003: ID 0c45:62c0 Microdia Sonix USB 2.0 Camera
Bus 002 Device 004: ID 0ac8:3420 Z-Star Microelectronics Corp. Venus USB2.0 Camera
Las cámaras web se "montan" en orden consecutivo en la ruta /dev/ :

Bus 001 ---> /dev/video0
Bus 002 ---> /dev/video1
Bus 003 ---> /dev/video2
[...]
Para comprobar que las cámaras web se han "montado" en su ruta correspondiente:

  ls /dev/video* -lh


Audio

Listar hardware de audio:

  lspci | grep -i audio

ó

  sudo lshw | grep -i audio | grep product

Nota: El paquete anterior no está instalado de manera predeterminada, por lo que antes de usarlo es necesaria su instalación.

Listar los dispositivos de reproducción de audio:

  aplay -l | grep -i tarjeta

si el sistema está en inglés entonces se usa:

  aplay -l | grep -i card

Listar todos los módulos que cargó el sistema, para ser usados por los dispositivos de sonido:

  lsmod | grep -i snd

Las siguientes son pruebas para verificar si los altavoces están correctamente conectados y distribuidos. Los altavoces deben estar encendidos y durante la prueba se puede ajustar el volumen, cables, y disposición. Cada prueba emite un sonido en un ciclo, y se repite 2 veces más:

Si el sistema de sonido es de 1 canal (monoaural):

  speaker-test -l 3 -t sine -c 1

Si el sistema de sonido es de 2 canales (stereo):

  speaker-test -l 3 -t sine -c 2

Si el sistema de sonido es de 5.1 canales (surround):

  speaker-test -l 3 -t sine -c 6


Registros (logs)

Visualizar las 30 últimas líneas del buffer del kernel:

  dmesg | tail -30

Visualizar todo el buffer del kernel:

  dmesg | less

Los registros del servidor X dan información útil sobre la configuración actual del mismo, y sobre la tarjeta de video:

  cd /var/log/  ls Xorg* -hl

ello mostrará todos los archivos de registros del servidor X, siendo el archivo Xorg.0.log el más reciente.

Para ver los mensajes de error (errors) y mensajes de advertencia (warnings):

  grep -E "(WW)|(EE)" Xorg.0.log | grep -v unknown

Si se desea ver toda la información del registro:

  less Xorg.0.log

Si se desea ver el contenido de algún registro anterior al actual sólo basta sustituir el nombre de archivo Xorg.0.log por el nombre del archivo que se desee visualizar.

Para visualizar el registro de arranque (boot) es necesario activarlo primeramente. Se debe abrir el archivo /etc/default/bootlogd y sustituir el valor no por yes, quedando así:

  # Run bootlogd at startup ?  BOOTLOGD_ENABLE=yes

Durante el próximo inicio del sistema se generará el archivo /var/log/boot el cual ya podrá ser revisado:

  sudo less /var/log/boot

Los registros anteriores de arranque pueden visualizarse con:

  sudo ls /var/log/boot* -hl

y consultarse como ya se ha mostrado.

Para ver otros registros: La mayoría de los registros (logs) del sistema se encuentran en el directorio /var/log/, así como también en varios subdirectorios, por lo tanto sólo basta entrar a dicho directorio y realizar un listado para conocerlos:

  cd /var/log/  ls -hl


Otras formas de conocer el sistema

Aunque existen también herramientas gráficas que permiten conocer el sistema, es posible que el ambiente gráfico no funcione, por ello el uso de la terminal es indispensable. Algunas de las herramientas gráficas más conocidas son hardinfo y sysinfo, y para instalarlas desde la terminal basta con ejecutar:

  sudo aptitude install hardinfo sysinfo

Nota: hardinfo aparece como System Profiler and Benchmark, y sysinfo aparece con el nombre Sysinfo.