DanielFGray.com

Blog posts

Category: computers

Async Programming in Node.js

category: computers
Callbacks, Promises, Async/Await (oh my!)

Getting started with Babel and Webpack

category: computers
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

category: computers
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

category: computers
An explanation of currying and partial application using JavaScript

How I Made My Own Static-Site Generator

category: computers
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

category: computers
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?

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

Parsing Bash Config Files

category: computers
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

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

Bash Scripting

category: computers
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

category: computers
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

category: computers
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.

Killing the Display Manager

category: computers
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.

Vim beginner's customization guide

category: computers
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

category: computers
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

category: computers
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.