Wednesday, May 14, 2014

Another one bites the dust...

I am super stoked on what groups were able to put together by the end of it all.  Typically in classes like this there is one group that stands on stage and shows off their unit tests because they have nothing.  I was pleasantly surprised that this did not happen.

One group that I believe did not get the credit that they were entitled was PowderAde.........Oh uh Carve Companion.  This app is dope!  I am going to bug Brandon until he lets me put it on my phone.  Just making an app is a super impressive feat.  I have tried my hand at it and when my Hello World app crashed for a week, I said screw it.  Their application is solid and I am really going to use it this coming snow season.  Hell even at the skate park.  They really put in a ton of work for the Google Play and Google Map integration and for that I give them props.

Well another semester is gone and I can't say I am not glad to see it go.  Last semester I told myself "next semester is going to be cake compared to 351".  Now this semester I am saying "next semester will be cake compared to 460".  **Commence infinite loop**.  This was way harder than I thought.  This was actually probably my hardest CS class.

 I am not a business man at all, I am the troll banging on the keyboard.  At least I want to be.  This class really opened my eyes that funding comes from somewhere and this is what you need to do to get it out of investors/customers pockets and into yours.  I learned that no matter what, you must sell yourself and your product.  People will not see that you wrote a project in Erlang and just throw money at you.  Ok maybe they will, but still.  Now I know what needs to be done to sell a product to someone who has never seen it.  I have also made huge progress in writing.  By doing so much writing with the pitches and the reviews and the evaluations, I am now much better at doing things that I will be doing at a company for the rest of my days.  Now I really see that changing the world through software is not just changing the world through software.  It's coming up with an idea, developing it, convincing people this is a good idea, trying again to convince people this is a good idea, coming up with a business model, theeeeeen changing the world through software.  This is quite a daunting task for most of us, but we all pulled it off.

Congrats to Mechanapp for their second place victory.  Those guys are solid talent and they earned it.  I am excited to see if they keep going with the application, or if they drop everything and enter into the job market.  Either way, they should be very proud.

Thanks to my team Dan, Zach, Kellen, and honorary member Katie.  This app would be nothing without you all.

A huge thanks goes out to Professor Ackley for kicking my ass in 251, 351, and 460.  I have gained more knowledge and lost more sleep than I knew was possible.  By being such a tough teacher, he weeds out the "tourists" as he would say, and pushes everyone else to give 150%.  After every class period, I felt like I gave 3 pints of blood, but I am a much stronger developer for it.  


Tuesday, May 13, 2014

We Did it

I cannot believe that our project was picked as the top software engineering project of 2014.  I feel that the whole thing came together very solidly.  I was nervous at first since our project was not evaluated on the content, but on the quality of the speech.  One thing is for sure though, I am so glad that we had two practice pitches before this one.  The biggest benefit in my mind is that it gave us a chance to really nail down our timing.  If we had gone on stage today and been four minutes short on our talk as we had previously done, we would have had no chance.  The practice talks got us very comfortable with our speeches and I was not nearly as nervous for today as I thought I would be.  We have a long way to go though.

I do believe that we can use this application to change the world through software.  In fact, with our winnings, I believe that we are going to upgrade our Amazon server and try to get this thing out by October.  I feel that by winning today, we have made a great impact on the class and now we must make an impact on the rest of campus.

A big thanks to Professor Ackley, the guest judges, and my fellow students for this class.  It has helped me grow as a Software Engineer.

Tuesday, May 6, 2014

Bug Whisperer

One of the biggest things that I have contributed to my team through this whole project is being able to break things.  I have been able to find many issues with our project (and I am continuing to).  This is I have managed to find bugs and unexpected behavior that my other ream members have not noticed, which we have fixed soon after.  This is helping our project be more solid and ensure that we do not have something terrible happen during our presentation.

I did have an interesting scare the other day.  Brandon Lites asked me if we are sanitizing our SQL queries and I looked at him like a deer in the headlights.  After convincing him not to do some horrible SQL injection on our project,  I brought the issue up with my team.  We did some research thinking that we would have to write some kludge in back end to make the site less vulnerable to attack.  Not so.  We are using Hibernate as our Java Persistence framework and it actually sanitizes queries for you!  Looks like Bobby Tables won't have a problem attending UNM (ha).

 On a serious note though, we learned an important lesson from this.  This class is about designing software for the real world and getting us ready to go from school to shipping code to a customer.  Now, in school we have never really had to worry about security issues like this, the goal has just been to get the project finished.  In the real world, if we had shipped a product that was vulnerable SQL injection, I am sure that it would be exploited in less than a day.  Even though Hibernate took care of the vulnerability, it was a reminder to keep security in mind and always stay sharp on how something is implemented.      

Thursday, May 1, 2014

Thoughts On Continued Development

So, it has been a topic that had been brought up a lot so I figured it was worth mentioning.  A lot of people that I have talked to have expressed interest in using the VisualScheduler application and have been asking for the URL.  Most of them have also said that they would definitely pay five dollars a semester for our schedule generator.  Zach has showed the application to a UNM recruiter and they were very impressed with the application.  She gave us the name of someone named Cinnamon Blair to talk to about money and if we will be allowed to make profit off of the application.  I firmly believe that if we talk to UNM about making profit off of the application, people will use it and it will be successful.  Soon in the future, we plan to get more server space than the micro instance we have right now so we can support many more users.  One of the starting places to kick off the application will be the UNM subreddit to get the word out to other people at this University.  We will also be setting up social media pages soon to get people involved with the application.  I do not see a reason why UNM would provide something like OpenData if they did not want an application like this to be made, so I feel as though me and my team have filled a giant hole in the registration process.

Monday, April 28, 2014

Misc. Ranting

Presentations

The last day of presentations are over and everyone really improved. Here are a few of my reactions to the pitches and the projects in general.

Automaton:
I really liked that this team made a project that they basically built from the ground up.  Talking to the team, it seems like the only technology they used was node.js everything else they made.  Seeing the final product, I was impressed with how much work they did in so little time.  Another thing I noticed is that the majority of the speech is a demo.  That really isn't that big of a deal I mean they have a lot to show and the point is to really show everything the application is capable of, right?  It would be nice to hear some a business plan or something that tells me how they will maintain the application because I am kind of curious.  The game itself is a little confusing, but its a cool idea and I really like it.

VisualScheduler:
Basically, I wanted to do a small review of our pitch just to write out some changes we should make.  I thought our pitch went well.  Way better than I thought it would.  Some things that I would change though is that we really need to talk about our technology.  We are using so many different libraries and languages, I think it would be neat to mention.  I have programmed in Java for years and we are using things that I had never heard of as of a few months ago so I feel our audience would like to know what was happening under the hood.  Ackley also made a good point today about having a time with us during our presentation.  If we had had one, then we would have been able to tell that we were short on our time and blab for another 40 seconds.  Another good point was to really push the schedule generator.  This feature is a main part of our business model and is really cool.  Talking about if for ~30 seconds was not nearly enough and selling that will be a big move for us.  I really want to win the best project and with our final talk, I think we can really drive that bad boy home.

G.E.R.A
This is a project that I think people would be into because "going green" has been the latest fad (for lack of a better word).  For me, I can't really see myself using it just because it is not really a topic I care about.  Ben is a good public speaker and, though there were a few bumps, he is animated and engaging.  I don't mean to sound overly pessimistic, but there are a few things about this application that rub me the wrong way.  I am not the biggest fan of the website layout.  It is not bad by any means, I just think it could be done a little cleaner and less clunky.  I really want to see what the missions look like to.  One of the big selling points of their pitch is that many applications are simply data entry.  For me, I can't really see how it wouldn't be merely data entry so I would love to see a small example.  Overall, their pitch was very solid.

Thoughts on the Team:
I am very happy with the team that I worked with.  Everyone worked super hard and gave it everything they had to make an outstanding application.  We worked very well as a team and, even though there were some disputes, we were able to back the final choice and make it work.  This project was a ton of work, but it was a great team experience and a great learning experience.  Dan and Zach know so much about programming and I was able to use the past few months to pick their brains and learn a ton.  In a few short months, Zach went from never looking at a line of Javascript to being a master of Javascript and AngularJS.  It is obvious that he put a lot of time and research into doing what he was assigned and doing it well.  Dan was the duct tape for the whole team.  No matter what part of the project I was working on, I was able to ask him what my next move should be and he always came up with insightful information.  Kellen came through with the static web pages and made them look exactly like the mock ups.  The biggest benefit of this project is that it is Dan's baby.  He is so close to the project and wants it to succeed so bad that he killed himself and made us to the same to make it perfect.  No matter what, there was something that Dan wanted us to do better which really helped to make the application what it is.



Wednesday, April 23, 2014

Final Push

It's almost time to call it a semester, but there is still a lot to do before we are done.  We have run into a couple little bugs that we need to fix to make our project sturdy and reliable.  One thing that I was surprised by is that screen resolution can really mess things up.  When using existing applications on my phone, laptop, and desktop the application always magically scales.  Sometimes not super well, but pretty good.  When trying our application on different devices, a lot of the styling gets really messed up.  It has been harder than I thought to fix this problem.  In fact, before trying the application on different devices, I didn't even know that this would be a problem.

Another very unfortunate bug that we have is that whenever we try to access our site from a phone's browser, we get an error saying that this type of address is unsupported.  I again did not think that this would be a problem.  I just figured that a browser was a browser and it should work.  Even though I carry my laptop with me everywhere, I really hate having to pull it out and I always search the web on my phone.  If this is going to be a practical application for college students, this issue needs to be resolved since students practically live on their phones.

The schedule generator is going rather well.  I have always struggled with JUnit testing, but I wrote some tests for the generator that make us pretty certain that it is functioning correctly.  These tests are not as robust as Ackley's tests (whose are?), but I am trying to get to that point.  One weird issue I ran into with making tests is that for the meeting time, start date, and end date, we are using the java.util.Date class.  When my test was receiving the JSON object from the backend, Jackson was unable to parse the fields of the JSON into these Date objects since we did it in an odd way.  After some internet research, I figured out that I needed to make time and date deserializers so that Jackson knows how these fields should be parsed into Dates.  This made the test suite work and I was then able to use assert statements to make sure the object was correct.

I am excited for the demo on Monday and I think everyone is going to be really impressed.  We really need to meet our time limit this go-round and talk about our business model.  If we have a killer presentation, I have the utmost confidence that our project will be selected as the winner of this semester.

Monday, April 21, 2014

2nd Round Of Presentations

Overall, everyone really stepped up with their second presentations.

Mechanapp:

This group delivered a solid first presentation, but showed a lot of improvement in their second one.  I really liked how James and Alan switched between talking and shedding light on different parts of the project.  Also, the demo was much improved and really gave a great flavor as to the usefulness of their application.

Demigod:

This group still has a long way to go,  but they were again much better than their first performance.  It is obvious that Matt does not like presenting, but the always acts lively to get the audience involved in the presentation.  Having a demo this time really helped me stay engaged rather than just watching a video of how it worked.  The only thing I noticed was that the other Matt (running the computer) was biting his nails the entire presentation and was really distracting.  Hopefully there is a challenge on their application to help people quit nail biting.

Powderade:

The presentation was much more engaging since the group was presenting and not on a video the entire time.  Contrary to what Ackley said, I did not find it to be that big of a deal that the snowboarder and the application demo did not match up.  I thought it was cool just to see the numbers change while someone was snowboarding.  If the video worked smoother next time around, I really liked the direction that there presentation went.