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

miércoles, 14 de diciembre de 2011

Anuncio al establecer una llamada

Para ejecutar un anuncio antes de establecer una llamada se utiliza el siguiente DT en una central Ericsson, el abonado tiene ST=18, el anuncio a ejecutar es el 1005.


<exrop:r=callset;
ROUTE DATA
R        ROUTE PARAMETERS
CALLSET  DETY=TCIA     FNC=1      MB=1005      RSV=12292 

END 
<anrsp:rc=200;
ROUTING CASE DATA
OPERATING AREA
RC    CCH  BR       ROUTING             SP   DATA
200   NO   ST -0
             &-17   P01=1 ES=517
           ST -18   P02=1 NRC=228
           ST -22   P03=1 ES=531
           ST -23   P04=1 ES=532
           ST -24   P05=1 ES=533
           ST -25   P06=1 ES=534
           ST -26   P07=1 ES=535
           ST -27   P08=1 ES=536
           ST -28   P09=1 ES=537
           ST -29   P10=1 ES=538
           ST -30   P11=1 ES=570
           ST -31   P12=1 ES=571
           ST -32   P13=1 ES=572
           ST -38   P14=1 ES=573
           ST -39   P15=1 ES=574
           ST -40   P16=1 ES=575
           ST -36   P17=1 ES=576
           ST -37   P18=1 ES=577

END

<anrsp:rc=228;
ROUTING CASE DATA
OPERATING AREA
RC    CCH  BR       ROUTING             SP   DATA
228   YES           P01=1 R=CALLSET     MM1  COT  EST  SI    ESS  ESR
                                             0         540   0    0
                                             BNT  RN  SPR   OLI OLI2
                                                  00  0
                                             ISC   FCP  D
                                             0
                    P01=2 ES=541

END

<anesp:es=540;
END-OF-SELECTION ANALYSIS DATA

OPERATING AREA

ES     BE          M                          EOSRES
540
                                              NXR

END

<anesp:es=541;
END-OF-SELECTION ANALYSIS DATA

OPERATING AREA

ES     BE          M                          EOSRES
541
                                              F=11

END