Patrones semi-aleatorios en Small Basic

Hace algunas semanas me encontré por casualidad Microsoft Small Basic, una implementación del paradigma de programación para niños que utiliza una tortuga en pantalla a la cual se le dan órdenes tales como moverse hacia adelante o rotar una cantidad específica de grados.

Logo, otra implementación de este paradigma, fue la forma en la cual yo entré en el mundo de la programación allá por 1986, hace ya 24 años. Debido a esto encontrar Small Basic me llenó de gratos recuerdos y desde entonces he dedicado algunos de mis ratos libres a jugar de nuevo con este paradigma tan interesante y motivador, que me llevó a encontrar mi vocación hace tanto tiempo.

Una de las principales razones por las cuales la Tortuga es una de las mejores formas de introducir a los niños al mundo de la programación es que los resultados del código escrito se pueden ver en pantalla de forma rápida e inmediata y las permutaciones que se pueden hacer al código dan para horas de entretenimiento infantil. Adicionalmente, no es necesario aprender muchos conceptos teóricos de programación antes de obtener resultados agradables.

En una de estas sesiones de juego con la tortuga, me dí a la tarea de crear un algoritmo que me permitiera simular cierto grado aleatoriedad en el resultado visual, pero sin sacrificar la belleza del mismo. Para esto introduje niveles de aleatoriedad controlados dentro del marco de ciertas reglas. El resultado sigue siendo aleatorio (y sorpresivo), y por lo tanto cada uno de los patrones generados tiene una muy baja probabilidad de repetirse nuevamente; sin embargo, a pesar del aparente caos reinante en los patrones, estos muestran orden como un todo, lo cual los hace en su mayoría atractivos al ojo humano.

Algunos de los resultados del algoritmo se presentan a continuación:

 

Si desea ver más resultados, puede descargar Small Basic y utilizar el algoritmo para generarlos:

seed = Math.GetRandomNumber(24)
goal = seed * 15
maxSteps = Math.GetRandomNumber(48)
steps = Math.GetRandomNumber(maxSteps) + 1
For j = 1 To steps
  angles[j] = Math.GetRandomNumber(goal)
EndFor

distance = Math.GetRandomNumber(100)

Turtle.Speed = 10
GraphicsWindow.PenColor = GraphicsWindow.GetRandomColor()

For i = 1 To 50
  For j = 1 To steps
    angle1 = angles[j]
    angle2 = goal – angle1 
    Turtle.Turn(angle1)
    Turtle.Move(distance)
    Turtle.Turn(angle2)
    Turtle.Move(distance)
  EndFor
EndFor

Turtle.Hide()

Anuncios

HDTV en el 30% de los hogares en EEUU

La televisión de alta definición (HDTV por sus siglas en Inglés) ya se encuentra presente en el 30% de los hogares en Estados Unidos de América, de acuerdo a un estudio realizado por la Asociación de Consumidores de Electrónicos (CEA).
 
Un dato interesante con respecto a las causas de este fenómeno es el hecho de que no es la televisión transmitida en alta definición la que está impulsando a los consumidores a adquirir estos equipos (de hecho solo el 44% de los que tienen aparatos que soportan alta definición están suscritos a un sistema de televisión que lo transmite y algunos incluso admiten no saber si lo reciben o no) es como estos mejoran la experiencia de los video juegos.
 
Adicionalmente, las recientes incorporaciones de productos que permiten la transmisión de contenido HD a entre los distintos dispositivos de la casa utilizando los formatos inhalámbricos (WiFi) y cable coaxial (que ya se encuentra en las instalaciones de la mayoría de los hogares debido a que es utilizado por las compañías de cable) utilizando el estándar HDMI (Interfaz para Multimedios de Alta Definición) abren una serie de puertas para la transmisión de contenido de alta definición entre la(s) PC(s) y los demás dispositivos del hogar.
 
Estos cambios favorecen la proliferación de aplicaciones para centros de multimedia en especial Windows Media Center, incluido en varias de las distribuciones de Windows Vista.

Películas en estreno simultáneo, en la TV???

Talvés no veamos esto en Costa Rica en mucho tiempo, pero al menos en Estados Unidos la posibilidad de ver una película el día de su estreno en su televisor en casa en lugar de ir a una sala de cine es muy real, ya que Comcast una de las más grandes cadenas de cable del mundo está en conversaciones con varios estudios cinematográficos para que esto ocurra en un futuro cercano.
 
Y aunque el precio en principio pareciera excesivo ($30 – $50) y las grandes cadenas de salas de cine de los Estados Unidos amenazan con no mostrar estas películas en sus salas, esto no pareciera estar desanimando al enorme proveedor de Cable de este país.
 
Podrán los Estadounidenses ver el estreno de "Transformers" o "Harry Potter" en la comodidad de sus "teatros en casa" el mismo día de su estreno y evitarse las filas y demás incomodidades de las salas de cine?? Pues esto aún está por verse, pero de ocurrir, sin duda daría un vuelco decisivo a la forma en la que las personas perciben las películas en estreno.