Project background for sake, a task runner for servers

Jun 9, 2022

I usually make a project background document for my personal projects, it documents what I'm trying to solve, the core design decisions that will guide the code architecture and comparisons to other software. This is the one I made for sake, a task runner for servers.

Writing a Transpiler For a Subset of the Markdown Language

Mar 24, 2022

For a personal project, I needed to create a Table of Contents are given markdown content, however, the markdown content was to produce a different HTML output than the CommonMarkdown specification. The rules for getting from Markdown to HTML were similar to how Rust mdBook handles Table of Content.

mani, a CLI Tool to Manage Multiple Repositories

Aug 15, 2021

TL;DR - Mani is a many-repo tool that helps you manage multiple repositories. It's useful when you are working with microservices, multi-project systems, or just a bunch of personal repositories and want a central place for pulling all repositories and running commands over them.

Working with IndexedDB

Dec 5, 2020

When searching for indexedDB on google, the top search results don't provide a good introduction to indexedDB. So I thought it might help others who want to persist some data in the browser (and avoid hitting the limit of localStorages 5 Mb size cap) to more easily get started.

A Brief Intro to SSH

Mar 22, 2019

Because I haven't posted in a long time, and I want to maintain the image of being an active blogger, it's time to go over the basics of internet communication, bit by bit... sorry :S

Explaining SOLID through Code

Nov 16, 2018

Man is a consumer and a producer, a pattern interpreter and pattern producer; thus the code we produce and consume ought to have characteristics that favor such activities. So, how do we produce easily consumed code? We do so by following patterns and code principles that enable us to increase encapsulation (information hiding), modularity, maintainability, readability, etc., all properties of a well-designed system.

Setting up a private Docker Registry

Aug 18, 2018

This tutorial covers setting up a private Docker Registry on AWS with Nginx setup as a reverse proxy and generated Let's Encrypt SSL certificates. While the steps are specific to particular environments (Ubuntu, S3), they can easily be replicated to others. Also keep in mind that Let's Encrypt certificates are only valid for a limited amount of time (something like three months).

97 Things Every Programmer Should Know

Aug 8, 2018

"97 things every programmer should know" is a rich book containing programming wisdom from famous software developers. The "things" range from practical advice on how to write code, to the more social aspect of coding and the importance of it. I believe all points combined produce an accurate list of properties of a complete and accomplished programmer.

Recording terminal commands and generating GIFS

Jun 14, 2018

In this post, we'll go through how to create a script that records commands on the command-line and generates GIFS (Graphics Interchange Format) without having to record them manually.

Validating BEM using regex

Mar 10, 2018

BEM (Block-Element-Modifier) is a naming pattern that helps you reason about your implementations. Any text that embeds a hierarchy or structure is a suitable candidate for BEM. For instance, it can be used to name your CSS components or even keys in your configuration files.

Generate Boilerplates with Bash

May 13, 2017

I often find myseld creating the same files over and over again. So, in the spirit of automation, I created a boilerplate generator in bash. No need for the old googling and ctrl-c + ctrl-c anymore. You can find the project at github.

Using jsonb in Postgres and Making it Work with BI Software by Leveraging Views

Jan 11, 2016

Json (or more recently Jsonb) is a great addition to Postgres, and soon many other established SQL solutions will follow suit. It enables us to relax some of the conditions relational databases come with, such as enforcing a schema (perhaps where no schema is to be found) or having a predefined type. For me, one of the biggest problems it helps tackle is situations where you are faced with a varying number of attributes, usually needed to be dynamically added / removed by the end user. Old solutions include the dreading EAV (entity-attribute-value) model, which treats each additional column or attribute as a row in a table.

A bit About forEach, every and some

Sep 29, 2015

I've been slowly replacing my for and while loops with forEach, some and every method. This mainly stems from the functional programming hysteria, as well as using libraries such as D3 which uses a functional style of programming.

dark/light theme