Talk:Federico Mena

es.wikipedia.org (via translate.google.com)
Federico Mena Quintero (born in Mexico, July 29, 1976) is a free software programmer. Among his main contributions is the foundation of the GNOME project together with Miguel de Icaza in the year of 1997. He writes free software for SUSE, on the infrastructure for the GNOME Project, on the openSUSE distribution of GNU/Linux, and on the SUSE Linux Enterprise Desktop product, and works on the GNOME Performance Project, and works on GTK+ and worked on the openSUSE Board    and now only maintains librsvg, a small library to render SVG files.

Career
Mena Quintero met Miguel de Icaza while studying at the Faculty of Sciences of the National Autonomous University of Mexico, where he also worked at the Institute of Nuclear Sciences of the university. He began by temporarily coordinating the development of the Gimp program. Once the Gnome project was founded (and while he was developing the Gnome Canvas program ), he was invited to collaborate in the laboratories of the Red Hat company, where he perfected Midnight Commander , a file manager.

After leaving the American company was hired to develop the Evolution calendar, one of the main products of Ximian, the company formed by Miguel de Icaza and Nat Friedman. After the sale of Ximian, he became part of Novell, where he collaborates in perfecting the tools of the Gnome project.

He currently lives in the city of Xalapa, Veracruz , with Oralia Silva, his wife. His other interests include traditional woodworking, cooking, vegetable gardening, piano playing, and architecture/urbanism.

Autobiography by Federico Mena Quintero, September 2003 (via translate.google.com)
Congreso Nacional de Software Libre de Chile: Autobiografía de Federico Mena

http://conasol.utalca.cl/biografias/federico.html

When I was in high school, in the afternoons I would start programming instead of doing homework at school. At that time I was very interested in computer graphics. I used a 386 PC with DOS and Turbo C. Manipulating images was a problem because of the limitations of a 16-bit operating system and compiler --- most of the images are larger than 64 KB, and it was difficult to handle large data in that environment My friend Max de Mendizabal recommended me to use the GNU compiler, as well as an operating system called Linux, because both worked in 32 bits and then it would be possible to access very large data sets without doing anything special. I was interested in the idea of ​​the compiler, but not so much to change the operating system.

It was then when I entered the Faculty of Sciences of the National Autonomous University of Mexico (UNAM). That's where I had my first contact with Unix systems. The laboratories of the Computer Science career had a lot of X terminals connected to a server running Solaris. I had always wanted to learn to use Unix, so I started reading about the system.

When I had access to the Internet from the school, I was able to download the GNU C compiler for my home computer, in the DJGPP version for DOS. I installed it and re-wrote my small image manipulation programs to use a 32-bit memory space, and that's how they simplified a lot. The nice thing about this is that they could also be compiled without changes in the Unix machines of the Faculty. Working in Unix was much more pleasant than in DOS, so it made me want to get a Unix for my house.

In the School I met Miguel de Icaza and other Linux miscreants, who convinced me to install Linux in my house. I got a small borrowed hard drive and I put a version of Slackware. A year later I realized the big mistake that this had been and installed Red Hat Linux.

I had told Miguel that I had plans to write a program for image editing. My idea was to make it big, like Adobe Photoshop, with plug-ins and sophisticated tools. However, at that time I had no idea how to organize a project of such size, so I never wrote anything useful. Miguel told me about the General Image Manipulation Program (GIMP), which was a new project at that time, and he recommended that I review it. So I did and I started to see how the plug-ins were made. At that time the GIMP used Motif for its graphical interface, because the GTK+ library did not exist yet. As we did not have a Motif license to recompile the GIMP, we downloaded a pre-compiled version. The original GIMP authors had the good idea to write the core of the program using Motif, but it was not necessary to have a license from it to recompile the plug-ins. In this way one could write new filters freely.

The first thing I did was subscribe to the GIMP mailing list and re-write my swirl distortion filter to work as a plug-in. I sent it to the mailing list. The next day, I got a wonderful answer that made me want to continue with the project: the GIMP authors had loved my Whirl filter, and they asked me to write more --- it was the first filter written by a person who was not of the original authors. I re-wrote the rest of my filters to work as plug-ins and that's how the project started to grow. I could not contribute to the core of the program because I did not have a Motif license, so I dedicated myself to helping other people to write plug-ins on their own. So I met a lot of hackers interested in computer graphics, and I also learned how to work on a large project with many participants. Before getting involved with free software, I had a hard time reading source code written by other people. When I studied GIMP, I learned to read other people's code and to see how other people would solve problems differently than I would have done. Just as different writers use different styles for their descriptions, programmers use their preferred techniques. Free software taught me that there are many ways of doing things.

I had read the GNU Project Manifesto and other important documents and I agreed with what they said. Richard Stallman came to Mexico a few times to give lectures, and meeting him in person was quite an experience. It was wonderful to see that a great programmer was interested in the projects of oneself, because these would help the cause of free software.

A couple of years later, the original authors of the GIMP disappeared from the face of the earth, or rather they got a real job in a company. Since they no longer had time to maintain the project, they passed me the courier and I was in charge of the GIMP for just under a year. The development was accelerated because I tried to do it similar to the Linux kernel. I dedicated myself to review the patches that people sent to the mailing list and to install the useful patches; I also took care to release new versions frequently so that people could try them. By then the GIMP had been rewritten on GTK +, so everyone could recompile the core of the program without having Motif.

The original GIMP authors demonstrated that if it was possible to write free software for end users --- the GIMP is not a system tool like the C compiler or a text editor, but it is a program for graphic designers, artists and people who make web pages.

As a separate project, Miguel and Elliot Lee had discussed writing a series of libraries with useful tools for general-purpose applications: functions for saving a program's configuration, printing functions, and file manipulation. Hence, nothing came out but good ideas. The intention was for Unix programs to share functionality, instead of each re-implementing things like their own configuration system.

Some time later, Miguel went to visit a friend at the Microsoft campus in Redmond. He returned very encouraged to know the way in which Microsoft developed software on a large scale, based on a system of components.

The GIMP plug-in system was based on a "procedural database", PDB, or database of functions. There was a list of functions registered in a database, and any part of the program, even the plug-ins, could call those functions to modify images. When writing a new plug-in, one would register its functions in the database, and these in turn could be accessed from any part of the program. To make a system of components, we wanted to do something similar to the GIMP PDB, but with operating contexts for the functions so that it was like a small object-oriented system. We made some designs on the blackboard and later someone told us, "This looks like CORBA, why do not you use it?" The project ended there, because we had no idea what they were talking about.

The KDE project was beginning to become known. Miguel installed it and saw that it was a wonderful thing: a complete and consistent graphical interface for Linux. Later we learned that KDE depended on the Qt library, which was not free software. Therefore, Linux distributions could not redistribute it. Seeing that it would be impossible to change the Qt license, the GNOME project started, with the idea of ​​writing a graphical environment and a component model based entirely on free software.

The GTK + library was no longer exclusive to GIMP and other people had written graphic applications using it on their own. The first versions of GNOME were some small libraries of utilities, taken from the code of the file manager Midnight Commander, and some utilities so that using GTK + was easier. We created a CVS deposit and mailing lists for the programmers. From the beginning we included libraries to use GTK + from Guile, a Scheme interpreter, and from Objective-C --- we wanted people to be able to use their favorite programming language instead of forcing them to use only C. An example of this is that the first version of the program to configure the screen saver was written in C++, the program of network utilities was written in Scheme, the program to manage print queues was written in Objective-C, and the client of "talk" was written in C.

GNOME started to grow very quickly, and for version 0.13 it was necessary to break it into pieces. Originally everything was distributed together: programming libraries, utilities and the final programs. After version 0.13 these parts distributed separately. Over time we learned to coordinate the versions of the libraries with those of the programs, so that people would not have to "chase" the latest versions all the time. We started using the Debian bug database, Debbugs, and some time later we used Bugzilla.

The first experiments for a component model were with Mico, a terribly large and slow implementation of CORBA. Elliot Lee then devoted himself to writing ORBit, an implementation of CORBA in C that was very small and fast. When it was ready, it began to be used little by little in the rest of GNOME, starting with the control panel. At first we did not have standardized programming interfaces for the components; later Bonobo emerged as the foundation of the GNOME components.

Red Hat offered me a job and after several months of paperwork and bureaucracy to obtain a visa for the USA, I went to work there in the summer of 1998. I worked in Red Hat Advanced Development Labs, where I finished writing the GNOME-Canvas and the Gnome-Calendar that Miguel, Arturo Espinoza and I had started writing in Mexico. Then I had to work a lot in the Midnight Commander to make the GNOME file manager stable and robust. Working on the Midnight Commander made me learn a lot of things about user interfaces --- I had to study how the Windows Explorer worked to see how they made their user interface feel so well polished.

My visa to be in the USA was a training visa, then it had a maximum duration of 18 months. After finishing my period in Red Hat, I returned to Mexico and then I went to Boston to work in Helix Code, then Ximian, and now Novell Ximian Services.

In Ximian I started working on the Evolution calendar, based on GNOME-Calendar. The architecture of Evolution is very different from the original program, so we had to re-write large pieces. Working with people who are exclusively dedicated to designing user interfaces was very interesting; previously the presentation of the programs had always been designed ad-hoc and that does not always work well. After Evolution I worked for a while in Ximian Desktop, fixing bugs in the GNOME programs and doing tasks to integrate them in our distribution.

I also worked with Michael Meeks on OpenOffice.org, which was very different from GNOME. OO.o has a philosophy and history completely different from what I was used to: it is a very old program with an extensive history. By reading the code you can see the old, ghastly and cobwebbed parts, and also the new parts that are written in a cleaner style and closer to what we are used to. Working on a project of this magnitude can be overwhelming, but it gives you a different perspective. Now that OO.o has been released as free software, the community has been cleaning the code and making it better integrated with the rest of GNOME.

I am currently working on the GTK + library and the rest of the desktop. My job is to take the tasks in GTK + that the main developers do not have time to perform. Right now I'm working on the new file selector for GTK +. I should be ready in a few weeks, and after that I will work on integrating Bonobo with the new menu system in GTK +.

69.181.23.220 (talk) 23:23, 8 April 2018 (UTC)