Monday, May 5, 2014

WinAPIOverride and WEKA

Tools are something a computer scientist definitely needs to survive. A good computer scientist knows his/her tools and knows when to use them to simplify their work. Also, a tool can be defined as anything that is used to simplify our work. A good computer scientist knows how to tweak things to get the desired result from all the tools that he has.


Two tools that I really found useful this semester are WinAPIOverride for my security project and WEKA for datamining. WinAPIOverride is an API monitoring software for win32 processes. This tool came in very handy when I needed to do dynamic analysis of malware and benign processes. The tool is not an automated dynamic analysis tool and hence we can get the results we want from the tool. The tool can log API calls of almost all win32 executables which in turn helps me analyse the executables' behavior. Similarly WEKA is another find that is very helpful for any scientist who works on datamining. WEKA is a data mining software built in java, which has all the necessary machine learning algorithms inbuilt. It has a lot of tools for classification, clustering and regression inbuilt into it. It is very useful when we need to compare results with various data mining algorithms or if we need a benchmark to compare our algorithm with on efficiency and results.




The tools that I came across this semester that I am not very favorable is the APIlogger tool that was also used to extract API sequences for malware analysis. Not only was the tool very amateurish, the tool had no proper support or documentation.

Tools are always improving. New features are constantly added to tools to upgrade and improve them. These tools make our life easier.  It is important for these tools to keep evolving and also very important to develop new tools which solves problems faster which will lead to more innovation and technological advances.

References:
http://www.cs.waikato.ac.nz/ml/weka/
http://jacquelin.potier.free.fr/winapioverride32/


Monday, April 28, 2014

Visualization tools

I recently took a course on Big Data and found out a new software for visualisations. I found out about this software in a guest lecture where 24 hour hackathon in kaiser permanente was discussed and how they used this software for all the visualisations and won the hackathon.

Tableau Software is based on a technology used in Stanford to drag and drop to visualize data. The software helps data scientists to visualize data in several formats and has supporting tools. It is the easiest visualization tool that I have used so far and the visualizations come out amazing. The data just needs to be copy pasted to the bin, and the software automatically assigns measures and dimensions values. We just need to drag drop column and row names to convert the data in charts, graphs and maps.



It is so easy to use that any person who knows to use Excel to make charts will immediately start loving this software. There are other visualization tools like Many Eyes, Google Analytics, but by far, Tableau software public is the software that I loved the most. A sample visualization is shown below.

There are other tools like Many Eyes, StatPlanet. While ManyEyes is public, we need to upload the datasets to public to visualize. StatPlanet helps to create interactive maps which is a great tool for visualizing weather data, geographical data. StatPlanet has lot of tools like StatTrends, StatWorld where each tool is used for different visualizations.


Visualization of data is something that I enjoyed the most past few months and these tools definitely are a reason to it.

References:
http://www.tableausoftware.com/products/desktop#visualize-data-like-never-before
http://www.statsilk.com/software/statplanet

Monday, April 21, 2014

What should you remember while doing Beta Testing?

Why should we do a good beta test? Users get the first feel of the product and you get an initial real review. A first impression of the product goes a long way and might even make the product viral. Beta testing is like the first feedback. Hence, there would be a great number of points that you might have overlooked which might come up in beta testing. It is definitely a good practice to do Beta Testing before the final release of any app. Important tips that everyone should keep in their mind while doing beta testing is as follows.


1. You already would have known the target users. Finalize the target audience and screen the testers for beta testing. It might help sometimes to have people who don't know about the product (it product is a mobile app) test the product to get a very wide view of the product.
2. Never go into beta testing blindly. Have a well defined plan. Beta testing should be done for atleast a considerable amount of time before the product is released to give enough time for analysis and response.
3. Never do an open beta test. It will never work. Release the product to picked amount of people, or to people who have signed up.
4. Never add an extra feature in between beta testing. It might extend your testing period or might ruin the feedback response flow.
5. Only one out five people give proper feedback after properly testing the product. Its a nice idea to give some incentives to people who test the product. Will get them more interested.
6. Beta testing is usually done to do final touches. But, nowadays a lot of beta testing is done as a part of marketing strategy. A product is released to specific group of people from business to get an idea of the whole product. We usually might know the initial review of the product during beta testing and hence will have an effect on the overall business of the product.
7. Wait till you get a good amount of response for a feature before you change it.


Keep these simple tips in mind before you jump into beta testing. A successful beta testing should help the product and should go smooth. The more changes you make in beta testing, the more you have problems with your underlying design. Have fun beta testing your product!

References:
[1] http://blog.startapp.com/4-tips-beta-testing-success/
[2] http://www.joelonsoftware.com/articles/BetaTest.html
[3] http://blog.appstark.com/post/26209583662/7-tips-to-beta-test-your-mobile-app


Monday, April 14, 2014

Why Facebook keeps changing its UI design?

I have always wondered why facebook keeps changing all the time. It is evident that they are trying to find a balance between keeping the audience attracted to the site and to monetize from the former. But when I looked it up, it seems that facebook has been doing a lot of research on how to target the audience.  One of the methods they use is 'Usability Testing'. They have been interviewing users to understand the first time users' experience, navigational efficiency and other general preferences of users. They have been listening to the users and redesigning the website to make it more easier for people to use the website and also to find hotspots to monetize from advertising.

One of the striking differences that I noticed in the newer mobile version of facebook is that, the left side slide-in navigation bar has been removed and changed to the right side. It seems that research showed that people were finding it challenging to use the left side navigation with all the links. It was difficult to scroll up and down in the left side. If you think about it, any right handed person will find it easier to scroll on the right side and not the left hand side.

Also, there had been a lot of changes in the right side of the website which is the hotspot for advertisers. It turns out that the chat online availability has better response now that it has been placed on the right side. A few years back, it was on the left side and I remember that I never used to pay attention to it. Also, the news feed has been changed to make it broader and brighter visually.

Old News Feed

New News Feed

So how do we do website usability testing? There are several different ways but the most common way is to set up several tasks like 'Sign up, Add a friend, Post in friend's wall, Add an album etc.,.' for first time users. The tasks are timed and video recorded while users try to finish the tasks. Also, users are asked to fill in questionnaires regarding how they did the tasks. Later, user's reactions, responses are analysed and improvements are made.

Facebook also does lot of usability testing. They conduct video interviews, do questionnaires, conduct tasks for first time users and also they track mouse movements, eye ball movements. They measure mouse movements, eye ball movements for finding hotspots and use information from video interviews, task related interviews to change the design of the website to make it simpler for people to use.



But still, the only part where they will score less in usability according to me is the task that involves user set their privacy settings. Studies show that people of age 20 to 40 find it very frustrating to change privacy settings because it is confusing and also because it keeps changing every few months. It is said that, the most annoying feature in facebook is to set privacy settings for individual albums and photos. Also, first time users get confused with 'Sign in' and 'Sign up' in the first page. It doesn't make sense to keep the sign in button small and sign up button enlarged.

From all I have seen and the efforts that facebook puts into usability testing, they still do need to improve to continue being the #1 in social networking.

References:
[1] https://www.facebook.com/business/news/An-Updated-News-Feed
[2] http://usabilitygeek.com/an-introduction-to-website-usability-testing/
[3] http://usabilitynews.org/usability-evaluation-of-three-social-networking-sites/
[4] http://techcrunch.com/2014/03/06/facebook-is-rolling-out-a-more-simplified-news-feed-with-helveticaarial-fonts-new-cards-bolder-photos/
[5] http://www.usertesting.com/blog/2011/08/05/7-facebook-usability-mistakes/

Monday, March 24, 2014

Why Tech People should blog?

This blog is about why there are not many technical blogs out there and why are technical people scared about writing things that they know. In any given field, the knowledge is so vast that not one person cannot know everything. So, it only makes sense, that every person knows something that the others don't. In fact, that means, everybody is smarter than others in some way. Sharing what you know is a great way to spread knowledge. If that is the case, then we all should write technical blogs and share our knowledge.

But it is true that, we would rather comment or criticize someone rather than take the beating down ourselves. Here is why, most technical people don't blog.
"I don't think I am an expert!" , " What if I say something wrong?", "What if people think that I am stupid?" "What if I get a lot of criticisms", "I don't write too well", "I don't know what to write about!", "I don't think I can explain things properly" etc etc.,.



 But here are a few reasons why every technical person should blog.
  • You can learn a lot.
  • Your writing skills improves.
  • You create a strong identity which interests recruiters.
  • You share your knowledge.
  • You get accustomed to criticisms and learn from them.
  • You can connect with people of your own taste.
  • You can create a community with your interest and network. 


But, what can you write for a technical blog? Here are some tips

1. Write about something that interests you. Write about a problem you solved, a problem that needs to be solved and you don't know how. You can write about your research.
2. Write about something you learnt recently. Write about something that always fascinated you in your field.
3. Write about something you recently heard in news and how you can solve the problem with technical expertise.
4. Write about things related to your passions, your goals.
5. Write about products you love to use, and how you can improve on them. 

So, with all these ideas, and all that we gain, each of us should start blogging and share our knowledge.  



References:
[1] http://technicalblogging.com/why-every-professional-should-consider-blogging/
[2] http://www.littlekendra.com/2011/01/13/onblogging/
[3] https://major.io/2012/03/30/why-technical-people-should-blog-but-dont/
[4] http://bonniegroessl.com/wp-content/uploads/2013/12/Blogging.2.jpg

Monday, March 17, 2014

How can you use QR Code differently?


The history of Quick Response Codes is definitely interesting. The limitations of BarCodes which could only hold upto 20 alpha numeric information led to the rise of QR Codes which could hold upto 7000 numerals along with kanji characters. The QR code can be read ten times faster than any other code. There are different ways of using QR Codes. Marketing and businesses use various creative ways to use QR Codes. 



In fact, even you can use a QR Code in the way that you want. Do you want to sell a product? All you need to do is change the information into a QR Code and post it in your website, in your profile, anywhere you want. When a person scans the QR Code, the information of the product is obtained. Is that the only way to use QR Codes? The answer is no. There are million ways in which you can use QR Codes creatively and some of them are follows.


                                 
  • You can create a QR Code to redirect to your LinkedIn Profile from your resume.
  • You can redirect to a link where information about the product is given.
  • You can provide holiday discounts to special customers through mail. 
  • Redirect to your facebook promotion page from mail.
  • Mountain Dew did a promotional offer few months back by sending free music tunes to customers who bought their product using QR Codes. 
  • Let your customers enroll in webinar, conference, sessions.
  • Provide Movie tickets to your customers.
  • Farmers Insurance sends mail with a QR Code with the information of their claims representative to their customers. If we Scan the QR Code, we get all the information(contact number, email address) of the claims representative. 
  • At National Parks, when you scan a QR Code at a certain location, you get all the information about the location.
  • In Arts, QR Codes are embedded in paintings. If you scan the QR Code, you get an inside scoop of the painter himself.
  • If you buy a spotify premium account, you can start a playlist by scanning a QR code.
  • In fact, you can embed a QR code in each page of a story book and connect it with videos in youtube.  
These are just few ways of using a QR Code in a creative way. There are a lot more and in future we can make use of QR Codes to achieve a lot. QR Codes have a promising future and we should take advantage of them in the best possible way for our businesses and for marketing.

References
[1] https://blog.kissmetrics.com/genius-qr-codes/
[2] http://www.qrcode.com/en/history/

Monday, March 10, 2014

Cyber Security - Important things startups should keep in mind



On Dec 15th, 2013, Target found out that cyber criminals breached the Target security system and stole credit card and debit card information of 70 million individuals. The question that pops in our head is, Is it that easy to get into a corporate company's database to steal information? Yes and No. Yes because every cyber breach till date is because of the sloppiness of the company's security team. And No because it does take knowledge to breach a database. Target definitely could have added extra protection. Target's security team did warn them beforehand to add security to their point of sale transactions, which was not heeded by Target. 



So what can we do about this? McAfee says that the Target attack was indeed defendable. They say that companies think that if their point of sale systems are not standard, then they are safe, which is not the case and is proved by Target Breach. In fact, the breach was done using software that we could get from any cyber crime community. There are ways to prevent these attacks and every company, focuses on these set of points to protect themselves from cyber threats. 
  • Spam - Spam emails are the easiest way of infecting a system if it bypasses the internal network. Spam emails are infected with viruses and malware hosts. If one infected email gets into the network and is able to find one vulnerable system, then the whole internal network can be vulnerable to security threats. Companies always employ multilevel security. Multi level security is similar to giving access rights to each user depending on the type of job. An employee simply receives information that is strictly 'needed to know' and the information will not be useful if it is held by someone else. Email spam filtering, electronic mail monitoring is absolutely necessary at this point.

  • Gateway Protection - Protect the point where the company connects to the internet. This is the point where firewalls are hard at work and it is significant to secure this layer with utmost caution. Web content filtering, a high end security system with excellent antivirus and firewall is necessary at this point.

  • Endpoint protection - Each computer has an up to date anti virus and spyware software which is updated and runs scans frequently. If a system is infected, the security team immediately disconnects the system from the internal network and dis-infects the system. At this level, it is in the hands of employees to keep the system clean and follow company guidelines. Severe action is taken on the employee if the security team finds out that the employee's system is infected because of the employee's negligence.

  • Testing and Training - Even though, the security team does its job better, hacktivists still expose flaws in the system. Companies make sure that the cyber security team is on top of it, and tests the system for vulnerability and solve all the bugs before hand. Every employee is educated on how to utilize the system and how to be aware of security threats.

Even though, there are various ways to protect oneself and companies are aware of it, the hackers need only one flaw to breach the system. Evidently every software does have flaws. So, it is a battle that will never end. Target did not require a new silver bullet to defend their systems. The security systems they needed was readily available. It is important to note that hackers never rest, So should companies. Companies should work hard to achieve an upper hand and secure their systems with comprehensive security technologies.


References: