Blog Post 7: GPS Game

pokemon-go-release-date-beta-image-jpg-optimal

I have been playing games for a long time and have never seen such a large reaction of out our society because of one. For the first few months of the games release parks were full of people attempting to catch Pokemon and battling for gym domination. It was something that I did not expect and something we will probably not see for a very long time again.

I started to play Pokemon Go when it was released for North America. The game is pretty simple. You character  walks around a 1:1 replica of earth. The game is based off of your phones GPS so where ever you go your character goes. Along your travels Pokemon will pop up and you can attempt to catch one.  To catch a Pokemon you have to click on its avatar that shows up on the map. You are then taken to a screen in which you will have either a cartoon background (which made catching a whole lot easier) or a background that was created by using your phones camera (which made for some fun pictures *see below). The Pokemon will show up in the middle on the screen and you will have a Poke ball beneath him. You have to flick the Poke ball at the Pokemon and if you hit him with it (and he does not doge it or knock it away) the Pokemon gets captured inside the ball. The Pokemon then has a chance to escape the ball as you watch the Poke ball rock back adn forth three times. You have a better chance of catching a Pokemon if you throw the Poke ball at the perfect size of a little ring that gits larger and smaller around the Pokemon. The ring around the Pokemon will go from the size of the Pokemon to really small and if you land the Poke ball inside the circle you get more points for catching it and a higher chance of it not escaping. After you catch the Pokemon you get a candy with it which allows you to level up the Pokemon once you collected enough of the candy. Some Pokemon require 25 candy some 100.

img_2016-07-14-20443446

That is the game, you travel around finding Pokemon and trying to catch them. You then catch more of the same Pokemon, sell extras to the Professor, the only NPC in the game, and level up the ones that you want. You can then use these Pokemon to take over Gyms that are found around the maps. The Gyms are usually a special or unique place like for instance an Airport or some notable clock tower.

I played Pokemon Go pretty solidly for about 2 months after its release but then I started to get bored of the game. It was neat having the real world and game world blend in but the way you captured the Pokemon was kind of a let down. I grew up playing Pokemon for the Game Boy starting way back when I was in middle school. Those games are RPGs where you battle other Pokemon in a turned based battle. I wanted something a long those lines, where if you win in combat your Pokemon get stronger and stronger. I don’t find it fun having to catch 50 Charmanders to make one of them stronger. It takes away from one of the most important aspects of the show and game where your Pokemon are special. You grow as it grows and you have a “bond” with it. In Pokemon Go there is no bond between you and your Pokemon. You simply get 50 of the same thing and pick one to level up while discarding the others.

Battling is another let down. When you are trying to take over a Gym you enter a battle screen where you flick you Pokemon back and forth dodging attacks and attacking the other Pokemon. Again has a long time player this was also disappointing. Battles became how fast can you click the enemy Pokemon in attempts to attack it. Some battles became a simple exercise in swiping your Pokemon twice making it dodge twice then clicking the enemy Pokemon to attack. Dodge doge attack until the enemy Pokemon feints and you win.

The social aspect of the game is pretty cool. For the first time in ever me and my friends would go out to some park which was known to have rarer Pokemon and walk around trying to catch them. We would split up in the park and call each other over if we found something. Some of us were on the same Team (Mystic, Instinct, Valor) and we would all attempt to take over the Gym and keep it on lock down for ourselves. The really neat thing about this game is that we were not the only ones doing this. The park would have hundreds of people walking around attempting to catch Pokemon too. It was quite a special moment. This part of the game was fun and it got us out doing things we wouldn’t normally be doing. However, I stress again the rest of the game was a let down. After I caught a sizable chunk of the Pokemon it stopped being as fun. I caught hundreds of Pidgeys in attempts to level my character and after a while it just got to be a chore.

Pokemon Go is a special game. Hundreds and thousands of people were out walking around catching Pokemon and helping other players. People of all ages played too. However, the simplicity of the game and, in my view, crappy battling eventually turned me away. Maybe with updates and being able to battle your friends I will get interested in it again but for now I have it uninstalled on my phone.

 

 

 

 

 

 

Blog Post 4: Video Game Lab

When I was young and just starting to play games in the late 80’s they were hard. Some of them were really hard and never ending (or at least I never got to the end). There are many different reasons games used to be hard. Limited amount of lives, limited amount of health, poor design ect. As the game market exploded, games became easier and easier. Many did this for the sole reason of reaching a larger audience, others because game mechanics and quality of life improved. Some examples of these game mechanics are being able to save anywhere and automatic health recovery.

darksouls

There have been some large game releases that buck this trend however. Daemon Souls and the Dark Souls series are some examples of this. There are also a large library of games with small developers that set difficulty as one of the main mechanics of game play. Two with which I have played are “I Want to Be the Guy”(IWTBTG )and “Wizard Wizard”(WW).

wizardwizard

“I Want to Be the Guy” and “Wizard Wizard” share many game mechanics other then their difficulty. Both games are side scroller, both are 1 hit and you die, both start you off at the beginning of the level when you die and both make you want to break something when you die to it for the 10th fricken time!

Even though they seem very similar there is a few differences. “Wizard Wizard” uses a pixalated art form. This art form has gotten popular for its retro style look and more games are adopting it. IWTBTG art is just bad, not much to say about it except that it uses sprites from other famous famous games like Mike Tyson’s Punch Out. Part of the experience of WW is the use of the pixel art as you navigate the world. IWTBTG is something 5 old you would draw on a Sunday morning, nothing special and quickly forgotten.

iwana

IWTBTG and WW also play a bit differently. In IWTBTG you are meant to die and you die a lot. There are so many hidden things that will kill you throughout a level that it takes a while to memorize them all. And that’s all it is. You run through a level and die and then try it again until you don’t. You learn the path and a bit of the timing and you win. The difficulty is in the learning the path part but once you have it the game is not so bad. From my playing of WW it is a lot more fair. There are a few spot that will kill you because you didn’t know things would jump out or would fall but the majority of the time its about timing you jumps to collect the keys and make it to the gate. Both games are similar in that their difficulty but their approach to the difficulty is different.

The last game that I played is “Don’t Shit Your Pants”. This game has almost nothing in common with the others. First is a text based game in which you can only do a handful of things. It all takes place in 1 level and last no more than a few minutes. The point of the game is to make it to the bathroom, take off your pants, and shit in the toilet. Easy right? Well I wont say that  is the main game. The main game is finding all the achievements in going about not shitting your pants. You mostly type stuff in and see what happens. There are no hints, you have to explore the mind of the developer and try things that you think he would put in. For example at the start of the game you can simply say ‘Shit’ and the game ends and you get an achievement. Next you can try to sit on the toilet without taking off your pants and shitting, another achievement.

During this lab I played a game and then watched my partner play. There has to be something said for watching a game being played.Watching game streams has become big business for streamers and the streaming service. However watching a streamer and watching your partner play are a bit different. For starters when you see someone next to you playing and dying to the same thing over and over it kind of makes me irrationally angry. Like HOW CAN YOU NOT SEE THAT YOU CANT GO THAT WAY FOR THE 10TH FRICKEN TIME!? But seriously watching someone play you get to pay more attention to whats happening because you don’t have to worry about the controls and moving the character around. I usually am able to see a  strategy faster by watching someone else play rather than playing myself. Watching someone else play can also be relaxing since you don’t have to deal with the stress of dying over and over again, this comes from mostly watching streamers. You can just watch the screen and enjoy the game rather then worrying about the mechanics. Playing the game, however, is much more fun and I would vastly prefer to play than watch someone.

dont

Creating a HTML5 Desktop App with NW.js

If you haven’t heard of Slack, a app for team communication, then I highly suggest you check it out. I use it to communicate with my developers at SlickScript, with the managers at Lunardi’s and have used it for some projects in class. Its simple, clean, speedy, and in short I really really like it. What I like most about it, besides the three reasons above, is that it has the same look and feel no matter the format in which it is used. That is Browser, phone, and desktop app all have the same look and work in the same way.

I have been thinking of creating a schedule app of sorts for Lunardis since their way is very inefficient. First they write their schedule, a rough draft of it. They take this rough draft and re copy it over while at the same time looking for any mistakes they may have made. After this, they again re copy the schedule to make it clean and readable. The schedule is then posted for everyone to see throughout the week and come Friday the managers take it down and fill out payroll based off of it. However, payroll has a different format. The managers must add up all the hours that someone works and place what they get in the appropriate columns. These columns include; reg hours, Sunday hours, overtime hours, and something called prime hours which is the hours between 10pm and 6am where clerks make 50 cents more an hour.

As you can see it takes a lot of effort to write a schedule and deal will payroll. The idea for my app is to cut this waisted time down by about 75%. All the manager has to do is plug into the app the time that the person is working and it will fill out the payroll portion for them. They will only have to write one schedule since it is digital and will be clean and neat the first time. The way they enter the shifts would be the way the are printed (10:30-7:30 OR 1030-730) and the app will take care of the rest. I can even keep track of the amount of people that are working a day and other important tracking aspects (how high payroll will be at the very beginning for example).

For now thats the general idea. I have never used NW.JS before nor have I done much with HTML5 and javascript. I will be learning as I go and keep track of everything here.

AWS: Cloud Formation

Diving into AWS head first with no real knowledge about well anything can be a real daunting task. Yet, here I find myself lost but not alone thanks to Youtube. I quickly watched a few videos and read a few blogs about the basics of AWS and was tasked with first launching a CloudFormation template that created a instance and allowed SSH with a key pair.

PS 6: Last problem set for CS149 @SJSU

Our instructions: 

  • The purpose of this assignment is to practice making multiple concurrent Linux I/O system calls in C, with a server process listening to multiple sockets and multiple clients communicating with the server process over the sockets.

    Server

    Create three sockets (local communication sockets), named as “CS149-Socket1”, “CS149-Socket2”, and “CS149-Socket3”. It must use the select() system call to determine whether any of the sockets has received connection request and/or any input data. The select() call is necessary so that request/data on any socket(s) can unblock the server. Once data is received from a socket, it first writes back to the client “received from socket ID:” , following by the content received. The “socket ID” should be replaced with the actual socket name (server socket name) from which the data is received. Then it should print out the same content on screen as well as to an output file “server-output.txt”. The server repeats the process of listening/reading/printing/writing with an infinite loop until terminated by user (via Control-C).

    Clients

    Create three client programs (namely Client 1, Client 2, and Client 3). Each client can start/terminate independently and should connect with the server via one of the three sockets created by the server respectively, i.e., Client 1 connects to socket “CS149-Socket1”, Client 2 connects to socket “CS149-Socket2”, and Client 3 connects to socket “CS149-Socket3”. Each client will ask user to type in a string and then write the string, appended by the client ID, to the corresponding socket. For example, if user input string to Client 1 is “CS149 class is great!”,

    then Client 1 should write the string “Client 1 user message: CS149 class is great!” to the socket “CS149-Socket1”. The client should also write the same string to a file “client1.txt”. Then the client should wait for the response from the server. Once the response is received, it should print out “Server response received:”, following by the content received. It also should write this to the output file “client1.txt” and repeat the process (waiting for user to input the next string, etc) until terminated by user (via Control-C).

    ————————————————————————————————————————————————

    Let the fun begin.

    Ok so first off this has to be coded in C. I haven’t coded in C for quite a while so time to do some reading.

    The professor added a number of src files that show which each individual thing does. That is he has the Client, Socket, and Server src files. I am guessing I am going to see how each portion works and build a program that has all 3 components….. In Java this would be easy since I know the language pretty well. Doing this in C though is going to take some time.

Blog 8: Handing off a project to a client; what are the risks and challenges?

You think that by having completed coding on your project and finished bug testing you are done? Not so fast! The final task for your team is successfully handing the project over to the client. Sounds easy? It can be depending on the project. A simple app for a cell phone? Just upload it to a App store with a description and you are done. But for a larger project, one that is not going to be on a app store, things are going to get a little more tricky.

First and foremost, what are you going to hand over to the client? Are you going to send them every single thing you worked on? “The choice of what to do with production graphics is up to you. Some designers keep their original, editable versions of their graphics. Others hand over all the files.” (Karl, Sahlin).  The most important thing to understand is that whatever you send you should always keep a copy for yourself and that you should document for the client exactly what you are handing over and why.

The next hurdle you must cover when handing over a project is how much support are you going to give the client? Are you going to train them on your whole application? Chances are that the client might not know how to use your program so at the very least you will need some sort of documentation on its workings.

How is the client going to get the application or program anyway? Are you going to transfer it by a disc? is it going to be a direct download somewhere? Are you using a app store? If like in my teams case its a website Karl and Sahlin write, “ Best practice is to deliver the site itself to the client’s web server via FTP (File Transfer Protocol).” Although it may seem pretty basic you need to have a plan on how to send the completed project to your client.

There are probably countless issues you can have delivering a completed project to your client. To minimize any problems take extra care in creating your documents and action plans in the deliverables. This will save you a major headache in the end when all you probably want is to be done with it.

 

Images from:

http://www.hetek.hu/szabadido/201103/szemelyre_szabott_szakdolgozat_lusta_diakoknak

http://www.inkcinct.com.au/web-pages/cronological/2008-july-dec–cronological.htm

Sahlin, Doug, and David Karlins. Building Websites All-in-one for Dummies. 3rd ed. Hoboken, N.J.: Wiley, 2012. Print.


Blog 7: What five technical skills are employers seeking? What five soft skills put you on top?

Seeking employment is a competition that puts you against everyone else who could be possibly looking for the same job. So ask yourself, why would they hire me over the next person and you can’t answer with because my grandma says I am a special (I’ve tried, it doesn’t help).  There is no sure fire way to get any job. The only thing you can hope for is to know the technical skills required for the job you are seeking. If, like me, you are a CS major, you better know how to code and debug. However, unless you are some prodigy you are also going to need other skills to put your resume on the top of the hire pile. What are these magical skills that you so desperately need?

 

  1. Communication
  2. Team Work
  3. Critical Thinking
  4. Time Management
  5. Self Motivation/Drive

 

These skills are called “soft skills” which means they have to do with who you are more than what you know. For example I know how to code but can I work with other people to create an app? Could I even communicate what my code does? In today’s extremely competitive market knowing is not enough. You must be able to work within a team, within a company to get hired.

Starting from the top, Communication. This is probably one of the most important skills you could ever possibly have. OK, maybe not the MOST important but it is essential. Being a smooth talker can get you far in the world and can help you land a job that you may not have all the qualifications for. As a manager when an angry customer complains about something it is my ability to communicate thoughtfully and sincerely that  (hopefully) defuses the situation and lets the customer walk out satisfied. Think of it this way (for all the college students out there) did you learn more from the teachers that spoke well and fully articulated their subject OR from the teacher that could barely speak a sentence without getting lost?

When you work with a company you are working with a team. Whether that team is two people or a few hundred you are still part of something that is greater than you. Would you rather have a bunch of people who couldnt get along and work with eachother (take a look at Congress) or have a group who could get along and coperate? If you cant play nice then you need to learn how to fake it. Again that is unless you are some super talented god of whatever you want to do.

A important life skill in general( much like the rest but this one is sorely missing in society) you need to be able to think critically. That is you need to be able to see a problem and by using logic, deduction and along with a little research find a solution. When you get hired you are going to face many issues and it is going to be up to you to solve them youself. A company is going to want people who are able to think for themselves and not have to be hand fed.

Time Management is not something that I excell at. But it is a very important soft skill to have and one that employers are looking for. If they ( the employers) think it is going to take x amount of time to do anything and you are taking 2x to complete it then something is the matter. Either you dont have the required skills or you are spending too much time on the internet and not enough doing your project. Time Management is being able to see your tasks and plan them so that you can maximise your work with as little down time as possible.

Last but not least Self Motivation. A company is not going to want to higher someone who doesn’t do anything for themselves. When I am looking to hire someone or promote them I want someone who looks for task to do themselves and always stays ahead of what needs to be done. People who lag or people who I need to tell every five minutes to do something is not someone I am going to want to promote. On your resume you can easily show you are self motivated by putting down personal projects that you have completed and or attempted. If all you have ever done in programming is make a “hello world” program then you probably are not the motivated person that an employer is looking to hire.

There you have it, FIVE important skills you must(should) have to get hired in today’s job market. Of course this is by no means set in stone and not the only skills that you need to have but it is a good start. If anything I am a firm believer that these skills would at least make you a better person if you hold on to them and practice.

Images from:

http://www.improvizations.com/kronosblog/bid/91150/How-to-Track-Skills-and-Certifications-in-Workforce-Timekeeper

https://www.modernlifeblogs.com/2012/11/5-tips-to-maximize-your-leadership-skills/

http://www.beyond.com/articles/soft-skills-vs-hard-skills-what-are-retail-employers-looking-for–12548-article.html

Casserly, M. (n.d.). The 10 Skills That Will Get You Hired In 2013. Retrieved November 15, 2014, from http://www.forbes.com/sites/meghancasserly/2012/12/10/the-10-skills-that-will-get-you-a-job-in-2013/

Hansen, R., & Hansen, K. (n.d.). Top Skills and Values Employers Seek from Job-Seekers. Retrieved November 16, 2014, from http://www.quintcareers.com/job_skills_values.html

Mason, B. (n.d.). Careers | Top 10 Soft Skills in Demand | LiveCareer. Retrieved November 18, 2014, from http://www.livecareer.com/career-tips/career-advice/soft-skills-in-demand#.VHtmJDHF-rh

What are the top ten skills that employers want? (n.d.). Retrieved November 20, 2014, from http://www.kent.ac.uk/careers/sk/top-ten-skills.htm

Blog 6: My personal take on Agile

While doing many programming projects that where for school and personal learning I found myself getting lost in my code. Where some might say that’s good in that I am really diving in it; I found I was getting lost for all the wrong reasons. The key for me is to stay organized. On anything other than a simple code test I found myself doing a lot better when I wrote down my classes or jotted down some notes on what I wanted to do. I am no Bill gates or Mark Zuckerberg and so I need a little extra planning to get my code working. This plan can be of many different forms. I could be writing down my desired classes and making a UML diagram to piece together how it’s all going to fit. I could even simply write down what I need to happen and then break that down into methods. All I need is something that will help keep everything out of my brain and stuck in the physical world so that I can visually see my ideas.

Why is this important? Well more or less what writing down and staying organized for my personal needs is to me, Agile is to a team. Agile is all about organization and staying focused on the project and the dreaded deadlines. From my own in use classes I feel that our team is better equipped to handle our project once we started to use Agile. We force ourselves to meet up and talk about our project, throwing out ideas that we need to improve on. Before we might not have met up so much and have had as many discussions about a project. Before we used Agile we wouldn’t have been as organized as we are now mostly because with all the required documents and ideas for our project. Staying organized is not very easy with 5 random students who have already more work to do then hours in the day. But with Agile our projects have gotten easier and we have become more effective at completing our tasks.

That’s my personal take on using Agile these past weeks. With the Burn Down charts and the backlogs my team has been able to stay more focused on our target and more effective at getting our projects goals done. My personal favorite thing about Agile? User Stories. User Stories allow you (or at least me) to view a problem or a project need in a different light. It allows the developer to put themselves in other’s shoes to see what the project needs to accomplish. I love that. Everything is about perspective. And with User Stories we are better able to see what our end goal is with many different perspectives. This allows for a better product and a more complete project.

My thoughts when told I need to put more thought prior to starting projects

Images Courtesy of:

1) http://meta.stackexchange.com/questions/66753/what-software-development-methodology-was-used-to-develop-stack-overflow

2) https://allthingsmoralandphilosophical.wordpress.com/ (ps Thank you Bill Watterson)

Boehm, B. (2002). Get Ready for Agile Methods, with Care. 64-69. Retrieved October 15, 2014, from http://www.csis.pace.edu/~ctappert/cs615-02/boehm-2002-agile.pdf

Ambler, S., & Holitza, M. (2012). Agile For Dummies®, IBM Limited Edition. Hoboken, NJ 07030-5774: John Wiley & Sons.

Blog 5: LinkedIn profiles, how to use them, how to market yourself, how to network

In today’s world we have many ways to market ourselves to potential employers, investors, and clients. The important part to take from this is that we have complete control over how we are viewed by others. The Myspace (or Facebook) of the professional world is LinkedIn. Like the other social networks you are able to post a great deal of information about yourself. Unlike the others however, you don’t post how crazy you can get at parties or how much you can drink. You post your technical abilities, experience, and former jobs. It’s like an online resume that anyone can see (as long as your profile is public). The other great thing about LinkedIn is that you can be connected to other professionals in fields that you work or would like to work. This is actually amazingly powerful because it gives you an inside to a potential job. If you have questions about a specific job or want some information about a position you can follow a person who holds that position and be able to talk with them about it, as long are they are willing of course.

 With LinkedIn we are able to market ourselves, easier and more powerful than any time before. We are able to connect to people in a meaningful, professional way that will help your grow in your career. With LinkedIn we are in charge of who we connect with and how potential employers see us. To see how important LinkedIn can be here is an excerpt from a Forbes article, “To put a sharper point on it: If you don’t have a profile on LinkedIn, you’re nowhere. Partly motivated by the cheaper, faster recruiting he can do online, Campagnino plans to make as many as 40% of his hires in the next few years through social media….. e. If you’re serious about managing your career, the only social site that really matters is LinkedIn.”

From my personal use I have enjoyed a wide range of support from many people whom I cross in my daily life. Customers who I have known for years give me endorsements on LinkedIn all the time making my profile look better and better with each passing day. One or two might not mean a whole lot but with all the support I get from friends and colleagues it makes my profile look a great deal better. To a potential employer this could mean the difference between getting an interview and being passed over.

Images Courtesy of:

1) http://straightinfo.wordpress.com/2014/01/28/facebook-posts-can-ruin-your-chances-of-getting-your-next-job/

2) http://www.jobhuntingu.com/2014/01/29/3-stupid-mistakes-keep-getting-great-job/

Hempel, J. (2010, March 25). How LinkedIn will fire up your career. Forbes.