Skip to main content

Ralsina.Me — Roberto Alsina's website

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.

2012

So, this is 2013. Could have fooled me if you claimed it was 2012. I did a res­o­lu­tions post a year ago. How did it go?

  • I aimed to write a post a day. That was 366 post­s, and I failed mis­­er­ably. I did post 215 times, though, which is a heck of a lot.

  • I aimed at im­prov­ing at my work. I think I did do bet­ter for a while, and dipped a lit­­tle near year's end be­­cause of tired­­ness. I will give my­­self a pass there.

  • My health got bet­ter. I did lose some weight (although I re­­cov­­ered some of it) and my blood pres­­sure is look­ing good. My en­er­­gy lev­­els have im­proved.

  • My mar­riage is do­ing much bet­ter. Prob­a­bly hap­pi­est since 2008.

  • I did not get my teeth fixed be­­cause of in­­­sur­ance is­­sues. That should be ok af­ter march.

As bonus­es:

  • Took my mom to Paris.

  • Made some moves to achieve fi­­nan­­cial se­cu­ri­­ty in the far fu­­ture.

  • I gave the clos­ing con­fer­­ence at Py­­conAr

  • I re­­vived my free soft­­ware projects

So, not hor­ri­ble!

As for 2013:

  • Again, will try to get my mouth fixed.

  • Will try to lose much more weight.

  • I will aim for 200 post­s.

  • I will try to fi­­nal­­ly write a whole book.

  • I will have eye surgery to get rid of the glass­es.

We'll see how that goes.

Client-rendered, one-URL, dynamic, static site.

My va­ca­tions end to­mor­row. So, the time to spend hack­ing fun, per­son­al, free stuff is go­ing to be lim­it­ed be­cause of the time spent cod­ing fun, free stuff for mon­ey. So, I de­cid­ed to fin­ish with a bit of whim­sy.

I im­ple­ment­ed a com­plete­ly clien­t-ren­dered, one-URL, dy­nam­ic blog. Which is ac­tu­al­ly to­tal­ly stat­ic.

In fac­t, that blog is this blog, just with a twist. If you go to this URL you will see what's ba­si­cal­ly this very site, with com­ments and ev­ery­thing as usu­al. But if you click on "Pre­vi­ous Post" ... well, it stays in the same page, even though it dis­plays a dif­fer­ent post :-)

The mag­ic is the new, ex­per­i­men­tal, dy­nam­ic task_­mus­tache plug­in for my stat­ic site gen­er­a­tor, Niko­la. which does the fol­low­ing:

  1. Ren­ders post da­­ta as JSON files in­­stead of HTML

  2. Cre­ates a HTML file that is re­al­­ly a mus­­tache.js tem­­plate

  3. Cre­ates a HTML file with some bits of Javascript that loads the tem­­plate and the new­est post's da­­ta.

  4. If you ac­cess that mus­­tache.html with a frag­­men­t, it us­es that to fetch JSON da­­ta and re­write it­­self.

And that's it. It ac­tu­al­ly loads fast, and re­gen­er­ates very fast, since it does much less than the re­al site. There are a bunch of things that will dump you out of the "dy­nam­ic" site, like tag links, and what­ev­er, but it works sur­pris­ing­ly well (and if you want to theme it, it's just one tem­plate).

This is the first of a new kind of thing for Nikola, the "extra plugins". Basically, stuff that is too weird, specific or useless for the general distro, will go there, and to use those plugins, you have to create a plugins/ folder in your site and add it there manually.

En­joy!


Contents © 2000-2024 Roberto Alsina