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.

Sharing SSH With WSL

The WSL on Windows 10 is a new tool to run Linux commands and Linux dristibutions. More to the point, Windows finally has a mostly working bash environment that works with the CLI tools developers have embraced. Just like any tool that is of use, some things must be done to set them up appropriately. Sharing SSH keys is one of those things that you need to setup to use effectively.

Read More

ES6 Module Gotchas

Updated for 2018

Now that ES6 has a finalized module definition (Right now still in draft phase Out of draft phase! And some new ones coming.), I’ve gone through and found some of the things that stick out to me as ‘need to knows’. It’s helpful to keep these few things in mind when working with the new module syntax.

Read More

Remove a directory that is not empty in NodeJS

A quick pro-tip for handling this situation.

NodeJS provides an easy to use fs.rmdir command that follows the POSIX standard. This unfortunately means that it will error ENOTEMPTY if there is any file in the directory you are attempting to remove. NodeJS doesn’t have an easy way to force the removal, so you have to get fancy.

By far, the easiest, safest and most cross environment approach is to use rimraf whose source code shows nearly 250 lines of premium quality work.

It’s 2018, use del.

Or if you must, try trash. It’s really neat too.

Read More

Cross platform symlinks

Why a symlink

Many times when working with hosting apps, there comes a time or a need to have certain code in more than one place at the same time. To accomplish this, a ‘symlink’ can be used. For example, a basic NGinx or Apache server will have a path to host files on like /var/www/my-site/. It would not be recommended to have the code exist within that path directly though, as that would create a lot of complications when attempting to do simple updates or roll back code quickly. It’s much easier in this simple case to have /home/user/code/v1/ also be /var/www/my-site so when v2 is created, it can now be /var/www/my-site instead of v1. Symlinks allow for this, and are the preferred mechanism.

Read More

Generating Docs from Google Sheets

Google Sheets allows for App Scripts to be ran which can provide robust, custom automatic reporting. The example outlined below may require some customization of code, but that could be made more efficient with some effort. Turning the App Script into an Add-on also allows for sharing report creation with others. An example could be running a report of expenditures from a Sheet filled with expenses. It’s possible to run a report from a Sheet so that Docs are automatically generated.

Read More