Posts
How to Annoy Your Customers? Learn from GoDaddy Account Status Email
Just looking at this screenshot alone, what do you think it is?I have a few domains registered with GoDaddy. I went with them, because at that time, I didn't know of another renowned provider. But they have always been the best of producing the most confusing ever user interface. The account status email is one step ahead in that same direction.
This is how it starts:
At the top right corner, it says July 2011, in grayed out font!
Posts
Avoid Duplication in Config Files
Any kind of configuration file, be it an ugly xml file or a prettier yml or properties file, its been a source of frustration to me. Here's a list of few such pain points:
There are two config keys that point to the same value. e.g. db_username=master, data_source_user=masterThere are two config keys for urls that point to the same domain, but different paths. e.g. market.com/cameras and market.com/undiesConfig entries with placeholders.
Posts
How Not To Provide Feedback When Doing Code Review
Code review, as any other review process, can often be an attack on someone's ego and incite anger and frustration. Being both on sending and receiving end of such code reviews for years, I have learned a few how-not-to-do-it, or as one might say, anti-patterns of providing code review feedback. Let me know if you agree/disagree with me on the following:
You are always reviewing Adam's code while Adam is never reviewing yours.
Posts
Service API and Exceptions
Too often I see I am using a REST/SOAP API to talk to a third party system that frustrates me because of poor error messaging. Here's an example to illustrate a typical frustration:
Call: city_service.update_residence_address(city_dueler, new_address)
Response: <status>Failed</status><error>Invalid address</error>
But the address just seems right to me. So, I need to know specific reason about why the address is wrong. The error message leaves this critical detail. What happens next is, I look for the log files created by the city_service, conceptually supposed to be a third party hosted service.
Posts
NuGet - Why Should You Care?
Traditionally the .NET community, or more appropriately the users of .NET framework relied on products from Microsoft - so, in a product stack you are likely to see almost everything coming from Microsoft. However, some community contribution made its way into the main stream - for example, NUnit or Log4Net. But you can literally count the number of such main stream non-Microsoft products in your development stacks with your fingers (sparing a few)!
Posts
My 2011 Q1 developer roadmap
For me, 2011 Q1 has so far been a good exposure to new techniques, tools, articles and books, thanks to ThoughtWorks book allowance! However, if you are interested, here's what's keeping me busy:
User Experience: I find a good user experience is THE thing that you want in anything you design, and if you are writing a software, its even more important. After I read a few books, I have a feeling that its not just a common sense approach, it takes some education and a deep care to produce something usable.
Posts
MvcMailer 1.0 Released
Just released MvcMailer 1.0 as promised in my previous post. Download your copy using the following:
Install-Package MvcMailerOf course, you will find a comprehensive tutorial at: this github wiki page.
Posts
Whats Coming in MvcMailer NuGet 1.0?
Thanks to 365+ downloads of the MvcMailer NuGet before it hit version 1.0 and now its time to wrap up the NuGet package for an official first release. I got several encouraging feedback on this package and here's what you get from this first release:
Use Scaffold Mailer to generate your mailers with views. Compose rich emails using your favorite ASP.NET MVC view engine.Use master pages and pass data using ViewData/ViewBag.
Posts
ActionMailer 3 - why do you call instance methods as class/self methods?
I didn't even notice this little trick! As long as I didn't have to call deliver_welcome_message (or deliver_*) methods that would magically call welcome_message, I was happy that now the magic is gone. Things are transparent!
Here's an example showing the change: Say you have the following mailer:
class Notifier < ActionMailer::Base
def welcome_message(new_user)
#a warm welcome message
end
endNow, prior to Rails 3, or ActionMailer 3, you would write the following to actually call this method to get the benefits of ActionMailer magics, such as finding the view based on method name and so on:
Posts
Social Helpers in ASP.Net MVC3 (Facebook, Twitter, Gravatar etc.)
This site shows the examples!
http://www.asp.net/webmatrix/tutorials/13-adding-social-networking-to-your-web-site
Now, the social links and buttons are no longer from a third-party source, its straight from Microsoft. I don't know if this is first-party or second-party :p