Tuesday, March 23, 2010

This blog has moved


This blog is now located at http://schedule7.blogspot.com/.
You will be automatically redirected in 30 seconds, or you may click here.

For feed subscribers, please update your feed subscriptions to
http://schedule7.blogspot.com/feeds/posts/default.

Monday, October 18, 2004

Intelligent Design

My recent article about the limitations in the current theory of evolution caused something of a stir. I've been reading up on the matter a bit, and it turns out that this "anti-Darwin"ism has a name, so-called Intelligent Design. This is the new, hipper, term for creationism, that carefully avoids using the bible, but still argues that natural selection is wrong, and that an "intelligent being" (God or Aliens) must be responsible.

It does seem that many of my naive criticisms of Darwinian theories of natural selection fall under the Intelligent Design camp, which is probably not a good thing. (Intelligent Design is essentially a pseudoscience). What has troubled me, however, is the assertion by many scientists, who should be in the know, that natural selection can explain all my concerns, yet they seem unable to back up their claims. So I did some reading. As I've been discovering more and more lately, wiki is a great place to start. That article goes some way to exploring possible explanations for "irreducible complexity". This article is a well written case study of how a particular example of irreducible complexity (hemoglobin) may have arisen through natural selection. It's not totally convincing, and lacking in hard data, but it's definitely plausible.

A recent article in Wired magazine highlights the ongoing battles the Intelligent Design camp are having to get alternative theories to evolution discussed in American schools. It's an exceptionally one-sided article, but has good breadth and discusses many of the role players in the current debate and as such is well worth a read.

Update: This article at talkorigins discusses Irreducible Complexity (IC) in some detail, and essentially dismisses it, establishing that either systems are not IC, or demonstrates ways in which known IC systems could have evolved by means of natural selection.

It identifies possible ways in which IC systems could have evolved:
  • Previously using more parts than necessary for the function
  • The parts themselves evolve
  • Deployment of parts (gene regulation) evolves
  • New parts are created (gene duplication) and may then evolve.
For instance, the swimming mechanism of flagella may well have involved an arm waving about in earlier forms. This arm may have been insufficient to propel the flagellum, but it would have disturbed the water around it, which in itself is a useful function, in terms of bringing food within range.

Wednesday, September 08, 2004

Why Your Anti-spam Solution Won't Work

The Last Word

Skype Reviewed

People keep asking me about Skype, and whether they should try it out. This
review of Skype is well balanced, pointing out some of the obvious and not-so-obvious flaws.

From my own experience, my broadband connection, which makes use of Wifi technology, suffers from very high latency, and hence renders Skype unusable.

If it's usable on dialup, I'd be interested in hearing about that.

Wednesday, September 01, 2004

Stored Procedures, what are they good for?

We're all familiar with the traditional benefits of stored procedures. For instance, this site, which talks about implementing stored procs in mySQL, lists them nice and succinctly:
  1. Better performance Stored procedures are faster because they are pre-compiled SQL code. This reduces the “Compile and Execute” step to just “Execute’ in most cases. Also, only the call to the stored procedure needs to be sent to the server instead of chunks of information – this reduces the information that needs to be sent to the server and acts like a call to a remote procedure. This is an advantage when it comes to code that is called repeatedly. However, the load on the server is another point to consider since most of the processing will now be done on the server.

  2. Easier to maintain Since all the SQL can now be stored on the server, it is easier to make changes to the stored procedure than to a bunch of SQL statements distributed all over the application.

  3. Security Although the use of stored procedures is not by itself a guarantee of security, it can be used to create an environment where applications and users can only access database tables through the stored procedures, instead of giving them direct access to the tables. The benefit is a layer of abstraction.

  4. Optimization When a SQL statement is parsed by the server, it is optimized internally by the server. If a bunch of SQL statements are sent to the server, repeatedly, they have to be optimized each time. The SQL statements in the stored procedure that is in memory have to only be optimized once and an execution plan is created for the SQL statements in the stored procedure.
But, is it as simple as that? Not if you believe Frans. He argues that dynamic SQL is the way to go. He makes some good arguements, for instance, pointing out that for MS SQL Server in particular, stored procs have no special priority over other SQL code, and are in fact compiled at run time (thus countering, to some extent, the performance arguement, although he does ignore the benefit of reduced network traffic).

He also objects to the API that you effectively create with stored procs, which can be a problem when the underlying table changes, as this forces the CRUD procs (at least) to change accordingly, breaking any existing client code.

My take? Having worked on many systems where the DB layer was accessed by many systems and languages, I'd say a fixed API was a good thing. Also, it limits the rewriting of identical (byt error prone) code over and over again.

Aside: many of the arguements for and against ORM tools apply equally well in this case.

Everything you wanted to know about blogging but were afraid to ask

Fascinating list of blogging tips. I especially like the frequent reminders that this a time vacuum that suck up more time the more popular it gets

Simon World :: Everything you wanted to know about blogging but were afraid to ask: "Everything you wanted to know about blogging but were afraid to ask"

Monday, August 30, 2004

Making Money From Open Source

This is the first reasonably coherent effort I've found to explain how one makes money by releasing open source software. I'm not sure it really applies to the little guy, but it seeks to explain how people like IBM and Sun can make money by giving away products like Eclipse and Project Looking Glass

Making Money From Open Source

Thursday, August 26, 2004

The End of PC's As We Know Them

Smaller and smaller computers is the current trend (palmtops, cell phones and so forth). The only thing holding them back from being utterly dominant is the awkward user interface - the keyboard/selection devices become hopelessly unusable, and the screens become unreadable.

However, check out this technology

There's no reason they couldn't eventually do this for screens as well.

Wednesday, August 25, 2004

Java Faster than C/C++

This fascinating article refers to numerous benchmarks and provides sensible academic reasons why Java is as fast or faster than C/C++ in most cases. The most compelling reason is that the JIT compiler knows precisesly what machine it is running on, and can thus tune the code much more effectively than a normal commercial c/c++ compiler. It's almost unfair, really

Java pulling ahead? Java versus C benchmarks

Sunday, August 22, 2004

Copyright vs P2P

In a remarkable decision for Peer to Peer developers and users, the USA Ninth Circuit recently ruled in favour of Grokster in MGM vs Grokster

from EFF:

...the Court observed that, in the long run, a competive, unfettered market for innovation ends up helping copyright owners (even if it doesn't help today's entertainment industry oligopolists). In fact, today's ruling will likely be remembered as yet another example of the courts rescuing the entertainment industry from its own short-sightedness. In the words of the Court, "Further, as we have observed, we live in a quicksilver technological environment with courts ill-suited to fix the flow of internet innovation. The introduction of new technology is always disruptive to old markets, and particularly to those copyright owners whose works are sold through wellestablished distribution mechanisms. Yet, history has shown that time and market forces often provide equilibrium in balancing interests, whether the new technology be a player piano, a copier, a tape recorder, a video recorder, a personal computer, a karaoke machine, or an MP3 player."

There is an absolutely fascinating one hour mp3 of the oral arguements from both MGM and Grokster/EFF available here. The arguements are very persuavive from both sides, and very clearly spelt out. It really does make all those endless courtroom dramas you see on TV quite dull by comparison, I strongly recommend downloading and listening to it.

Saturday, August 21, 2004

Chess Legend Bobby Fischer Arrested

OK, this isn't exactly new news, it happened about a month ago. But its taken a few twists and turns along the way.

First, lets recap. Back in 1992, Bobby and Boris Spassky had a rematch of their famous 1972 battle. This was held in Yugoslavia. At the time, the USA had imposed sanctions against Yugoslavia, and as a result, issued a warrant for Fischer's arrest. He vanished for a long time, only to resurface in the Philippines after 9/11, to express his delight at the attack at the WTC attack. Not exactly endearing himself to Uncle Sam, then.

Anyway, he was recently arrested in Japan, attempting to travel on his apparently invalid USA passport. Appeals against his deportation are currently underway, although he is now attempting to renounce his US citizenship.

In a recent bizarre development, Boris Spassky has written to President Bush, asking that he too be arrested, and placed in Fischer's cell (along with a chess set).

The End of Secure Transactions Over the Internet?

Some of you may have heard that someone "cracked the system used by secure sites". In fact, what has happened is that someone has managed to produce a "collision" on SHA-0. This means they have managed to generate two different messages that, when they have the SHA-0 hashing algorithm applied, generate the same hash result. The implications are not fully known yet, but note that they are not able to produce a collision message against a particular message. In other words, they can produce a message M and M' where H(M) = H(M'), but can't currently produce a message M1 against your message, where H(M1)=H(your message)

This site explains it as clearly as I've seen so far. It also suggests some of the implications of the results.

Friday, July 30, 2004

Great Hacking vs Great Writing

The java blog world is up in arms about Paul Graham's anti-java tone in his recent controversial post.

See here and here for instance.

If you are a passionate programmer, Paul's writing can be very inspirational. His ongoing anti-java bias is, however, very offputting. Regardless of your preferred language, at the end of the day, we're programming finite state automata. Different languages give us more or less abstraction levels, possibly allowing certain concepts to be expressed more succinctly, but nothing can change the fact that all we are doing is manipulating bytes, comparing bytes and diverting to other memory locations based on those comparisons.

Update:

Here is a well written response, the last sentence in particular is very telling.
Here, on the other hand, is a cutting response, and the comments are even better - check out Starsky McFlirt's comments: " Oh sorry, I forgot, he also applied a basic statistical concept to email filtering as well that worked for like at least one year. Somebody give the man a f**kin Nobel prize tout suite. " still has me chuckling.

Tuesday, July 27, 2004

Open Source Databases Compared

MySQL, PostgreSQL and Firebird: well-known databases to be sure. But which one to choose? This site provides an excellent comparison and checklist of which features each database supports.

Thursday, July 22, 2004

MySQL Gotchas

This site contains a very detailed list of gotcha's with MySQL (i.e. unusual behaviour not consistent with the majority of other databases out there). They are not necessarily bugs. It's quite hard core and very detailed, but could be useful if you're ever scratching your head wondering why something odd is going on with your MySQL queries.
 
Topics include
  • Strange null behaviour
  • Varchar fields are non-case sensitive by default
  • Peculiar comment behaviour
  • Division by zero gives null rather than an error

and dozens more