The results of an Obfuscated Erlang competition have been made available. From the announcement on the Erlang mailing list:
The first prize is a splendid contribution by Martin. The program
demonstrates that Erlang has indeed an error in its design. The second prize
was for an artistic Sudoku solver by Urban. And finally, the judges were
forced to add a third prize, the Judge's prize, as they were unexpectedly
confronted with a breathtaking submission that had been used in a live
system.
Further to my post about the Blackdog, here are the binaries and setup instructions to get Erlang and Yaws running on it.
Copy these files to the blackdog then, assuming you don't have stow already installed, perform the following to install Erlang and Stow from within a blackdog xterm:
mkdir /usr/local/stow
cd /usr/local/stow
tar jxvf /root/otp_R10B-8.tar.bz2
tar jxvf /root/stow.tar.bz2
stow-1.3.3/bin/stow stow-1.3.3
stow otp_R10B-8
I compiled Yaws to be installed locally so the steps for that are slightly different:
cd /root
tar jxvf yaws.tar.bz2
Edit the 'yaws.conf' file to reflect what you want or you can leave it at the default to test the installation. To run:
export PATH=/usr/local/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/lib:$PATH
ldconfig
cd /root
bin/yaws -i -c yaws.conf
This runs Yaws in 'interactive' mode. Visiting http://localhost:8000 should confirm things worked by showing the yaws standard install. To exit interactive mode and shut down Yaws press CTRL+G and press 'q' and enter.
Erlang can be run as usual with 'erl'.
I recently got a Blackdog device to try some ideas out. The Blackdog is a very small Linux server with no screen or keyboard.
You plug it into a PC via USB and it emulates a USB CD device. The host machine then autorun's this CD. If the host is a Windows machine it starts an X client. If it's a linux machine it does nothing.
Once that is done the Blackdog then stops pretending to be a CD and pretends to be a USB ethernet device and sets a private network between the host and the Blackdog. The running X client on the host machine then connects over that network to the X server on the Blackdog. Through this you can run programs like xterm and have them display on the host. The Blackdog also does fingerprint authentication during this process to ensure the user is authenticated.
It's a pretty neat little device and has some interesting possibilities. It works flawlessly connecting to Windows XP machines. For Linux machines there are a few issues as newer kernels need a patch applied to it. But with a little tweaking I've got it working on a number of machines.
The blackdog has a PPC based processor. To develop for it you use the Blackdog SDK. This includes a QEMU based system which emulates the Blackdog. You compile the software from in that and then scp it to the Blackdog. Alternatively you could apt-get the development tools on the Blackdog itself.
I've successfully got a number of programs running on it including Factor, Erlang and Yaws. These run very nicely in fact. Hopefully I can develop some of my ideas so it becomes more than an interesting gadget and something actually useful to me.