Saturday, April 24, 2010

Edsger W. Dijkstra's manuscripts

Edsger W. Dijkstra should be a familiar name to any computer science student, since one of the most important algorithms, Dijkstra's algorithm, is taught in graph theory.

Besides being a brilliant computer scientist, he's also written some articles regarding the computer science discipline and the computer industry. Click here for the link.

As such, most of what he covers are quite esoteric to those without any programming experience. Case in point, when I first started programming, I had to get used to the fact that in many languages, numbering starts at zero. Ie, the the first item in a list is indexed as 0, the second item is indexed as 1, and so on. An interesting view I discovered is that according to him, many mathematicians view computer science in poor light, and these are usually the poorer mathematicians.

My favourite piece is The Humble Programmer.

Some quotes:
On poor mathematicians:

I gave the puzzle as a sobering exercise to one of the staff members of the Department of Mathematics at my University, because he expressed the opinion that programming was easy. He violated the above rule and, being, apart from a pure, perhaps also a poor mathematician, he started to look for interesting, non-obvious properties

On poor mathematicians again:

Programming is one of the most difficult branches of applied mathematics; the poorer mathematicians had better remain pure mathematicians.

On learning:

We are all shaped by the tools we use, in particular: the formalisms we use shape our thinking habits, for better or for worse, and that means that we have to be very careful in the choice of what we learn and teach, for unlearning is not really possible.

On the Internet's impact on computer science:

No, I'm afraid that computer science has suffered from the popularity of the Internet. It has attracted an increasing —not to say: overwhelming!— number of students with very little scientific inclination and in research it has only strengthened the prevailing (and somewhat vulgar) obsession with speed and capacity.

On the power of machines:

Machine capacities now give us room galore for making a mess of it. Opportunities unlimited for fouling things up! Developing the austere intellectual discipline of keeping things sufficiently simple is in this environment a formidable challenge, both technically and educationally.

On society's expectations:

.....machines have become several orders of magnitude more powerful! To put it quite bluntly: as long as there were no machines, programming was no problem at all; when we had a few weak computers, programming became a mild problem, and now we have gigantic computers, programming had become an equally gigantic problem. In this sense the electronic industry has not solved a single problem, it has only created them, it has created the problem of using its products. To put it in another way: as the power of available machines grew by a factor of more than a thousand, society's ambition to apply these machines grew in proportion, and it was the poor programmer who found his job in this exploded field of tension between ends and means. The increased power of the hardware, together with the perhaps even more dramatic increase in its reliability, made solutions feasible that the programmer had not dared to dream about a few years before. And now, a few years later, he had to dream about them and, even worse, he had to transform such dreams into reality!

Saturday, April 17, 2010

Serving static resources in Glassfish 3

I was playing around with the Google Maps API, when I found that I can't access my Javascript files in Glassfish. The JSPs were working fine, so I guess it's some URL handling thing in web.xml. As it turns out, there's a default servlet in Glassfish that should be used to serve static resources (like CSS, Javascript, PDF, image files, etc). Digging into ${GLASSFISH_HOME}/glassfish/domains/domain1/config, I found the default-web.xml. Under the section called "Built In Servlet Definitions", there's this XML snippet:


default
org.apache.catalina.servlets.DefaultServlet

debug
0


listings
false

1


I copied this verbatim into my web.xml.

Now, I want the default servlet to handle all the accesses to the static resources. I tried to map URLs with certain prefixes to this servlet like so:


default
/js/*
/css/*
/img/*


Not sure what the problem is, but it doesn't work. I'm forced to try extension matching instead:


default
*.gif
*.jpg
*.png
*.js
*.css
*.txt
*.pdf


Well, now that works, but it's not an elegant solution. Imagine, if I want to serve a new kind of file, say an Excel file, I have to remember to include the extension in web.xml, besides just throwing the file into the correct folder. I will have to relook into this again, but for now, I'm just happy it works :)

Saturday, April 10, 2010

Four Hands Guitar

It's quite common to see 2 people playing one one piano. It's indeed rare to see 2 guys play the same guitar. Check out this clip for the duet (and look our for Tommy's expression :))

Wednesday, April 7, 2010

92.2% of grads found employment within 6 months


SINGAPORE: 92.2 per cent of students who graduated from the three local universities last year found jobs within six months of graduation, according to figures posted on the Education Ministry's website on Monday.

The employment rate of graduates from the Singapore Management University (SMU) is the highest among the three local varsities.

96.8 per cent of its graduates found jobs within six months of graduation.

In comparison, about 91 per cent of graduates from the National University of Singapore (NUS), and about 89 per cent of graduates from the Nanyang Technological University (NTU) found jobs within six months of graduation.

In terms of salary, graduates from SMU's Information Systems Management course earned the highest mean monthly salary of about S$3,450.

Graduates from the Business Administration with Honours course at NUS came close with a mean monthly salary of about S$3,400.

At the other end of the scale are graduates from NUS's Applied Science course. Their mean monthly salary is about S$2,400.

That's slightly lower than graduates from NTU's Art, Design and Media course, who have a mean monthly salary of about S$2,430. - CNA/vm

Source


In terms of salary, graduates from SMU's Information Systems Management course earned the highest mean monthly salary of about S$3,450.

Creating a PostGIS database

Inside the pgAdmin tool, run
CREATE DATABASE my_spatial_db TEMPLATE=template_postgis

More details here