Un sitio Impertinente

Archive for the ‘Ñu-con-Linux’ Category

Basuritas en consola

sin comentarios

Me descargué un lote de archivos que necesitaba eliminarle los 9 primeros caracteres, como no tenía tiempo suficiente usé unas basuritas en la consola Linux para hacer el trabajo, sé que no es lo más optimo ni lo mejor pero me salvó el día.

Ejemplo de nombre de archivo: 010526 – Alguna Agrupacion Musical – Cancion.mp3

# Renombra todos los espacios en blanco con el carácter de piso abajo (underscore)
for archivo in *.mp3; do mv "$archivo" ${archivo// /_}; done
 
# Elimina los 9 primeros caracteres del archivo
for archivo in *.mp3; do nuevoarchivo=`echo $archivo | sed 's/^.\{9\}//'`; mv $archivo $nuevoarchivo; done
 
# Renombra todos los caracteres piso abajo (underscore) nuevamente a espacios en blanco
for archivo in *.mp3 ; do mv -v "$archivo" "$(echo $archivo | sed 's/_/ /g')" ; done

Bienvenida la ayuda para mejorar el script (puede dejarla en los comentarios).

Escrito por apostols

November 13th, 2018 at 2:20 pm

Planeta UNPLUG con nueva cara

sin comentarios

Después de actualizar el servidor donde corren los blogs a una versión más reciente de sistema operativo y servicios, me encontré que el sistema que se usaba para reunir todos los blogs de la comunidad de UNPLUG (QPlanet por Jorge Fuentes aka Queru), este sistema ya no era compatible con versiones de PHP superiores a la 5.2, así que decidí probar instalando otro. Gracias a las recomendaciones de mi amigo Richzendy se seleccionó WordPress + Feedwordpress para esta tarea, realmene fue muy sencillo (a excepción de algunos hacks que me tocó hacerle al tema para que pudiera tener soporte a los hackergotchi) y otras cosas más.

El Planeta se le sigue haciendo cambios, así que si consiguen algún error ó algo que aportar pues simplemente contáctame.

Gracias Queru por ese excelente software para Planetas, fueron 10 años que UNPLUG se sirvió de el.

 

 

Escrito por apostols

October 31st, 2018 at 6:09 pm

Agregado en Ñu-con-Linux,UNPLUG

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 2011

con un comentario

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) 2011 se dará acabo:

  • Día: 16 de Diciembre de 2011
  • Hora: 1:00 P.M.
  • Lugar: Restaurante Nonna Mia. Plaza La Castellana, Ed. IASA. Chacao – Venezuela


Ver Restaurante Nonna Mia en un mapa más grande

Te esperamos!

Escrito por apostols

December 12th, 2011 at 2:48 pm

Agregado en Ñu-con-Linux,UNPLUG

De dpatch a quilt

con 2 comentarios

Hace unas semanas me reactivé con el Proyecto Debian, comencé el proceso de mitigación de bugs en los paquetes que mantengo desde el año 2007. Una de las herramientas en que siempre me apoyé y que fue fiel compañero de batalla para aplicar parches: dpatch. Actualizandome conseguí que quilt ahora viene con soporte nativo en el dpkg 3.0 format, así que decidí probarlo. Una de las cosas que me gustó fue que usando quilt no tengo que hacerle mucho hacking al debian/rules (al contrario que dpatch, se necesitaba declarar funciones de patch/unpatch/etc). Para la migración de dpatch a quilt utilicé este simple comando:

for inc in $(dpatch list-all); do quilt import -P $inc.diff debian/patches/$inc.dpatch; quilt push; done

Antes de comenzar debemos preparar el ambiente:

cd /donde/sea/que/esten/las/fuentes/
mkdir debian/patches
export QUILT_PATCHES=debian/patches
touch debian/patches/series

Nota: Se recomienda setear la variable QUILT_PATCHES=debian/patches en ~/.quiltrc

Una forma rápida para comentar a parchear con quilt es la siguiente:

quilt push -a # Aplicamos parches, si existen
quilt new repara_esto.diff # Se crea el archivo que contendrá el parche
quilt add algo.c # Se agrega el archivo a modificar
sed -i '1 s/^/Hola/' algo.c # Se realiza la modificación al archivo
quilt refresh # Se crea el parche
quilt pop -a # Se deshacen los cambios

Y para modificar un archivo que ya tenga un parche:

quilt push repara_esto.diff
sed -i 's/Hola/Chao/' algo.c
quilt refresh repara_esto.diff
quilt pop -a

Más información: Quilt for Debian Maintainers

Escrito por apostols

September 7th, 2011 at 9:58 am

Agregado en Debian,Ñu-con-Linux

7mo Día Debian Caracas

sin comentarios

Tenemos el agrado de invitarlos a la celebración del décimo octavo aniversario de Debian, siendo esta una de las distribuciones Linux que se caracteriza por ser la más libre de todas y brindar a sus usuarios y administradores estabilidad y seguridad incomparables.

En el marco de la celebración del 18 aniversario de la distribución de GNU/Linux Debian el próximo 20 de Agosto se realizará el Séptimo Día Debian, una reunión de interesados en el Software Libre y Linux en general, ideal para debatir compartir y conocer en compañía de compañeros, estudiantes, profesores y profesionales en general del área de Tecnologías Libres.

Este año el magno evento estará en su mayoría orientado a realizar demostraciones prácticas y técnicas (semi talleres) para lo cual invitamos a los participantes que posean computadora portátil llevarlas y acompañar a los facilitadores en los recorridos técnicos por los cuales nos pasearán. Si no tienes laptop pues no importa es “demostrativo” anota tu chuleta y luego descarga los recursos empleados o prácticas aquí en esta pagina. Totalmente Libre y Gratuito.

¿Dónde y Cúando?
7mo Dia Debian 2011 – Colegio Universitario Caracas.
Sábado 20 de Agosto de 2011 – Caracas Venezuela.
Ubicada en: Av. Principal de la Floresta cruce con Av. Francisco de Miranda Urb. La Floresta, Edificio Sucre. a una cuadra de la estación de metro “Altamira”, frente a Centro Plaza. Chacao Estado Miranda.

Más Información

Website: http://www.diadebian.org.ve / Twitter: @diadebian

Escrito por apostols

August 9th, 2011 at 9:27 am

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