Emacs fonts and colors

2010 February 1
by guenthernoack

Note to self: This is how to set up nicer Emacs appearance.

In .emacs:

;; Color theme.
(require 'color-theme)
(if window-system
    (color-theme-deep-blue)
    (color-theme-arjen))

In .Xresources:

Emacs.font: Monospace-11

Fonts can also be set from within Emacs itself, but putting it in .Xresources allows you to break your .emacs without losing the font size. Do a xrdb -merge .Xresources to use this in a running X window session.

Clarification on OMeta for Pragmatic Smalltalk

2010 January 19

David announced that I had written an implementation of Alessandro Warth’s OMeta parsing framework for Étoilé’s Pragmatic Smalltalk. Although I feel very honored to have my software announced with such big words :-) , it’s still just the start of a little implementation — it’s actually just the rules from the PEG paper translated into Smalltalk and spiced with some unit tests.

Currently, David continues hacking on the implementation (while I am busy with university, which is of course more important). Parsing the OMeta grammar works for him as far as I know, he probably gets it running soon. When it works, this will be a very nice foundation for Etoile’s programming language parsers. Especially, parsing Smalltalk expressions for the workspace will be pretty simple then. And who knows what we will be able to use it for apart from that. Alessandro Warth’s thesis has some pretty impressive examples for what it can be used for.

You want to play around with it? OMeta/JS — the JavaScript variant — is really great for that. First, it works in your web browser, so you don’t have to install anything. Second, it’s built like a Wiki, so it automatically comes with lots of example source code from other people playing with it.

Bristlebot

2009 December 6
by guenthernoack

Great fun. :)

You want to build a bristlebot yourself? It’s pretty easy, here’s how.

To build this bristlebot, I used one of these nice toothbrushes. (I’m not trying to promote Oral-B here. You can probably get similar toothbrushes from other vendors as well.) They come fully equipped with motor and batteries, for about 4 Euro at the pharmacy. Apart from that, only some adhesive tape and strong scissors are needed.

Lightweight continuous integration

2009 November 10

For my diploma thesis, I use a simple continuous integration system. It doesn’t keep logs except mailing me, but it works fine for the simple one-person setup I have. :-)

Bodo baggert

Wer baggert da so spät noch am Baggerloch?

Advantages:

  • Makes sure my project can be checked out from SVN and then “just works” using Ant.
    • …so everything is checked into SVN.
    • …it builds using Ant (I usually use Eclipse)
    • …there are no rogue dependencies from production code to test.1
    • …and it’s harder for me to forget how to setup the project, of course. :-)

How to do it:

  • Create a new SVN checkout (Git clone, Perforce Client, …) into a directory named continuous_build or similar.
  • In this directory, create a shell script like the one shown below.
  • To your (user) crontab, add the line 00,15,30,45 * * * * cd /home/guenther/continuous_build/ && sh continuous_integration.sh. (Note that crontab automatically sends the script’s output to the user via email.)

Web based build status indicatorUpdate: I just couldn’t resist to hack this together as well: Have a look at the new build status indicator on my diploma thesis homepage. (Click, if you’re in the university subnet.)

Here’s the source code for continuous_integration.sh:

#!/bin/sh
# Run from same directory!

# JSR 308
export JSR308=`pwd`/jsr308

echo "================================="
echo "  Configuration"
echo "================================="
echo "JSR308   : $JSR308"
echo "JAVA_HOME: $JAVA_HOME"
echo "PATH     : $PATH"

echo "================================="
echo "  SVN Update"
echo "================================="
svn up

cd jsr308/checkers

echo "================================="
echo "  Clean"
echo "================================="
ant clean

echo "================================="
echo "  Build"
echo "================================="

if ant all-tests; then
    echo "WIN"
    DISPLAY=":0.0" xsetroot -solid black
else
    echo "FAIL"
    DISPLAY=":0.0" xsetroot -solid red
    killall rhythmbox
    mplayer -really-quiet /usr/share/sounds/ubuntu/stereo/dialog-error.ogg > /dev/null 2> /dev/null
fi

Insert whatever it needs to draw your attention in the “fail” block. :-)

Footnotes
1 I regularly fall for this one. Eclipse doesn’t check it, and sometimes I just forget to hit Ctrl-Shift-O after cleaning up.

Grr is now part of the GNUstep Application Project

2009 October 16
by guenthernoack
Grr RSS Reader

I’m happy to announce that the Grr RSS Reader application is now part of the GNUstep Application Project (GAP).

Grr running on the Letux 400 netbook. -- Image shamelessly copied from Riccardo Mottola's weblog :-)

Grr running on the Letux 400 netbook. -- Image shamelessly copied from Riccardo Mottola's weblog :-) (Click!)

Riccardo Mottola’s announcement: http://multixden.blogspot.com/2009/10/grr-rss-to-go-on-gnustep.html