1

re-tagging things

This commit is contained in:
Evan Pratten 2023-10-20 19:37:44 -04:00
parent 1be5d60e26
commit 45581fdc8c
55 changed files with 707 additions and 269 deletions

7
content/.obsidian/app.json vendored Normal file
View File

@ -0,0 +1,7 @@
{
"newFileLocation": "folder",
"newFileFolderPath": "blog",
"newLinkFormat": "absolute",
"useMarkdownLinks": true,
"attachmentFolderPath": "./images"
}

3
content/.obsidian/appearance.json vendored Normal file
View File

@ -0,0 +1,3 @@
{
"accentColor": ""
}

View File

@ -0,0 +1,30 @@
{
"file-explorer": true,
"global-search": true,
"switcher": true,
"graph": true,
"backlink": true,
"canvas": true,
"outgoing-link": true,
"tag-pane": true,
"properties": true,
"page-preview": true,
"daily-notes": true,
"templates": true,
"note-composer": true,
"command-palette": true,
"slash-command": true,
"editor-status": true,
"bookmarks": true,
"markdown-importer": false,
"zk-prefixer": false,
"random-note": false,
"outline": true,
"word-count": true,
"slides": false,
"audio-recorder": false,
"workspaces": false,
"file-recovery": true,
"publish": false,
"sync": false
}

22
content/.obsidian/core-plugins.json vendored Normal file
View File

@ -0,0 +1,22 @@
[
"file-explorer",
"global-search",
"switcher",
"graph",
"backlink",
"canvas",
"outgoing-link",
"tag-pane",
"properties",
"page-preview",
"daily-notes",
"templates",
"note-composer",
"command-palette",
"slash-command",
"editor-status",
"bookmarks",
"outline",
"word-count",
"file-recovery"
]

3
content/.obsidian/daily-notes.json vendored Normal file
View File

@ -0,0 +1,3 @@
{
"folder": "dailies"
}

37
content/.obsidian/graph.json vendored Normal file
View File

@ -0,0 +1,37 @@
{
"collapse-filter": false,
"search": "",
"showTags": true,
"showAttachments": true,
"hideUnresolved": false,
"showOrphans": true,
"collapse-color-groups": false,
"colorGroups": [
{
"query": "/draft: true/",
"color": {
"a": 1,
"rgb": 14701138
}
},
{
"query": "path:blog ",
"color": {
"a": 1,
"rgb": 5419488
}
}
],
"collapse-display": false,
"showArrow": false,
"textFadeMultiplier": 0,
"nodeSizeMultiplier": 1.42708333333333,
"lineSizeMultiplier": 1.171875,
"collapse-forces": false,
"centerStrength": 0.328125,
"repelStrength": 14.1666666666667,
"linkStrength": 1,
"linkDistance": 250,
"scale": 0.0681389455779584,
"close": false
}

1
content/.obsidian/hotkeys.json vendored Normal file
View File

@ -0,0 +1 @@
{}

8
content/.obsidian/types.json vendored Normal file
View File

@ -0,0 +1,8 @@
{
"types": {
"aliases": "aliases",
"cssclasses": "multitext",
"tags": "tags",
"extra": "text"
}
}

202
content/.obsidian/workspace.json vendored Normal file
View File

@ -0,0 +1,202 @@
{
"main": {
"id": "4a13bd73c32bf62e",
"type": "split",
"children": [
{
"id": "25944f6d53cf89cd",
"type": "tabs",
"children": [
{
"id": "c474e8cb1cc7c081",
"type": "leaf",
"pinned": true,
"state": {
"type": "graph",
"state": {},
"pinned": true
}
}
]
}
],
"direction": "vertical"
},
"left": {
"id": "87f9bd498148ccd6",
"type": "split",
"children": [
{
"id": "a077c4fabaa61c8e",
"type": "tabs",
"children": [
{
"id": "70056c1e180364d0",
"type": "leaf",
"state": {
"type": "file-explorer",
"state": {
"sortOrder": "alphabetical"
}
}
},
{
"id": "b880cd0de0ca2e44",
"type": "leaf",
"state": {
"type": "search",
"state": {
"query": "",
"matchingCase": false,
"explainSearch": false,
"collapseAll": false,
"extraContext": false,
"sortOrder": "alphabetical"
}
}
},
{
"id": "969926847ef967a5",
"type": "leaf",
"state": {
"type": "bookmarks",
"state": {}
}
}
]
}
],
"direction": "horizontal",
"width": 300
},
"right": {
"id": "c55fe0c2b46e0688",
"type": "split",
"children": [
{
"id": "286b27f5f9e3b7b8",
"type": "tabs",
"children": [
{
"id": "1f55bef5370bc227",
"type": "leaf",
"state": {
"type": "backlink",
"state": {
"collapseAll": false,
"extraContext": false,
"sortOrder": "alphabetical",
"showSearch": false,
"searchQuery": "",
"backlinkCollapsed": false,
"unlinkedCollapsed": true
}
}
},
{
"id": "87cb3e652da1f725",
"type": "leaf",
"state": {
"type": "outgoing-link",
"state": {
"linksCollapsed": false,
"unlinkedCollapsed": true
}
}
},
{
"id": "abe62b0e033de1c8",
"type": "leaf",
"state": {
"type": "tag",
"state": {
"sortOrder": "frequency",
"useHierarchy": true
}
}
},
{
"id": "1e3a6a4ee78010f3",
"type": "leaf",
"state": {
"type": "outline",
"state": {}
}
},
{
"id": "7c5365d6b7a3ba04",
"type": "leaf",
"state": {
"type": "all-properties",
"state": {
"sortOrder": "frequency"
}
}
}
]
}
],
"direction": "horizontal",
"width": 300,
"collapsed": true
},
"left-ribbon": {
"hiddenItems": {
"switcher:Open quick switcher": false,
"graph:Open graph view": false,
"canvas:Create new canvas": true,
"daily-notes:Open today's daily note": true,
"templates:Insert template": true,
"command-palette:Open command palette": false
}
},
"active": "c474e8cb1cc7c081",
"lastOpenFiles": [
"blog/2022-06-13-fedora-36-vp.md",
"blog/2020-12-31-Year-wrapup.md",
"blog/2021-09-28-frc-tech-reference.md",
"blog/2021-12-03-quaternions.md",
"blog/2021-07-06-Windows-SSH.md",
"blog/2021-11-14-amprnet-bgp.md",
"blog/2022-06-26-rickrolling-the-internet.md",
"blog/2022-05-21-nanovna.md",
"blog/2019-12-11-Cron.md",
"blog/2019-08-10-Why-I-Carry-NFC.md",
"blog/2022-01-06-unfinished-projects.md",
"blog/2022-04-06-udm-fan.md",
"blog/2022-06-23-steam-controller-switch.md",
"blog/2022-01-19-monocular-blender.md",
"blog/2023-03-21-hackernews-block-ai.md",
"blog/2019-06-27-Python.md",
"blog/2023-02-15-wireguard-options.md",
"blog/2020-01-20-BrainFuckInBash.md",
"blog/2022-05-18-commit-sync.md",
"blog/2023-05-01-mouse-button-swap.md",
"blog/2019-08-27-GitHub-cleanup.md",
"blog/2020-11-6-Vortex-Core.md",
"blog/2021-03-14-QMK-Vortex-Core.md",
"blog/2023-03-23-aprs-usage.md",
"blog/2022-09-09-new-domain.md",
"blog/2020-04-20-LudumDare46.md",
"images/posts/mouse-button-swap/PXL_20230501_234325200.jpg",
"images/hobbies/software/games/slate_map.jpg",
"images/hobbies/software/games/flippycat.png",
"images/hobbies/software/games/deep_breath.png",
"images/hobbies/robotics/robots/qbert.png",
"images/hobbies/robotics/robots/minibot.jpg",
"images/hobbies/robotics/robots/hatchfield.jpg",
"images/hobbies/robotics/robots/darthraider.png",
"images/hobbies/arts/photos/raider_names.jpg",
"images/hobbies/arts/photos/mother_stairs.jpg",
"images/posts/unfinished-projects/privates.json",
"images/posts/unfinished-projects/private_to_md.py",
"images/posts/rainbow-keyboard/kayboard.xcf",
"images/posts/personal-pbx/phone_internet.dot",
"images/posts/personal-pbx/my_trunks.dot",
"images/posts/personal-pbx/magic_phones.dot",
"images/posts/monocular-blender/demo_render.mp4",
"images/posts/aprs-usage/igate_graphic.dot",
"images/posts/amprnet-bgp-announce/internet_1.drawio",
"images/hobbies/software/games"
]
}

View File

@ -1,8 +1,10 @@
---
title: "Robot reveal: HATCHField"
description: "What I have been working on for the past few months"
title: "Robot reveal: HATCHField"
description: What I have been working on for the past few months
date: 2019-02-20
tags: video
tags:
- video
- frc
draft: false
extra:
excerpt: HATCHField is a competitive robot built by Raider Robotics.

View File

@ -1,10 +1,13 @@
---
layout: page
title: "Hunting snakes with a shotgun"
description: "Python is a little too forgiving"
date: 2019-06-27
tags: random
alises: [https://retrylife.ca/blog/2019/06/27/python]
title: Hunting snakes with a shotgun
description: Python is a little too forgiving
date: 2019-06-27
tags:
- random
- python
alises:
- https://retrylife.ca/blog/2019/06/27/python
---
A rather large number of people know me as "the guy who does weird things with python". I would object to this title, but it is quite accurate. So, here are some of the things I like playing with in python. None of these are actually breaking the language, just little known facts and syntax. At some point I will share about actually breaking the language. For now, enjoy the weird things I have found over the past 6 years.

View File

@ -1,10 +1,13 @@
---
layout: page
title: "I did some cleaning"
description: "Spring cleaning is fun when it isn't spring, and a computer does all the work"
date: 2019-08-27
tags: random
aliases: [/blog/2019/08/27/github-cleanup]
title: I did some cleaning
description: Spring cleaning is fun when it isn't spring, and a computer does all the work
date: 2019-08-27
tags:
- random
- github
aliases:
- /blog/2019/08/27/github-cleanup
---
As I am continuing to check items off my TODO list before school starts, I have come to an item I have been putting off for a while. **Clean up GitHub Account**. Luckily, I discovered a little trick to make the process of deleting unused repos a little easier!

View File

@ -1,15 +1,20 @@
---
layout: page
title: "Building images from binary data"
description: "Simple, yet fun"
date: 2019-09-11
tags: python images
redirect_from:
- /post/ef7b3166/
- /ef7b3166/
aliases: [/blog/2019/09/11/buildingimgfrombin]
title: Building images from binary data
description: Simple, yet fun
date: 2019-09-11
tags:
- python
- images
- project
redirect_from:
- /post/ef7b3166/
- /ef7b3166/
aliases:
- /blog/2019/09/11/buildingimgfrombin
extra:
uses: [twitter]
uses:
- twitter
---
During a computer science class today, we were talking about embedding code and metadata in *jpg* and *bmp* files. @exvacuum was showing off a program he wrote that watched a directory for new image files, and would display them on a canvas. He then showed us a special image. In this image, he had injected some metadata into the last few pixels, which were not rendered, but told his program where to position the image on the canvas, and it's size.

View File

@ -1,13 +1,16 @@
---
layout: page
title: "Compiling BrainFuck with a shell script"
description: "That was easy"
date: 2020-01-20
tags: random
redirect_from:
- /post/es3v140d/
- /es3v140d/
aliases: [/blog/2020/01/20/brainfuckinbash]
title: Compiling BrainFuck with a shell script
description: That was easy
date: 2020-01-20
tags:
- random
- bash
redirect_from:
- /post/es3v140d/
- /es3v140d/
aliases:
- /blog/2020/01/20/brainfuckinbash
---
[BrainFuck](https://en.wikipedia.org/wiki/Brainfuck) is an [esoteric programming language](https://en.wikipedia.org/wiki/Esoteric_programming_language) that is surprisingly easy to implement. It is almost on the same level as "Hello, world!", but for compilers and interpreters. In this post, ill share my new little BrainFuck compiler I built with a bash script.

View File

@ -1,8 +1,10 @@
---
title: "Robot reveal: Darth Raider"
description: "What I have been working on for the past few months"
title: "Robot reveal: Darth Raider"
description: What I have been working on for the past few months
date: 2020-02-21
tags: video
tags:
- video
- frc
draft: false
extra:
excerpt: Darth Raider is a competitive robot built by Raider Robotics.

View File

@ -1,16 +1,22 @@
---
layout: page
title: "Ludum Dare 46: Jamming with friends"
description: "Recapping the development of *Micromanaged Mike*"
date: 2020-04-20
tags: gamedev gamejam team ldjam javascript
redirect_from:
- /post/ebsdjtd9/
- /ebsdjtd9/
aliases: [/blog/2020/04/20/ludumdare46]
title: "Ludum Dare 46: Jamming with friends"
description: Recapping the development of *Micromanaged Mike*
date: 2020-04-20
tags:
- gamejam
- ldjam
- javascript
- project
redirect_from:
- /post/ebsdjtd9/
- /ebsdjtd9/
aliases:
- /blog/2020/04/20/ludumdare46
extra:
uses: [twitter]
excerpt: A look back at the development of Micromanaged Mike
uses:
- twitter
excerpt: A look back at the development of Micromanaged Mike
---
Over the past weekend I teamed up with @rsninja722, @wm-c, @exvacuum, @marshmarlow, and our friends Sally and Matt to participate in the [LudumDare46](https://ldjam.com/events/ludum-dare/46) game jam. This post will outline the game development process.

View File

@ -1,15 +1,18 @@
---
layout: page
title: "Flashing code to a 32u4 chip"
description: "Notes for my future self"
date: 2020-06-05
tags: avr 32u4 lowlevel
redirect_from:
- /post/65f9kjl4/
- /65f9kjl4/
aliases: [/blog/2020/06/05/32u4-upload]
title: Flashing code to a 32u4 chip
description: Notes for my future self
date: 2020-06-05
tags:
- avr
- walkthrough
redirect_from:
- /post/65f9kjl4/
- /65f9kjl4/
aliases:
- /blog/2020/06/05/32u4-upload
extra:
excerpt: A reference post that explains how to flash new software to an atmega32u4 chip
excerpt: A reference post that explains how to flash new software to an atmega32u4 chip
---
The [ATmega32u4](http://ww1.microchip.com/downloads/en/devicedoc/atmel-7766-8-bit-avr-atmega16u4-32u4_datasheet.pdf) (aka. 32u4) chip is one of my favorite microcontrollers to work with. It is a low power, 8-bit, [AVR](https://en.wikipedia.org/wiki/AVR_microcontrollers)-based system developed by [Atmel](https://en.wikipedia.org/wiki/Atmel). They are commonly used in [Arduino Leonardo](https://www.arduino.cc/en/Main/Arduino_BoardLeonardo) development boards and programmed via the [Arduino IDE](https://www.arduino.cc/en/Main/Software), but I prefer having as much control over the device as I can. So I choose to program these chips directly in [AVRASM](http://ww1.microchip.com/downloads/en/devicedoc/40001917a.pdf) and [AVR-C](https://www.nongnu.org/avr-libc/user-manual/).

View File

@ -1,17 +1,20 @@
---
layout: page
title: "Compiling AVR-C code with a modern build system"
description: "Bringing Bazel to 8-bit microcontrollers"
date: 2020-09-03
tags: avr embedded bazel
title: Compiling AVR-C code with a modern build system
description: Bringing Bazel to 8-bit microcontrollers
date: 2020-09-03
tags:
- avr
- embedded
- bazel
- walkthrough
extra:
excerpt: >-
In this post, I cover my process of combining low level
programming with a very high level buildsystem.
redirect_from:
- /post/68dk02l4/
- /68dk02l4/
aliases: [/blog/2020/09/03/bazel-and-avr]
excerpt: In this post, I cover my process of combining low level programming with a very high level buildsystem.
redirect_from:
- /post/68dk02l4/
- /68dk02l4/
aliases:
- /blog/2020/09/03/bazel-and-avr
---
*The GitHub repository for everything in this post can be found [here](https://github.com/Ewpratten/avr-for-bazel-demo)*

View File

@ -1,15 +1,16 @@
---
layout: page
title: "Integrating GitHub Codespaces with FRC"
description: "Robotics software development in your browser"
date: 2020-09-10
tags: github codespaces
title: Integrating GitHub Codespaces with FRC
description: Robotics software development in your browser
date: 2020-09-10
tags:
- github
- frc
- project
extra:
excerpt: >-
I was recently accepted into the GitHub Codespaces beta test program
and decided to try it out on the largest open source project I am
currently involved with.
aliases: [/blog/2020/09/10/codespaces-for-frc]
excerpt: "I was recently accepted into the GitHub Codespaces beta test program and decided to try it out on the largest open source project I am currently involved with. "
aliases:
- /blog/2020/09/10/codespaces-for-frc
---
I was recently accepted into the [GitHub Codespaces](https://github.com/features/codespaces) beta test program. After reading through the documentation, I wanted to find a good use for this new tool, and decided to try it out on the largest open source project I am currently involved with. At *Raider Robotics* (@frc5024), we maintain a fairly large robotics software library called [Lib5K](https://github.com/frc5024/lib5k). The goal of this library is to provide an easy-to-use framework for new programmers to use when writing control systems code. As this library has become more complex, we have recently forked it into its own GitHub repository, and completely reworked our dependency system to match that of any other large OSS project. I figured that setting this repository up to use Codespaces might make it easier for other developers at Raider Robotics to make small changes to the library without needing to pull in the nearly 5GB of dependencies needed just to compile the codebase.

View File

@ -1,19 +1,21 @@
---
layout: page
title: "Mounting Google Drive accounts as network drives"
description: "Easy-to-use Google Drive integration for Linux using rclone"
date: 2020-10-15
title: Mounting Google Drive accounts as network drives
description: Easy-to-use Google Drive integration for Linux using rclone
date: 2020-10-15
written: 2020-09-22
tags: linux workflow google
tags:
- linux
- workflow
- google
- walkthrough
extra:
excerpt: >-
I can never get the Google Drive webapp to load quickly when I need it
to. My solution: use some command-line magic to mount my drives directly
to my laptop's filesystem.
redirect_from:
- /post/XcaM0k24/
- /XcaM0k24/
aliases: [/blog/2020/10/15/mounting-google-drives]
excerpt: "I can never get the Google Drive webapp to load quickly when I need it to. My solution: use some command-line magic to mount my drives directly to my laptop's filesystem."
redirect_from:
- /post/XcaM0k24/
- /XcaM0k24/
aliases:
- /blog/2020/10/15/mounting-google-drives
---
When sharing files, I use three main services. I use [Firefox Send](https://en.wikipedia.org/wiki/Firefox_Send) and [KeybaseFS](https://book.keybase.io/docs/files) to share one-off and large files with friends, and I use [Google Drive](https://drive.google.com) to store some personal files, and for everything school-related (I don't get a choice about this). For the first two services, sharing a file is as simple as calling [`ffsend`](https://github.com/timvisee/ffsend) or moving a local file into my kbfs mountpoint, and I am done. Google Drive, on the other hand, the process isn't as easy. While some Linux distributions have Google Drive integration out of the box (I miss daily-driving [ChromiumOS](https://www.chromium.org/chromium-os)), Linux users generally have to go to `drive.google.com`, and deal with the Google Drive webapp. Not sure if this is an "only me" problem, but whenever I need to quickly make a change to a document through the webapp, It decides to stop working.

View File

@ -1,17 +1,20 @@
---
layout: page
title: "My first mechanical keyboard: The Vortex Core"
description: "Just the right amount of obscure"
date: 2020-11-06
title: "My first mechanical keyboard: The Vortex Core"
description: Just the right amount of obscure
date: 2020-11-06
written: 2020-09-28
tags: keyboards workflow
tags:
- keyboards
- workflow
- product
extra:
excerpt: >-
I recently purchased my first mechanical keyboard, and decided to go "all in" with a 40% layout.
redirect_from:
- /post/XlPl0k24/
- /XlPl0k24/
aliases: [/blog/2020/11/06/vortex-core]
excerpt: I recently purchased my first mechanical keyboard, and decided to go "all in" with a 40% layout.
redirect_from:
- /post/XlPl0k24/
- /XlPl0k24/
aliases:
- /blog/2020/11/06/vortex-core
---
About a month ago, I decided to buy myself a mechanical keyboard. I have always been a huge fan of membrane / laptop keyboards. My current laptop (the Lenovo T480) has a very nice feel to its keyboard, and my previous laptop (the Acer R11) had the best keyboard I have ever used. The switch to mechanical wasn't my first choice, although I was open to trying something new, so didn't see it as a negative. Ever since adding another monitor to my setup, I haven't had enough room on my desk to fit a keyboard. This generally is not a problem since I mainly use my laptop, but I occasionally need to use my desktop for rendering work, which requires a separate keyboard.

View File

@ -1,17 +1,19 @@
---
layout: page
title: "How I have tweaked my Minecraft client to be 'just right'"
description: "Pushing the boundaries of a vanilla game, while being able to play on un-modified servers"
date: 2020-12-19
title: How I have tweaked my Minecraft client to be 'just right'
description: Pushing the boundaries of a vanilla game, while being able to play on un-modified servers
date: 2020-12-19
written: 2020-12-04
tags: project python short
tags:
- project
- minecraft
extra:
excerpt: >-
Over the past 10 years, I have been building the perfect Minecraft experience for myself. This post shares the collection of mods I run, and why I use them.
redirect_from:
- /post/gas49g43/
- /gas49g43/
aliases: [/blog/2020/12/19/vanilla-plus-mods]
excerpt: Over the past 10 years, I have been building the perfect Minecraft experience for myself. This post shares the collection of mods I run, and why I use them.
redirect_from:
- /post/gas49g43/
- /gas49g43/
aliases:
- /blog/2020/12/19/vanilla-plus-mods
---

View File

@ -1,17 +1,19 @@
---
layout: page
title: "2020 Wrap-Up"
description: "I wrote a lot of code this year. This post looks back on it all"
date: 2020-12-31
title: 2020 Wrap-Up
description: I wrote a lot of code this year. This post looks back on it all
date: 2020-12-31
written: 2020-12-09
tags: writeup review project
tags:
- project
- frc
extra:
excerpt: >-
2020 has been my most productive year so far in terms of software development. This post looks back at the year
redirect_from:
- /post/g494l5j3/
- /g494l5j3/
aliases: [/blog/2020/12/31/year-wrapup]
excerpt: 2020 has been my most productive year so far in terms of software development. This post looks back at the year
redirect_from:
- /post/g494l5j3/
- /g494l5j3/
aliases:
- /blog/2020/12/31/year-wrapup
---
*So, whats up with 2020?* For readers who do not know me personally, here is a quick overview:

View File

@ -1,17 +1,19 @@
---
layout: page
title: "Tunneling a printer from a home network to a VPN"
description: "Using socat to port-forward between network interfaces"
date: 2021-01-16
title: Tunneling a printer from a home network to a VPN
description: Using socat to port-forward between network interfaces
date: 2021-01-16
written: 2020-12-19
tags: project tutorial snippet
tags:
- project
- tutorial
extra:
excerpt: >-
I use a self-hosted VPN to access all my devices at all times, and to deal with my school's aggressive firewall. This post explains the process I use for exposing my home printer to the VPN.
redirect_from:
- /post/g494ld99/
- /g494ld99/
aliases: [/blog/2021/01/16/printer-tunneling]
excerpt: I use a self-hosted VPN to access all my devices at all times, and to deal with my school's aggressive firewall. This post explains the process I use for exposing my home printer to the VPN.
redirect_from:
- /post/g494ld99/
- /g494ld99/
aliases:
- /blog/2021/01/16/printer-tunneling
---
For the past few years, I have been using a self-hosted VPN to bring all my personal devices into the same "network" even though many of them are spread across various locations and physical networks. This system never gives me problems, but there was one thing I wished I could do: access non-VPN devices on other networks using one of my VPN devices as a gateway.

View File

@ -1,17 +1,19 @@
---
layout: page
title: "Using KBFS as a makeshift maven server"
description: "A free and secure way to host personal Java libraries and applications"
date: 2021-02-25
title: Using KBFS as a makeshift maven server
description: A free and secure way to host personal Java libraries and applications
date: 2021-02-25
written: 2021-02-22
tags: writeup maven project
tags:
- maven
- project
extra:
excerpt: >-
In my never-ending hunt for a suitable solution for hosting Java libraries, I take a stop to try out Keybase Filesystem (KBFS)
redirect_from:
- /post/g4lk45j3/
- /g4lk45j3/
aliases: [/blog/2021/02/25/kbfs-maven]
excerpt: In my never-ending hunt for a suitable solution for hosting Java libraries, I take a stop to try out Keybase Filesystem (KBFS)
redirect_from:
- /post/g4lk45j3/
- /g4lk45j3/
aliases:
- /blog/2021/02/25/kbfs-maven
---
As I continue to write more and more Java libraries for personal and public use, I keep finding myself limited by my library hosting solutions. Maven servers are currently my go-to way of storing and organizing all things Java. I have gone through a solid handful of servers over the past few years, here are my comments on each:

View File

@ -1,17 +1,21 @@
---
layout: page
title: "How I flashed QMK to my Vortex Core"
description: "Open-source firmware on a closed-source keyboard"
title: How I flashed QMK to my Vortex Core
description: Open-source firmware on a closed-source keyboard
date: 2021-03-14
written: 2021-03-14
tags: project keyboards qmk firmware
tags:
- project
- keyboards
- firmware
- walkthrough
extra:
excerpt: >-
After having some issues with the factory firmware on my 40% keyboard, I decided to replace it with the widely used QMK firmware instead.
redirect_from:
- /post/gkedkd93/
- /gkedkd93/
aliases: [/blog/2021/03/14/qmk-vortex-core]
excerpt: After having some issues with the factory firmware on my 40% keyboard, I decided to replace it with the widely used QMK firmware instead.
redirect_from:
- /post/gkedkd93/
- /gkedkd93/
aliases:
- /blog/2021/03/14/qmk-vortex-core
---
Last fall, I [purchased my first mechanical keyboard](/blog/2020/11/06/vortex-core), the [Vortex Core](https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=3550), and have been loving it ever since. Well, almost loving it. There are a few "quirks" of the keyboard that I wasn't super fond of, like: occasionally not sending `KEY_UP` commands back to the computer, or the badly documented and maintained system for building custom layouts.

View File

@ -1,17 +1,22 @@
---
layout: page
title: "Building a cheap APRS digipeater"
description: "How I set up my feature-packed APRS digipeater for under $100"
date: 2021-04-20
title: Building a cheap APRS digipeater
description: How I set up my feature-packed APRS digipeater for under $100
date: 2021-04-20
written: 2021-04-20
tags: project raspberrypi hamradio aprs
tags:
- project
- raspberrypi
- hamradio
- aprs
- walkthrough
extra:
excerpt: >-
Using an extra radio and some spare parts, I set up an APRS/APRS-IS/APRStt digipeater. This post covers some of the details.
redirect_from:
- /post/eb0klDd9/
- /eb0klDd9/
aliases: [/blog/2021/04/20/direwolf-aprs]
excerpt: Using an extra radio and some spare parts, I set up an APRS/APRS-IS/APRStt digipeater. This post covers some of the details.
redirect_from:
- /post/eb0klDd9/
- /eb0klDd9/
aliases:
- /blog/2021/04/20/direwolf-aprs
---
***WARNING:** To replicate this project, you **must** be the holder of an amateur radio license in your country*

View File

@ -1,13 +1,16 @@
---
layout: page
title: "Configuring a native SSH server on Windows 10"
description: "A tutorial for future me"
date: 2021-07-07
written: 2021-07-07
tags: reference
title: Configuring a native SSH server on Windows 10
description: A tutorial for future me
date: 2021-07-07
written: 2021-07-07
tags:
- reference
- tutorial
extra:
excerpt: I commonly need to configure SSH servers on remote Windows 10 boxes. This post covers the whole process.
aliases: [/blog/2021/07/07/windows-ssh]
excerpt: I commonly need to configure SSH servers on remote Windows 10 boxes. This post covers the whole process.
aliases:
- /blog/2021/07/07/windows-ssh
---
Between work, school, and just helping various people out with things, I end up needing to quickly spin up SSH servers on windows machines *a lot*. Despite what you might think, this functionality is actually built right in to Windows 10, and fairly easy to enable.

View File

@ -1,12 +1,15 @@
---
layout: page
title: "An overview of the tech on a complex FRC robot"
description: "Reference material for my friends"
date: 2021-09-28
title: An overview of the tech on a complex FRC robot
description: Reference material for my friends
date: 2021-09-28
written: 2021-09-28
tags: reference
tags:
- reference
- frc
- hardware
extra:
excerpt: This document is aimed at a small handful of people, but published publicly as reference material for anyone that needs it. All contents are highly specific to the FRC robotics electrical and programming environments.
excerpt: This document is aimed at a small handful of people, but published publicly as reference material for anyone that needs it. All contents are highly specific to the FRC robotics electrical and programming environments.
---
This document is aimed at a small handful of people, but published publicly as reference material for anyone that needs it. All contents are highly specific to the FRC robotics electrical and programming environments.

View File

@ -1,11 +1,15 @@
---
layout: page
title: "Adventures in BGP: routing my own public IPv4 address space"
description: "A college student, playing with the \"big boys\""
date: 2021-11-14
tags: reference as398057
title: "Adventures in BGP: routing my own public IPv4 address space"
description: A college student, playing with the "big boys"
date: 2021-11-14
tags:
- reference
- amprnet
- bgp
- networking
extra:
excerpt: This post covers the process I went through to publicly route my own /24 block of IP addresses with low-cost hardware.
excerpt: This post covers the process I went through to publicly route my own /24 block of IP addresses with low-cost hardware.
---
Your first, and possibly only question is likely: *"what?"*, and I forgive you for asking such a thing. As probably any reader of my posts knows very well, IPv4 address blocks are practically impossible to get, and more than impossible to get for personal use. To quickly clear things up, my address block is *not* for personal use, but in comparison to the majority of the internet's existing address block owners, I am basically a single person holding on to a `/24` subnet for dear life while the giants of large internet corporations are eating up everything around me.

View File

@ -1,12 +1,15 @@
---
layout: page
title: "A rusty guide to quaternions"
description: "Fast and efficient 3D object manipulation"
date: 2021-12-03
tags: reference
title: A rusty guide to quaternions
description: Fast and efficient 3D object manipulation
date: 2021-12-03
tags:
- reference
- math
draft: false
extra:
uses: [katex]
uses:
- katex
excerpt: This post is an overview of Quaternions for Rust programmers, and anyone willing to learn.
---

View File

@ -1,12 +1,14 @@
---
layout: page
title: "Monocular depth mapping in Blender"
description: "My 3D pipeline is backed by neural networks"
date: 2022-01-19
tags: random 3d-pipeline
title: Monocular depth mapping in Blender
description: My 3D pipeline is backed by neural networks
date: 2022-01-19
tags:
- random
- 3d-pipeline
- python
draft: false
extra:
excerpt: This post covers the process I went through to write a Neural-Network-assisted Blender plugin for converting monocular images into 3D textured meshes.
---

View File

@ -1,12 +1,13 @@
---
layout: page
title: "Making my UDM-Pro scream"
description: "Remote fan control for the Unifi Dream Machine Pro"
title: Making my UDM-Pro scream
description: Remote fan control for the Unifi Dream Machine Pro
date: 2022-04-06
tags: random
tags:
- random
- hardware
draft: false
extra:
excerpt: A project review post covering my work on remote-control for the UDM-Pro cooling system
---

View File

@ -1,12 +1,14 @@
---
layout: page
title: "The angle problem"
description: "A look at a slightly infuriating robotics problem"
date: 2022-04-11
tags: robotics
title: The angle problem
description: A look at a slightly infuriating robotics problem
date: 2022-04-11
tags:
- frc
draft: true
extra:
uses: [katex]
uses:
- katex
excerpt: In this post, I take a look at a mathematical problem commonly encountered with relative rotation offset calculation in robotics.
---

View File

@ -1,12 +1,13 @@
---
layout: page
title: "Commit syncing across hosted GIT instances"
description: "How I keep my commit graph alive"
title: Commit syncing across hosted GIT instances
description: How I keep my commit graph alive
date: 2022-05-18
tags: random
tags:
- random
- git
draft: false
extra:
auto_center_images: true
excerpt: This post covers how to keep your commit graph alive across multiple GIT instances by syncing your commit history to magic repos.
---

View File

@ -1,12 +1,15 @@
---
layout: page
title: "Field Log: First look at the NanoVNA"
description: "Weekends are prime radio time"
title: "Field Log: First look at the NanoVNA"
description: Weekends are prime radio time
date: 2022-05-21
tags: radio random nanovna
tags:
- radio
- random
- nanovna
- product
draft: false
extra:
auto_center_images: true
excerpt: I went out in the field and tried out my brand new NanoVNA.
---

View File

@ -1,12 +1,14 @@
---
layout: page
title: "Getting Visual Paradigm to launch on Fedora 36"
description: "Bundle your libraries correctly, kids"
title: Getting Visual Paradigm to launch on Fedora 36
description: Bundle your libraries correctly, kids
date: 2022-06-13
tags: random
tags:
- random
- tutorial
- reference
draft: false
extra:
auto_center_images: true
excerpt: A quick guide on launching Visual Paradigm on Fedora 36
---

View File

@ -1,12 +1,13 @@
---
layout: page
title: "Using a Steam Controller with the Nintendo Switch"
description: "An unreasonably cursed setup for zero gain"
title: Using a Steam Controller with the Nintendo Switch
description: An unreasonably cursed setup for zero gain
date: 2022-06-23
tags: random
tags:
- random
- hardware
draft: false
extra:
auto_center_images: true
excerpt: How to flash custom firmware to the Steam Controller, allowing it to connect to the Nintendo Switch
---

View File

@ -1,12 +1,13 @@
---
layout: page
title: "Rickrolling the internet"
description: "Abusing ICMPv6 to inject lyrics into public routes"
title: Rickrolling the internet
description: Abusing ICMPv6 to inject lyrics into public routes
date: 2022-06-26
tags: random as398057
tags:
- random
- networking
draft: false
extra:
auto_center_images: true
excerpt: This post covers some of the logistics behind rickrolling the internet with some clever routing tricks.
---

View File

@ -1,12 +1,13 @@
---
layout: page
title: "I am my own ISP"
description: "The next stage in my hobby network"
title: I am my own ISP
description: The next stage in my hobby network
date: 2022-08-17
tags: networking
tags:
- networking
- bgp
draft: true
extra:
auto_center_images: true
excerpt: I recently started AS398057, a low cost Autonomous System. This post talks about how its going
---

View File

@ -1,12 +1,12 @@
---
layout: page
title: "Website updates"
description: "Changing a few things in the background"
title: Website updates
description: Changing a few things in the background
date: 2022-09-09
tags: website
tags:
- meta
draft: false
extra:
auto_center_images: true
excerpt: A small update post about some website changes
---

View File

@ -1,12 +1,14 @@
---
layout: page
title: "An analysis of personal ASNs in the wild"
description: "You can get a surprising amount of info from bulk whois"
title: An analysis of personal ASNs in the wild
description: You can get a surprising amount of info from bulk whois
date: 2022-10-02
tags: website network
tags:
- project
- networking
- bgp
draft: false
extra:
auto_center_images: true
excerpt: A look at the usage of personal ASNs based on freely available data
---

View File

@ -1,12 +1,14 @@
---
layout: page
title: "Announcing your AMPRNet prefix to Vultr with BGP"
description: "That how-to guide everyone keeps asking me to make"
title: Announcing your AMPRNet prefix to Vultr with BGP
description: That how-to guide everyone keeps asking me to make
date: 2022-10-17
tags: amprnet network
tags:
- amprnet
- networking
- bgp
draft: true
extra:
auto_center_images: true
excerpt: A tutorial for AMPRNet operators who are BGP announcing their first prefix to Vultr
---

View File

@ -2,4 +2,7 @@
title: BGP peering over a WireGuard tunnel
description: Some notes on getting Bird and WireGuard to play nice
draft: true
---
tags:
- networking
- bgp
---

View File

@ -1,12 +1,14 @@
---
layout: page
title: "Announcing your AMPRNet prefix to Vultr with BGP"
description: "That how-to guide everyone keeps asking me to make"
title: Announcing your AMPRNet prefix to Vultr with BGP
description: That how-to guide everyone keeps asking me to make
date: 2022-10-17
tags: amprnet network
tags:
- amprnet
- networking
- bgp
draft: true
extra:
auto_center_images: true
excerpt: A tutorial for AMPRNet operators who are BGP announcing their first prefix to Vultr
---

View File

@ -1,13 +1,14 @@
---
layout: page
title: "Crudely geo-filtering internet routes"
description: "How I make routers drop traffic for certain countries"
title: Crudely geo-filtering internet routes
description: How I make routers drop traffic for certain countries
date: 2022-11-04
tags: network
tags:
- networking
draft: true
extra:
auto_center_images: true
excerpt:
excerpt:
---
Sometimes I find the need to filter internet traffic traversing my networks based on country of origin. Commonly, I find that dropping certain countries (*cough Russia*) decreases the amount of scans and attacks I see to nearly zero. Sometimes its also nice to ignore routes that pass through countries with heavy surveillance policies too.

View File

@ -1,13 +1,15 @@
---
layout: page
title: "Some lesser known WireGuard settings"
description: "Things I will probably forget in an important moment"
title: Some lesser known WireGuard settings
description: Things I will probably forget in an important moment
date: 2023-02-15
tags: random
tags:
- random
- networking
draft: false
extra:
auto_center_images: true
excerpt: "This post covers some lesser known WireGuard configuration options that I have found useful"
excerpt: This post covers some lesser known WireGuard configuration options that I have found useful
discuss:
reddit: https://www.reddit.com/r/ewpratten/comments/12xzvun/some_lesser_known_wireguard_settings/
---

View File

@ -1,13 +1,15 @@
---
layout: page
title: "A script that hides AI topics from Hacker News"
description: "Sometimes I want to read about something different"
title: A script that hides AI topics from Hacker News
description: Sometimes I want to read about something different
date: 2023-03-21
tags: random
tags:
- random
- javascript
draft: false
extra:
auto_center_images: true
excerpt: "This post shows off a userscript I built that hides AI topics from Hacker News."
excerpt: This post shows off a userscript I built that hides AI topics from Hacker News.
discuss:
reddit: https://www.reddit.com/r/ewpratten/comments/12xzw5x/a_script_that_hides_ai_topics_from_hacker_news/
hacker_news: https://news.ycombinator.com/item?id=35252186

View File

@ -1,13 +1,15 @@
---
layout: page
title: "What are people actually doing with APRS?"
description: "An analysis of worldwide APRS data"
title: What are people actually doing with APRS?
description: An analysis of worldwide APRS data
date: 2023-03-23
tags: radio
tags:
- radio
- aprs
draft: true
extra:
auto_center_images: true
excerpt: "This post looks in to what radio operators are actually doing with the APRS network"
excerpt: This post looks in to what radio operators are actually doing with the APRS network
---
Sometimes I wonder how many people really use the amateur radio services I hear about.

View File

@ -1,13 +1,15 @@
---
layout: page
title: "I performed a button swap on my mouse"
description: "This had better not be my gateway drug into custom mice"
title: I performed a button swap on my mouse
description: This had better not be my gateway drug into custom mice
date: 2023-05-01
tags: random
tags:
- random
- hardware
draft: false
extra:
auto_center_images: true
excerpt: "Some photos and notes on how I swapped the middle button on my mouse"
excerpt: Some photos and notes on how I swapped the middle button on my mouse
discuss:
reddit: https://www.reddit.com/r/ewpratten/comments/1356u1t/i_performed_a_button_swap_on_my_mouse/
hacker_news: https://news.ycombinator.com/item?id=35781662

View File

@ -1,16 +1,15 @@
---
layout: page
title: "Rainbow keyboard"
description: "Game-specific keyboard layouts are really handy"
title: Rainbow keyboard
description: Game-specific keyboard layouts are really handy
date: 2023-06-15
tags: keyboards
tags:
- keyboards
- random
draft: false
extra:
auto_center_images: true
excerpt: "This post shows off my custom keyboard layout for playing Rainbow Six Siege"
# discuss:
# reddit: https://www.reddit.com/r/ewpratten/comments/1356u1t/i_performed_a_button_swap_on_my_mouse/
# hacker_news: https://news.ycombinator.com/item?id=35781662
excerpt: This post shows off my custom keyboard layout for playing Rainbow Six Siege
---
In my ever-continuing quest to do interesting things with custom keyboards, I recently had the idea to take the left half of my [Ferris sweep](https://github.com/davidphilipbarr/Sweep) and configure it specifically for use in the game [Rainbow Six Siege](https://en.wikipedia.org/wiki/Tom_Clancy%27s_Rainbow_Six).

View File

@ -1,16 +1,15 @@
---
layout: page
title: "Setting up a static DNF repository"
description: "Hosting RPMs is less painful than I expected"
title: Setting up a static DNF repository
description: Hosting RPMs is less painful than I expected
date: 2023-07-05
tags: linux
tags:
- linux
- walkthrough
draft: false
extra:
auto_center_images: true
excerpt: "Information on how I set up dist.ewpratten.com, my DNF repository"
# discuss:
# reddit: https://www.reddit.com/r/ewpratten/comments/1356u1t/i_performed_a_button_swap_on_my_mouse/
# hacker_news: https://news.ycombinator.com/item?id=35781662
excerpt: Information on how I set up dist.ewpratten.com, my DNF repository
---
<!-- I regularly find myself bouncing between wanting to *self-host all the things* (because it is fun), and use well-known hosting services (because I generally have better things to do with my time). I doubt I'll ever actually pick one side or the other, but I have found that the back-and-fourth of `hosted, diy, hosted` leads me to learn a lot about the tools I use. -->

View File

@ -1,17 +1,21 @@
---
layout: page
title: "Building a VPN with an AMPRNet BGP allocation"
description: "A quick guide on using your shiny new AMPRNet allocation"
title: Building a VPN with an AMPRNet BGP allocation
description: A quick guide on using your shiny new AMPRNet allocation
date: 2023-07-07
tags: networking
tags:
- networking
- amprnet
- bgp
draft: false
extra:
auto_center_images: true
excerpt: "A guide on setting up a VPS, announcing a prefix over BGP, and using it as a VPN server"
excerpt: A guide on setting up a VPS, announcing a prefix over BGP, and using it as a VPN server
discuss:
reddit: https://www.reddit.com/r/ewpratten/comments/14tdltu/building_a_vpn_with_an_amprnet_bgp_allocation/
hacker_news: https://news.ycombinator.com/item?id=36635146
uses: [mermaid]
uses:
- mermaid
---
One of the most common emails I receive from readers of this website generally starts with:

View File

@ -0,0 +1,24 @@
---
layout: page
title: Authoring Blog Posts with Obsidian
description: Trying a new way to write for this site
date: 2023-10-20
tags:
- meta
draft: true
extra:
auto_center_images: true
excerpt: A post about authoring blog posts with Obsidian
uses:
- mermaid
---
It recently occurred to me that [Obsidian](https://obsidian.md) is capable of editing *any* type of markdown document store, not just its own note "Vaults". So, as a test I've been using it to interface with the source files that make up this website.
This post largely exists for the sake of figuring out how Obsidian behaves when forced into an environment that doesn't entirely agree with the "obsidian way of doing things".
---
- Editing extra field is hard
- Hot reload works very nicely (with auto-save when typing!)
- Editing properties is pretty nice
- Graph is very good
-

1
content/images Symbolic link
View File

@ -0,0 +1 @@
../static/images