programmierung - 23.9.2004 - 25.10.2004

James Tauber : Cleese

Ein Projekt, das ein Betriebssystem auf Python aufbauen will. Direkt die Python-Umgebung aus dem Bootmanager heraus starten und von da an alles in Python programmieren. Witzige Idee. Und warum auch nicht - Lispmaschinen waren auch praktische Geräte, Java-Maschinen gibt es mitlerweile schon, Native Oberon ist auch schon lange da - ein native Python wäre da genau das richtige.

Hier gibts den Originalartikel.

ETOS Compiler - Erlang-nach-Scheme Compiler der speziell für Gambit 4.0 ausgelegt ist

Gambit Scheme 4.0 beta 10 released!

Sehr schön. Gambit Scheme war schon vor vielen Jahren eines meiner Lieblingsspielzeuge - unter anderem habe ich so lange damit rumgebastelt, bis ich damals eine DOS Version hatte. Die sogar vernünftig benutzbar war. Und die Features der 4.0 klingen sehr interessant. Speziell die durchgängige Unicode-Unterstützung und das Threadsystem klingen sehr gut.

Bei Rainer Joswig's Lisp News gibts den Originalartikel.

Gambit Scheme System - effizientes Scheme das mittels C-Compiler native Code erzeugt

Retrocomputing - MIT CADR Lisp Machines

Ich hab den in P2879 genannten Emulator für die MIT CADR mal auf einem Linux-Rechner ausprobiert. Da er auf SDL aufsetzt braucht er ne direkte Konsole oder ein direkt auf der Konsole laufendes X - er ist nicht Netzwerktransparent. Aber ansonsten: echt klasse. Ok, der Boot dauert ewig, aber wenn er einmal gebootet ist, ist die Reaktionsgeschwindigkeit auf einem ca. 1 GHz Epia schon ganz akzeptabel. Den Code etwas optimieren, einen etwas fixeren Rechner und man hat eine schöne historische CADR laufen. Ganz ohne die alte Hardware wiederbeleben zu müssen. Einfach schön Man kommt direkt ins normale System rein und hat den ganzen Bildschirm für einen grossen Listener. Mit dem Systemmenü kann man dann den Bilschirm aufteilen in Editorfenster (mit dem guten alten ZWEI) und Listener (die Lisp-Prompts). Mail ist dabei, Telnet und noch ein paar Werkzeuge für die Lisp-Entwicklung. Sehr nett, das ganze.

Problematisch ist im Moment noch die Tastaturemulation - man findet kaum Sonderzeichen wieder. Zwar sind die Sonderzeichen an den amerikanischen Tastaturen orientiert, die normalen Buchstaben hingegen am lokalen Keyboard-Mapping, aber nicht alle Tasten sind funktional - die Umlauttasten der deutschen Tastatur produzieren Breaks, liefern aber nicht die darauf eigentlich liegenden und somit fehlenden Sonderzeichen.

Ausserdem hat die Maus noch arge Probleme: der Bereich wo sie wandern kann wird nach und nach kleiner und kleiner, so das es immer schwer wird irgendwohin zu klicken.

Ansonsten aber wirklich eine beeindruckende Arbeit das ganze. Da könnte eine richtig nette Sache draus werden, auch wenn die Kiste nicht Common Lisp sondern einen der vielen Vorläufer davon benutzt.

Wer es übrigens direkt von der Konsole ohne X startet, nicht erschrecken: die Sonderzeichen sind ok. Da wird von der SDL nämlich intern die AA-Lib benutzt und damit die grafischen Elemente mit Zeichen auf der Textkonsole nachempfunden. Etwas gewöhnungsbedürftig, aber durchaus benutzbar, wenn man grad kein X zur Hand hat.

Übrigens scheint die Kiste nach dem Start im Oktalsystem zu rechnen. Ein ( 5 6) liefert 36 und ein ( 3 4) liefert 14. Warscheinlich kann man irgendwo die Basis einstellen, zu der Zahlen dargestellt werden. Meine Symbolics-Handbücher (die Symbolics und die CADR sind ja verwandt) haben da nix direkt geliefert, aber ich hatte auch keine Lust die 1 Meter Papier zu durchwühlen

Hier gibts den Originalartikel.

Java-Vorläufer hat Geburtstag: 30 Jahre p-System

Achja, das UCSD-p System. Ein wunderschön barockes System mit seltsam obskuren Systembibliotheken und seinem statisch ausgelegten Dateisystem, das so manchen Benutzer in den Wahnsinn getrieben hat. Der Editor war nett. Und hat mich für vi empfänglich gemacht. Die ersten Jahre im Informatikunterricht hatte ich noch mit UCSD Pascal meinen Spaß - leider wurde dann da auf CP/M und erst Pascal M und dann Turbo Pascal umgestellt.

Bei heise online news gibts den Originalartikel.

Ken Iverson ist gestorben

Warscheinlich kennt den keiner von den Kids heute mehr - den Erfinder von APL und J. Zwei der seltsamsten und interessantesten Programmiersprachen. Er hat mit seinen Arbeiten sicherlich viele Programmierer und Sprachendesigner beeinflusst und ist meiner Meinung nach auf einer Stufe mit McCarthy (Lisp-Erfinder), Kristen Nyegaard (Simula- und damit OO-Erfinder) und Alan Kay (Smalltalk-Vater) zu sehen. Nach Kristen Nyegaard der zweite grosse Mann des Sprachdesigns der gestorben ist.

Hier gibts den Originalartikel.

Retrocomputing - Symbolics Lisp Machine Emulation

Da ist schon einer dran, an der Symbolics Emulation. Und sein Weg ist extra klasse: die Lisp-Sourcen des Microcodes der Symbolics aus der Patentschrift OCRed und umgewandelt und jetzt baut er einen Emulator und wühlt sich durch die im Patent fehlenden Microcode-Instruktionen. Manche Leute haben - zum Glück - einfach zu viel Freizeit

Hier gibts den Originalartikel.

lispmeister: A booting CADR emulator

Klasse. Jemand baut einen Emulator für die MIT CADR Lispmaschine. Da viele andere Systeme daraus entstanden sind (unter anderem die Symbolics Maschinen), könnte das ein sehr interessanter Start sein für einen offenen Lispmaschinen-Emulator - vielleicht werde ich irgendwann mal mein Genera 8.3 auf einem freien Emulator starten können?

Bei Planet Lisp gibts den Originalartikel.

Pyro - Über - Python Remote Objects

Psyche - Noch ein Scheme in Python. Hatte ich glaub ich schon mal

schemon - Scheme in Python mit guter Integration der Sprachen

A Logging System for Python - Logging-Infrastruktur für Python - evtl. in TooFPy benutzen?

Path ... where is my application's home dir? - Wie man den Userpfad in Windows finden könnte

syslog.py - Syslog-Client in Python

[Web-SIG] Entwurf der Server/Gateway-Basis-Klasse jetzt verfügbar - Referenzimplementierung des Webserver-Gateway-Interfaces

F#, a functional language for .Net

Manchmal produziert Microsoft auch was nettes. Ok, ist Microsoft Research - wenn überhaupt bei denen was intelligentes produziert wird, dann da. Aber schick ist es schon, eine OCaml-änliche Sprache in .NET benutzen zu können.

Nicht das ich .NET irgendwo benutzen würde

Bei Lambda the Ultimate - Programming Languages Weblog gibts den Originalartikel.

Rel: an open source implementation of Date & Darwen's Tutorial D

Klingt irgendwie interessant - eine Sprache, die an SQL orientiert aufgebaut ist und mit relationalen Operatoren und Mengendatentypen arbeitet.

Und ja, ich bin aus München wieder zurück.

Bei Lambda the Ultimate - Programming Languages Weblog gibts den Originalartikel.

wxAcceleratorTable - Wie man Hotkeys auf Menüeinträge in wxWindows macht

wxValidator overview - Wie man Felder zwischen Maske und Satz in wxWindows transferiert

Daniel Barlow: Araneida 0.9 released

Spannend. Das dürfte der erste Webserver sein, der in der CLISP Umgebung läuft - und damit wirklich auf nahezu fast alles portiert werden kann, was wie ein Computer aussieht.

Bei Planet Lisp gibts den Originalartikel.

awaretek.com :: Python Tutorials - vielfältige Python-Tutorials

SQLite 3.0.7

Sehr schön - die neue Version hat Unicode (UTF-8) Support und rudimentäre Datentypen. Allerdings scheint PySQLite(das Python Interface) noch mit älteren SQLite Versionen zu arbeiten. Hier gibts den Originalartikel.

Instiki - Nettes kleines Wiki in Ruby

Java Runtime Properties for Mac OS X - Tipps wie man Java in OS X aufrufen kann - auch mit abweichendem Icon

PythonCard Home Page - wird immer besser - ein GUI APP Framework für Python und wxPython

Red Robin - Jython - Jython in Eclipse installieren

SPE - Stani's Python Editor - komplette auf wxGlade aufbauende IDE für wxPython

TvBrowser und Mac OS X

Wer wie ich mit dem TvBrowser sich sein Fernsehprogramm zusammenstellt und das auf dem Mac benutzt, ärgert sich vielleicht auch das keine MacOS X Startapplikation mitgeliefert wird. Klar, man kann einfach durch Doppelklick auf das JAR-File das Programm starten, aber das sich ergebende Icon im Dock kann man nicht fixieren - das ist ja nur eine interne Java-Applikation, die sozusagen on-the-fly generiert wird.Lange Rede, kurzer Sinn: ich hab eine entsprechende Startapplikation erzeugt. Einfach runterladen und das Diskimage mounten. Dann die Applikation in den gleichen Ordner ziehen, in dem auch das tvbrowser.jar liegt - die beiden Files wollen einträchtig nebeneinander liegen. Die Applikation kann übrigens gut als Basis für solche Starterapplikationen für JAR Files dienen, denn man braucht innen drin nur die Properties (das .plist File) und die start.sh ändern, damit die richtige Anwendung gestartet wird.

wxGlade: a GUI builder for wxWidgets/wxPython - ein klassischer GUI-Builder für wxWindows und wxPython - in Python

3 ZEO - Wie man einen ZEO Server in Scripten nutzt

Arachnids and Pachyderms - Wie man ein einfaches Blogsystem mit Common Lisp bauen kann

About Dabo

Scheinbar schreiben da ein paar Leute an sowas wie Visual FoxPro - nur in Python, mit WxPython als GUI und Firebird oder MySQL als Datenbank. Könnte für Leute interessant sein, die aus dem (.*) Base-Umfeld kommen - Visual DBase, Clipper, FoxPro etc.

Hier gibts den Originalartikel.

CLiki : Araneida - Noch ein Webserver in Common Lisp - dieser ist sehr klein

Frontier Open Source ist da

Komplett mit Weblog über Neuigkeiten, Downloadseite mit Sourcen und Binaries. Bin ja mal gespannt wie die Portabilität aussieht - das ganze ist mit CodeWarrior erstellt, das schränkt im Moment schon mal diejenigen ein, die es builden können. Den unter OS X wird kaum jemand sich noch CodeWarrior gekauft haben.

Hier gibts den Originalartikel.

Janus Software - Patch um Firebird Oracle-kompatibel zu machen

Embedding Gallery Into An Existing Community - Wie man Gallery in andere PHP-Seiten einbinden kann

PHP/SWF Charts - PHP Tool zur Erstellung von Graphen im Flash-Format

Chapter 2. Building OpenMCL from its Source Code - OpenMCL vom Source erstellen (auch für die 0.14-dev)

mel-base - Basislibrary für eMail-Handling in Common Lisp

Bayescl -- cvs-prerelease - Bayesian-Filter in Common Lisp

CL-PREVALENCE - In-Memory-Database und Serialization sowie Deserialization für Lisp

MetaOCaml Homepage

Ein sehr kühles Projekt: OCaml - sowieso schon eine der schönsten funktionalen Programmiersprachen - wird um Multistage-Programming erweitert. Im Prinzip ist das ganze vergleichbar mit den Makros aus Common Lisp oder Scheme - allerdings natürlich funktional sauber definiert. Durch Multistage-Programming erlaubt jetzt auch OCaml die Erzeugung von Minisprachen für spezifische Problemdomänen und die Codierung in diesen Minisprachen - ohne das durch den Ausführungsoverhead das ganze ineffizient wird. Allerdings habe ich noch nicht geguckt ob es von der Mächtigkeit annähernd mit den Common Lisp Makros mithalten kann.

Hier gibts den Originalartikel.

Persistent Lisp OBjects - Persistente Lisp Objekte - aktuelle Version, Client-Server Architektur

Pg: a Common Lisp interface to PostgreSQL - PostGreSQL Client komplett in Common Lisp

Projects at Common-Lisp.net - Noch ein Haufen mehr Projekte in Common Lisp

py2app builds its first .app

Bob Ippolito hat ein Tool für die einfache Erstellung von Python basierten OS X Applikationen so weit, das es seine erste Python Applikation zusammenbaut. Der Vorteil seiner Methode: es wird kein Compiler gebraucht und man bewegt sich komplett in Python - für kleine Tools sicherlich sinnvoll, denn dafür ist die Entwicklungsumgebung oft einfach Overkill.

Hier gibts den Originalartikel.

Sam Ruby: Copy and Paste

Eine nette und ausführliche Erläuterung von meta-Tags mit Zeichensatzangaben, dem HTTP-Content-Type Header mit Zeichensatzangabe und das, was Browser daraus machen. Ich sags ja immer, das Web ist eine technische Müllhalde, die zufälligerweise trotzdem erschreckend gut funktioniert.

Hier gibts den Originalartikel.

VIPS image processing library home page - Open Source Image Processing - eine Alternative zu den üblichen Verdächtigen (Gimp, ImageMagick etc.)

AllegroServe - a Web Application Server - Homepage des originalen AllegroServe Webservers - mit Dokumentation die auch für Portable AllegroServe relevant ist