Sunday, May 4, 2014

Tools

As a computer scientist, there are various tools I use in order to do my job. Some are more obvious than others. Of course, I need a computer and an IDE to program, but I also need a game plan. This is where Agile comes in. Agile is a software development method that is based on increments of progress supported by adaptations during each cycle. Prior to taking my CS100w Technical Writing course at San Jose State University, I did not know about Agile. I am thankful to have discovered and used this tool throughout the semester while working on a project for my client. Agile is a great tool to use because of its flexibility. For each sprint, the team allots a few goals that have been discussed with the client. By doing this, the client is sure to have received what is desired and expectations are continually met. If by chance there are changes that the client wants to make, then those changes can be added to the next sprint cycle.

Aside from Agile, some of my favorite tools include Xcode and Adobe Photoshop. Xcode is a great IDE for developing on Apple computers, specifically for iOS apps. The interface is great and easy to use. Adobe Photoshop is another awesome tool because it is simple, yet powerful. On the other hand, I do not like TextWrangler. I used this tool for a few weeks to develop some HTML, but found it to be rather outdated. I now use Komodo Edit, which acts more like your typical IDE. It can complete brackets and indent correctly.

All tools are continually changing, some getting better than others. It is important to have updated tools because of software upgrades. There are tons of compatibility requirements necessary to run programs. For example, YouTube will sometimes not run if the latest Adobe Flash Player is not installed.
Poster for my project that used Agile Product Development
Layton, M. (2012). Agile project management for dummies. Hoboken, N.J.: Wiley ;.

Sunday, April 27, 2014

Revision Control

Revision control, also known as version control, is one of the most important necessities when it comes to programming. Version control is exactly what it sounds like. It’s the process of keeping previous versions of code. By having different versions, one can log changes, updates, and problems of the code. This is particularly helpful when doing large edits to the code. It’s easy to mess up an entire program and not be able to figure out where the problem is. With version control, one can compare versions or even revert to an older working version.

Version control is also beneficial in a teamwork environment. If team member A has done changes to the program but team member B has an older version of the program, B can simply compare and update B’s program. Another scenario would be if both A and B update their own codes and want to combine their work, it is easy for them to see where changes were made between the two versions.
A simple way to grasp the concept of revision control is Google Drive. All Google documents are automatically saved in the Google Drive. With every change made in the document, it is logged and saved to a new version. By simply viewing the document’s history, one can edit and view older versions of the current document.

For programmers, there are a variety of version control systems, but GitHub tends to be one of the most popular. This website offers a free open source repository, or one can pay to have a private source.
http://homes.cs.washington.edu/~mernst/advice/version-control-fig2.png
Gilgenbach, A. (n.d.). Version Control and Why It's Important. savvy panda. Retrieved April 27, 2014, from http://savvypanda.com/blog/version-control-and-why-its-important.html
Yeates, S. (2005, January 1). OSS Watch provides unbiased advice and guidance on the use, development, and licensing of free software, open source software, and open source hardware.. What is version control? Why is it important for due diligence?. Retrieved April 27, 2014, from http://oss-watch.ac.uk/resources/versioncontrol

Sunday, April 20, 2014

Beta Testing

The term beta testing refers to the trial of a product before it is finalized and released to the entire public. In the Greek alphabet, beta is the second letter, coming after the first letter, alpha. There is such a thing called alpha testing, but it is not nearly as advertised as beta testing. Alpha testing is conducted by people of the company developing the product. Alpha testing is essentially the production of the product, and most useful for the engineers in their build cycle. This version of testing is definitely useful, but is only the journey to beta testing.

In beta testing, the sample pool is much larger than the number of users testing for alpha. With a larger amount of people, the likelihood of discovering issues is greater. Beta testers should expect there to be bugs and crashes. The discovery of what the public wants is also larger. For example, developers may have been producing a product that has little appeal to the public, and therefore would not have any attraction to them once the product is finally released. Although at this point the product is close to being released, there is still time for version number one of the product to undergo a few modifications to have better user interest.

http://www.cadmes.com/blog/wp-content/uploads/2012/05/Blog-Beta-testing_Renso-Kuster.gif

Thursday, April 10, 2014

Usability Testing

Before online stores, iPhone apps, online surveys, and any other technological site goes live, it must be tested. These days, the spectrum of users goes from end to end. Along with young adult and middle age individuals using technology, toddlers and elderly people are using it, too. This means that that sites must be versatile and easy to use for all customers.

According to Justin Mifsud of Usability Geek, paper prototyping is one of the most effective methods of creating top-of-the-line sites. Not only do paper prototypes provide insight for the person conducting the test, it also allows the instructor to get an idea of how knowledgeable the tester is, as described in the YouTube video by BlueDuckLabs.

In an article by David Travis, he mentions that many users are reluctant to use paper prototyping because they do not have the artistic ability to draw out their vision for the site. Luckily, there are alternate methods to create a paper prototype. One way is to create the site, but prior to launch, print each page and have it tested.

Another way which I find to be useful is to use www.invisionapp.com, which is an online prototype website. Similar to the paper prototype, this method is completely online. You can configure functions such as hovers or ‘clicks’ over parts of the site, mocking the authentic site soon to be implemented. 

Screenshot of www.invisionapp.com preview configuring functions

Example Usability Test with a Paper Prototype. (2010, September 29).YouTube. Retrieved April 10, 2014, from https://www.youtube.com/watch?v=9wQkLthhHKA
Travis, D. (n.d.). 7 myths about paper prototyping. Userfocus. Retrieved April 10, 2014, from http://www.userfocus.co.uk/articles/paper

Monday, March 24, 2014

Blogging

Why am I blogging? Honestly, I Googled ‘why do people blog’ to figure out this question. I also Googled ‘why blogging is bad.’ In both situations, I discovered that blogging is not bad. According to websites such as The Huffington Post, Whose News, Becoming Minimalist, and Goins, Writer, I found that blogs present more benefits than drawbacks. Even when they were intending to degrade blogs and the purpose of them, there were hints of appraisal toward them, too. For example, Jeff of Goins, Writer posts in “Why You Need to Stop Blogging & Regain Your Writing Soul” about the negativity of blogging, yet the first few sentences start, “Blogging can be a great practice for writers. It forces you to write regularly and helps you discipline yourself in your craft. I’m a fan of it. Really.” The author then goes on to describe that the overall concept is not beneficial because a writer can instantly post, which can be harmful if the writer is under emotional stress. I do agree with the author that posting impulse writings can threaten one’s image, but overall, blogging should still be done. Not only does blogging improve one’s writing skills, but also allows one to develop better skills such as thought-process and to be opinionated towards various topics.

Since I began blogging a few weeks ago, I have noticed these attributes develop within myself. I have gotten better at telling stories and conveying my messages to others, both verbally and written. I have developed an image for myself on the Internet, and have demonstrated my intellect through my blog posts.



Saturday, March 15, 2014

My QR Code

Above is my QR code! I made it using Adobe InDesign for the Creative Cloud. The benefit of having a QR code is the simplicity. A single code can hold a handful of information such as name, email, address, telephone number, and website. In a business and networking aspect, the creation of QR codes is glorious. Individuals no longer need to go through the hassle of exchanging material before technological times. Since many people today have smartphones, they can download a QR code scanner app, which can be used to scan codes like the one above. For example, let's say there are two individuals who would like to exchange information. Traditionally, they would have to ask for each others' email addresses and phone numbers. Because a QR code can store data, having such would make information transferring much simpler. They would only need to scan each others' codes and the phone would do the rest. On iPhones, all the information gets filled out in either a new or existing contact. After that, all that needs to be done is press the 'save' button. No matter how many details their codes contain, the act of scanning a code is much faster than typing out information. I highly suggest everyone creates a QR code, and everyone with a smartphone downloads a QR code scanning application.

Burg, N. (2013, April 12). QR Codes: 5 Surprising Uses That Benefit Customers.Forbes. Retrieved March 15, 2014, from http://www.forbes.com/sites/capitalonespark/2013/04/12/qr-codes-5-surprising-uses-that-benefit-customers/

Monday, March 10, 2014

Cyber Security

Cyber security is the biggest threat in accessing the internet. According to University of Maryland University College, cyber security is a form of information technology that focuses on protecting a user’s computer, its data, network, and applications (Cyber Security Primer, n.d.). Cyber security is important because valuable information is constantly handled on computers. Prized information may include social security numbers, credit card numbers, or messages. Whether the information is for an average person doing daily tasks, or the government handling a top secret case, cyber security is a huge concern. Some other threats in cyber security include viruses that may ruin so much information on your computer that it becomes unusable. The best way to avoid a cyber security hack is to be cautious of your actions on the computer. Avoid clicking on ads, visiting skeptical websites, and refrain from downloading content from non-reliable websites. Also, install softwares that work to prevent viruses and hacks from happening.

A breach in cyber security is a probably one of the biggest hassles. Although it depends on the severity of the hack, sometimes you may need to purchase an entire computer in order to recover yourself. Other times, there are methods of cleaning your computer. In all cases, once your information is out in the web, there is no way of gathering it all for your references only. It’s important to remember that computers are great, but also vulnerable to security breaks.


Source: Cyber Security Primer. (n.d.). What is Cyber Security?. Retrieved March 10, 2014, from http://www.umuc.edu/cybersecurity/about/cybersecurity-basics.cfm