Posted on February 7, 2014
Exploring Javascript closures
Javascript closures are a concept that is easier to explain by example: function outer(increment) { var outer_foo = 1; function inner() { outer_foo += increment; return outer_foo; } return inner; } var outer_instance = outer(2); var foo1 =… Read More
Posted on February 5, 2014
Implementing a for loop in XSLT
XSLT is a language designed to transform XML documents. Instead of being a procedural programming language, XSLT models itself after functional programming, borrowing many of its fundamental design concepts. Functional programming deals with expressions rather than statements. Statements… Read More
Posted on January 21, 2014
Interview questions: Sorting a terabyte of integers with a gigabyte of memory (part 2)
In the previous article, I mentioned that the mergesort algorithm could be modified in order to solve this problem. The usual mergesort implementation assumes that all the unsorted elements can fit into main memory. The algorithm divides the… Read More
Posted on January 15, 2014
Interview questions explained: Sorting a terabyte of integers with a gigabyte of memory
Given a terabyte of unsorted 32-bit unsigned integers on disk and only one gigabyte of memory, sort the integers. At first glance, mergesort would be the first solution that comes to mind. However, the typical mergesort implementation assumes… Read More
Posted on December 27, 2013
Interview questions explained: Fun with multiplication!
Write a method that takes as its input an array of integers. For each element in the array, print the product of all the other elements in the array. For example, given the following array: [1,2,3,4,5] The output… Read More
Posted on September 6, 2013
json-schema how to reference other schemas in jsonschema2pojo
I’ve been using the jsonschema2pojo utility at work to automatically generate java classes from JSON schemas, simplifying a lot of the tedious code that needs to be written for the marshalling and unmarshalling of JSON objects. JSON schema… Read More
Posted on August 26, 2013
vim tutorial – using the s command to replace text on the fly
The vim text editor comes with a powerful :s (substitution) command that is more versatile and expressive than the search and replace functionality found in GUI based text editors. The general form of the command is: :[g][address]s/search-string/replace-string[/option] The… Read More
Posted on August 23, 2013
Linux tutorial: Searching all files of a specific type for a string
Let’s say you want to search all the *.txt files in a given parent directory and all its children for the word “hello”. Something like grep -rl “hello” *.txt would not work because the shell will expand “*.txt”… Read More
Posted on May 24, 2013
Does Javascript pass by value or pass by reference?
Javascript exhibits quite interesting behavior when it passes object parameters. At first glance, it would appear that it passes everything by reference. Consider the following HTML page. <html> <body> <script type=”text/javascript”> function MyObject() { this.value = 5; }… Read More
Posted on May 21, 2013
Dynamically modifying client endpoints in WCF
I was doing some contract work for a client building out a SOA backend for them. It consisted of some WCF services that all talked to one another. Due to how the client had set up their deployment… Read More