Un sitio Impertinente

Archive for the ‘Ubuntu’ Category

De .NEF a .JPG en Linux sin perder calidad

con un comentario

El día de ayer mi amiga Gabriela me comentó que estaba tratando de transformar archivos .NEF (formato electrónico de archivos RAW de Nikon) a .JPG y que estaba perdiendo calidad en la imagen final, y que además tenía un lote de unas 2000 fotografías que deseaba procesarlas a JPG sin pasar por un proceso manual (ella usa Darktable ó UFRaw para ello). Durante un rato estuve jugando con las herramientas de imagemagick y notaba la alta perdida de calidad, por ejemplo:

Imagen Original .NEF

 

Imagen JPG procesada con Darktable/UFRaw

 

Para ello escribí un pequeño y sucio script en bash que:

  • Convierte los archivos .NEF a .PNG y luego con imagemagick transforma el PNG a JPG (método sucio que funciona usando netpbm, dcraw y imagemagick).
  • Procesa un lote de .NEF que estén ubicados en el directorio donde se corra el script.
#/bin/bash
# Instrucciones:
# 
# 1. Para que este script funcione, necesita tener instalado: netpbm, dcraw, imagemagick
#
# sudo aptitude install netpbm dcraw imagemagick
#
# 2. Setear permisos de ejecucion al script
# chmod +x nef_a_jpg.sh 
#
# Enjoy :D
#
# Por: Juan Angulo Moreno <apostols@gmail.com> 2014-07-20
 
echo "Preparando el ambiente..."
 
total_archivos=`ls *.NEF| wc -l` 
echo "Iniciando conversion... Total de archivos a convertir: $total_archivos"
 
# Que comience la fiesta
for ARCHIVOS in *.NEF ; 
do 
	nombre_base=`basename "$ARCHIVOS" .NEF`;
	echo "Conviertiendo $nombre_base.NEF a JPG...";
	dcraw -c -w $ARCHIVOS | pnmtopng > $nombre_base.png;
	convert $nombre_base.png $nombre_base.jpg
	echo "Listo."
done

Escrito por apostols

July 21st, 2014 at 11:58 am

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

Hallacazo UNPLUG un éxito

con un comentario

Ayer celebramos una vez más (como todos los años) el Hallacazo UNPLUG edición 2010. Por primera vez asisten tanta gente (17 personas), cada vez crece más y más la familia UNPLUG.

Familia UNPLUG Dic 2010

De los asistentes: tatica, zentraedi, bigjocker, djamel y su hija, alberkman, n3ro, g013m, m1m1, Roliverio, X3MBoy, ellanos, Richzendy, One y su compadre, j3nnn1 y mi persona.

La sorpresa de la noche fue el estreno de los “UNPLUG Awards” dónde se premiaron a:

  • Ing. Frustrado: alberkman.
  • Sexy g33k g1rl: m1m1.
  • Sexy Slut: apostols.
  • Mejor cantante: orvtech (recibió bigjocker por él).
  • Trol de año: bigjocker.
  • Vaporware del año: Kadath (recibe bigjocker).
  • Mejor tara sustituta: n3ro.
  • Premio improvisado: Mujer nerd del año: j3nnn1.

Faltaron por asistir muchos más. Para el próximo año que estaremos cumpliendo 10 años tenemos varias sorpresas.

Las fotos las puedes encontrar en la galería de tatica y de X3Mboy.

¡Gracias totales!

Escrito por apostols

December 10th, 2010 at 10:18 am

Culminó exitosamente el FLISOL 2010 Caracas

con 4 comentarios

El día sábado 24 de abril de 2010 se llevó acabo el Festival Latinoamericano de Instalación de Software Libre en 19 sedes. Lamentablemente en 4 de las sedes no se pudo ejecutar el Festival. Específicamente en la Sede que asistí (Caracas) pude notar:

1. Grupos de Usuarios y Distribuciones: Fue sorprendente ver como los grupos de usuarios de Linux y de las distribuciones se organizaban de forma perfecta, sin necesidad de que existiera alguien que los tratara como “muchacho pequeño”. Se comportaron a la altura, engranando y colaborando en todo lo que se iba presentando. Las distribuciones asistentes fueron: Ubuntu, Fedora, Debian, OpenSolaris y Canaima. Lo mejor de todo fue ver un ambiente armónico y sin mostrar diferencias (aka Distrowar). De los grupos de usuarios y organizaciones sin fines de lucro que pude notar: Mundo Accesible, UNPLUG, VELUG, UNEFA-GLUG, eyeOS, LugMa, IUTlv-LuG, Temiga (Si me falta alguno por favor dejar el nombre como comentario para luego actualizar el post).

2. El perfecto Orga-Team sin tiranía: Esto fue lo mejor, ver como un grupo pequeño de colaboradores fue creciendo al pasar las horas (hasta un señor asistente nos ayudó muy temprano a cargar sillas y mesas). Al final del día éramos como 40 personas colaborando de forma activa. Muchas personas asumieron el liderazgo en determinados momentos para tratar de solventar los problemas que se iban presentando. Nadie le gritó a nadie, nadie se molestó con nadie y lo mejor: nadie le impuso a nadie lo que tenía que hacer. Algunas anécdota muy bonitas fue ver en la mañana de ayer como un grupo de personas al ver que faltaban hacerle unos ajustes a los salones los acomodaron de forma rápida (y hasta lo limpiaron), otros al notar que fallaron los desayunos se organizaron y fueron a comprar algo de comer para todos, todo esto autogestionado por ellos mismos.

3. El espacio físico: La sala de conferencias del piso 12 de la UNEFA Chuao es perfecta para hacer este tipos de eventos, es super amplia, cómoda y cuenta con muchas tomas eléctricas. Las aulas que nos prestaron estaba perfectas para el personal asistente.

4. El grupo de ponentes: Excelente grupo de ponencias, desde la más básica hasta la más compleja en el área de Tecnologías Libres. Para mi parecer una de las charlas que tuvo más impacto fue la de “Aprendiendo el lenguaje de señas” de Nerissa Aguilera, a la gente le gustó tanto que hasta se dejaron tomar vídeos hablando el lenguaje de señas 😀

Nagui y su charla de lengua de señas

5. Nuestra líder: María “tatica” Leandro ha demostrado durante muchos años que reto que se le presenta, reto que asume y saca adelante. Toda mi admiración y respeto a mi amiga tatica, ella ha sabido ganarse el corazón de cada uno de nosotros. Son pocas las mujeres en la Comunidad de Software Libre en Venezuela pero las que están son guerreras y muy comprometidas con el movimiento.

Tatica demostrando como FoF > *

6. Mi gran familia: Siempre estoy en la disyuntiva de que es ¿UNPLUG?, un LUG relajado y divertido ó una gran familia. Hoy llego a la conclusión que somos las dos cosas. En este FLISOL por primera vez tenemos un pendón para identificarnos (gracias a tatica), asistieron gran parte de los que hacen y dejaron de hacer vida en este LUG (los otros estaban trabajando en el FLISOL en las otras ciudades). Cumplimos nuestras dos metas: Difundir el Software Libre y compartir fisicamente como esa familia que somos y seremos. Fue excelente reunirme personalmente con alberkman, Figuex, Jocho, Richzendy, tatica, Caronte, mogaal, FOAD, azra3l_, n3r0, zamuro, CaChi, satanas82, kamihacker, eddy, willicab, foursixnine, eidast y AThilA. Hasta nos encontramos y compartimos con rootvlza (persona que no fue por muchos años de agrado para nadie de la CSL).

UNPLUG PRESENTE!

Contamos hasta con dos fotógrafos profesionales para el evento: Kamihacker y CaChi. Uno los veía como buenos Paparazzi corriendo y buscando los mejores ángulos para plasmar de forma digital los mejores momentos del evento.

Hasta Pedobear nos hizo compañia: Pues sí, después de mi charla sobre Privacidad de datos, me cambié de franela que contenía al famoso Oso Pedofilo de Internet: Pedobear. Esa franela causó euforia en muchos de la comunidad, todos querían una foto con él y él quería atrapar niños (para su mala suerte no pudo). Fue una muy buena sátira que animó a gran parte de los asistentes al evento.

Pedobear!!!

Lo malo
Por primera vez puedo decir que lo malo que tuvo el evento fue por parte externa: Las dos últimas semanas fueron complicadas con respecto a la Sede, al Orga-Team le tocó volver a enviar cartas de solicitud de préstamo de espacios a la UNEFA por que hubo cambios en la directiva. El día del evento nos enteramos que nos habían quitado dos sitios (un auditorio y una aula) donde se iban a dar las charlas y tocó reprogramar todo las charlas (gracias a j3nnn1 por tomar el control de esta situación).

Las fotos del evento las pueden encontrar recolectadas en: http://flisol.org.ve/ciudades/caracas/fotos

Quiero felicitar a cada una de las personas que se involucraron de una ú otra forma con la organización del evento, aquellas que trabajaron como hormiguitas detrás del telón para que la función pudiera salir sin retardos y con la mejor calidad. Esto es comunidad, esto es trabajo en equipo, esto es autogestión. Si se puede y quedó muy bien demostrado. ¡FELICITACIONES A TODOS!.

Nota: Gracias a m1m1, kamihack y CaChi por las fotos que están en este post.

Escrito por apostols

April 26th, 2010 at 9:14 pm

Hallacazo UNPLUG 2009

con 3 comentarios

Me complace anunciarles que el Hallacazo UNPLUG (que no es más que la reunión anual física de los integrantes del Grupo de Usuario de GNU/Linux UNPLUG) se dará acabo:

  • Día: 08 de Diciembre de 2009
  • Hora: 7:00 P.M.
  • Lugar: Ristorant Mazzini. Av. México, Edificio 211, PB. Entre el Metro de Parque Carabobo y Bellas Artes. Caracas – Venezuela


Ver Ristorant Mazzini en un mapa más grande

Te esperamos!

Escrito por apostols

November 25th, 2009 at 1:23 pm

Configurando un Blackberry como Modem en Debian

con 7 comentarios

Hace un tiempo me puse a investigar el cómo usar como modem (vía GPRS/Edge) un Blackberry Curve 8520 bajo Debian, conseguí varios proyectos interesantes que tratan de emular al Blackberry Desktop Manager y uno de ellos es Berry4All. Yo no me quise complicar bajando, compilando y adaptando el software a mi distribución (Debian) entonces decidí buscar una mejor opción para interconectarme: vía Bluetooth. Para ello necesitamos tener instalado el wvdial y bluez-*. Los pasos que usé para realizar la conexión:

1. ¿Cual es la Mac de mi dispositivo?

# hcitool scan
Scanning ...
00:26:FF:B9:7B:F2 JetBlack
00:21:20:DD:D4:D3 apostols
00:19:2D:2B:CC:2C Nokia je

2. ¿Mi BB soporta Dial-UP?

# sdptool browse 00:26:FF:B9:7B:F2
Browsing 00:26:FF:B9:7B:F2 ...
Service Name: Dialup Networking
Service RecHandle: 0x10000
Service Class ID List:
"Dialup Networking" (0x1103)
"Generic Networking" (0x1201)
Protocol Descriptor List:
"L2CAP" (0x0100)
"RFCOMM" (0x0003)
Channel: 1
Profile Descriptor List:
"Dialup Networking" (0x1103)
Version: 0x0100

Al parecer sí, en el Canal 1.

3. Se configura para aparearlo con la computadora: se edita el archivo /etc/bluetooth/rfcomm.conf y quedaría de la siguiente forma:

rfcomm0 {
bind yes;
device 00:26:FF:B9:7B:F2;
channel 1;
comment "Blackberry 8520";
}

4. Se reinicia el servicio de bluetooth para crear la conexión:

# invoke-rc.d bluetooth restart

El pedirá un PIN de seguridad (debe estar previamente configurado en el archivo /etc/bluetooth/hcid.conf con al directiva passkey).

5. Ahora configuramos el wvdial: /etc/wvdial.conf

[Dialer Defaults]
Modem = /dev/rfcomm0
Baud = 115200
Dial Command = ATDT
Init2 = AT+CGDCONT=1,"IP","internet.movistar.com.ve"
FlowControl = crtscts
Modem Type = Analog Modem
Username = guest
Password = guest
Stupid Mode = 1
New PPPD = yes
Phone = *99#

En mi caso me estoy conectado vía Movistar, para Digitel se usa:

Init2 = AT+CGDCONT=1,"IP","gprsweb.digitel.ve"

Y para Movilnet:

Init2 = AT+CGDCONT=1,"IP","int.movilnet.com.ve"

6. Ahora simplemente levantamos el wvdial como root:

# wvdial

Y enjoy.

Escrito por apostols

November 20th, 2009 at 10:13 am

El Debconf10 ya tiene fecha!

sin comentarios

Jimmy Kaplowitz nos informa en la lista de Debconf-team que las fechas oficiales para el DebConf10 son las siguientes:

24 de Julio 2010: Día de instalación (solo para los involucrados en la organización directa del evento)
25-31 de Julio 2010: DebCamp 10
1-7 de Agosto, 2010: DebConf 10
8 de Agosto 2010: Salida

El Día Debian aún debe ser debatido pero estará entre ese rango de fechas.

See you in NY!

Escrito por apostols

October 15th, 2009 at 3:34 pm

Descentralización de servicios para *.unplug.org.ve

con 2 comentarios

Desde hace varios días algunos integrantes de UNPLUG trabajaron para descentralizar servicios del servidor Guacharo, servidor proveído por GloVE. En la primera fase se decidió migrar todo lo relacionado con los NS, Web y Sistema de Blog. Para la Web del LUG, el amigo Jesús Jerez presentó una nuevo diseño Web, más limpio y fresco. En el caso de los sistemas de Blogs se actualizó la versión del WordPress a la última para el momento (2.7) siguiendo el modelo de Multi-Usuario que se llevó desde el principio (el cual queremos agradecer a José Parrella por empaquetar una versión no oficial para Debian del WordPress y mantenerlo un tiempo atrás actualizado). Esta vez me tocó reempaquetarlo para debian (igual de manera no-oficial).

La división de los blogs quedaron de la siguiente forma:

Servidor melchor.alberkman.com.ve (Alberto Capella):

  • alberkman.unplug.org.ve
  • wattica.unplug.org.ve
  • betamax.unplug.org.ve
  • jelitox.unplug.org.ve

Servidor camila.0x29.com.ve (Juan Angulo Moreno):

  • rodrigo.unplug.org.ve
  • veronica.unplug.org.ve
  • zizou.unplug.org.ve
  • waod.com.ve

Servidor bebop.g013m.com.ve (Christian Sáchez):

  • walter.unplug.org.ve
  • eddy.unplug.org.ve
  • mannyto.unplug.org.ve

Servidor chiguire.glove.org.ve (GLoVE):

  • eduardodattellis.unplug.org.ve
  • tache.unplug.org.ve
  • octavio.unplug.org.ve
  • mia.unplug.org.ve

Servidor ngranek.com (Francisco Andrade Grassi)

  • bigjocker.unplug.org.ve

El servicio de correo electrónico será balanceado dentro de los próximo en otros servidores. No duden en contactar a los administradores si consiguen algún error en sus blogs. Tambien quiero agradecer a Alberto Capella y a Christian Sánchez por el compromiso y la colaboración prestada para esta jornada.

Escrito por apostols

January 11th, 2009 at 1:53 pm