Friday, April 18, 2014

User Experience Rocks !!


Mobile phones are used by commoners who have limited technical know how of the device operations. Every available smartphone comes with hundreds of pre-installed applications and the actual success of these applications depends on the ease with which they reach-out to the crowd. Mobile usability testing is a way to find the design flaws in the product so that the user experience is improved. The internal functionality of the system is not known to the user as opposed to the developer. So testing done by the actual end users before the launch of the handset is known as Usability testing. 

The main creative goals for Android based phones are : Enchant the user, simplify the user experience and amaze the user with the features provided. These goals can only be achieved when the end user finds it easy to use the system. Its highly impossible to create a user manual for all the pre-installed applications that are shipped from factory. 

Mentioned below are the things to keep in mind while performing Usability test in Android based phones








Having worked in the Android Mobile handset division myself, there are a few lessons that I always keep in mind during Usability testing.

  • By performing testing in the User's own handset and environment, you are more likely to unearth the issues. Reason being, the user is quite comfortable with the phone he is currently using and can easily determine changes in the same.
  • Perform drive tests. Network issues and behaviors related to connectivity can be simulated only when the user is travelling.
  • Ask people from different age groups to test the phone. The younger generation is more likely to know the technology than the elderly who have not tried their hand at using the latest applications. The success of the phone will depend on the ease with which all can use it.
  • The important traits of a good UI are : It should be consistent, flexible, comfortable, intuitive and correct.
    • Intuitive UI : UI is clean, unobtrusive and not busy. Responses are obvious. Does the help feature really help the users 
    • Consistent UI: Placement of buttons should be consistent throughout the phone.
    • Flexible UI : Users like flexibility in performing operations. Shortcuts should be provided to users.
    • Comfortable UI: Does the UI provide Redo/Undo options? How fast are the reactions to the commands performed?
                                                                      The points mentioned above help the developers to achieve the desired results out of Usability testing. If applications are uploaded onto the Android market without the actual user testing it beforehand it could cause the application to fail miserably and have no buyers.




References:
[1] http://sdsu-dspace.calstate.edu/bitstream/handle/10211.10/3556/Alluri_Aruna.pdf?sequence=1
[2] http://developer.android.com/design/style/index.html
[3]https://www.cs.drexel.edu/~spiros/teaching/SE320/slides/usability-testing.pdf

Thursday, April 10, 2014

Open Source Organics



A few days ago while working for one of my Cloud computing projects, I stumbled upon an open source cloud computing platform for private and public clouds called: OpenStack. After burning mid night oil for a few days I was finally able to deploy it successfully on my virtual machine. The efforts that I put during this time had me intrigued enough to write a blog about the organics of open source software’s like OpenStack.

OpenStack provides users with ubiquitous open source cloud computing platform and predominantly provides Infrastructure as a service. It also provides users with computing and networking resources. So users have hardware, software and applications delivered to them through a web browser.

Listed below are a few advantages of using OpenStack
·         Users can have public and private clouds available anytime on any PC and access it via a web browser.
·         Simple to integrate, scalable, and has a dashboard which makes it easy to use.
·         Provides unlimited storage and has mechanisms to prevent data corruption.

So what are we waiting for? Let’s get started and setup OpenStack on your Linux machines



Step 1: I would suggest you to install OpenStack in your virtual machine and not on your main host. Reason for this being OpenStack needs its own dedicated environment to run. You can use VMWare or Virtual Box to create your virtual machine and then run Ubuntu in them.

Step 2: Increase the RAM of the virtual machine to at least 1.5GB and memory to at least 6GB. OpenStack seems to get hungry very soon so it’s preferable to have this memory lest your VM may be really slow.


Step 3: We need to create a user named “stack” for installation to be successful




Step 4: Also we need to give all privileges to “stack”







This will open the file visudo. In this file we need to set the following data







Step 5: Now we can logout from the root and login again as the user “stack”. We can install “git” if it’s not present already.







Step 6: Download the OpenStack code from github. The code should be stored in “/var” so we first do cd /var and run the below command









To avoid any permission issues we need to execute the below commands







Step 7: We need to now create a localrc file which stores the passwords and login information. Path for this file is /var/devstack/localrc

Contents of this file












Set IP address = VM eth0 IP address. It can be found by running ifconfig command in the terminal.

Step 8: Run ./stack.sh from the path /var/devstack. Once it completes it will show the below screen

















Step 9: You can use Mozilla to login to OpenStack Horizon dashboard. Use your IP as shown in the above figure: http://10.0.0.14. The username and the password to be used are also mentioned at the end of the compilation.




So we have successfully deployed OpenStack on your PC. You can create instances and volumes using the same.



Recently during a discussion with a bunch of friends we were speaking about how Netflix can charge as little as $8 per month for its services?? Yup everything is built on open source software!! They have the entire infrastructure established so it's an easy task for them.
“Too many cooks spoil the broth” is a saying of the past now. As for the developers what’s more apt is: “The more, the merrier”.  More intelligent developers ensure that the software is more stable and secure than the proprietary software because anyone can spot a bug and even have the code to analyze and fix it.
        







“A mind is like a parachute. It doesn't work if it is not open.”  - Frank Zappa




B is for Burglar!!!



We lock our doors, have burglar alarms for our houses but we leave the biggest door open. The door which cyber criminals have used time and again to steal our credit card information, personal identities and other valuable data.

I happened to read a cartoon which said: “Don’t underestimate the I.Q of crooks “. It made me ponder about the loop holes and the ever prevalent issues of Cyber Security which have bogged the society in the current times.

In August 2013, hackers supposedly disrupted the NASDAQ trading market and the market had to be shut off for more than 3 hours. A problematic issue showed up in a quote processing system which brought the technical glitch into light. This issue instigated a lot of questions arising in the minds of the investors who now doubt the over dependence on technology for their trading. This kind of attack could be performed at the blink of an eye by a person who is miles away. There are several other breaches which are possible like the attacker could alter the trading algorithm which in turn could cause the market to crash. The worldwide impact would be unimaginable if at all a cyber-attacker could gain access to NASDAQ computers.

As a matter of face we are prone to cyber-attack all the time. We use Cloud services, smart phones for internet banking, social networking sites to interact with friends all over the world. All this has only complicated the process of achieving cyber security. The world is more interconnected today that it was before the era of Smartphones and Internet.



How do you protect yourselves from Cyber crimes??

  • Install a good Anti-Virus program on your   PC and smart-phones which detects viruses and removes them. 
  • Set really complex and strong passwords 
  • Try not to open mails from unknown sources. Also prevent opening attachments in mails from unknown sources.
  • Do not download "exe" files from the internet and be careful about the websites that you visit and the links that you click.
  •  Limit the amount of personal information that is posted online. Also use privacy settings to ensure personal information is not shared across everyone.
  • Be cautious about online deals. If it is too good to be true then probably it's not true! 
  • It's important to ensure that your computer and routers are installed with good firewalls. 
  • Public WiFi's send data which is not encrypted so avoid using Public WiFi connections.

How do you choose the right password??
  • Create a password with minimum of 8 characters. The longer the better!
  • Choose a series of random words which are easy to remember but tough to break.
  • Have an alphanumeric password and also add some special characters to make a complex password.
  • Use a mixture of upper and lower case alphabets since passwords are case sensitive.


What not to do while choosing passwords?

  • Do not choose obvious passwords like name, date of birth or other related personal details
  • Don't choose a complex password which you cannot remember.
  • Do not choose an English word as a password. Crooks can perform the dictionary attack and break your password.
  • Do not choose only alphabets or numerals and do no choose passwords of length less than 8 characters.


     With all this taken care of these is just one last thing that you need to do!!





And finally : Lock your Computer!!                                                                                 





      References : 

             http://kb.iu.edu/data/akln.html
                   http://ieeexplore.ieee.org.libaccess.sjlibrary.org/stamp/stamp.jsp?tp=&arnumber=6568387
                   http://ieeexplore.ieee.org.libaccess.sjlibrary.org/stamp/stamp.jsp?tp=&arnumber=6284146
                   http://www.reuters.com/article/2013/08/22/us-nasdaq-halt-tapec-idUSBRE97L0V420130822
                   http://www.wikihow.com/Choose-a-Secure-Password




The Shady Side of QR Codes


QR codes or quick response codes as they are known are profoundly seen everywhere. Whether it is a magazine or the hoarding of Macy’s we can see businesses applying this marketing gimmick in all arenas. But this marketing tool could just be the loop hole that hackers have been waiting for.

The fact that QR codes are really cheap and even easy to make has made them really popular in the recent times. This has given the cyber criminals a tool to gain access to the data in people's smart phones.

How does a QR code work?
Lets first understand how a QR code actually works. QR codes are basically black square boxes which embed a URL's of websites which can be scanned and deciphered by a smartphone and will lead the user to an add or maybe some malicious website which downloads viruses or trojans onto the phone.  



Why fear Viruses/Malware  in QR Codes??
  • Malwares can access the Contacts, Calendar and even credit card information if it is stored on the infected phone
  • Usually the passwords of Google, Facebook, LinkedIn and other websites will be stored on the user's phone. Malware can access these passwords and can misuse them for personal gain
  • All the smartphone devices usually have location based services associated with them. The viruses can be used to track users location
  • Use
Keep yourself safe from malware when scanning QR code!!! 
  • Use QR code reader app with in built security features to detect malicious QR codes : Norton Snap is a good example. It's available for both iPhone and Android. What Norton Snap does is once the QR code is scanned, it shows the actual link that was embedded in the QR code. By doing this, the user knows the link which he is visiting. Also it verifies the link against a database of malicious links to let the user know if its a valid site or not. So the users can be saved from the agony of having trojans and malware in their phones.
  • Inspect the QR code to make sure that it is not a sticker:Sometimes stickers are put on top of valid QR codes to alter the original content and pass trojans.
  • Do not provide your personal log in information on the websites traversed through QR codes. It could be phishing attempts.
  • Scan only customized QR codes: The customized QR codes provide information like who created the QR code, what it is for and also the website where it should take you.
  • Download a good Anti-Virus software which keeps your phone safe from viruses.

With the above points in mind you are safe to scan those ever awesome QR  codes!

References:
[1]http://www.securitymanagement.com/news/hacker-says-‘don’t-scan-qr-code’-009207
http://2d-code.co.uk/qr-code-virus/
[2]http://www.cnet.com/news/the-dark-side-of-qr-codes/
[3]http://askbobrankin.com/can_qr_codes_spread_computer_viruses.html
[4]http://www.dummies.com/how-to/content/security-risks-that-come-with-use-of-qr-codes.html
[5]http://codezqr.com/blog/wp-content/uploads/2012/02/Mobile-Malware-5.jpg
[6]https://lh4.ggpht.com/oo_s3r-HwEj56cnSCOPXWh6zHkny0Iv8wybAAJpmF3pjztyzm3KhcP2zBc8U5QnRhw0=h900
[7] http://beqrious.com/scanning-qr-codes-be-safe/
[8] http://www.ribbit.net/frogtalk/id/134/3-steps-to-protect-yourself-from-malicious-qr-codes
[9] http://blogs.mcafee.com/consumer/qr-codes-could-deliver-malware
[10]http://netsecurity.about.com/od/securityadvisorie1/a/How-To-Protect-Yourself-From-Malicious-QR-Codes.htm

Web Log a.k.a. Blog

                     

I read a famous quote about blogs by Mike Butcher: “Blogging is a conversation, not a code.” This actually defines a technical blog for me. For most part of human history, all published writing had been carefully inspected, edited, and approved. In the last decade, blogging has turned the publishing world on its head. A blog allows you to write and publish anything, from anywhere, and with a single click of the mouse the blog is immediately available to billions of people all around the world. 

With this comes the arduous task of getting the masses to read the blogs. What value does an online journal have if there is no web traffic and no one reading those blogs? 
To be successful in the blogging world, you need to build an audience who follow you and read your blogs and give their opinion about it. In this blog I would like to throw light upon a few aspects of blogging which will help to increase the web traffic for your blogs and get more people to read the blogs.  

Start blogging and have your individuality quotient in all your blogs unlike the funny story of 

  1. Focus on writing specific blogs : In order to carve a niche for yourself, you need to write about topics that you are passionate about and something that  you can spend hours talking about. If you are still not sure, there is an awesome website called Boost Blog Traffic which will tell you if you have the right topic or not. 
  2. Your post should be a one stop solution to the technical issues that users intend to solve.
  3. Make sure your blog is interesting and uses a lot of pictures. No one likes reading pages and pages of boring text.
  4. Have a catchy headline. 
  5.  Follow others blogs and post comments on them and learn the intricacies of blogging. 
  6. Set up Google Analytic's to monitor your Blog traffic. 
  7. Let there be an element of "YOU" in your writing. Everyone loves to read different writing styles.
  8.  Write often. People following you want to read your blogs regularly. 
  9. You don't have to fill your blog with all the details available. Keep it short and simple and to the point.
  10. Don't be offended by the comments posted by others on your blog. Its nice to be thick skinned in the blogging world because everyone has an opinion.  
  11.  Cite references and give credit to the original writers wherever required. That the most critical aspect in a technical blog.
  12. Install tools mentioned for a better digital footprint.
Start blogging and have your individuality quotient in all your blogs unlike the funny story mentioned below!