Skip to main content

Ralsina.Me — Roberto Alsina's website

Mardel->Retiro->San Isidro->Ezeiza->Dallas->San Francisco

I am at a Canon­i­cal thing in San Ma­teo (right next to San Fran­cis­co). Ar­rived yes­ter­day, and have my last free day to­day, so I need to get some sight­see­ing done.

For starter­s, here's the trip gallery, not very full yet but go­ing to post the as I get them.

But the trip...

I was in Mar del Pla­ta vis­it­ing fam­i­ly on thurs­day, and had tick­ets for Buenos Aires at mid­night. At 9 PM... long dis­tance driv­ers strike. All bus­es sus­pend­ed. Ran to the train sta­tion to see if there was a chance of get­ting one: no tick­ets for a week. Se­ri­ous­ly con­sid­er­ing a 500KM taxi ride.

At 11P­M... strike sus­pend­ed! So, get the fam­i­ly, get the bags, get on the bus... no, sor­ry, you can't get on the bus be­cause you are an id­iot and you bought them for the wrong day. Re­al­ly, I bought tick­ets for thurs­day 00:05 not fri­day 00:05.

In a busy va­ca­tion town, at mid­night, with­out tick­et­s... ok, so we bought new tick­ets for 15 min­utes lat­er. If it's a prob­lem you can fix with a giv­en amount of oney, at least that puts a cer­tain val­ue on how uch of a mo­ron yours tru­ly is. I am about 120 dol­lars worth of mo­ron.

So, new tick­et­s. but they are not (of course) tick­ets to where I live, they are tick­ets for BUenos Aires Re­tiro bus sta­tion, which is about 25KM away from home.

So, at 00:30 we get on the bus, at 5:45 we are at re­tiro, at 6:00 we are on a car, at 6:45 we are at home. At 7:00 I am asleep. At 9:00 I am awake and ready for work!

I work in­ter­mit­tent­ly while pack­ing bags and such, at 5:30PM am on a car to Ezeiza (35km ride). When we are en­ter­ing the air­port, smoke starts com­ing out of the AC (did I men­tion that the AC was bro­ken and it's rough­ly 1.5 hours in bad traf­fic in 30C, un­der the sun, to get to the air­port? I should have!).

So, ap­par­ent­ly the car is on fire, but just a lit­tle bit, the smoke goes away, I get off the car, meet Lu­cio, we do our check­in, I have a cup of cof­fee, at 10:00 PM I am on the plane.

But we have to wait 30 min­utes in the run­way be­cause of traf­fic. Al­so, the cap­tain men­tions that this is the plane's last flight be­cause it's too old and is be­ing sold for scrap. So we are fly­ing in scrap. Al­so, half the screens don't work, it has a whoop­ing 6 movies you can watch, and ... they have spe­cif­ic start­ing times. Yes, you say "hey, I feel like atch­ing Tak­en 2!" and you are pre­sent­ed with a nice sign giv­ing you the op­tion of "want to start watch­ing it even though it start­ed 45 min­utes ago, or would you rather wtch it in 63 min­utes?".

This was my first trip in Amer­i­can Air­li­nes, is it al­ways like this?

We ar­rive in Dal­las, go through what it feels like twelve se­cu­ri­ty check­s, cus­toms check­s, den­tal check­s, and we get to the ac­tu­al USo­fA. Then Lu­cio says "OM­FG we don't have the same plane to SF!", but it's just that he's look­ing at the wrong board­ing pass.

So, to get to our plane, we get on the mono­rail, and go to the ex­act op­po­site end of the air­port, and we get in the plane with 5 min­utes to spare. Since I missed din­ner in the pre­vi­ous flight be­ing asleep, and break­fast was ab­so­lute­ly pa­thet­ic, and the new flight (a 3:50 hours one) in­cludes no meal­s, I get an ap­ple frit­ter from Dunkin Donut­s.

Oh, ap­ple frit­ter. I don't know if you re­al­ly are this de­li­cious, or I am just so hun­gry, but I loved you. You were so sweet and smooth, so sug­ary and ap­ple-y, your tex­ture so nice and your size so huge. I did love you, ap­ple frit­ter. Even if I sus­pect you gave me food poi­son­ing, it was all worth it. I'll al­ways re­mem­ber you.

So, we get on a 757 which is com­plete­ly filthy. I sus­pect the rea­son it does­n't fall apart is the willpow­er of the bazil­lion dust mites that make a liv­ing in the rat­ty seat­s. It has 14" CRT screens ev­ery few rows, and the view out the win­dow is amaz­ing, so I de­cide to look out in­stead.

We get to the air­port and we took the mono­rail, and got to pick our rental car. Giv­en the choice, of course I picked a Blue Nis­san Ver­sa! Good Car!

I know noone re­mem­ber­s, but He­roes 1st sea­son was kin­da cool.

We have to get to our Seg­way tour in 2.5 hours. So we skip the hotel, put the suit­cas­es in the trunk, and head to Fish­er­man's Whar­f. We park, have a meal, walk there, are ear­ly, get a cup of cof­fee, get on the seg­ways, and had a ton of fun.


That's Al­ca­traz in the back, that's two nerds hav­ing un in the fron­t.

Af­ter we were done, we saw the sea li­ons at Pier 39, got a cup of cof­fee and a cheese sand­wich, and got back on the car, with the idea of go­ing back. Of course we did­n't ac­tu­al­ly have GP­S, or a phone that worked in the US, but we had cached map­s! And a vague idea of where the ho­tel was! So we even­tu­al­ly got there, got in­to the room, got in­to the in­ter­net, called the fam­i­ly, and I passed out of ex­haus­tion at rough;y mid­night Ar­gen­tine time, two days af­ter I got on the bus in Mar del Pla­ta.

And then I woke up, and wrote this.

Adding Support for a Markup to Nikola

One of the goals for Niko­la, my stat­ic site/blog gen­er­a­tor is that it should be easy to ex­tend. For ex­am­ple, to­day I added sup­port for two markup­s: tex­tile and Cre­oleWi­ki.

Since Niko­la al­ready sup­port­ed HTM­L, re­Struc­tured­Text and Mark­down, adding a cou­ple more is not very dif­fi­cult. Here's how:

  1. Cre­ate a .plug­in file like this one:

Name = textile
Module = compile_textile

Author = Roberto Alsina
Version = 0.1
Website =
Description = Compile Textile into HTML

Then you need to cre­ate a python mod­ule called (in this case) com­pile_­tex­

That file is boil­er­plate plus two meth­od­s, com­pile_html and cre­ate_­post

The com­pile_html method takes two ar­gu­ments, one file from which it reads the markup, and one to write HTM­L. Ex­am­ple:

def compile_html(self, source, dest):
    if textile is None:
        raise Exception('To build this site, you need to install the "textile" package.')
    with, "w+", "utf8") as out_file:
        with, "r", "utf8") as in_file:
            data =
        output = textile(data, head_offset=1)

Make sure to use ut­f8 ev­ery­here.

The cre­ate_­post func­tion is used to cre­ate a new, emp­ty, post with some meta­da­ta in it. Ex­am­ple:

def create_post(self, path, onefile=False, title="", slug="", date="", tags=""):
    with, "wb+", "utf8") as fd:
        if onefile:
            fd.write('<notextile>  <!--\n')
            fd.write('.. title: %s\n' % title)
            fd.write('.. slug: %s\n' % slug)
            fd.write('.. date: %s\n' % date)
            fd.write('.. tags: %s\n' % tags)
            fd.write('.. link: \n')
            fd.write('.. description: \n')
        fd.write("\nWrite your post here.")

The meta­da­ta has to be in the form ".. field­name: field­val­ue" and usu­al­ly needs to be wrapped in a com­ment so that it's not shown in the out­put.

The one­file pa­ram­e­ter means you have to write that meta­da­ta in the post. If it's False, you don't.

In some rare cas­es (Cre­ole, I am look­ing at you) com­ments are not sup­port­ed and you should raise an ex­cep­tion if one­file is True.

And that's it, markup sup­port is fair­ly easy to add as long as there is a python im­ple­men­ta­tion of a func­tion to con­vert markup in­to htm­l.

Mama Don't Let Your Baby Grow Up To Be a Cowboy^W Lisper

For­get about it, cow­boys are fine. Let them grow up to be cow­boys, I don't care. But Lisper­s... nah. Ok, no, there is­n't any­thing wrong about Lisp, or about us­ing Lisp, or about peo­ple that use Lisp.

There is, how­ev­er, some­thing wrong about be­ing a Lisper, the kind of per­son that takes ad­van­tage of any mo­ment to look down on any code and say "o­h, this in Lisp would be clean­er/easier/short­er/­faster/triv­ial/what­ev­er".

And I must con­fess I have be­come that per­son, but with Python in­stead of Lisp. So I will be do­ing some non-python cod­ing projects this year. Be­cause close­ness means bad per­spec­tive, and be­cause I don't want to be that per­son.

So, C++ here I come (back­). I see you've changed. So have I. Let's give us a chance.

The Golden Ring

When I was in Paris, it hap­pened to me ten times or more. Walk­ing on a pub­lic place, a man or a wom­an would pop out of nowhere, gold­en ring in hand, and say "hey, mis­ter, is this yours?"

It's a well known scam. You get to keep the ring, and the ring bear­er will ask you for some com­pen­sa­tion. It will turn out the ring is worth­less, so you will be out a cou­ple of eu­ros or so.

It's in­ter­est­ing in some ways, though.

  • It re­lies on the vic­­tim be­ing dis­­hon­est, since the ring is not theirs.

  • The amount of mon­ey gained by the scam­mer is at the vic­­tim's dis­­cre­­tion.

  • If you don't give the scam­mer any­thing, he will, at most, yell at you for be­ing a cheap bas­­tard, and it's done in very pub­­lic places, so the dan­ger of vi­o­­lence is neg­li­gi­ble.

  • Since the vic­­tim is al­­so do­ing some­thing moral­­ly rep­re­hen­­sive, and ly­ing, the risk of the scam­mer be­ing charged with any­thing is neg­li­gi­ble.

It's al­most like some sort of weird sale:

"Here's some­thing of no val­ue that looks valu­able! Is it yours? (I know it is­n't)" "I will bet on it be­ing valu­able and pre­tend it's mine!" "So, how much is ap­peas­ing your re­morse about scam­ming me out of a prob­a­bly worth­less ring worth?" "I'd say 3 eu­ros, my good man!" "Deal!"

How can it be worth their while to do this? I would guess their suc­cess rate at per­haps 5% and they prob­a­bly don't make more than 5 eu­ros on a suc­cess­ful trans­ac­tion

All in al­l, it seems fair­ly harm­less, just an­noy­ing, and french peo­ple have ac­tu­al­ly chased me down the street to re­turn me some­thing I for­got in a bar. Then again, I al­so was peed on a foot by a bad­ly burn-d­is­fig­ured guy in a wheelchair, on Champs El­y­sees, so YM­MV.

Contents © 2000-2024 Roberto Alsina