It’s always quite embarrassing to introduce myself.
I’m a student of Mathematics and Computer
Science in Parma, Italy. I have many interests:
Mathematics, Computer Science, Information Technology , Jazz and
Rock Music, Literature.
I’m fond of Logic and Set
Theory and if I had to be a “pure” mathematician, I
think it would be Logic my main subject of studies.
I’m a lot into Numerical Analysis and
Number Theory. They are kind of between
Mathematics and Computer Science, still I put them here to stress
their theoretical nature.
When it comes to Computer Science I have to
say that my interests are both theoretical and practical. I
followed courses about Abstract Interpretation
and Formal Methods (and they could be subject of
my thesis). Even if I’m not really sure the approach is the best
one (actually in my everyday programming I still rely heavily on
testing), I find quite fascinating to have mathematical certainty
that a piece of software does the right thing (of course this
cannot substitute testing, since some kind of errors just cannot
be caught looking at the code).
Moreover my favorite language (Python) tends to be from hard to
impossible to be formally verified (but this could be subject of
a later article) and can just be heavily tested (still I find my
python programs have fewer bugs in average).
I’m a lot into Object Oriented Programming,
Design Patterns and everything that allows me to
write better code. My personal opinion is that bad code
should not be allowed to live. The logical consequence
is that I try to write the best possible code (the better I can,
Of course my last statement sounds rather extreme. In fact it
is. And it is one of the main reasons I am kind of reluctant in
releasing my own code. Right at the moment I chose not to be too
strict, and I am just cleaning up my software. I can say that
“not too bad code” is better than no code at all.
Unfortunately I have few time.
When it comes to practical things I enjoy
Python (and “high-Python”, in the sense I like
to code using all the features Python offers me, metaclasses,
__getattr__, dynamical code generation, kind of functional
approach — map, list comprehension, lambda functions –).
Another language I love is Objective C. I’m
quite n00b in this, still I find it quite fascinating.
Apple development libraries are wonderful.
I have to admit that most code I write is C++
or C code. I love C, even if I do thing
everybody should think twice before starting a project in C. In
C++ I love generic programming and templates. Unfortunately I’m
pretty unsatisfied by the language. I think it’s excessively
I recently tried Java (even if I strongly
criticized that language). I have to admit it is much simpler
than C++ (even if it’s generic programming model is crap — but
better to have it than not to have it ). What I discovered it is
that is’s library is quite wonderful but threaded
programming, although not as bad as I remembered it, is
I prefer forking() [Â I never told I am
Unix geek?Â ] or to write asynchronous
code. In this both Python (with Twisted) and Objective C
(alone, asyn support built in in the standard library) are
I have other hobbies as well, but it’s not time for them.