Fix all aliases
This commit is contained in:
parent
2df76a0e09
commit
3736c13a85
2
.gitignore
vendored
2
.gitignore
vendored
@ -16,7 +16,7 @@ Cargo.lock
|
||||
.dev.vars
|
||||
|
||||
# Obsidian
|
||||
.obsidian/themes
|
||||
/content/.obsidian/themes
|
||||
.obsidian/appearance.json
|
||||
.obsidian/workspace.json
|
||||
|
||||
|
34
content/.obsidian/workspace.json
vendored
34
content/.obsidian/workspace.json
vendored
@ -40,9 +40,29 @@
|
||||
"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"
|
||||
@ -108,7 +128,6 @@
|
||||
"state": {
|
||||
"type": "backlink",
|
||||
"state": {
|
||||
"file": "blog/2019-08-11-Setting-up-JA.md",
|
||||
"collapseAll": false,
|
||||
"extraContext": false,
|
||||
"sortOrder": "alphabetical",
|
||||
@ -125,7 +144,6 @@
|
||||
"state": {
|
||||
"type": "outgoing-link",
|
||||
"state": {
|
||||
"file": "blog/2019-08-11-Setting-up-JA.md",
|
||||
"linksCollapsed": false,
|
||||
"unlinkedCollapsed": true
|
||||
}
|
||||
@ -147,9 +165,7 @@
|
||||
"type": "leaf",
|
||||
"state": {
|
||||
"type": "outline",
|
||||
"state": {
|
||||
"file": "blog/2019-08-11-Setting-up-JA.md"
|
||||
}
|
||||
"state": {}
|
||||
}
|
||||
},
|
||||
{
|
||||
@ -179,8 +195,10 @@
|
||||
"command-palette:Open command palette": false
|
||||
}
|
||||
},
|
||||
"active": "22ff53eb1a88a69b",
|
||||
"active": "593c8a945e0bc198",
|
||||
"lastOpenFiles": [
|
||||
"blog/2020-08-03-Joystick-to-Voltage.md",
|
||||
"blog/2019-08-11-Setting-up-JA.md",
|
||||
"blog/2018-06-27-BecomeRanter.md",
|
||||
"blog/2017-11-24-weatherballoon-lost.md",
|
||||
"blog/2019-06-12-Styiling-GitHub.md",
|
||||
@ -191,9 +209,7 @@
|
||||
"blog/frc-languages.md",
|
||||
"blog/2020-09-24-Gopro-Webcam.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-03-Joystick-to-Voltage.md",
|
||||
"blog/2019-06-23-googlectf.md",
|
||||
"blog/2022-07-02-robotics-journey.md",
|
||||
"blog/2020/08/23/notetaking-with-latex.md",
|
||||
|
@ -1,11 +1,14 @@
|
||||
---
|
||||
title: "We lost a weather balloon in another country"
|
||||
description: "..and made the news because of it"
|
||||
title: We lost a weather balloon in another country
|
||||
description: ..and made the news because of it
|
||||
date: 2017-11-24
|
||||
tags: news
|
||||
draft: false
|
||||
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!
|
||||
@ -31,4 +34,3 @@ Once found on the American side of the border, a corresponding article was writt
|
||||
## The balloon on the other side
|
||||
|
||||

|
||||
|
||||
|
@ -1,6 +1,7 @@
|
||||
---
|
||||
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 ++
|
||||
date: 2018-06-27
|
||||
tags:
|
||||
@ -9,9 +10,9 @@ tags:
|
||||
- walkthrough
|
||||
aliases:
|
||||
- /blog/2018/06/27/becomeranter
|
||||
- /blog/becomeranter
|
||||
---
|
||||
|
||||
|
||||
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.
|
||||
|
@ -1,5 +1,5 @@
|
||||
---
|
||||
title: "Robot reveal: HATCHField"
|
||||
title: 'Robot reveal: HATCHField'
|
||||
description: What I have been working on for the past few months
|
||||
date: 2019-02-20
|
||||
tags:
|
||||
@ -9,6 +9,8 @@ draft: false
|
||||
extra:
|
||||
excerpt: HATCHField is a competitive robot built by Raider Robotics.
|
||||
icon: las la-play
|
||||
aliases:
|
||||
- /blog/hatchfield
|
||||
---
|
||||
|
||||
My roles in this project included:
|
||||
|
@ -7,6 +7,7 @@ tags:
|
||||
- github
|
||||
aliases:
|
||||
- /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.
|
||||
|
@ -8,6 +8,7 @@ tags:
|
||||
- data-analysis
|
||||
aliases:
|
||||
- /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/).
|
||||
|
@ -7,6 +7,7 @@ tags:
|
||||
- frc
|
||||
aliases:
|
||||
- /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.
|
||||
|
@ -7,6 +7,7 @@ tags:
|
||||
- ctf
|
||||
aliases:
|
||||
- /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.
|
||||
|
@ -1,12 +1,13 @@
|
||||
---
|
||||
layout: page
|
||||
title: "The language hunt: Part 2"
|
||||
title: 'The language hunt: Part 2'
|
||||
description: A quick followup
|
||||
date: 2019-06-24
|
||||
tags:
|
||||
- frc
|
||||
aliases:
|
||||
- /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).
|
||||
|
@ -8,6 +8,7 @@ tags:
|
||||
- bash
|
||||
aliases:
|
||||
- /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/).
|
||||
|
@ -8,6 +8,7 @@ tags:
|
||||
- cybersecurity
|
||||
aliases:
|
||||
- /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!).
|
||||
|
@ -8,6 +8,7 @@ tags:
|
||||
- python
|
||||
aliases:
|
||||
- /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.
|
||||
|
@ -1,10 +1,12 @@
|
||||
---
|
||||
layout: page
|
||||
title: "devDNS"
|
||||
description: "The DNS over devRant service"
|
||||
title: devDNS
|
||||
description: The DNS over devRant service
|
||||
date: 2019-07-01
|
||||
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?
|
||||
|
@ -1,10 +1,12 @@
|
||||
---
|
||||
layout: page
|
||||
title: "Scraping FRC team's GitHub accounts to gather large amounts of data"
|
||||
description: "There are a lot of teams..."
|
||||
title: Scraping FRC team's GitHub accounts to gather large amounts of data
|
||||
description: There are a lot of teams...
|
||||
date: 2019-07-06
|
||||
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.
|
||||
|
@ -7,6 +7,7 @@ tags:
|
||||
- project
|
||||
aliases:
|
||||
- /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.
|
||||
|
@ -8,6 +8,7 @@ tags:
|
||||
- python
|
||||
aliases:
|
||||
- /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.
|
||||
|
@ -7,6 +7,7 @@ tags:
|
||||
- random
|
||||
aliases:
|
||||
- /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.
|
||||
|
@ -9,6 +9,7 @@ tags:
|
||||
- linux
|
||||
aliases:
|
||||
- /blog/2019/08/12/setting-up-ja
|
||||
- /blog/setting-up-ja
|
||||
draft: false
|
||||
---
|
||||
|
||||
|
@ -8,6 +8,7 @@ tags:
|
||||
- python
|
||||
aliases:
|
||||
- /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`.
|
||||
|
@ -1,13 +1,15 @@
|
||||
---
|
||||
layout: page
|
||||
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
|
||||
tags:
|
||||
- random
|
||||
- github
|
||||
aliases:
|
||||
- /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!
|
||||
|
@ -1,10 +1,12 @@
|
||||
---
|
||||
layout: page
|
||||
title: "Doing Python OOP the wrong way"
|
||||
description: "In the name of science!"
|
||||
title: Doing Python OOP the wrong way
|
||||
description: In the name of science!
|
||||
date: 2019-09-07
|
||||
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:
|
||||
|
@ -12,6 +12,7 @@ redirect_from:
|
||||
- /ef7b3166/
|
||||
aliases:
|
||||
- /blog/2019/09/11/buildingimgfrombin
|
||||
- /blog/buildingimgfrombin
|
||||
extra:
|
||||
uses:
|
||||
- twitter
|
||||
|
@ -12,6 +12,7 @@ redirect_from:
|
||||
- /99g9j2r90/
|
||||
aliases:
|
||||
- /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.
|
||||
|
@ -1,13 +1,15 @@
|
||||
---
|
||||
layout: page
|
||||
title: "Programming a live robot"
|
||||
description: "Living on the edge is an understatement"
|
||||
title: Programming a live robot
|
||||
description: Living on the edge is an understatement
|
||||
date: 2019-11-20
|
||||
tags: random frc
|
||||
redirect_from:
|
||||
- /post/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?"*
|
||||
|
@ -1,16 +1,17 @@
|
||||
---
|
||||
layout: page
|
||||
title: "I used cron for the first time"
|
||||
description: "And I didn't die"
|
||||
title: I used cron for the first time
|
||||
description: And I didn't die
|
||||
date: 2019-12-11
|
||||
tags: random
|
||||
redirect_from:
|
||||
- /post/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!
|
||||
|
||||
## My need
|
||||
|
@ -11,6 +11,7 @@ redirect_from:
|
||||
- /es3v140d/
|
||||
aliases:
|
||||
- /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.
|
||||
|
@ -1,5 +1,5 @@
|
||||
---
|
||||
title: "Robot reveal: Darth Raider"
|
||||
title: 'Robot reveal: Darth Raider'
|
||||
description: What I have been working on for the past few months
|
||||
date: 2020-02-21
|
||||
tags:
|
||||
@ -9,6 +9,8 @@ draft: false
|
||||
extra:
|
||||
excerpt: Darth Raider is a competitive robot built by Raider Robotics.
|
||||
icon: las la-play
|
||||
aliases:
|
||||
- /blog/darth-raider
|
||||
---
|
||||
|
||||
My roles in this project included:
|
||||
|
@ -1,6 +1,6 @@
|
||||
---
|
||||
layout: page
|
||||
title: "Ludum Dare 46: Jamming with friends"
|
||||
title: 'Ludum Dare 46: Jamming with friends'
|
||||
description: Recapping the development of *Micromanaged Mike*
|
||||
date: 2020-04-20
|
||||
tags:
|
||||
@ -13,6 +13,7 @@ redirect_from:
|
||||
- /ebsdjtd9/
|
||||
aliases:
|
||||
- /blog/2020/04/20/ludumdare46
|
||||
- /blog/ludumdare46
|
||||
extra:
|
||||
uses:
|
||||
- twitter
|
||||
|
@ -1,13 +1,15 @@
|
||||
---
|
||||
layout: page
|
||||
title: "Running RoboRIO firmware inside Docker"
|
||||
description: "Containerized native ARMv7l emulation in 20 minutes"
|
||||
title: Running RoboRIO firmware inside Docker
|
||||
description: Containerized native ARMv7l emulation in 20 minutes
|
||||
date: 2020-05-19
|
||||
tags: frc roborio emulation
|
||||
redirect_from:
|
||||
- /post/5d3nd9s4/
|
||||
- /5d3nd9s4/
|
||||
aliases: [/blog/2020/05/19/running-roborio-native]
|
||||
aliases:
|
||||
- /blog/2020/05/19/running-roborio-native
|
||||
- /blog/running-roborio-native
|
||||
extra:
|
||||
excerpt: This post covers how to run a RoboRIO's operating system in Docker
|
||||
---
|
||||
|
@ -11,8 +11,10 @@ redirect_from:
|
||||
- /65f9kjl4/
|
||||
aliases:
|
||||
- /blog/2020/06/05/32u4-upload
|
||||
- /blog/32u4-upload
|
||||
extra:
|
||||
excerpt: A reference post that explains how to flash new software to an atmega32u4 chip
|
||||
excerpt: A reference post that explains how to flash new software to an atmega32u4
|
||||
chip
|
||||
---
|
||||
|
||||
The [ATmega32u4](http://ww1.microchip.com/downloads/en/devicedoc/atmel-7766-8-bit-avr-atmega16u4-32u4_datasheet.pdf) (aka. 32u4) chip is one of my favorite microcontrollers to work with. It is a low power, 8-bit, [AVR](https://en.wikipedia.org/wiki/AVR_microcontrollers)-based system developed by [Atmel](https://en.wikipedia.org/wiki/Atmel). They are commonly used in [Arduino Leonardo](https://www.arduino.cc/en/Main/Arduino_BoardLeonardo) development boards and programmed via the [Arduino IDE](https://www.arduino.cc/en/Main/Software), but I prefer having as much control over the device as I can. So I choose to program these chips directly in [AVRASM](http://ww1.microchip.com/downloads/en/devicedoc/40001917a.pdf) and [AVR-C](https://www.nongnu.org/avr-libc/user-manual/).
|
||||
|
@ -1,5 +1,5 @@
|
||||
---
|
||||
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
|
||||
date: 2020-08-03
|
||||
tags:
|
||||
@ -8,10 +8,12 @@ tags:
|
||||
- python
|
||||
aliases:
|
||||
- /blog/2020/08/03/joystick-to-voltage
|
||||
- /blog/joystick-to-voltage
|
||||
extra:
|
||||
uses:
|
||||
- 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).
|
||||
|
@ -1,17 +1,20 @@
|
||||
---
|
||||
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
|
||||
date: 2020-08-13
|
||||
tags:
|
||||
- frc
|
||||
- math
|
||||
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:
|
||||
- katex
|
||||
aliases:
|
||||
- /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).
|
||||
|
@ -1,17 +1,18 @@
|
||||
---
|
||||
layout: page
|
||||
title: "Taking notes with Markdown and LaTeX"
|
||||
description: "Using a lot of tech to replace a piece of paper"
|
||||
title: Taking notes with Markdown and LaTeX
|
||||
description: Using a lot of tech to replace a piece of paper
|
||||
date: 2020-08-23
|
||||
tags: pandoc latex bazel
|
||||
extra:
|
||||
excerpt: >-
|
||||
I have completely reworked my school notetaking system to use LaTeX.
|
||||
This post outlines how I did everything, and my new workflow.
|
||||
excerpt: I have completely reworked my school notetaking system to use LaTeX. This
|
||||
post outlines how I did everything, and my new workflow.
|
||||
redirect_from:
|
||||
- /post/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)*
|
||||
|
@ -9,12 +9,14 @@ tags:
|
||||
- bazel
|
||||
- walkthrough
|
||||
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:
|
||||
- /post/68dk02l4/
|
||||
- /68dk02l4/
|
||||
aliases:
|
||||
- /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)*
|
||||
|
@ -9,9 +9,12 @@ tags:
|
||||
- project
|
||||
- java
|
||||
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:
|
||||
- /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.
|
||||
|
@ -1,7 +1,7 @@
|
||||
---
|
||||
layout: page
|
||||
title: Building a mini maven server
|
||||
description: "Project overview: The Ultralight maven server"
|
||||
description: 'Project overview: The Ultralight maven server'
|
||||
date: 2020-09-17
|
||||
written: 2020-09-05
|
||||
tags:
|
||||
@ -10,12 +10,14 @@ tags:
|
||||
- maven
|
||||
- java
|
||||
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:
|
||||
- /post/2jf002s4/
|
||||
- /2jf002s4/
|
||||
aliases:
|
||||
- /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.
|
||||
|
@ -1,19 +1,21 @@
|
||||
---
|
||||
layout: page
|
||||
title: "My workflow: video conference edition"
|
||||
description: "Turning some spare filmmaking equipment into a high-quality video conference setup"
|
||||
title: 'My workflow: video conference edition'
|
||||
description: Turning some spare filmmaking equipment into a high-quality video conference
|
||||
setup
|
||||
date: 2020-09-24
|
||||
written: 2020-09-13
|
||||
tags: video cameras workflow
|
||||
extra:
|
||||
excerpt: >-
|
||||
As my courses have moved mostly online, I have looked to improve
|
||||
my live video setup. This post covers how I stream sharp HD video
|
||||
at home, and some interesting quirks of the setup.
|
||||
excerpt: As my courses have moved mostly online, I have looked to improve my live
|
||||
video setup. This post covers how I stream sharp HD video at home, and some interesting
|
||||
quirks of the setup.
|
||||
redirect_from:
|
||||
- /post/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.
|
||||
|
@ -1,20 +1,21 @@
|
||||
---
|
||||
layout: page
|
||||
title: "Reading metadata from a bitmap file"
|
||||
description: "A project writeup"
|
||||
title: Reading metadata from a bitmap file
|
||||
description: A project writeup
|
||||
date: 2020-10-01
|
||||
written: 2020-09-15
|
||||
tags: project c images
|
||||
extra:
|
||||
excerpt: >-
|
||||
Inspired from one of my friend's projects, I built a small
|
||||
tool for displaying bitmap file info from the command line.
|
||||
excerpt: Inspired from one of my friend's projects, I built a small tool for displaying
|
||||
bitmap file info from the command line.
|
||||
redirect_from:
|
||||
- /post/XcaMdj2m/
|
||||
- /XcaMdj2m/
|
||||
uses:
|
||||
- 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).
|
||||
|
@ -10,12 +10,15 @@ tags:
|
||||
- google
|
||||
- walkthrough
|
||||
extra:
|
||||
excerpt: "I can never get the Google Drive webapp to load quickly when I need it to. My solution: use some command-line magic to mount my drives directly to my laptop's filesystem."
|
||||
excerpt: 'I can never get the Google Drive webapp to load quickly when I need it to.
|
||||
My solution: use some command-line magic to mount my drives directly to my laptop''s
|
||||
filesystem.'
|
||||
redirect_from:
|
||||
- /post/XcaM0k24/
|
||||
- /XcaM0k24/
|
||||
aliases:
|
||||
- /blog/2020/10/15/mounting-google-drives
|
||||
- /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.
|
||||
|
@ -1,17 +1,19 @@
|
||||
---
|
||||
layout: page
|
||||
title: "Using Bazel to create Minecraft modpacks"
|
||||
description: "An overview of how I automated the build process for CorePack"
|
||||
title: Using Bazel to create Minecraft modpacks
|
||||
description: An overview of how I automated the build process for CorePack
|
||||
date: 2020-10-24
|
||||
written: 2020-09-27
|
||||
tags: bazel workflow git minecraft
|
||||
extra:
|
||||
excerpt: >-
|
||||
I decided to modernize my system for producing builds of my personal Minecraft modpack using the Bazel buildsystem.
|
||||
excerpt: I decided to modernize my system for producing builds of my personal Minecraft
|
||||
modpack using the Bazel buildsystem.
|
||||
redirect_from:
|
||||
- /post/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)*
|
||||
|
@ -1,17 +1,19 @@
|
||||
---
|
||||
layout: page
|
||||
title: "Connecting to a Minecraft server over IRC"
|
||||
description: "For server administration, or just chatting with friends"
|
||||
title: Connecting to a Minecraft server over IRC
|
||||
description: For server administration, or just chatting with friends
|
||||
date: 2020-11-21
|
||||
written: 2020-10-25
|
||||
tags: minecraft project irc
|
||||
extra:
|
||||
excerpt: >-
|
||||
This post outlines the process of writing a custom IRC server that can bridge between your favorite IRC client, and any Minecraft server
|
||||
excerpt: This post outlines the process of writing a custom IRC server that can
|
||||
bridge between your favorite IRC client, and any Minecraft server
|
||||
redirect_from:
|
||||
- /post/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.
|
||||
|
@ -1,6 +1,6 @@
|
||||
---
|
||||
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
|
||||
date: 2020-11-06
|
||||
written: 2020-09-28
|
||||
@ -9,12 +9,14 @@ tags:
|
||||
- workflow
|
||||
- product
|
||||
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:
|
||||
- /post/XlPl0k24/
|
||||
- /XlPl0k24/
|
||||
aliases:
|
||||
- /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.
|
||||
@ -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.
|
||||
|
||||
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.
|
||||
|
||||
|
@ -1,22 +1,24 @@
|
||||
---
|
||||
layout: page
|
||||
title: How I have tweaked my Minecraft client to be 'just right'
|
||||
description: Pushing the boundaries of a vanilla game, while being able to play on un-modified servers
|
||||
description: Pushing the boundaries of a vanilla game, while being able to play on
|
||||
un-modified servers
|
||||
date: 2020-12-19
|
||||
written: 2020-12-04
|
||||
tags:
|
||||
- project
|
||||
- minecraft
|
||||
extra:
|
||||
excerpt: Over the past 10 years, I have been building the perfect Minecraft experience for myself. This post shares the collection of mods I run, and why I use them.
|
||||
excerpt: Over the past 10 years, I have been building the perfect Minecraft experience
|
||||
for myself. This post shares the collection of mods I run, and why I use them.
|
||||
redirect_from:
|
||||
- /post/gas49g43/
|
||||
- /gas49g43/
|
||||
aliases:
|
||||
- /blog/2020/12/19/vanilla-plus-mods
|
||||
- /blog/vanilla-plus-mods
|
||||
---
|
||||
|
||||
|
||||
## 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.
|
||||
|
@ -8,12 +8,14 @@ tags:
|
||||
- project
|
||||
- frc
|
||||
extra:
|
||||
excerpt: 2020 has been my most productive year so far in terms of software development. This post looks back at the year
|
||||
excerpt: 2020 has been my most productive year so far in terms of software development.
|
||||
This post looks back at the year
|
||||
redirect_from:
|
||||
- /post/g494l5j3/
|
||||
- /g494l5j3/
|
||||
aliases:
|
||||
- /blog/2020/12/31/year-wrapup
|
||||
- /blog/year-wrapup
|
||||
---
|
||||
|
||||
*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
|
||||
|
||||
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)).
|
||||
|
||||
|
@ -1,17 +1,19 @@
|
||||
---
|
||||
layout: page
|
||||
title: "Upgrading my chromebook"
|
||||
description: "The process of installing GalliumOS on an ACER R11"
|
||||
title: Upgrading my chromebook
|
||||
description: The process of installing GalliumOS on an ACER R11
|
||||
date: 2020-12-04
|
||||
written: 2020-10-31
|
||||
tags: project laptop hardware
|
||||
extra:
|
||||
excerpt: >-
|
||||
Performing some upgrades to my old laptop. This post outlines the setup process for installing GalliumOS
|
||||
excerpt: Performing some upgrades to my old laptop. This post outlines the setup
|
||||
process for installing GalliumOS
|
||||
redirect_from:
|
||||
- /post/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.
|
||||
|
@ -8,12 +8,15 @@ tags:
|
||||
- project
|
||||
- tutorial
|
||||
extra:
|
||||
excerpt: I use a self-hosted VPN to access all my devices at all times, and to deal with my school's aggressive firewall. This post explains the process I use for exposing my home printer to the VPN.
|
||||
excerpt: I use a self-hosted VPN to access all my devices at all times, and to deal
|
||||
with my school's aggressive firewall. This post explains the process I use for
|
||||
exposing my home printer to the VPN.
|
||||
redirect_from:
|
||||
- /post/g494ld99/
|
||||
- /g494ld99/
|
||||
aliases:
|
||||
- /blog/2021/01/16/printer-tunneling
|
||||
- /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.
|
||||
|
@ -9,12 +9,14 @@ tags:
|
||||
- project
|
||||
- java
|
||||
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:
|
||||
- /post/g4lk45j3/
|
||||
- /g4lk45j3/
|
||||
aliases:
|
||||
- /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:
|
||||
|
@ -10,12 +10,14 @@ tags:
|
||||
- firmware
|
||||
- walkthrough
|
||||
extra:
|
||||
excerpt: After having some issues with the factory firmware on my 40% keyboard, I decided to replace it with the widely used QMK firmware instead.
|
||||
excerpt: After having some issues with the factory firmware on my 40% keyboard,
|
||||
I decided to replace it with the widely used QMK firmware instead.
|
||||
redirect_from:
|
||||
- /post/gkedkd93/
|
||||
- /gkedkd93/
|
||||
aliases:
|
||||
- /blog/2021/03/14/qmk-vortex-core
|
||||
- /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.
|
||||
|
@ -11,12 +11,14 @@ tags:
|
||||
- walkthrough
|
||||
- radio
|
||||
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:
|
||||
- /post/eb0klDd9/
|
||||
- /eb0klDd9/
|
||||
aliases:
|
||||
- /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*
|
||||
|
@ -8,9 +8,11 @@ tags:
|
||||
- reference
|
||||
- tutorial
|
||||
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:
|
||||
- /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.
|
||||
|
@ -9,7 +9,11 @@ tags:
|
||||
- frc
|
||||
- hardware
|
||||
extra:
|
||||
excerpt: This document is aimed at a small handful of people, but published publicly as reference material for anyone that needs it. All contents are highly specific to the FRC robotics electrical and programming environments.
|
||||
excerpt: This document is aimed at a small handful of people, but published publicly
|
||||
as reference material for anyone that needs it. All contents are highly specific
|
||||
to the FRC robotics electrical and programming environments.
|
||||
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.
|
||||
|
@ -1,6 +1,6 @@
|
||||
---
|
||||
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"
|
||||
date: 2021-11-14
|
||||
tags:
|
||||
@ -9,7 +9,10 @@ tags:
|
||||
- bgp
|
||||
- networking
|
||||
extra:
|
||||
excerpt: This post covers the process I went through to publicly route my own /24 block of IP addresses with low-cost hardware.
|
||||
excerpt: This post covers the process I went through to publicly route my own /24
|
||||
block of IP addresses with low-cost hardware.
|
||||
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.
|
||||
|
@ -10,7 +10,10 @@ draft: false
|
||||
extra:
|
||||
uses:
|
||||
- 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
|
||||
|
@ -1,13 +1,16 @@
|
||||
---
|
||||
layout: page
|
||||
title: "Unfinished projects and failed ideas"
|
||||
description: "A walkthrough of my private GitHub repos"
|
||||
title: Unfinished projects and failed ideas
|
||||
description: A walkthrough of my private GitHub repos
|
||||
date: 2022-01-06
|
||||
tags: random
|
||||
draft: false
|
||||
extra:
|
||||
|
||||
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.
|
||||
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.
|
||||
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).
|
||||
|
@ -9,7 +9,10 @@ tags:
|
||||
- python
|
||||
draft: false
|
||||
extra:
|
||||
excerpt: This post covers the process I went through to write a Neural-Network-assisted Blender plugin for converting monocular images into 3D textured meshes.
|
||||
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.
|
||||
|
@ -1,13 +1,14 @@
|
||||
---
|
||||
layout: page
|
||||
title: "I built my own private telephone network"
|
||||
description: "Nobody makes phone calls anymore"
|
||||
title: I built my own private telephone network
|
||||
description: Nobody makes phone calls anymore
|
||||
date: 2022-02-14
|
||||
tags: project pbx
|
||||
draft: true
|
||||
extra:
|
||||
|
||||
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?*
|
||||
|
@ -1,13 +1,14 @@
|
||||
---
|
||||
layout: page
|
||||
title: "I built a slightly infuriating keyboard"
|
||||
description: "Re-learning how to type at 18"
|
||||
title: I built a slightly infuriating keyboard
|
||||
description: Re-learning how to type at 18
|
||||
date: 2022-02-26
|
||||
tags: project keyboard
|
||||
draft: true
|
||||
extra:
|
||||
|
||||
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.
|
||||
|
@ -1,15 +1,17 @@
|
||||
---
|
||||
layout: page
|
||||
title: "A Java development cheatsheet for my classmates"
|
||||
description: "PROG10082: Reference Material"
|
||||
title: A Java development cheatsheet for my classmates
|
||||
description: 'PROG10082: Reference Material'
|
||||
date: 2022-03-15
|
||||
tags: reference
|
||||
draft: true
|
||||
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
|
||||
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.
|
||||
|
@ -8,7 +8,10 @@ tags:
|
||||
- hardware
|
||||
draft: false
|
||||
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.
|
||||
|
@ -9,8 +9,10 @@ draft: true
|
||||
extra:
|
||||
uses:
|
||||
- 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.
|
||||
|
||||
|
@ -1,12 +1,13 @@
|
||||
---
|
||||
layout: page
|
||||
title: "Album Release: Space & Time Vol. 1"
|
||||
description: "New music from Evan Pratten"
|
||||
title: 'Album Release: Space & Time Vol. 1'
|
||||
description: New music from Evan Pratten
|
||||
date: 2022-05-10
|
||||
tags: music
|
||||
draft: true
|
||||
extra:
|
||||
|
||||
auto_center_images: true
|
||||
excerpt: Release notification for Space & Time Vol. 1
|
||||
aliases:
|
||||
- /blog/album-space-time
|
||||
---
|
@ -9,7 +9,10 @@ tags:
|
||||
draft: false
|
||||
extra:
|
||||
auto_center_images: true
|
||||
excerpt: This post covers how to keep your commit graph alive across multiple GIT instances by syncing your commit history to magic repos.
|
||||
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.
|
||||
@ -99,4 +102,3 @@ Importantly, the `--allow-empty` flag removes the requirement for any files to b
|
||||
## 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.
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
---
|
||||
layout: page
|
||||
title: "Field Log: First look at the NanoVNA"
|
||||
title: 'Field Log: First look at the NanoVNA'
|
||||
description: Weekends are prime radio time
|
||||
date: 2022-05-21
|
||||
tags:
|
||||
@ -12,6 +12,8 @@ draft: false
|
||||
extra:
|
||||
auto_center_images: true
|
||||
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)).
|
||||
|
@ -1,14 +1,17 @@
|
||||
---
|
||||
layout: page
|
||||
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"
|
||||
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
|
||||
date: 2022-06-08
|
||||
tags: networking
|
||||
draft: true
|
||||
extra:
|
||||
|
||||
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.
|
||||
|
@ -11,6 +11,8 @@ draft: false
|
||||
extra:
|
||||
auto_center_images: true
|
||||
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.
|
||||
|
@ -9,7 +9,10 @@ tags:
|
||||
draft: false
|
||||
extra:
|
||||
auto_center_images: true
|
||||
excerpt: How to flash custom firmware to the Steam Controller, allowing it to connect to the Nintendo Switch
|
||||
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/)?
|
||||
|
@ -9,7 +9,10 @@ tags:
|
||||
draft: false
|
||||
extra:
|
||||
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.**
|
||||
|
@ -9,7 +9,10 @@ tags:
|
||||
draft: true
|
||||
extra:
|
||||
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.
|
||||
|
@ -9,7 +9,10 @@ tags:
|
||||
draft: true
|
||||
extra:
|
||||
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.
|
||||
|
@ -9,6 +9,8 @@ draft: false
|
||||
extra:
|
||||
auto_center_images: true
|
||||
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.
|
||||
@ -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.
|
||||
|
||||
Anyways, thanks for reading. I'm always amazed to see my analytics data. A surprising number of people read these posts :smile:
|
||||
|
||||
|
@ -12,6 +12,8 @@ draft: false
|
||||
extra:
|
||||
auto_center_images: true
|
||||
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.
|
||||
|
@ -10,7 +10,10 @@ tags:
|
||||
draft: true
|
||||
extra:
|
||||
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.
|
||||
|
@ -5,4 +5,6 @@ draft: true
|
||||
tags:
|
||||
- networking
|
||||
- bgp
|
||||
aliases:
|
||||
- /blog/wireguard-bgp
|
||||
---
|
||||
|
@ -10,10 +10,12 @@ tags:
|
||||
draft: true
|
||||
extra:
|
||||
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
|
||||
unifi-os shell
|
||||
apt install build-essential libfl-dev libbison-dev libreadline-dev libncurses5-dev
|
||||
|
@ -8,7 +8,9 @@ tags:
|
||||
draft: true
|
||||
extra:
|
||||
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.
|
||||
@ -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.
|
||||
|
||||
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.
|
||||
|
||||
|
@ -1,13 +1,15 @@
|
||||
---
|
||||
layout: page
|
||||
title: "A brief walk through my all-time favorite songs"
|
||||
description: "..and crashing spotify clients in the process"
|
||||
title: A brief walk through my all-time favorite songs
|
||||
description: ..and crashing spotify clients in the process
|
||||
date: 2022-11-10
|
||||
tags: music
|
||||
draft: true
|
||||
extra:
|
||||
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.
|
||||
|
@ -1,13 +1,17 @@
|
||||
---
|
||||
layout: page
|
||||
title: "I re-implemented ls to query the Steam API"
|
||||
description: "gamels: never be confused about Steam appid direcroties again"
|
||||
title: I re-implemented ls to query the Steam API
|
||||
description: 'gamels: never be confused about Steam appid direcroties again'
|
||||
date: 2022-12-07
|
||||
tags: project
|
||||
draft: false
|
||||
extra:
|
||||
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).
|
||||
|
@ -9,9 +9,12 @@ tags:
|
||||
draft: false
|
||||
extra:
|
||||
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:
|
||||
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:
|
||||
|
@ -8,9 +8,12 @@ tags:
|
||||
draft: false
|
||||
extra:
|
||||
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:
|
||||
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.
|
||||
@ -37,4 +40,3 @@ This script is executed via a Cron job on one of my edge routers for maximum IP
|
||||
### 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.
|
||||
|
||||
|
@ -9,9 +9,12 @@ tags:
|
||||
draft: false
|
||||
extra:
|
||||
auto_center_images: true
|
||||
excerpt: This post covers some lesser known WireGuard configuration options that I have found useful
|
||||
excerpt: This post covers some lesser known WireGuard configuration options that
|
||||
I have found useful
|
||||
discuss:
|
||||
reddit: https://www.reddit.com/r/ewpratten/comments/12xzvun/some_lesser_known_wireguard_settings/
|
||||
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.
|
||||
|
@ -11,6 +11,8 @@ draft: true
|
||||
extra:
|
||||
auto_center_images: true
|
||||
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?
|
||||
|
@ -9,10 +9,13 @@ tags:
|
||||
draft: false
|
||||
extra:
|
||||
auto_center_images: true
|
||||
excerpt: This post shows off a userscript I built that hides AI topics from Hacker News.
|
||||
excerpt: This post shows off a userscript I built that hides AI topics from Hacker
|
||||
News.
|
||||
discuss:
|
||||
reddit: https://www.reddit.com/r/ewpratten/comments/12xzw5x/a_script_that_hides_ai_topics_from_hacker_news/
|
||||
hacker_news: https://news.ycombinator.com/item?id=35252186
|
||||
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.
|
||||
|
@ -10,7 +10,10 @@ tags:
|
||||
draft: true
|
||||
extra:
|
||||
auto_center_images: true
|
||||
excerpt: This post looks in to what radio operators are actually doing with the APRS network
|
||||
excerpt: This post looks in to what radio operators are actually doing with the
|
||||
APRS network
|
||||
aliases:
|
||||
- /blog/aprs-usage
|
||||
---
|
||||
|
||||
Sometimes I wonder how many people really use the amateur radio services I hear about.
|
||||
|
@ -1,14 +1,13 @@
|
||||
---
|
||||
layout: page
|
||||
title: "Purely client-side point-of-interest marking for multiplayer Minecraft"
|
||||
description: "A showcase of my latest Minecraft mod: Client Ping"
|
||||
title: Purely client-side point-of-interest marking for multiplayer Minecraft
|
||||
description: 'A showcase of my latest Minecraft mod: Client Ping'
|
||||
date: 2023-04-27
|
||||
tags: minecraft
|
||||
draft: true
|
||||
extra:
|
||||
auto_center_images: true
|
||||
excerpt: "A showcase of my latest Minecraft mod: Client Ping"
|
||||
# discuss:
|
||||
# reddit: https://www.reddit.com/r/ewpratten/comments/12xzw5x/a_script_that_hides_ai_topics_from_hacker_news/
|
||||
# hacker_news: https://news.ycombinator.com/item?id=35252186
|
||||
excerpt: 'A showcase of my latest Minecraft mod: Client Ping'
|
||||
aliases:
|
||||
- /blog/client-ping
|
||||
---
|
||||
|
@ -13,6 +13,8 @@ extra:
|
||||
discuss:
|
||||
reddit: https://www.reddit.com/r/ewpratten/comments/1356u1t/i_performed_a_button_swap_on_my_mouse/
|
||||
hacker_news: https://news.ycombinator.com/item?id=35781662
|
||||
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.
|
||||
|
@ -10,6 +10,8 @@ draft: false
|
||||
extra:
|
||||
auto_center_images: true
|
||||
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).
|
||||
|
@ -1,17 +1,17 @@
|
||||
---
|
||||
layout: page
|
||||
title: "How I set up NAT64"
|
||||
description: "Working towards single-stack inside AS54041"
|
||||
title: How I set up NAT64
|
||||
description: Working towards single-stack inside AS54041
|
||||
date: 2023-06-16
|
||||
tags: networking
|
||||
draft: true
|
||||
extra:
|
||||
auto_center_images: true
|
||||
excerpt: "Information on how I set up NAT64 inside AS54041"
|
||||
# discuss:
|
||||
# reddit: https://www.reddit.com/r/ewpratten/comments/1356u1t/i_performed_a_button_swap_on_my_mouse/
|
||||
# hacker_news: https://news.ycombinator.com/item?id=35781662
|
||||
uses: [mermaid]
|
||||
excerpt: Information on how I set up NAT64 inside AS54041
|
||||
uses:
|
||||
- mermaid
|
||||
aliases:
|
||||
- /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).
|
||||
@ -72,4 +72,3 @@ graph LR
|
||||
## How I set up NAT64 on a Debian-based router
|
||||
|
||||
## Final Remarks
|
||||
|
||||
|
@ -10,6 +10,8 @@ draft: false
|
||||
extra:
|
||||
auto_center_images: true
|
||||
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. -->
|
||||
|
@ -10,12 +10,15 @@ tags:
|
||||
draft: false
|
||||
extra:
|
||||
auto_center_images: true
|
||||
excerpt: A guide on setting up a VPS, announcing a prefix over BGP, and using it as a VPN server
|
||||
excerpt: A guide on setting up a VPS, announcing a prefix over BGP, and using it
|
||||
as a VPN server
|
||||
discuss:
|
||||
reddit: https://www.reddit.com/r/ewpratten/comments/14tdltu/building_a_vpn_with_an_amprnet_bgp_allocation/
|
||||
hacker_news: https://news.ycombinator.com/item?id=36635146
|
||||
uses:
|
||||
- mermaid
|
||||
aliases:
|
||||
- /blog/ampr-vpn
|
||||
---
|
||||
|
||||
One of the most common emails I receive from readers of this website generally starts with:
|
||||
|
@ -9,8 +9,10 @@ tags:
|
||||
draft: true
|
||||
extra:
|
||||
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:
|
||||
- mermaid
|
||||
aliases:
|
||||
- /blog/baofeng-sound-card
|
||||
---
|
||||
|
||||
|
@ -12,7 +12,10 @@ extra:
|
||||
excerpt: A post about authoring blog posts with Obsidian
|
||||
uses:
|
||||
- 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.
|
||||
|
||||
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".
|
||||
|
Loading…
x
Reference in New Issue
Block a user