Voder-Vocoder

The Log of Hal Canary

Navigation: Home | THE LOG | Log Archives | Resume | Contact Info | Public Key | SSL | Math Applets | Feedback Form | Site Map | WP Backend | RSS2 | Atom

Archive for 2006-11

Linux F/OSS Gaming Roundup 2006

I wanted to test out the response time of my new LCD monitor, so I downloaded some games for my Fedora Core 6 system.

All of the games I am reviewing are:

1) Free/Open Source Software, including the game data files. This is a fine distinction that I should explain. For example, Id Software has released the game engines for Doom and Quakes 1, 2, and 3 under the General Public License, but they did not release the game content under a new license. Qfusion is a derivative of the Quake2 engine that is FOSS, but the game Warsaw that makes use of the Qfusion engine comes with proprietary game content, so Warsaw as a whole is not F/OSS.

2) In the Fedora Extras repository. This guarantees that the game will run on my system and if I have a problem, I can file a bug against it at bugzilla.redhat.com. Installation is this easy:

sudo yum install supertux supertuxkart \
     ppracer prboom freedoom xpilot-ng

Supertux 0.1.3

Supertux is a game patterned after Super Mario Brothers. If I had a joystick similar to the NES controller (like maybe a Gravis (I used to have one, but I fried it while hacking my USB controller card.)), I’d probably be happier with this game. Or if it was 1986. Then I’d be super psyched about this game and every day all summer I’d go over to Wilson’s house and play against him until I learned the game. This game is somewhat monotonous. Setting it in Antarctica limits the color pallet.

[screenshot]

SuperTuxkart 0.2

Super Tux Kart is a homage to Mario Kart. It features a similar split-screen multiplayer mode. It might be fun to plug two or four USB gamepads into my USB hub and play with friends.

PPRacer 0.3.1

PlanetPenguin Racer is the current version of what used to be called Tux Racer 0.6.1, with a new development team. Not much has changed. It works perfectly on any accelerated video card, including my Radeon 9200+F/OSS driver.

If you’ve never played it, this is a downhill racing game. It’s somewhat fun and fairly challenging.

[screenshot]

PrBoom v2.4.7 / FreeDoom 0.5

PrBoom is the engine, derived from the Doom engine. FreeDoom is the F/OSS game content for that engine. The graphics for this aren’t bad on my Radeon 9200 (with the free radeon driver) as long as you enable the openGL mode.

prboom -vidmode gl

Caveat: they aren’t bad compared to, say the original Doom running on my 386 back in the day. They are primitive compared to quake3 or doom3 but I have yet to get those games to run under the F/OSS driver for my video card. But prboom -vidmode gl is almost as good as OpenGL quake2.

I hate to say it, but even after all these years this is a fun game. Who doesn’t like to kill demons with a shotgun?

[screenshot]

xpilot-ng-sdl 4.7.2

XPilot is a fun online multiplayer game. If you played SubSpace on Windows, you’ve seen a similar game. It’s a Multiplayer Online Third Person Shooter (MOTPS). XPilot came out in 1991, had primitive graphics, and only worked on Unix/X11. In 1997, SubSpace was written for Windows: it had much better graphics and had been written from scratch. In 2000, the XPilot NG project was started to update the XPilot graphics system to use SDL/OpenGL (the cross-platform equivalent of DirectDraw/Direct3D).

[screenshot]

Other

There are two multiplayer games I want to test out at some point in the future: OpenArena and Tremulous, both bases on the GPLed Quake3 engine. Tremulous can be downloaded from Fedora Extras. OpenArena cannot yet.

Hal Canary | Computers & Code | 2006-11-30 12:11:04 EST
Permanent Link | Comments Off

telnet to port 80

To check out http headers, you can use telnet, but I’ve found it easier to use nc (netcat):

H="en.wikipedia.org"
G="/"
echo -en "GET $G HTTP/1.1\r\nHost: $H\r\n\r\n" \
    | nc $H 80

Here’s a script:

#!/bin/sh
#DTPD#
if [ "$#" -ne 2 ] ;  then
  echo -e "useage:\n  $0 HOST RESOURCE"
  echo -e "for example:\n  $0 www.google.com /"
  exit 1
fi
echo -en "GET $2 HTTP/1.1\r\nHost: $1\r\n\r\n"
echo -en "GET $2 HTTP/1.1\r\nHost: $1\r\n\r\n" \
  | nc $1 80

Hal Canary | Computers & Code | 2006-11-30 08:56:31 EST
Permanent Link | Comments Off

just utterances

The first scholars to emerge with a specific culprit in hand were Betty Hart and Todd R. Risley, child psychologists at the University of Kansas, who in 1995 published the results of an intensive research project on language acquisition. Ten years earlier, they recruited 42 families with newborn children in Kansas City, and for the following three years they visited each family once a month, recording absolutely everything that occurred between the child and the parent or parents. The researchers then transcribed each encounter and analyzed each child’s language development and each parent’s communication style. They found, first, that vocabulary growth differed sharply by class and that the gap between the classes opened early. By age 3, children whose parents were professionals had vocabularies of about 1,100 words, and children whose parents were on welfare had vocabularies of about 525 words. The children’s I.Q.’s correlated closely to their vocabularies. The average I.Q. among the professional children was 117, and the welfare children had an average I.Q. of 79.

When Hart and Risley then addressed the question of just what caused those variations, the answer they arrived at was startling. By comparing the vocabulary scores with their observations of each child’s home life, they were able to conclude that the size of each child’s vocabulary correlated most closely to one simple factor: the number of words the parents spoke to the child. That varied greatly across the homes they visited, and again, it varied by class. In the professional homes, parents directed an average of 487 “utterances” — anything from a one-word command to a full soliloquy — to their children each hour. In welfare homes, the children heard 178 utterances per hour.

(source)

Hal Canary | Education | 2006-11-26 08:38:16 EST
Permanent Link | Comments Off

Dear 1999, please take your music player back.

#!/bin/sh
#DTPD#
M=/tmp/Musiclist
DIR=/home/music
find $DIR -name "*.mp3" > $M
mpg321 --list $M --random

Hal Canary | Computers & Code | 2006-11-23 21:48:30 EST
Permanent Link | Comments Off

postponing ntpd start

Yet another Linux hint:

Because ntpd (Network Time Protocol Daemon) takes some time to synchronize with the time server, I don’t start it on boot:

$ sudo /sbin/chkconfig ntpd off

But I do start it later on, as a background process, so I can go ahead and log in before it finishes. One could do this with any startup procedure that slows you down.

##  Line from /etc/rc.local
nohup /etc/init.d/ntpd start > /dev/null 2>&1 &

Hal Canary | Computers & Code | 2006-11-22 09:28:16 EST
Permanent Link | Comments Off

In honor of Telemonian Ajax, apparently

Read Head Rush Ajax yesterday. If you already know Javascript and the DOM, all there is left to learn about the magic of Ajax is the XMLHttpRequest / Msxml2.XMLHTTP / Microsoft.XMLHTTP functions, which aparently all work identically.

/* ajax-http-request.js */
function newHttpRequest() {
  var request = null;
  try {
    request = new XMLHttpRequest();
  } catch (trymicrosoft) {
    try {
      request = new ActiveXObject("Msxml2.XMLHTTP");
    } catch (othermicrosoft) {
      try {
         request = new ActiveXObject("Microsoft.XMLHTTP");
      } catch (failed) {
        request = null;
        }
    }
  }
  return(request);
}

Given that simple library file, you can do this:

/* some-other-javascript-file.js */
var req = newHttpRequest();
if (req == null)
  alert("Error creating request object!");

function dealWithResponse() {
  if (req.readyState == 4) {
    if (req.status == 200)
      doSomethingWith(req.responseText);
    } else {
      throwAnErrorOrSomething();
  }
}
req.open("GET", "someurl", true);
req.onreadystatechange = dealWithResponse;
req.send(null);

And that’s all you really need to know to do Ajax.

Hal Canary | Computers & Code | 2006-11-17 18:22:32 EST
Permanent Link | Comments Off

Kiniry?

There’s a guy on the local NPR affiliate down here named Michael Kiniry. He’s probably a distant relative.

Hal Canary | Life | 2006-11-07 09:11:49 EST
Permanent Link | Comments Off

Monitor advice.

I’ve got an ancient computer monitor from 1999. It’s a 19″ CRT that takes up a large amount of space on my desk. I’m thinking of buying a new LCD monitor. I’d want something with at least the same amount of screen area.

What is state of the art these days?

Concerns:

1) Image quality for games and movies. What kind of response time do I need?

2) Should I go for 1440×900 or 1280×1024? Which is best for productivity? For movies, the wide screen makes more sense.

3) How long should I expect a good LCD screen to last?

4) Is an analog connection good enough? How much does a DVI connection improve things? Is it worth the extra moneys?

5) How much should I expect to spend?

Hal Canary | Computers & Code | 2006-11-06 11:58:04 EST
Permanent Link | Comments Off

Bandwidth of a Netflix account

Assume you watch a movie on day 0, mail it on day 1, it gets processed on day 2, and you get a new movie on day 3. Ignore weekends. That is 1 DVD for every 3 days.

Your downspeed bandwidth is for a single-layer DVD is

4.7 x 10^9 bytes / 3 days
= 4700000000*8/3/24/3600 bits/second
= 145062 bit/s
= 145 kbit/s

That, of course, sucks compared to my 1.5 Mbit/s DSL connection. On the other hand, it is three times better than a 56 kbit/s modem.

* * *

A more favorable look: I have a three-disc subscription. 435 kbit/s. Assume all DVDs I get are double-layer. 787 kbit/s. Let’s also count the upstream return bandwidth. 1574 kbit/s. Not too shaby.

Conclusion: A significant percentage of the bandwidth to my house comes through the US Postal Service.

Hal Canary | Life | 2006-11-05 16:46:33 EST
Permanent Link | Comments Off

Copyright 1997-2007 by Hal Canary.
mailto: h3 at halcanary dot org
xmpp:halcanary@jabber.org
aim:halwcanary
http://halcanary.org