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, May 5, 2014
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
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
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.
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.
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/
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.
But here are a few reasons why every technical person should blog.
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
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?
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.
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:
Monday, March 3, 2014
Open Source - is like sharing a recipe!
Of all the open source
analogies, the one that I enjoy the most, partly maybe because I love cooking is,
"Open source is like sharing a recipe."A recipe that is shared for free and we can alter the recipe to make it our own. That is an interesting thought, isn't it?
If we think more about it, I feel open source
taps our creative energy. We can receive hints from various recipes and make
our own recipe. We can then savor and relish the dish and share the recipe with
our friends. That is the distinctiveness of an open source package. Deceased
are the days when we go look for the best software which offers all the
features that we need, only to discover that it is expensive. In the end,
we compromise over a free version with less features. With an open source
package, you can select the features you demand, customize it to meet your
needs and distribute it with the community.
These are two wonderful open source softwares
for mathematical computations I came across recently.
1. Octave - the best alternative
for MatLab. It is mostly intended for numerical computations. This
software was a savior for us for a machine learning class project which
needed MatLab. It provides extended features for information visualization
and has a great deal of graphical capabilities. Vector calculations and matrix
calculations are fast. There is usually a talk that open source software does
not have good documentation, but octave documentation gives you what you need
and is very helpful.
2. Sage (Open Source Mathematics Software) -
When Wolfram Alpha gives up factorizing a 72 digit number, this software does
it in seconds. Wolfram Alpha allocates limited computing power for each
mathematical operation that is being executed and gives up after a limited
amount of time. Whereas, Sage completes complicated computations within
seconds. It gives you a separate worksheet to work with and the worksheet can
be saved for later use. If octave is already installed in our system, we can use
Octave from Sage by calling the octave command within Sage. This combination is
the best for numerical computations. An example for using Octave within Sage is as follows.
'ans = 4'
And, a recent find was,
3. Borg Disassembler - Borg Disassembler is
an excellent open source free dis-assembler for Win 32 PE files and is
definitely capable of competing with OllyDbg and IDA Pro. OllyDbg is a
shareware and IDA Pro has very limited features for free. Borg Disassembler is
a free, open source software and has necessary features for dis-assembly and
reverse engineering.
Open source is the best thing that happened to
developers. A developer instead of relying on buying software can build
wonderful things on open source. Having stated all that, in that respect are
always secret recipes in the market that will not be revealed whatsoever.
Dishes made out of secret recipes like Windows definitely costs money for all
its worth. For people who love ready-made, it either costs money or the wait
for the software to exist. For people who like customized things, open source
is that is.
Monday, February 24, 2014
About Me
"A real dream is the one that drives you, motivates you, pushes you, inspires you and makes you YOU". I have been following my dream ever since I started programming at the age of twelve.The concept of making things simpler by writing a program has always fascinated me. I believe that acquiring the knowledge and the skills is the first step to be taken towards any dream since being ready to apply your skills when the need arises is very important.
Of all these years in computer science, I have acquired varied skills in C, C++, Java, HTML, Javascript, C#.NET, MS SQL Server and SQL Server Reporting Services. Other than programming skills, what I can do best involves team work, coming up with creative ideas to solve problems, analytical skills and facing challenges.
I have two years work experience in software development. I received 'Thank you' Award in IBM for outstanding assistance for the team to achieve the go-live deadline after finishing the work assigned to me and also for developing extra tools like Resource management tool, Asset tracking tool for making client's job easier apart from the regular work assigned.
To further apply, acquire skills and explore the latest technologies, I am pursuing masters in computer science at SJSU. I have taken some interesting courses related to Big Data analysis, Data mining and Machine learning. My current interests have been focused on Data mining and Machine learning. I am currently working on my masters project which is related to hybrid analysis on malware detection using data mining methods. I envision myself as a data scientist in the next ten years and working towards it.
Specialities: C#.NET, Microsoft SQL Server, SQL Server Reporting Services, C/C++, Java, Hadoop.
Subscribe to:
Posts (Atom)














