Archive for February, 2008

Feb 24 2008

The Advertiser’s Dilemma

Published by Niyaz PK under General

Consider a product X from your rival company. A similar product from your company is named Y. The market shares of the products are as follows: X:90% & Y:10%. Clearly, product X enjoys more market share because it is the better of the two.

You want more market share for your product and so you start a marketing campaign consisting of advertisements in the mass media. Whenever a citizen views one of your ads, he becomes interested in the product. If he really needs the product, he will do a little more research and he finds out about the best product in the category: Product X.

He becomes a customer of your rival company. In essence, you advertise for your competitors.

What is the solution for this problem? Build a better product than the competition. Otherwise you are wasting a big percentage of your marketing budget.

5 responses so far

Feb 20 2008

I am Joining Keane

Published by Niyaz PK under General

I have a new job at Keane, a global services firm that specializes in enabling transformation of its clients’ business and IT functions. I will be working at the Hyderabad office, and plans to reach there by tomorrow.

Keane_logo

A very refreshing thought is the fact that 10+ of my friends will be there too. So I won’t miss home much. Looking forward to an exciting life in Keane. I will give more updates as needed.

Meanwhile, thank you for your precious time and attention. You are the real inspiration for me to continue writing.

If you wish, you can subscribe to the RSS feeds of this blog in any reader of your choice.

Thanks again. Really.

12 responses so far

Feb 19 2008

The Best Way to Fail

Published by Niyaz PK under General

Failure_Glass_Break Murphy’s law: If anything can go wrong, it will.

It is true.

So true that we hear of it everywhere. We take precautions to manage failure. We have remarkable exception handling mechanisms in our programming languages. In spite of all our efforts, systems fail. So what should a system do when it is going to fail?

Here are two basic strategies you many stick to in case your systems fail.

1. Fail Graciously

Tell the user that an error has occurred. Complete or roll back any ongoing transaction, and inform the user about the action taken. Don’t ever make the user wonder where his data (or money, or effort) went.

2. Fail Securely

Fail closed. The default should be secure.

And how to fail securely? The best way is to design the security with your product, not add it later like an add-on.

Failure_Security

The security part of your application should not fail without shutting down the whole application. If not, the hole in the application will bring down the application anyway with catastrophic results.

Note that in the above figure, I am not referring to modules in your design. Of course, your security module will be different from the other modules. At the same time, once the application is up and running, it should not be an isolated module that could be shut down independently.

For instance your application should not give out a message like:

Sorry. Our authentication Server is down and we cannot verify your password. You can now login with just your username.

I am sure that you are aware of the importance of these two factors. Just educate your fellow developers too.

Finally, here are some more Murphy’s laws for the lol-fans:

  • If anything simply cannot go wrong, it will anyway.
  • If there is a possibility of several things going wrong, the one that will cause the most damage will be the one to go wrong. Corollary: If there is a worse time for something to go wrong, it will happen then.
  • If anything simply cannot go wrong, it will anyway.
  • If you perceive that there are four possible ways in which a procedure can go wrong, and circumvent these, then a fifth way, unprepared for, will promptly develop.

No responses yet

Feb 18 2008

Native UI and Opera

Published by Niyaz PK under Design

Not many expert developers are expert designers. That is exactly why you should have a bunch of good designers in your company, however small your firm is. User Interfaces in your products should be tweaked to look good, feel good and help the seamless workflow. A user should never be persuaded to learn the new UI you present them in your application. If you try to push a brand new alien UI in your application, people resist using it. Customers almost always resist change. The end result: Your competition gets the customers. You lose.

Use of native IU styles are very very important.

Every application that works in a windows PC should look like one. If you develop an application for Mac, make sure that it looks like other applications in the Mac. Foreign UI is a problem I see with the Opera web browser. In the default skin, it does not quite look like a windows application. See the screenshot of Opera 9.50 beta:

Opera_Interface

Why use a blue background for the tab? Why use a white border for the tab? Why not stick to the native windows UI looks?

When I first used Opera, it took some time to get along with the UI. The controls are the same as in any other browser, but since the visual styles are a bit different, the user may not be able to use the software comfortably.

The above skin is called Opera standard. There is anther skin which comes with the Opera installation - Windows Native.

Opera_Native_Interface

This is much better. Why not chose this as the default?

I truly think that the bad selection of skin (along with other factors) does affect the market adoption rate of Opera. The buttons and other visual styles are also different. It is good to have a difference and it is great to have enhancements in your software UI. But that doesn’t mean you should change the simple controls to look different. It actually confuses your users.

In the windows platform, only the Microsoft Internet Explorer uses the native look and feel. It looks great and feels simple.

InternetExplorer_Interface

It doesn’t even feel like that you are using a big application in your computer. It just feels like you are using the windows explorer. It feels as if you are using a part of the OS, not an additional program. Great.

Firefox also does not use the native UI controls exactly. Here is a screenshot of Firefox 3 Beta 3.

Firefox_Interface

Apparently, it is better than Opera.

A Bit on the Loading Speed

Even though IE7 may crash if you have lots of tabs open, its startup time is very little. If you want to open just a webpage, use IE.

At the same time, Opera takes a lot of time to load. Once it is loaded, it works very fast. If you want to work online for a long time, Opera is the best choice, especially if you want to open a lot of tabs. Opera has many great features that will enhance your surfing experience, but the Opera team should work on the startup time. Loading speed is a problem with Firefox too.

16 responses so far

Feb 15 2008

Microsoft IE8 and the Default Behavior

Published by Niyaz PK under Internet, Microsoft

From the latest developments it looks like IE8 will default to the IE7 behavior. It will render websites in the original IE8 mode only if a special meta tag is inserted into the webpages by developers. I have already written about this pathetic solution of version targeting. In addition, I think the defaulting to IE7 behavior has some other far reaching consequences.

Jeremy Keith supports the IE8 version targeting, but opposes the idea of IE8 defaulting to the IE7 behavior.

Let’s say you’re building a website right now that uses a CSS feature such as generated content. Any browsers that currently support generated content will correctly parse your CSS declarations. Future browsers that will support generated content should also parse those CSS declarations. This expected behaviour will not occur in Internet Explorer. IE8 will include support for generated content. But unless you explicitly declare that you want IE8 to behave as IE8, it will behave as IE7.

Jeffrey Zeldman responds to this:

Jeremy, since you are among the tiny minority of enlightened web developers who know what generated content is, and who care that IE8 will support it (and since you read ALA), you will know to include a meta element that instructs IE8 to act like IE8—or you will use “edge” to instruct IE14 to act like IE14. Easy-peasy. No hardship for you.

By contrast, the many developers who don’t understand or care about web standards, and who only test their CSS and scripts in the latest version of IE, won’t opt in, so their stuff will render in IE8 the same way it rendered in IE7.

I agree with Zeldman when he says that developers don’t care about standards. At the same time I have to disagree with him on the issue of the default behavior.

The point is that IE8 is the same as IE7 if it defaults to IE7 behavior. Then what was the point in developing a new browser version? As Zeldman notes, only a handful of the enlightened web developers care about browser versions and standards. Many will not know that they have to include a special meta tag in their webpages. So what happens when IE8 ships?

Most of the developers will think they have a new version of IE and they will test their pages in the default mode of IE8 which is actually IE7 mode. So in effect, nearly all of the web developers out there will still be developing websites for IE7. Thus we will have people writing webpages for IE7 even though IE8 becomes widely used. This not backward compatibilty. This move from the Internet Explorer team will only result in more problems in the future.

Only time will tell whether the idea of version targeting was good or bad. But the defaulting thing is just a flawed idea. It will dampen the growth of the web, the standards and the other browsers too. This also will reduce the spread of standards awareness.

Even though Eric Meyer supports the IE move, he raises some important concerns in his article - From Switches to Targets: A Standardista’s Journey:

The biggest concern is fidelity. Will the backwards-compatible code for IE8 always act exactly like IE8 did, or will there be subtle changes that still break old sites? Might there even be, dare we mention it, new bugs that affect the backwards compatibility of future browsers? After all, the door swings both ways: vendors might get lax about their backward-looking code just as developers might get lax about their forward-looking code. Talk about irony.

A small concern is the effect of version-targeting code on the size of browser applications themselves. Could this be a step toward browsers becoming bloatware? Someone will chime in with “Who cares? Hard drives are huge now!” but I remain solidly unconvinced by “resources are cheap” arguments. No matter how cheap they are, people still keep filling them up. I sincerely hope the browser of the future won’t require a gigabyte or two of storage space, chained to every previous version of itself like Jacob Marley to his past misdeeds.

The world is still not flat

A cold chill was sent down my spine when I read the following paragraph from Jeffrey Zeldman:

… it’s actually good, because it means that their “IE7-tested” sites won’t “break” in IE8. Therefore their clients won’t scream. Therefore Microsoft won’t be inundated with complaints which, in the hands of the wrong director of marketing, could lead to the firing of standards-oriented browser engineers on the IE team. The wholesale firing of standards-oriented developers would jerk IE off the web standards path just when it has achieved sure footing. And if IE were to abandon standards, accessible, standards-compliant design would no longer have a chance. Standards only work when all browsers support them. That IE has the largest market share simply heightens the stakes.

Yes. This does mean that IE can make or break standards. It is true that IE dictates the terms in the market. And we should support the IE team in making the web a better place to live. But that doesn’t mean that all of us must bow down in respect every time they screw things up and make a the web a mess. We could fight back.

3 responses so far

Feb 14 2008

Google Captcha for Aliens

Published by Niyaz PK under Google, Security

Here are some Captcha images I saw on a Google page.

Google Captcha Images

Looks like Captcha for aliens.

Can you solve all of them?

Probably we should ditch the Captcha idea altogether.

We have enough reasons for that.

6 responses so far

Feb 12 2008

The Privilege of Commenting

Published by Niyaz PK under Bugs/Issues

Here is a screenshot of the comment form in Jeremy Zawodny’s blog

Worst_CommentForm

Zawodny is working at Yahoo. He is getting lots of comments in spite of this crappy comment processing cycle.

Here is what I was told after I posted a comment:

Thank you for commenting.

Your comment has been received and held for approval by the blog owner.

Return to the original entry

An approval from the commentator. Then an approval from the moderator. And don’t forget to solve the “Captcha” in the form.

Talk about the privilege of commenting.

4 responses so far

Next »