Category Archives: Other

Upcoming This Week (PSX64 and Gruepal)

Just a heads up, I’ve been off the radar the last week with Christmas stuff going on, but I’m gearing back up to get some work done and tutorials out.

By the end of the week I should have two things ready to go –

1. Gruepal is up and running on another (faster) server. It’s shared webspace but the processor is a hell of a lot faster. If you are interested in helping test out some interactive fiction, shoot me a comment/message and I’ll send you back a username and password for when the site is ready.

2. I’m going to be adding some Paypal cart functionality to purchase a PSX64 on the Synthetic Dreams site. After sales at the TPUG convention, I have about 15 in stock. Once those 15 go I’ll make another batch.

Plus some other random goodness. Hope everyone had a good holiday!

More Website Cleanup

I’m becoming more and more active on this blog – I get quite a bit of enjoyment from doing it. I hope you guys enjoy reading it too. Along with the more frequent posting, I want to ramp up putting some more tutorials on here, but I wanted to make things a little more user friendly first.

Visuals

I made the margins slightly larger and made the text a big larger as well – it’s not a huge difference, but it does make reading articles a little easier. Alongside getting rid of the large left-hand ad last week, I think this has helped a lot.

Recent Posts

I also redid the recent posts list a bit. It used to list 3 over in the side bar – now it lists 5 on the main page, with an easy link that gives an abbreviated view of all posts, paginated. This also allowed me to move categories up in the side bar and organize them a bit better.

Feel free to shoot me a note if there’s anything else you’d like to see on the site. Thanks!

Spotlight: Alan Turing

Hanging on the wall of my cubicle at work, I have quite a number of geek related items, from web comics involving SQL jokes to a detailed mechanical diagram of K-9 from Doctor Who. Always in my field of vision, though, are some small photos of my computer science heroes. It’s not surprising that many non-geeks haven’t heard of these people – but it is sad. Most people know media stars like Tom Cruise, Eminem, and Michael Jordan, who are rightfully talented in their fields – but mention John von Neumann, Max Planck, or Kurt Gödel, and most won’t have heard of them. This is a shame, because it is the mathematicians, scientists, and engineers of history who have made many things we now enjoy possible. Given that we live in a place that gives an average salary of 2.7 million dollars to baseball players, it’s nice to at least recognize the people that make an incalculable impact on life.

The Man, The Legend

One of these people, regarded as the father of Computer Science, is one of my biggest heroes, and goes by the name Alan Turing. Born in 1912, Turing started life off in a world that had never seen a finished computer. The field of mathematical logic was new and fresh, with the work of mathematicians like Boole, De Morgan, Peano, and Hilbert (among others) paving the way for computation theory and algorithms.

Alan Turing WWII Work

Turing made contribution after contribution not only in this new field of Computer Science, but also to the world as a whole. During World War II he was a cryptanalyst, designing a device and doing work that would decipher encoded German communications, giving the Allies a key advantage.

Artificial Intelligence

Turing also had a keen interest in the ideas of computation and intelligence, and how the two related, ideas that would later found the area known as Artificial Intelligence. He developed the Turing Test which addresses, at its roots, that there is no distinction between intelligence and something that acts truly intelligent. It was a concept that is still not even truly accepted today by all; an effort in logic to dispel the idea that intelligence is somehow ineffable.

The Turing Machine

From pattern work with the mathematics of biology, to theory of computation, Turing gave more and more to the community. One of his biggest contributions (and my favorite part of his work), an idea that continues to pervade every inch of a computer from hardware to operating system to software, from a word processor to a video game emulator, is that of the Turing Machine. Some (like myself) would go so far as to say it pervades every aspect of the Universe.

More on This Concept

To give some background, the idea of a Turing Machine is a simple machine that can perform algorithms to compute a value. The idea of a Universal Turing Machine is one that can compute any Turing Machine, and hence anything computable, including OTHER Universal Turing Machines. This is what a computer is – it is a device that can, given enough time, compute anything that can be computed. Not only that, but since computers are themselves computable (i.e. computers work algorithmically), any computer can emulate any OTHER computer. This is proven all the time, from video game emulators, to Java, .NET, and virtual machines (including my Gruepal project!). The Turing machine speaks to the heart of Functionalism, which is that it is not the “stuff” that matters, but the function the “stuff” performs. E.g. you can make a calculator out of silicon chips, steam through pipes and valves, or virtually on a computer (e.g. doesn’t physically exist at all), but it still adds 2+7 the same, as long as the functionality is intact.

I won’t jump too far off course from Turing, but I can’t stress how important this concept is, and one that I guarantee we will continue to discover more about in the decades to come. In a sense, the human brain is very much a Universal Turing Machine (though fallible), as you could, mentally or on paper, emulate any computer or machine algorithmically – as many programmers do constantly every day in their line of work. And with the Universe giving rise to everything, all Turing machines, and having a tendency to recurse, there is a good chance (some will say), that this whole great ball of wax is just one big Universal Turing Machine recursing over and over into other Universal Turing Machines. It is one of the reasons I tell people that Computer Science has more to do with the Universe itself than any pile of microchips.

The Final Years

Regardless of how deep or far the philosophy goes though, there can be no denying the role Alan Turing played in the mathematics behind computability and computers. His absolutely life changing work was rewarded by his government giving him the choice of imprisonment or estrogen injections when it was found out he was homosexual. Homosexuality was still illegal in the UK at this time, and though he had literally helped save the world only a few years before, this meant nothing in the light that he was attracted to men. After the effects of the hormones and ostracism from the life he knew, he committed suicide by eating an cyanide laced apple.

I remember the first time reading the details about Turing’s death, and how just pissed off and horrified I was about the whole thing. You’d think times had changed since Galileo, but they were still going strong in 1952. It is a relief, though, that since then he has become such an honored person, with a prestigious award and many memorials named after him.

Respect

So here’s a most humble, awe-filled, respectful shout out to my hero, Alan Mathison Turing. I would be proud to be 1/100th the Computer Scientist he was.

Strong Bad’s Cool Game for Attractive People

I make no secret that I am a huge fan of Telltale Games, as can be seen in my first post on what a top notch gaming company they are. I urge you to check them out if you haven’t heard of them before or seen their creations.

I just got through playing the final installment in the Strong Bad’s Cool Game for Attractive People series – “8-bit is Enough” – and I’ve got to say, they’ve yet to let me down – the game was simply awesome. I won’t give anything away, but as you Homestar Runner fans know, the Brothers Chaps have an affinity for the 8 bit world, both poking fun and reliving the joy that was gaming in the 80s. All that is brought to new light in “8-bit is Enough”, with the 8-bit world bleeding and mixing into the game world of Strong Bad. For a retro geek like me, it was fun, hilarious, and just a great time to play. The puzzles were pretty good, not great, but on par with previous Strong Bad adventures – but the retro feel of the game was the real champion here – cavorting and battling against pixelated baddies was very true to the spirit of Homestar Runner and ripe with in-jokes of our arcade past.

SBCG4AP Poopsmith Retro

Featuring everyone’s favorite Trogdor, this one was definitely my favorite in the series, with the first episode being a close second. If you’re into adventure games, retrogaming goodness, the Homestar Runner gang, or just having fun, I definitely suggest playing the entire series, it’s a lot of fun at a very reasonable price.

Links to check out:

Telltale Games
Homestar Runner

Removed some ads

I took the large ad in the upper left hand corner of my posts out. It irritated me looking at it whenever I’d read any posts, so I imagine it probably did the same for other people too. Maybe it generated a few clicks, but it’s not worth it, my primary concern is that people are actually able to read the posts easily.

A Thought on Efficiency

WARNING
This borders on a rant – I get into moods where I like to rant, and this is one of them. Treat it accordingly 😉

A (semi) quick thought before I go to bed. There are times in my technology filled life of smart phones, streaming, bluetooth, web 2.0, multitasking, scheduling, interoperability, synchronization, single sign on, and coordination that I honestly just get sick and tired of being efficient all the time. I understand the theory in that by working smarter, not harder, you can get more done – but what’s the point?

People have a lot of reasons for being more efficient – one of the major points: getting more done in a shorter amount of time. The theory is that we either don’t like doing crap, or there is a reward for doing crap, so we devise ways of doing more crap in less time so we have a bigger reward – this reward being the extra free time we saved from doing the crap quickly, or a payment we received in exchange for doing the crap.

The Fisherman

One of the problems that comes into play is we usually take the time we’ve saved by being efficient and put it back into activities surrounding the crap again – either working more or devising even better ways of being efficient for work in the future.

My friend Leah had read me a story once, and I’ll do my best to only semi-misquote it here. It concerns a business man talking to a guy fishing on a beach. The conversation goes a little something like this:

Businessman: Why don’t you go get a job, you lazy fisherman?
Fisherman: Why should I get a job?
Businessman: So you can make it into a career.
Fisherman: Why should I have a career?
Businessman: So you can climb up the ladder, make a lot of money
Fisherman: Why do I need a lot of money?
Businessman: So you can invest it, build up a retirement fund
Fisherman: Why do I need a retirement fund?
Businessman: So you can live out your final days relaxing, fishing on a beach somewhere

Obviously the story leaves out any points of the fisherman having a family, responsibilities, or supporting himself, but the point is still there. The dig here is not against business, but the attitude of the businessman, this “prerequisite of happiness” thing where you’re constantly working to get to somewhere that can be reached without doing all that crap in the first place. The bigger paycheck, the larger office, and the faster car always seem more appealing from far away, but when you’re actually there, they give no happiness compared to the proverbial sitting on the beach and fishing. And if that truly is the goal, then why not cut out the middle man?

The Driving Force

We live in a nation of bigger, better, faster, compete, win, more, more, more. It’s driven into us in a number of ways – we must excel in all that we do. Our country’s finances operate on capitalism, and it’s a survival of the fittest game. And while this drive pushes us to achieve amazing things and delivers us glory, does it truly make us happier in the long run? Especially considering new abilities are often paired with new issues?

All this is the subject of a much more detailed and lengthy article than I could write, and I’m definitely not arguing against progress. But there are many times in my life when I want to unplug – when I’d rather hand write a letter to a friend than send them a Facebook message, or give them a call on the phone instead of text messaging them. There are times when I don’t want to be the fastest or the best, I don’t want to be connected wherever I go – I just want some quiet, some peace, and some happiness.

I think what it really comes down to is needing balance – it’s something I’ve been working on quite a bit the last month or so. As odd as it sounds, I need to put more fisherman into my life.

Playstation Home Initial Thoughts

Like many PS3 owners, I didn’t waste any time trying out the new open beta of Playstation Home when it went live a few days ago. Due to large influx of users when the service initially opened up, I was unable to get on right away, so I spent some time on the net reading the initial responses of those lucky enough to manage to get connected early on.

I found the typical mix of those screaming about how much the service sucked, what has Sony been doing for the past couple years, why do I have to pay 40 cents to buy custom clothes, Playstation Home is the anti-Christ and should be destroyed, etc – and those defending the other side saying it was still in beta, it’s a free service, shut up, etc.

Reality is usually somewhere in between (though I side more with the “shut up” people – those who honestly complain that much about a free, beta service are in need of a serious dose of life-priorities), and eventually I got online and was able to gauge things for myself.

Visuals

The first area you encounter when logging in for the first time is your apartment, which you can decorate with different furniture, wallpaper, devices, etc. It overlooks the sea and its pretty serene. The graphics, as have been commented on, are fairly good – definitely not the best of what the PS3 can pump out, but considering the CBE is taking care of processing a complex, semi-unpredictable MMO environment, they are very good. In other areas such as the mall and movie theater, Sony has incorporated videos onto screens, and they are clear and crisp.

Speed

With all the nice visuals and player processing, the PS3 does remarkably well with little lag (that I saw). The only time I noticed lag was first entering into an area when I’m sure initial setup was going on. Past that, running around the square or the mall, everything was very smooth.

Communication

Home supports keying in text from the controller, using a USB keyboard, or a USB microphone. I tried both the controller and a keyboard. Keying in things from the controller is definitely a huge pain and limits the amount of communication that can go on. There are some preset messages that help a bit, but they only get you so far. After hooking the keyboard up, I definitely had a lot easier of a time talking to the couple other people I could tell had a keyboard hooked up, but I’m guessing the majority of people (for now) are only using a controller. I did hear a few people voice chatting in the game, and that seems like a great option as well for people who don’t mind having their voice heard. I may try with a headset next time.

Entertainment

I personally am not so big on chatting – I rarely use AIM during my personal time, and prefer email or non-real-time messaging such as Facebook. So while talking to people was enjoyable for a little while, I was looking more at Home for other entertainment it provided like online games, such as bowling, pool, and video games found in the bowling alley. The arcade games available include a break-out clone, echochrome, and dropping blocks/match up style game called “Carriage Return”. They were fun for a bit, but I probably enjoyed bowling the most. Up to four people can play per lane, the interface isn’t too bad, and you can chat/heckle while playing, its pretty fun all in all.

Overall

Home is interesting – I hesitate on making any final judgment since its in beta and a lot of content/areas aren’t available yet. For me, I think if Sony opens it up more, adds more consequential interaction/games it will be more enjoyable. I don’t see myself using it too much until that happens aside from bowling every once in a while. Dancing in the music area is kind of funny to watch (as 50 people line up and do the running man), but even that gets old after a while. I think Sony could do a lot of things with home, add parks with chess/checker boards, add go-kart arenas with racing, minigolf, etc – I think that could be a lot of fun. We’ll see how it goes. All in all, its a neat experience for now, and holds a lot of potential – I definitely don’t see it being the travesty a lot of other, less forgiving PS3 owners do.

Website updates

Hi All –

I made a few updates to the site to hopefully make things a little more informative/usable. I’ve added the following:

  1. A comment subscription plugin, so when you leave a comment, you can sign up to be notified via email if anyone else comments (either a response from me or other users commenting). These comment subscriptions can be managed and removed if desired. I did this as there is no real way right now of knowing if someone replied to your comment without constantly checking back at the site.
  2. A project page for my Drupal z-machine project, Gruepal. It describes the project so far, goals, and has links to the devlog.
  3. A link on the main page that shows all posts, newest first. This is a shortcut from going to each month’s archive.

As always, thanks for reading, I hope I’ve provided some helpful information/entertainment through my posts over the past year.

Setting Up an IRIX Cluster

In my quest to collect a massive number of vintage and non-x86 machines, I recently picked up two Silicon Graphics workstations. I was pretty excited about this – as a teenager I had always been in awe of SGI and the amazing 3D their machines pumped out. As the originators of OpenGL and creators of some of today’s fastest supercomputers, SGI is one impressive organization.

The Operating System

One of the cool things about SGI stations besides their fast as hell (at the time) MIPS RISC processors is their operating system, IRIX. IRIX is a UNIX designed for the MIPS line and an X custom tailored to the SGI graphics chipset.

SGI Screenshot
Photo of IRIX screen running a demo, GIMP, and a terminal

Another great feature of IRIX is built in clustering using array services. Like all clustering, this allows you share the processing power and memory of multiple IRIX workstations to accomplish tasks more quickly. Being an older OS, I was nervous the process would be difficult, but it wasn’t bad at all.

The following is what I did to create my “Excelsis” cluster, consisting of my two SGI workstations, Metatron and Gabriel:

  1. Install Array Services – array services can be found on the operating system disks that come with your workstation.
  2. Configure Your Array – IRIX comes with an arrayconfig script to generate the array configuration file, but chances are you’ll need to tweak it anyway, I find it easier to simply create the file in its entirety. The configuration file can be found at “/usr/lib/array/arrayd.conf”.

    Each array this machine participates in must be defined in this file. The first is normally an array labeled “me” which consists only of the localhost. Any further arrays require a name, plus a list of all machines in the array, which each need their own label and IP address or address to contact them at.

    array me
         machine localhost
    
    array excelsis
         machine metatron
              hostname "192.168.0.15"
         machine gabriel
              hostname "192.168.0.16"
    

    According to the documentation, quotations are necessary for hostname. As can be seen, I have defined an array called “excelsis”, with two machines, one named “metatron” and one named “gabriel”. I then specified the IP address of each machine.

    The default arrayd.conf file will define a number of array commands that can be run from the terminal. These are all well known UNIX commands such as top, ps, and who, only they can be run on the array as a whole, as opposed to just the local machine. E.g., running “array who” would list all users logged into the array (i.e. any machine connected to the array). Leave these commands where they are and jump to the end of the config file.

    The end of the configuration file contains a “local” identifier that contains settings and defaults for array services running on the machine, such as the port array services listens on and the default array for array commands (remember, your machine can participate in more than 1 array. If you run an array command without specifying an array, it will default to the one specified here). You’ll want to change “destination array” to be the name of your default array. In my case, I changed it to “excelsis”. That’s it for this file!

  3. Configure Array Security – By default, your array will be configured to not allow connections from remote machines. This allows messages to be passed via MPI between programs running on your machine, but doesn’t allow for clustering. Edit the “/usr/lib/array/arrayd.auth” file, and you should see “AUTHENTICATION NOREMOTE”. You’ll want to change this to “AUTHENTICATION NONE” if you want any machine to be able to connect to your array (not secure, but may not be an issue if you’re running behind a firewall), or “AUTHENTICATION SIMPLE” if you’d like to setup private keys for each machine. If you go the simple authentication route, you’ll need to specify “HOSTNAME machine1.domain.com KEY 0x3817382771948” where machine1.domain.com is the address of the machine, and the hex string following KEY is the private key. You’ll need to specify this for all machines. These keys must match per machine on all machines in the array.
  4. Autostart Array Services – Now that you have your array services configured, you can tell IRIX to start it on bootup by enabling it in chkconfig. If you aren’t familiar with chkconfig, it is a special utility that configures whether various daemons should autostart at bootup or not. You can see a list of which daemons are currently set to start by running “chkconfig” with no arguments. To autostart array services, type “chkconfig array on”.
  5. Rinse, Repeat – You’ll need perform the above steps on every machine participating in the array. Assuming you have NFS starting before your array, I don’t see any reason why these configurations couldn’t be symbolically linked to one central configuration, but if you ever wanted machine specific settings you’d be out of luck. I simply edited the files on both my SGI workstations.

At this point, you can run an “array who” to see all people logged into your array and “array ps” to see all processes running on all your clustered machines. The fun really begins for programmers at this point, as you can make use of the MPI libraries to share tasks across multiple nodes in your cluster for parallel processing.

While IRIX is on its way out and the chances of needing to setup a cluster is slim, it can be a fun little project if you have a few SGIs kicking around. It would also be interesting to see the compatibility of passing MPI messages between IRIX and non-IRIX clusters. A project for another day!

Telltale Games – A Top Notch Gaming Company

I’m a pretty big fan of games in general. I love playing them, making them, watching the impact they make – everything about the industry is pretty awesome. While I was certainly a Nintendo kid, gaming really started for me on the Commodore 64, and enjoyment grew into a true appreciation with adventure games and my first PC, as I talk about here.

Where Did the Adventure Go?

The gaming market has changed in some very distinct ways over the years for a number of reasons. One of these changes that has been talked about quite a bit is the decline of the adventure game market. These games used to dominate, and now are the stuff of homebrew projects and small corners in software stores. While it’s sometimes difficult to discern if the market shapes corporate decisions or vice versa, we are indeed in a place where giants like Activision abandon clearly sought titles (read: Ghostbusters) as the profit margins are deemed unworthy by their market research and finance personnel. A business must survive and prosper to continue to push out product, but there is that point where an organization becomes more concerned about their profit than their product. And we are in no shortage of companies that subscribe to these views.

The Gallant Few

On the other side, there are those gaming companies that understand they can make a profit but still have a soul – staying true to the heart of the gaming community. I speak of Telltale Games, makers of the Sam and Max series, Strong Bad’s Cool Game for Attractive People, and the upcoming Wallace and Gromit’s Grand Adventure. They are a group of people whose passion lies in adventure games, even in a time where the typical market research would suggest this is not as profitable a route as creating a string of Call of Duty or Grand Theft Auto clones. Makes sense, since Telltale was founded by veterans from LucasArts, the company that at one time had produced masterpieces such as the Monkey Island series, Maniac Mansion, Day of the Tentacle, and yes – Sam and Max Hit the Road.

Sam and Max Ep 203
Screenshot from Sam and Max Season 2 Episode 3: Night of the Raving Dead

Having played through both season 1 and season 2 of Sam and Max, and the first episode of Strong Bad, it’s clear to me that Telltale puts out simply awesome games. Packed with humor, beautiful illustration, and quality gameplay, these adventures are truly fun to play. They also go to show that adventure games are not confined to the retro, homebrew, and Myst clone market.

Give Them a Visit

If you haven’t yet, take a moment and check out their site, there are even some free downloads to get a taste of what their fare is all about. And if you like what you see, give them some money! I know I for one would like to see a little more diversity in my gaming selection, but it can only happen if we support companies that are in it for the games, not just the revenue.