Journeyman Guides

The aim of the Journeyman guides is solving specif problems. They cover the missing link between a beginner and an expert. Many times, I've been stuck trying to solve a problem; trying to get a solution that the trivial examples don't cover, or that the expert content assumes you already know. That is the problem I would like to solve in these guides. The guides should provide you with relevant knowledge and also exposure to topics that could be the key to solving your specif situation.

These guides are free, but you can support my work by paying what you want when getting the guide. I would recommend first getting the guide, skimming through it, and if you learned something and find the guide useful buy a copy.

The guides are condensed and will serve as a complement to other existing literature that covers the basics. I intend to give you a practical guide that you can use as a reference. I don't pretend the guides to be the canon for a general topic. The guides have the information I wished I had when I was trying to understand a specific topic. If the guide doesn't cover a related topic in full, at least it could help you figure out what you should search for learn more.

macOS network programming in Swift Build network applications using Swift

This guide teaches you the basic concepts for building a network application on macOS. It includes an overview of the available network APIs on macOS and explains how to use three important libraries and frameworks that cover the most common network application needs. The three main topics are:

  • BSD Sockets
  • Apple's Network.framework
  • SwiftNIO
  • These frameworks cover the broadest range of network applications, going from the lowest level via BSD sockets all the way to building a network application using SwiftNIO.

    Get the guide

    FreeBSD Jails using VNETs FreeBSD jail networking with virtual networks

    This guide shows you how to use jails and virtual networks. Virtual networks give you the flexibility to:

  • Give your jails their own network stack.
  • Isolate jails from each other by grouping them in vnets.
  • Model networks you are currently running, and test them in jails before messing with the real system.
  • Whatever the case might be, learning how to use vnets and jails is a useful skill to have. In this guide, we begin with basic jails operations and end up designing and implementing our network using vnets.

    The case study for this guide consists of having a jailed web server running in public vnet that can expose services to the host, and a fictitious database server that will be located in a private vnet. The web server will have access to both the private and the public vnet. With this basic setup, you'll understand the necessary concepts of using jails and vnets so you can apply it to your specific needs.

    Get the guide