Comportamiento Indefinido

Marzo 6, 2008

Internet Explorer 8 Beta Liberado

Guardado en: Noticias, Software — Etiquetas:, — DavidGR @ 8:34 pm

La beta del nuevo navegador de Microsoft fue liberada, siendo esta la primera versión del browser que se adhiere completamente a los estandares designados por la W3C.

Aunque de todos modos, para mantener compatibilidad con los sitios parcheados para funcionar con las versiones anteriores de IE, incluira dos motores más de renderizado.

Internet Explorer 8 Beta

Supongo que a alguien le debe interesar… ¿no?… ¿¿NO??

Febrero 26, 2008

¡Matemáticas para todos!

Guardado en: Links Interesantes, Programación — Etiquetas:, , — DavidGR @ 10:28 pm

¿Te gusta la programación y la matemática?, (si respondiste que no salteate el post), entonces estás con suerte, porque hoy voy a presentarte a Project Euler.

Project Euler

Project Euler consiste en una gran cantidad de problemas matemáticos / de programación (hasta la fecha 183 problemas), incrementalmente complejos, llendo desde “Sumar todos los números reales menores a 1000 que son múltiplos de 3 o 5″ (problema nro. 1) hasta por ejemplo “Determinar el resto cuando (pn − 1)n + (pn + 1)n es dividido por  pn2“(problema nro. 123).

Por suerte para los menos diestros en las artes matemáticas (como yo), cada problema trae una pequeña explicación y un ejemplo simple que da una idea mucho más clara de lo que hay que hacer.

En la descripción del sitios, indican que una solución eficiente debería poder calcular el resultado correcto en menos de un minuto, independientemente del lenguaje en que se haga. Hablando de lenguaje, en la parte de estadísticas del sitio se puede ver como se distribuyen los lenguajes entre los participantes, y cuales son los que tuvieron más efectividad (es decir, mayor cantidad de respuestas correctas).

Si bien los últimos ejercicios son bastante complejos, los problemas están diseñados de forma que mientras vas progresando en la lista, vas aprendiendo cosas que van a ser útiles para resolver los próximos ejercicios.

Una vez que uno completa un ejercicio, e ingresa el resultado correcto, el sitio le permite ingresar a un foro de discusión específico de ese problema, donde se puede discutir la forma en que se resolvió, y ver de que forma plantearon el código otras personas.

Diciembre 14, 2007

Java4k

Guardado en: Juegos, Links Interesantes, Programación, Uncategorized — Etiquetas:, , , — DavidGR @ 1:19 am

Java4K es una competencia de desarrollo de videojuegos con una premisa muy simple, hacer el mejor juego posible que entre en 4 kilobytes.
A pesar del limitado tamaño, la mayoría de los juegos son bastantes complejos y entretenidos. Y es especialmente interesante ver los consejos que dan para mantener el tamaño del .jar lo más pequeño posible.

Diciembre 13, 2007

NaturalSort

Guardado en: Articulos, Programación — Etiquetas:, — DavidGR @ 11:05 pm

idea original: www.codinghorror.com
Si le mostramos la siguiente secuencia de archivos a una persona normal (léase no-programador):

  • abc1.txt
  • abc10.txt
  • abc100.txt
  • abc15.txt
  • abc2.txt
  • abc3.txt
  • abc45.txt
  • abc6.txt


Nos va a decir que esa secuencia se encuentra desordenada, mientras que si se la mostramos a un programador, probablemente nos diga que se encuentra en perfecto orden. Esta diferencia de razonamiento se debe a que el programador está acostumbrado a la forma en que los lenguajes ordenan una serie de cadenas.
Pero esta forma de ordenar (ASCIIbeticamente?) es generalmente confusa para el usuario que espera una forma mucho más natural:

  • abc1.txt
  • abc2.txt
  • abc3.txt
  • abc6.txt
  • abc10.txt
  • abc15.txt
  • abc45.txt
  • abc100.txt


El problema se origina en que los programadores llaman al ordenamiento del lenguaje y no le dedican mayor pensamiento, y si el programador quiere utilizar el ordenamiento más natural, se ve obligado a crear su propia implementación, debido a que prácticamente ningún lenguaje trae por defecto un ordenamiento “Natural” (NaturalSort de ahora en adelante).
Obviamente, si se desea una solución fácil, se puede simplemente preceder los números con una serie de ceros, quedando:

  • abc001.txt
  • abc002.txt
  • abc003.txt
  • abc006.txt
  • abc010.txt
  • abc015.txt
  • abc045.txt
  • abc100.txt


Que si bien funciona tiene la desventaja de que se debe saber por anticipado el rango que van a tener los archivos.

Si se busca en internet se pueden encontrar varias implementaciones del NaturalSort, pero lo divertido es tratar de implementarlo uno mismo.
Teniendo en cuenta que es una tarea bastante trivial, cualquier programador que se precie debería poder hacerla en 40 lineas o menos, lo dejo como desafío.

Blog de WordPress.com.