What follows is an e-mail interview with Bernhard Reiter and Bernhard Herzog of Intevation, a German free software company. Bernhard Herzog is also the author of Sketch, a vector-graphics editor written in Python.
What follows is an e-mail interview with Bernhard Reiter and Bernhard Herzog of Intevation, a German free software company. Bernhard Herzog is also the author of Sketch, a vector-graphics editor written in Python.
Subject: Re: Interview Questions
Date: Wed, 5 Dec 2001 16:52:27 +0100
From: Bernhard Herzog
To: Scott Johnston
On Thu, Oct 25, 2001 at 11:40:05AM -0700, Scott Johnston wrote:
> Take your time filling in your responses, and enjoy.
Here, finally, are the answers. Bernhard Reiter's answers are prefixed with BER:, mine with BH:.
Scott: I'd like to start with Bernhard Reiter. How did you get your start in computing? How did your career evolve to the point of founding a free-software consulting company (Intevation GmbH)?
BER: A question which could lure me into answering in full novel size, but I will try to restrict myself to just a few sentences.
It must have been around the age of nine when I saw the first video game consoles you could buy in stores in Germany. And I thought to myself: I want to know how this thing works. I specifically remember my family owning an atari 2600 console and playing Vanguard. Around eleven I started programming on a ti-99 4a home computer, later I switched to the commodore amiga 500. Of course this did not stop me from playing around with other types of machines. As there were not that many computer games around, programming was almost the nicest game you could have. Today I know how computers work.
Now how did all this evolve into founding Intevation with two friends? I am a scientist by heart. Computers are tools for me. As tools computers are very universal, almost as important as written speech was for humankind. I see computers at the heart of science and society and therefor improving them has a high potential of good effects. Being a scientist you can write nice books or articles about this (and other topics like how to be fair to nature and our environment), but many people will not listen to your arguments and ideas unless you've managed to get a very high profile. So I wanted to take up the challenge and show that my ideas are also viable in the commercial world. The time was right, the conditions were good and with help of the Institute of Environmental Systems Research at the University of Osnabrück, Intevation was born. We have existed for 2 years now, which is still the initial setup phase for a young company. One thing can be said for sure: Free Software is the future of IT and we are among the pioneers to make it work commercially. Otherwise you might not be caring for my answer to this question... :)
Scott: And then I'd like to ask much the same of Bernhard Herzog. When did you start programming? How did your career evolve to the point of writing a free-software vector-graphic editor (Sketch)? What brought you to join Intevation?
BH: If I recall correctly, I started programming or at least learning programming when I was in 8th grade on the Apple II we had at school. That was in 1984 or so. In early 1985 I bought my first computer, a Schneider CPC 464 (a Z80 based home-computer developed by Amstrad in the UK and sold in Germany by Schneider). I programmed it in Basic at first, but quickly advanced to assembler because I wanted better and faster graphics than the built-in BASIC dialect provided. At school I had some courses involving Pascal and even 8086 assembler.
The highlight of my programming hobby was a game for the CPC written mostly in assembler which I sold off to a magazine after working on it off and on for about two years.
Later, I studied physics at University and for the first 5 semesters I didn't even have my own computer and didn't program much anyway, until I bought my first PC in 1993. At that point I learned C++ and programmed a bit under Windows. My diploma thesis, finished in 1996, was in an area where image processing and statistical physics overlap (markov random fields) and it brought me to the Philips Research Lab in Hamburg where I programmed in C/C++ on Solaris. About that time I discovered Free Software and switched to GNU/Linux at home.
It was also the time when I started to think about writing a vector drawing program. I needed a vector drawing program to create some figures for my thesis. The only program installed on the system I used was XFig and I wasn't really satisfied with that. I searched for other free vector editors but didn't find one that was substantially better in terms of features. None of them offered gradients or even full control over the bezier curves. So I thought maybe I should write one myself, partly because I thought it was needed, but also because I was curious what it would take to write one.
I came to Intevation after speaking with Bernhard Reiter at the LinuxTag in Stuttgart last year. I knew him from the Python newsgroup and some mails we had exchanged about Sketch. As it turned out Intevation was already using Sketch and they were looking for a software developer. I liked the opportunity to work full-time on Free Software and through Sketch I already had some experience in Free Software development, which was something they were also looking for.
Scott: <The rest of the questions are for either or both of you. Respond however you please.> Where does Intevation stand on the issue of copylefted free-software (i.e. GPL, LGPL, etc.) versus non-copylefted free-software (MIT/BSD)? How has this position been influenced by your customers? By your involvement in FSF Europe?
BER: Intevation is a service business, we recommend only the best for our clients. Most important for us is that we recommend Free Software. The choice of the license is secondary. We have a tendency to choose a license which protects the freedom of the software best like the GNU GPL. There are reasons to choose a license with less protection of the freedom like the GNU LGPL from time to time. This has to be looked upon on a case to case basis. Being consultants we naturally work with our clients to come to a mutual agreement regarding licensing. They have no problems accepting the GNU GPL licence in principle when they understand the benefits. There are not many places that you can get the full story on the ideas and effects behind the different Free Software models so our clients really appreciate our expertise here.
The FSFE works on the long term view of Free Software and the research I personally do around this topic has been proven fruitful for the FSFE and Intevation GmbH. My main task as a managing director of Intevation is to make sure the company is viable, this includes that my ethical values are respected. As member of the FSFE coreteam and coordinator for the Germany my highest goal is to long term preserve and further Free Software and contribute to its philosophical base.
Scott: Can you go into a little more detail on the free-software business model Intevation is pursuing. I see your accepting donations and selling CD-ROMs. Where does the bulk of your revenue originate?
BER: Intevation is a service company. Our goal is to build high end solutions for preferably challenging problems. This does not necessarily involve computers. The process of solving a problem completely starts at the problem definition. To have a good IT infrastructure for a company depends a lot of the cooperate culture and the established routes and ways of internal and external communication. This is much more than just computers, in fact it is my hypothesis that "Software is a communication problem." Therefor Intevation sometimes sees itself being a "high-social-tech company" as opposed to "just" a high-tech company. Community management, the layer between developers, scientists, management and users are topics were we feel at home.
Now you might have an idea why I hesitate a bit to just call this a business model which is based on Software. Our revenues in the end come from the ability to solve complex problems. We have three business areas: Strategic IT consultancy, usability design and Geographic Information Systems.
As I said as an answer to an earlier question we are still in the setup phase of our endeavour. Each project we did so far had unique edges to it. We make revenues with customisation of Free Software and new developments mainly in the area of GIS and web mapping right now. Additionally we do project management on a couple of projects related to email-security. A couple of nice concepts for IT-solution also left our doors.
The FreeGIS-CDs and our offerings for mini-payments are experiments. We are not making profit on the CDs nor the FreeGis.org website yet. It shows our competence to build up a leading portal and community around a Free Software subject. Hopefully people will notice that freedom is worth money to them and pay us for more Free Software development and service.
The mini-payments are not really donations to be precise, but a way for a mass of private users to steer development. It might be a future business model so let me explain it a bit: In paying, users reward the developers for the software and information already received and make sure that the quality of the product will be kept and new developments pursuit. Private users even have the freedom to choose how to "pay" for the software: Contribute to the projects by themselves or initiate a mini-payment over the justified amount. This is a lot better than proprietary software as you can choose the amount yourself after you have had a chance to test how often you use the product and how useful it really is. For some users like bigger companies or graphic professionals a software like sketch can be tremendously useful so they ought to contribute a lot more than somebody who only occasionally uses it for something minor. The only person to really judge this is the user. For the future I hope that people feel morally inclined to give back to the Free Software community and choose the best way.
Scott: What are the primary programming languages and/or environments you employ for your consulting work? Do you have any observations on the value of compiled versus interpreted languages to your customers? What do you think of Java?
BER: I think Java is a bit over-hyped. The language itself is not bad, but right now there is no up-to-date Free Software tool-chain for Java. This is a major concern for us. Sun seems to change Java so fast that I miss some of the stability I demand from a programming platform. Productivity and cross platform suitability is higher with Python anyway.
Because Intevation employs long time developers, we are able to do project involving Java or various other languages when the demand arises. We already did a Java project related to 3D visualisation.
BH: In the projects I have worked on since I started at Intevation a year ago I have used mostly Python and C, although two projects also required a bit of C++.
In the cases where we had an influence on the implementation language we often chose Python and so far our clients have apparently been happy with that choice. In one case, for example, they were surprised how easy it was to understand the code and make modifications.
Java hasn't been very successful in the Free Software world. I'm not exactly sure why, but the important factors are probably that there's no good free implementation yet and it's controlled by only one company. All the hype around java doesn't help its acceptance either. On the whole it doesn't seem to be a good basis for Free Software at the moment.
Scott: You offer general free-software consulting services, which must include consulting on applicable software engineering techniques. What methodologies do you value most: OOD and OOA? Design Patterns? Extreme Programming? Object-oriented Application Frameworks? None of the above?
BH: Since we promote Free Software, we prefer methodologies that fit the Free Software development model. An important part of that is it's important to have some working code when a project is published for the first time. Extreme Programming is a good fit for that because among other things it emphasizes unit tests, promotes understandable and extendable software and provides for changing requirements. All of that is especially important because if a software package is successful users will want to extend or modify it and they probably have different requirements than the original developer or customer.
The other methodologies you mentioned also have their place, of course. They're useful, for instance, in documenting the current state of the software or to determine where you want to take your project and how to get there.
BER: In my view literate programming is very interesting. A program has to be clear and enjoyable like a good building or a nice story. Prof. Joseph Weizenbaum once answered as part to a question on how to teach good programming practice along the lines of: "If you are unable to tell a good story in your native language you will also be unable to write a good program." Extreme Programming has some feature, though not entirely new, that help in that spirit to construct software. For example like to repeat: test a little, code a little. This is also the way Free Software development works best to foster collaboration with external developers. Make something a bit useful and publish it soon.
Good application frameworks can be of help, but I am not a friend of too much formal design overhead or baroque class libraries. The best application framework I saw so far was the one from NextStep done in Objective-C. These people knew what they were doing and it is sad and a mistake that Sun later dropped the Openstep initiatives and strongly supported Java if you ask me. Fortunately the concept will live on in the Gnustep-project.
Scott: Where is the action in the world of free-software for geographic information systems? How close in features is the free-software GRASS to the proprietary ArcInfo? What is the state of interchange utilities for vector, raster, and elevation data? Are there any actively developed interactive 3d terrain browsers with close to real-time performance (like what we did at Vectaport with vhclmaps demviewer -- http://www.ivtools.org/vhclmaps/demviewer.html), so you can take that first-person shooter game into the real world?
BER: That is more than one though question, Scott. ;-) Let me answer them one by one.
To point at a specific task and say: That's were the action for Free Software and GIS can be found is just not possible. We are regularly discovering new projects and add them to our FreeGIS overview. With over 141 entries at the time of writing it is not serious to claim a deep understanding of all project activities. Webmapping being a relatively new area has seen a nice amount of activity. I would also keep an eye on the PostGIS and openmap development. The former showing that heavy geo-dataprocessing will be addressed by Free Software and the latter as example for the fast growing freegis codebase in Java.
GRASS certainly is the heavyweight of Free Software GISs. I am not in a position to directly compare it to other proprietary GIS packages as I have stopped using them a while ago and the ranges of applications are very broad. I think that GRASS' functionality will generally match up to ArcInfo's capabilities. However GRASS is not a drop-in replacement. When you want to solve a specific case it might be easier with one or the other. In the mid run the freedom of GRASS will come out first.
It is a bit the same for interchange utilities. I find that interchange of the various datatypes and formats usually means that you need a good solution for one out of thousands of combinations. So often you end up writing your own scripts doing this. The Free Software source code pool is the best start for this.
Technically first person 3d shooters use special optimisations to make it a good gaming experience in moving through a world. This is not suitable for a GIS as the priority is precision over experience. Note that nviz from GRASS also uses OpenGL to render DEM and more and can be used to create fly-overs. The projects kdem and g3dmgv are not overly active. If I'd wanted to go there I would look in the direction of the FlightGear and its accompanying Atlas project:
Scott: How has your experience been selling the FreeGIS CD-ROM's? What techniques did you use for binary distribution? What sample geographic data are available on the CD-ROM?
BER: In general we do not get much feedback about the CD, though we already sold about 250 of them in six editions in addition to the ones we give away. Last year the version 1.0.4 was distributed to more than a thousand people who get the Delug-CD accompanying the German LinuxMagazin. If we do get feedback it is positive.
On the CD you will find redhat packagemanager v3 binaries for a GNU/Linux System for intel and the sources. We test the resulting packages on a number of widely adopted GNU/Linux distributions including Debian. The CD v1.1.0 includes the GMT data that is vector data covering the whole planet, 30 arcseconds DEMs GLOBE (G.O.O.D.) and a crude gmap example for Alaska.
Scott: Sketch is a full-featured vector-graphic drawing editor mostly written in Python (with certain primitives coded in C for better performance). Were you at all surprised you could write a pleasing graphics editor in a scripting language, and to what technology (beyond your own programming skills) do you attribute your success?
BH: When I actually started development, I was already pretty sure that Python would be fast enough for my purposes. At that point I had already been thinking about writing a drawing program for more than half a year and I had discovered Python during that time. I thought that Python would be the ideal language for Sketch and a two language design appealed to me because I'm a big Emacs fan. So I had already decided that I would write it in a combination of Python and C and if anything would turn out to be too slow in Python it could be replaced by some C-code.
What did surprise me was how little I actually had to do in C for speed reasons. For instance, I wasn't sure how much of the custom drawing code I needed to write on top of Xlib could be done in Python. Currently, the most important part of it that had to be done in C was the flattening of the bezier curves.
I'd attribute my success mainly to Python. In fact, if I hadn't found Python or if it had turned to be too slow after all, I might never even have started to write Sketch. What was particularly useful for Sketch was and is that it's very easy write C-modules for Python and that the language is very dynamic which makes it relatively easy to redesign a program.
Scott: Like I said, Sketch is a full-featured drawing editor, with gradient fills, align-to-path, etc., yet the version number is definitely down in the sub 1.0 basement (0.6.12). What feature set or quality will convince you to increment the version number to 1.0? How are you dealing with (or planning to deal with) anti-aliasing and alpha-transparency?
BH: The first version I published was more or less arbitrarily called 0.5 because I knew that it was quite usable already but it was also clear that some important pieces were still missing. The most important missing pieces are better text support, alpha-transparency and support for more color models, especially CMYK. Whether all of that will be in 1.0, I don't know yet. It depends on how much time I and more importantly others will have to work on it.
The current plan is to complete the GTK port and get to a stable 0.8. At the moment it seems as if there may be better builtin text support in 0.8 as well. The 0.9 development series will probably concentrate on color models and transparency.
Regarding the text-features I should point out that the next 0.6 release will contain a multiline-text plugin object contributed by Cristof Ecker. Another text-object has been developed by Mark Rose with word-wrapping and support for advanced fills like gradients at the character level. This may well serve as the basis for the text object in 0.8.
Anti-aliasing support for the display and raster export will be in 0.8 as well, since this is partly available in 0.7 already, thanks to Raph Levien's libart.
Scott: Right now Sketch is in a migration from Tkinter to GTK, which makes the completion of the migration the primary goal for the next stable version (0.8) Just curious why the switch?
BH: The reason for choosing Tkinter in the first place was that it was and is the one GUI toolkit that comes with Python so there's a high chance that if some one has installed Python they'll also have Tkinter. Before that Sketch was using the Xextension, a python module for direct access to Xlib and Xt based toolkits such as Athena. Tkinter was a substantial improvement over that, both for me as the programmer and the users. The only downside was that I had to port parts of the Xextension to Tk so I could draw directly on the screen. GTK wasn't ready yet at the time (summer 1997) and I wanted to spend my time on Sketch, not on debugging the toolkit. :-)
After I had released the first public versions in October 1998, the feedback I got from users suggested that many would prefer a GTK-based version over a Tk-based one. There were also some things I didn't like about Tkinter, such as the fact that it contains a full tcl-interpreter (which I can't blame the Tkinter developers for, though) and that the standard widget set was comparatively limited. GTK offered more widgets (e.g. a tree widget), possible cooperations with GIMP and optional integration with GNOME and the hope that it would make it easier to find co-developers.
Scott: I'm almost done. Any questions you wish I'd asked?
BER: If you ask me about the currently highest dangers for Free Software regarding FreeGIS, business and Sketch I would answer that it is the threats to our freedom to develop and use such programs. There are various political dangers in form of patents on software or practical restrictions on general copying devices (like computer) or doing research on cryptography. We all have to fight these tendencies also on a political level as the technical angle will not be enough. Let me give you a few links:
Resistance against patents on software in Europe: http://swpat.ffii.org/indexen.html
Article: "Copyright Extensions threaten Free Software in Europe" http://silvaneves.org/eucd/eucd-fs.en.html
Campaign for Companies speaking of Free Software: http://www.fsfeurope.org/documents/whyfs.en.html
Scott: To close, I would like to throw out a list of alternatives, to which you can quickly respond any way you want. Remember "both" is a perfectly valid answer (as well as "huh?"). Have fun.
Linux or FreeBSD? bh: Linux ber: GNU/Linux
Suse or RedHat? RedHat
GNU/Linux or GNU/Hurd? bh: GNU/Linux ber: both
Deb or Ian? Debian
Python or Tcl? Python
C or C++? C
UTM or Digital Degrees? Digital Degrees
Latitude or Longitude? both
Unidraw or HotDraw? bh: Unidraw ber: huh?
Vector or Raster? both
RGB or YUV? RGB
2D or 3D? bh: 2d ber: both
For more news related to free software and vector-graphics keep your on eye on the vector-graphics foundry at sourceforge:
Other links related to this article:
First off, thanks for posting, it was interesting to read.
It always irks me when I see someone call Python a scripting language. It is very easy to use to script things, but it is a complete language in all respects (as is Perl which also gets the sad "scripting language" label much of the time because it is so often used in that manner). BH answered well; python makes large application development possible in a very short amount of time.
Well, Python is a scripting language. There is nothing wrong with that... (Python is also for general purpose)
You don't use C to script applications, normally, but you do with Python. Not that Python can't be used for other things (Sketch is an excellent example)
New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.
Keep up with the latest Advogato features by reading the Advogato status blog.
If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!