Abhishek Desai

My, myself and the Internet

Launching “Karma – an ingenious appraisal system designed at Digicorp”

I want a feedback from readers of this blog about the recent initiative we launched in our company.

We proudly call it “Karma – an ingenious appraisal system designed at Digicorp.”

It is one of the most radical steps we have taken so far in our bid to become a transparent organization.

It is a leap of faith in humanity. It is one more step to change the way business is done.

But it is not perfect yet, we may have got it completely or slightly wrong.

If you can spare few minutes from your busy schedule to give feedback, we would really appreciate it.

Here is the blog post which gives little background and there is a presentation at the end.

http://www.digi-corp.com/blog/2013/11/karma-an-ingenious-appraisal-system-designed-at-digicorp/

Looking forward to hear from you all.

Microinteractions

I recently read a book called “Microinteractions” by Dan Saffer. I am fascinated by the concept. And Dan has done a brilliant job explaining it with various examples. So what is a Microinteraction?

A microinteraction is a contained product moment that revolves around a single use case – a tiny piece of functionality that only does one thing.

For e.g. Sign Up form

Whenever you

  • change a setting,
  • sync your data or device,
  • set an alarm,
  • pick a password,
  • turn on your appliance,
  • login,
  • set a status message,
  • like something,

you are engaging with a microinteraction.

Microinteractions are not features. For e.g. music player is a feature but adjusting a volume is a microinteraction inside that feature.

The difference between a product you love and product you tolerate is often the micro interactions you have with it.

I didn’t want to wait till all our designers read the book on their own. So to make everyone’s life easier and give them a jump start, I compiled the important concepts and examples in a presentation.

We had a wonderful interactive session during this presentation and I am sure you can do the same with your colleagues.

PS: I had to take down the presentation from Slideshare because O’Reilly might consider it as a copyright violation. But I encourage to read the book and make your own.

 

Learn to Design

Recently I came across exceptionally good resources for learning “Design”, which I would like to share with you all but before that, understand what is Design.

“Design is not just what it looks like and feels like. Design is how it works.” – Steve Jobs

So with that definition of Design in mind, let’s begin.

1) HackDesign: An easy to follow design course for hackers who do amazing things.

http://hackdesign.org/

Register yourself for this course. You will get a new lesson every week in your email.

You might have missed few or all of the lessons depending on when you read this article.

View all past lessons at below link

http://hackdesign.org/courses/

Read each and every article of these lessons.

This will be the best course you will ever attend to become a better designer.

2) A Good User Interface

If you want to become a better designer in no time, read following

http://www.goodui.org/

Again, you can sign up and receive an update twice a month.

I promise you will be eagerly waiting for these 2 emails in your inbox.

3) How to become a designer without going to design school

http://karenx.com/blog/how-to-become-a-designer-without-going-to-design-school/

I recently came across this article and I think it is worth following.

Hope this helps.

Please share in comments if you know such resources.

ASP.NET over PHP

Due to the nature of my business, I come across various situations where I have to justify one technology platform over the other because client insists on one over the other. Mostly their reasons are not sound but I don’t blame them as software is not their primary business.

Few months back I was asked to prove that ASP.NET is better than PHP for a custom project. I put together few things gave pointers to client. I am happy with what I gave and thus sharing with you all here.

So here is how it goes:

There are multiple points to be considered in this scenario.

1. First of all there is nothing better or worse. Only better or worse for a specific task.

We need to understand that the existing ERP is developed using Microsoft technologies. Some of them pretty old.

Backward compatibility of ASP.NET with these technologies is much better than PHP without any doubt.

2. Although both the platforms can work well with all databases, preferred database for ASP.NET is SQL Server and for PHP it is MySql.

3. If somebody is giving an example of Facebook (which most people do in justifying PHP over anything else), they need to understand that:

Facebook uses a re-written PHP and a transformer+compiler called HipHop which transforms PHP code to highly optimized C++ code and then compiles with gcc.

We are talking here about the PHP we get for application developers from PHP.NET (as it is).

So example of Facebook is not at all relevant in our scenario.

4. They aren’t even the same thing. PHP is a dynamic scripting language. ASP.NET is a framework.

That said, PHP is very good at creating web pages with limited functionality. Basic static pages with some small dynamic content. Once you get beyond that, then you start looking for code “pieces” to use. A grid. A menu. Simplified database access libraries. Template Engines. Data caching libraries. Content caching libraries.

When you are done, you’ve basically hacked together your own custom PHP framework.

ASP.NET has all that in place, and quite honestly much much more. The larger the project, the better ASP.NET does. It’s got more overhead in terms of learning and coding, but as the project complexity increases, ASP.NET code complexity is fairly linear. PHP code becomes exponentially more complex and time consuming.

Following link contains feature by feature analysis of .NET vs PHP.

http://www.codeproject.com/Articles/102854/PHP-and-ASP-NET-A-Feature-List

And here are some reasons of using .NET over PHP.

http://www.sitepoint.com/v-php-top-6-reasons-use-net/

But again, you will find 100 articles recommending one platform over another. In my humble opinion, it all depends on your situation.

I sincerely believe that in our current scenario using ASP.NET is a much better option than PHP.

PS: We are also capable of building large systems in PHP as well but giving false information is not what we believe in.

Schools Kill Curiosity

I realized this late but I never really enjoyed the “study” part of the school. I love sports and I played pretty good Football (Soccer) during my schooling so I don’t regret that time of my life but I surely feel, it could have been much better.

People who know me will be horrified if I say I wasted my time in school from the academic perspective. I was always a ranker (in top 3) so how do you explain that?

The problem is, somewhere, the school killed my curiosity. I honestly don’t remember if I was curious as a kid but I was certainly not curious when I came out of the school. If the school didn’t kill my curiosity, it also never tried to arouse it in me.

Result: Somebody who did good in studies from the perspective of our society but never really learned anything.

I always wanted to confess this and a recent article about Aaron Swartz made me do that.

Aaron Swartz was curious

In his own words

“If you watch little kids, they are intensely curious, always exploring and trying to figure out how things work. The problem is that school drives all that curiosity out. Instead of letting you explore things for yourself, it tells you that you have to read these particular books and answer these particular questions. And if you try to do something else instead, you’ll get in trouble. Very few people’s curiosity can survive that. But, due to some accident, mine did.”

Don’t take a chance with your kids. They may not be able to survive. Please stop sending them to schools which tells them that they have to read these particular books and answer these particular questions.

I certainly don’t want my kids to write similar article when they are 30, I hope you agree.

Spread the word: Online Voting – e-Voter Registration

I received following email from State Election Commission for e-Voter registration. 

The mentioned website in the email opens blank for me on my Mac. May be it works only on IE6 on Windows 98! 

But if it works for you, you should go ahead and register yourself as e-Voter. 

Also don’t forget to spread the word…

————EMAIL STARTS————-

Dear Abhishek Desai, Kuntal Shah, Nachiket Patel, Sanket Patel,

SEC would facilitate voters by providing an additional option of e-voting in the forthcoming Municipal Elections. Online Voting System is a secured, easy and convenient option to cast vote and also maintain privacy of vote cast.

Online Voting is an innovative and user friendly option wherein a voter can either choose to cast vote through internet from Personal Computer/Laptop (i.e. Option 1) or can choose to visit any of the e-Polling Booth setup by SEC to cast vote online (i.e. Option 2).

We sincerely appeal you to exercise this new option of voting. We have opened separate website http://www.onlinevotinggujarat.gov.in/? to make it convenient for you to register as an e-Voter.

To register as an e-Voter you have to simply follow the steps mentioned below:

1.  Visit the website: http://www.onlinevotinggujarat.gov.in

2.  Fill Online e-Voter Registration Form with following details, Name, Address, Age (in years and months), Email Address, and Mobile No.

3.  Select Option 1 if you wish to cast vote from your Personal Computer/Laptop.

or

Select Option 2 if you wish to visit e-Polling Booth to cast your vote.

4.  Once e-Voter Registration Form is successfully submitted, you will receive intimation on your screen.

5.  SEC/Electoral Registration Office personnel will also visit your residence to verify details specified in e-Voter Registration Form and will avail your signature on the printed form.

Your filled application details will be kept for future reference, however if Election is scheduled in your ward you will be promptly intimated for further actions.

It is rightly said, ?In a democracy, decisions are made by a majority of those who stand-up and be counted and vote?. Hence ensure that you cast your vote in Municipal Election to strengthen this grass-root democratic institutions. We also solicit your sincere support and cooperation in making this Online Voting drive successful.

We request you to disseminate this message among your family members/friends/colleagues/acquaintances and motivate them to register as e-Voter at the earliest and oblige.

Regards,

State Election Commission, Gujarat.

————EMAIL ENDS————-

Optimising Response Time

I have to post something which my colleague Kuntal Shah shared on our company’s internal knowledge base

———

Three basic solutions I learnt about optimising response time

  1. Reduce number of calls made from client to server
  2. Reduce number of queries during a request
  3. Reduce time taken by a long query

Two common ways to reach problems

  1. Network or Database calls from a loop
  2. Check out indexing on heavily queried tables

The beauty of the above points, is they are purely technology independent and it is a pure logic and common sense.

Try to apply when you face your next performance issue.

———

Sounds common sense! You will be amazed how many programmers don’t apply these basic things in optimization and suffer.

Make sure you do that next time before you lookout for help.

Password does not work after downgrading MacBook from Lion to Snow Leopard?

I downgraded my wife's MacBook from 10.7.3 to 10.6 i.e. from Lion to Snow Leopard. Lion was pathetically slow on her older version of MacBook. 

Downgrade went smooth and I could restore the data from Time Machine as well. But after restore somehow the password of admin user was not working. Don't know why. 

I searched a lot but didn't find a reliable solution. Then from below discussion I found the solution

Restart and boot your MacBook from Snow Leopard installation disk (Press C while booting). 
  1. Select language
  2. Go to Utilities menu on top and click on Reset Password. 
  3. Select the disk to load the users. 
  4. Select user and change the password.
You can keep the same password. Once done just restart the machine. 

Works like a charm for me!!

Hope this will save you hours which I lost. 

Google vs Bing

When I do a Google search for words like “Euro 2012” or “French Open 2012”, I immediately get scores of all the past, current and future matches along with their timings in IST. This is EXACTLY what I want. 

When I do the same in Bing, all I get is this boring search result. Duh!

For me, Bing will never be a better search engine than Google till they solve this problem.

Best thing about Seth’s blog

One of the best things about reading Seth's blog is the kind of people, sites you stumble upon.

You should add them in your Google Reader if not done already!