Archive for the Tech Stuff Category

So what do you think of when you hear "Java"? (I added the "technology" part to differentiate from the beverage). Well, I think of "enterprise programming", like most people in IT, I guess.

Now what does Sun say about Java? If we go to Java's home site we get a page with the tag in the title: "Hot Games, Cool Apps", and by looking at the page we'd agree; after all it's all games except for one box dedicated to OpenOffice.

This is explained in the What is Java? page:

Java allows you to play online games, chat with people around the world, calculate your mortgage interest, and view images in 3D.

So according to Sun it's all about games. And it's all about applets:

These applications, written in the Java programming language and access from your browse, are called "applets"

And more games:

After you download Java, visit java.com to find the latest Java games, software, and multimedia players.

Err... what?

Nobody seems to know (OK, I don't know) where Sun is headed or what they really are (hardware company? software company?). Remember the "We are the dot in the .com"?, what the hell did that mean?, a dot is like a small thing right? I mean, at least you could be the "com" in the .com.

But now after a dozen years or so of Java they had a PR idea: they changed their NASDAQ ticket from SUN to JAVA. Aah, now it's all clear to me...

(Update: I took out the ads).

After resisting and incredible amount of pressure, I gave up and put Google's AdSense ads in my blog. My little corner of the cyberspace was one of the only places with more than two readers (I have three o four) without the pervasive publicity links.

So what the heck, I decided to dive in shouting "show me da money!" and claim my 20 or 30 cents that I was missing out. I hope that if everything pans out my silly thinking aloud will pay for my addiction to Tim Hortons . (I need my daily doses of medium double-double coffee and donut, and that's like CND $2.09 !).

I don't like to have my site full of advertisement; we already have John Chow with his good ad tips for that, so I placed an ad block at the bottom and another in the sidebar. The problem was that the sidebar add block was showing also in my "about me" pages and I don't like to have ads there, especially when one of the ads that appeared in this blog was Living with a Sociopath?; most of the ads are related to the text in the articles but sometimes you get an oddball.

I decided to make the modifications in WordPress and the current theme so that I don't display ads in the sidebar for my "pages", but just in the regular posts.

These are my notes:

Copy the sidebar.php of your theme into another file without the AdSense code, 'sidebarpage.php' for example.

Edit the page.php file for your theme, for instance ./wp-content/themes/mistylook-101/page.php , and rename the function get_sidebar() at the bottom, for instance get_sidebarpage()

Edit the ./wp-includes/general-template.php file and copy the get_sidebar() function but now this function will call the sidebarpage.php:

function get_sidebarpage() {
if ( file_exists( TEMPLATEPATH . '/sidebarpage.php') )
load_template( TEMPLATEPATH . '/sidebarpage.php');
else
load_template( ABSPATH . 'wp-content/themes/default/sidebar.php');
}

And that's all.

Installing Drupal 5

Installation instructions at: http://drupal.org/node/260

Here are some extra tips and gotchas.

1) Check versions of php and mysql, you need php 4.x and mysql 4.1 or 5.0
# php -v
# mysql --version

2) Create database and user / password
You can use phpmyadmin, the mysql module in webmin or the mysql client from the command prompt.

3) Get Drupal and extract it (latest versions in: http://drupal.org/project/Drupal+project ):
# cd /tmp
# wget http://ftp.osuosl.org/pub/drupal/files/projects/drupal-5.1.tar.gz
# tar xzvf drupal-5.1.tar.gz

3) move the Drupal directory
# cd your_public_html_directory
# mv /tmp/drupal-5.1/* .
# mv /tmp/drupal-5.1/.htaccess .

At this point you should see with your browser the Drupal installation page at your site's url.

4) Get the three database pieces of information (database name, username and password) into the settings.php file
edit the $db_url line in ./sites/default/settings.php with the values for the database user, password and database name created earlier:
$db_url = 'mysql://db_user:password@localhost/db_name';

or easier without editing: just change the permissions for the settings.php file so the installer can set these values:
#chmod 777 ./sites/default/settings.ph
then run the Drupal installer by going to your site's url and then change the permissions back:
#chmod 644 ./sites/default/settings.ph

5) Create the administrator user
Run the install.php script by going with your browser or refreshing your url and create the administrator user.
You'll see a warning about the missing "files" directory and missing cron jobs.

6) Make a "files" directory and give ownership to the apache user:
# mkdir files
# chmod 770 files
# chown apache:apache files

If the apache user or group are not "apache", look in the /etc/paswd file or in the running processes (ps aux|grep httpd) for its name (www-data?)

Drupal will install a .htaccess file in this directory for protection when you go to "administer > site configuration.

And the installation is done!

I didn't like having the install.php and update.php in the public directory, so I moved them out of the way and I just can move them back if I need them.

The installation is pretty minimal, so you'll have to activate modules and permissions from the administration panel.

Installing themes:
To customize with a theme, just grab the theme tar file and extract it in the themes directory, for example:
# cd themes
# wget http://ftp.osuosl.org/pub/drupal/files/projects/aberdeen-5.x-1.4.tar.gz
# tar zxvf aberdeen-5.x-1.4.tar.gz

and the theme will automagically appear in the admin control panel.

A tip from a Drupal especialist: 2bits.com:

It is best if you install your own add on modules and themes under the sites/all/modules and sites/all/themes directory. This separates the contrib stuff from core Drupal and makes upgrades easier.

Some troubleshooting tips:

If you get in the web page an error message regarding permissions, and especially if the Drupal install is the first thing that is going into the web server, check that the 'sites' directory has enough permissions (chmod 755).

If you get an error mentioning that the database is unsupported or it's the wrong version, it may be simply that the database instance hasn't been created.

I wanted my desktop to have Internet access but since it's not close to my router and I don't want to pay some $70 for a PCI wireless card, I decided to connect the desktop with an Ethernet cable to my MacBook, which is connected via wireless through AirPort.

So, this is what the Mac help says:

1. Open System Preferences, click Sharing, and then click Internet.
2. Choose a network port from the "Share your connection from" pop-up menu.
3. Select "Built-in Ethernet" or AirPort depending on which computers will share your Internet connection.

If you have turned on the firewall on the Firewall pane of Sharing preferences, you also need to turn on Personal Web Sharing on the Services pane of Sharing preferences in order to share your Internet connection and allow computers connected to your Internet connection to browse the web.


This need to turn on Personal Web Sharing is confusing since stopping it is to “prevent users of other computers from accessing Web pages in the sites folders on this computer”; I'm not sure how this is related to making a bridge for Internet sharing.
So in my case, I selected “Share your connection from: AirPort” to computers using “Built-in Ethernet” and I allowed “Personal Web Sharing” in Services (it automatically allows it in the firewall settings).

Now, there's a couple of extra steps to take, at least with my default configuration.

After the previous steps I lost Internet connectivity in the MacBook, and this is because it was trying to connect thru the Ethernet port, ie, Ethernet has higher priority by default than the AirPort wireless port.

This can be checked in System Preferences -> Network and “Show: Network Status”; I see that the Ethernet interface was assigned the private address 10.10.10.1 and at first it was saying “You are connected to the Internet via Ethernet”. I changed to the view “Show: Network Port Configuration” and in effect, Built-in Ethernet was higher up in the list than AirPort, so I dragged AirPort to the top of the list and gained the connectivity back.

Now, regarding the computer that is connected to the Ethernet, it's not likely that its network settings will be ready for the connection; many will have DHCP by default and the MacBook is not offering that service (at least by default). So I setup a fixed ip address in the desktop, 10.10.10.2 (or 10.10.10.whatever) with a network mask 255.255.255.0 and as gateway the MacBook: 10.10.10.1.

So everything is working fine now. As an additional note, the MacBook Ethernet port supports both regular network cables and cross-over ones; it will auto-detect the type of cable and it can work in both modes automatically, so you don't need a cross-over cable to connect directly to another computer, you can use a regular patch cable. (I checked that it works with both types of cables).

Besides reports of problems between MacBooks (or Apple AirPort in general) and D-Link's DI-614+ wireless router, I couldn't find any useful information of how to make the beauty and the beast to play nicely together, so here's my experience in case in can help somebody.

No matter what I tried, I couldn't get the Macbook to connect to the D-Link POC access point using any form of WAP encryption, it would connect just fine as an open network. I reckon this wasn't a problem of the mac wireless since I had visitor's laptops that wouldn't connect to the D-Link router either. I guess this crappy router is safer for being quirky.

Apple has some interesting notes about WEP passwords, but that didn't help.

I didn't want to shell out $80 or so for a new wifi router, especially when I don't need 802.11g at 55Mbps speed and they don't sell in retail stores older "b" models anymore. I wonder how many people that get the new routers as upgrades have an Internet connection close to 55Mbps.

So finally what did the trick was upgrading the firmware of the wi-fi router. In the admin page (default is http://192.168.0.1) the section is reached by going to the "Tools" tab and then "Firmware". There's a link there to D-Link's TechSupport and after some navigation you can download the latest firmware (Current Firmware Version: 3.44 Firmware Date: 16 Nov 2005) and flash the router.

In Advance -> Performance I lowered the beacon interval range and that seemed to improve the wireless data rate.

For security I'd recommend besides the WEP encryption (of course) setting in Advance -> Filter a MAC filter and in Advance -> Performance checking the "Disabled" for SSID broadcast.

I attended on October 24th the FOSS symposium organized by Seneca college in Toronto . If you want to play "find Waldo", I'm in this picture taken in one of the presentations.

The gathering is aimed at educators and “other interested parties” to talk about Open Source in an educational or research context. About 80 More than 120 people attended.

The organizers did a good job, no big complaints here. There was one or two presentations that started late but it was the presenter’s fault. Technical staff were helpful assisting the speakers.

The symposium fee was $20 (plus $14 parking), and for that you get a 99% cotton t-shirt of your desired size with the penguin logo, lunch and one beer. So not bad at all. Besides there was coffee and cookies first time in the morning and in the evening. At registration time they also give you a sheet of paper with the agenda of the day and another one with the plan of the building.

The Stephen E. Quinlan building is beautiful by the way, with lots of glass and a central court with trees and water. From the second level I could see down below a modern floor full of computer stations with some scattered young people sitting at them. Looking at these youngsters I had some nostalgia and “envy of the past” (surely there must be a German word for that). Did I mention that my first “computer” was the Sinclair ZX Spectrum? (not counting HP and Casio programmable calculators, circa 1981). On one side of this computer hall there’s a library, so computers and books side by side, a geek’s paradise! Maybe I should come teach here some day.

Here’s the agenda for the presentations, it’s a total of 8 back-to-back hours plus one for lunch, so it was a little tiresome. And I didn’t take notes, so don’t quote me for accuracy.

OpenSource 101: Introduction to Collaboration, by Marcus Bornfreund

The first speaker was Marcus Bornfreund, from Creative Commons Canada . And probably the only person at the whole event wearing a necktie. Copying and pasting from this web site: Marcus is a part-time Professor at the University of Ottawa Faculty of Law, the Manager of uOttawa's Law & Technology Program and an Associate of the Canadian Internet Policy and Public Interest Clinic (CIPPIC). He sits as a member of the CIPPIC internal advisory board, and is also a member of the Law Society of Upper Canada, Electronic Frontier Canada, and the Free/Open Source Research Community at MIT. Marcus is responsible for the Canadian translation of the popular Creative Commons licence and a prominent figure in the Canadian open source community.

This was the most intellectual or abstract presentation and it made me think.

A central point of his presentation was that there’s no open source software but open source licenses.

He was on purpose very “politically correct”, he didn’t want o use “loaded” words like not more free and less free. He encouraged us not to think in terms of good and bad but to think “what’s good for you”. This non-belligerent approach had a reply when two other speakers (Jesse Hirsh and Stephen Downes) based their presentations in trying to be the opposite: the belligerent, “us vs. them” (open source vs. closed licences) thesis.

He quoted Isaac Newton (a “plagiarist”) and his “If I have seen further it is by standing on the shoulders of Giants”. And then he showed the same quote (wording slightly different) by somebody like a century before Newton. Then he showed a previous quote and then like one or more two earlier. This was in the discussion of creativity: chicken or egg?

Marcus made his presentation with an Apple iBook “because I find it to fit my needs, but you should boo me” (or something like that). He gave out stickers of creativecommons.ca

Now there were three tracks, and I chose:

Python Power – Learning, Teaching and Doing with the World’s Easiest Programming Language, by George Belotsky.

The speaker works at Open Light Sofware and this was just a brief overview of what Python is. Not much more besides two interesting examples of what you can do with very few lines of code. One of the examples made use of a Python physics and 3-D visualization library to simulate a bouncing ball in a few lines of code; very good for teaching physics.

He made the presentation with some light-weight X Window manager (fvwm?), he showed the code in Emacs.

The Open Source Service-Centric Business Model, by Jesse Hirsh

This was my favorite non-technical presentation. Jesse Hirsh is the president and founder of Openflows, and open source consultancy firm in Toronto. By the way, the logo of Openflows looks like the one for Ubuntu, only this time there’s a fourth guy falling back (what!? I’m the one to get stuck with the Windows machine? Aaaah!).

Jesse is a very enthusiastic and vibrant speaker of strong convictions; he tells things bluntly as he sees them. He talked was about his personal life journey from a political activist living in his parents house to a business man (still political).

On New Year's Eve, 1993 the Zapatista Army made an uprising in Chiapas, Mexico. The news of this rebellion reached all the World and all of the Internet thanks to mailing lists, but it wasn’t the commercial listserv program the one spreading the news, but majordomo, an open source mailing list. Jesse had some sort of an epiphany when he realized the power of a “few lines of Perl”.

He identified other key open source applications; first Slashdot and then Drupal.

At some point he wanted to make a living, so he funded Openflows with the idea of giving expertise in open source software. His first important client was US Today. They wanted a Slashdot type of application and when they approached the creators of it, they referred them to Jesse’s company. They maintained a good relationship; although they reported bugs in Slashdot the Slashdot people didn’t want somebody else to write code, and they didn’t want to make business implementing it at companies either.

Jesse educates prospective clients with the advantages of open source and he stressed the “no lock-in” factor and the fact that firms can fire them easily and get another software developer to work on the existing open code. (He actually mentioned one case when this happened). He also lamented that this education was a very uphill battle, fighting against the marketing budgets of Microsoft and the likes, but he welcomed a debate in a leveled field.

Some quotes: “I hate Microsoft”. “We are not dwarves standing on top of giants, we’re dwarves standing on top of dwarves standing on top of dwarves etc” (I like that one). “ I don’t want to be rich, I want to make a living”. “When your expectations are low, it’s easy”.

He made the presentation with a paper with some notes and the lecture hall’s computer to show Openflows’ web site. The room’s computer runs on SuSe.

LTSP – Changing the Rules of the Desktop World, by Jim McQuillan.

This was my favorite technical presentation. Jim is the founder and leader of the Linux Terminal Server Project and he came from Detroit to gave a very good introduction of what LTSP is, what it does, where it’s used and where it’s headed. It included a live demo of a small terminal booting from the network (his laptop) and being up and running in a few seconds.

He made the presentation and demo with Ubuntu 5.10 (“my favorite distro”) and he explained how it’s the first Linux distribution to incorporate LTPS (yai!). He received a call (or email?) from Mark Shuttleworth, the philanthropist behind Ubuntu, and after 9 months (if I remember correctly) the implementation was finished. Mark says that South Africa (his native country) is going to show Brazil how LTSP is done. (Brazil and particularly Sao Paolo is a place where LTSP is being widely deployed).

I love it when presentations have just the right level (not too simple, not lost in technical details) and you actually learn things. Jim really knows his stuff; before someone would finish a question he was already giving a precise answer.

An overview of OpenOffice 2.0, by Marcel Gagne.

Good presentation by well-known Marcel Gagne (although for me it was the first time I saw him in person). The new version of OpenOffice has just been released and there are some very good improvements in terms of GUI and Microsoft Office compatibility. One of the most important points about this new release is the adoption of the Open Document Format that made the news (or Slashdot at least) recently because the state of Massachusetts in the US wants to adopt open standards for electronic communication and Microsoft doesn’t like it a bit.

Marcel showed (with “unzip” from command line) how the file format is actually one zipped file with everything inside. He also mention the one click “clik” Linux installation project. (Where’s the link to it?).

Marcel gave his presentation with Mandriva Linux.

Open Solaris by Daniela Malea

This was a good overview of the open source version of Solaris. Daniela’s title is “engagement architect” but she was quick to say that she wasn’t into the wedding business, that she was a pre-sales engineer.

Daniela was pretty candid about he company, that’s something you don’t see so often in a public conference. For instance she recognized that Sun’s decision to stop development of the i386 version of Solaris when it was version 9 was “ a big, big, big mistake” (or did she say “terrible, terrible mistake”?) but now Sun is committed to Open Solaris, they are going full-speed ahead with it because they have realized the value of the low-end market.

I was a little surprise that people in the audience weren’t aggressive to the only commercial (or not open source) company in the symposium. She explained the license Sun is using for Open Solaris (CDDL, a derivative of the Mozilla incense) and how they don’t like GPL because it’s “sticky” or “viral”; “if you use a piece of GPL code in your product, then you have to release everything as GPL”. This is not strictly true; INAL but if the code is modularized it somehow escapes the imposition, otherwise there would be no Linux distributions with applications that are not GPL.

Sun Microsystems was a sponsor of the event by the way. I don’t remember what Linux Daniela used for the presentation (Open Solaris?). Her slides were the best of the symposium though. (Here’s a tip to other speakers: don’t use dark green and red in fonts over a black background with red and white lines).

She also explained how people could try Open Solaris and contribute finding bugs.

I was also glad that she mentioned Xen , a project that I have in my hair cross; they also have a hypervisor technology in Solaris 10. She also mentioned some of the other advanced and cool features of the new Solaris, like the ZFS file system or the dynamic tracing utility (Dtrace).

Ruby, Blackboard and the Challenge for Open Source, by Stephen Downes

This was the strangest presentation and the one which made people laugh the most (including myself).

According to his own web site, Stephen Downes lived and worked across Canada before joining the National Research Council as a senior researcher in November, 2001. Currently based in Moncton, New Brunswick, at the Institute for Information Technology's e-Learning Research Group, Stephen has become a leading voice in the areas of learning objects and metadata as well as the emerging fields of weblogs in education and content syndication.

At the beginning of the talk he spent some 10 minutes trying to get his MP3 player to record his voice (I think). Then he presented two unrelated topics that would support his final thesis. If I got it, his thesis is: “the Russians are coming!”, how “they” (the bad guys, not the Russians) are closing up the Internet.

The first topic was how he was unable to install Ruby on Rails on his Linux machine; he spent two weeks (24 full hours) frustrated. He didn’t want to draw any conclusions of this though, he was just setting up a stage. He admitted that one problem he was having is because he didn’t know about “kill -9”. For this in particular I’d say that the problem is not that he’s not a Linux expert or that Linux should be made easier or whatever; the problem is with the product (Ruby on Rails) installation or the installation documentation. He fully documented the whole ordeal for others to see, what else can you ask of a user?

The second stage was how Blackboard and WebCT merged (apparently one ate the other) and the danger in that. Both companies have products for eLearning or CMS for universities and colleges. Stepehen argued that both products suck, they are expensive and they have almost a monopoly of the market. He mentioned some alternatives like Moodle (there was a presentation about this application), but not aTutor, developed by the University of Toronto and the system I’ve used.

Finally he made the case of “us vs. them” like in “closed vs. open”, “something or the other vs. distributed content” and so on.

I had a great time but I’m not sure of what his message was.

Stephen presented using a web browser in the hall's computer.

Update:

Stephen Downes links to this article even if I call his presentation "strange". Thank you. He posted the slides of his presentation.

Behdad Esfahbod also posts his account of the symposium. We pretty much agree on the comments about the presentations that we both attended.

Google AdSense and the Perpetual Motion Sites

I haven't read about this phenomenon but surely the little secret must be out: there is a proliferation of web sites with little content set up with the only purpose of hosting Google's AdSense advertising. So far nothing worth mentioning but the funny thing is that these AdSense facade sites are advertising themselves in Google (through AdWords), hoping that the money they make with AdSense is more than the one they have to pay for AdWords. If it's working (and it seems so, otherwise they wouldn't be paying for advertising) then they have just invented the perpetual (money-making) motion (PM) machine.

Let's see an example. It works with many search queries that include something popular and "tutorial" or similar. For instance: CRM tutorial . Today (and of course this may change rapidly) two of the sponsored links in the right column are CRM-101.com and CRMtutorial.com . If you take a look at these sites you'll know what I mean.

The winners in these perpetual motion contraptions are the little content fronts and Google in terms of money (Google makes more money that it pays these PM sites because they get more from the advertisers in the PM pages, it's like a pyramid scheme). The losers are the users (that click twice, once in the PM link in the Google search result and again in the PM pages) and also Google in the long term because it hurts the quality of its search service.

By the way, of course there are no Perpetual Motion machines you silly, the users in this case are the ones introducing the "energy" in the picture.

Update:

Joel on Software has a good explanation of what's going on.

WiFi Troubleshooting Notes

Here are some Wireless 802.11 troubleshooting notes, many are Windows specific.

Trying to sort by easiest and most likely to solve the lack of WiFi communication problem.

Most of the problems are solved by rebooting computer and router and making sure that the settings in both (encryption etc) are the same.

Questions: has wireless ever worked? is it working on and off? was something installed or changed before it stopped working?


  • Check lights in network card and router or Access Point (AP), check for activation from wireless switch or keyboard combination in some laptops

  • Power-cycle AP, reset network: log out of Windows

  • Check both computer and AP have same 802.11 version of WiFi

  • Dropping connection: check for distance, interference (portable phones...), use channel 11

  • Check for running firewall or virus in computer

  • Check if AP has WEP encryption key enabled. Disable momentarily for testing

  • If AP never worked: try connecting directly with regular Ethernet patch cable

  • Check for MAC filtering in AP

  • Check for updated driver in router

  • Check for duplicated network name; change the name in AP configuration if so

  • DNS problem only: ping known IP, like yahoo: 66.94.234.13

  • Windows: check with ipconfig if computer is getting DNS Suffix, IP address & gateway

  • Windows: delete other routers that show up in wireless list

  • Windows: check card in Network Devices, check if it has power saving feature

  • Windows: check that "Obtain DHCP automatically" is enabled

  • Windows: check that option "Use Windows to configure my wireless network settings" is enabled

  • Windows: check windows version; SP2 has other WiFi interface

  • Windows: check that the service "Wireless Zero Configuration" is running in Start -> Administrative Tools -> Services

  • Windows: disable network bridge connection

  • Windows: run tool: netsh diag gui for diagnostics

  • Windows: release & renew DHCP: ipconfig /renew

  • Windows: reinstall network stack by running: netsh int ip reset resetlog.txt

  • Windows: remove network card from Device Manager and reboot to be reinstalled automatically

Windows Instant Messenger is a Virus

The general comments I made for Windows Media Player goes for Microsoft’s Windows Messenger. It indeed replicates like a virus when you try to remove it.

I think it’s no surprise that among my friends and acquaintances the least tech-savvy tend to use Windows Messenger and the more er... smart will use Yahoo Messenger or, better yet, Gaim or Trillian (good, I just insulted some people).

So for some reason I needed to use Instant Messenger and I installed it with some aversion. Now I had it started up and running since I log on to Windows.

Like in the Media Player case, the way to fix this is to change the options settings, which this time is where everybody would expect: menu tools -> Options and in the Preferences tab, uncheck “Run this program when Windows starts”.

But let’s see the behavior of this little beast when we try to shut it down or delete it. If for instance I try to close Messenger, a message appears saying: “There are other applications currently using features provided by Windows Messenger. You must close these other applications before you can exit Windows Messenger. These applications may include Outlook, Outlook Express, MSN explorer, and Internet Explorer”. Well, that’s seems false in my case, since I don’t have any of those programs running (I use Firefox and Thunderbird instead), even if I go to the Task Manager and close all non-essential processes, the message insists there’s some application using Messenger. I doubt it.

The messenger program is called msmsgs.exe and in my computer is under the Program Files\Messenger folder. If we delete that file, Windows will automatically reproduce it in a clear viral behavior. (For some reason now I couldn’t repeat this action; I must have messed around too much).

Finally, we can try another experiment. Even when Messenger is not running, we can check with the Task Manager (Ctr+Alt+Del, Processes tab) that msmsgs.exe will start in the background when we log into Hotmail, and this happens even if we selected not to run it in the background from its options. But the funny thing is that after we log out of Hotmail and close the browser, the Messenger process doesn’t finish but it just stays there for who knows what reason.

Windows Media Player is a Virus

I don’t like Windows Media Player at all; it’s bloated but worst of all, it overrules without permission all my preferences for viewing media and encroaches itself in its operating system mother. Let’s see what happens if you try to remove this applications; it will defend itself, overriding how the operating system is suppose to work by taking advantage of a special consideration just made for them by Microsoft.

The reason I have the Windows Player at all is that my kid likes to go to disneychannel.com, nickjr.com and noggin.com (actually the Internet for him are those three sites) and at least one of them requires that you use Windows Player to watch its videos. What’s more, I had version 9 but it wouldn’t work; it had to be version 10 or nothing (geez!). So I upgraded to version 10 and he could watch his Dora the Explorer or whatever videos.

Now, I use InterVideo’s WinDVD to watch DVD movies; there’s nothing really special about this program but I like its simplicity: I can pause/restart the movie in the dark with the space bar and go to the main menu with one or two clicks, and that’s pretty much all the functionality that I ask in a movie viewer. Windows Media Player has some Ctrl+something for pausing (try finding that quickly without light) and don’t even ask me about the other gazillion controls and trying to connect to the Internet without permission to have some “experiences” or whatever. Anyways, after upgrading Windows Player, it just overrode all my previous preference settings and upon inserting a DVD it will just pop up without permission. It was really annoying; even if Windows would ask me what program I wanted for viewing the movie and after I selected WinDVD, it will not obey and the virus would show up.

At the end I learned that the way to solve this hijacking problem was to find the “Options” menu in Media Player and unselect the preference that it has for itself of being the default player for DVDs. This options menu is hidden in a new button at the top and right of the player that breaks all Windows conventions.

So I tried using the Windows setting to get rid of this problem; after all the applications are suppose to follow the operating system’s rules and not the other way around, right? Well, for Microsoft and its applications it’s the other way.

I went to the CD drive properties (for example: My Computer icon -> right click CD Drive) and in the AutoPlay tab, I selected the action to perform that I wanted: I hereby command you to Play with WinDVD in the case of video files. OK, let’s see if it works… No it doesn’t, it ignored my request and it’s still using “the virus” to open my DVDs.

Next I changed the file association preferences for Windows. To do this, I went to My Computer folder and in menu Tools -> Folder Options I chose the File Types tab. (This tab exists in some folders but not in others, another mystery). Then I went one by one thru the whole list and changed all the associations with Media Player to WinDVD. SO let’s see if Windows obeys itself… No it doesn’t. The preference of an application (Media Player) overrules again the settings of the operating system itself.

OK, third time’s a charm, so I’m going to uninstall Windows Media Player and see how it likes it. I went to Control Panel -> Add or Remove Programs and chose the little bastard. Here comes a surprise, a confirmation dialog asks me if I want to revert to the previous version! It doesn’t offer any other option I may prefer, like “Kill you, kill all your ascendants and descendants and burn down all your houses”. This virus is really getting hard to kill. So I accepted this only choice and the mutant went back to its version 9 inception.

Now I can try and use the same tactic again to see if the bug will die. Hey, wait a minute, the bug doesn’t show up in the list of applications to uninstall. Hmmm. Oh, I remembered, Microsoft says that its player is an integral part of Windows (EU officials seem to disagree), like Internet Explorer. Interlude: I always found hilarious that they could affirm with a straight face that a user application like a browser that is at the top of the networking stack could be considered fundamental part of the operating system, when everybody knows that an operating system is basically the piece to interact between hardware and applications; composed of hardware drivers, file systems, memory and process management and that’s pretty much it, definitively not a high-level user application.

So in the “Add or Remove Programs” I chose “Add/Remove Windows Components” and then I unselected Windows Media Player. What eleven-hour trick is the virus going to pull now to protect itself? Well, I was going to find out soon: to uninstall the Media Player virus Windows will ask you for the installation disc. That’s right; you need an installation disc to uninstall.

And finally, the irrefutable proof that Windows Media Player is a virus: it reproduces itself upon being erased. Want to try? Go to the folder where the Media Player resides, in my case it’s Program Files\Windows Media Player. Now select the wmplayer.exe file and delete it (you have to close the player first or it will rightly complain that the file is being used). After a warning that the file is an executable, the program file is deleted. You can check that it went to the Recycle Bin. So far it’s standard behavior. Now wait a little or refresh the folder. The wmplayer.exe file reappears magically. WTF!? You can try deleting the file a few times and see multiple copies of it in the Recycle Bin, the fact is that Windows breaks its own rules and without any permission it will recreate this particular executable. You cannot fool the virus by renaming the file either. Of course don’t try this magic act with standard programs.

The same viral behavior is also present with Windows Messenger (for some reason I wasn’t able to repeat it now, who knows the things I’ve changed).

Computer Chess

Introduction

The purpose of this article is to present the past and current state of computer chess and we will try to shed some light into its future. We will also give technical explanations of how a chess computer works, based on Deep Blue, the most famous and well-documented chess machine. We will discuss as well the importance that computer chess and in particular Deep Blue has brought to the Artificial Intelligence field.

The motivation to study computer chess lies in the unusual position of computer chess within the artificial intelligence world. Like most AI problems, chess requires a program which will display seemingly intelligent behavior in a limited, artificial world. Unlike most AI problems, the programmers do not get to make up the rules of this world. In addition, there is a very rigorous procedure to test the intelligence of a chess program: playing games against humans. Computer chess is one area where the usually disparate worlds of AI and high-performance computing meet.

It can also be argued that game-playing can be a good problem for AI research because of the following reasons:

* All the information is available.
* It is non-trivial.
* The artificial system needs to display “human-like” intelligence.
* Some games such as chess are very complex.
* It requires decision-making within a time limit.
* It’s more realistic than other search problems.
* Games are played in a controlled environment.
* We can easily replicate situations to do experiments or evaluate research systems .
* We can compare humans and computers directly.
* We can evaluate percentage of wins/losses to quantify performance.

Brief History of Computer Chess

In 1769 Hungarian Baron Wolfgang von Kempelen built a chess playing machine for the amusement of the Austrian Queen. It was a purely mechanical device, shaped like a Turk (and hence the nickname that it acquired “The Turk”). The machine was a fake, as a chess player was hidden inside the machine.

A chess-playing computer had been suggested as early as 1864, and the first machine able to carry out a “program” was invented in Spain in 1914 by the engineer Leonardo Torres-Quevedo and called Ajedrecista for the Spanish word for chess, ajedrez. [1] (Note: although this book was written by a chess historian, the machine was really built in 1912 but not exhibited until 1914 in Paris). The Ajedrecista used electromagnets under the board plays flawless endgame with rook and king against lone king.

Around 1950, mathematician Alan Turing specified the first chess program for chess. There were no computers yet, so he devised a “paper computer” where himself carried out the calculations of the program.

About the same time, Claude Shannon, another mathematician from the Bell Laboratories, described how to program a computer. He differentiated between an "A-Strategy" which looks at all continuations until a fixed depth and a "B-Strategy" which cuts off certain lines. Today most strong programs implement some sort of asymmetrical search, using “extensions” (continuations of the search in promising moves) over a “brute-force” approach (Shannon’s A-strategy).

An important breakthrough to game theory came in 1958 when three scientists of the Carnegie-Mellon University in Pittsburgh (Newell, Shaw and Simon) made an important discovery. The search tree could be greatly pruned without affecting the final results. They called this the alpha-beta algorithm. This is a purely mathematical technique and works for all zero-sum games, not just chess. Alpha-beta produces exactly the same result as a full search, while looking at only about the square root of the number of positions otherwise required. This meant that the early computers were able to look five and six ply ahead. In the seventies the world's fastest computers were able to search seven ply deep and had achieved a respectable playing strength.

In 1968 International Master David Levy made a $3,000 bet that no chess computer would beat him in 10 years. The original bet was with John McCarthy, a distinguished researcher in Artificial Intelligence. Levy collected his 10 year bet by defeating CHESS 4.7 in Toronto with the score of 3 wins and one draw. The drawn game was the first time a computer drew an international master. [2]

Ken Thompson (one of the creators of UNIX) and a colleague at the Bell Laboratories decided to build a special purpose machine. The machine they called "Belle" was able to search at about 180,000 positions per second (the super-computers at the time were doing 5000 positions). Belle could go down eight to nine ply in tournament games, which enabled it to play in the master category. It won the world computer chess championship and all other computer tournaments from 1980 to 1983, until it was superseded by giant Cray X-MPs costing a thousand times more. Belle was the first chess program to attain a Master's rating in 1983.

In the middle of the eighties Prof. Hans Berliner, a computer scientist at the Carnegie-Mellon university, picked up where Ken Thompson had left off. Berliner, who had also been world correspondence chess champion, built a hardware-driven chess machine called HiTech. He and his graduate student Carl Ebeling developed a hardware move generator chip. With 64 chips in parallel HiTech narrowly missed winning the world computer chess championship in 1986 (it was won by a Cray).

In 1985, Hsu and other classmates in Carnegie-Mellon started working on a new chess chip design and some new ideas in the tree search (like the selective extensions) [3]. This team, with some changes in its members later went to IBM to create Deep Blue, the system that beat the chess world champion Garry Kasparov in the 1997 tournament. Contrary to widespread belief, Hsu and his team never worked under Prof. Berliner.

The Machine that Beat the World Champion: Deep Blue

Deep Blue is the chess machine that defeated the World Chess Champion Garry Kasparov in a six-game match in 1997. Many of the facts described here are taken from probably the best source about Deep Blue: the book written by its main contributor Hsu: Behind Deep Blue [3]. This book however doesn’t go deeply into technical particulars, but there are a few detailed papers available, and we have studied an extensive one by the builders of Deep Blue [4] as well as others like [5].

Books that describe Deep Blue in a less technical fashion are [6], [7] and [8].

Motivation and Philosophy

The initial motivation and philosophy for developing Deep Blue is clearly stated by Hsu:

Before us, many pioneers had made their contributions to the “Computer Chess Problem”. In 1949, Claude Shannon made his proposal on how to program a computer to play chess. Since then, thousands of computer scientists, engineers, hobbyists, chess players, and even commercial organizations had worked on the problem. Some wanted to use chess as an experimental tool to find out how human intelligence worked. “If one could devise a successful chess machine, one would seem to have penetrated to the core of the human intellectual endeavor,” said Allen Newell in one of the early computer chess papers. Other people viewed chess as a clear-cut, well-defined example of a complex problem. “Solving” chess could conceivably provide new techniques to solve other complex problems.

We approached the problem from a different direction. We, or at least I, viewed the problem as a purely engineering one. Since the late 1970s, it had been established that chess computers became stronger as their hardware speed increased. By 1985, when I started my small project that eventually become Deep Blue, the extrapolation from the experimental data indicated that a one thousandfold increase in hardware speed would be sufficient to produce a World Champion-class chess machine. Our project began with a simple goal, namely, to find out whether a massive increase in hardware speed would be sufficient to “solve” the Computer Chess Problem.


He goes to great lengths in his book to emphasize that he saw Deep Blue as a technical challenge and as purely an engineer one. He didn’t give too much thought about the philosophical or AI implications, writing strong assertions like this one:
A frequently-asked question about Deep Blue is, “Is it intelligent?” Garry’s accusations of cheating both during and after the 1997 match confirmed that Deep Blue passed the chess version of the Turing test. But Deep Blue is not intelligent, it is only a fine-crafted tool that exhibits intelligent behaviour in a limited domain. Garry lost the match, but he was the player with the real intelligence-Deep blue would never be able to come up with the imaginative accusations.

Hsu is also bothered about how the media and many authors portrayed the match against Kasparov as a “man vs. machine” event. He insists that the games should be viewed as man as a performer (the chess player) against man as engineer (himself or his team). The irony is that the “man vs. machine” catchphrase is the most widespread idea

Deep Blue and its Significance to AI

Hsu narrates [3] that when he came to Carnegie Mellon, two thirds of the school were basically devoted to AI, and the rest to electronic engineering. He started to work on a set of computer chips with other students because of their dislike of AI, and in his book he mentions several times his low esteem for AI, like for instance in this excerpt where he talks about his team mates:

Andreas had a very low opinion of AI research in general. Mike did not share the same opinion at first but, after he split with his first advisor, both he and Andreas referred to AI as bullshit. I did not go to the same extreme, but I had seen some so-called research in AI that really deserved the bullshit label.

Again we find ironical that some of the authors of Deep Blue have a low consideration for AI, while the machine they built is a showcase for AI. For instance in the main Internet newsgroup for AI, there’s a FAQ about what has AI achieved so far, and in the list they provide as answer they give Deep Blue as an example.

As a counterpoint, a paper by Dennis DeCoste [9] argues that the Kasparov vs. Deep Blue match has great significance to AI in several ways, and that the development of Deep blue represents a legitimate and in some ways even a role model, example of the future of AI research.

And also Joe Hoane, a member of the Deep Blue team expresses his opinions in the conference where the previous paper was presented, about the significance for AI of the famous match [10]:

In Hoane’s opinion, the significance of Deep Blue for AI was that it begins to address some of the “easier problems” in the field, related to the need for an effective representation of knowledge about a single problem. In particular, Deep Blue shows how the representation of domain knowledge is “vastly modified” as the result of the kind of computational resources allowed.

Hoane’s concluding remarks were optimistic for the field of AI: in his words, “AI has a green light. Many of the things which have seem impossible may not be”.

In the official IBM’s web site dedicated to Deep Blue [11], the question “Does Deep Blue use artificial intelligence?” is answered:

The short answer is "no." Earlier computer designs that tried to mimic human thinking weren't very good at it. No formula exists for intuition. So Deep Blue's designers have gone "back to the future." Deep Blue relies more on computational power and a simpler search and evaluation function.

The long answer is "no." "Artificial Intelligence" is more successful in science fiction than it is here on earth, and you don't have to be Isaac Asimov to know why it's hard to design a machine to mimic a process we don't understand very well to begin with. How we think is a question without an answer. Deep Blue could never be a HAL-2000 if it tried. Nor would it occur to Deep Blue to "try."


But afterwards in the same answer they acknowledge that it operates much like a turbocharged "expert system".
So as a conclusion we can see that there are many different opinions and we believe that at least Deep Blue has brought a healthy debate over its role in the AI field.

Description and History

Deep Blue is a computer chess system that combines hardware and software. It is a series of machines rather than a single system, but the most distinct versions are two: one which lost to Kasparov in 1996 and the one who defeated him in 1997.

The predecessors of Deep Blue are ChipTest and Deep Thought, developed at Carnegie Mellon University in the 1980s. In 1988 Deep Thought was the first machine to beat a Grandmaster in tournament play. These systems used a single-chip chess move generator that would search around 500,000 positions per second (ChipTest) to 700,000 positions per second (Deep Thought).

In 1989-90, part of the Deep Thought team (Anantharaman, Campbell, Hsu) was hired by IBM and they moved to the T.J. Watson Research Center. In late 1990, Joe Hoane replaced Thomas Anantharaman in the group. Deep Thought 2, also known as Deep Blue prototype, was the first result of this effort. Although the primary purpose of the system was as an intermediate step towards Deep Blue, Deep Thought 2 played in a number of public events from 1991 through 1995, including victories in the 1991 and 1994 ACM Computer Chess Championships, and a 3-1 win against the Danish national team in 1993.

The group at IBM decided to change the name of the system from Deep Thought to Deep Blue. According to Hsu, apparently when people heard of “Deep Thought” they were thinking of “Deep Throat”, a character in Nixon’s Watergate scandal to some, and a porno movie to others. So they looked for a more suitable name.

Deep Blue I was based on a single-chip chess search engine, designed over a period of three years. It ran on a 36-node IBM RS/6000 SP computer, and used 216 chess chips. Each chip searched about 1.6 - 2 million chess positions per second for a total search speed of 50 - 100 million chess positions per second. Deep Blue I played only six games under tournament conditions, all in the 1996 match with Kasparov that he won with a 4 - 2 score.

Deep Blue II was a significant improvement of Deep Blue I. First, a new chess chip was designed with a completely redesigned evaluation function, going from around 6,400 features to over 8,000. Many new features were added in response to specific problems detected in the 1996 Kasparov games, as well as in test games again Benjamin. The new chip also added hardware repetition detection, a number of specialized move generation modes (e.g., generate all the moves that attack the opponent’s pieces), and some improvements that increased the per chip search speed to 2-2.5 million positions per second. The second major change was to more than double the number of chess chips in the system, and use the new generation of SP computer.

Deep Blue defeated Garry Kasparov in the 1997 match by 3.5 – 2.5. For this victory the Deep Blue team was awarded the Fredkin prize for beating the human world champion in a regulation match.

The success of Deep Blue in the 1997 match was not the result of any one single factor. The large search capability, non-uniform search, and complex evaluation functions were all critical. However other factors also played a role, like the extended book and the evaluation tuning.

Deep Blue Characteristics

What sets apart Deep Blue from other chess systems is the massive use of parallel search and the off-loading of part of the search onto specialized chess chips. In this section we explore more these differences between traditional ideas in chess programs and Deep Blue.

From the point of AI, the most interesting problem would be the huge search space that is generated in a chess game. The average search tree is about 35100 nodes, since there are around 35 possible moves for a given position (average branching factor) and each player makes around 50 moves in an average game. The last advances in computer chess search algorithms are described in detail in [12], where topics like selective forward pruning are explained.

Deep Blue is organized in three layers. One of the SP processors is designated as the master, and the remainders as workers. The master searches the top levels of the chess game tree, and then distributes “leaf” positions to the workers for further examination. The workers carry out a few levels of additional search, and then distribute their leaf positions to the chess chips, which search the last few levels of the tree.

The most important characteristics that Deep Blue introduced are:

1. Large searching capability. Previous research in game tree search typically dealt with systems that searched orders of magnitude fewer positions that Deep Blue. It’s not clear what’s the best way to take advantage of this greater search power, but the Deep Blue search was guided by two principles:
1. The search should be highly non-uniform. It is well known that strong human players are able to calculate well beyond the depth reachable by a uniform searcher of any conceivable speed.
2. The search should provide “insurance” against simple errors, so all move sequences are explored to a reasonable minimum depth.
2. Hardware evaluation. The Deep Blue evaluation function is implemented in hardware and the time to execute is a fixed constant, unlike evaluation functions implemented in software that perform slower as it gets more complex.
3. Hybrid software/hardware search. The Deep Blue search combines a software search, implemented in compiled C code on a general purpose CPU, with a hardware search, encoded in silicon on the chess chips. The software search is extremely flexible, and can be changed as needed. The hardware search is parameterized, but the general form of the search is fixed.
4. Massively parallel search. Deep Blue is a massively parallel system, with over 500 processors available to participate in the game tree search.

The Chess Chip

The chess chip tasks are divided in three: the move generator, the evaluation function and the search control.

The move generator is implemented in an 8 x 8 array of combinatorial logic, which is effectively a silicon chessboard. A hardwired finite state machine controls move generation. The move generator computes all the possible moves and selects one via an arbitration network.

A good move ordering, preferably as close to best-first as possible, is an important consideration for efficient search in game trees.

The ordering of moves is made with a heuristic, considering special moves first, for example:

* Captures.
* Moving least valuable piece for capture.
* Moves to safer squares.
* Moves of pieces left unguarded.
* Moves to a central square.

An evaluation function is essentially a sum of features values that represent chess concepts, returning the score of the current position. Usually a signed integer is used to keep the score, being positive (adding) for the white side and being negative (subtracting) for the black side. A baseline is used, typically assigning a value like 100 or 200 to represent the material value of a pawn.

The features or functions that make up the evaluation function are weighted in a linear combination fashion to represent the relative importance of each feature. Chess programs are tuned-up by Grandmasters (like Benjamin and Illescas did for Deep Blue) that can study special positions and determine which side is better and why, thus adjusting the weights of the evaluation function members.

In simpler chess programs the evaluation function is static (the weights don’t change during a game), but more sophisticated systems (like Deep Blue) use static values set at the beginning of the game and also dynamic values that are scale during the search, based on the value and type of pieces on the board at evaluation time. For example, the weight for the king safety feature becomes less important in a node that is several moves away if we see that in that branch the queens are going to be exchanged.

The evaluation function implemented in the Deep Blue chip is composed of a
”fast evaluation” and a “slow evaluation” [13]. This is a standard technique to skip computing an expensive full evaluation when an approximation is good enough. The fast evaluation, which computes a score for a chess position in a single clock cycle, contains all the easily computed major evaluation terms with high values. The most significant part of the fast evaluation is the “piece placement” value (the sum of the basic piece values with square-based location adjustments). Positional features that can be computed quickly are also part of the fast evaluation. The slow evaluation scans the chess board one column at a time, computing values for the rest of chess concepts like square control, pins, king safety, pawn structure, development, trapped pieces etc. The features recognized in both evaluation functions have programmable weights, allowing their relative importance to be adjusted.

The search control part of the chip uses a number of state machines to implement null-window alpha-beta search. The advantage of null-window search is that it eliminates the need for a value stack, simplifying the hardware design. The disadvantage is that in some cases it is necessary to do multiple searches, for example when an exact score is needed.

Opening and Extended Book

The opening book in Deep Blue was created by hand, primarily by Grandmaster Joel Benjamin, with assistance from Grandmasters Nick de Firmian, John Fedorowicz and Miguel Illescas. The book consisted of only about 4,000 positions, because the team was very confident in the extended book. All the positions had been checked by Deep Blue in overnight runs, and the openings were chosen to emphasize positions that Deep Blue played well, like tactically complex openings. Prior to a game, a particular repertoire was chosen for Deep Blue, based on the match situation and the previous experience playing with that color. Curiously, none of the Kasparov-specific preparations arose in the 1997 match.

The extended book in Deep Blue is a mechanism that allows a large Grandmaster game database to influence and direct Deep Blue’s play when the game has stepped out of the opening book. The basic idea is to summarize the information available at each position of the 700,000 game database, and use the summary information to drive Deep Blue in the consensus direction of chess opening theory.

M. Campbell developed an ad hoc function that combines heuristic factors (like number of times a move has been played, strength of the player that play that move, outcome of the game, recentness of the move) in a nonlinear way to produce a scalar value as output.

The value of this output or bonus can be as high as half a pawn in some situations.

Endgame Databases

The endgame databases in Deep Blue includes all chess positions with five or fewer pieces (including pawns) on the board, as well as selected positions with six pieces that included a pair of blocked pawns. Each of the 30 general purpose processors in the Deep Blue system replicated the 4-piece and important 5-piece databases on their local disk. The remaining databases were duplicated on two 20-GB RAID disk arrays, and were available to all the general purpose processors through the SP switch.

The endgame databases did not play a role in the matches against Kasparov. In the 1997 match, only game 4 approached an endgame that required access to the databases, but the chess chips had recognized that the endgame that would have arisen was a draw.

Time Control

The Deep Blue – Kasparov games were played at a speed of 40 moves every two hours (per player), which is a tournament standard. The time control mechanism in Deep Blue is simple. Before each search two time targets are set. The first is the normal time target, set to approximately the time remaining to the next time control divided by the moves remaining, and allowing also for a time buffer to handle technical problems. The second time target is the panic target, roughly one third of the remaining time. Under a few conditions (like if the current evaluation has dropped sharply) Deep Blue goes into “panic mode” and expends more time trying to find a good move. In the 1997 match against Kasparov, Deep Blue went into panic mode only once.

Present and Future of Computer Chess

After the 1997 loss of Kasparov to Deep Blue there were some sense of restless; at the beginning it seemed like everybody thought that the “man vs. machine” contest was over, with machine being the clear winner. But then some voices started to contest this impression. For example, as Hallman relates [1]:

The chess world was out to correct the popular notion that Kasparov’s loss to Deep Blue meant that computers had conquered the game. IBM had canceled the Deep Blue program, but Kasparov arranged to play a program called Deep Junior, and Kramnik played a program called Deep Fritz in a match billed as “The Brains in Bahrain”. “I think that in the public eye the computer is already stronger that any chess player”, Kramnik said. “I am very eager to win and to prove that this is not the case.” He took a 1-3 lead against Deep Fritz, then lost two in a row, committing in the first game what was arguably the worst blunder ever made by a sitting world champion, and trying a doomed sacrifice in the second. “I was seduced by beauty,” Kramnik said. The match was drawn, and a month later, Kasparov played a similar match against Deep junior. Another draw.

To summarize the current state of computer chess, and to grasp their power, we can come down from the world of parallel supercomputers to the world of domestic PCs. Today's top PC programs like Fritz and Junior run at 500,000 and more positions per second. They are a match for all but the top 100 players in the world. In rapid chess only the top dozen or so can compete, in blitz chess (5 minutes per player per game) probably only two or three players could survive.

Chess and the Internet

Chess and computers have also been deeply affected by the advent of the Internet, and the network of networks is changing already the chess landscape. Most chess games are now played over the Internet, where every chess player, from aficionado to Grandmaster comes to play. The fast-paced nature of Internet has tilted the pace of the game from the standard 2*2 hours per game to blitz games (2*5 minutes) or even the craziest “bullet” games (2*1 minute games).

Internet is the ideal place to play chess; all the organization of the games (clock settings, enforcing the rules, setting of new ratings etc) is automatically taken care of.

Some new forms of chess (with different rules) have become popular. For example a form of “wild chess” is Fisher’s “randomchess”, in which from time to time the computer shuffles the positions of the pieces in the first row of the board. This is clearly only possible because a computer is present. Some other types of time control are also easily implemented, like for example the time arrangement that besides the fixed time gives the player extra time (like 5 seconds) per move.

Some other rules are also changed. We were surprised when we were playing a blitz game on ICC (Internet Chess Club, the most important Internet chess site) and having only a King, the opponent ran out of time. In all our “real-world” games, that means that we would win, but the computer server declared the game a draw since we didn’t have material to mate.

There are unofficial tournaments played over the Internet but the only hurdle to have real tournaments is the possibility of cheating. We think that if a reliable identification system (a biometric card for example) is implemented, then official chess tournaments over the Internet could become a reality. Although there are other problems with cheating besides authentication of identity, like for example, a player could consult a book or a computer in the middle of the game. Perhaps playing fast chess (like blitz) could inhibit this, because is hard to consult another source while you have to move so fast. Having a video-conference type of camera (webcam) doesn’t resolve the issue either, because players wouldn’t be allowed to leave their seats, or they could still run a program in the computer they are playing on.

The Kasparov-Fritz Match

As recent as this month (November 2003) we could witness the last “man vs. machine” episode, sponsored by X3D, a tech company that created the event to promote its 3D vision product. The match paired one of the strongest chess programs (the German Fritz) with the still strongest chess player in the world, Garry Kasparov.

Unfortunately some years ago there was a schism in the chess world and at least two organizations claim to have the World Champion, but still everybody knows that Kasparov is the strongest player on the world.

The good thing about this short match (only four games, too short to reach conclusions when two Grandmasters are playing) is that it shows some of the stereotypical strengths and weaknesses of human and computer when they play chess.

The match was a draw 2 – 2, with two draws and two wins for each player.

In the game that Fritz won, Kasparov basically blundered badly when he was running out of time and Fritz saw easily the winning continuation. So we see here the human weakness of overseeing something that is just one move away, something that no computer program would do.

In the game that Kasparov won, Fritz couldn’t see the long-term plans that Kasparov was making, so the machine played very passively in the closed position. Any intermediate chess player could tell the guidelines of what the computer side should do in that kind of situation, but Fritz just couldn’t see it in its search, nor could it understand the type of position it was playing. Basically Kasparov overran one side of the board for an easy win.

References

[1] J. C. Hallman, The chess artist, St. Martin Press, 2003.

[2] David Lavy, Chess and Computers, Batsford, 1976.

[3] Feng-Hsiung Hsu, Behind Deep Blue, Princeton university Press, 2002.

[4] Murray Campbell, A. Joseph Hoane Jr., Deep Blue. Feng-Hsiung Hsu. Artificial Intelligence 134, 2002.

[5] Murray Campbell, Knowledge Discovery in Deep Blue., Communications of the ACM. November 1999 / Vol. 42, No. 11.

[6] Bruce Pandolfini, Kasparov and Deep Blue: The Historic Chess Match Between Chess and Machine, Fireside, 1997.

[7] M. Newborn, Kasparov Cersus Deep Blue: Computer Chess Comes of Age, Springer Verlag, 1996.

[8] M. Newborn, Deep Blue, Springer Verlag, 2000.

[9] Dennis DeCoste, Deep Blue Versus Kasparov: The Significance for Artificial Intelligence. Papers from the 1997 AAAI Workshop.

[10] Robert Morris, Workshop Summary. Kasparov vs. Big Blue: The Significance for Artificial Intelligence. CS Program, Florida Institute of Technology. AAAI 1997.

[11] IBM Research. Deep Blue FAQ: http://www.research.ibm.com/deepblue/meet/html/d.3.3.html

[12] E. A. Heinz, Scalable Search in Computer Search: Algorithmic Enhancements and Experiments at High Search Depths, Friedrich Vieweg & Sohn, 1999.

[13] J. H. Condon, K. Thompson, Belle chess hardware, Advances in Computer Chess 3, Pergamon Press, Oxford 1982.