Papier Tux
An verregneten Tagen mal eine Pinguin basteln? Beim
Origami Club
gibt es den
Origami Pinguin
inklusive Bastelanimation:
... und wer gerne Kleb(stoff) an seinen Händen haben möchte, kann bei
ThePaperShaper.com
sich
Tux the Penguin
basteln.
Scheme, Javascript und call/cc
Chris Double
schreibt in seinem
Bluish Coder
Blog über
Scheme Implementation in Javascript
. Hierbei geht es um jsScheme, ein in JavaScript
geschriebenes
Scheme
, das Scheme-Code im Browser ausführen kann.
In dem Beispiel wird auch call/cc verwendet. Was ist das?
call/cc
steht für call-with-current-continuation und lässt sich durch ein einfaches define wie folgt definieren: (define call/cc call-with-current-continuation)
Was ist aber call-with-current-continuation?
Hierzu gibt es ein paar interessante Seiten:
von
DavidMadore
(siehe Wikipedia-Links in der Semantik)
(
Teach Yourself Scheme in Fixnum Days
)
(
An Introduction to Scheme and its Implementation
)
(
Community Scheme Wiki
)
aus dem
Linux Magazin
unter dem Punkt "Unüblicher" Kontrollfluß... und
Continuations
(pdf) von Iskrena Avramova
. Leider lässt sich die Original .pdf-Datei (siehe
Proseminar Grundlagen höherer Programmiersprachen - Wintersemester 2002/03
) nicht unter Linux betrachten und auch nicht unter Windows ausdrucken. Aus diesem Grund habe ich mit
ImageMagick
die Datei in .png-Dateien konvertiert, in
OpenOffice
die Bilder eingefügt und als Pdf-Datei exportiert.
... call/cc
ist die Lösung des Browser-Back-Button
Problemes, das ich bei
Scheme in der realen Welt
erwähnt habe.
Scheme in der realen Welt
In der Fallstudie
Scheme in The Real World: A Case Study
beschreiben Michael Bridgen
, Noel Welsh
und Matthias Radestock
den Einsatz von Scheme in einer realen Web-Anwendung.
Wie im Bild zu sehen ist, wird für die Präsentationsschicht Cocoon, Castor und XSLT verwendet. Für die Businesslogik JavaBeans, OJB und (natürlich)
Scheme
, hier kommt der Java-basierte Scheme-Interpreter
SISC
zum Einsatz.
... in der Fallstudie wird auch auf das Problem mit dem Browser-Back-Button
eingegangen, und wie sich dies elegant mit Scheme lösen lässt.
Text mit Hintergrund
Hin und wieder möchte man seine digitalen Fotos auch mal beschriften. Vielleicht nicht gerade den Gemütszustand seines x-ten Selbstportraits, aber ein paar nette Landschaftsbilder der letzten Urlaubstour.
Nun gibt es genügt Grafikprogramme - für Windows auch kommerzielle - die es ermöglichen einen Text mit einer bestimmten Schriftart, -größe und Farbe beliebig auf einem Bild zu positionieren. Da die Positionierung und Schriftfarbe bei hell-dunkel Bilder nicht so einfach ist, empfiehlt es sich einen Hintergrund für den Text zu verwenden, eleganterweise einen transparenten.
Da dies alles zu einem wilden Mausgeklicke (und irgendwann zu einem Mausarm) führt, habe ich für
Gimp
ein Skript geschrieben.
Das Skript
Text With Background
basiert auf Script-Fu, dem
Scheme
Interpreter von
Gimp
. Es zeichnet im unteren Bild einen schwarzen Balken, 50% transparent, mit einem weißen Text. Die Schriftgröße und die Höhe des Balkens passen sich automatisch an, abhängig von der Bildhöhe.
Um das Skript
Text With Background
zu installieren, muss es erst runtergeladen und in das Skript-Verzeichnis von Gimp kopiert werden. Um dieses Verzeichnis zu finden kann man unter Datei / Einstellungen und dann unter Ordner / Skripte das Verzeichnis finden. Nachdem das Skript kopiert wurde, muss Skript-Fu noch aufgefrischt werden. Hierzu Xtns / Skript-Fu / Auffrischen aufrufen.
Wenn ein Bild dann geöffnet wird, befindet sich im Menü Skript-Fu der Eintrag "Text with Background", diesen Auswählen einen Text eingegeben, Bild speichern - fertig.
... sehr hilfreich für die Erstellung des Skripts ist das Tutorial
A Scheme Tutorial for Gimp Users
von Dov Grobgeld
.
Ion gegen Mausarm
Beim
SpOn
Artikel
Mit Dehnübungen gegen den Mausarm
geht es darum, dass der Mensch nicht dafür "ausgelegt" ist, stundenlang auf einer Maus rumzuklicken.
Intelligente Window Manager
, wie
Ion
, LarsWm oder
wmii
, deren Aufgabe darin besteht, dass sie das Management der Fenster übernehmen, könnten vielleicht einen Beitrag gegen einen Mausarm leisten. Denn die Hauptaufgabe bei den üblichen Fensterverwaltern, sei es Windows
, KDE oder
GNOME
, ist es, dass man seine Fensterchen, die sich irgendwo öffnen, an den richtigen Ort und in der richtigen Größe verschieben und anpassen muss.
Bei
Ion
gibt es hingegen feste, unterteilbare Bereiche, in denen sich die Fenster öffnen. Mit einfachen Tastenkombinationen wechselt man zwischen den Fenstern und Bereichen. Dadurch entfällt ein Großteil der Mausarbeit.
... und wenn dann die Finger die meiste Zeit auf den Tasten liegen, könnte man sich noch ein paar Gedanken über ein ergonomisches Tastaturlayout, wie zum Beispiel das
NEO Tastaturlayout
, machen.
bookzilla.org
An vielen Plätzen im Internet kann man Bücher kaufen, jedoch
Bookzilla
fördert Freie Software
.
Stefan Richter
, einer der Gründer von
freiheit.com
, habe ich bei einem Vortrag auf der OOP2004 gehört.
freiheit.com
hat die Software, die hinter
Bookzilla
steht, entwickelt und erhält pro verkauftem Buch 5% Provision, die sie zu 100% der
Free Software Foundation
spenden.
... warum ist
Bookzilla
noch zu erwähnen? Ganz einfach, auf der Startseite ist das Common Lisp
Buch von PeterSeibel erwähnt, beginnend mit dem Text, dass man jedes Jahre eine neue Programmiersprache lernen soll ... mein letztes Thema, aus dem Buch
The Pragmatic Programmer
.
Bisher war die Seite von Bookzilla lediglich über die .de-Domain
zu erreichen, da aber eine .org-Domain
auch irgendwie etwas freies assoziiert, habe ich mal eine Email geschrieben, dass es doch nett wäre, wenn Bookzilla auch darüber zu erreichen wäre. Diese Idee fand man gut, registierte die Domain und schickte mir ein T-Shirt und ein paar Lesezeichen ... und nun mache ich Werbung :)
Hinweis: Für diesen Text hier bekomme ich keine Gegenleistung und muss ihn auch nicht schreiben!
Scheme
bwolf
meinte kürzlich ich solle mir doch mal
Scheme
anschauen. Bei Scheme handelt es sich um eine funktionale Programmiersprache
und einem LISP Dialekt
. Auf dem Diagramm der
Computer Languages History
ist zu Erkennen, dass Scheme von
LISP
und Algol60 beeinflusst wurde.
Mit Scheme bzw.
LISP
bin ich schon vorher in Kontakt gekommen:
benutzt
Scheme
als Script-Sprache
.
wurde und wird in
LISP
programmiert.
, was ich damals, als ich noch klein war und zur Schule gegangen bin, gar nicht so richtig realisiert habe.Im Buch
The Pragmatic Programmer
, wird auch erwähnt, dass man jedes Jahr eine neue Programmiersprache
lernen soll, da sich mit jeder Programmiersprache ein Problem auf eine andere Weise lösen lässt und man dadurch verschiedene Denkansätze gewinnt.
Da
Java
zum täglichen Brot und Arbeit gehört, lässt sich diese nicht einfach mit Scheme erledigen. Jedoch bieten ein paar Scheme-Implementierungen, die in Java geschrieben sind, eine Möglichkeit um bei kleinen Aufgaben Scheme einzusetzen:
... und für den Einstieg in Scheme ist die Homepage von
DrScheme
ein guter Einstiegspunkt.