Log <-

Archive for May, 2005

Proms v0.11

Proms v0.11 has been released. Many, many changes went into this release, amongst which are:

  • Many bugfixes.
  • Many security fixes.
  • Completely new interface.
  • Better E-mail notification. (Faster, more features)
  • File management.
  • Many improvements in the discussion module.
  • BBcode support in the discussions.
  • Many navigational improvements.

IT's Logic

Some years ago I spent half a year doing an internship at a company named "IT's Logic". I wasn't particularly happy at this company due to the way they did business. In my (and not just mine) humble oppinion, this company had a very unethical way of doing business. The way they treated competition, employees and clients seemed quite devoid of any morals.

Therefor I must link to an article about IT's Logic at http://xo.inborn.net in the hope of boosting its google pagerank. The article is in Dutch, so some of you may not be able to read it, and I'm too lazy to translate it, but basically it comes down to the fact that they are bad news. If you have any gripes with IT's Logic, please take the time to link to the article on your website/weblog.

Update: I don't consider boosting the linked article's Pagerank unethical because of two reasons. One is that it appears that IT's Logic itself is using its customers webpages to boost their own Pagerank. The second is because I fully support the oppinions stated in the linked article and feel it deserves more attention.

Proof that not all Americans are stupid

I found some proof on Slashdot (of all places) that not all Americans are stupid. This guy/girl really gets it.

by Catbeller (118204) on Wednesday May 04, @08:55PM (#12437363)

"The terror threat is real"

Please, everyone, stop a moment and think about this .

Who is "terror", and have they been threatening us? Utterly unexamined assumption.

We got hit by a few dozen nutters a few years ago, and now we are under a "terror threat".

Firstly, a threat is a statement of intent — a SPECIFIC statement — that someone is coming to hurt or kill you.

Secondly, what the hell is "terror"? Bush has slapped the label on so many disparate factions and actions so as to make the term meaningless. Someone shoots at someone in the Phillipines? Terror. Someone kidnaps someone for ransom? A terrorist act. We invade a country, kill tens of thousands and mutilate far more — those who shoot back are branded "terrorists" of the same stripe who blow up trains in Spain. Teacher's unions have been labelled terrorists by a Congresscritter.

The word "terrorist" is a simple cognate coined and maintained as a substitute for the old Red/Communist/Russian/Soviet monolithic "they" that we were told was intent on killing or subverting us for over fifty years. It turned out that the original threat estimate for the Soviets were based on "information" offered up by ex-Nazis in the same manner information is "offered" by people in Guantanamo. The prisoners tell the torturer what they want to hear: The Soviets are mighty and mad; Al Queda has cells EVERYWHERE and is planning to kill again soon, please, not the electrodes again…

Terrorism. What is shock and awe, but terror? What is slaugtering your way into a country, but terror? What was what we did, invading and killing to capture Noriega, but terror? Terror is an emotion, not a tactic. It is felt by us, not inflicted on us. We've become flaming cowards, afraid of everything and everyone, condoning torture and kidnap and murder of "terrorists", which is nothing but an label slapped onto any damned one that Bush wants to eliminate. The Partiot Act has created a dictator who has declared that human rights and treaties don't apply to "terrorists", as Bushie said just yesterday. Since "terror" is defined as "anything that makes us uneasy or afraid", and a "terrorist" can be declared secretly by the Bush team, Bush has declared "war" on no particular person, has no timetable for the "war" to be ended, has no definition of the terms of its ending.

By ceding this terminology to Bush's whim, we've created an uncheckable police state that recognizes no national boundaries and strips human rights, in holes in the ground, from people snatched from their homes in the middle of the night.

The most telling point to be made is that when Bush's Justice Department takes the few cases it has made to the court system, they have convicted NO ONE on the evidence; on the contrary, they have consistently lost every case they have had to make.

Terror? Threat? The terror is the fear instilled in you by national hysteria fed by a pack of radicals intent on a revolution in our way of life and law. The threat is pathetic; a few dozen wackos who barely have had enough juice to make video tapes. They got lucky once, and they got what they wanted: an America attacking the oil rich countries, just as they predicted. We've made far, far more enemies killing — quite illegally — the Iraqis than we had before 9/11. We've made the nonexistent enemy a reality by our own terror and yes, racism and confusion, and by an elect few, greedy for power and riches beyond count.

Right on every count. I mean…

  • The war on Communism
  • The war on drugs
  • The war on terrorism

It's all bullshit. ALL OF IT! It's propaganda in it's purest form. You people are being told what to hate! It's pathetic! And the saddest thing is, Americans really think they are doing the right thing. They really think everybody should love them for what they're doing. The fact that anti-americanism isn't just something happening in the middle-east, but also in the rest of the world just baffles them. Learn your leason already!

Debian GNU/Linux 'Sarge' frozen

Well, it finally happened. Debian GNU/Linux 'Sarge' has been frozen. This means that no new packages and no newer versions of packages will be added and that Sarge will become the new stable in a short while. The timeline is as follows:

  • 3rd May: Freeze time and security support now available for testing
  • 5-8th May: BSP to bring bug count down from ~85 to ~60/70
  • 15th May: Debian installer finalised
  • 27th May: Zarro RC boogs
  • 30th May: Release

While this is nice, I see a big problem coming up. You see, a lot of people have been complaining that Woody, the current stable release, is too old. It doesn't contain packages like X.org and Apache 2, and a lot of packages are pretty out-of-date. Personally this has never really bothered me. I run Debian as both a desktop and server distribution but use Stable on the server and Unstable on the desktop, which works out pretty well. True, some of Woody's packages are a little out-dated like, for instance, PHP, which is only available at version 4.

The problem is, however, that Debian Sarge still doesn't contain PHP5. This means that Debian will be unsuitable as a viable LAMP(hp) platform.

I'm not one to make predictions, and I'm also not really aware of how many users/companies are using Debian as a LAMP platform, but I predict that not including PHP5 in Sarge will cause a major drop in the usage of Debian and a major decrease of new adopters of the distribution.

I find this a sad thing because I really really like Debian. But I simply don't have the time to compile everything from source each time a bug is discovered in PHP. Nor can I rely on third-party Debian PHP packages from different 'vendors'.

PHP Cheat Sheet

Downloaded it today, and it's already indispensable:

PHP Cheat Sheet

PHP Function Overloading

The other day I was looking if it was possible with PHP5 to do function overloading. For those that don't know, function overloading is the technique of being able to call a single function in different ways.

Suppose, for instance, that you've got a function formatDate($date) that returns a date formatted as a string dd-mm-yyyy. The date could be specified using a string 'yyyymmddd' or an integer representing a unix timestamp (number of seconds sinds the epoch, which is January 1 1970, if I recall correctly). Function overloading then allows you to define two different functions with the same name, that can be called both with a String argument or an Integer argument. The functions would be defined as (pseudo-code)

String formatDate(String) {;}
String formatDate(Integer) {;}

Unfortunatelly, PHP5's Object Oriented capabilities do not seem to support this, which is a shame. I assume the reason for this is the fact that PHP is typeless, which means a string is no different from an integer. So when we define the formatDate function in PHP, it would always be the same thing:

function formatDate($string);  /* Same as next declaration */
function formatDate($integer); /* Same as previous declaration */

But, there is a way around this, even though it's a quite ugly one. Check out the following code:

class Atom {
/* Ways this function can be called:
 *
 * new Atom(   int $id)
 * new Atom(string $name)
 * new Atom(   int $id, string $name, string $contents, array $categories)
 */
function Atom() {
	$argc = func_num_args();
	$argv = func_get_args();

	if ($argc == 1) {
		if (is_int($argv[0])) {
			/* new Atom(int $id); */
			$this->id = $argv[0];
		} else
		if (is_string($argv[0])) {
			/* new Atom(string $name); */
			$this->name = $argv[0];
		}
	}

	if ($argc > 1) {
		$this->id = $argv[0];
		$this->name = $argv[1];
	}
	if ($argc > 2) {
		$this->contents = $argv[2];
	}
	if ($argc > 3) {
		$this->categories = $argv[3];
	}
}
}

Care must be taken to make sure that the base type of a parameter you pass to the function is the correct type. This is because types can be something else than they appear to be. For instance,

$integer = "10";

is actually a string, while

$integer = 10;

is a real integer.
This poses problems when receiving input from the client-side, because there is no way to accurately determine the type of the variable. Thankfully, it's possible to do type casting in PHP:

$integer = "10";
$a = new Atom( $integer ); /* Calls like Atom( string ) */
$b = new Atom( (int) $integer); /* Calls like Atom( int ) */

Granted. The resulting code is a lot less readable then usual, but it is a possible way for doing function overloading. I tend to only use this in object constructors, because litering my other functions with all this overhead is not something I like to do.

For other functions, I rather use:

function getThingyById($id) { }; /* Integer */
function getThingyByName($name) { }; /* String */

Interesting Free (libre) Software I

I don't know about you, but I regularly visit sites like freshmeat.net and Gnomefiles.org for my daily dosis of new and improved Free Software announcements. Sometimes you run into things that are ideal for trying out on a lazy Sunday afternoon. So I decided to start posting any interesting software I see here in a weekly/monthly/yearly installment. Lets see if I can hold up to that promise ;-)

Postgresql AutoDoc

Postgresql AutoDoc has the ability to output XML, which can be loaded into Dia to create a UML diagram of the database (complete with table relations and descriptive information), an HTML form for further detailed information, GraphViz .dot output, and Docbook 4.1 style SGML for inclusion with project documentation as an appendix.

In other words, generate documentation from a database. Too bad I don't use Postgresql

QEMU

QEMU is a generic and open source processor emulator which achieves a good emulation speed by using dynamic translation.

It's a Free VMWare clone. Preinstalled Operating System images can be downloaded here. I tried the Freedos image, and boy, does it boot fast. Pretty neat. Pity I couldn't figure out how to get local software on the image. (And I was too lazy to recall how to mount an image using loopback under Debian)

VLC Media Mplayer

Yet another multimedia player for GNU/Linux et. al. Haven't tried it out yet, but it's supposed to be better than MPlayer. I sure hope so. Though viewing the screenshots reveals that it uses another one of those totally crap WinAmp interfaces. I hate those. (whine, whine, whine)

Well, that's it for now.

Koninginnedag

Phew, that was one rough, yet fun, week(end). It was Koninginnedag (Queens-day) here in the Netherlands last Saturday, which is always accompanied with a lot of partying. The night before, known as Queens-day eve, is also a country-wide reason for lots of festivities. The two days before that I also had some parties that needed attending and, you know, who am I to turn down an invitation to a party?

So from Wednesday through Sunday, I've been doing nothing but broadening my alcoholic horizons:

  • Wednesday: Hard-rock party in my hometown, put together by my ex-girlfriend and some friends. Lots of beer.
  • Thursday: To the pub with Zetion. We hadn't seen each other in a while, what with work intervening and all, so we just had to get a couple of beers together. Also shot some pool, but I couldn't get in the game at all (which pissed me off somewhat) so we decided to just go to another pub and have a couple more beers.
  • Friday: Queens-day eve, Yet More Beer. Went to The Stairway in Utrecht with some friends. Music sucked, crowd sucked, still had fun.
  • Saturday: A day of 'rotting' (relaxing and recovering from a night of beer-drinking) with Wouter and Martin over at Wouter's place. Not very surprisingly, we opened up another couple of beers. Had those damn-fine spareribs delivered again. Yummy.
  • Sunday: Another day of rotting to recover from the previous day of rotting, and guess what? Beer was once again involved, though only during the day.

After all this limitless consumption of alcohol, I was going for a quiet peaceful twelve hours of sleep from Sunday to Monday, in the hopes of regaining my composure by the time I had to get back to work again. Unfortunately, I went to bed much too late and got woken up at 2:30 in the morning and couldn't get back to sleep. Still, I don't feel tired or worn down which, frankly, surprises me somewhat. I guess having such a good time somewhat compensates for the lack of sleep and soberness.

It's been a long time since I had such a partying extravaganza, and I can tell you it felt great, though it's probably better to stay away from alcoholic beverages for the next couple of days.

Update: My friendly colleague Christiaan just remembered me of next Thursday: liberation day. I feel another beer weekend coming up.