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).

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.

 

 

    1. Open Terminal.
    2. Exec:
    3. $ env x='() { :;}; echo vulnerable' /bin/sh -c "echo this is a test"
      vulnerable
      this is a test
      $ curl -O http://supportdownload.apple.com/download.info.apple.com/Apple_Support_Area/Apple_Software_Updates/Mac_OS_X/downloads/031-08421.20140929.4Syvs/BashUpdateMavericks.dmg 2> /dev/null
      $ hdiutil attach -quiet BashUpdateMavericks.dmg
      $ sudo installer -pkg /Volumes/OS\ X\ bash\ update/BashUpdateMavericks.pkg -target LocalSystem
      installer: Package name is Actualización de Bash para OS X
      installer: Installing at base path /
      installer: The install was successful.
      $ env x='() { :;}; echo vulnerable' /bin/sh -c "echo this is a test"
      this is a test
      $ hdiutil detach -quiet /Volumes/OS\ X\ bash\ update
    4. Enjoy 🙂

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

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).

Hoy, un amigo y ex compañero de la Universidad, deja un mensaje en una de las redes sociales muy preocupado porque vío en la noticias que una persona con el nombre de Andrés Abreu, de 62 años de edad había fallecido en un accidente automovilístico en la Cota Mil, Caracas. Hace un mes atrás me encontré de forma casual con Oswaldo, su hijo mayor, tenía mucho tiempo sin saber de él y de Andrés. Nos intercambiamos tarjetas. Así fue que logré contactar a Oswaldo, para saber si el del accidente había sido su papá, el cual confirmó por SMS que si había perecido en dicho accidente.

¿Quien fue Andrés Abreu para mi?

En el año 1998, Andrés era profesor de la cátedra de Comunicación de Datos I y II (DATACOM) y Jefe del Departamento de Teleinformática en la UVM. Yo ingresé en ese año a la Universidad a estudiar la carrera de Ingeniería de Computación, apenas tenía 16 años, pero mis ansias de aprender más sobre las tecnologías eran altísimas. Ya en ese momento usaba Linux pero no había tenido la oportunidad de jugar con servicios y redes, hacía solo lo básico: programar y jurungar. Ese mismo año, los estudiantes de la cátedra de Sistemas Operativos hacían una exposición sobre los OS que estaban en la punta de lanza, allí conocí a quien ahora es mi amigo, Julio Hernandez Pabón. El presentaba Linux Red Hat (en ese entonces la versión 5.2), y en el laboratorio de computación de la Facultad de Ingeniería se comenzaron a realizar las primeras pruebas en Red (NFS/Samba/HTTP/DNS/FTP), en esas exposiciones (y sin conocer a muchas personas en la Universidad) me presentaron al Profesor “Oye Vale”, rápidamente conversando sobre los temas tecnológicos logramos crear empatía y dío comienzo a una muy buena amistad.

Andrés al mes de conocerme me invitó a asistir a las clases de DATACOM, yo no podía creerlo, apenas estaba haciendo el ciclo básico en la Universidad, las clases que él impartía era para personas que estaban en el 7mo y 8vo semestre, yo no estaba ni en el 1er semestre. Acepté y comencé a asistir a sus clases, eran normalmente en horario nocturno y tenían mucha audiencia. Los estudiantes de esa época me trataban como la mascota del salón, el mas pequeño, el que preguntaba más, el que quería saber el origen de las cosas. Julio Hernandez estaba allí siempre apoyandome, igualmente Andrés. Al final de ese semestre le comenté a Andrés que sería bueno crear un LUG (Grupo de Usuarios Linux) en la Universidad, que otras universidades ya lo tenían (UCV/LUZ/ULA). Él dijo “Sí”, no dudo en responder, y me preguntó: ¿Qué necesitas?, le pedí unas maquinas para montar un laboratorio de pruebas y un espacio para que los curiosos pudieran utilizar las maquinas con Linux. Así fue, él asignó 4 maquinas para ese uso, lo único que me pidió que lo inscribiera como un Club interno en la universidad para darle carácter institucional, y así se hizo. Durante 2 años funcionó el Club Linux Valera en un pequeño espacio en piso 6 de la Torre Administrativa de la UVM.

A Andrés le debo parte del inicio de mi carrera profesional: mi primera red cableada fue asesorada por él, mis primeros servicios los monté gracias a su orientación, juegos en red, entender más a un UNIX por dentro. Andrés era una persona muy alegre, siempre con su frase caraqueña “Oye Vale”, siempre con una sonrisa, siempre con buen humor, siempre con mucha disposición, siempre ayudando al que menos sabía a entender de forma muy didáctica sin perder su porte gerencial que siempre lo caracterizó.

Yo supe muy poco de su vida personal antes de la universidad, a él no le gustaba hablar mucho de su pasado, sabía que era Licenciado en Ciencias de la Computación de la Universidad de Saint Louis en los EEUU, que había sido Gerente de TI en varias empresas trasnacionales que estaban operando en Venezuela, que cuando joven corría carros y amaba los Corolla, que viajó a la India y que después de llegar a los 50 años se dedicó a la docencia y montó una empresa de soluciones tecnológicas. Conocí a su hijo mayor Oswaldo y a su hijo menor Samuel Andrés (que cuando pequeño, de cariño le llamábamos Linux Andrés) y a la que fue su última esposa Penelope.

Con este texto solo quiero memorar al uno de los grandes hombres que me ayudó a crecer como profesional, al que sin miedo a las nuevas ideas le apostó. Paz a su alma.

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.

Hace aproximadamente unas 9 semanas me enteré que la gente de Instagramers Venezuela estaba participando en ExpoLado-B, un nuevo concepto destinado a exponer lo mejor del talento creativo y decidí participar. Luego me entero que una de las fotografías que había puesto a concursar fue seleccionada entre unas 1100 fotos, con un total de 20 fotos de Latinoamericanos y Iberoamericanos. Recuerdo que estaba almorzando y quedé totalmente frío, nunca había ganado algún concurso en mi vida.

Fotografía seleccionada para al ExpoLado-B. Exceso.

La exposición se realizó el 17/18/19 de Junio 2012 en el Centro Cultural de Chacao, Caracas. Asistí a la inauguración, realmente estuvo todo muy bien organizado. Les dejo algunas fotos del evento (tomadas y bajo Copyright 2012 por Consuelo Di Carlo):

Más fotografías disponibles en: http://instagramersvenezuela.com/ladobsociales

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,