lunes 28 de marzo de 2011

Dónde se esconden los bichos grandes?

Qué encontrarás en esta entrada?
  • Un enlace a las fotos de mi última excursión.
  • Un enlace al mapa de mi recorrido.
  • Anécdotas e incógnitas al respecto. 

Como ya he hecho muchas entradas iguales y creo que me estoy repitiendo :p, hoy seré más breve. Me he vuelto a ir de excursión fotográfica por el Parque de los Cerros (podéis ver información sobre el recorrido aquí y las fotos en Panoramio).

Una de las fotos de hoy que encontraréis en Panoramio

Lo más interesante del día, sin duda alguna, es haberme topado con un corzo (el cuál podéis ver en La Ventana Salvaje). Esto abre en mi la siguiente pregunta: dónde leches se meten algunos de los "inquilinos" más grandes del parque para que nadie los vea habitualmente, estando plagado de excursionistas?

Me parece difícil esconder tan bien a todo un corzo en relativo poco terreno durante tanto tiempo con tanta gente buscando :p. Otro caso curioso es el de los jabalíes. Todo el parque está plagado de rastros de ellos*:




Parecería que hay cientos por todas partes y sin embargo, a día de hoy, no he visto todavía a ninguno.

Conclusión: Estoy seguro de que alguien suelta a los bichos cuando no hay nadie más en el parque y luego los recoge a todos en un camión por la mañana :p! De vez en cuando se le escapa alguno y es entonces cuando pobres ilusos como nosotros nos emocionamos al fotografiarlos :p!

Seguiré alerta! Y ya sabéis el refrán: "bicho que se mueva... a La Ventana Salvaje" ;)!

--------------------------------------------------
* Me acabo de dar cuenta de que las diferencias entre las huellas de nuestros dos amigos, corzo y jabalí, son más sutiles de lo que pensaba. Creo que las fotos pertenecen a huellas de jabalí, pero no soy un experto y ahora me entran dudas.

miércoles 23 de marzo de 2011

Chateando con un pinzón

Qué encontrarás en esta entrada?
  • Análisis superficial sobre Finch (cliente de mensajería instantánea por consola para Linux).

Pinzón azul. Fuente: Wikipedia.

No, no me he equivocado con La Ventana Salvaje. Esta no va a ser una entrada sobre fotografía animal, ni la foto de arriba la he realizado yo. Si pongo un pinzón (de la familia de los fringillidae, "finch" en inglés) es porque ese precisamente (finch) es el nombre que tiene el hermano menor de pidgin, el cliente de mensajería instantánea cuyo logotipo es una paloma.

Finch es un cliente de mensajería instantánea basado en pidgin que funciona por consola de Linux. Esto, además de geek :p, lo hace extremadamente ligero sin escatimar en opciones.

En mi caso particular, tengo un portátil bastante viejo que empieza a resentirse de cualquier aplicación gráfica que consuma un mínimo de recursos, por lo que he encontrado en este peculiar cliente de mensajería instantánea la opción ideal para chatear cuando salgo fuera de casa.

Finch - Edición de cuentas

Permite trabajar con varias plataformas de mensajería instantánea por defecto (MSN, Yahoo, Gmail, etc.) y se le pueden añadir otras tantas mediante plugins de Pidgin (como Facebook o Skype).

Finch - Chat con los robots idiomáticos de Google Talk

Una vez configuradas las cuentas, los contactos aparecerán en la ventana de amigos. Seleccionándolos con el cursor y dando al "ENTER" empezaremos a chatear como con cualquier otro cliente de mensajería instantánea. 

Otras combinaciones de teclas a tener en cuenta (ojo con la capitalización) son:
  • Alt + a: Abrir el menú principal ("actions").
  • Alt + c: Cerrar ventana actual ("close").
  • Alt + n: Mover a la siguiente ventana ("next Window").
  • Alt + p: Mover a la ventana anterior ("previous Window").
  • Alt + r: Redimensionar ventana ("resize Window").
  • Alt + m: Mover ventana ("move Window").
  • F10: Para opciones referentes a la ventana activa.

Podríamos suponer que, al no tener entorno gráfico, tampoco tendrá muchas de las funciones básicas que tienen otros clientes de mensajería instantánea, sin embargo, investigando por sus menús nos llevamos una grata sorpresa.

Finch - Configuración de avisos personalizables para distintas acciones de tus contactos

Finch - Gestor de complementos, para añadir funcionalidades nuevas

En definitiva, a mi me parece una alternativa excelente para aquellos ordenadores que  ya van teniendo unos añitos.

Gracias a Altair·Mikoto por el soplo ;)!

miércoles 9 de marzo de 2011

Fotografía Nocturna

Qué encontrarás en esta entrada?
  • Fotografías nocturnas tomadas por mi.
  • Una breve explicación del método que he utilizado.

Como de costumbre, tengo que dar gracias a Xataka Foto por servirme una vez más de inspiración. En su página pude leer esta entrada sobre fotografía nocturna que me fascino. Os dejo el vídeo, que es inspirador.


Pues bien, hoy he salido a poner en práctica lo aprendido :p. La verdad es que mi técnica deja bastante que desear por el momento, pero es curioso lo que se puede hacer combinando las altas exposiciones de una cámara con una linterna :p!

El juego consiste en "pintar" con la luz de una linterna (o cualquier otra modesta fuente de luz) partes de una escena nocturna que queramos resaltar. Como la exposición es larga, podremos hacer varias pasadas con nuestro peculiar "pincel", eliminando sombras no deseadas. La idea es conseguir una iluminación perfecta uniendo lo que hemos iluminado durante todo el tiempo que hemos estado haciendo la foto, en vez de gastarnos una pasta en un sistema de iluminación que ofrezca las mismas condiciones de manera instantánea.

Estos son mis primeros intentos en exteriores de llevar a cabo esta técnica.


Y hasta aquí las fotos nocturnas por hoy :)!

Caminando hacia ninguna parte

Qué encontrarás en esta entrada?
  • Algoritmo para crear en MATLAB una caminata al azar en dimensión menor o igual a 3.
  • Gráficas de las trayectorias.
  • Un poco de teoría matemático-estadística de fondo. 

No es la primera vez que oigo en clase la expresión "caminata al azar" (o "random walk"). Y no es una referencia a lo perdido que estemos en el mundo y cómo damos bandazos de un lado a otro sin encontrar nuestro sitio :p, sino a un problema que consiste en que una partícula puede moverse en intervalos discretos de tiempos, dando un salto a cada intervalo, hacia ciertas direcciones ponderadas con sendas probabilidades.

Este, a priori, curioso ingenio teórico resulta estar en correspondencia con ciertas situaciones físicas reales, como es el caso del "movimiento browniano", del cual ya hablamos en esta página.

Gráfica realizada por camaz en 3D

El caso es que se presta bastante a ser programado, así que anoche, en un rato, a falta de algo mejor que hacer, hice un sencillo script en MATLAB que lo ilustra. El script básicamente dibuja la trayectoria de una partícula que se rija por la dinámica anteriormente descrita en tres dimensiones. Las probabilidades por defecto son iguales en todas las direcciones principales del espacio (x⁺, x⁻, y⁺, y⁻, z⁺ y z⁻), pero se pueden cambiar introduciéndolas en los argumentos del script, por lo que es trivial pasar a un caso bidimensional (P(z⁺)=P(z⁻)=0), o unidimensional (P(y⁺)=P(y⁻)=P(z⁺)=P(z⁻)=0).

Caminata al azar en 1D con 10 saltos (equiprobable izquierda/derecha)
Caminata al azar en 2D con 10.000 saltos (equiprobable izquierda/derecha/arriba/abajo). Es curioso lo que me recuerdan estas gráficas a mapas, yo en este dibujo veo África, Asia y Europa, incluyendo al Reino Unido xD!


Teoría matemática para 1D (equiprobable)

En una dimensión, en cada salto, tenemos la opción de ir hacia la izquierda o la derecha. La probabilidad de dar n⁺ saltos a la derecha viene dada entonces por la distribución binomial:


La posición de la partícula será la diferencia entre el número de saltos multiplicada por la escala. La posición más probable está relacionada con la media del número de saltos hacia uno de los dos lados:


Implementando esto en el programa, podemos comparar lo que pasa empíricamente con la estimación teórica, y los resultados no son del todo malos.


Cuando la probabilidad hacia ambos lados es idéntica, el valor esperado es cero (si se puede mover de igual manera hacia la izquierda que hacia la derecha, no hay forma de elegir ninguna de las dos direcciones). En esos casos se demuestra que el recorrido libre medio es del orden de la raíz cuadrada de n, lo cuál también está implementado en el script.

Código

El código que he utilizado es el sigueinte:

function []=camaz(N,p1,p2,p3,p4,p5,p6)
%
% (CAM)inata al (AZ)ar
%
% Fecha: 09/03/11
% Autor: Astaroth (O.R.G.)
% Web: http://astarothsworld.blogspot.com/
%
% Este script dibuja una caminata al azar en tres (o menos) dimensiones y realiza
%unas simples estimaciones estadísticas.
%
% Modo de uso:
% ------------
%
% camaz(N,p(x+),p(x-),p(y+),p(y-),p(z+),p(z-))
%
% Donde N es el número de saltos y p(x_i+-) es la probabilidad de que la partícula
%salte en la dirección positiva (o negativa) de la coordenada x_i.
%
% Tenga en cuenta que la suma de las probabilidades ha de ser 1:
%
% p(x+)+p(x-)+p(y+)+p(y-)+p(z+)+p(z-)=1
%
% La última probabilidad es innecesaria, puesto que se calcula usando la expresión
%anterior.
%
% Si no introduce ninguna probabilidad, se representará por defecto el caso 3D
%equiprobable.
%
if ( nargin == 1 )
    p1=1/6;
    p2=1/6;
    p3=1/6;
    p4=1/6;
    p5=1/6;
    p6=1/6;
end
if ( p1+p2+p3+p4+p5 > 1 )
    disp('Las probabilidades que ha introducido son incorrectas!')
    disp('No se puede continuar con el programa.')
else
    if ( p1+p2+p3+p4+p5+p6 > 1 )
      disp('Las probabilidades que ha introducido son incorrectas!')
      disp('Se puede continuar recalculando la probabilidad para el eje z negativo.')
      disp('Nueva probabilidad p(z⁻):')
      p6=1-(p1+p2+p3+p4+p5);
      disp(p6)
    end
    %Inicialización de valores:
    close all
    x1=0;
    y1=0;
    z1=0;
    plot3(x1,y1,z1,'g*')
    grid
    hold on
    for i = 1:N
      x0=x1;
      y0=y1;
      z0=z1;
      r=rand;
      if ( r < p1 )
        x1=x0+1;
      else if ( r < p1+p2 )
          x1=x0-1;
        else if ( r < p1+p2+p3 )
            y1=y0+1;
          else if ( r < p1+p2+p3+p4 )
              y1=y0-1;
            else if ( r < p1+p2+p3+p4+p5 )
                z1=z0+1;
              else
                z1=z0-1;
              end
            end
          end
        end
      end v=[x1,y1,z1]-[x0,y0,z0]; plot3([x0,x1],[y0,y1],[z0,z1])
    end plot3(x1,y1,z1,'r*') d=(x1^2+y1^2+z1^2)^(1/2); xlabel('Eje x') ylabel('Eje y') zlabel('Eje z') title('Caminata al azar') disp('Distancia recorrida (en valor absoluto):') disp(d) if ( p3+p4+p5+p6 == 0 )
      disp (' ') if ( p1 ~= p2 )
        disp('Estimación teórica de la posición basada en la distribución binomial para 1D:')
        xmed=N*(2*p1-1);
        disp(xmed)
      else
        disp('Estimación teórica de la distancia recorrida basada en la distribución binomial para 1D:')
        xeff=sqrt(N);
        disp(xeff)
      end
    end
    disp(' ') disp('Distancia media por salto:') disp(d/N)
end

Como siempre, podéis encontrar este programa en la sección de descargas de la página, o pinchar directamente aquí para descargarlo.