Skip to main content

Ralsina.Me — Roberto Alsina's website

Cloud Atlas

Fin­ished read­ing Cloud At­las, gave it 5 start­s. Here's a quick re­view:

I am not go­ing to ex­plain this book. It's enough, I think, to say I loved it, and that it's strange, and that it's a bit of a mis­tery.

Imag­in­ing a uni­verse in which all the con­tents of the book could be re­al at the same time in a way that would al­low all the pieces to be writ­ten as they are and yet, be, some­how, not the nov­el they are, but a found ar­ti­fac­t, is both de­press­ing and el­lu­sive.

At the end, I felt some­thing I can on­ly de­scribe as ret­ro­spec­tive hope, the feel­ing that things were sup­posed to end up bet­ter, but that even as ter­ri­bly as they did end, were it not by that ear­li­er hope, they would have been more grim.

The con­trol the au­thor has over his own style is im­pres­sive. This book feels writ­ten by half a dozen com­plete­ly dif­fer­ent writ­er­s.

Some quotes (which may on­ly make sense once you read the book):

"The sun was deaf­'n­in' so high up, yay, it roared an' time streamed from it."

"In the first set, each so­lo is in­ter­rupt­ed by its suc­ces­sor: in the sec­ond, each in­ter­rup­tion is re­con­tin­ued, in or­der. Rev­o­lu­tion­ary or gim­mick­y? Shan't know un­til it's fin­ished, and by then it'll be too late"

"What would­n't I give now for a nev­er-chang­ing map of the ev­er-­con­stant in­ef­fa­ble? To posess, as it were, an at­las of cloud­s."

Nikola 4 Released

I have just up­load­ed re­lease 4 of Niko­la my stat­ic blog/site gen­er­a­tor. Here are some of the changes in this ver­sion:

Features

  • Pre­vi­ous/Next post links

  • Teas­er sup­­port

  • Sup­­port posts with HTML "sources"

  • Site check­­ing script (niko­la_check)

  • Max­i­­mum im­age size in gal­­leries

  • Im­age de­scrip­­tions in gal­­leries

  • Im­age ex­­clu­­sion in gal­­leries

  • Spe­­cial "draft" tag

  • Pret­­ty code list­ings ("­­code gal­­leries")

  • Page de­scrip­­tions

  • Easy theme tun­ing via Bootswatch

  • Sup­­port for We­bAs­sets bun­­dles

  • "Fil­ter­s" for pow­er­­ful file post-pro­cess­ing

Bugfixes

  • Im­proved HTML out­­put

  • Sup­­port mul­ti­­ple time for­­mats in post meta­­da­­ta

  • Slugi­­fy tag names for URLs

  • Ar­chive path and file­­name con­­fig­urable

  • Gal­­leries sort­ed by date (sup­­ports EX­IF)

  • Ro­­tate gallery thum­b­­nails (EX­IF)

  • Tag feeds in tag pages

  • Col­or­box sup­­port in re­struc­­tured text fig­ures

  • Fix for con­­tent dis­­­play­ing too wide

  • Changel­og

As usu­al, you can dis­cuss bugs or make fea­ture re­quests at the niko­la-dis­cuss group and I love to know of sites us­ing Niko­la.

Hope you like it!

Trying out CloudFlare

It's not that I need a CDN in any way, since the traf­fic for this site is lit­tle and the way the site is built is light, but hey, it's free, easy to set­up and easy to leave when I feel like it. And I ex­pect to have sig­nif­i­cant­ly high­er traf­fic even­tu­al­ly af­ter I fin­ish some not-­so-se­cret project­s.

What's Cloud­Flare's ser­vice? They take over your DNS, then put a re­verse proxy be­tween your site and the clients. That re­verse proxy then us­es a CDN to serve you the pages from a con­ve­nient­ly lo­cat­ed server, and can re­write the HTM­L/JS/C­SS in some ways to make it faster/safer­/nicer.

It al­so sup­pos­ed­ly will pro­tect my site from dif­fer­ent kinds of at­tack (the on­ly one that could pos­si­bly af­fect me was DOS at­tack, but thanks any­way ;-)

Al­so, they of­fer a plat­form so apps can pro­vide ser­vices for me, like in­trud­er de­tec­tion, an­a­lyt­ic­s, and oth­er­s, which is a very cool idea.

So, I cre­at­ed an ac­count at cloud­flare.­com and con­fig­ured it so that //ralsi­na.me (which is this ex­act same site ex­cept for wrong com­ment counts) is served via cloud­flare, and ralsi­na.me is served di­rect­ly.

What I've seen so far:

  • Set­up is very sim­­ple

  • It work­s, even set­t­ing up ex­per­i­­men­­tal fea­­tures

  • It does seem very slight­­ly faster, but that's not a sur­prise since the tiny serv­er the site runs on has good conec­­tiv­i­­ty and am­­ple un­used re­­sources.

  • It does do a good job of au­­to­­mat­i­­cal­­ly op­ti­miz­ing some things in ways that are gen­er­al­­ly ac­­cep­t­ed as a good idea (in oth­­er word­s, my ping­­dom and YS­low num­bers moved up)

So: no pain, maybe some gain. I will prob­a­bly move all sites in­to it tonight.

Sometimes More is More

We all hear all the time that less is more. That sim­ple is bet­ter, that com­plex is worse, that op­tions are evil, that de­faults are what mat­ter.

And yes, that is about 90% true. Ex­cept when it is false, which I know be­cause I bought a coat a few weeks ago.

This is a rather nice coat, and if you saw it with­out much care you would miss one of its best fea­tures: it has two pock­ets on each side.

Let's think about why we want pock­ets in the sides of coat­s:

  1. To put our hands when it's cold. Since this is a cold weath­­er coat, that's im­­por­­tan­t. In mod­­er­ate cli­­mates like this one, gloves are more trou­ble than they are worth, and just stick­­ing hands in pock­­ets is enough.

  2. To put stuff that is not hands in them: keys, phones, mon­ey, can­dy, etc.

For the first use case, we want the pock­ets to be shal­low an­gled, so that the hand goes in nat­u­ral­ly, al­most hor­i­zon­tal­ly. Al­so, we want the ac­cess to be un­ob­struct­ed, so no zip­per­s, which al­so scratch the wrist­s.

For the sec­ond use case, we want things not to fall of­f. So we want ei­ther a ver­ti­cal pock­et (per­haps with a flap) or a zip­per. Zip­pers suck be­cause you can for­get to zip them, and things fall of­f. Ver­ti­cal pock­ets are aw­ful to put your hands in.

So, my jack­et has two pock­ets on each side, one with a zip­per, one with­out. One for hand­s, one for things. Since it's a thick coat you don't see it un­less you know what you are look­ing for, and it's triv­ial to use: ev­ery­thing goes in the zipped one, ex­cept my hand. I can even check the con­tents of the zipped pock­et with­out get­ting my hands out of their pock­et­s.

This is one case where more is more, com­plex is bet­ter, op­tions are awe­some, and de­faults don't mat­ter. Now, if you find a place in soft­ware where that's the case, that's an op­por­tu­ni­ty.

Nikola: Filters & Bundles

Two up­com­ing fea­tures for the next re­lease of Niko­la, my stat­ic site gen­er­a­tor, due some­time in Au­gust.

Filters

Fil­ters let you post­pro­cess your out­put. Think of it like in­sta­gram for web­sites, but use­ful. You can con­fig­ure per file ex­ten­sion a se­ries of python func­tions or shell com­mand­s, which will be ap­plied in place to the out­put file.

For ex­am­ple, sup­pose you want to ap­ply yui-­com­pres­sor to your CSS and JS files:

FILTERS = {
    ".css": [filters.yui_compressor],
    ".js": [filters.yui_compressor],
}

There, filters.yui_compressor is a simple wrapper around the command so that it applies in-place to the output files.

If you use strings there (untest­ed), they are tak­en as com­mand­s. The "%s" will be re­placed by the file­name, the usu­al crazy shell quot­ing rules ap­ply:

FILTERS = {
    ".jpg": ["jpegoptim '%s'"],
    ".png": ["pngoptim '%s'"],
}

Keep in mind that the fil­ters mod­i­fy the out­put of Niko­la, not the in­put, so your im­ages, CSS, and JS files will not be touched in any way. And of course chang­ing the fil­ters ap­plied to a file will force a re­build, so you can ex­per­i­ment freely.

Bundles

Hav­ing many sep­a­rate CSS or JS files is usu­al­ly a nono for per­for­mance rea­sons be­cause each one may in­volve a sep­a­rate HTTP trans­ac­tion. The so­lu­tion is to "bundle" those files in a sin­gle, larg­er file.

The rea­son not to do that is that usu­al­ly it means hav­ing a huge, un­com­fort­able thing to han­dle. So Niko­la tries to give you the best of both world­s, by let­ting you have sep­a­rate files, and bundling them (or not) on build.

There is a new option, USE_BUNDLES that defaults to False, and there are some changes in the theme templates so that it uses the bundled version when needed.

This was on­ly pos­si­ble thanks to We­bas­sets. How­ev­er, if you don't have We­bas­sets in­stalled, or you don't en­able USE_BUNDLES, this should cause no changes in the out­put.

Conclusion

These new fea­tures will al­low Niko­la users to im­prove their site's per­for­mance with min­i­mal tweak­ing, which is al­ways a good thing.


Contents © 2000-2023 Roberto Alsina