Notes from learning to build stuff.

no-frills content for developers wanting to ship ⚡️

Latest

  1. Running Docker with a forked RunC

    Check oout how the docker daemon interacts with containerd and how we can leverage that to modify runc and set some defaults

  2. Implementing a TCP server in C

    Writing a TCP server in C can teach many things. Check out how to implement a TCP server and understand some of the syscalls involved in the process.

  3. A practical look at basic AWS Networking with Terraform

    A conventional AWS Networking Tutorial out there using Terraform doesn't go around the concepts of AWS Networking. Check out how to provision an AWS VPC with multiple subnets and configure security groups using Terraform.

  4. Nginx HTTP2 Server Push

    NGINX just added server push to mainline. Checkout a NGINX HTTP2 server push example using the latest code from source integrating with an HTTP1 Golang web server.

  5. The first limit you'll hit on AWS EFS: Locks

    AWS imposes various quotas on the usage of its distributed filesystem. Check out how to go over them by running MYSQL on EFS and then developing a stress test.

  6. Initializing Grafana with preconfigured dashboards

    Grafana v5 is coming with two great features: dashboard and data source provisioning. Checkout how to initialize a dashboard without touching the UI using this new release

  7. Simulating AWS tags in local Prometheus

    Going through Prometheus relabelling to emulate an AWS environment locally with Vagrant

  8. What happens when a pipeline is created in Concourse CI?

    A dive into how the fly command set-pipelines triggers a pipeline registration in concourse ATC

  9. How to build and run Concourse CI locally

    Get Concourse CI built from source - the first step to contributing to the project.

  10. Creating a simple extension to block websites

    Seeing yourself procrastinating in HackerNews? Create an extension that blocks it. All in less than 20 lines of code.

  11. How to publish a blog using AWS

    AWS can guarantee amazing speeds for serving a blog - it supports HTTP2, IPv6, caching and has free TLS certificates. Check out how I do it for this blog.

  12. Configuring HAProxy with HTTP2 support

    HTTP2 support recently landed in HAProxy 1.8. Check out how to configure HTTP/2 support for HAProxy.

  13. Sending files via gRPC

    gRPC shines when it comes to sending a bunch of messages here and there. What about file uploads? Is gRPC a good fit for file transfer? Check out how to send files with gRPC and see if that makes sense.

  14. Should you buffer your writes?

    It's common practice to have a buffer between the network and your application. Today I tried to measure how different buffer sizes changes the total time to transfer 1GB of data.

  15. Writing DNS messages from scratch using Go

    How to write a DNS message from zero and send it via UDP to a server.

  16. Can we manage multiple GitHub repositories in a better way?

    Wondering how a project manager might look at GitHub triggered some questioning. How could someone extract more meaningful data from it?

  17. Creating a hello-world API using Swagger and Go

    Swagger allows us to separate api definition from implementation. This guide goes through the process of creating a minimal API using go-swagger and Golang.

  18. A minimal Docker Ansible role

    How to create a minimal Ansible role that provisions a Linux machine to have Docker installed - from role conception to testing it using Vagrant.

  19. Incremental backups using GNU Tar and S3

    How to take snapshots of a directory and send to them as backups to S3 using Linux tools

  20. Updating the Docker version in Travis-CI

    Docker is not always up to date in Travis' builds. Check out how to update the version of Docker in Travis-CI.

  21. Inspecting Docker images without pulling them

    How to inspect a docker image from dockerhub without pulling it

  22. Getting TLS certificates with Letsencrypt and HAProxy

    A guide on building and configuring HAProxy from scratch to achieve HTTPS with Letsencrypt certificates

  23. Pushing Docker images right from Travis-CI

    How to automate the process of building an image and pushing it to DockerHub using Travis-CI

  24. Changing the name of an index in Elasticsearch

    Elasticsearch indices can be renamed with two different approaches - Reindex API and Aliases. Checkout out how to rename an Elasticsearch Index using these approaches.

  25. Executing multiple commands in SSH session against multiple machines

    It might happen that you need to execute multiple commands against a set of machines via SSH. Check out how to do it programmatically.

  26. Concurrently running container-based and VM tests in Travis-CI

    Running container and virtual machines side by side in Travis is possible. Check out how to do it

  27. Why my Ubuntu container doesn't execute profile scripts?

    Making use of the login flag to make sure bash executes profile.d scripts.

  28. A Dockerfile tailored for Golang applications

    Leveraging multi-stage builds to create tiny Golang Docker images

  29. LVM on loopback devices

    An actionable guide on how to use LVM without formatting physical disks and just using loopback devices

  30. Minimal Golang Makefile

    Having build many Golang projects I came with a minimalist makefile that might work for you.

  31. How to install HAProxy with Lua support on MacOS

    Setting up HAProxy on Mac is not complicated. Check out how to build it from source and run it locally.

  32. Augmenting Linux Swap Space

    How to extend Swap space on Linux after you already set it

see more