The Complete Bash Scripting Course

Posted by Dave Eddy on Dec 15 2025 - tags: tech

It’s been in the works for over a year now but The Complete Bash Scripting Course is here!

Learn the Bash Shell and master beginner all the way up to advanced Bash scripting techniques. 7+ Hours of content, 60+ Sections, all free.

Check out the YouTube video above or check out the courses website here:

https://course.ysap.sh


Running a DHCP Server on illumos

Posted by Dave Eddy on Nov 12 2024 - tags: tech

This post will guide you through installing isc-dhcpd on OmniOS inside a zone (software virtualized container).

Configuring the system

To get started, first install zadm on OmniOS inside the global zone. This tool makes creating and managing zones simple and is reminiscent of the vmadm command on SmartOS.

Install zadm:

pkg install zadm

I personally use this config for zadm (shoutouts to @papertigers for this), but feel free to customize this as you like.

Read More...



New Album - Nightfall

Posted by Dave Eddy on May 17 2024 - tags: music

I released my latest album on May 17th, 2024!

My 6th album (5th full-length). Nightfall consists of songs written mostly between 2021 and 2024 with a few notable exceptions capturing the feeling of a long night with an eventual dawn at the end.

Download or stream Nightfall.

Read More...


You Suck at Programming

Posted by Dave Eddy on Mar 23 2024 - tags: tech

In late 2022 I started a new series on TikTok called You Suck at Programming. In it I mostly talk about really cool Bash and Unix tricks and pitfalls and just general advice.

Read More...


Void Linux Bhyve Image on OmniOS

Posted by Dave Eddy on Sep 19 2022 - tags: tech

This guide will show how to install Void Linux as a guest on OmniOS using hardware virtualization with bhyve.

Configure the system

To get started, first install zadm on OmniOS inside the global zone. This tool makes creating and managing zones simple and is reminiscent of the vmadm command on SmartOS.

Install zadm:

pkg install zadm
pkg install zones/brand/bhyve

I personally use this config for zadm (shoutouts to @papertigers for this), but feel free to customize this as you like.

Read More...


Programmatically Generated Piano Music

Posted by Dave Eddy on Dec 17 2021 - tags: tech

I wrote a computer program to generate piano music on the command line. The generation is done with a simple algorithm to create patterns in MIDI format, which is then imported into my DAW to process the data and turn it into music. There is no AI or Machine Learning in this algorithm - the music is programmatically generated and this video covers the algorithm that I created in detail.

I Made a Computer Program to Generate Piano Music

Read More...



New Album - Inspired

Posted by Dave Eddy on Jun 01 2021 - tags: music

I released my latest album on June 1st, 2021!

My 5th album (4th full-length). Inspired consists of songs mostly written during 2020 and 2021 - when I decided to quit my job and focus more on music creation. It’s comprised of piano and instrumental tracks.

Download or stream Inspired.

Read More...


sshp Rewrite from JavaScript to C

Posted by Dave Eddy on May 20 2021 - tags: tech

In 2013, I wrote a program in Node.js called sshp. This was right around the time I was investing heavily into learning node, and honestly having a blast doing it. Node is quick and fun to write, and with only a couple hundred lines of code, I was able to write node-sshp.

node-sshp is a command line utility that acts as a parallelizer for ssh. It works by taking in a file containing a list of hosts to connect to and looping over each host firing off an ssh command in parallel (with a configurable maximum number of concurrent processes). The tool’s description is:

sshp manages multiple ssh processes and handles coalescing the output to the terminal. By default, sshp will read a file of newline-separated hostnames or IPs and fork ssh subprocesses for them, redirecting the stdout and stderr streams of the child line-by-line to stdout of sshp itself.

Writing this tool in Node was an obvious choice at the time: the company I was working for was using Node heavily, and this tool was written specifically to be used at my job. Managing multiple concurrent child processes and IO streams also made Node the obvious choice.

Read More...


Newer Posts 1 of 22 Older Posts »