Archive for October 2002

We’ve finished the first third of our project

Although I thought this last week was surposed to be my autumn holiday, I’ve still managed to spend around 6 hours at DAIMI each day… I’ve been working together with Thomas Mølhave and Mikkel Krøigård on our dPaSS project. And now it’s finished and it works! We were surposed to design a framework that will be used to build a calendar system. But we’ve actually made a working program where you can create new appointments, invite people to appointments and cancel appointments.

Everything is documented in the biggest document I’ve ever been part of, written in [LaTeX][] of course, we’re at about 70 pages right now. But it’s only about 18 of those pages that has text on them, the rest is titlepages, table of contents, and then all the code typeset using the excellent listings package. The definition we’ve been using for the BETA language is

\lstdefinelanguage{BETA}{
  morekeywords={
    origin, include, body,
    enter, do, exit,
    if, then, else,
    for, repeat,
    leave, restart,
    inner,
    suspend,
    dopart, descriptor, mainpart, attributes,
    true, false, and, or, not,
    none, this},
  sensitive=false,
  morecomment=[s]{(*}{*)},
  morecomment=[s][\footnotesize]{(**}{*)},
  morestring=[b]‘,
  moredelim=*[s][\slshape]{<<}{>>},
  moredelim=*[s][\scshape]{-}{-},
  moredelim=[s][\ttfamily]{[}{]}
}

The comments started with (** is used for the CVS headings which tend to be fairly long. Using \footnotesize makes then small enough to fit into a single line. We’ve typeset all the code using a basicstyle of \small\sffamily using the Lucida Bright fonts from Y&Y which look fantastic. Unfortunately I cannot show you the report with the fonts, because of the license on these commercial fonts, which says that

Scope of Use. [...] If you need to publish material in electronic form that contains fonts or partial fonts, then you need to obtain an electronic publishing license.

And I don’t have such a license :-(

Party, party…

Yesterday was Saturday night, so we had having a small party here at [Skejbygård][]. But it was only a small party: Christina Strøhl had gone to some sort of reunion party with the people from her highschool and Jesper Klintø was at a party in Aalborg. So we were just myself, Camilla Johnsen, and Torben Classen. But that was also enough!

We had rented both IMDB:Remembering the Titans (2000) and IMDB:Don’t Say a Word (2001) which were both good films. IMDB:Remembering the Titans (2000) was a particularly nice film, because it left you with a nice friendly fealing: it’s the story of how the black Herman Boone, played by Denzel Washington, becomes the head coach for a football team, replacing the white coach Bill Yoast, played by Will Patton. The local community isn’t pleased with this, and neither are the white players. But after a militaristic training camp everybody learns to accept each other, and things basically go from there to a happy end.

After that we saw IMDB:Don’t Say a Word (2001) which is surposed to be a thriller. I didn’t find it that scary, though. It was a fairly good movie, but nothing spectacular.

Back from Aalborg — I’m still sick

I’ve spend the last three days in Aalborg with my mom, dad and my younger brother Kristoffer. I was starting to feel better when I left Århus Monday morning, but the cold I’ve got quickly increased when I came to Aalborg.

So I didn’t do much when I was there — we watched IMDB:A Beautiful Mind (2001) on DVD on my parents new widescrean TV which was really nice. The film itself is amazing: Russell Crowe is fantastic in the way he can act using just his eyes. There’s several scenes where he doesn’t say anything, but his eyes and the expression on his face tells the whole story. I’ve really an amazing film, and if you haven’t seen it already, then you should hurry!

I also saw Kristian Kristensen while I was in Aalborg. It was really nice to get together and talk about the “old times” :-)

I’m sick :-(

The summer has gone and autumn has arrived — it’s terrible cold outside these days. And this has made me sick: I’ve got myself a bad throat.

I went to the University today at 8:00 in the morning as usual, but got back already at 10:00 because my head started to ache. So Thoooms and Termos had to handle our group assignment in dArkOS themselves — which they did without a problem, of course. I went home to lie down on my couch.

Some hours later, I started working on the [LaTeX][] code that will become our report for our project in dPaSS. I’ve made a pretty cool document already by teaching the listings package to highlight BETA code. I’ll post the code here at GimpsterDotCom when we’ve tested it some more.

We’re working on your mandatory project for a week now. The task is to program a calendar system using the rather strange programming language BETA. To give your a taste of how BETA looks like, take a look at this Hello World example:

Origin '~beta/basiclib/betaenv';
--- Program: Descriptor ---
(# do 'Hello World!' -> putLine; #)

That was an easy example: It declares a fragment that will be inserted into the Program slot in betaenv which is the top level in all BETA programs. BETA programs consist of a lot of fragments which are inserted into slots in other fragments.

We can complicate things a bit this way:

Origin '~beta/basiclib/betaenv';
Include '~beta/containers/list';
--- Program: Descriptor ---
(# a, b: ^Text;
   l: @List(# element:: Text #);
do 'Hello ' -> a[];
   ‘World!’ -> b[];
   a[] -> l.Append;
   b[] -> l.Append;
   l.Scan(# do current[] -> putText; #);
   newLine;
#)

This will also output Hello World! to the terminal, but this time it’s done by storing each word in a variable, putting the variables into a list, and then running through the list — of course this is only to demonstrate the way you can further-bind Scan in the List pattern. The code in (# do ... #) is executed once for each element in the list, and the current element is available in the current variable. The brackets [] indicate that we’re working with references instead of the actual objects, just like & is used in C.

Programming in BETA is a mixed blessing: there’s a lot of nice things in the language like the way you specify take a general List pattern above and makes a subtype that can only contain Text patterns, but there’s also a lot of stupid things that you have to deal with using various hacks.

PhpWeather 1.62 has been released

This is a release for those of you who still has to use PHP version 3 — everybody else should use [PHP Weather][] 2.x instead.

This release adds a Greek translation and fixes a couple of minor bugs. You can now adjust the time without hacking the code and you can specify the directory used for flat-file databases. All this can be downloaded as a tar.bz2, tar.gz, or zip file.