Wednesday, October 22, 2008

Scheme/Guile Web Services

There are a few ways to call Guile webservices that I know.

  • Any webserver can call a Guile script via CGI.

  • mod-lisp can be used to pass CGI requests to an existing scheme process.

  • Fastcgi could probably be used.

  • serveez allows one to write generic servers in Guile.

  • An all-scheme webservers is TTN's sizzweb. It descends from Martin Grabmueler's all-scheme webserver in his pers-scheme.


The best library for helping to parse a CGI request is Guile-WWW.
There are a few ways to gracefully generate HTML from scheme.

  • Guile-lib has a copy of SSAX SXML, which can convert SXML to HTML.

  • skribilo can convert from Skribe format to HTML.


There are a couple of ways to read information from the backend.

  • mixp is an xml parser.

  • Guile-lib, again, has a copy of SSAX SXML, which can parse XML.

  • Guile-pg is a complete system for interfacing with PostgreSQL database

  • guile-dbi is a simple system that interfaces with MySQL and Postgres


There are a couple of methods for on-the-fly plot generation.

  • guile-charting generates plots via cairo

  • There once was a gnuplot library. 1

Tuesday, June 24, 2008

Post-Linux

The never-ending discussion about future of desktop and end-user GNU/Linux has become a bit louder in recent days.

One large discussion throughout the blogosphere is about the future of GNOME. At issue is coder mindshare in a time when GNOME is largely complete. Hackers enjoy the creation of projects more than its maintaince, but, with GTK stagnating and desktop applications no longer being the brave new world that they once were, there are fewer hands to fight the bit rot in the enormous GNOME code base. Also, GNOME is attracting few new young hackers to pick up the load.

Another obstacle toward a final system is, of course, packaging. The problem with packaging is that there are just too many systems out in the wild: the existence of three different versions of RPM is a case in point.

It is a wake-up call to me, I guess, that after a decade of using GNU/Linux and BSD systems, that I just don't care about either of these arguments. For me, the desktop is unimportant.

For example, I remember before there was a GTK toolkit, when Motif ruled the world. GTK was created; GNOME followed; HIG flamewars broke out; millions of lines of code were written. And, in all that time, I never used either GNOME or KDE for anything. And now GNOME is decaying. It was born and now is dying, and I missed it.

Why does anyone care about the desktop for anything? In my world, the computer has only two functions. First, it should act as a web platform, and, second, it should allow easy access to the full power of the hardware for science programming or for games. Given that the computer is just a web platform, the huge difficulties that occur in packaging are irrelevant to me. If my machine was just Firefox, Apache, MySQL, EMACS, and GCC, that would be enough. I've never used RPM, apt-get, or YUM for anything either, as whatever base ISO I get from Slackware or RedHat has all these things on the first CDROM.

My Windows box is much the same story. I don't use anything beyond what came with the base install. I've never bought a Windows desktop program.

I think the best and most important emerging technology in the world right now is probably Microsoft Silverlight, with Mozilla's XUL and related technologies coming a close second. Java and AJAX are important because they showed us the way.

Despite advocating for free software, in the end, I don't care about operating systems, or the Linux kernel.