Geeks With Blogs
Liam McLennan hackingon.net

I wrote a very simple blog engine, and created a new blog, and wrote about the process. Enjoy. It has node.js and geddy and markdown and github gists.



I have been cross posting for a long time and now I can no longer be bothered. If you have benefited from the content that I have shared here then consider subscribing to my blog at hackingon.net.



I have written about adding support for specifications to NHibernate’s ISession type. Shortly afterwards Paul Stovell moaned on twitter that no one had demonstrated how to mock ISession. Since my implementation relied upon an extension method (QueryBySpecification) I googled how to mock extension methods – and discovered that you can’t. What I did find ......

Recently I wrote about JavaScript class patterns, and in particular, my favourite class pattern that uses closure to provide encapsulation. A class to represent a person, with a name and an age, looks like this: var Person = (function() { // private variables go here var name,age; function constructor(n, a) { name = n; age = a; } constructor.prototype ......

You’re a talented guy (or girl). You’ve done alright. Years of hard work and stick-to-it-ive-ness have paid off and left you with plenty and an opportunity to make a positive difference to someone else. And then there are people with less than they need. Sometimes all they need to help themselves is a start. Opportunity International provide micro financing ......

Even when using an ORM, such as NHibernate, the developer still has to decide how to perform queries. The simplest strategy is to get access to an ISession and directly perform a query whenever you need data. The problem is that doing so spreads query logic throughout the entire application – a clear violation of the Single Responsibility Principle. ......

I recently described some of the patterns used to simulate classes (types) in JavaScript. But I missed the best pattern of them all. I described a pattern I called constructor function with a prototype that looks like this: function Person(name, age) { this.name = name; this.age = age; } Person.prototype = { toString: function() { return this.name + ......

Enterprises (large bureaucracies) obsess about risk. I think it is because of the inertia generated by the process and politics that they have to deal with. The trouble is that they respond to risk in precisely the wrong way: by adding complexity. Need to call a method? Better wrap it in WCF service. Need to talk to another application? Better hook ......

To write object-oriented programs we need objects, and likely lots of them. JavaScript makes it easy to create objects: var liam = { name: "Liam", age: Number.MAX_VALUE }; But JavaScript does not provide an easy way to create similar objects. Most object-oriented languages include the idea of a class, which is a template for creating objects of the ......

To write object-oriented programs we need objects, and likely lots of them. JavaScript makes it easy to create objects: var liam = { name: "Liam", age: Number.MAX_VALUE }; But JavaScript does not provide an easy way to create similar objects. Most object-oriented languages include the idea of a class, which is a template for creating objects of the ......

01
Feb 11
Recently I have been reading about the ancient Greco-Roman philosophy Stoicism, which I encountered via Derek Sivers, Tim Ferriss and my reading of the New England transcendentalists. The book I read is called A Guide to the Good Life: The Ancient Art of Stoic Joy by William B. Irvine. I liked it a lot, and I don’t want to lose what I have learnt, so ......

Dear Future Me, The next time you need to repave a Windows computer the link that you can never remember is ninite.com. Ninite is an online service that lets you select the free tools that they like to have on their computer (Firefox, 7-zip, notepad++, skype etc) and builds a custom installer that will install them all. It will save you hours. K. Thanks. ......

Introducing Functional Decomposition Before I begin I must apologise. I think I am using the term ‘functional decomposition’ loosely, and probably incorrectly. For the purpose of this article I use functional decomposition to mean the recursive splitting of a large problem into increasingly smaller ones, so that the one large problem may be solved by ......

Each year for the last seven Wagga Wagga hosts the annual Code Camp Oz. It is the largest community .NET conference in Australia. For reasons I don’t understand the organisers choose to hold ccoz in Wagga; a location that is inconvenient to everyone. My preferred technique to get there is to fly to Canberra and drive a hire car to Wagga. This year I ......

I have mentioned before that I own an Android phone. But I can drive a car and still be interested in motor bikes – and so it was that I spend my weekend at the Brisbane Windows Phone 7 Startup Camp. The event schizophrenically mixed the startup camp idea (create a new business in a weekend) with the new Windows Phone 7 technology. Over the weekend ......

Copyright © Liam McLennan | Powered by: GeeksWithBlogs.net | Join free