Rebuild as hugo project.

This commit is contained in:
Sage Vaillancourt 2022-10-12 09:33:40 -04:00
parent b019ecd7f5
commit b2c96f8121
71 changed files with 907 additions and 0 deletions

6
.gitignore vendored Normal file
View File

@ -0,0 +1,6 @@
public/
.idea/
.hugo_build.lock
**/_gen/
dist/
themes/

6
archetypes/default.md Normal file
View File

@ -0,0 +1,6 @@
---
title: "{{ replace .Name "-" " " | title }}"
date: {{ .Date }}
draft: true
---

6
config.toml Normal file
View File

@ -0,0 +1,6 @@
baseURL = 'https://sagev.space/'
languageCode = 'en-us'
title = 'sagev.space'
theme = 'sage'
text_color = 'black'
summaryLength = 30

12
content/_index.md Normal file
View File

@ -0,0 +1,12 @@
---
title: ""
date: 2022-10-05T20:50:25-04:00
---
## About Me
Hi! My name is Sage (he/him), and this is my some-sort-of-blog. I'm a full-time
software engineer, and most of my posts here are about programming in one way or
another (aside from the odd "look at this cat" post).
This site is something of an experiment in minimalism, trying for easy readability on a variety of devices, while being as small and efficient as possible!

View File

@ -0,0 +1,7 @@
---
title: "SageV.Space"
draft: true
---
You won't believe what this post is about!

7
content/posts/_books.md Normal file
View File

@ -0,0 +1,7 @@
---
title: "SageV.Space"
draft: true
---
Some Books to Read

8
content/posts/_ideas.md Normal file
View File

@ -0,0 +1,8 @@
---
title: "SageV.Space"
draft: true
---
I like vim
Sister's cats
Vinny
My last class

View File

@ -0,0 +1,17 @@
---
title: "SageV.Space"
draft: true
---
There was once a time when all humans lived forever.
One courageous woman gets in a fight with young God.
If she goes, the crowd cried, we all go.
"Did you hear it's Tem's 700th birthday tomorrow?"
"Oh, how lovely for her."
The woman and the man, around 400 and 300 years old, respectively, sat in a
small lean-to, several tens of thousands of years before the invention of
television.

View File

@ -0,0 +1,31 @@
---
title: "SageV.Space"
draft: true
---
How to do a kickflip on Linux
I'm not quite a proper wizard when it comes to the wide world of Unix, but I've
picked up a couple neat tricks over the years. I might occasionally update this
page.
<h2>while true; do thing; done</h2>
<h2>for i in {0..5} do; thing{i}; done</h2>
<h2>nohup</h2>
Short for "no hangup", `nohup` allows another command to ignore the hangup
signal (SIGHUP). This, probably among other things, allows a command to run in
the background, continuing after an SSH disconnect, or other logouts. This has
proven very useful in my work, where certain processes can kick me out of SSH.
<h2>The Difference Between Parameters and Arguments</h2>
Simply put, a parameter is part of the function definition:
<code>
// vvvvv This is a parameter
fn do_stuff(input: i32) {
...
}
</code>

View File

@ -0,0 +1,10 @@
---
title: "SageV.Space"
draft: true
---
God, I Hate Paperwork
Some darned fool once again left their paperwork for the last minute, and now
I'm the one who has to clean up the mess. Except, I'm the fool, and I'm texting
my partner asking if she can pretty please find the info I left at home so I
can fill this crap out.

View File

@ -0,0 +1,18 @@
---
title: "SageV.Space"
draft: true
---
Peppers Part 2: The Peppening
The hot sauce is complete! After a week of fermented waiting, I blended the
peppers up with some vinegar, and voila! Hot sauce. So, how'd it turn out?
Well, first of all, kinda brown:
<a href="../assets/hot-sauce_full.jpg">
<img src="../assets/hot-sauce.jpg"
alt="A plastic tupperware filled with a brownish-green, slightly thick hot
sauce."></a>
Otherwise, if I really had to lean into my culinary expertise, I would say that
the sauce tastes like peppers.

8
content/posts/_soup.md Normal file
View File

@ -0,0 +1,8 @@
---
title: "SageV.Space"
draft: true
---
On Soup
I like soup. I think soup is more or less underrated by the world at large.
Soup rules.

View File

@ -0,0 +1,27 @@
---
title: "SageV.Space"
draft: true
---
I Wish I Read More
When I was a kid, I read books more or less constantly. Somewhere in middle
school, my pace slowed significantly. I blame homework. I went through a few
books in there, but not at nearly the rate from before. After high school, I
stopped reading almost completely.
Oh, I spent plenty of time on comment threads, but not books. Then I started
living with my partner, and we only had one car, so I started taking the bus to
work. Bless public transportation. With hands finally free, there existed at
least an hour each day with nothing better to do than read. I still didn't,
obviously, but I had time to.
My then-new job, however, had quite a few technical books laying around, and I
was to go through bits and pieces for work-related knowledge. Somewhere in
there, I had a moment of, "Oh, books are like, <i>fun</i>. Right.". It didn't
take too long before I always had something to read on me.
I keep track of the books I've read on Goodreads, because I didn't loathe
Amazon when I made the account, and I haven't yet taken the time to transition
somewhere else.

View File

@ -0,0 +1,26 @@
---
title: "Zelda and Calli"
date: 2020-10-04
draft: true
---
AKA _shameless cat-posting 2_
I mentioned my sibling's cats in <a href="neighborhood-cat">another post</a>,
but I figure they deserve an explanation of their own.
My sibling is currently looking for a new place to stay, so my partner and I
have been looking after their two cats for a while. There are two very
different personalities at here. We have:
Grouch
<a href="../assets/callie_full.jpg">
<img src="../assets/callie.jpg"
alt="A patchy light-brown and black cat
"></a>
Weird
<a href="../assets/zelda_full.jpg">
<img src="../assets/zelda.jpg"
alt="A black and white cat
"></a>

71
content/posts/break.md Normal file
View File

@ -0,0 +1,71 @@
---
title: "Oops, forgot to write"
date: 2020-10-15
description: ""
---
I haven't written anything for like a week (2 weeks? A month? Who knows
anymore) because I got myself all busy with _reading_. I feel it a noble
enough sacrifice. Today, however, I have a bit of a headache, and writing
offers a lot more flexibility as far as thinking and letting your eyes wander.
Also, apparently I busted by website-generator thing around the time of my last
post, so several pages were screwed-up for a bit, but they should be good now!
Anyway, what better to write about than the crap I've been reading. I thought
about making these all affiliate links (not through Amazon though, god), but
**1.** It takes work to work sign up and **B.** It
just ain't that serious. Maybe some day. Anyhow:
## Books
### The Witches Are Coming - Lindy West
A good "cultural critique" without any academic stuffiness. Or anything even
remotely resembling stuffiness. It has a very modern writing style -- West is
obviously a scholar of the internet -- and it's pretty hilarious for it.
### Is Everyone Hanging Out Without Me? - Mindy Kaling
The amusing stories of a TV writer. A light, fun read. Though there was one
joke about an old African schoolmate that wasn't _great_. C'mon, Mindy,
you're funny without that.
### Tomatoland - Barry Estabrook
A jaunt down the capitalist hell-hole that tomato farming apparently is (more
than everything else). I appreciate that it didn't pull too many punches.
Occasionally a smidge sympathetic to some that don't deserve it, but still left
me wanting to switch to a farmers' market.
### The Sirens of Titan - Kurt Vonnegut
Interesting concept. Reminded me a lot of Hitchhiker's Guide, but with less
whimsy.
I don't know. Theoretically, I like Vonnegut, but the treatment of
women in this is... not good.
### The Princess Bride - William Goldman
Having only seen the wonderful movie adaptation, it's weird to read the book
now. It's great, but -- blasphemy -- I don't think it has much of anything over
the movie.
### Americanah - Chimamanda Ngozi Adiche
A young Nigerian woman's journey to America, and the accompanying shattered
illusions about the land of the free. Not much I can say here that hasn't
already been said, but it tells a good story with absolutely terrific prose.
### Almost Perfect - W.E. Pete Peterson
A brief history of a now-defunct word-processor. It chronicles the story of a
business built from scratch by a bunch of whiteys, and the author with his
ridiculous name is a self-professed Glenn Beck fan these days (grimace emoji).
That said, if you're an awful, awful, nerd like me, and amused by that
old-school computer scene (these guys made millions before GUIs were things
people had) then it might be interesting.
That's all for now. Join me next week, when I'll be ranking the 10 cheap-o
Donna Andrews murder-mysteries I've read.

69
content/posts/c.md Normal file
View File

@ -0,0 +1,69 @@
---
title: "What is it with pointers?"
date: 2020-09-01
description: ""
---
Listen, if I had to pick a language to write a decent program in, I'd want to
use something like Rust. It behaves in more or less all the sane ways I want a
language to behave. Python's nice and quick for Python-y stuff, and Javascript
is Javascript, etc. But for some reason, I just <i>like</i> C.
I've written something of an implementation of Lisp for my Pebble smartwatch,
which I named PebbLisp. I'd love to have written it in Rust, to get some more
practice with it, but it was a real pain in the tookus to get compiling for the
watch, and I gave up. So, C.
I'll never act like C is a perfect language. Many, many, stupid memory leaks
could've been avoided with something smarter. For some reason, though, it's
just fun to work with. PebbLisp involves some dancing about with pointers, and
includes a homegrown tagged-union setup. There are parts that are probably very
ugly to more practiced eyes, and correcting unexpected behavior is a nightmare,
but coding it leaves me downright giggly sometimes.
The Object struct in PebbLisp has three parts:
struct Object {
Type type;
union {
...
};
Object *forward;
}
## The Tag
The first part is the `Type` of the `Object`. This is just an enumeration with
all the possible types that a PebbLisp object can be. It's the tag of our
tagged union. Already I like it far more than is warranted. One number is a
front for every possible type? Incredible!
## The Union
The second part is, of course, the union itself. I've cut it out here, but
there are members of the union for integers, pointers to strings, function
pointers, etc. Unions are also something I treasure. The famous issue with
unions is trying to keep track of what state any given union is actually in,
and god help you should it ever be interpreted incorrectly. That's why it's
fun, though. Coding a consistent way to access a union feels like cracking open
the secret door of programming. The Pointer
Finally, `Object *forward`: something that traditionally might be named `cdr`
(which I had to look up, because I'm really not enough of a Lisp guy). In Lisp,
everything is a list. An object with `forward == NULL` is a list of length 1.
An object that points to another object is a list of length `1 + listLength(forward)`,
aka itself plus the rest of the list.
So much code in PebbLisp is dedicated to making sure that this value is never
incorrect, duplicate, or useless. A `cloneObject()` function exists largely
because copies of individual objects can't keep this address. I'd love to use
our friendly neighborhood assignment operator: `=`, but C doesn't allow operator
overloading. But `cloneObject()` was fun to write, somehow!
## C
Anyway, this has already run too long. Point is, C doesn't care what you do
with data. And for some reason, it's fun to redo decades of other people's work
in a project no one asked for. I highly recommend it.
#100DaysToOffload

24
content/posts/disc.md Normal file
View File

@ -0,0 +1,24 @@
---
title: "Joy of Disc Golf"
date: 2020-09-22
description: ""
---
So, my partner and I have gotten pretty into disc golf recently. About two
weeks ago I ordered a new disc, so we could bring friends out for a bit of
good, clean, socially-distanced fun. It's pink and it's awesome.
Yesterday, we went to go play a few rounds at a different course than the
usual. Me, ace that I am, absolutely whipped that brand new disc onto a nearby
roof. COVID being COVID, there are, fairly, no facility people available.
Though I was initially a stubborn ass about it, my partner had the idea to
bring a ladder out and get it back. I thought it was crazy to climb onto the
roof of some park building, but another disc golfer (or _dolfer_) walked
by and said that he's done it here a million times. So, partner's right, as
always.
Unless it goes wrong, in which case I'm morally bound to amend this with the
appropriate amount of _neener-neener_.
If it all works out, I'll add photos of our victory!

28
content/posts/hey-look.md Normal file
View File

@ -0,0 +1,28 @@
---
title: "Hey look! My own site!"
date: 2020-09-21
description: ""
---
In [my last post](/posts/site), I lamented not having a place to put
my own stuff. Today I actually took a couple minutes to register a domain, set
up DNS nonsense, and _upload_. Thus: this! Feels like I might have kinda
lost the thread re: #100DaysToOffload, but this is fun, too.
The most head-spinning part of the process was coming up with the name.
Ultimately taking the simple route, I ended up somewhere between neat and
cheesy. I also think "sagev" and "space" being the same length is odd, but
visually, I like it a lot.
The site is intended to be as small as possible, while still looking nice, and
following all accessibility guidelines. It's definitely quick to load, but
could afford a bit more polish on the second and third fronts.
I picked up the domain on Namecheap, and currently have everything hosted on
Netlify. May I never exceed the limits of a free tier! It would be cool to
self-host at some point, but as it stands, this is more than sufficient, and I
don't need to leave a computer running all the time.
I wish I had more to say about this, because having my own site feels pretty
exciting! But I'm scraping the bottom of the barrel for content as it is, so
I'll just say I'm looking forward to doing more with it!

View File

@ -0,0 +1,94 @@
---
title: "How to be an Irredeemable Nerd and Look Good Doing It"
date: 2020-11-06
description: ""
---
In a [previous post](/posts/c), I talked a bit about my endeavour to build
myself a lil' Lisp: PebbLisp. It's a project I work off and on depending on my
motivation. Recently, I was pretty bored with it, and found myself looking for
a new project. Having read a bit about Forth, I thought it wouldn't be too hard
to try implementing it. Plus, this would be a great opportunity do some
practice with Rust.
If you're not familiar with Forth, it's a weird little interpreted language
built around a stack. Passing in a number will add it to the top of the stack,
passing in a function will (usually) do something with numbers on the stack.
For example, what happens when you run the following?
2 3 + .
First, `2` and `3` are added to the stack. Then, `+` pops the top two items off
the stack, and adds them. Then it pushes the result back onto the stack.
Finally, the `.` pops the top item off of the stack, and prints it out:
5
You can also compile functions that add some of these elements, and the
language can become surprisingly expressive:
: feet 12 * ;
: yards feet 3 * ;
5 feet .
\ This prints 60 (5 feet in inches)
8 yards .
\ This prints 288 (6 yards in inches)
5 yards 2 feet + .
\ This prints 204 (5 yards + 2 feet)
So, I figured "hey, looks simple enough", and got to work. Got basic parsing
going, got the stack pretty functional, added a few functions, whoo. Rust
turned out to be a great choice. Expressive, safe, and with built-in testing.
Good stuff. Almost too good. I'd started looking at PebbLisp again. Could I
write an interpreted language using my own interpreted language? Forth is
pretty simple, conceptually. How hard could it be?
Actually, it hasn't been the unholy mess that I was expecting. Yes, my PebbLisp
is severely lacking (there was no way to take user input before?). No, it has
nothing anything even remotely resembling a formal language definition (I've
operated on the "this seems to make sense" principle). With some tweaks though,
it has kind of worked!
My to-be-named Forth (Forbble? PLForth? PebForListhble?) is <em>incredibly</em>
buggy, and pretty tedious even when it does work, but it sort of kind of does!
$ "feet" 12 * "END"
$ "yards" 36 * "END"
5 "yards" 2 "feet" +
.
\ This prints 204
So, for reasons I've yet to suss out:
* Functions can't be defined using other functions
* Functions need to be defined using quotes, for goofy string/symbol reasons in PebbLisp.
* Statements that use a user-defined function seem to ignore the dot operator at the end.
_Please ignore the awful END symbol it should be easy to fix._
Anyway, it's been pretty neat to actually try doing something with PebbLisp.
I've cleaned up a bunch of hacky ways of doing things, and added a few more.
Some of it is super useful outside of Forbble (Flisbble? Porlth?) too. Since I
added an `eval` function, and a way to take input, it's actually super easy to
write up a REPL in PebbLisp itself. Very fun!
PebbLisp was never intended to be a terrifically practical language. Have I
mentioned it was originally created to be written and run on a smartwatch?
Yeah, the Pebble (hence the name). Enjoy typing on its four buttons. This is
also the reason PebbLisp is written in C, as nothing else worked with their
SDK. Nonetheless, it is incredibly satisfying to get your own language running
something even remotely real. Even if that something is another, even less
useful language.
I love it.
If you, like me, enjoy programming enough to do it in your free time, try
writing a little lang. Forth is a great place to start, and Rust is a great
language to write in, but there are certainly others that would be cool to work
with. Or just try _using_ a different language. I'm not saying your
Forth knowledge will get you hired anywhere, but it's a good excuse to look at
your code differently, which is always a good idea.

43
content/posts/laptop.md Normal file
View File

@ -0,0 +1,43 @@
---
title: "Buying someone a new laptop"
date: 2020-09-09
description: ""
---
My partner's been running with a 2015 MacBook Air for a few years now,
but it's no longer doing what she needs. That is to say, it rapidly
converted from “ok” to “very stinky” over the last year-ish. YouTube
videos stutter. It's madness. We even re-installed MacOS, and no dice.
An upgrade was in order, and with all the remote work stuff, it needed
to be a sizeable one.
Now, my current laptop is a Dell Precision M4700 from early 2013 (that
I bought in 2018). It's a fat boy. Nearly an inch and a half thick,
and not exactly _chamfered_. Priorities for that purchase include:
number of hard drive spots, number of RAM slots, can play Factorio.
My partner did not want a Dell Precision M4700. She has frivolous
requirements like “battery life more than an hour”, “un-terrible
webcam”, and “less than 6 pounds”. This narrowed down the options
significantly. Of course, what narrowed it down more was that I
insisted on finding something with swappable RAM and storage, but I
stand by that.
The search for new technology is kinda fun, but I spent way too much
time on it, and it got to be pretty draining. There exist far too many
devices with good specs and terrible trackpads. We also try to buy
used where possible for not-being-wasteful reasons, but her work uses
very poorly-optimized software, so we bit the bullet and found
something new.
And when I say “we”, I mean “she”. I spent hours on the search (and
picked up plenty about the current laptop “market” or whatever) but
ultimately she found it, tucked away on a manufacturer's website. I
gave it the know-it-all computer-guy seal of approval, and we ordered.
It looks pretty cool, and should totally blow mine out of the water.
But it hasn't arrived yet, so maybe it's terrible.
#100DaysToOffload
PS: For those interested it's an Inspiron 15 5000 with the Ryzen 5 4500U.

58
content/posts/music.md Normal file
View File

@ -0,0 +1,58 @@
---
title: "A Programmer Makes Music"
date: 2020-10-01
description: ""
---
A few years ago, I found the lovely [Godot Engine](https://godotengine.org"),
and decided to make a game. It's called Fronter and it's not much of an
improvement over the Flash game I made by copying a tutorial in 2009. Though I
wrote it myself this time instead of just swapping out assets (I was 13, okay).
It's sorta fun, but very incomplete and _terribly_ balanced. It does, however,
have exquisitely-crafted graphics:
<a href="../assets/fronter_full.jpg">
<img src="../assets/fronter.jpg"
alt="The main "character" of Fronter: a very simple, significantly sloppy
black and white drawing of what some might call a spaceship."></a>
<small>Yee-haw</small>
I love programming. I love solving problems with clever solutions. I think it
can be hard in certain types of creative project, though. I've had tons of fun
working on my little LISP implementation because, there, programming is the
journey _and_ the destination. Those problems are fun to solve, and have a
clearly-defined scope. With a game, it's way easier for me to glom on a bunch
of nonsense, and barely get anywhere with the actual gameplay.
So, somewhere in there, I got tired of scratching my head, "Make enemy strong?
But no make _too_ strong." and just worked on the music. I'm no musical
genius-man, but sometimes programming is stupid, and you just want to make
drums go bop and synths go bzz.
Most of the music is overtly game-y, with the aforementioned buzzy synthesizer,
but I think it works most of the time. A lot of the songs I've done are also
way too intense for background music, like they'd only make sense at the climax
or the closing credits. Part of the reason I dropped the game was because I
couldn't find anywhere to put the music I worked on!
I've hardly ever _named_ a song, either. Nearly everything still has its
placeholder name. "Organ", "Game Tune", and the especially horrifying "Poppin'
Freestyle", are all in desperate need of a rename. And no, "freestyle" refers to
several minutes of synth noodling. It is not rap. If you ever see a post on
here titled, "Me Rapping is a Good Idea, Actually", please reach out to my
emergency contacts.
This post isn't intended as a plug, but if you're itching to hear some
bleep-bloops, there is technically a [Soundcloud for Fronter](https://soundcloud.com/fronter_game).
I didn't spend much time on a lot of the songs, so they severely lack polish,
but the three I mentioned above are, I think, the best (more or less in the
order given).
I haven't had the power cable for my MIDI keyboard (a rather cheap-o Yamaha
YPT-240), so it's been a long while since I attempted a tune. Finally bit the
bullet on ordering a new one yesterday, so maybe I'll work on more stuff in the
near future.
Also annoying FOSS-lover that I am, [LMMS](https://lmms.io/) is the
music-making software I've used. So, if you have a melody kicking around in
your head, I highly recommend that you try and play it out. It's very fun.

View File

@ -0,0 +1,28 @@
---
title: "How much is that kitty in the window?"
date: 2020-10-02
description: ""
---
AKA, _Shameless cat-posting_
Our house has a stray cat hanging around (dubbed, "Vinny") who my partner and I
have grown quite fond of. He comes up to the back door every few days to get food
and engage in a staring contest with our cats.
Vinny is pretty thin, but sports an enormous melon. He also maintains a very
serious look on his face despite frequently poking his tongue out.
<a href="../assets/vinny_full.jpg">
<img src="../assets/vinny.jpg"
alt="A light-brown cat with a big head staring through the bottom window
of our back door."></a>
<small>No blep today. Very serious.</small>
I'd love to invite this obviously-very-good boy inside, but one of the other
cats can be a real ass, and I'm not sure having a scrap is in either of their
interests. Technically, we're borrowing these two from family, but they've
gotta stay under our watchful eyes for now.
He's been stopping by more frequently in the last couple of days, so I hope we
can fatten him up a bit. He needs a body to match that noggin.

31
content/posts/peppers.md Normal file
View File

@ -0,0 +1,31 @@
---
title: "A Peppery Experiment"
date: 2020-09-27
description: ""
---
Inspired by boredom, an unreasonable affinity for all things vinegary, and a
friend doing neat pickle stuff, I've decided to try making some fermented hot
sauce. It's the first time I've fermented something, so it should be a learning
experience, if nothing else.
The [recipe](https://www.chilipeppermadness.com/recipes/fermented-hot-sauce)
I'm following is pretty simple, but my impatience and cheapness may impact the
outcome. I don't have any jars that are as big as they recommend, so I split it
into two that are, _cleverly_, not the same size. The big jar doesn't have
the right lid anymore, so the wrong one is currently held in place with
shoelace. And, to be extra confident in the seal, I slapped some books on top
of it. Another job well done.
<a href="../assets/peppers_full.jpg">
<img src="../assets/peppers.jpg"
alt="Two glass jars with halved peppers immersed in water.
One has a shoelace and some books on it.
Both are practically erupting with plastic bags"></a>
Plus, apparently I can't read, because I ordered white cooking wine instead of
white wine vinegar. So, that bodes well. I don't need it until the end, so I've
got time to pick up the right stuff, but still.
I have no idea how this will turn out, but I'm pretty excited to see! Just a
week of waiting.

37
content/posts/postcats.md Normal file
View File

@ -0,0 +1,37 @@
---
title: "PostCats"
date: 2020-09-22
description: ""
---
I wrote this as a group project proposal for a web applications class, but I
ended up with a team that had a different direction in mind. I thought it
was kinda funny, though, so I say it fits here:
---
Have you ever thought, _"Boy, this floor doesn't have nearly enough colorful
nonsense on it"_? Is there a hole in your soul that can only be filled
vicariously through your cat? Then, my god, do I have a website for you!
PostCats is a cat toy subscription service, available in monthly, weekly, or
daily installments!
At PostCats, we know that your pet quickly tires of playing with the same toy
day after day. We think bored cats make for bored people. A little variety seems
to be in order!
At our website, we are excited to offer dozens of unique, engaging cat toys, all
delivered straight to your door! Simply select what combination you would like
of fuzzy, stringy, noisy, (or surprise!) toys, and how often you would like them
delivered. We'll take care of the rest!
PostCats makes it our mission to deliver fun straight to your door, and into
your cat's heart.
Start now for only 50 cents a day!*
## PostCats ensures that the fun endures!
_*50-cent-per-day promotional price is based on ordering a five-year subscription
of monthly toy deliveries at a rate of $182.50 per year. The promotion expires
after the first year, and the price returns to its standard $200 per year._

55
content/posts/school.md Normal file
View File

@ -0,0 +1,55 @@
---
title: "Boy, I sure love college"
date: 2020-10-05
description: ""
---
This semester, I'm finally, _finally,_ finishing up the last class in my
bachelor's. I started this degree in the Spring of 2016, _after I'd finished
my associate's_. So, I've been after this stupid thing since Fall 2014, and
I'm sick of it. Thanks to a scholarship, my tuition has "only" totalled
somewhere around fifteen, maybe twenty thousand dollars. Might be good to know
the exact figure at some point, but since I could technically still drop out,
it's best that I don't think about it too much.
To think I'm still luckier than so many people. I have seven or eight thousand
something in loans left to pay off, but that doesn't touch the tens of
thousands that people can have racked up against them. And that's if they can
manage to get into a useful school. And that's if they can even afford to spend
time on an education, instead of working to survive.
Even if higher education were free -- great idea though it is -- some people
_still_ couldn't afford to go. It would help a lot of people, but it
doesn't change <span title="Hint: it's Capitalism">the system we're in.</span>
<!--
<a href="../assets/cap_full.png" title="View full size">
<img src="../assets/cap.png"
alt="The phrase 'It's Capitalism', in wobbly, old-MS-Office-style word art.">
</a>
-->
## Speaking of school
I don't know if you knew this, but people are really rolling the dice on the
lives of teachers right now. Especially in my state. There's an
idiot-and-evil-fueled pandemic going around, and they're dealing with children
by the dozen. The people making these decisions don't have to deal with the
consequences, so why not?
There are teachers who have a master's in education, who are being exposed to
god-knows-what at work every day, and are making less money than any schmuck
who knows what C is. It's madness. I like programming and I've done some tough
work, but it is not as important or as difficult as teaching,
_obviously_. My partner is a teacher herself, and right now the
employment opportunities are essentially:
* Online tutoring with no hours
* Die
I'm even in the office while training at my new job, but there's never more
than 10 people here, and none of their hands are ever inexplicably sticky. I
know that a lot of individuals respect teachers, but the system clearly
doesn't.
My life is not more important than theirs.

29
content/posts/site.md Normal file
View File

@ -0,0 +1,29 @@
---
title: "Hugo? More like, No-Go"
date: 2020-09-17
description: ""
---
Driven largely by a staunch refusal to learn anything too new, I've decided to
try my foolish hand at writing one of these "static site generators". That is
to say, I've decided to pretend a task is very very simple, and pray that my
needs never outgrow my mediocre bash skills.
Basically, I'm _tired_ of writing brackety tags everywhere, so I have a
little converter from plain text to HTML. There's a template.html file and an
index.template.html file. The first is the basis for individual posts, and the
second is used to generate a list of links to each post.
This script is incredibly naive. It more or less copy pastes the text in a
given post file straight into the body of the template.html file. But it does
use the first line of the file as both the header and the name of the link,
which is kinda fun. And I can just add HTML tags wherever I want, if I do feel
like adding some _flair_.
At some point, I might try to convert this into a real project with my dear
friend Rust, but for now that's 2 hard.
The best part of this whole thing is that I don't even have a way to host it,
yet. So for now, write.as, whoo!
#100DaysToOffload

39
content/posts/torch.md Normal file
View File

@ -0,0 +1,39 @@
---
title: "Passing the Torch"
date: 2020-09-30
description: ""
---
When I left my last job, I was lucky enough to do so on great terms with
everyone there. It was all very _the circumstances are what they are -
nothing to be done_. So, when I put in my notice, I was asked to spend some
time showing my replacement the ropes, and I was surprised by how much I
enjoyed it!
Much as I did like working with the company, there was a thing or two that made
my own onboarding a bit weird. The first day of the job basically began with,
"You know some C? Go fix an enormous memory leak in this Linux driver."
> "Okay."
I enjoyed the challenge, and it worked out alright, but it was definitely a
rough way to start. Worse, it took forever to figure out what people even
_did_ every day. Evidently, I was on a team of 3, but it was days before I
knew who my teammates were, and weeks before I figured out what they were
actually working on.
So, I wanted to save my replacement some time. Most of it was just saying "the
device we're working on is designed to do _this_, your teammates are these
two, who work on _that_ and _that_, and what you'll be doing for the
foreseeable future is _this_". So it wasn't exactly excruciating. I just
tried to clear up some of vagueries I dealt with at the beginning. Sometimes,
it also made sense to help them brush up on C, which, as I've [mentioned before](/posts/c),
I'm unreasonably happy to do.
It was hard in a few ways, because at this point the company did most of its
work remotely. I never actually got a chance to meet the person replacing me,
but I still enjoyed teaching, and I hope I made their life a little easier.
I'm definitely not clamoring to lead a group based on one, "I taught someone
some stuff and then _left before there could be consequences"_, but I
really liked my brief excursion in it, and I'd be happy to try again!

36
content/posts/vim.md Normal file
View File

@ -0,0 +1,36 @@
---
title: "How to become a Hackerman"
date: 2020-10-02 01:00:00
description: ""
---
How does one become hacker? _Use a hacker editor._ Vim is the text editor
used by all the most elite hackers on this globe. If you want to be a cool
hacker lady or hacker boy, there's only one way to do it: vim.
Why vim?
Well, here's why: we have: in vim:
* Insert mode
* Move fast
* Press keys
* Can't quit
If you use vim, you are cool. If you use notepad, you are stupid. If you use
IDE, you are baby. If you use emacs, you are just dumb. There's only one editor
for me, and that's the one that starts with 'V', and ends with 'm', and has an
'i'.
I have a tattoo of hjkl on my ass. If you took the first letter of each
sentence in this paragraph, it would spell 'IIT'. Thanks to vim I figured that
out in 2 minutes.
I have two great shortcuts in my .vimrc (_vim really cool_) for coding
with more power. When I finish a sentence, vim automatically commits the file
with the message "Hacking". When I press an arrow key my computer restarts, and
even better, shoots me.
I've been using vim since before it was invented, so if you think you know more
about it than me you can just shut your dang mouth.:w
I will never use anything else. You can't make me.

View File

@ -0,0 +1,40 @@
---
title: "The Worst Phone I Own"
date: 2020-08-25
description: ""
---
I own far too many phones because I'm a nostalgic nitwit and I never manage to
get rid of the old ones. Some were broken and replaced, and some were lost to
carrier-switching. Two phones I purchased just for fun. One was a Galaxy SII,
for toying with PostmarketOS. The other is the worst smartphone I've ever
owned: the Alcatel OneTouch Pixi Pulsar.
The Pulsar is small, slow, has a locked bootloader, is stuck on Android 4.4.2
(3 years old when I bought it) and is locked to Tracfone. Why did I buy this
piece of junk? Because it cost $4.83, after taxes, shipped overnight. I know
carriers discount devices so you'll buy their service, and it's a piece of
junk, but still.
I tried a few of my main apps. Tusky is incompatible, but Fedilab runs okay.
Slide for Reddit works alright but has some bizarre behavior when switching
between activities (or fragments or whatever they are). The only camera is
obviously hideous and rear-facing. During an unrelated nostalgia kick I read
the entirety of two Goosebumps books using Librera Pro, which worked well.
Anyway, it's pretty terrible. I had some fun experimenting with it, as a
what's-the-worst-hardware-I-can-live-with test, but it's pretty rough. If it
had a little more space and the software was a smidge newer, I might be able to
get by.
That said, consider giving this experiment a try. I wouldn't recommend going
and buying something you don't need — it feels wasteful, now — but if you've
got an old phone in a drawer somewhere, pull it out. Boot it up and see how it
compares to your current device.
And then, if you're anything like me, sell the damn thing.
Yeesh.
_Originally posted on write.as_

5
static/_redirects Normal file
View File

@ -0,0 +1,5 @@
/ /index.html
/pages/hey_look.html /pages/hey-look.html
/assets/* /assets/:splat
/pages/* /pages/:splat
/* /pages/:splat.html

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

BIN
static/apple-touch-icon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 227 B

9
static/browserconfig.xml Normal file
View File

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<browserconfig>
<msapplication>
<tile>
<square150x150logo src="/mstile-150x150.png"/>
<TileColor>#224679</TileColor>
</tile>
</msapplication>
</browserconfig>

BIN
static/cap.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

BIN
static/cap_full.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 121 KiB

BIN
static/capitalism.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

BIN
static/capitalism_full.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 134 KiB

BIN
static/favicon-16x16.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 409 B

BIN
static/favicon-32x32.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 603 B

BIN
static/favicon.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
static/fronter.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

BIN
static/fronter_full.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.3 KiB

BIN
static/kd-full-logo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

BIN
static/mstile-150x150.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

BIN
static/pebblisp-logo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

BIN
static/peppers.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 308 KiB

BIN
static/peppers_full.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 MiB

2
static/robots.txt Normal file
View File

@ -0,0 +1,2 @@
User-agent: *
Allow: /

View File

@ -0,0 +1 @@
<svg version="1" xmlns="http://www.w3.org/2000/svg" width="346.667" height="346.667" viewBox="0 0 260.000000 260.000000"><path d="M134.4 2.1c-.6.8-2.3 3.9-3.9 6.9-1.5 3-4.8 9.3-7.2 14-6.9 12.9-19 36.2-25.4 48.5l-5.6 11-14 7c-7.7 3.8-21.4 10.6-30.4 14.9-41.2 20-47.8 23.5-46.6 24.3.7.5 3.9 2.3 7.2 4 31.3 16 44.1 22.6 44.5 23 .2.2-.5 2.3-1.7 4.6-2.6 5-18.6 35.7-26.8 51.2-14 26.9-23.8 46-23.2 45.5.3-.3 19.5-19.4 42.7-42.4l42.2-41.9 14.2 7.3c7.7 4 20.9 10.8 29.1 15 33.6 17.3 53.5 27.6 63 32.5 5.5 2.9 21.3 11 35 18 13.8 7 25.6 13.3 26.3 13.8.7.5 1.4.8 1.7.6.4-.5-4.7-11.9-14.9-33.3-3.1-6.5-5.6-12-5.6-12.1 0-.2-2.9-6.4-6.5-14-3.6-7.5-6.5-13.8-6.5-13.9 0-.2-3-6.6-6.6-14.2-16.9-35.7-40.4-86.3-40.4-87.1 0-.4 18.6-19.1 41.2-41.5C238.9 21.4 257.2 3 256.9 3c-.4 0-5.5 2.4-11.5 5.4-6 3-17.4 8.5-25.4 12.4-8 3.8-24.8 12-37.4 18.1-12.6 6.2-23.4 11-24 10.8-.6-.3-2.7-4-4.6-8.3-1.9-4.4-6.6-14.7-10.6-22.9-3.9-8.3-7.3-15.6-7.5-16.4-.4-1.1-.6-1.1-1.5 0z"/></svg>

After

Width:  |  Height:  |  Size: 951 B

19
static/site.webmanifest Normal file
View File

@ -0,0 +1,19 @@
{
"name": "SageV.Space",
"short_name": "SageV.Space",
"icons": [
{
"src": "/android-chrome-192x192.png",
"sizes": "192x192",
"type": "image/png"
},
{
"src": "/android-chrome-256x256.png",
"sizes": "256x256",
"type": "image/png"
}
],
"theme_color": "#ffffff",
"background_color": "#ffffff",
"display": "standalone"
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.6 KiB

BIN
static/undercover-logo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

BIN
static/vinny.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 65 KiB

BIN
static/vinny_full.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 MiB