Send the user back to original page in your site after a log in process is complete

If a visitor hits a page where an action requires the visitor to be logged in, for example posting in a forum, make sure your site redirects the visitor back to the page they were on after the login process completes. They are many times when the log in process takes me to the home page or to a completely different page than the one I was on. I lose my page. That’s why, as a habit, I copy the url just before I click on the ‘log in’ link just in case the site doesn’t redirect me back. Or open the log in page in a new tab or window and log in there and then refresh the original page. Hopefully it refreshes with you logged in.

When designing a site make sure the visitor can navigate smoothly in your site.


Ooops. All comments got deleted!

I made a silly mistake where I copied the original posts files over the existing ones which contained the comments while updating the blog software. All the comments are gone. I should have made copies first. This is a drawback for using XML files for data instead of a database. This wouldn’t have happened if I used a database as the storage type.


Follow these Steps to Minimize the Junk Emails You Get

These are some tips I use to minimize the amount of junk email I receive:

  • I never ever give out my work email address to anyone. Only to close friends and to work related contacts. I never use it for any web site. I use Outlook with notifications turned on. I do not need the extra distractions from notifications about incoming junk mail while I am working.
  • I keep an extra free web based email address which I use only for the sites which ask you for your email address to get their 'freebies'. You know.. the sites who will send you a link to download the trial software, the free eBook, the free newsletter, the free report... etc. The main reason they are offering these free stuff and which are only available by email is so that they can grab your email address and have a way to reach any time they want to.  They might also sell your email address to affiliates, spammers and all the people you don't want to get emails from. This is the email address which you will never check. Check only receive the offer which you subscribed to originally.
    Set the inbox to forward all the messages to the Trash folder so that the inbox stays clean.  All the free web based mail systems delay deletion of messages in the Trash folder. In case you might change your mind.
  • You will probably notice something like "We don't share your email address with anyone" or a privacy clause next to the email field. If there's no interest in receiving any emails from them, play it safe and give them your throw-away email address. While they might not share your email address, they themselves might start sending you messages you're not interested in. Some fine print could mention they can share the email address with their affiliates and partners.
  • If you have a website, do not post your email address in clear text. It can easily be picked up by email address harvesters. Obfuscate it through JavaScript or as an image or use a contact form. Or post it as 'your name @ (or at) your domain name'. Although I believe some sophisticated mail harvesting software would search for this expression.
  • Use the different spam filters your mail client and mail provider provide.

Just be careful and every time you use your email address in a web site, ask yourself 'Do they really need my email address. Can I get away from giving them my email address without negative impact' and then choose the proper action. If the email address is a required field in the form, use your extra email address.


If a bluetooth mouse doesn’t work on new computer, remove all preinstalled bluetooth software and drivers

Arrrggghhh! Big waste of time today troubleshooting a hardware issue. But I am happy to receive a new fast laptop.

Yesterday I received a new Dell laptop at work with Windows 7 preinstalled. I attached my Logitech wireless bluetooth to it and Windows didn’t recognize it at all! I received an error that the device driver didn’t install successfully.

I installed the SetPoint software, the mouse’s software from Logitech,  and got the same problem. I knew there was a problem before installing SetPoint because Windows should recognize the mouse in the beginning as a regular generic mouse.

Every time I connected the bluetooth receiver,  a Broadcom device driver would display in the device manager with a status of ‘could not start’. I noticed there was another bluetooth driver from Dell and figured maybe there’s a conflict between the Dell and the Broadcom drivers. So I disabled the Dell driver. Still same problem. Another thought was that maybe the onboard bluetooth receiver was interfering with the mouse receiver so I disabled the onboard receiver in the BIOS. Same problem. OK now this problem is starting to get annoying because I am running out of ideas. I Googled and noticed that there were a few articles about switching from Toshiba bluetooth stack to Microsoft’s. Vendors are replacing Microsoft’s bluetooth stack.

I know that laptops and computers from known vendors come with preinstalled drivers and software. All the computers I used before where non branded computers which I built myself and I never had any mouse issues. My home computer uses the same mouse. Looking at the device manager on the home computer, I didn’t see any Broadcom drivers. I concluded the Broadcom driver on the Dell laptop must not have come from the Windows installation but from Dell.

I scanned the programs installed in the control panel and noticed a ‘WIDCOMM Bluetooth Software’ entry from Broadcom. I decided to uninstall it. I also uninstalled the Broadcom device driver with the option to delete the files. Rebooted the machine. Connected the mouse receiver, and VOILA, Windows installed the Logitech device driver successfully.

It took me a long time of various trials and troubleshooting attempts to find out finally that a preinstalled software was conflicting with the mouse driver.

So if your bluetooth mouse is not working on a new computer, see if there’s a bluetooth preinstalled software which might not be compatible with the mouse and uninstall it. It’s common from companies like Toshiba and Dell to install their own drivers and software.


My thoughts about Facebook

I watched the movie "The Social Network" the other day and it was interesting to learn how Facebook got started. While I knew about Facebook since its early days when it was exclusive to university students, watching the facts in a movie is a different experience. It gives you a closer look and a human face. The movie resonates with me because launching successful websites and web applications is what I do for a living. I am a late comer to Facebook because I am not really into social networks. Never bothered to join any of these sites until I started getting a few friend requests for Facebook from my some of my old friend and so I decided to check it out. Also because of constant barrage of news coming towards me about it and i wanted what's all hype about.

The movie is about 2 hours long but I felt the movie went by pretty quick. I heard it uses a technique where the frames play at a faster speed but the viewer's watching it as a normal movie. This way they can cram more movie material.
I am not sure how this is done but I am guessing this method will be used in more movies. It must be flattering for Mark zukerberg to have a movie about him. They used real names for the people involved with Facebook. If you knew about Facebook and its history in advance, the movies might feel like a bio or documentary. The movie provided me with more detail starting from the Harvard days. The actor who played Mark, Jesse Eisenberg, was pretty good. Coincidently, the next day I was listening to a podcast with the real Mark,  where he discusses Facebook's current and future plans. The two voices & characters are pretty different.

I joined Facebook with a main expectation of getting connected again with some old friends & acquaintances from school and college days and relatives.  As of now, almost all of my FB friends I have are people I personally know. part of my effort of limiting my online noise, is not accepting invites from people I don't know.

Different people have different experiences with Facebook. Some love it and spend hours every day playing online games, chatting and posting messages. (advertisers target these types). On the other side of the spectrum, there are ones who checked in once and never bothered to come back. In between, you get the pretty active users and the 'lurkers'.

Personally, FB with 500 million users, I had higher expectations of finding old acquaintances. There are of people I know who are not on it. A few more billions to go and it should get easier! While I see the 80/20 rule being popular, on my Facebook I would say 90% of the activity comes from 10% of the friends. The remaining "friends" and pretty inactive. Too busy, too lazy or simple don't care?

Facebook is about connecting with people. By communicating with people. You can communicate with others by talking about yourself, your day, your thoughts, your hopes, your feelings, your kids (be proud of your kids).. etc. Post photos of your happy moments, your past and present.. and your kids. (Did I mention kids twice already?) It's not just about posting links or quotes or news. It should be also about yourself. I believe if you're being too private or too silent, you don't exist. Out of sight, out of mind.

Today I read that Facebook's pre IPO valuation is $41 billion! In the movie credits it mentioned it was $25B. The real value will be known hen Facebook goes public. Facebook is a trend setter. It's enabling sites like and to be more social. You can see Facebook widgets and connect on millions of sites. Google sleeps with an eye open on Facebook. Rumors have it that MySpace is closing down. Well this rumor has been going on for a long time but I won't be surprised if MySpace and other social network sites disappear. Facebook is just crushing it. It's an amazing success story where a 20 year old creates a multibillion company in a few years and is still growing at a neck breaking speed.

There are many privacy concerns with Facebook. As a rule of thumb, consider anything you post as being public. Privacy rules change all the time. Read the fine print. One of the reasons I don't use any FB apps is because I get the prompt where I give the vendor access to my information. I don't know what kind of information they will get and FB doesn't make that clear. I play it safe. There's no app or game I need to be using on Facebook. And My profile is empty.

Be smart. Don't post something if you think it would offend someone or can be used against you in any way. By your current employer, by a future employer, by a competitor or even your spouse. You can delete a post of yours if you think it was inappropriate.

Have fun.


Tips on getting the most out of

[Note: this post is not about how to get more reputation, badges and such. It's about how to get the answer you want quickly]

I have been using (SO), a Q&A programming site, since the beta days and I have acquired some skills on how to use it in a most efficient way. Let me first say that SO is a great and very helpful site. It's easy to use, focused and full of valuable information and if you don't find what you want, you are encouraged to ask. Questions and their answers is what makes SO the site it is.

Here are some tips on how to use SO efficiently:

  • This first tip is the meat of my blog post which I want you to concentrate on. Of all the SO tips I read, no one mentions this one.
    SO questions somehow suffer from what I call attention deficit after 48 hours. Meaning to get the most out of your question, you have to be very active during that period and the first few hours is the most crucial. You should start checking answers 5 minutes after posting a question. SO users are very active but because they are so active, then tend to bounce from one new question to another. So you got to make your 'killing', finding the answer which 'saved your life', early on. You need to make your question alive by commenting on other comments which require feedback. Someone posted a comment question? Answer them quickly before they lose interest or 'wander off'. You also need to reply quickly to comments before others start posting generic or non useful answers. Your comments should dissuade people from posting answers which won't be helpful. The more non helpful answers you get, the less people are encouraged to post a good answer. That's because they have to read other peoples answers before posting their own and ensuring theirs won't be a duplicate or potentially wrong. You need to put your question in a state where it exhausted all people's questions, misunderstands, miscommunications, ambiguity in the first few hours. Yes.. you have to milk the question and extract the juices as quickly as possible. And there's nothing wrong in doing this. Isn't it beautiful when a question gets several up votes, gets a high quality accepted answer with several up votes with zero irrelevant answers? This is as good as it can get.
  • Make your question have a clear focused subject. Make the question itself clear, with sample code and  all the steps, trials and thoughts upfront. For difficult questions, you need to show the users you did your homework. This way they understand what direction you're taking to resolve the issue. This way users get better in helping you. Also it helps a lot in minimizing the answers which are the stuff you already did and know about. Less clogging. It's unproductive when you get answers and tell yourself "I already did that" or "I already tried that. it doesn't work" .. "I should have mentioned these in the question".
  • Ask a question with as many relevant tags as possible to the max of 5 which SO allows. You want to reach users who search new questions by tags only.
    Before asking a question so a search on SO. Use different keywords and terms. You want to make sure the question hasn't been asked in one form or another. Use synonyms for the keywords you know. Different users use different words for the same meaning. You don't want to post a duplicate question. Man.. on SO there are people who I want to call the "duplicate sharp shooters". The will find your duplicate question, comment on as being a duplicate, close, move it, bury you alive in 5 minutes. I am exaggerating of course but things move fast on SO. You won't gain anything by being a slacker. SO provides different search capabilities like by title and by tags. You can also use Google itself to search SO.
    You might find your answer on another site. A site that uses a bulletin board software (wink.. wink!)
  • Last, get more insights from Jon Skeet's, a SO celebrity, "Writing the perfect question".

Why should I pay $99 to put my Hello World app on my own WP7 phone only!?

I think it's a mistake for Microsoft to charge $99 for all developers across the board who want to put ANY app on a WP7 phone. It worked for Apple and it seems Microsoft thinks it should work for it too. The iPhone can do this because it's the first multitouch phone and it sold millions of it. Windows Phone 7 (WP7) on the hand is just coming out into the market when multitouch phones from Apple & Android based are selling like hot cakes. Microsoft is competing with fierce competitors who have created established markets and who offer multitouch phones with tens of thousand of applications and selling tens of thousands of the devices each day. The WP7 doesn't seem to offer gotta-have-it features which will cause current smart phone users to switch.

As a .NET developer, I am attracted to the WP7 platform because I can create an app for it with the skills I already have. For the iPhone, I have to learn a new language, a new operating system & get a Mac computer and pay $99/year for the AppStore. A steep learning curve plus expenses. I will go through this if I am planning to make money off the iPhone.  Less so for Google Android; I can use my current computer with Windows, pay no fees, install an app straight from my computer but the drawback is learning Java.

With Microsoft I have to pay $99/year. This is another example of Microsoft being a follower. It's copying Apple's process. A lot of .NET developers develop for fun. Develop for open source projects. So why can't this be extended to the WP7 Platform? If I want to create a simple app even a Hello World app for my WP7 phone (I don't have one yet.. if ever), to be installed on my phone only, I have to pay Microsoft $99.

If I can't code for fun or code for personal use, I will be discouraged to get a WP7 phone and create professional or commercial apps for it. If enough developers have the same attitude and perspective, Microsoft will lose out if its platform is not adapted on a bigger scale. Steve Ballmer says developers.... developers... developers.. (but put a $99 if you want to put anything on your own phone).

I still own a Windows Mobile 6.5 phone. I can install any app on it at will without going through a third party or pay any fees. I wish this could be extended to WP7. I understand each mobile platform provider wants to have a marketplace. There still needs to be a way to cater for developers who want to develop for leisure and for personal use.

Google Android has the most flexible platform with no fees. It's no surprise 160,000 Android phones are activated every day. Apple is able to charge all developers $99. They were first with a multitouch phone and an AppStore, they like to control everything and Apple users are fanatics and they sold tens of millions of iPhones. Developers will not blink to pay $99 because their audience is huge.


Steps to make a web form more usable using the keyboard only

There are users who are more productive using the keyboard only. Data entry applications are optimized for keyboard use only. For this reason web forms should be usable and frictionless without the use of a mouse.

Steps to create a keyboard friendly web form:

  • When the page loads, put the cursor focus on the first field. Example in In jQuery: $('#FirstName').focus() in the ready() function.
  • Use tabindex for each form element and give values in increasing order. This enables the user to tab into the next field. Tip: leave a gap between the values so you can insert new fields without sequencing the tabindex values.
  • Optional: use JavaScript to make the enter key behave like the tab key. Some users use the enter key instead of the tab key to advance to the next field. When the focus is on the submit button, let the enter key submit the form.
  • Let the form's default button be the submit button. Example in ASP.NET: set the form's DefaultButton property.
  • Optional: using JavaScript, let the tab key cycle through the form's elements only

Don’t post a blog post with just a link. Write some intro about it

There’s one  blog I subscribe to and it’s starting to bug me. The author tends to just have a short title and only a link in the body of the post. I find this annoying because I can’t decide if the post is of interest to me or not. The person expects me to follow to the link to find out. This show lack of consideration of people’s time. It takes only a few seconds to type one sentence to tell us why we should read the post or what the person posted the link.

Even Twitter with its 160 character limitation conveys more information than this person’s blog.  Maybe its time to unsubscribe even though the person is an expert in his field. He needs to give the blog some more love.

I appreciate short blogs and my own tends to be short but never extremely short where I post a link only.


Give an option to enter a password in clear text

Password fields are masked for privacy reasons. So no one can see your password and use it. When was the last time I had such a concern? NEVER! Whether at home or at work, there’s no one behind me looking at my monitor. But passwords are always masked? I suggest adding a check box next to the password as an option for making the password in clear text. I am always for giving options to the user. When I can see the password, I can correct a misspelled password before submitting it.  It’s annoying to be denied a log in or get a captcha or be locked out from a system because you entered the wrong password a few times when you could have easily confirmed your entry before submission.