I'm an experienced web developer, software engineer, and leader. Welcome to my blog. If you need to reach out you can continue the conversation with a tweet to @geedew. I hope you find what you are looking for here. You can also find me on Github and StackOverflow.

CMDER on Windows causing Lock files in Git, and the fix

An issue can occur when working within CMDER when Git complains that an index.lock file exists and cannot continue. This happens to be an annoying bug in Windows and CMDER. To immediately fix this issue in Windows, the task manager must be opened and all git-for-windows processes need to be ended. Then the index.lock file can be deleted manually. Or… the bug can be fixed instead!

/ / / Read More

The HTML5 Input Event

In the DOM a special event occurs on an <input> or <textarea> element known as the change event [1] [2]. The change event gives a developer the ability to catch input changes. However, it falls short when instant feedback is needed because it will only trigger once the input has lost focus. Immediate feedback could be handled using the keydown or keyup events. Those events are costly (happening often and requires the code to keep state to know of changes actually occurring) and are potentially buggy due to extra logic needed.

/ / / Read More

Automating tasks based on file changes

Triggering scripts to run when a file or folders change is a common advanced task. Recent applications like Dropbox and BitSync have grown from the days of rsync magic, but what about triggering code when a sync occurs. It could be as simple as emailing a photo to your parents once 5 pictures are updated in Dropbox or as advanced as rebuilding a static blog based on content changes of configuration files in a folder. This post focuses on the Linux tool for handling these events that relies on inotify; but there are similar (not covered here) ways on BSD/OSX/Windows too (FSEvents/kqueue).

I ran into this when setting up a Dropbox sync to cause a Grunt process to build a stage server. The Dropbox sync would need to trigger an Assemble.io process to turn Yaml files (that are held in the Dropbox path) into HTML.

Inotify is the systems way to event filesystem changes, but to be able to tap into inotify events it’s easiest to install another daemon called incrond (inotify cron daemon) that abstracts inotify system calls in a manageable way.

/ / / Read More

Cross-Console for Better Logging in JavaScript

During web app development, there is little reason to need to handle a cross-browser console interface. In fact, most users today will have no issue if something does get sent to a console while they are browsing (where in the past it could be a JavaScript error event). Unfortunately, when working on a team or in an unfamiliar browser, sometimes sending something to the console while debugging is useful but never gets cleaned up (but in reality you should be debugging with [breakpoints](http://stackoverflow.com/search?q=how+to+set+breakpoint+javascript)). Proper code-review prior to a using code in a production scenario should catch the mistake, but it’s smart to always have that automated backup to protect the code. A quick, robust script will give you full control and blockage of any wild console as well as give you some flexibility to control the console easier using environments and modes.

TL;DR; View it on Github Pages or View it on GitHub

Console Log being Controlled

/ / / Read More

Your Code Reeks

Drudging through the each line of fluff; var i, .length, foreach.

“How in the world does this code even work?”

We’ve all been there.

A text editor with colored JS code on a dark background

As a code review artist myself, I run into problems daily that make absolutely no sense upon initial understanding. Frustration leads to anger, anger leads to retaliation, and then the pull-request has been denied with prejudice. The problem with the code however; is you.

/ / / Read More