mercoledì 25 febbraio 2015

ITPUG & PostgreSQL al GrappaLUG

Segnalo con piacere che uno dei soci di ITPUG, Denis, terrà un corso gratuito (ma riservato agli iscritti del GrappaLUG) su PostgreSQL.
Il corso si articola in 5 lezioni serali di 90 minuti l'una, volte ad accompagnare il pubblico dall'installazione alle prime interazioni con il cluster, fino all'uso avanzato dell'SQL (stored procedures, CTEs, etc.) per concludere con backup logico e fisico e, perché no, un po' di replicazione e Point In Time Recovery.

martedì 24 febbraio 2015

2015 CPAN Pull Request: February pending

My February assignment was not a piece of cake: I got MyCPAN::Indexer, a module by the great brain d foy, yes the author of so many Perl Books, the launcher of the Perl Mongers, and...you know, pretty much a lot of the Perl world.
Ok, what chance could I have to comment and improve the code of brian?
It does not matter, I did my homework at my very best.
The first step was to understand what the module was doing, and I have to say that the documentation did not helped me a lot. Then I had to try the module by myself in order to see when and how to make it working. And it took me a while to understand what should I do.
Please note that the module is by itself what brian calls a modulino, so a module that can be invoked also as a standalone application.

The code layout is...well, let me call strange. It is something I will not use, and something my Emacs refuses to use quite well, so this made changes a little more difficult. However, I limited myself to change the documentation and fix a few dependencies (optionals), as well as compressing a branch. Nothing really interesting, some monkey patching, but hey, it was a little too hard for me to do in a single month!
But I'm really happy, even if at the time of writing my patch has not yet been merged, and even if it will never be. It has been a great opportunity to be forced to learn from a real Perl guru!

Thank you ITPUG

2014 was a very bad year, one I will remember forever for the things and the people I missed.
But it was also the first year I missed the PGDay.IT, but today, thank to the board of directors and volounteers, I received the shirts of the event.
This is a great thing for me, as being part of this great community.





A special thank also to the OpenERP Iitalia!

lunedì 23 febbraio 2015

PostgreSQL & DTrace @ FreeBSD

Tempo fa mi ero scontrato, o meglio scornato, con la compilazione di DTrace e PostgreSQL (o meglio, la compilazione di PostgreSQL con DTrace) su FreeBSD. L'ultima volta, dopo aver riportato i problemi nella lista pg-hackers, avevo anche aperto un bug sul tracker di FreeBSD.
Ad oggi il problema non sembra ancora essere risolto, forse che non sia così interessante usare DTrace + PostgreSQL + FreeBSD?

Pare comunque esserci una soluzione da provare, legata al caricamento dinamico dei moduli di DTrace nel sistema prima di iniziare la compilazione.

Sondaggio ITPUG

Come già anticipato in precedenza, ITPUG ha svolto un sondaggio "interno" mirato all'individuazione di eventuali criticità e punti deboli per il benessere dei soci stessi.
I risultati sono stati globalmente positivi: i soci sono contenti dello stato attuale dell'associazione anche se si evidenziano alcuni punti sicuramente migliorabili.
In questo articolo non voglio fare una trattazione dettagliata dei singoli risultati, che risulterebbe sia noioso che probabilmente troppo soggettiva, bens^ presentera alcuni grafici riassuntivi circa le risposte date ai vari quesiti. Per chiarezza ho cercato di dividere i grafici in sezioni correlandoli fra loro logicamente (ovviamente questa non è l'unica suddivisione possibile).

Vorrei ringraziare tutti i soci che hanno reso possibile, con il loro impegno, il questionario e la raccolta dei dati, in particolare Denis, Simone, Andrej nonché tutti i membri del consiglio (e sicuramente me ne sto scordando qualcuno).

Comunicazione

La Comunicazione ITPUG appare buona, ovvero i contenuti divulgati soddisfano i soci. Il mezzo di comunicazione preferito resta la mailing list, seguita da blog/planet, e personalmente ritengo che questo sia dovuto alla natura stessa degli associati che, essendo per la maggior parte dei tecnici informatici, si trovino a proprio agio con le mailing list. Per il planet invece penso che la ragione sia dovuta alla presentza del ben piu' noto planet.postgresql.org, aggregatore ufficialmente riconosciuto di notizie e novità nel panorama PostgreSQL.



E' interessante notare come ci sia una crescente richiesta di comunicazione verso aziende e d enti commerciali, probabilmente dovuta al fatto che si vuole far conoscere PostgreSQL maggiormente a livello Enterprise.

Update: 23 Febbraio 2015

Dauna discussione in mailing list soci pare che le motivazioni dietro alla necessità di parlare ad aziende relativamente PostgreSQL sia anche per sfatare il mito che certi prodotti possano girare solo con database ben definiti. Il classico esempio è quello di uno stack LAMP, che come sappiamo tende a girare con un MySQL.

Quasi scontato, almeno secondo me, la maggior parte dei contenuti che i soci vorrebbero essere trasfmessi sui canali ITPUG sono quelli tencici.

Velocità nelle risposte

Dato che la mailing list resta lo strumento principale di   comunicazione fra i soci, come sono valutati i tempi di risposta?
In generle i tempi sono ritenuti normali, e qui mi sarebbe piaciuto vedere di piu' un veloci, ma dobbiamo anche fare i conti con il fatto che, a mio avviso, ITPUG è una realtà piu' piccola rispetto ad una community internazionale PostgreSQL, ove i tempi di risposta sono sicuramente migliori.
Anche le risposti del consiglio verso i soci sono considerati normali, e anche qui personalmente avrei preferito veloci o addirittura senza la presenza di voci lente, visto che di interrogazioni verso il consiglio non ve ne sono molte.
Ma in enbtrambi i casi, vista anche la mole di ITPUG, ritengo che ci possa ritenere piu' che soddisfatti dei risultati riportati.




 Diffusione

Sul lato diffusione i risultati sono un po' piu' deludenti: mentre i soci conoscono il nostro planet ufficiale wwww.planetpostgresql.it non tutti i soci sono disponibili a partecipare al livello di diffusione atraverso esso o altri articoli.




Analogamente, la mailing list tecnica ad accesso libera messa a disposizione dal PostgreSQL.org è poco conosciuta fra i soci, e di conseguenza non viene utilizzata propriamente allo scopo per discussioni tecniche anche esterne l'associazione.

Sempre dal lato diffusione, pare che non sia ben chiaro che ITPUG svolge anche altri eventi oltre al ben noto PGDay.IT (ad esempio partecipazioni a conferenze di altra natura e locali, come LinuxDay, LinuxArena, ecc).



Update: 23 Febbraio 2015

Da una interessante discussione in mailing list soci è emerso che uno dei problemi legati al non voler contribuire attivamente con articoli, blog, ecc., è dovuto al fatto che ciò richieda impegno costante e tempo necessario per la scritura di un articolo di buona qualità. A questi fattori si aggiunge anche il fatto che spesso ci si trova, nel proprio ambito lavorativo, a fronteggiare problemi di nicchia (o non particolarmente diffusi) e quindi anche scriverci articoli a riguardo rischia di risultare come tempo buttato, perché poche altre persone si troveranno a fronteggiare la stessa situazione.
La mia opinione personale è che tutte le motivazioni di cui sopra siano sbagliate. Anzitutto non è vero che la diffusione di PostgreSQL richieda una cadenza fissa. Certo, è molto bello e comodo per tutti noi, come utenti, poter leggere notizie aggiornate a cadenza fissa, qualcosa di simile alla PWN. Ma ci si può accontentare anche di qualche piccolo articolo spot che mostra un trucco o una potenziale soluzione ad un problema. L'importante è condividire una base di conoscenza, sia essa certa o empirica. Riguardo al tempo necessario per scrivere, beh quello è indubbio. Ci sono persone che, fra i compiti del proprio lavoro, devono anche scrivere articoli tecnici, e altre (come il sottoscritto) che deve sottrarre il tempo ad altre attività. Eppure qualche minuto per scrivere anche un articolo o prepararlo offline si può sempre trovare. A volte basta commentare una nuova feature, o notificare al mondo una patch, o una nuova community...insomma, le idee per la divulgazione sono veramente tante.

Ma il punto sulla scrittura di articoli pone anche un altro aspetto in evidenza, piu' celato forse, ma che può riguardare il sito web istituzionale. Spesso ci si interroga se il sito web debba essere altamente dinamico e CMS-oriented, ma il dubbio tende a svanire se poi non vi sono contributi costanti da pubblicare. Anzi, a mia personale opinione, in tal senso un generatore di pagine statiche potrebbe semplificare e invogliare i soci a scrivere piccoli articoli/notizie/resoconti senza la complessità di una vera installazione CMS.

Una cosa che però mi sento di sottolineare è che tutti sono all'altezza dello scrivere un articolo e del contribuire alla diffusione della conoscenza, a qualunque livello. PostgreSQL (e soprattutto ITPUG) non è community fatta solo per gli esperti o i guru. Si può iniziare con dei baby-steps e si può crescere strada facendo. E senza la condivisione pura e sana nessuno di noi potrà mai definirsi un esperto.

Quota sociale

La quota sociale appare per la maggior parte dei soci appropriata, e a tal proposito lo sarà ancora di piu' ora che è stata ridotta per l'anno 2015.

Conclusioni

Sommariamente si può dire che ITPUG sta andando bene, e che rispetto a due anni fa, il lavoro svolto a portato i soci e l'associazione in uno stato di benessere generale migliore. Ma allo stesso tempo c'è ancora molto da lavorare e da fare soprattutto nel coinvolgimento attivo dei soci e nella diffusione delle varie proposte e iniziative.

L'augurio è anche quello di ripetere con frequenza sempre maggiore sondaggi di questo tipo, che possono fornire indicatori di valutazione circa il lavoro svolto nell'associazione stessa.


domenica 22 febbraio 2015

ITPUG interview

Thanks to the effort of some of our associates, we were able to perform a short interview to our associates themselves in order to see how ITPUG is working and how they feel within the association.
The results, in italian, are available here for a first brief description.
As a general trend, ITPUG is going fine, or even better of how it was going a few years before. However there is still a lot of work to do in order to spread the PostgreSQL word and to make our associates a little more involved in the community itself.
As a last word, I believe this kind of interviews should be performed on a regular basis in order to keep under control the work of the association and of its members.

Update: Feb 23
It seems that this kind of interview, and consequently the result inspection/analysys, generated a good discussion among the ITPUG members, that is I'm proud of thia other interesting result in the general management of the association. 

sabato 14 febbraio 2015

About job interviews...

I found this very interesting article on how to perform a good job interview in the case you don't want to hire a good developer. In other words, do we still need to focus on the merge-sort or alike to know that we are facing a skilled developer?

martedì 10 febbraio 2015

My story about KDE

KDE is by far the Open Source project I used longer than all the others, of course excluding Linux itself, a few shells and to some extent GNU Emacs.

I first met the Kool Desktop Environment (KDE) when I was a student at university. At that time I was spending my time digging into this Linux-thing, as well as learning a lot of new cool Unix stuff.
At home, I had just installed a Red Hat 5.2, that was shipped with what I believe it was a prototype of some Gnome applications (I remember the configuration system was a GTK application). There was no KDE desktop at all.
At the university, there were machines running Debian GNU/Linux (with Gnome) and a few Solaris workstations with the CDE.
I liked CDE, I really did! It was quite clean to me, and I found the multiple desktop a very interesting idea. I also liked the panel with multiple menus, or docks or whatever their name was.
But my Linux box at home looked ugly, with FWWM2 and WindowMaker as the more advanced "desktops" available.

Later that year, I don't remember how, I found a distro called Mandrake.
And everything changed.
Mandrake was based on Red Hat (if my memory serves me well the numbering was pretty much the same) shipped with KDE installed as default desktop.
I was impressed from such piece of code: I felt at home with such an UI.
There was a dock, there were applications and a file manager that didn't suck (well, the Gnome one sucked for a while in my opinion), a lot of ready-to-go applications.
The look and feel was great, and it seemed that developers did spent a lot of time and effort in making all consistent. As an example, I remember even the window title animated when the size of the window did not suffice to make it all readable.

Well, at that time I was not doing a lot of stuff using Linux. I was just experimenting and trying to get some documents well written using an office suite (it was too early for me to learn some LaTeX!). Internet was something quite obscure outside of the campus, and I spent a few money chaning my winmodem to an external one that allowed me to use KPPP to connect to the Internet.
My KDE desktop had a classic configuration:




KDE did play an important role in my Linux conversion: the command line is quite scarying to anyone who is just learning, and having a fully integrated desktop (even more integrated than others) allowed me to sit in front of my computer and concentrate on learning, being assured that if I cannot do something via the CLI the UI would have done it for me.

So my university life continued using KDE and some KDE applications (e.g., the debugger) assisting me in the small homeworks. However the university was not using KDE at all, preferring Gnome desktops on both Linux and Solaris; I suspect the choice was done due to some issues between the Free Software Foundation and the Qt-KDE, as well as some major distro (like Red Hat) offering and supporting Gnome.
I have to admit that at some point in time, a few Solaris machines started prompting the user for a CDE/KDE alternative, but many students excluding me were using CDE because that was what the university teached us.



At that time it was a lot easier to find some help related to the Gnome desktop than to the KDE one, and the latter was something not well appreciated here in Italy, or at least not as strongly pushed as it was in Germany. But a few distros started shipping KDE and KDE-only installations, such as SuSE and Caldera. Feeling a little less alone in using my desktop of choice, I sticked with it and continued to use and explore.

I believe a huge jump in quality was at the time of KDE 2, where the "component" model become more and more apparent to the bare user. I'm not talking directly at KOM (and Corba related stuff), even if that was the engine under the hood, but to the fact that an application could do a many things because they were simply available to the desktop as a whole. So for instance you could open a PDF file into a web browser, or use a web browser to see a directory tree (and not with the horrible apache-like web interface), and stuff like that. That was a kind of impressive cohesion amongst the application components.



In those years I did not have a broadband Internet connection, so the only thing to do in order to have a fully fresh KDE desktop was to wait for some magazines to issue with a set of CDs. And most of the time updating from such CDs was a pain, and that was how I become quite good in doing backups and restoting a working machine from scratch, but this is another story.
By the way, at a point in time I got a Red Hat 9 shipped with KDE 3, which was really cool. The look and feel, the applications and the themes were pure eyecandy. And how to forget the great work done by Mosfet (and the incident that occurs with Pixie)?
That was the time of my master thesis.




Having acquired more confidence in the desktop itself, as well as in the toolchain required to build it, I started to build my own versions. That was not so simple, since I had to download all sets using the Internet connection of my job place and then let the computer doing the hard work. My poor Intel Celeron was busy all day compiling KDE in background, and you cna imagine how responsive it could have been at peeks! But it did not matter, in less than a week I could have a new KDE version up and running on my system!
The 3.3 release, with the bubble titles and that great icons was really impressive to me.




I did that until version 3.5, and then, shame on me, I switched to Microsoft Windows for a while. That's because I was doing a kind of University project, and having university laziness on me, I didn't want to spend a lot of time in configuring my laptop.
Luckily, as when you got drunk, the bad effects go away sooner or later, and so I quickly joined back KDE. At that time a distro in particular was famous in the KDE panorama: Kubuntu. I installed 6.04, if my memory serves me right, and liked the idea of having a KDE-specific distribution. I still use Kubuntu on a lot of machine of mines.

The jump to KDE 4 was quite a shock, even for me that I have followed the decisions and improvements. However, once I got used to the new interface and look and feel, I was at home again. And of course, I was not expecting the big vendors shift, but was running 4.0 as soon as it was considered stable. I laugh remembering a colleague of mine that, in the act of emulating, get messed with KDE 4.0 and was forced to switch back to something he knew better. He does not know KDE a lot even today, sorry pal!



Even if the desktop was not so complete as in previous versions, the ideas behind it were really promising. In particular the widgets and SVG graphic were winners in my opinion (and in fact were "migrated" to other popular proprietary platforms).




In the last years my KDE-aggressiveness has calmed down, and now I follow only stable and mature branches, even if I'm always excited when I get the opportunity to get a new release.

And yes, I've not switched yet to Plasma 5...I was a lot busy at the time. But I'm going to try it very soon.

lunedì 9 febbraio 2015

Find Fuplicated Files (fdf.pl): a quick Perl script to the task!

I often find my MP3 player or photo repository filled with duplicated items, and of course that results in an annoying task of cleaning up the tree structure.
A few days ago I decided to write a very simple Perl script to get hints about such duplicated files. The script is quick and dirty, and do not aim at being a very performance one, even if it is working quite fine for me.
Here it is:

#!/usr/bin/perl

use strict;
use warnings;
use Digest::file qw( digest_file );
use File::Find;
use v5.10;

die "\nPlease specify one or more directories\n" unless ( @ARGV );

my $files = {};
find( { no_chdir => 1,
wanted => sub {
push @{ $files->{ digest_file( $_, "SHA-1" ) } }, $_ if ( -f $_ );
}
}, grep { -d $_ } @ARGV );


while ( my ($sha1, $files) = each %$files ){
say "\n\n#Duplicated files: \n\t#rm " . join( "\n\t#rm ", @$files ) if ( @$files > 1 );
}



The idea is quite simple: I use an hash (named $files) indexed by the SHA-1 hash of a file. Each file with the very same hash is appended into the same hash bucket, and therefore at the end of the story each entry in the hash that has more than one file name in the bucket reveals a duplicated file.

As you can see, I use the file File::Find method with the no_chdir option to strip down the file name in the code ref, so that $_ is the fully qualified file name. For each file, File::Find executes the code ref that tests if the entry $_ is a file and computes the hash, placing it as key of the $files hash with the name as first value.
The action is iterated over all the directiories supplied as script arguments, that are in turn filtered by grep to check about their directory-ness.

At the end, since I'm a little lazy, the script prints a list of Shell like rm commands to purge the duplicated files, so that I can choose the files and simply executes them.

lunedì 2 febbraio 2015

Autoscatto, questo sconosciuto

Miguel de Icaza ha pubblicato un post per me controverso in difesa del selfie-stick. Un selfie-stick altro non è che una "bacchetta" rigida da applicare al proprio telefono o fotocamera, il quale consente una impugnatura semplificata per l'autoscatto (selfie). Niente di nuovo per chi è abituato ai cavalletti da macchine fotografiche, che già da parecchi anni disponevano di una simile funzionalità.
Giustamente Miguel fa notare la necessità di una opportuna licenza delle fotografie scattete, cosa che giustifica l'uso della tecnica "selfie". E ancora piu' giustamente si fa notare come spesso si non voglia chiedere ad un passante di fare una fotografia con un dispositivo tanto personal come il proprio smartphone.
Ma per chi come me è cresciuto con la concezione dell'autoscatto (si, quando si metteva la macchina fotografica su un muretto, tavolino, o altro) e della foto fatta dai passanti, le argomentazioni di Miguel appaiono ridicole.
Possibile che la nostra società sia finita in questo baratro nel quale è piu' importante condividere la foto che il momento del farla?

domenica 1 febbraio 2015

Sondaggio ITPUG

In questi giorni, grazie anche agli sforzi di alcuni soci volontari, si sta svolgendo un sondaggio ITPUG mirato ad ottenere indicazioni e suggerimenti dai soci stessi circa l'attuale funzionamento dell'associazione.
La conclusione del sondaggio è prevista per il 15 Febbraio 2015, e a seguire verranno resi pubblici i risultati. 
Lo ritengo un passo importante per l'associazione, anche perché molto raramente sono state avviate delle vere e proprie raccolte di suggerimenti. E ancora piu' importante, questa iniziativa spingerà l'associazione verso una maggiore trasparenza nei confronti dei soci.

Il nuovo Planet KDE

Come risultato di un KDE-SoK (Season of Code), il planet KDE ha cambiato look and feel. Il nuovo planet risulta particolarmente gradevole, ed è un buon aggiornamento del famoso aggregatore dopo diversi anni di onorato servizio.
Buona lettura!