Ir al contenido principal

Ralsina.Me — El sitio web de Roberto Alsina

A Few Problems with A Song Of Ice and Fire

I read all of it, one book after the othe­r, and en­ded a mon­th ago. And sin­ce then, I ha­ve had a cou­ple of things about it bo­the­ring me. Le­t's see if they make so­me sen­se. Mind you, I am going to read vo­lu­mes six and se­ven, be­cau­se the­se books are addic­ti­ve as cra­ck in ebook-­for­m.

Bu­t, just like cra­ck, they ha­ve so­me wo­rri­so­me fea­tu­res.

There May Be No Plan

We are fi­ve books (and a cou­ple of chap­ter­s) in­to it. It's su­ppo­sed to be a se­ven book se­rie­s. And no­thing has ha­ppe­ne­d. You may say a lot has, like "this cha­rac­ter got ki­lle­d" and "that other cha­rac­ter got ki­lle­d" (and a hun­dred other cha­rac­ters got ki­lle­d), yeah.

But what has chan­ged in the fi­ve kin­g­do­ms?

It's star­ting to fee­l, the­se many pa­ges la­te­r, as if ... we­ll, who ca­res what ha­ppen­s? The fi­ve kin­g­do­ms wi­ll ha­ve a kin­g, or ano­the­r. The­re wi­ll be dra­gons (whi­ch wi­ll su­pport a king or ano­the­r), the­re is war and eve­r­yo­ne is ha­ving a cra­ppy ti­me, but he­y, all that ha­ppe­ned fi­ve ti­mes in the last hun­dred years or so al­read­y.

The hand of the king was ki­lle­d? We­ll, so we­re fi­ve of the last se­ven han­d­s.

A Tar­ga­r­yen may co­me, lay was­te to all the ar­mies of the realm and be cro­w­ne­d? We­ll, that al­ready ha­ppe­ned in the field of fi­re, and they had Tar­ga­r­yens for a whi­le, un­til they ran out of dra­gon­s.

The Iron­men may con­quer the nor­th? We­ll, they al­ready had con­que­red it a cou­ple cen­tu­ries ago, and then they lost it.

And so on: any of the pa­yo­ffs of the book se­ries has al­ready ha­ppe­ne­d, so­me of it mo­re than on­ce. So, wha­t's spe­cial about this ti­me aroun­d?

Does the au­thor ha­ve a plan, so­me­thing up his slee­ve tha­t's going to be a sho­ck? I do­n't kno­w, but the tri­cks are star­ting to get re­pe­ti­ti­ve.

What would ha­ppen if, after se­ven books, it turns out that the­re's no­thing spe­cia­l?

It's Too Earth-Like

The fi­ve kin­g­do­ms. Sco­tlan­d, En­glan­d, Wa­le­s, Ire­land and whi­ch one? Is­le of Man? Be­cau­se, co­me on. The­re's the­se peo­ple who are al­most exac­tly Mon­gol­s, ex­cept they ha­ve be­lls in their hai­r. The­re's the pseu­do­-­vikin­g, the pseu­do­-s­co­ts, the er­satz-i­ris­h, the fake-i­ta­lian­s, the I-­can'­t-­be­lie­ve-i­t's-­no­t-­chi­ne­se and so on.

The­re are kni­gh­ts, who­se ar­mour is exac­tly me­die­val ar­mou­r. The­re's the sea­fa­ring rai­der­s, on their longs­hip­s. Etce­te­ra, etce­te­ra, et-­freakin­g-­ce­te­ra. It's like whe­ne­ver the au­thor nee­ds to add an "exo­ti­c" cha­rac­te­r, he just th­ro­ws a dart at the ma­p, then ano­the­r, crea­tes a mix 80% one, 20% the othe­r, makes up so­me si­lly or­to­gra­phy ru­le for na­me­s, and tha­t's it.

The Magic is Lazy

So, dra­gon­s. And of cour­se, dra­gons crea­te ma­gic (you can see how lo­ts of ma­gi­cal giz­mos start wo­rking sin­ce the dra­gons ca­me).

So, le­t's make ma­gic eve­r­y­thin­g. Want to ha­ve le­gen­da­ry swor­d­s? Then they are ma­de of Va­l­y­rian stee­l. Tha­t's ma­gi­cal stee­l, whi­ch is why it see­ms to ne­ver need shar­pen­in­g. Tha­t's why you can ha­ve fa­mi­ly heir­loom swor­d­s. Be­cau­se they are ma­gi­cal.

And the­re's a ma­gi­cal door, ma­de of ma­gi­cal wood. The ma­gi­cal wood co­me­s, of cour­se, from ma­gi­cal trees.

And the­re's fake ma­gi­cal swor­d­s, ma­de by real eas­tern ma­gi­c. And the­re's ma­gi­cal assas­sin­s. And ma­gi­cal coin­s, ma­gi­cal cand­le­s. And so on, and so for­th. You can't paint your­self in­to cor­ners when you can count on the­re being a ma­gi­cal pain­tbrush that la­ys do­wn paint that does­n't stain the ma­gi­cal shoes of the pain­ters of the ma­gi­cal land of Pain­the­ria, who­se na­mes alwa­ys ha­ve a dou­ble la­r­yn­geal con­so­nant in the mi­dd­le.

More is More is More is Less

The first book ma­na­ges to te­ll rou­gh­ly a (ear­th) year of sto­r­y. The four­th and fi­fth, to­ge­ther be­cau­se they ha­ppen si­mul­ta­neous­l­y, co­ver perhaps th­ree mon­ths. And the­re are cha­rac­ters we ha­ve not seen sin­ce book th­ree, when they we­re just about to say so­me­thin­g. We are cu­rren­tly en­te­ring the third book wai­ting to know what the mai­den of Tar­th said at that mo­men­t.

The­re are books that are about one cha­rac­te­r, the­re are tho­se that are about a do­zen, the­re are tho­se that are about one hun­dre­d. No­ne of the la­tter is any good. The sto­ry keeps ex­pan­ding and slo­wing do­wn. At this ste­p, all of book se­ven is going to be about a sin­gle day in the li­fes of 50 firs­t-­per­son cha­rac­ter­s, and ea­ch one wi­ll des­cri­be their break­fas­t, be­fo­re we unex­pec­ted­ly get pro­mi­s­ed (ve­ry soon no­w) an eight book whi­ch wi­ll co­ver their pos­t-­break­fast craps and clear eve­ry ques­tion we may ha­ve had about the sub­jec­t.

Fan Service

You, who know what was in the pies ser­ved in the feast at Win­ter­fe­ll in vo­lu­me 5, you are being spoon­fed that kind of thing to make you feel smart and kno­w­le­dgea­ble. If you do­n't know what was in that pie... we­ll, YOU MISS­ED IT.

And how is it a good idea to wri­te th­ree pa­ges that (if you ha­ve a good me­mo­r­y) shout what was in that pie, when it's a sto­ry about a thir­d-­li­ne and four­th-­li­ne cha­rac­ters who­se na­mes noone wi­ll re­mem­be­r?

We­ll, it's a good idea be­cau­se it's fan ser­vi­ce, and fans lo­ve being ser­ve­d. But it's a cy­ni­ca­l, cal­cu­la­ting mo­ve. You are being ser­ved bad pie the­re, fan­s.

So, Are the Books Good?

They are awe­so­me. I can't wait for the six­th vo­lu­me. Geor­ge RR Mar­ti­n, he­re's my mo­ne­y. Te­ll me a sto­r­y.

Twitter Off

La se­ma­na pa­sa­da to­mé una de­ci­sión que no me es­pe­ra­ba. Ce­rré los co­men­ta­rios en es­te blog a me­nos que el post sea al­go téc­ni­co. Lo hi­ce por­que no aguan­ta­ba al­gu­nos de los co­men­ta­rio­s. Y di­je "se van los co­men­ta­rios por un me­s, y des­pués ve­mos si los ex­tra­ño­."

Bue­no, si­go sin ex­tra­ñar­lo­s, co­mo se da­rán cuen­ta por­que es­te mis­mo post no tie­ne co­men­ta­rio­s.

Hoy cie­rro los co­men­ta­rios de la vi­da. Sus­pen­dí mi cuen­ta de twi­tte­r. Si­guen salien­do al­gu­nas co­sas que se pos­tean au­to­má­ti­ca­men­te, pe­ro no lo leo, y no re­ci­bo no­ti­fi­ca­cio­nes de na­da.

Tam­bién es "twi­tter off por un me­s, des­pués ve­mos si lo ex­tra­ño­".

Oja­lá que no.

Truco Python: El funcionario (o la Dicción)

Su­pon­ga­mos que al­gu­na vez ex­pu­sis­te un dic­cio­na­rio co­mo par­te de la in­ter­fa­ce de un ob­je­to. Así que la gen­te vie­ne ha­cien­do co­sas co­mo es­ta:[foo]['bar']

Y ahora no querés que foo sea obligatorio, porque lo podés adivinar, o tiene un default razonable. De hecho, lo que querés exponer es esto:, foo='foo')

Acá hay una idea de co­mo ha­cer­lo sin rom­per el có­di­go vie­jo:

class fundict(dict):
    def __call__(self, bar, foo='foo'):
        return self[foo][bar]

Eso es un dic­cio­na­rio que es "ca­lla­ble", con lo que es in­dis­tin­gui­ble de una fun­ció­n. Una fun­ció­n-­dic­cio­na­rio. Un fun­cio­na­rio. Y por su­pues­to lo po­dés ha­cer al re­vés e im­ple­men­tar una fun­ción que sir­va co­mo dic­cio­na­rio. Un dic­cio­na­rio­-­fun­ció­n, una dic­ció­n. Pe­ro co­mo ese es más la­bu­ro, hi­ce es­te.

Soporte de Twitter Cards en Nikola

Es­te fea­tu­re de Niko­la la im­ple­men­tó @a­mo­k­le­be­n, y aho­ra, si se lo pe­dís a twi­tter tu si­tio pue­de te­ner­lo.

¿Qué son las Twi­tter Car­d­s? ¿Vis­te que pa­ra al­gu­nos si­tio­s, si cli­queás en un tweet que tie­ne un li­nk ves un pre­view chi­qui­to del con­te­ni­do? Bue­no, eso es una twi­tter car­d.

To­da­vía hay que me­jo­rar­lo un po­co pa­ra so­por­tar "me­dia" car­d­s, pe­ro fun­cio­na:


Sí, esa es una ima­gen del twi­tter card de es­te pos­t. ¿Muy me­ta, no?

No te­nés que ha­cer na­da, pe­ro es­cri­bir el me­ta­da­ta "des­crip­tio­n" ayu­da a ha­cer­la más pre­ci­sa (Y tam­bién fun­cio­na con Google+).

Nikola 5.4 is out!

I am th­ri­lled to an­noun­ce the re­lea­se of ver­sion 5.4 of Niko­la, a sta­tic si­te/­blog ge­ne­ra­tor

He­re's the (in­com­ple­te!) chan­ge­log for this re­lea­se 1:


  • Twi­­tter Card / Open Gra­­ph su­­ppo­r­­t.

  • Smart ma­­th su­­pport

  • New soun­­dcould di­­re­c­­ti­­ve

  • Cus­­tom "read mo­­­re" li­nks

  • Be­­­tter ti­­me dis­­pla­­y, ti­­me­­zo­­­ne su­­pport

  • Be­­­tter doit in­­te­­gra­­tion (Is­­sue #151)

  • Make the who­­­le lis­­tings fo­l­­der bro­­ws­a­­ble (Is­­sue #128)

  • New GZI­­P_­­FI­­LE­S/­G­­ZI­­P_EX­­TEN­­SIONS op­­tions to crea­­te gzi­­pped co­­­pies of so­­­me fi­­les (Is­­sue #348)

  • New op­­tio­­­nal pa­­th pa­­ra­­me­­ter to new_­­post co­­­m­­man­­d.

  • Wo­r­­dpress im­­po­r­­te­­r: op­­tion to not do­­wn­­load fi­­les

  • Wo­r­­dpress im­­po­r­­te­­r: op­­tion to squash new­­li­­nes

  • Se­­pa­­ra­ted BLO­­­G_URL in­­to SI­­TE_URL and BA­SE_URL

  • Added DI­S­A­­BLE­­D_­­PLU­­GINS op­­tion (Is­­sue #354)


  • Added mis­­sing </­­di­­v> in de­­fault the­­me te­m­­pla­­tes.

  • Wo­r­­dpress im­­po­r­­t: Des­­cri­p­­tion is le­­ft em­p­­ty if no des­­cri­p­­tion is foun­­d.

  • When run­­ning the build co­­­m­­mand it is now po­­s­­si­­ble to get he­l­­p.

  • Load jQue­­ry be­­­fo­­­re boots­­trap in JS bun­d­­le (Is­­sue #327)

  • Ge­­ne­­ra­­te va­­lid HT­­M­­L5 for re­­di­­re­c­­ts (Is­­sue #276)

  • Fixed "niko­­­la che­­ck"

  • Fixed in­­te­r­­na­­tio­­­na­­li­­zed RSS li­nks

  • Make co­­­m­­man­­ds that need to be run in a si­­te fail gra­­ce­­fu­­lly (Is­­sue #342)

  • Use lo­­­ca­­li­­zed li­nks on lx­­ml fixer

  • Re­­di­­re­c­­tions created du­­ring the im­­port from wo­r­­dpress are now wri­­tten to co­n­­f.­­py

  • Stop pa­r­­sing me­­ta­­da­­ta in post fi­­le on first blank li­­ne

  • Me­­ta­­da­­ta han­d­­ling clea­­nups by To­r­­dek

  • Fixed blo­­­ck­­quo­­­te font si­­ze in­­co­n­­sis­­ten­­cy

  • Wo­r­­dpress Im­­po­r­­t: Do not break in­­den­­ta­­tion (is­­sue #189)

  • Make things wo­­­rk even if SI­­TE_URL has a pa­­th (Fix #307)


The­re are al­so so­me ex­tra bi­ts of do­cu­men­ta­tio­n, and a awe­so­me be­ta the­me ca­lled "si­te-­re­vea­l" ba­sed on boots­trap and re­vea­l.­js!

Contents © 2000-2021 Roberto Alsina