%% LyX 2.0.0beta3 created this file. For more info, see http://www.lyx.org/. %% Do not edit unless you really know what you are doing. \documentclass[english]{article} \usepackage[T1]{fontenc} \usepackage[latin9]{inputenc} \usepackage{textcomp} \usepackage{babel} \begin{document} \title{Neuigkeiten von \emph{übern Teich}} \author{Carsten Strotmann} \maketitle Ende Januar hatte ich die Gelegenheit, an dem monatlichem Treffen der Silicon Valley Forth User Group teilzunehmen. Die SVFIG ist so etwas wie die Keimzelle der Forth Interest Group, und immer noch sehr aktiv. Die Gruppe trifft sich monatlich auf dem Campus der Stanford Universität in Palo Alto. Diesen Januar waren 12 Forthler zum Erfahrungsaustausch anwesend. Im lockerem Stil wurde über aktuelle Projekte und Entwicklungen berichtet. \begin{multicols}{2} \section{Forth auf dem Arduino} Den Anfang der Vorträge machte Chen--Hanson Ting (CH Ting) über seine Erfahrungen mit Forth auf dem Arduino. Ting hat einen Arduino \emph{Uno} bekommen, den Nachfolger des Arduino 2009 \emph{Duemilanove}. Tings erster Versuch war, das amForth auf dem \emph{Uno} zum Laufen zu bringen. Zwar hat der \emph{Uno} die gleiche CPU wie der \emph{Due} (Atmega328), aber amForth laeuft derzeit nicht 'out of the box' mit dem \emph{Uno} (Der Bootloader und die USB--Seriell Schnittstelle ist eine andere). Leicht frustriert von diesen erfolglosen Tests, versuchte Ting, das amForth im Atmel Simulator unter Windows zu starten, um ein Gefühl für amForth zu bekommen. Obwohl alle anderen Atmel--Beispielprogramme ohne Probleme liefen, verursachte amForth jedoch einen Komplettabsturz des Atmel Simulators. Eine Untersuchung ergab, dass amForth korrekt programmiert ist, aber wohl der Simulator einen Fehler enthält der (nur) durch amForth ausgelöst wird. Die Arduino--Boards kommen von Hause aus mit einer einfachen Programmierumgebung namens \emph{Sketch}. Sketch ist eine C--ähnliche Sprache, welche den Einstieg in die Arduino--Programmierung für Programmier--Anfänger erleichtert, die \emph{Sketch} IDE ist in Java geschrieben und für Anfänger relativ einfach zu bedienen. \emph{Sketch} wird im Hintergrund der Sketch--IDE in echten C--Programmcode und dann noch auf dem PC per GNU--C--Compiler in ein Binärprogramm übersetzt und an den Arduino gesendet. Aus Mangel an direkten Alternativen implementierte Ting das eForth, geschrieben in \emph{Sketch}, für den Arduino. Die vordefinierten Forth--Wörter werden mit der \emph{PROGMEM}--Anweisung als Datenstrukturen direkt in den Flashspeicher geschrieben. Dies funktioniert, es wird aber unnötig viel Speicher für die \emph{Sketch}--Routinen verbraucht. Auch ist die Erweiterung des Forth--Dictionary in diesem Sketch--Forth nur im (S)RAM des Atmel möglich, nicht im Flash. Also keine wirklich befriedigende Lösung. Im aktuellen Projekt erstellt C.$\,$H.\ Ting nun ein eForth in Atmel--Assembler für den Arduino \emph{Uno}. Dieses System soll auf dem März--Treffen der SVFIG vorgestellt werden. Der eForth--Interpreter funktioniert schon, am Compiler wird derzeit noch gearbeitet. Nachtrag: Auf dem Februartreffen der SVFIG haben Bill und Michael Ragsdale über ihre Erfahrungen mit dem Arduino \emph{Uno} und amForth berichtet. Auf dem gleichen Treffen berichtet Leon Wagner von Forth Inc. über das neue SwiftX für den Arduino \emph{Uno}. Und Charley Shattuck berichtet über MyForth auf dem Arduino (tethered Forth, benutzt GForth für target compiling). Obwohl C.$\,$H.\ Ting im Januar seinen Vortrag mit der Erkenntnis begann, dass der Atmel im Arduino aufgrund der Harvard--Architektur eine feindselige Umgebung für Forth darstellt, mausert sich Atmel zur Nummer \emph{Uno} Forth Plattform. Arduino überall! \section{Mittagspause} Zur Mittagspause gab es Snacks im \emph{Treehouse} der Stanford--Universität. Es war sehr angenehm, mitten im \emph{Winter} bei 24 °C im T--Shirt in der Sonne sitzen zu können. Nach dem Mittagessen gab es eine kleine Aufheiterung in Form des \emph{Turbo Encabulator} Videos: \url{http://www.youtube.com/watch?v=rLDgQg6bq7} \section{Das XuLA Board} James Bowman zeigte das XuLA FPGA Board (Xilinx Spartan). Dieses Board beinhaltet auf 51 mm x 25 mm ein 50,000--gate FPGA, 8 MByte SDRAM, 2 Mbit Flash, zwei Spannungs--Regler und ein PIC 18F14K50 Mikrocontroller. Das Board ist zum Preis von 30 US\$ bei der Firma XESS zu bestellen. James benutzt das Board für die Arbeit an der J1 Forth CPU, welche auf der EuroForth 2010 vorgestellt wurde. \section{eForth auf Green Arrays GA144} John Rible berichtete als der Kassenwart der SVFIG über die Finanzen der Gruppe und zeigte danach ein paar Bilder der GA144 Waver. Der GA144 ist der neue Chip (1cm x 1xm) mit 144 F18A Forth CPUs, entwickelt von Chuck Moore und seinem Team bei Green Arrays. Die Waver sollten eigendlich direkt von der Fab zum Chip--Gehäuse--Hersteller gehen, um dort in Gehäuse gepackt zu werden, wurden aber aus Versehen über das Green Arrays Büros in Incline Village (Lake Tahoe, Nevada) gesendet. Die fertigen Chips sollen ab April/Mai 2011 für interessierte Kunden verfügbar sein. \section{Forth--Bildungs--Gruppe} Ich hatte dann meinen kleinen Auftritt mit einer Übersicht der Aktivitäten der Forth--Bildungs--Gruppe in der Forth--Gesellschaft. Gezeigt habe ich Bilder von unseren LinuxTag--Aktivitäten, speziell das Video mit dem Solitär--Roboter von Ewald Rieger und Friedel Amend wurde begeistert aufgenommen. Die SVFIG Gruppe hat ähnliche Aktivitäten in der Planung, z. B. wird die Gruppe im Mai auf der \emph{Maker Faire Bay Area}, einer Messe für Bastler und Erfinder der Zeitschrift \emph{Make}, ausstellen und für Forth werben. \section{GForth auf eCos} John E.\ Harbold arbeitet an einem Port des GForth an das embedded Open Source Betriebssystem eCos. In seinem kleinen Vortrag hob John speziell die Vorzüge des GForth gegenüber anderen Forth--Systemen hervor, z.$\,$B.\ die Schnittstellen, um in C geschriebene Programmbibliotheken nutzen zu können. \section{Native Client Forth im Chrome Webbrowser} Brad Nelson ist der Autor des Rainbow Forth. Rainbow Forth ist ein Abkömmling der ColorForth--Familie und für Linux, Window und als Web--Applikation im Browser verfügbar. Die ursprüngliche Webapplikation ist mittels JavaScript im Browser und Python und Forth in der Google AppEngine gebaut. Nun ist die Ausführungsgeschwindigkeit von in JavaScript geschrieben Forth Interpretern nicht die Beste (selbst wenn JavaScript in den letzen Jahren erheblich von optimierten modernen VM Technologien profitiert hat). Google führt mit Version 10 des Chrome Webbrowsers die \emph{Native Client} Technologie in den Browser ein. \emph{Native Client} erlaubt in sicherer Weise (per Sandbox), nativen Programmcode (x86, x86\_64, ARM) im Browser ablaufen zu lassen. Es wird also nicht interpretiert wie bei JavaScript, sondern der Binärcode des Programms wird im Browser direkt auf der CPU ausgeführt. Dabei verhindert die \emph{Native Client} Technologie, dass der Prozess aus dem Browser ausbricht und unberechtigt auf Dateien oder andere Resourcen des Rechners zugreift. Brad arbeitet nun an einer neuen Version des Rainbow Forth, welche mit Hilfe der \emph{Native Client} Technologie in voller Geschwindigkeit, aber im Browser ablaufen kann. Für den Benutzer ergibt sich der Vorteil, dass das Forth--System aus dem Netz geladen wird, nicht \emph{installiert} werden muss und immer auf dem neusten Stand ist. Die erstellten Forth--Programme können wahlweise im Netz (ColorForth encoded) oder später auch auf der lokalen Platte (nach Rechtefreigabe durch den Benutzer) gespeichert werden. \end{multicols} \section{Links} \subsection{Arduinio} Arduino \emph{Uno}: \url{http://arduino.cc/en/Main/ArduinoBoardUno} amForth: \url{http://amforth.sourceforge.net/} Arduino PROGMEM: \url{http://www.arduino.cc/en/Reference/PROGMEM} Folien amForth auf dem Arduino: \url{http://www.forth.org/svfig/kk/02-2011-Ragsdale.pdf} SVFIG Februar Treffen \emph{Arduino day}: \url{http://www.forth.org/svfig/kk/02-2011.html} \subsection{XuLA} XuLA FPGA: \url{http://www.xess.com/prods/prod047.php} J1 FPGA CPU: \url{http://excamera.com/sphinx/fpga-j1.html} \subsection{Green Arrays} Green Arrays: \url{http://www.greenarraychips.com/} \subsection{Maker Faire} Maker Faire: \url{http://makerfaire.com/} \subsection{eCos} eCos: \url{http://ecos.sourceware.org/} \subsection{Rainbow Forth} Rainbow Forth: \url{http://rainbowforth.sourceforge.net/} Rainbow Forth in JavaScript: \url{http://rainbowforth.appspot.com/view?start=300\&end=315\&} Google Chrome Native Client: \url{http://www.chromium.org/nativeclient} Native Client Forth: \url{https://docs.google.com/present/view?id=0ARW9X5bieOAwZGRiaGQ4MmZfMjhmNW16djgzYw\&hl=en\&authkey=CLuf64AI} SVFIG Webseite: \url{http://www.forth.org/svfig} \end{document}