commit 1e382d462968c110f4993fab2439ba131c789d43
parent 6764d173f70723d1e760050911e63d8388680bd1
Author: Jake Bauer <jbauer@paritybit.ca>
Date: Tue, 11 Apr 2023 22:36:47 -0400
*
Diffstat:
13 files changed, 373 insertions(+), 61 deletions(-)
diff --git a/content/blog/how-i-manage-my-dotfiles.md b/content/blog/how-i-manage-my-dotfiles.md
@@ -11,8 +11,8 @@ I've recently overhauled a lot of the software I use which means I have a whole
new set of configuration files for most of that software. I figured it would be
a good time to change the way I manage these configuration files too. I've
started fresh with a [new repository for my
-dotfiles](https://git.sr.ht/~jbauer/dotfiles) and retired [my old
-repository](https://git.sr.ht/~jbauer/dotfiles-legacy).
+dotfiles](https://git.paritybit.ca/dotfiles/log.html) and retired my old
+repository.
I used to manage my dotfiles by manually copying files to and from the git
repository folder or with symlinks but found this far too cumbersome to manage.
diff --git a/content/blog/making-my-own-vim-statusline.md b/content/blog/making-my-own-vim-statusline.md
@@ -86,10 +86,9 @@ video below:
* [Download the mp4 video (321K)](/img/vim-no-airline.mp4)
* [Download a GIF (5.0M)](/img/vim-no-airline.gif)
-I've put my statusline in its own git repository which you can find [on
-sourcehut](https://git.sr.ht/~jbauer/vim-fastline) or [on my self-hosted git
-server](https://git.paritybit.ca/vim-fastline/log.html). I've decided to call it
-vim-fastline. I don't plan to do anything even remotely comparable to
+I've put my statusline in its own git repository which you can find [on my git
+server](https://git.paritybit.ca/vim-fastline/log.html). I've decided to call
+it vim-fastline. I don't plan to do anything even remotely comparable to
vim-airline with it but I want to make it available in case others want to hack
on it.
diff --git a/content/blog/switching-to-cgit.md b/content/blog/switching-to-cgit.md
@@ -85,10 +85,9 @@ patches which I prefer and I don't have to feel bad about hosting really
bloated, JavaScript-heavy webpages.
I'm not quite sure if I'll be able to get a dark theme working, but I have made
-all of my customizations and settings available in its own repository for others
-to look at. Here is the [sourcehut
-repository](https://git.sr.ht/~jbauer/cgit-config) and here is [the repository
-on my git server](http://git.paritybit.ca/cgit-config/log.html).
+all of my customizations and settings available in its own repository for
+others to look at. Here is [the repository on my git
+server](http://git.paritybit.ca/cgit-config/log.html).
_This is my sixty-first post for the #100DaysToOffload challenge. You can learn
more about this challenge over at
diff --git a/content/blog/urxvt-to-st.md b/content/blog/urxvt-to-st.md
@@ -92,4 +92,4 @@ anything else that I don't need or don't want.
If you want to try out st, follow this link to the [st
website](https://st.suckless.org/). You can view my build of st in [my dotfiles
-repository](https://git.sr.ht/~jbauer/dotfiles).
+repository](https://git.paritybit.ca/dotfiles/log.html).
diff --git a/content/garden/index.md b/content/garden/index.md
@@ -142,7 +142,7 @@ I have categorized my opinions to make them easier to find:
* [Programming Philosophy](programming-philosophy)
* [Bad Assumptions Made By User/Profile Systems](user-profile-systems-bad-assumptions)
* Programming languages: [C](c), [Clojure](clojure), [Haskell](haskell), [Raku](raku), [LaTeX](latex)
-* Tools: [git](git), [Vim](vim), [plan9](plan9)
+* Tools: [git](git), [Vim](vim), [plan9](plan9), [Make](make)
### 🖥️ System Administration
@@ -203,6 +203,7 @@ All recipes are vegan and free of tree nuts unless otherwise noted.
* [Granola Bars](granola-bars)
* [Banana Bread](banana-bread)
* [Oatmeal Chocolate Chip Cookies](oatmeal-chocolate-chip-cookies)
+ * [Sesame Rice Crackers](sesame-rice-crackers)
* Soups and Stews:
* [Barley and Split Pea Stew](barley-split-pea-stew)
* [Bean Soup](bean-soup)
diff --git a/content/garden/make.md b/content/garden/make.md
@@ -0,0 +1,290 @@
+Title: Make
+Summary: Make
+
+# [%title]
+
+Make is a build system that was created to ease the pain of building larger
+software projects. It is useful for building different parts of a project in
+parallel so that it builds faster, and it allows you to change small parts of
+your project at a time without needing to recompile the whole project to test
+your changes.
+
+<p class="note">Depending on what you're doing, a POSIX shell script that calls
+build tools directly might be preferable to a makefile. It's certainly simpler
+and generally more portable.</p>
+
+The `make` command will look for a file called `makefile` to find rules. If
+that file is not found, then it will look for `Makefile`.
+
+It is also common to have most variable declarations in a `config.mk` file so
+that the makefile contains only rules for building the software.
+
+A lot of Makefile syntax is unfortunately not standard. This is probably
+because the standard is extremely limited. This has led to different operating
+systems having different syntax and conventions, depending on which version of
+`make` they use by default. The three major implementations that you'll likely
+need to concern yourself with is BSD make syntax, GNU make syntax, and Windows
+make syntax. The different BSDs do have their own extensions, but they're
+usually not major. If you're on a BSD, GNU make is usually called `gmake`.
+Likewise, if you're on Linux, BSD make is usually called `bmake`.
+
+These differences and limitations are what spawned large scripts that generate
+makefiles (e.g. the autoconf program or `configure` scripts) and other build
+systems such as `cmake`.
+
+Makefiles consist of a set of rules and variables that describe how to build
+a software project.
+
+In general, rules are formatted like so:
+
+```
+target: [prerequisites ...]
+ [commands ...]
+```
+
+The target describes what to build, the prerequisites describe what is required
+to build that target, and the commands describe how to build the target.
+
+Commands must be indented by a tab character.
+
+There is a special target, `all`, which will run the specified prerequisites no
+matter what make is told to do:
+
+```
+all: target1 target2
+```
+
+There is also the `.PHONY target` directive which tells make to treat the
+specified target as just a name that refers to a set of commands instead of an
+actual file on the filesystem to build or look for. This is most commonly used
+for the `clean` target to list commands to clear out the stuff that was
+compiled:
+
+```
+.PHONY clean
+clean:
+ rm -f *.o program
+```
+
+Some will also include an `install` target to specify commands that will take
+a compiled program and put it and any supporting files like documentation and
+examples where they need to be on the filesystem. It's hard to make this
+portable without some kind of OS-detection script though, so I tend to leave it
+out.
+
+A really simple makefile to compile a project with the source files `main.c`,
+`hello.c`, and `hello.h` would look something like:
+
+```
+hello: hello.o main.o
+ cc hello.o main.o -o hello
+
+hello.o: hello.c
+ cc -c hello.c
+
+main.o: main.c
+ cc -c main.c
+
+.PHONY clean
+clean:
+ rm -f *.o hello
+```
+
+Which will create `main.o`, `hello.o`, and finally the executable `hello`.
+
+This can be made much more general with the use of variables and make's builtin
+rules.
+
+In general, variables are set as you would expect:
+
+```
+var = value
+```
+
+Although there are a number of variable assignment operators which do different things:
+
+* `=`: Assign the value to the variable. Any previous value is overridden.
+* `:=`: Assign the value to the variable after expanding it (i.e. performing substitution rules, replacing variable names with their values, etc.)
+* `+=`: Append the value to the current value of the variable.
+* `?=`: Assign the value to the variable only if it is not already defined.
+* `!=`: Expand the value, pass it to the shell for execution, and set the variable to the result of that execution.
+
+Variables are used as part of rules or in variable assignments by surrounding
+them with braces or parentheses and putting a dollar sign in front, like so:
+
+```
+var2 := $(VAR)
+```
+
+There are a number of standard variables used in Makefiles:
+
+* `CC`: The compiler to use
+* `CFLAGS`: Flags passed to the C compiler
+* `CPPFLAGS`: Flags passed to the compiler pre-processor
+* `CXXFLAGS`: Flags passed to the C++ compiler
+* `LDFLAGS`: Flags passed to the linker
+* `LDLIBS`: External libraries to link with your program
+
+These variables are used by the automatic rules which you can examine with the
+command `make -p`. They contain default behaviour which means we could take the
+makefile example above and condense it down to just:
+
+```
+hello: hello.o main.o
+```
+
+In fact, if all you had was a `main.c`, you could even compile your executable
+by just calling:
+
+```
+$ make main
+```
+
+on the command line, which will make an executable called `main` from the
+`main.c` file.
+
+These variables are also expected and helpful for maintainers trying to port
+your software to different systems, since they can override values by
+specifying them on the command line, and using the expected variables makes
+this easier for them. For example:
+
+```
+$ make CC=clang
+```
+
+Will tell the makefile to build the project using `clang`.
+
+<p class="note">Check the documentation for the version of make you're using
+for more information on its particular extensions and syntax.</p>
+
+All that being said, here is a relatively simple makefile for compiling
+C programs that makes use of a lot of what was discussed above in order to be
+generally useful:
+
+```
+PROG = foo
+
+CFLAGS = -std=c89 -Wall -Wextra -Wpedantic -Wshadow -Wvla\
+ -Walloca -Wconversion -Wdeprecated -Wpointer-arith\
+ -Wstrict-prototypes -Wmissing-prototypes
+
+SRCS != find src -name '*.c'
+
+$(PROG): $(SRCS)
+ $(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) $(LDLIBS) $(SRCS) -o $@
+
+.PHONY: clean
+clean:
+ rm -f $(PROG)
+```
+
+This is the one I use by default for many of my projects.
+
+This makefile will compile a program with name `foo` using all the `*.c` files
+found under the `src` directory. This skips making separate object files for
+each translation unit—which means that everything will be re-compiled even if
+one file changes—but it greatly simplifies the makefile and is suitable for
+small-to-medium size projects.
+
+See [Clang Diagnostic
+Flags](http://clang.llvm.org/docs/DiagnosticsReference.html) for information
+about the various warnings defined in `CFLAGS`.
+
+## Advanced Makefile - BSD Make
+
+Here is an example of a more advanced makefile using BSD make syntax:
+
+```
+PROG = $(.CURDIR:T)
+
+CFLAGS = -std=c89 -Wall -Wextra -Wpedantic -Wshadow -Wvla\
+ -Walloca -Wconversion -Wdeprecated -Wpointer-arith\
+ -Wstrict-prototypes -Wmissing-prototypes
+
+.ifmake debug
+CFLAGS += -O0 -g
+CPPFLAGS += -DDEBUG
+.else
+CFLAGS += -Oz
+.endif
+
+SRCS != find ../src -name '*.c'
+OBJS := $(SRCS:%.c=%.o)
+
+$(PROG): $(OBJS)
+ $(CC) $(LDFLAGS) $(LDLIBS) $(OBJS:../src/%=%) -o $@
+
+.o:
+ $(CC) $(CFLAGS) $(CPPFLAGS) -c $< -o $@
+
+.PHONY: debug
+debug: $(PROG)
+
+.PHONY: clean
+clean:
+ rm -f ./*
+```
+
+This makefile compiles object files and the executable in a separate directory.
+This directory must exist before running `make` By default it is `./obj/`, but
+this can be changed with the environment variable `MAKEOBJDIR`. Additionally,
+the `.ifmake debug` section allows you to type `make debug` in order to compile
+the program with debugging options enabled. Also, instead of specifying `PROG`
+manually, we use the builtin variable `.CURDIR` combined with a substitution to
+automatically give our executable the same name as the directory the makefile
+is in.
+
+BSD systems also tend to have a collection of macros under `/usr/share/mk/`
+which can be relied upon for a much simpler makefile, though this is obviously
+not very portable.
+
+```
+PROG = foo
+
+.include <bsd.prog.mk>
+```
+
+## Advanced Makefile - GNU Make
+
+The equivalent to the previous section for GNU make would look something like:
+
+```
+PROG = foo
+
+CFLAGS = -std=c89 -Wall -Wextra -Wpedantic -Wshadow -Wvla\
+ -Walloca -Wconversion -Wdeprecated -Wpointer-arith\
+ -Wstrict-prototypes -Wmissing-prototypes -Oz
+
+SRCS != find src -name '*.c'
+OBJS := $(SRCS:%=obj/%.o)
+
+obj/$(PROG): $(OBJS)
+ $(CC) $(LDFLAGS) $(LDLIBS) $(OBJS) -o $@
+
+obj/%.c.o: %.c
+ $(CC) $(CFLAGS) $(CPPFLAGS) -c $< -o $@
+
+.PHONY: debug
+debug: CFLAGS += -O0 -g
+debug: CPPFLAGS += -DDEPENDS
+debug: $(PROG)
+
+.PHONY: clean
+clean:
+ rm -rf obj/*
+```
+
+Which requires the `./obj/src` directory to exist and will create object files
+under that directory with the executable itself under the `./obj/` directory.
+Also, object files will have a `.c.o` extension.
+
+There is most certainly a nicer/more idiomatic way to do this but I'll leave
+that as an exercise to the reader (I intend to avoid using GNU make).
+
+Makefiles are certainly much simpler if you don't care about doing
+out-of-source builds (i.e. object files and the executable are in the same
+directory as the source files).
+
+## Other Resources
+
+* [NetBSD Tutorial: BSD make](http://wiki.netbsd.org/tutorials/bsd_make/)
diff --git a/content/garden/openbsd-server.md b/content/garden/openbsd-server.md
@@ -190,7 +190,7 @@ read desc
#printf "Project URL: "
#read url
-url="https://git.sr.ht/~jbauer/$name"
+url="https://git.jaderune.net/jbauer/$name"
#printf "Project Owner: "
#read owner
diff --git a/content/garden/sesame-rice-crackers.md b/content/garden/sesame-rice-crackers.md
@@ -0,0 +1,23 @@
+Title: Sesame Rice Crackers
+Summary: Sesame Rice Crackers
+
+# [%title]
+
+Prepare one cup of rice according to the instructions, but with 50% extra water
+and a heaped teaspoon of salt. I used basmati rice with a 1:3 ratio of rice to
+water, but any long or short grain white rice should work as well. Preheat your
+oven to 350°F (180°C).
+
+When the rice is done, add to the same pot a tablespoon of sesame oil,
+a tablespoon of olive oil, three tablespoons of sesame seeds, and mash
+everything up using a potato masher. If the mixture is too dry and crumbly, add
+one tablespoon of water at a time until the dough becomes sticky.
+
+Using a teaspoon, scoop balls of dough out and place on a baking sheet lined
+with parchment paper. The balls should have about 8cm of space between them.
+Once the sheet is full, place parchment paper on top and use a flat object to
+press the balls down into flat discs. Remove the top layer of parchment paper.
+Bake in the oven until golden brown, which should take around 35 minutes.
+
+One cup of dried rice gave me about 4 batches of 12 crackers each on a 45x30cm
+baking sheet.
diff --git a/content/index.md b/content/index.md
@@ -32,9 +32,9 @@ favourites:
## About This Site
This is a static website generated from Markdown using
-[lowdown](http://kristaps.bsd.lv/lowdown/) with my POSIX shell-based static site
-generator [sbs](http://git.sr.ht/~jbauer/sbs). It's designed to be lightweight,
-accessible, and privacy-respecting. It's featured on
+[lowdown](http://kristaps.bsd.lv/lowdown/) with my POSIX shell-based static
+site generator [sbs](http://git.paritybit.ca/sbs/log.html). It's designed to be
+lightweight, accessible, and privacy-respecting. It's featured on
[10kbclub.com](http://10kbclub.com/) and is a part of the [XXIIVV
Webring](http://webring.xxiivv.com/#paritybit) and the [Fediring
webring](http://fediring.net).
diff --git a/content/now-2022.md b/content/now-2022.md
@@ -18,11 +18,12 @@ do and felt good about what I was doing.
I attempted both [Advent of
Code](https://www.paritybit.ca/projects/advent-of-code-2022) and a [December
-Adventure](https://git.sr.ht/~jbauer/clojurecember) this year which really let
-me work out my programming muscles again. Although I only did up to Day 12 with
-AoC and managed about 9 good days of the December Adventure, I still consider
-it a success; I practiced and got better at C and learned enough about Clojure
-that I wouldn't feel totally lost if I wanted to write something in it.
+Adventure](https://git.paritybit.ca/clojurecember/log.html) this year which
+really let me work out my programming muscles again. Although I only did up to
+Day 12 with AoC and managed about 9 good days of the December Adventure,
+I still consider it a success; I practiced and got better at C and learned
+enough about Clojure that I wouldn't feel totally lost if I wanted to write
+something in it.
AoC was fun at times, frustrating at others. I think the challenges are fun and
interesting, but it is ultimately a code competition and it's easy to feel like
@@ -117,8 +118,8 @@ of collaboration, this month I sent off a couple of minor patches to
forum, and I handed off maintainership of the
[Misskey-Extras](https://github.com/Johann150/Misskey-Extras) repository to
Johann, who is a much more active member in the Misskey world than I am these
-days. I also made a small tweak to [sbs](https://git.sr.ht/~jbauer/sbs) to
-prompt the user to confirm when they're going to overwrite a page or
+days. I also made a small tweak to [sbs](https://git.paritybit.ca/sbs/log.html)
+to prompt the user to confirm when they're going to overwrite a page or
re-initialize a site, since it is easy to do that by accident and it would be
irreversible if you're not working with some kind of version control system.
I think the final feature before the 1.0 release would be to support the
@@ -179,18 +180,18 @@ ravaged by downy and powdery mildew due to the incessant humidity this summer
and because of early frosty temperatures, but I still appreciate my limited
harvest and the environment the garden gave me while it was in full swing.
-As far as projects go: a minor improvement was made to sbs to overcome a
-limitation of using shell. I added proper special character escaping for the
+As far as projects go: a minor improvement was made to sbs to overcome
+a limitation of using shell. I added proper special character escaping for the
title and description fields which are used with sed to set some fields in the
resulting HTML files so now it's possible to use characters like '/' and '(' in
titles without sed falling on its sword. Prompted by a post on Merveilles.town,
I also created a new Vim colour scheme,
-[vim-dieter-rams](https://git.sr.ht/~jbauer/vim-dieter-rams), which is inspired
-by [this
+[vim-dieter-rams](https://git.paritybit.ca/vim-dieter-rams/log.html), which is
+inspired by [this
image](https://i.pinimg.com/originals/d3/00/fa/d300faca17032f3d4030da8d348957c5.png)
of one of Dieter Rams' industrial designs. I presented it to the person who was
-looking for such a colour scheme, and I used it a bit and quite liked it (though
-eventually I switched back to my monochrome light theme ;D).
+looking for such a colour scheme, and I used it a bit and quite liked it
+(though eventually I switched back to my monochrome light theme ;D).
Following on from the technical stuff, I'm now properly on IRC! I had my
username registered in a few places but didn't spend much time using the
@@ -231,12 +232,12 @@ August 9th) and it's time for another!
This month (or, well, these past three weeks), I have:
* Created my [digital garden](/garden/) and populated it with a bunch of stuff
-* Made significant changes to [sbs](https://git.sr.ht/~jbauer/sbs), which is now
- on version 0.6.0 and probably ready for a 1.0 release
-* Created a light version of [my Vim
- theme](https://git.sr.ht/~jbauer/vim-monochrome) and polished both versions
-* Started playing around with [Raku](https://raku.org/), mostly going through
- the [Raku Course](https://course.raku.org/)
+* Made significant changes to [sbs](https://git.paritybit.ca/sbs/log.html),
+which is now on version 0.6.0 and probably ready for a 1.0 release * Created
+a light version of [my Vim
+theme](https://git.paritybit.ca/vim-monochrome/log.html) and polished both
+versions * Started playing around with [Raku](https://raku.org/), mostly going
+through the [Raku Course](https://course.raku.org/)
The digital garden definitely took up most of my time. I had to figure out how I
wanted to lay it out and how to make it as easy and convenient as possible to
diff --git a/content/projects/advent-of-code-2022.md b/content/projects/advent-of-code-2022.md
@@ -10,9 +10,8 @@ This year I'm writing all of my solutions in C. I quite like the challenge of
using language and want to become more proficient with it. If time allows,
I might also attempt some problems using Clojure.
-All of my solutions are also stored in a git repo on
-[SourceHut](https://git.sr.ht/~jbauer/advent-of-code-2022/tree) and [my
-site](https://git.paritybit.ca/advent-of-code-2022/files.html).
+All of my solutions are also stored in a [git
+repository](https://git.paritybit.ca/advent-of-code/log.html).
Whenever I need a reference for a given function in C, I'm consulting the
[OpenBSD manpages](https://man.openbsd.org/) as they are generally higher
diff --git a/content/projects/index.md b/content/projects/index.md
@@ -3,17 +3,20 @@ Summary: Projects that I am currently working on or have finished.
# [%title]
-My projects are hosted on [my Git server](https://git.paritybit.ca) and
-[SourceHut](https://git.sr.ht/~jbauer/). I also use
-[GitHub](https://github.com/JakeMBauer) for collaboration, but not for hosting
-my own stuff.
+My projects are hosted on [my Git server](https://git.paritybit.ca) and [my
+Gitea server](https://git.jaderune.net/jbauer). I also have the following forge
+accounts for collaboration, but not for hosting my own stuff:
+
+* [GitHub](https://github.com/JakeMBauer)
+* [SourceHut](https://sr.ht/~jbauer)
+* [Codeberg](https://codeberg.org/jbauer)
## Larger Projects
Things I'm spending the most time on right now:
<details>
-<summary><a href="https://git.sr.ht/~jbauer/browser.py">browser.py</a> (2023-present) (Python 3)</summary>
+<summary><a href="https://git.paritybit.ca/browser.py/log.html">browser.py</a> (2023-present) (Python 3)</summary>
<p>Working through the exercises at <a href="//browser.engineering">browser.engineering</a>.</p>
</details>
@@ -22,7 +25,7 @@ Things I'm spending the most time on right now:
Projects that I maintain but which don't take up much of my time:
<details>
-<summary><a href="https://git.sr.ht/~jbauer/sbs">sbs</a> (2021-present) (POSIX shell)</summary>
+<summary><a href="https://git.paritybit.ca/sbs/log.html">sbs</a> (2021-present) (POSIX shell)</summary>
<p>My custom static site generator that uses
<a href="https://kristaps.bsd.lv/lowdown/">lowdown(1)</a> and standard shell
utilities to build a website. It supports Markdown files, Atom feed creation, and has a simple configuration.</p>
@@ -39,13 +42,13 @@ utilities to build a website. It supports Markdown files, Atom feed creation, an
from <a href="github.com/fxn/vim-monochrome">vim-monochrome by fxn</a> which I
changed to suit my needs. These are the ones I've made so far:</p>
<ul>
-<li><a href="https://git.sr.ht/~jbauer/vim-monochrome">vim-monochrome</a> - A monochrome colourscheme in both light and dark styles</li>
-<li><a href="https://git.sr.ht/~jbauer/vim-dieter-rams">vim-dieter-rams</a> - A colourscheme based off of a colour palette by Dieter Rams</li>
+<li><a href="https://git.paritybit.ca/vim-monochrome/log.html">vim-monochrome</a> - A monochrome colourscheme in both light and dark styles</li>
+<li><a href="https://git.paritybit.ca/vim-dieter-rams/log.html">vim-dieter-rams</a> - A colourscheme based off of a colour palette by Dieter Rams</li>
</ul>
</details>
<details>
-<summary><a href="https://git.sr.ht/~jbauer/paritybot">paritybot</a> (2020-present) (Python)</summary>
+<summary><a href="https://git.paritybit.ca/paritybot/log.html">paritybot</a> (2020-present) (Python)</summary>
<p>An IRC bot I wrote to play around with the IRC protocol.</p>
</details>
@@ -54,7 +57,7 @@ changed to suit my needs. These are the ones I've made so far:</p>
Things I'm no longer working on:
<details>
-<summary><a href="//git.sr.ht/~jbauer/clojurecember">Clojurecember</a> (2022) (Clojure)</summary>
+<summary><a href="//git.paritybit.ca/clojurecember/log.html">Clojurecember</a> (2022) (Clojure)</summary>
<p>My attempt to learn at least a little bit of Clojure each day in December, 2022. I ended up building a minimal text editor using the Seesaw GUI framework.</p>
</details>
@@ -69,17 +72,17 @@ Things I'm no longer working on:
</details>
<details>
-<summary><a href="https://git.sr.ht/~jbauer/vim-fastline">vim-fastline</a> (2020-2022) (VimScript)</summary>
+<summary><a href="https://git.paritybit.ca/vim-fastline/log.html">vim-fastline</a> (2020-2022) (VimScript)</summary>
<p>A custom vim statusline born out of a frustration with how big and bloated other statuslines felt.</p>
</details>
<details>
-<summary><a href="https://git.sr.ht/~jbauer/kontaktdb">kontaktdb</a> (2020) (Bash)</summary>
+<summary><a href="https://git.paritybit.ca/kontaktdb/log.html">kontaktdb</a> (2020) (Bash)</summary>
<p>A utility that lets you store, retrieve, and edit basic contact information in plain text. This was born out of a dissatisfaction with other contact management solutions that integrated with neomutt.</p>
</details>
<details>
-<summary><a href="https://git.sr.ht/~jbauer/usrmnt">usrmnt</a> (2019) (Bash)</summary>
+<summary><a href="https://git.paritybit.ca/usrmnt/log.html">usrmnt</a> (2019) (Bash)</summary>
<p>A small utility to mount, unmount, unlock, etc. your devices from the terminal. This was one of my first shell coding projects, so it's not very good.</p>
</details>
diff --git a/content/software.md b/content/software.md
@@ -11,8 +11,6 @@ href="/uses">uses page</a> for updated information.</p>
of my desktop with neofetch open."/></a>
</figure>
-View [my dotfiles](https://git.sr.ht/~jbauer/dotfiles-legacy).
-
## Operating System(s)
My operating system of choice is [OpenBSD](https://www.openbsd.org) because of
@@ -28,11 +26,11 @@ use a display manager; the environment is started with `startx`.
I use:
-* [dwm](https://git.sr.ht/~jbauer/dwm) as my tiling window manager,
-* [dmenu](https://git.sr.ht/~jbauer/dmenu) as my application launcher,
-* [dunst](https://dunst-project.org/) as my notification daemon,
-* [feh](https://feh.finalrewind.org/) to set my desktop background,
-* and [slock](https://git.sr.ht/~jbauer/slock) as my screen locker.
+* dwm as my tiling window manager,
+* dmenu as my application launcher,
+* dunst as my notification daemon,
+* feh to set my desktop background,
+* and slock as my screen locker.
### Colourscheme
@@ -46,9 +44,8 @@ use them pretty much everywhere.
### Terminal
-I use [st](https://git.sr.ht/~jbauer/st) (aka Simple Terminal). I like the model
-of patching a minimal piece of software with the features that I need and I
-enjoy its simplicity and speed.
+I use st (aka Simple Terminal). I like the model of patching a minimal piece of
+software with the features that I need and I enjoy its simplicity and speed.
### File Manager