May 29

So, what’s it all about?

Here are the main things that Google is presenting here:

Google Gears

Gears is all about extending the browser by using more client side capabilities. It gives developers an API that let’s them do neat desktop-like things in a web app running on a gears-eneabled browser. Examples of this behaviour would be preserving state asynchronously in the client and showing desktop notifications. Gears is Google’s response to the browser jail problem. However, it is not directly an adobe air competitor since the offline side is not really their goal. They are trying to get gears into the HTML5 standard.

Google App Engine

Some while ago, Amazon decided to share its amazing infrastructure with AWS. Following those steps, Google now shares its computing cloud through the Google App Engine. In simple words, the app engine lets you host your application in Google’s servers, using their incredibly fast load balancing algorithms. They provide a simple API that is based on the concepts of easy-to-deploy and easy-to-scale (as in scaling to millions and millions of table row data). This API si made available via python, and frameworks like Django “kind of” work with it. The problem with most of the frameworks is that they need a relational database to work on, and while app engine does provide an interface that mimics this, it is severely limited in that respect. The reason for this is efficiency. Because you need to locate the data in a server, seek it in the disk, and finally bring it home, app engine has to have a schema-less datastore. This makes the Django admin, Django’s killer feature, totally useless. Perhaps a Django port is in order?

Google Maps

Maps has always been the part of Google that amazes me the most. This time, the Maps team announced a plugin for the browser and a javascript API that allows developers to use client-side map goodies. The plugin works so well that a demo was showed portraying a 3D map in first person perspective and model of a milk delivery car. The car is actually a kml file and it could be controlled just like a car in a videogame. The impressive part is that all this is done via javascript, the matrix transformations (rotations, translations), multipliers, etc. Quite frankly, I have underestimated javascript. A thing that’s also cool is their support for WFS and WMS and remote loading of maps.

Next post I will give you news of their AJAX API and Android.

No comments

May 28

Google I/O starts!

Category: Uncategorized

Yesterday, I arrived at San Francisco and stayed in probably the worst hotel in the downtown area. The room was fine and clean, but the whole building was falling apart and patched all over. It reminded me of the dark corners of the urban underworld that are portrayed in The Matrix. Also, it smelled. Real bad. Ok it reeked of moisture and rotten wood. Anyway, today I got up early and changed to the Pickwick Hotel (not too much of an improvement, but you’ve got to know that SFO isn’t a cheap place to stay).

8 am arrived and the guys at the Mascone Conference Center finally let us in. While in line, I came to the conclusion that I had lost my registration code. But no problem, there’s free wireless access! So I had to do the line two times, and in the second try I overheard two guys talking about IDEs. One of them was a Microsoft advocate and used Visual Studio. The other one used vim. Since it was too much of a temptation to resist, I decided to barge in the conversation with an “o yea! vim rocks!”. The registration process was painless and free t-shirts were given to everone.

Later on, breakfast. A fast bagel with jam and some fruit (green melon FTW!). Right now, a cherry juice and off to the inaugural conference.

I will be posting here as the whole thing develops so check in often!

1 comment

Apr 29

La última cena

Hace poco, en el semanal de El País que tanto le gusta a mi madre comprar, me encontré un curioso artículo en el que le preguntan a 50 chefs famosos lo que comerían el último día. A decir verdad, es una pregunta de sumo interés. Lo que come una persona y lo que desea comer es su esencia expresada en la forma más básica. Luego entonces, he decidido emular el formato de las entradas de dicho artículo, usándome a mi como el entrevistado:

¿Qué comería el último día de su vida? Empezaría con unas tapas de jamón pata negra con un buen vino tinto Cadus de cosecha sesentera, acompañado de un cuarto de kilo de caviar de beluga a cucharadas y seis piezas de nigiri al azar (las cuales forzosamente contendrían calamar, hueva de erizo y almeja gigante). Luego, vendría un doble de crema de elote sencilla y sopa de tortilla con mucho queso y picante. Seguiría un coctel de camarones a la cerveza estilo Monterey Bay con ostiones gigantes, un tequilero de mole de espinazo con médula de cordero y un buen bife argentino. Terminaría lo fuerte con un plato pequeño de sashimi de pez luna. ¿Y de postre? Una versión en natilla del postre de merengue la vie en rose. ¿La bebida? Antes que nada, tomaría un buen martini seco con Tanqueray y Cinzano acompañado de aceitunas sicilianas. Para acompañar la comida tomaría una mezcla de horchata y calpis endulzado con midori. Como digestivo, elegiría un Strega y para seguir la fiesta tomaría un Ío adornado con frutas del bosque. ¿Donde sería? En cualquier lugar de Yellowstone ¿Compañía? Naturalmente mi musa, mis amigos, mi familia. ¿Sonaría la música? Para empezar, Miles Davis y Hendrix tocarían una versión jazz de los conciertos de Brandenburgo. Seguiría una combinación de Yoko Kanno, Paul Simon, Mike Oldfield y Mason Williams. Para culminar la fiesta, un Carmina Burana completo dirigido por André Previn.

Invito a los lectores a hacer una similar reflexión de su último día. Es una buena medida de lo que sabemos del arte de vivir.

1 comment

Apr 17

Chatoid: a Gtalk application with gps tools

The Rho team (that’s me and two friends) finally finished their Android developer’s challenge app and submitted it last Saturday. The app is based on GTalk and lets you chat with your friends, locate them, send them location-enhanced messages, and share an annotation map session with them. Implementation of the whole thing took us three months of spare time and one week of intense hacking. Let’s hope we get to the second round =) Here are some screenshots:

Chatoid homeChatoid chat Chatoid place notes Chatoid geoconference Chatoid notifications

One member of the Rho team decided to make and try to submit his own project, which he named TouchMe. TouchMe is a novel way to write on a touch screen; much easier and usually faster than a virtual keyboard. Sadly, TouchMe could not be integrated with Chatoid on time and its creator decided that it was too unpolished to be submitted. Let’s hope that it does see the light sometime in the future.

Final stats (for Chatoid): 32 java classes, 6 packages, 53 files, 51 subversion commits (that’s a bit too low, no?).

3 comments

Apr 9

The Fall

Category: Uncategorized

It was the day after the third
My heart shook and rambled,
Sung the beatings of free bird.
We came from fate
In racing horses we departed
To the forbidden places of of late wanting
Too high we climbed and too fast
The loving hills of mortal call
With passion’s moment we did not hear
And until doom’s time they were not clear
the silent warnings of the fall.

No comments

Mar 24

From the beginning

Category: Uncategorized

Perhaps of a thing or two,

I think of lying with you

I shouldn’t have said

But there it is =)

You see it’s all clear,

You were meant to be here…

From the beginning.

In hoc Io vincis!

1 comment

Feb 28

Tales from an RNA world: a tempting hypothesis

Category: Bio

What is the origin of evolution? What ingredients, methods, and environment did life need to emerge as the only known process to generate complex behavior?

For some time now, there has been a minimal hypothesis stating that RNA all by its own could support Darwinian evolution. This notion has been given the name of the “RNA world” conjecture and it is broken down into two notions. The first notion of an RNA world states that an early form of life used RNA as the only genetically encoded component. The second notion goes farther ahead by stating that not only RNA was used as a sole genetically encoded component, but that it was the first one to be used. This means that RNA alone could have spontaneously produced life given certain conditions.

The second notion is of course much less supported than the first one. However, regardless of the notion, when we talk about an RNA world, we explore the concept of life generated by the interactions of RNA with its environment. We give the molecule, with its ribose backbone and its nucleotide language, the center stage in the drama of life.

But how do we prove this? Where to start? One way is to begin inferring how ancient life worked by looking at the present state of it all. In this way, ancient genomes must be inferred and ancient metabolic models deduced from that guess. The problem is that data suggests that the RNA world would have to occur well before the appearance of LUCA (our Last Universal Common Ancestor). However, inferring an RNA only model only by looking at a model of LUCA and the workings modern life is tricky and educated-guess-like at best. Another way to the RNA holy grail is by looking at how was Earth during the early stages of life: its composition, its environment, and its astronomical accidents. An RNA world model that fits Earth’s early state can be theorized and then experimentally proved. This is far more difficult that it sounds because forming a stable strand of RNA spontaneously in an unstable atmosphere and from a restricted set of elements that we think Earth had back then is not easy. There are many complications that rise during the polymerization of ribose in such an environment and many questions of how it can polymerize in the first place.

I certainly believe that there is evidence that points to the way of an RNA world, but there is no model yet of my knowing that can withstand all the critics. One thing that is fascinating about problems like this one, that is, problems that deal with the origin of life, is that, in a sense, we are Universe staring at Universe; a being trying to desperately remember its own moment of Creation. A being trying to remember when it became different to everything else.

No comments

Feb 22

Six out of twelve

Category: Uncategorized

Six out of twelve

Have we dwelled in the stars,

In the shining forever

Of a thousand years far.

Taken by time,

Tittered by faith,

We came to our union

In quick  change of fate.

We first came to liking,

In Love’s caverns we danced.

But sooner than later,

Even Love’s grace we surpassed.

We are now truly unknowing

Of which  place we reside.

But it is of no matter,

If I’m by your side.

Six out of twelve

have we channeled ourselves,

And the deeper we delve

In our meaning

In our warmth

The deeper the love, the higher the sadness, the greater the sea.

3 comments

Feb 19

¡La sesión vive!

Desde hace ya más de 10 años he jugado rol semanalmente. Me han acompañado en mi exploración de mundos de fantasía y oscuridad varios compañeros, los cuales tengo la gran fortuna de llamar amigos. Hace poco acabó una saga de historias importante ubicada en “Reinos Olvidados” de D&D 3.5. Durante poco más de cuatro años cada uno de nosotros creó más de 4 personajes en promedio, decenas de historias y batallas llenas de epicidad. Cabe resaltar que en una “quest” tuvimos que bajar las nueve capas del infierno, a la Dante, sólo que en vez de Virgilio teníamos a un paladín con Great Smitingx3 (go Valnefein!), en vez de la bella Beatrice teníamos a la hija de un personaje mío (que terminó siendo la reina de la oscuridad…figures) y en vez del cielo teníamos como meta llegar a Faerun. Al acabar tan épica saga, un compañero mío mencionó que el trabajo, la escuela, los posgrados, compromisos sociales, etc. iban a espaciar  nuestro calendario. En vez de jugar una vez a la semana, jugaríamos dos al mes o algo así. Todo mundo, incluyéndome, asentimos.

Acto siguiente, yo anuncio que estaré narrando una historia en D&D y por ende quisiera saber cuantos de ellos iban a jugarla de manera constante (una vez a la semana). Sólo uno, el narrador anterior, confirmó su presencia continua. Pasó sólo un día para que recibiera una llamada. El jugador del paladín antes mencionado tenía una idea excelente de un nuevo personaje y confirmó su asistencia a la nueva sesión. Escasos treinta minutos después, recibo un mensaje de otro jugador (el mismo que mencionó los problemas de seguir jugando tan seguido) preguntándome cual sería el nivel del personaje de la nueva sesión. El asunto fue demasiado divertido. Cuando dicen que la sesión está a punto de morir, siempre resulta igual: the session lives to see another saga. =)

3 comments

Feb 15

Eclipse PermGen Memory Leak

Since updating to eclipse 3.3 in my new Arch linux system I’ve been having trouble with the respected programming IDE. It crashes. Real bad. Frequently. Surfing the web a bit, I have become aware that I am not alone. Many more are reporting the same bug and apparently no one has come with a permanent solution. When eclipse crashes, it writes the following to the .metadata log:

!ENTRY org.eclipse.osgi 4 0 2008-02-15 09:37:14.597
!MESSAGE Shutdown error
!STACK 1
java.lang.OutOfMemoryError: PermGen space
!SESSION Fri Feb 15 09:37:15 CST 2008 ------------------------------------------
!ENTRY org.eclipse.equinox.launcher 4 0 2008-02-15 09:37:15.314
!MESSAGE Exception launching the Eclipse Platform:
!STACK
java.lang.OutOfMemoryError: PermGen space

A memory leak in PermGen space. What’s that? Well, PermGen is short for permanent generation heap space. It is the space where all things that live forever and are not to be garbage-collected reside. These include classes and interned Strings (a better explanation of these entities can be found here). So what’s the deal? Is eclipse loading up to many classes then? Maybe we need more space for our String constants? A temporary solution to these recurrent crashes is to increase our PermGen space (it has 64M size by default) by starting eclipse with the following argument:
-vmargs -Xmx512M -XX:PermSize=64M -XX:MaxPermSize=128M
That gives us 128 megs of Perm space, which ought to ok for almost anything. However, some people are reporting the same error even within a 512M max perm size limit (see the bug report link above). Is this a VM problem? An eclipse problem (which is known for its tendency to hogging memory)? WTF?
I just hope that it is soon fixed and that the temporary solution works (at least temporarily =P).

No comments

« Previous PageNext Page »