Thursday, December 6, 2007

Bioshock or Some Geeks are NEVER Satisfied


Slashdot had a post linking to Eurogamer documenting Problems with Bioshock. Bioshock is a game published by 2k Games. In my not so humble opinion, this is probably the best game I have played all year. Released on the XBOX360 and the PC, Bioshock is a first person shooter with some RPG elements. It is visually stunning, with immersive environments, realistic enemy AI and pretty much does a very good job of immersing the player in the game world. Now I know that this is said of many games but really, Bioshock makes you feel like you are really there. But the above things arn't even the best part of the game.

The best part is the story. I found the story very engaging, and I wanted to know what was going to happen next. Another big part about the story I like was the working of the game's nonphysical weapons, magical/psychic weapons called plasmids into the story. They aren't just weapons that you find on the ground, they are intrinsic to the genetic manipulation/addiction part of the plot. Add to that, the fact that the whole game takes place in a network of underwater buildings. And the story of the game is a look about what can happen in a truly free society, sort of the libertarian worst-case scenario. It is a society that develops a class division based on looks and good genetics, and money, of course. Plus, there are no drug laws in this society, so the lower echelon is made up of crazy drug addicts. And since there is no gun control, they are crazy drug addicts with guns. I know I always wanted to live in a society like that but this is sort of a what-not-to-do for any good libertarian. Add to that, the society's culture is based in a 1940's-ish atmosphere, complete with old music and tommy guns.

There are a few problems with the game, but they are relatively minor in my view. One, the game has no "lives". Every time you are killed, you respawn at a "vita-chamber" sort of a rolling save point. I can see that many people do not like the idea of infinite respawning. People can feel that this does not provide enough challenge or incentive to stay alive. That would be the cas if not for the other minor flaw in the game: its REALLY, REALLY hard. Oh sure lots of you are going to say "What a wuss, it isn't that bad," you guys are on crack. The story about finishing the game using just the pistol? Chambers make the game too easy? Trust me, if there were no chambers, nobody would have finished this game. Taking down enemies like "Big-Daddy" takes a LOT of work. I've also noticed that they seem to be a little stingy on ammo and health. So really, very minor issues. I personally like the hacking mini games and the vending machines. It's a nice break from just running and shooting.

The article defends critical points that geek gamers have had with the game. I still stand by, regardless of those issues, my statement to make this "game-of-the-year". But I guess there are some geeks who had "problems" with the game. If you look through the article, some of those points are just ludicrous. It seems that the article's author and I pretty much agree about the game. My point is, however, that he shouldn't even have to answer those points. Why? Because the only reason that anyone would have any problem with this game at all is because geeks are NEVER satisfied. Never. The sarcasm about the constant critic in my article How to be a geek in 10 easy steps is true. Bioshock is a great game, and it most likely WILL be game of the year on many places where it counts. Yet there are geeks that will rip it to shreds. I'm totally perplexed why geeks do this. It seems the gaming industry is one of the only industries where game of the year has people that cry "the ending sucks" or "the respawn system is horrible". I mean when is the last time a movie won best picture even though most viewers say "the ending sucks!" The last time a musician won a Grammy even though the track arrangement was horrible? It generally does not happen. That is because of the simple fact that geeks are not happy unless they are criticizing someone, somewhere.

I really don't know why geeks do this. Maybe its that over-inflated sense of self worth. Perhaps they are pretty much perfectionists. But you would think that if geeks never liked anything, then nothing in the geek world would ever be popular. But things are popular. This game will be high on any games-of-the-year lists regardless of the fact that it seems many geeks don't like it. It leads me to the conclusion that geeks like anything, but they like complaining even more. I think the Comic Book Guy in the Simpsons summed it up with one statement. Coming out of a film that is supposed to represent Star Wars Episode One: The Phantom Menace, he says "Worst film ever. I will only be seeing it five more times. Today." As parodic as that is, I have YET to come up with a line that has more insight on geeks and criticism.

I am an anomaly when it comes to criticism. I really don't like criticizing anything. I guess that makes me a strange geek, but I just don't see the point. You like something great. You don't? Don't play it, don't watch it, don't listen to it. But for the love of god, man up and stop complaining.

Monday, December 3, 2007

Art must be and will be free

Here at PDP, I'd like to take a moment apart from doing the home server how-to's to comment on a recent Internet phenomenon. If you haven't seen the video 2 girls 1 cup, you need to. It is probably the most wretchedly disgusting piece of video that I have seen in a very long time, or possibly ever. I will NOT be linking to it because I am certain that it will violate some rules with my nice host, Blogger, and my sponsors and advertisers.

Why do you need to see it, you ask? Am I actually endorsing sickening and stomach churning “pornography”? Well yes, indirectly. It's not the subject matter of the film, per se, but the Internet cultural reaction to the film that is important. It never ceases to amaze me as to what a brilliantly dynamic place the Internet truly is. The Internet phenomenon, such as the squirrel nuts or the dancing baby, were at one time the top things on the Internet. They peak in popularity than inevitably fade, becoming just another annoyingly stupid Internet cliche`. But for the months that they are popular, these viral Internet works have an amazing penetration (excuse the pun). Nearly EVERYONE who owns a computer and is on the Internet has been attracted to these things.

What is so special about 2 girls 1 cup? First, even though I'm not linking to it, I'm certain you will not have to look far to find this video. It wouldn't be viral if it was difficult to find. Ask around. EVERYONE has seen it, you can find someone to point you to it. Now, if I were to tell you exactly what the subject matter of the video is, you would never watch it. Suffice it to say, it is sickeningly vile. But here is the point. Regardless of the subject matter, millions of people have seen it, and many of them have convinced others to watch it. This is one of the most interesting things about a phenomenon like this. Much like the proverbial train wreck, most of the people, though offended and disgusted, will not be able to tear their eyes from it. They almost have to watch it in disbelief that a human being would be willing to participate in such a vile act.

Many of you are familiar with goatse, which, compared to 2 girls 1 cup, is a children's work. Regardless, millions upon millions are familiar with goatse, and they can instantly recall the shocking image, as well as their almost palpable disgust upon viewing it. To me, both goatse and 2 girls 1 cup are some of the most effective artworks that have existed in modern times.

Artwork, do I hear you say? Effective? Panvamp, have you gone mad? No friends, I haven't gone mad. To me, art is a work that invokes emotional feelings in the viewer, like the Sistine Chapel invokes a feeling of humility or divinity, and The Wizard of Oz invokes a sense of wonder. All works of art do this, great or not-so-great. In the case of goatse and 2 girls 1 cup, the emotion is not particularly pleasant, but the emotion is there nonetheless and it is very, very, strong. I mean do you know how powerful a set of moving images have to be to actually illicit a physical, vomitous response in some people? I don't feel it's up to us to decide which emotion the artwork invokes but there is no question that these works are effective at conveying the emotions. So, now that we have established that these works are indeed art, and they are good at doing what art is supposed to do, the amazing thing is the widespread nature of these. More people have seen these artworks than many classical paintings, and most of the people that do view these are affected more strongly than those people who see the Mona Lisa.

In some societies and cultures, these works are most likely illegal or, at the very least, considered “obscene”. Yet with the magic of the Internet, people in those societies can experience this work anyway. Why does everyone want to see these films? It's the same reason that people spend hours looking at Internet porn. They provoke responses that societies have stated are not good, and should be avoided. But people do not want to avoid emotions. They may think that they do, but people like having emotions, and the act of provoking them is something that they enjoy. Thats why great books, gripping stories, beautiful paintings, and yes, even disgusting pieces of film are watched by so many people. Entertainment is arguably the largest part of people's lives. And people want to especially see “Taboo” pieces of art, JUST because society says they are bad. People WANT art to be no-holds-barred. People want a free expression of information. They don't want limits placed on expression.

I think nothing illustrates this more than the amount of people clamoring to see what they know will shock and offend. Maybe that's one of the reasons that so many people are offended by so many things. Do they enjoy the emotional response? Do they like to have their blood boiled, their stomachs turned, and their skin crawl? I think the answer is yes. The Internet, while in a relatively free and uncensored state (I'm looking at you, China!), is the perfect vehicle for ideas, especially for ideas that are “offensive” though apparently “popular”. Perhaps the anonymity is the factor. “No I'd never watch smut like that,” is probably a common response when people ask others about this video in real life, but trust me, with the door closed, computer is on, and that sweet, sweet, information injection coursing through their veins, the can't help themselves. I mean there is a REASON that there is so much porn on line. Thats what people want!

So go find it, experience it, let it sicken you, let it revolt you and enjoy the fact that you have emotions and emotional responses to things. Its easy to say that we shouldn't have emotions that are offensive or revolting, but first it will be obscenity, then unpopular speech, then violence and soon we say that the only reason that there is anything wrong is because people have any emotions. If you want a little view of that, check out the excellent Equilibrium, starring Christian Bale. No gross out movies in that society I can tell you. And a society who cannot handle ideas, even shocking and revolting ones, is not a society that I want to live in. And thank God for the Internet, for without it we may have lost a worldwide outlet of idea exchange that can influence so many of our lives.

Sunday, December 2, 2007

Installing a home server -- Networking Considerations

Hopefully, if you have read by article on building a home server, you have a good idea what you want to do with your box that you will be building. My detailed tutorials are going to be from the perspective of setting up an all-in-one router/firewall/gateway/webserver/media server. You can most likely omit any of the sections and ignore what you will not be needing. If you have a hardware firewall/router, for example, you can ignore the steps about sharing the network connections and setting up the firewall. Some of the steps depend on the others, like the need to install an sql database if you wish to properly use php. But If you don't need to have a shared drive, you can skip the file sharing part.

But the one aspect of this server that pretty much cannot be ignored is that it is going to be on a network. I thought that I would lay out some of the networking concepts that I will be using in building our home servers. This is by NO means a course on networking. If that's what you are looking for, hit a search engine and see what you can find. There are literally countless pages that have as much networking info as you need.

First and foremost, lets discuss IP addressing. An IP address is like a phone number that tells others on the network where the computer is located. If you are using the machine as a router/gateway, you will probably have 2 network connections on the machine. One probably goes to your cable modem or DSL modem. The other will go into a switch or hub in your house that your other computers are going to connect to. Let's call your internet connected network "external" or the "outside" connection, and the other will be called the "internal" or "inside" connection. If you are already network savvy, the outside connection is the WAN connection, and the inside interface is the LAN. Each of these connections will have a different IP address. You probably will not have many options for your external IP. Either that interface gets its IP from your Internet service provider (ISP) automatically using the DHCP protocol, or you will have been assigned a static IP address and subnet mask. This is vital information and you will not be able to complete this setup without it.

The internal address is something I want to touch on a little bit. Your internal interface is pretty much going to HAVE to be set to a non-changing, static address. The reason for this is that you do not want it to change because then the internal computers will not know where your server is exactly, and using DHCP to configure this interface will not always guarantee this. (There are some ways to make it happen, but those are beyond the scope of this article). When it comes to IP addressing and networks, certain rules have to be followed. Your internal network most likely is a private network, so you will have to use ip address ranges in the "Class C" range. This is a special range of IP addresses that can be used for internal private networks like yours. Valid ranges are : 10.0.0.0 - 10.255.255.255 and 192.168.0.0 - 192.168.255.255. Any addresses in those range are valid and legal. For example you can give your internal interface of 10.0.0.5 or 192.168.1.1. For various reasons that will be illustrated during the XP routing section in the next article, I recommend that you assign your internal interface to the address of 192.168.0.1 with the default subnet mask. In addition to XP's special requirements, I recommend using this as your internal IP even if you are going the *nix route. It will simplify many of the subsequent steps. You do not HAVE to do this, but I really see no reason why you wouldn't use 192.168.0.1.

Next you will want to decide the way your clients will be connecting to your server. You may either run a DCHP server on your home server and assign your clients addresses automatically, or you may manually assign static IP addresses to your client PC's (or you can have a mix of the two if you follow some guidelines). To be honest, DHCP can sometimes have problems if your outside interface also uses DHCP, but I will show you how to use either way, and really this is a case of personal preference. Decide on this before you start, however.

Also, you need to think about how this machine will be administered. If you are going to want to administer your server over the internet and you have a static IP address, then don't worry, you should be able to access your static IP from any internet connected computer. If you have an ISP that gives you a DHCP address, you can never know when your assigned IP is going to change. If this is the case, hope is not lost. you can use something called a Dynamic DNS. I use No-ip, and if you are willing to use their domains, you can get an actual internet address like mysrvr.noip.com. There is a little program that we can install on the server that will let your dynamic DNS always know the location of your machine no matter how many times it may change. There are other dynamic DNS services, and you should pick one out. For a fee, you can usually get an actual domain and register it with these services like www.mysrvr.com. If you have a static IP you can just register a domain name and have it point to your static address.

Finally, you will need to know about NAT and port forwarding. NAT or Network Address Translation, in layman's terms is essentially this: As far as the outside network or internet is concerned, a request to the internet from any of the clients in your private network looks like it is coming from your outside interface ip address. If you Google NAT you will find extensive information about its nuances, but it's just a principle that says that the ONLY IP address that the rest of the world can see is your outside interface. Here's a dirty little diagram

remote computer--> Outside interface( 9.6.74.15)<-NAT Router-> insideinterface(192.168.0.1) --- client 1(192.168.0.7)

Say remote computer one is an internet web server. Client 1 types this web server address into his browser. The remote computer's web site appears. But as far as the remote computer can see, the request to display his site came from 9.6.74.15. In fact, it isn't even aware that 192.168.0.7 even exists. But how does the outside interface know to send the web site information back to client 1? It uses NAT routing. This is exactly what NAT is designed to do. Most home servers and hardware firewalls/routers use this exact mechanism. This is NAT in a nutshell.

One of the problems with NAT is that if the request for information is NOT initiated by one of the client computers, there is not a way to send any information to client 1. Say remote computer is your work PC at your office, away from your private network. Also, lets say you are not running a web server on your NAT router, but you are running it on client 1. If you type in 192.168.0.7, chance are you will get a page not found message. Thats because your office PC doesn't even see 192.168.0.7. It has no direct route to get there. So how can you access that machine's web server from your office?

This is where port forwarding comes in. You can set the NAT router to route all traffic from remote computers to port 80 (the default web server port) directly to 192.168.0.7. So any request that is made to 9.6.74.15 on port 80, will get sent directly to client 1. So after you set up port forwarding, at your office computer type 9.6.74.15 and poof, you will be shown the web page being served on 192.168.0.7. Any other port will still get processed by the NAT router, but all port 80 requests will go to client 1. You can even run web servers on BOTH machines if they use different ports. I'll touch on that during the installation of the server software.

The great part about this comes with respect to hackers and intruders. Because of NAT, the only machine that malicious intruders will ever be able to hit without being invited or knowing about your port forwarding scheme is your home server. That means that if you run a firewall on the server, you can block any malicious traffic to any of your clients. This eliminates the need to install software firewalls on any of your clients, because the NAT router blocks all of those attacks before they ever hit any clients. Cool, huh?

So do some research, get familiar with the above concepts, and in our next installment we'll begin building a windows XP based home server. I'm really looking forward to it.