Wednesday, May 14, 2014

Software Tooling

Imagine how long it took to plant, grow, and harvest crops back in the old days. We had tools to help us do the hard work. Now fast forward into the digital era where almost everything is created using computers. Ask yourself how long it would take to produce thousands of lines of codes and test software using just a command line. Of course people got efficient at the command line and they could produce plenty of quality code. But now with big data in the picture, it is getting ridiculously hard to make anything quick with the command line. That is why there are software tools that will help us produce and combine software a lot easier.

One of the specific big data software tools that I would like to discuss in this post is the IBM InfoSphere BigInsights. I have plenty of time to learn most of the features of this particular tool. It is a great tool, I've created a few applications with it. One of which I am proud of, the so
IBMs BigInsights Quick Start
cial media app that uses Facebook's public api to pull data based on keywords that the user provides. This software tool helps process large amounts of data and uses the hadoop framework at its core.

Try InfoSphere BigInsights your self by downloading the quickstart application at: IBM BigInsights Quick Start Edition

Aside from BigInsights, I use IDEs such as Eclipse and Xcode for writing code. Microsoft Office for writing documents and excel sheets. Github for maintaining a public listing of projects that I have worked on. And other tools such as Wireshark and VMWare Fusion.

So what tools do you use to make your programming life easier? Sound off in the comments below!

Social Media and Big Data

Where do companies go when they want to gain valuable business insight? Have you ever wondered that? Have you received any small gifts from brands on your or close to your birthday? I once received a razor from Gillette when it was close to my 19th birthday. I wondered how they knew it was my birthday? Well years later, I found how exactly how.

Social media sites store a tremendous amount of useful and valuable customer data. "The world's largest social networks are storing massive amounts of never-before-analyzed data that could reveal crucial information about consumers"
Twitter logo, source for big data analytics
says Business Insider Journal. This is true and that is how I got my gift from Gillette. Another interesting story that you might have heard about that deals with social media, big data, and how companies are using that information to market to us is the one about a father finding out his daughter was pregnant due to some company sending her pregnancy related offers.

This was very intriguing, how can a company know so much about their consumers? Well all they have to do is search the public social media sites. People tweet and post all kinds of things every minute of every day. For example, they can post something like "Just moved in to my new house!!" companies can track these things. Now they know that 'Joe Smith' has a new house and may want some house insurance or something of that sort.

These is very interesting, but it also brings forth some questions. How far is too far? (privacy wise) Would you be ok with companies sending you ads so that you can buy a product based on your previous purchases? When would this be considered an invasion of privacy?



Smith, C. (2014, March 20). Reinventing Social Media: Deep Learning, Predictive Marketing, And Image Recognition Will Change Everything. Business Insider. Retrieved May 14, 2014, from http://www.businessinsider.com/social-medias-big-data-future-2014-3

Beta Testing

"Dude I got into the alpha test phase for Heroes of the storm!" - Jesus. My friend had been given alpha access to an emerging video from a well-known publisher.

You may be wondering what the big deal is, truth is it's not such a big deal. Alpha testing is a form of testing a product such as a video game in this case. The size of an alpha test is relatively small compared to that of a beta test. Usually only friends and family are invited to test the product. In the alpha and beta test phases, users provide feedback on the product and report any bugs that they may encounter.

Beta sign up for Heroes of the Storm, Activision Blizzard
The difference between an alpha and a beta phase aside from the size of it is that alpha phases usually have user agree to a non-disclosure agreement (NDA). An NDA is similar to a contract in which a tester must not disclose any information attained from the alpha test. Sometimes beta tests include an NDA depending on the company. Another difference is that beta tests are usually given to users outside of the company. There are two kinds of betas, open beta and closed beta. Open betas are far larger than closed betas and are usually meant to test the back end servers. Open betas are not good in a sense that if you are looking for good feedback, chances are you will not get exactly what you want since there are far too many testers. "Open betas don't work. You either get too many testers (think Netscape) in which case you can't get good data from the testers, or too few reports from the existing testers."

I have been a beta tester for a few video games and an internal product at my current job. It is fun and exciting to test new features and to play around with new products, but it is also exciting to help shape the way the final product shapes up due to provided feedback.



Spolsky, J. (2004, March 2). Top Twelve Tips for Running a Beta Test. . Retrieved May 14, 2014, from http://www.joelonsoftware.com/articles/BetaTest.html

Friday, April 18, 2014

Blogs in General

Many professionals in industry now-a-days write blogs about their interests or even about the work that they do. So what are the benefits of having a blog? 


Well in a way you are documenting all the work that you've done so that you can later show that you've done what you said you did... Yeah that was a bit confusing. The point is, if I say I've created an application that retrieves Facebook posts based on a keyword(s) and stores that information in a table for sentiment analysis you probably wouldn't believe me, but if I had a blog to back that up then there is no denying that I actually did create that.



Another interesting thing about blogs, is that their use in big data is very useful. You can pay certain companies that let you pull blog data so that you can do sentiment analysis. This lets you gain insight about topics in which you are doing research.

On the other hand, if you are a company that is interesting in better marketing your product to customers then blog data can let you gain insights on how your product is doing. After analysis, the blogs that mention your products you can then improve certain products or remove others.


Tuesday, April 8, 2014

Usability Testing

In software development, there are three general phases that must be completed in order to have a good product. The first phase is planning. In the planning phase a client specifies the requirements for what they want. Usually the client and the company developing this new product discuss what is reasonable to have and what can be done, this is called the requirements analysis. Once the client and developers agree on the requirements the second phase can commence. The second phase is implementation, testing and documentation. This phase mostly just involves the developers depending on how they go about testing. Lastly, the third phase is deployment and maintenance. In this phase the software is (hopefully) finished and ready to be distributed. Maintenance is done until the end of the product life span which can be a few months to a few years.
Software Development LIfe Cycle
In this post we will discuss one phase in particular, the second phase which involves testing, but more specifically usability testing. Usability testing is a somewhat formal way of testing a product before implementation begins. This process is usually started by drafting up prototypes on paper or on a computer of what the software looks like and certain features of it. Any person will be ok for this process, although it might be useful to use someone who might want to use the product that is being worked on.
Test admin writing comments

The paper prototypes are then used to administer the usability test. One of the developers gives the user a task to do and observes how the user goes about finishing this task. After a good amount of tasks are completed the test is over and the developer can now gain insight as to what should change if anything.

My team and I have done and administered usability tests for an application that we are developing and we gained useful insights. This helped us redesign our front end before we began implementation (saved us some time and work).


So you see, usability testing can go a long way, and it most definitely cuts back the time of re-implementing the design of a product.


Wednesday, April 2, 2014

QR Codes

In today's technological world, retail companies are becoming increasingly more reliant on customer data. Companies are no longer just tracking your online shopping habits, but also tracking customer's in store habits. Some brick-and-mortar stores now have wireless receivers that can track your phone's Wi-Fi signal. They are starting to do this so that they can better market their products to their customers, so that they can reorganize their stores and change the layout in a manner that will make the customer buy other products not just the ones they wanted.

So how do QR codes fall into this picture? Simple if you haven't thought about it, companies tracking customer's every movement inside a store has privacy issues. When a company begins to do this in a brick and mortar store they have to send out a notice to all their customers. In that notice, there should be options on how to opt-out. One of those options will most likely be a QR code. QR codes are somewhat similar to bar codes in the sense that most generic QR codes are black and white. The major difference though is that QR codes can store a lot more data. A big use for QR codes is to store website information.

Have you used QR codes yet? How about to link it to your LinkedIn profile? I have and if you've taken CS 100W at SJSU you probably have too!

Here's my generic QR code.


Clifford, S., & Hardy, Q. (2013, July 14). Attention, Shoppers: Store Is Tracking
Your Cell. The New York Times. Retrieved April 2, 2014, from 
http://www.nytimes.com/2013/07/15/business/attention-shopper-stores-are-tracking-your-cell.html?pagewanted=all&_r=0



Wednesday, March 12, 2014

Cyber Security

We are now becoming heavily dependent on online resources, whether it's to access our bank accounts, check emails, or even our social media sites. All of our data is stored online, so what happens when a bank's site gets compromised or the email provider you use gets attacked? First of all, you should probably freak out or should you?

Cyber security is a field in computer science that is growing and will continue to grow with our heavy reliance on software. This field of study can be applied to the full spectrum of computers, ranging from databases to network systems, from your personal laptop to a cluster of machines. You might think that some types of security are more important than others, but the truth is all types of security are important.

In November of 2013 during the holiday shopping madness, millions of Target's credit card machines were compromised with information stealing malware. This was one of the biggest attacks done that's been made public. Banks had to reissue credit cards to their customers, I included, and they had to waive any purchases that were made illegally.

Aside from the public sectors, cyber security also plays a huge role in the private sector, and even in the military branches. In those latter sectors it has escalated to the point of cyber warfare where countries are trying to hack into each other's servers to get valuable information.

So what do you think about cyber security? Is it a big deal, is it something you think about often? Or are you the type that just lets someone else worry about it?

Citation:
Zetter, K. (2013, December 12). Target Admits Massive Credit Card Breach; 40 Million Affected. Wired. Retrieved March 12, 2014, from http://www.wired.com/2013/12/target-hack-hits-40-million/

Monday, March 3, 2014

Open Source

In the past open source was known as a radical thing, who would ever want to develop under an open development model in which the source code was available to any and all who wished to view it? Well it turned out to be a very popular development model of our time.

Have you met any computer scientists or software engineers that do not use open source software? Yea didn't think so and if you do, then chances are they live in a cave or something (ironic for a cs or se person right?). Even non technical people probably use open source software. Some good examples of open source projects are Linux, and R statistical programming language. These are great alternatives to other paid software such as OSX or Windows, and SPSS. Although open source software lacks the great features and security that paid software provides, it is still good software.

So how does open source work? Like this: developers come together to create and improve open source software over time, that's it simple. Or is it that simple? Probably not as there is licensing and other legal stuff that has to be done, but for the most part that's the gist of open source development.

Even though open source has become a great part of our lives at this point, I do not see all software becoming open source. A reason for this is that most people want to make money and you usually can't make money with open source projects.

It is a known fact that open source has been a big part of the computer science and software field for quite a while now, and it is here to stay.

Monday, February 24, 2014

LinkedIn Summary

Computer science is one of those fields which are filled with challenges and problems. Problems such as optimizing code, creating social media application, or implementing the security features of a product. As a computer scientist I know that challenges will arise, and I welcome them. I enjoy having to think up clever ways to solve the problems at hand. 

I highly enjoy learning about cryptography and computer security topics. These include public key crypto systems, key exchange protocols. Another field within computer science that I have grown fond of is Big Data. Big Data is something that I find fascinating and I have learned quite a lot about it while working for the Big Data enablement department at IBM. I believe that cyber-security and big data will play a huge role in the future if not already. Thankfully that is what I am most interested in, and is what I would like to pursue in my career.

While working at IBM, I was tasked with creating a social media application that pulls data from Facebook's public domain based on a set of keywords. This was a difficult task as I was unfamiliar with web based programming, and the languages that I had at my disposal were new to me, yet I did not let this hold me back. I did my research and ask for help were needed. After a week or two I demonstrated the application I had created and my colleagues were impressed, but they felt that the application could do much more. After receiving feedback I went ahead and expanded the application further. I made it so that it would filter the data and push it into a database table for later sentiment analysis.

It is problems like the one mentioned above that I really enjoy solving, and the feeling you get when solving such a task that seems out of ones' scope is really satisfying.  

I have gained many skills in the field of big data and I would like to expand them further possibly even doing security based big data projects.

I prefer to use my free time to go mountain bike riding and to learn as much as possible about cyber-security and big data technologies.