Generando nombres aleatorios desde terminal

Hace años, cuando usaba linux, me hice un script para generar nombres-palabras, hoy lo he estado buscando para ponerle nombre al movil, y como es lógico ese script se perdió. Así que he decidido volver a hacerlo por que nunca está de más tenerlo, y lo publico aquí para quien lo quiera.

#!/usr/bin/env bash
###########################
#Modo de ejecutar el script:
# ./names.sh 'TIPO' 'LETRAS'
# TIPO= nombres, palabras
# LETRAS:
# Palabras que empiecen por s : ^s
# Palabras que contengan s, w, b : s.w.b
# Ejemplo:
# Nombres que empiecen por 's' y contenga 't' y 'u'
# $./names.sh nombres ^s.t.u
# Palabras que empiecen por 'w' y contenga 'b' y 'l'
# sh names.sh palabras ^w.b.l
#––––––––––––––––––––––––––––
#############################
#Diccionarios
# Diccionarios por defecto en el directorio /usr/share/dict
# se encuentra en los sistemas unix.
# puedes poner la ruta de tus propios diccionarios
# Nombres propios
NOMBRES="/usr/share/dict/propernames"
# Palabras
PALABRAS="/usr/share/dict/words"
#––––––––––––––––––––––––––––
if [[ $1 == nombres ]]; then
echo "Diccionario Nombres propios: " $NOMBRES
cat $NOMBRES | tr '[A-Z]' '[a-z]'|grep -i $2
elif [[ $1 == palabras ]]; then
echo "Diccionario Palabras: " $PALABRAS
cat $PALABRAS | tr '[A-Z]' '[a-z]'|grep -i $2
fi

Considero que el script está bien comentado, si alguien tiene alguna duda que me escriba un comentario!

Generando nombres aleatorios desde terminal

Moviendo ficheros con automator

Una de las herramientas que tiene Os X y está algo escondida,son las acciones de carpeta. Con las acciones de carpeta podemos asignar scripts y tareas automatizadas cada vez que en una carpeta se añada un fichero nuevo.
Yo tengo una acción de carpeta, para que todos los ficheros .torrent que descargo en la carpeta Descargas se me muevan a la carpeta en la que transmission añade automáticamente los torrent que se añadan a ella.
Para hacer la acción de carpeta, ejecutamos Automator y creamos una nueva Acción de carpeta.
Añadimos las acciones Buscar Items del finder y Trasladar items del finder. Nuestra acción debe tener el siguiente aspecto:

Captura de pantalla 2011 07 23 a las 16 11 52

en Buscar items del finder, pondremos la carpeta Descargas que es la que queremos observar para copiar los ficheros,y en trasladas items del finder pondremos la carpeta destino.

Una vez que lo tenemos, guardamos la acción de carpeta, y cada vez que haya un fichero torrent en la carpeta descargas la moverá a la que le hayamos indicado.

Moviendo ficheros con automator

Conectar altavoces 5.1 a un Macbook Pro

Cuando me compré el macbook Pro, una de las cosas que deje de usar fueron los altavoces 5.1 que tenía para el ordenador de sobremesa. A pesar de que el macbook cuenta con salida óptica de audio los altavoces no disponen de esa entrada. Estuve buscando tarjetas de sonido externas, pero las que encontraba eran caras y necesitaban de un puerto USB para que funcionaran(Drivers y demás) yo lo que quería era un aparato independiente que le enchufara el cable óptico y me sacara la señal al 5.1.

Un día navegando por Dealextreme encontré un decodificador a 5.1

Window

que era lo que estaba buscando, este decodificador junto con el cable de salida TOSLINK a mini-TOSLINK

Window 1

A parte es necesario un conversor de enchufe, ya que el que trae el decodificador es de los planos de USA, pero sin mayor problema baje con el enchufe a los chinos de al lado de mi casa y me dieron un adaptador universal, por el módico precio de 90 cts.

Conectar altavoces 5.1 a un Macbook Pro

Arduino en mac

Os voy a explicar como trabajar con la placa de Arduino en nuestro mac.
Yo compré arduino por internet en una tienda de electrónica americana, al cambio me salió el cacharro por 24€ con gastos de envío cuando en la mayoría de las tiendas electrónicas lo venden por 20€ más gasto de envío que suelen rondar los 10€ y tardaron 15 días.
Una vez que tenemos el Arduino lo primero que debemos hacer antes que nada es instalar los Drivers FTDIUSB para Snow Leopard, la versión que yo tengo instalada es la v2_2_14 hay una versión que en Snow Leopard no me los reconocía, con esto podremos comunicarnos con arduino, tanto a la hora de subir el programa como por comunicación serie.
Una vez instalado los drivers y reiniciado el sistema, instalamos y ejecutamos el entorno de desarrollo de arduino(ahora en adelante IDE), a día de hoy van por la versión 017, comentar que el IDE por defecto nos creará una carpeta en Documentos, donde se guardaran todos los programas que vayamos haciendo.

El entorno es muy sencillo, a simple vista un editor de texto más con resaltado de sintaxis. Lo primero que debemos hacer es decirle qué placa de Arduino tenemos.

Captura de pantalla 2009-10-27 a las 20.45.08

Ahora conectamos la placa al mac y le indicamos el puerto por el que debemos de comunicarnos.

Captura de pantalla 2009-10-27 a las 20.45.23

Tenemos que elegir la opción que sea parecida a /dev/tty.usbserl-XXXXXXX, si no aparece ninguna opción, es o bien no hemos conectado la placa al mac, o los drivers no están bien instalados.

Y ya lo siguiente es hacer nuestro primer programa, comentar que dentro del propio IDE tenemos muchos ejemplos de código, en el menú (File>Examples)
Una vez que tenemos el programa

Captura de pantalla 2009-10-27 a las 20.47.56

Compilamos el programa (Sketch>Verify/Compile) y luego transferimos al Arduino (File>Upload to I/O Board) o bien usar los botones de acceso directo que están en la ventana del entorno.

Captura de pantalla 2009-10-27 a las 20.48.08

Y con esto ya tenemos nuestro Arduino preparado para funcionar con nuestro mac. En el siguiente post, veremos cómo intercambiar información entre el mac y el Arduino, para por ejemplo, conectar un led conectado al arduino desde el mac.

Hay mucha información de arduino en internet, pero voy a intentar recopilar aquí algunos ejemplos para trabajar con el mac.

Vías:

Arduino en mac

Un mes como switcher

Hace ya un mes y varios días que me compre el mac, después de casi un año detrás de el y ahorrar y no ahorrar, por fin me pude hacer con uno.

Al principio pensaba en comprarme un macbook, de prestaciones estaba bien y el precio no era muy elevado, pero ya al final me empecé a fijar en el macbook pro, se subía un poco más de precio pero de prestaciones estaba mejor, más pantalla y sobre todo mucho mejor tarjeta gráfica. La del macbook es una intel integrada y yo tenía pensado darlo un uso un tanto gráfico, retoque de fotos y alguna que otra viciada a juegos. El precio se sube un tanto pero al final como me lo compré a plazos el esfuerzo no era mucho. Decir que después de un mes con él, no me arrepiento para nada de habérmelo comprado, si hubiera elegido el macbook igual me arrepentiría de no haber esperado un poco.

Como switcher, acostumbrarme al sistema no me ha costado nada, también es verdad que ya había visto unos cuantos screencast sobre el sistema y aplicaciones en concreto y ya me sabía un poco cómo iba el tema. Pero la verdad que todo funciona a la primera y de una manera la mar de sencilla. Me ha recordado un poco a ubuntu pero a lo bestia(en realidad ubuntu se parece a leopard ) ). Comparándolo con linux, leopard mezcla la sencillez de gnome y la potencia de KDE, todos los programas se integran entre si y es fácil mezclar cosas de varias aplicaciones.

La mejor aplicación de leopard es sin duda alguna Spotlight, lanzador de aplicaciones, buscador de ficheros, documentos, fotografías. Hace poco me dijeron que para ejecutar aplicaciones en mac era un coñazo que te tenías que ir al finder, carpeta aplicaciones y buscar la aplicación pero es mucho más sencillo que todo eso, ejecutas spotlight tecleas el nombre de la aplicación enter y ya lo tienes. A parte si quieres abrir cualquier fichero de lo que sea, ejecutas el nombre del fichero y también puedes abrirlo, no te es necesario conocer la ruta.

Lo que más echo de menos de linux es sin duda aptitude, la posibilidad de tener todo el sistema, aplicaciones y sistema operativo, actualizado a la última desde la misma aplicación se hecha en falta, bien es cierto que leopard trae un sistema de actualizaciones del sistema bastante parecido y las propias aplicaciones buscar actualizaciones nada más arrancar, así que bueno algo parecido tiene.

Por otro lado, la verdad se está bastante a gusto en mac, sobre todo vuelvo a repetir, por la sencillez y estabilidad del sistema. Vale un mac es caro en comparación con un pc, pero bueno yo creo que merece la pena sobre todo por la calidad final del producto, un pc, que traiga vista no se parece en nada a un mac con leopard, pero esto es el típico flame de toda la vida que no quiero discutir aquí.

Si lees este blog y estás dudando en cómprate un mac, te recomiendo que te lances a la piscina y te hagas con uno, no te arrepentirás para nada

Un mes como switcher

Instalación y Configuración de Virtualmachine en ubuntu

En este manual voy a explicar cómo instalar el programa de emulación VirtualBox.

Virtualbox se pude instalar de varias formas, compilando el codigo fuente, mediante paquete deb o mediante repositorio, en el tutorial usaremos está última ya que es la mejor manera de estar siempre actualizado a la última versión.

Añadimos los repositorios de virtualbox
Para Gutsy Gibbon:
deb http://www.virtualbox.org/debian gutsy non-free
Para Feisty Fawn:
deb http://www.virtualbox.org/debian feisty non-free
Ahora descargamos la clave para los repositorios:
wget http://www.virtualbox.org/debian/innotek.asc
Añadimos la clave para autentificarlos:
sudo apt-key add innotek.asc
E instalamos el programa:
sudo aptitude install virtualbox

Una vez instalado, lo siguiente será añadir nuestro usuario al grupo vboxusers para tener permisos de ejecución. Nos vamos a sistema>Administración>Usuarios y grupos. A continuación Gestionar Grupos, elegimos vboxusers y añadimos nuestro usuario.
Este paso es opcional no es necesario. Yo tengo mi carpeta /home en una partición a parte. Virtualbox te crea todos los discos virtuales en tu /home/user con el consiguiente uso de disco duro. Yo lo que hago es crear todos los discos virtuales en la carpeta /opt/virtualmachines, ya que tengo más espacio lo que hago es lo siguiente

$sudo mkdir /opt/virtualmachines

Como esa carpeta sólo la debería usar virtualmachine le decimos que sólo los usuarios que pertenezcan a su grupo tengan permisos de escritura/lectura/ejecución sobre la carpeta, para ello:

$sudo chgrp vboxusers /opt/virtualmachines
$sudo chmod 770 /opt/virtualmachines

Una vez hecho esto ejecutamos virtualmachine y tenemos la ventana principal:

imagen1

Antes de nada crearemos el Disco Duro virtual, Archivos>Administrador de Discos Virtuales(ctrl+d)

imagen2

Pinchamos en nuevo para ejecutar el asistente, el cual nos preguntara qué tipo de disco duro elegimos, si Imagen de expansión dinámica o Imagen de tamaño fijo. Como sus nombres indican Imagen de expansión dinámica, crea un disco duro virtual sin tamaño fijo, a medida que el sistema virtual necesita espacio, el disco duro virtual aumenta. E imagen de tamaño fijo crea un fichero con un tamaño específico, si el sistema virtual necesita espacio y llega al tope del fichero, nos quedaremos sin disco duro.Aquí cada uno elige lo que mejor le venga, recuerdo que si vas a instalar windows XP o similar requiere mucho disco duro y es muy común el elegir un tamaño fijo de unos cuantos gigas y al empezar a instalar cosas se te quede pequeño. Si vas a elegeir Imagen de tamaño fijo que sea de unos cuantos gigas (mayor o igual de 8gb).

Lo siguiente será darle un nombre al disco duro y un tamaño inicial

imagen3

Si has creado la carpeta /opt/virtualmachines, en este paso debes indicarle que te guarde ahí el fichero que creará, pinchas en el icono de la carpeta y te diriges a /opt/virtualmacines

imagen4

Una vez creado el disco duro es momento de crear una nueva maquina virtual, para ello nos vamos a la ventana principal del programa y pulsamos en Nueva para ejecutar otro asistente.

imagen5

Aquí nos preguntará que nombre le damos a la máquina y qué sistema vamos a instalar, en mi caso voy darle el nombre XP y voy a instalar Windows XP es importante dar nombres concretos si vas a instalar más de un sistema operativo es decir, si vas a instalar windows XP y distintas distribuciones de linux
no lo llames maquina1, maquina2 maquina3 porque no sabras que sitema operativo tiene cada maquina virtual..
El siguiente paso será indicar cuanta memoria RAM asignar a la maquina virtual, es conveniente asignar la mitad de la RAM físca, en el ejemplo, mi ordenador tiene 1gb de ram, a la maquina virtual le asigno 512mb y el sistema no se resiente demasiado.

imagen6

Por último seleccionamos el disco duro virtual antes creado y terminamos.

imagen7

Antes de ejecutar por primera vez nuestra máquina virtual, vamos a configurarla un poco más a fondo para ello, en la ventana principal pulsamos en configuración.
En esta ventana configuramos un poco más a fondo el hardware de nuestra máquina virtual, habilitamos el CD/DVD, tarjeta de sonido, usbs,directorios compartidos,red. Voy a explicar cómo habilitar el usb en linux ya que no basta con habilitarlo en virtualbox.
Lo primero de todo creamos un grupo llamado usbusers, para ello, sistema>administración>Usuarios y GRupos>Gestión de Grupos. para luego añadir nuestro usuario a ese grupo.

imagen8

Editamos el fichero /etc/udev/rules.d/40-permissions.rules y buscamos esta linea:
SUBSYSTEM==”usb_device”, , MODE=”0664″
y la reemplazamos por esta otra:
SUBSYSTEM==”usb_device”, GROUP=”usbusers”, MODE=”0664″
Guardamos y reinciamos el sistema.
Ya tenemos nuestra máquina virtual configurada con acceso a cd/dvd, tarjeta de sonido, red, usbs… lo siguiente será meter el disco de instalacion del sistema y ejecutar la maquina virtual:

Máquina virtual

Está es la maquina virtual los iconos de la parte de abajo son los más importantes,
1, este indica el acceso al disco duro.
2, indica que el cdrom está montado, click derecho para más opciones.
3, indica si tenemos montado la disquetera.
4, indica el acceso a red.
5, nos permite montar en el sistema virtual los dispositivos USB, click derecho para habilitar los dispositivos.
6, Carpetas compartidas nos permite compartir carpetas entre el sistema virtual y nuestro ordenador, click derecho para más opciones.

Una vez cargado el cd de instalación procedemos a la instalación del sistema operativo pasos que voy a obviar en este manual.
Al terminar la instalación de xp lo primero que haremos será instalar las Guest Additions, que mejora un poco el uso de las máquinas virtuales.Para ello nos vamos a dispositivos>Instalar Guest Additions

imagen11

Con las Guest additions instaladas, una de las cosas que mejora es la integración del ratón entre los dos sistemas, sin ellas, al clickar sobre la máquina virtual el raton no saldra del sistema emulado, para poder usarlo en nuestro sistema, deberemos pulsar la tecla Control Derecho.
Otra de las mejoras es el Seamless Mode que permite integrar XP a nuestro sistema como en la imagén.

Windows o Linux. mejor los dos a la vez

Y esto ha sido todo, la verdad que el programa está genial y la opcion de Seamlees Mode es bastante curiosa, y el rendimiento es bastante bueno.

Para hacer este manual, me he ayudado del manual hecho por NuhR y de la ayuda del propio virtualmachine (Ayuda>contenidos).

Instalación y Configuración de Virtualmachine en ubuntu

Resumén del Primer Coworking de GNU/linux

evento coworking

Esta tarde se ha celebrado en garage30 el Primer Coworkig de GNU/linux el cual anuncie aquí en su día y por twitter.
Después de estar un rato andando por una calle muy larga.. había pensado que me había perdido pero pregunté y me indicaron el camino. Al llegar al garage30, que para quien no lo sepa, no es un garage.. es un local normal y corriente estaban fuera Belén y Raúl Andrés. Al principio hablamos distendidamente y conociéndonos sentados en una sillas muy confortables :D. A lo que al rato llego Enrique Brito y en ese momento empezó el coworking. Faltaban dos asistentes pero por motivos no pudieron ir. Empezamos hablando de las novedades de pclinux OS que es muy parecido a windows, pero no me termina de convencer.. quizás por el uso de kde. Es decir el sistema está muy bien, pero después de darle muchos intentos a kde no me convence. Mientras hablamos de pclinuxos en otro ordenador instalábamos ubuntu studio que tiene un montón de aplicaciones para el diseño de video/audio. A continuación llego el tiempo de vino de la cosecha de vinae mureri y degustación de ibéricos mientras hablábamos de la web2.0, dominios, ideas..
Todo esto ha durado 4 horas y no se me ha hecho para nada aburrido/largo. Me lo he pasado bastante bien conociendo a gente nueva y espero poder volver a quedar con ellos en un tiempo temprano!Si alguna vez, que seguro que sí, se celebra el 2º coworking espero ir y que se apunte más gente!
UN saludo a todos los coworkers!

Resumén del Primer Coworking de GNU/linux

Primer Coworking de GNU/linux

El próximo día 10 de septiembre se va a celebrar el primer coworking sobre gnu/linux. ¿qué es un coworking? pues yo tampoco sé muy bien lo que es, pero a grandes rasgos es como un taller en el que se reune gente y se ayudan entre ellos. En concreto este coworking es casi lo mismo que una típica install party de linux. Se va a celebrar en Garage30 y está situado en vallecas. Yo voy a ir para ayudar a la gente y conocer este mundillo que siempre he tenido ganas de ver. Recordar otra vez, que es el lunes 10 de septiembre a las 19:00 horas. Si no estás con exámenes y te gusta linux y ayudar a la gente no dudes en ir!

Primer Coworking de GNU/linux

Script cambiar resolucion de fotos

Hace tiempo hice un script para comprimir fotos automáticamente poco tiempo despues RoyalTux lo mejoró
. Ya me ha pasado un par de veces que he hecho las fotos con mi cámara a la máxima resolución(6mp) y sólo quería las fotos a la mínima (1mp), ya que son fotos de los amigos y no me hace falta grandes resoluciones para verlas en el ordenador. Entonces lo que hacia era cambiar la resolución con el programa convert y la opción -resize. Pero había un pequeño problema, y es que las fotos estaban tomadas tanto en horizontal como en vertical, entonces la resolución de la foto cambia y el proceso de cambiar resoluciones se hacia un poco rollo.

Pues hoy que estaba un tanto aburrido me ha venido a la cabeza una idea. Todas las cámaras digitales añaden a las fotos que toman una información digital sobre cómo ha sido tomada la foto (exif) entre esa información se encuentra si la foto esta horizontal o vertical. Para poder leer esta información es necesario instalar el paquete exif (aptitude install exif).Bien al hacer un exif de una foto tomada con mi cámara:

darkomen@carax:~/fotos$ exif P1070094.JPG
EXIF tags in ‘P1070094.JPG’ (‘Intel’ byte order):
——————–+———————————————————-
Tag |Value
——————–+———————————————————-
Fabricante |Panasonic
Modelo |DMC-FX01
|arriba – izquierda
|72,00
|72,00
|Pulgada
Software |Ver.1.0
Fecha y hora |2007:08:18 02:14:53
Posicionamiento YCbC|co-situado
Desconocido |
|
|arriba – izquierda
|72,00
|72,00
|Pulgada
Posicionamiento YCbC|co-situado
|1/30 seg.
|f/2,8
ExposureProgram |Programa normal
Velocidad ISO |100
|
Fecha y Hora (origin|2007:08:18 02:14:53
Fecha y Hora (digita|2007:08:18 02:14:53
ComponentsConfigurat|Y Cb Cr –
Bits comprimidos por|4,00
|0,0
MaxApertureValue |3,00
|
Fuente de luz |4
Flash |89
Distancia focal |4,6 mm
Nota del fabricante |5978 bytes de datos desconocidos
FlashPixVersion |FlashPix Version 1.0
Espacio de color |sRVA
PixelXDimension |1280
PixelYDimension |960
|
Fuente de archivo |DSC
Tipo de escena |
Render personalizado|Proceso normal
|
Balance de blanco |
|0,00
Distancia focal en p|28
Tipo de captura de e|
Control de ganancia |Normal
Contraste |Normal
|
Nitidez |Duro
InteroperabilityInde|R98
InteroperabilityVers|
——————–+———————————————————-
EXIF data contains a thumbnail (6653 bytes).

Bien si os fijais en la tercera línea pone ‘|arriba – izquierda’ eso quiere decir que se ha tomado en horizontal si vemos otra vertical, en esa misma línea pone ‘|izquierda – abajo’. Al menos así es en mi cámara. Una vez que sabemos esto y con ayuda de grep, filtraremos esa información. En este caso me ha resultado mas sencillo hacer un filtro de ‘|arriba – izquierda’, ver cuantas veces se repite en exif, si se repite más de una vez, es que está tomada en horizontal, si por el contrario no se repite es vertical, para muestra un botón:

for i in `ls *.JPG `;do #Hacemos un for con todas las fotos del directorio
VALOR=$(exif $i |grep -c arriba) #Hacemos el grep de ‘arriba’ de la información exif de la foto
if [ $VALOR != 0 ] #si el valor es distinto de 0
then
convert -resize 1250×980 $i $i; #la foto es horizontal y ponemos resolución horizontal
else
convert -resize 980×1250 $i $i; #la foto es vertical y ponemos resolución vertical
fi
echo “$i cambiada la resolución” #nos muestra información sobre qué foto se ha cambiado
done

y con eso automáticamente cambiará la resolución de todas las fotos, el tamaño es el que se indique en el script para mi caso ese es el correcto, lo podría haber hecho personalizable.. pero ya no sería tan automático. 😀

El último paso es copiar el fichero a ‘/urb/bin’ para que el script pueda estar disponible desde cualquier carpeta del pc

Script cambiar resolucion de fotos