Modular .bashrc

My previous .bashrc file was a mess, with way too much stuff inside one file, making it hard to manage. I decided to split it up and make it modular. To do this I keep my main .bashrc file really simple. The only thing it does is loop through the ~/.bashrc.d/ folder and running everything inside it.


So the contents of my ~/.bashrc file is just the following:

for file in ~/.bashrc.d/*.bashrc;
  source $file

Then I keep all my small modular units inside ~/.bashrc.d/ folder. It looks like this:

├── activitystream.bashrc
├── default.bashrc
├── dotfiles.bashrc
├── git.bashrc
├── nvm.bashrc
└── pb.bashrc

You can see all of its contents here. Each file does one/few things well, so it’s really easy to add more units, remove or change them. I really like this approach.


Managing your dotfiles

I was looking for some easy way to manage my dotfiles. Dotfiles are just configuration files most systems use today. They are stored in your home directory $HOME, and are prefixed with a . to make them hidden. An example of dotfiles: .gitconfig, .vimrc, .npmrc, .yarnrc

I stumbled upon a great post on Hacker News about how to manage your dotfiles. I followed those steps and decided to write a bit about my process.

.NET Core Docker

Docker Notifier

I wrote a small .NET Core open source console app to listen to Docker container events and pipe them out to various destinations. The main reason I created this was because I hadn’t found something that did this and allowed various destinations. Also I wanted to develop something in .NET Core.

Slack is only included for now. Would love some feedback. Pull requests are welcome!

GitHubDocker Hub


Proxy traffic to web application Docker containers with nginx and Let’s Encrypt

I’ve been using Docker for a while now. The idea of running everything the same anywhere is like a dream come true and not having to worry about updating a package dependency on the server and breaking everything. For example the same server running multiple Python applications which require different versions. Ever since I moved from Digital Ocean to Scaleway I have begun to use Docker for almost everything I run on my Scaleway servers.


GitLab CI – First experience

I tried GitLab CI for the first time today. I absolutely love GitLab, it’s a wonderful product and gets better and better each week. That’s the reason I wanted to try out GitLab CI.

.NET Core Docker

Dockerized Web API in .NET Core

This weekend I decided to try setting up a simple Web API with .NET Core and Docker running it on Linux. The process was really straightforward. I got it up and running almost immediately. So I decided to share the process.


Git screw up? – reflog to the rescue!

When you screw up something in Git (bad merge/rebase, hard reset, etc.), you sometimes would like to go back before you screwed up, but you don’t know how. It’s very easy with the git reflog command!


Moving from DigitalOcean to Scaleway – My first experience with Docker

I’ve decided to move my server from DigitalOcean to Scaleway. The reason for this is mainly because of the pricing. Even though DigitalOcean is not expensive, Scaleway is much cheaper and I’m getting more in return.


Let’s Encrypt

I have finally set this domain up on a secure connection (HTTPS). I used Let’s Encrypt service where you can get free SSL/TLS certificates. I followed this guide and it literally took 5 minutes along with setting up the cron job for auto renewal of certificates. I also set up my other domain so now they’re both on HTTPS.

Angular JavaScript Programming

Angular 1.5 todo app

I have been using Angular for over 3 years. A few months ago Angular 1.5 came out and they introduced the .component() method, which is basically the same as an element directive but with a much simpler API. Since then I’ve fallen more and more in love with Angular so I decided to write a small todo app utilizing the component architecture along with some cool things in the Angular world.

First of all I’m not much of a designer so I want to thank TodoMVC for the UI.

Anyway, the app consists of:

I’m not gonna talk much about these in depth, only high-level about what they are and why I chose them. This article will mainly be about how I decided to structure and implement the app.