March 2021 newsletter
Published: 2021-03-31Word count: ~6820
Table of contents:
- timtimestim
- Dumping ground
- Read later
- On luck
- Wiby.me -- the old web
- Neurons gone wild
- Signaling
- Making Crash Bandicoot
- Semantic linefeeds
- Goodbye Lilly
timtimestim
- A new blog post about the Fantastic Markup Language for writing HTML using C.*
- Started writing rhymes and raps in the wiki, because I love to mess around with English.
- Moved all the source code repo's over to Sourcehut.**
*That FML post got a lot of attention on reddit. At least a lot of attention in comparison to the near-total radio silence I've experienced for... fuck over two years of writing things online now? Way back before I even started this site. Still sort of riding the high of to be honest. A real "They like me! They really like me!" validating thing to read all those comments. If you're somehow still here than all I can say is welcome to the Tim Show; leave your frontal lobe at the door, you won't be needing it here. The newsletter runs a little different from the blog, just so you know.
**I have a constantly growing paranoia about free web services. Their incentives never ever align with that of the user's. They always have to exploit their users in some way. I've been making a slow move over to using payed services for a lot of the things I use like email and web hosting. My demands for these services are pretty strict sometimes, and sr.ht has been a git-hosting site that I've been looking at for some time now. Finally decided to bite the bullet and sign up. They're still "in alpha" so the service is considered to be free, but I decided to pay for it anyways since they said they're moving into beta soon anyways.
I'm always astounded at how cheep web services are; for the price of what it takes to fill my car with gasoline I get a year of top-notch git hosting, mailing list hosting, issue tracking, and a bunch of other crazy shit. sr.ht's design and goals align with my values enough to make it well worth it.
I'm hoping that the larger-than-normal size of the timtimestim.com repo is okay. It has some binary files in it, but I compress them as well I can. If they send me an email I'll take it down and put it back up on gitlab. But for now I think it'll be okay. Strange how I feel more guilty about it on a service I'm paying real money for while feeling less guilty about abusing gitlab's generosity.
Dumping ground
I'm reversing the order of the dumping ground/read later sections from the end to the top. I think it makes more sense.
- Looking through SQLite for weird bugs: SQLite with a Fine-Tooth Comb by John Regehr.
- Really awesome looking compiler back-end called qbe.
- Comprehensive survery of United States internet users' sentiments towards cryopreservation, an interesting study/survey about people's thoughts on cryonics.
- Uncovering a 24-year-old bug in the Linux Kernel by Apollon Oikonomopoulos (who's last name is the bane of substitute teachers everywhere). Really fun look into weird bugs.
- John Carmack on Inlined Code talks about the powers of just letting yourself making long functions in your code. I approve this message.
- Prose is bad by /u/nonexistentbrother is an interesting perspective on the normal "prose-like" writing that most information on internet is presented with.
- Ray Tracing in pure CMake by "64". All that you see before you will be ash one day.
- CSS3 proven to be turing complete by accodeing.com. Just in case you wanted more security issues in your web browser.
- Home is where the bits flow by josephg.com, a heart felt writeup about how we relate to the internet.
Read later
- Nintil's What is aging?.
- legay-cc - the earliest known C compiler
- Nuklear - single header C GUI library
- zpl - header-only general purpose C libraries
- metalang99 - horrifying C library for preprocessor-based metaprogramming
On luck
Luck, for the sake of this section, is the phenomenon in where some people have to put forth less effort to achieve an enviable goal than others. They are said to have more "luck". You can be said to be "lucky" if you have one or more qualities that lets you achieve said enviable goal with less effort.
For example, someone born into a generational wealth family is lucky in the sense that they can achieve the enviable goal of not wasting away at a day job with little to no effort. Someone who does not have the quality "born into a generational wealth family" has a much lower chance of meeting the same goal.
But the use of a definition comes not in what it can describe, but in what it doesn't describe. Is the person who practiced piano for 3 hours a day for seven years "lucky" that they can play the piano well?
I think about questions like that a lot. The obvious -- the nicest answer -- is an emphatic no. The piano player has gotten there by their own free will, their own actions, their own ambitions. They had the choice every day to not practice their piano playing, and yet they kept doing it. The rich asshole on the other hand just had everything handed to them on a silver platter.
And then I ask myself: Is this piano player lucky that they are the kind of person that allows them to practice piano so much? People are inherently different from one another, and this is a fact that we celebrate. Be it nature or nurture, whatever has caused their brain to be able to execute on practice for 3 hours a day for 7 years might have been out of their explicit control, at least in the beginning.
They might have been born with "high conscientiousness" genes, or have gotten the exact right amount of Omega-3 fatty acids growing up, or given a lot of praise at a young impressionable age for playing piano which went into a feedback loop of playing more. Maybe, in the set of all personalities, they just so happen to to be a person who can play piano for 3 hours a day for 7 years.
Is that luck?
What about the person born into a terrible abusive household? They're beaten and belittled and need decades of therapy to obtain even a semblance of mental stability. They are unlucky, right? Supremely obviously unlucky. And if that same baby had been born into a nice household, they would then have been considered to be lucky.
For the piano player, however, saying that they are lucky has negative connotations. It's almost like disregarding their efforts, which are extraordinary. They might be upset that I would blame their success on anything but their efforts.
I would like, then, to make three distinctions: luck, serendipity, and chaos.
Luck we've already described. It means an innate quality of a person that could possibly allow them to achieve an enviable goal. This quality explicitly not being obtained through any effort of their own. The piano player is lucky that their brain has its genetic conscientiousness baseline high enough to practice.
Serendipity is a bit of a lighter touch. You can think of it as an "opportunity" to capitalize on. It it serendipity that the piano player has the ability to practice that much, and it is through ambition and hard work that they use that to obtain skill at piano. Note that this is recursive, that having the amount of needed ambition to capitalize might also be luck. The trick is that serendipity doesn't imply success; the piano player might have chosen a different path.
Chaos is madness. Random quantum particles, or whatever is more base in the physics of our universe, moving/operating/existing in a pattern so unpredictable that you chock it up to absurdity. For example, the weather is chaotic; it's difficult to predict. But as you are able to predict the weather better and better, chaos starts to become serendipity that you can capitalize on. Maybe you predict the weather will be bad, so you stay inside. If something were chaotic to you that is a fact about your own understanding and not a fact about the universe you live in.
So it would be luck if someone were born with a high IQ, serendipity if they use that intelligence to make the world a better place, and chaos if they couldn't explain why they were more intelligent than average. It would still take a lot of effort even when intelligent, but they still did it.
The reason why we think the rich asshole is less noble than the hard-working piano player is that the rich asshole had to use far less agency and ambition to capitalize on their luck. Either that or we're just trying to signal to our less wealthy friends that we're part of the same group ;).
Luck seems to be, at some level, fixed in place. If the rich asshole squanders their fortune, they are still "lucky" to have had so much wealth in the first place, even though my might be "unlucky" to be the kind of person who squanders wealth.
When is luck granted? At birth? But what about the 3 month old who is dropped on its head? No, luck is granted up until the point where the person has agency over their own actions, and then is considered to be serendipity to be capitalized on or not. So it can be lucky to have high conscientiousness while still being ambitious to become a good piano player.
What about taking luck away? When chaos becomes something you have no agency over. A cancer in your frontal lobe. Alzheimer's. ALS. There is a whole class of debilitating events that can displace your agency, and your ability to capitalize on serendipity that you used to be able to. These things are unlucky.
Now, finally, to what I was actually wanting to talk about. Wow.
Imagine that the max possible "luck points" is 100. A person with 100 points would be the most lucky person in the world at any given moment. They have an inherent ability to capitalize on serendipity that far out strips any other person, be it through wealth or genetics or whatever. A person with 0 points would probably already be dead, if we're being honest here; or maybe the morbid reality of someone starving to death alone and afraid or equivalent sad thought.
A person is born into a rich family and uses that wealth to gain more wealth. They have the same luck point value, but their ability to capitalize on serendipity continues to grow with their wealth. But have they been born into a family without a lot of money they would have had a far lower chance of being able to obtain that wealth. You follow? The luck points value is set at the moment you become a self-aware agent capable of free choice, and is only adjusted from new information about set-in-place problems like a degenerative disease.
You have goals. You also have the things you're lucky about. And, finally, you have all the pieces of serendipity you've collected along your life so far, called advantage. More advantage gives you more ability to get better serendipity, and so on. Collecting advantage towards your goal is how you achieve your goal, because otherwise you'd just be relying on chaos.
Your luck point value is at a certain level. You can build more advantage by using the things you're lucky about; easy access to food, not dropped on the head as a baby, whatever genes that let you build up the skill of dealing with pretentious writing like this, etc. But your luck isn't strong enough to achieve your goal, so you need more advantage to do it.
Or perhaps your goal is more ephemeral, as they often are. You have a vague feeling of "I want to be good at piano" instead of "I want to play in front of a crowd of X people". You still have a general direction you would like your life to take compared to random chaos. A lot of the times it takes searching to even find out what it is you're trying to accomplish.
So, given the amount of luck you have and the amount of advantage you've accumulated so far, what is the best strategy for steering your serendipity exposure towards things that you can capitalize on?
This is the fundamental thesis of the Self Help Thing (tm), that you can improve your advantage in relation to your values even though your starting luck is insufficient to cover the need.
I have no way to quantify luck points, and in reality they're much harder to differentiate from serendipity. But that still raises the question of just what the optimal strategy is for accumulating advantage.
Which is why this section is about luck, or more specifically, serendipity (which is a superset of luck, all luck is serendipity, but not all serendipity is luck). One of the pet theories I've been working on for quite some time is that exposing yourself to as much positive serendipity as possible is a good way to gain advantage.
I've written about this before in No one is even trying in a previous newsletter. In there, I said:
Someone writes only 5 poems in their life, all of them good. Another person writes 5000 poems with varying degrees of quality. Which one, do you think, will have written more good poems in the end? Unless you're saying that the second person would have a less than 0.1% success rate in making "good poems", the second one will obviously win.
"If I do this thing once, what can I expect? If I do it 100 times what then?" Is kind of the way I'm thinking. If I write ten thousand words of newsletter or I write twenty thousand, which one will produce a higher chance of a gem of a sentence?
Read that link if you want to hear the other thoughts I have about that particular subject.
The point I'm making here is that this strategy seems more applicable than I might have thought originally. In Danluu's 95%-ile isn't that good he talks about how a ton of people who claim to be passionate about being good at Overwatch don't even watch recordings of themselves play the game. That might be a strategy of not realizing the strategy, but it might also be them just ignoring it for... reasons?
Trying different strategies. That's the basic idea of what I have in mind. It's increasing your luck surface area as Codus Operandi said it. Basically increasing the amount of serendipity that you intentionally expose yourself to on a regular basis, filtering out the bullshit, and choosing the path that seems most likely to be in the direction you want.
That success I had with the FML blog post (wrote about it in the first section of this page) was because of a strategy like this. I've never posted a blog post I've written onto reddit before, especially in a "respectable" community like a serious C programming sub. My writing style in blog posts is rather... wild, and I've always felt afraid of how it would be taken so I never tried.
And then I did, and I got the most positive response to that post I've ever gotten about anything I've ever made. And now I know that I can tap into a really cool niche of "weird manic humor writing mixed with actual programming" that I've basically gotten hand-written signed conformation is something that at least some people want.
So that's my conclusion. I have directions I want my life to go, and it's going to take stepping out of my comfort zones to get there. I don't know how I'm going to do it yet, but now that the thought is out here I have less of an excuse to waffle about it.
Wiby.me -- the old web
Go to that website. Search for something. Visit a page.
As you might be able to tell from the design decisions on this site, I have a fetish for... unique website designs. I love the ways people make their own websites into their own things, and I love the things they put in them. I try to embody some of that in the design of this site, even though I don't get to the scale of some of the things seen here.
wiby is a search engine for old-style websites. Hand crafted websites. People's little internet homes. Instead of crawing the web trying to find an "optimal search", wiby gets url's submitted to be indexed.
This is what I wish the entire internet looked like. Come and stay a while in my brain.
Neurons gone wild
Kevin Simler's Neruons Gone Wild is a fascinating look into the idea that the brain is composed of a bunch of different agents.
For our purposes, an agent is an entity capable of autonomous, intelligent, goal-directed behavior.
I recommend you read the article in full before continuing. I know you aren't, but it'll help you understand where I'm coming from here.
I felt that a lot of this post resonated with my own lived experiences. Not the tulpa stuff, or the possession stuff, or any of that. But the feeling that I'm composed of different "agents", that is composed of different sub-systems with separate, sometimes incompatible, goals. They don't have to be ascribed personhood, just like how my beating heart doesn't need to be a person to have to beat, they just are part of the greater whole of what it's like to be Tim.
I've thought about it in this way for quite some time. Programmer Tim has different goals from Writer Tim, who has different goals from Deal With His Parents Tim. They're all still me, but I find myself being able to differentiate very real lived experiences of feeling like I'm a different flavor of Tim at any given moment.
Then you have Secretary Tim, who goes around trying to corral the other subsystems into some semblance of cohesion and order. Sometimes I can literally feel -- in the sense of a sensation of things happening -- subsystems in my mind arguing amongst themselves.
I'm certain that this isn't some sort of Multiple Personality Disorder, since I feel like a cohesive person in general, but that doesn't change the fact that my brain is composed of more than one system, and that these systems sometimes have competing "goals" insofar as a non-person subsystem can have a goal.
Even a plant can be said to have agency, since it 'wants' to grow toward the sun.
Listen. I know I'm weird. Possibly insane, even. But this article has made me explicitly think about the way I experience being myself in a way that I've never had before, and I've been chewing on it for almost a month now.
In Mental Mountains (which is a review of a review of a book about a certain kind of therapy, because my life is recurrecurrecursivesivesive) Scott Alexander talks about a similar situation. Tell me if you've heard this one before: You "logically" know that something you're doing is against your goals -- let's say not standing up for yourself -- but you can't seem to convince your brain to act in a way commiserate with that knowledge.
Alexander talks about it in the form of "mountains" between different sub-systems in the brain. That is, there is some sort of difficulty for different sub-systems to communicate with each other, which is how you can hold contradictory views like "Everyone hates me I'm the worst" and "Obviously not everyone hates me" without having your brain compress into a black hole of cognitive dissonance. If these systems were about to freely communicate they would come to some sort of consensus.
Go read that Mental Mountains article. In fact, just go read more Scott Alexander. I know you aren't, but whatever.
In physics -- bear with me here, okay? -- in physics you can look at the operations of something in quite a few different levels of abstraction while still having a close approximation of the truth. You don't need to think about the operations of general relativity to understand that ball goes down.
I think of this sub-system agent brain thing in the same way. At the core I'm just a pattern of electricity flowing through a soggy bit of bacon in the ceaseless chaos of the wider universe, but at higher levels of abstraction that pattern can usefully perceive itself of consisting of smaller easier to understand patterns. Sometimes those patterns produce outcomes that other patterns don't like -- I procrastinate on an important project maybe -- and there is almost certainly a "highest level" pattern -- the sense of being a cohesive self -- whose job is to influence these patterns into... better utility? I'm working on that one.
The trick that I've found really useful is this: conceive of the sub-systems as sub-persons. That doesn't mean to disassociate and believe you're someone else. It's more of a "what does Programmer Tim want right now?" kind of thing.
If I'm feeling bored I can ask myself, "What subsystem is feeling bored right now?" which sometimes miraculously produces a useful answer. Angry Tim wants things to happen in a different way from Abject Apathy Tim. Writer Tim has moods where he wants to write like a pretentious academic (cough) and other times wants to write in a mad wild humor style. Dancing Alone In His Room At 2 AM Tim is weird, we don't talk about him.
And of course you have Past Tim, Present Tim, and Future Tim, who are all crazy.
No. Stop it. Stop thinking that I'm crazy. I'm not ascribing personhood to these systems. Just like you can imagine a clock having a vendetta against you for going to slow, I can imagine Running Tim wanting to jog an extra mile.
There's a book about this called The Elephant in the Brain, by Robin Hanson and Kevin Simler. I've gone to my local library and they got the book on loan from another library, and I'm currently in the middle of waiting for it to arrive so I can give it a read. Maybe I'll write about this more in the next newsletter. Or should I say, maybe Newsletter Tim will think of something more to say.
Signaling
Continuing the disturbing trend of "Scott Alexander explains something to me I sort-of-already-knew in a way that makes way too much sense to be a coincidence any more" (seriously, it's getting weird), Conversation Deliberately Skirts The Border Of Incomprehensibility tells me in plain English why I'm an asshole.
Okay okay. I joke about being an asshole, but it might just be a funny placeholder word for "totally fucking socially inept".
I might be autistic. Or more likely resting somewhere on the spectrum. Or maybe I'm just a dumbass. Or a reclusive schizoid freak. Or have crippling social anxiety. Or traumatized out of crucial developmental milestones. Or any other number of excuses I've come up with trying to describe just how out of place I feel in "normal" interactions with people. Like I'm missing something.
There's a concept called a "phatic expression". It's basically social pleasantries, like saying, "Hey how's it goin'?" without actually expecting a long winded answer beyond, "It's alright."
I never really understood phatic expressions before. I got in the habit of doing them because it was expected of me, but I never understood why "normal" people expected it from me in the first place. It just felt dumb and pointless.
(Funny how things that are dumb and pointless almost always align with a lack of understanding on my part. What would I feel if I knew the answers of other low-level confusing things that bother me?)
I'm just going to copy a long ass quote and you can't stop me. If you're not going to read the fucking article you're at least going to see that it has words in it before skipping over the quote:
Bob: Hey, you want to talk to me about that book?
Alice: No…sounds really rude. So by Bob saying his line, he’s putting a lot of subtle pressure on Alice to agree. Bob is a good person and he doesn’t want to do that. So instead he asks “Hey, what are you reading?”
Bob: Hey, what are you reading?
Alice: Not much. Just some random novel.
Bob: Oh, well, enjoy!Or:
Bob: Hey, what are you reading?
Alice: Oh! It’s really interesting! It’s this book where Apollo 8 crashes into the celestial sphere surrounding the world, and suddenly everything reverts to kabbalistic Judaism…
Bob: Sounds neat! What happens next?Here Alice either has an opportunity to signal that she wants to continue the conversation, or to reject Bob while maintaining plausible deniability that she’s doing that.
Plausible deniability. Plausible deniability! Of. Course.
When you are having a conversation with someone you're signaling -- that is, giving them non-explicit information -- things all over the place. Even with information theory you can't receive a message without also receiving the information that the message arrived.
And so the intent of conversation is to act as a filter for people who are unable to compete in it. If I'm asked to carry a conversation with a co-worker about their whatever I simply can't keep up. I don't know what they want me to say. I don't know them well enough to know if my jokes will go over well. I don't know their limits, or how they will react if I push them. I don't know if they can follow what I'm saying if I start saying things more substantive. We don't have a mutual base of understanding on which to build upon. Etc etc etc.
My awkwardness in a conversation signals that I'm not up to the task of keeping the pretense. I can't "skirt the border of incomprehensibility" for whatever reason. My on-the-spot plausible deniability game isn't on point, and normal people instinctively use conversation to filter out people like me.
Not that their insipid conversations are interesting in the first place (most of the time).
I've got more of the puzzle now. This isn't the answer to all the questions, like why people seem to be weary of me even though I don't do jack shit ("You're really hard to read, Tim."). Maybe it's a similar signaling thing, except with body language? I don't really know. But at least I understand a bit more now.
Making Crash Bandicoot
Way way back in the very first newsletter, I wrote about GNU 'yes' being the most terrifying program every programmed. In the same vein I present you Making Crash Bandicoot.
This is a long series of blog posts about the people behind the first Crash Bandicoot game on the Play Station 1.
Gaming history is cool and whatnot, but I'm far more interesting in the technology they had to utilize to make this game work.
Specifically, the downright horrifying lengths they went to. I can't even describe all of it in summary, since it would take way too long. But just know that the PS1 was less than a toaster by today's standard, and they somehow still got Crash to look and function as good as they did.
I'm always curious about limitations in programming, and if they somehow produce better results in certain situations. What would it be like if I had to program without dynamic memory allocation? Or if my memory budget was X and I wasn't allowed to go over it? Or if my CPU was, say, 1000x slower than it actually is? Or any number of other limits.
Crash was made despite limitations, and it was amazing to read about how. Imagine, then, if someone put forth the same amount of effort that they went with for Crash but on modern systems. The obsessive insane effort. What would that look like? What would it look like if an AI did it?
I stand, again, that we have an enormous untapped wellspring of power in our computers that we've hardly even begun to fully grasp at. Without using any new hardware, I wager, a sufficiently intelligent AI would be able to use our computers in ways that would make them seem like the black magic they really are.
See also: Prospecting for hash functions by Chris Wellons for more examples of optimizations.
Semantic linefeeds
In Semantic Linefeeds Brandon Rhodes talks about a way to write markup. Basically you just write a newline with every sentence, or after every comma, or after every clause.
It's a simple idea. Although it makes your writing look like poetry. And it requires that your text processor is able to "wrap lines" so to speek. Markdown is able to wrap lines, so I'm writing this section using semantic linefeeds just to see what it feels like.
Here's what the previous paragraph looks like in my editor:
It's a simple idea.
Although it makes your writing look like poetry.
And it requires that your text processor is able to "wrap lines"
so to speek.
Markdown is able to wrap lines,
so I'm writing this section using semantic linefeeds
just to see what it feels like.
Weird, right?
This concept is also called "ventilated prose" if you want to use the much older phrase for it. Semantic linefeed is just the newer phrase given to it because nothing is original everything is derivative buy gold.
It's useful in a lot of ways. You can edit the lines here easier in vim, for one. It's also better for unix line-based tools like sed and awk. And makes better line-based diffs, even though word-diff tools exist.
I might do it more often, if I ever feel the need. But it's rather inconvenient to type compared to straightline.
Goodbye Lilly
On March 21st 2021 at 7:10 PM, my dog died.
Her name was Lilly. When we got her as a puppy I wanted her name to be Twinkie, but part of the reason we got the dog was to help my young sister get over their fear of dogs, so they got to name her. She was a cute yellow labrador, Marley and Me style with the red collar and everything.
I was so young the first time I met her, on the cusp of becoming cynical. Despite my affected attitude I bonded with Lilly instantly. I had always been good with dogs ever since I could remember, and Lilly was... well she was a labrador. The exuberance was overwhelming at times, and playful bites would sometimes cause more pain than intended, but she seemed hellbent to spread as much joy as possible (by chewing on everything in sight, of course).
We would play outside in the yard. I would fruitlessly try to cool down her boundless energy with running, throwing sticks, and playing tug-o-war, but to this day I'm not sure if she was connected to an infinite battery supply or not. In the winter we would play in the snow and she'd bounce around like a hare; she was so tiny at the time. Walks were her favorite, she'd bravely scare away every motorcycle with her heroic barking and do her duty for the town by eating every piece of litter.
We took her to a dog training school where she managed to swallow an entire greenie, woo the instructors into giving her extra pets, and chew through her graduation diploma during her "I made it through dog school" photo shoot. She was perfect.
I would let her sleep in my room. For some reason she always wanted to sleep in my room. That comforting weight at the foot of my bed was nice, even though that one time she pissed on the mattress and I had to get a new one. Sometimes she would lay on the bed in my room and just watch me do my stuff on my computer. If I typed too loud while she was napping she would do this little growl and it was the most adorable thing.
She'd kill possums in the yard. She really hated possums for some reason. I bet they called her mean names.
One day a long time ago, she must have been 6 or 7, she went for a flying leap off the front porch like she always did, but this time she landed wrong. Tore her ACL. She had to get surgery. After that she never could move the exact way she always had. She was as rambunctious as ever, but it was tamed a bit by her new physical limitations. I'd have to help her up onto my bed instead of letting her jump onto it.
For a while that was it. She was healthy and kind and still a puppy. She was always a puppy; it was only her deterioration that stopped it from being expressed. As she aged she got cataracts -- one day she missed a mid-air catch when I tossed a treat at her. Her movements got more sluggish -- she could hardly go for walks very long any more. She would sleep more -- waiting at the foot of the stairs to see me as soon as I got home. She started to get lumps all over her body -- "They're benign," says the vet.
The writing was on the wall years before things started to take a significant downturn.
She got lumps near her rectum. The vet said that they're benign just like the other ones on her body, but that we ought to keep a close eye on her anyways just in case. And we did, and she seemed to do fine for a while. Or as fine as you could when you're a 13 year old labrador.
But this lump was different. It made it harder for her to sit down. It was made worse by her bad legs. I felt guilty for teaching her that sitting was the best way to be polite all that time ago, because she would keep doing it. Old dog new tricks.
And then one day we realized that the lump was inflamed. We would later realize that it was dried blood coagulated to her tail, but at the time we thought she had gotten feces on it. Blood dries brown, after all, and who would assume that the tumor was on the verge of causing massive issues? Who would want to assume that the tumor was growing at an alarming rate? "We'll keep an eye on it."
The very next day she sat up from the carpet and there was a smear of bright red blood on it. We took her to the emergancy vet, obviously, and they told us in no uncertain terms that the only way to fix it would be to operate, and that the success rate of such an operation on a dog as old as Lilly was basically zero. We were told to keep a close eye on it and sent home with some antibiotics in case it got infected.
It was still bleeding a bit and smearing blood on the carpet, so we collected all of our old blankets and sheets and laid them over the carpet so that it wouldn't get stained. "Until it heals."
Night rolled around and day followed and the tumor was still bleeding. We kept her still most of the day, trying our hardest to get her to rest. At this point we knew that something was really bad, but we were still in denial about how bad. We said things like, "Tomorrow we'll take her to our real vet" and things like that. I stayed with her nearly the whole day just petting her and giving her lots of attention; I could intuit the severity of the situation even then.
At around 4:50 PM I go to feed her the last meal she would ever have. At around 5 PM we started having our own dinner. At about 5:10 my mother came home with dog diapers to help stem the bleeding. My mom came in to make her food, but spilled some of the hot pot roast on her leg. Lilly, always observant of food being dropped, stood up quickly to go investigate the noise.
There are a few images in life that you just know are going to haunt you until the end. The image of my dog spilling blood onto the floor of the kitchen like a leaky faucet, begging for food, totally oblivious to the fact that her tumor had fully ruptured, is one of those images. I was the first to notice, and I will never be able to recreate the quaver in my voice as I said, "Hey guys... this is really bad..."
The blood was so red. There was so much of it. It was pooling onto the ground with no sign of stopping. That numb feeling I get in midst of crisis fell over my mind and I watched as my dog begin to bleed out, soaking up the sheet we were using to sop it up and apply pressure. We panicked, argued, and realized that the only option was to call the emergency vet, lest we let her bleed out right there in the kitchen. We also realized too late that the dog diapers were too small.
We rushed out the door so fast that we forgot to shut it. Outside it was a bright warm spring day with kids playing around in yards. I tried my best to hide Lilly's blood-drenched backside and tail from them. They didn't deserve to see something like that.
We got her into the car. We had a long conversation. I had to break the ice about euthanasia, since everyone else was talking around the subject. We agreed that it would happen if the vet said it was as bad as we thought it was.
We got there. Waited for our turn in the parking lot, Covid rules in effect. Lilly was hadly even phased, even with all the blood she'd lost. She just wanted to meet the people who were walking outside.
They inspected her. They said it was bad. We gave the okay. They let us in. They said they normally wouldn't because of Covid, but this was a special circumstance. We were placed into a room that looked like the most stereotypical therapy room you can imagine. We decided what to do with the remains. We waited.
They brought Lilly in and she was still bleeding. She sat down near the vet assistant's feet and smeared blood all over his shoes and the floor. They laid a blanket down on the rug. We laid Lilly down on the blanket. We put the other blanket on her backside, so we could focus on giving her as much praise and attention as we could. She didn't seem shocked at all, or even worried. Just normal Lilly, except bleeding profusely with no way to stop it.
The time had come. The doctor came in with his tools. Told us how it would go down. How it wouldn't hurt her. How fast it would be. The injection began. She drooped heavy. She shook her head once. Like trying to stay awake. The doctor checked her pulse. Declared her dead. Said he was sorry.
I will never see my dog again. Never hear her walk around up stairs. Never again pet her at the top of the stairs. Never again pick up something her wild tail waging knocked over. Never again feed her a peperoni off the counter.
Goodbye Lilly. You brought more joy into this world than you took. I couldn't save you, but you deserved to not need saving in the first place. I dare say you were even a good girl. Thank you.