Thursday, April 21, 2016

Final Answer

Hi All,
This was officially the last week of my internship, and it was an amazing journey. And I landed a job with a software company too, which could be really useful down the road and separate me from other peers with no job experience.
I'd also like to give a final answer to my research question as my last blog.
I concluded that just from a beginner perspective, both Java and Python had so many more resources, in turn making it much easier to not only learn, but understand the underlying concepts as well. With C#, even though I have been using it for three months now, I can not still confidently say "I am adept at writing C#". Java could have easily fixed some of the major problems I dealt with with C#/selenium testing. There were a lot of pros to using C# though, like the .NET framework compatible with C# easing some of my methods' code. But in the end, I think if I had used Java, I could have finished and successfully ran my tests much faster than I would have right now! Unfortnately, I had to use C# for the company though!
Lastly, here is a link to my final presentation, which I will be presenting in a few weeks!
https://docs.google.com/presentation/d/1XrZJZl6q29y1R75v4KI2jcBJ-6SGAbSq5pqIzWM-zLw/edit?usp=sharing

Saturday, April 9, 2016

Game Design

I started doing some research comparing c#, c++, Java, and Python. One huge, huge negative of C# is that it only works on a Windows application. All other languages work across any platform. This is probably the main that it is not as popular as the others, and also why there are far less resources online dedicated to teaching C# as opposed to c++ and the other ones.
One thing I have really noticed a I begin creating my game though, I can write the code for the game, following along with tutorials (and I could do it myself now at this point), but I still don't know what I am actually doing. When I try to find what the method or framework means, it redirects me to a different link, and that same process goes on till I give up. This week, I started learning Python just for fun, and one main difference I can tell is that I actually know the concepts behind what I am coding, and it makes it much easier to learn and grasp.
Follow along as I continue making my game!

Friday, April 1, 2016

Game Design

So I started my game (kind of). I figured that after learning the methods I needed to for automated testing using c#, and through all the random Youtube videos and forums online, I had a sufficient enough knowledge to create a basic game. Turned out I was wrong, I had no clue where to even start. So, this week (and weekend maybe), I will try to begin learning all the different methods and packages I need to create a basic game. My goal is to get one done by the end of the week (just a poker or blackjack game with user vs cpu). Then, I will have a couple more weeks to not only explore the pros and cons, but also move on to try to create a more advanced game with visual aspects incorporated such as a picture-card matching game.
I will give another update in just a few days on creating the poker/blackjack game, so stay with me on my exciting journey through the world of code!

Friday, March 25, 2016

Using C#

So my initial question for my senior research was whether I thought C# as a good language to write script for beginner game design, along with my internship. I have not started the game quite yet, but I can successfully say using Java would have made this a much easier process (at the internship). Unfortunately, I am unable to do that because the rest of their software is already in the C# language, and Loop Logic preferred uniformity. Note that in no way am I blaming the company, just pointing out a few flaws in the C# language.
Here is the man problem I have run into with C# that Java could have fixed:
when uploading a file to the browser (i.e attaching a word document to your email), C# has two ways of doing so, and only one way works all the time. Unfortunately, that one way requires the utilization of an external application, making the process much more arduous. On Java, there are two easy ways to do it that work all the time: a built in "SendKeys" method, and a package one can easily download specifically created to upload a document!
There have been a few other bugs along the way that have made me think that Java would be better as well.
I will start designing my game, so my next post will be about the pros and cons of C# in game design.

Friday, March 18, 2016

Same Old Thing

Hey guys,
So this week, I have just been doing more of the same thing: automated testing. Today, I'll talk about what I've been doing wrong.
He thought me an important lesson though. Whenever running any type of simulation test through any language or platform, always keep the test small. My one successful test, unfortunately, was around sixty lines of code; a test done properly should have no more than twenty for running simulations. What I did was create one large chunk of code that was able to run every single task he had asked me to check. What I should have done was many more classes, and each class would have a different, smaller task. For example, one method could be just creating a presentation (one of the user simulations I have to run), and the next method could edit it. That way, I can also add code to assure it does the correct action, and no small errors are occurring. This is where I made my second error. After every line of code that simulates a user action, the next line of code should be an assertion making sure that the "click" making sure what was supposed to happen actually happened.
So, those were my two main errors so far, but other than that, it has been smooth sailing!
Next week, I'll start making my game and talk about that. 

Monday, March 14, 2016

Space Camp

So for the last twelve days, I was lucky enough to be selected to a Space Camp through my Dad's work (Honeywell), and it was an absolutely amazing (you could say it was out of this world) experience-- so much that I have to talk about it a little before I talk about my senior research project again.
So to begin with, it was really cool meeting people from all around the world-- literally-- and learning to communicate and creating friendships with those who do not even speak English! They had activities through the day that actually helped build leadership skills, and we were put in teams to do various activities like building a heat shield. We were given mesh, some wire, and aluminum foil, and asked to build a shield simulating that of re-entry of a shuttle into the atmosphere--actually the hardest part of the process. Another cool challenge was rocket building-- we were given some plastic, hot glue, an engine, a parachute, and the rocket head (preassembled) and asked to build a rocket that goes as far as possible while also deploying the parachute. I found that having a center of mass a few inches below the center of pressure was the optimal design, and my team's rocket travelled 2500 feet, the furthest out of all the teams!
We were also given the opportunity to look at all kinds of amazing Navy and Air force planes, including the F22 Raptor! Furthermore, there were tons of simulations, and we got to do a simulation of flying a fighter jet that pilots actually use for their first stage of training! There was another one that simulating feeling 4x gravitational force of that felt on earth, that was definitely interesting!
At the end of the week, there were a few awards, and I was nominated for leader of my team among all 380 attendees!!
Coming back down to earth, and my internship this week, will be a little dull and disappointing, but be sure to check in in a few days for my next srp (senior research project) post!

Saturday, February 27, 2016

Job Offer!!

Hey guys! So like I said last week, this internship can be really useful for my future. Turns out,  they like what Ive been doing so far and I already got a job offer from him! It was really informal, and I am not really sure how much I would get paid,  but it is a great start in just a matter of three weeks!
So this week was largely an unsuccessful week, unfortunately.  One of they key components of their software is recordings and narrations, which use Adobe Flash Player. The problem with this is, the code I write has no way of detecting the buttons on the flash player like it would on a regular website like Google or Amazon. So, I tried a unique approach that I was hoping would work: there is a method which moves the mouse to a certain place on the screen (meant for hover drop down menus), and then I could make the code "click" the button from there. But unfortunately,  it was unable to detect an element there, so it returned an error message; but I will keep on probing for a solution. To put this in perspective, even my coworkers at Looplogic had no clue how to go about this, so this task could be consuming my time for a couple more weeks! On top of this, uploading the document using my code has also been very challenging, as launching Chrome through the code has a reported bug that has not been fixed.
Keep following next week to see how I solve these daunting tasks ahead!