diff --git a/content-org/.dir-locals.el b/.dir-locals.el
similarity index 100%
rename from content-org/.dir-locals.el
rename to .dir-locals.el
diff --git a/content-org/posts/summer_2023_projects.org b/content-org/posts/summer_2023_projects.org
index a7b232d..8c6ca3e 100644
--- a/content-org/posts/summer_2023_projects.org
+++ b/content-org/posts/summer_2023_projects.org
@@ -1,5 +1,7 @@
#+TITLE: My Little Techy Projects Summer 2023
#+date: 2023-09-20
+#+OPTIONS: toc:nil
+#+HUGO_AUTO_SET_LASTMOD: t
#+hugo_base_dir: ../../
#+hugo_section: posts
#+HUGO_MENU: :menu "posts"
@@ -28,7 +30,7 @@ Not gonna lie I had an extremely baller summer and I'm sad that the 21st is comi
I hacked my day 1 Switch with a piece of literal tinfoil.
** Some boring skippable personal info
-For some reason, while everyone doubled down on gaming extra during the COVID years, I stopped almost entirely. I used to play smash bros competitively as a kid, almost exclusively to any other game and when COVID happened I was no longer able to attend tournaments. This coupled with getting sick of the Nintendo Switch online service and I was no longer having fun playing. Additionally, many well known members of the community having been outed for sexual misconduct around this time and the ensuing aftermath was a further deterrent from ever wanting to return. Pretty much quit after that, and since I was not really into any other kinds of games I stopped gaming for a couple of years unless I was at a friend's place.
+For some reason, while everyone doubled down on gaming extra during the COVID years, I stopped almost entirely. I used to play smash bros competitively as a kid, almost exclusively to any other game and when COVID happened I was no longer able to attend tournaments. This coupled with getting sick of the Nintendo Switch online service and I was no longer having fun playing. Additionally, wider community controversy and its ensuing aftermath gave me a more negative view of the scene which deterred me from wanting to return. Pretty much quit after that, and since I was not really into any other kinds of games I stopped gaming for a couple of years unless I was at a friend's place.
** @@html:@@Actual Switch hacks
I know that the switch modding scene has had the past 6-7 years to mature but I did not expect it to be this easy. Of course, I reccommend following a written guide that's constantly updated (such as the [[https://rentry.co/SwitchHackingIsEasy][rentry]] guide) to avoid bricking your device, but it really wasn't that complicated [[cite:Reentry]]. The basics of the hack are to short two pins in the right joycon rail and presing the + and power button to put the device in recovery mode (RCM), which I did using a literal peice of tinfoil, though there are RCM jig devices on amazon that are easier to use. Burned onto the Tegra bootROM on all early Switches has a buffer overflow vulnerability that allows hackers to slip by the bootloader signature check, allowing unsigned payloads to be pushed to the device [[cite:Fusee]].
diff --git a/content/posts/summer_2023_projects.md b/content/posts/summer_2023_projects.md
index 5cbb87c..f18a8e4 100644
--- a/content/posts/summer_2023_projects.md
+++ b/content/posts/summer_2023_projects.md
@@ -2,6 +2,7 @@
title = "My Little Techy Projects Summer 2023"
summary = "I did some fun stuff this summer, including hacking my switch, switching to Qubes OS, and switching to OpenWRT on my router. Overall, a lot of switching."
date = 2023-09-20
+lastmod = 2024-02-18T14:37:19-05:00
tags = ["technology", "personal", "qubes-os", "openwrt", "switch"]
draft = false
[menu]
@@ -26,7 +27,7 @@ I hacked my day 1 Switch with a piece of literal tinfoil.
### Some boring skippable personal info {#some-boring-skippable-personal-info}
-For some reason, while everyone doubled down on gaming extra during the COVID years, I stopped almost entirely. I used to play smash bros competitively as a kid, almost exclusively to any other game and when COVID happened I was no longer able to attend tournaments. This coupled with getting sick of the Nintendo Switch online service and I was no longer having fun playing. Additionally, many well known members of the community having been outed for sexual misconduct around this time and the ensuing aftermath was a further deterrent from ever wanting to return. Pretty much quit after that, and since I was not really into any other kinds of games I stopped gaming for a couple of years unless I was at a friend's place.
+For some reason, while everyone doubled down on gaming extra during the COVID years, I stopped almost entirely. I used to play smash bros competitively as a kid, almost exclusively to any other game and when COVID happened I was no longer able to attend tournaments. This coupled with getting sick of the Nintendo Switch online service and I was no longer having fun playing. Additionally, wider community controversy and its ensuing aftermath gave me a more negative view of the scene which deterred me from wanting to return. Pretty much quit after that, and since I was not really into any other kinds of games I stopped gaming for a couple of years unless I was at a friend's place.
### Actual Switch hacks {#img-src-images-blog-reentry-racoon-dot-png-width-10-actual-switch-hacks}
diff --git a/content/setup/_index.md b/content/setup/_index.md
deleted file mode 100644
index ed45731..0000000
--- a/content/setup/_index.md
+++ /dev/null
@@ -1,30 +0,0 @@
-+++
-title = "My Setup"
-author = ["Jordan Herzstein"]
-date = 2024-02-06
-draft = false
-[menu]
- [menu.setup]
- identifier = "my-setup"
-+++
-
-## VPC Setup {#vpc-setup}
-
-I'm currently using a ROCKpro64 with it's respective NAS case and PCI-e SSD interface card. It runs DietPi, which is a distrobution of Debian optimized for arm SBCs.
-
-I also have a lynksys router at home that I use to run openwrt for it's security, performance, and customizability, especially compared to the default modems provided by ISPs.
-
-
-## Personal Computer / Hardware {#personal-computer-hardware}
-
-Right now I'm mosting using a Thinkpad T430 running Qubes OS with an i7-3840QM and 16GB of RAM that I corebooted myself. Last year I was daily-driving a [librebooted](https://libreboot.org/) ThinkPad T400, [specially modded](https://vid.puffyan.us/watch?v=Fs4GjDiOie8) with a quad core CPU. It runs Debian 12, and I'm guessing the only non-free software running on it is the trackpad firmware. I also have a ThinkPad P15s that dual boots Arch Linux and Windows 10. I generally use this machine a lot less because the keyboard and mouse are broken and I haven't bothered to get it fixed for the past year and a half. I like listening to music while I study or run, for that I use an ipod nano 2g with [RockBox](https://www.rockbox.org/), a free firmware replacement for music players that can also play Doom. Recently I've been loading a lot of books, manga, and even school materials onto my Kobo Libra 2 (which I keep offline). It's has been really nice on my eyes, maybe I'll get around to trying the [PineNote](https://www.pine64.org/pinenote/) for it's full consumer release.
-
-
-## Cell Phone {#cell-phone}
-
-I own an unlocked Pixel 7 running [GrapheneOS](https://grapheneos.org). Yes, I do enjoy the premium degoogled android experience on Google's very own hardware. Regardless, the stuff that the GrapheneOS team are doing is very impressive, if you're interested in using it make sure you purchase a compatable pixel device that is **unlocked**.
-
-
-## Software {#software}
-
-In terms of software, Emacs is a huge part of my productivity environment, and acts as my IDE, document writer, RSS feed, and I even made this site with it! I of course use evil mode due to the extramarital affair I have with Vim. I've used a couple of window managers including dwm and awesomewm, but I'm sure I'll get to using wayland one of these years. My shell is bash, never really bothered to use anything else really. For browsing I use Librewolf, a fork of Firefox with more privacy protections by default.
diff --git a/public/404.html b/public/404.html
index b9b24fa..ef5eaee 100644
--- a/public/404.html
+++ b/public/404.html
@@ -16,11 +16,12 @@
Hello, my name is Jordan, I’m a Computer Engineering student from Canada. I like all things FOSS, cybersecurity, server administration, selfhosting, thinkpads, and more. These past few years I’ve been living and breathing Linux, from desktop, server, and embedded, with some knowledge of Windows (desktop and server) and Android. Most of my programming experience is in bash, Python, and C/C++. Familiar with Java, SQL, Go, and PHP.
This is my website, I sometimes write blogs and technical guides. It is a very minimal static site with html and css, but this way my site is fast, responsive, and to the point. I can say that everything here is created and owned by me, not just as a creative outlet, but so every facet of my online existance is under my control. I engage very little with social media. I value understanding and being able to control my technology, which fuels my passion to learn new things all the time.
When I’m not in front of glowing rectangles made of polarized sheets and crystals, I like to swim, I’m also taking part in my school’s Brazillian Jiu Jitsu club. During COVID I stopped gaming entirely but more recently I’ve given a shot attending my local SSBU tournaments.
The Emacs editor was designed in the 1980’s in the era of old unix keyboards when the control key was next to the “A” key, a lot of functionality in Emacs was designed around CTRL keybindings. While there are hobbyist keyboards for that kind of layout, no real usable laptop these days would oblige without some serious changes. This has had the undesireable outcome of exasterbating repetitive strain injury (RSI) in some pretty famous programmers(Lee 2022).
Now I’m regularly using evil mode to edit files with Emacs so it shouldn’t be as big of an issue for someone like myself, however, I’m not interesting in running the risk having RSI on my pinky by the time I’m 50 because I used C-x C-f too many times. One solution would be switching to Doom or Spacemacs or otherwise changing my init.el file in emacs to use the control key much less. Many people use xmonad to change keyboard layouts as well. However, I feel like those solutions are a bit overkill, and I found a decent solution for my case without having to change very much about my system using xkb, which is how keyboard codes are handled in Xorg(Unknown 2024).
Not gonna lie I had an extremely baller summer and I’m sad that the 21st is coming soon to take it away from me. Regardless, here is a quick summary of what I was able to accomplish:
I recreated my site using ox-hugo to generate tags and the site’s rss feed much more easily as it was a pain before. Every time I’ve wanted to make a post it’s been friction getting it to work with pure org mode + elisp and I don’t want to fight this site just to post something or else I won’t post anything at all. Embarrassingly, it seems that I was using a non-web-safe font for quite some time, meaning some browsers weren’t supported, I appologize to any MacOS users viewing my site who had to deal with my terrible choice of typography. I’m also tired of the long url name so I’ve mirrored my site on github pages with custom domain jordanherzstein.xyz (I know microsoft is evil sue me). I’ve already been selfhosting stuff locally for a while though I’m not bothering with anything public if unless I proxy my site as to not reveal my ip address. Neocities will stay for now, I have no explicit plans to leave, though if I ever add javascript to this site I will be saying goodbye.
+ {{- range seq (sub $firstHeaderLevel $largest) -}}
+
+ {{- $.Scratch.Add "bareul" (sub (add $largest .) 1) -}}
+ {{- end -}}
+ {{- range $i, $header := $headers -}}
+ {{- $headerLevel := index (findRE "[1-6]" . 1) 0 -}}
+ {{- $headerLevel := len (seq $headerLevel) -}}
+
+ {{/* get id="xyz" */}}
+ {{- $id := index (findRE "(id=\"(.*?)\")" $header 9) 0 }}
+
+ {{- /* strip id="" to leave xyz, no way to get regex capturing groups in hugo */ -}}
+ {{- $cleanedID := replace (replace $id "id=\"" "") "\"" "" }}
+ {{- $header := replaceRE "((.|\n])+?)" "$1" $header -}}
+
+ {{- if ne $i 0 -}}
+ {{- $prevHeaderLevel := index (findRE "[1-6]" (index $headers (sub $i 1)) 1) 0 -}}
+ {{- $prevHeaderLevel := len (seq $prevHeaderLevel) -}}
+ {{- if gt $headerLevel $prevHeaderLevel -}}
+ {{- range seq $prevHeaderLevel (sub $headerLevel 1) -}}
+
+ {{/* the first should not be recorded */}}
+ {{- if ne $prevHeaderLevel . -}}
+ {{- $.Scratch.Add "bareul" . -}}
+ {{- end -}}
+ {{- end -}}
+ {{- else -}}
+
+ {{- if lt $headerLevel $prevHeaderLevel -}}
+ {{- range seq (sub $prevHeaderLevel 1) -1 $headerLevel -}}
+ {{- if in ($.Scratch.Get "bareul") . -}}
+