Canada

After the third semester of my undergraduate degree, I spent a term in Montreal, Canada, because my mother was doing a postdoc at a university there. She traveled first; my brother and I stayed in Brazil and joined her in the summer. Before the move, we started preparing to continue studying in Montreal: we researched universities, evaluated courses, took English classes, and got ready for the TOEFL exam. It was a bureaucratic process, with translations and documents issued through the UFMG registrar’s office, but in the end I was admitted to the Computer Science program at Concordia University.

On the day of the trip, we boarded a flight to Montreal with a layover in Toronto. We cleared immigration, paid for a luggage cart, and soon realized we had very little time to reach the gate for the connection. We ditched the cart right there, ran up the escalator, and still managed to make the flight to Montreal.

A few days later, I went to check out the university. Concordia had a welcome program for international students, and there I met people from all over the world. I made friends with Brazilians who had just arrived, others who already lived abroad, and a guy from Colombia who was there to study cinema. I thought that was a pretty bold choice of degree, but we became friends. I also met Ricardo, the son of a UN staff member posted to a conflict-ridden African country. Since the family couldn’t stay there, they moved to Canada. His mother made pão de queijo with Gouda cheese (a very rare thing in Montreal at the time), and we’d make the most of every batch.

My mother became friends with a Computer Science professor at Université de Montréal (UdeM), and he invited me to visit the Computing Department. He also lent us an old Macintosh — my first encounter with a Mac and a return to the Apple universe after many years. The computer had a modem, and since local calls were included in the phone plan, it allowed me to connect to the university.

The Mac became a daily tool. I would telnet to my UFMG account and use talk to chat with my friends in Brazil. I also used it to keep up with the classes at Concordia. One of the courses was a C lab using Turbo C, focused only on exercises with help from a teaching assistant.

On one of the assignments, I needed to read data from a file and created a function called read(). The program kept throwing errors and exceptions, and I couldn’t debug it. Not even the course TA could figure out why. When I took the code home to keep trying, I compiled it on the Mac and the compiler immediately flagged the problem: I had redefined the read() function from the standard library. Name conflict. Turbo C ignored the issue and crashed at runtime. It was the Mac that saved my assignment.

I also took classes with access to the university’s central computer, a VAX. That was the only contact I ever had with that kind of machine. My impression was that it was something between a mainframe and a PC.

When the time came to go back to Brazil, we knew we could ship our belongings. Computers were very expensive in Brazil, so we decided to bring one with us. We invested in a good machine that would last many years: a 486 with SCSI drives (usually pronounced “scuzzy,” although its creator reportedly wanted it pronounced “sexy”) and the OS/2 operating system. OS/2 was a system IBM launched to compete with Windows, and it could run both native and Windows programs, bringing the best of both worlds. At the time, the IBM ad said OS/2 ran Windows better than Windows (which was probably true). We also bought an inkjet printer, a very recent technology.

That computer lasted years. Once in Brazil, we tried to install Linux, but there were no drivers for our SCSI hardware. So we migrated to FreeBSD, which worked perfectly. That was my gateway into the BSD world, which would later include my OpenBSD phase. But that is a story for another chapter.