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

Hace unos meses les mostramos la manera de instalar la Distribución Nacional Venezolana Gnu/Linux Canaima (pueden ver la publicación aquí), pero en su nueva versión 3.1 Auyantepui, cambia un poco el proceso de instalación por lo menos visualmente y puede generar un poco de confusión. 

Por esta razón hemos decidido hacer una nueva publicación al respecto mostrándole los pasos correspondientes para esta nueva versión. En esta instalación que le presentaremos no se explicará el proceso de particiones manualmente, sino que se hará tomando el disco completo que es la forma mas sencilla de realizarlo. Para aquellos que quieran realizar particiones por separado (manualmente) pueden leer la publicación que hicimos de UBUNTU, que allí presentamos el proceso detalladamente y no varía mayormente con respecto a Gnu/Linux Canaima. 
Cualquier duda, comentario o información pueden escribirnos a consulta_friki@kioscofriki.com.ve
Para comenzar al cargar el disco se presenta un menú de donde se debe seleccionar la primera opción que es "Probar e instalar", luego de esto se espera a que cargue el disco de arranque.
Clic para ampliar
Al iniciar sesión pueden hacer las pruebas preliminares del Sistema Operativo, en lo que se llama una sesión en vivo, y así ver las opciones con las que se cuenta, así mismo les presenta una bienvenida y una breve descripción de las diversas aplicaciones (imagen a la izquierda). Luego de terminar el recorrido y las pruebas, para comenzar con la instalación del sistema deberán hacer clic en el icono que se encuentra en el escritorio con el nombre "Instalar Canaima GNU/Linux" (imagen a la derecha).
Clic para ampliar
Esto abrirá un asistente de instalación que los guiará a través de todo el recorrido, la primera pantalla que se presenta es de Bienvenida y especifica los requerimientos mínimos que debería tener el equipo donde se realizara la instalación, para continuar se debe hacer clic en el botón Adelante (imagen a la izquierda). La siguiente pantalla es para seleccionar el tipo de teclado que se tiene instalado en el equipo, allí se presenta un menú desplegable en el cual se puede escoger el tipo de teclado, así mismo cuenta con un cuadro de texto, donde se puede verificar que funcione adecuadamente, para continuar se debe hacer clic en el botón Adelante o en caso de querer regresar se puede hacer clic en el botón Atrás (imagen a la derecha).
Clic para ampliar
En la siguiente ventana se deberá seleccionar el disco donde se realizara la instalación y en el menú de la parte inferior, seleccionar el tipo de instalación que se realizará, en este caso seleccionamos Instalar usando todo el disco, pero se cuenta con dos opciones adicionales Instalar editando particiones manualmente con la cual podrán colocar las particiones del disco de acuerdo al tamaño requerido y la última opción Instalar usando espacio libre disponible la cual permite instalar en el espacio restante si ya se encuentra otro sistema operativo instalado, para continuar se debe hacer clic en el botón Adelante o en caso de querer regresar se puede hacer clic en el botón Atrás (imagen a la izquierda). En la siguiente ventana se podrá seleccionar la manera como requiere que se presenten las particiones, todas juntas o separando alguna de ellas, para la instalación que nosotros estamos realizando seleccionaremos Instalar todo en una sola particiónpara continuar se debe hacer clic en el botón Adelante o en caso de querer regresar se puede hacer clic en el botón Atrás (imagen a la derecha).
Clic para ampliar
En la siguiente ventana deberá colocar la contraseña de Administrador, el nombre del equipo, el nombre del usuario y la contraseña del usuario creado, para continuar se debe hacer clic en el botón Adelante o en caso de querer regresar se puede hacer clic en el botón Atrás (imagen a la izquierda). Para finalizar, presenta un resumen de las opciones antes escogidas, si se esta de acuerdo se debe hacer clic en el botón Adelante o en caso de querer regresar se puede hacer clic en el botón Atrás (imagen a la derecha)

Clic para ampliar
Luego de esto, solo se debe esperar a que realice el proceso de instalación para reiniciar el equipo y comenzar a utilizar tu Sistema Operativo GNU/Linux Canaima, en su version Auyantepui.


Y recuerda si esta información te ayudó y quieres colaborarnos económicamente puedes hacer tu donación aquí

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.

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,

Actualmente estoy colaborando con el desarrollo de canaima-instalador, una aplicación para Canaima GNU/Linux que permitirá al usuario instalar/probar Canaima de una manera fácil e intuitiva, y he decidido hacer una propuesta sobre cómo debe lucir y funcionar el nuevo instalador. La propuesta a continuación.

Paso 1: LiveCD

Lo primero que hace falta cambiar es el menú de inicio del liveCD. Actualmente tenemos una pantalla llena de opciones que, más allá de facilitar el uso, pueden confundir a los usuarios menos experimentados. Mi sugerencia es que el liveCD arranque automáticamente y presente un menú inferior con las posibles opciones para usuarios más experimentados.


Paso 2: Bienvenida

Aquí es donde comienza a ejecutarse canaima-instalador. La idea es que sea tipo OEM, es decir, que no cargue el escritorio sino lo mínimo necesario para ejecutarse. Se le preguntará al usuario si desea probar la distribución o instalar. Para el primer caso se cierra canaima-instalador y se continúa con la carga del escritorio, para el segundo caso se sigue el flujo normal de la aplicación.


Paso 3: Requisitos

Se le muestra al usuario cuáles son los requisitos mínimos necesarios para obtener mejores resultados al instalar Canaima. En caso de que no se cumpla con un requisito crítico (por ejemplo, el espacio en disco) la instalación no debería continuar.


Paso 4: Modo de instalación

Acá (luego de haber analizado el hardware) se le presentan al usuario las distintas opciones que tiene para instalar. En teoría todas deberían ser automáticas excepto la de "Particionamiento Avanzado" que ejecutará una instancia de gparted y bloqueará canaima-instalador hasta que el usuario termine de definir sus particiones. Una vez que el usuario haga clic en "Siguiente" no podrá volver atrás. Acá termina la primera fase de instalación y comienza el copiado de los archivos en el disco duro en segundo plano. La idea es aprovechar el tiempo, mientras se copian los archivos solicitamos al usuario el resto de la información y una vez terminada la copia se ejecutan las tareas correspondientes. De esta forma logramos minimizar considerablemente el tiempo de instalación (tal como lo hace Ubuntu).


Paso 5: Configuración de teclado

Como expliqué en el punto anterior, mientras se copian los archivos en segundo plano solicitamos el resto de la información al usuario. Acá se le pedirá que seleccione la distribución del teclado. Es importante observar que el botón de "Anterior" no estará disponible en este paso.


Paso 6: Configuración de usuarios

En esta fase se le pedirán los datos de las cuentas (root y usuario regular). Es importante habilitar un link (o botón) de ayuda donde se pueda explicar qué significa root y por qué es importante definir esa contraseña. Es importante recalcar que si el usuario no ha terminado de introducir la información complementaria y la copia de archivos finaliza entonces las tareas en segundo plano se detendrán hasta que se culmine esta fase.


Paso 7: Imágenes aleatorias sobre las bondades de Canaima

Al igual que Ubuntu y otros sistemas operativos, podemos mostrar una serie de imágenes aleatorias que informen al usuario sobre las bondades de Canaima GNU/Linux y del Software Libre mientras termina la instalación.


Paso 8: Fin de la instalación

Al finalizar todo exitosamente se le mostrará un pequeño diálogo al usuario para que reinicie el equipo y comience a disfrutar de las bondandes del SL.



Bueno, esta es mi idea de lo que debería ser un instalador fácil e intuitivo para Canaima GNU/Linux. Se escuchan comentarios Update para los haters: Sí, mi propuesta está basada casi enteramente en el instalador de Ubuntu porque me parece un excelente instalador ¿Cuál es el problema con eso?

Saludos!!!

Tiempo sin escribir por acá, hoy para reactivar el blog les escribo sobre mi nueva portátil la VIT M2420-02,

Este equipo posee tecnología Intel Sandy Bridge, y actualmente es el mas potente de los modelos portatiles de VIT.

En mi caso me incliné por instalar el S.O desde la rama de pruebas de Debian GNU/Linux (Wheezy), de esta manera pude lograr un perfecto funcionamiento del equipo. A nivel de hardware solo es necesaria la instalación del paquete no-libre firmware-atheros para que trabaje el bluetooth (irónico que esta gente aún tenga vainas cerradas), el resto de las componentes trabaja a la perfección con el kernel 3.1.0-1-686-pae.

Para las personas interesadas en comprar este o cualquier equipo de VIT pueden dirigirse a los centros de distribución directa de Venezuela Productiva que se están aperturando en todo el país, actualmente estos centros están abiertos en Caracas y Punto Fijo.

Estamos a la orden si hay dudas o si quieren consultar algo al respecto

Nota: Actualmente Canaima GNU/Linux no brinda soporte a “Sandy Bridge”

Si tienes una pc o portátil con bluetooth integrado o USB, esto es para ti!

Descripción de Amora
Amora (Asistente de conexión remota a teléfonos móviles) Es un aplicación que te permite controlar tu escritorio usando tu teléfono móvil. Mediante bluetooth puedes enviar eventos a tu ratón o teclado en las sesiones gráficas. Con el puedes controlar tus presentaciones, películas, o cualquier otra aplicación en la cual puedan interactuar el teclado o el ratón. Amora además incorpora la característica de visualizar un pantallazo desde tu móvil del estado actual de tu escritorio.

Lo que haremos a continuación es realizar la instalación de Amora-server para permitir controlar nuestra maquina usando bluetooth, con el cual podemos mover el ratón, hacer pantallazos, cerrar ventanas, etc. Para descargar el .deb de Amora:

$wget http://amora.googlecode.com/files/amora-server_1.1-1_i386.deb
$su – root
#dpkg -i *.deb
(Leyendo la base de datos …
144787 ficheros y directorios instalados actualmente.)
Preparando para instalar amora-server 1.1-1 (usando amora-server_1.1-1_i386.deb) …
Desempaquetando amora-server …
Configurando amora-server (1.1-1) …
Processing triggers for man-db …
Processing triggers for menu …

Listo! Instalado! Ya nuestro servidor estara a la espera de algun cliente!

Nota: Actualmente fue probado en una distribución venezolana llamada Canaima que esta basada en debian y no tuve problemas con las dependencias.

Ahora debemos instalar en nuestro teléfono celular el cliente del Amora (en este caso, estoy utilizando el Nokia N95) y para ello lo descargamos:

http://amora.googlecode.com/files/amora-client-1.1.0.sis

Lo colocamos en el teléfono e iniciamos su instalación!

Nota: Para la instalación exitosa en nuestro teléfono móvil se requiere de Python for S60 y tuve que instalarlo en la memoria externa del del teléfono.

Si no dispones de Python for S60, puedes bajarte este instalador:

http://amora.googlecode.com/files/amora-client-deps-1.1.0.sis

Luego de instalado, iniciamos el cliente desde nuestro teléfono y desde el server ejecutamos:

$ amorad
Initialization done, waiting cellphone connection…
Entering main loop…

En el cliente Amora, nos dirigimos a Options — Search devices –y seleccionamos el equipo al cual vamos a conectarnos. Nos pregunta sobre el puerto al cual nos conectaremos, pulsamos ok. Iniciar control: Now

Y veremos en el server la conexión del cliente:

$ amorad
Initialization done, waiting cellphone connection…
Entering main loop…
Accepted connection. Client is 00:1C:35:C2:54:8C

Con todo esto, podremos hacer lo mostrado en el vídeo:

Saludos! Y espero sea de ayuda! Pronto postearé como controlar mediante Bluetooth – ssh a nuestra maquina.

ACTUALIZACIÓN – 26/02/10

Para la instalacion del tarball, se requiere de las siguientes dependencias:

  • LIBBLUEZ
  • LIBX11
  • LIBXTST
  • LIBIMLIB2