Wednesday, February 29, 2012

Rube

"She's kind of a rube"

of Erin. Michael Scott, The Office (U.S.): Season 6, Ep. 22 - Secretary's Day

Monday, February 27, 2012

Content Types Vs. List Columns

I always create Site Columns and Content Types. Harsh experience has told me that anything implemented will probably seen as a cool idea by someone and will request it to be implemented elsewhere on the same site collection.

-James Love
http://sharepoint.stackexchange.com/questions/13409/content-types-vs-custom-list-field

Wednesday, February 22, 2012

Refactoring - Many Small Functions

I look at a method that is too long or look at code that needs a comment to understand its purpose. I then turn that fragment of code into its own method.

http://sourcemaking.com/refactoring/extract-method

Strategy Pattern - What's not to like?

The Strategy pattern uses aggregation instead of inheritance. In the Strategy pattern behaviors are defined as separate interfaces and specific classes that implement these interfaces. Specific classes encapsulate these interfaces. This allows better decoupling between the behavior and the class that uses the behavior.


We often use small strategy objects when we need to vary behavior. ... such procedural objects usually are small and are used when we have a particular need for flexibility.

Saturday, February 18, 2012

UML Associations (objectmentor)

The black diamond represents composition. It is placed on the Circle class because it is the Circle that is composed of a Point. The arrowhead on the other end of the relationship denotes that the relationship is navigable in only one direction. That is, Point does not know about Circle. In UML relationships are presumed to be bidirectional unless the arrowhead is present to restrict them. Had I omitted the arrowhead, it would have meant that Point knew about Circle. At the code level, this would imply a #include “circle.h” within point.h. For this reason, I tend to use a lot of arrowheads. ... In this case we have represented the composition relationship as a member variable. We could alsohave used a pointer so long as the destructor of Circle deleted the pointer. ... There are other forms of containment that do not have whole / part implications. For example, Each Window refers back to its parent Frame. This is not aggregation since it is not reasonable to consider a parent Frame to be part of a child Window. We use the association relationship to depict this.

Thursday, February 16, 2012

Scrumbabble

Using the values outlined in the Agile Manifesto, development teams can deliver high quality software fast. But how can development teams balance their quality strategies with mandates to deliver shippable software in short increments?

From a received spam marketing email

Inelegant Ugliness Under the Windows Hood?

If the Security Zones: Use only machine settings setting is not enabled in Group Policy, or if the Security_HKLM_only DWORD value does not exist or is set to 0, computer settings are used together with user settings.
However, only user settings appear in the Internet Options
. For example, when this DWORD value does not exist or is set to 0,
HKEY_LOCAL_MACHINE
settings are read together with Link
HKEY_CURRENT_USER
settings, but only
HKEY_CURRENT_USER
settings appear in the Internet Options.
http://support.microsoft.com/kb/182569

q

Saturday, February 11, 2012

The right way to organize a project

The right way to organize a project is to break it into small enough bits that can be demoed individually. If you can't do any demos until everything is in place the architecture needs to be re-thought.
by MWTJ

Tuesday, February 7, 2012

Advantage of IEnumerable - foreach versus for loop

One advantage with using foreach loops in the C# language is that foreach eliminates your need to track indexer variables, such as i or x. The code becomes safer and more robust by hiding all the details from the programmers using the array.


Sunday, February 5, 2012

Dependency Injection

One benefit of using the dependency injection approach is the reduction of boilerplate code in the application objects since all work to initialize or set up dependencies is handled by a provider component.[1]

Another benefit is that it offers configuration flexibility because alternative implementations of a given service can be used without recompiling code. This is useful in unit testing, as it is easy to inject a fake implementation of a service into the object being tested by changing the configuration file, or overriding component registrations at run-time.

JavaScript prototype property

In JavaScript, object creation is prototype-based...an object creating function can have a prototype property, and any object assigned to that property will be used as a prototype for the objects created with that function.
http://en.wikipedia.org/wiki/Prototype_JavaScript_Framework

Object.prototype.inObj = 1; function A(){ this.inA = 2;} A.prototype.inAProto = 3; B.prototype = new A; // Hook up A into B's prototype chainB.prototype.constructor = B;function B(){ this.inB = 4;} B.prototype.inBProto = 5; x = new B;document.write(x.inObj + ', ' + x.inA + ', ' + x.inAProto + ', ' + x.inB + ', ' + x.inBProto);

String.prototype.trim = function () {
return this.replace(/^\s+|\s+$/g, "");
};

C# uses events as special delegates

"C# uses events as special delegates that can only be fired by the class that declares it. "