Wednesday, January 13, 2016

The Pomodoro Technique

There is a special, lonely dread that accompanies a big, complex task. Am I up to it? Is it harder than I think? Am I missing something fundamental? I wonder what's going on on Twitter. Hey, I got retweeted...

Wednesday, January 6, 2016

Properties in JavaScript

Continuing my exploration of JavaScript, with Kyle Simpson's this and Object Prototypes as my guide, I'm going to look at some of the functionality introduced with ES5 to allow greater control over the behavior of object properties, which Simpson looks at in Chapter 3 of his book.

Wednesday, December 30, 2015

Interactive Rebasing in Git

This post is a quick look at one of my favorite features in Git, interactive rebases.  I like this feature because it lets you do two conflicting things: make micro commits (like saving every couple of  minutes when editing a Word doc) so you can replay your work, and always go back to a working state of your code, and making clean, well worded, self contained commits to a project repo.  Interactive rebasing lets you squish your commits together when you are ready to share them.

Wednesday, December 23, 2015

A Look at Git Hashes

Git is a locally stored database with integrity guarantees. To get  a feel for how this works, this post takes a look at a very simple repository using the commands hash-object and cat-file. Although these are not commands you would normally use (they are among the "plumbing commands" that lie behind the "porcelain commands" like clone and commit), they are very helpful for inspecting the objects that a Git repository manages.

Wednesday, December 16, 2015

Looking at 'this' in JavaScript

JavaScript looks a lot like C#. But the internal plumping is utterly different. I've always found this somewhat befuddling. As a C# developer, you kind of think you know how things are working, but often you don't. Which makes figuring out what's happening when things are not working really challenging. I've just started reading a book in Kyle Simpson's (@getify) accurately titled series, You Don't Know JavaScript, a slim monograph on this & Object Prototypes, and things are kind of clearer. Kind of.

Wednesday, December 9, 2015

Node.js Development with Visual Studio Code

Last weekend I took my first steps in Node.js development, adding a small feature to a Hexo plugin. Hexo, as I blogged last week, is a static site generator written in Node.js, to which I am planning to migrate this blog. I made good progress as first, but soon required a debugger, and took the opportunity to learn the basics of VS Code as a Node editor and debugger. This article will walk through the basics of environment set up and debugging with VS Code.

Wednesday, December 2, 2015

Hexo, a Node.js Blog Platform

It's been five years since I wrote my first blog post, a look at XSLT that still gets pretty good traffic. I chose Blogger because it was free and easy, and the fact Google owned it gave me some confidence it would stick around.  But it's been feeling like less and less of a good fit recently.

Wednesday, November 25, 2015

Creating MongoDB Shards and Replica Sets with PowerShell

In the MongoDB University course "M101N: MongoDB for .NET Developers", there is a walk through of a UNIX script to create a 3x3 set of shards and replica sets. To brush up on my MongoDB and my Powershell, I decided this weekend to try to rewrite and extend the script in Powershell. A somewhat painful, but ultimately rewarding, experience: You can see what I came up with here.  In this post I will walk through some of the powershell and some of the MongoDB syntax and tricks.

Wednesday, November 18, 2015

Custom Sitecore Log files

Starting with Sitecore 6.2, and especially since Sitecore 7 we've seen an increase in specific log files: WebDAV, Crawling, Search, Publishing, FXM. This is completely configurable, and can be leveraged to keep your application logic separate from the Sitecore log file while still using Sitecore's logging capabilities.

Wednesday, November 11, 2015

Autofac Aggregate Service

There is a nice little feature of Autofac called Aggregate Service, that works very well with NSubstitute's recursive mock functionality to make tests much more maintainable and resilient to dependency modifications.