Xi Forth diary .. Markup syntax

Eight bit microcontrollers are obsolete .. Microcontroller shootout .. ARM architecture

Laxen meta-compiling one .. Laxen meta-compiling two .. Laxen meta-compiling three

Laxen multi-tasking one .. Laxen multi-tasking two

Code reviews

2006 April 15 07:27

And here are two more articles about multi-tasking in Forth from Henry Laxen from Forth Dimensions: Laxen multi-tasking one .. Laxen multi-tasking two

2006 April 13 17:49

Added three articles on meta-compilation by Henry Laxen to the wiki. The articles appeared originally in Forth Dimensions.

2005 May 03 05:55

A little while ago I promised David Frech to collect links to a few very interesting papers about Smalltalk. Well, Stéphane Ducasse already has all those I wanted to point out on this page, together with PDFs of (Smalltalk) books that are out of print.

The links to the papers are just before the book list.

2005 April 21 14:56

An interesting two-person game called "EinStein würfelt nicht" that can be learned in two minutes. Warning: page in German. Try to figure it out; if you need help, I can translate it into English – but not right now ;-)

2005 April 20 10:07

For a while now I have been unhappy with editors on the different platforms that I usually work with. I am seriously thinking about writing my own editor now. The number one requirement is that the editor is cross-platform and works the same on Mac OS X, Unix/Linux, and Windows (“at work”).

Now, I don’t want to write all the necessary interface code for the various platforms, if I can avoid it. So, what are the options to achieve this? I discussed this a bit with David Frech and we collected the following list:

Hack Emacs. Difficult, but possible. Emacs is way too big, and stripping it down is probably as much work as building a new editor.

Is this really true? On my machine the emacs executable is big – about 4.5 megs! – but I think it has a lot of compiled elisp code built in. My understanding was that the emacs engine (including the storied redisplay code) isn’t that big. More like 200k or something (that’s a totally uneducated guess ;-).

It’s unclear how hard building the engine up to a point of usefulness would be. Is this different from “stripping down” a bloated emacs, or just a different perspective? --David Frech

The last time I had a look at Emacs sources is more than 5 years ago. Back then, building from sources was quite painful. --Michael Pruemm

Use Java. Not the right language, and cross-platform key mapping is basically impossible.

Write it in Squeak. Squeak is a true cross-platform environment.

Objective Caml with a simple VNC framebuffer interface. Requires a VNC viewer to display the bits on the screen and a lot of low-level code in OCaml.

I just found another possible solution:

MrEd from PLT Scheme. MrEd is a GUI-writing environment that comes with a feature rich editor “toolbox”. See the PLT MrEd: Graphical Toolbox Manual and PLT Framework: GUI Application Framework, both are available from the PLT documentation page.

The MrEd environment looks very attractive right now.

When I found out about it – there were several PLT Schemers at ICFP 2004 – I got pretty excited about PLT Scheme and the whole "teach Scheme" thing. I poked around a bit, and found that the the PLT Scheme environment seemed pretty bloated, but MzScheme seemed like a decent Scheme to play around with. I built but never used it. I guess I was already out of my “Scheme is the most perfect programming language, ever!” phase and into “static polymorphic typing really rocks!” phase. ;-)

Michael, I suppose size isn’t a huge issue as long as the whole environment fits on a Flash keychain drive and fits reasonably in memory on not-terribly-godlike machines.

How does MrEd compare, size and complexity-wise, with Squeak? What are the reasons that it’s looking “better” than Squeak?

OTOH, why not just hack DrScheme’s built in editor and save yourself a lot of work? --David Frech

That’s exactly what I am proposing! MrEd is the built-in editor of DrScheme. Well, it’s an executable with all the GUI classes pre-loaded, and the editor used in DrScheme is one of them.

MrEd would fit nicely on a memory stick. All you need is the executable plus a few shared libraries. That’s not too different from Squeak + plugins.

The reason MrEd is looking better than Squeak is that it already comes with an easily customizable editor class. The simple VM + image approach of Squeak is easier to use cross-platform but you would have to write more code. For a quick start, MrEd looks more attractive; in the long run Squeak might be the better choice.

What do you think? --Michael Pruemm

I think you should try MrEd and see how it is. Dig in and write some code. If the environment seems comfortable and you’re enjoying yourself, carry on. If not, punt and try Squeak instead.

I mentioned this project to Michael Rutenberg and his (immediate) response was “use Squeak”! --David Frech

2005 April 07 05:46

Interesting reading: WikiHistory about the first 10 years of the orginal Wiki.

2005 April 06 15:12

Today I got the new power supply for my power book. Now I have access to all my data again and can continue to work on xiForth. The old power supply died on Saturday, just before I wanted to make a backup, as if it knew. :-)

2005 April 02 14:29

Via the Squeak mailing list: Picotux is a very small Linux computer based on an ARM 7TDMI core running at 55 MHz. A slightly better description is available here.

Wouldn’t it be fun to use this as a host for our Forth?

2005 March 30 23:59

Here is a little “roadmap” for the future, that David Frech and I came up with:

So my “sequence” is something like this:

2005 March 30 23:53

A little project idea: At work I can access the internet in a limited way through a proxy. Only HTTP(S) on port 80, and FTP are supported. To exchange a few quick messages it would be nice to have a lightweight chat implementation that can work over these constraints.

It could be implemented using the same techniques that GMail uses, because that works fine.

Any comments about this?

Wiki chat is something I’ve been thinking about for awhile. Yaws 1.53 dist has a chat program; I’ve played w/ it locally to see what they did – it’s mainly javascript.

--Douglas Shacteau

Is there a place to try it? I would like to find out if it works with the weird proxy we have at work.

2005 April 04 18:03

I’ll get it up and running on the anarchitech site this week, hopefully tonight or tomorrow. When it’s running I’ll post the link here. I’m curious as well. ;-)

--Douglas Shacteau

2005 April 04 23:00

It’s running. uri is anarchitech.org/chat login is whatever handle you desire, ignore the password. It’s rudimentary and uses the browser as the ui.

--Douglas Shacteau

I had a look. Nice. Now we need to decide on a time when we can meet in the chat room. --Michael Pruemm

I’m going to tweak the code a bit and try to get it to validate, possibly a couple of other things. I originally envisioned a standalone app (David mentioned he/you were thinking along this route,) but the nice thing about using a browser is that any machine anywhere can use the chatroom; no need to worry about xplatform stuff.

The next couple of weeks are really hectic for me (as usual). I’d suggest running “who” on tesla and if I’m there, “write” me or use “talk”. It would be interesting to try a three or four way chat; David and I tested it out last night and it seemed to work fine.

If it works as a framework, great. David and I were talking about running it over SSL to make it a little more secure; would your “weird” proxy at work allow this?


I think so. As long as it is all on standard ports, it seems to work. I can access GMail via https without any problems.

I just thought of an interesting “presence” twist on this. Doug, you suggested that Michael run “who” on tesla to see if/when you’re around. The trouble is, he’d have to ssh in to tesla, and that’s one of the blocked ports.;-)

So I thought “Ok, so we need presence reflected onto a web page”. Essentially if we had another URI, perhaps


that simply ran the “who” command and showed the results, this would be a way for Michael to see who is logged in to tesla without logging in himself. If we’re feeling paranoid (about the unwashed discovering usernames to mount login attacks against) we can protect the /who page with a simple password.

Any thoughts? --David Frech

This would work only if there was a way to notify a logged in user via a web page, too. The output of “who” could list the real names (or wiki names?) of the logged in user, and each name would be a link to script that uses “write” to notify the user. Instead of using the login names in the link to the “write” script, we could use the user id (+ some constant, e.g.). It should be easy to translate between login names, real/wiki names, and user ids in a script.

2005 March 30 23:50

The previous contents has moved to the xi Forth diary.