Archive
Chapters: Prologue · The fabulous '80s · Pascal, the evolution · A demanding project · Internet · Server-side · Security manager · Part-time network admin · Networking Academy · System engineers · Epilogue
A Brief ComputerBiography
One thing I am certain of: biographies, if you are an ordinary person, are of little interest.On the other hand, introducing oneself to visitors is a due form of courtesy that every good host strives to practice.
As far as I am concerned, that good custom could easily have been settled in three lines, but I thought of offering something different and hopefully more interesting.
Thus, under the pretext of biographical notes, I recount how I experienced and what those 'formidable years' were like when distributed computing was born and a new way of communicating and accessing knowledge took shape.
Back then, we had the perception of living through one of those moments when History gives sudden accelerations to the flow of events, imposing rapid cultural and social changes. New ideas and technologies established themselves and evolved so fast that they almost seemed elusive. A lively and dynamic climate, a new Zeitgeist, announced the incipient era of Information and Communication Technology.
And, as they say in these cases, nothing would ever be the same again...
Prologue
I graduated in Physics, with a specialization in Nuclear Physics, at the University of Padua in June 1978, and a year later I entered the world of teaching. After graduating, I began to take an interest in Computer Science, given that at University I only had a superficial introduction to Fortran. Fortunately, indeed, some enlightened professor had realized that at least the rudiments of automatic computing an aspiring physicist ought to possess. The university computing center was off-limits to students. On the other hand, back then programming was batch-style: you wrote programs, punched cards, and handed the package over to the center administrator, who ran the programs when possible, respecting various priorities. After a few days, printouts with the results were delivered. If there was an error—and there almost always was—you had to correct it, change the card(s), and repeat the whole procedure. Imagine if students had also been underfoot.Beginning: the fabulous '80s
I started, therefore, like many of my generation, programming the legendary "Commodore 64", which was being marketed in Italy at that time.That '64' appearing in the name stood for exactly 64 KB (64 x 8 x 1024 = 524,288 Bits) of RAM memory, not even entirely available, as part of it was occupied by the operating system.
Today, to be clear, the capacity of a RAM is measured, as an order of magnitude, in GB (1 GigaByte = 109 bytes or more correctly 10243 = 230 bytes).
The cost was exorbitant. In December 1982, I paid 1,200,000 lire for the C-64 (about €1850 today, taking devaluation into account).
Nevertheless, with those few and expensive kilobytes we worked miracles, at least for that time: games, applications, programs—complex and super-optimized, since we could not waste uselessly even a single bit of memory.
In those years of great enthusiasm for the new technology, I held some 'pioneering' computer science courses for school staff. I am talking about the early 1980s of the last century, and computer science at school was truly a pioneering endeavor.
The electronic computer seemed to most a sort of magic box. Almost the same sensation that a few years before I felt putting my hands, in "Physics Laboratory 1", on one of the first electronic calculators in circulation, the HP-45, firmly bolted to the wall due to its preciousness ($395 in 1974, 250,000 lire, equivalent to €385 today). Calculations were performed in the efficient, but entirely unnatural, Reverse Polish Notation (RPN). For example, to calculate 5 x 3 = , you had to press the sequence:
, after which the display showed the result, 15 (there was no = key). You can try it by clicking on the image of the HP-45, with a simulation (albeit of its predecessor, the HP-35) by Neil Fraser, created for the HP Museum.Later, while collaborating with one of the first associations of teachers (which with incredible imagination we dubbed "Informatica & Didattica") convinced of the need to introduce computer science into schools, I dealt with the Olivetti M20 (one of the few personal computers of that period equipped with 'high' resolution graphics and instructions to manage it: at that time Olivetti was at the forefront of research and development in personal computing), then with the IBM PC (the worst of all, I believe) and then with the good old Olivetti M24.
I was working then, with a colleague and friend, on a program for solving electrical circuits: you built the circuit using graphical symbols for components (nodes, conductors, generators, resistors, inductors, capacitors). The program in gwBasic recognized its topology and calculated currents and voltages. It was the first project of a certain complexity that we tackled and that allowed us to learn a lot about programming and its tricks.
Then came the turn of the powerful Apple Macintosh Plus equipped with an extraordinary windowing operating system (later largely copied by others) with which you interacted, besides the keyboard, through a revolutionary pointing device: the mouse.
Pascal, the evolution
People were beginning to talk about structured programming and Pascal, thinking of introducing it into schools precisely because of its characteristics of rigor, strong data typing (where data must be declared beforehand and you cannot switch from one type to another with a simple assignment, as in Basic), and modularity thanks to the use of procedures.It was another world compared to Basic: from "spaghetti programming", stuffed with gotos and variables created at any moment, to the Swiss order imposed by Niklaus Wirth.
And let's not even talk about speed. Perhaps it is difficult to understand today what it meant to have a good compiler. Now the computing power at our disposal is such that it makes the performance of an interpreted program quite acceptable, at least for normal uses, even if a delay of a few seconds in response can make us judge the program as slow or very slow. Back then, the wait could be several minutes!
Right around that time, starting in 1983, Borland put on the market a very fast compiler for MS/DOS at an affordable price: Turbo Pascal.
The success was enormous: it quickly became the most popular compiler of all and was adopted in many university educational structures to teach structured programming.
In version 5.5 (1989), Borland also introduced elements of object-oriented programming. Programs were no longer to be thought of as a pure sequence of instructions, but as objects interacting with each other.
Objects are concretizations of Classes; they are instances of a class, possessing properties (the object's data) and the ability to act (the object's methods).
The Class is an abstract data structure that defines the general properties (data) of every object belonging to it and what each of them can do (methods). Example: the Automobile class defines the concept of an automobile (what makes us recognize that what is in front of us is an automobile?), while "Fiat 500" and "Ferrari F430" are concretizations, instances of Automobile.
All this was decidedly fascinating, even if a bit difficult to understand for those accustomed to programming the old way. However, the little manual
Meanwhile, hardware evolved: from the Intel 80286 of the first half of the '80s, to the innovative 80386, equipped with Intel's first 32-bit processor, which cost me a fortune, partly because I wanted a brand-name one (Intercomp x386) complete with an 80387 math coprocessor, the latter required by particularly demanding processing applications (for example, Autocad).
A demanding project
After acquiring a good command of Pascal, I launched into an ambitious project: to create a series of Physics simulations that would make learning electromagnetism easier.I had to envision pedagogically effective simulations with good interaction capabilities. What was around back then wasn't great: little interactivity and horrible CGA graphics at 320 x 200 pixels, 4 colors, whereas with the new EGA and VGA cards we could finally work at a resolution of 640 x 480, 16 colors.
I decided to start from Coulomb's law: I thought of simulating a balance (1) with two pans
, on one of which there was an electric charge, while another charge could be moved closer or further away. A ruler allowed distances to be measured. By modifying the value of the weights placed on the other pan, you had to balance the scale, thus determining the intensity of the electrostatic force at various distances and for different charge values. I had to build everything from scratch: the graphics, the physics engine necessary to make the movements of the pans plausible and the results reliable, and the animation. I wanted a sufficiently realistic simulation and therefore it was necessary to correctly implement the solutions of the equations of motion, for which I used Euler's method. Then there was the problem of data processing.
The central idea was that the student, having decided the strategy to adopt (which parameters to vary and how) and having obtained a set of data, would strive, through their processing and subsequent graphical representation, to discover Coulomb's law.
I therefore thought of integrating a spreadsheet, Visicalc or Lotus123 style, but the thing seemed too complicated and the idea frankly a bit too audacious for my capabilities. However, had I succeeded, I would have achieved the important result of creating a self-sufficient educational environment: simulation and data processing without ever leaving the program. A fine challenge! I decided to try, also employing some of the object-oriented programming concepts that I was studying at the time. Thus I created the 'cell' Class with data and methods. It was then necessary to build the table with maximum modularity, so as to be able to reuse the software in subsequent simulations without further modifications.
The cells could accept text, numerical values, and calculation formulas either direct or between cell contents. In view of future developments, I had implemented some functions: exponentiation, square root, trigonometric functions (sin, cos, arctan), natural logarithm and exponential. It turned out to be a rather primitive thing, but amply sufficient for the purpose.
Next came the graphical representation. Creating procedures capable of graphically representing given functions was not particularly difficult. However, it was pedagogically important for the student to write directly the form of the mathematical function, without having predefined objects available. For this reason, virtually all polynomial functions, in addition to trigonometric ones, logarithms, and exponentials, had to be representable. They had to be entered through a text field, which necessitated the creation of a multi-level parser capable of parsing an input, for example, of the type f(x)=1/(x^3 - 3*x^2+1). It was then necessary to 'skip' singular points of the domain to avoid the infamous "Division by zero Error", and find a reasonable compromise between quality of representation and execution time (early attempts were quite despairing from this point of view). Frankly, these were the things I found most complicated. I worked hard and in the end I had my nice working simulation. I must say it worked really well too.
Now it was a matter of figuring out what to do with all that work. I made a demonstrator and sent it to some publishing houses, which, while appreciating it, responded negatively (perhaps also due to previous unsuccessful attempts). Only one, La Scuola publishing house of Brescia, instead of the usual written response, had an official call me, who expressed regret at not being able to publish such a work given the publishing house's current policy. However, they wanted to use my skills by proposing that I write some articles for their prestigious magazine, 'Nuova Secondaria', which I then did.Reading a famous computer science monthly of the time, MCmicrocomputer, I found an advertisement in which a Bologna software house, Simulmondo srl, then a well-known producer of video games, was looking for collaborations for other projects, including educational software.
I sent the demonstrator and a description of the idea. I was summoned to Bologna for an interview from which a project was born involving the publication of two volumes: Physics 2 and Physics 3 on electromagnetism (Physics 1 already existed). I committed myself thoroughly, following the same guidelines. The simulations, however, had to be integrated with text and a series of exercises. Thus I invented a text on three levels connected by 'sensitive words' (today I would call them links or connections) which were scrolled through with cursor keys (no mouse yet) accessing different text levels. Without knowing it (I was not yet informed of what was happening at CERN in Geneva and previous studies), I had built a kind of elementary hypertext. I then added a series of questions with logical and syntactic control of the answers. Thus, within a few months, I finished the first volume, which was published in 1992. I also began the next work, which however, due to internal problems at Simulmondo, was never finished.
For fans of old software or the curious, these programs are available and can be freely downloaded from this site, in the 'materials' section.
Intanto un nuovo interesse si profilava all'orizzonte.
Internet
Between 1989 and 1991 at CERN, Tim Berners Lee and Robert Cailliau developed a hypertext system to facilitate information retrieval and collaboration among researchers, defining both the text formatting language
(HTML) and the transmission protocol (HTTP). On August 6, 1991, Tim Berners Lee published the first website on the Internet. In 1993, CERN waived its copyright, making the World Wide Web (WWW) public. The following year, 1994, the first public access services to the Internet network became available in Italy as well.
In 1996, armed with a 14.4 kb/s modem and a Netscape 2.02 browser, I became part of that just-over-one-million group of Italian netizens. The emotion was considerable upon seeing pages from all over the planet appear on the screen. As was the sense of disorientation. Like when, facing a vast territory, we prepare for a journey devoid of references, directions, or maps. Salvation came (comes) from search engines. At that time, the most popular were Yahoo, which yielded the best results since sites were selected and cataloged by a staff of human editors, and AltaVista, which boasted one of the largest databases on the network. One thing that might strike people most today is the speed at which pages were acquired. To make a comparison: the Commodore 64 image on this page weighs about 60 KB. This means it is encoded with 60 x 1024 x 8 = 491,520 bits. With my modem, it took 491520/14400 = 34 seconds—half a minute—to download it. Today, a 1 Mb/s ADSL connection = 1,048,576 bits/s, allows downloading the same image in 491520 / 1048576 = 0.47 s, half a second! This gives an idea of the progress, but also of how much patience was needed back then...
The curiosity to understand how all this could work was overwhelming. And so I started studying again, learned HTML, and built pages that, however, satisfied me little due to the almost total absence of interactivity. I discovered Javascript (I knew a bit of Java and C: there was some syntactic similarity and that helped me), thus entering, step by step, the world of 'scripting'. I became quite good with web pages, so much so that I could produce a few sites even on a professional level. In fact, for a period I dabbled in site production and consulting.
There were many things to learn, but the bulk of knowledge and solutions to problems were found on the net. This was the revolutionary thing in a sense: the network offered the means to study, understand, and talk about itself. Internet gradually became the greatest source of information and collaboration. Many sites, many people placed their knowledge and work at anyone's disposal, asking for nothing in return. Extraordinary. I only regretted having discovered it late (forms of telematics collaboration and communication had long existed in Italy and worldwide
, for example the 'Fidonet' network starting from 1986 until the so-called 'Italian crackdown' of 1994, and the Usenet network).I was always interested in the possibility of using these new resources for teaching, and therefore I organized an HTML and Javascript elements course for a group of colleagues and some students, who could then use the acquired knowledge for educational purposes.
Meanwhile, the need to understand how the Internet works was leading me toward the study of computer networks. New terms were appearing on the horizon: ethernet, TCP/IP, CSMA/CD, packets, routers, etc.
Server-side, or moving to the other side
I now knew quite a few things: I could design web pages, knew how to upload them to a server, and even had an idea of how it all worked, but what was on the other side of the twisted pair and diligently responded to user (browser) requests to obtain this or that page remained vague and nebulous. The only way to fully understand how things really worked was to manage to get my hands on a server.The opportunity was offered to me, between 1999 and 2000, by a collaboration with a local historical software house, founded and run by a classic genius, as volcanic as he was disorganized. For years he had been working on Unix systems, running dedicated business software that was also maintained remotely via telephone dial-up connections from modem to modem (not yet via the Internet). We joined forces and respective skills to create an e-commerce system based on the Internet. I had to learn from scratch how to configure a server, initially under Unix (we used SCO and Caldera) and then moving permanently to Linux. This was my first approach to open source, to Linux... and to Perl.
The latter is one of the most obstinate server-side scripting languages I have ever dealt with, but at that time it was the one that best allowed us to interface web pages (the front-end of the system) with the powerful relational database that constituted the application engine. The experience was exciting. We worked side by side, often late into the night, sustained also by the enthusiasm of the commercial manager (who later became a great friend of mine), one programming the database, the other finding the necessary Perl solutions: a problem, a solution, a problem, a solution... almost in real time. It was truly reliving the climate of the beginning. Little by little we saw the creature take shape: among the first in Italy, we had managed to create an e-commerce platform, building the web interface completely on our own.
The baggage of experience I gained from it was remarkable, but I felt the need to organize and deepen the knowledge I had progressively acquired.
Security manager
In 2000, it was estimated that in Italy over 50,000 IT expert positions would be missing, capable of operating in the sector of the so-called net economy—that is, the economy utilizing network resources. To limit the damage that this 'skill shortage', as it was defined, would certainly have produced, a pool of banks, led by Sviluppo Italia, financed the "Skillpass" project. The objective was to train free of charge and make operational at least 10,000 experts in one year. Initial selections had to be passed by answering an online questionnaire and sending a resume. I passed the selection and chose the training course for Security Manager, which seemed to best meet my needs. Lessons were delivered via Internet and videoconference by Global Knowledge, while laboratories took place at the Milan office. In practice, I had to follow an introductory course on computer networks, the preparation course for the Cisco CCNA certification (Interconnecting Cisco Networking Devices)—one of the three courses provided for the CCNP (Building Cisco Remote Access Networks, now: Building Scalable Cisco Internetworks)—and a specialized course on security management in Cisco networks. The study was quite demanding, with intermediate assessments at precise and unyielding deadlines. In 2001 I successfully passed the final exam and finally found myself with sufficient skills to manage a medium-sized network by configuring routers, switches, and authentication systems.Part-time network administrator (and zero cost)
Naturally, there were repercussions at school. I insisted on creating an internal network and finally won the argument: mine was one of the first schools to have a classroom wired with an ethernet network with shared internet access via ISDN.With the advent of ADSL, I was able to carry out an idea of mine. I activated the procedures for registering a domain for the school.
I loaded a Red Hat Linux distribution onto an old machine that I painstakingly managed to obtain (resources at school are always limited). I configured Apache, Snort, and Qmail. I installed Rav Antivirus (2) and built a firewall with iptables. Thus we had a Web server, email services with antivirus scanning and, albeit rudimentary, content control at virtually zero cost. It wasn't the best for security (all services on the same machine), but available resources did not allow for more. For several years afterwards I took on the additional burden of the network administrator role. After 2003, I replaced qmail and RAV, which was no longer available, with Postfix and Clamav. I must say with some pride that, besides guaranteeing services for several years, the system withstood several attacks and during that period there was never any viral infection.
Networking Academy
I have always wondered why it is so difficult to introduce innovations in the school world. I imagined there would be a push toward using new technologies in teaching, but it wasn't so. Of course, people were starting to use Internet to search for information, but it wasn't used for proper educational purposes. However, the Internet was also interesting for the technology itself and for the job opportunities it could offer. With one of the few colleagues curious about new worlds of knowledge, I began to look for something to propose, in an attempt to renew obsolete school curricula.We discovered that Cisco Systems, the multinational network equipment company, especially high-end routers, had created an e-learning platform and established what were called "Networking Academy" (3): every educational institution or non-profit organization that wished to do so had the opportunity to become a Networking Academy host, subject to training and certification of at least two instructors at a regional facility. We were anxiously trying to see if anything like that existed in Italy. There was Cineca in Bologna and little else, but the costs required for training were too high. We were about to give up when we discovered that the Veneto Region itself had established itself as a Cisco Regional Academy and was looking, almost desperately, to establish those couple of local Networking Academies missing to reach the minimum number necessary for the project to start. In addition, a non-negligible fact, training would be free for the first ten Local Academies. We immediately contacted the managers and managed to get on the list. The final hurdle was overcome when we convinced a sluggish College of Teachers to approve the project so as to include it in the educational offer plan
.Another demanding period of training followed with continuous tests and exams. We finally achieved CCNA certification and that of Certified Cisco Academy Instructor (CCAI). We were one of the eight schools in the region to become a Cisco Networking Academy, the only one in the province, and we started our preparation courses for CCNA certification for internal and external students.
We tried to train other instructors, but unfortunately none of the colleagues joined the initiative, either because the study materials were in English, or because the subject seemed too difficult, or simply because it was not deemed useful. Even with internal students it was not easy: we managed to establish some afternoon courses and introduce networking topics into curricula, but always with considerable difficulty. The real satisfaction, however, came from external students who, highly motivated, faced evening and Saturday morning classes after work, coming even from distant places. Cisco certification was and still is quite coveted. It is unanimously considered serious and rather difficult to obtain. Many, following our courses, achieved it, and for more than one person this made it possible to obtain better working conditions or even to change (for the better) type of employment. Despite this positive feedback, including the economic income this activity produced (coming only from externals, of course, even if such costs were almost symbolic compared to what external agencies required), the school never understood the potential offered by those projects. It did not seriously promote them, preferring to commit energy in other directions, less oriented toward innovation and new educational proposals.