Alpha's Manifesto

A black and white figure's thought-hive

Faceted searches with MongoDB and mongoose

Generating facet search results

mongo-faceted logo

Some people in Latin-America may remember an old Yupi ad where a woman was complaining on how difficult using the internet was. “It’s so difficult. So complicated! There must be something better.” (In Spanish, of course.) Cheesy as it sounds, Händel Messiah’s “Hallelujah” sonorously invaded the screen. Don’t believe me? See for yourself.

That’s how I felt when I was investigating what’s the best approach to achieve faceted searches in MongoDB. But I found something better. Let me show it to you.

(Read more →)

What-now: graficando dependencias

No se resuelve con un par de líneas

what-now-dependencies

Desde hace un par de semanas estoy trabajando en lograr que el proyecto de what-now grafique dependencias entre tareas: si  una tarea depende de otra, una línea debería conectarlos. Esta tarea básica fue muy simple, pero lo desafiante fue lograr que se graficaran de forma que las líneas se cruzaran entre ellas lo menos posible.

Aquí contaré sobre este logro y sobre lo que aprendí en el proceso.

(Read more →)

Nuevas clases en Udacity

Hace unos días me llegó un email sobre Udacity (del cual yo ya había hablado) avisando que hay nuevas clases disponibles allí.

Ahora el listado es:

  • CS101: Construyendo un motor de búsqueda
  • CS212: Diseño de programas de computadora
  • CS253: Ingeniería de aplicaciones web
  • CS262: Lenguajes de programación
  • CS373: Programando un automóvil robótico
  • CS387: Criptografía aplicada

En fin, si a alguno le interesa, voy a estar por ahí.

Soy un zorrinito en aprendizaje.

Udacity

Otra iniciativa más de enseñanza online

Me encontré como noticia en ALT 1040 que Sebastian Thrun dejó Stanford para comenzar su propia iniciativa de enseñanza online, llamada Udacity. En este preciso momento se están enseñando sólo dos cursos: Cómo construir un auto que se maneja solo y Cómo construir un motor de búsqueda. Ambos están dados por Thrun y el del motor de búsqueda está también asociado con David Evans.

Se vienen nuevos cursos durante este año, que también parecen ser muy interesantes, como Sistemas Operativos, Sistemas Distribuidos, Redes, Seguridad, Algoritmos y estructura de datos, Prácticas de Ingeniería de Software, Construir aplicaciones web, etc. Nombré los cursos que están nombrados en la página al día de hoy, pero quién sabe qué traerá el futuro. Parece que por hoy está teniendo mucho éxito.

Soy un zorrinito estudioso.

Link del día: Interrelacionando datos

Para quienes es sólo una palabra difícil, interpolación significa en el ámbito de funciones matemáticas, calcular valores aproximados de datos que no tenemos realmente. Esto se lleva al punto en donde para interpolar, podemos calcular una fórmula que rige los valores con los que estamos trabajando. Cuando estas funciones realmente predicen los datos con los que estamos trabajando, logramos obtener la “regla” por la que estos valores se guían.

Y esto es interesante cuando tenemos un conjunto de valores y luego tenemos que predecir su comportamiento en el futuro. Más que nada, en casos de la vida cotidiana. ¿A qué hora estará peor el tránsito? ¿Cuántas llamadas voy a recibir en cada momento del día?

Eureqa es un software que nos permite hacer este trabajo. Tomando un conjunto de datos y permitiéndonos cierto margen de error (muchos algoritmos de interpolación los permiten) nos permite identificar con cierta exactitud una fórmula que describa el comportamiento de nuestros datos. Se hace generando distintos bloques de operaciones aritméticas que den lugar a un resultado más o menos cercano a nuestro conjunto de datos. Personalmente no reconozco si este es un algoritmo de interpolación en particular, o sólo se trata de un algoritmo de búsqueda (en pocas palabras: prueba y error).

Muy relacionado, quiero dejar un link a Google Correlate, uno de los productos de Google que ahora se encuentran en sus laboratorios, que básicamente nos devuelve cuáles son las búsquedas más íntimamente relacionadas en cuanto a números con una búsqueda que a nosotros nos interese. Como extra, nos permite loggearnos y relacionar nuestro propio conjunto de datos con los que ellos tienen de sus búsqueda. O mejor aún, podemos dibujar nuestro propio gráfico y saber qué búsquedas tuvieron esa característica de interés (por ejemplo, una curva creciente y luego decreciente, algo que a la gente ya le aburrió).

Soy un zorrinito de datos relacionados.

Link del día: Google como fuente de información

Hay una serie de chistes que provienen de XKCD (perdón, pero no tengo un link directo a esos chistes en particular) en donde el chiste se basa sobre una gráfica X-Y de la cantidad de resultados que Google devuelve para una combinación de palabras. (Por ejemplo: <X> Girls <Y> Cups.)

Resulta que, para los que no lo sabían, los datos sobre estos chistes no son inventados, sino que muy generalmente provienen de datos reales de búsquedas sobre Google. ¿Pero de qué forma se hacen? No con la búsqueda normal, y el autor nos explica por qué en su entrada Trochee Chart.

Él cuenta cómo Google realmente aproxima los resultados (seguro que a muchos les ha ocurrido ver una disparidad entre los números) para luego refinarlos, y cómo distintas fuentes de búsqueda de Google mismo puede dar distintos resultados. Él nos introduce a la API de búsqueda de Google (que actualmente está obsoleta pero funcional) y una herramienta que todavía funciona para esos propósitos.

¿Ustedes creen que los resultados de una búsqueda en Google pueda ser un indicador de algo?

Soy un zorrinito googlero.