Gaming Performance and Hardware

After my Gaming Hardware post I decided to have a look at what the gaming field is up to i.e. do ping times still dominate the conversation. Is everyone still as infatuated with performance as they were several years ago. I used to do some gaming and I would still like to
but I get too sucked into it and lose weeks of my life so I made
a conscious decision to stop. I backslide every once in a while when a killer game comes out or if I play something somewhere and get hooked.

chp_chess_game.jpgCaveat: I am not addressing game enjoyment in this post its game performance i.e. do you want to be the last man standing. High performance hardware does lead to more “fun” etc but not necessarily better gaming performance. When I say mid-range hardware I am also not talking about moms word processor or 3 year old hardware. It needs to be reasonably decent hardware to run the game properly.

From a casual glance around the net it would appear that hardware performance and hardware issues seem to dominate the message boards. I always found the perpetual hardware performance chasing and worrying about hardware to be a distraction.

I remember playing games on mid range hardware, for the time, and dealing out my fair share of mayhem. In general the people who were trouncing everyone were also running mid range hardware. Don’t get me wrong I’m not talking PC world hardware, that’s what I would call bottom of the range. The machines were mostly hand built based on bang for buck at computer fairs on Tottenham Court Road. The biggest factor I found in action games was ping times not hardware. Above a certain level of performance it seemed to matter very little what hardware you were running.

I’m not sure if this still holds but I believe ping times and player performance still dominate overall gaming performance. Slight digression… It annoys me to see how much emphasis there is on the hardware performance but it’s in the interests of the manufacturers to make sure that performance is seen as a big advantage in gaming or anything. The following is a question I have heard more than once.

My PC is slow on the internet, what sort of PC would you recommend to speed it up?

The PC is most likely not the problem in this case, its the connection. You can browse the quite happily on 5 year old hardware if the connection is good. Shop owners are also selling PC’s that people don’t need its a bit like going looking for a Mondeo and coming out with a Ferrari.

Anyway, back to the main point. Lets assume all ping times are equal. If this is the case then player performance really matters. To get good at something involves practice and lots of it so it pays to watch how sports teams or the military train, its drill, drill, drill. The military make you go through the motions so often you are sick of it but can do it blindfolded. There’s not a huge amount of fun in this and it involves a lot of effort and mental stamina, it’s also why not everyone is cut out for the military or sport. My brother played Super Mario Bros to the point where he would reset it if he lost a life and was able to easily complete the entire game with one life. It was when I seen him do this that I knew I would never be a great gamer. To be great at any sport involves this level of dedication and yes I consider gaming to be a sport.

So if you’re serious about gaming stop focusing on hardware etc and start focusing on yourself. Are you fit, well rested? Do you respond faster to sound than light? Do you drink alcohol, take too much caffeine, how much caffeine is too much? What time of day are you at your best? What’s your resting heart rate? How often do you practice, are your opponents as good or better than you? Drill Drill Drill….

My personal opinion is that most of us don’t need to focus on hardware that much. Ping times possibly but I don’t believe hardware would give me that much of an edge. It may make the game more fun or a better overall experience but this does not necessarily mean I would perform better.

High Performance PC for Gaming

I need a fast desktop for development and was at the dell website when I came across the following link.
alienware.jpg These guys do “high performance PC’s”. I clicked on the fastest looking offering they had and the total price for the basic package is £3008 (I kid you not). For that price I get an odd looking case (see pic on right). The case looks like it was designed as a bottle for mens aftershave (pimp my pc). You also get the following.

Alien Case (see pic on right)
Intel® Core™ i7-940 Performance 2.93GHz 8MB Cache
1GB NVIDIA® GeForce® GTX 280
1000 Watt Alienware® Approved Multi-GPU Power Supply
3GB DDR3 SDRAM at 1600MHz – 3 x 1024MB
Alienware® Approved Intel® X-58 Chipset Motherboard- Socket 1366 Core i7 Ready, Triple Channel DDR3 Memory
Windows Vista® Home Premium 64-bit with Service Pack 1
1.0 TB SATA 3Gb/s 7200 RPM (2 x 500GB)
20X Dual Layer DVD±RW/CD-RW Writer
High-Definition 7.1 Performance Audio – Standard
Logitech® Classic Keyboard UK – Space Black
Standard Optical 3-Button Mouse with Scroll Wheel

To say I am woefully unimpressed with the above is a bit of an understatement. I have not looked overly hard at the rest of the details but those are the main parts.

I decided to put my old hat on and go shopping to see how much it would cost me if I was prepared to build it and this is what I was able to ruffle up in a few minutes.

Case 100
Intel® Coreâ„¢ i7-940 Performance 2.93GHz 8MB Cache  440
1GB NVIDIA® GeForce® GTX 280 300
1000 Watt Power Supply (multi GPU) 150
3GB DDR3 SDRAM at 1600MHz – 3 x 1024MB (Corsair) 91
Intel® X-58 Chipset Motherboard- Socket 1366 Core i7 Ready, Triple Channel DDR3 Memory  270
Windows Vista® Home Premium 64-bit with Service Pack 1   100
1.0 TB SATA 3Gb/s 7200 RPM (2 x 500GB)  100
20X Dual Layer DVD±RW/CD-RW Writer  50
High-Definition 7.1 Performance Audio 85
Classic Keyboard UK 12
Standard Optical 3-Button Mouse with Scroll Wheel  12
1610

I’ll add another £400 in case I have missed something or made an obvious mistake. So we can save £1000, I don”t know about you but thats a lot of money. I probably get some warranty with the Alien machine and it comes packaged etc but it’s not worth £1000. Seasoned Gamers can knock a machine up in a morning so I’d be surprised if many seasoned gamers are using these machines. I bet I could build a significantly faster machine for £3000 than the one above. It might look like shit but it’d be fast as hell.

The following paragraph is most likely way off the mark on what would constitute a good gaming machine. There are various reasons for this, for instance, ensuring the graphics cards work with server hardware, could the game take advantage of 4 CPU’s with a total of 16 Cores, does the vista license allow us to have 4 sockets.

I could fit a rack in the attic or if I was close enough to the garage I could run a monitor cable etc through the roof, floor or wall to the PC. Add a power switch and a mini itx server with shared peripherals and then you can start looking at 4/5U machines with multiple CPU’s with multiple cores. You can pick up some serious hardware on ebay with SCSI and hardware raid built in. Have a look on ebay.com for v40z or Add some decent graphics cards and things would be looking quite fast.

If I was gaming in the states from the UK I would also look at tunneling my traffic to the states from the UK over a compressed line. You can get dedicated servers in the states very cheaply that would make excellent end points for the tunnel. The closer you can get to the server in the states that you are playing your games on the better.

I’m off to look at desktops now.

Don’t publish with IEEE!

Please see DJB’s article on this topic.
IEEE large.jpg
Quite often while searching on Google I find something that looks interesting and I am led to the IEEE where I am presented with a short synopsis and a link to a pdf. To get access to the pdf I have to join IEEE or pay a fee.

There are numerous organizations that do this and they’re making good money at it. What I’m worried about is that for the less fortunate that don’t have group access or who can’t afford membership then we will never be able to access this knowledge. If we want to increase our body of knowledge globally then closing access to papers stands in the way of this.

The IEEE are asking people to sign away their copyright. The only reason for doing this is so they can profiteer from it by denying access to the papers. Because they’re big and have thousands of papers means they can get away with  it.

I took a look at their home page and their logo has the following sound bite.

The world’s leading professional association
for the advancement of technology

I think this needs to be changed to

The world’s leading professional association
for the advancement of technology among the wealthy

To be published somewhere like the IEEE can impact your career. Signing away copyright to the IEEE to get a paper published may mean a budding scientist gets noticed and this is the problem. Until either the IEEE carries less weight or there is another way for people to get their work noticed then people will continue to sign their copyright over to the IEEE. Of course the IEEE could also decided to accept public domain papers and publish them for free.

I believe in free access to knowledge for everyone and this is why I am opposed to these kind of tactics. Google has the right idea! (the first line)

Google’s mission is to organise the world’s information and make it universally accessible and useful.

I just wish they’d hurry up 😉

Learning Computer Science

This is an update from to my earlier  Self Taught Computer Science post.

I’ve started working on the SICP Exercises and so far so good. I’m finding Scheme, the variation I’m using, frustrating but thats to be expected. It’s frustrating because there appears to be no actual standard implementation of Scheme. It’s also perverse that, because it appears so simple, and there’s no standard implementation, people try and create a compliant version of Scheme. Perhaps this is testament to how hard it is to follow a standard as opposed to blazing your own trail the way a lot of popular languages do. There’s another blog post in here somewhere comparing languages that follow standards and languages that …. evolve!

I’m using the DrScheme IDE and I love it for its simplicity. Even though Scheme is frustrating I’m finding it easy to work with. I know Functional languages are based on Lambda Calculus but until I started working in Scheme I hadn’t realised how easy it is to think in functions. This can probably be attributed to the SICP exercises being heavily slanted towards computation and interesting mathematical functions like the Wallis Product or the Fibonacci Sequence. Regardless, I’m finding it easier to think mathematically in Scheme than Perl or Java.

I’ve done one exercise in Haskell so far and its been painful. This is not because Haskell is painful it’s just that almost every tutorial on Haskell I find first wants to teach me how to use the Haskell calculator (my derogatory term for the interpreter), as opposed to telling me how to get the thing to compile a standalone executable. That last sentence is a rant, as I’m digging into Haskell I’m finding more material. I really don’t know what it is about this language that I find so appealing. I’ve seen some really negative reviews of Haskell online but I cannot bring myself to hate it even though it’s driving me a bit mad learning it. Only time will tell if Haskell and me are meant to get on.

So far I’m finding SICP time consuming but digestible. I’m noticing a marked increase in complexity, I’m just hoping I can get through enough during my holidays to learn something.

Self Taught Computer Science

Over the last year I’ve felt as if I’ve reached a plateau. I cannot put my finger on why this is or why I feel like this but regardless of what programming language I use C/Perl/Java I feel like I’m just moving boxes. This is not the first time I’ve felt like this either.

I don’t think this is a problem with the languages I’m using I think its more of a problem with me and the applications I tend to be working on.

After a while (not a very long while) developing CRUD applications loses its appeal. Developing network apps, GUI’s etc… they all start to look dull when you’ve done them a few times. My experience with GUI’s is very limited so the above statement is an assumption in that regard.

I’ve no idea why this is but I’m sure more experienced programmers could probably shed some light on this. I personally think that unless something stretches your ability it will eventually lose it’s novelty.

Though, surely as a programmer who loves to program I should be able to entertain myself in almost any application I write but for me this does not seem to be the case. I’ve never been one for mental wanking and I would prefer not to start. Over complicating an application just to keep it interesting doesn’t appeal to me in the slightest. I watch programmers fall into this trap all the time and its sad to see them commit this cardinal sin. The worst thing is having to watch them explain their contraption as if it’s a simple solution when it’s obviously a complicated  mess of a thing. Don’t get me wrong I’ve been guilty of this sin and in quite a few cases been oblivious of it. Its almost as bad as the Not Invented Here syndrome so prevalent in our trade.

I personally think my main problem is that I don’t feel as if I am getting any better. I look at old applications and where I would normally see a dozen ways to improve it I see two or none and it’s not because it’s perfect or anywhere close, only a fool would believe so. I know I’ve not learned a fraction of what I need to know in my field so why have I hit this wall. Have I reached the limits of my ability or is this a normal phenomenon that programmers go through?

My opinion is that I’m seeing things through the wrong goggles. Most of my education has been self taught so its been led mostly by interest as opposed to formally taught. I’ve been studying with the Open University for several years now in order to get some background mathematics etc but I still think there are areas that I need to improve on in particular around Computer Science.

Unfortunately the Open University computing courses are geared towards popular topics, Java etc in order to attract more students. Having done a few of their computing courses I wish I hadn’t bothered because I gained more from my own work than I did from the taught courses. I cannot say the same thing about the mathematics though. I decided to start mathematics because I knew that whatever I learnt would be applicable regardless of the current fashion or trends in industry and it won’t be out of date in a couple of decades.

Having looked around this for some time I have decided that what I need to do is to start my own computer science program to build on the mathematics I’m doing with the Open University. The areas I’m really interested in is how to go about writing my own computer language, compiler, virtual machine etc so I’ve been looking around to see what other universities are doing and what books they are using in this area.

Having done a fair bit of looking I spotted a definite trend towards functional languages and the further I looked into this the more I noticed that All Roads Lead To Lisp. Or to scheme or to some variant thereof. Abstracting a bit further I am being steered towards learning a functional language. The two languages that interest me the most in this area are Scheme and Haskell. Now all I need to do is decide what books and resources I need to start a course in this area. Most resources online point towards Structure and Interpretation of Computer Programs (SICP) in order to get started so I am looking at this now. I am not sure if I’ll try and tackle Haskell until I get a bit more familiar with scheme although having looked at Haskell the language is appealing to me.

Watch this space for more installments on my self taught Comp Sci education!

Reading

ReadingManiacs.gif

I love reading. When I was a kid I read mostly fiction, in particular Fantasy and Sci-Fi. Now I read almost no fiction at all compared to how much non fiction I read. Over the last few years I have noticed a trend ie

I spend as much time choosing a book as I do reading it!

I think like a lot of things in life “You Only Get Out What You Put In” or (YOGOWYPI). I prefer my own version, its shorter and has a certain ring to it “Shit in Shit Out!” (SISO) or if you want to make it sound more exotic (SHISHO).

There is a part of me that wants to read more and faster (with comprehension). In fact I went so far as to buy a book by Tony Buzan on speed reading and this turned out to be a disaster. I keep trying to convince myself that its quality that matters not quantity and that reading one book a month is more than enough if it’s a classic in the field. The feeling still doesn’t go away though, I still want to read faster.

Another thing I tell myself is that I need to be reading in a certain direction and I am not talking about left to right top to bottom I mean that I should at least try to have some theme or direction to what I’m reading. For instance: don’t read esoteric collections of books just because they’re classics. I recently read some Greek classics and when I came back to reading mathematics etc it took me a while to shift back into that mode. A part of me wants to believe that its counter productive to read with no direction and another part of me believes that the constant gear changing keeps me on my toes. The esoteric reading method I’m currently employing is driving my sensible side to distraction, for instance over the last month I have been reading  books on:

Probability Theory
Functional Programming
Sophocles
Java
Physics
Stock Market

I am not saying I have finished any of these books yet but I have been reading them and this leads me to another problem. Reading non-fiction is easy but finishing a non-fiction book is very hard depending on your definition of finishing. A loose definition for reading a fictional book is that you have read and understood the plot and read at least 95% of all the content. I would say that with non-fiction if you applied a similar definition ie “read and understood 95% of the material in the book” then I think I’m failing miserably.

For instance, I’ve read Fred Brooks, The Mythical Man Month, cover to cover (twice) and I think I grasped a lot of it but I do not believe I’ve grasped  anywhere near 95% of whats in that book. The same goes for “The Intelligent Investor”, “Peopleware”, “Free To Choose”, “Daily Drucker” and the list goes on.

The other startling thing I’ve learned is that rereading a book does not necesarily mean I get a lot more out of it. Unless I’ve had a chance to study my environment for some time after I’ve read a book I don’t think it has fully sunk in. So rereading does not really benefit me that much unless I’ve had time to digest the first pass. I’m sure there’s some scientific reason for why this is. When I reread a book a year or two later I see things differently etc so can get more out of the book.

Using what I know about my reading habits it didn’t take long to decide what to do. From the following thoughts:

T1.
Assume I get 20% from a non-fictional text on each pass.

T2.
Each pass of a book cannot be within a year of the other. (I must have had time to study my environment ).

T3.
I have a limited amount of time on this earth.

It was easy for me to see that the most important rule I could possibly follow is “Shit In Shit Out!” (SISO).

In conclusion the only firm rule I have and have been able to follow to date is (SISO). I’m not saying I no longer read trash but I’m conscious of it when I’m reading it. Armed with this rule even if a small percentage of what I read sticks then I’ll be OK. I’ve been applying this rule for almost eight years now and I think it’s working. I don’t believe I will ever be a really fast reader and I do not beleive I will ever grasp 95% of any non simplistic non-fictional text in a first pass but I believe that if I apply SISO throughout my reading career I will achieve a lot. My search for other ways to improve how much I can get out of my reading goes on!

Lockhart’s Lament

spiral.jpgI have to thank Philip Wadler for spotting the Lockharts Lament article!

If you are worried about how mathematics is being taught today then read the following article Lockharts Lament. The first few pages describe the problem perfectly. Our education system is being designed by people who have little or no understanding of the task at hand.

Perhaps mathematicians are being arrogant and calling what they do an art. I personally think it’s as much an art as painting, sculpture or poetry. Its quite sad that Wikipedia doesn’t have mathematics listed as an art. Surely there is nothing more expressive than mathematics. Have a look at some of the images here. Anyone with a little mathematics and a lot of people with no mathematics will find these images beautiful.

If art has anything to do with expression then for some there can be nothing more expressive than an equation. Mathematics is fundamentally about describing the world around us and more besides. Physicists use mathematics to as a tool to understand the world around us. This practical applications does not mean that it’s not an art. Ask a physicists if they consider mathematics to be an art and I would bet that most think it is. The E=mc2.jpgmost famous equation today is E=MC^2. The beauty in this is astonishing but its not the most beautiful equations to some, F=MA may be more beautiful depending on your point of view. The fact that these equations are of huge practical importance seems to make some think that mathematics is not an art but merely a tool. Mr Lockhart’s article puts it well

“Music can lead armies into battle, but that’s not why people     write symphonies.”

The sooner we start treating mathematics more like an art and making it interesting the better, until that day almost every student being churned through our education system will hate the watered down shadow of a system our educators deem to call mathematics.