Archive for the ‘Computing’ Category.

Time flyes by!

I’m sorry about the lack of updated lately — nothing much has happened… But that doesn’t mean that I don’t have anything to write!

This bunny killed censorship I’m still playing with FreeNet, it’s getting better and better all the time. I’ve now been running my computer as a node in the network for about three weeks and I’m pretty well connected now.

Apart from FreeNet, then I’ve spend some time on fixing [PhpWiki][] so that I can export a whole WikiWikiWeb, complete with pages, images, and style-sheets. There was already support for exporting the pages as XHTML pages, but the links to the images and stylesheets were left as-is, that is, pointing to the installation directory. My version of PhpWiki uses relative links to a files directory which contains all external images and style-sheets needed for the site to function. It’s a bit of a hack, but it works — take a look at the website for The Danish National Research Foundation: Center for Catalysis which is a site I’ve made using PhpWiki. You’ll recognize the RecentChanges page and all the PhpWiki documentation if you look around a little :-)

One of my plans is to export GimpsterDotCom as a set of static XHTML pages, and then insert it into FreeNet. I think getting a relatively big site like GimpsterDotCom with it’s nearly 298 pages (see AllPages for a list) would be a good thing for the network, since most FreeSite~s out there consist of just a (often very big) single page. The downside of having such a large number of small pages is, that many of them will drop out of FreeNet if they’re not being requested often enough. The LeastPopular pages are simply the ones that are removed first to make room for new content. So FreeNet is not about permanent storage, it’s a more democratic system where everybody can publish everything, and where the popular stuff (whatever that might be) spreads to many nodes.

But I’ll let you know when you can find GimpsterDotCom in FreeNet. Last time I tried to insert it Fishtools (which is mirrored on the normal Internet) it couldn’t verify the inserted pages. I think I’ve narrowed it down to my use of = in filenames. The =’s come when I encode the names of the pages as Quoted-Printable when exporting from PhpWiki. The pagenames has to be encoded in some way, as they can contain all sorts of strange characters, or at least the full ISO-8859-1 (also known as Latin-1) character set which includes all the normal accented characters we use in Western Europe.

At first the pagenames were encoded by php-function:urlencode, but this gave problems when viewing exported pages on a webserver. It’s perfectly fine to have a file called foo%2Fbar.html on the server, this is a valid filename in Linux. But when you ask the webserver for it, using a browser, then it will (correctly) interpret the %2F in the URL given by the browser as the character with ASCII value 0×2F which a / and therefore look for bar.html in the foo directory. There’s no such file, so it returns the dreaded “404 Not Found” error to the user. And even if we created a foo directory and moved foo%2Fbar.html to foo/bar.html, then all relative links in the new bar.html would have to be changed, because bar.html is moved relative to the other pages.

The links themselves could instead be rewritten, so that the browser would use the URL foo%25Fbar.html in the request. The webserver will now decode the URL into foo%Fbar.html and find this file, because %25 is interpreted as %. The problem with this is, that the links no longer works when you’re viewing the site offline from your harddisk, because then noone will translate the %25 into the required % :-(

The net result is, that we shouldn’t use php-function:urlencode to encode the pagenames. This function is used to encode arguments passed in a GET request, but it’s a mess to use it with the filenames. Using another encoding like Quoted-Printable works around this problem, for no webserver will do Quoted-Printable decoding on the URL before it looks for the file in the filesystem. But then there’s the problem with some tools that cannot handle = in filenames… I think I’ll just replace the = with another character like _ or -, but I haven’t done this yet…

The speed of FreeNet

This bunny killed censorship I’m still experimenting with FreeNet, and the more I use it, the better it gets. I’ve done some speed tests, and it’s actually not as bad as I thought first: I’m able to download with speeds of around 40 KiB/s (that’s 40 kibibytes per second, a kibibyte is 1024 bytes whereas a kilobyte is 1000 bytes. These units are the new IEC international standard units for binary multiples — yes, they sound hillarious! There’s also mebibytes, gibibytes, and tebibytes available…).

Since FreeNet is a peer-to-peer network, then the speed depends on how well-connected your node is. It was only yesterday that I reached 40 KiB/s, the first days were much slower. But now it seams, that my node has found a couple of “nearby” nodes with a reasonable bandwidth.

If people started using FreeNet here at [Skejbygård][], then I’m sure that I would see much higher download rates.

Contents on FreeNet

Digitalis purpurea (Foxglove) There’s actually a lot of interesting contents to be found on FreeNet, it’s much more than just piracy. The next few links will only work for people who run a server on their local machine. I’ve found pages about philosophy (see the text on Objectivism — The Philosophy of Ayn Rand), recipes with lots of images, such as this recipe for Stir-Fried Chicken & Chile Tacos, and poisonous plants like the Foxglove (”Digitalis purpurea”), that’s the plant in the image on the right.

I also found this funny story about the perils of Girlfriend 5.0 somewhere out there, enjoy!

Desperately seeking technical support!

I’m currently running the latest version of Girlfriend 5.0 and having some problems. I’ve been running the same version of Drinking Buddies 1.0 for years as my primary application, and all the Girlfriend releases have always conflicted with it.

I hear that Drinking Buddies won’t crash if you minimize Girlfriend
with the sound off, but since I can’t find the switch to turn it off, I just run them separately and it works OK. Girlfriend also seems to have a problem coexisting with Golfware, often trying to abort my Golf program with some sort of timing incompatibility.

I probably should have stayed with Girlfriend 1.0, but I thought I
might see better performance with Girlfriend 2.0. After months of
conflicts, I consulted a friend who has experience with Girlfriend 2.0. He said I probably didn’t have enough cache to run Girlfriend 2.0 and eventually it would require a Token Ring upgrade to run properly. He was right.

As soon as I purged my cache, Girlfriend 2.0 uninstalled itself.
Shortly after that, I installed a Girlfriend 3.0 beta. All the bugs were supposed to be gone, but the first time I used it, it gave me a virus.

After a hard drive clean up and thorough virus scan, I very cautiously upgraded to Girlfriend 4.0. — this time using a SCSI probe and virus protection. It worked OK for a while until I discovered Girlfriend 1.0 wasn’t completely uninstalled! I tried to run Girlfriend 1.0 again with Girlfriend 4.0 still installed, but Girlfriend 4.0 has an unadvertised feature that automatically senses the presence of Girlfriend 1.0 and communicates with it in some way, resulting in the immediate removal of both versions!

The version I have now works pretty well, but, like all versions, there are still some problems. The Girlfriend package is still written in some obscure language that I can’t understand, much less reprogram. And I’ve never liked how Girlfriend is totally object-oriented. A year ago, a friend upgraded his version to GirlfriendPlus 1.0, which is a Terminate-and-Stay-Resident version. He discovered GirlfriendPlus 1.0 expires within a year if you don’t upgrade to Fiancee 1.0. So he did.

But soon after that, you have to upgrade to Wife 1.0, which he
describes as a “huge resource hog.” It has taken up all his space, so he can’t load anything else. One of the primary reasons that he upgraded to Wife is that it came bundled with FreeSex 1.0. Well, it turns out that the resource allocation module of Wife 1.0 sometimes prohibits access to FreeSex (particularly the new Plug and Play items he wanted to try). On top of that, Wife 1.0 must be running on a well warmed-up system before he can do anything. And, although he did not ask for it, Wife 1.0 came with Mother-In-Law 1.0, which has an automatic pop-up feature he can’t turn off.

I told him to install Mistress 1.0, but he said that he heard that if you try to run it without first uninstalling Wife, that Wife 1.0 will delete MSMoney files before uninstalling itself. Then Mistress 1.0 won’t install anyway, due to insufficient resources.

Is anybody out there able to offer technical advice?

Browsing the FreeNet

This bunny killed censorship I’ve playing a lot with a peer-to-peer (p2p) network called the Free Network Project. The main objective of this project is to create a network that guarantees freedom of speech. To ensure that anybody can say anything he or she want to say, the network ensures the anonymity of it’s users.

So far, people are using this new freedom to a variety of things. I’ve found all sorts of pages while browsing FreeNet in the last few days. There’s a great deal of pages that deal with FreeNet itself, considering that FreeNet is still in it’s very early stages. Then there’s a bunch of sites that criticize the US government. They’re being blamed for all sorts of stuff, even for having planned the attack on the World Trade Center… freedom of speech can be used for many strange things…

Speaking of strange things, then you’ll also find freesites that mirror websites that have disappeared from the real Internet. This can be pretty harmless sites like this site where you could find wallpapers featuring supermodels together with Tux, the FreeBSD daemon and so on. Very nice images, I can tell you… But the site had to be shut down because it violated the Linux trademark. Now you can find it on FreeNet forever — it’s impossible to remove content from the network once it’s been inserted.

You’ll also find lots of controversial stuff on FreeNet: You’ll find recipes for explosives, porn archives, movie archives, and libraries where you can find stuff like Hitler’s ”Mein Kampf”. Since the whole system is based on anonymity, people are also using it for illegal activities such as piracy.

All in all, I think FreeNet is an exciting project. The idea of guaranteeing freedom of speech for everybody is appealing. If you have some extra space on your harddisk, then you should try and download the server and get it running. The more people who use it, the better it becomes.

A Year with TMDA

I’ve now been using the Tagged Message Delivery Agent for a year and the result has been fantastic — no more SPAM! During the last year, TMDA has stopped 4039 mails, that’s 11 mails each day on average. I’ve periodically released normal mails from the list, so the 4000+ remaining mails are all SPAM.

My whitelist now contain 223 addresses that go right through to my mailbox. An address is added automatically to the list when the sender replies to the challenge send out by TMDA. I’ve yet to put someone on my blacklist….

So, if you’re also troubled by SPAM, you should try TMDA. Now I only see SPAM once a month or so.

My books are here (at last…)

The C++ Programming Language The book that my dad ordered for my birthday has finally arrived. First my dad ordered the book from some English online bookstore in the beginning of January. But after having waited 14 days he asked them what they were doing? The webpage had said that it would be shipped right away. They answered that the book were in backorder with their suppliers… Strange, as this is an extremely popular book on C++.

So my dad cancelled the order and ordered the book at Amazon instead. While we were at it, we also ordered some extra books. I ordered a book about the Standard Template Library in C++ and my dad ordered a book about database development in Kylix — which is the legendary Delphi ported to [GNU][]/Linux. Using these tools, it’s possible to develop a program under MsWindows and them recompile it under GNU/Linux, or the other way around. Both Kylix and Delphi uses ObjectPascal which is another nice language.

Amazon promptly shipped all the books, but then the Danish postal service screwed things up! Or at least that’s our theory. The books in my dads package was switched with some books for a guy who lives in Copenhagen. My dad called this guy, but he didn’t reply before my dad had shipped the books back to Amazon. They were very sorry for the trouble and shipped a new set of books right away.

Effective STL And now, I’ve finally gotten ”The C++ Programming Langauge” by Bjarne Stroustrup; ISBN:0201700735 and Effective STL by Scott Meyers; ISBN:0201749629. The Stroustrup book is as expected: heavy, complete and throughout. I bought it because I wanted a reference for C++ and I’m pretty sure that’s what I’ve gotten.

The other books is much smaller and consists of 50 specific points that one should keep in the back of ones head when using the Standard Template Library (STL). This books is written in a much more entertaining style, but I’m sure the advice given here will be useful.

Now I just have to start programming some C++!