Samuel M.H. 's technological blog

Friday, July 30, 2010

Infocard + SimpleSAMLphp + eduroam = PFC/TFC

¡Tengo mi proyecto de fin de carrera subido a internet y yo sin saberlo!

Explicación breve: he hecho un sistema para que al conectarte a la red universitaria inicies sesión automáticamente en los servicios de la misma a partir de las credenciales de conexión. Esto es que solo pones tu nombre de usuario y contraseña una vez y accedes a todo (uSSO o inicio de sesión único unificado). Los servicios federados con la universidad (revistas, tiendas, respositorios...) pueden requerir una identidad digital gestionada por la propia universidad (autenticación basada en terceras partes) de forma que se extiende la identidad digital del usuario.

Obviamente el campo de aplicación no es exclusivo de la universidad. Se puede aplicar a cualquier escenario donde se necesite federación de servicios como empresas (proveedores y socios), catastros y servicios del estado, banca, comercio electrónico, etc.

Para quien se quiera ahorrar el viaje hasta la biblioteca de la escuela politécnica de la UAH,
está disponible en: http://www.rediris.es/ptyoc/res/dl23.html.es

Thursday, March 4, 2010

¡Un pingüino en mi televisor!

El Lunes compré una televisión LG, modelo 42LF2510. Sí, 42 señoras pulgadas para que en mi casa se vean más películas y mi padre tenga un teletexto digno de un cine IMAX.

Leyendo un poco el manual y llegando a la última página he descubierto esto.



Sí señores, una televisión que funciona con Linux y de la que es posible obtener su código fuente. Qué cosas.

También tiene cosas curiosas como un puerto RS232 de control (¡en el manual vienen los comandos!) y un puerto USB que aunque solo es para el servicio técnico tiene bastante potencial

Saturday, February 20, 2010

Cálculo probabilístico de PI

El cálculo del número PI, la relación entre la longitud de una circunferencia y su diámetro, es algo que ha traído de cabeza a los matemáticos desde hace tiempo. Existen muchos métodos para calcularlo, pero si por algo me gusta éste es por ser aleatorio y extremadamente simple.

La gracia está en que yo tengo una diana (de área A(diana)), un círculo perfecto, puesta sobre una pared rectangular (de área A(pared)). Y tiro dardos ALEATORIAMENTE...

Es SEGURO que voy a dar en la diana o en la pared, en el área A(pared), es decir, la probabilidad es 1 P(pared)=1.
Lo que no es seguro es que dé en la diana, P(diana) es una incógnita.

¿Y dónde está aquí PI?
PI está en cómo se calcula P(diana), obviamente cuanto más grande sea la diana con respecto a la pared, más fácil será será que caiga un dardo en su interior. ¡¡Es un problema de áreas!!

A(diana) = radio^2*PI
A(pared) = lado1*lado2

Matemáticamente queda:
(radio^2*PI) / (lado1*lado2) = P(diana)

De esta ecuación no conocemos ni PI ni P(diana). Entra en juego el ordenador, vamos a simular P(diana) generando coordenadas (x,y) aleatoriamente y viendo si caen dentro de la diana. También se puede hacer a mano tirando dardos, pero el tiempo perdido no compensa el resultado a menos que tengas unos cuantos millones de esclavos y paciencia. La estadística nos dice que cuantas más tiradas hagamos más certero será el valor de P(diana).

P(diana) = número de aciertos en la diana / número de tiradas

Hay que tener en cuenta que los ordenadores manejan números discretos, se llevan mal con los números periódicos, raíz de dos, etc y... PI, así que cuanto más grande sea la diana, más perfecta será su curva y más preciso será el valor calculado. Simplificamos todo el problema reduciéndolo a una pared cuadrada y una diana inscrita en ella. diámetro de la diana = lado del cuadrado.


Despejamos PI
r es el radio de la diana
r*2 es el lado del cuadrado

PI = ( P(diana)*((r*2)^2) ) / (r^2)

PI = P(diana)*4


Tengo un guión en python que simula el proceso pero no sé si merece la pena subirlo.


PRUEBAS:







Y la última, sin simulación gráfica.
Total: 10000000
Aciertos: 7854144
Estimación de PI: 3.1416576


¡Saludos a todos!
Copyright © Samuel M.H. All rights reserved. Powered by Blogger.