Friday, December 30, 2016

Random Gift Exchange Java Program

This is something fun that I wrote that I wanted to share. My wife and I celebrated Christmas at her parents' house. Since the family is all moved out and is continually growing, we each buy one gift for another person.

I thought it would be cool to create a quick program that makes random assignations. I wrote it in Java, and made it runnable via Eclipse or the Command Line. If I wanted to elaborate on it more, I would have gotten user input for the names instead hard-coding it in. I would have made it a web app with a nice interface. I also would make it not assign immediate family members. (ie child won't have to get present for adult parent or fellow child sibling)

 Here's my source code, enjoy!

Monday, December 26, 2016

Website Revamp!

I've finished school, and just got a new job, so it was time to revamp my website! I spent a lot on my old design, but it was lacking in some areas, and had too much irrelevant information in others. The central message of my old design was, "I'm almost done with college, I coded a lot of cool projects in school, I have lots of internship experience, hire me!" I tried to minimalize personal details about my life to focus on relevant info that might get me hired.

I love my new job, and I anticipate on staying there for a while (there's so much to learn). So I wanted to make my new design say, "I am a professional, I'm involved in some cool projects, I do fun things outside of work, and you should hire me to be your freelancer/consultant."

Initially I wanted it to be very minimalist, but give it a more personal flair. Maybe a picture of myself, a quick blurb, and a couple of links. But, after rummaging through dozens of designs, there were too many features lacking in all the examples that I saw, many were focused towards web designers. While I enjoy web design, and I have pretty good experience, I'm not an expert, and I don't have any glitzy projects in my repertoire. In the end I decided to just keep the same layout, but modify the content, and move around some things.

I updated which projects that I wanted to promote in my portfolio. I included a Fantom and SkySpark project for the first time in my portfolio. I've become quite good in the past 3+ years in ETC Group in SkySpark related technologies, and I want to continue to specialize in that area.

I also included a comprehensive of my personal sites in my personal section.

Give it a look and let me know what you think!

Friday, December 23, 2016

Attempting to barter web design services for guitar repair services

I had a guitar that needed a minor repair, and I wanted to take it to a local Guitar Shop, House of Guitars. They do awesome work and I trust them a lot. They have one of the best ratings in the Salt Lake for repairs. They also have one of the worst websites I've ever seen.


The background isn't aligned, there's a "Click here to add text" line on the top right, and it looks something straight out of the 90's.

So I took an hour, and I created a simple mock-up to present to the store owner to see if we could barter my website design for the guitar repair.


I tried to make it responsive, I added a Google maps widget, which displayed their awesome 4.9 review rating.

I was so nervous asking the store owner, because this was so out of the ordinary, to try to barter web design services for guitar repair. He was very cordial, and respectful. I presented the website on my laptop, and explained why a better website would help his business.

I thought that I good job on the design on my mock-up, and my presentation wasn't bad, but in the end the store owner didn't see the value in modernizing his website, because his business was so successful. He said that he'd invest in his website if business was down, but they were getting an increasing amount of business, and they were having a hard time to meet all the orders.

In the end, it was a good experience.

Wednesday, March 23, 2016

VR Cannon Beta Release

My Senior Project Group, git-mo, has been developing several Augmented Reality and Virtual Reality apps for our Senior Project. I'm pleased to announce that the first app Beta, VR Cannon, is finished and is deployed on the Google Play store. This app was developed to test out Google Cardboard and Virtual Reality. It immerses you into a virtual world, and lets you shoot a cannon. To find out how to play or more information, check out our website.

 To become a Beta Tester and download the app, go to this link:

Blowing up a castle in Cannon Free Range
Main Menu
Forest Target Shoot

Tuesday, March 15, 2016

Outside Interests Can Help Your Computer Science Career

Outside Interests Can Help Your Computer Science Career

This is something that I learned in one of my introduction Computer Science classes, and something that I've especially seen throughout my schooling career. Many classes such as my Senior Project and Android development class allow students to create ideas and implement them. Here's some examples:

1. ARora (Augmented Reality Optical Assistant): This is part of my Senior Project. One of our team members, Taylor, loves reading old classic books. The challenge is that they're written in Old English, and he constantly has to look up words in the dictionary. So we're developing an application that allows you to view the book through your phone's camera, and tap on the word on your phone's screen to bring up the dictionary definition.

Example of ARora

2. ARiT (Augmented Reality Image Translator): Also part of my Senior Project. Matt, loves learning languages. In fact he got a BA degree in Arabic Studies. He remembered how hard it was when learning the language to carry a dictionary everywhere he went, and how hard it was to learn everything that was around him. This app allows a user to point their phone at an object, tap on the phone screen, and the app will tell the user what the object is in their chosen language.

3. Hiking App: One of the ideas for my Senior Project was to create a hiking app that showed trails, and would allow you to navigate without cell reception. We have some avid hikers and lovers of the outdoors in my group.

4. Restaurant Manager: A classmate of mine worked at a restaurant part-time, trying to pay their way through college. They came up with a cool software idea that would help staff know what tables were filled and how close to capacity the restaurant was.

5. Music: I love music. It seems that I'm drawn to project that incorporate music. I've created a Music-Based Authentication System, a Midi Musical Search Engine, and I've written various songs for games I've written for class.

Here's the latest song that I've written for JengaAR:

Monday, March 14, 2016

New Senior Project Direction! AR SUITE

My Senior Project Team has decided to branch out and explore other areas of Augmented Reality and Virtual Reality development. We are going to be releasing our ARSuite beta very soon! This has been exciting but challenging at the same time. While other groups are adding finishing touches to their projects, we are coding as fast as we can to implement our new ideas. I have created a website with the most up-to-date details about our project. (Or projects, depending how you look at it.)


Friday, March 11, 2016

Don't take advantage of family and friends when doing a gig for them

If you're blessed to be gifted with technical skills, such as web design, photography, music production, then you probably have had friends and family who have asked to use your skills for free, or a highly discounted price. Sometimes the motive is to maintain/strengthen your relationship, gain experience, or to further your repertoire. Often time, there's not as much incentive to do a good job in a timely manner since you're doing it as a favor. Many times for performers in this situation don't take the gig as seriously and will flake out at the last minute. I want to STRONGLY condemn this attitude in this post, and encourage doing your best, or not doing it at all.

Encouraging Story

 My family tradition is to play Starcraft II with my family every year around the holidays. The gaming was delayed a couple days because my dad was asked by a close family friend as to make a wedding video their son's wedding. I was a little bit sad that I had to wait, but ultimately filled with deep respect and admiration for my dad who wanted to do a good job in a timely manner without any monetary reward.

1. When to accept or not to accept a project

Let's be honest. It takes a lot of time to do technical projects. As a software developer, I've been approached a few times to create a website or an app for family and friends. One of my neighbors runs a business, and was excited to hear that I was programmer. She told me about her idea for a really intricate  and complicated app that she was sure would take me a few hours (a big understatement). There were benefits of doing it. I would have gained a lot of practical technical knowledge, and would have had my name on a product of a growing company. I was very busy at the time with school and work and I knew that I wouldn't be able to dedicate the time needed to a good job for her app. So I politely declined.

2. Pass the baton!

Family and friends are like traditional customers; they want a quality end product. Family and friends are more patient and understanding to your situation. They understand that you may be working on their project around your busy schedule. Yet, they deserve that you do it in a timely manner. Nothing is more disrespectful when you put off their project for too long.

Music Mixer flees to Mexico

The bassist in my band knew a guy who gave us good a deal to record a 4 track CD for only $200. He's recorded pretty good stuff in the past. We laid down all the tracks, and while he was in the middle of mixing the tracks, some weird stuff happened to him. We lost contact with him for two weeks. When we got a hold of him, he said that he was in trouble with some debtors, and that he lost his house and he fled to Mexico. This was super random but, he emailed me all of the tracks and projects so that we could continue to work with somebody else. While we weren't completely satisfied with this outcome, we are much more satisfied than had he just up and left us hanging.

YSA Website

This also happened to me when my young single adult church group asked me to create a regional website for them. It was summer, and I had plenty of time to work on it. I put a lot of time into it, but I wasn't able to finish 100% before getting married and leaving the single's church group. I didn't make the interface easily customize able to those with no coding knowledge. I did my best to create robust documentation, videos, and even trained another coder within the church group to continue the work. I didn't want to have wasted all my time on "almost functional" website. It would have been useless to the church group, and I wouldn't be able to use it as part of my repertoire.

3. Do Your Best

Even though you may not be a professional, and the person you're helping might not be paying you, you still should do your best. My wife and I were lucky. Most of the people who participated in our wedding did an outstanding job and really came through for us. I could go on and on about how awesome everybody was, but I'll pick one notable exception: The cake maker. She is a high-quality professional who is in high demand. We approached her with little notice, asking her to make our cake. Even though there was little notice, she gave us the best tasting cake I've ever tasted, and I'm really grateful for that too.

En Fin

Do a good job always. Especially for your friends and family.

EDIT: removed the negative story.