Saturday, February 15, 2014

Stakeholders: Assignment Tracker

The following information is in reference to a previous post about a software idea for those in the education system. The idea centers around developing a system that may be accessed by smartphone users in the K-12 school system, with stakeholders as follows:

  • Teachers:
Teachers would have the capability to post assignment details and due dates, as well as student grades. This would benefit teachers as they would have a way to ensure communication with parents regarding children's assignments. It would be unreasonable to ask a teacher to call each parent every night to let them know what was expected of the student. This system, however, would facilitate that communication.

  • Parents: 
By having an easily accessible location to find out student assignments, parents can help ensure their children complete required tasks on time. Additionally, as teachers are able to post grades, parents receive communication regarding their child's performance in school at an earlier date than following traditional methods of waiting for report cards and parent/teacher conferences.

  • Students:
One of the essential components of raising a child is training them to become more responsible for themselves. This software allows a parent to slowly let go of the reins, as the parent encourages their child to independently make sure they have completed all assignments. It also provides a transition, as students who are used to using software to manage task completion will find it simpler to use similar software on the job. Numerous companies employ digital methods of time and project management, and this facilitates an early introduction to those processes.
I originally felt this should be an app designed for mobile users, as the number of smartphones in the home, especially in impoverished neighborhoods, outweighs the number of computers. However, upon further consideration, I feel this software would better service the public as a web app, which can be accessed by consumers of all styles of digital media, computers and phones alike.

Additionally, while the MVP contains only the essentials listed above, and may even be boiled down to an even smaller set of essential components, the following is a list of other potential add-ons and upgrades to be considered in the future:

  • Integrated calendar with other dates, such as extra-curricular activities practice/games/tournaments as well as school appointments such as parent/teacher conferences
  • Alert system in case of emergencies at school
  • Alert system in case of child absence
  • Integrated discussion boards for students
  • Integrated assignment submission
  • Integrated activities and assignments



Wednesday, February 5, 2014

Under Da Sea

Problem Description
While the dive community around Oahu is thriving, it is rather difficult to get off-shore coordinates for dive sites. One must currently scour multiple websites, which do not agree with each other regarding the correct coordinates for the wrecks. Additionally, one must visit another site to find whether wave conditions are favorable for diving. Finally, dive logs are still generally kept in paper books that are subject to the water that may splash or drip onto them from dive gear.

System Capabilities
An all-in-one information site for local divers would be an incredible asset to the community. A diver could look up wave heights, then link to dives available in the favorable parts of the island, both shore and boat dives, with coordinates for launch points and mooring lines. Once the dive is completed, the dive can be logged digitally, providing a permanent record, stored in the cloud. Dive shops could log into the system to certify training dives virtually once away from the water.

Business Benefits
Simplifying all these resources into one single-access point would facilitate simpler decision-making prior to diving. Additionally, verified coordinates would allow individuals to know they were going to the right location. The less stress an individual experiences in diving, the likelier they are to have a safe dive. Also, the permanence afforded by a digital dive record ensure data is not lost, thus allowing an individual to prove their capabilities when applying for advanced certifications.

"There's nothing wrong with enjoying looking at the surface of the ocean itself, except that when you finally see what goes on underwater, you realize that you've been missing the whole point of the ocean. Staying on the surface all the time is like going to the circus and staring at the outside of the tent." -Dave Barry


Tuesday, February 4, 2014

My Dog Ate My Homework

Problem Description
While this sounds like a horrible excuse to most, I was actually chased home by an ill-behaved dog as a child, and in the tizzy dropped my homework. Why I was carrying it in my hand rather than zipped in my backpack, I'll never know. Unlike my timid former self, most kids don't lose their homework to a dog, yet there are undoubtedly a number of situations in which children forget, or misplace, or even  ignore their homework. This problem is confounded by the lack of communication from teachers to parents regarding daily assignments. We have entrusted our youngest children with the responsibility of their own education, a trust situation most children are not prepared to handle.

System Capabilities
The proposed system would be similar to the current "Blackboard" system employed by many educational institutions, but would instead be a mobile application. While many lower income families don't have computers in the home, they do often have smart phones through which they could access the system, a feature not well facilitated by Blackboard. In its most basic form, the system would feature a bulletin board where the instructors would post daily assignments for each class. Additional functionality would include the ability to post documents, and even in-app problem sets or assignments. Finally, the capability to post grades through the app, visible only to the student and their parents, would round out this piece of software.

Business Benefits
The benefits of this begin with increased communication, which leads to greater assignment completion. In addition, readily available feedback regarding grades enables parental intervention and correction to occur earlier in the school year rather than waiting for conferences or report cards, all of which can lead to a better education for our youth.

Hurry Up and Wait

Problem Description
One of the most well-known phrases to any military member is "Hurry up and wait." This phrase references the incredible inefficiency often experienced by military members, particularly when in- and out-processing a unit. Part of this inefficiency is due to policies of certain offices regarding business hours as well as insufficient priority placed on customer service. But this also is due in-part to antiquated business practices based on paper copies and in-person appointments. As early as 1994, the phrase "Paperless Air Force" began gaining momentum as the rest of the world was recognizing the importance of going green. Unfortunately, this phrase has been more slogan, less action. 

System Capabilities
I propose development of a system that automates many of the processes involved in entering and exiting one's assigned duty location. Instead of printing out an individual's orders, then having that individual walk around from office to office, providing this date here and that bit of information there, the tasks could be automated. The office issuing these orders could "press a magic button," which would send the required information to the appropriate offices for processing. And instead of those offices having to download this information, the same system could "automagically" populate the correct fields into their respective systems. 

Business Benefits
The benefits of this functionality come in two types. First, the amount of paper wasted as each military member prints multiple copies of his/her orders every time he/she travels would combine to save money (paper, ink) as well as reduce waste. Secondly, the more efficient system would not only save wasted hours as individuals no longer spend time walking to various appointments, but would also save hours for the individuals processing the paperwork, thus greatly reducing the customer service personnel requirement. 

Tuesday, January 28, 2014

Average, Normal, Ordinary, Everyday...Regular Expressions

This week I began a new Software Engineering class in which I am learning Ruby on Rails. I started watching the introductory tutorials on the new language, and I immediately discovered a shortcoming in my education-to-date. I realized I know next to nothing about regular expressions. I was unable to decipher which of the characters I was seeing belonged to these regular expressions, and which were syntactical requirements of Ruby. If anyone else is experiencing similar difficulties, I hope to help your understanding by providing a quick introduction here as well as some resources for further study. Because my background is in Java, I will start there, then transition into Ruby formatting. So without further adieu...

What is a Regular Expression?
This is a way of matching patterns within sequences of characters. For example, I could search a string such as "How much wood could a woodchuck chuck?" for the string "wood." I could do several things...I could find out if the pattern existed at all, I could count the number of occurrences within the string, I could perform the search based on capital letters or lowercase letters, or even a combination. It is even possible to "find and replace" matching patterns.

Why Regular Expressions?
It is simple to consider potential uses of "find and replace" functionality, from simple misspellings of a single word to intricate changes in long documents, such as new contact information for Congress members after post-election. Even more simply, we might just want to search a small amount of input for a particular set of characters. If we were to write basic "beginner" Java code to search the above input string for "wood," it would involve nested loops and if-else statements and storing and backtracking and...well, suffice it to say regular expressions not only condense the amount of code, but also are simpler to understand as they are a higher level way of scripting, thus closer to the way we think.

Java: regex
In Java, the java.util.regex and java.util.matcher packages contain the classes needed to utilize this functionality. To implement you would first build the pattern you want to match, then the test string, and finally the test statement:
Pattern pattern = Pattern.compile("\\d{5}");
Matcher m = pattern.matcher("90210");
boolean bool = m.matches(); 
This defines our pattern as five digits (0-9). Then, builds the test string (90210), and finally tests to see if the test string matches the pattern. This is the equivalent of testing a field to see if it could potentially be a zip code.

Ruby: Regexp
In Ruby, the regular expression looks very similar. Instead of being enclosed in quotation marks, it is enclosed in two forward slashes:
/\d{5}/
Additionally, instead of calling .matcher, you simply call .match.  I'm beginning to like the simplicity already!

I Want to Know More
As I mentioned, these are just the basics. There are much more intricate uses of regular expressions. For more on either language, here are some resources:

Javadoc Tutorial on Regular Expressions
Java Regex Tutorial by vogella.com
Ruby-doc on Regexp

If you have any corrections, suggestions, or questions, please feel free to share your wisdom in the comments!

Sunday, December 15, 2013

It's Finally Final!

After a fantastic semester of playing with Stencyl, gaming.js, and Unity, I have finally put together a basic pinball game. It isn't perfect...the game never actually ends, and the physics have some more tweaking, but...it plays. There have been a lot of changes since the last prototype. In addition to basic bumpers, I have added triangle bumpers, a plunger simulator, drop targets, and lanes for the ball. Also, the game now keeps score, and it counts down your remaining balls. I have learned so much this semester, but as you can see, I have only touched on the basics of writing this game. The world of battles and levels and wormholes I envisioned isn't quite here, but now that I have the foundation, I can continue building upon this fantasy world of which I dream.

In the following video, I discuss my vision and strategy as I build the game, and there is a brief clip at the end of the game in action:


If you would like to try the game for yourself, please feel free to play it online.

I hope you enjoy, and Happy Holidays!!

Thursday, December 12, 2013

Pinball Masters, Prototype #4

I have finally gotten my flippers working in Unity! It took a while, and after trying "Lerp"ing and "Slerp"ing (and maybe even a little twerking!?), I found a YouTube video from PushyPixels that simply utilized "rotateAround".  Since I am working in JavaScript, variable declaration was done a little differently, but nothing too difficult to figure out. The next issue I had was that they were using the mouse as a controller, and I wanted to use "D" for the left flipper and "K" for the right flipper, so I gave the object tags, and paired them with the GetKeyUp and GetKeyDown events. Finally, I stopped watching at the point in the video where they were still struggling with trying to get the left flipper to move correctly. I simply utilized their script, changing the positive/negative values on "maxAngle" throughout the code for the left flipper, and it worked swimmingly.

So here it is, prototype number four

And if you would like to check out the video by PushyPixels, you can find it here.