<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>lambda.cx blog</title>
    <link>https://blog.lambda.cx/</link>
    <description>Recent content on lambda.cx blog</description>
    <generator>Hugo</generator>
    <language>en</language>
    <lastBuildDate>Mon, 02 Dec 2024 20:28:47 -0500</lastBuildDate>
    <atom:link href="https://blog.lambda.cx/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Creating a &#34;What Is My IP&#34; website in four lines with nginx</title>
      <link>https://blog.lambda.cx/posts/what-is-my-ip-with-nginx/</link>
      <pubDate>Mon, 02 Dec 2024 20:28:47 -0500</pubDate>
      <guid>https://blog.lambda.cx/posts/what-is-my-ip-with-nginx/</guid>
      <description>I recently wanted to create an endpoint on a development machine that could return my external IP address. Normally I would use one of a handful of services https://canhazip.com/ or https://ifconfig.ca/, but I wanted to see how easy it would be to make my own. As it turns out, it&amp;#39;s incredibly easy, and doesn&amp;#39;t even require leaving the reverse proxy.&#xA;Using nginx, we can just create a block like this.</description>
    </item>
    <item>
      <title>OpenBSD Weechat Question Mark Message Separator Fix</title>
      <link>https://blog.lambda.cx/posts/openbsd-weechat-separator-fix/</link>
      <pubDate>Fri, 23 Feb 2024 19:46:49 -0500</pubDate>
      <guid>https://blog.lambda.cx/posts/openbsd-weechat-separator-fix/</guid>
      <description>I just solved what was becoming a very aggravating issue thanks to the help from the folks in the #weechat channel in Libera.Chat.&#xA;On OpenBSD, my weechat client would put a question mark to separate the nicks and the messages sent with a question mark instead of a pipe-looking character like it should.&#xA;It looks like this was caused by opening weechat without having the correct locale set. By default, OpenBSD uses a locale of C, which only supports ASCII characters.</description>
    </item>
    <item>
      <title>Adding a Second Encrypted Drive to Fedora</title>
      <link>https://blog.lambda.cx/posts/adding-a-second-encrypted-drive-to-fedora/</link>
      <pubDate>Sun, 14 Jan 2024 00:20:01 -0500</pubDate>
      <guid>https://blog.lambda.cx/posts/adding-a-second-encrypted-drive-to-fedora/</guid>
      <description>This post will cover creating a second encrypted drive on Fedora that automatically decrypts on boot and mounts to a set location.&#xA;I had finally run out of room on my SSD. I went to the store to buy another so I could increase the amount of storage space in my PC. I got home and installed it. Then I thought.&#xA;My main drive in encrypted and setup by the Fedora installer, so my second should be too right?</description>
    </item>
    <item>
      <title>Converting Old Camcorder MOD and MOI files to MP4 Video</title>
      <link>https://blog.lambda.cx/posts/converting-mod-moi-to-mp4/</link>
      <pubDate>Fri, 05 Jan 2024 21:57:24 -0500</pubDate>
      <guid>https://blog.lambda.cx/posts/converting-mod-moi-to-mp4/</guid>
      <description>I recently found a bin of SD cards from a JVC camcorder I used years ago for school projects. I wanted to import the videos into DigiKam to catalog them with the other photos and videos I&amp;#39;ve taken with other cameras. When trying to complete this I quickly ran into an issue. The camcorder recorded videos into a combination of MOD and MOI files, which most software doesn&amp;#39;t recognize.</description>
    </item>
    <item>
      <title>Creating an OpenBSD Wireguard VPN Gateway</title>
      <link>https://blog.lambda.cx/posts/openbsd-wireguard-vpn-gateway/</link>
      <pubDate>Fri, 29 Dec 2023 16:35:36 -0500</pubDate>
      <guid>https://blog.lambda.cx/posts/openbsd-wireguard-vpn-gateway/</guid>
      <description>A couple of years ago I published a blog post about creating an OpenBSD VPN gateway using OpenVPN.&#xA;I&amp;#39;ve recently switched from an OpenVPN-based VPN provider to one that uses Wireguard. As a result I&amp;#39;ve had to redo my VPN gateway.&#xA;I&amp;#39;ll only be highlighting the things I&amp;#39;ve changed since the last setup in this post, so please refer to the previous post for more details.&#xA;One advantage this iteration has over the previous one is that it no longer requires third party software to be installed on the OpenBSD router.</description>
    </item>
    <item>
      <title>Bash Incremental Directory Completion</title>
      <link>https://blog.lambda.cx/posts/bash-incremental-directory-completion/</link>
      <pubDate>Sat, 18 Nov 2023 13:59:18 -0500</pubDate>
      <guid>https://blog.lambda.cx/posts/bash-incremental-directory-completion/</guid>
      <description>I was just working on a bash completion for my repo management tool and came across a completion problem I couldn&amp;#39;t find an answer to.&#xA;In my tool, all repositories are stored under a root source directory ~/src, and are three directories deep under that.&#xA;The top directory is the website, the second is the user, and the third is the repo itself. For example github.com/zig/ziglang.&#xA;My tool repo has a command repo cd &amp;lt;spec&amp;gt;, which will try to find a project matching the path you specify.</description>
    </item>
    <item>
      <title>Dynamic Tracing on OpenBSD 7.3</title>
      <link>https://blog.lambda.cx/posts/openbsd-dynamic-tracing/</link>
      <pubDate>Sun, 21 May 2023 23:43:05 -0400</pubDate>
      <guid>https://blog.lambda.cx/posts/openbsd-dynamic-tracing/</guid>
      <description>A couple years ago a new device silently entered the OpenBSD source tree.&#xA;The dt(4) device first appearing in OpenBSD 6.7 with very sparse information. In the releases since, it&amp;#39;s gained quite a bit of functionality and now has tools to manipulate it properly.&#xA;The documentation has gotten better over the last couple years, but there isn&amp;#39;t much info about how to leverage it to do anything useful.&#xA;The dt pseudo device driver is connected to /dev/dt, which is used to interact with the device through ioctl calls.</description>
    </item>
    <item>
      <title>Lesser Known IRB Features</title>
      <link>https://blog.lambda.cx/posts/lesser-known-irb-features/</link>
      <pubDate>Fri, 28 Apr 2023 00:22:54 -0400</pubDate>
      <guid>https://blog.lambda.cx/posts/lesser-known-irb-features/</guid>
      <description>While poking around in IRB and looking at the autocompletion results, I found some functions that I didn&amp;#39;t recognize and decided to take a look at what they do. I found some pretty interesting stuff.&#xA;It looks like some of these commands have been added recently to come up to par with pry, and others have been kicking around for a while and just flying under the radar.&#xA;You can find them all defined in this file in the IRB source code.</description>
    </item>
    <item>
      <title>Testing Rails Components That Require Cache</title>
      <link>https://blog.lambda.cx/posts/testing-rails-cache/</link>
      <pubDate>Fri, 28 Apr 2023 00:14:14 -0400</pubDate>
      <guid>https://blog.lambda.cx/posts/testing-rails-cache/</guid>
      <description>If you&amp;#39;re in the default testing environment your rails cache is ActiveSupport::Cache::NullStore which will always succeed but it doesn&amp;#39;t actually store or return anything.&#xA;There&amp;#39;s an almost completely undocumented method called with_local_cache on NullStore that lets you run a block with a MemoryStore instead of a NullStore for the duration of the block. This happens because it prepends the ActiveSupport::Cache::Strategy::LocalCache class. This lets you test one or two things that require caching without enabling it on all tests and slowing everything down.</description>
    </item>
    <item>
      <title>Mounting FreeNAS Shares on OpenBSD</title>
      <link>https://blog.lambda.cx/posts/mounting-freenas-shares-on-openbsd/</link>
      <pubDate>Thu, 27 Apr 2023 23:45:32 -0400</pubDate>
      <guid>https://blog.lambda.cx/posts/mounting-freenas-shares-on-openbsd/</guid>
      <description>This is something that took me a while longer to figure out than I&amp;#39;d like admit, and I was only able to figure it out because of a forum post.&#xA;For whatever reason, I&amp;#39;m only able to mount the share if used the TCP option. I&amp;#39;m not sure if this is a me issue, an OpenBSD issue, or a FreeBSD issue, but I&amp;#39;m putting it out there in case anyone else runs into the same problem.</description>
    </item>
    <item>
      <title>Creating a High Quality GIF with Transparency</title>
      <link>https://blog.lambda.cx/posts/creating-a-high-quality-gif-with-transparency/</link>
      <pubDate>Mon, 24 Oct 2022 02:02:00 -0400</pubDate>
      <guid>https://blog.lambda.cx/posts/creating-a-high-quality-gif-with-transparency/</guid>
      <description>I spent quite a bit of time trying to figure out the process to create the gif at the top of my How BSD Authentication Works blog post, so I thought I&amp;#39;d share it.&#xA;Here&amp;#39;s how to create a small, high quality gif with transparency using a video and an image as source material.&#xA;I&amp;#39;d wanted to combine the image of puffy (the blowfish) and the spinning gears to represent the OpenBSD internals.</description>
    </item>
    <item>
      <title>Exploring OpenType Font Features</title>
      <link>https://blog.lambda.cx/posts/opentype-font-exploration/</link>
      <pubDate>Sat, 22 Jan 2022 19:10:17 -0500</pubDate>
      <guid>https://blog.lambda.cx/posts/opentype-font-exploration/</guid>
      <description>I just bought a new font to use as my primary face in Emacs. It&amp;#39;s a cool one called MonoLisa, I think it looks great.&#xA;It has a nice looking script variant that lets you turn your italics into a cursive looking font. Unfortunately it&amp;#39;s a fancy OpenType feature that most things, including Emacs don&amp;#39;t support properly yet.&#xA;In their FAQ they mention that you can use a tool called OpenType Feature Freezer to modify the font so that the optional glyphs become the default.</description>
    </item>
    <item>
      <title>How BSD Authentication Works</title>
      <link>https://blog.lambda.cx/posts/how-bsd-authentication-works/</link>
      <pubDate>Mon, 18 Oct 2021 17:27:13 -0400</pubDate>
      <guid>https://blog.lambda.cx/posts/how-bsd-authentication-works/</guid>
      <description>History The way OpenBSD authenticates users is quite different from other Unix-like operating systems. Most other systems like AIX, Solaris, Linux, the other BSDs, and MacOS, use a framework called Pluggable Authentication Module (PAM). The two main implementations are Linux PAM and OpenPAM. PAM modules are created as dynamically loaded shared objects, which communicate using a combination of common and implementation specific interfaces (Linux-PAM and OpenPAM). It&amp;#39;s configured using the pam.</description>
    </item>
    <item>
      <title>Reverse engineering a thermal printer&#39;s WiFi setup commands</title>
      <link>https://blog.lambda.cx/posts/xprinter-wifi/</link>
      <pubDate>Tue, 12 Oct 2021 15:57:12 -0400</pubDate>
      <guid>https://blog.lambda.cx/posts/xprinter-wifi/</guid>
      <description>Introduction I recently purchased a thermal receipt printer off of AliExpress for a project. It features both WiFi and USB connectivity which I thought was really cool for the price.&#xA;To my dismay, I realized after purchasing that the drivers and configuration application only run on Windows.&#xA;This wasn&amp;#39;t a huge deal, as thermal printers generally use the somewhat kinda standardized command set called ESC/POS. Unfortunately while many of the formatting commands are shared between printers, the commands to setup the WiFi connection don&amp;#39;t seem to be documented anywhere, and I suspect are device-specific.</description>
    </item>
    <item>
      <title>An Improved Emacs Frame Title Format</title>
      <link>https://blog.lambda.cx/posts/eamacs-improved-frame-title/</link>
      <pubDate>Fri, 28 May 2021 16:26:12 -0400</pubDate>
      <guid>https://blog.lambda.cx/posts/eamacs-improved-frame-title/</guid>
      <description>I&amp;#39;ve often found that the default Emacs frame title is a little bizarre. emacs@host Seems a little useless at describing what&amp;#39;s going on in the actual window in my opinion, and I believe the space could be put to much better use. Perhaps it&amp;#39;s designed for environments where X11 forwarding is common practice, or where GNU Emacs shares a system with XEmacs.&#xA;Taking inspiration from both Emacs and Firefox, I came up with a frame title format that I think is much more useful.</description>
    </item>
    <item>
      <title>How to get all Emacs daemon buffers from a shell script</title>
      <link>https://blog.lambda.cx/posts/emacs-buffers-to-stdout/</link>
      <pubDate>Sat, 01 May 2021 22:38:32 -0400</pubDate>
      <guid>https://blog.lambda.cx/posts/emacs-buffers-to-stdout/</guid>
      <description>A while back I posted a response to someone&amp;#39;s question on reddit about how to get a list of all Emacs daemon buffers from a shell script. It was a pretty interesting problem so I thought I&amp;#39;d explain my answer here.&#xA;The question was &amp;#34;Is it there a way to export the list of opened buffers to STDOUT?&amp;#34;.&#xA;In the comments I left a rather byzantine looking snippet of code that I&amp;#39;d managed to produce.</description>
    </item>
    <item>
      <title>Versioning FreeCAD files with git</title>
      <link>https://blog.lambda.cx/posts/freecad-and-git/</link>
      <pubDate>Sun, 11 Apr 2021 12:53:48 -0400</pubDate>
      <guid>https://blog.lambda.cx/posts/freecad-and-git/</guid>
      <description>I&amp;#39;ve been working a lot with FreeCAD since I got my 3D printer. It&amp;#39;s been a mostly excellent experience, but I&amp;#39;ve run a couple issues.&#xA;Between the MacOS and Linux version of FreeCAD (both 0.19, maybe different builds?), and transferring files between machines using Nextcloud, a project that I&amp;#39;d been working on for a couple days became broken to the point where I could no longer modify the sketches, rendering it useless.</description>
    </item>
    <item>
      <title>Aligning columns in Emacs</title>
      <link>https://blog.lambda.cx/posts/emacs-align-columns/</link>
      <pubDate>Fri, 26 Mar 2021 11:27:34 -0400</pubDate>
      <guid>https://blog.lambda.cx/posts/emacs-align-columns/</guid>
      <description>I&amp;#39;ve been writing a lot of GraphQL resolvers in ruby at work recently, and frequently run into a situation where I have to align many columns of text by hand. I figured this isn&amp;#39;t a very unique problem, and that there was probably already some code within Emacs to handle it.&#xA;As it turns out I was correct in my assumption. There&amp;#39;s an excellent built-in package called align that takes care of just that.</description>
    </item>
    <item>
      <title>Creating an Always On E-Ink Org Agenda</title>
      <link>https://blog.lambda.cx/posts/org-agenda-eink/</link>
      <pubDate>Mon, 25 Jan 2021 22:07:25 -0500</pubDate>
      <guid>https://blog.lambda.cx/posts/org-agenda-eink/</guid>
      <description>I recently made a post about how I was able to configure the new tab page in my browser to display my org agenda. Since then I&amp;#39;ve been working on another project similar to that, trying to take the concept even further.&#xA;A while ago I purchased an Inkplate 6 during its crowd funding stage on Crowd Supply, with the exact intention of creating something like this.&#xA;At the core of the Inkplate 6 is the ESP32.</description>
    </item>
    <item>
      <title>Org Agenda As My New Tab Page</title>
      <link>https://blog.lambda.cx/posts/org-agenda-new-tab/</link>
      <pubDate>Thu, 14 Jan 2021 01:25:33 -0500</pubDate>
      <guid>https://blog.lambda.cx/posts/org-agenda-new-tab/</guid>
      <description>I absolutely love org mode. I use it extensively almost every day to keep track of tasks and due dates, both for my personal life and at work. A lot of this workflow centres around the org agenda, which compiles all the current and upcoming tasks and due dates from several files into a single view.&#xA;The only gripe I had with it was that I had to be within Emacs to use it.</description>
    </item>
    <item>
      <title>How I Keep Track of My Servers</title>
      <link>https://blog.lambda.cx/posts/org-ssh-export/</link>
      <pubDate>Wed, 25 Nov 2020 20:50:42 -0500</pubDate>
      <guid>https://blog.lambda.cx/posts/org-ssh-export/</guid>
      <description>I manage a lot of servers. Some are serving static content like this blog, with others running services like Nextcloud, ZNC, Shadowsocks, or Mumble. I also have one or two game servers to play with my family and friends. These are spread across two providers for cost and geographic reasons.&#xA;In addition, I have several machines running in my house, one running FreeNAS with some jails, another running Proxmox with several VMs and containers.</description>
    </item>
    <item>
      <title>My Emacs on Android Setup</title>
      <link>https://blog.lambda.cx/posts/emacs-on-android-setup/</link>
      <pubDate>Sat, 12 Sep 2020 16:37:38 -0400</pubDate>
      <guid>https://blog.lambda.cx/posts/emacs-on-android-setup/</guid>
      <description>Not too long ago I purchased a Samsung Galaxy Tab A. I bought it mostly for browsing the internet and reading PDFs, but I&amp;#39;ve been using it a lot more for working in Emacs recently.&#xA;With the help of Termux, I&amp;#39;ve gotten more or less a fully functional development and writing environment which has both a small physical size, and long battery life. With the use of a bluetooth keyboard, I have everything required to work, and comfortably at that.</description>
    </item>
    <item>
      <title>Installing Hak5&#39;s Cloud C2 on Alpine Linux</title>
      <link>https://blog.lambda.cx/posts/alpine-hak5-cloudc2/</link>
      <pubDate>Sun, 06 Sep 2020 19:08:56 -0400</pubDate>
      <guid>https://blog.lambda.cx/posts/alpine-hak5-cloudc2/</guid>
      <description>I recently purchased some products from Hak5, some of which integrate with their self-hosted service for monitoring your equipment called the Cloud C2. I decided to run it on one of my servers which runs one of my favourite Linux distributions, Alpine Linux.&#xA;You have the option to purchase the community edition for free from their shop, after which you&amp;#39;ll receive a product registration code via email. This email will also contain a link to download the Cloud C2 software, which are distributed as (mostly) statically linked go binaries for several platforms all bundled together in a zip folder.</description>
    </item>
    <item>
      <title>Creating a VPN Gateway with OpenBSD 6.7</title>
      <link>https://blog.lambda.cx/posts/openbsd-vpn-gateway/</link>
      <pubDate>Fri, 28 Aug 2020 20:30:55 -0400</pubDate>
      <guid>https://blog.lambda.cx/posts/openbsd-vpn-gateway/</guid>
      <description>The Problem Say you have an account with a VPN provider. Maybe there are a limit to how many connections you can have with one account. Maybe you want to put more machines than you have connections on the account. Or maybe you want to put a large number of machines of the connection, maybe some FreeBSD Jails, LXC containers, or VMs, and you don&amp;#39;t want to download the VPN profiles, sign in and configure them all individually.</description>
    </item>
    <item>
      <title>Fixing OpenBSD 6.7 httpd MIME Types</title>
      <link>https://blog.lambda.cx/posts/openbsd-httpd-mime-types/</link>
      <pubDate>Sat, 15 Aug 2020 01:49:22 -0400</pubDate>
      <guid>https://blog.lambda.cx/posts/openbsd-httpd-mime-types/</guid>
      <description>On OpenBSD&amp;#39;s httpd, there are only a select few MIME types that are recognized by default. According to httpd.conf(5), those types are: ext/css, text/html, text/plain, image/gif, image/png, image/jpeg, image/svg+xml, and application/javascript. Everything else is said to be of type application/octet-stream by default.&#xA;This is OK for most static hosting situations, but can be challenging for some common attachment types. For example, I recently made a blog post that had an attached PDF.</description>
    </item>
    <item>
      <title>Talk: An Introduction to OpenBSD</title>
      <link>https://blog.lambda.cx/posts/openbsd-introduction-talk/</link>
      <pubDate>Fri, 14 Aug 2020 15:12:27 -0400</pubDate>
      <guid>https://blog.lambda.cx/posts/openbsd-introduction-talk/</guid>
      <description>I recently gave a talk at work to help introduce OpenBSD to my colleagues. It&amp;#39;s a broad introduction to the fundamentals of security in OpenBSD, as well as some basic system administration tips and suggestions anyone coming from a Linux background might find useful.&#xA;It&amp;#39;s roughly split up into four sections; the history of OpenBSD, what sets it apart from other operating systems, a guided installation, and the system administration introduction.</description>
    </item>
    <item>
      <title>Compiling Rakudo Star on OpenBSD 6.7</title>
      <link>https://blog.lambda.cx/posts/openbsd-compiling-rakudo-star/</link>
      <pubDate>Sat, 25 Jul 2020 02:54:34 -0400</pubDate>
      <guid>https://blog.lambda.cx/posts/openbsd-compiling-rakudo-star/</guid>
      <description>EDIT: After writing this post, tyil, the maintainer of rakudo star, reached out to me and added proper OpenBSD compatibility. The portion of this post dedicated to working around the failing downloads can now be ignored, and rstar now includes a warning if the user doesn&amp;#39;t have a login class set.&#xA;EDIT: The development version of Rakudo Star targets Rakudo 2020.07 instead of 2020.02, which has uses even more memory than the staff login class is allowed.</description>
    </item>
    <item>
      <title>Setting up a DHCP server on OpenBSD 6.7</title>
      <link>https://blog.lambda.cx/posts/openbsd-dhcp-server/</link>
      <pubDate>Fri, 10 Jul 2020 16:10:09 -0400</pubDate>
      <guid>https://blog.lambda.cx/posts/openbsd-dhcp-server/</guid>
      <description>OpenBSD makes a great router. It&amp;#39;s simplicity and ease of configuration makes it perfect for network infrastructure applications. Everything you need to build a network of any size is built into the base system, plus its man pages and examples cover everything you&amp;#39;d need to know.&#xA;While I&amp;#39;ve been an OpenBSD user for years, I&amp;#39;m finally in the process of replacing the router provided by my ISP with a PC Engines APU2E4 running OpenBSD.</description>
    </item>
    <item>
      <title>Installing OpenBSD 6.7 on a PC Engines APU2</title>
      <link>https://blog.lambda.cx/posts/installing-openbsd-on-pcengines/</link>
      <pubDate>Tue, 07 Jul 2020 21:21:18 -0400</pubDate>
      <guid>https://blog.lambda.cx/posts/installing-openbsd-on-pcengines/</guid>
      <description>If you&amp;#39;re interested in the PC Engines APU2 line and what the differences are between models, I&amp;#39;ve covered it in a previous post here.&#xA;I recently purchased a new PC Engines APU2E4 to use as a home router. I purchased the kit, which includes the board, case, and power supply from CorpShadow. I also ordered the DB9F to USB adapter (Silicon Labs CP2104), so I don&amp;#39;t need to get a separate null modem connector.</description>
    </item>
    <item>
      <title>Installing Bitwig Studio on Fedora 32</title>
      <link>https://blog.lambda.cx/posts/bitwig-studio-on-fedora-32/</link>
      <pubDate>Tue, 30 Jun 2020 23:02:26 -0400</pubDate>
      <guid>https://blog.lambda.cx/posts/bitwig-studio-on-fedora-32/</guid>
      <description>Bitwig Studio is an amazing cross platform digital audio workstation (DAW). One of its best features, at least for me, is that it works on Linux, which is pretty rare in the professional audio world.&#xA;While they say on their website that they support &amp;#34;Linux&amp;#34;, what they mean is that they support Debian-based distributions like Ubuntu, as they only provide .deb packages. Fortunately for Fedora users, there&amp;#39;s a way to get around that using alien, an application that lets us convert .</description>
    </item>
    <item>
      <title>Expanding a Directory With Tab in Dired Mode</title>
      <link>https://blog.lambda.cx/posts/dired-expand-dir-on-tab/</link>
      <pubDate>Thu, 25 Jun 2020 12:02:59 -0400</pubDate>
      <guid>https://blog.lambda.cx/posts/dired-expand-dir-on-tab/</guid>
      <description>dired mode is one of my favourite features of Emacs. I use it so often, it&amp;#39;s pretty much my go-to file browser. I use it both on my local machine, and on remote machines via TRAMP. One feature of dired is the ability to enter sub-directories in the same buffer by inserting the contents under the current directory. While this is useful, I often want something quicker to check the contents of a directory without either opening it in a new buffer, or inserting it below.</description>
    </item>
    <item>
      <title>How To Set An Image Title In Hugo Using Org-Mode Markup</title>
      <link>https://blog.lambda.cx/posts/hugo-org-set-image-title/</link>
      <pubDate>Wed, 24 Jun 2020 19:50:03 -0400</pubDate>
      <guid>https://blog.lambda.cx/posts/hugo-org-set-image-title/</guid>
      <description>One of the differences between using markdown and org-mode markup for writing Hugo pages is how you set the alternative text and title of an image.&#xA;In markdown, you would write it as&#xA;![alt text](dummy-image.png &amp;#34;Image Title&amp;#34;) Where in org-mode, typically you would use a caption like this&#xA;#+CAPTION: Image Title [[file:dummy-image.png]] and that would be the end of it. However in Hugo, if we use that format, we end up with this</description>
    </item>
    <item>
      <title>Hugo Org-Mode Default Archetype</title>
      <link>https://blog.lambda.cx/posts/hugo-org-archetype/</link>
      <pubDate>Wed, 24 Jun 2020 16:45:56 -0400</pubDate>
      <guid>https://blog.lambda.cx/posts/hugo-org-archetype/</guid>
      <description>I love using Hugo to write. Their org-mode markup support is absolutely top notch. The only real problem with it is that while it&amp;#39;s well supported, the Hugo docs don&amp;#39;t cover it very much, as Markdown and TOML are the main markup and configuration languages.&#xA;One of the basic building blocks for Hugo blogs are Archetypes. Archetypes get used as the templates for new posts, and get automatically filled out with the title of the post and creation date.</description>
    </item>
    <item>
      <title>Using emacsclient on MacOS</title>
      <link>https://blog.lambda.cx/posts/using-emacsclient-on-macos/</link>
      <pubDate>Thu, 18 Jun 2020 17:10:15 -0400</pubDate>
      <guid>https://blog.lambda.cx/posts/using-emacsclient-on-macos/</guid>
      <description>Emacs is an amazing editor, but it can be a little slow to start sometimes. That&amp;#39;s why emacsclient lets you run Emacs as a daemon and connect to it as a client, negating the startup time and letting you jump directly into editing.&#xA;The two primary ways of getting Emacs onto your Mac are by either downloading it from Emacs For MacOS X or by installing it through homebrew using brew cask install emacs.</description>
    </item>
    <item>
      <title>How To Stop mg From Littering</title>
      <link>https://blog.lambda.cx/posts/how-to-stop-mg-from-littering/</link>
      <pubDate>Thu, 18 Jun 2020 16:04:33 -0400</pubDate>
      <guid>https://blog.lambda.cx/posts/how-to-stop-mg-from-littering/</guid>
      <description>If you&amp;#39;ve been an OpenBSD user for any period of time, you probably know what mg is. For those who don&amp;#39;t know, mg stands for MicroGnuEmacs. It&amp;#39;s a small clone of Emacs maintained by the OpenBSD team that&amp;#39;s included with the base system.&#xA;Being an Emacs user, I love that mg is part of the OpenBSD base system. It&amp;#39;s great to have an editor that has familiar keybinds on a system that I haven&amp;#39;t had the time to install any packages on.</description>
    </item>
    <item>
      <title>PC Engines APU Comparison</title>
      <link>https://blog.lambda.cx/posts/pcengines-comparison/</link>
      <pubDate>Wed, 17 Jun 2020 00:50:06 -0400</pubDate>
      <guid>https://blog.lambda.cx/posts/pcengines-comparison/</guid>
      <description>I&amp;#39;ve been looking at the PC Engines APU line for a while. They&amp;#39;re a line of medium size single board PCs with a DB9 serial connector, no VGA output, and multiple gigabit Ethernet ports. Because of this they&amp;#39;re often used as firewall machines.&#xA;I want to get one and use it as either the home router, or an experimental server to mess around with. Quite a few OpenBSD folks use them and recommend them as OpenBSD router and server hardware.</description>
    </item>
    <item>
      <title>Let&#39;s Encrypt on OpenBSD 6.7</title>
      <link>https://blog.lambda.cx/posts/letsencrypt-on-openbsd/</link>
      <pubDate>Tue, 16 Jun 2020 22:56:27 -0400</pubDate>
      <guid>https://blog.lambda.cx/posts/letsencrypt-on-openbsd/</guid>
      <description>So I have an OpenBSD server serving a static website using httpd(8). I&amp;#39;ve been thinking for a while I should add an SSL certificate, but never got around to it because it was just a small hobby website and it didn&amp;#39;t require any real attention.&#xA;Today while watching one of the OpenBSD tutorials at BSDCan, I thought it was finally time. Since configuring everything else in OpenBSD is so easy, this must be easy too, right?</description>
    </item>
    <item>
      <title>About</title>
      <link>https://blog.lambda.cx/about/</link>
      <pubDate>Tue, 16 Jun 2020 15:48:31 -0400</pubDate>
      <guid>https://blog.lambda.cx/about/</guid>
      <description>Hello! My name is Dante Catalfamo. I&amp;#39;m a developer at Shopify. I live in Ottawa, Ontario, Canada.&#xA;I&amp;#39;m a big fan of OpenBSD and Emacs, hacking on both regularly. In fact, this blog is written in Emacs and hosted on OpenBSD using httpd.&#xA;I enjoy learning new languages and paradigms and have have written projects in, or am currently using:&#xA;C Common Lisp Emacs Lisp Forth FreeCAD Go HTML/CSS/Javascript (Vanilla, Meteor, Vue, jQuery, React) PHP (Laravel) POSIX Shell/Bash Python (2/3) Raku (Perl 6) Ruby (Rails) Rust Scheme Solidity (Ethereum) Zig I run a lot of my own infrastructure, maintaining many networked machines both at home and in various data centers for hosting many services I use every day.</description>
    </item>
    <item>
      <title>Issues with OpenVPN on OpenBSD 6.7</title>
      <link>https://blog.lambda.cx/posts/openvpn-issues-openbsd/</link>
      <pubDate>Sun, 14 Jun 2020 14:08:06 -0400</pubDate>
      <guid>https://blog.lambda.cx/posts/openvpn-issues-openbsd/</guid>
      <description>EDIT: (August 22, 2020) Theo Buehler has kindly reached out to me and informed me that this issue has just been fixed in a syspatch, and that OpenVPN now works correctly.&#xA;Hi.&#xA;Regarding https://blog.lambda.cx/posts/openvpn-issues-openbsd/, the issue you describe in this post should be fixed in 6.7-stable.&#xA;It boils down to this:&#xA;ProtonVPN appears to require clients to use P-521 for the TLSv1.3 key exchange. Released versions of OpenVPN do not permit customizing the curve to use for the key exchange (they added a –tls-groups option in their dev branch).</description>
    </item>
  </channel>
</rss>
