Ir al contenido principal

Ralsina.Me — El sitio web de Roberto Alsina

klog == bartleblog

I won­der if bartle­bog is a good name. It sure is bet­ter than klog, and I like XIXth cen­tu­ry lit ref­er­ences.

I al­so sus­pect al­most noone will get it, and that it just can't be pro­nounced ;-)

I want­ed it to be bartle­by, but there is some tool us­ing that name in source­forge.

On oth­er is­sues: it's HOT here!.

Fighting Spam with Qmail (part II)

Part II of the se­ries. In this ar­ti­cle, we re­place qmail-smt­pd with qpsmt­pd, which is more flex­i­ble and spam-aware.

This cracks me up!

What satire has be­come! I was read­ing http://bar­ra­pun­to.­com and...

Some quotes:

"How­ev­er, these pro­pa­gan­dists aren't just tar­get­ing the young. Take for ex­am­ple Ap­ple Com­put­er­s, mak­ers of the pop­u­lar Mac­in­tosh line of com­put­er­s. The re­al op­er­at­ing sys­tem hid­ing un­der the new­est ver­sion of the Mac­in­tosh op­er­at­ing sys­tem (Ma­cOS X) is called... Dar­win! That's right, new Macs are based on Dar­win­is­m! While they cur­rent­ly don't ad­ver­tise this fact to con­sumer­s, it is well known among the com­put­er elite, who are most­ly Athe­ists and Pa­gan­s. Fur­ther­more, the Dar­win OS is re­leased un­der an "Open Source" li­cense, which is just an­oth­er name for Com­mu­nis­m."

I mean, this guy is a com­ic ge­nius!

Tired!

Two hard days of work, in­clud­ing mi­grat­ing a serv­er at mid­night. A serv­er that noone re­al­ly knew ex­act­ly what it did!

You see, lots of apps went through it. Weird busi­ness cus­tom pro­pri­etary apps for sev­er­al com­pa­nies.

So, what had to be done? make an­oth­er one of those evil con­trap­tions work. But ap­par­ent­ly noone found a way to pile an­oth­er hack on the hack­tow­er, and my job was to clean up the mess.

Well, they haven't called me yet, so ei­ther it worked, or the guy that I gave my num­ber was fired ;-)

Baby steps

Im­ple­ment­ing prop­er up­dat­ing is sim­ple in that send­ing stuff to PyDS is sim­ple. How­ev­er, hav­ing the GUI do the right thing is trick­y:

When you mod­i­fy an en­try and switch to an­oth­er, you have to of­fer a chance to save or dis­card.

If the us­er dis­card­s, you have to go back to the orig­i­nal data, so it must be saved some­where else. And re­mem­ber this:

>>> a={}
>>> b=a
>>> a['x']=1
>>> b['x']
1

Yeah, ob­vi­ous python se­man­tic­s. Lost an hour, though ;-)

What you want to do in­stead is:

b=copy.deepcopy(a)

If he saves, you have to up­load.

Al­so, when he mod­i­fies, you have to up­date the post list re­al­time, so you see a co­her­ent en­ti­ty. Not too hard, but it forces you to despaghet­tize code some­what.


Contents © 2000-2020 Roberto Alsina