« January 2006 | Main | March 2006 »

February 2006 Archives

February 3, 2006

Somebody Should Be Blamed!

Classic. A cruise ship sank off the coast of Egypt. In a newspaper article the next morning, the following quote from a teacher waiting for word of his cousin who had been a passenger appeared:

"How can they put all these passengers in such an old ship that was not fit for sailing?" he asked, adding "somebody should be blamed."

Somebody should be blamed. If only we all had such clear-headed responses to tragedy, huh? And thank goodness we have the news media to bring us these gems of insight.

In other news, fringe Muslim groups are upset over some 12 political cartoons that appeared in a Danish newspaper four months ago. Reports of the rage and frustration of these groups pervade the news this morning, but not one source has the cartoons. Gutless.

That's my rant for the morning. For the month.

February 8, 2006

Google and Flash

Every semester, I get a student challenging my assertion that Google doesn't really handle Flash well. "Macromedia released an SDK, and they've worked with Google!" they shout.

It's always the Computer Science kids who say this. And they're technically right, Googlebot (and the other SE crawlers) can parse Flash and read it.

But Google doesn't care about what it reads in the Flash! SE's want to see what people see. And there is no way for them to verify that people will actually see any given piece of a Flash file. It's just too complex.

A recent example highlighted this again. For a Google 'site' search of my new corporate Overlord, the Flash movie on the home page got its own entry:

================
[FLASH] w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w ...
File Format: Shockwave Flash
w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w ...
innuity.com/userimages/innuity_home_center.swf - Similar pages
================

Is that how you want your site to show up in the search engines? No? Very good. Then don't rely on Flash. Do it the right way -- hybrid HTML with judicious Flash insets, with all content duplicated in HTML elsewhere on the page.

In other news, Dido is still some really great music to kick on in the backround at work. Relaxing, electronic grooves to ease the pain of programming and solving a hundred random problems each day. Ahh...

February 10, 2006

Major League Baseball and Hacking

I know nothing about MLB, except that most of the players are better than the kids playing Little League, most of the players get paid well, and most of the players get to wear cool uniforms. (I don't, personally, think the uniforms are actually that cool, but enough people do.)

One more small fact, and this is the most significant one for this essay: most major leaguers don't secretly disguise themselves as children and play Little League games so they can absolutely blow everybody away with their amazing skill.

Let's jump from this analogy to the actual subject at hand: hacking in online games. Just for fun, I downloaded a "radar" hack that would let me see through walls and know where all my opponenents were at all times. This by no means makes me a hacker -- rather, it earns me the title any real hacker would hurl at anyone who stooped to such cheating: script-kiddie.

That said, the radar hack did give me a significant advantage over the other players. And there are more complex, valuable hacks, like the "aimbot" that turns any player into a perfect killing machine, unable to miss and always firing the instant an enemy appears.

The people who write these scripts are good programmers, applying their talents in creative ways to use meta-data and intercept network traffic and play a very interesting game.

But they're playing a very different game than the one most of the other players are trying to play. Why do they do it?

For the glory and personal satisfaction of winning. But the only place where they can get that recognition is in the lower game, the basic, unenhanced game. And of course, they tromp everybody to the point where it's no longer fun for anyone.

What if there were no Major Leagues? If every good baseball player could earn no reward for being great except by playing in the Little Leagues? We'd probably start to see some of them coming in and ruining the game for everyone else.

That's the situation these hackers face. The only popular games, the only activities with real 'status' attached are the unenchanced games. The rules-based games. So they exercise their transcendant power and exert it in the kiddie realm of lunchtime shoot-em-up games.

When the game shifts, and becomes about changing the rules -- it's a different game. Somebody needs to provide that. A forum for programmer games. Competing bots and computer-assisted humans duking it out in games designed for that express purpose.

Maybe (obviously) the most practical solution right now would be to create a TacOps server (or whatever game you like to play) that is labelled and promoted expressly for cheaters. May the best cheater win!

Where would that take games? Beyond simply writing faster aimbots and better radar assistance, what sort of levels and challenges would evolve from that? How could a game engine be designed to best allow for creative hacking? The traditional server-client model is designed to resist hacking. A distributed world, where each client had input into the whole, so each could introduce modifications that would alter the game.

Would it be better to shrink myself to a single pixel? Or make myself bigger than the entire level, so I'm looking down on it from a mile above? Or remove gravity, or replace all the air with poison, or have all the walls work like Star Wars garbage compactors? Or make everyone's guns self-destruct? Or change the end-game goal to be the first one killed, instead of the last one standing?

It would be an incredibly dull game for normal people to play. But the right kind of people would thorougly enjoy it, I think.

February 11, 2006

Bandwidth Miles

How should we charge for Internet access? Recent discussion has focused on the idea forwarded by some US ISPs of charging content providers for 'premium' access to the network. If Google paid BellSouth for premium access, their packets would get priority over Yahoo or MSN, for instance, under this plan.

The response has been an outcry in favor of the "democratic net," which supposedly refers to what we have now, where all packets are neutral in terms of network priority. The neutrality of packets makes for some interesting Computer Science Geek discussions, but in practical terms, it's not the whole answer either.

Neither of these approaches address the real issue that will, ultimately, confront the Internet: end consumers aren't paying actual rates based on their usage. Bandwidth alone is only half of the cost. Distance matters, too. If I download a 50 MB file from my neighbor who is on the same ISP as me, that uses a certain amount of resources. If I were to download that same file from my friend in Japan, it's going to use a lot more resources -- the resources of several companies along the way.

We've seen steps to minimize this in caching systems employed by various ISPs and the mirroring system many popular download sites use to encourage people to grab files from closer sources. But these are voluntary efforts, not associated with the economic hammer.

The most fundamental shift that will hit the Internet is when pricing changes to reflect actual consumption of resources.

That what I think, anyway. So I'm not worried about the present discussion over packet neutralty and priority. And you shouldn't be either. Implementing that would just lead very quickly to the proper bandwith-distance pricing model that will make the Internet more stable overall.

February 15, 2006

Search Engine Optimization

Here's the slides for a presentation I gave at the More Good Foundation (http://moregoodfoundation.org) monthly Webmaster Roundtable. It covers the basics of SEO, with a heavy emphasis on the principles that underly the industry. Too many people get caught up in the tactics and details. That leads to stress and trouble with every algorithm change, and all too often it also leads to sites getting delisted.

A good webmaster needs to understand what the search engines want to be able to deliver it to them. That's what this presentation was designed to help with.

Search Engine Optimization

Feel free to contact me with any questions. That goes for all five of you who read this blog. :o)

February 16, 2006

301 Redirecting 404 Errors on a New Site

I ran into a weird problem today, with a client who built a new website on top of an old one. Of course, the standard SEO advice is to keep all your filenames the same, as much as possible, and put 301 redirects when you have to move content. But this client just wanted a new site, and didn't care about (and didn't really have) any meaningful rankings to begin with.

So the old site was deleted and the new site built. The new site had all the magical SEO sparkles, but after a month it wasn't doing as well as we thought it should be. MSN and Yahoo were okay, but Google was lagging. Why?

I checked in Google (site: command) and saw that all the old pages were still listed along with the new. So to Google, this site was about 90% 404 errors and invalid content. Not looking so hot. I recommended to the consultant working on this client that he set up 301 redirects on all the old pages to the index of the new site, just to clean them out of Big G's index.

Problem solved! I'm a genius.

At least, until the consultant and the programmer working with him came back and asked the shocking question: how do you get Apache to serve all 404 error pages as 301 redirects to a new index page?

It had seemed so elegant a solution, I never worried much about the implementation. But now it was back, haunting me.

The easy way, of course, is to set up something in the htaccess file like the example TamingtheBeast.net lists:

redirect 301 /old/old.htm http://www.you.com/new.htm

But we had something like 1000 old URLs that weren't in a simple set of directories or anything, and they all had long querystrings and -- I would have had to create 1000 separate entries in the file, and I couldn't even find all the old names. Not an option.

Some poking around quickly revealed that nobody had really done this before, for this purpose. I found some sites that actually talked about serving 404s with redirects, but that didn't include the 301 I needed for search engines. And I found a couple places that talked about using mod_rewrite with a 301, but that didn't include the pointer back to the index! (So Google would see that the page had moved permanently, to exactly where it already was, but now with duplicate content from the index -- which would get the site blacklisted. Not ideal.)

As I thought about this, I also realized that we didn't really want every 404 page to 301 back to the index. That can get really confusing for people. So I started looking at the missing pages, to see if there were some consistent attribute about them that I could use to mod_rewrite before throwing a 404 error.

Fortunately, the old site had been written in ColdFusion. Every old page had a ".cfm" in it, and the new site was all php. So I wrote a mod_rewrite in the htaccess file that would use regular expressions to find any ".cfm" and load up a new php script I wrote instead. The php script sent a standard 301 redirect with the index target.

Here's the files I wrote, mostly for my own future reference:

====================
.htaccess modification:
====================
RewriteEngine On
RewriteRule \.cfm http://www.NEWSITE.com/cleaner.php

====================
cleaner.php
====================
Header( "HTTP/1.1 301 Moved Permanently" ); Header( "Location: http://www.NEWSITE.com" );

How cool is that? I'm a genius.

February 20, 2006

Star Wars: Knights of the Old Republic

KOTOR is a fun, Star Wars game that I've been playing through recently. As an example of virtue ethics, the game has your character moving between the light side and dark side of the force as you make choices. One part of the game requires you to save an alien who is being attacked by a couple of drunk humans -- do you let them kill the alien, or save the alien and then demand a reward, or do you refuse the reward and walk away happy? Each choice has a different effect on your character.

Of course, each choice also carries other outcomes -- some get you more XP and some more money. Where do your priorities lie? Or how do you feel like playing the game?

Anyway, I felt like playing the game quickly and without messing around with some of the stupid ways to earn money. So I saved my game a couple times and ran a filecompare on the different versions of my saved game files.

MONEY CHEAT

If you open SAVEGAME.sav in whatever directory corresponds to the save game you wish to edit, type FFFF at offset 0x00000d18 and 19. That gives you 65k credits. Should be enough to get you any grenades and health packs you might need.

The nice thing about this cheat is that it doesn't trigger the "cheat used" flag that otherwise is activated. (If you use any of the in-game cheats other sites may talk about.)

The other nice thing about this cheat is that I worked it out myself, so it counts as a meta-cheat. Changing the rules of the game by taking advantage of weaknesses in the architecture. My favorite way to cheat.

February 22, 2006

Olympic Madness

Striving for the best, reaching for the gold, performing with your whole heart -- awesome stuff. The Olympics are a fantastic place to see people achieve excellence. It is far better fare than most of the scripted (or abominably unscripted) rest of American TV. But I want to note, for the record, two things that continue to irritate me as I watch the games:

1. The nationalities of many, key athletes is highly fluid
2. The games generate thousands of losers

Fluid Nationalities

America's sweetheart, Tanith Belbin, thanked her legal team when she won her medal. A Canadian by birth, she had received her US citizenship just weeks before the games. The Russian team that ended up winning the ice dancing gold was truly Russian -- but they practiced in facilities in New Jersey. One of the Italian skaters, competing now in her home territory, was born in New York and raised in the States. She came back to Italy once she learned the games would be played there.

At an individual level, these changes are no problem, but when commentators begin tallying medals 'earned' by various countries, it becomes almost ridiculous. Wealthy country attract better athletes, whether by better training facilities or better sponsorship opportunities, and poorer countries lose their stars. The nationalism of the games should fade right along with the rigor of citizenship.

Thousands of Losers

252 medals to be awarded, 2500 athletes participating. That means, from all these amazingly talented people, the Olympics will generate 2248 losers. Every one of them accomplished, dedicated people.

Of course, my wife's immediate, insightful response was, "So what do you want? Individual accomplishment medals for everyone?"

Yeah. For starters, I guess. "Everyone's a winner!" But more, I want to see games and contests that highlight the value of working together. Properly done, business should work that way. I dunno. If this is a theme, I'm still just developing it. By the time I'm 80, expect to hear me spouting a fully developed framework.

In the meanwhile, look for my new site at gametogether.net. I'll try to develop some ideas there.

About February 2006

This page contains all entries posted to Tom Dalton :: Doer of Good in February 2006. They are listed from oldest to newest.

January 2006 is the previous archive.

March 2006 is the next archive.

Many more can be found on the main index page or by looking through the archives.