Monday, April 28, 2014

Tools? What tools?

What are your tools?

A tool is something that you use for a given task. This could be something as simple as a drill to screw in something, or it could be a skill that you have. The tools I use as a computer scientist vary according to the job given. Sometimes I am using my keen eye to attention and colors, other times I am using my ability to assess problems and find solutions. The tasks I am given requires a set of tools that I have hopefully, if I do not have the necessary tools then I must acquire them. 

The most used Google Drive applications.

Tools I acquired this semester:
  • Google Drive
  • Adobe Illustrator
  • QR Code manipulation
  • Researching topics more in depth
  • Understanding that I know more than what is on paper (I did not know that knowing how to wrap network cable was a skill until someone told me)

Design knowledge + Color knowledge = Appealing

Some of my favorite tools that I hold are my attention to layouts and color. By having some background in both of these, I am able to work towards a product that is visually appealing and is simple to use. I have a fascination with website designs and how things fit together. There is a reason why websites such as Facebook and Instagram have a lot of whitespace and why they picked those colors. It is easy on the eyes and it prevents the user from getting confused.

Design is a necessary part of making a website.

The degree to which I use these tools is changing as I further my programming skills. Having knowledge about design will put me ahead of many programmers because it will allow me to create something that is not too cluttered and just works. Sometimes programmers forget that you cannot just rely on the user wanting to use your app because it is useful. Sometimes having a simpler and minimalist design trumps having a bunch of cool features. This can be shown by the iPhone and what Apple has done in their products.



Networking Problems, Please Advise

Mobile Network
Internet problems? Good luck.

The United States is supposed to be the model by which other countries follow. However, we fall short in many areas, including holding the highest average internet speed. The United States ranking according to Net Index is 33 out of all the countries in the world. Even though 33 out of all countries in the world is not bad, it is not ideal. Especially since the United States prides itself as being one of the most technological advanced countries. 

World comparison of internet speed cost per mbps.

Here is a list of some of the countries that beat the United States and their average internet speeds.
  • #1 Hong Kong 78.31 Mbps
  • #2 Singapore 66.62 Mbps
  • #4 South Korea 53.60 Mbps
  • #9 Japan 41.45 Mbps
  • #17 France 34.10 Mbps
  • #23 United Kingdom 26.85 Mbps
  • #31 Russia 23.97 Mbps
  • #33 United States 23.72 Mbps

This list illustrates that the United States is far from the place where it wants to be. The question that easily arises is why a country like Hong Kong is so far ahead of the United States. As was pointed out in an NY Times article, it is because the mentalities are different for both countries. A new Internet Service Providers (ISP) company does not mind losing money for several years as it builds its network out. The bottom line is not everything because they know that they have to suffer a little before competing with the bigger ISP groups. In the United States the most reliable service comes from Verizion which offers its FIOS network. Verizon does not have to prove itself anymore, it has a loyal customer base and they do not have to do anything outrageous to draw in customers. They have no incentive to push forward with higher speeds. New up and coming Internet Service Providers (ISP) in Hong Kong have something to prove and they are willing to take the risk.

map1
Which ISP is dominate in each state.

In order for the United States to maintain its status as a world power, things need to change. Technologically things need to be more supported. Many new laws and current legislation make it hard for smaller companies to even begin competing with the bigger companies. The United States does not have to be in the position its in, we can change so that we do not have to be waiting for pages to load. 

Blue Website Loading Bar (Psd)
Stop this from happening and do something!


Sources: 
  1. "Blue Website Loading Bar (Psd)." Blugraphic RSS. N.p., n.d. Web. 29 Apr. 2014.
  2. Choi, Christy. "Hong Kong Has Fastest Peak Internet Speed in World." South China Morning Post. N.p., 25 Jan. 2013. Web. 29 Apr. 2014.
  3. "Daily Hen for Daily Life Tips." Daily Hen for Daily Life Tips. N.p., 19 Jan. 2013. Web. 29 Apr. 2014.
  4. "Did You Know Which Country Is Providing World Fastest Internet Speed ?"HybridTechCar. N.p., 23 Aug. 2013. Web. 29 Apr. 2014.
  5. Guarini, Drew. "This Is The United States Of Comcast, Depressing Map Shows."The Huffington Post. TheHuffingtonPost.com, 04 Mar. 2014. Web. 29 Apr. 2014.
  6. "Household Download Index." Download Speed by Country. N.p., n.d. Web. 29 Apr. 2014.
  7. "Internet Speeds and Costs Around the World." Infographics Archive. N.p., n.d. Web. 29 Apr. 2014.
  8. Stross, Randall. "Cheap, Ultrafast Broadband? At Least Hong Kong Has It." The New York Times. The New York Times, 05 Mar. 2011. Web. 29 Apr. 2014.

Monday, April 21, 2014

Beta Testing, Not the Same as Usability Testing

Dilbert.com
Using Beta Testers to Find the Flaws in a Product


Beta testing is not the same as usability testing. They are similar, but not the same. Usability testing is done in an environment when you are still trying to figure out the direction of your website or app. A usability test in that instance gives you some direction in which to head. When you are in beta testing, you should already have an idea of where your website or app is heading. All that should be left to do is finding bugs and making small tweaks to the design, if any. 

Usability (Testing Environment) vs Beta Testing (User's Own Environment)

Usability Testing Goals
Beta Testing Goals
Decide what platforms you are optimizing for
Users report issues that they have
Decide what works and does not work for your design
Very limited design changes
The test is done in a lab, so the person observing the test can observe where the user is having difficulty
Fix issues with broken code
Fix any design issues before writing any code
Test is done in the comfort of the user’s own environment
The tester is able to ask the subject about issues they had with the design

The tester is able to observe the body language of the subject



Beta Testing Cycle

As can be shown from the cycle above, the outcome for usability and beta testing are similar. The end goal of both test is to better the project. While usability testing focuses on the interaction with the product, beta testing focuses on coding problems. Beta testing is a highly recommended step in making websites and app making. Beta testing allows you to catch errors before your product is out in the open. The goal of beta testing is not to get rid of all the bugs in your code, that is not practical. What is practical though is flushing out as many bugs as you can.

If you are trying to do beta testing, here is a website that gives you some tips on how to conduct a beta test: Beta Testing Tips


Sources: 
  1. "Beta Testing." Web Development,web Designing and Internet Marketing Firm. N.p., n.d. Web. 21 Apr. 2014.
  2. Carter, Breck. "SQL Anywhere." : August 2011. N.p., 24 Aug. 2011. Web. 21 Apr. 2014.
  3. "Recording Usability Tests on the IPhone." :: Capstrat. N.p., n.d. Web. 21 Apr. 2014.
  4. Richmond, Nadyne. "Go Ahead, Mac My Day." Beta Testing vs Usability Testing. N.p., 5 Apr. 2010. Web. 21 Apr. 2014.
  5. Spolsky, Joel. "Joel on Software." Top Twelve Tips for Running a Beta Test -. N.p., 2 Mar. 2004. Web. 21 Apr. 2014.
  6. Thadani, Rahul. "How to Become a PS3 Game Tester." Buzzle. Buzzle.com, 15 Apr. 2011. Web. 21 Apr. 2014.

Friday, April 18, 2014

The Importance of Usability Testing

Designing with Paper Prototyping

Usability testing is the act of having a user interact with a prototype of a product before it goes into production. It allows testing of how a user interacts with an object before spending money on a demo. 


Type of usability testing:
  1. Paper Prototyping (we will focus on this one): Make a drawing of the website and allow the user to interact with it as though it were a functional website.
  2. Card-sorting: Allowing users to sort cards with a word or statement written on it. This is useful when a website has a lot of information and the designer wants to know what is more appealing for the end-user.
  3. Link Affordance Test: Print website in grayscale and let the tester color in the picture. 
  4. Heuristic Evaluation: Time how long it takes for a user to do a given task on a website. There are general guidelines for how long each task should take such as subscribing to the email newsletter of the website.


low fidelity paper prototype
Paper prototyping can be as simple as a pen and paper drawing.

high-fidelity paper prototype
Paper prototyping can be as complicating as a drawing done on Photoshop.

Paper prototyping is allowing a user to interact with a drawing of the website. The drawing could be something as simple as a pen and paper drawing or it could be more complex and be done on Adobe Photoshop or Illustrator. In either case, this usability test allows for the designer to observe how the tester interacts with the website and allows for fixes and redesigning. 

What are the benefits of usability testing:
  1. Lower costs
  2. To find out how long a user takes to do a task
  3. Find out flaws in your website and how people interact with your website
  4. Analyze the performance of your website
Now try running your own usability test for your website. Here's a video on how: Do Your First Usability Test.


Sources:
  1. Davies, Thomas. "UX Booth." Designing with Paper Prototyping -. N.p., 5 Aug. 2010. Web. 18 Apr. 2014.
  2. MacArthur, Amanda. "Different Types of Usability Tests for Website Design."Mequoda Daily RSS. N.p., 09 Jan. 2008. Web. 18 Apr. 2014.
  3. Mifsud, Justin. "Paper Prototyping As A Usability Testing Technique - Usability Geek." Usability Geek RSS. N.p., 23 July 2012. Web. 18 Apr. 2014.
  4. "Nielsen Norman Group." Paper Prototyping Training Video. N.p., n.d. Web. 18 Apr. 2014.
  5. "Usability Testing." Usability. N.p., n.d. Web. 18 Apr. 2014.

Wednesday, April 9, 2014

Blogs, Worth It or Not?

That is the question, to blog or not to?


Technical blogs are an invitation into a person’s mind. Although technical writing is not supposed to be opinionated, most readers can still get a sense of the blogger’s beliefs and views from what they have written. Having a blog gives employers an opportunity to see their applicants in a better light. Some people have a rough time being able to articulate their thoughts in an interview since there is a lot of pressure. Blogs give a person the opportunity to reveal to prospective employers who they are and what their beliefs are in a pressure free environment.


Blogs make you think and articulate your thoughts.

Along with the benefit of being pressure free, blogs give the writer an opportunity to freely express themselves. By doing a blog, the writer is better able to articulate their thoughts and they are better able to express themselves. During an interview, the hardest part is being able to think on the spot, but by doing blogs, the blogger is able to express them self since they have been articulating their ideas in words. By doing blogs, the blogger is able to form opinions on technological issues and they are better prepared for what possible questions can arise from their opinions. A person who does a blog is better informed than someone who does not since the person that does the blog has to have done research beforehand to have an opinion on the issue. Blogs are an important part of being able to better express yourself since it gives you a medium in which to talk about your beliefs and views. 

The many choices of blog websites available.



Advantages of having a blog:
  1. Show off your beliefs and views about technological issues 
  2. Articulate your thoughts in a stress-free environment 
  3. Writing about your opinions gives you a more fluid way to speak about your opinions 
  4. To write about a subject, you need to have done research about it. Research makes you more knowledgeable
  5. Gives you credibility if you do your blogs correctly

Get started with your own blog here: 
  1. http://wordpress.com/
  2. http://blogger.com

Sources:
  1. Becker, Joshua. "15 Reasons I Think You Should Blog." Becoming Minimalist. N.p., n.d. Web. 18 Apr. 2014.
  2. "Email Your Blog Articles." Convert Your Blog RSS to Email Newsletter with AWeber. N.p., n.d. Web. 18 Apr. 2014.
  3. Eridon, Corey. "The Benefits of Blogging: Why Businesses Do It, and You Should Too." The Benefits of Blogging: Why Businesses Do It, and You Should Too. N.p., 6 Nov. 2013. Web. 18 Apr. 2014.
  4. "You Are Being Thought: Don't Believe Everything You Think!" You Are Being Thought: Don't Believe Everything You Think! N.p., n.d. Web. 18 Apr. 2014.

Sunday, March 16, 2014

QR Codes, Popular or Not?

Scan the QR Code

Even though the existence of QR codes are as old as most dot com websites, they have not enjoyed a lot of attention. This is due to the fact that you had to have a camera to scan the QR code to get its content. Most people back in the 90s did not have this kind of technology readily available, at least not like we do now. Currently, most smartphones have a camera and an app that can get the content from these QR codes. The use of QR codes greatly increased since smartphones have been exponentially gaining more popularity.

Peak of QR Code usage

The highest peak of the use of QR code was around 2010 where smartphones were beginning to become more popular amongst adults and students. This was the peak time that Android phones were coming out every other week and where Apple enjoyed record breaking sales for their iPhone. These codes were used in many retailers so customers would have reviews of a product available. What these retailers did not expect was for online retailers to take advantage of QR codes to increase their influence. Amazon had a strong presence during this time because they had a QR code scanner that would direct people to its prices. Usually these prices were lower so most people decided it was better to buy off of an online company rather than in-store.

Online sales increasing year to year

Reasons to use QR Codes:

  1. Easy way to direct people to your website
  2. To store simple information such as contact info
  3. Promote local deals
  4. To direct people to your social media page
Now that you know the advantages of QR codes, try making your own. Click the hyperlink to be directed to making your own QR code.

Sources:
  1. Cohen, Heidi. "QR Codes: 26 MUST-HAVE Facts [Data & Charts] - Heidi Cohen." QR Codes: 26 MUST-HAVE Facts [Data & Charts]. N.p., 4 Apr. 2011. Web. 17 Apr. 2014.
  2. Ellis, James. "Why You Should Use QR Codes (Really)." NBC Chicago. N.p., 29 Apr. 2013. Web. 18 Apr. 2014.
  3. Pinkham, Ryan. "11 Reasons You SHOULD Be Using QR Codes at Your Place of Business | Constant Contact Blogs." Constant Contact Blogs. N.p., n.d. Web. 18 Apr. 2014.
  4. Schonfeld, Erick. "Forrester Forecast: Online Retail Sales Will Grow To $250 Billion By 2014 | TechCrunch." TechCrunch. N.p., 8 Mar. 2010. Web. 18 Apr. 2014.

Wednesday, March 5, 2014

Human Engineering, the Biggest Flaw in Cyber Security

"Social engineering is using manipulation, influence and deception to get a person, a trusted insider within an organization, to comply with a request, and the request is usually to release information or to perform some sort of action item that benefits that attacker." - Kevin Mitnick
The most vulnerable part of a system.

The single most problem with keeping a system secure is the human element in it. Even if you make a computer’s firewall as tough as you can, the single most vulnerable element is the person using it. People can:

  • Be deceived
  • Make mistakes
  • Be vulnerable of too much empathy
  • Be social engineered into giving secrets away
Kevin Mitnick quote on cyber security.

The person most responsible for bringing the term “social engineering” to light is Kevin Mitnick. He spent a lot of time in the 80s and 90s using deception and manipulation to get secrets from companies. He did not sell these secrets, but he did expose how vulnerable these companies were from the people working in the company. You can make a firewall as strong as you want, but if you don’t have proper security protocol for your employees then that firewall becomes meaningless. A lot of what Mitnick did was appeal to people’s sense of empathy and he also used common sense. Most of the time the information he needed to manipulate people was accessible with a phone book.

Anonymous's mantra.

          In order for cyber security to be stronger, first there needs to be a revision of taking the human element out. Once the human element is out you take out a huge percent of the fault. The fault of cyber security does not lie all on human error, but the human element is something that can be dealt with. A new introduction into the tech world is the existence of Artificial Intelligence systems. Maybe it might be possible in the future to have a computer build its own firmware to protect itself. In that system, the computer would exist by itself and would control its own well-being. Until that point, I think the most cyber security control we can have is to try to stay ahead of the hackers who are trying to expose the vulnerabilities. But with so many new hackers from all over the world, this might be too much of a task to undertake. 

Open vs Closed Source, Which is Better?

Open vs Closed Source

The most talked about conversation of open source is whether having a closed off system is better than having an open one. The most used example is iOS vs Android. iOS is a closed off system which is updated only by Apple. Apple is the only manufacturer that makes iOS electronics and they are the ones that dictate which direction it can go. Android on the other hand is an open system meaning that there are multiple manufacturers who makes phones with the Android operating system and the companies can dictate what skins they want on their version of the Android system.

Proliferation of Android Phones on Sale

Open Source Disadvantages and Advantages Chart for Android
Disadvantages
Advantages
No cohesive feeling between manufacturers, due to the many iterations.
Gives developers more of an ability to change the system to their liking.
Updates are less likely to be updated in accordance with when Google releases software updates since there are many iterations.
Direction in which the operating system goes is dictated by the community of developers.

Google keeps track of forums such as XDA-Developers where individual developers release patches of their own of Google’s software.

Family line of Apple iPhone's.


Closed Off System Disadvantages and Advantages Chart for iOS
Disadvantages
Advantages
No variations are possible even if the user wants it.
Seamless experience for the end-user across phones from Apple.
Less control for developers to optimize their system.
Updates are timely and within days of when Apple releases their updates.

Copycats will have a harder time trying to build their own software for iOS.


End-user has more options to pick from, from this competition.

The end result of the open vs closed source battle is what the end-user wants. More competition is good for the market since that gives rise to better innovation. Within Android’s ecosystem, manufacturers are constantly battling each other for who has the better phone. This results in a proliferation of Android phones which lets the user pick what they want. This proliferation can be seen as good or bad because while this helps keep the market competitive, this sometimes results in phones that have the same specifications but slightly different operating systems. The user does not benefit from this because innovation is not occurring, only confusion. iOS on the other hand has one iteration, but at least the end-user is not confused by it. In the end, the battle is not between open vs closed systems, the choice is for the end-user to decide on what they want to use.

Tuesday, February 25, 2014

About Me

I am a Computer Programmer. I like playing with and messing with computers. I have a fascination of taking things apart and dissecting them. I like seeing the individual parts and I love the fact that a single part means nothing, but put it all together and it becomes something that has value.

Separated, they mean nothing.
Together, they create something.
An example of that can be shown by the experiences I had being the head person in charge of creating a yearbook in High School.  Being the head person in charge was not easy to do because I was the one everyone looked to for answers. I had to be able to answer a student’s question even if I did not know the answer myself. I had to find the answer and get back to the person as soon as I could because working with Yearbook was all about working on a deadline. If I missed a day, there would be a late charge for every day I missed.  It did not help that I had to be familiar with programs such as InDesign and Photoshop, and along with that, I had to have an eye for photography and design. But, I managed. I worked through each deadline, practiced the programs until I was familiar with them, and during my free time I would look at magazines to get a better understanding of design and photography. I persevered and stayed resilient and on task because there was no alternative. I hate to fail.

This is an example of something my team and I came up with in a day.


Working with teams throughout my High School and College life has given me perspective on who I am when I am working. Who I am breaks down to the following:

-        I am direct and straightforward with what I want to accomplish and I have a clear understanding that screwing up can significantly hurt a business.
-       The end goal is that the project gets done, I do not care if I get recognition or not, I just want the results.
-        I keep level headed when a problem comes up because I know there is a solution and all I need to do is try taking a different approach to the problem.
-        I care about how the final product looks. I appreciate good design and I want the final product to meet my standards.


      My goal in the next 5 years is to be directing my own team on a big project. I want to be the example of which my team follows. I want my team to get its strength from how hard I am working. When the leader of a group is hard at work and suffering like the rest of the group, I believe it brings up the moral of the group since the group understands that the leader is willing to get his hands dirty also. 

Specialties: Java, C++, management, photography, typography, layout, website design

It's a pleasure to meet you, if you would like to contact me send an email to andyngo92@gmail.com. Alternately, you can post a question down below and I will reply.