Tuesday, November 17, 2009

Artificial Intelligence

I hope you have enjoyed the varying posts of my random thoughts on mobile application development and programming. Based on the number of views, it seems as though some of these topics have been reviewed several times. I'm happy for the feedback, and thanks to everyone that has helped in this blog. My last thing to ponder about programming is dealing with artificial intelligence: how do computers communicate with each other, and do they truly have sentience, as we know it? There have been plenty of people who have simulated what they thought of as thought patterns for human brains. I can also recall watching one of my favorite shows, Star Trek Next Generation, and there is an Android, called Data. Do you think that these things can actually exist? Some people say no, because a machine can't have emotions or experience pain. But isn't physical pain just a response to a stimulus? Nerves that let us know that something has come into direct contact with our body? That's just what a neural network is in a computer system, a set of electronic impulses let the computer know that there is some event happening. Interesting huh?

Tuesday, November 10, 2009

Programmers Burnout?

Is there anything that you can do when you are completely burnt out when trying to do progamming? I know that some people like to do something totally different, like work out in the gym or cook something delicious. I prefer the latter. I love to eat, and I love trying to cook some dishes that I never have before. One thing to remember is to make sure that you don't forget all about your programming. Sounds odd, doesn't it? When you are trying to figure out a problem, the thing that works for me is to not completely forget about it, but rather try to come up with something in a new way. The point for me is to just get rid of the frustration, and then come back to it in about 4 hours, and not a minute before. What method works for you?

Monday, November 2, 2009

Mastermind-Understanding Logic

There is an important thing to remember in programming whenever creating a game, a device enhancement, a database, or whatever. You have to remember logic! I'll use the example of mastermind. Here are the rules to the game

Mastermind Rules
Object of the Game
The computer picks a sequence of 4 pegs, each one being one of any of six colors.
The object of the game is to guess the exact positions of the colors in the computer's sequence in as few guesses as possible. After each guess, the computer gives you a score of exact and partial matches.
Use Logic…Not Regular Expressions


Rules
1. The sequence can contain pegs of colors: red, yellow, green, blue, white, black
2. A color can be used any number of times in the sequence.
3. All four pegs of the secret sequence will contain a color - no blanks/empties are allowed.
4. Each guess must consist of 4 peg colors - no blanks.
5. You have 8 guesses to find the secret sequence.


Just say you wanted to write a program for this game, instead of worrying about what the graphics and forms look like, work on the logic of the game first. The gui can always be programmed later.

Go to this page for more hints on how to do your algorithm:
The link is http://www.uthinksmart.com/mastermind.htm

Wednesday, October 28, 2009

Gadgets

I have a phone, called the Motorola i290. I simply love it, and it was only $30! There are so many people who are into phones and all other types of mobile devices. I guess as a computer programmer who looks at code all day, the last thing that I want to do when I get home is to play with all of my gadgets that I have bought. There are so many people who do love the devices, and they talk about all of the apps that they can download, and all the things that they can do. Well how about this: I don't need an iphone play games. That's why I have a computer or a gamecube (and yes, I know it's old, but I still love my XMEN fighting game). I like to only buy items that can end up making me money or help me improve on some other things in my life. If it happens to be a fun little device, that is just icing on the cake. I'll try to talk about one of my fun gadgets in another post.

Thursday, October 22, 2009

Iphones, Perls, Oh my!

There so much to remember when programming mobile devices. When you write a game or application for the mobile devices, it is very good to try to remember all of the rules and quirks. For instance, you need to remember the screen size of the mobile device that you are programming. You have to remember the speed in which the device can access the internet. You have to remember so many more things, such as can it access things wirelessly, if the phone has a touchpad, a stylus, or if it has touchscreen capability. You also have to use the drivers that are supplied with the devices, and rememer which device you are programming for. The interface for an Apple Iphone is completely different from a Blackberry Pearl.

Tuesday, October 13, 2009

Itegrating Mobile Device Software

What do you need to do when you are trying to integrate software that you have written for mobile devices? There are some tutorials that suggest that you can just connect a cable to the device and just download the program that you have written. Others suggest that you upload the program to a server, and then use the mobile device to download the program over the internet. It would be nice if there was one definitive tutorial or userguide, but there are so many different types of mobile devices, and it is just hard to just get the data from the mobile device in the first place. I bet a lot of people don't even know how to display their own cellphone number right on it's screen (that includes me).

Wednesday, October 7, 2009

Subversion: Use it or Lose it

I hate the fact that version control software exists. Now they are absolutely great for allowing you to revert back to the last stable state of your program. But what if you did something significant, and you were almost at the point where you could fix it? Sometimes we never know that we can fix the problem, or we may be at a crossroads and we have to decide between trying to fix the bugs, or just starting over. So how do you know which to do? Well I would say use the 5 minute rule. If you see errors and you have seen them before, and you have fixed these problems before, I would say do not revert back to the old version. But if it takes you 15 minutes to fix one error and you have at least 4 errors, I would just say revert back to the previous stable version.