DanielFGray.com

Blog Posts

Server-Side Rendering with React

server rendering in react is often seen as mystical and esoteric, let's shed some light on it

Async Programming in Node.js

Callbacks, Promises, Async/Await (oh my!)

Setting Up A Modern Webdev Toolchain

Modern JavaScript tooling can be a bit of a maze. Babel, Webpack, eslint, TypeScript, PostCSS... Maybe you've heard about them, maybe you don't know why you'd use them, maybe you just want to know how to get started with them. Read on!

An Attempt At Explaining Category Theory

This is mostly a personal notebook of what I think I have learned. I make no guarantee about the accuracy of anything said here, I would appreciate any corrections or feedback on anything [I've ever] posted.

Functional Programming: currying and partial application

An explanation of currying and partial application using JavaScript

How I Made My Own Static-Site Generator

I had a fun time making my own static-site generator for a blog, and I thought this could serve as a practical introduction to Functional Reactive Programming (FRP).

Creating a REST API in node.js

Getting started with making web APIs can be confusing, even overwhelming at first. I'd like to share my process for creating APIs in Node.js.

Why Use React?

Introductions are hard, so I'm just gonna jump right into this.

Parsing Bash Config Files

Many times a script is written that needs extra/persistent configuration from the user. In most languages this is no big deal, you just import your json/yaml/toml parser and you're good to go. The common thing to do for many bash scripts that require configuration is to ask the user to put another actual bash script containing variable declarations in the file:

Why GitLab

Occasionally people ask me why I use GitLab instead of GitHub.

Bash Scripting

Bash is perhaps one of the hardest languages to learn how to script with, simply for the fact there's so much bad information out there. I'd like to share some tips and tricks I've learned in my few years of scripting.

Learning Vim

A brief (and somewhat complete) history: In the beginning, the UNIX standard editor was ed, created by Ken Thompson in 1969. ed is a very powerful, very terse, command line interface for editing text, but user-friendliness is not one of it's strengths. In 1976 Bill Joy came along on his ADM-3A and extended ed to become ex, and then a couple years later made a visual interface and called it vi. Later on, around 1988, Bram Moolenar took Vi and improved it with a lot more features, and around 1991 released it and called it Vim.

Functional Programming: a small introduction

It seems there's some confusion on why you might use functional programming methods like map/reduce/filter, and so I thought I'd write something to try and explain why I think they're useful and interesting.

Beginning Drums

Pat your right hand on your right leg and then your left hand on your left leg, for each hit say a syllable of the word "single".

Killing the Display Manager

Display managers like LightDM and SDDM come standard with many Linux distros, and I personally find them useless. I'd like to share with you how to get rid of them and gain a bit of control over how X is launched, and take back a few precious megabytes of RAM.

On permutations of rudiments

This post is still a work in progress, so bare with me please. If you spot any errors or have something you want to add, feel free to leave a comment below.

Vim beginner's customization guide

This article is for those who've been using Vim for a little while and have started to grasp modal editing and the powers of Vim, and now want to start customizing it. If you're completely new to Vim, I have another post describing some of the basic of learning Vim here but there are dozens of them on the internet, and Vim ships with vimtutor as well which is a great place to start.

Fuzzy searching for MPD in Bash

I recently came across fzf, which is an interactive line filter. By default fzf will fuzzy search recursively through file names in the current directory, but it also filters through stdin.

Backporting packages in Debian

Are you anxious for a new version of a particular package, and don't want to wait for someone else to submit it to backports? After a few hours of reading docs and testing this out myself I feel like I've gotten a good grasp on this, so I'd like to share what's been working for me.