User Interface Usability Checklist Part 2

So you made it through part 1 of the usability check list, how about part 2?
21. Poor Label Alignment If you have been through design 101 you have probably heard of the wonderful acronym for the basic principles of design, C.R.A.P. This of course stands for Contrast, Repetition, Alignment and Proximity. Proximity is very important when identifying which label belongs to which input. Each different form of alignment has its advantages and disadvantages.

Left Alignment The label appearing on the left of a box is a common practice. This often helps with vertical space and keeping all of the elements of a form on a single page, which can be beneficial in aiding the user in form completion and making them aware of all of the possible options they can, or made need to provide information for. It does however have a few disadvantages.

Long labels cause short label's input boxes to be far away from the end of the label, this damages that basic principle of proximity. In extreme cases it c…

Procedural VS Object Oriented

What is the correct way to write code? If you have worked with PHP long enough you may well have come across the website PHP The Right Way. This website is dedicated to helping developers learn the industry best practices. Interestingly another site appeared afterwards called PHP The Wrong Way. In essence this website is a rebuttal to the many of the recommendations made in PHP The Right Way.

With any sphere of learning it is important to keep an open mind, to listen and critically evaluate the received wisdom and determine if it is indeed wisdom or opinion built on shaky ground. There is one part of the argument I would like to focus on and this is the argument for and against "Always use object-oriented Programming".

While PHP The Right Way does not appear to explicitly state that you should always use an object oriented approach it is implicit from the examples and the recommendations to use design patterns. While there are programming approaches available other than pro…

CORNING GORILLA GLASS 5 what does up to 80% mean for the Note 7.

To quote Corning "Introducing Corning Gorilla Glass 5, a new glass solution that raises the bar for protection against drops higher than ever, surviving 1.6-meter, shoulder-height drops onto hard, rough surfaces up to 80% of the time."

They then go on to say "...That’s up to 4X better in drop failure height than competitive glasses...". They seem to be very careful to say up to in both cases.

That caveat seems rather extreme. Unfortunately the published information only has a graph with "Normalized Average Height to Failure" based on "Incremental face drop on 180 grit sandpaper". Was it this test that they used for the derivation of the up to 80%?

Are hard, rough surfaces "180 grit sandpaper". What does "surviving" mean, are there no signs of damage? I would have assumed that you would have written "no signs of damage" rather than "surviving" as to me it sounds a lot better...

Additionally when tested was …

Black and Blue or Gold and White Dress - The emperors new clothes

I was in the office when I received a message saying, what colour is this dress?

Now I could see the glare in the top right so I though this photo was not taken under the best lighting conditions and so it would be difficult to be certain of the exact hue, but my best guess would be white and gold. I was happy to be slightly wrong, that the white was some sort of light hue, it had a purple tint, but lots of camera throw in blue or purple tints erroneously and the gold could have been anywhere from yellow to brown.

Apparently I am wrong, the dress is blue and black. Now this would not bother me, but apparently lots of people, perhaps the majority see it as black and blue, where as some see it as white and gold.

So I took different segments of the dress in isolation and performed and analysis of the colour composition of each portion. In HSV terms this comes up with an average colour of bright drab violet (RGB  B9,AD,C4)  and medium faded orange (RGB 7A,63,48). So the image of the dress…

Hypotheses are for testing, but assumption is the mother of disaster

If I were to ask what is the most important element to being a good programmer I would say the ability to avoid making assumptions and instead make hypotheses that can be tested. Knowing you are right because you have data to back it up will allow projects to remain on track. Ploughing on based on guess work and things a colleague told you once (without providing you with data & methodology to back up these statements) will likely lead to ruin.

I does not matter how long someone is programming it is always possible that someone heard something once, took it as gospel and never tested it to make sure it was true. I encountered this with a couple of colleagues and an SQL query. The SQL query was built from a ORM-like query generator and included the syntax WHERE 1=1. Both my manager and a senior developer stated, "well that is the problem WHERE 1=1 will always cause a full table scan rather than use indexes".
When I looked at the same query I thought that the table may be …

User Interface Usability Checklist Part 1

User interfaces are changing quickly, and it can be default to keep up with new designs and trends. The smaller the team the more corners are cut to try and get the product to market. Lots of people advocate the creating and releasing the minimum viable product. This is fine, but companies try to do so without the minimum viable staff level.

Creating a great user interface takes good design, user testing and lots of iteration. Unfortunately user testing is often the first "cost" that is abandoned. The next is the available design time. So when you become incredibly constrained then making good design choices becomes your only course to prevent a horrible mess at the end of the project. I have created a usability check list of common design mistakes. I have seen all of these mistakes in projects from the most expensive to the most basic free apps, and if you can avoid all of them you are well on the way to producing a high quality application.

User Interface Usability Checkli…

Why should you use PDO?

I was recently asked if I could think of any good questions to ask a PHP programmer in an interview. Obviously this got me curious as to what Google might return for this query.

I noticed that a few people recommended asking questions in relation to PDO. All people suggesting questions on PDO were forming questions where the answer essentially was that PDO should be implemented so that switching database is easy/easier.

I have worked on numerous commercial products for a number of years and none of these have ever switched database.

How common a change it is to switch database on a project? I can't imagine the % is very high, although I have not been able to find any figures on this. Additionally of the systems that require switching I suspect they are probably moving from an archaic language / database which does not support the system they are moving to, and so you are largely doing a complete rewrite anyway. Will SuperSQL++ 2040 support your PDO queries from PHP 5.6? Perhaps a …