Archive for June, 2009

Cambio clases de programación por clases de ajedrez

Wednesday, June 24th, 2009

Llega el veranito y nuestro profe de ajedrez causa baja durante el periodo estival.

Pero el menda como tiene mono de ajedrez lo único que puede ofrecer es intercambio de conocimientos.

Cambio clases de ajedrez por clases de programación, puedo enseñarte C/C++ o si estas interesado en otro lenguaje podemos hablar. C/C++ son mis lenguajes habituales pero también he programado o programo ocasionalmente en:

  • Perl (lo he usado ocasionalemnte para scripts y web
  • Python (lo uso actualmente para scripts y web)
  • Assembler (lo tengo olvidado pero llegé a alcanzar un buen nivel, al menos en modo real)
  • Java (estuve dando clases durante un añito y me da para dar una introducción, nada de cosas complejas).
  • PHP (he hecho un para de cosillas para mi propio uso, pero no domino)
  • Pascal (lo tengo en los pies, desde la uni no lo he vuelto a tocar)
  • Basic (He programado scripts)
  • Lisp (lo siento, no tengo ganas de desenterrar esto)
  • COBOL (idem que el anterior)

Esto no se si lo podemos considerar lenguaje de programación de proposito general pero si estas intersado:

  • Shell (Bash)
  • AWK

Bueno, si alguien se anima que me mande un mail. :-)

Libros de primavera II

Tuesday, June 16th, 2009

Hoy toca, Trafalgar, primera entrega de los 46 que conforman los Episodios nacionales de Benito Pérez Galdós.

Portada libro

Portada libro

Teniendo en cuenta como está el patio hoy en dia, hasta me da un poco de cosa comentar que lo he leido, pero ¡que coño!, además me ha gustado.

Narra la batalla de Trafalgar donde la armada Franco-Española sufrio una sonada derrota ante la armada de Nelson allá por 1805.

Alguien puede pensar que se trata de una rancia descripción de la batallita de marras, pero nada más lejos de la realidad, es una novela histórica muy amena y al mismo tiempo “educativa” (yo tengo la historia un poco olvidada tras años de Ingeniería).

En cierta forma me recuerda al estilo de Reverte, mejor dicho, Reverte tiene algo de Benito Pérez Galdós. No tengo la suficiente cualificación para hacer este tipo de afirmaciones pero esa es mi impresión. De hecho Reverte también ha escrito hace poco una novela acerca de Trafalgar, solo que, en mi opinión, con peor acierto que Galdós.

Galdós escribe de forma más sencilla, Reverte se pierde (mejor dicho,yo me pierdo) entre la jerga marinera y tecnicismos militares que no puedo digerir. Galdós es directo, claro y solo usa el vocabulario mínimo necesario para describir la situación.

En resumen, toda una sorpresa que no me esperaba cuando encontré el libro en casa de mi padre, andaba sin saber que leer, me fijé en el y dije “vamos a probar”. Ha merecido la pena, os lo recomiendo encarecidamente.

Por mi parte me he decidido a leer alguno más de su serie de Episodios Nacionales, a ver si mantienen el estilo de este.

Decididamente, ¡un libro estupendo!.

Por cierto, el libro se puede encontrar en formato electrónico aquí: http://www.gutenberg.org/etext/16961

Ojo, no quiero ningún tipo de quejas en cuanto a los derechos de autor y demás, en la página comenta que en Estados Unidos no está sujeto a Copyright y que cada uno consulte las leyes de su país

Cálculo de la componente transversal del viento

Wednesday, June 10th, 2009

De nuevo las mates hacen acto de presencia en el proyecto actual, en esta ocasión para calcular la componente transversal del viento en la carretera.

Los vehículos son muy sensibles al viento lateral. Los efectos de este se hacen notar al cruzar bajo un puente, salir de un túnel, transitar junto a edificios aislados, abandonar el cobijo de un bosque o efectuar adelantamientos a camiones voluminosos. Ademas, a medida que aumenta la velocidad del vehículo el efecto del viento lateral sobre él es más peligroso, de forma que aumenta el riesgo de vuelco.

Lo que trataremos de hacer será detectar cuando la componente transversal del viento respecto a la carretera es lo suficientemente fuerte como para recomendar a los vehículos que reduzcan la velocidad.

Este cálculo se reduce a una serie de sencillas operaciones trigonométricas que vamos a comentar ahora.

Como datos de partida contaremos con la velocidad del viento (en Km/h), la dirección de este (en grados respecto al norte, considerando el Norte como cero grados), y por último tenemos que la carretera también tendrá una orientación medida en grados norte.

Visto esto, y para simplificar cálculos vamos a considerar que la orientación de la carretera siempre la podremos acotar entre 0º y 180º dado que para valores superiores basta con restar 180 y tenemos un tramo de carretera equivalente.

En cuanto al viento, podemos hacer lo mismo, es decir, cuando sea mayor de 180 restar 180 y obtenemos un equivalente pero acotado entre 0 y 180º.

De esta forma solo nos queda calcular la componente transversal y para ello procederemos de la siguiente forma:

a) Calcular el tramo de carretera entre 0 y 180

b) Calcular el viento entre 0 y 180

c) Calcular el angulo del viento con respecto a la carretera

c) Aplicar trigonometría para obtener la componente transversal

El siguiente diagrama aclara un poco mejor el asunto:

Cálculo de la componente transversal

Cálculo de la componente transversal

El alisado exponencial

Tuesday, June 9th, 2009

Ultimamente el curro me esta obligando a desempolvar apuntes de varias asignaturas, primero fueron las bases de datos ahora tocan las mates, en este caso el alisado o suavizado exponencial.

La idea

Normalmente al recoger una serie de datos a lo largo del tiempo estos forman una gráfica más o menos cambiante. Generalmente tendremos una serie de cumbres y valles en la gráfica.

Suele ser interesante calcular la tendencia de esta gráfica, es decir, por donde van los tiros, si tiende a subir, bajar o mantenerse. Esto es interesante para saber como va a evolucionar un fenómeno.

El caso es que queremos calcular la tendencia despreciando los otros factores (si es que se dan) como pueden ser la variación estacional,la variación cíclica y la variación accidental. En nuestro campo de interes (informática, electrónica) esto puede ser simplemente ruido que queremos descartar para ver claro la evolución de una magnitud.

El alisado exponencial es uno de los medios para calcular esa tendencia que buscamos.

La implementación

El alisado exponencial utiliza ponderaciones y combinación lineal de todas las observaciones de la serie pero con la particularidad de que la ponderación decrece conforme nos alejamos del origen. Esto hace que este método esté especialmente diseñado para la predicción.

Esto tiene aplicación, por ejemplo, en tráfico. Supongamos que debemos averiguar si un carril de carretera va a seguir ocupado o no. Podemos recoger datos en un intervalo de tiempo dado y obtener la tendencia con este método.

La implementación está tirada:
Y t = ay t + (1 - a)Y t-1

Donde:
a = Constante de suavizado (0 < a < 1)

Y = Valor alisado

y = valor sin alisar

Eso si, hay que empezar con algún valor inicial para el alisado, diremos que Y 0 = y 0. Y a partir de aquí podremos hacer Y 1 = ay 1 + (1-a)Y 0.

Hace falta tener cuidado al seleccionar el valor de “a”. Si elegimos un valor próximo a 1 la serie original y suavizada son casi las mismas, por el contrario si elegimos un valor próximo a cero se eliminan todos las crestas en la serie pero puede resultar excesivo al perder demasiada información.

El método del alisado exponencial es útil también para realizar predicciones. Así, si la última observación fue la de la etapa n, el pronóstico para n+1 será el valor Y t