You are here

When it comes to programming a lot of people look to C/C++ for answers. They're pretty straightforward languages that are general-purpose(they aren't really good at anything in particular, but can be used to do just about anything). The only strike against these languages is that unlike Java, they don't bring a GUI API built in. Instead, C/C++ coders must rely on other libraries and even system APIs to get the job done.

In the first part of this piece I introduced zenity : the handy tool for providing GUI interaction with your shell scripts. In this second part I'm going to delve a little deeper into the type of things you can do with this versatile tool.

Whilst an increasing number of recent converts are avoiding it (and I don't blame them really), the shell is still a key tool for the majority of GNU/Linux users. Shell scripts are knocked-up, shared and deployed in all sorts of circumstances -- some simply time-saving, others life-saving. But even if the shell script has been written by somebody else, running it can be a cumbersome and frightening exercise for users of lesser experience or confidence. How do we bring the flexibility of the shell script to the GUI-only user?

There is nothing more guaranteed to ignite a bad tempered, incandescent flame war that an outbreak of hostilities between the rival Gnome and KDE camps. Well, except perhaps a slanging match between the champions of the GUI and the command line. Enter stage left the compromise candidate which might just unite the warring factions: Hotwire.

It's one of the more popular culture wars in the free software community: GUI versus CLI (graphics versus the command-line). Programmers, by selection, inclination, and long experience, understandably are attracted to textual interactions with the computer, but the text interface was imposed originally by technological limitations. The GUI was introduced as a reply to those problems, but has undergone very little evolution from 1973 (when it was invented at Xerox PARC) to today. So why can't we do better than either of these tired old systems?

Today, terminal-based programs have almost disappeared. GUIs are taking over, whether we like it or not. However, there is still a place for the old command line. Take the internet as an example: everyone’s using Firefox, Thunderbird, and Pidgin for their internet activities. Even though these are great, quality, free software apps, they tend to be bloated. That’s where the terminal comes in.

I’ve come back from day two of PyCON, exhausted and red-eyed, but also really excited. I’ve learned about several different ways to integrate C libraries into Python, including ctypes which, though an old library, has only entered the standard library in Python 2.5 (released earlier this year). I’ve heard the story of modern cyberpunk heros braving the wrath of the information police, patching code on the fly to evade the notice of the oppressive governments they are exposing for their censorship practices (that is so cool).

This year’s Python Convention [1], being held this weekend in Dallas Texas, started off with an inspiring presentation by an engineer from the One Laptop Per Child (OLPC) project [2] (Ivan Krstić) , showing off the hardware features of the new “OLPC XO 1” prototype, as well as some “dangerous ideas” about its software design: a large part of the user space code for the laptops will be implemented in Python, mainly because of the ease of manipulating the source code. The OLPC laptop software will be 100% free software, not just in principle, but in spirit as well—the assumption of open source design is literally built into the hardware.

I guess it's just natural that folks pondering the future of the GUI would turn to 3D spaces. After all, clearly 3D has played a dominant role in the most important software genre: videogames. However, past efforts towards the "3D Desktop" have seemed impractical. Nonetheless, I think BumpTop, which utilizes a tablet PC and pen tool, is on to something big. Watch the You Tube and see what you think.