Nikon 1 J1 (primera toma de contacto)

Recién me ha llegado mi nueva adquisición para llevar de forma mas cómodo a cualquier sitio. Sin tener que llevar la D90 un poco mas pesadas. Se trata de la Nikon 1 J1 (en color blanco muy cool).

awesomeness.openphoto

Aquí algunas pruebas de fotos de detalle. La verdad es que es muy manejable y cómoda, el enfoque es rápido y el vídeo a 1080p la hace una sucesora de los vídeos con la D90. Además poder grabar vídeos en slowmotion a 400fps (a 1200fps no los recomiendo,…quedan con muy mala calidad) son divertidos (supongo que la novedad).

awesomeness.openphoto awesomeness.openphoto awesomeness.openphoto 

awesomeness.openphoto awesomeness.openphoto awesomeness.openphoto

Resto de las fotos aquí

También el primer vídeo a 400fps que he grabado

http://www.youtube.com/watch?v=05OHhseLsmg

Panorámicas en la nieve

Esta mañana nos hemos levantado con una estampa muy poco frecuente por aquí, así que ha sido toda una novedad, aunque la cantidad de nieve era muy poquita,…he aprovechado para hacer unas panorámicas:

awesomeness.openphoto

awesomeness.openphoto

awesomeness.openphoto

awesomeness.openphoto

 

Exposición de Playmobil

Algunas fotos de una reciente exposición de Playmobils en BCN

awesomeness.openphotoawesomeness.openphotoawesomeness.openphoto

awesomeness.openphotoawesomeness.openphotoawesomeness.openphoto

Resto de fotos en mi nuevo site de trovebox.com (aka OpenPhoto) http://akirasan.trovebox.com/photos/tags-Playmobil/list

Momento friki: “hola mundo” en ensamblador

He tenido un pequeño momento friki de recuerdo de mis antiguas andanzas con la programación en ASM (ensamblador). Ese recuerdo me ha hecho pensar en intentar el típico “hola mundo” en ensamblador.

Siempre había programado en x86 bajo MS-DOS y recuerdo aquella interrupción para hacer casi de todo, la int 21h. Ahora, un aliciente mas ha sido que no tengo MS-DOS, sino Ubuntu y en 64bits (nada de 32bits), por lo que hay algunos pequeños cambios: por ejemplo la int 21h es la int 80h (la que tiene los servicios de kernel).

Para empezar el compilador; he utilizado el NASM por poner uno, aunque hay varios y la verdad es que no he tenido tiempo ni de comparar ni analizar nada,…

Creamos un fichero holamundo.asm con este código fuente:

section .text
    global _start               ;necesario para el linkado (ld)

_start:                         ;inicio del codigo

        mov     edx,txtlong             ;longitud del maxima del mensaje
        mov     ecx,texto               ;mensaje
        mov     ebx,1           ;file descriptor (stdout)
        mov     eax,4           ;numero de servicio (sys_write)
        int     0x80            ;interrupcion 80h (llama al kernel)

        mov     eax,1           ;numero de servicio (sys_exit)
        int     0x80            ;llamada al kernel otra vez

section .data
texto   db      'Hola mundo!!!',0xa     ;mensaje, acabado en null
txtlong equ     $ - texto                       ;length of our dear string

Para compilar el código tan simple como:

nasm -f elf64 holamundo.asm -o holamundo.o

Una vez compilado y generado el fichero objeto, hay que linkarlo. Para ello hay que utilizar el comando ld:

ld -o holamundo holamundo.o

Listo!!! compilado y linkado, ahora ya solo queda ejecutarlo:

Que maravilla!!! :)

Mi primer uso con tubo termoretractil

Pues aprovechando que últimamente el cable de alimentación del netbook me estaba dando problemas y cuando se doblaba por algún sitio dejaba de funcionar, he querido repararlo y de paso utilizar un tubo termoretractil, es decir, que al aplicar calor se contraen fijando, sellando e impermeabilizar el cable.

…así que he tenido que buscar el punto de fallo, cortar y soldar,…

No hay que olvidar que el termoretractil hay que ponerlo antes de soldar,… :) una vez preparado el tema hay que calentarlo. Yo he utilizado un secador de pelo a la máxima potencia.

El resultado final ha quedado bastante bien y el cable funciona de maravilla :)

Modificación ratón bluetooth HP

Ha llegado a mis manos un ratón HP bluetooth extraplano, de los que se cargan introduciendo en un slot pcmcia.

El ratón es muy majo, pero claro, los portátiles ya no suelen venir con pcmcia,…así que ¿como cargo el ratoncillo?, pues haciendo un modmouse :)

La modificación es sencilla, únicamente hay que quitar la tapa que tiene con cuatro tornillos y justo debajo hay una batería con un controlador de carga. Simplemente hay que soldar a los dos cables de entrada al controlador de carga, dos cables con el pineado de USB de V+ y GND.

Proyecto GPS+D90+Arduino (Parte 1)

He comenzado un proyecto (y voy a tratar de acabar,…) en el cual, la idea básica es: conectar un GPS Holux M241 vía bluetooth a un módulo Arduino Nano v3.0 que está conectado por cable al conector de GPS de mi Nikon D90, con la finalidad de que la cámara geoposicione de forma automática las fotos. Vamos, que guarde en el Exif, info del punto donde fue tomada la foto. Este es el concepto.

En esta primera parte he conectado el Arduino por cable a la Nikon D90 y he simulado la entrada de datos del GPS en formato NMEA. Para ello hará falta: un Arduino (en mi caso un Nano v3.0, pero cualquier versión vale), un pequeño programa (sketch) para que Arduino simule la salida de datos y un conector para la entrada GPS de la cámara (ahora explicaré como conseguirlo).

El conector GPS para la Nikon D90: Se puede conseguir muy barato en eBay (por unos 5$-6$) un disparador remoto por cable (modelo MC-DC2). De este cable únicamente nos servirá el conector, el cual hay que volverlo a pinear correctamente. En esta web tenéis el pineado necesario (es de donde he sacado algo de información). Esta es la pinta que tiene el mío (evidentemente sin el envoltorio):

conector

Bien, una vez pineado el conector de forma correcta, hay que centrarse en el Arduino. Os dejo el programa que he generado como ejemplo para simular la entrada de datos GPS a la cámara:

 #include <SoftwareSerial.h>
 */
 GPS test D90
 SoftwareSerial(rxPin, txPin)
 rxPin = 2
 txPin = 3
 */
 SoftwareSerial mySerial(2, 3);
 void setup()
 {
 mySerial.begin(4800);
 pinMode(2,INPUT);
 pinMode(3,OUTPUT);
 pinMode(13,OUTPUT);
 }
 void loop()
 {
 digitalWrite(13,HIGH);
 mySerial.println("$GPGGA,154654,4428.2011,N,00440.5161,W,0,00,,-00044.7,M,051.6,M,,6B");
 mySerial.println("$GPGSA,A,1,,,,,,,,,,,,,,,1E");
 mySerial.println("$GPGSV,3,1,10,02,50,290,00");
 mySerial.println("$GPGGA,154655,4328.1874,N,00340.5185,W,1,03,08.5,-00044.7,M,051.6,M,,*79");
 mySerial.println("$GPGSA,A,2,13,23,25,,,,,,,,,,08.5,08.5,00.9*0E");
 mySerial.println("$GPGSV,3,1,10,02,50,290,26,04,60,210,26,08,33,173,29,10,21,296,00*7E");
 mySerial.println("$GPGSV,3,2,10,13,58,044,34,16,03,035,00,20,02,109,00,23,26,057,34*7B");
 mySerial.println("$GPGSV,3,3,10,25,24,045,35,27,56,145,27,,,,,,,,*7D");
 mySerial.println("$GPRMC,154655,A,4428.1874,N,00440.5185,W,000.7,000.0,050407,,,A*6C");
 digitalWrite(13,LOW);
 }

Ahora ya solo queda conectar el cable a la salida del Arduino y a la entrada GPS de la D90, dar corriente al Arduino y encender la cámara y verificar que correctamente está recibiendo los datos:

D90+GPS+Arduino

Si disparas alguna foto y consulta sus datos, verás que tiene la información del GPS.

Bueno hasta aquí la primera parte. Estoy a la espera de que me llegue el módulo bluetooth para pincharlo a la placa Arduino y ver de emparejar el GPS Holux (aunque evidentemente se podría utilizar un movil con GPS, porque no?)

Mejorar la visión de los botones de una funda de silicona

Hace unos meses compré para mi Nikon D90 una funda de silicona negra, ideal para evitar suciedad y rayaduras en el cuerpo de la cámara. El tema es que esta funda tiene los botones sin pintar, lo que en algunas ocasiones complica ver la función de cada uno de ellos. La solución pasa por pintarlos.

Para pintarlos y dejarlos protegidos para que no se borren, me hecho varias pruebas con diferentes productos (todos los podéis encontrar en casa) y el mejor resultado ha sido: pintar los botones directamente con tempera de color (sin diluir) con un palillo, dejar secar un rato y eliminar el exceso con un palillo (cuidado, hay algunos botones mas complicados que otros, pero se pueden volver a repintar sin problema). Una vez los botones estén correctamente pintados y nos guste el resultado, solo falta aplicar (también con un palillo) y recubrir los botones pintados con pegamento del estilo “loctite”. Y ya está!!!,…ahora los botones son mas visibles.

También os podéis aventurar con combinaciones de colores (al final yo he optado con el clásico blanco y algunos detalles en rojo, como la papelera)

Resultado final:

Circular CPL Kenko a 270mm (PROBLEMA)

El otro día me pille un filtro polarizado circular (vamos un CPL), para el Tamron nuevo (18-270) que tiene un ancho de 72mm y el anterior Sigma (18-200) lo tenía de 62mm. Bueno la cosa es que pillo un Kenko como este:

DSC_4066_2

Al principio todo bien, hace lo que tiene que hacer,…pero el otro día tirando a máxima del objetivo (a 270mm), la cámara me indicaba que estaba enfocado OK pero yo por el visor lo veía borroso (bastante borroso). Muy raro me puse a tocar ajustes, a enfocar en manual,…y nada no había forma, se veía borroso,…así que probé de quitar el filtro,…y bingo!!!,…ahí estaba el problema.

Un ejemplo. Estas dos fotos están tomadas “de la misma forma”, pero una con el filtro polarizado y la otra sin, ¿alguna diferencia?:

DSC_3896_2

DSC_3898_2

…si verdad?, se nota a simple vista. Aquí un crop al 100% y se nota tela!!!:

DSC_3896_crop
DSC_3898_crop

…y si,..el punto de enfoque es el mismo,…

El filtro funciona perfectamente en otras distancias focales,…pero a 270,..kk!!!.

Búho Real

¿¿Donde está el pajarito??

Mas bien,…un Búho Real

DSC_0533

DSC_0538

Workflow de geoposicionamiento de fotos

A título informativo, sin entrar en muchos detalles, voy a explicar el workflow (pasos) que sigo para geoposicionar las fotos en linux (en mi caso con Ubuntu 11.04).

  1. Copiamos todas las fotos en un directorio temporal.
  2. Abrimos un terminal y vamos al directorio temporal.
  3. Descargamos la información del GPS en formato .gpx con mtkbabel:
      mtkbabel -s 38400 -f datos_tmp -t
  4. (opcional) particionamos el fichero .gpx en varios con información diaria:
      gpxsplitter.py datos_tmp_trk.gpx
  5. (recomendación) Estos dos pasos anteriores los podéis encapsular en un script en bash para simplificar el trabajo.
  6. Arrancamos el Geotag y seleccionamos las fotos a geoposicionar (File->Add images from directory) y el fichero .gpx con las coordenas recogidas por el GPS (File->Load tracks from file)
  7. Ahora desde la lista de fotos botón derecho->Find locations->for all images. Esto lanzará el matching entre el timestamp (hora:minuto) de la informacion guardada en la foto (exif) con la posición GPS registrada en es momento.
  8. Una vez todas las fotos han sido correlacionadas (si no, podemos hacerlo manualmente ya que nos posiciona la foto en un mapa).
  9. Ahora solo falta fijar estas coordenadas a la información del foto (exif). Para ello desde el menú File->Save new locations->All images (este proceso no modifica la foto original, crea una copia con el mismo nombre y los nuevos metadatos de GPS y la antigua la renombra con el sufijo _original)
  10. Una vez acaba este proceso cerramos el Geotag.
  11. Desde el terminal que teníamos abierto, borramos los ficheros originales:
      rm *_original
  12. Ejecutamos jhead para restaurar la fecha y hora original de la foto (puedes ver que el nuevo fichero tiene la fecha y hora de hoy y no de cuando fué tomada). Básicamente jhead lee la información exif de cuando se tomó la foto y la pone como fecha de creación del fichero:
      jhead -ft *.JPG
  13. Ahora ya toca clasificar las fotos.

Datos seguros en una unidad USB

LLevo unos días con la paranoia de tener una lugar físico (pendrive) y encriptado con mis datos mas personales. Así que he estado buscando y probando diferentes alternativas y workflow’s sencillos y operativos tanto en Windows como en Linux.

Almacenamiento de claves

Al final me quedo con la solucción KeePass (ojo no KeePassX que aún no tiene soporte para KeePass 2 (.kdbx)), que aunque tiene poco rodaje apuesto en que será a medio plazo una solución adoptada como “standard“. Tiene cliente Windows y Linux, es sencillo, no necesito mucho mas y es portable tanto para Windows como para Linux (funciona con mono 2.6 que habrá que instalar). El inconveniente por ahora es que la autoescritura con autodetección del sitio web en Linux no está muy elaborada (aunque si funciona la autoescritura). Solo espero que evolucione con el tiempo o que KeePassX agrege el soporte para KeePass 2.

Almacenamiento de datos encriptados

He mirado TrueCrypt (unidad completa encriptada y contenedor encriptado) y Free OTFE(windows)+dm-crypt(linux). Aquí es donde tengo mas dudas, así que seguiré probando un poco mas. Los escenarios son estos:

  • TrueCrypt
    • Unidad USB 4Gb: cliente portable de TrueCrypt para Windows + fichero encriptado
    • Cliente TrueCrypt instalado en Linux para leer el fichero contenedor del USB.
  • dm-crypt + Free OTFE
    • Unidad USB 4Gb: partición total del USB encriptada con dm-crypt (la creación de esta partición es MUY sencilla desde la utilizada de Gestión de Discos que viene por defecto en Ubuntu, ojo!!! hay que instalar el cryptsetup (sudo apt-get install cryptsetup).
    • La comodidad en Linux es muy buena, nada mas introducir el stick USB detecta un partición como encriptada y te solicita password, la monta como unidad y lo podemos utilizar como un USB mas. En Windows hay que tener un cliente Free OTFE que puede ser portable (en otro USB a parte) o instalado. Se indica la partición y listo.

Lo chungo de todo esto, es que tengo 

Problema con Google Chrome “No se pueden leer tus preferencias”

No se porque extraña razón, Google Chrome en mi Ubuntu 10.04 ha comenzado a dar un error un poco extraño nada mas arrancarlo. Me aparece un pop-up con el mensaje: “No se pueden leer tus preferencias.”. Buscando, buscando,…no he encontrado ninguna solución, así que he tenido que buscarme las castañas en un 5 minutos ya lo tenía solucionado :P

El tema es que por alguna razón hay un par de ficheros en la configuración personal de mi usuario que se ha guardado con permisos para el root (tanto el usuario como el grupo root son los únicos que tienen permisos de lectura/escritura, de ahí el mensaje de no poder leer las preferencias). Para solucionarlo hay que seguir estos sencillos pasos:

1. Acceder al directorio donde se guarda la configuración personal:

$ cd /home/<usuario>/.config/google-chrome

2. Cambiar propietario y grupo del fichero “Local State” (tiene que tener el root):

$ sudo chown <usuario>:<grupo_usuario> Local\ State

3. Cambiar al directorio Default:

$ cd /home/<usuario>/.config/google-chrome/Default

4. Hacer el mismo cambio pero en el fichero “Preferences” (también tiene que tener el root):

$ sudo chown <usuario>:<grupo_usuario> Preferences

Normalmente el <usuario> y <grupo_usuario> es el mismo.

Espero que os funcione.

Las tonterías las justas

Que es lo que pasa cuando vas a coger la moto por la mañana y el candado que va en el freno de disco no quiere abrir,…??. Pues muy fácil, LE METES DE OSTIAS hasta que revientas el bombín y salta el pasador.

Por lo menos me he ahorrado el cerrajero, total seguramente él le iba a meter con una radial,…

Material utilizado: un martillo y una escarpa pequeña (fina como un destornillador plano).

Curiosidad al cambiar el perfil Google

Ahora que google ha publicado su nuevo servicio Buzz (desde mi punto de vista muy interesante), he ido a revisar la información que aparece en mi perfil de de cuenta google,…y he visto una curiosidad.

Se nota que estoy enganchado a la temporada 6 de Lost (Perdidos)

Sant Antoni Abat

Sant Antoni Abat 2010. Aquí tenéis en link a la fotogalería para verlas en mas detalle.

Fonera 2.0n

Hace unos días me llegó la Fonera 2.0n. La idea es utilizarla como downloader 24×7 y dejar desconectado el PC que tenía como NAS. De esta forma reduzco ruido y consumo eléctrico, ya que únicamente hay dos dispositivos encendidos de bajo consumo, la fonera y el disco USB externo.

Uno de los problemas que me he encontrado era poder disponer de acceso a la fonera desde mi red interna (10.2.0.X), es decir, la fonera crea un red privada con una serie de IPs defierentes (por defecto: 192.168.10.x yo la he cambiado a 10.2.1.x) a la red principal a la que se engancha, en este caso mi red interna (por el puerto INTERNET). La fonera tiene en la sección de configuración del Firewall, la posibilidad de abrir el acceso desde la WAN (red interna) hacía la red privada de la fonera, pero el acceso SSH desde la red privada no funcionaba (desde un PC en la 10.2.0.x no podía acceder por SSH a la IP WAN de la fonera, en mi caso fijada como estática a 10.2.0.5). Únicamente podía conectarme vía SSH desde una toma de red de la fonera o desde la señal wifi privada. Por lo tanto para configurar el SSH desde la red interna lo he configurado con los siguentes pasos:

Conectate via SSH a la fonera por la red privada

Crea un fichero firewall.user en el path /etc con este contenido (hay un fichero similar que se llama firewall.fon que tiene la configuración de la fonera)

iptables -I input_wan -p tcp --dport 22 -m state --state NEW -j ACCEPT

Una vez tienes el fichero, ejecuta la siguiente linea de comandos para incluir la definicion en el fichero /etc/config/firewall

uci add firewall include; uci set firewall.@include[-1].path=/etc/firewall.user; uci commit firewall

La regla se activa incluso al realizar un boot de la fonera.

Ojo que antes de poder hacer esto tienes que poner un firmware de desarrollo, sino no puedes acceder vía SSH. Yo tengo el Fonera 20n Firmware (v2.3.0.0) de Elan.

Fuente en http://boards.fon.com/viewtopic.php?f=33&t=5733

Resumen vacacional

DSC_3170.JPGDSC_3020.JPGDSC_3015.JPGDSC_2936.JPGDSC_2777.JPGDSC_2404.JPGDSC_2308.JPGDSC_2274.JPGDSC_2092.JPGDSC_2063.JPGDSC_2016.JPGDSC_1993.JPGDSC_1969.JPGDSC_1951.JPGDSC_1921.JPGDSC_1919.JPGDSC_1881.JPGDSC_1833.JPGDSC_1802.JPGDSC_1719.JPGDSC_1695.JPGDSC_1603.JPGDSC_1353.JPGDSC_1318.JPGDSC_1315.JPGDSC_1226.JPGDSC_1189.JPGDSC_1183.JPGDSC_1156.JPGDSC_1146.JPGDSC_1145.JPGDSC_1130.JPGDSC_1054.JPGDSC_1004.JPGDSC_0962.JPGDSC_0945.JPGDSC_0888.JPGDSC_0819.JPGDSC_0786.JPGDSC_0780.JPGDSC_0752.JPG

Consulta las fotos en el set de zooomr que he preparado.

Mi primer video en youtube,…

Bueno realmente es una prueba con una serie de fotos que retoqué al estilo TiltShift hace tiempo y las he subido a animoto.com para hacer este pequeño vídeo de 30seg. Totalmente automático.

link en youtube

L’Aquarium de Barcelona

El otro día visité l’Aquarium de Barcelona, así que aquí os dejo unas fotillos.

Next Page »