Un sitio Impertinente

Archive for the ‘Tech’ Category

Recuperando datos de una memoria interna en Android 4.X o superior

con 6 comentarios

Con la llegada del MTP (Media Transfer Protocol) desde Android Honeycomb 3.X, cada vez se hace más difícil tener acceso directo al disco interno sin tener que pasar por protocolos intermedios. En las versiones de Android superiores a la 4.X prácticamente es imposible tener acceso UMS (Usb Massive Storage), es por ello que les dejo esta pequeña receta.

Ingredientes

  • Un teléfono ó tableta con acceso a Root.
  • Tener instalado el paquete BusyBox en tu dispositivo.
  • Una PC/Notebook/Netbook con cualquier distribución de Linux. En el caso de correr otro sistema operativo, tener instalado Cygwin (en Windows) ó Homebrew (en OS X). En mi caso usé Debian Whezzy.
  • ADB (Android  Debug Brigde). Este depende de tu Sistema Operativo.
  • USB Debugging Enabled en tu dispositivo.
  • Netcat y pv (Monitor de progreso de datos a través de una tubería).  Este depende de tu Sistema Operativo, que podrá ser instalado a través de Cygwin ó Homebrew.

¡A cocinar!

1. Tener activo el USB Debugging.

2. Reiniciamos el dispositivo en Mode Recovery (esto varía depende del distribuidor del hardware). En mi caso, usé un Samsung Galaxy S4 (I-9505),

3. Abrir una terminal y ejecutar los siguientes comandos ADB:

$ adb forward tcp:5555 tcp:5555
$ adb shell
$ busybox nc -l -p 5555 -e busybox dd if=/dev/block/mmcblk0

Con esto estaremos preparando el volcado del disco interno mmcblk0 desde el dispositivo.

Nota: El disco interno de 16 Gb en el sistema es /dev/block/mmcblk0. 
No necesariamente sea el mismo en su sistema. Verifique el nombre de 
su dispositivo.

4. Ahora solo nos queda volcarlo al disco local con:

$ adb forward tcp:5555 tcp:5555
$ nc 127.0.0.1 5555 | pv -i 0.5 > mmcblk0.img

El proceso de volcado para 16 Gb es aproximadamente 1:15 horas.

Ya con la imagen (mmcblk0.img) creada podremos aplicarles algunos programas para recuperación de datos (En Linux como foremost, photorec, entre otros), ó Recuva (en Windows).

Escrito por apostols

June 30th, 2013 at 1:24 am

Optimizando MySQL para VPS

sin comentarios

Desde hace algunos años la tecnología de virtualización cada vez toma más auge. Muchas personas contratan servicios de VPS porque pueden tener todas las ventajas de administración de un root por un precio muy bajo. No todo es bueno, ya que con la tecnología de virtualización se pierden recursos, ya que estos están limitados (Memoria, CPU, Disco), ya que el servidor físico puede ser compartido por innumerables servidores virtuales (y compiten recursos de la misma, como es el caso de OpenVZ).

La configuración que viene por defecto del MySQL en la mayoría de las distribuciones de GNU/Linux trae parámetros por defecto para servidores físicos, al instalarse en un VPS, el mismo, si no se le hace una buena afinación podría colapsar. Me sucedió recientemente que el MySQL que trae por defecto Debian Wheezy si se generan varias instancias cuelga a un VPS de 512 MB de RAM. Para poder generar los ajustes, conseguí una herramienta que aliaza el rendimiento llamada Tuning-Primer , de Matthew Montgomery, un pequeño script en bash que te da consejos para establecer algunas variables de la configuración, basándose en los parametros que proporciona el servidor.

Su instalación es sumamente sencillo, solo requiere que tengamos un usuario/password en la base de datos y el programa bc instalado:

# wget http://www.day32.com/MySQL/tuning-primer.sh
# chmod u+x tuning-primer.sh
# ./tuning-primer.sh

Un ejemplo del reporte de esta herramienta es la siguiente:

— MYSQL PERFORMANCE TUNING PRIMER —
– By: Matthew Montgomery –

MySQL Version 5.5.24-4 x86_64

Uptime = 0 days 12 hrs 17 min 4 sec
Avg. qps = 0
Total Questions = 22445
Threads Connected = 1

Warning: Server has not been running for at least 48hrs.
It may not be safe to use these recommendations

To find out more information on how each of these
runtime variables effects performance visit:
http://dev.mysql.com/doc/refman/5.5/en/server-system-variables.html
Visit http://www.mysql.com/products/enterprise/advisors.html
for info about MySQL’s Enterprise Monitoring and Advisory Service

SLOW QUERIES
The slow query log is NOT enabled.
Current long_query_time = 10.000000 sec.
You have 0 out of 22466 that take longer than 10.000000 sec. to complete
Your long_query_time seems to be fine

BINARY UPDATE LOG
The binary update log is NOT enabled.
You will not be able to do point in time recovery
See http://dev.mysql.com/doc/refman/5.5/en/point-in-time-recovery.html

WORKER THREADS
Current thread_cache_size = 8
Current threads_cached = 1
Current threads_per_sec = 0
Historic threads_per_sec = 0
Your thread_cache_size is fine

MAX CONNECTIONS
Current max_connections = 128
Current threads_connected = 1
Historic max_used_connections = 2
The number of used connections is 1% of the configured maximum.
You are using less than 10% of your configured max_connections.
Lowering max_connections could help to avoid an over-allocation of memory
See “MEMORY USAGE” section to make sure you are not over-allocating

INNODB STATUS
Current InnoDB index space = 0 bytes
Current InnoDB data space = 0 bytes
Current InnoDB buffer pool free = 98 %
Current innodb_buffer_pool_size = 128 M
Depending on how much space your innodb indexes take up it may be safe
to increase this value to up to 2 / 3 of total system memory

MEMORY USAGE
Max Memory Ever Allocated : 173 M
Configured Max Per-thread Buffers : 344 M
Configured Max Global Buffers : 168 M
Configured Max Memory Limit : 512 M
Physical Memory : 496 M

Max memory limit exceeds 90% of physical memory

KEY BUFFER
Current MyISAM index space = 9 M
Current key_buffer_size = 16 M
Key cache miss rate is 1 : 158
Key buffer free ratio = 67 %
Your key_buffer_size seems to be fine

QUERY CACHE
Query cache is enabled
Current query_cache_size = 8 M
Current query_cache_used = 3 M
Current query_cache_limit = 1 M
Current Query cache Memory fill ratio = 48.41 %
Current query_cache_min_res_unit = 4 K
MySQL won’t cache query results that are larger than query_cache_limit in size

SORT OPERATIONS
Current sort_buffer_size = 2 M
Current read_rnd_buffer_size = 256 K
Sort buffer seems to be fine

JOINS
Current join_buffer_size = 132.00 K
You have had 0 queries where a join could not use an index properly
Your joins seem to be using indexes properly

OPEN FILES LIMIT
Current open_files_limit = 65562 files
The open_files_limit should typically be set to at least 2x-3x
that of table_cache if you have heavy MyISAM usage.
Your open_files_limit value seems to be fine

TABLE CACHE
Current table_open_cache = 32712 tables
Current table_definition_cache = 400 tables
You have a total of 101 tables
You have 101 open tables.
The table_cache value seems to be fine

TEMP TABLES
Current max_heap_table_size = 16 M
Current tmp_table_size = 32 M
Of 1117 temp tables, 30% were created on disk
Effective in-memory tmp_table_size is limited to max_heap_table_size.
Perhaps you should increase your tmp_table_size and/or max_heap_table_size
to reduce the number of disk-based temporary tables
Note! BLOB and TEXT columns are not allow in memory tables.
If you are using these columns raising these values might not impact your
ratio of on disk temp tables.

TABLE SCANS
Current read_buffer_size = 128 K
Current table scan ratio = 17 : 1
read_buffer_size seems to be fine

TABLE LOCKING
Current Lock Wait ratio = 0 : 22724
Your table locking seems to be fine

Por ejemplo, yo para un VPS con 512 de RAM (que corre únicamente MySQL) usé la siguiente configuración en el /etc/mysql/my.cnf

max_connections=128
wait_timeout=30
thread_cache_size=8
table_cache=32712
key_buffer_size=16M
query-cache-type=1
query_cache_size=8M
tmp_table_size=32M

Esta herramienta es más efectiva si se correo luego de tener más de 48 horas prestando servicio. Si se logra optimizar el MySQL en un VPS se puede lograr aprovechar el máximo de los recursos sin temer que en algún momento pueda dejar de prestar servicios.

Escrito por apostols

July 21st, 2012 at 11:57 pm

New GPG Key: 0x82871FC0

sin comentarios

I am transitioning GPG keys from an old 1024-bit DSA (0x34BCCD04) key to a new 4096-bit RSA key (0x82871FC0). The old key will continue to be valid for some time, but I prefer all new correspondance to be encrypted in the new key, and will be making all signatures going forward with the new key.

My new GPG key transition document is available at: http://apostols.net/key-transition.txt.asc.

Cheers,

Escrito por apostols

July 8th, 2012 at 1:01 pm

Lanzado Planeta UNPLUG

sin comentarios

Sí, cómo se venía cocinando desde hacer varios años atrás por fin UNPLUG tiene un Planeta para agrupar los blogs de las personas que integran el LUG y/o que hacen vida en el canal #unplug @ irc.unplug.org.ve

El código está escrito totalmente en PHP, basado en el core de Magpie RSS y algunas cosas de WordPress. El fume más raro fue el de hacerle la adaptación de los hackergotchi, finalmente está listo.

El Planeta está en modo beta y poco a poco se irá limpiando algunas cosas, tales como:

  • La plantilla del tema principal.
  • Agregarle logo y otros caramelos visuales.
  • Pulir las categorías.
  • Que el agregado del un sitio sea lo más transparente posible.

Cosas que ya hace solito:

  • Busca actualizaciones sin necesidad de utilizar un cron.
  • Guarda categorías de los blogs afiliados.
  • Mantiene caché de los posts de los afiliados.

Espero que lo disfruten y cualquier flame pueden hacerlo a /dev/null

Escrito por

June 11th, 2008 at 6:30 pm

La excelencia de tener como ISP a Intercable.net.ve

con 6 comentarios

Desde que me mudé a vivir en Guarenas – Miranda y el ISP que escogí fue Intercable.net.ve, este ISP aparte de dar Internet (vía CableModem) ofrece servicio de telefonía fija y televisión por cable. El servicio de Internet contratado fue de 1.5 mbps (el cual nunca he visto, lo máximo que he obtenido en ancho de banda es 450 kbps), se cae a cada rato la conexión y lo mejor (y fabuloso de todo) es que casi nunca hay conexión. Tienen un número 0500 para atención al cliente (que siempre está ocupado) y su horario de atención es hasta las 6 PM. Otra de las cosas llamativas es que si tiene más de un computador en casa tienes que ingeniartelas para poderle dar conectividad (Solo asigna una IP), en muchos casos IP Privada. De ñapa y para completar, el upstream es de 128 kbps (lo cual es una mierda si deseas subir algo ó tener algún servicio alojado en casa) y cuidado si eres un leecher porque si descargas más de 2 gigas al mes te mandan a un pool donde puedes bajar únicamente a 56 kbps (que arrechos son, pago por un 1.5 mbps y no puedo hacer nada con el). Para poder publicar este post me tocó desactivarle a la configuración del WordPress que no usara el Certificado SSL (Que maravilla).

Hoy fue él día en que me dí cuenta de su maravilloso servicio, no podía ingresar a ningún sitio con SSL y menos administrar mis servidores vía SSH (ya tiene así varios días), lo cual me hace tomar la gran decisión (y dolorosa porque es tan bueno el servicio) de llamar mañana para supender la conectividad a Internet (me quedo con el cable porque por lo menos tienen el canal Animax Latinoamerica).

Estoy mirando nuevas opciones (El servicio de ABA Cantv va ganando terreno, lo único que tendría que contratar una línea telefoníca residencial), es un ADSL que con el plan minimo te da 4 IP’s públicas y puedes hacer _casi_ lo que se te venga en gana (este blog está funcionando bajo ese ASDL en un servidor hogareño y sin problemas).

Me he dado cuenta que lo la únidad organizacional que sí funciona es la de Cobranzas, ellos me cargan a la tarjeta de crédito todos los meses (y fielmente, sin retrasos) el cobro de servicios.

A todas estas lo último que queda es decir: INTERCABLE SUCKS!, espero que algún día mejoren el servicio.

Escrito por

August 20th, 2006 at 10:00 pm

Agregado en /dev/null,Tech