Working with IndexedDB
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
It's not unusual to stumble upon the terms SSH and be a bit perplexed as to just what it is, how it works and what all the files and command line tools are for.
Explaining SOLID through Code
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
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
"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
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.
Project Status with Git
If you're anything like me, you have a lot of projects going on and at times find it difficult to sync everything. You're not sure which project you contributed to lately, which project has discrepancies between local and remote origin and so on.
Navigate Github Through the Command Line
Anytime you catch yourself repeating the same action over and over again, you should consider automating that process. In one particular case, I found myself frequently navigating to pull-request's associated with the branch I was on. This action is rather tedious as I had to open a new tab on my browser and browse to the corresponding section on Github. I needed a new, quick and hassle free way to access the pull-request from the command line. And so, project github-cli was born.
Building a Command Line Tool (CLT) in Node
Recently I published a command line tool (CLT) to the npm registry. The module in question was pure-html, a development environment for creating standalone HTML files. I will detail some of the things I learned during that process, and what parts are necessary to publish your module to the npm registry.
Wasting Time with npm5 and its package-lock.json File
I love the new npm5. It brings about speed, a new succinct install format, new commands, a new deterministic install setup, and a bunch of other goodies.
Generate Boilerplates with Bash
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.
Review of Some Recently Played Indie Games
Occasionally it's nice to get away from the mentally challenging and at times mundane aspect of programming and venture into the creative and adventerous world of indie games. Luckily, the last few years have produced interesting and well thought out indie games, both story and gameplay wise. There won't be any spoilers in this post, it's just my general opinion of the games and how well they entertained me. I usually measure the effect of the story by how much it affected me personally, and if it's the kind of story that even after I complete the game, it gets me to research in how others interpreted the ending and the meaning of the game.
Software and Tools I Use
It's been a while since I last updated the toolset and softwarea that I use for development. I briefly mentioned using Sublime in a post but times have changed since then.
Using jsonb in Postgres and Making it Work with BI Software by Leveraging Views
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
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.
Preparing for Angular 2.0
With Angular 2.0 coming later this year or early next year, we're approaching a more modular and consistent way of doing things (with the help of webcomponents as well, paving the way for more standards). This post will touch on how I structure my projects and what I'm doing to ease the transition to Angular 2.0 from Angular 1.3/1.4.
Using Angular $templateCache
If you're used to building application which are modular, you will probably end up with a lot of HTML files, from layouts to partials and dialogs. And if you want to provide a fluid user experience, meaning no loading of files during state change, you'd most likely want to preload the templates.
An Overview of the Ecosystem of Web Development Tools
This post is directed to those who are new to web development and perhaps feel a bit overwhelmed with all the new tools/libraries/frameworks popping out and want to know where they all fit in. I'll give a brief overview of some tools used along with the ones I use for each category.