I have been working with Free and Open Source Software since 1997; from 2001 to 2004 I have been co-founder and then president of the Italian PLUG - Prato Linux User Group.
My main IT skills include databases, functional languages and symbolic computation. I contribute to the Italian PostgreSQL community as an active member of ITPUG.
I have a PhD in Mathematics with published research ranging between Algebraic Geometry, Theoretical Physics and Formal Proof Theory. My experience includes working at the University of Florence as both a researcher and as a teacher.
Currently I live in London with my family; other interests include music, drama, poetry and sports.
Last week I was invited by the Dutch PostgreSQL User Group in Amsterdam to speak on PostgreSQL Administration Recipes. It was the first session of 2016, and the third since they started meeting last year.
Using the simple format of a cooking recipe, I presented some techniques that a PostgreSQL DBA can use to solve recurring problems, for instance: change your password without leaving traces of the new password around; quickly estimate the number of rows in a table; see which parameters have a non-default setting; temporarily disable an index without dropping it. The last recipe was more philosophical: plan your backups, or better yet, plan your recovery!
After my talk I listened to the interesting presentation from Reiner Peterke who described pg_inside, his tool for collecting (more…)
An interesting query has been twitted by Will Leinweber from Postgres Open:
-- this returns a different result each time it is ran
with recursive s as (
select random() from s
) select count(*) from s;
I like this example: a surprising result, which can be explained by (and indeed helps to explain) CTE behaviour.
Last week at the CHAR(10) conference we had a workshop on "Cloud Databases". To put it simply: what to do when the use case requirements exceed the resources available in the database server.
This was a main topic of the whole conference, and several solutions have been illustrated during the day. A common theme has been that no solution fits all the use cases, and that each solution comes with its cost; hence you have to choose the solution that your use case can afford.