1

Fix all aliases

This commit is contained in:
Evan Pratten 2023-10-21 12:56:20 -04:00
parent 2df76a0e09
commit 3736c13a85
92 changed files with 691 additions and 504 deletions

2
.gitignore vendored
View File

@ -16,7 +16,7 @@ Cargo.lock
.dev.vars .dev.vars
# Obsidian # Obsidian
.obsidian/themes /content/.obsidian/themes
.obsidian/appearance.json .obsidian/appearance.json
.obsidian/workspace.json .obsidian/workspace.json

View File

@ -40,9 +40,29 @@
"source": false "source": false
} }
} }
},
{
"id": "55b0a9f99b36a7a9",
"type": "leaf",
"state": {
"type": "markdown",
"state": {
"file": "blog/2020-08-03-Joystick-to-Voltage.md",
"mode": "source",
"source": false
}
}
},
{
"id": "593c8a945e0bc198",
"type": "leaf",
"state": {
"type": "empty",
"state": {}
}
} }
], ],
"currentTab": 2 "currentTab": 4
} }
], ],
"direction": "vertical" "direction": "vertical"
@ -108,7 +128,6 @@
"state": { "state": {
"type": "backlink", "type": "backlink",
"state": { "state": {
"file": "blog/2019-08-11-Setting-up-JA.md",
"collapseAll": false, "collapseAll": false,
"extraContext": false, "extraContext": false,
"sortOrder": "alphabetical", "sortOrder": "alphabetical",
@ -125,7 +144,6 @@
"state": { "state": {
"type": "outgoing-link", "type": "outgoing-link",
"state": { "state": {
"file": "blog/2019-08-11-Setting-up-JA.md",
"linksCollapsed": false, "linksCollapsed": false,
"unlinkedCollapsed": true "unlinkedCollapsed": true
} }
@ -147,9 +165,7 @@
"type": "leaf", "type": "leaf",
"state": { "state": {
"type": "outline", "type": "outline",
"state": { "state": {}
"file": "blog/2019-08-11-Setting-up-JA.md"
}
} }
}, },
{ {
@ -179,8 +195,10 @@
"command-palette:Open command palette": false "command-palette:Open command palette": false
} }
}, },
"active": "22ff53eb1a88a69b", "active": "593c8a945e0bc198",
"lastOpenFiles": [ "lastOpenFiles": [
"blog/2020-08-03-Joystick-to-Voltage.md",
"blog/2019-08-11-Setting-up-JA.md",
"blog/2018-06-27-BecomeRanter.md", "blog/2018-06-27-BecomeRanter.md",
"blog/2017-11-24-weatherballoon-lost.md", "blog/2017-11-24-weatherballoon-lost.md",
"blog/2019-06-12-Styiling-GitHub.md", "blog/2019-06-12-Styiling-GitHub.md",
@ -191,9 +209,7 @@
"blog/frc-languages.md", "blog/frc-languages.md",
"blog/2020-09-24-Gopro-Webcam.md", "blog/2020-09-24-Gopro-Webcam.md",
"blog/2023-10-20-obsidian-blogging.md", "blog/2023-10-20-obsidian-blogging.md",
"blog/2019-08-11-Setting-up-JA.md",
"blog/2020-08-13-Drivetrain-navigation.md", "blog/2020-08-13-Drivetrain-navigation.md",
"blog/2020-08-03-Joystick-to-Voltage.md",
"blog/2019-06-23-googlectf.md", "blog/2019-06-23-googlectf.md",
"blog/2022-07-02-robotics-journey.md", "blog/2022-07-02-robotics-journey.md",
"blog/2020/08/23/notetaking-with-latex.md", "blog/2020/08/23/notetaking-with-latex.md",

View File

@ -1,11 +1,14 @@
--- ---
title: "We lost a weather balloon in another country" title: We lost a weather balloon in another country
description: "..and made the news because of it" description: ..and made the news because of it
date: 2017-11-24 date: 2017-11-24
tags: news tags: news
draft: false draft: false
extra: extra:
excerpt: Beal science project succeeds - maybe too much - as weather balloon floats into U.S. excerpt: Beal science project succeeds - maybe too much - as weather balloon floats
into U.S.
aliases:
- /blog/weatherballoon-lost
--- ---
A news article was written about a project I was involved in. It's even headed by a photo I took! A news article was written about a project I was involved in. It's even headed by a photo I took!
@ -31,4 +34,3 @@ Once found on the American side of the border, a corresponding article was writt
## The balloon on the other side ## The balloon on the other side
![](https://bloximages.chicago2.vip.townnews.com/tiogapublishing.com/content/tncms/assets/v3/editorial/1/38/1384aff6-d120-11e7-bd7f-e7d82bd3ef3c/5a1826bd8b199.image.jpg) ![](https://bloximages.chicago2.vip.townnews.com/tiogapublishing.com/content/tncms/assets/v3/editorial/1/38/1384aff6-d120-11e7-bd7f-e7d82bd3ef3c/5a1826bd8b199.image.jpg)

View File

@ -1,17 +1,18 @@
--- ---
layout: page layout: page
title: Using a python script to create devRant posts based on the style and content of another user title: Using a python script to create devRant posts based on the style and content
of another user
description: if/else ++ description: if/else ++
date: 2018-06-27 date: 2018-06-27
tags: tags:
- project - project
- python - python
- walkthrough - walkthrough
aliases: aliases:
- /blog/2018/06/27/becomeranter - /blog/2018/06/27/becomeranter
- /blog/becomeranter
--- ---
Ok... The title is slightly wrong. There are actually 2 scripts.. Sorry about that. Ok... The title is slightly wrong. There are actually 2 scripts.. Sorry about that.
This is a guide on installing and using the [BecomeRanter](https://github.com/Ewpratten/BecomeRanter) script. This is a guide on installing and using the [BecomeRanter](https://github.com/Ewpratten/BecomeRanter) script.

View File

@ -1,14 +1,16 @@
--- ---
title: "Robot reveal: HATCHField" title: 'Robot reveal: HATCHField'
description: What I have been working on for the past few months description: What I have been working on for the past few months
date: 2019-02-20 date: 2019-02-20
tags: tags:
- video - video
- frc - frc
draft: false draft: false
extra: extra:
excerpt: HATCHField is a competitive robot built by Raider Robotics. excerpt: HATCHField is a competitive robot built by Raider Robotics.
icon: las la-play icon: las la-play
aliases:
- /blog/hatchfield
--- ---
My roles in this project included: My roles in this project included:

View File

@ -3,10 +3,11 @@ layout: page
title: GitHub's CSS is boring. So I refreshed the design title: GitHub's CSS is boring. So I refreshed the design
date: 2019-06-12 date: 2019-06-12
tags: tags:
- project - project
- github - github
aliases: aliases:
- /blog/2019/06/12/styiling-github - /blog/2019/06/12/styiling-github
- /blog/styiling-github
--- ---
I have been using GitHub since 2017, and have been getting tired of GitHub's theme. I didn't need a huge change, just a small refresh. So, to solve this, I whipped out [Stylus](https://addons.mozilla.org/en-CA/firefox/addon/styl-us/) and made a nice little CSS file for it. I have been using GitHub since 2017, and have been getting tired of GitHub's theme. I didn't need a huge change, just a small refresh. So, to solve this, I whipped out [Stylus](https://addons.mozilla.org/en-CA/firefox/addon/styl-us/) and made a nice little CSS file for it.

View File

@ -4,10 +4,11 @@ title: Graphing the relation between wheels and awards for FRC
description: AKA. Why programmer + reddit + matplotlib is a bad idea. description: AKA. Why programmer + reddit + matplotlib is a bad idea.
date: 2019-06-16 date: 2019-06-16
tags: tags:
- frc - frc
- data-analysis - data-analysis
aliases: aliases:
- /blog/2019/06/16/graphing-w2a - /blog/2019/06/16/graphing-w2a
- /blog/graphing-w2a
--- ---
I was scrolling through reddit the other day, and came across [this great post](https://www.reddit.com/r/FRC/comments/byzv5q/i_know_what_im_doing/) by u/[MasterQuacks](https://www.reddit.com/user/MasterQuacks/). I was scrolling through reddit the other day, and came across [this great post](https://www.reddit.com/r/FRC/comments/byzv5q/i_know_what_im_doing/) by u/[MasterQuacks](https://www.reddit.com/user/MasterQuacks/).

View File

@ -4,9 +4,10 @@ title: What I have learned from 2 years of FRC programming
description: Robots are pretty cool description: Robots are pretty cool
date: 2019-06-21 date: 2019-06-21
tags: tags:
- frc - frc
aliases: aliases:
- /blog/2019/06/21/robot-experiences - /blog/2019/06/21/robot-experiences
- /blog/robot-experiences
--- ---
Over the past two years (2018 / 2019), I have been a member of my school's [FRC](https://www.firstinspires.org/robotics/frc) team, [Raider Robotics](https://frc5024.github.io). Specifically, a programmer. Over the past two years (2018 / 2019), I have been a member of my school's [FRC](https://www.firstinspires.org/robotics/frc) team, [Raider Robotics](https://frc5024.github.io). Specifically, a programmer.

View File

@ -4,9 +4,10 @@ title: I gave Google's CTF a short try and learned a thing or two
description: But exams got in the way and took all the fun description: But exams got in the way and took all the fun
date: 2019-06-23 date: 2019-06-23
tags: tags:
- ctf - ctf
aliases: aliases:
- /blog/2019/06/23/googlectf - /blog/2019/06/23/googlectf
- /blog/googlectf
--- ---
Honestly, I completely forgot that this was the weekend of Google's online [CTF Qualifications](https://g.co/ctf) for 2019 and was late, unprepared, busy, and did not have a team to work with. Honestly, I completely forgot that this was the weekend of Google's online [CTF Qualifications](https://g.co/ctf) for 2019 and was late, unprepared, busy, and did not have a team to work with.

View File

@ -1,12 +1,13 @@
--- ---
layout: page layout: page
title: "The language hunt: Part 2" title: 'The language hunt: Part 2'
description: A quick followup description: A quick followup
date: 2019-06-24 date: 2019-06-24
tags: tags:
- frc - frc
aliases: aliases:
- /blog/2019/06/24/languagehunt2 - /blog/2019/06/24/languagehunt2
- /blog/languagehunt2
--- ---
This is a very short post, just to explain the result of [The language Hunt](/blog/frc-languages). This is a very short post, just to explain the result of [The language Hunt](/blog/frc-languages).

View File

@ -4,10 +4,11 @@ title: BashSmash
description: A tool for driving people crazy description: A tool for driving people crazy
date: 2019-06-26 date: 2019-06-26
tags: tags:
- project - project
- bash - bash
aliases: aliases:
- /blog/2019/06/26/bashsmash - /blog/2019/06/26/bashsmash
- /blog/bashsmash
--- ---
I was watching this great [Liveoverflow video](https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&cad=rja&uact=8&ved=2ahUKEwiOhNze_4fjAhUiB50JHR12D8AQwqsBMAB6BAgJEAQ&url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3D6D1LnMj0Yt0&usg=AOvVaw2nOgft0SoPZujc9js9Vxhx) yesterday, and really liked the idea of building escape sequences with strings. So, I built a new tool, [BashSmash](https://pypi.org/project/bashsmash/). I was watching this great [Liveoverflow video](https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&cad=rja&uact=8&ved=2ahUKEwiOhNze_4fjAhUiB50JHR12D8AQwqsBMAB6BAgJEAQ&url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3D6D1LnMj0Yt0&usg=AOvVaw2nOgft0SoPZujc9js9Vxhx) yesterday, and really liked the idea of building escape sequences with strings. So, I built a new tool, [BashSmash](https://pypi.org/project/bashsmash/).

View File

@ -4,10 +4,11 @@ title: I had some fun with a router
description: cleartext passwords + external management = death wish description: cleartext passwords + external management = death wish
date: 2019-06-27 date: 2019-06-27
tags: tags:
- project - project
- cybersecurity - cybersecurity
aliases: aliases:
- /blog/2019/06/27/pwnlink - /blog/2019/06/27/pwnlink
- /blog/pwnlink
--- ---
I was playing around with some D-link routers today and remembered an [ExploitDB Entry](https://www.exploit-db.com/exploits/33520) I read a while ago. Many D-link routers have a great feature that allows remote management and configuration queries. Interestingly, this cannot be disabled, and one of the pages contains a cleartext version of the admin password (yay!). I was playing around with some D-link routers today and remembered an [ExploitDB Entry](https://www.exploit-db.com/exploits/33520) I read a while ago. Many D-link routers have a great feature that allows remote management and configuration queries. Interestingly, this cannot be disabled, and one of the pages contains a cleartext version of the admin password (yay!).

View File

@ -4,10 +4,11 @@ title: Hunting snakes with a shotgun
description: Python is a little too forgiving description: Python is a little too forgiving
date: 2019-06-27 date: 2019-06-27
tags: tags:
- random - random
- python - python
aliases: aliases:
- /blog/2019/06/27/python - /blog/2019/06/27/python
- /blog/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. 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,12 @@
--- ---
layout: page layout: page
title: "devDNS" title: devDNS
description: "The DNS over devRant service" description: The DNS over devRant service
date: 2019-07-01 date: 2019-07-01
tags: project tags: project
aliases: [/blog/2019/07/01/devdns] aliases:
- /blog/2019/07/01/devdns
- /blog/devdns
--- ---
Over the past year and a half, I have been hacking my way around the undocumented [devRant](https://devrant.com) auth/write API. At the request of devRant's creators, this API must not be documented due to the way logins work on the platform. That is besides the point. I have been working on a little project called [devDNS](https://devrant.com/collabs/2163502) over the past few days that uses this undocumented API. Why must I be so bad at writing intros? Over the past year and a half, I have been hacking my way around the undocumented [devRant](https://devrant.com) auth/write API. At the request of devRant's creators, this API must not be documented due to the way logins work on the platform. That is besides the point. I have been working on a little project called [devDNS](https://devrant.com/collabs/2163502) over the past few days that uses this undocumented API. Why must I be so bad at writing intros?

View File

@ -1,10 +1,12 @@
--- ---
layout: page layout: page
title: "Scraping FRC team's GitHub accounts to gather large amounts of data" title: Scraping FRC team's GitHub accounts to gather large amounts of data
description: "There are a lot of teams..." description: There are a lot of teams...
date: 2019-07-06 date: 2019-07-06
tags: frc tags: frc
aliases: [/blog/2019/07/06/scrapingfrcgithub] aliases:
- /blog/2019/07/06/scrapingfrcgithub
- /blog/scrapingfrcgithub
--- ---
I was curious about the most used languages for FRC, so I build a Python script to find out what they where. I was curious about the most used languages for FRC, so I build a Python script to find out what they where.

View File

@ -4,9 +4,10 @@ title: Taking a look back at GMAD
description: Fun, Simple, and Quick description: Fun, Simple, and Quick
date: 2019-07-13 date: 2019-07-13
tags: tags:
- project - project
aliases: aliases:
- /blog/2019/07/13/lookback-gmad - /blog/2019/07/13/lookback-gmad
- /blog/lookback-gmad
--- ---
One day, back in June of 2018, I was both looking for a new project to work on, and trying to decide which Linux distro to install on one of my computers. From this, a little project was born. [Give Me a Distro](http://ewpratten.retrylife.ca/GiveMeADistro/) (or, GMAD, as I like to call it) is a little website that chooses a random distribution of Linux and shows a description of what you are about to get yourself into, and a download link for the latest ISO. One day, back in June of 2018, I was both looking for a new project to work on, and trying to decide which Linux distro to install on one of my computers. From this, a little project was born. [Give Me a Distro](http://ewpratten.retrylife.ca/GiveMeADistro/) (or, GMAD, as I like to call it) is a little website that chooses a random distribution of Linux and shows a description of what you are about to get yourself into, and a download link for the latest ISO.

View File

@ -4,10 +4,11 @@ title: Mind map generation with Python
description: Step 1 description: Step 1
date: 2019-07-15 date: 2019-07-15
tags: tags:
- project - project
- python - python
aliases: aliases:
- /blog/2019/07/15/mindmap - /blog/2019/07/15/mindmap
- /blog/mindmap
--- ---
While working on an assignment with [Coggle](https://coggle.it) today, I noticed an interesting option in the save menu. *Download as .mm file*. Having rarely worked with mind maps before, and only doing it online, it never occured to me that someone would have a file format for it. So I took a look. While working on an assignment with [Coggle](https://coggle.it) today, I noticed an interesting option in the save menu. *Download as .mm file*. Having rarely worked with mind maps before, and only doing it online, it never occured to me that someone would have a file format for it. So I took a look.

View File

@ -4,9 +4,10 @@ title: My weird piece of EDC
description: Reasons why I always carry NFC cards with me description: Reasons why I always carry NFC cards with me
date: 2019-08-10 date: 2019-08-10
tags: tags:
- random - random
aliases: aliases:
- /blog/2019/08/10/why-i-carry-nfc - /blog/2019/08/10/why-i-carry-nfc
- /blog/why-i-carry-nfc
--- ---
Im back with a quick little post about something I cary with me everywhere I go, EDC (Every-Day Carry) if you will. Im back with a quick little post about something I cary with me everywhere I go, EDC (Every-Day Carry) if you will.

View File

@ -4,11 +4,12 @@ title: How I set up ひらがな input on my laptop
description: I3wm makes everything 10x harder than it should be description: I3wm makes everything 10x harder than it should be
date: 2019-08-12 date: 2019-08-12
tags: tags:
- languages - languages
- walkthrough - walkthrough
- linux - linux
aliases: aliases:
- /blog/2019/08/12/setting-up-ja - /blog/2019/08/12/setting-up-ja
- /blog/setting-up-ja
draft: false draft: false
--- ---

View File

@ -4,10 +4,11 @@ title: Keyed data encoding with Python
description: XOR is pretty cool description: XOR is pretty cool
date: 2019-08-24 date: 2019-08-24
tags: tags:
- project - project
- python - python
aliases: aliases:
- /blog/2019/08/24/shift2 - /blog/2019/08/24/shift2
- /blog/shift2
--- ---
I have always been interested in text and data encoding, so last year, I made my first encoding tool. [Shift64](https://github.com/Ewpratten/shift64) was designed to take plaintext data with a key, and convert it into a block of base64 that could, in theory, only be decoded with the original key. I had a lot of fun with this tool, and a very stripped down version of it actually ended up as a bonus question on the [5024 Programming Test](https://github.com/frc5024/Programming-Test/blob/master/test.md) for 2018/2019. Yes, the key was in fact `5024`. I have always been interested in text and data encoding, so last year, I made my first encoding tool. [Shift64](https://github.com/Ewpratten/shift64) was designed to take plaintext data with a key, and convert it into a block of base64 that could, in theory, only be decoded with the original key. I had a lot of fun with this tool, and a very stripped down version of it actually ended up as a bonus question on the [5024 Programming Test](https://github.com/frc5024/Programming-Test/blob/master/test.md) for 2018/2019. Yes, the key was in fact `5024`.

View File

@ -1,13 +1,15 @@
--- ---
layout: page layout: page
title: I did some cleaning title: I did some cleaning
description: Spring cleaning is fun when it isn't spring, and a computer does all the work description: Spring cleaning is fun when it isn't spring, and a computer does all
the work
date: 2019-08-27 date: 2019-08-27
tags: tags:
- random - random
- github - github
aliases: aliases:
- /blog/2019/08/27/github-cleanup - /blog/2019/08/27/github-cleanup
- /blog/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! 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,10 +1,12 @@
--- ---
layout: page layout: page
title: "Doing Python OOP the wrong way" title: Doing Python OOP the wrong way
description: "In the name of science!" description: In the name of science!
date: 2019-09-07 date: 2019-09-07
tags: project random tags: project random
aliases: [/blog/2019/09/07/wrong-python] aliases:
- /blog/2019/09/07/wrong-python
- /blog/wrong-python
--- ---
If you know me, you probably know of the many weird things I do with python. Most recent of which being this [FizzBuzz](https://en.wikipedia.org/wiki/Fizz_buzz) implementation in one line of python code: If you know me, you probably know of the many weird things I do with python. Most recent of which being this [FizzBuzz](https://en.wikipedia.org/wiki/Fizz_buzz) implementation in one line of python code:

View File

@ -4,14 +4,15 @@ title: Building images from binary data
description: Simple, yet fun description: Simple, yet fun
date: 2019-09-11 date: 2019-09-11
tags: tags:
- python - python
- images - images
- project - project
redirect_from: redirect_from:
- /post/ef7b3166/ - /post/ef7b3166/
- /ef7b3166/ - /ef7b3166/
aliases: aliases:
- /blog/2019/09/11/buildingimgfrombin - /blog/2019/09/11/buildingimgfrombin
- /blog/buildingimgfrombin
extra: extra:
uses: uses:
- twitter - twitter

View File

@ -4,14 +4,15 @@ title: Using an RNN to generate Bill Wurtz notes
description: Textgenrnn is fun description: Textgenrnn is fun
date: 2019-10-05 date: 2019-10-05
tags: tags:
- project - project
- walkthrough - walkthrough
- python - python
redirect_from: redirect_from:
- /post/99g9j2r90/ - /post/99g9j2r90/
- /99g9j2r90/ - /99g9j2r90/
aliases: aliases:
- /blog/2019/10/05/billwurtz - /blog/2019/10/05/billwurtz
- /blog/billwurtz
--- ---
[Bill Wurtz](https://billwurtz.com/) is an American musician who became [reasonably famous](https://socialblade.com/youtube/user/billwurtz/realtime) through short musical videos posted to Vine and YouTube. I was searching through his website the other day, and stumbled upon a page labeled [*notebook*](https://billwurtz.com/notebook.html), and thought I should check it out. [Bill Wurtz](https://billwurtz.com/) is an American musician who became [reasonably famous](https://socialblade.com/youtube/user/billwurtz/realtime) through short musical videos posted to Vine and YouTube. I was searching through his website the other day, and stumbled upon a page labeled [*notebook*](https://billwurtz.com/notebook.html), and thought I should check it out.

View File

@ -1,13 +1,15 @@
--- ---
layout: page layout: page
title: "Programming a live robot" title: Programming a live robot
description: "Living on the edge is an understatement" description: Living on the edge is an understatement
date: 2019-11-20 date: 2019-11-20
tags: random frc tags: random frc
redirect_from: redirect_from:
- /post/e9gdhj90/ - /post/e9gdhj90/
- /e9gdhj90/ - /e9gdhj90/
aliases: [/blog/2019/11/20/realtime-robot-code] aliases:
- /blog/2019/11/20/realtime-robot-code
- /blog/realtime-robot-code
--- ---
> *"So.. what if we could skip asking for driver inputs, and just have the robot operators control the bot through a commandline interface?"* > *"So.. what if we could skip asking for driver inputs, and just have the robot operators control the bot through a commandline interface?"*

View File

@ -1,16 +1,17 @@
--- ---
layout: page layout: page
title: "I used cron for the first time" title: I used cron for the first time
description: "And I didn't die" description: And I didn't die
date: 2019-12-11 date: 2019-12-11
tags: random tags: random
redirect_from: redirect_from:
- /post/cd9dj84kf0/ - /post/cd9dj84kf0/
- /cd9dj84kf0/ - /cd9dj84kf0/
aliases: [/blog/2019/12/11/cron] aliases:
- /blog/2019/12/11/cron
- /blog/cron
--- ---
[Cron](https://en.wikipedia.org/wiki/Cron) has always been one of those "scary sysadmin things" in my head. But today, I finally used it! [Cron](https://en.wikipedia.org/wiki/Cron) has always been one of those "scary sysadmin things" in my head. But today, I finally used it!
## My need ## My need

View File

@ -4,13 +4,14 @@ title: Compiling BrainFuck with a shell script
description: That was easy description: That was easy
date: 2020-01-20 date: 2020-01-20
tags: tags:
- random - random
- bash - bash
redirect_from: redirect_from:
- /post/es3v140d/ - /post/es3v140d/
- /es3v140d/ - /es3v140d/
aliases: aliases:
- /blog/2020/01/20/brainfuckinbash - /blog/2020/01/20/brainfuckinbash
- /blog/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. [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,14 +1,16 @@
--- ---
title: "Robot reveal: Darth Raider" title: 'Robot reveal: Darth Raider'
description: What I have been working on for the past few months description: What I have been working on for the past few months
date: 2020-02-21 date: 2020-02-21
tags: tags:
- video - video
- frc - frc
draft: false draft: false
extra: extra:
excerpt: Darth Raider is a competitive robot built by Raider Robotics. excerpt: Darth Raider is a competitive robot built by Raider Robotics.
icon: las la-play icon: las la-play
aliases:
- /blog/darth-raider
--- ---
My roles in this project included: My roles in this project included:

View File

@ -1,18 +1,19 @@
--- ---
layout: page layout: page
title: "Ludum Dare 46: Jamming with friends" title: 'Ludum Dare 46: Jamming with friends'
description: Recapping the development of *Micromanaged Mike* description: Recapping the development of *Micromanaged Mike*
date: 2020-04-20 date: 2020-04-20
tags: tags:
- gamejam - gamejam
- ldjam - ldjam
- javascript - javascript
- project - project
redirect_from: redirect_from:
- /post/ebsdjtd9/ - /post/ebsdjtd9/
- /ebsdjtd9/ - /ebsdjtd9/
aliases: aliases:
- /blog/2020/04/20/ludumdare46 - /blog/2020/04/20/ludumdare46
- /blog/ludumdare46
extra: extra:
uses: uses:
- twitter - twitter

View File

@ -1,13 +1,15 @@
--- ---
layout: page layout: page
title: "Running RoboRIO firmware inside Docker" title: Running RoboRIO firmware inside Docker
description: "Containerized native ARMv7l emulation in 20 minutes" description: Containerized native ARMv7l emulation in 20 minutes
date: 2020-05-19 date: 2020-05-19
tags: frc roborio emulation tags: frc roborio emulation
redirect_from: redirect_from:
- /post/5d3nd9s4/ - /post/5d3nd9s4/
- /5d3nd9s4/ - /5d3nd9s4/
aliases: [/blog/2020/05/19/running-roborio-native] aliases:
- /blog/2020/05/19/running-roborio-native
- /blog/running-roborio-native
extra: extra:
excerpt: This post covers how to run a RoboRIO's operating system in Docker excerpt: This post covers how to run a RoboRIO's operating system in Docker
--- ---

View File

@ -4,15 +4,17 @@ title: Flashing code to a 32u4 chip
description: Notes for my future self description: Notes for my future self
date: 2020-06-05 date: 2020-06-05
tags: tags:
- avr - avr
- walkthrough - walkthrough
redirect_from: redirect_from:
- /post/65f9kjl4/ - /post/65f9kjl4/
- /65f9kjl4/ - /65f9kjl4/
aliases: aliases:
- /blog/2020/06/05/32u4-upload - /blog/2020/06/05/32u4-upload
- /blog/32u4-upload
extra: 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/). 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,19 @@
--- ---
title: "Notes from FRC: Converting joystick data to tank-drive outputs" title: 'Notes from FRC: Converting joystick data to tank-drive outputs'
description: and making a tank-based robot's movements look natural description: and making a tank-based robot's movements look natural
date: 2020-08-03 date: 2020-08-03
tags: tags:
- frc - frc
- math - math
- python - python
aliases: aliases:
- /blog/2020/08/03/joystick-to-voltage - /blog/2020/08/03/joystick-to-voltage
- /blog/joystick-to-voltage
extra: extra:
uses: uses:
- katex - katex
excerpt: This post covers the algorithm I devised for converting joystick data to motor commands at Raider Robotics excerpt: This post covers the algorithm I devised for converting joystick data to
motor commands at Raider Robotics
--- ---
I am starting a new little series here called "Notes from FRC". The idea is that I am going to write about what I have learned over the past three years of working (almost daily) with robots, and hopefully someone in the future will find them useful. The production source code I based this post around is available [here](https://github.com/frc5024/lib5k/blob/cd8ad407146b514cf857c1d8ac82ac8f3067812b/common_drive/src/main/java/io/github/frc5024/common_drive/calculation/DifferentialDriveCalculation.java). I am starting a new little series here called "Notes from FRC". The idea is that I am going to write about what I have learned over the past three years of working (almost daily) with robots, and hopefully someone in the future will find them useful. The production source code I based this post around is available [here](https://github.com/frc5024/lib5k/blob/cd8ad407146b514cf857c1d8ac82ac8f3067812b/common_drive/src/main/java/io/github/frc5024/common_drive/calculation/DifferentialDriveCalculation.java).

View File

@ -1,17 +1,20 @@
--- ---
layout: page layout: page
title: "Notes from FRC: Autonomous point-to-point navigation" title: 'Notes from FRC: Autonomous point-to-point navigation'
description: The tale of some very curvy math description: The tale of some very curvy math
date: 2020-08-13 date: 2020-08-13
tags: tags:
- frc - frc
- math - math
extra: extra:
excerpt: This post is a continuation on my "Notes from FRC" series. This time, I cover an extremely simple, yet very effective way to get a tank-drive robot from A to B autonomously. excerpt: This post is a continuation on my "Notes from FRC" series. This time, I
cover an extremely simple, yet very effective way to get a tank-drive robot from
A to B autonomously.
uses: uses:
- katex - katex
aliases: aliases:
- /blog/2020/08/13/drivetrain-navigation - /blog/2020/08/13/drivetrain-navigation
- /blog/drivetrain-navigation
--- ---
This post is a continuation on my "Notes from FRC" series. If you haven't already, I recommend reading my post on [Converting joystick data to tank-drive outputs](/blog/2020/08/03/joystick-to-voltage). Some concepts in this post were introduced there. Like last time, to see the production code behind this post, check [here](https://github.com/frc5024/lib5k/blob/ab90994b2a0c769abfdde9a834133725c3ce3a38/common_drive/src/main/java/io/github/frc5024/common_drive/DriveTrainBase.java) and [here](https://github.com/frc5024/lib5k/tree/master/purepursuit/src/main/java/io/github/frc5024/purepursuit/pathgen). This post is a continuation on my "Notes from FRC" series. If you haven't already, I recommend reading my post on [Converting joystick data to tank-drive outputs](/blog/2020/08/03/joystick-to-voltage). Some concepts in this post were introduced there. Like last time, to see the production code behind this post, check [here](https://github.com/frc5024/lib5k/blob/ab90994b2a0c769abfdde9a834133725c3ce3a38/common_drive/src/main/java/io/github/frc5024/common_drive/DriveTrainBase.java) and [here](https://github.com/frc5024/lib5k/tree/master/purepursuit/src/main/java/io/github/frc5024/purepursuit/pathgen).

View File

@ -1,17 +1,18 @@
--- ---
layout: page layout: page
title: "Taking notes with Markdown and LaTeX" title: Taking notes with Markdown and LaTeX
description: "Using a lot of tech to replace a piece of paper" description: Using a lot of tech to replace a piece of paper
date: 2020-08-23 date: 2020-08-23
tags: pandoc latex bazel tags: pandoc latex bazel
extra: extra:
excerpt: >- excerpt: I have completely reworked my school notetaking system to use LaTeX. This
I have completely reworked my school notetaking system to use LaTeX. post outlines how I did everything, and my new workflow.
This post outlines how I did everything, and my new workflow.
redirect_from: redirect_from:
- /post/68df02l4/ - /post/68df02l4/
- /68df02l4/ - /68df02l4/
aliases: [/blog/2020/08/23/notetaking-with-latex] aliases:
- /blog/2020/08/23/notetaking-with-latex
- /blog/notetaking-with-latex
--- ---
*You can view my public demo for this post [here](https://github.com/Ewpratten/school-notes-demo)* *You can view my public demo for this post [here](https://github.com/Ewpratten/school-notes-demo)*

View File

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

View File

@ -4,14 +4,17 @@ title: Integrating GitHub Codespaces with FRC
description: Robotics software development in your browser description: Robotics software development in your browser
date: 2020-09-10 date: 2020-09-10
tags: tags:
- github - github
- frc - frc
- project - project
- java - java
extra: 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. " 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: aliases:
- /blog/2020/09/10/codespaces-for-frc - /blog/2020/09/10/codespaces-for-frc
- /blog/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. 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,21 +1,23 @@
--- ---
layout: page layout: page
title: Building a mini maven server title: Building a mini maven server
description: "Project overview: The Ultralight maven server" description: 'Project overview: The Ultralight maven server'
date: 2020-09-17 date: 2020-09-17
written: 2020-09-05 written: 2020-09-05
tags: tags:
- project - project
- github - github
- maven - maven
- java - java
extra: extra:
excerpt: In this post, I explain the process of building my own personal maven server, and show how simple maven servers really are. excerpt: In this post, I explain the process of building my own personal maven
server, and show how simple maven servers really are.
redirect_from: redirect_from:
- /post/2jf002s4/ - /post/2jf002s4/
- /2jf002s4/ - /2jf002s4/
aliases: aliases:
- /blog/2020/09/17/ultralight-writeup - /blog/2020/09/17/ultralight-writeup
- /blog/ultralight-writeup
--- ---
I have been looking around for a small, and easy-to-use [maven](https://maven.apache.org/) server to host my personal Java libraries for some time now. I origionally went with [Jitpack.io](https://jitpack.io/), but didn't like the fact I jitpack overwrites artifact `groupID` fields. This means that instead of specifying a package via something like `ca.retrylife:librandom:1.0.0`, a user would have to write `com.github.ewpratten:librandom:1.0.0`. While this is not a huge deal, I prefer to use a `gorupID` under my own domain for branding reasons. Along with this issue, I just didn't have enough control over my artifacts with Jitpack. I have been looking around for a small, and easy-to-use [maven](https://maven.apache.org/) server to host my personal Java libraries for some time now. I origionally went with [Jitpack.io](https://jitpack.io/), but didn't like the fact I jitpack overwrites artifact `groupID` fields. This means that instead of specifying a package via something like `ca.retrylife:librandom:1.0.0`, a user would have to write `com.github.ewpratten:librandom:1.0.0`. While this is not a huge deal, I prefer to use a `gorupID` under my own domain for branding reasons. Along with this issue, I just didn't have enough control over my artifacts with Jitpack.

View File

@ -1,19 +1,21 @@
--- ---
layout: page layout: page
title: "My workflow: video conference edition" title: 'My workflow: video conference edition'
description: "Turning some spare filmmaking equipment into a high-quality video conference setup" description: Turning some spare filmmaking equipment into a high-quality video conference
setup
date: 2020-09-24 date: 2020-09-24
written: 2020-09-13 written: 2020-09-13
tags: video cameras workflow tags: video cameras workflow
extra: extra:
excerpt: >- excerpt: As my courses have moved mostly online, I have looked to improve my live
As my courses have moved mostly online, I have looked to improve video setup. This post covers how I stream sharp HD video at home, and some interesting
my live video setup. This post covers how I stream sharp HD video quirks of the setup.
at home, and some interesting quirks of the setup.
redirect_from: redirect_from:
- /post/XcaM04o4/ - /post/XcaM04o4/
- /XcaM04o4/ - /XcaM04o4/
aliases: [/blog/2020/09/24/gopro-webcam] aliases:
- /blog/2020/09/24/gopro-webcam
- /blog/gopro-webcam
--- ---
It has been quite some fun writing about my workflows for various day-to-day things on this blog recently, and since I have been getting a lot of positive feedback from my last few workflow-related posts, I am planning to continue writing them. It has been quite some fun writing about my workflows for various day-to-day things on this blog recently, and since I have been getting a lot of positive feedback from my last few workflow-related posts, I am planning to continue writing them.

View File

@ -1,20 +1,21 @@
--- ---
layout: page layout: page
title: "Reading metadata from a bitmap file" title: Reading metadata from a bitmap file
description: "A project writeup" description: A project writeup
date: 2020-10-01 date: 2020-10-01
written: 2020-09-15 written: 2020-09-15
tags: project c images tags: project c images
extra: extra:
excerpt: >- excerpt: Inspired from one of my friend's projects, I built a small tool for displaying
Inspired from one of my friend's projects, I built a small bitmap file info from the command line.
tool for displaying bitmap file info from the command line.
redirect_from: redirect_from:
- /post/XcaMdj2m/ - /post/XcaMdj2m/
- /XcaMdj2m/ - /XcaMdj2m/
uses: uses:
- github-cards - github-cards
aliases: [/blog/2020/10/01/reading-a-bitmap] aliases:
- /blog/2020/10/01/reading-a-bitmap
- /blog/reading-a-bitmap
--- ---
Recently, @rsninja722 was telling me about [a project](https://github.com/rsninja722/file2bmp) he was working on. The basic idea is that you pass a file into his program, and it generates a bitmap of the binary data. This was inspired by [an old post of mine](/post/ef7b3166) where I did the same thing with a horribly written Python script and the library [`pillow`](https://github.com/python-pillow/Pillow). Recently, @rsninja722 was telling me about [a project](https://github.com/rsninja722/file2bmp) he was working on. The basic idea is that you pass a file into his program, and it generates a bitmap of the binary data. This was inspired by [an old post of mine](/post/ef7b3166) where I did the same thing with a horribly written Python script and the library [`pillow`](https://github.com/python-pillow/Pillow).

View File

@ -5,17 +5,20 @@ description: Easy-to-use Google Drive integration for Linux using rclone
date: 2020-10-15 date: 2020-10-15
written: 2020-09-22 written: 2020-09-22
tags: tags:
- linux - linux
- workflow - workflow
- google - google
- walkthrough - walkthrough
extra: 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." 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: redirect_from:
- /post/XcaM0k24/ - /post/XcaM0k24/
- /XcaM0k24/ - /XcaM0k24/
aliases: aliases:
- /blog/2020/10/15/mounting-google-drives - /blog/2020/10/15/mounting-google-drives
- /blog/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. 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,19 @@
--- ---
layout: page layout: page
title: "Using Bazel to create Minecraft modpacks" title: Using Bazel to create Minecraft modpacks
description: "An overview of how I automated the build process for CorePack" description: An overview of how I automated the build process for CorePack
date: 2020-10-24 date: 2020-10-24
written: 2020-09-27 written: 2020-09-27
tags: bazel workflow git minecraft tags: bazel workflow git minecraft
extra: extra:
excerpt: >- excerpt: I decided to modernize my system for producing builds of my personal Minecraft
I decided to modernize my system for producing builds of my personal Minecraft modpack using the Bazel buildsystem. modpack using the Bazel buildsystem.
redirect_from: redirect_from:
- /post/XlA00k24/ - /post/XlA00k24/
- /XlA00k24/ - /XlA00k24/
aliases: [/blog/2020/10/24/corepack-development] aliases:
- /blog/2020/10/24/corepack-development
- /blog/corepack-development
--- ---
*All content of this post is based around the work I did [here](https://github.com/Ewpratten/corepack)* *All content of this post is based around the work I did [here](https://github.com/Ewpratten/corepack)*

View File

@ -1,17 +1,19 @@
--- ---
layout: page layout: page
title: "Connecting to a Minecraft server over IRC" title: Connecting to a Minecraft server over IRC
description: "For server administration, or just chatting with friends" description: For server administration, or just chatting with friends
date: 2020-11-21 date: 2020-11-21
written: 2020-10-25 written: 2020-10-25
tags: minecraft project irc tags: minecraft project irc
extra: extra:
excerpt: >- excerpt: This post outlines the process of writing a custom IRC server that can
This post outlines the process of writing a custom IRC server that can bridge between your favorite IRC client, and any Minecraft server bridge between your favorite IRC client, and any Minecraft server
redirect_from: redirect_from:
- /post/lls5jkd4/ - /post/lls5jkd4/
- /lls5jkd4/ - /lls5jkd4/
aliases: [/blog/2020/11/21/minecraft-irc] aliases:
- /blog/2020/11/21/minecraft-irc
- /blog/minecraft-irc
--- ---
As I talked about in my post [about Minecraft modpack development](/blog/2020/10/24/corepack-development), I got back in to playing Minecraft earlier this year. I primairly play on a server full of friends, where the server owner has [dynmap](https://github.com/webbukkit/dynmap) installed. Dynmap is a handy tool that provides a near-real-time overview of the minecraft world in the form of a webapp. I always keep Dynmap open on my laptop so I can chat with whoever is online, and see whats being worked on. As I talked about in my post [about Minecraft modpack development](/blog/2020/10/24/corepack-development), I got back in to playing Minecraft earlier this year. I primairly play on a server full of friends, where the server owner has [dynmap](https://github.com/webbukkit/dynmap) installed. Dynmap is a handy tool that provides a near-real-time overview of the minecraft world in the form of a webapp. I always keep Dynmap open on my laptop so I can chat with whoever is online, and see whats being worked on.

View File

@ -1,20 +1,22 @@
--- ---
layout: page layout: page
title: "My first mechanical keyboard: The Vortex Core" title: 'My first mechanical keyboard: The Vortex Core'
description: Just the right amount of obscure description: Just the right amount of obscure
date: 2020-11-06 date: 2020-11-06
written: 2020-09-28 written: 2020-09-28
tags: tags:
- keyboards - keyboards
- workflow - workflow
- product - product
extra: extra:
excerpt: I recently purchased my first mechanical keyboard, and decided to go "all in" with a 40% layout. excerpt: I recently purchased my first mechanical keyboard, and decided to go "all
in" with a 40% layout.
redirect_from: redirect_from:
- /post/XlPl0k24/ - /post/XlPl0k24/
- /XlPl0k24/ - /XlPl0k24/
aliases: aliases:
- /blog/2020/11/06/vortex-core - /blog/2020/11/06/vortex-core
- /blog/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. 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.
@ -71,4 +73,3 @@ Speaking of flashing the board, with the MPC firmware, the process for loading c
Well, that depends. If you are the type of person to customize everything for maximum efficiency, go for it! The Vortex Core is a very nice keyboard with more configurability than I can wrap my head around (even if you need a third party tool to do so). If you just want something simple, stick to a 60% keyboard. The lack of numbers on the core drives many people crazy. Well, that depends. If you are the type of person to customize everything for maximum efficiency, go for it! The Vortex Core is a very nice keyboard with more configurability than I can wrap my head around (even if you need a third party tool to do so). If you just want something simple, stick to a 60% keyboard. The lack of numbers on the core drives many people crazy.
For programmers: you basically need to remap your keys. Most common keys (brackets, quotes, operators, ...) are hidden behind one or two function keys, and the learning curve might hurt for the first week or so. For programmers: you basically need to remap your keys. Most common keys (brackets, quotes, operators, ...) are hidden behind one or two function keys, and the learning curve might hurt for the first week or so.

View File

@ -1,22 +1,24 @@
--- ---
layout: page layout: page
title: How I have tweaked my Minecraft client to be 'just right' 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 description: Pushing the boundaries of a vanilla game, while being able to play on
un-modified servers
date: 2020-12-19 date: 2020-12-19
written: 2020-12-04 written: 2020-12-04
tags: tags:
- project - project
- minecraft - minecraft
extra: 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. 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: redirect_from:
- /post/gas49g43/ - /post/gas49g43/
- /gas49g43/ - /gas49g43/
aliases: aliases:
- /blog/2020/12/19/vanilla-plus-mods - /blog/2020/12/19/vanilla-plus-mods
- /blog/vanilla-plus-mods
--- ---
## The base game ## The base game
Starting out at the base game. I like to keep this fairly up-to-date. Right now, my base game is version [`1.16.4`](https://minecraft.gamepedia.com/Java_Edition_1.16.4). Along with the base game, my game launcher of choice, [MultiMC](https://multimc.org/), allows using a custom [LWJGL](https://www.lwjgl.org/) version. I choose to use version `3.2.2`, as it is the most stable for me. Starting out at the base game. I like to keep this fairly up-to-date. Right now, my base game is version [`1.16.4`](https://minecraft.gamepedia.com/Java_Edition_1.16.4). Along with the base game, my game launcher of choice, [MultiMC](https://multimc.org/), allows using a custom [LWJGL](https://www.lwjgl.org/) version. I choose to use version `3.2.2`, as it is the most stable for me.

View File

@ -5,15 +5,17 @@ description: I wrote a lot of code this year. This post looks back on it all
date: 2020-12-31 date: 2020-12-31
written: 2020-12-09 written: 2020-12-09
tags: tags:
- project - project
- frc - frc
extra: extra:
excerpt: 2020 has been my most productive year so far in terms of software development. This post looks back at the year excerpt: 2020 has been my most productive year so far in terms of software development.
This post looks back at the year
redirect_from: redirect_from:
- /post/g494l5j3/ - /post/g494l5j3/
- /g494l5j3/ - /g494l5j3/
aliases: aliases:
- /blog/2020/12/31/year-wrapup - /blog/2020/12/31/year-wrapup
- /blog/year-wrapup
--- ---
*So, whats up with 2020?* For readers who do not know me personally, here is a quick overview: *So, whats up with 2020?* For readers who do not know me personally, here is a quick overview:
@ -83,4 +85,3 @@ People who know me in real life know of a bit of a challenge I set for myself a
### This website ### This website
I have now experimented with three posting schedules for this website: monthly, bi-weekly, and weekly. Monthly posts were too spread-apart, and left this site feeling a little empty. I switched to weekly posting through the summer, which worked out great. Since school started again, I have moved to bi-weekly posts, writing each post a few weeks before publishing it (hover over the date of any post to see the date I wrote it). The bi-weekly system seems to be working very well, and I will likely stick to it until summer 2021, so enjoy more content fairly regularly (and remember to subscribe to my [RSS Feed](/feed.xml)). I have now experimented with three posting schedules for this website: monthly, bi-weekly, and weekly. Monthly posts were too spread-apart, and left this site feeling a little empty. I switched to weekly posting through the summer, which worked out great. Since school started again, I have moved to bi-weekly posts, writing each post a few weeks before publishing it (hover over the date of any post to see the date I wrote it). The bi-weekly system seems to be working very well, and I will likely stick to it until summer 2021, so enjoy more content fairly regularly (and remember to subscribe to my [RSS Feed](/feed.xml)).

View File

@ -1,17 +1,19 @@
--- ---
layout: page layout: page
title: "Upgrading my chromebook" title: Upgrading my chromebook
description: "The process of installing GalliumOS on an ACER R11" description: The process of installing GalliumOS on an ACER R11
date: 2020-12-04 date: 2020-12-04
written: 2020-10-31 written: 2020-10-31
tags: project laptop hardware tags: project laptop hardware
extra: extra:
excerpt: >- excerpt: Performing some upgrades to my old laptop. This post outlines the setup
Performing some upgrades to my old laptop. This post outlines the setup process for installing GalliumOS process for installing GalliumOS
redirect_from: redirect_from:
- /post/gk3jEkd4/ - /post/gk3jEkd4/
- /gk3jEkd4/ - /gk3jEkd4/
aliases: [/blog/2020/12/04/galliumos] aliases:
- /blog/2020/12/04/galliumos
- /blog/galliumos
--- ---
My previous development laptop was an [Acer R11](https://www.acer.com/ac/en/CA/content/series/acerchromebookr11) chromebook. I always ran it in [developer mode](https://chromium.googlesource.com/chromiumos/docs/+/master/developer_mode.md) with all the Linux packages I needed installed via [chromebrew](https://github.com/skycocker/chromebrew). This setup worked great except for GUI programs, as (at the time), the built-in [Wayland](https://en.wikipedia.org/wiki/Wayland_(display_server_protocol)) server on the chromebook was not exposed to the user in a meaningful way. I relied on an internal tool from Google called [sommelier](https://chromium.googlesource.com/chromiumos/platform2/+/HEAD/vm_tools/sommelier/) to translate X11 calls to the internal Wayland server. None of this was ideal, but with a lot of scripts and aliases, I made it work. My previous development laptop was an [Acer R11](https://www.acer.com/ac/en/CA/content/series/acerchromebookr11) chromebook. I always ran it in [developer mode](https://chromium.googlesource.com/chromiumos/docs/+/master/developer_mode.md) with all the Linux packages I needed installed via [chromebrew](https://github.com/skycocker/chromebrew). This setup worked great except for GUI programs, as (at the time), the built-in [Wayland](https://en.wikipedia.org/wiki/Wayland_(display_server_protocol)) server on the chromebook was not exposed to the user in a meaningful way. I relied on an internal tool from Google called [sommelier](https://chromium.googlesource.com/chromiumos/platform2/+/HEAD/vm_tools/sommelier/) to translate X11 calls to the internal Wayland server. None of this was ideal, but with a lot of scripts and aliases, I made it work.

View File

@ -5,15 +5,18 @@ description: Using socat to port-forward between network interfaces
date: 2021-01-16 date: 2021-01-16
written: 2020-12-19 written: 2020-12-19
tags: tags:
- project - project
- tutorial - tutorial
extra: 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. 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: redirect_from:
- /post/g494ld99/ - /post/g494ld99/
- /g494ld99/ - /g494ld99/
aliases: aliases:
- /blog/2021/01/16/printer-tunneling - /blog/2021/01/16/printer-tunneling
- /blog/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. 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

@ -5,16 +5,18 @@ description: A free and secure way to host personal Java libraries and applicati
date: 2021-02-25 date: 2021-02-25
written: 2021-02-22 written: 2021-02-22
tags: tags:
- maven - maven
- project - project
- java - java
extra: 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) 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: redirect_from:
- /post/g4lk45j3/ - /post/g4lk45j3/
- /g4lk45j3/ - /g4lk45j3/
aliases: aliases:
- /blog/2021/02/25/kbfs-maven - /blog/2021/02/25/kbfs-maven
- /blog/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: 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

@ -5,17 +5,19 @@ description: Open-source firmware on a closed-source keyboard
date: 2021-03-14 date: 2021-03-14
written: 2021-03-14 written: 2021-03-14
tags: tags:
- project - project
- keyboards - keyboards
- firmware - firmware
- walkthrough - walkthrough
extra: 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. 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: redirect_from:
- /post/gkedkd93/ - /post/gkedkd93/
- /gkedkd93/ - /gkedkd93/
aliases: aliases:
- /blog/2021/03/14/qmk-vortex-core - /blog/2021/03/14/qmk-vortex-core
- /blog/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. 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

@ -5,18 +5,20 @@ description: How I set up my feature-packed APRS digipeater for under $100
date: 2021-04-20 date: 2021-04-20
written: 2021-04-20 written: 2021-04-20
tags: tags:
- project - project
- raspberrypi - raspberrypi
- aprs - aprs
- walkthrough - walkthrough
- radio - radio
extra: 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. 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: redirect_from:
- /post/eb0klDd9/ - /post/eb0klDd9/
- /eb0klDd9/ - /eb0klDd9/
aliases: aliases:
- /blog/2021/04/20/direwolf-aprs - /blog/2021/04/20/direwolf-aprs
- /blog/direwolf-aprs
--- ---
***WARNING:** To replicate this project, you **must** be the holder of an amateur radio license in your country* ***WARNING:** To replicate this project, you **must** be the holder of an amateur radio license in your country*

View File

@ -5,12 +5,14 @@ description: A tutorial for future me
date: 2021-07-07 date: 2021-07-07
written: 2021-07-07 written: 2021-07-07
tags: tags:
- reference - reference
- tutorial - tutorial
extra: extra:
excerpt: I commonly need to configure SSH servers on remote Windows 10 boxes. This post covers the whole process. excerpt: I commonly need to configure SSH servers on remote Windows 10 boxes. This
post covers the whole process.
aliases: aliases:
- /blog/2021/07/07/windows-ssh - /blog/2021/07/07/windows-ssh
- /blog/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. 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

@ -5,11 +5,15 @@ description: Reference material for my friends
date: 2021-09-28 date: 2021-09-28
written: 2021-09-28 written: 2021-09-28
tags: tags:
- reference - reference
- frc - frc
- hardware - hardware
extra: 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.
aliases:
- /blog/frc-tech-reference
--- ---
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,15 +1,18 @@
--- ---
layout: page layout: page
title: "Adventures in BGP: routing my own public IPv4 address space" title: 'Adventures in BGP: routing my own public IPv4 address space'
description: A college student, playing with the "big boys" description: A college student, playing with the "big boys"
date: 2021-11-14 date: 2021-11-14
tags: tags:
- reference - reference
- amprnet - amprnet
- bgp - bgp
- networking - networking
extra: 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.
aliases:
- /blog/amprnet-bgp
--- ---
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. 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

@ -4,13 +4,16 @@ title: A rusty guide to quaternions
description: Fast and efficient 3D object manipulation description: Fast and efficient 3D object manipulation
date: 2021-12-03 date: 2021-12-03
tags: tags:
- reference - reference
- math - math
draft: false draft: false
extra: extra:
uses: uses:
- katex - katex
excerpt: This post is an overview of Quaternions for Rust programmers, and anyone willing to learn. excerpt: This post is an overview of Quaternions for Rust programmers, and anyone
willing to learn.
aliases:
- /blog/quaternions
--- ---
The running joke in the graphics programming world is that nobody understands quaternions. These big scary math-filled types are always <em>someone else's problem</em>. While quaternions <del>are</del> may be scary, they serve an important purpose in the world of computing as they The running joke in the graphics programming world is that nobody understands quaternions. These big scary math-filled types are always <em>someone else's problem</em>. While quaternions <del>are</del> may be scary, they serve an important purpose in the world of computing as they

View File

@ -1,13 +1,16 @@
--- ---
layout: page layout: page
title: "Unfinished projects and failed ideas" title: Unfinished projects and failed ideas
description: "A walkthrough of my private GitHub repos" description: A walkthrough of my private GitHub repos
date: 2022-01-06 date: 2022-01-06
tags: random tags: random
draft: false draft: false
extra: extra:
excerpt: My GitHub profile is a bit like an iceberg. At the time of writing, I have
excerpt: My GitHub profile is a bit like an iceberg. At the time of writing, I have made nearly 8 and a half thousand commits to nearly a thousand repositories. This post covers the hidden failed projects. made nearly 8 and a half thousand commits to nearly a thousand repositories. This
post covers the hidden failed projects.
aliases:
- /blog/unfinished-projects
--- ---
My [GitHub profile](https://github.com/Ewpratten) is a bit like an iceberg. At the time of writing, I have made nearly 8 and a half thousand commits to nearly a thousand repositories. Since July 2018, I have made an effort to go no more than 3 consecutive days without writing code, and I have only broken that streak 6 times (each of those being a 4-day break). My [GitHub profile](https://github.com/Ewpratten) is a bit like an iceberg. At the time of writing, I have made nearly 8 and a half thousand commits to nearly a thousand repositories. Since July 2018, I have made an effort to go no more than 3 consecutive days without writing code, and I have only broken that streak 6 times (each of those being a 4-day break).

View File

@ -4,12 +4,15 @@ title: Monocular depth mapping in Blender
description: My 3D pipeline is backed by neural networks description: My 3D pipeline is backed by neural networks
date: 2022-01-19 date: 2022-01-19
tags: tags:
- random - random
- 3d-pipeline - 3d-pipeline
- python - python
draft: false draft: false
extra: 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. 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.
aliases:
- /blog/monocular-blender
--- ---
A while back, I encountered an interesting trend going on over on TikTok. People were turning their photos into videos with 3D camera movements. A while back, I encountered an interesting trend going on over on TikTok. People were turning their photos into videos with 3D camera movements.

View File

@ -1,13 +1,14 @@
--- ---
layout: page layout: page
title: "I built my own private telephone network" title: I built my own private telephone network
description: "Nobody makes phone calls anymore" description: Nobody makes phone calls anymore
date: 2022-02-14 date: 2022-02-14
tags: project pbx tags: project pbx
draft: true draft: true
extra: extra:
auto_center_images: true auto_center_images: true
aliases:
- /blog/personal-pbx
--- ---
Over the past few months, I have built my own [internet backbone router](/blog/amprnet-bgp) (and an [internet exchange](https://ffixp.net)). So logically, the next step is to branch off into telephony... *right?* Over the past few months, I have built my own [internet backbone router](/blog/amprnet-bgp) (and an [internet exchange](https://ffixp.net)). So logically, the next step is to branch off into telephony... *right?*

View File

@ -1,13 +1,14 @@
--- ---
layout: page layout: page
title: "I built a slightly infuriating keyboard" title: I built a slightly infuriating keyboard
description: "Re-learning how to type at 18" description: Re-learning how to type at 18
date: 2022-02-26 date: 2022-02-26
tags: project keyboard tags: project keyboard
draft: true draft: true
extra: extra:
auto_center_images: true auto_center_images: true
aliases:
- /blog/ferris-sweep
--- ---
After getting myself in to the world of customized mechanical keyboards with my [vortex core](/blog/2020-11-6-vortex-core) two years ago, I have proceeded to dive further into the hobby by [modifying keyboard firmware](/blog/qmk-vortex-core) and eventually building myself a TG4X for daily use. The TG4X has been a great keyboard, and my muscle memory has completely switched over to the quirks of using a 40% layout in daily use. After getting myself in to the world of customized mechanical keyboards with my [vortex core](/blog/2020-11-6-vortex-core) two years ago, I have proceeded to dive further into the hobby by [modifying keyboard firmware](/blog/qmk-vortex-core) and eventually building myself a TG4X for daily use. The TG4X has been a great keyboard, and my muscle memory has completely switched over to the quirks of using a 40% layout in daily use.

View File

@ -1,15 +1,17 @@
--- ---
layout: page layout: page
title: "A Java development cheatsheet for my classmates" title: A Java development cheatsheet for my classmates
description: "PROG10082: Reference Material" description: 'PROG10082: Reference Material'
date: 2022-03-15 date: 2022-03-15
tags: reference tags: reference
draft: true draft: true
extra: extra:
excerpt: This document is written for my PROG10082 classmates as a quick reference for some Java concepts that were skipped over in the course. excerpt: This document is written for my PROG10082 classmates as a quick reference
for some Java concepts that were skipped over in the course.
hidden: true hidden: true
auto_center_images: true auto_center_images: true
aliases:
- /blog/java-cheatsheet
--- ---
This document is written for my PROG10082 classmates as a quick reference for some Java concepts that were skipped over in the course. This document may be updated as needed. This document is written for my PROG10082 classmates as a quick reference for some Java concepts that were skipped over in the course. This document may be updated as needed.

View File

@ -4,11 +4,14 @@ title: Making my UDM-Pro scream
description: Remote fan control for the Unifi Dream Machine Pro description: Remote fan control for the Unifi Dream Machine Pro
date: 2022-04-06 date: 2022-04-06
tags: tags:
- random - random
- hardware - hardware
draft: false draft: false
extra: extra:
excerpt: A project review post covering my work on remote-control for the UDM-Pro cooling system excerpt: A project review post covering my work on remote-control for the UDM-Pro
cooling system
aliases:
- /blog/udm-fan
--- ---
[Ubiquiti](https://www.ui.com/)'s [Unifi Dream Machine Pro](https://www.ubnt.com/products/unifi-dream-machine-pro) is a powerful medium-scale business-oriented rack-mount router, capable of handling 10/100/1000/10000 ethernet traffic. Really quite a nice device. [Ubiquiti](https://www.ui.com/)'s [Unifi Dream Machine Pro](https://www.ubnt.com/products/unifi-dream-machine-pro) is a powerful medium-scale business-oriented rack-mount router, capable of handling 10/100/1000/10000 ethernet traffic. Really quite a nice device.

View File

@ -4,13 +4,15 @@ title: The angle problem
description: A look at a slightly infuriating robotics problem description: A look at a slightly infuriating robotics problem
date: 2022-04-11 date: 2022-04-11
tags: tags:
- frc - frc
draft: true draft: true
extra: extra:
uses: uses:
- katex - katex
excerpt: In this post, I take a look at a mathematical problem commonly encountered with relative rotation offset calculation in robotics. excerpt: In this post, I take a look at a mathematical problem commonly encountered
with relative rotation offset calculation in robotics.
aliases:
- /blog/angle-problem
--- ---
In robotics, a common task is calculating the shortest arc between two rotational offsets. Such a task finds itself in turrets and other mechanisms requiring planar rotation. In robotics, a common task is calculating the shortest arc between two rotational offsets. Such a task finds itself in turrets and other mechanisms requiring planar rotation.

View File

@ -1,12 +1,13 @@
--- ---
layout: page layout: page
title: "Album Release: Space & Time Vol. 1" title: 'Album Release: Space & Time Vol. 1'
description: "New music from Evan Pratten" description: New music from Evan Pratten
date: 2022-05-10 date: 2022-05-10
tags: music tags: music
draft: true draft: true
extra: extra:
auto_center_images: true auto_center_images: true
excerpt: Release notification for Space & Time Vol. 1 excerpt: Release notification for Space & Time Vol. 1
aliases:
- /blog/album-space-time
--- ---

View File

@ -4,12 +4,15 @@ title: Commit syncing across hosted GIT instances
description: How I keep my commit graph alive description: How I keep my commit graph alive
date: 2022-05-18 date: 2022-05-18
tags: tags:
- random - random
- git - git
draft: false draft: false
extra: extra:
auto_center_images: true 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. excerpt: This post covers how to keep your commit graph alive across multiple GIT
instances by syncing your commit history to magic repos.
aliases:
- /blog/commit-sync
--- ---
Since September of 2018 (3 and a half years ago) I have been roughly holding a streak of going no more than three days without making a commit to some project on GitHub. Since September of 2018 (3 and a half years ago) I have been roughly holding a streak of going no more than three days without making a commit to some project on GitHub.
@ -99,4 +102,3 @@ Importantly, the `--allow-empty` flag removes the requirement for any files to b
## Conclusion ## Conclusion
Uh, ya. Cool. With your scripting language of choice, you can chain these commands together, toss a `git push` in there, stick this in a cron job, and have yourself a nice, healthy commit graph. Uh, ya. Cool. With your scripting language of choice, you can chain these commands together, toss a `git push` in there, stick this in a cron job, and have yourself a nice, healthy commit graph.

View File

@ -1,17 +1,19 @@
--- ---
layout: page layout: page
title: "Field Log: First look at the NanoVNA" title: 'Field Log: First look at the NanoVNA'
description: Weekends are prime radio time description: Weekends are prime radio time
date: 2022-05-21 date: 2022-05-21
tags: tags:
- radio - radio
- random - random
- nanovna - nanovna
- product - product
draft: false draft: false
extra: extra:
auto_center_images: true auto_center_images: true
excerpt: I went out in the field and tried out my brand new NanoVNA. excerpt: I went out in the field and tried out my brand new NanoVNA.
aliases:
- /blog/nanovna
--- ---
Today I had a rather anticipated package arrive in the mail.. a NanoVNA! For anyone unfamiliar with the NanoVNA, it is a *small* and cheap [Vector Network Analyzer](https://en.wikipedia.org/wiki/Network_analyzer_(electrical)). Today I had a rather anticipated package arrive in the mail.. a NanoVNA! For anyone unfamiliar with the NanoVNA, it is a *small* and cheap [Vector Network Analyzer](https://en.wikipedia.org/wiki/Network_analyzer_(electrical)).

View File

@ -1,14 +1,17 @@
--- ---
layout: page layout: page
title: "How I hacked full IPv6 support into a Bell residential network" title: How I hacked full IPv6 support into a Bell residential network
description: "Circumventing nearly everything my ISP has set up in the name of public IPv6 addresses for my friends" description: Circumventing nearly everything my ISP has set up in the name of public
IPv6 addresses for my friends
date: 2022-06-08 date: 2022-06-08
tags: networking tags: networking
draft: true draft: true
extra: extra:
auto_center_images: true auto_center_images: true
excerpt: I used multiple layers of IP encapsulation to evade an upstream firewall in the name of IPv6. excerpt: I used multiple layers of IP encapsulation to evade an upstream firewall
in the name of IPv6.
aliases:
- /blog/bell-ipv6
--- ---
> At this point, I feel like I should actually just start my own ISP. > At this point, I feel like I should actually just start my own ISP.

View File

@ -4,13 +4,15 @@ title: Getting Visual Paradigm to launch on Fedora 36
description: Bundle your libraries correctly, kids description: Bundle your libraries correctly, kids
date: 2022-06-13 date: 2022-06-13
tags: tags:
- random - random
- tutorial - tutorial
- reference - reference
draft: false draft: false
extra: extra:
auto_center_images: true auto_center_images: true
excerpt: A quick guide on launching Visual Paradigm on Fedora 36 excerpt: A quick guide on launching Visual Paradigm on Fedora 36
aliases:
- /blog/fedora-36-vp
--- ---
When installing [Visual Paradigm](https://www.visual-paradigm.com/) on my Fedora workstation today, I kept running into a `SIGSEGV` error, causing the bundled JVM to crash. When installing [Visual Paradigm](https://www.visual-paradigm.com/) on my Fedora workstation today, I kept running into a `SIGSEGV` error, causing the bundled JVM to crash.

View File

@ -4,12 +4,15 @@ title: Using a Steam Controller with the Nintendo Switch
description: An unreasonably cursed setup for zero gain description: An unreasonably cursed setup for zero gain
date: 2022-06-23 date: 2022-06-23
tags: tags:
- random - random
- hardware - hardware
draft: false draft: false
extra: extra:
auto_center_images: true auto_center_images: true
excerpt: How to flash custom firmware to the Steam Controller, allowing it to connect to the Nintendo Switch excerpt: How to flash custom firmware to the Steam Controller, allowing it to connect
to the Nintendo Switch
aliases:
- /blog/steam-controller-switch
--- ---
Remember the [Steam Controller](https://store.steampowered.com/app/353370/Steam_Controller/)? Remember the [Steam Controller](https://store.steampowered.com/app/353370/Steam_Controller/)?

View File

@ -4,12 +4,15 @@ title: Rickrolling the internet
description: Abusing ICMPv6 to inject lyrics into public routes description: Abusing ICMPv6 to inject lyrics into public routes
date: 2022-06-26 date: 2022-06-26
tags: tags:
- random - random
- networking - networking
draft: false draft: false
extra: extra:
auto_center_images: true auto_center_images: true
excerpt: This post covers some of the logistics behind rickrolling the internet with some clever routing tricks. excerpt: This post covers some of the logistics behind rickrolling the internet
with some clever routing tricks.
aliases:
- /blog/rickrolling-the-internet
--- ---
**NOTICE: The service mentioned in this post is currently unavailable due to ongoing network upgrades.** **NOTICE: The service mentioned in this post is currently unavailable due to ongoing network upgrades.**

View File

@ -4,12 +4,15 @@ title: My journey through robotics
description: 5 years of self-taught robotics development, recapped description: 5 years of self-taught robotics development, recapped
date: 2022-07-02 date: 2022-07-02
tags: tags:
- story - story
- frc - frc
draft: true draft: true
extra: extra:
auto_center_images: true auto_center_images: true
excerpt: From 2016 to 2021, I dedicated most of my time to robotics and control systems programming. This is my journey excerpt: From 2016 to 2021, I dedicated most of my time to robotics and control
systems programming. This is my journey
aliases:
- /blog/robotics-journey
--- ---
My very first introduction to robotics was back in 2014, when I took an autonomous programming workshop as a part of a bigger summer engineering event at [Western University](https://www.uwo.ca/). A few years later, I ended up beginning a stint of robotics work through two different competitive robotics teams. My very first introduction to robotics was back in 2014, when I took an autonomous programming workshop as a part of a bigger summer engineering event at [Western University](https://www.uwo.ca/). A few years later, I ended up beginning a stint of robotics work through two different competitive robotics teams.

View File

@ -4,12 +4,15 @@ title: I am my own ISP
description: The next stage in my hobby network description: The next stage in my hobby network
date: 2022-08-17 date: 2022-08-17
tags: tags:
- networking - networking
- bgp - bgp
draft: true draft: true
extra: extra:
auto_center_images: true auto_center_images: true
excerpt: I recently started AS398057, a low cost Autonomous System. This post talks about how its going excerpt: I recently started AS398057, a low cost Autonomous System. This post talks
about how its going
aliases:
- /blog/as398057
--- ---
Last year, I [dipped my toes in BGP](/blog/amprnet-bgp) while learning how to set up the infrastructure needed to route a public IPv4 address prefix to the world. A lot has changed since then, and I have fallen further into the world of network engineering and backbone routing. Last year, I [dipped my toes in BGP](/blog/amprnet-bgp) while learning how to set up the infrastructure needed to route a public IPv4 address prefix to the world. A lot has changed since then, and I have fallen further into the world of network engineering and backbone routing.

View File

@ -4,11 +4,13 @@ title: Website updates
description: Changing a few things in the background description: Changing a few things in the background
date: 2022-09-09 date: 2022-09-09
tags: tags:
- meta - meta
draft: false draft: false
extra: extra:
auto_center_images: true auto_center_images: true
excerpt: A small update post about some website changes excerpt: A small update post about some website changes
aliases:
- /blog/new-domain
--- ---
Hello! Its been a bit since the last post made it out of the drafts (I promise, there are many in the works). I figure a little public update is needed to talk about some backend changes that have recently been made to this site. Hello! Its been a bit since the last post made it out of the drafts (I promise, there are many in the works). I figure a little public update is needed to talk about some backend changes that have recently been made to this site.
@ -18,4 +20,3 @@ Firstly, there is a new domain name! I should have done this a while ago, but no
Secondly, this site is now anycasted and edge cached. Hopefully this change will make the browsing experience a little faster for viewers outside of North America. [HTTP/3](https://en.wikipedia.org/wiki/HTTP/3) is now supported too. In the future, I might even set up some older protocols (Gopher, FTP, ..telnet..?) for fun. Info on that will come in a later post. Secondly, this site is now anycasted and edge cached. Hopefully this change will make the browsing experience a little faster for viewers outside of North America. [HTTP/3](https://en.wikipedia.org/wiki/HTTP/3) is now supported too. In the future, I might even set up some older protocols (Gopher, FTP, ..telnet..?) for fun. Info on that will come in a later post.
Anyways, thanks for reading. I'm always amazed to see my analytics data. A surprising number of people read these posts :smile: Anyways, thanks for reading. I'm always amazed to see my analytics data. A surprising number of people read these posts :smile:

View File

@ -4,14 +4,16 @@ title: An analysis of personal ASNs in the wild
description: You can get a surprising amount of info from bulk whois description: You can get a surprising amount of info from bulk whois
date: 2022-10-02 date: 2022-10-02
tags: tags:
- project - project
- networking - networking
- bgp - bgp
- data-analysis - data-analysis
draft: false draft: false
extra: extra:
auto_center_images: true auto_center_images: true
excerpt: A look at the usage of personal ASNs based on freely available data excerpt: A look at the usage of personal ASNs based on freely available data
aliases:
- /blog/personal-ases
--- ---
As a [network operator](/network), I keep a fairly close eye on what my peers are up to. This is mainly to make sure nobody is doing something *too* stupid near my network, but also just out of curiosity. Its nice to know what other people are up to, both as a sanity check on my own network, and as a view into new things I could try out. As a [network operator](/network), I keep a fairly close eye on what my peers are up to. This is mainly to make sure nobody is doing something *too* stupid near my network, but also just out of curiosity. Its nice to know what other people are up to, both as a sanity check on my own network, and as a view into new things I could try out.

View File

@ -4,13 +4,16 @@ title: Announcing your AMPRNet prefix to Vultr with BGP
description: That how-to guide everyone keeps asking me to make description: That how-to guide everyone keeps asking me to make
date: 2022-10-17 date: 2022-10-17
tags: tags:
- amprnet - amprnet
- networking - networking
- bgp - bgp
draft: true draft: true
extra: extra:
auto_center_images: true auto_center_images: true
excerpt: A tutorial for AMPRNet operators who are BGP announcing their first prefix to Vultr excerpt: A tutorial for AMPRNet operators who are BGP announcing their first prefix
to Vultr
aliases:
- /blog/ampr-vultr-bgp
--- ---
Since I briefly [waved my hands over this topic](/blog/amprnet-bgp/) last year, I have gotten many emails and DMs from fellow amateur radio operators asking for help announcing their own `/24`s to the world. Since I briefly [waved my hands over this topic](/blog/amprnet-bgp/) last year, I have gotten many emails and DMs from fellow amateur radio operators asking for help announcing their own `/24`s to the world.

View File

@ -3,6 +3,8 @@ title: BGP peering over a WireGuard tunnel
description: Some notes on getting Bird and WireGuard to play nice description: Some notes on getting Bird and WireGuard to play nice
draft: true draft: true
tags: tags:
- networking - networking
- bgp - bgp
aliases:
- /blog/wireguard-bgp
--- ---

View File

@ -4,16 +4,18 @@ title: Announcing your AMPRNet prefix to Vultr with BGP
description: That how-to guide everyone keeps asking me to make description: That how-to guide everyone keeps asking me to make
date: 2022-10-17 date: 2022-10-17
tags: tags:
- amprnet - amprnet
- networking - networking
- bgp - bgp
draft: true draft: true
extra: extra:
auto_center_images: true auto_center_images: true
excerpt: A tutorial for AMPRNet operators who are BGP announcing their first prefix to Vultr excerpt: A tutorial for AMPRNet operators who are BGP announcing their first prefix
to Vultr
aliases:
- /blog/bird-udmpro
--- ---
```sh ```sh
unifi-os shell unifi-os shell
apt install build-essential libfl-dev libbison-dev libreadline-dev libncurses5-dev apt install build-essential libfl-dev libbison-dev libreadline-dev libncurses5-dev

View File

@ -4,11 +4,13 @@ title: Crudely geo-filtering internet routes
description: How I make routers drop traffic for certain countries description: How I make routers drop traffic for certain countries
date: 2022-11-04 date: 2022-11-04
tags: tags:
- networking - networking
draft: true draft: true
extra: extra:
auto_center_images: true auto_center_images: true
excerpt: excerpt: null
aliases:
- /blog/country-filtering
--- ---
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. 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.
@ -44,4 +46,3 @@ After pondering my options, I ended up choosing to just filter on the country of
If I were to update this filter regularly, I would try pulling [WHOIS](https://en.wikipedia.org/wiki/WHOIS) database dumps, parsing through the data, and creating a lookup table for this purpose. If I were to update this filter regularly, I would try pulling [WHOIS](https://en.wikipedia.org/wiki/WHOIS) database dumps, parsing through the data, and creating a lookup table for this purpose.
However, I really don't need to instantly catch networks as they are registered, and feel perfectly fine updating this filter every few months. Thus, the easy route. However, I really don't need to instantly catch networks as they are registered, and feel perfectly fine updating this filter every few months. Thus, the easy route.

View File

@ -1,13 +1,15 @@
--- ---
layout: page layout: page
title: "A brief walk through my all-time favorite songs" title: A brief walk through my all-time favorite songs
description: "..and crashing spotify clients in the process" description: ..and crashing spotify clients in the process
date: 2022-11-10 date: 2022-11-10
tags: music tags: music
draft: true draft: true
extra: extra:
auto_center_images: true auto_center_images: true
excerpt: excerpt: null
aliases:
- /blog/mega-playlists
--- ---
Music is a core part of my daily life. For about 13 hours straight each day, I have all kinds of tracks playing while I work on things. Having a constant stream of music playing is a habit I have held for years, it keeps some rhythm in my day, and at the same time gives me plenty of chances to find new tracks and artists to listen to. Music is a core part of my daily life. For about 13 hours straight each day, I have all kinds of tracks playing while I work on things. Having a constant stream of music playing is a habit I have held for years, it keeps some rhythm in my day, and at the same time gives me plenty of chances to find new tracks and artists to listen to.

View File

@ -1,13 +1,17 @@
--- ---
layout: page layout: page
title: "I re-implemented ls to query the Steam API" title: I re-implemented ls to query the Steam API
description: "gamels: never be confused about Steam appid direcroties again" description: 'gamels: never be confused about Steam appid direcroties again'
date: 2022-12-07 date: 2022-12-07
tags: project tags: project
draft: false draft: false
extra: extra:
auto_center_images: true auto_center_images: true
excerpt: "gamels will list all files in a directory in the style of 'ls -la', but will also show the name of any Steam game found in the listing. This utility was made to help me explore the filesystem of the Steam Deck." excerpt: gamels will list all files in a directory in the style of 'ls -la', but
will also show the name of any Steam game found in the listing. This utility was
made to help me explore the filesystem of the Steam Deck.
aliases:
- /blog/gamels
--- ---
Today, I released a new command-line tool called [`gamels`](https://github.com/ewpratten/gamels). Today, I released a new command-line tool called [`gamels`](https://github.com/ewpratten/gamels).

View File

@ -4,14 +4,17 @@ title: Lazy search for Mastodon accounts
description: Webfinger + Cloudflare Workers + Firefox custom search engines description: Webfinger + Cloudflare Workers + Firefox custom search engines
date: 2023-01-17 date: 2023-01-17
tags: tags:
- project - project
- javascript - javascript
draft: false draft: false
extra: extra:
auto_center_images: true auto_center_images: true
excerpt: I made a custom search prefix for my browser that can resolve ActivityPub accounts into their profile pages excerpt: I made a custom search prefix for my browser that can resolve ActivityPub
accounts into their profile pages
discuss: discuss:
reddit: https://www.reddit.com/r/ewpratten/comments/12xzulo/lazy_search_for_mastodon_accounts/ reddit: https://www.reddit.com/r/ewpratten/comments/12xzulo/lazy_search_for_mastodon_accounts/
aliases:
- /blog/webfinger-redir
--- ---
Anyone who has been using Mastodon (or other ActivityPub servers) for a bit might have noticed how its a little annoying to look up someone's "home profile" from their account handle. My personal flow goes something like: Anyone who has been using Mastodon (or other ActivityPub servers) for a bit might have noticed how its a little annoying to look up someone's "home profile" from their account handle. My personal flow goes something like:

View File

@ -4,13 +4,16 @@ title: Blatant self-advertising on the IPv6 Canvas
description: An ungodly amount of pings for a small bitmap description: An ungodly amount of pings for a small bitmap
date: 2023-02-07 date: 2023-02-07
tags: tags:
- random - random
draft: false draft: false
extra: extra:
auto_center_images: true auto_center_images: true
excerpt: Using some python, I have a reference to this website semi-permanently implanted on the IPv6 Canvas excerpt: Using some python, I have a reference to this website semi-permanently
implanted on the IPv6 Canvas
discuss: discuss:
reddit: https://www.reddit.com/r/ewpratten/comments/12xzvf9/blatant_selfadvertising_on_the_ipv6_canvas/ reddit: https://www.reddit.com/r/ewpratten/comments/12xzvf9/blatant_selfadvertising_on_the_ipv6_canvas/
aliases:
- /blog/ipv6-canvas
--- ---
Yesterday, the [IPv6 Canvas](https://blog.tugzrida.xyz/2023/02/06/introducing-the-ipv6-canvas/) was pushed to the public. Yesterday, the [IPv6 Canvas](https://blog.tugzrida.xyz/2023/02/06/introducing-the-ipv6-canvas/) was pushed to the public.
@ -37,4 +40,3 @@ This script is executed via a Cron job on one of my edge routers for maximum IP
### Why ping? ### Why ping?
I considered doing this with some clever `mtr` commands, or even crafting the ICMP ECHO packets straight from the script, but that was slightly too much work for the 5 minutes I had before work this morning. I considered doing this with some clever `mtr` commands, or even crafting the ICMP ECHO packets straight from the script, but that was slightly too much work for the 5 minutes I had before work this morning.

View File

@ -4,14 +4,17 @@ title: Some lesser known WireGuard settings
description: Things I will probably forget in an important moment description: Things I will probably forget in an important moment
date: 2023-02-15 date: 2023-02-15
tags: tags:
- random - random
- networking - networking
draft: false draft: false
extra: extra:
auto_center_images: true 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: discuss:
reddit: https://www.reddit.com/r/ewpratten/comments/12xzvun/some_lesser_known_wireguard_settings/ reddit: https://www.reddit.com/r/ewpratten/comments/12xzvun/some_lesser_known_wireguard_settings/
aliases:
- /blog/wireguard-options
--- ---
I extensively use [WireGuard](https://www.wireguard.com/) to keep various devices connected across foreign and unstable networks. Over the past few years of doing this, I've discovered a few handy configuration tricks that can help in weirdly specific situations. The following is a short overview to be used as reference in the future. I extensively use [WireGuard](https://www.wireguard.com/) to keep various devices connected across foreign and unstable networks. Over the past few years of doing this, I've discovered a few handy configuration tricks that can help in weirdly specific situations. The following is a short overview to be used as reference in the future.

View File

@ -4,13 +4,15 @@ title: Announcing your shiny new AMPRNet BGP allocation
description: A crash course on BGP for radio people description: A crash course on BGP for radio people
date: 2023-03-21 date: 2023-03-21
tags: tags:
- radio - radio
- amprnet - amprnet
- bgp - bgp
draft: true draft: true
extra: extra:
auto_center_images: true auto_center_images: true
excerpt: This post is a quick guide to announcing your shiny new AMPRNet BGP allocation excerpt: This post is a quick guide to announcing your shiny new AMPRNet BGP allocation
aliases:
- /blog/amprnet-bgp-announce
--- ---
So, you got yourself a shiny new [AMPRNet](https://ampr.org) BGP allocation. What's next? So, you got yourself a shiny new [AMPRNet](https://ampr.org) BGP allocation. What's next?

View File

@ -4,15 +4,18 @@ title: A script that hides AI topics from Hacker News
description: Sometimes I want to read about something different description: Sometimes I want to read about something different
date: 2023-03-21 date: 2023-03-21
tags: tags:
- random - random
- javascript - javascript
draft: false draft: false
extra: extra:
auto_center_images: true 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: discuss:
reddit: https://www.reddit.com/r/ewpratten/comments/12xzw5x/a_script_that_hides_ai_topics_from_hacker_news/ 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 hacker_news: https://news.ycombinator.com/item?id=35252186
aliases:
- /blog/hackernews-block-ai
--- ---
Ok. AI-backed tools are cool, but sometimes I just want to read about something else on the [Hacker News](https://news.ycombinator.com/news) website. Ok. AI-backed tools are cool, but sometimes I just want to read about something else on the [Hacker News](https://news.ycombinator.com/news) website.

View File

@ -4,13 +4,16 @@ title: What are people actually doing with APRS?
description: An analysis of worldwide APRS data description: An analysis of worldwide APRS data
date: 2023-03-23 date: 2023-03-23
tags: tags:
- radio - radio
- aprs - aprs
- data-analysis - data-analysis
draft: true draft: true
extra: extra:
auto_center_images: true 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
aliases:
- /blog/aprs-usage
--- ---
Sometimes I wonder how many people really use the amateur radio services I hear about. Sometimes I wonder how many people really use the amateur radio services I hear about.

View File

@ -1,14 +1,13 @@
--- ---
layout: page layout: page
title: "Purely client-side point-of-interest marking for multiplayer Minecraft" title: Purely client-side point-of-interest marking for multiplayer Minecraft
description: "A showcase of my latest Minecraft mod: Client Ping" description: 'A showcase of my latest Minecraft mod: Client Ping'
date: 2023-04-27 date: 2023-04-27
tags: minecraft tags: minecraft
draft: true draft: true
extra: extra:
auto_center_images: true auto_center_images: true
excerpt: "A showcase of my latest Minecraft mod: Client Ping" excerpt: 'A showcase of my latest Minecraft mod: Client Ping'
# discuss: aliases:
# reddit: https://www.reddit.com/r/ewpratten/comments/12xzw5x/a_script_that_hides_ai_topics_from_hacker_news/ - /blog/client-ping
# hacker_news: https://news.ycombinator.com/item?id=35252186
--- ---

View File

@ -4,8 +4,8 @@ title: I performed a button swap on my mouse
description: This had better not be my gateway drug into custom mice description: This had better not be my gateway drug into custom mice
date: 2023-05-01 date: 2023-05-01
tags: tags:
- random - random
- hardware - hardware
draft: false draft: false
extra: extra:
auto_center_images: true auto_center_images: true
@ -13,6 +13,8 @@ extra:
discuss: discuss:
reddit: https://www.reddit.com/r/ewpratten/comments/1356u1t/i_performed_a_button_swap_on_my_mouse/ 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 hacker_news: https://news.ycombinator.com/item?id=35781662
aliases:
- /blog/mouse-button-swap
--- ---
Recently, my mouse (a [Logitech M310](https://www.logitech.com/en-us/products/mice/m310-wireless-mouse.910-001917.html)) has been starting to give out on me, which I suppose is to be expected considering how much use my peripherals get, but is nevertheless annoying, considering that the failing component was the middle button, which I use a lot. Recently, my mouse (a [Logitech M310](https://www.logitech.com/en-us/products/mice/m310-wireless-mouse.910-001917.html)) has been starting to give out on me, which I suppose is to be expected considering how much use my peripherals get, but is nevertheless annoying, considering that the failing component was the middle button, which I use a lot.

View File

@ -4,12 +4,14 @@ title: Rainbow keyboard
description: Game-specific keyboard layouts are really handy description: Game-specific keyboard layouts are really handy
date: 2023-06-15 date: 2023-06-15
tags: tags:
- keyboards - keyboards
- random - random
draft: false draft: false
extra: extra:
auto_center_images: true auto_center_images: true
excerpt: This post shows off my custom keyboard layout for playing Rainbow Six Siege excerpt: This post shows off my custom keyboard layout for playing Rainbow Six Siege
aliases:
- /blog/rainbow-keyboard
--- ---
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). 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,17 +1,17 @@
--- ---
layout: page layout: page
title: "How I set up NAT64" title: How I set up NAT64
description: "Working towards single-stack inside AS54041" description: Working towards single-stack inside AS54041
date: 2023-06-16 date: 2023-06-16
tags: networking tags: networking
draft: true draft: true
extra: extra:
auto_center_images: true auto_center_images: true
excerpt: "Information on how I set up NAT64 inside AS54041" excerpt: Information on how I set up NAT64 inside AS54041
# discuss: uses:
# reddit: https://www.reddit.com/r/ewpratten/comments/1356u1t/i_performed_a_button_swap_on_my_mouse/ - mermaid
# hacker_news: https://news.ycombinator.com/item?id=35781662 aliases:
uses: [mermaid] - /blog/nat64
--- ---
Somewhere along the way of setting up AS54041 over the past few years I stumbled across a reference to [NAT64](https://en.wikipedia.org/wiki/NAT64). Somewhere along the way of setting up AS54041 over the past few years I stumbled across a reference to [NAT64](https://en.wikipedia.org/wiki/NAT64).
@ -72,4 +72,3 @@ graph LR
## How I set up NAT64 on a Debian-based router ## How I set up NAT64 on a Debian-based router
## Final Remarks ## Final Remarks

View File

@ -4,12 +4,14 @@ title: Setting up a static DNF repository
description: Hosting RPMs is less painful than I expected description: Hosting RPMs is less painful than I expected
date: 2023-07-05 date: 2023-07-05
tags: tags:
- linux - linux
- walkthrough - walkthrough
draft: false draft: false
extra: extra:
auto_center_images: true auto_center_images: true
excerpt: Information on how I set up dist.ewpratten.com, my DNF repository excerpt: Information on how I set up dist.ewpratten.com, my DNF repository
aliases:
- /blog/simple-dnf-repo
--- ---
<!-- 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. --> <!-- 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

@ -4,18 +4,21 @@ title: Building a VPN with an AMPRNet BGP allocation
description: A quick guide on using your shiny new AMPRNet allocation description: A quick guide on using your shiny new AMPRNet allocation
date: 2023-07-07 date: 2023-07-07
tags: tags:
- networking - networking
- amprnet - amprnet
- bgp - bgp
draft: false draft: false
extra: extra:
auto_center_images: true 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: discuss:
reddit: https://www.reddit.com/r/ewpratten/comments/14tdltu/building_a_vpn_with_an_amprnet_bgp_allocation/ 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 hacker_news: https://news.ycombinator.com/item?id=36635146
uses: uses:
- mermaid - mermaid
aliases:
- /blog/ampr-vpn
--- ---
One of the most common emails I receive from readers of this website generally starts with: One of the most common emails I receive from readers of this website generally starts with:

View File

@ -4,13 +4,15 @@ title: A homebrew sound card designed for the Baofeng UV-5R
description: Using cheap parts to programmatically transmit audio description: Using cheap parts to programmatically transmit audio
date: 2023-07-10 date: 2023-07-10
tags: tags:
- radio - radio
- project - project
draft: true draft: true
extra: extra:
auto_center_images: true auto_center_images: true
excerpt: This post describes how I homebrewed a sound card for my Baofeng UV-5R radios excerpt: This post describes how I homebrewed a sound card for my Baofeng UV-5R
radios
uses: uses:
- mermaid - mermaid
aliases:
- /blog/baofeng-sound-card
--- ---

View File

@ -4,15 +4,18 @@ title: Authoring Blog Posts with Obsidian
description: Trying a new way to write for this site description: Trying a new way to write for this site
date: 2023-10-20 date: 2023-10-20
tags: tags:
- meta - meta
- random - random
draft: true draft: true
extra: extra:
auto_center_images: true auto_center_images: true
excerpt: A post about authoring blog posts with Obsidian excerpt: A post about authoring blog posts with Obsidian
uses: uses:
- mermaid - mermaid
aliases:
- /blog/obsidian-blogging
--- ---
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. 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". 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".