Sunday, February 15, 2009

Programming for Fun

I enjoy programming and I do it at work, for school, and on my free time. My most recent project is part of my Masters Project. I am working on a checkers game for the iPhone that uses the Minimax algorithm, but slightly modified.

Computer games like checkers and chess can look ahead to find the "best" next move based on perfect on each side. Well when you play against a human opponent they can't always look ahead as far, so they will not make the best move, which throws off what the computer was expecting. What this project does is implement Trappy Minimax. As the name implies it is minimax but with traps. If the computer looks ahead to 5 plys (2.5 full moves) and the human opponent can maybe look ahead his move and your next one,then you can set a trap. Just look for moves that appear to be good for the opponent until ply-5.

Friday, October 3, 2008

Master the Mainframe

This is my second year in a row that I have "Mastered the Mainframe". It is a contest with IBM for college students. Not too difficult for 10 year plus developers and techies. I am in it for the swag! A free t-shirt to show off my nerd-dom.

Wednesday, August 6, 2008

iPhone Development

As nobody knows (because no one reads what I write) I thought Objective-C was rather odd and seemed difficult to pick up at first. Well since I have been developing for the iPhone/iPod touch it has helped me learn the language and come to enjoy its simplicity.

Saturday, July 12, 2008

My iPod Touch game released

I started using the SDK towards the end of April and was getting use to Objective-C and the SDK and found it quite nice. An app that I have used to get to know different technologies was BlackJack, due to it's simplicity. So, I started building a blackjack game for the iPod/iPhone and towards the end of June I started to really work on getting the app ready for distribution. It is ready now and I will make improvements as needed.

  • Uses up to 4 decks of cards shuffled together (reshuffles when there is about 22 cards left)
  • Dealer hits until 17 or higher
  • Preferences to turn on dealer wins on push
  • Preference to disable gestures (a work in progress and the first version of it is in version 1.11)
  • Of course, awesome looking cards and graphics.
  • The player can split when dealt identical face cards.
  • Version 1.11 fixed a bug/error that when you split your split hand wouldn't only win if the dealer busted.

Sunday, May 25, 2008

Schools out for summer

Or is it :(
Just finished the semester and the plan is to finish my last regular semester in the Fall. 1 boring class, 1 cool class (cryptography) and the masters project. I am moving away from the idea of doing a thesis and pursuing the project idea. I want to do something that can help others or creates a starting point for other projects. If you do something academic, then there is a much greater chance of getting published.

I know of at least 1 student that would like to get published as part of her masters project. That's nice and all, but will make a difference?

Tuesday, May 13, 2008

Mac OS Ken

One of the daily podcasts that I like to listen too is Mac OS Ken and apparently so does my 3.5 year old.

Okay so you probable heard the windows shutdown in the background. I use both windows and mac all the time.

Saturday, April 19, 2008

Software Engineering Part 1

I am currently working on obtaining my Master's degree in Software Engineering and at the point that have to pick a topic for a thesis or come up with a project. Writing a thesis is much less common for this major (at least at my school) and that kinda makes me want to do the thesis. On the other hand, if I work on a project it could potentially be used by others and that's cool thought.

Software Engineering is a relatively new profession, which means there is an opportunity to contribute something important. Until I make my decision I think I will post my ideas in the blog.

First idea (Thesis): Educating computer science students for an engineering career. Why? Computer science students today have a curriculum that does not include enough of the engineering discipline that we see in other engineering fields like electrical and mechanical engineering. Engineers benefit from those professionals that came before them. Years of improvement on process and standardization's. The software field has seen vast improvements in standards, but still has problems in process and "best practices". While best practices don't work in some areas they do work in software design in the form of design patterns.