Difference between MVC vs. MVP vs. MVVM

Both MVP and MVVM are deriv­a­tives of MVC (see time­lines and how these have evolved). The key dif­fer­ence between them is the depen­dency each layer has on other lay­ers as well as how tightly bound they are to each other. See dia­gram and the ref­er­ences col­umn for more details. These pat­terns try to address mainly […]

REST — Address-ability through URL and the interwebs

1. URL out­live the tech­nol­ogy and the under­ly­ing stack. (So — aspx is not good enough, or .cgi or .php). Leave these for MIME type in HTTP header, that’s where it really mat­ters. 2. URLs are used by the search engines, the file exten­sions like.aspx or .php do not add any value to search. They […]

Dunning Kruger effect vs. Impostor syndrome

Don’t be a vic­tim of either. These are very inter­est­ing sce­nar­ios defined in psy­chol­ogy and as with every­thing else, some­where in the mid­dle is the way to be. http://en.wikipedia.org/wiki/Dunning%E2%80%93Kruger_effect http://en.wikipedia.org/wiki/Impostor_syndrome     Did you like this? Share it:Tweet

Concurrency: Event loops and Message Queues

I remem­ber I was asked in an inter­view — a very gen­eral and com­mon ques­tion. How does an ajax request work? With 2 years expe­ri­ence in the field, you cer­tainly know about the Xml­HttpRe­quest (despite the name has noth­ing to do with XML) that is made using JavaScript. Even though the $.ajax steels the thun­der by […]

JavaScript debounce and throttle

There are events in JavaScript that fire more rapidly than you would want. For exam­ple, lets say you want to do an auto-complete on key­press. There is only one way to hook to the user typ­ing in the text-box, key-down, key-up or key­press. Firstly you don’t want your client func­tion to be called each 1/10th of […]

Binary Tree problem guidelines and characteristics

On a very high level — there are cer­tain char­ac­ter­is­tics about tree prob­lems that pop-up very often. They pop-up in real world sce­nar­ios. For exam­ple a restricted BFS will give you the LinkedIn like degree of con­nec­tion. Doing a full BFS for each con­nec­tion is a bit pricey, but doing it to a 2nd or 3rd […]

Refactoring and obsession for code quality

When a noob starts cod­ing the fight is to actu­ally build solu­tions and come up with a work­ing code. Even a mod­er­ate level of cod­ing task seems to take up most of the minds pro­cess­ing power in syn­tax and mod­el­ing and imple­ment­ing the algo­rithm bug-free. There is less time and brain energy left for code-cleanliness, […]

Promises versus Deferred

A very com­mon ques­tion after read­ing promises and deferred in the­ory, that comes to our mind is what is the dif­fer­ence? a promise rep­re­sents a value that is not yet known a deferred rep­re­sents work that is not yet fin­ished Another way to look at this is:  promise is a place­holder for a result which is initially […]

Parallels between .NET C# and JavaScript

Talk­ing about asyn­chrony which is gain­ing more and more atten­tion these days. C# recently added the WhenAll and When con­structs to the library through the TPM. TPM started out as a sep­a­rate open source project which was then merged into the .NET frame­work. JavaScript has a par­al­lel for the When — called the promises. What these […]

String Immutability and password string protection

Strings in .NET are immutable objects. Once they are allo­cated, their mem­ory con­tent can­not be changed. When a string needs to be mod­i­fied, the .NET CLR will send the old string to the garbage col­lec­tor, instan­ti­ate a new string object with the desired value, and update the exist­ing vari­able pointer to point to the new […]

  • Tag Cloud

  • Categories