Twitter seppuku

My social media seppuku continues today with the full deletion of my (never actually used other than for a couple of tests) instagram account. One person followed, one person following me, seven photos: all gone in a flash, and the account is completely deleted.

I found it quite petty that the Instagram account management UX only gives the option to temporarily disable one’s account: unless i missed something obvious, the only way to reach the account deletion page is to search for help on how to delete an account in the Instagram’s help section, and follow a link to the account deletion request page from there.

In any case - account gone, and good riddance!

Ello seppuku

A wholly unused social media account deleted just now. i had signed up for Ello in September 2014 (or at least i had recorded my account credentials back then in my password manager), i think after seeing it mentioned by a few designer friends: i mainly wanted to see what was considered so special by these friends who seemed so enthusiastic about it. i couldn’t find anything exciting at all - ok, i get that part of the initial excitement was about the lack of advertising, but since i use ad blockers everywhere, i basically never see any ads anyways, so who cares.

I never used this platform at all, so this was a very easy call: account gone in a flash.

Twitter seppuku

So after reading about the US citizen forced to let CBP snoop into his employer’s phone the other day, I had decided to start working towards being able to just leave any computing device at home while travelling.

Then today I read this article about the same thing: it all makes sense, although I am skeptical about this:

They may choose to detain you anyway, and force you to give them passwords to various accounts manually. But there’s no easy way for them to know which services you use and which services you don’t use, or whether you have multiple accounts.

In theory - yes. It’s what Moxie Marlinspike refers to when he says:

I actually think that law enforcement should be difficult, […] And I think it should actually be possible to break the law.

Except that in the case of pervasive invasion of digital privacy at borders, travelling without devices can be pointless when one’s accounts can easily be inferred from the social graphs of the many travellers whose devices’ data is actually syphoned at border controls.

I had been thinking for some time about deleting the few social media accounts I still kept active for convenience and inertia, even though I make close to no use of them and they contain pretty much useless data: but the way things are going is the definitive motivation to just shut down all this stuff for good.

It’s a civic responsibility now: my data is useless to law enforcement, but any data stored about my friends, family and other contacts is indeed toxic in this context. Whether any of my contacts wish to keep the existence of any of their accounts private is a decision that needs to be entirely up to them, and I can’t be complicit to any of the egregious state surveillance projects that are growing more pervasive every day.

So today I started by hollowing out my Twitter account: deleting all the (few) tweets first, then all the links to people I used to follow (mainly serving as bookmarks - not that I have time to actually read what smart people write on Twitter anyways), then everything else.

I need to keep the account active for the moment as I have been using it for some apps and for authentication purposes on some external sites (I know, this is always a bad idea, but convenience, etc. etc.) - but the whole thing will be gone soon as part of my ongoing privacy cleanup project.

Good UX: Digital Ocean 2FA setup

Created an account on Digital Ocean for the first time today to spin up a VM for some tests.

As part of the initial setup, I enabled 2 Factor Authentication for the Digital Ocean account, and this was the best 2FA setup UX i have seen so far.

The whole workflow is visible at once, making progressing through the setup steps immediate to understand:

  • first you enter a mobile number so that 2FA can be reset if the TOTP key is lost
  • then you enter the code received via SMS
  • the 2FA key is now revealed as a QR code
  • once the QR code has been scanned, a first TOTP token needs to be generated and entered, confirming that 2FA is correctly setup
  • visual feedback is finally given about the successful completion of the 2FA setup workflow, securing the Digital Ocean account

My only remark here would be that the TOTP key is not displayed as plain text but only when hovering the mouse over the QR code. As i only use a CLI tool to generate TOTP tokens, on a headless system, QR codes are not useful for my workflow; adding a text version of the TOTP key doesn’t seem to be adding much cognitive burden to the workflow, but as long as the plaintext can be reasonably easily be disclosed, the process works for me.

IndieWebCamp Brighton 2016 - WordPress to Hugo

Finally managed to get ready to drop WordPress entirely for my personal website today during the IndieWebCamp Brighton 2016 hack day.

Not really much content to port over, and much less interesting stuff (mostly some family recipes and random tech notes-to-self), but even more so, keeping this on WordPress with all the associated maintenance and security nightmares didn’t make sense.

Moreover, by going static i can now just use my personal git infrastructure to write and publish on the blog, since git is basically what i use all the time for anything personal and work-related.

I should actually say going static again: in fact, i had migrated this website from WordPress to Jekyll a while ago, but i switched back shortly after as i still found it useful to have a web interface available for writing from anywhere (there are very few public posts on this blog, but i have more as private notes that never get published and that i sometime eventually move to a git repo as part of some non-web workflow).

Anyways. All it took was for me to install the wordpress-to-hugo-exporter WordPress plugin on my WordPress instance, hit the Tools -> Export to Hugo menu and in under a second i had a ~7MB zip file with all the pages, posts and media library items ready to be added to the Hugo setup i had prepared a while ago.

I run into a tiny issue with two posts having frontmatter metadata that Hugo could not parse, but once i stripped that out (it was random junk - not sure where it came from), Hugo compiled the whole site in 148 milliseconds.

148 milliseconds - much less than time to first byte on my WordPress legacy site. Repeat this with me :)

I added a short note about weaning oneself off migrating from WordPress to Hugo on the IndieWeb wiki.

Next step: make Hugo generate a Service Worker JavaScript file to enable the website to work offline: the list of resources to be cached by the service Worked would be generated on the fly by Hugo…


home icon by Calvin Goodman.

Ubuntu 15.10 and broken Gnome session

No Gnome session coming up at all after a recent upgrade to Ubuntu 15.10 on workstation with AMD 6850HD (using radeon drivers): GDM3 would not take over any VT at all, the text output from systemd startup would just freeze, no VT switching possible, even though the system itself was alive and well – reacheable via SSH.

Solved by switching to lightdm as default display manager:

dpkg-reconfigure lightdm

and choosing lightdm over GDM3 as default.

Go figure.

Piadina stamina

This is a non-vegan recipe; the name is a nod to my old and equally fiery  Stamina Cream recipe (which i will publish one day, promise).


  • small wraps
  • whole tahini paste
  • fresh feta cheese (soft ricotta would work great too)
  • scotch bonnet chillies (for a mild version, use Palermo red peppers or whatever)
  • balsamic vinegar

Just cut each wrap in half, spread a little bit of tahini over each, crumble some feta cheese on top and a few chopped bits of chillies (use gloves to cut, etc.), garnish with a few drops of balsamic vinegar (less than half a teaspoon is enough), roll up and enjoy.

For a mild version, some highly aromatic red pepper such as some Palermo variety, raw of course, slicing them very finely (2mm max) in order not to load the piadina with too much moisture.

Bazaar to Git – the Hard Way

While working on the website for a new WordPress product, i was doing some cleanup of obsolete websites, making sure we have full commit history of past changes before taking obsolete content offline.

I noticed that the longest-running website (the first iteration was in 1999 or so) had its history split across three slightly-differently-named git repositories stored on our master git server – although on closer inspection, two of them were actually empty (no commits, no nothing), while the third one was actually a repository with content that i had been working on around three years as a redesign experiment which never went past mockup stage.

At least one of the two empty repositories turned out to be a failed attempt to migrate to git an older Bazaar repository, at the time of our mass-migration to git via Tailor a few years back.

I remember that a handful of Bazaar repositories (some of which had in turn been migrated over from the glorious Arch SCM) could not be migrated to git, nor through our mass-migration procedure nor with ad-hoc love, but at that time we checked that nothing really important had been left behind in

Bazaar, and just moved on with life.

It turns out that although no important history was left behind, yet we had left behind this whole website, which since then has had very few changes, recorded in a git repo whose history starts where the older Bazaar repo was at the time of the failed migration.

As i was going to archive all this stuff, i wanted to bring all the past history into a single git repo, with the more recent redesign work stored as a feature branch – and here is where trouble started: bzr fast-export was failing with an articulated Python stack trace, and git clone bzr—git://old/repo/ was failing likewise. When checking the Bazaar repo with bzr check -v, it turned out that a ghost revision within the old repo, ancestor of revision 1 (?!), was the culprit. As i haven’t been using Bazaar in ages, i didn’t know what to

do about this, although a quick search around the error messages i was getting seemed to point only to outstanding (some since 2009…) bug reports about ghost revisions blocking Bazaar exports.

Eventually though, since the “damaged” Bazaar repo only stored nine revisions, I thought it would be easier to just check out each of them sequentially, committing into a git repository the status of the working directory at each (Bazaar) checkout. Still, I wanted to preserve (just for archival purposes, again – none of this had any real practical relevance) the original timestamps, rather than making all the commits appear to have happened tonight.

git’s brilliance shines through in every detail: it took just a quick stackoverflow search to learn just how to backdate git commits… and a few minutes later, my git repo was populated with the full past history:

mkdir /path/to/git/repo
cd /path/to/bzr/repo
bzr revert -r1
rsync -ravz --delete /path/to/bazaar/repo/ /path/to/git/repo
cd /path/to/git/repo
git add .
GIT_AUTHOR_DATE="<original commit timestamp>" GIT_COMMITTER_DATE="<original commit timestamp>" git commit -m <old bzr commit message>

…And so on for each revision. The new repository is now pushed to our master

git server and the old Bazaar repo is nuked – good riddance!

updating Debian PEAR packages

After preparing my first Debian packages this summer (some dependencies for Composer, which in turn is a dependency for wp-cli, which is the software i’m really after), i have been postponing updating them with new (minor so far) upstream releases mainly as i kinda dreaded having to work with PEAR’s tools to figure out how to best import new upstream releases.

It turns out it’s extremely simple and quick – and i’m writing it up here mainly as a reminder to myself. I am updating these packages now to sync them with current upstream releases, but also to remove the Build-Depends on the pear-symfony2-channel which never made it to the official Debian repositories and is being superseded by pear-channels like all other legacy Debian packages for individual PEAR channels.

What i am doing, basically, is:

git checkout upstream-sid
pear download <Package>

(Package-x.y.N.tgz is downloaded)

git mv <Package-x.y.M> <Package-x.y.N>
tar xvzf Package-x.y.N

(this overwrites files as needed; now we check what the new code is like, if there is anything needing attention regarding license, etc.)

git diff
git add <new files if ok and changed files if ok>

git commit -m 'Import of x.y.N'
git tag -u <signing_key> -s upstream/x.y.N

If using a pristine-tar branch (as for php-symfony-console), the process is slightly different (and possibly, this should be the way to do things in any case, but i have only figured this out after having tagged all the new releases, so i will check this on the next update): once the Package-x.y.N.tgz file is downloaded, we can import its delta against the previous version via git-import-orig:

mv Package-x.y.N.tgz ..
git-import-orig -u x.y.N ../Package-x.y.N.tgz

(again, i need to check this on next update, but i believe that all it takes is actually a single git-import-orig --uscan, which should take care of pretty much everything up to now).

Now the Debian fun starts:

git checkout debian-sid
git merge upstream-sid

(the upstream code is merged)

gbp dch

(a new changelog entry is generated; this needs to be checked and updated as needed; any updated copyright information or other changes to Debian packages should be done at this stage and ideally committed individually – otherwise we just commit the updated changelog)

git add debian/changelog

and finally


That’s it – if everything is working as expected, assuming nothing has been pushed anywhere yet, we can make a final update to changelog by switching release from UNRELEASED to whatever appropriate and amend the previous commit on the debian-sid branch.

Once everything is finalised, we can tag the Debian release:

git tag debian/x.y.N-Z

and push to

looking for Lisp Hackers

During the years we worked on Viaweb I read a lot of job descriptions. A new competitor seemed to emerge out of the woodwork every month or so. The first thing I would do, after checking to see if they had a live online demo, was look at their job listings. After a couple years of this I could tell which companies to worry about and which not to. The more of an IT flavor the job descriptions had, the less dangerous the company was. The safest kind were the ones that wanted Oracle experience. You never had to worry about those. You were also safe if they said they wanted C++ or Java developers. If they wanted Perl or Python programmers, that would be a bit frightening— that’s starting to sound like a company where the technical side, at least, is run by real hackers. If I had ever seen a job posting looking for Lisp hackers, I would have been really worried.

(Paul Graham, Beating the Averages, 2001)

This was 2001, and still today, twelve years later, “Oracle experience” seems to be valued broadly, appearing in over 2.5% of job postings indexed on, although in steady decline since mid-2011.

And this makes me think that all these companies still seeking
big-brand buzzword compliance today are stuck in another era, besides being often held hostages by the pricing whims of said big brands.

It made me quite sad when i learnt, at a previous $job, that the IT department’s budget had to be adjusted recently, halting some plans to develop new services for students, because of the impact of Oracle’s pricing rises on available money. Obviously Oracle’s executives’ fat pockets need to be filled somehow, and it’s Oracle’s business to set their pricing, but wasting money this way can indeed be avoided, by stopping useless spending in proprietary products which are designed to solve a cash problem (that of the companies’ executives) rather than a technical problem (which is, in the case of databases, solved rather excellently by PostgreSQL and even Oracle’s own MySQL in the relational field and by MongoDB and countless other projects in the NoSQL field).

Dieci volte peggio dei nazisti

Since the post below was cowardly removed from the website of La Repubblica, i’m re-publishing it here alongside the many others who want to keep it alive. This has nothing to do with its contents, as not much meaningful can really be said about wars and bigotry, but simply about the arrogance of those bigots who feel entitled to try to silence every dissenting opinion. Odifreddi’s posts, whether i could agree or not with his approach and opinions, have been a precious voice criticising the pathetic bigotry and ignorance of the average Italian media comments, and i can only hope that more of this will be visible on mainstream media, free from coward censorship.

Dieci volte peggio dei nazisti

Piergiorgio Odifreddi – La Repubblica, 18 Novembre 2012

Uno dei crimini più efferati dell’occupazione nazista in Italia fu la strage delle Fosse Ardeatine. Il 24 maggio 1944 i tedeschi “giustiziarono”, secondo il loro rudimentale concetto di giustizia, 335 italiani in rappresaglia per l’attentato di via Rasella compiuto dalla resistenza partigiana il 23 maggio, nel quale avevano perso la vita 32 militari delle truppe di occupazione.

A istituire la versione moderna della “legge del taglione”, che sostituiva la proporzione uno a uno del motto “occhio per occhio, dente per dente” con una proporzione di dieci a uno, fu Hitler in persona. Il feldmaresciallo Albert Kesserling trasmise l’ordine a Herbert Kapper, l’ufficiale delle SS che si era già messo in luce l’anno prima, nell’ottobre del 1943, con il rastrellamento del ghetto di Roma. E quest’ultimo lo eseguì con un eccesso di zelo, aggiungendo di sua sponte 15 vittime al numero di 320 stabilito dal führer.

Dopo la guerra Kesserling fu condannato a morte per l’eccidio, ma la pena fu commutata in ergastolo e scontata fino al 1952, quando il detenuto fu scarcerato per “motivi di salute” (tra virgolette, perché sopravvisse altri otto anni). Anche Kappler e il suo aiutante Eric Priebke furono condannati all’ergastolo. Il primo riuscì a evadere nel 1977, e morì pochi mesi dopo in Germania. Il secondo, catturato ed estradato solo nel 1995 in Argentina, è tuttora detenuto in semilibertà a Roma, nonostante sia ormai quasi centenario.

In questi giorni si sta compiendo in Israele l’ennesima replica della logica nazista delle Fosse Ardeatine. Con la scusa di contrastare gli “atti terroristici” della resistenza palestinese contro gli occupanti israeliani, il governo Netanyau sta bombardando la striscia di Gaza e si appresta a invaderla con decine di migliaia di truppe. Il che d’altronde aveva già minacciato e deciso di fare a freddo, per punire l’Autorità Nazionale Palestinese di un crimine terribile: aver chiesto alle Nazioni Unite di esservi ammessa come membro osservatore!

Cosa succederà durante l’invasione, è facilmente prevedibile. Durante l’operazione Piombo Fuso di fine 2008 e inizio 2009, infatti, compiuta con le stesse scuse e gli stessi fini, sono stati uccisi almeno 1400 palestinesi, secondo il rapporto delle Nazioni Unite, a fronte dei 15 morti israeliani provocati in otto anni (!) dai razzi di Hamas. Un rapporto di circa cento a uno, dunque: dieci volte superiore a quello della strage delle Fosse Ardeatine.

Naturalmente, l’eccidio di quattro anni fa non è che uno dei tanti perpetrati dal governo e dall’esercito di occupazione israeliani nei territori palestinesi. Ma a far condannare all’ergastolo Kesserling, Kappler e Priebke ne è bastato uno solo, e molto meno efferato: a quando dunque un tribunale internazionale per processare e condannare anche Netanyau e i suoi generali?

caper, pine nuts and hummous quick wrap

This recipe is dedicated to Franz in his path towards wrap enlightenment.


  • wraps/piadine
  • hummous
  • small capers in wine vinegar
  • slightly toasted pine nuts

rip a wrap in to halves, spread a spoonful of hummous on a half wrap, place a small spoonful of drained capers and pine nuts on one of the corners, roll up the wrap starting from the corner with the filling.


  • piadine
  • hummous
  • capperi sottaceto, piccoli
  • pinoli leggermente tostati

strappate a metà una piadina, spalmateci una cucchiaiata di hummous, aggiungete un cucchiaino di capperi scolati e un cucchiaino di pinoli in un angolo della mezza piadina, arrotolatela partendo dall’angolo con capperi e pinoli.

spinach cream pizzetta

fast food pizzetta for those with too little time to prepare and manage a good sourdough pizza dough.


dampen two wraps and stick them together, spread a generous layer of spinach cream on top, top with black olives, toast in the oven (180C fan oven, 200C without fan) for about 7 minutes.

spinach cream


  • 500g soft spinach leaves
  • silken tofu
  • smoked garlic, chopped
  • one onion, chopped
  • olive oil
  • peeled almonds, finely chopped or sliced
  • sweet white miso paste

steam the spinach leaves until just wilted and drain them, saving the cooking liquid.

sauté onion and garlic in oil until soft, stir in the steamed spinach, adding a few spoonfuls of cooking water if the mixture is too dry and sticks. stir in silken tofu and a couple tbsp of white miso, mix quickly, then take off the hob.

blend until creamy, stir in chopped almonds, serve hot or cold.

squid risotto

this ain’t vegan but since i cooked it recently for family and friends and it was highly appreciated, i should write it down for future requests. It’s basically the same recipe i used as inspiration plus cocoa powder.


  • olive oil
  • shallots
  • garlic
  • arborio rice
  • squid
  • wild fennel
  • white wine
  • vegetable stock
  • cherry tomatoes
  • cocoa power

Clean the squid, boil it in water for around 30 minutes, until tender. Slice it in big chunks (or whatever chunk size you prefer). If you wish you can filter the cooking water and add some of it to the vegetable stock for a stronger flavour.

Sauté the shallots in oil, add the minced garlic and chopped squid, then add the rice and keep stirring until it is slightly toasted. Deglaze with white wine. Keep cooking adding stock when needed as for any risotto. A few minutes before the rice is cooked, add white fennel, cherry tomatoes (squash them lightly first). When ready, sprinkle a couple teaspoons of unsweetened cocoa powder, fold it in, cover the pot for a few minutes and let the risotto rest before serving.

pistachio and lime cous cous

This is actually a random cous cous based on the Veganomicon’s recipe by the same name, plus some additions (and subtractions) according to sensory inspiration. Thanks to my friend KSQ for prompting me to pin this down before i forget about the way i changed the base recipe 🙂


  • 2tbsp olive oil
  • 3 cloves garlic, minced
  • 2 cups big-grain cous cous
  • 2 12 cups water
  • 1 cinnamon stick
  • 1 pinch Italian saffron powder
  • 14 tsp ground cardamom
  • freshly ground pepper
  • salt
  • zest from 1 lime
  • 14 cup chopped fresh mint
  • 12 cup chopped dried apricots, chopped to the size of raisins
  • 12 cup ground pistachio (i use ground pistachio from Bronte, Sicily – any good shelled pistachio, ground or whole, will do)
  • juice from 12 lime
  • 1 red sweet pointy pepper, chopped in thin slivers
  • a handful of dates, chopped in quarters
  • 12 cup of pitted olives – i use some very tasty ones, mix of green and kalamata, in chilli oil. i totally love how olives balance the sweet fruit in the mix.
  • a couple tbsp of sultanas, soaked in hot water for a few minutes

Sauté garlic in oil for 1 min on med-lo heat, add couscous, stir for 4-5 min on med heat until it starts to lightly toast.

Add water, cinnamon stick, cumin, cardamon, pepper, salt and lime zest. Raise heat and bring to boil.

Once boiling, lower heat to min and cover. In 10ish min the water should have been absorbed… add mint, apricots, pistachios and lime juice.

Stir, cover and cook for 5 more min.

Remove the cinnamon stick, fluff the couscous with a fork, garnish with more mint and serve!

I’d recommend to only add pistachio just before serving, or even let people pick it from a bowl and sprinkle over their couscous themselves – especially if you use ground pistachio.

courgette and lemon risotto

After a longish break from the hobs because of travel (getting married, honeymoon), tonight we really needed to take care of a big organic courgette that had been resting lonely in the fridge for a few days – and since we were also craving for risotto i quickly looked up ideas online. The enligthenment came thanks to PiccolaLayl@ of Profumo di Sicilia (Scent of Sicily, which incidentally is also my other homeland): her courgette and lemon peel recipe (Italian) was the starting point for tonight’s creation. Wife loved this risotto and officially proclaimed it as best ever.

Ingredients (2 portions):

  • 150g arborio rice
  • 3 shallots, chopped
  • 1 garlic clove, finely chopped
  • oil
  • salt
  • 100ml white wine
  • 1 big courgette, or 2 small ones, diced
  • 1 unwaxed lemon
  • vegetable stock

Cut strips of the lemon peel (a potato peeler is the quickest way to do this), and further slice them into very thin, long strips using a knife. Further chop a small part (15 or so) of the peel strips into tiny bits.

Slice the courgette into thick rounds and chop each of them in four (or in half if using small courgettes).

Prepare the soffritto (sautée shallots and garlic), add the diced courgette and stir for a couple of minutes, add the part of lemon peel that was chopped in tiny bits, then add rice and toast, deglaze with wine, then start adding the vegetable stock one ladle at a time, adding more as needed, as with any risotto. A couple of minutes before the rice is cooked, add the strips of lemon peel that you have kept aside – just save a few of them if you would like to use them to garnish the risotto when serving in the plates. Keep stirring until the rice is cooked, then leave to rest for a few minutes with the lid on until the risotto is ready.

watercress soup

having fiercely disliked watercress until now (whenever i find it mixed in salads), i was pleased to find some recipe suggestions at the back of the bag of watercress that came with this week’s vegetable box.

so for the system d department, we tried the only recipe that could easily be turned into a vegan one, and the result was indeed very good (and it took just a few minutes to make).


  • olive oil
  • one big white onion
  • half a glass of dry white wine
  • 500g new potatoes (just wash them well scrubbing off the skin that is loose)
  • two big bunches of watercress, chopped

Sautée the onion in olive oil until soft, deglaze with wine, then add the baby potatoes roughly chopped. toast lightly for a minute or two on medium heat, then cover with water and let boil. add salt to taste. when almost ready add the chopped watercress and boil for a further 3-4 minutes. blend, add salt if needed.

great as is, or with a teaspoon of balsamic vinegar (a tablespoon of white wine vinegar is quite good too).

merging avi files

yesterday i needed to join two AVI files (a movie split in two parts) into a single AVI file.

online forums are full of clueless discussions and suggestions about how to do this; truth is, all is needed is a single command on any GNU/Linux distribution:

avimerge -i part1.avi ... partN.avi -o movie.avi

note: the avimerge command is part of the transcode package, so you might have to install this package first.

if srt subtitles are used with the AVI file(s) and resync is needed after merging, the srttool command can be used (from the subtitleripper package).

mushroom, broad beans and basil risotto

Another recipe from our “what do we have in the fridge?” series, after having sanity-checked the feeling that mushrooms+basil would be awesome (thanks to Marta and Alessio).

Ingredients (2 portions):

  • 150g arborio rice
  • 1 red onion, finely chopped
  • 3 cloves of garlic, finely chopped
  • oil
  • salt
  • pepper
  • 100ml white wine (we used frozen leftover champagne)
  • 250g fresh mushrooms, sliced
  • 100g broad beans
  • 15-20 basil leaves, roughly torn
  • vegetable stock

Prepare the soffritto (sautée onion and garlic), toast rice and mushrooms, deglaze with wine, then start adding the vegetable stock one ladle at a time, adding more as needed, as with any risotto. Around 12-10 minutes before the rice is cooked, add the broad beans. After the last ladle of stock add the basil leaves. Keep stirring until the rice is cooked, then leave to rest for a few minutes until the risotto is ready.

courgette and basil soup

Recipe gleaned from the “sonatural sopa” ( bought in April 2011 at the airport in Porto:

Ingredients (2 portions)

  • 1 courgette
  • 1 turnip
  • 12 onion
  • four large chunks of pumpkin
  • 8 basil leaves

Make the soup, blend, add raw basil and blend again.

creamy chestnut and brussels sprouts soup

another random “let’s use what we have in the fridge” creation.

Ingredients (four portions):

  • 300g brussels sprouts
  • 300g potatoes
  • 400g chestnut puree
  • vegetable stock, hot
  • one large onion
  • 3-4 cloves garlic
  • olive oil
  • salt
  • very hot chillies, fresh or dried

steam brussels sprouts and potatoes; in the meanwhile sauté the onion and the garlic, coarsely chopped, in the olive oil.

add salt and once the onion is soft add the chestnut puree. stir to mix with the sauteed onion and garlic.

mix in the steamed vegetables, then add the stock covering the vegetables. mix well. boil for ten minutes on high heat, stirring frequently.

great served with a generous handful of extremely hot chilli, coarsely sliced.


a couple of years ago i developed the backend web service for a time-based video tagging system. i am currently busy writing an updated version of the software, incorporating the lessons learned while developing the first version and taking advantage of the huge improvements of web development frameworks and browsers in the last few months.

Hacking the Web 2.0

this is the title of my phd dissertation – i am investigating what the internet comes to be in the everyday life of students of the local university. it’s an ethnographic approach to internet studies.

Hacking the Web 2.0

this is the title of my phd dissertation – i am investigating what the internet comes to be in the everyday life of students of the local university. it’s an ethnographic approach to internet studies.


sfursat is a minimalist, modular content management system inspired by git.

current projects

so much to do, so little time: here are some of the projects i am working on at the moment:

peas and topinambur vegan vellutata

a smooth and creamy vegan vellutata, based on traditional peas vellutata.

ingredients (for two people)

  • 5 jerusalem artichokes aka topinambur, peeled
  • 1 large potato, peeled
  • 250g green peas
  • 150g chestnut mushrooms
  • 50ml oat cream


chop very finely the potato and the jerusalem artichokes; boil in 400ml of lightly salted water together with the green peas for ten minutes; add the chestnut mushrooms, sliced, and boil for a further five minutes.

blend until creamy, then add the oat cream; serve hot.

de lonh

Merlino in quel corridoio ci passava quasi ogni mattina presto, ancora deserto e vuoto.

E ogni volta, andata e ritorno, sentiva che quello era uno spazio suo e di Amalia.

Amalia che lì aveva lavorato. E in quel corridoio Merlino e Amalia ci passavano insieme ogni tanto, il giorno del film, ogni due settimane, e lì si incontravano a volte per caso, e in quel corridoio si erano abbracciati e avevano scambiato un ultimo bacio prima che Amalia partisse a fine anno.

E ogni volta, andata e ritorno, a Merlino sembrava che Amalia quasi fosse lì, come il profumo di burro e zucchero che si sciolgono in forno che ti accoglie quando entri in pasticceria, o l’odore morbido del pane che ti avvolge quando richiudi dietro di te la porta dal fornaio e il campanello fa dlin.

O come il profumo dolce dei prati alpini a Giugno, che accompagna a tratti i tuoi passi su un sentiero, ma non sai da quale fiore venga, perché viene da tutti e da nessuno dei fiori e dei fili d’erba intorno.

gmail smtp relay ain’t no good

update to my previous post on a Postfix setup to route outgoing mail through gmail’s SMTP servers: i haven’t had time to investigate this further, but it seems that gmail automatically changes the From field of the emails relayed through it with the default name and email addressed configured in the gmail account used to authenticate for the outgoing SMTP service. which ain’t good for me, because i want the recipient to see the identity i choose. setting the Reply-To field isn’t enough as i don’t just want the recipients to email me back on a specific address, but also to see my emails as coming from a specific email identity among those i use for life, study, work, etc.

so i just switched back to an SMTP relay on the VPN, and that’s it – i won’t have my outgoing emails stored in gmail. no big deal.

gmail smtp relay

i’m finally sending my email through gmail’s smtp service from my roaming laptop – i found a simple ready-made configuration and just used it.

i used to send email through one of our smtp servers on the vpn, but since i’m frequently using gmail’s web interface for personal mail, i ended up not having in my gmail account my outgoing messages sent through gmail’s web interface, but obviously not those i was sending through the smtp server on the vpn.

of course leaving all that stuff on gmail’s storage is far from ideal, but this is only until i can set up a proper email archive on one of my personal virtual machines – and all the important stuff is gpg-encrypted anyway.

cheese bliss

despite having recently switched to being a non-strict vegan, i am in complete cheese bliss mode today.

i saw a small packet waiting for me when i got home tonight, and i thought it would be some journals i had ordered a few days ago. but instead the label on the front said “cheese”, and indeed my dear friend D had sent me some gorgeous gorgonzola and extra-mature cheddar from London!

which is not only an extremely sweet thing in itself: i received this just the day after i had been thinking (and silently moaning) that i can get decent cheese here, but not, specifically, real gorgonzola, the lush italian one.

needless to say, i put it to good use on the spot, by cooking one of my favourite quick recipes: boiled potatoes, gorgonzola, sundried black olives, all sprinkled with abundant extra virgin olive oil. that’s very close to the idea of heaven, in my gluttonous-bon-viveur corner of the world.

D is the ontological proof that good will eventually overcome evil in the universe.

happy bunny

inbox zero is bliss

late yesterday afternoon, towards the end of a rather relaxed day spent reading, writing notes, tidying up various bits, i suddenly felt really great – calm, relaxed, happy, serene. and i realised that this was mainly due to having moved out of the way a lot of minor things which, however only marginally important, had probably been clogging my mind’s backstage lately: and most of them were firefox tabs that i had left open for weeks on webpages waiting to be read and maybe bookmarked, and around twenty still unactioned messages in my inbox. as soon as these were all gone, any stress was gone.

inbox zero seems to really be bliss, indeed.

ethnographic accounts and domori 100%

as i was stuck on the words “ethnographic accounts” in the middle of a sentence while trying to describe what i believe to be the original contribution of my dissertation, suddenly a vivid memory of the last time i tasted a bar of Domori 100% cocoa (it was more than two months ago, sigh) appeared out of the blue in my mind, quickly followed by the other taste (a tiny bit of Green&Black 85% bar) from which i had moved on to the Domori.

it felt a bit like being in that lovely surreal film — The science of sleep — but instead of Stéphane’s exhilarating dreams, a symphony of gargantuan chocolate bars was festively dancing in my mind. is this what happens when one starts knowing tastes and names of the various bars of goodness?

chocolate will have to have a prominent place in my dissertation’s acknowledgements section…

a normal person has the right screws

Amazon now have their Kindle eink device back in stock (not that i could be bothered, until they keep selling the ebooks for this device in their DRM format), and discussions and reviews on got crazy again.

i particularly liked this comment which has little to do with the device itself and is more of a sweeping statement about what it is to be normal today, especially if you can’t afford a 399$ device which is defective by design:

Because, I think, they can’t afford the $399. They’re envious and just have to attack others who are happy with their K. Besides, there are lots of people out there who are missing vital screws, screws that would let them function as a normal person who is happy with himself/themselves.


so, if you have some vital screws, you function as a normal person happy with yourself. very elegant description of a one-dimensional world.

production beyond production

it’s been exciting times since i started developing new ideas – but actually a whole new direction, parallel to (and intertwined with) the PhD one – while working on my “Whose Economy, Which Sustainability?” talk (transcript is here) for the ITM Grande Finale event at the BFI last November; and even more exciting with all the intense reading and thinking i am able to do in my current, great “research leave” at the ACT Lab.

it’s that kind of Tetris feeling – like when you stack all the bits and leave a side row for the long thin 4-by-1 piece, and suddenly three of them come in a row, and everything fits nicely and everything is cleaned up at once…

luckily, although my memory is not too reliable when i want (or need, for that matter) to remember something, it seems that everything gets “stored” somehow, ready to spring up when it makes sense (actually, i love the way my mind works, with all the recent lucid dreaming and the ability to consciously assemble oniric materials while half asleep, and even the occasional sleep paralysis and controlled pseudo-OOB experiences).

what sprung out tonight was a discussion i had with my friend G380 in the summer of 2003 on the coach that was bringing us to the Beauvais airport from Paris (not that the setting matters, but since i remembered it, why shouldn’t i write it down?), when i finally got convinced that i should try as hard as possible to commit completely to free software rather than temporarily accept to use (or let customers use) proprietary software if no free alternatives were readily available.

or even more importantly, another discussion we had while walking on the snow back from the Rifugio Palù towards the end of a short day trip to the Alps (this must have been when i went to Italy for the previous general elections in April 2006), when we ended up discussing (or rather ranting about) the widespread misconception of collaborative production, rather than freedom of use and distribution, as the core tenet of free software.

ok – a huge preamble for a very short core point. i stumbled upon an abstract of a talk given at a workshop recently, in which the researcher seems to critically discuss the subversive potential of collaborative practices and knowledge production modeled after FLOSS production but in other areas.

this is all well and good, and i’ll try to get the full text to understand the researcher’s points better – however, as in many other articles and talks i’ve stumbled upon in these years, only the non-central aspect of collaborative production is highlighted. so i started wondering what could be said in articles focusing instead on the freedom of use and distribution of knowledge. and i realised that this would be very much connected with my recent focus on the human enterprise, on knowledge as part of techné and on rights to use and to foster versus property ownership.

free software is good software also because it’s often designed and developed collaboratively, and peer involvement and production, interoperability of software applications, and openness of processes to public scrutiny are all excellent things, if done properly. however, freedom to use and to distribute are the essential freedom-granting freedoms, in free software as in other technai. excellent software can be developed within closed doors, excellent policy documents can be written without necessarily opening up the writing process to a wider community. and, i hope, privately owned companies can indeed do no harm or even do good, by putting ethics first in whatever they do, therefore not limiting unnecessarily freedom of people outside the enterprise.

this last example might seem not directly related to the freedom to use and distribute – but i think it actually is. i am actually thinking about the corporate structure, and wondering if privately owned companies can attain the same levels of social responsibility that we commonly tend to associate primarily with co-operatives.

production beyond production: if we focus on use and distribution rather than primarily production, can we achieve a better understanding of a more just techné, or co-production?

it’s an open question at the moment – but it makes more sense in the context of the discussions that sprung out from some dark corners of my memory tonight.

late tonight, while i was walking in the street looking up at the lit-up ski slopes on the mountains in the North Shore. thinking how important G380 has been in all this, especially his unrelenting commitment to freedom. and thinking how important D has been in all this, especially her unrelenting commitment to truth, love, and ethics without compromises.

Damasio on the humanity project

The history of our civilization is, to some extent, the history of a persuasive effort to extend the best of “moral sentiments” to wider and wider circles of humanity, beyond the restrictions of the inner groups, eventually encompassing the whole of humanity. That we are far from finishing the job is easy to grasp just by reading the headlines.

(Antonio Damasio, Looking For Spinoza, Harcourt Books, 2003, p. 163)

avocado and sage wild rice

this is a sort of blend of tropical and alpine tastes (recipe for four people).

peel and coarsely chop two big ripe avocados; boil 80g of wild rice per person, strain and put it in a bowl; melt over a slow fire 75g of unsalted butter in a pan with 8 leaves of fresh sage, finely chopped. once all the butter is melted, add the chopped avocados and stir to blend the ingredients, then add the rice, stirring everything until well blended.

serve how with grated parmigiano cheese on top.

the jerusalem artichokes puzzle

random discoveries continue: while chatting with Gio today, he said he would soon be off to cook topinambur – “those kind-of-potatoes which taste a bit like artichokes”.

uhmmm… my parents cooked topinambur a few times when i was a kid, and i remember we were all quite curious about these roots the first time they entered our house. so i googled for topinambur, and there it is – they are jerusalem artichokes: all helianthus tuberosus.

so i had actually eaten them before my “first encounter” with them in 2006. and now i remember i liked them even then 🙂

vegetable hot massoela

my first portmanteau recipe ever, this is basically a serendipitous match of cassoela from my native Lombardia, Italy (but without the meaty stuff), and hot masala.


  • olive oil
  • white wine
  • large onions
  • cabbage
  • potatoes
  • carrots
  • swede (just because i got one in this week’s grocery box – although it sort of mixed well with the other ingredients – even if i’m not enthusiastic at all about swedes!)
  • medium-hot masala sauce

preparation is straightforward – coarsely chop all the vegetables, sauté the onions in a large pressure cooker, sprinkle with a generous half-glass of white wine, keep stirring until it’s well steaming, add the chopped swedes, carrots, potatoes and cabbage, stir through to mix the ingredients well, mix in a jar of medium-hot masala sauce, add a couple of glasses of water and pressure-cook for twenty minutes.

the cabbage and the masala sauce sort of take over the other tastes, which stay in the background as mild “core” upon which the two kernels of the portmanteau build their flavour texture. which made me realise that anything soupy and orangey with a strong flavour and smell of cabbage actually tastes like casoela.

excellent with machego cheese and full bodied red wine slightly colder than room temperature.

temo dio XIII

crackinthecosmicegg 020

“amica certa in re incerta cernitur”

Quintus Ennius

(photo nicked from leezus)

la morte sua II

it takes literally one minute, and is a delicious snack:

  • 1 tortilla wrap
  • 7 bits of gorgonzola
  • an handful of crumbled walnuts

spread the gorgonzola bits randomly on top of the wrap, microwave on med-hi for 37 seconds, then spread the melted cheese a bit, spread the walnuts on top, roll up the wrap.

la morte sua.

la morte sua I

i have had a long and troubled flirting time with jerusalem artichokes: it took me almost one year to start loving them.

this past spring i started missing artichokes – which i love truly – and decided to add them to one of my weekly abel&cole deliveries. all they had on their catalogue was “jerusalem artichokes”. fine. “they must be a variety of artichokes”, thought he…

all i got in the box besides that week’s selection was a bag with dirty chunks of a root which smelled funny – sort of shoe cream, which is not exactly at the top of my favourites list. so i emailed abel&cole, gently complained about not having found the artichokes in the box, and they agreed to put the jerusalem artichokes in the following week’s box. but, closer to the date, they informed me that jerusalem artichokes were not available for that week’s delivery. and my artichokes lust was rising.

third week, they were available. i got the muddy roots again. “hu-hu”, thinks he… i googled for jerusalem artichokes, and the image search returned the muddy roots.

gotcha!…jerusalem artichokes are not artichokes… go figure: i would like to see what happens if a Brit visiting italy orders “jerusalem pizza” and gets muddy roots?

anyway, they didn’t taste that great. i went to borough market and bought a bagful of real artichokes. jerusalem artichokes? no, merci.

last week, however, they came in the weekly selection, and i didn’t bother putting them in the dislikes list. so today, with this week’s delivery fast approaching, i made the usual tuesday soup (ok, it was monday this time) to put to good use all the vegetables left. and since the week’s recipe on abel&cole’s flyer was “jerusalem artichoke & cheddar soup”, i gave it a go.

man, this soup is really out of this world

here it goes (recipe courtesy of abel&cole, with a couple of amendments):

(basically, I used a tbsp of my beloved buckwehat flour instead of a third tbsp of white flour, and used vegetable stock instead of chicken stock)

rinse well the jerusalem artichokes and scrap off all the mud (i like them with some of their skin).

peel and chop potatoes, adding them to a bowl of water and lemon juice until ready to use.

in a medium pan melt 2 tablespoons of butter over low heat; add onion and garlic and cook 10 minutes, or until soft.

add artichokes, potatoes and half the stock; bring to the boil, cover, reduce to a simmer and cook 15 minutes, or until vegetables are soft.

remove from heat and puree in a blender or food processor.

in a separate pan, melt remaining butter over medium heat; add flour and stir 2 minutes.

remove from heat and whisk in remaining stock; simmer for 3 minutes.

stir in cheese, mustard, artichoke mixture and cream.

cook, stirring, until the soup is heated through, but do not boil.

season to taste with worcester sauce, salt and pepper.

la morte sua. (not perfect yet, though)

(and now i’m finally friend with the tiny, sweet, dirty, muddy jerusalem artichokes…)

offlinefication in Second Life

Matt Biddulph has posted an interesting comment today about his recent hacking sessions on Second Life. He has created a viewport to photos in Second Life – a panel in his “house” shows random pictures from a user’s album when the corresponding SL character touches it.

Nice hack (source code available too), and although this is not quite what I mean by offlinefication, still it’s interesting to see how the discreet charme of the offline is at work here as well.

ul sabet ingles

I VoIPed my dad this morning to wish him happy birthday and to catch up on gossip, and he asked me whether I was having a “sabet ingles” (that’s “English Saturday” in our town’s dialect).

As I didn’t have a clue about what a sabet ingles is, he explained that up to 30-40 years ago in Italy Saturday was not a day off work (only Sunday, holy Sunday was) and when a few people started getting the extra day off, people used to say that thay had the sabet ingles, as this was apparently the rule for Britons.

So I told him that I was going to have an eyes test this Sunday, which seems to show that not only that the sabet ingles is not so much English anymore, but even Sundays are actually a regular working day for many people here – at least much more than in Italy, where I guess you can’t find many optician shops open on Sundays, for example.

Rather than any kind of sabet ingles I personally am always looking forward to a marcusian week, during which the huge amount of useless, consumerism-dictated, repressive work is abolished and only non-alienated, creative and socially useful work is what we dedicate ourselves to.

Ok, enough for Saturday rêves


me (photo credits: Julie Ann Noying/Tollwerk)


sociology phd student at the London School of Economics, information infrastructures architect, Perl programmer, former Philosophy student in Milan, occasional entrepreneur, lazy writer, former choir singer and conductor, obsessive email checker, information ecologies catalyzer, former Research methods student in Florence, gardener.

i like

chocolate, rome, j. s. bach, marcuse, dante, daydreaming, smiles, vim, bread, the alps, venice, windsurfing, china ink, laughing, ancient greek, hot showers, bicycles, alentejo, sacher torte, taking pictures, honey, walking, web design, woody allen, watching clouds, flying carpets, gardening, rostropovich, italo calvino, gérard depardieu, wind, ten hours of sleep per night, snoopy, erin, the milky way, spring.

i dislike

computers, bureaucracy, mindless business practices, restrictions, banks.


F181 C0CD 9D04 F3CE EBC1  B3E2 0C9D 57B1 AD6D E667

my 2005, in cities

Thanks to Hanna for the idea

  • London, UK – homebase!
  • Paris, FR
  • Venice, IT
  • Treviso, IT
  • Robbiate, IT and surroundings, of course
  • somewhere in the Alps, IT
  • Brighton, UK
  • Oxford, UK
  • Manchester, UK

I guess that’s pretty much all – definitely not a real wanderer this year, uh?!

10 is 9 + 1

A tiny note on presentations – I’ve seen this at the Future of Web Apps summit this past February in London (it was Tom Coates’ presentation).

Instead of the abused “My thoughts in ten points” structure, he had nine points, and the tenth was a summary of the former nine.

A nice balance between a canonical formula and a good presentation clarity.

It seems you are currently offline. But fret not.

Ms Service Worker is taking good care of you, and you can keep reading all my stuff that Service Worker managed to cache while you were online.