Archive for the ‘Computing’ Category.

Two more weeks!

Well, it seams that my last newspost was too uptimistic — as always… I’m still offline. But the good news is that they’ve published dates for when we’ll be connected to the Internet. Skejbygaard Kollegiet will be connected on November the 23rd — two weeks from now. So, until then — hang in there :-)

Two more weeks to go - I hope :-)

I’m still waiting for my Internet connection, which explains the lack of updates lately — sorry about that. The last thing I’ve heard is, that we should go online this or next week — it that holds true it will be great!

It’s been kind of strange to be without an Internet-connection for over a month — I can’t wait to get back online. I have tons of email to read, and lots of webpages to check out. A lot of my new friends use ICQ, so I guess that I’ll also have to give it a try. I’ve always preffered email over those instant-message protocols. Emails are nice because they allow you to read something, think about it for a while, and then answer it a couple of hours later.

I’ve borrowed a really good book about C++ from one of my neighbours. It’s called Navigating C++ and Object Oriented Design, if I remember correctly. So far I must say that I’m impressed by C++. The way objects are handled is sound and straight-forward, it’s surprisingly easy to overload operators like +, -, and so on. It’s also cool to play with generic containers and template functions. But the best think I’ve learnt is that you can avoid most of the pointer-madness from C by using references instead of pointers. Take this procedure as an example:

void triple(int & i) {
  i *= 3;
}
int n = 42;
triple(n);
cout << n << endl; // prints 126

It works just like a procedure in Pascal that takes a var-parameter. In C you would have to write it as

void triple(int *i) {
  *i *= 3;
}
int n = 42;
triple(&n);
printf("%d\n", n);

You have to call the procedure with the address of your integer instead of just passing it as a reference. I guess that I’ll buy the book by Stroustrup, as I’ve heard that it should be the Bible for C++, when I’ve read the other book.

That’s all for now :-)

Still going strong - sort of

I haven’t update these pages as much as I wanted to lately. But that’s because I don’t have access to the Internet from my new home :-( We’re going to be hooked up to Bolignet-Aarhus, and it was scheduled to be finished last Monday, but there’s still nothing. Hopefully I’ll be back online in a couple of weeks.

This also means that I haven’t checked my mail for some time now. I try to keep up with it over the Web from Uni, but it’s still pretty annoying. So if you’ve written to me, and I haven’t answered, it’s because I haven’t read your mail — sorry.

Bye for now!

Switching to the Z shell

The Z Shell

I’ve recently switched to Zsh from BASH. I switched after Cookie had demonstrated it for me — I immediately saw one great feature: Zsh can handle a prompt on the right-hand side of the screen. The prompt is managed intelligently by Zsh, so that it temporarily removed if it gets in the way. I use my right prompt to show the current working-directory. When I’m working in a deeply-nested directory, this string can get quite long and take up much of the line-width. Before using Zsh, I also had my working-directory on the right of the line. But this was done by an ugly hack, as BASH doesn’t support such a prompt. The result was that my display would become garbled if I overwrote some of the right prompt. It was a mess!

The switch was done without any problems. I had to move the contents of my ~/.bash* files into the corresponding ~/.zsh* files — no problem. But I’ve also gone a step further and I’m now using the powerful completion-features of Zsh. I’ve added these two lines to my ~/.zshrc:

autoload -U compinit compinit

This initializes the completion-code which makes Zsh much more intelligent. Instead of always suggesting all files in the current directory, I’ll now only see directories after cd, manual-pages after man, compressed files after gunzip, and so on. It also knows about the valid options for a lot of programs like cvs, dvips, etc. All this only slows things down a little bit, thanks to Zshs ability to load the code automatically when needed. So it’s only when I try to complete an option to cvs that Zsh actually loads the necessary code.

So — Zsh is a great shell. Compared to other shells (well, compared to BASH) I think it’s much more advanced. I always thought that man bash was big, but that’s only until you try man zsh. That tells you that the manual has been split out into 11 different sections because of the many features :-) And each of these sections is rather big by itself…

Expanding my Web of Trust

I’ve persuaded my father into creating a key-pair for use with GnuPG. And because I’m such a trustworthy guy, he has signed my key :-)

It isn’t that easy to find somebody who uses GnuPG or PHP. In fact there’s only a little over 11,000 Danish keys on the public keyserver www.pgp.dk.

Anyway — I’ve started using the latest development version of my mail and newsreader Gnus. The development version is called Oort Gnus. The reason I switched from Gnus 5.8.8 was, that Oort Gnus has much better support for what is known as S/MIME. This is the format MUAs like mutt uses.

When using S/MIME, the first part in the mail has a Content-Type of application/pgp-encrypted. Then follows the encrypted text in a MIME part with a content-type of application/octet-stream. It’s the first part that tells Oort Gnus that it should be prepared to decrypt the message. Gnus 5.8.8 didn’t understand this, and was further confused by the application/octet-stream part which it (of course) didn’t think was text. But it works now: I can encrypt and decode mails, and verify signatures from others. If I’m missing a public key, then it will be fetched automatically.