Lost in (S)hell

Yesterday I found a cute OpenSource SVG editor called InkScape that runs on X11. After I played with it for a few minutes I decided to explore the source. I got the thing from Subversion, checked out the readme files and bravely (or innocently), I ran ./configure in my shell, just to realize I was missing a Perl XML parser. Ok, that sounds like fun I thought. A little research about Perl modules led me to the CPAN (Comprehensive Perl Archive Network) module, a useful utility that comes with a console tool to check for and install or update Perl modules. The Perl XML parser seemed to be just around the corner, but not before I could find and install another XML parser, Expat for C, necessary to successfully run the CPAN command that installs the Perl XML parser, no problemo. That done, I ran ./configure again, just to find out I needed to upgrade my Libpng to something after version 1.2… Oh, and what about the Boehm-Demers-Weiser Garbage Collector (version 6.4+) for C++? Done! I ran ./configure again only to have the terminal spit out the following not-so-good news:

configure: error: Package requirements (gdkmm-2.4 glibmm-2.4 gtkmm-2.4 gtk+-2.0 >= 2.4.0 libxml-2.0 >= 2.6.11 libxslt >= 1.0.15 sigc++-2.0 >= 2.0.12 gthread-2.0 >= 2.0) were not met.
Consider adjusting the PKG_CONFIG_PATH environment variable if you installed software in a non-standard prefix.

Oh-oh, a handfull of obscure libraries still seemed to be missing! It was already three hours after I began pretending to build the InkScape source and I couldn’t even make it to the make command… pathetic! Another beautiful afternoon disappeared behind the window as I decided to quit on trying to build InkScape because the truth is I am in no position to understand the source code anyway.

I wanted to explore the brains and guts of InkScape in search for a better understanding of the SVG file format and the design of a simple Vector Graphics Drawing Application, like the one we are using in OpenStudio. This afternoon’s experience of mine is just another example of how much of a super complex and extremely cryptic backend can be cloaked away from the user by a seemingly simple frontend. When it comes to drawing into the machine, I want the user’s experience to resemble the conventional drawing experience as much as possible, even though the means and results of the drawing action will hopefully be different from what can be done when using a piece of paper and a brush or pencil. As long as the relation between perception and the material expression of a human gesture on a surface is well established, the experience of drawing will be delivered to the user. Complex backend implementation is unavoidable and will always be hidden from the user by a simpler frontend. The user shouldn’t have to be expert. The question is whether the constraints established by the frontend design will deliver or not a rich experience to the user in terms of function and interaction.

If you’re not the ultimate nerd and you actually read my text and visited some of the links in it, and if you are curious about computers, internet, and information-media technologies in general, you will probably feel like you’re missing on a lot. And you are, just like me. I can talk all I want about what the ultimate super simple vector drawing application should feel like, but when it comes to creating something as simple as that, I am lost and powerless. I have been using digital media tools for more than 12 years and I want to find out where they come from. Creative Techno Culture is not half as global as the products it delivers, most of the times it’s not global even in the same city.

Leave a Reply