Thursday, April 19, 2007

Week day

In Europe, week numbers are used pretty extensively: The board is due to meet in week 33. Michael will be gone for military service in weeks 24-25. Please submit the quarterly numbers by week 17. Did you know there are at least 6 different ways that weeks are numbered?

Most of Europe seems to follow ISO 8601 numbering, which seems to be what BSD's "ncal -w" computes. But I need to fix my quarterly agenda generator in postscript (that I hacked up starting with pscal code), since I apparently coded up the American numbering by mistake.

If you're always online, there is of course a web-based alternative for looking it up. Its not clear which week number standard yahoo's calendar uses, since I only remember being able to specify which day the week begins on. Maybe it is inferred from your configured time zone?

Tuesday, April 17, 2007

Programming like it is still 1975?

There is an interesting new project called Varnish, which implements a reverse proxy. It is apparently up to 10 times faster than squid. But more interesting is why.

The software architect, who is usually a kernel programmer, decided to do a "userland program" for a change, as a fun project. Apparently he was disappointed that most programs haven't even taken advantage of things that have already been available in FreeBSD and Linux for at
least 10 years
.

Linux threading scalability problems

After a couple of years of work on trying to make the FreeBSD kernel
more concurrent, a couple of kernel hackers started to enable the
concurrency (which is off by default) on an 8 CPU system and started
to see much improved results
using a mysql benchmark
to measure it.

To make sure they weren't too far behind linux (which they have been
over the past couple of years) they compared the same benchmark on
the same hardware with the most recent linux and found that linux had
problems scaling when the number of threads was greater than the
number of CPUs.

Some linux hackers began to investigate this and found out that it is
not just mysql. The most likely cause seems to be 2 problems with
glibc - meaning that any program that does threading and uses glibc
(this includes java) would have the problem.


I guess once they identify the problem, it will probably be fixed within
the next few months.

Java Conference: Soundly choosing language features

After a philosophical discussion with my brothers on programming languages, I posted my thoughts on how it is about time to add a little more science into the art of designing programming languages. Instead of relying on the individual tastes of Wirth, Gosling, Wall, or these days von Rossum or Matsumoto, we need languages that help less IT projects to fail. And we need objective metrics of real programmers for evaluating and quantifying our hypotheses on what works.

Java Conference: Thoughts on future of concurrency

In another post on the Jazoon conference site, I describe a non-obvious concurrency problem we had to deal with in a recent project and daydream about the possibility of eventually having futures/promises, or something like it, that could maybe remove these kinds of problems from everyday coding much like garbage collection/reference counting removed (most) memory management problems from everyday programming. I point out that it would also be nice to implement it with an eye toward mechanical verfiability.

Java Conference: REST for java

I will be presenting a RESTful grid tool at the upcoming Jazoon international conference on java. As I mentioned in more detail there, I am glad to see that there will soon be more supported (and therefore likely to be more consistent) alternatives for REST (as opposed to WS-*) for web services in Java. Also interesting is that Roy Fielding, father of REST, has been invited as a Keynote speaker.