Logging from within Gophermoon Version 0.2 of Gophermoon did send all output from stdout (standard out) and stderr (standard error) back to the socket. For error messages, that was not ideal, as Lua stack traces do not honor the Gopher protocol :) In this version 0.3 I have added a logging channel for Gophermoon . Writing a log-file into the filesystem does not work, as Gophermoon runs inside an…
Gophermoon on Github the sourcecode is now on Github @ https://github.com/cstrotm/gophermoon With every blog post, I will post the link to the commit associated with the blog post. Serving static text files Today Gophermoon learned how to serve static text files. The program first looks at the selector send by the client. If the selector is empty, and uses the root directory. --- read the selector…
What's in it today I will not change the (minimal) Gopher server (this time), but will prepare the execution environment for Gophermoon: the result will be a container containing, only one executeable and one Lua-Script besides the Gopher content. The container will be isolated from the network and the filesystem and process-space of the host machine. So any coding errors I will create while…
About I'm writing a simple Gopher-Server in Lua. I want to play around with the Gopher Protocol, Systemd and Linux-Container and learn some Lua-Programming on the way. Gopher is a document retrieval protocol that had been around the same time the world-wide-web was born, but it is much simpler that HTTP and HTML. It works with plain text and directories, and the protocol on the wire is…
I just finished to work out a way to clone a MacOS X installation from Linux (for automatic installation of MacOS X with fai – fully automatic installation ). All tools discussed in the article are available in Debian 7.x (wheezy). Backup First we save the GUID (Globally Unique Identifier) Partition Table (GPT), so that we can restore the same partition table on the target machine. We use the…
I occasionally need to convert Forth block files (from VolksForth) to plain text files (to use diff or other tools). This one-liner using gforth does the trick: #!/bin/sh gforth -e "use ${1} : dump-blocks 0 do i list loop ; : blocks get-block-fid file-size drop d>s 1024 / ; blocks dump-blocks bye" Save in a script file (dump-blocks), make it executable, and then you can use # dump-blocks…
To get volksForth running on the FireBee, the machine code instructions that are available on the MC68000, but not in the ColdFire CPU need to be replaced with a series of instructions that perform the same action. I found the "Digger V8" dissassembler on Heenk Robbers webpage along with the AHCC C-Compiler. The Digger is able to disassemble both ColdFire and MC68000, and it can switch between the…
On the last day of 2012, Stefan (aka Beetle) brought me the FireBee machine that we both share. I've been programming Atari 8bit machines for over 25 years now, but this is the first time that I enter the realm of the Atari ST family with a 68K or now ColdFire . There is much to learn. My FireBee Development setup The FireBee is a modern incarnation of the Atari ST computer line, including…
Sunday Mar 18, 2012 Dirk Brühl und Michael Kalus haben das CamelForth vom Brad Rodriguez für das TI Launchpad Board angepasst. Das 4€4th Projekt hat eine eigene Webseite auf http://www.4e4th.eu . Auf der Webseite der Forth-Gesellschaft e.V. gibt es Neuigkeiten zum TI Launchpad und CamelForth (aka 4€4th): http://www.forth-ev.de/index.php?topic=launchpad . Die Quellen und die aktuelle HEX-Download…
Wednesday Dec 14, 2011 screen Screen ist der Allrounder unter den Terminal-Programmen. Eigendlich mehr ein Fenster-Manager für die Kommandozeile. Keine Konfiguration, einfach loslegen. Um den vollen Funktionsumfang ausnutzen zu können unbedingt einen Blick in die Man-Pages werfen. Screen in den unterbrechen mit "CTRL+A-d" Screen beenden mit "CTRL+A-\" Backspace / Delete mit "CTRL+H" Split-Screen…
Wie bekommt man das amForth auf den Arduino Duemilanove um das Morse-Programm laufen zu lassen. Dies sind die Schritte die ich für jedes Arduino-Board vor Beginn eines Workshops durchführe: Schritt 1: den Programmer an das Arduino Board anschliessen Ich benutze einen avrisp MKII Programmer (ca. 30 Euro) um den Arduino neu zu programmieren. Sowohl der Programmer als auch das Arduino-Board müssen…
Konfiguration der Arduino Pins und die Basis-Wörter des Morse-Programms. Dieser Teil wird für jedes der drei Morse-Programme benutzt: \ 2011-10-26 EW \ 2011-11-02 CS \ arduino duemilanove + danger shield \ morse code stuff (Potsdam/Augsburg/Oberhausen) \ make marker loads: \ lib/misc.frt \ lib/bitnames.frt \ lib/ans94/marker.frt \ ../../amforth/releases/4.2/core/devices/atmega328p/atmega328p.frt…
I've been asked to recover some 1st Word+ Documents from 3½" disk drives. Before starting up one of my old Atari ST machines, I was trying to get the job done using Linux. And it worked quite well. Here is how: Atari ST disk are formatted using a flavor of the FAT file system . Most of the time, it is possible to read this disks under Linux. The 'mtools' package contains tools to read and write…
Wednesday Jun 15, 2011 The GIMP Script-Fu scheme snippet will take a file wildcard pattern ("*.JPG") and an rotate-type value (0 = 90° / 1 = 180° / 2 = 270°), level out the colors in the picture and save the changed image as a PNG file. (define (batch-rotate pattern rotate-type) (let* ((filelist (cadr (file-glob pattern 1)))) (while (not (null? filelist)) (let* ((filename (car filelist)) (image…
The MacPorts projects offers a fine, easy way to install Unix tools and applications on MacOS X. Over time however, MacPorts can accumulate amounts of dead data, as when applications get updated, the old versions stay until they are removed manually. In addition, after compiling a port from source, both the source and the intermediate object code remains on the harddisk. Two commands can spring…
MacOS X (10.3 and up) contains an IPv6 firewall (ip6fw), which has been inherited from FreeBSD and the KAME project. However there are no configuration or startup scripts, nor any other support available in a stock MacOS X system to manage this firewall. The script presented here will read a firewall configuration from /etc/ip6fw.conf and will apply the IPv6 firewall rules to the MacOS X firewall.…
On MacOS X 10.6 (Snow Leopard), the IPv6 firewall command line utility 'ip6fw' is broken. It does not store filter rules for ICMPv6 types above type 127: # sudo ip6fw add 20020 allow ipv6-icmp from any to any in icmptype 1,2,3,4,128,129 20020 allow ipv6-icmp from any to any in icmptype 1,2,3,4 The command still worked on MacOS X 10.5. It turned out that Apple has compiled ip6fw for x86_64 , a…
Saturday Mar 26, 2011 On my IPv6 router, I have the router advertisement daemon 'radvd' running: blackbox# more /etc/radvd.conf interface eth0 { AdvOtherConfigFlag on; AdvManagedFlag off; AdvSendAdvert on; RDNSS 2001:db8:2b6::1 { AdvRDNSSLifetime 84600; }; prefix 2001:db8:2b6::/64 { AdvOnLink on; AdvAutonomous on; }; }; The Line 'RDNSS 2001:db8:2b6::1' configures the advertisement daemon to send…
Yesterday I had to debug a MacOS X commandline program that segfaulted immediatly after starting. This program is 'rdnssd' (Recursive DNS Servers discovery Daemon, http://rdnssd.linkfanel.net/ ). 'rdnssd' implements the client part of RFC 5006 - IPv6 Router Advertisement Option for DNS Configuration . This function lets an IPv6 router send out DNS server IP address information as part of the…
JASSPA MicroEmacs is a lean, but very powerfull text editor for many different operating systems. It is not driven by Lisp as GNU/Emacs, but with a powerful macro programming language. Below are packages for the TinyCore Linux System, compiled from the 11 October 2009 release sourcecode from the JASSPA Website . There are three different packages: jasspa-microemacs-mewc-091011.tcz (336.0K) is the…
Monday May 11, 2009 Yesterday, I was looking for a 3 ½" floppy disk for an Atari ST. I found one disk without label, and before formatting it, I tool a look what's stored on it. To my surprise, I found some of the first digitized pictures (from me) made on Hobbytronic 1992 (a computer fair in Dortmund) where ABBUC had a booth opposite a company doing scanner and digitizer cameras. So below we have…
On Booth 23 (me with entry ticket 42 , for all numerologicals) I had two RTX2000 single board computer on display. The theme of the exhibition has been "In space, no one can hear you scream", and for the RTX 2000 machines there was materials collected about NASA, AMSAT and ESA space missions that make use of the RTX 2000 CPU. Both RTX2000 Boards (a "kleiner Muck" and a "Wiesel 2000") were shown…
Clojure had been overtaken Scala as the next programming language to learn (for me, at least, on the list of languages to learn which is almost as long as the list of places to visit). Both, Scala and Clojure, are languages for the JVM, or Java Virtual machine, and fit well in most work that I'm doing. Learning Groovy last year and using it with Grails this year was great fun. The cause is that…
Tuesday Aug 05, 2008 Apple MacOS X Timemachine is a nice piece of software. However it does not compress the data, and it only works on MacOS X. I was looking to a similar solution that works also on other Unix Systems (as well as MacOS X) and does transparent compression of the data. The idea is to have multiple backups on one disk, each backup showing the state of the source hard disk or…
Dies ist ein Eintrag aus meinem alten Wiki und der alten "strotmann.de" Homepage von 1999, welcher aber immer wieder einmal nachgefragt wurde und den es daher auch im neuen Blog gibt. Der Texteditor MicroEmacs. Eine 32 Bit EMX Version des MicroEmacs für OS/2 2.x und höher (Binärdateien und Sourcen für OS/2). MicroEmacs 99 (JASSPA); Binärdatei (ELF) für Solaris 7 x86. MicroEmacs 4.00 (orig);…