Sunday, December 16, 2012

Prototype #6 and Presentation

Basically Prototype #6 will be the final prototype of my game in this semester; but again, hopefully I will improve this game and update the info through the blog in the future as well! :)

Here is the prototype #6 of my game:

Peter the Cockroach

Things Changed:

Here are some changes I made from prototype #5:

  • Tutorial text description change from myself(creator) to Father
  • human trap scenario added

Things That Will Be Added(hopefully in the future):

  1. Understanding 'map' command to display the map of the game world.
  2. Human beings' attacks scenario
  3. Dog chasing scenario
  4. World extension
  5. More variety of food


Thank you very much all for creating very fascinating game and interacting together! :) That was really a lot of fun learning how game programming works, steps needed to develop the actual game, and version control system (Github), and more.. I think I really learned a lot from this course - again, thank you Sam, thank you all! :)

Shohei Sasahara

Project Presentation for HPU Men's Basketball Team

I have recorded myself talking what I have got so far for the project and made the presentation of it. After recording, I have realized that I talked very slowly with my poor English.. but bear with me for those people who watch this video..

I have briefly talked about what I have got for my Github Wiki page as well as Code page(including User Stories and Scenarios), and things I learned from this course.

I think 2x speed would be recommended!
And Happy Winter Break people! :)

Shohei Sasahara

Friday, December 14, 2012

Making Use of JavaScript

ELLS Book Talking About JavaScript

While I was reading some of the pages in the chapter 11 'Enhancing Saas With Beautiful JavaScript' of Engineering Long Lasting Software, I learned several ways of how JavaScript is used nowadays by developers, not only the way I had thought in my mind.

I am also currently watching Edx course that mainly teaches JavaScript, but I have not finished watching all of them(hopefully will finish watching by tonight), so if I have some revisions to make in this post, I will do so and notify here as well.


JavaScript, the language itself, was developed by Bendan Eich, an employee of NetScape at that time, and was named firstly as 'LiveScript'. However, Java, the language developed by Sun Microsystems, was getting popular and popular, and since both Sun Microsystems and NetScape was doing tie-up enterprises at that time, the developers of LiveScript thought it would be better for LiveScirpt to be named somewhat similar to Java.

Thus, eventually LiveScript changed its name to JavaScript as it is known nowadays.

How JavaScript Could Be Used

According to chapter 11 of ELLS book, JavaScript is used mainly in three ways when development of SaaS(Software As a Service):

  1. Creating client-side applications such as Google Docs, comparable in complexity to desktop apps and possibly able to operate while disconnected from the Internet.
  2. Creating server-side apps similar to those we've been building using Rails, but using JavaScript frameworks such as Node.js.
  3. Using JavaScript to enhance the user experience of server-conyric SaaS apps that follow the Model-View-Controller architectural pattern.
To be honest, I did not know until I read the book that JavaScript is used as 1 or 2; I only somewhat knew that JavaScript could add visual movements to Web so that improve user experience on the web.. so I was surprised while I was reading the chapter.

Although the book drives into more about how JavaScript could be used for SaaS development and focuses on 3, and jQuery, which is one of the JavaScript libraries that enhances the power of JavaScript a lot, I would like to write specifically about 2, server-side JavaScript, which is Node.js. (If you are interested in more about JavaScript for SaaS development and jQuery, click the book image on the top-right side and please read the actual book :))

Introducing Server Side JavaScript - Node.js

Since I have briefly researched Node.js in Data Communications course, I thought here is somewhat appropriate place to share what I was impressed about Node.js through the research. As JavaScript could be used for creating server-side apps, I hope it will help anyone interested in Node.js or creating server-side apps.

According to the official website,

Node.js is a platform built on Chrome's JavaScript runtime for easily building fast, scalable network applications. Node.js uses an event-driven, non-blocking I/O model that makes it lightweight and efficient, perfect for data-intensive real-time applications that run across distributed devices.

Impressive Scalability

What it impressed me was how simple the 'Hello World' code on the official website and what it does. It basically creates the new server and allows user to set how it respond when the request comes in. The code is available from the official website of Node.js

Basically what it does is that it creates new server at, so and if any request comes in, then it will display 'Hello World'. If you are interested in, install Node.js from the official website and try code using Terminal or command prompt. What you have to do is just copy and paste the code to whatever the Text Editor, save it as a javascript file, run it by typing: on your console and then type the url of the server on your browser's url tab.

What I was impressed about Node.js is that although it just looks like a small normal javaScript codes, it actually allows developers to create a new server and decide what server does when requests come, which I thought was just amazing..

I have actually made slides for Data Com's presentation, and fearfully uploaded on slideshare, so if you are interested in please take a look at it, and give me some feedback if you have any! :)

HPU Men's Basketball Project

User Stories and Scenarios

I have written two user scenarios for my user stories for my project of HPU Men's Basketball team, so I would like to share it. For writing user scenarios, I referred to my professor Sam's Github Repo of his project for local non-profit as well as Engineering Long-Lasting Software (ELLS), specifically Chapter 5 of it where it talks about BDD, User Stories Cucumber scenarios and so on. Here is my user stories and scenarios for HPU Men's Basketball Team project:

I will improve user stories and scenarios more and update gist, so this embedded gist may look different in the future, but this is what I have got so far.

Github Repository and Pivot Tracker

I have also created Github repository and a Pivotal Tracker story specifically for this project, so do check those out if anyone is interested in :)

The semester almost ends, and I think it is nearly possible for me to actually develop the complete solution within the semester(and possibly alternatives not just what the customers is currently willing to have), but I am strongly eager to try to help them out in some way next semester, in the future as well.

Wednesday, December 12, 2012

Playtesting Three Games!

Here are three playtesting videos from me.I am very sorry for not screencasting well enough but I hope what I have done somewhat helps the games developed even more! :)

My Screencast for Jurassic Survival

My Screencast for Refugee game

My Screencast for Road of Vision

Prototype #5 - Peter the Cockroach

Here is the prototype #5 of my game:

Peter the Cockroach

Things Changed:

Here are some changes I made from prototype #4:

  • Informing viable direction when the player tries to go to the not viable direction.
  • Some sort of auto understanding functionality when mistyped.:
    if the player accidentally pushes enter, then the game will recognize it as 'Look', and so on.
  • Visual change in the game play page:
    Cockroach image, cover image, and so on(the flexibility of the size of texts are still under construction..)
  • Welcome and info text section at the home page:
    Players can go there by clicking 'homepage' button on the right side of the game play page.

Things That Will Be Added:

  1. Understanding 'map' command to display the map of the game world.
  2. Human beings' attacks scenario
  3. Dog chasing scenario
  4. Human Beings' traps scenario
  5. World extension
  6. More variety of food


I have updated my Github page for Peter the Cockroach, Github Wiki page and Github Issues page. If anyone is interested in, feel free to visit and take a look at those! :)

Friday, December 7, 2012

Prototype #4 - Peter the Cockroach

Here is the prototype #4 of my game:

Peter the Cockroach

Things Changed:

Here are some changes I made from prototype #3:

  • Added tutorial functionality:
    asking a player whether they wanna go through the tutorial or not - if yes, then start the tutorial which tells a player the basic commands in the game.
  • Added 'help' command:
    if a player types 'help', then it will show up the basic commands in the game (just like git --help in the terminal prompt.)
  • Added food in the world:

Things That Will Be Added:

  1. Understanding 'map' command to display the map of the game world.
  2. Human beings' attacks scenario
  3. Dog chasing scenario
  4. Human Beings' traps scenario
  5. Auto-spelling completion
  6. World extension
  7. More variety of food


I have updated my Github page for Peter the Cockroach, Github Wiki page and Github Issues page. If anyone is interested in, feel free to visit and take a look at those! :)

Estimation for Project Management and Life in General

As I have read the Project Effort Estimation section of the book called Systems Analysis and Design with UML, 4th Edition from Alan Dennis; Barbara Haley Wixom; David Tegarden, I have learned how managers need to carefully analyze, consider, and even do some calculations to estimate time and effort required to build a system as accurately as possible.


According to the book, project management often requires trade-off decisions along the way, meaning that in order to achieve a certain goal, parting with another or other goodness or goals is necessary. (I personally thought this notion is very similar or the same as 'opportunity cost' in economics term) I thought the book gives the great example for describing what trade-off basically is like:

For example, if a project manager needs to readjust a deadline to an earlier date, then the only solutions are to decrease the functionality of the system or to increase costs by adding more people or having them work overtime.


Estimation is the process of assigning projected values for time and effort. - System Analysis and Design

Assuming trade-offs occurs in a very frequent manner, project managers need to have a basic estimation of how much time, effort, or money is required for the project to be done successfully before the project begins so that they can have an brief image of how the project schedule should look like, and even when they need make critical decisions or 'manage' the project going forward along the way, they can always refer to their estimation.

Of course, as the project goes on and revisions of the project schedules are made, this estimation can be changed as well. Usually, estimation gradually becomes more specific than the one made at the beginning of project development since managers will have more experiences and resources as ingredients of the estimation.

(The book neatly mentions how the process estimation should be made - making use of user cases and user-case diagram through the calculations of important factors such as actors and user cases to eventually create Use-case-point-based estimation, and in addition to those, add some other complexity factors such as TCFs and EFs for estimating time and efforts required for a project. If you are really interested in learning more about those, click the book image on the top-right side, which will direct you to the amazon page of this book.:))

Learning From the Past

The book also mentions how important it is to keep the data and experience somewhat in a visual form so that companies can make use of those, especially when they are in the process of estimation:

One of the greatest strengths of information systems consulting firms is the past experience they offer to a project; they have estimates and methodologies that have been developed and honed over time and applied to hundreds of projects.
Although the key concept that the book teaches is not the process of learning from the past, I thought this is the great practice to apply and make use of, not just in the project management or any business activities, but in our daily lives in general as well.

When I wrote about difficulty of wise planning and its importance, the comment I got from my professor from online class was impressive to me, and I think that was because the process of estimation and planning is very closely related, or depending on the way people think, these are the same thing, but also as I mentioned above, what I learn from reading this book will not only become useful when actually planning or estimating in any project development or anything related to business or work, but the way we behave in our daily lives.

The real challenge is that in a world where you are competing with others you need to get the best estimates possible, and get just the right amount of planning done to achieve your goal. The best approach might be to try and learn from your previous efforts at estimation and try to gradually get better at estimating and working out how much planning to do. - Dr. Joseph

Thursday, December 6, 2012

User Stories for HPU Basketball Team

To say in a very general and broad way, the coach is willing to have a better way of managing stats and data with regard to individual player's shooting statistics from various different regions in a basketball court, data such as when a player shot, totals of making shot, and so on.

So I have started writing user stories for HPU Basketball Team by listening needs from one of the coaches of the team. Here is what I have got so far:

There will be updates and improvements soon!

Monday, December 3, 2012

Review - The Sims Social on Facebook

I have played the game The Sims Social on Facebook, so I would like to review what I felt while playing this game.

First Impression: This is THE Social Game

I have not played the social game a lot in my life, so at first, I did not know what to do although The Sims Social has a tutorial where players can firstly get used to the world in the game, visual experience, etc. In addition to it, it is really fresh to me to play this kind of game where people can actually interact with others in the virtual world, and this game was more realistic in terms of characters' faces, houses, etc compared to other social games. That's how I felt.

As I keep playing the game, I found that correcting the ball-looking points things that come out by doing some sort of actions in the game is interesting because of its sound and movement when I hover on it. As I kept correcting more, I thought my character in the game is getting better or growing, and I thought that feeling is what inspires players and lets them have fun in this game.

Usage Difficulty?

After I played the game for the second time, I realized that I can move the view of the world by dragging the mouse, and somehow I did know realize it in the first time. Thus, I was having difficulty clicking the ball-looking points to correct although it will automatically be added as points after waiting for some time.

What To Do?

In conclusion, although this game was interesting to me in a way that by doing something, I can earn some points for buying new things and making my character better, I could still not figure out what I really had to do, or enjoy this game. This is because I am a kind of person that I need the purpose or aim when I play the game, so I am not sure. Yet, I really liked the sounds in this game, visual experience in this game, movements of the characters, and varieties of things I can do in this game! Here is the official website of this game (not from facebook): The Sims Social. The announcement trailer of this game really rocks!

Prototype #3 - Peter the Cockroach

Here is the prototype #3 of my game:

Peter the Cockroach

Things Changed:

Here are some changes I made from prototype #2:

  • Added winning scenario:
    eating sufficient food to get over 5 points of score.
  • Added flexibility of understanding singular form of things
    e.g. Just by typing 'straw', the game will understand it as 'straws'
  • Added some food in the game world:
    hairs and leavings
  • Added some randomness in the game to have variety of losing scenario:
    being crashed while crossing the road happens randomly, and if the player is lucky, they can directly go to the kitchen without any hassle.
  • Added score rule that players can earn score by eating food:
    the score the player can earn depends on food.
  • Added a score display on the right side of the game screen.

Things That Will Be Added:

  1. Tutorial mode
  2. Understanding 'help' command to display what commands each player can type.
  3. Understanding 'map' command to display the map of the game world.
  4. Human beings' attacks scenario
  5. Dog chasing scenario
  6. Human Beings' traps scenario
  7. Auto-spelling completion
  8. World extension
  9. More variety of food
Yes, more revisions and improvements needed...!!!!


Now I am kind of getting used to inform7 game development, so I am more eager to add and implement new features and stories in this game.. This game will improve more! :)


Now I have updated my Github page for Peter the Cockroach, briefly created Github Wiki page and Github Issues page. If anyone is interested in, feel free to visit and take a look at those! :)

Saturday, December 1, 2012

Overview of Feasibility Analysis

Since I have mentioned previously about planning in Difficulty of Wise Planning and its Importance, I think it is reasonable to write about what I have learned about feasibility analysis through the reading of System Analysis and Design with UML in this post since both the process of planning and feasibility analysis are sequential and closely related.

What is Feasibility Analysis?

According to the built-in dictionary of Mac OS X, the word feasibility means

the state or degree of being easily or conveniently done: the feasibility of a manned flight to Mars.

This implies that 'Feasibility Analysis' could be something like the process of analyzing the feasibility of doing something. According to the book System Analysis and Design with UML, 4th Edition, it says,
The feasibility analysis is there to guide the organization in determining whether or not to proceed with a project.
So, assessing whether the project plan that the company or a group within the company created is possible to attain its goal or not is the main purpose of feasibility analysis. In order to determine the final decision of whether to proceed the project by injecting company's money into it, the feasibility analysis tries to analyze how feasible the project will be by evaluating 3 different types of feasibilities:
  • technical feasibility
  • economic feasibility
  • organizational feasibility

Technical Feasibility

Technical feasibility assesses wether there is any risks or concerns related to anything technical along the way to proceed the project. For example, as this book suggests, companies can assess technical feasibility by asking themselves "Can we build it?". The question certainly examines whether the company has sufficient skills, knowledge and a capacity of the technologies that are used for the project. In addition to that, companies can also consider is the technology appropriate for the project, reconfirm the necessity of the technologies that they are about to use, whether users or developers are already familiar with this technologies, and so on.

The book gives us some of the examples of how to apply technical feasibility analysis:

  • compare with other projects that have already done within the organization
  • ask for IT professionals whether the project is possible to successfully complete

Economic Feasibility

While technical feasibility focuses on technical risks, economic feasibility, also called as cost-benefit analysis, focuses on mainly financial risks. Companies assessing economical feasibility ask a question like "Should we build it?" while considering its financial factors such as costs and benefits that the project will produce. Assumedly companies would not want to proceed the project if they can assume that costs of it will exceed benefits they can obtain. The book specifically states the process of assessing economic feasibility as
"identifying costs and benefits associated wit the system, assigning values to them, and then calculating the cash flow and return on investment for the project."

The book also mentions with regard to economic feasibility; it suggests that the more the expensive the project will be, the more effort and carefulness that companies should put into their economic feasibility. This is because expensive project simply implies that the big risk that companies have to bear and be aware of.

Organizational Feasibility

The last one, organizational feasibility allows companies to check and see if the outcome of the project, most likely applications, serves, or tangible products, will be helpful to attract more users or customers. The difference between economic feasibility and organizational feasibility is the meaning of benefit -- more actually money, or more users or customers. Thus, the best question to assess organizational feasibility is "If we build it, will they come?"

Not only future users or customers, but organizational feasibility also concerns how existing users or customers will benefit from the project. This means that companies can make sure whether the outcome of the project will create better environment for the user to be more familiar with other products or services, and the company itself. I personally thought that requires somewhat of connections or the brand impression between the project outcome and existing services, products, and the company itself must be shared in common. So that the existing customers or users of the company's business will like the company and be more familiar with it and its business.

Feasibility Study

The overall analysis and the result of those three different kinds of feasibilities above will be combined together eventually and called Feasibility Study. (In fact, in the real world, there a lot more to concern not just what I have explained in here..) This overall conclusion of the analysis will be given to the approval committee at the end of project initiation, and the final decision of whether the company should proceed to the project or not will be made.

Personal Review From the Reading

Through the reading of the section feasibility analysis from System Analysis and Design with UML, I simply thought that there are a lot of things that companies need to consider and be careful about before trying to move forward by doing some new projects and so on. As I will be working as an employee after I graduate from the university, it helps me have an image of how I feel or have to be aware of when I start working there, as it is not just simple as I was just randomly guessing and imagining a lot of things about working in real life from the outside of companies, as a student. Responsibilities, profits, costs, end-users, customers, usabilities, and more... I felt it is just so much to think about and carefully consider before making an action, and I realized that that is the real life, and therefore creating innovations or anything that changes people's ways of living is just so amazing and very far away from just 'good' result.

Wednesday, November 28, 2012

Difficulty of Wise Planning and its Importance

As I have read the introduction of product management section of the book called Systems Analysis and Design with UML, 4th Edition from Alan Dennis; Barbara Haley Wixom; David Tegarden, I have learned how important it is to plan ahead when doing a project, especially when it involves a lot of people, and how difficult it is to successfully plan and actually manage the project to overcome any unexpected issues or problems and reach its objective.

Why is Planning So Important?

This book gives us an example of a wedding ceremony planning - when a wedding ceremony is held, there are always people involved to plan ahead (usually a month before the cerebration day) and manage that everything is set up and ready. This task sounds easy, but usually a task of planning and managing is a lot to do and more than people can imagine before they actually start working on it. In addition, unexpected issues or problems usually go with a project, especially when the project involves a lot of people. Thus, it is important that people plan well and appropriately as possible.

Common Problems or Issues When Planning

According to Systems Analysis and Design with UML, 4th Edition, the common issues or problems managers face are usually these two things below:

  • Optimistic time schedule
  • Too little attention to the essential aim or goal of the project

Optimistic Time Schedule

The first common issue - optimistic time schedule, is usually set due to the pressure or responsibility that project manager feels especially when the business comes around to the important, serious seasons within a year where business must get customers and make profit to survive. In that situation, project managers think that they must make the project done on time at all costs. Yet, planning and forcing themselves to think that something that seems impossible possible usually does not work, and the project will be delayed from as it was scheduled.

Little Attention For Objective

The second one - the issue of Too little attention to the essential aim or goal of the project usually occurs when business tries to make use of new technologies or information systems to experience the innovation of it. In that case, making use of new tech or info systems naturally becomes the main focus of the project; that sort of project imaginably tends not to success since there is no specific aim or goal of the project.


The book clearly suggests the solutions for those common issues above. The first one is having no underestimation for planning and plan very carefully. I strongly agree with this solution and assuming others also, because underestimating the project and being optimistic about it does not help the project done at all - the job of project managers is to manage project done on time with expected quality and result. Thus, I do not think project managers should ever underestimate or be optimistic especially when they are planning and making time schedule for their project. In fact, I think this lesson could be implemented in any situation in our lives not just for business aspects though.

The other solution that the book suggests is identifying business need or opportunity and clarify what is the goal of that project. By doing so, not only having what to focus on, but also people involving in the project can possibly be able to share clearly what the objective of this project is. In addition, having clear goal for it may motivate people to work on and foster the project done, which definitely is positive for project and it makes project managers a lot easier to manage the people involved in the project.


I personally thought I learned a lot just from the introduction of the project management section of the book Systems Analysis and Design - as becoming to be a tech professional, being aware of how project should be going and planned is essential for me and my work. I reconfirmed that how difficult it is to plan things and make things done as planned before.. so LETS PLAN WISELY AND CAREFULLY!

Is there any suggestion or issue that you have encountered while doing some project with a lot of people? Please feel free to comment below and share some of your ideas! :)

Thursday, November 22, 2012

Inform7 - Keyboard Restriction Functionality..?

Background Info

I have been making a game called 'Peter the Cockroach', which is a text-based interactive game using Inform7. This game allows players to experience the world from cockroach point of view and have some thrills by sneaking around and stealing food, eating whatever they can to survive while escaping from any danger.

Through the development of this game, I have realized that having functionality of tutorials would be very useful in order to allow players to get used to this text-based interactive game and the world that I have created in the game.

Explanation of What I Wish to Have

Thus, I would like to create a functionality where, like after the narrative text is shown, and after the player reads that instruction, they can type the word, like 'yes', and it goes to the next instruction, or actually asking the player to type certain words or anything like that to make sure that players get used to the game.

If anyone knows how to implement this functionality in inform7 or some resources where I can take a look, could you please let me know? Mahalo!

Prototype #2 - Peter the Cockroach

Here is the prototype #2 of my game - Peter the Cockroach.

Things Changed

Here are some changes I made from prototype #1:

  • Added losing scenarios
  • Added cars
  • Added direction-recognition functionality - straight as north, back as south, left as west, right as east
  • Replaced some of the rooms - entrance of the house, Garden, and Kannal
Yes, more revisions and improvements needed...!!!!

I was thinking that the victory scenario will be by invading human beings' house through the quest and collecting and meeting more and more cockroach friends, but I guess this would be really huge and tremendous effort required, so I am now trying to come up with new victory scenario - the one I came up is that there is no victory scenario; the player can stay and get higher and higher score by stealing food from human beings house, and when they get back to home, the game will end in victory, but when the player dies through the way, then the player's score will be always 0.

However, I cannot think of any idea so far, so I am actually asking for more ideas for victory scenario of this game! So, if anyone can think of anything, could you please let me know? Any idea will be welcome! :-)

Here is the actual new prototype you can play - Peter the Cockroach

Game Review - A Slower Speed of Light

I have played A Slower Speed of Light recently, so I would like to share the information about this game, how I felt while playing it, and so on, just like how I did on Game Review - MargaritaVille on Facebook.

What is A Slower Speed of Light?

A Slower Speed of Light is a game made by MIT Game Lab, which allows an user to control a character in a 3D world. The player is expected to pick up what are called 'orbs' that are spread out around the 3D world in the game. According to the site, it says:

A Slower Speed of Light is a first-person game prototype in which players navigate a 3D space while picking up orbs that reduce the speed of light in increments.
You can know how the game looks like by watching this video below:

Game Review

I personally found it very difficult to control... maybe that was because I was using a laptop with 4GB memory. (The official website actually recommends using pc or laptop with 8GB or more of memories) I thought the graphics of this game was not displayed properly;the game was very slow to react to the mouse movements.

I realized when I started for the first time, but the game does not adapt to mousepad movements, but only for an actual mouse.

However, I also thought the graphical and visual change by picking up more and more orbs made me surprised and amazed by this game. The more the player picks up the orbs, the more the speed of the character gets faster and the graphical change occurs more dramatically, and I thought this differentiates this game from other games, and that effect is the main characteristics of this game.

Project Idea #3

Hawaii State Judiciary

I have sent an another email to Hawaii State Juniciary since they were recruiting volunteers for data entries, file managements, and more. Although they are courts, and they are not possibly 'non-profit organization', since they are demanding volunteers for promoting more of volunteer opportunities in the community through date organizing and management, I thought I could help them in some way as this project.

According to Volunteer Opportunity Details section on Volunteer Hawaii website, it says:

The Judiciary Volunteer Office is seeking enthusiastic and qualified individuals to assist with the operation of the Volunteer Program. Duties include data entry, filing, customer service, inventory, general office duties, recruiting, orientations and more.

Very similar to my Project #2 idea, I am not sure what kind of program or particular system they are using (I guess they are using Microsoft applications?), but certainly the background for this issue is that they have a lot of data needed to be entered and they are lack of people for entering those data.


Although Hawaii State Judiciary may not be a non-profit organization, I think this is really valuable opportunity for me to have since I do not have much knowledge of judiciaries in Hawaii as well as volunteer experience. I have already sent an email to the Judiciary Volunteer Office, but I have not received any response from them. Hopefully I can get a response from them after the thanksgiving holidays, but if not, I will make a call to them.

The problem that the Judiciary Volunteer Office has is that they are lack of volunteers for data entries and management. What I can offer is the time and human power for data entries and management, and ideally I can offer them some alternatives that they can choose to make their ways of data management better by using some technology, such as Web application or sites.

I am currently looking for non-profit organizations that are seeking some tech volunteers or help. If you happen to know any, please let me know by commenting in this post or in any way. Mahalo

Tuesday, November 20, 2012

Defensive Programming - Being Defensive Moderately

While I was reading the book Code Complete: A Practical Handbook of Software Construction, Second Edition, I learned what defensive programming is and more specifically, how many actions programmers can choose to take when dealing with unexpected or bad inputs.

What Is Defensive Programming?

According to the Code Complete book,

In defensive programming, the main idea is that if a routine is passed bad data, it won’t be hurt, even if the bad data is another routine’s fault. More generally, it’s the recognition that programs will have problems and modifications, and that a smart programmer will develop code accordingly. - Code Complete, Chapter 8: Defensive Programming

I, thus understand the concept of defensive programming as 'Correctively dealing with unexpected(which mostly means 'bad') data so that letting the program still functional as expected.' Let me know if you find or think there is something wrong with this way of understanding..


There are many ways of defensive programming discussed in the book. One of the ways of defensive programming is called assertion.

The code below is the example of the assertions discussed in Java from this book:

This assertion checks if denominator is 0; if it's 0, then it should be highlighted and the programmer need to know that, so it will display a message saying

denominator is unexpectedly equal to 0.

Defensive Programming for Having Safety Net and Program Efficiently

The example above was just one of the many examples of ways of defensive programming in the book. Defensive programming allows programmers to have a simple, but useful safety net from crashing the program or unexpected errors or bugs that may cause the development slow, which definitely will be crucial and serious if you are doing that for living, certainly. Thus, defensive programming is an option that all programmers have, to protect themselves and program efficiently.

Monday, November 19, 2012

Game Review - MargaritaVille on Facebook

I have played MargaritaVille on facebook recently, so I would like to share the information about this game, how I felt while playing it, and so on.

What is MargaritaVille?

According to the official website of MargaritaVille, it says:

Margaritaville ® Online™ is an everyday escape to a virtual tropical paradise inspired by the lifestyle of author and singer-songwriter, Jimmy Buffett.

Basically you have a character assigned when you star playing it, and you can have a small virtual life in a tropical paradise with this character by changing what to wear, talking to people, buying something, exploring the virtual world, and more. If you can see the official Trailer below (if you have never seen it before), that will help how the atmosphere of the game is like..

Review of the Game

I have not played the game for very long time, but MargaritaVille on Facebook was really interesting enough just by moving your character and exploring the world; the world and the movements of the game are clearly made neatly (as game designers and more and more professionals got involved I suppose..), and I personally like the sound effects that this game has, especially when you hit and destroy the blocks of container :) Overall, though, although I liked those sound effects and how we can change the character's avatars and so on, the game did not interest me enough to let me actually think I wanna play this game more!!

Could It Be Better...?

One thing I realized was (very small thing, but..) when the player clicks the virtual people to have a conversation with them, normally the game manages that both characters to be face-to-face so that it seems like that virtual people are actually talking as people in the real world do, but in a certain situation (I guess when the player manages their character to approach to other virtual people near enough), this effect does not function properly and the player does not move their face to the person the character is talking to, like the picture on the left.

Although I guessed that this very tiny thing does not matter to the atual game play, it is so little that nobody who is playing this game bothers to care, I thought because there are so many games that have the same, very tiny issue, I thought that MargaritaVille could make it better by fixing this tiny little thing I had realized while I was playing the game.

Yet, I really enjoyed playing this game! :)

Sunday, November 18, 2012

Project Idea #2

Institute of Human Services

I have sent an email to another non-profit organization, IHS(Institute of Human Services), and thought that the kind of volunteering they are demanding, which is 'Program Assistant with Data Entry and File Management' could possibly be connected with my project of web app or site development (or not).

According to the Volunteer Opportunity Details section on Volunteer Hawaii website, it says,

IHS' Wellness Clinics are in need of assistance to activate our new Electronic Medical Records program - lots of data entry required. Are you available 4 or more hours/week Monday thru Friday? Please help!!

I am not sure what kind of program or particular system they are using, but certainly the background for this issue is that they have a lot of data(Medical Records) needed to be entered and they are lack of people for entering those data.


I can tell that IHS is certainly willing to enter medical records into their new Electronic Medical Records program, but since they are lack of people or money to hire some people, they cannot achieve what they are willing to, and by me volunteering as a program assistant with data entry and file management, maybe I can help them achieve their goal, which leads to foster their social work - 'comprehensive social services agency working to prevent and end homelessness in Hawaii', and moreover, maybe I can make use of knowledge and skills I acquired and am acquiring now through SE class and more.., which definitely will be great experience for me as well.

I am currently looking for non-profit organizations that are seeking some tech volunteers or help. If you happen to know any, please let me know by commenting in this post or in any way. Mahalo

Saturday, November 17, 2012

Project Idea #1

Creating Something with Ruby

Since I will try to help some of the non-profit organization by creating something that they are willing to have, I thought it will be a great idea to actually find out what kind of non-profits are currently demanding something that I can possibly implement using Ruby. I have used Volunteer Hawaii for it, and found out that there is one non-profit organization that is currently seeking some volunteers, which is St Francis, located in Honolulu.

According to the website, it says:

Examples of How Volunteers can help : Administrative Office Support . . . Gardening . . . Horticulture....Videographer . . . Web Design . . . Writing grants . . .Calling donors...... and Participation in special community projects.
So, I thought I may be able to help them by creating website and web application using Ruby and basic knowledge of HTML, CSS.

I do not have any specific info with regard to what kind of particular issues that St. Francis has, but web development is certainly where I will be doing for living, so I am very motivated and interested in helping them.

I have already shot an email but they said they won't be available till next monday, so I will wait with a hope of heir response saying that they are welcoming me as a technical volunteer.

Meanwhile, I will keep searching other non-profit organizations that are seeking volunteers or having any issues that I can possibly, at least try to solve.

If anyone is interested in a volunteer opportunity at St. Francis as I mentioned above, do check out the link here. And, if anyone knows or found any non-profits that are currently seeking volunteers, especially in technical field, please let me know :)

Tuesday, November 13, 2012

SMART User Stories

While I was reading the textbook 'Engineering Long-Lasting Software', I found an interesting concept for creating a good user story, SMART User Stories, so I just would like to share it.
According to the book,
"The SMART acronym offers concrete and (hopefully) memorable guidelines: Specific, Measurable, Achievable, Relevant, and Timeboxed."
- Engineering Long-Lasting Software

What is a User Story anyway?

User stories are the basic requirements for the Behavior-Driven-Development, which is one of the phases of the Agile lifecycle. (I have explained what Agile Lifecycle is in my blog - 'The Reformation of Software Engineering Process: Agile Lifecycle') User stories are there to help development stay on track as expected and be how it is expected to be.

Going back to the SMART user stories, each word in the acronym has specific meaning and purpose to it, so I would like to introduce that below, one by one:

SMART Checklist

  • Specific - Is the story specific?
  • Measurable - Can the story be tested and measured through evaluating the output?
  • Achievable - Can the story be implemented within each Agile iteration?
  • Relevant - Does the story have business value "Why is it needed?" to one or more stakeholders?
  • Timeboxed - Does each story have a specific time budget?

Following this SMART check list for creating a good user story makes it possible to plan and prioritize development, thus have more efficient and stable Agile lifecycle. I personally have not created any user stories or done Agile development, so I will definitely try it in the future :)

Monday, November 12, 2012

10-min Free Writing Just For Fun!

Free writing

I have done what is called 'free writing'. I thought it is fairly interesting to see what I have got after I finish it; I felt like I was objectively reading what I had written, and it is very interesting since although those words are what come out from my brain and literally I typed, but those just did not seem to me so.

However, I personally found it not natural thing to do since English is not my 1st language, and my TextEdit's auto-spelling collection rewrote some of my words or fixed my mistyping. Anyhow, I strongly recommend that people do that just for fun although I do not think this is really outstanding or amazing activity that dramatically changed my way of thinking or whatsoever; it is just interesting to actually take a look at what you are thinking or creating unconsciously in your brain, I guess :)

Here is what I have got from my 10-min free writing:

I don't think it is very important for us to know each other just because people are different from each other. I doth think it is necessary for usto know each other wsas well. The thing most important is that we need ourselves sos sire isto top doing that. I think it is necessary animals and people nature sea sky blue anything that is related to human beings i think interesting it is that we are in hawwaii now studying english and so on those important things will affect our future i am so sure. but the key concept again is that we need to focus on things we do right now not for the future because pooeple need to live and so on . the man is standing behind the sky and train and it is snowily and things get screwd but no worry. I think the sound of music makes people happy in a better way since it is necessary for us to focus on and concentrate on one thing and music makes it possible for us to do. but music is hard tfor making money and i understand it but creating music and harmony is so beautiful but calligraphy is also beautiful but does not matter who you are but things get matter is we do not know about it and thus it is not important so life is easy and get go on and go beyond and get salary and find yourself stupid is sometimes important i think. the iPad is very beautiful and steve jobs is really crazy and intelligent but those new things make us drive crazy sometimes because we really do not need those things but people try to buy things and they stick to it and it is not important. coffee make sme think more better and worse sometimes it is not very good for driking coffee but asai bowl is very delicious but it is not important and earphone and laptop pc and macbook air and other things are mechanical and those things vary and change our way of living but it is the nature that we need to care not the machine and our human beings are growing and increasing its number dramatically and the earth is afraid of us and so we are afraid of the earth and it but toes it make sense not seems and no sense but whatever and i think shark bag is my favorite thing cuz it is cute no not cute but it is easy to carry and easy going music i love and those things doe no matter but i do not think life is easy but sometimes we care about totters and others and happiness and utopia and other things as well. i have work to do in the future in tokyo shibuya and excited about it but it does not matter right now no it matters for me and game programming is a lot of fun but it has a lot of things to do in my life not just for game programming and my grandfather told me something with his white hair and old tiny eyes and smiling and small wind makes us very comfortable and happy and green mountains and grasses make me think that it is very calm and helpful and peaceful and the world is wonderful but it started raining and everything changed and typing is very tiring now and why i am typing and typing gets really fun and all of these things are now really fun and gosh i think i am typing a lot fin 10 mins and but it is fun cuz i have never done this sort of things before and i think writing in pencil varies from typing but i think its still worth doing so i think by doing so i wanna learn new things and new ways of thinking and get better and grow but game programming is so much fun and inform7 is difficult and sometimes i get stuck bjsut because i do not know how to do and twitter and i thought i need to create another account for it and coffee makes it fun and typing growly. i guess things get matter or so .

Friday, November 9, 2012

Peter the Cockroach - Prototype

Here is my prototype for the game 'Peter the Cockroach'. If you click the link below, it directly goes to the browser where you can play around the world I created using inform7.

Peter the Cockroach

Note - I have just created the basic map without any win or lose functionality.. The basic map for this prototype game is below - you can move around by typing

go [direction]
where direction could be west, east, north, and south.