programmierung - 20.6.2004 - 26.8.2004

Schemix - Scheme as a kernel module in the Linux kernel

Welcome to Myghty! - Perl's HTML::Mason ported to Python

A Conversation with Manfrend von Thun - Fascinating when a K (APL descendant) fan interviews the creator of Joy (a kind of functional Forth).

Candygram - Erlang Thread Primitives for Python - interesting for ToofPy

Main page for the programming language JOY - Joy is a kind of functional Forth

vnunet.com - Micro Focus lifts and shifts Cobol to Linux

The horror won't let go of me: I spent the first 10 years of my professional career programming with exactly this compiler system. An inventory management system. And now the monster is coming to Linux ...

Here's the original article.

Paolo Amoroso: Update on McCLIM's Beagle backend

From the linked article, it emerges in passing that someone is working on a McCLIM backend for OpenMCL. Namely, building on Cocoa. That would really be amazing - a CLIM-based interface. Ok, that would be just a listener and some toy code for now, but in the long run perhaps the kind of tools you know from the old Lisp machines. At least something like that would be conceivable at all.

Besides, CLIM is a pretty cool GUI library with features that would make all the Java bells and whistles green with envy - even if CLIM is many years older

At Planet Lisp you'll find the original article.

Form submission and the ENTER key? - Discussion of the problem of Enter=Submit in HTML forms

Modeling Object-Relational Bridge for python - Database modeling and mapping to Python

Things to make you go "Ow, stop, my head hurts!"

When the programmer of the new Virtual Machine for Perl talks about Continuation Passing and Multimethod Dispatch, that excites me. When he then pivots to Intercal and the COME FROM statement, that scares me.

At Squawks of the Parrot there is the original article.

Perl.com: The Evolution of Perl Email Handling

If you want to process emails with Perl and aren't entirely satisfied with the Mail:: hierarchy of Perl modules - especially since performance often leaves something to be desired - you might want to take a look at the Email:: hierarchy.

Here's the original article.

brickOS at SourceForge - Alternative operating system for the Lego RCX brick

mySTEP - current version 1.7

Exactly a year ago today (P1140) I wrote something about mySTEP 1.1, a porting aid for Cocoa applications to the Sharp Zaurus PDA. To combat link rot (the old link is dead, thanks to Newsisfree), and because a lot has happened since then, here's the new link. The project has become even cooler and definitely deserves a new link Here's the original article.

Textpattern and punycode

What has always amazed me - not just with Textpattern, but it has to take the heat now because I wanted to test it - is the ignorance of Punycode in software. Ok, I know Punycode (the internationalized domain names) is sick. I know that. It's just the complete ignorance of this - unfortunately quite sick - standard that breaks some nice packages.

With Textpattern, the whole thing is particularly funny now: some parts work flawlessly, some others absolutely not. Sometimes a valid URL is generated, sometimes a broken one. For example, large parts of the admin work absolutely fine, only the small popup windows in the presentation administration can't handle umlaut domains.

Sure, I could now use the xn-... form of the domain. But then this would also be visible to the outside, because TXP apparently generates these partially in absolute form and thus this base URL slips in with it. Hmm. Ugly.

Update: in any case, you should also make the call to set the character set to utf-8 in the textpattern/index.php file. This is responsible for the admin interface, if you don't do it, there are conflicts between the admin pages and the content pages. Because with the content pages, the corresponding call is made, so they are delivered with utf-8 as the character set in the server headers. The admin pages, however, are not - so it becomes iso-8859-1. Result: many modern browsers correctly prefer the character set from the HTTP header over the one specified in the file itself. And suddenly you get strange umlauts.

What I added is the following line:

 header("Content-type: text/html; charset=utf-8");

And specifically before the $textarray = load(.....) call. At least this problem is then fixed. It's best to call up the existing elements once and save them again so they are correctly in the utf-8 character set. This also applies to international URLs in the Preferences, where you enter the domain of the site.

What still doesn't work is the Tag Builder window - the popups are called incorrectly, apparently with incorrectly encoded umlauts. Unfortunately, I can't verify this because of a bug in Camino, which refuses to display page content from international domains in the source.

confused face

International domains are a hack. And like with every bad hack, there are plenty of nasty problems. Update 2: as if to prove how hacky Punycode is and especially its support in browsers, I tested various other browsers today. Together with the ones from yesterday:

  • Safari on Jaguar can't do Punycode at all
  • Camino 0.8 can do it largely, but can't display source and the Tag-popups in TXP don't work (as I now know it's a browser bug)
  • Mozilla Firefox 0.8 also handles it largely, only popups and source display don't work - same bug as with Camino (was to be expected, it's the same source base)
  • IE can't do Punycode anyway, needs a plugin for that. I didn't test any further with that mess.
  • various text browsers (lynx, w3m, links) don't work with Punycode either.
  • Opera handles all aspects correctly.

Clear winner: Opera. So if you want to work with international domains (especially with Textpattern - but not only there), you should use Opera. Otherwise there are problems everywhere where hostnames are determined/generated - for example, the JavaScript links for the popups in TXP don't contain a hostname. The browser adds it internally. And incorrectly - but only when the popup is made. If instead the link is opened in a new tab via the context menu, everything works with Firefox and Camino.

Sorry, but the whole topic is absolute garbage.

From Python to PLT Scheme

Wow. That's really amazing now: a Python to DrScheme compiler that gets integrated as a package into DrScheme and then allows Python development with DrScheme's tools. Ok, the compiler still has some deficits and the code is still very slow, but that's expandable. And of course it would be a really interesting Python implementation, since on the one hand you could mix all the Python libraries and on the other hand the MzScheme libraries. For me, this system in its perfection would be almost nirvana.

Here's the original article.

The Python Paradox

Paul Graham thinks Python programmers are smart. So are we.

Here's the original article.

Databases and Scsh - PostgreSQL Client in Scheme

Scheme Underground Network Package - Web server in Scheme for the Scheme Shell

Tsearch2 - full text extension for PostgreSQL - Full text indexes for PostgreSQL

Bill Clementson: Mandelbrot Set ASCII art

Mandelbrot Set. In 11 lines of Common Lisp. As ASCII art.

At Planet Lisp you can find the original article.

CLiki : Armed Bear Lisp

A Common Lisp implementation that compiles to the Java VM. I'm not a fan of the JVM, but for program portability it's still practical of course.

Here's the original article.

MzTake - a Scriptable Debugger

An interesting concept: a programmable debugger for MzScheme (the platform of DrScheme). Essentially more of a monitor - it observes the running program and, based on specifications in scripts, can trigger various actions. For this, a variant of Scheme specially optimized for event control is used. This appeals to me because I typically don't use normal interactive debuggers - somehow they're just not my thing. I prefer to let programs run and collect information during the run. In Lisp, something like this is already quite elegant to implement - just wrap functions accordingly (or in Common Lisp use advise to bind debugging code to functions). MzTake simply extends this concept further.

Here you can find the original article.

Python on Smalltalk VM?

Someone is working on a Python implementation that runs on the Smalltalk Virtual Machine of Visual Works. Also quite interesting - the Visual Works VM is one of the best when it comes to efficient garbage collection and good just-in-time compilation. The Java VM could learn a thing or two from it before it even comes close to being in that league...

At Python owns us you can find the original article.

blog: bknr-devel

A web application framework with object database and templates and everything you need. Sounds very nice.

Here's the original article.

Mikel Evins: Clotho status

Cool. Mikel Evins is now actively working on a graphical environment for OpenMCL. Based on Carbon, so it won't be bound to specific OS X versions. And of course written completely in Common Lisp - as a side effect, the conclusion will also include a CLOS wrapper around the Carbon API. I'm very much looking forward to the first beta versions.

At Planet Lisp you can find the original article.

Cyclone

An interesting C derivative that has borrowed from many other languages - including those of the ML family. A C with type safety, memory management (though still manual memory management), polymorphic functions, pattern matching, type inference and many other nice features. Packaged in a perversely bloated syntax that builds on the already perverse C syntax

Here's the original article.

dude, where's my python?

I can't add anything to that. If the Python community starts bringing features into the language by argumentatively besieging Guido, and if these compromises are then realized according to the motto "a syntax that everyone likes equally little", then it's time to switch languages. Ruby looks nice and the available modules for various purposes easily match Python. Or Prothon - though the available modules are still very sparse there. Or simply back to good old MzScheme? Here's the original article.

Ambrai Smalltalk

A new Smalltalk for OS X. Integrated into Aqua. With all the tools you could wish for. Unfortunately only from OS X 10.3 onwards - too bad, I would have liked to take a look at it, but I'm still on 10.2.8 ...

Anyone who can give it a try - the beta is freely available. I'd be curious to know what it's like. Smalltalk used to be one of my favorite languages - though that was before my contact with Lisp machines and back in DOS times

Here you can find the original article.

Bosco HOWTO

A tutorial and example code for building OpenMCL Carbon and Cocoa applications. Very interesting, this could slowly make OpenMCL on the Mac a fully-featured environment.

Yes, I'm still dreaming of a free Lisp implementation with a decent development environment

Here's the original article.

IronPython - A fast Python implementation for .NET and Mono

IronPython is now Open Source and available in version 0.6. For .NET or Mono programmers, this might be an interesting alternative to the usual C# languages.

Here you can find the original article.

Current Books about Icon

Wow! Both the latest edition of the Icon Programming Language Reference and The Implementation of The Icon Language book are available as free downloads. Go ahead, download and indulge - Icon is simply a beautiful little language with very interesting features. Many things in Icon have always appealed to me much more than in Perl - regular expressions are namely not the only way to analyze strings. String scanning in Icon is at least as powerful, but much more elegantly designed and far less cryptic. Of course I have the books in print form at home, but since they're no longer available in paper form, the download is certainly a good solution. And since they're free - in the sense of public domain - it's also a really cheap opportunity.

Here's the original article.

Unicon.org - the Unicon Programming Language Home Page

And since I'm on the topic of Icon anyway: there's also a successor language that's now being developed on Sourceforge. A book is also being created there through public collaboration, and the whole thing makes a very interesting impression. I think I'll keep an eye on it - an Icon implementation with a better class library would definitely be an alternative for me for many small projects. Icon itself suffered somewhat from a rather narrow library - for example, almost nothing in the TCP/IP area and only very rudimentary libraries for database connections and similar purposes compared to Python, Perl, or Ruby. Unicon could change that.

Icon, by the way, was something like a successor language to Snobol. Snobol in turn was the first attempt at a programming language designed for text manipulation - well before regular expressions or even Perl existed. It had a pretty bizarre syntax (or rather two of that sort), but a very endearing charm. One of the few languages I know where structured and clear programming was almost impossible.

Icon fixed many of Snobol's problems - especially, it had a quite decent syntax. And string processing in Icon wasn't a piggyback syntax, but was fully integrated into the language. Besides, Icon also had nice things like generators - which were then (in Python's 2.x versions) discovered by Python.

Here's the original article.

Boo - Home - dynamic language for .NET with Python-like syntax and advanced features especially in the area of data types

gppl's nest - Hierarchical Queries with PostgreSQL

Gwydion Dylan: Overview - free high-end Dylan compiler

LWN: Oracle patents content management systems

And again, a stupid US patent. This time on content management workflows like they occur in pretty much every CMS. Great prospects for EU software patents

Here you can find the original article.

Marlais Sourceforge Project - portabler Dylan Interpreter

%u2018Building Accessible Websites%u2019 serialization - Book about page design with accessibility in mind

PyLinda

The Linda implementation in Python is progressing well and can now work with multiple servers (good for failover situations) and has some of the newer features that were discussed for Linda. Very interesting for distributed applications that need shared data. Eventually I'll need to marry this with the Toolserver Framework for Python. If you don't understand any of this right now: no worries, it's only interesting for programmers. Here's the original article.

Index of /afs/cs.cmu.edu/pr[...]ng/scheme/impl/s88 - Another small, very fast implementation of Scheme for small PCs

Index of /afs/cs.cmu.edu/pr[...]pl/pcscheme/geneva - PC Scheme 4.02 - Geneva Version, extended from original TI version

Index of /pub/scheme-repository/imp/pcscheme - Source and binary for PC Scheme 3.03 - interesting on HP 200 LX

The PAL Page - Programming applications with native look and feel for the HP 200 LX

Clotho - Development environment for Common Lisp on OS X

Security hole in iptables in Linux kernel 2.6

Disgusting. Ok, not relevant for all configurations, but still disgusting. And once again proof that C is a stupid language - at best a glorified assembler.

At heise online news there's the original article.

Xanalys LispWorks Press Release - LispWorks for OS X

Levenshtein - Very simple Levenshtein distance in pure Python

OpenMCL Documentation - Documentation for the best free PPC Lisp environment

PostgreSQL News 3rd Beta of Slony Master -> Multi-slave replication system - Replication solution for PostgreSQL

XchemeRPC - New homepage for the XMLRPC client/server for DrScheme