Sunday, February 25, 2007

A Perspective on Computer Science

I have a saying that I used around the office: "Lets put the Science back in to Computer Science". I think it really annoyed everyone else after the 20th time. But it's true - many people cling to ideas and methods long after any objective observer would have called them a failure. A one size fits all modernist approach is common. See Sun's pimping of Java as THE programming language for all circumstances. It should be clear to anyone that Java does not have a place in high performance numerical computing. Clearly there is much wishful thinking going on here, rather than objective measure and redefinition of science.

Hence, the following snippet courtesy of "Futurist Programming Notes". It looks like a pretty old reflection, but it's useful as a backwards looking futuristic meditation.

Notes on computer science tradition

  • Unscientific - The acceptance of ideas depends more on personalities than on technical merits.
  • Anti-Intellectual - Alternative ideas are discouraged.
  • Stodgy - The primary concepts haven't changed in 20 years.
  • Dogmatic - Irrelevant criteria are used to evaluate peoples' work.
  • Arrogant - most NEW ideas are feared and rejected.
  • Insular - isolated from other disciplines.

Not all of these criticisms are fair and some of them are being worked on (especially the Insular bit), but some of the first ones definitely apply. Think about this list next time you are arguing the merits of highly dynamic languages (Python, Ruby, etc) versus "standard" languages such as Java. Are their arguments based on sound evidence, or is it merely dogma at work?

For continued reading, try Steve Yegge. He has quite a bit to say on the subject of dynamic vs static languages and developing systems for the future.

Thursday, February 22, 2007

Stackless Python vs Erlang

To follow up on my Erlang post, while I won't be attempting to use Erlang at work, I may well be interested in it outside employment venues. Right now I'm thinking about the difference between Stackless Python and Erlang. Looks like the primary advantage of Stackless is that well.. it's Python! The language is less "weird" to most people, it's fully OO (for those who forget how to design non-OO systems) and has a concurrency model. On the downside, it looks like the IPC semantics are "simpler" yet more complex than Erlang's. In Erlang the only thing you can really do is send a message, and receive a message, Stackless has a whole queue model that involves threads blocking and the like. I don't know enough yet, but I suspect the basis of Stackless's concurrency model is in those blocking queues - each block is a hint that it's time to switch tasks.

Anyone have any advice or thoughts re: Stackless? I know Erlang well (it's pretty simple, so not hard), but I'd like more information on the pros and cons of Stackless.

Friday, February 16, 2007


I am fairly well known at Amazon for being a proponent of Erlang. However recently I have decided that Erlang and I need to take a break. People keep on asking me if I am planning on using Erlang in the future, or if I'm going to introduce it to my new team.

The answer is going to have to be a no unfortunately. While I like Erlang, the problem is one of string performance. The bottom line is in web applications and systems that deal with the web, strings are a first class concept and object. Not being able to efficiently deal with them is pretty much a dealbreaker. Most people seem to get around this limitation by translating most important strings into atoms, and then treating the rest of strings as binaries and doing pass-through. This approach is not suitable for all applications sadly.

I am interested in the following technologies and systems right now:

The interesting aspect of Stackless is they use blocking-queues as the IPC method of choice. I really like the async message passing style of Erlang, but I suspect most people have a problem thinking in and rationalizing about asynchronous messages.

I like D because it seeks to provide high level OO facilities with good performance. Performance really is everything - we should not be thinking otherwise. We need flexible highly performant systems, and it's possible that D can provide some of this. I need to investigate more however.

Thursday, February 15, 2007

The Globe and Mail is slipping

I used to hold the Globe and Mail as an example of excellent journalism. However, their recent front page article entitled "U.S. group wants Canada blacklisted over piracy" by a certain Barrie McKenna really leaves me wanting more. Like journalism for example. You know, not repeating statements as fact and leaving stones unturned. Michael Geist wrote an excellent rebuttal to this article - in good time as well. I also felt the need to write editorial feedback to The Globe and Mail. I've posted it here, and sent them a link to this in addition to the text below.

Hi all,

I have normally considered the Globe and Mail to be an excellent newspaper, however I'm starting to think that perhaps journalism does not rule the day. Case in point, Barrie McKenna's article entitled "U.S. coalition wants Canada blacklisted as bootlegging hub". This article is merely free advertising for the IIPA. The article is pretty much entirely quotes from their press release, documents and legal council. Their claims and statements are repeated as fact, despite that an knowledgeable journalist would know many of them are lies, and also know who to contact to obtain refutation. This is not journalism - this is business news wire and not worthy of the front page. Please reassign Barrie ASAP to a different coverage topic - it is clearly beyond his ability or desire.

I would like a response indicating either:
a) That you have done so
b) Why this article is an example of fine journalism and should be upheld as a stellar example of research, perhaps even one that could be used in journalism schools. To put anything but quality on your front page would be a travesty to the good name the Globe and Mail has (had?).

Thank you,

PS: I have posted this online as well at: <this url>

Tuesday, February 13, 2007

Java vs C++

Despite what some people say about C++, I still like it better than Java.

Using Java is like being at day care. You are well taken care of, everything is soft and nicely rounded. Things seem a bit bigger and blockier than they need to be - but hey, it's for those kids who have poor manual dexterity. We want them to feel good too.

Using C++ however, feels like being in a pro-machine shop. Things are big and bulky when they need to be (or due to lazyness), or they can be as lean and mean as you'd like. It's slightly dangerous there, so it's definitely for those who know what they are doing, but small price for getting exactly what you want.

One that that kind of irks me is most of the Java code I see never seems to be DOING anything. All it does is calculate a field and call some other class. Nothing ever seems to get DONE. It's all so abstract - you literally have to chase dozens of stack frames to get to anything so primitive as printing or the like.

While Java sucks the memory like no one else's business, so can Python. Yet I feel more efficient in that language - maybe it's the lexical efficiency I'm mistaking for run-time efficiency. Or perhaps I'm tired of watching 1 GB RSS java binaries suck up 100% cpu while doing apparently nothing.

Tibet is now China

The interesting thing about China doing all our manufacturing for us, is in some way, China gets to control and censor manufactured goods. Luckily we don't publish books there, but they do print... shower curtains. And sometimes those shower curtains have maps of the world:

TibetIsChina 1TibetIsChina 1 Hosted on Zooomr

Notice anything interesting there? Like, perhaps, that Tibet is now a region/province of China?

TibetIsChina 2TibetIsChina 2 Hosted on Zooomr

I purchased this shower curtain from Target. I assumed until now that it was made in China, and inspection of the tag indicates this is true. All you Free Tibet-ers, you now have another corporation to rage against (not to mention "The Machine").

Monday, February 12, 2007

Vancouver and the NDS

If you haven't read jPod, you must read it immediately. It's by Douglas Coupland and it takes place in Vancouver, BC. While in theory the book is fiction, it could have been a non-fiction documentary. The book, while probably fiction, it nevertheless could and probably does happen daily in Vancouver.

Case in point, on Saturday I was chilling with my friends who live near Metrotown. From the air/orbit it doesn't look like much, but I assure you, it is a huge mall. Combined with its ultra-convenient location on the Skytrain, makes for a huge destination. My friend, who recently quit game design school (boring!) for 300' high rise window work (cool!) mentioned I should get a Nintendo DS - henceforth just 'DS' or 'NDS'. He also said we can walk over to the Crystal mall and grab a pass-me like device. The newest generation is a 1-cart solution based on slot-1. It allows you to boot homebrew NDS games/apps from a Ultra-SD card - TINY! It patches the rom image on the fly so you merely have to drag and drop your image, and bam, the thing is ready to go.

Now it is time to investigate NDS homebrew. I've already installed the cross compiler toolset with libraries, now all I need is time, inspiration and coding. Some of the demo apps are pretty neato - wardriving on your DS! Or a FTP server via Wifi for upload of new files. With a different solution, a DS Linux is possible, with a browser and the like. But without a slot-2 card to provide extra ram, it wont really be super workable. I doubt I'll play with this - without a MMU it's pretty limited.

Finally, tomorrow is Ignite Seattle. Still deciding if I should go or not. Last time it was a mite crowded but this time I have my NDS.

Sunday, February 04, 2007

Blog Bad Mouthing Zooomr for Tech Support

So I've been trying to get this new photo site Zooomr to work. Note the 3 Os - doesn't get you where you want to go - domain squatters be damnned! It's one of the flickr alternatives. I especially like the geotagging feature - nifty, plus it uses Google maps which rules.

However, like Flickr, it displays photo in UPLOAD order. Of course, upload order is not what I want, and I cannot (unlike flickr) edit the upload date. Additionally, my exif data is not being pulled down and displayed. That sucks!

Now, comes the bad mouthing part. Finding support - impossible! There is no support/contact us option, there is no forums, nothing! They have an official zooomr blog. Additionally I emailed the "else" contact on the parent company's website. Emails to result in bounces with a server-side python script error. Ooopsy.

So, I figure the best way to get attention is to do a blog posting, which will end up in Technorati and ideally should feed back to the devs.

In the mean time, my project 365 photos are not fully uploaded or organized. Unfortunately you can't really see them in the right order. Hopefully I'll come up with a solution soon.