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 whishing 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.
Personal data
- Name:
- Gianni Ceccarelli
- Place and date of birth:
- San Giovanni Valdarno (AR, Italy), 19770405 (april 5, 1977)
- Address:
- via Trieste, 214
52020 Ambra (AR) Italia
- E-mail:
- dakkar@thenautilus.net
- Telephone:
- +393478229734
Education
Note: the names of the various education levels, exams, etc. are very hard to translate. If you have any suggestion, don't hesitate to tell me.
Graduated from junior high school (Licenza media ) from Scuola Media Statale A. Manzoni of Bucine (AR, Italy) in 1991.
Greduated 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 photorealistic image generation with computers, particularly in respect to ray-tracing.
On 20011019 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.
Exams, grade, and description of acquired knowledge:
| Exam (italian name) | Grade (max. 30) | Description/Acquired Knowledge |
Programmazione I Laboratorio I | 30 e lode |
Basics of imperative programming (Pascal), fundamental algorithms |
| Matematica Discreta | 30 e lode |
Elements of algebra and geometry (groups, rings, vector spaces, fields) |
Algoritmi e Strutture Dati I Laboratorio II | 30 e lode |
Fundamental algorithms, time- and space-complexity measurements |
| Analisi Matematica I | 29 |
Calculus, function analysis |
| Logica Matematica | 28 |
Formal proof methods |
| Analisi Matematica II | 28 |
Vector function analysis |
Architettura degli Elaboratori I Laboratorio III | 30 e lode |
Computer structure and architecture, inner working of a traditional CPU, a simple assembly language |
| Fisica Generale I | 27 |
Physics: mechanic, measures |
Sistemi Operativi I Laboratorio IV | 27 |
Components of an operating system, architecture and working of a simple micro-kernel sistem, POSIX system calls |
| Fondamenti dell'Informatica: Calcolabilità e Complessità | 30 e lode |
Definition of computable funtion, formalisms for computability, non-computable functions, complexity measures |
| Analisi Numerica | 27 |
Limitations of automatic numerical computation, numerical stability of algorithms, fundamental algorithms for linear algebra |
| Basi di Dati e Sistemi Informativi I | 30 |
Relational and object-oriented databases, SQL language |
| Calcolo delle Probabilità | 28 |
Discrete probability theory |
| Linguaggi di Programmazione: Linguaggi Formali e Compilatori | 27 |
Definition of language , context-free grammars, attribute grammar, basic ideas for building a compiler |
| Fondamenti dell'Informatica: Semantica | 30 |
Domains for program interpretation, formalisms for the description of program semantic, fixed points |
| Fisica Generale II | 30 |
Physics: electro-magnetisms, thermodynamic |
| Programmazione Matematica | 28 |
Linear optimization problems, symplex algorithm |
| Architettura degli Elaboratori II | 30 |
Symmetric and asymmetric multiprocessor systems, parallel and distributed systems |
| Intelligenza Artificiale I | 28 |
Basics of symbolic AI, deduction systems, expert systems |
| Ingegneria del Software I | 30 |
Software engineering: analysis and design of software systems |
| Apprendimento Automatico | 30 e lode |
Models and methods for machine learning and automatic classification |
| Reti Neurali I | 26 |
Neural networks, cascade correlation networks, perceptron and back-propagation networks |
| Basi di Dati e Sistemi Informativi II | 30 e lode |
Architecture and working of a concurrent data base management system |
| Teoria dell'Informazione | 28 |
Information theory, data transmission problems, enthropy, error-correcting codes |
| Linguaggi di Programmazione: Linguaggi Logici | 30 e lode |
Logic language theory, unification, constraint logic programming |
| Linguaggi di Programmazione: Paradigmi e Macchine Astratte | 30 e lode |
Theory and implementation of interpreters and compilers for functional and imperative languages |
| Reti Neurali II | 30 e lode |
Non-supervised neural networks, recurrent networks, evolutionary algorithms, fuzzy logic |
| Ingegneria del Software: Laboratorio di Programmazione | 30 e lode |
Software engineering: requirements analysis, specification, design, implementation of a software system |
| Basi di Dati: Recupero di Documenti | 30 e lode |
Basic theories of information retrieval |
| Algoritmi e Strutture Dati: Internet e Web | 30 e lode |
Cryptography techniques, routing algorithms, Web search systems, data compression algorithms |
| Matematica computazionale: Geometria | 30 e lode |
Computational geometry: techniques and algorithms for 2- and 3-dimensional geometric problems |
| Algoritmi e strutture dati: Bioinformatica | 30 e lode |
Bioinformatics: similarity and distance between sequences, application to gene sequencing and philogenetics |
Being a fellow of Scuola Normale, I had additional exams:
| Exam (italian name) | Description/Acquired Knowledge |
| Interazione Uomo-Macchina: Fondamenti di Computer Graphics |
Computer graphics fundamentals, both 2D and 3D, usage of OpenGL |
| Interazione Uomo-Macchina: Progettazione di Interfacce Grafiche |
Basic components of modern graphical user interfaces, UI guidelines |
| Percezione Robotica |
Main problems and techniques for robotics |
| Intelligenza Artificiale: il trattamento automatico del linguaggio naturale |
Problems and techniques for automatic natural language understanding, possible applications |
My university thesis is 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 undef the terms of the GNU FDL.
From 20020101 to 20021231 I've been a PhD student at the Computer Science Departement of Pisa University. I quit to find a job.
Work experiences
From 20030203 to 20050631 I worked for Hyperborea s.c..
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 develpment and version tracking (with CVS).
- Design and development of web/CGI appliacations.
- Integeration of relational databases with web applications.
- Usage of Oracle (8 and 9i), PostgreSQL, MySQL.
- XML and related technologies: XPath, XSLT e 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 cataloguing and description of historic 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 destributed 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.
In 2005 I helped to start Studio Blackbit, and I'm now working with them.
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.
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 paraller 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 comformity. 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, writted ad-hoc.
From 1996 I took part in the construction of a Ethernet local area network among etherogeneous 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!.
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.
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.
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'm learning about generation and management of Web sites using XML/XSL with XWeb, Apache Cocoon 2 and AxKit. This site is an example of what I have accomplished so far (see also the source). I'm working on a site generation system integrated with subversion.
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. Becaus 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 to not change users' habits in name of innovation). In July 2004 I've taken part in the organization of the first Italian Perl Workshop, in Pisa; in 2005 I did it again, with the second Italian Perl Workshop.
I am sysadm for my Linux machine, running Apache (with mod_perl), Sendmail, MySQL, Squid, Bind. This machine handles the ADSL connection, name resolution and Web access (via proxy) for a small LAN.
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.
Dakkar
|
Start
Software
Hardware
Anime Club
Models
Travels
Links
[Italiano]
[English]
|