Skip to content

Instantly share code, notes, and snippets.

View AugustoPedraza's full-sized avatar

Augusto AugustoPedraza

View GitHub Profile
@AugustoPedraza
AugustoPedraza / the_method_invocation_pattern.js
Created March 4, 2013 13:44
When a function is stored as a property of object, we call it a "method". When a method is invoked, "this" is bound to that object. If an invocation expression contains a refinement (that is, a "." expression or [subscript]expression), it is invoked as a method: //Show code... A method can use "this" to access to object so that it can retrieve v…
//Create myObject. It has a value and an increment method.
//The increment method takes a optional parameter.
//If the argument is not a number, then 1 is used as the default.
var myObject = {
value: 0,
increment: function(inc){
this.value +=
typeof inc === 'number' ? inc : 1;
}
@AugustoPedraza
AugustoPedraza / the_function_invocation_pattern.js
Created March 4, 2013 14:09
var sum = add(3, 4); //sum is 7 When a function is invoked with this pattern, "this" is bound to the global object. If the methods defines a variable and assigns it the value of "this", the inner function will have access to "this" through that variable. By convention, the name of that variable is "that". This text and example was taken from the…
//Augment myObject with a double method.
add = function(a, b){ return a + b; };
var myObject = { value: 0 };
myObject.double = function( ){
var that = this; //Workaround
var helper = function( ){ that.value = add(that.value, that.value); };
@AugustoPedraza
AugustoPedraza / the_constructor_invocation_pattern.js
Created March 4, 2013 14:36
If a function is invoked with the "new" prefix, then a new object will be created with a hidden link to the value of the function's PROTOTYPE member, and "this" will be bound to that new object. The "new" prefix also changes the behavior of the "return" statement... //Show code... Functions that are intended to be used with the "new" prefix are …
//Create a constructor function called Quo.
//It makes an object with a status property.
var Quo = function(string){ this.status = string; };
//Gives all instances of Quo a public method called getStatus.
Quo.prototype.getStatus = function( ){ return this.status; };
//Make an instance of Quo.
@AugustoPedraza
AugustoPedraza / the_apply_invocation_pattern.js
Created March 4, 2013 15:01
Because JavaScript is a functional object-oriented language, functions can have methods. The "apply" methods lets us construct an array of arguments to use to invoke a function. It also lets us choose the value of "this". The "apply" methods takes two parameters. The first is the value that should be bound to "this". The second is an array of pa…
add = function(a, b){ return a + b; };
//Make an array of 2 numbers and add them.
var array = [3, 4];
var sum = add.apply(null, array); //sum is 7
console.log(sum);
/*----------------------------------------*/
@AugustoPedraza
AugustoPedraza / exception_sample.js
Created March 4, 2013 15:26
Exceptions example. This example was taken from the book "Javascript: The Good Parts".
var add = function(a, b){
var invalidTypes = (typeof a !== 'number' || typeof b !== 'number');
if(invalidTypes){
throw {
name: "TypeError",
message: "add needs numbers"
};
}
@AugustoPedraza
AugustoPedraza / extract_integer_from_number.js
Created March 4, 2013 15:53
Simple augmenting function to "Function.prototype" to extract just the integer part of a number and removes spaces from the ends of a string. This example was taken from the book "Javascript: The Good Parts".
//Define method to add a method available to all functions.
Function.prototype.method = function(name, func){
this.prototype[name] = func;
return this;
};
Number.method('integer', function( ){
return Math[this < 0 ? 'ceil' : 'floor'](this);
})
@AugustoPedraza
AugustoPedraza / scopes.js
Created March 4, 2013 16:32
Example scope...
function logValues(head, four, five, six){
console.log(head);
console.log("four = " + four);
console.log("five = " + five);
console.log("six = " + six );
console.log("\n");
}
var integers = function( ){
var four = 4;
@AugustoPedraza
AugustoPedraza / functional_programming.js
Created March 5, 2013 16:09
Using inheritance with functional programming. This example was taken from the book "Javascript: The Good Parts".
var mammal = function(spec){
var that = {};
that.getName = function( ){
return spec.name;
};
that.says = function( ){
return spec.saying || '';
};
using System;
using System.Collections.Generic;
using System.Data;
namespace GetJsonCollectionFromDataTable
{
class Program
{
static void Main()
{
@AugustoPedraza
AugustoPedraza / ActiveDirectory.cs
Created March 18, 2014 17:47
Listing users and groups from ActiveDirectory
using System;
using System.Collections.Generic;
using System.DirectoryServices.AccountManagement;
using System.Linq;
namespace AugustoPedraza.Utils
{
public class ActiveDirectory
{
public static string Domain { get; set; }