Computer geek, gamer, drummer


Posted on 4 January 2022

As of late last year, when my work gave me a System76 Linux machine I'm now officially 100% on Linux both at work and at home. I'm also a programmer and on both my home and work machines I have a directory under my $HOME called dev where I store all of my coding projects. Most of the apps I install come from a package manager like apt, however from time to time I find the need to compile a project from source. For example, I use Emacs as my coding editor and occasionally there will be a new feature available on the main branch that is not available in the current shipping package. Right now that is project management that will be available in v28 but the current shipping version (as of this writing) is v27. If I want that feature then I have to build Emacs myself. The question is, where do I put this project because I don't really want it in my $HOME/dev directory with all my own projects.

Emacs NG

Posted on 3 January 2022

I think I have definitely been assimilated into the Emacs lifestyle. I find myself tinkering with it constantly, and I'm always trying out new packages and waiting for new features. I'm a JavaScript developer for employment and I have Emacs finely tuned for front-end JavaScript development. In my spare time I love to play around with Rust. I started my programming career writing C so I have an affinity for compiled languages and I really like the promise that Rust gives as a memory safe compiled language. So at some point I stumbled on Emacs NG which has a few things going for it that really caught my attention.

How I learn new technology

Posted on 23 November 2021

Over the years I've used several different editors and learned several different programming languages and technologies. The problem often seems to be that I'll only need it for a short while, just long enough to figure out how it all works and then I shelve it, sometimes for a a year or two, and then I'll need to use it again at which point I'll have to re-learn it all over again. I'm a JavaScript developer by trade and D3.js seems to be one of those projects. It is one of the more challenging libraries I have to use. I really enjoy using it, and it only takes me a day or two before I start remember how it all works again.

Manage multiple projects or sessions with tmux

Posted on 8 November 2021

This is my obligatory, "it's been a while" post. My apologies. Much has happened since my last post, I've moved into a new house, a pandemic, and I now have a new day job. At any rate, all that to say I'm hoping to get back on track with my posts. As a special treat I've created my first video content and I hope to do more of this as well. Today's topic is on tmux and how I use it to manage my multiple projects concurrently. I have a couple of scripts that I use to manage all of this. Here is an explanatory video if you would like to watch instead of read.

Do you lint your elisp files?

Posted on 19 March 2020

This will be a short post this week. I just wanted to share something I learned recently about flycheck and my elisp files. I use flycheck to lint most of my code but I had it configured specifically for the languages I use the most. I was having some problems with flycheck and I discovered "global-flycheck-mode" and decided to use that rather than individually configure it for each language. I was surprised to see it lint my elisp files. I'm fairly new to emacs, only started using it a couple of years ago, and I've since rolled my own configuration.

Django ImageField backed by DigitalOcean Spaces

Posted on 10 March 2020

Django has a wonderful tool for handling image uploads that has been carefully thought out and works very well. Consider all the things you would have to manage if you were to roll your own.

How to use multiple ssh-keys with multiple GitHub accounts

Posted on 1 March 2020

For various reasons I have more than one GitHub account. Unfortunately GitHub only allows you to use your ssh-key on a single account. So if you have multiple accounts like I do then you need multiple ssh-keys and it can be annoying to deal with unless you get a little creative with your ssh configuration. Here is what I did for years before I finally got annoyed enough to research a better way.

GIMP as a screenshot tool for Linux

Posted on 15 February 2020

As a Frontend Developer by trade, I take lots and lots of screenshots. Windows and MacOS both have several good options for taking screenshots. The one I like a lot on my Mac is Monosnap but they did not have a solution for Linux until recently. Now they have a browser addon that does just about everything that the MacOS app does. One thing that is missing is the ability to call it up with a hotkey and while taking screenshots outside of the browser is possible, its not as seamless as the MacOS app is. That said, as a Frontend Developer, 99 percent of my screenshots are taken inside the browser anyway.

Emacs org-mode for developers

Posted on 8 February 2020

tldr; I have created a Github Gist that captures the setup and configuration, key-binds, formatting, and GTD chart if you just want a reference.

Portfolio: Schedule an event

Posted on 2 February 2020

I ran across a UI that looked interesting through a newsletter I get called "UI Movement" ( The UI is pretty basic, it is a component that allows one to "schedule a demo" based on a date and time. You can view the original concept here ( It looked like it would be a lot of fun to build and it was. I chose React to build this because I don't get to use it as much as I would like and I've not had a chance to play with "hooks" yet, so I took this opportunity to figure out what they were all about.

Emacs vs Vscode

Posted on 19 February 2019

I haven't really been using Emacs for all that long. I'm really a VIM user when it comes down to it, but there is one thing that vim is missing, a standardized package manager and a package repository. Sure there are package managers and I guess you could count as somewhat of a repository but generally speaking I find myself googling for some functionality and finding a repository in Github that I can pull in with one of the various different package managers that have sprung up to fill the gap.

Pi Wall Project

Posted on 6 April 2018

A while back I acquired a Raspberry PI from the recruiter that got me my current job. I wasn't sure what to do with it for a while but I eventually ran across a wall-board someone had made, I believe it was this one I thought it was a fabulous idea so I set out to build my own. However I made a few modifications.

AWS CodeStar

Posted on 28 February 2018

When I decided to start this blog I had to spend some time figuring out a few things like where I wanted to host it. I've always been a fan of AWS, I've been using it in some fashion ever since it came out. So when I was registering my domain in Route53 this thing called CodeStar under the Services list caught my eye. Then I read the first line of the description.

Starting a new blog

Posted on 24 February 2018

I'm constantly learning new things. I'm a Frontend Engineer by trade and that space is constantly evolving. I've always liked the idea of blogging, but I've never really done much of it. Part of the reason is that I really like my editor (Emacs). I don't like the idea of typing a bunch of text into a textarea as in for a blog post for a couple of reasons. First, it doesn't have vim bindings. I can barely type anymore if vim bindings are not present. Secondly, I have actually lost form data before due to session timeouts and such so I just don't like typing large amounts of text into forms. I was excited the other day to find a Chrome addon that handles both of these concerns called Atomic Chrome.

Using dtrace to fix git

Posted on 14 March 2014

I am closing down my old blog on and I didn't have much content over there and this was and article I felt like preserving.

First off the problem. I like to develop on smartos because it is based on Solaris and has all of the conveniences of Linux with a few extras namely zfs, zones and dtrace. It’s dtrace that I’m going to discuss today. I run a very specialized version of vim. By specialized I mean I have a bunch of addons. In particular, YouCompleteMe and UltiSnips requires that vim be a particular version and have python support compiled in.

Older Posts →