Monday, March 3, 2014

Thoughts on Javascript

Over the last few weeks, I have been learning Javascript. I am still somewhat inexperienced with it, but I have already found a number of features of the language that I really like, as well as some that are not so good.

I think my favorite thing about Javascript is the ability to alter objects on the fly. I like knowing that I have the ability to modify objects whenever I need to. However, this could make some really confusing code so I try to avoid the need to use this feature.

I also really like working in a language that isn't picky about types. Being able to put multiple types into the same array is really convenient. It is also makes testing code that depends on other code that hasn't been created yet easier, because I can substitute my own values for whatever input might be missing.

The last in my list of features that I like is the console. It allows the user to track all sorts of details about the state as the program is running. It also allows the user to inject code. This feature makes it possible to test code that isn't complete yet.

I have mixed feelings about the implementation of arrays. Javascript provides a number of convenient built in methods for accessing and modifying arrays, which is good. The problem is that these features come at the cost of speed. I could write my own functions to treat an array like a stack. I can't change the fact that Javascript chose to implement arrays in a less efficient way than other languages typically do.

I really don't like the way that Javascript likes to make variables global. In a large project like this, the last thing we need is to have every variable be a global variable. Javascript provides ways of dealing with this, but I find them counter-intuitive.

The last feature of Javascript that I will complain about is the way that objects are defined. An object can be the only one of its type, or it can be something that needs to be instantiated, depending on whether or not you define an object as a function. I find this to be kind of confusing.

Thursday, February 20, 2014

The project begins

I am working on a project called Automaton. It is an educational game that will teach programming concepts. I really wanted to work on a game of some sort, so I am happy I got this group. I think I got good teammates, and I like Luke's project idea.

We are just getting started, and I have not done a whole lot yet. I have submitted several user stories to the form Ezra created, and I am beginning to learn javascript again. I will also be getting familiar with git, as it is the repository system our group has chosen to use.

Wednesday, February 12, 2014

Revised Project Proposal

Here is the link to my revised proposal: https://www.dropbox.com/s/yuz00t5p46mjnc1/zombieproposal.pdf

I trimmed the project down a little bit to make it more reasonable to do in 12 weeks. This meant getting rid of multiplayer entirely, and addressing the possibility of trimming other features. I also completely changed my timeline. It now has dates for specific feature completion.

Thursday, February 6, 2014

Ideal Design Team

Dedicated, Intelligent, Gamers

I chose "dedicated" because I want to work with people who are committed to the project and want to put in the effort and time required to complete it.

I chose "intelligent" because I want to work with people who know what they are doing.

I chose "gamers" because I am envisioning a team for my specific project, and I think people that enjoy video games would be good at creating a game, and evaluating their work.

The top three words I didn't choose are:
Creative, Friendly, and Efficient

Creativity is a desirable trait because we are creating a game from nothing, and need to come up with ideas for content.

Friendliness is a desirable trait because we will be spending the next 12 weeks or so working on a project together, and it would suck to be stuck cooperating with unfriendly people for that long.

Efficiency is a desirable trait because we will be working on a large project that is going to take a lot of time to complete, and it will take even longer if we are inefficient while we are working on it.

Sunday, February 2, 2014

Project Proposal

Here is my project proposal: https://www.dropbox.com/s/q7zdhqe7dzht2ps/proposal.pdf

I originally created it in open office, and the conversion to .doc, and then to .pdf has messed up my formatting a little. I've wrestled with Microsoft Word a little bit, and it is refusing to cooperate, so my pictures are slightly out of place.

Saturday, February 1, 2014

AGILE and elicitation

    I do CAD drawings for my friends small business. I think that we have had problems with the elicitation phase in the projects that we have done so far. There have been several instances where we have needed to make changes late in the project, or have had some miscommunication about what was expected. With drawing, as with programming, it can be difficult to make certain changes to the project because dependencies are created as you progress. I think that parts of AGILE could be applied to the way we deal with clients to avoid some of the problems we have had in the past. More specifically, I think we could increase the frequency of client meetings, and focus on having something tangible to show them each time. Also, if we were to work more closely with the client, I may be able to give them an understanding of what types of dependencies are being created, and make it easier to avoid getting stuck with a change late in the project.