programmierung - 12.10.2006 - 21.3.2007

SQLite Introduction - only linked because I might need it for a trivial project (PHP5 and SQLite - igh, I'll have to clean my keyboard afterwards).

Python, Django and DB2: we need your input! - sounds like there will soon be a DBAPI2 module for Python and DB/2 directly from the source.

LSL Module For BBEdit/TextWrangler - the best editors in the world for Linden Scripting Language (in SecondLife) use.

Programming Erlang - sounds good, and so far the books from the Pragmatic Bookshelf series have been quite useful. Could be one that you might want to read again.

Shill (LSL syntax files) - various editors for LSL usage. There should be something for everyone.

Mono on Nokia 770/800 - good. This gives chances to get the libSL stories (e.g. Sleek?) flying on the Nokia. And this gives chances for a minimal SL client on the tablet! (not to mention the variety of interesting programming languages that are now also available for the Nokia)

PicoLisp Again

After some digging and leafing through and reading: PicoLisp is brilliant. What it is: simply a primitive Lisp with a very compact language core and some very unusual design decisions.

First and foremost: no compiler, not even a bytecode compiler. PicoLisp's "virtual machine" is simply an efficient Lisp interpreter for Lisp SEXPRs (the linked lists you know from old Lisp interpreters).

Another point: only lists, symbols, and numbers as data types. No floating points (instead, simple ways to use scaled integers) and strings are either lists of characters (which are symbols again) or simply symbols.

Also rather unusual: constant dynamic binding of symbols, not lexical binding. Old Lisp systems also only had dynamic binding. Lexical binding makes compilers easier and eliminates some annoying sources of errors, but dynamic binding enables some very interesting programming techniques (which is why many Lisp systems have fluids - dynamically bound variables - such as the global parameters in Common Lisp).

Other peculiarities: designed from the outset for developing database-driven applications. It includes its own database that contains all the features of typical object-relational databases and its own GUI library that targets various HTML variants (pure HTML, HTML with Java, and HTML with JavaScript).

Adding Prolog as a query language to the database is only a consistent further development - the integration of Prolog and Lisp is not new in general. But to achieve all this in such a compact way is smart.

What excites me about it? Well, anyone who has read Paul Graham's articles about Arc - the 100-year language he is working on - will see astonishing parallels. PicoLisp also limits itself to the bare essentials, uses quite compact representations, and has only strongly reduced data types. The idea is the same for both: back to clean abstraction on known concepts, not to dilute the source representation through premature optimization (data type selection).

The result? A compact Lisp core with very interesting properties and a fairly simple way to put together web applications. But also suitable for typical scripting stories (once you've figured out how to get programs integrated, for example). Additionally, an interpreter with manageable source code (not 14,000 lines of C source!), which you can easily extend with the functions necessary for your own projects. Overall, this strongly reminds me of the old TCL versions, except that here a real Lisp is underneath.

If you want to read for yourself, here are some documentation links:

However, all the documentation is not quite complete - functions keep appearing in one of the documents that are missing in the reference, or functions are used that are not mentioned anywhere and whose operation is not entirely clear. But there is also the complete (and only sparsely) documented source code of all library modules for that. Yes, it sounds a bit like a text adventure, I know. On the other hand, the volume of source code is quite manageable.

Pico Lisp - a mini-Lisp interpreter that has been in practical use for application development since 1988. Interesting concept - back to Lisp 1.5, fast interpreter instead of compiler, high dynamics.

Jungerl - a dense and chaotic Jungle of Erlang code - it is what it says on the tin.

soaplib - there's something new here. Besides the rather slow SOAPpy and the, in my opinion, somewhat over-engineered ZSI, there is now another Python library for SOAP web services with soaplib. Let's take a look.

boto - a library for accessing Amazon Webservices. Supported are S3, SQS and EC2 - exactly what I need. Documentation also looks quite useful.

Jython 2.2 Beta - finally something new from Jython, the Python implementation for the Java VM. Still Python 2.2 syntax level, but at least a new release. However, the roadmap reads a bit harsh when talking about code quality ...

Yahoos kleine Mashup-Revolution - Zombies are just not dead to kill. How often I have seen programming systems that claimed "not to have to be able to program" and instead relied on the much-invoked flowcharts - none of the projects really survived. ProGraph was an early data flow language on the Mac with graphical representation and at least really usable as a complete language - but of course difficult to understand for non-programmers. Novell's AppWare was once again brewed and sold as Mindbrew, but that is also bankrupt. Labview is probably one of the few providers of a comparable solution, which, however, is also used in rather special areas (measurement and control technology, laboratories, etc.), but even there programming knowledge is required. And now all of this as Web 2.0. Cute.

Slimbox, the ultimate lightweight Lightbox clone - nice JavaScript toy for displaying images in a gallery.

ModWsgi - an Apache module for WSGI applications (WSGI is a python standard for web applications).

Microsoft copies BlueJ, admits it, then patents it - rip off ala Microsoft. That's probably what they call development work and why they think only Microsoft is capable of innovating - funny twisted vocabulary at Microsoft ...

Regular Expression Matching Can Be Simple And Fast - why grep and awk match faster than Perl or Python.

The truth about working in the IT industry - just like a prostitute.

IronPython and libsecondlife

libsecondlife is a C# reimplementation of the SecondLife protocol. IronPython is Python on .NET. They should be able to be used together. They can be. However, IronPython is not Python - most of the standard library is missing (although many of the pure-Python modules would certainly work). External libraries are also handled differently. The following makes one happy:

import clr
clr.AddReferenceToFile("libsecondlife.dll")
import libsecondlife

With this, I got everything loaded together. Maybe a start for me to play around with it.

.NET Languages - Programming languages that work under .NET (if it has to be .NET, you can at least take a human-worthy programming language)

M is for monkey - Mono on Maemo. That would be exciting - with the efforts to also support the Mono GUI classes on Linux and the connection with libSL, you could possibly get Sleek (Text-Mode SL client) to run. And thus have a mobile chat solution for SL.

Polyglot - yet another person with too much time. A Hello World program that can be translated into various languages without modification (and also represents a directly executable .com version). Freaks. All freaks.

Think Gloves!

take a good, hard look at your first revision and just say to yourself,

This will now be my go-to for overly complicated solutions in the future. Comes from the DailyWTF Archive.

Entity Crisis: Unity3D Evaluated. Wow. - I'll definitely have to check this out soon.

What really happened on Mars? -- Authoritative Account - exciting report about a software bug in the Mars Pathfinder and how it was found and handled.

SLeek - alternative mini-client (no graphical display etc, only chat/IM and basic avatar function) for SecondLife. Could become interesting if you could implement a chat relay with it - although it's C# ...

[Google Pagerank Algorithm](http://kraeutler.net/vincent/essays/google page rank in python) - in Python. Interesting.

ajp-wsgi - an implementation of WSGI (the abstract Python server protocol) based on AJP (the Java Server Protocol), written entirely in C and executing Python applications via embedded Python interpreters. Could be very interesting for efficient operation of Python applications.

LibSecondLife-Java - a port of the SL protocols to Java (so far there was only the libsecondlife story written in C#). And not everyone has or wants to install Mono ...

Object Debugger - new toy for the best Scheme system in the world: DrScheme. This time a very interesting debugging tool for object-oriented programs, which expands the already impressive toolbox.

Retired from security@php.net - "The reasons for this are many, but the most important one is that I have realised that any attempt to improve the security of PHP from the inside is futile".

You cannot rely on JavaScript being available. Period. - always offer fallbacks. Anything else is just uncool and lame.

3D Game Programming All in One with CDROM (Course Technology PTR Game Development Series): English Books: Kenneth C. Finney - Book about game design with TGE. Be careful, Amazon.

The Official QuArK website - Map editor for games. Can be used with TGE.

Return of the Paper Disk: 256 GByte on A4 Sheet - this works well as long as no one calculates the bits, applies realistic compression rates, and then checks how many points a scanner can reliably read from it and how much remains. But then you would have to turn off your own tech faith in the editorial offices ...

Efficient JavaScript - you should definitely go through it, can't hurt.

Programming in Color - colorful pixels make a program. Insane.

Torque : TGE - interesting engine for networked games. Multiplatform (Windows, Mac and Linux), source code included and low hardware requirements. However, not distributed, networked worlds.

[The Parable of the Two Programmers](http://www.csd.uwo.ca/staff/magi/personal/humour/Computer_Audience/The Parable of the Two Programmers.html) - that's how it works.

The "C is Efficient" Language Fallacy - shot down. Again. Will they ever stop?

The Django Book - progressive Beta-Releases of the Django Book chapters on the web (with information on when the chapters go online).

Good Math, Bad Math : Pathological Programming: Ignorance is Bliss, or at least control. - ok, and this language is so absurd, one has to go and take a look. Although it reminds me a bit of sick Snobol, in terms of format ...

Good Math, Bad Math : Prime Number Pathology: Fractran - Programming language that consists only of prime numbers. Ouch.

WebSnapr - Thumbnail images for links. Interesting concept.

new snapshot tarballs finally - OpenMCL gets Unicode support.

Ogoglio - 3D worlds in the browser. Sounds interesting, let's observe.

Ralph Griswold died - Snobol and Icon were long my preferred languages for string processing and tools. His Icon Analyst Newsletter was a long-time favorite read. His book on the implementation of Icon is a well-read read on building bytecode interpreters and compilers.

G2Image - Plugin for Tiny-MCE to select images from a Gallery2 installation - should be able to be rebuilt for Django.