Kind of Busy

by Zef Hemel

I’ll be kind of busy in the next few days. Today and tomorrow the 2005 student colloquium is taking place. It’s a small conference where CS students present academic papers they have written. Tomorrow I’ll be presenting ours, entitled “Assembling Classes at Runtime”. Once the conference is over I’ll probably post it here, for those interested. It’s not revolutionary or anything, though.

Oh, and pssst, the new “Apple Powerbooks”:http://www.apple.com/powerbook/ are out. Still G4 processors. They seem to be cheaper though, and have more memory by default (512MB) and larger harddisks too (up to 100GB).

It was 10 p.m. at a wednesday night when Emma was working on an essay for her English class. She used her laptop, because she wouldn’t let her handwriting ruin her grades more than it already did.

“Aargh! Stupid, stupid, stupid!” Emma screamed.
“Writing an essay? I know, it sucks.” Artie said while leaning on the bar.
“It’s not the essay, it’s these stupid computers. They make no sense at all. There are these windows which have buttons on them. What windows have buttons on them? What did they do to deserver to be buttonized? Look at our windows,” she pointed at a random window, “does that have buttons on it?”
“I don’t think so.” Artie answered.
“Exactly. It makes no sense. And look here. This one has tabs, TABS!”
“Tabs are cool.” Artie put on his shades, “do they have different colours and are their labels too small to write on?”
“Hah hah. What kind of windows have tabs? All these concepts are insane. Don’t even get me started on scrollbars which you have to scroll with. Who still uses scrolls? Scrolls are ancient history, why reintroduce them? It took us hundreds of years to replace them with pages and now in the digital era, they reintroduce them?”
“You got to admit, though, they digital ones are an improvement over the old ones.”
“This window even got a drawer.” Emma continued “What window has a drawer? Closets have drawers, desks have drawers, windows do not have drawers.”
“Maybe it’s a look into a drawerful future. Drawers in everything. Drawers in couches, cars, cranes, stereos; drawers everywhere.”
“Most stereos already have a drawer you know. A little CD drawer-like thingie?”
“Oh yeah, that’s right. It’s the future of drawers, today!” Artie laughed.
“Anyway, it’s plain stupid. Windows are just windows, glass and a frame.”
“You should start a club. The window-concept preservation club. I could make flags! Shirts!”
“Yeah yeah, you’re making fun of me again.”
“Ironically, I believe that the people that came up with the idea, copied by many fruits, now sells copy machines.”
“What are the chances.”
“They must have thought ‘if we get copied, we’d better not be the only one.’”

The Beauty of Math

by Zef Hemel

Math? Beauty? Ahuh. Yep, math has beauty, whether you want to admit it or not. I know you’re excited to hear this, so I won’t wait to tell you why: math is pure and all about perfection and elegance. The world of mathematics is a perfect world. It’s not bound by any rules of nature. That’s where its beauty lies. There are no exceptions to rules. If you solve a problem, the solution is what matters. Not whether it can be calculated efficiently, none of that matters in mathematics. Is the proof tidy, neat and elegant? Great!

No, this is not one of those “Church of XML”:http://www.zefhemel.com/archives/2004/09/12/the-church-of-xml articles that are actually very ironic. It’s true, I’m not a fan of math per se. I don’t enjoy doing math, but you got to admit, it’s beautiful to derive a whole world from just a couple of axioms.

Now let’s see what happens if you take something from mathematics, say set theory, and use it in the real world, say in computer science. Set theory deals with sets (shocker). What have we done with sets in computer science? Databases. A database table is basically just a set of “tuples”:http://en.wikipedia.org/wiki/Tuple (which we call rows). We query this data using SQL(Structured Query Language), which is basically just an extension of set operations we know from set theory. SQL allows you to do unions (JOINs), intersections (using a smart WHERE clausule), substractions (DELETE) and additions (INSERT). On top of that there are some filtering and ordering capabilities.

Databases may very well be one of the purest implementations of a mathematic principle. But then I “hear”:http://zef.cc/~jaap/index.php?p=48 (sorry, linked post is in Dutch) that some companies hold SQL competitions. Nice idea. Contestants are asked to formulate a query that is judged on the following criteria:
* Correctness
* Elegance
* Efficiency

The first two are fine. But the third? The performance of a query? Do we have to take the actual implementation of the database engine into account now? Are we going to benchmark the execution speeds of queries? Let’s say we would still be in the perfect math world. How would that sound? A query is nothing more than a question. Does a question have a performance? Is asking “What’s your name?” higher-performing than “May I please request how your parents decided to call you when you were born?” Do we want to deal with that? The answer is the same. Well, except if you decided to change your name since your birth.

But that’s not how the real world works. Time is money. If you can rewrite a query to something that’s a bit more unnatural, though performs better in practice, you’re going to do it. Computer scientists have to deal with trade-offs, mathematicians don’t.

I think math may very well be the only thing in the world not bound by worldly rules. Pi doesn’t snap when you use it too quickly. e doesn’t explode if multiple people use it at once. And x doesn’t heat up when you make it one millionth of an inch small.

Bad, Bad Apple Users

by Zef Hemel

aent is ranting about why he doesn’t like Apple users. He has expressed his unhappiness with the company earlier, now it’s the Apple user’s bashing time. You can read his “rant here”:http://aent.blogspot.com/2005/01/why-i-hate-apple-users-who-dont-preach.html.

I’ll skip the part about Linux and GUIs which, for as far as I can see, doesn’t have to do anything with this. Then it’s the iPod Shuffle’s turn, something that I heard many Apple users complain about:

The iPod Shuffle doesn’t have a display. According to Apple lovers, when you have a media player that small and can’t scroll through the songs, a display is pointless! I mean, who would look for a song to play on an MP3 player? And that random song from your computer that was randomly placed on the MP3 player you haven’t heard in a long time and really like and want to listen to at home, why should you be able to find out the name of the song, artist, and album? I have a cheap, piece of crap MP3 player. Occasionally my friends listen to it. They like a song. They ask me what the name of it is, and I can’t remember the name. Thanks to the wonderful screen on the device, I can look at them and tell it. With the iPod Shuffle, you are screwed, and can be proud of it when you tell your friends that! And of course, Apple can save you a couple of bucks by not including a screen, even though if you just don’t buy from Apple you can save a lot of bucks and get a screen.

I think the shuffling excuse is kind of lame too. Many people do, including Apple users. However, I very much doubt that you can get a 1GB MP3 player for less that $149, at least I haven’t seen it. There may be a bit more competition for the 512MB one, but I’m not sure.

Apple users also are aware that the radio, which I commonly use in my car to listen to music which I don’t have on CD since I haven’t heard before and sometimes talkshows on it are interesting, is entirely useless. I mean, what the hell, something is broadcasted? Just like TV, radio is entirely useless.

Just that they don’t include it in all of their products doesn’t mean they think it’s useless. If you fire up iTunes you’ll see there’s a radio thingie there at the playlist. Not that I ever used it, but that’s something else. Podcasting was basically invented for the iPod. Not entirely radio, but close. “Some people think Apple will go into the TV and movie business soon too”:http://www.pbs.org/cringely/pulpit/pulpit20050120.html. But ehm, what does this have to do with Apple users?

Voice recorders. Well, voice recorders have no use. Duh! Any Apple user could have told you that one! Why bother with something with a microphone that you can easily and conviently bring to a class to record a lecture? Of course, getting an external and seperate device to do that would be better.

That’s nice. I can make up things like that. Hey, why doesn’t it have a camera? Or a coffee maker. What’s up with that? Stupid Apple. Oh no, wait, we were talking about Apple users, right?

File compatiblity. AAC with Apple-DRM is going to save the world! It works with iTunes, which everyone must use! Using other music stores makes you evil too!

Which DRM system should they have used, would you have prefered them to use Microsoft’s DRM? Oh, you want no DRM at all? Sorry, not going to happen.

aent, where do you get this stuff from? Are you recording everything that someone (who you suspect of Apple-lovin’) once said and fitted your “evil and stupid” profile and bluegh it all out at once? You whine about being called a troller. Let’s see. Only picking at bad stuff in people and companies, absurd generalizations (”so I’ll end my Apple discussion with this statement: Apple users annoy me.”), yep, sounds like trolling to me. Sorry.

Since I decided to apply for placement at Trinity college I’ve been thinking about the education system we have here in the Netherlands, and how it compares to the ones in countries like the USA, England and Ireland. This is just yet another attempt to write things down as a way to figure things out. There’s no point to be found in it per se.

Let me first explain how the Dutch education system works.

At the age of four you go to elementary school (which we call the ‘basisschool’). You stay there until you’re twelve. At the end of elementary school you take a test, called the CITO test, dependinding on your score you are adviced to enroll into high-school (which we call ‘middelbare school’) on a certain level.

Right now there are four levels: VMBO, HAVO, VWO and Gymnasium. VMBO is mainly for people who are more do-ers than thinkers, the people that work at bakeries, fix cars etcetera. HAVO is for those who like doing, but on a higher level. They usually go to college afterwards and end up with a bachelors degree. VWO is for the thinkers, which most probably go to college and end up with a masters degree. Gynmasium is for the children who like doing something extra (I suppose), the only difference compared to VWO is that they take Latin and ancient Greek. Many high-schools teach multiple “levels”, some do all, some do only Gymnasium, others do only HAVO and VWO. Usually, it is possible to initially enroll in a certain level and move one up or down as you go (in practice this can only be done in the first two years). All schools in the Netherlands are public, there are no private schools. There are Christian and Muslim schools, but they are not considerably better or more expensive than the others.

Once you finish high-school you can choose what to do. I’ll focus on VWO and Gymnasium for now. After you got your diploma you can go to either a university (which targets at getting you ready for science and makes you end up with a master of science degree) or HBO (which targets at getting you prepared for the industry and makes you end up with a bachelor degree). If you choose to go to university, you can pick any university you like. Again, there is no concept of a private school or community college. The level of education is roughly the same (at least not as big of as a difference as the ones in the USA). They all cost the same amount of money. There are only a couple of exceptions, if you want to study medicine for example, you’d better get good grades, because there are more applicants than the universities can accept, and they initially pick the straight-A students. The rest is accepted at random.

The result of this system is that grades are not very important, as long as they’re good enough. We have a grading system where grades range from a 1 to 10, where a 5.5 is enough to pass. Why work for that 9 or 10 when you can just as easy settle for a 6 or 7? The only reason to work hard and get as high grades as possible is because you think you have to, or your parents do. Future employers may look at them once, but you had a good education, so you’ll find a job anyway.

All of this is fine, until Dutch students become export products, to put it crudely. That it works this way in the Netherlands is fine, but what if a Dutch student wants to study in England, Ireland or the USA? All of the sudden grades do mean a great deal. You may be the smartest kid in the world, but they’re not going to know because they look at your grades. Grades may not be the best indicator around here.

In a highly competitive schooling system, Dutch students have little chance, unless they already know at age 12 that they want to study in foreignia at some point and choose to work really hard for it. I didn’t, and now I regret it.

Now let’s compare this to how it works in the USA. As I understand it, there are public and private high-schools. The private ones are expensive, but also very good. If you want to go to a good college, you better work hard throughout your high-school career. There’s a reason to work hard and get high grades: if you don’t you may not be able to go to that great school that you want to go to. Top colleges in the USA are not only the best schools in the world and hard to come into, but also very expensive. If you’re not rich you got a problem. Unless you can get a scholarship of some sort.

Now, is this a good or bad alternative to the “Dutch way”? I think there’s so simple answer to that. For schools it’s very nice to get motivated students. In some cases students have worked hard their entire life just to get into that particular school. You know they’ll try to get as much out of the school’s education, because they worked so hard for it. If you compare this to universities here in the Netherlands, some students do as little as possible. They don’t really care about it, as long as they get their diploma with as little effort as possible. I would hate to imagine what it’s like to teach students like that.

The money issue is big in the USA. Here everybody can get a good education, whether you’re from a family that has basically zero income or one of the Queen’s children (yes, we have a Queen). The government will support it, if necessary. There’s no discrimination on the amount of money your parents have. The good thing about high fees is that the school gets it and can use it to hire the best teachers and provide the students with the best facilities.

Then there’s the student to think about. While walking through high-school I had a good time. I wasn’t forced to study very hard, got good enough grades on my own. Never was pressured very hard. It was fine. Imagine how it would be in a well-off USA family with ten generations at Harvard, though. Having to get A’s for years and years and study your ass off. I’m sure that children get mental break-downs from this.

Ok, so this would be the place to draw a conclusion. But I don’t have one. The trouble is that the world is getting more and more of a global village. Within the coming twenty years or so it would be very normal for your kids to go study in a foreign country. And what’s better than to study at a good school? Yes, indeed, this is the kind of situation in which if one starts doing it, everybody has to follow eventually. Good schools all over the world will get overloaded with students and will only accept the best ones. It’s natural if you think of it.

Am I happy to have had a pressure-free education? That depends on whether I get accepted at Trinity.

Until now, when developing web applications we’ve been doing this from the server side. The server does the processing and sends HTML output to the user. Sometimes some validation is done on the client-side, like checks whether the e-mail address was filled in. The actual work takes place on the server. Can’t we move more of the work to the browser?

A proper web-application consists of three layers, as I discussed before: the model, the controller and the view. The view is currently the only thing done on the client-side, in the browser. Wouldn’t it be possible to move the controller, or a large chunk of it, to the client? You build your application using HTML and Javascript, which is quite a powerful combination and from time to time send requests to the webserver asking for, or storing data. This communication can take place using “XmlHttpRequest”:http://developer.apple.com/internet/webcontent/xmlhttpreq.html.

The advantages of this approach are:
* A lot of the processing can be done by the client, which takes a lot of load off of the server.
* The web-application gets much more responsive, no more full-page reloads.
* It will save a lot of bandwidth.

There are some problems with this though:
* You have no direct access to the user’s resources; you can’t write files on disk, all you have to your disposal is some memory (and you can save stuff through a XmlHttpRequest)
* You’re limited to what your execution platform (a.k.a. the browser) allows you to do. I’m not very sure how limiting this is, though.
* If the user’s browser doesn’t support Javascript the way you expect it to, the user won’t be able to use the application at all.
* And probably the biggest one: the differences in Javascript/DOM implementations which make it an unproductive environment, it may be possible to pass around this with some powerful abstractions, though.

If you wanted to you could even make your web-applications work partly offline. For example an e-mail program could preload the e-mail messages once you log in and synchronize stuff when you’re back online. Not ideal, but it could be done.

Just some thoughts for my crusade for richer and more responsive web applications.

eXeem

by Zef Hemel

Well, it’s here: the peer to peer file sharing software that uses BitTorrent for the actual file distribution.

It’s called “eXeem”:http://www.exeem.com and it said to be loaded with crap and spyware. I didn’t know that, so I installed it. There’s a clean version now as well called “eXeem Lite”:http://www.exlite.net.

It works quite well. There are not too many people online, but the stuff that you can download comes in pretty quickly through BitTorrent. The most interesting feature is the “new files” tab, which shows the latest files added to the network in different categories (movies, music, applications etc.):

Generally eXeem is not very interesting. It’s the first peer to peer application that uses bittorrent for its distribution, but that’s it. Other than that it’s adware it isn’t really amazing in any particular way. But it’s only an initial beta preview, version 0.20, things can improve. I would like some of my “TorrentNet”:http://www.zefhemel.com/archives/2004/11/13/torrentnet features in it though…

Next Page »