================== Curriculum Vitae ================== :CreationDate: 2003-01-28 10:09:25 :Id: cv :tags: personal Legal notes =========== Some of the information below is defined as sensitive under the terms of Italian law n. 675 of December 31, 1996 and later modification. Their being shown here does not imply any authorization to their use. Anyone wishing to extract, archive or in any way use the following information (for non personal use, see Art.3) is required to `contact me`_ asking for authorization. .. _`contact me`: dakkar@thenautilus.net Personal data ============= Name: Gianni Ceccarelli Place and date of birth: San Giovanni Valdarno (AR, Italy), 1977-04-05 (April 5, 1977) Address: | via Trieste, 214 | 52020 Ambra (AR) | Italia E-mail: dakkar@thenautilus.net Telephone: +39 347 822 9734 Education ========= Graduated from high school (“Diploma di maturità scientifica”) from “Liceo Scientifico Francesco Redi” of Arezzo (Italy) in 1996, course `MFI` (special course with additional mathematics, physics and computer science lessons), with top marks (60/60). As part of the final exam I presented a short thesis about photo-realistic image generation with computers, with emphasis on ray-tracing. On 2001-10-19 I graduated (“Laurea”) in `computer science`_ from `Pisa University`_ with top marks (110/110 e lode); moreover I've been a fellow at the `Scuola Normale Superiore di Pisa`_ for all the five years of university. .. _`computer science`: http://www.di.unipi.it/ .. _`Pisa University`: http://www.unipi.it/ .. _`Scuola Normale Superiore di Pisa`: http://www.sns.it/ My university thesis__ was about an extension of reinforcement learning algorithms using recurrent neural networks for structured data, allowing the treatment of (for example) sets of cooperating agents with communication networks. Both the thesis (Italian only) and the associated ``C++`` library are `available on SourceForge`__. The library is released under the terms of the `GNU LGPL`_ and the thesis under the terms of the `GNU FDL`_. .. __: http://sourceforge.net/project/showfiles.php?group_id=10202&release_id=55268 .. __: http://sourceforge.net/projects/nnetlib/ .. _`GNU LGPL`: http://www.gnu.org/licenses/lgpl.html .. _`GNU FDL`: http://www.gnu.org/licenses/fdl.html From 2002-01-01 to 2002-12-31 I've been a PhD student at the `Computer Science`_ Department of `Pisa University`_. I quit to find a job. Work experiences ================ At Hyperborea ------------- From 2003-02-03 to 2005-06-31 I worked for Hyperborea_. Working for Hyperborea_, I've learned several design and development techniques, and I've polished my knowledge in several areas. Specifically: * Programming in Python_. * Integration into a group of developers and coordinating with them. * Tracking bug reports (using GNATS_). * Distributed development and version tracking (with CVS_). * Design and development of web/CGI applications. * Integration of relational databases with web applications. * Usage of Oracle_ (8 and 9i), PostgreSQL_, MySQL_. * XML_ and related technologies: XPath_, XSLT_ and `XSL-FO`_, `XML Schema`_ Among the various projects I participated in, the most significant are: * “iboFlex”, a framework to ease the development of web applications for data-entry into a database, based on ibo_ (an in-house application server) and XSLT. * A general, highly flexible framework for web-based questionnaires. It can handle arbitrarily complex questionnaires, with validation of the answer, and variable presentation (questions and answers in arbitrary order, with multiple formulations for each). It uses XML as representation format and XSLT for presentation. * Arianna version 3, a program for the cataloging and description of historical archives, based on XML, for which I've defined the internal representation formats and developed the full-text indexing and searching system. * A system for the distributed planning and programming of didactic activities in universities, developed in collaboration with `Università di Milano Bicocca`_, for which I worked on the high-level design and the definition of formats and protocols for data interchange. At the moment the system is being developed by the spin-off TabulaeX_. * The `Ecumene project`_, a national projects for the distribution of knowledge about artistic and historical heritage of the Italian Catholic Church, in which I worked on the architectural design, on the design and development of some modules, and on the definition of formats and protocols for data interchange. .. _Hyperborea: http://www.hyperborea.com/ .. _Python: http://www.python.org/ .. _GNATS: http://www.gnu.org/software/gnats/ .. _CVS: https://www.cvshome.org/ .. _Oracle: http://www.oracle.com/ .. _PostgreSQL: http://www.postgresql.org/ .. _MySQL: http://www.mysql.org/ .. _XML: http://www.w3.org/XML/ .. _XPath: http://www.w3.org/TR/xpath .. _XSLT: http://www.w3.org/TR/xslt .. _`XSL-FO`: http://www.w3.org/TR/xsl .. _`XML Schema`: http://www.w3.org/XML/Schema .. _ibo: http://www.sourceforge.net/projects/ibo .. _`Università di Milano Bicocca`: http://www.unimib.it/ .. _TabulaeX: http://www.tabulaex.it/ .. _`Ecumene project`: http://www.google.com/search?q=%22progetto+ecumene%22 At Blackbit ----------- In 2005 I helped to start `Studio Blackbit`_, and worked there for about a year. Among the projects we worked on: * `Opera Sacra`_, an e-commerce site based on osCommerce_; I had to re-implement most of the templating system to make it sane, and then I wrote the new templates to produce valid (and table-free) `XHTML` * a graphical user interface (using Perl_ and `Gtk+2`_) for a `magneto-telluric sensor`_, for the `Institute of Geosciences and Earth Resources`_ .. _`Studio Blackbit`: http://www.blackbit.it/ .. _`Opera Sacra`: http://www.operasacra.com/ .. _osCommerce: http://www.oscommerce.com/ .. _`Institute of Geosciences and Earth Resources`: http://www.igg.cnr.it/index_ing .. _`magneto-telluric sensor`: http://www.igg.cnr.it/Laboratori/pisalab6_ita.htm .. _Perl: http://www.perl.org/ .. _`Gtk+2`: http://gtk2-perl.sourceforge.net/ At Ask.com ---------- From 2006-04-04 to 2009-07-31, I've worked for the Italian R&D office of `Ask.com`_. Among the various projects I participated in, the most significant are: * In the “\ BigNews_\ ” project, I wrote most of the image-selection algorithms, and half of the code that handles images and videos; all the images and videos you see on the BigNews_ site passed through my code * I lead the “News Triggering” project, whose goal is to identify when a query implies that a user may be interest in the latest news about a topic, and then inject those news into the web results; this project required large amounts of statistical analysis on news clusters, the development of several heuristics to filter out noise, and the implementation of dedicated server software Working for `Ask.com`_ I've refined my project management abilities, and increased my knowledge in several areas. In particular: * Programming in ``C++``, especially in large-scale projects * Handling communications between geographically-dispersed developers: some of my colleagues were 6 and 9 time-zones away * Writing code that handles large amounts of data, in as little time as possible * Medium-scale system administration: before we hired a real sysadmin, I and a colleague administered 8 servers and helped with the various desktop machines in the office * Screen-scraping of dynamic (JavaScript-enhanced) web sites * Video downloading and recoding * Working around Microsoft-centric policies imposed by the parent company, using free software .. _`Ask.com`: http://www.ask.com/ .. _BigNews: http://news.ask.com/ Other experiences ================= In 1992 I started development of the program “Scegli la ruota giusta” (“Choose the right wheel”) for `tellure Rôta`_ of Formigine (MO, Italy). They make and sell wheels for industrial applications; the program was to be put on counters of hardware stores, so that customers could use it to choose, among the various products, the best wheel (in terms of both pricing and performance) for their application. The first version was written in MS Quick Basic 4.5, later it's been completely rewritten in Borland Pascal. It has a complete graphical user interface, with explicative drawings and animations (it was meant to run on Intel 386 systems, with standard VGA cards, under DOS). The database system for searching the catalog is based on functions I wrote solely for this program. Latest versions include an internationalization system, and I supervised (with the help of tellure Rôta's specialists) translation in English, French, German and Spanish. .. _`tellure Rôta`: http://www.tellurerota.com/ In 1995 I developer for PFB_ (Modena, Italy) a program for a test bench for overspeed governors. They make and sell mechanical lift components; the “overspeed governor” is a pulley, in which runs a cable linked to the lift proper: if the cable (i.e. the lift) exceeds a fixed speed, the pulley must block, in so doing pulling the cable and activating the emergency braking system. The program, using a dedicated interface I developed to a speed sensor (an optical encoder hooked to the parallel port), is able to read with high precision the intervention speed of the governor (that is, the highest speed reached before blocking); it allows then to archive tests and print certificates of conformity. The system runs on PCs, in text mode under DOS, and it's written in Borland Pascal. The database system is, also in this case, written ad-hoc. .. _PFB: http://www.pfb.it/ From 1996 I took part in the construction of a Ethernet local area network among heterogeneous machines (Macintosh and PC with Windows, DOS, Linux). Between 1997 and 2001 I've been "unofficially" responsible of the computer room in the Collegio Carducci of the Scuola Normale (where I lived): when I left it consisted of 8 PC, running MS Windows NT 4 and Linux (we used the RedHat distribution), and two iMac. There were also two laser printers, accessible from every machine on the network; the whole room was protected from external attacks with a NAT (Network Address Translator) made with a PC running Linux. The merit for the good results is not only mine: I've been helped by four colleagues, without whose collaboration it would not have been possible to realize everything we did. I organized a course of introductory lessons on the use of computers for users of the room; the lessons have been held by my colleagues. In 1997 I translated from English some articles about programming for IBM OS/2 Presentation Manager for the on-line magazine `Just Warp!`_. .. _`Just Warp!`: http://www.mclink.it/mclink/teamos2it/justwarp/index.htm Between July and August, 2000 I've been invited to `University of Wollongong`_ in Australia to work with prof. Ah Chung Tsoi and his group on neural networks for structured domains. .. _`University of Wollongong`: http://www.uow.edu.au/ In 2000 I held some lessons on Perl programming for some of my fellow students, showing the basics of the language (and some obscure characteristic because of “evil” questions) I've also held a short lesson on the workings, usage and problems of Internet as part of a course for junior high school teachers, organized by my junior high school math teacher. I wrote the Italian translation of SourceForge_, and I helped the Italian translators of `KDE 2`_. .. _SourceForge: http://www.sourceforge.net/ .. _`KDE 2`: http://www.kde.org/ I've been on the organization team of the `Italian Perl Workshop`_ for all its editions (4 of them so far), handling the web-site, the selection of submitted talks, and the scheduling. .. _`Italian Perl Workshop`: http://www.perl.it/workshop/ I've written a couple of articles for http://www.perl.it/\ , and I have a `CPAN account`_. Some of my code can be found on `my CGit pages`_. .. _`CPAN account`: http://search.cpan.org/~dakkar/ .. _`my CGit pages`: http://www.thenautilus.net/cgit/ Abilities ========= I know several programming languages: ============= ===================== Language Knowledge level ============= ===================== Perl Very good Python Good C++ Very good C Very good Java Good Pascal Good ============= ===================== I prefer imperative and object-oriented languages; I have some (design) difficulty with functional languages (Scheme, ML, Haskell). I have a strong interest (and strong opinions) on user interfaces. The best ones (in my opinion), text mode: WordStar 4.0, Pine; file/folder management: IBM Work Place Shell for OS/2; for PDAs: Apple Newton. Because of this I have designed many user interfaces (many more than I actually implemented). I don't think I'm very good at teaching, but the ones who attended my lessons considered themselves satisfied. As a manager/responsible I had some successes, coordinating a team of five people in the administration of a computer network, keeping at first place security and at second place reliability for users (which includes not changing users' habits in the name of innovation). At `Ask.com`_ I've co-ordinated a small team of people, and kept our developments in sync with other teams on the other side of the Atlantic. I am sysadmin for my Linux machines, all running `Gentoo Linux`_, including the dedicated host that runs the ``thenautilus.net`` domain. .. _`Gentoo Linux`: http://www.gentoo.org/ I speak, read and write fluently in Italian and English; I can read French and with some difficulties Spanish. I've attended a first-level course of Japanese, and I passed the final exam.