How many Americans have been Rickrolled?

By on

The Internet is a silly place, and one of the silliest phenomena is a meme known as Rickrolling — if you follow a link, expecting e.g. burrito recipes, and instead find yourself watching Rick Astley and a backflipping bartender explaining how Mr. Astley will never give you up nor desert you, you’ve been Rickrolled. And sometimes, you might be Rickrolled en masse — on April 1, all YouTube “Featured Videos” were really Rick Astley, and readers of fark.com and other sites engineered a coordinated and successful bid to place Rick Astley on the sing-along schedule for the April 8th New Yorks Mets game (fans booed).

Anyway, how many Americans have been Rickrolled? According to SurveyUSA — a highly respected polling firm well-known to political junkies — at least 18 million.

Python’s GIL is EVIL

By on

Lately I’ve been doing some Python multi-threading to make the best use of some of our amazing server resources. As I was pondering the reasons why one of our 8-core servers reported 83% idle despite 8 threads banging away, I re-discovered the Global Interpreter Lock.

BLECH!

The GIL enforces Python’s requirement that only a single bytecode operation is executed at a time. My nicely coded multi-threaded app was only being executed serially!! Sadly, this seems unlikely to change, even in Python 3000. Last year Guido said:

“Just Say No to the combined evils of locking, deadlocks, lock granularity, livelocks, nondeterminism and race conditions.”

I was brought up to believe that threading was dirty and independent communicating processes were the way to go. But even I realize that this just isn’t practical in these days of GUIs, multi-core processors, and application servers.

Why does the Python community accept the GIL? Is it because most people only use Python as a scripting language? Are there simple workarounds (e.g. not forking, shared memory, or the like) that I’m missing?

Google Map Places Editable!

By on

An article on Read/WriteWeb says that Google Maps are now editable by anyone with a google login (which surely must be everyone by now). The idea is that you can change the address, location, and link for any of the designated places on the map. This is a very cool step forward in crowdsourcing. It will be interesting to see how well they control vandalism.

One of the interesting questions is what methods Google is using for watching for vandalism.Many crowdsourcing sites seem to be using a “security through obscurity” approach. I wonder if it will prove over time that open approaches that publish effective security methods work as well? The ESP Game seems like one good example: the rules are published, but by working to ensure the players are strangers, most attempts to hack the system are not effective.  (The slashdot attack is a good counter-example.)

What do you think? Excited? Worried?

John

Ethical AIs

By on

There’s a fun article in the Winter 2007 AI Magazine about “Machine Ethics“. The basic argument is that as machines get more and more in control (e.g., planned army robots that would fire weapons), it is more and more important (to humans) that they behave in an ethical manner.

The article argues that there is a fundamental difference between implicit and explicit ethics. Implicit ethics would be programmed into a machine by its designer, much as Asimov’s imagined three laws of robotics. Explicit ethics would also be programmed in by a designer, but at a more fundamental level: the robot would be able to compute the ethics of new situations based on a fundamental understanding of ethics. The authors argue that explicit ethics are necessary for several reasons:

1) So it could explain why a particular action is right or wrong by appealing to an ethical principle.
2) Because otherwise it would be lacking something essential to being accepted as an ethical agent. (Kant admired agents that work consciously from ethical principles more than those that work slavishly from rules.)
3) So it could adjust to new situations, evolving the appropriate ethics.

(1) is a red herring: explanation systems often appeal to principles they don’t understand in any sort of principled way. For instance, in our work on explanations for recommender systems some of the most effective (for humans) explanations were only loosely connected to the operation of the recommender.

(2) is in contradiction with an argument the authors make later in the paper. They argue that even though computers won’t be conscious in the near term, they should be accepted as ethical agents if they act ethically. Agreed! So, then, all we need is that they act ethically.

(3) is intriguing. On the one hand, it would be remarkable if an AI agent could evolve new ethical patterns for situations it has never seen, based on core ethical principles.On the other hand, the results of that evolution might be very surprising. For instance, if a military robot were to decide, based on ethical principles, that it ought to prevent an attack on Iran that a general wishes to carry out, how would that be perceived, by the military, by the loyal opposition, by the anti-war effort? What if the robot assassinates the general to prevent the war? Overall, given our track record in predicting the performance of complicated software systems, I have some doubts about this approach.

I liked a later quote in the article, which says that ethical relativists cannot say that anything is absolutely good, even tolerance.

John