World of Warcrack

World of Warcraft teaches the wrong things, is a little article on gamasutra that really caught my eye. It's not extremely well written, the author tries to set it around an enumerated list that turns into a mindless rant, but it's worth listing the two major things that WoW gets wrong:

  • Investing a lot of time in something is worth more than actual skill.
  • Group > Solo

David Sirlin talks about the side of gaming that's very close to my heart - getting good at games. I played pinball for a long time, and I got quite good at it - but I walk up to occupied tables and see masters at work. The kind of pinball player that I could quite easily call sensei with a straight face.

Do these people exist in World of Warcraft? I've seen quite a few good WoW players, and the one thing the good ones have in common is the ability to spend lots of time on the internet.

There are alternative worlds that value skill and knowledge. If I wanted to play with lots of other people on the internet, I would go to one of those alternatives.


Incoming python variant

Matt Palmer wrote up a ruby thingy, I'm going to quote him verbatim...

A method to find all files in a directory INCOMING which end with .changes, prepend INCOMING to the matching files, and return the results as an array (desk checked, but not run in anger yet):

def changes_files
Dir.entries(INCOMING).find_all { |f|
f =~ /\.changes$/ }.map { |f| File.join(INCOMING, f) }

Line noise it may be, but I'll be damned if it isn't succinct line noise.

I have a competitive streak a mile wide, so I feel compelled to present the Python version of this little doohickey.

import glob, os
def changes_files(incoming):
  return [os.path.abspath(f)
          for f in glob.glob(os.path.join(incoming, '*.changes'))]

I think I captured the specification, but I didn't implement the algorithm the same way. Also not used in anger, only very trivially tested. :)

On reflection, if relative paths are okay too, then this will work fine too:

import glob, os
def changes_files(incoming):
  return glob.glob(os.path.join(incoming, '*.changes'))

'rati tags:

Little Known Fact of the Day

The unix utility grep is an essential part of the toolkit of any shell denizen, I can't imagine living without it.

The origin of its name is from the beginning itself. From ed, the editor.

grep is an abbreviation of the ed command:

:global/regular expression/print

or, more succinctly expressed as:


Vim, vi, etc, still have the same commands, and the same syntax works today.
'rati tags: vim


Slight Discomfort

To The Gnome Project.

May The Wrath Of The Fleas Of A Thousand Camels Be Visited Upon Your Collective Behinds, For The Wonderful And Glorious Design Decision Of Making All Gnome Terminals Run In One Process.

On FedoraCore2, I've decided to move to 'aterm', on the basis that a) it works, and b) was the only terminal emulator that didn't make me want to throw up after doing valgrind --tool=memcheck $TERM.


technical documentation

I really wish us open source geeks would get a clue and do better technical documentation, glyph linked to his girlfriends Amazing tutorial on setting up a development environment for the twisted and divmod.

Well, specifically, a Windows development environment. From "How to install SVN" to "How to get the Emacs customisations up and running." With screenshots of more technical things (Yes, to a windows user, using cmd.exe to install a python lib using distutils is technical, there's no GUI for this).

Colour me impressed. I especially like how no assumptions are made about the existance of tools like "something to decompress bzip2." Far too many tutorials I've suffered through have had glaring omissions of basic tools that you are assumed to have.

rati' tags: , ,


Great Engineering Netgear!

This was absolutely astounding. I bought a WGR614 from umart today, brought it home, plugged it in, configured my router so that I could route to the network (necessery to get to the web interface), then attempted to get to http://admin:password@ in my browser. javascript redirects to http://www.routerlogin.com/welcome.htm

http://www.routerlogin.com/welcome.htm 302 redirects to http://www.netgear.com/welcome.htm

http://www.netgear.com/welcome.htm is a 404.

Great work netgear!

if("1" == "1")

Going to seems to work. I'm going to go finish setting up my router now.

On review of the docs, apparently netgear routers hijack the DNS for routerlogin.{com,net}, which is insane. Blah.

technorati tags: , ,


Changing Python Process Titles

Davyd wanted a way of changing process titles under python.

I've always used proctitle, which can rewrite the sys.argv, aka, char**argv array. And was quite aggravated that I didn't know how to change the process command name, which is what killall uses to kill processes.

So after being shown how to do it in mono, I found the docs, wrote it in C, put it in proctitle's _proctitle.c and created a patch for 0.0.2.

Now I can stop using pkill -f and go back to using killall. :)


Time to sit down and learn?

Something I've completely neglected to do for a few years, is learn a new language.

In the past, I would flit between languages bit. I went from LOGO to Pascal to C to Javascript to Perl to Java to Haskell to PHP to Python.

At python is where I've stayed. I did PHP for 4ish years, for work, and by the end of it I was saying very rude things about those who develop the language. For about 2 years of that, I was a secret python developer. It was just such a nice language in comparison, and I was so glad to leave that job and start where I am right now.

Now that I've been where I am for more than a year, and especially now that I've been enjoying programming for a bit, maybe it's time I learned a new language.

There's this smalltalk thing, which is apparently quite good, and there's a free implementation. I'm seriously tempted to sit down and see if I can make it useful.

technorati tags: , ,


Penguin Gloves

For bath time, in the linux-only household:

Aren't they cute?

My mother-in-law got wind of "Stephen Likes Penguins" a while back, and managed to get me, in no particular order:
  • A tall penguin Beer glass
  • A penguin shotglass
  • A penguin childrens book, with penguin stuffed toy
  • A penguin polo shirt
  • A penguin calendar
  • A penguin tea-towel
I've managed to convince her I don't like penguins all that much... It's a bit much getting showered with all those gifts...

I could use another wall calendar though.