viernes, 16 de noviembre de 2012

Encontrar los archivos mas grandes en Linux

Para encontrar los archivos/directorios que mas espacio ocupan en el disco duro usar:

du -sm * | sort -nr | head -30

Encontrar las coincidencias de una lista de texto en un archivo de texto por medio del comando grep

Para encontrar una las coincidencias de una lista de texto en un archivo de texto grande usar:

grep -F -f MSISDN.txt FULL_DECODED > inconsistencias.txt

Nota: Es importante el parámetro -F, si no se incluye tomará mucho tiempo en procesar y consumirá mucha memoria RAM, en el ejemplo ejecutado  FULL_DECODED era de 4.1 Gb y MSISDN.txt de 300 Kb. Tomó 1.2 min en procesarse en una computadora Intel core i7 y 8 Gb de RAM.

MSISDN.txt contiene las cadenas de texto a encontrar. FULL_DECODED es el archivo donde se buscarán las coincidencias. El resultado de coincidencias se guarda en inconsistencias.txt

Cambiar el inicio y final de línea por texto usando el comando sed

Para cambiar el inicio y final de línea por medio del comando sed, se utiliza la siguiente sintaxis:

sed 's/^/HGSUE:MSISDN=/g' MSISDN.txt | sed 's/$/;/g' > HGSUE.txt

donde ^ representa el inicio de línea y $ representa el final de línea.

MSISDN.txt contiene:

50433920000
50433920001


El resultado será:

HGSUE.txt

HGSUE:MSISDN=5043392780000;
HGSUE:MSISDN=5043392780001;

sábado, 3 de noviembre de 2012

Conectar Garming Forerunner a Opensuse 12.2

Despues de instalar garmin-tools en Opensuse 12.2 no se puede colectar la información del GPS, los síntomas son los siguientes (con el GPS conectado a la computadora)

Al enviar el comando:

garmin_get_info

se obtiene un error que dice que no se tienen privilegios para abrir el puerto USB. Este error se obtiene al enviar el comando desde la consola y con un usuario normal, si se usa el usuario root se obtiene la información del GPS sin errores.

Enviar el comando  lsusb esto nos va a dar el bus y dispositivo asigando al GPS. Se obtendrá un impreso como se muestra a continuación

Bus 003 Device 002: ID 091e:0003 Garmin International GPS (various models)

con esto enviar el comando: 


ls -la /dev/bus/usb/003/002

obtendremos un impreso en donde se puede ver que solo root puede accesar a dicho dispositivo:

crw-rw---- 1 root root 189, 257 nov  3 14:08 /dev/bus/usb/003/002

Para permitir el acceso se debe crear el archivo /etc/udev/rules.d/51-garmin.rules y agregar la linea ATTR{idVendor}=="091e", ATTR{idProduct}=="0003", MODE="666"

La manera mas fácil de hacerlo es desde la linea de comandos y con el usuario root:

echo 'ATTR{idVendor}=="091e", ATTR{idProduct}=="0003", MODE="666"
' > /etc/udev/rules.d/51-garmin.rules


Agregar tambien la linea blacklist garmin_gps a el archivo /etc/modprobe.d/50-blacklist.conf, para hacerlo enviar el siguiente comando desde la consola y usuario root:


echo 'blacklist garmin_gps' >> /etc/modprobe.d/50-blacklist.conf


una vez echo esto, desconectar el GPS, enviar el comando


udevadm control --reload-rules


y reconectar el GPS, ahora deberia de funcionar correctamente, para verificar enviar con un usuario normal el comando get_garmin_info



viernes, 27 de abril de 2012

Imagenes en aplicaciones para windows creadas con QT Creator

Las imagenes creadas con QT Creator no se muestran cuando la aplicacion es ejecutada en una PC sin el entorno de desarrollo QT.


El problema se debe a los plugins necesarios por QT. En primer lugar se debe verificar que el archivo ejecutable haya sido compilado en modo release.

Despues de esto la aplicacion se debe distribuir con los siguientes dlls (en un entorno de desarrollo sin Visual Studio)

libgcc_s_dw2-1.dll
mingwm10.dll
QtCore4.dll
QtGui4.dll

Estos deben de estar colocados al mismo nivel que nuestro archivo ejecutable; si nuestra aplicacion contiene imagenes entonces se requiere el plugin adecuado para el tipo de imagen, por ej. si es jpg usar qjpeg4.dll, si es gif usar qgif4.dll y asi sucesivamente, estos archivos deben de ser colocados en el folder /plugins/imageformats; este folder debe estar localizado en el folder donde nuestra aplicacion esta ubicada.


Adicionalmente se requiere crear el archivo qt.conf que debe ser colocado al mismo nivel que nuestra aplicacion y debe contener:

[PATHS]
plugins=./plugins


Los archivos correctos se encuentran en:

C:\QtSDK\Desktop\Qt\4.7.4\mingw\bin     


C:\QtSDK\Desktop\Qt\4.7.4\mingw\plugins\imageformats



Notar que encontraras dlls que tienen terminacion 'D', p.ej QTCore4D.dll, estos son usados cuando se compila en modo Debug.

En mi caso estoy desarrollando con la libreria 4.7.4


jueves, 26 de abril de 2012

Incrementar el tamaño del disco duro en VirtualBox

Para incrementar el tamaño del disco duro de la maquina virtual, se requieren los siguientes pasos.

  1. Localizar el folder de almacenamiento del disco duro virtual; en OpenSuse 12.1 se encuentra en el folder home bajo el folder VirtualBox VM
  2. Desde la consola cambiarse al folder.,  ej.  cd /home/rsaucedomx/'VirtualBox VM'
  3. El disco duro de mi maquina se llama XP SP2 Development.vdi y lo quiero incrementatr a 60 Gb; desde la consola  necesitas teclear: VBoxManage modifyhd "XP SP2 Development.vdi" --resize 60000
El sistema respondera (El incremento del disco fue a 60000 Mb)

linux-tcsd# VBoxManage modifyhd "XP SP2 Development.vdi" --resize 60000
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%

Una vez incrementado abrir la maquina virtual de manera normal, si abren el explorador de windows veran que el tamaño del disco no muestra ningun incremento, esto es porque aun necesitamos incrementar el tamaño desde el OS; esto se puede hacer desde el panel de control (con las herramientas administrativas) pero yo prefiero utilizar un programa llamado Partition Magic.

En este ejemplo se incremento el tamaño del disco duro a una maquina virtual windows.

Mi sistema es:

VirtualBox 4.1.12
Host: OpenSuse 12.1, KDE
Guest: Windows XP SP2