Ir al contenido principal

Ralsina.Me — El sitio web de Roberto Alsina

The Steady State of Open Source

The Steady State The­o­ry says, in rough terms that the uni­verse has been and will be more or less as it cur­rent­ly is, be­cause there are par­al­lel pro­cess­es of cre­ation and de­struc­tion.

So, gal­ax­ies ex­haust but then there are new galax­ies, and the thing, as a whole, re­mains un­changed, in a way. Sure, it's not the same galaxy, and noth­ing that was in the old gal­axy re­main­s, but if you avoid specific­s, things are the same.

I feel the same thing hap­pens in the free soft­ware uni­verse. The two forces are re­ac­tion and fea­tures.

Re­ac­tion is the cre­ative force. Most, if not al­l, free soft­ware is re­ac­tive. It itch­es, I scratch, scratch­ing is re­ac­tive. There are many ex­am­ples:

  • There is no free desk­­top! Let's cre­ate KDE!

  • KDE is not the right kind of free, sort of! Let's cre­ate GNOME!

  • KDE and GNOME are too heavy, bloat­ed and what­ev­er! Let's cre­ate XFCE!

  • XFCE is not as lean and mean as be­­fore! Let's cre­ate LXDE!

  • LXDE is (we'll find some­thing) let's cre­ate WHAT­EV­ER-DE!

This even hap­pens with­in a pro­jec­t:

  • Hey, we cre­at­ed KDE!

  • KDE 1.x has no ob­­ject mod­­el and GNOME does, let's do KDE 2.0 on COR­BA!

  • Hey, that sucked, let's do KDE 2.0 on DCOP and KPart­s!

  • Well, that's old an crufty, let's do KDE 3.0 clean­er!

  • KDE 3.x looks old, let's throw all the UI away and do KDE 4!

And I am sure those fa­mil­iar with any soft­ware prod­uct that has lived long enough to go through ma­jor rewrites and up­heaval can do sim­i­lar list­s.

How­ev­er, some­times, the com­plains just don't go away.

  • Net­s­cape 4.x is slow and crufty! We rewrote it as Mozil­la!

  • Mozil­la (Sea­­Mon­key) is slow and crufty! We rewrote it as Fire­­fox!

  • Fire­­fox is slow and crufty! We wrote Chrome us­ing we­bkit!

And guess what peo­ple say about Chrome? It's slow.

So, the les­son there seems to me that writ­ing a lightweight, gen­er­al­ly use­ful, web brows­er is im­pos­si­ble. Why? Be­cause of fea­tures.

As projects age, they grow fea­tures. Like the strange ear and nose hair men start grow­ing in their 30s, fea­tures are a fact of the life­cy­cle. And with fea­tures come code, be­cause that's how you do fea­tures.

And code is a li­a­bil­i­ty, as (I hope) you all know. The more code you have, the more ex­pen­sive it is to add things, and to be swift about im­prov­ing your ap­pli­ca­tion. Most suc­cess­ful projects die, or grow senes­cen­t, hob­bled by the weight of their fea­tures.

So how does a project stay young? I can think of a few ways.

It may have a be­nign (or evil, for that mat­ter) dic­ta­tor, with the right amount of hos­til­i­ty to­wards fea­tures (Lin­ux). It may be so exquisite­ly mod­u­lar that fea­tures don't cou­ple with each oth­er (emac­s). It may rein­vent it­self ev­ery 5 years and throw ev­ery­thing away (KDE). It may have a very clear fo­cus on one fea­ture and a cul­ture around it (Bac­u­la).

And for each of those mech­a­nism­s, there are in­count­able ex­am­ples of projects with too an­noy­ing dic­ta­tors, projects ov­erengi­neered to ab­sur­di­ty, stalled rewrites that nev­er re­lease and ab­so­lute fo­cus on a fea­ture noone cared about.

Sor­ry, the uni­verse is a tough place.

Nikola: Nuevas Páginas Tag Index

En Niko­la mi ge­ne­ra­dor de si­tios y blogs es­tá­ti­co­s, las pá­gi­nas de tags so­lían ser una sim­ple lis­ta de tí­tu­los li­nkea­dos a los pos­ts del ta­g.

Aho­ra pue­den (op­cio­nal­men­te) ver­se co­mo el res­to del blo­g, pe­ro fil­tra­do. Ojo al pio­jo.

Ne­ce­si­ta re­to­ques (por ejem­plo, men­cio­nar el tag en el tí­tu­lo­), pe­ro la fun­cio­na­li­dad bá­si­ca (fil­tra­do, pa­gi­na­do, la­you­t, etc) es­tá he­cha.

Para habilitarlo en tu sitio, si usás master de git, poné TAG_PAGES_ARE_INDEXES = True en tu conf.py.

El fin de ralsina.me

Len­ta­men­te voy a ir vol­vien­do ob­so­le­ta esa UR­L,y la nue­va es //­ral­si­na.­me que ya fun­cio­na ha­ce va­rios me­ses.

In­vo­lu­cra bas­tan­te tra­ba­jo mo­vien­do los co­men­ta­rios y co­sas así, pe­ro no de­be­ría pro­du­cir nin­gún cam­bio, los vie­jos li­nks per­ma­ne­ce­rán vá­li­do­s, y to­dos los co­men­ta­rios de­be­rían se­guir co­nec­ta­dos al post co­rrec­to.

Fal­ta­ría con­tac­tar a los di­ver­sos pla­ne­tas que tie­nen el si­tio agre­ga­do, pe­ro co­mo el feed no cam­bia (gra­cias a fee­dbur­ne­r) no creo que se pier­da na­die en la tran­si­ció­n.

Qt Mac Tips

Los diá­lo­gos na­ti­vos no an­dan. Usan­do QFi­le­Dia­lo­g.­ge­tE­xis­tin­gDi­rec­to­ry no­ta­mos és­tos sín­to­ma­s:

  • Si no ha­­cés na­­da, el diá­­lo­­­go des­a­pa­­ra­­se por su cuen­­ta en más o me­­nos 20 se­­gun­­do­­s.

  • Des­­pués de usar­­lo una ve­­z, tal vez apa­­re­z­­ca y des­a­pa­­re­z­­ca in­­me­­dia­­ta­­men­­te. O no.

So­lu­ció­n: usar la op­ción Don­tU­seNa­ti­ve­Dia­log op­tio­n.

Los wi­dge­ts en un QTreeWi­dge­tI­te­ms no se mue­ven.

Cuan­do uno po­ne wi­dge­ts aden­tro de los íte­ms de un QTreeWi­dget (que no es muy co­mú­n, pe­ro a ve­ces es úti­l), los wi­dge­ts no se mue­ven jun­to con el íte­m.

Solución, usar la opción -gra­phi­css­ys­tem ras­ter. Hasta se la puede inyectar en argv si la plataforma es darwin.


Contents © 2000-2024 Roberto Alsina