====== HPC Experience I End of Course Experience ======
===== 0x0 Portfolio =====
[[http://lab46.corning-cc.edu/user/bh011695/start/vimtutorial|Vim Tutorial]]
[[http://lab46.corning-cc.edu/user/bh011695/start/macinstall_xcode|Mac OS X Install/C++ in Xcode]]
[[http://lab46.corning-cc.edu/user/bh011695/me_install_in_virtualbox|Windows ME Virtual Machine Using Virtual Box]]
===== 0x1 Documentation Publishing =====
[[http://lab46.corning-cc.edu/user/bh011695/pygametutorial|Creating a Worm Clone Using Pygame]]
===== 0x2 Troubleshooting =====
There are many ways to answer a question or solve a problem. In many cases a solution is as simple as a google search. This was the case with Xcode and trying to do a C/C++ program. One thing to remember is that if one person has a problem, there's a fairly good chance that many more people are having the same problem. And in these scenarios, like I said a quick google search can help out.
The worm game was fairly involved. So obviously there were quite a few times where I sat beating my head off a wall trying to figure out what a function call does or why a program was not running in the desired manner. One thing I had found to be a bit confusing was the way python handles classes. This was my first time working with classes in python. For example, when we created a worm object it looked like this.
w = worm(screen, int(width/2), int(height/2) - 10)
Whereas in C++ it would look more like this.
worm myWorm;
The first example, to me, looks more like a function that's returning a value. w being whatever value is returned by the worm() function. In reality, w is an object of type worm. This made it kind of hard at times to understand what, exactly, was going on in some of the coding examples in the tutorial. There were several times where python syntax left me a tad confused. For loops also were a bit odd. I've found that whenever you stumble upon some programming code that you don't understand, you're best bet is print the output to the screen. The body[] array in the worm class using the empty brackets was something I'd never seen before. Printing the contents to the screen was what made me realize that it was the x,y position of every pixel located in the worm's body.
However, there are some cases where you just cannot beat the problem no matter how much effort you put into it. The windowsMe virtual machine was one of these scenarios. There were a few problems encountered there such as finding out that the ME disk was an upgrade disk, so we needed a Windows 98 disk to upgrade from. All throughout getting random installer crashes. After some googling and not finding a concrete answer, time became an issue and we had to, unfortunately, scrap the rest of the project.
===== 0x3 Documentation Review =====
[[http://lab46.corning-cc.edu/documentation/pine|Pine Tutorial]]
I really didn't do anything major to it. I only fixed a few spelling mistakes. "The first time starting pine you will be asked to enter your password, this is the same password used to login to lab46.corning-cc.edu system." That line originally read "will be ask". Further down I turned userid to user ID. User ID just looks nicer to me. There was one more in there somewhere but I forget what. Forgive me, it's been a long day. :) I wanted to try and fix the coded line that shows the pine menu. I ran into this problem in my pygame tutorial and I missed with it but couldn't find a way to fix it.
===== 0x4 Project Preparation =====
It would be very neat to further the pygame tutorials to make a 2d side scroller or possibly even a full 3-d game. I did see a YouTube video of a very small FPS that someone made using pygame.
[[http://pygame.org/wiki/tutorials | Pygame Tutorials]]
[[http://www.pygame.org/docs/ | Pygame Documentation]]
Between those two links there should be enough documentation and tutorials to create a fairly wide array of different games. Specifically what I, myself, would like to mess with over break is sprite animation. I'd love to make a game in the likeness of Splatterhouse 2.
===== 0x5 Meaning =====
One of the things that was quite informative this semester, as simple as it was, was the Vim Tutorial. I learned quite a few things that I was able to transfer over to my C++ and python programming. For example, I learned about the -o and -O option. -o will open the files split horizontally and -O will split the windows vertically. This definitely comes in handy when you need to compare code or when you separate your classes into files and bring them in via #include statements.
This was also the first time I've used a Mac. I spent a fair amount of time just playing around and getting familiar with how things are done in OS X. Certainly different than the way things work in Windows, though, it's not too far off from using Linux.
Of course, the worm game is at the top of my list. I really can't imagine how many hours I spent tinkering with that in the past few weeks. At first, it simply started out as being curious as to how to use python. This led to googling some information on making games using python which brought up lots and lots of documentation. I used the tutorial by a game named Lorenzo. I liked how instead of simply telling you how to do something, he presented many things as a bit of a homework assignment. He gave you the building blocks and you had to put them together to perform certain actions.
===== 0x6 Reflection =====
==== How Do I Feel About The Course? ====
It was very fun. I like the freedom you get in picking what projects you want to take on. This way you can pursue things that are interesting to you, which ultimately leads making learning a very enjoyable experience.
==== Was it Useful/Meaningful to Me? ====
Very. Like I had mentioned earlier, I had learned some tricks to help out in Vim and some basic OS X usage. Sometime int he future, if I can scrounge the cash together, I'd seriously consider picking up a MacBook. Also, I was able to get my fingers into a little bit of game programming. Which might be put to some use later. Thatcher was saying that Mike's got a hold of a game engine and wants some people to play with it. From what I hear it takes a some python knowledge. So, maybe some of what I've learned here can carry over to that and I can get involved with that.
==== My Least Favorite Aspect ====
To be honest, it's hard to find anything to dislike. Like HPC0, there's variety and choice in the project selection. This makes it hard to not be able to find a project that you would find interesting. At first, I felt a bit intimidated by some of the stuff on the "I deserve nice things" list. I would still like to look into the compression program in C, but have no idea where I'd begin. So, maybe on the projects have some items on where to get started with project to point you in the right direction and leave the rest up to you.
==== Comments/Suggestions ====
This semester went by REALLY fast. Which, once again, lends itself to the idea that
"time flies when you're having fun". My weekly visits to the LAIR usually were around two
hours, but it never felt like I had enough time. That is a good thing and at the same time
a bad thing. Good in that it means I had a great time, but bad in that I really wish I
could have come in more often. I'm hoping I have this much fun in Computer Organization,
and I should. Ultimately, that too, can lead up to some very fun video game creation.
===== 0x7 Personal Assessment =====
Ahhhh, the self analysis portion. :) As far as journals are concerned, I didn't do too bad this time around. I only missed one. I wasn't sure Monday night if I needed another one or not, but I went ahead and did it anyway because once I'd completed the worm game I had a whole lot to talk about. I only got 4 projects in which isn't a whole lot. The problem there was hitting a new roadblock every time we tried doing something. I really wish I could have started the pygame stuff earlier. I could have gotten another game in, but I suppose for now, it's a start. All in all I would say a B- is fair enough.