Upgrade Astro and Astro Paper to v5
This commit is contained in:
parent
8ebf7d5996
commit
e719f7ccca
105 changed files with 7099 additions and 1939 deletions
41
src/data/blog/back-again.md
Normal file
41
src/data/blog/back-again.md
Normal file
|
@ -0,0 +1,41 @@
|
|||
---
|
||||
pubDatetime: 2024-10-18
|
||||
title: Back Again
|
||||
description: "Life is uncertain, but one thing remains constant- my need to keep my brain engaged."
|
||||
featured: false
|
||||
tags:
|
||||
- personal
|
||||
---
|
||||
|
||||
> This is going to be a brief post; I have not gathered my thoughts on my current career situation, however that will come.
|
||||
|
||||
## What's Up?
|
||||
|
||||
Well, I've given up on pivoting to cybersecurity. I have also given up on IT/DevOps as a career. I will be talking about this
|
||||
more in another post somewhere else which I'll link to, but it is what it is for me.
|
||||
|
||||
This means I have more time to build software when I get a chance and for fun and for my next endeavour which means
|
||||
this blog is my main one for software dev for the foreseeable future.
|
||||
|
||||
I am glad to consolidate things and pare things down to just this blog and my next endeavour [Tiff Labs](https://tifflabs.org).
|
||||
|
||||
## What is Tiff Labs?
|
||||
|
||||
First, I've quit trying to have a career in tech proper. It's just not going to happen for someone my age during a recession
|
||||
like this. I don't have a degree and am fully self-taught. This is a big strike against me returning to the workforce in tech and
|
||||
if I can't do that, I will do my own thing. I have income from other sources to be able to do this so I am not too concerned about
|
||||
making ends meet for now.
|
||||
|
||||
Tiff Labs is an umbrella of things- a YouTube channel, a blog, a smart home resource, and a homelab resource. I can make money from that once I get more content up and posted[^1].
|
||||
|
||||
I will also be doing more DIY repairing of devices and DIY building of things in general. I enjoy working with my hands more than working with code. I love both, don't get me wrong. However working with my hands gives me immense joy I don't find while writing software.
|
||||
|
||||
## What this blog will be
|
||||
|
||||
It will be a place for me to talk about the software I build for my other projects and hopefully a small business at some point. That's it.
|
||||
|
||||
Here is a project I'd like to build in Go:
|
||||
|
||||
<blockquote class="reddit-embed-bq" data-embed-height="364"><a href="https://www.reddit.com/r/golang/comments/1e6cwgi/comment/lds2v63/">Comment</a><br> by<a href="https://www.reddit.com/user/TheBrownViking20/">u/TheBrownViking20</a> from discussion<a href="https://www.reddit.com/r/golang/comments/1e6cwgi/what_is_the_most_interesting_golang_cli_app_youve/"></a><br> in<a href="https://www.reddit.com/r/golang/">golang</a></blockquote><script async="" src="https://embed.reddit.com/widgets.js" charset="UTF-8"></script>
|
||||
|
||||
[^1]: I know that affiliate links are frowned upon but other than ads which I don't want to run, this will have to do for now.
|
10
src/data/blog/designing-projects.md
Normal file
10
src/data/blog/designing-projects.md
Normal file
|
@ -0,0 +1,10 @@
|
|||
---
|
||||
title: Designing projects
|
||||
pubDatetime: 2024-12-24
|
||||
description: Listless and needing focus, I found the perfect repo to build my skills.
|
||||
featured: true
|
||||
draft: true
|
||||
tags:
|
||||
- go
|
||||
- meta
|
||||
---
|
20
src/data/blog/go-blueprint-easy.md
Normal file
20
src/data/blog/go-blueprint-easy.md
Normal file
|
@ -0,0 +1,20 @@
|
|||
---
|
||||
pubDatetime: 2024-12-28
|
||||
title: "Go Blueprint: An Easy Way to Scoffold Your Go Project"
|
||||
description: Melkeydev created a useful tool to get your project up and running.
|
||||
featured: true
|
||||
tags:
|
||||
- go
|
||||
---
|
||||
|
||||
Starting a new Go project is cumbersome; you have to create multiple directories with subdirectories, different modules depending on the thing you're building, and more.
|
||||
|
||||
I am starting a Go project that I won't talk about here. I was looking for a way to scaffold the project with the necessary directories and barebones files so I can get into the project and start building.
|
||||
|
||||
## Go Blueprint
|
||||
|
||||
There is a developer I've come across on YouTube who does a lot of Go programming. While searching for a good scaffold, I came across his repo, [Go Blueprint](https://github.com/Melkeydev/go-blueprint) which is everything I was looking for and more. It has around 6,4000 stargazers so that can give you an idea of its usefulness.
|
||||
|
||||
## Off to build a thing
|
||||
|
||||
I've been consuming lots of Go content to get a feel for things with the [docs](https://devdocs.io) open and Neovim ready to go. I'm hoping to have this next project built by the middle of January. I am uncertain about this as I have to attend group therapy for a little while, which I don't want to do but alas.
|
11
src/data/blog/go-project-structure.md
Normal file
11
src/data/blog/go-project-structure.md
Normal file
|
@ -0,0 +1,11 @@
|
|||
---
|
||||
pubDatetime: 2024-04-01
|
||||
title: Go Project Structure for gURL
|
||||
description: Helpful Go tip.
|
||||
tags:
|
||||
- go
|
||||
---
|
||||
|
||||
Over the past week I've been working on changing the structure of gURL.
|
||||
|
||||
One of my old CodeNewbie friends on LinkedIn gave me a template to start from on GitHub called [Standard Go Project Layout](https://github.com/golang-standards/project-layout). I intend to use this as a guide.
|
81
src/data/blog/gurl-cli.md
Normal file
81
src/data/blog/gurl-cli.md
Normal file
|
@ -0,0 +1,81 @@
|
|||
---
|
||||
pubDatetime: 2024-03-24
|
||||
title: "gURL: A cURL Wrapper Written in Go"
|
||||
description: Moving on from frontend to something new.
|
||||
tags:
|
||||
- go
|
||||
---
|
||||
|
||||
Briefly: I am writing a CLI tool that fetches info from GitHub's REST API as a wrapper around cURL.
|
||||
|
||||
Why?
|
||||
|
||||
Just to keep my finger on the pulse of software development and to practice my programming skills because believe it or not, being able to code as a cybersecurity professional is extremely useful, even though it isn't _technically necessary_.
|
||||
|
||||
I'm currently wading though documentation on Go modules and Go standard library packages, as well as reading other code examples to see how I want to structure my application.
|
||||
|
||||
First, I found a [repo that](https://github.com/wick3dr0se/github-api-curl/tree/master) uses shell scripts to wrap around the GitHub API. This gave me the idea for splitting up my tool into different directories.
|
||||
|
||||
Then, I fiddled around with [Google's GitHub Go library](https://github.com/google/go-github/tree/master) to see how they used Go to build the library.
|
||||
|
||||
## Fits and Starts
|
||||
|
||||
My first inkling was to crib this code from the Google repo:
|
||||
|
||||
```go
|
||||
var defaultBaseURL = "https://github.com/"
|
||||
|
||||
// Client is a GitHub scraping client.
|
||||
type Client struct {
|
||||
*http.Client
|
||||
|
||||
// base URL for github.com pages. Exposed primarily for testing. Also
|
||||
// used for saving and restoring cookies on the Client.
|
||||
baseURL *url.URL
|
||||
}
|
||||
```
|
||||
|
||||
I wasn't exactly sure what I was looking at; I have a `baseURL` variable that is assigned the GitHub url. I've imported the `net/http` package, as it would have been in this example. We have a `Client` type that is also a `struct` which I have forgetten what they are exactly, as it has been a while since I've read the C++ docs, which also has a `struct` but I think that `struct` in this instance has the `type` keyword to denote that it is a `class` or something.
|
||||
|
||||
In any case, I was trying to figure out how to use string interpolation in the URL parameters like you would in JavaScript template strings:
|
||||
|
||||
```js
|
||||
// Octokit.js
|
||||
// https://github.com/octokit/core.js#readme
|
||||
const octokit = new Octokit({
|
||||
auth: "YOUR-TOKEN",
|
||||
});
|
||||
|
||||
// the request method contains template strings which is
|
||||
// JavaScript's way of doing string interpolation
|
||||
|
||||
await octokit.request("GET /repos/{owner}/{repo}", {
|
||||
owner: "OWNER",
|
||||
repo: "REPO",
|
||||
headers: {
|
||||
"X-GitHub-Api-Version": "2022-11-28",
|
||||
},
|
||||
});
|
||||
```
|
||||
|
||||
How does that work in Go?
|
||||
|
||||
At first I was thinking of using `Stripln()` to do string interpolation but as a [StackOverflow user said](https://stackoverflow.com/a/71181938/3800146), to put that junk in a query parameter would be messy and unsafe. The user suggested the op use the `net/http` library which solves all the issues I'd face trying to make `GET` requests to GitHub's REST API.
|
||||
|
||||
The example given:
|
||||
|
||||
```go
|
||||
params := url.Values{
|
||||
"page[size]": []string{"100"},
|
||||
"page[" + key + "]": []string{"1"},
|
||||
}
|
||||
u := &url.URL{
|
||||
Scheme: "https",
|
||||
Host: "url.com",
|
||||
Path: "/path",
|
||||
RawQuery: params.Encode(),
|
||||
}
|
||||
req, err := http.NewRequest("GET", u.String(), nil)
|
||||
```
|
||||
|
||||
This should do it for now.
|
17
src/data/blog/hello.md
Normal file
17
src/data/blog/hello.md
Normal file
|
@ -0,0 +1,17 @@
|
|||
---
|
||||
pubDatetime: 2024-03-17
|
||||
title: "Hello, y'all"
|
||||
description: Introductions.
|
||||
tags:
|
||||
- meta
|
||||
---
|
||||
|
||||
This is a learning and accountability blog.
|
||||
|
||||
This is my first post. It will be updated as time permits.
|
||||
|
||||
One of the things frustrating me lately is when I was just starting out, I blogged about literally everything; the industry was new to me and everyone was excited, I was excited at the possibility of pulling myself out of extreme poverty. I was younger, bright-eyed, without any cynicism.
|
||||
|
||||
Fast forward 10 years and a lot has changed. I won't get into the gory details but y'all know. Tech is not what it used to be, I've grown to despise most JavaScript anything, and I'm an industry vet who is disillusioned by the state of the industry and the world in general. That kind of pessimism weighs on me daily, so much so I don't write about anything I learn. It sucks.
|
||||
|
||||
So this is my blog post I'm sending you, I hope you read it. (Bonus points is you get that reference).
|
59
src/data/blog/i-hated-social-media.md
Normal file
59
src/data/blog/i-hated-social-media.md
Normal file
|
@ -0,0 +1,59 @@
|
|||
---
|
||||
title: I hated social media before it was cool
|
||||
description: I used to read blogs and BB Forums, but you probably never heard of them.
|
||||
pubDatetime: 2025-03-08
|
||||
tags:
|
||||
- thoughts
|
||||
---
|
||||
|
||||
One of the things I've noticed about myself as I've gotten older is that I don't enjoy social media. Hardly ever did. The last time I was excited on social media was on Twitter circa 2009-2013, and then from 2014-2016.
|
||||
|
||||
I had a Facebook account because that is how you networked as a broke writer trying to forge her way into the prestigious Iowa Writer's Workshop MFA program[^1].
|
||||
|
||||
I had a public account and was on my phone way more than I should have been. Facebook was decent enough back then with apps like NetworkedBlogs to grab feeds from your favorite writer's blogs. A lot of folks were on BlogTalkRadio Network talking about their work.
|
||||
|
||||
There was even a time when I was working out a bunch and was into watching The Biggest Loser and following fitness channels on YouTube and Clean Eating Facebook groups. It felt like I belonged somewhere. A neurodivergent nerd without money whose close friends didn't really give a shit about her interests nor did they understand them? It felt like I "found my tribe".
|
||||
|
||||
But around 2012, 2013 I noticed a shift in the way I interacted with it. I was on it too much, I was saying too much, and I was noticing some awful stuff being said by people I formerly respected and bought their work. I wanted to delete my account. I said it on my "Wall".
|
||||
|
||||
One of my favorite people there messaged me and told me to stay; not having a Facebook account was career suicide and I really needed to stay. And so, like an addict, I kept my account.
|
||||
|
||||
## Nothing changed
|
||||
|
||||
I kept opening the app. I kept getting swept up into arguments with people who would dig in even if they were shown new evidence. 2016 happened and I was disillusioned. I deactivated my account several times. But I would come back, thinking that while I culled my friends list, these people _were_ my friends and they actually really care about me.
|
||||
|
||||
But when I logged back in, most people hadn't even noticed I was gone. They didn't know until I said that I was back; they didn't know I left in the first place. It was eye-opening. What I thought were my friends were people who had their own lives and shit to do that my absence didn't register because at the end of the day, most of those people have never met me and don't really know me, despite the amount of oversharing I did there.
|
||||
|
||||
When the shit jumped off after That Car Guy bought That Social Media Site I deleted my Facebook account, I deleted my Twitter accounts, and I signed up for Fediverse accounts, securing my username for the future.
|
||||
|
||||
Initially I liked it; it was new and cool and people were pretty awesome. But no one really interacted there. On my two most active accounts only one is enjoyable to use when it isn't football season. I feel broken every time I open my personal Mastodon account.
|
||||
|
||||
I get hardly any traction on my Bluesky account where I would like it, and the people I follow who I used to follow on Twitter are the same people with the same perspectives but being in the fray there just isn't appealing to me. I hate seeing the world burn on a neverending firehose of timelines. I already have my mental health challenges and watching, and reading, all of this is doing a number on me. I can't do it.
|
||||
|
||||
## RSS, blogs, and FreeTube
|
||||
|
||||

|
||||
_RSS in Reeder Classic_
|
||||
|
||||
Fortunately RSS is still alive and kicking. I've found some pretty interesting blogs by using Kagi's version of what the oldheads used to [call](https://en.wikipedia.org/wiki/StumbleUpon) [StumbleUpon](https://web.archive.org/web/20090918020125/http://www.stumbleupon.com/) called [Kagi Small Web](https://kagi.com/smallweb/) where it will serve you up a random blog post and you can decide to "Appreciate" the post by visiting the website/blog.
|
||||
|
||||

|
||||
_Kagi Small Web landing page_
|
||||
|
||||
What a revelation to me and I am glad I found it. It is a bookmark in my browser that I click whenever I need something interesting to read. If the post is interesting or thought-provoking, I'll visit the site and look through it, and if I like what I'm reading I'll add it to my RSS reader of choice and check in daily.
|
||||
|
||||
[FreeTube](https://github.com/FreeTubeApp/FreeTube) is an app to scrape YouTube and it is such a powerful tool because of YouTube's RSS feeds and a proxy service I won't name here.
|
||||
|
||||
But I use FreeTube as a way to keep the channels I actually learn things from separate from the random sports and game clips I watch to fill time.
|
||||
|
||||
## What this means for my social media usage
|
||||
|
||||
A lot of people I've seen on the internet have completely removed themselves from social media entirely, keeping a small circle of people they care about and who care about them updated in a newsletter or private blog post. This makes sense and something I may look into.
|
||||
|
||||
I will be deleting most of my social accounts except for Reddit, YouTube, and a one or two Mastodon servers. That's where I am at the moment.
|
||||
|
||||
My brain is tired of rot and craves learning new things. I may be old but I am forever curious and wanting to tinker with things. I also miss reading books and working with my hands, as well as writing software.
|
||||
|
||||
I have IRL friends and family that _actually_ know me and who I am and so I don't need to perform on these social apps and I don't need to watch the world burn around me in real-time, in 4K.
|
||||
|
||||
[^1]: Little did I know, or understand, that you have to have money to get your MFA, that or at least _come_ from money. Trust fund babies get MFAs, not late 20 something poor people.
|
9
src/data/blog/neovim-setup.md
Normal file
9
src/data/blog/neovim-setup.md
Normal file
|
@ -0,0 +1,9 @@
|
|||
---
|
||||
pubDatetime: 2025-01-05
|
||||
title: "Neovim Setup"
|
||||
description: Switching from VS Code to Neovim was difficult but worth it.
|
||||
draft: true
|
||||
featured: true
|
||||
tags:
|
||||
- neovim
|
||||
---
|
9
src/data/blog/on-personal-websites.md
Normal file
9
src/data/blog/on-personal-websites.md
Normal file
|
@ -0,0 +1,9 @@
|
|||
---
|
||||
pubDatetime: 2025-01-28
|
||||
title: "On Personal Websites"
|
||||
description: What should you write on a personal website focused on software engineering?
|
||||
tags:
|
||||
- meta
|
||||
---
|
||||
|
||||
I am really struggling with the direction I want this site to go. Do I just write about my side projects when they are finished or something else?
|
29
src/data/blog/this-week-update.md
Normal file
29
src/data/blog/this-week-update.md
Normal file
|
@ -0,0 +1,29 @@
|
|||
---
|
||||
pubDatetime: 2024-04-23
|
||||
title: This Week's Update
|
||||
description: Brief note.
|
||||
featured: true
|
||||
tags:
|
||||
- updates
|
||||
- meta
|
||||
---
|
||||
|
||||
Things I have been up to while off LinkedIn:
|
||||
|
||||
- Working on my [home lab](http://homelab.tifflabs.org) by setting up k3s for High Availabilty servers for critical services in the lab
|
||||
- Learning more about VMs, [Nginx](https://notes.0x8c.org/home-lab/nginx-configs/), and Reverse Proxies
|
||||
- Learning about [Certbot](https://certbot.eff.org/)
|
||||
- Failing to set up [TWO "beginner-friendly"](https://github.com/tobychui/zoraxy) [reverse proxy managers](https://nginxproxymanager.com/) and realizing that [learning how to use the CLI more](https://lemmy.brendan.ie/comment/223126) is the best course of action
|
||||
- Learning how to [reconfigure Proxmox IP addresses](https://gist.github.com/twhite96/2ed4c6f3d50ed0009947c69e7bded6ca), failing to keep the cluster, and wiping three nodes clean
|
||||
- Deciding that I'd keep one node out of the cluster for having one less entrypoint to my network[^1]
|
||||
- Setting up InfluxDB for use of monitoring my Proxmox cluster and separate node in Grafana
|
||||
- Learning Linux commands such as `fstab`, `lsblk`, and that you can pretty much do everything you need system wide (rebooting, etc), by prefixing `systemctl` to those commands
|
||||
- Creating my own Docker image and container to fix a bug in a repo I want to use but want it to install dependencies and "just work", as they say
|
||||
- Installing a self-hosted Git client/website
|
||||
- Learning that `ini` files are basically the same as `toml` files
|
||||
- Researching how to use WebSockets in Python or Go to understand how someone could use that to exploit a website/machine by keeping the socket alive and using the website/machine as a C2 server
|
||||
- Working on creating my own C2 server
|
||||
|
||||
I've been at it nonstop these past two weeks, but I am having serious fun.
|
||||
|
||||
[^1]: I have too many VMs and LXCs now or I'd change the IP to help with this as well.
|
55
src/data/blog/working-through-linux.md
Normal file
55
src/data/blog/working-through-linux.md
Normal file
|
@ -0,0 +1,55 @@
|
|||
---
|
||||
pubDatetime: 2025-02-13
|
||||
title: "Working with Linux, Part One"
|
||||
description: I've set up two instances of Fedora on different hardware. Now, I want to talk about the experience.
|
||||
featured: true
|
||||
tags:
|
||||
- linux series
|
||||
---
|
||||
|
||||
<small><em>My messy desk working on setting up Fedora with Hyprland and Waybar</em></small>
|
||||
|
||||
I've been living that motel life now for a couple months. While it is just a room, it is bigger, cleaner, and better for me all around.
|
||||
|
||||
I was able to salvage most of the important things from storage while we get that shutdown; ain't nobody got money for that. This is 2025 and you need to take out a loan to buy a bottle of ketchup so spending $260 on a storage unit when you can barely afford to eat is absolutely not it.
|
||||
|
||||
Regardless, I grabbed all my NUCs, my old Dell Inspiron laptop, all my keyboards, and after tomorrow my PC parts. I am not sure when I'll ever be able to afford another apartment, especially now, and I am not mentally capable of handling a job currently. Long story and not for this blog, anyhow. Ok, this post is about Linux, huh. Yeah, right.
|
||||
|
||||
## Okay, back up
|
||||
|
||||
I mainly work on my M1 Mac Mini. It is a great machine, but like I've said on Mastodon, I am not going to be able to replace it when it dies. This means I need to find an alternative I feel comfortable with _right now_, learn it, and prepare to switch to it full time.
|
||||
|
||||
I am extremely lucky that I went full bore into sysadmin work for the past year and a half. It meant that I needed to go through with learning the terminal, terminal commands, and being comfortable with keyboard shortcuts and keybindings.
|
||||
|
||||
I also switched full time to Neovim using LazyVim wrapper and a couple of other TUIs, such as Yazi, fzf, and zoxide.
|
||||
|
||||
Writing code explicitly inside my terminal for the past 6 months has been a hard fought battle but now I can't go back. Now that I have that skill, moving my work from macOS, with its unix underpinnings to Linux is not going to be as hard.
|
||||
|
||||
## Distro Hopping
|
||||
|
||||
I've tried all the usual distros like Ubuntu and Debian. I also tried [NixOS](https://nixos.org/) which didn't quite fit my workflow.
|
||||
|
||||
Learning _how_ Linux works takes a good amount of time and research. I only suggest switching to it if you meet the following criteria:
|
||||
|
||||
1. You need to have a computer for work and can't afford a Mac or a decent PC
|
||||
2. You have time to invest in learning about Desktop Environments, Distros, File Managers, and all the other necessary things to fully get a grip on Linux
|
||||
3. You hate Windows and are a masochist
|
||||
|
||||
[Distro Hopping is advised against](https://youtu.be/CJ41KZ0fBMc?si=yb8HJ_CsyfjGUt2k); you lose time and productivity when you do this. And now that I've got a system setup that I actually _like_, I refuse to hop unless I absolutely _have to_.
|
||||
|
||||
## My current setup
|
||||
|
||||
### On the Dell
|
||||
|
||||
Fedora 41 Workstation with GNOME Desktop
|
||||

|
||||
|
||||
### On Beelink NUC
|
||||
|
||||
Fedora 41 with KDE Plasma DE and Hyprland Tiling Window Manager.
|
||||

|
||||

|
||||
|
||||
## Till next time
|
||||
|
||||
I'll probably talk more about setting up Hyprland and all that is involved with that.
|
Loading…
Add table
Add a link
Reference in a new issue