December 2020 newsletter
Published: 2020-12-31Word count: ~5480
Every month I have this strange anxiety about not having enough to write about for the newsletter. Each month it's proven wrong. I'm constantly overflowing with shit to talk about.
Table of contents:
- timtimestim
- Task management software
- csound manual
- Laptop repairability
- Unsigned ints VS signed ints
- They might never tell you it's broken
- Support your shit, people
- The philosophical case against sleeping in
- 1000 True Fans
- Videos
- Fiction that I've read
- Dumping ground
- Read Later
- The end of the year thing
timtimestim
Summary of changes (Most significant to least):
- Enormous writeup about Friendship is Optimal, a fanfiction universe based on a fanfiction based off a show for little girls.*
- Updated the Atom feed to be less horrible
- Made footnotes work better 1!
- Added a test page for making sure specific things work when I change how the site is built.
- Added a desktop screenshot to the workflow page on the wiki
- Tested a rubricated deisgn for the site. It sucked. The links looked like they were deleted or something.
- Some updates to the using and workflow pages on the wiki.
- Cleaned up some things in the ideas page in the wiki.
* This writeup is a work in progress. There's a lot there already, but it's rough around the edges and it doesn't say everything it wants to say. I'll make sure to put down in the next newsletters if there's any significant updates to it, don't worry.
Task management software
I had a little episode this month where I was slightly obsessed with task management software. I go in phases with this topic, and each time I realize that the things that I'm already doing are enough to keep me on track and I don't need it.
For example, I've mentioned the zettelkasten note taking method before, but never really talked about how I once tried to make a zettelkasten with my own software solution. It failed after a couple weeks because it was too much work and I wasn't seeing any tangible reason to continue doing it.
The thing that sparked it this time was this page from some weird task management system called "TaskLike". It's just a list of some of the more popular task managemen systems. Also has knowledge management systems, which is an extension of what I was interested in (especially with the zettelkasten stuff).
You see, this website is turning into my knowledge management system, at least a bit. This newsletter being a thing that keeps my bookmarks and thoughts on them, the wiki being something that contains more nuanced and evolving thoughts, and the jornal being a dumping ground for non-formal bullshit. It's naturally occured that way, and I've been wondering if I need to find/make a tool to help me manage it, since my entire understanding of this kind of thing is that I need a specific tool to encompass the entire thing.
Well, after reading through like 5 readme's and a couple blog posts about these systems, I was reminded why I don't use them in the first place. It's just too stressful to do anything with these things for me. My style of working on stuff is too sporadic to really fit into a tightly managed system like these things want. The most that I can handle is a non-urgent todo list that is more or less a reminder about things I want to do 'eventually", requiring no positive action at any specific time.
The pattern of my brain wants to demand that I need an all-encompusing thing to manage this website more than I'm already doing, but that's not actually necessary. This website is already wonderfully easy to manage, due to the fact that it's just a bunch of markdown files that get rendered into html. I spent a lot of time polishing up the build script, but now that it's basically done I keep feeling like I need to do more.
This section is put here as a reminder that the content is what I most want to worry about, not the weird meta bullshit about how I manage my time or knowledge. You really don't need it, Tim.
csound manual
I've had the desire to learn how to use csound, basically a programming language for music/sound effects, for almost a year.
My desires to make music aren't nearly as strong as my desires to write good words, but it's still there sometimes. The problem is that nearly all music software is terrible: awful GUIs with bugs galore, horrible user experience as if they never actually used their own software, and so on. Csound, I hope, will be able to avoid a lot of that through the power of plaintext, even though it's a fucking ugly programming language.
I have a fantasy of building up a repository of songs made in csound with a bunch of programatic instruments and shit. Wouldn't that be cool? Having a source code repository for all your music? Like a monorepo for music.
I've had some forays into learning music production, but I was always stopped by how much everything sucked.
I found this manual for csound that seems to be reasonably decent. Of course they try to get you to read their horrible pdf file, but at least the linked repo has the original markdown markup in it. Maybe some time I'll start working through this thing and see if I can pick up some actual skill. Maybe I'll have to make a /m/ directory for the site :O
Laptop repairability
I do everything on my my shitty laptop. I know that it's not going to last forever, so I've been slowly looking for a better long-term solution laptop that I won't have to worry about replacing for a much longer time.
So I've been looking at iFixit's laptop repairability scores for some inspiration on what laptops are most repairable. That's one of the number one important things with long laster consumer electronics: their ability to be repaired. With how horrible most companies are with that kind of thing, getting something with replaceable batteries is actually nice.
Once the fateful day comes, I'll probably use this list as a reference with other things to make my final decision.
Now if only I could do the same things with my phone. I use my phone for consuming most of my online content, but it sucks ass. I wish I could use my laptop everywhere, but that's just not feasible until I retire and don't have to spend 8 hours a day away from home without the ability to use my laptop discreetly.
Good laptops are expensive...
(If I were to make a prediction on how long this laptop will last, I would give it about 1-2 more years. I try not to overcharge the battery, and I don't even type on its keyboard most of the time. I'm sort of waiting for Debian Buster (my current OS) to go into long term support in 2022 before I move over. It's surprising how much computer changes I make when Debian changes; probably because I hate doing updates until I'm forced to, and Debian is an enabler to that.)
Unsigned ints VS signed ints
When programming in C there's two types of integers -- non decimal numbers -- that you can use: signed and unsigned. Signed means that the number can be negative and unsigned means the number can only be positive.
Because of strange integral promotion rules in the C standard, you're more or less forced to pick one of these to be your "main" sign over the other, since mixing and matching them can have some pretty nasty effects.
I've alway used unsigned ints, since the vast majority of numbers you deal with in programming don't only care about positive numbers. In fact, I use unsigned ints pretty much everywhere, to the point where switching to signed ints would be quite the hassle.
There are situations where I used signed ints out of nessacity, but they're always sequestered off from the rest of the program and used in limited ways. Especially if I have to interact with the standard library in a non-trivial way.
Looking at the source code of projects that I respect, I've realized that my strategy of using unsigned ints for nearly everything is really uncommon. Especially among programmers that I respect, they almost exclusively use signed ints instead.
Of course, this made me self-concious and I had to go on a spirit journey to convince myself that it's totally fine to use unsigned ints. Here's what I learned.
Unisgned pros:
-
Formally specifies what happens when they over/underflow in the C standard. Signed ints don't have this luxury, technically.
Some might argue, and I sort of agree with them, that unsigned ints are more "long term", since they're always going to behave the same no matter what compiler you use in the future. The additional complexity of unsigned is payed for in longevity.
This is the main reason that I chose to use unsigned when I was starting to fill out my C programming chops, and why I'm not clambering to change over to signed even though signed makes more practical sense in most situations.
-
Can hold twice the positive value of signed, since the "sign bit" is used as part of the number.
-
Most numbers in programming don't need to be negative, meaning that it's more "clean".
-
Using bit shifting is well defined, versus the mess that is signed ints.
Unsigned cons:
-
There's a "wall" for every unsigned number. Subtracting 1 from a u32 that's at the value of 0 will set it to something like 4.3 billion. There's no negative, so it just wraps around to the maximum.
For example, something like
(0U - 1U) > (30000)
would return true, which is kind of confusing if you're not saturated in the unsigned way of thinking. -
Certain error checking code, especially for function arguments, is difficult if not impossible. How do you tell if someone sent a negative number to the function argument that needs a uint? Sometimes you just can't do it.
-
Hard to interoperate with other people's code, since most people (including the vast majority of the standard library) use signed ints.
-
You only very very rarely over/underflow an int, especially when using larger signed ints like 64 bit. And there's tools you can use to check for it if you really need to.
-
Generally, it's more complex to used unsigned than signed in most cases, due to the above problems.
If I were to start fresh, I would probably just use signed ints. As it stands, I'm still okay with using unsigned since I'm already committed to having my code be unsigned ints. Changing over wouldn't be worth it, honestly. Especially since I'm a solo programmer, I don't have to worry about other people on my team being pissed that I'm doing something strange.
If you're paranoid (and I know I am), most compilers can also tell you about the really nasty cases, like using a comparison between signed and unsigned ints. They can set runtime checks for underflows if you need to, and so on. The tools you use are slightly different, but not inferior. And the final execution of the program will work just a well, as long as you're careful.
In conclusion: Used signed ints for most everything unless you've already decided to use unsigned, then just keep using unsigned. Don't worry about your choice too much, since there's much more important things to worry about when programming something.
Some references:
- this post and its follow-up by Robert Elder talk about his choice to used unsigned over signed.
- This stackoverflow question with people talking about their own opinions on it, pretty divisive.
They might never tell you it's broken
A blog post from Pointers Gone Wild titled The Might Never Tell You It's Broken is sort of interesting. It talks about how most people who use software simply deal with the issues that are present instead of trying to tell the developers so they get fixed.
You're using something and it's a little jank. Maybe there's a strange lag spike that only appears every few days, or one of the inputs doesn't work in the way you would expect. Do you go through the trouble of signing into whatever bug tracker that the developer is using, recording the exact steps to reproduce the bug/problem, writeup a technical explanation of what's going on (a hard skill to learn on the fly if you're not already practice at it), and deal with the resulting back-and-forth? Or do you ignore it a "just one of those things"?
Software is terrible most of the time. Like, really really bad. Browsers are bloated and websites are gross, things that should take milliseconds take seconds. Phone software makes me ill. This blog post made me wonder if it's more than just incompetence; maybe we're all so used to the shit that we don't even bother trying to fix it. Like some perverse software learned helplessness.
If someone like me, who hates software with a passion, doesn't do the bare minimum to report problems, how many other less motivated people ignore their pain as well? How big is this problem? How much would it solve if it were fixed?
Support your shit, people
Speaking of shitty software, let's take a look at a couple examples of companies fucking over their users.
First off, we have CentOS, who has "shifted their focus" from doing long term support for their OS to doing a rolling-release style. Which means that they're ending support for their flagship thing 8 years earlier than they promised.
For context, a linux distribution like CentOS usually has a "support cycle". Some distributions, like Arch, are "rolling release" where they software packages get updated as soon as possible without much pre-planning. Other distros, like Debian, release on a much larger "stable" cycle where software versions are frozen in time getting only security updates.
Each type has its own use case. If you like the bleeding edge of development, something like Arch is better for you. If you're like me and have a pathological burning hate of software changing under your nose, something like Debian would be better. Businesses usually depend on stable distros, since they don't want to have to worry about changing superfluous shit like config files for as long as they can.
This is where CentOS comes in. CentOS is was based off of RedHat's "RHEL" release, which is supported for 10 years. Can you imagine that? Using the same version of software that you used 10 years ago? That's what CentOS was supposed to do for you and businesses. Sounds like total bliss.
For reference, Debian (which is what I use) is supported for about 3 years, plus 2 more years of lesser support called "extended support".
(CentOS gave you RHEL for free. Thats fine since you're on your own if something goes wrong, while if you're using RHEL you get support from RedHat directly. Businesses pay out the nose for that sort of thing.)
But because life is a bitch, and now anyone who was relying on CentOS being stable is now shit out of luck. Sure you could try to switch over to something like rocky linux, but that's still young and untested.
All those servers that will go unupdated, all those businesses that need to waste useless money on something like this, all because they wanted to funnel people into using REHL. This is why I don't trust anything that has a profit motive, because they're never ever going to be on my side.
The other even I saw was goodreads retiring their API access. They didn't do this because it was outdated or anything like that, they did it to stomp out competition. The goodreads website is already shit enough, but now they're trying to make a walled garden for it too. This is one of those own your platform things; just have your own website or wordpress blog or something where you post your own reviews of books. Make your own book list that you manage yourself, it's not that fucking hard. Don't trust other people with your hard work.
If you want some advice:
- Don't rely on the service of something that has a profit motive unless you're paying for it directly.
- If you can do it yourself, and there's no extreme benefit to doing it on someone else's service, just do it yourself. If you really need to do it on the other service, make a copy for yourself so that you still have control over it, like what I do with my writing prompt responses on Reddit.
- Don't give your trust out willy-nilly. Everything changes, and you might not like the way it changes.
Once you make a promise to support something, you should keep that promise. If you're making beta software, you should be honest about that. This is basic trust exercises, you morons.
The philosophical case against sleeping in
This post from vox, written by Amanda MacAskill, is interesting, if not a little worrying.
The math is pretty simple: If you only need 8 hours of sleep a night, and you sleep an extra hour a night, that means that you're spending 365 extra hours a year unconscious. Over the course of 40 years, that would be 608 days of wasted time in your life.
Other maths are less alarming, but still worrying. If you sleep in every weekend (sleep in on Saturday and Sunday morning) for 2 hours on each day, you're going to be wasting 173 days over the course of 40 years sleeping in. Assuming that each year is 52 weeks.
My sleep schedule is a little strange. I go to sleep at around 7:30 PM and wake up anywhere from 1:30 Am to 4:30 AM, depending on when my body decides to wake up. I don't wake up to an alarm, even on work days. But on the weekends I almost invariably wake up a couple hours later, like in the weekend situation in the previous paragraph.
Do I think it's a fair trade? If given the option right now, would I trade 173 days of my next 40 years of life so that I can sleep in an extra two hours on Sundays and Saturdays? Or would I rather be doing something else with that time? Put in those words the answer seems pretty obvious. My own values scream at me that I should choose to keep the 173 days to do literally anything else; even staring at the wall and drooling at the mouth would be more productive, probably. I doubt I would look back on my life and say, "Man I wish I spent more time sleeping."
You can even generalize this problem to other things. If you spend an hour a day scrolling through Reddit, that means you're trading 608 days of your next 40 years to stare at your feed like that. Is it worth it? Maybe. If you've got interesting and useful things on your feed. How about the time you spend watching youtube, or cooking, or exercising, or working?
Thinking about the long term time cost of small things, it really brings to light the things you care about. For some people that extra time spent sleeping is crucial to their happiness, for others its a huge waste that could be used for literally anything else. I see those 173 days I could waste over the next 40 years and I ask myself what else I could do with 173 days: all the things I could write, or the things I could learn, or even going on long walks in the morning while I relax.
Even if you don't come to the same conclusions about your values that I have about my own, I think this could be a good exercise to make small decisions seem more urgent. For one, I'm absolutely going to be changing some of my sleeping in habits, especially on the weekends.
1000 True Fans
The blog post titled 1,000 True Fans by Kevin Kelly (With an awesome-cool OG domain name of "kk.org") talks about a concept I think is important, especially for the future of this website.
The idea is simple: If you can pay 1000 people to pay you to do something, you will be able to sustain a lifestyle of doing that thing. The true number is probably less than that, if you're not a spendy person; if you only need $20k/year you can convince about 400 people to pay you 4 dollars a month to be sustainable.
A "true fan" is described as someone who will buy everything you make, according to the post. I would also define a true fan as someone who would pay you even if you're not charging for something; like Patreon or donations for people making free YouTube videos.
The moral is that you don't need a large audience to do the things you love for a living. As long as you're making things your true fans will keep paying you for them. It's a self-reinforcing cycle.
This website will be 1 year old in Feb of 2021. In that time is has become my pride and joy, the subject of many of my thoughts, and the fruits of my labour. I love writing things and exploring concepts and sharing what I have. The mere fact of having a website in the first place is enormous for me; it's a dream I've had since I was a child; I always viewed having a website as something magical that only cool people could do.
I can confidently say that I would love to be able to do this for a living. I'm perfectly happy making things without anyone seeing them (obviously), but I also hate full time employment and want to escape it. It seems like the best solution to this issue is to find a way to make a living doing something I love, even if it's a meager living. It's about time that I started trying to scale this shit up.
The obvious goal is to get 1000 true fans. In actuality, the goal is more like "get 300 people who are willing to pay you $3/month to make things" but that's getting pedantic. It sounds all nice and mushy when you say it like that, but when you start considering the problem it gets harder. How do you go from having a 0 (maybe 1) person following to having enough regular fans that 300 of them will pay you monthly just because they love you so much?
This gives me a great opportunity to test my theories on how creative people build sustainable fan bases online. I've consumed a lot of content over the course of my life, and I've seen plenty of people build something solid. Here's what I've observed:
(These are all theories that I'm going to try to test, they might not actually be right)
-
It needs to be "real"
Something that you read on Reddit isn't going to be special, no matter how good it is. The same thing written and released on your own website instantly signals that you're serious about what you do.
You can get away with not doing this, but you still need some way to signal that you're serious. Stuff on social mass media platforms like Reddit and YouTube are almost always vapid and stupid, so people go into it with the context of other insipid lowest-common-denominator content. Make something really good and/or make it appear in a different "real" context.
-
You should do a lot of it
Most of the time, successful (in the sense of building a sustainable fanbase) creatives online all do the things they do quite a bit. For example, see WildBow's thoughts on writing web serials; WildBow is the guy behind the absurdly famous Worm web serial. He mentions that he didn't start getting regular comments until nearly a year into writing the story, and that this is unusual.
You get better at what you do with more practice, obviously, but that's not the whole story. One of the best ways to build true fans is giving them a lot of stuff to think about. A lot of advice from successful people tell you to be consistent, like having a weekly schedule. I'm not so sure if consistency is the key, or if it's just the vast production of stuff that's actually more important in the long run.
The true moral is that you need to have the ability to work without feedback or support for quite some time. In almost every case of success I've seen, it's always been a result of a long history of totally free work. An overnight success in ten years. You need to be able to deliver things.
Every artform has a different standard for this. For example, good animation takes forever, so you might be able to get away with a single good animation every year. But if you're writing you might want to go for a bit more.
It would also be a good idea not to pander too much to an audience you don't even have. You want to build an audience around things that you actually want to make, instead of making stuff for an audience you don't even want. This will probably help your productivity and long term happiness.
-
You gotta be alive
People like it when senpai notices them. Especially true fans. You gotta be at least a little attentive to the people you want to court into your side of the internet.
I don't like people that are too overbearing about this kind of thing, since it feels disingenuous, but the point is that you want to come across as a real person to your true fans if you can.
-
It's gotta be good
At least at the beginning. Just look at... a lot of things, really. People keep following their favorite creatives even when they start to suck just on good faith of their previous high-quality works.
As a matter of personal pride, I don't intend to intentionally worsen my quality of work. But you do need to try a bit harder than average to attract the beginning dregs of attention anyways.
-
You gotta be patient
You can't just expect this shit to happen all at once. If I understand "luck" well enough, it's going to feel like you're not making any progress until suddenly it happens.
There's plenty of other rules and ideas that I've come up with, but these are the general concepts.
I'm interested to see how these theories will work in the real world, especially when I start making myself more visible to other people through doing more visible things. As it stands nobody knows that this website exists, so the first step is to convince people that there's something worthwhile here.
Just know that I expect the process of building a proper fanbase to be a multi-year thing. Especially if you're as introverted and scared of other's expectations as I am. With that said, this is my explicitly stated intent to try.
Videos
I decided I wanted to list some good videos that I've seen over the month. These links aren't going to be from archive.org, since I'm not sure how to get them to host videos. When (not if) these links rot, please tell me and I'll find a way to figure out my local copies.
- Most SATISFYING Stop-Motion Animation by Kevin Parry. Despite the awful clickbait title, this video was really satisfying to watch! Good enough to preserve, at least.
- A Conversation With My 12 Year Old Self: 20th Anniversary Edition by Content With Jeremiah. This video was hilarious and clever.
- THROAT NOTES by Felix Colgrave. Felix Colgrave back at it again with the stunning animations. Damn.
And thus ends the video section. There's not that many videos out there that are excellent. Finding three of them in one month is a huge win.
Fiction that I've read
I think it would be nice to include the fiction that I've read in the newsletters. So here's a small list of the things I've gone through:
Just a warning: A lot of what I read is fanfiction. Sorry not sorry.
- Terminally Online by qntm, a short story about scrolling through a feed
- The Metropolitan Man by alexanderwales, a Superman fanfic that's actually really good
- Branches on the Tree of Time by alexanderwales, a Terminator fanfic that takes the setting and ideas of "time travel" seriously. Also contains AI, which is like crack to me.
In my research for the fio wiki page, I've re-read a few Optimalverse stories. You probably don't want to read these without a lot of context. You've been warned.
- Friendship is Optimal by Iceman
- Friendship is Optimal: Mismatching Wits by GroaningGrayAgony
- Friendship Is Optimal: Caelum Est Conterrens by Chatoyance
- Friendship is Optimal: The Law Offices of Artemis, Stella & Beat by Eakin
- The Horizon Behind Us by Syke Jr
- Friendship is Optimal: Spiraling Upwards by pjabrony
A lot of this was listened to with a text to speech generated audiobook while I was at work.
Dumping ground
- Lorem Ipsum placeholder text, but it sounds like the inside of a puppy's mind instead of broken Latin: puppy ipsum
- double blind passwords (from Phani Karan) are an interesting idea. Although I'm not so sure it's that useful if you're already using a password manager and have some basic paranoia about keeping your master password safe.
- What3words is an interesting way to handle remembering GPS locations. Of course it's proprietary and monetized, so it isn't that cool, but I thought the idea was interesting.
- Save Error Code 418. A bunch of nerds fight to preserve their sense of humor.
- Fetlang. A programming language made to sound like poorly written fetish erotica
- Awesome word avalanche by u/PawaMV
- Cool list of interesting songs by a [deleted] reddit user. They listened to 10k+ songs by independent artists and compiled a playlist of the best ones.
- SCP-1247 from the SCP Foundation manages to make Shia LeBeauf scary.
- Nintil's Longevity FAQ is a good summary of anti-aging research that's out there, for those of you who are into that kind of thing.
Read Later
This is a list of things I want to read, but haven't. There's just too much stuff; how will I ever get to it all?
- Regular Expression Matching Can Be Simple And Fast by Russ Cox
- This news story about AI protein folding
- Danluu's branch prediction write-up
- Local first software by inkandswitch
- Extrapolating GPT-N preformance by Lukas Finnveden
- The Ms.Scribe Story by The Duchess of Richmond
- Nintil's Slaying Alexander's Moloch and Scott Alexander's Misperceptions on Moloch; both are commentary on the excellent classic blog post by Scott Alexander's Meditations On Moloch.
- The haunting series "Two Europol StopChildAbuse Images Geolocated" by Carlos Gonzales, Part One and Part 2. Even the context of this is kind of scary; they're trying to find out where victims of child sexual abuse cases are kept by identifying key information like geolocation and where articles of clothing can be purchased. Basically ethical doxxing. I want to read these eventually, but I need to be in the right state of mind to do it. Jesus fucking christ the pictures are disturbing enough.
The end of the year thing
This year has been crazy. I mean, we're still recovering from timtimestim coming into existance. You'd think we'd be over that by now... But that's why hindsight is 2020.
Footnotes:
- Isn't that so cool? Now I can write all the footnotes! <-