Interview with Teo Fonrouge

José Luis Sánchez
Harbour Magazine
Published in
6 min readSep 19, 2018

--

In this new interview Teo Fonrouge talks about his beginning in programming, his contributions to the Harbour project and share with us his vision about it.

Hello, my name is Teodoro Fonrouge Orozco, I was born in Mexico City, but for some reasons my bithday card says that I saw the first light on October 26, 1966 in the city of Acayucan in the state of Veracruz, and actually I have always preferred to think that my land is Veracruz … :-)

I currently live in a town on the outskirts of Mexico City, where I believe that people live more calmly there than in the dizzying and crowded city, talking about my children I have 4 girls and 3 boys …

My relationship with computers goes back to 1985 when I was just about to turn 19. On one occasion, I went with my parents to a large departmental store, one of those that sell you from a kilo of vegetables, to the latest technology … and indeed , what I saw at that moment made a great impression on me: a Commodore 16 computer, it was love at first sight … :-), although a bit strange love, since at that moment I had no idea what can I do with a computer, if I did not intend to send a manned vehicle to Mars! … since at that time, that was what I thought was the only thing for which the computers served …. Hahaha

I got my best grades at school in math, and something told me that maybe, with a little luck, I could have a computer serve as a support for students to learn calculus, algebra, or at least to teach addition and subtraction, or maybe to have a conversation with her … :-D

So I begged my father to buy me that thing to study it carefully at home, which I eventually achieved after spending a whole month making merits for him to do it … Now I feel immensely foolish, but the first thing I did was to have the computer at home, was to write a question on it: ‘when did Cristobal Colon discovered America?’ and give it <return>, and I was amazed when read its answer:

? SYNTAX ERROR

READY.

Well, from there, somehow that’s the answer that I have most frequently obtained from all the computers I’ve worked … hahahaha

After several weeks, I achieved to write a small program that made geometric figures on the screen and sent them to an ENTEIA printer (compatible with Epson) with a mixture of code in Basic and assembly language 6502, after all it only had 16kb of RAM memory available that I had to share for the program and the data of the drawings, which were basically stored in a segment of memory that represented the graphic image on the monitor, well on my mother’s television at the time … With that program I presented myself at the offices of the company that then commercialized the Commodore computers, I was lucky that the director attended to me and I showed him my creation … he asked me “how much do you want?” and I said “I want to work here …” that was my first formal job, but a couple of years later I left the company and set up my office as an independent consultant.

My first contact with the Clipper language was with one of the companies that I gave consulting services, they had a small program written in Clipper to control inventories, which required some changes and extensions, since the programmer in charge abandoned the project. My first contact with Harbour was in 2004, and actually it was with xHarbour his roguish son :-), at first I paid to use the service of xharbour.com and shortly after I started using Harbour, and I no longer saw reason to pay for the service.

From the moment I started using xHarbour, and then Harbour, I got involved a little with the user community, asking questions and sometimes providing answers.

I decided that my best way to contribute to the Harbor community was through some project that the community could take advantage of, so in 2006 I started writing wxHarbour (https://sourceforge.net/projects/wxharbour/), a simple port of http://wxwidgets.org a multi — platform GUI for Harbour.

I also did an exploration to use Qt as a GUI platform for Harbor (qtHarbour), but I soon realized that I should rather direct efforts to simplify the logic behind the data structures of my applications, besides that Qt is not for nothing light.

In 2012 I started the OORDB project at sourceforge.net, then I moved it to GitHub (https://github.com/tfonrouge/oordb), with the purpose of managing relational database tables in an object-oriented way, since I think that this can greatly simplify the design, development and maintenance of complex data structures. I currently use this scheme in an extensive production planning and control project for manufacturing companies, this application is currently running and contains complex data structures as an association of data tables with structure lists of components, manufacturing operations, centers and work areas, issuance of production orders / work orders from a schedule of deliveries of orders to customers. Additionally maintains information on industrial monitoring of machinery in real time, using Arduino’s connected to stations running with Raspberry Pi hardware. The info can be consulted in real time over the internet using a web service:

Without a doubt, OORDB has allowed me to simplify the programming of this project in a structured way, managing classes that represent documents (a work order, an inventory element, etc.) that allow subclasses to be created to specialize a specific type of document, additionally, it allows the description of fields, description of indexes, and descriptor of relations master <-> child between the tables.

So now I do not need a multi — platform GUI for the interface of my applications, for that I use simple java script (AngularJS) making requests to a data server using a RESTful model where JSON documents are exchanged between client and server.

Since a little over two years ago, I have been working to migrate my xBase databases to a more robust container, and with more features, so I chose MongoDb, so I started writing a port of the MongoDb C Driver for Harbour ( https://github.com/tfonrouge/hbmongoc) and I have been integrating the driver to my OORDB.

I am currently in the process of migrating my data structures from xBase to MongoDb using OORDB with very good results, and migrate the development environment of this manufacturing application from Harbour to Java. For this I have already developed in Java an application integrated to the excellent IDE IntelliJ (https://www.jetbrains.com/idea/) that allows me to automatically generate the code of the descriptors of tables, indexes, relationships to replicate my structures and logic of data from Harbor OORDB to Java, is a version of OORDB that I am writing for Java.

My purpose is to move the development of this manufacturing application to Java / MongoDb.

Harbour is an excellent programming language, however it has some drawbacks that are critical in my business structure. I think the main drawback is the lack of core-developers (I think they are so few as hand fingers) to solve problems, bugs in the compiler and implement improvements. And sometimes you have to invest time to solve some of the problems, when what is required is to focus on the development of the application.

An IDE like IntelliJ would not hurt :-)

A more extensive and united community would not hurt, we have Harbour and xHarbour …

I know, and I have programmed in many other programming languages ​​for my clients throughout my work, but lately I have been doing more centralizing my projects in Java / JavaScript.

Although I think I lack time to develop some other areas, such as Expert Systems with AI …

Anyway … at some point I’m sure it will happen.

A hug to the entire Harbour / xHarbour community

--

--