Friday, March 11, 2016

Navigating to Multiple Search Results in Google Search Engine (Usability Heuristics for User Interface Design)


Most of the times, an end user is visiting google.com to search something which he may not be sure of where to find. More often, exact term being searched is not easy to remember. Rather than opening a specific search result in new window, it is designed to be opened in the same window. In case, a user proceed further on a website, which don't allow browser's back button functionality, he may have to remember what exact term he searched for.
This is against two principles for interaction design:
  • User control and freedom: User should be able to close browser window, still be able to see the same web page where he entered the search terms. This may be achieved by opening search result url in new window or browser tab.
  • Recognition rather than recall: Since the specific case we are studying don't allow browser back button, user will have to remember and type the search keywords again.  This may be resolved by opening search result url in new window or browser tab.
References
Nielson, J. (1995, January 1). 10 Usability Heuristics for User Interface Design. Retrieved March 02, 2016, from https://www.nngroup.com/articles/ten-usability-heuristics/

Thursday, March 10, 2016

The Design of Everyday Things by Don Norman

1.      According to Norman, how should we handle all failures within a system? What are the primary causes of most failures and what are the design implications for developers?

How should we handle all failures within a system?
1. Understand cause and design to minimize cause rather than blaming end user. It may include using constraints, proper messaging and confirmations.
2. Do Sensibility checks based on user's profile and previous flows chosen if possible.
3. Keep the option to undo action.
4. Make it very easy to discover error.  
5. Try bringing end user to normal desired flow of action rather than immediately throwing out.
Swiss cheese model beautifully describes how to reduce possibility of errors.


What are the primary causes of most failures?
Most common is requiring end user to operate in unnatural ways.  Interruptions are also major cause of errors, both slips and mistakes.
What are the design implications for developers?
It is not always possible to make errors discoverable or report the error before it has occurred, and undo it when transaction is already complete. Say, end user didn't bother the warning he was given and kept on clicking OK.


2.      Explain the relationship between discoverability, feedback, the conceptual model, affordances, signifiers, mappings, and constraints. Use an item to illustrate your points (Norman discusses these in great deal using several examples. Do not repeat an example from the book. Use your own).

Affordances: is the reason why I am using the machine under consideration, say I will be using shaving kit for cleaning my bread in a while.
Signifiers: Signifiers help determine how I can do shaving bread with this shaving kit lying on my table. 
Mapping: size and shape of the holder matching with the slot is natural mapping for me.
Constraints (may be of type physical, logical, semantic, and cultural): so the holes in blade and the corresponding elevation in the holder work has forced constraint in my example.
Vincent-Old-Fashioned-Safety-Razor
Discoverability: with this it is possible to determine what actions are possible in current state of machine. I can put blade in the holder and clean my face full of shaving cream.
Feedback: Is the way to communicate back, what is happening. I will look in to the mirror while shaving how it’s going on, this is feedback for me.
Conceptual model: This is the rough image in my mind of the system and how it works. I am writing this description above based on conceptual modal in my head.


3.      Summarize Norman's thoughts on standardization. He brings it up at several points in the book. He offers the benefits and the drawbacks but does provide a clear viewpoint.

Author clearly mentions the importance of affordances and signifiers, discoverability, feedback. But if it is not possible to provide anything or say there is a language barrier or anything unforeseen, he says  standardization always pays and worth following.
When no other solution is possible, design everything the same way so that people have to learn once. Standards simplify life for everyone, but it is difficult to set a standard and bring all the manufacturers and governing agencies on the same page.
He mentions, sometime standards may take so long to develop that they are no more relevant and beneficial, because already in market there are numerous manufacturer specific designs implemented now.
There are always many people who advocate presence of multiple standards.
Sometimes, even if standards are set, they are no followed and vanish with time.


4.      Norman discusses the process of design thinking. What two tools does he provide to support this process and how are they related? According to Norman, are these more theoretical or practical? Why?

He suggests double diamond model for defining problem and then again    double diamond model to reach the best possible solution.
In both cases, we start with something, and expand our scope and finally based on elimination reach to problem statement/ solution.
Start with an idea, and through the initial design research, expand the thinking to explore the fundamental issues. Only then is it time to converge upon the real, underlying problem. Similarly, use design research tools to explore a wide variety of solutions before converging upon one.
These are more theoretical though.
Money, schedule constraints and market pressure may not allow detailed analysis.


5.      Norman asserts that "reliance on technology is a benefit to humanity". What does he mean by this? Do you agree? Why or why not?

Author here means that, if we use more and more advanced technology based solutions, it is not always true that we will be making ourselves dumb. We may not be always losing our abilities, but we will have more mental resources to be used elsewhere.
But he also mentions that, perfect coordination b/w man and machine is the key. If we are not able to utilize our brain to fully deploy machine power, it may be not so beneficial.


6.      Norman's goal with this book was to turn readers into great observers of the absurd, of the poor design that gives rise to so many of the problems of modern life, especially of modern technology while giving them a tool chest of good design principles to address future issues of design. Did Norman accomplish his goal with you? Explain while offering your biggest take-a-ways from this book (positive or negative).

To be true, he is not successful if I consider myself as an end user and reading this book, but yes me being in a designer role, it helped me.
Me as an end User:
1.  Author uses similar examples to illustrate two almost opposite direction concepts. 
2. I think, if I am the end user in this book, I may be a person without common sense and empty skull. That is not the case in 99% cases. 
Yes it gives me some good tactics to argue, but I will prefer to sort out issue myself before actually running to the manufacturer.
Me as a designer/developer:
Yes, this book is something I will keep with me always and keep on reading again and again. This book is the lifetime experience of a brilliant personality and teaches me to be end user centric in my products.
Some things I am going to stop doing:
1. Thinking that, why my client doesn't understand what I am trying to explain.
2. Did she miss the big red message in large font?
3. Why should I worry to roll back transaction, when I gave the big confirmation message.
4. This application works well in Chrome, who cares IE, there are very few user base from IE as per Google analytics.
5. Why didn't the end user not able to see this download button?
6. I won't ever blame customer service guy to forget a step in sequence we handed over to him, rather think of making design more robust.
7. Now I know the importance of text in error messages.




Interactive Systems Design

Interaction design:

Is evolving software and hardware for better user experience.

human-computer interaction:

Is implementing knowledge of computer and human behavior to evolve better user interface between users and computers.

user experience design:

 Is a way to improve a product keeping in mind why the product is used by an end user to deliver more satisfaction.

interactive systems design:

Is the way to design and develop Interactive systems with more focus on user satisfaction implementing concepts in the field of human computer interaction. Interactive system here points towards a system which will be having heavy interaction between human and digital world. 

Wednesday, March 9, 2016

Don't Make Me Think - by Steve Krug


Ch. No. Title Learnings
1 Don’t make me think! Website design should be as much obvious as possible.
2 How we really use the Web Website should be easy to scan through and reach desired content.
3 Billboard Design 101 visual hierarchies
Follow widely accepted conventions
4 Animal, Vegetable, or Mineral? a)It doesn’t matter how many times I have to click, as long as each click is a mindless, unambiguous
- brief timely and unavoidable assistance
5 Omit needless Words Get rid of half the words on each page, then get rid of half of what’s left.
6 Street signs and Breadcrumbs People won’t use your Web site if they can’t find their way around it. where do I start?

Site Id, obvious Logo and Tagline
Utilities
Sections and sub sections -(where am I also)
Page name
  Areas on this page
  Items on this page
Breadcrumb
Local navigation
   up to nth level
Footer navigation
7 The Big Bang Theory of Web Design Home page design-
      Analyze why  and where people may visit the most.
clear and informative tagline, Welcome blurb, short sweet description
8 The Farmer and the Cowman Should Be Friends how to do usability tests and why
9 Usability testing on 10 cents a day promoting next book and how to do usability test
10 Mobile: It’s not just a city in Alabama anymore responsive design
Mobile Site/Full Site toggle
asynchronous calls to make the page load fast
choose important stuff of the so much
learning curve  for user
11 Usability as common courtesy save your goodwill - honors user's time
dynamic FAQ's - no marketing here
customer care access
error handling
printer friendly pages
12 Accessibility and you alt text
headings
main menu skip
only keyboard
screen contrast
using predefined templates and variable size text fonts
13 Guide for the perplexed no phishing
no small, low-contrast type
no labels inside form fields
distinction between visited and unvisited text links.
No float headings between paragraphs


Website url www.walmart.com
Video URL https://youtu.be/qHfDiOMAZwU?list=PLf8gXAJY10GEx5r_KvBIeTbaHnIMhMlQ_
Task You want to buy  a Laptop with below mentioned specifications:
  a. Lenovo
  b. Screen size not more than 14""
  c. RAM minimum 8 GB
  d. Processor minimum i5 5th generation
  e. hard drive minimum 500GB
  f. Weight maximum 5 Lb.
  g. price should be minimum possible.
1 Don’t make me think! OK
2 How we really use the Web OK
3 Billboard Design 101 OK
4 Animal, Vegetable, or Mineral? OK
5 Omit needless Words OK
6 Street signs and Breadcrumbs Rest is ok, local navigation needs improvements
7 The Big Bang Theory of Web Design No tagline
Changes products based on cookies of various searches I did at multiple sites - good.
Promotions at right place - good.
10 Mobile: It’s not just a city in Alabama anymore good responsive design.
Mentioned app link in the bottom.
 no link to full site since design is responsive.
11 Usability as common courtesy a.)wait time is too high for customer care.
b.)Chat link is down in help where user has lost the product. Chat option or customer care phone number should be prompt at the product itself
c.) Generation of i5 processor not mentioned, there is a model number which I don't understand
d.) good that they have a reference number on page to help the user to retrieve current sessions, but this text is in very light color.
12 Accessibility and you does not seem to be handling accessibility issues
13 Guide for the perplexed a). It is tracking my interests and location, but no cookies consent popup I saw yet.
b.) No distinction to identify visited links.


Website urlbypoo.com
Video URL https://youtu.be/SM2fbGbda7I?list=PLf8gXAJY10GEx5r_KvBIeTbaHnIMhMlQ_
Task Check WhoIs information for domain name "fhsu.edu" along with the location of server where it is deployed.
1 Don’t make me think! The first row of page content of website is enough to puzzle me. I am not here to visit GoDaddy, Sedo or get the worth.
2 How we really use the Web I scanned the whole page to figure out what to do. Not even a single instruction.
3 Billboard Design 101 It seems to be a lot of information is literally poured on a single page. At least I figured out I need to type "fhsu.org"  in the search box in left navigation. But what does tld means, I don't know . Enter keypress should have done same action as that clicking on the magnifier icon.
Also, there are too many h1 tags, no h2, h3 or something like that.
Further big value by statsie indicate like shouting, buy this domain, but I am here only to get WhoIs information.
4 Animal, Vegetable, or Mineral? Even though, I clicked only once to reach WhoIs information page, I had to think quite few seconds. This is not good.
5 Omit needless Words Under whoIs Information, there is so much content which is useless to me. I only need address, email and phone number. Rest is crap.
6 Street signs and Breadcrumbs A.)On the name of site ID, there is the website url
B.) On the name of utilities there is only about us and Facebook share. No login or site map or something like that. One thing here, if there is no login, how previously searched in left navigation calculated ?
C.) On the whole page there are various H1 tags no subsections or similar hierarchy .
D.) There is no page name at all, leave about areas or breadcrumb.
E.) Local navigation is very limited, which only tells about how many visitors came here or are currently online, I think this is wrong place to mention such info.
F.) No footer navigation is present.
G.) If you visit previously searched, grid is not good, not even a back page button, only next is there. further there must be page numbers to jump far off page in the grid.
H.) There is no filters for TLD's
7 The Big Bang Theory of Web Design A.)No Site Id here, leave aside the tagline.
B.) There is no description or introduction at all.
C.)It seems to be godaddy/sedo are there for promotion ( not sure, because when we travel third party website, I don't see any cookies or identifier transferred).
D.) Too much information on home page, it's worth dividing into multiple pages.
10 Mobile: It’s not just a city in Alabama anymore A.)good responsive design, but the navigation doesn't look good on smaller resolutions.
B.)In Mobile view(smaller resolution), few grids like location information are giving horizontal scroll which is against standards.
C.) I observe many asynchronous content loads which is good for mobile and slow internet connects.
11 Usability as common courtesy a.)There is no contact us section.
b.)If I click on about us, it gives entirely different design - loss of confidence.
c.) Try to search invalid domain. Proper error handling is missing.
12 Accessibility and you does not seem to be handling accessibility issues
13 Guide for the perplexed a). It is tracking my interests and location, but no cookies consent popup I saw yet.
b.) No distinction to identify visited links.

Website url www.hp.com
Video URL https://youtu.be/xVDYuS-Q-wo?list=PLf8gXAJY10GEx5r_KvBIeTbaHnIMhMlQ_
Task You want to buy  a Laptop with below mentioned specifications:
  a. hp
  b. Screen size not more than 14""
  c. RAM minimum 8 GB
  d. Processor minimum i5 5th generation
  e. hard drive minimum 500GB
  f. Weight maximum 5 Lb.
  g. price should be minimum possible.
1 Don’t make me think! Ok
2 How we really use the Web bad. No laptops in view all.  Test stops here . Such a big name and fails the basic test!!
3 Billboard Design 101 N/A
4 Animal, Vegetable, or Mineral? N/A
5 Omit needless Words N/A
6 Street signs and Breadcrumbs N/A
7 The Big Bang Theory of Web Design N/A
10 Mobile: It’s not just a city in Alabama anymore N/A
11 Usability as common courtesy N/A
12 Accessibility and you N/A
13 Guide for the perplexed N/A

Website urlwww.dell.com
Video URL https://youtu.be/m_lQff5IjC8?list=PLf8gXAJY10GEx5r_KvBIeTbaHnIMhMlQ_ 

https://youtu.be/FHSwxTdQJtQ?list=PLf8gXAJY10GEx5r_KvBIeTbaHnIMhMlQ_
Task You want to buy  a Laptop with below mentioned specifications:
  a. Dell
  b. Screen size not more than 14"
  c. RAM minimum 8 GB
  d. Processor minimum i5 5th generation
  e. hard drive minimum 500GB
  f. Weight maximum 5 Lb.
  g. price should be minimum possible.
1 Don’t make me think! website design is simple yet meaningful so OK
2 How we really use the Web OK
3 Billboard Design 101 OK
4 Animal, Vegetable, or Mineral? OK
5 Omit needless Words OK
6 Street signs and Breadcrumbs Rest is ok, main navigation need improvement for laptop category
7 The Big Bang Theory of Web Design There is no tagline but carousel heading covers it.
10 Mobile: It’s not just a city in Alabama anymore good responsive design.
 no link to full site since design is responsive.
11 Usability as common courtesy a.)wait time is too high for customer care if connected by phone, but chat wait time is low.
b.)Chat link is spread across everywhere, I like that.
c.) Even minute details of the laptop configuration is mentioned, I like that
d.)Exact laptop weight is not clear.
E.) everything including price match and refund policy link are clearly visible.
f.) After login I am thrown back to home page of site - to do all the selections again. This is heart breaking.
12 Accessibility and you does not seem to be handling accessibility issues fully.
13 Guide for the perplexed a). No tracking until I login with my account.
b.) No distinction to identify visited links.

Tuesday, March 8, 2016

Is Entity Framework the best performing option for PostgreSQL and .NET applications?

Updated on Monday, April 15, 2017
Abstract
Object-relational mapping (ORM) solutions provide a virtual layer between actual application code and backend database (DB) being used in an application via create, read, update and delete (CRUD) operations. PostgreSQL has been one of the top notch backend DB being deployed with Microsoft .NET applications worldwide. This experiment will be targeting various ORM solutions which may perform well with Microsoft .NET platform and PostgreSQL as backend. The list of ORM solutions that will be evaluated includes NHibernate (NH), OrmLite, MicroLite, Entity Framework (EF), LINQ to PostgreSQL, I-Nercya EntityLite Core, Symbiotic Micro ORM x64, LLBLGen Pro, Uni.ORM, and FluentData. It’s very much true that one may be easy to setup and consume than the other, but scope of this experiment will be limited to analyzing these ORM solutions based on how fast they are able to perform CRUD operations with PostgreSQL and .NET.
-1. know your test system
https://hemantrohtak.blogspot.com/2017/02/startstopget-details-for-windows.html
0. Create test databases
https://hemantrohtak.blogspot.com/2017/03/create-database-and-content-using-psql.html
1. EntityFramework6.exe
https://hemantrohtak.blogspot.com/2017/02/entityframework6npgsql-with-postgresql.html
2. FluentData3.exe
https://hemantrohtak.blogspot.com/2017/02/fluentdata-with-postgresql-and-net.html
3. InercyaEntityLite1121.exe
https://hemantrohtak.blogspot.com/2017/02/i-nercya-entitylite-with-postgresql-and.html
4. LINQtoPostgreSQL17x.exe
https://hemantrohtak.blogspot.com/2017/02/linq-to-postgresql-with-postgresql-and.html
5. LLBLGenProLite51Console.exe
https://hemantrohtak.blogspot.com/2017/02/llblgenpro-lite-with-postgresql-and-net.html
6. MicroLite6.exe
https://hemantrohtak.blogspot.com/2017/02/microlite-with-postgresql-and-net.html
7. NHibernate4.exe
https://hemantrohtak.blogspot.com/2017/02/nhibernate-with-postgresql-and-net.html
8. OrmLite.exe
https://hemantrohtak.blogspot.com/2017/02/ormlite-with-postgresql-and-net.html
9. SymbioticDataProviderPostgreSql2.exe
https://hemantrohtak.blogspot.com/2017/02/symbioticdataproviderpostgresqlx64-with.html
10. UniORM144.exe
https://hemantrohtak.blogspot.com/2017/02/uniorm-with-postgresql-and-net.html

git clone https://bitbucket.org/hemantup/orm.git -b master

test Run output: (Average calculated from 10 Cycles)
bitbucket.org/hemantup/orm/raw/HEAD/Results/

As pdf:

https://drive.google.com/open?id=0B6dqipWMkn9XemNaWFRBdkU5b1E





Sunday, March 6, 2016

Designing a Database


Before analyzing most important factors to consider when designing a database, one must be aware of what is database design. It is the process of generating detailed data modal of a database. A data model organizes data elements and standardizes how the data elements relate to one another.
Data model may be conceptual, logical or physical in nature. A conceptual schema specifies the kinds of facts or propositions that can be expressed using the model. The logical data model captures the detailed business solution. The logical data model looks the same regardless of whether we are implementing in MongoDB or Oracle. This consists of descriptions of tables and columns, object oriented classes, and XML tags, among other things. Physical data model describes the physical means by which data are stored.
While designing a database, designer must follow these steps,
·         Determine the data to be stored in the database. This involves understanding the business and how the application is being proposed to behave.
·         Determine the relationships between the different data elements. Designer must be aware of and document how the business entities being discussed are interrelated.
·         Superimpose a logical structure upon the data on the basis of these relationships. Now designer must map business entities and logics to tables, views, primary key, foreign keys, normalization rules etc. In an Object database the storage objects correspond directly to the objects used by the Object-oriented programming language used to write the applications that will manage and access the data.
Some of the most important things to keep in mind while designing database are as follows:
1.      Understand Business
As mentioned above in steps of database design, understanding the business rules is most important, rest comes automatically by experience.
2.      Load on application and Volume of Data
You must be very much sure of how much load and concurrent users you are expecting. Do you need multiple servers or single server for both update and read? Always plan for much higher loads and data volume than anticipated as of today.
3.      Indexes
The application is going to be to more towards read operations or update/add? Indexes are likely to help more for a fast retrieval of records from a table. But if the update/add is going to be too much for the server to perform, it may actually reduce the performance.
4.      Normalization
The database designed must be structurally correct and optimal. Normalization rules may help a lot in this, but sometimes for the sake of performance, design being very specific to an application, these rules may be forgiven.
5.      Information  Integrity
Most of the big names database engines automatically enforce data integrity, but yes as a database designer, you may not be able to enforce certain business validation in DB itself, these must be clearly specified in the design documents. As a database designer, things like primary keys, foreign keys, transactions, triggers etc. are your responsibility.
6.      Security
Specifying Mode of authentication and hiding sensitive information via encryption is essential if business needs it. I have seen many deployments where multiple projects were using same credentials to access multiple databases. This is clearly not a standard practice to be followed. You must be aware of all the auditing features provided by the database engine being used.
7.      Backup and deployment policies
You must be aware of backup of deployment techniques and policies the organization is using, for whom you are designing the database.
8.      Programming platform
Database designer should be aware of the consuming application technology.
If you follow above mentioned thumb rules, most of the issues in production environment may be avoided even before they are encountered. Never forget those restless nights when a production issue comes and do the best you can well in time.
References
Chapple, M. (n.d.). Database Normalization Basics. Retrieved February 17, 2016, from http://databases.about.com/od/specificproducts/a/normalization.htm
Chuan, C. H. (2010, September). A Quick-Start Tutorial on Relational Database Design. Retrieved February 17, 2016, from http://www.ntu.edu.sg/home/ehchua/programming/sql/relational_database_design.html
Database design tutorial. (n.d.). Retrieved February 17, 2016, from http://en.tekstenuitleg.net/articles/software/database-design-tutorial/intro.html
Feasel, K. (2014, April 24). SQL Injection: How it Works and How to Thwart it. Retrieved February 17, 2016, from https://www.simple-talk.com/sql/database-administration/sql-injection-how-it-works-and-how-to-thwart-it/
IBM. (n.d.). DB2 Version 9.7 for Linux, UNIX, and Windows. Retrieved February 17, 2016, from http://www-01.ibm.com/support/knowledgecenter/SSEPGG_9.7.0/com.ibm.db2.luw.sql.ref.doc/doc/r0001029.html
Maulo, F., Bohlen, S., Maughan, J., Brown, R., Zaytsev, A., & Berggren, O. (2015, August 17). NHibernate (Version 4.0.4.4000) [Computer software]. Retrieved February 17, 2016, from https://www.nuget.org/packages/NHibernate/
Microsoft. (n.d.). Maximum Capacity Specifications for SQL Server. Retrieved February 17, 2016, from https://msdn.microsoft.com/en-us/library/ms143432(v=sql.120).aspx
Oracle Corporation. (n.d.). 8 Database Auditing: Security Considerations. Retrieved February 17, 2016, from https://docs.oracle.com/cd/B14117_01/network.101/b10773/auditing.htm
Oracle Corporation. (2016, February 5). MySQL (Version 5.7.11) [Computer software]. Retrieved from http://dev.mysql.com/doc/refman/5.7/en/introduction.html
Oracle Corporation. (n.d.). Oracle Database Limits. Retrieved February 17, 2016, from https://docs.oracle.com/cd/B19306_01/server.102/b14237/limits.htm#REFRN004
PostgreSQL Global Development Group. (2016, February 11). PostgreSQL (Version 9.5.1) [Computer software]. Retrieved from http://www.postgresql.org/about/
Rojansky, S., Lenngren, E., Figueiredo, F., Jr., Uno, K., Asher, J., Cooley, J., . . . Saito, H. (2015, September 18). Npgsql for Entity Framework (Version 2.2.7) [Computer software]. Retrieved from https://www.nuget.org/packages/Npgsql.EntityFramework/
SoftwareInsider. (n.d.). MySQL. Retrieved February 17, 2016, from http://database-management.softwareinsider.com/l/30/MySQL

Telly, M. (2009, February 24). What are the most important considerations when designing a database? Retrieved February 17, 2016, from http://stackoverflow.com/questions/580233/what-are-the-most-important-considerations-when-designing-a-database