summaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
authorFrederick Yin <fkfd@fkfd.me>2022-01-07 22:46:24 +0800
committerFrederick Yin <fkfd@fkfd.me>2022-01-07 22:46:24 +0800
commit6f3ee2326bde11350639eb8c1b0bb6be4deef791 (patch)
treeb8579131cb2c14a5a1a97fa7a5d292a485c8e9ba /docs
parent0c8873dc7d799304e8794d127782a42566b0c57d (diff)
Reorganize all past blogposts
Diffstat (limited to 'docs')
-rw-r--r--docs/img/avi_triplehat_diecut.pngbin0 -> 23505 bytes
-rw-r--r--docs/index.md6
-rw-r--r--docs/meta.md48
-rw-r--r--docs/projects/img/rickstodon-youtube-GET.webp (renamed from docs/img/rickstodon-youtube-GET.webp)bin12322 -> 12322 bytes
-rw-r--r--docs/projects/img/rickstodon.webp (renamed from docs/img/rickstodon.webp)bin49910 -> 49910 bytes
-rw-r--r--docs/projects/index.md28
-rw-r--r--docs/projects/rickstodon.md (renamed from docs/rickstodon.md)2
-rw-r--r--docs/random/gemini_tldr.md (renamed from docs/gemini_tldr.md)2
-rw-r--r--docs/random/how_fkfd_is_made.md (renamed from docs/how_fkfd_is_made.md)4
-rw-r--r--docs/random/index.md12
-rw-r--r--docs/random/realgit.md (renamed from docs/realgit.md)4
-rw-r--r--docs/shitpost/fake_moon_landing.md19
-rw-r--r--docs/shitpost/haiku.md (renamed from docs/haiku.md)0
-rw-r--r--docs/shitpost/index.md10
-rw-r--r--docs/shitpost/rousseau_and_schopenhauer.md22
15 files changed, 120 insertions, 37 deletions
diff --git a/docs/img/avi_triplehat_diecut.png b/docs/img/avi_triplehat_diecut.png
new file mode 100644
index 0000000..fa1deb9
--- /dev/null
+++ b/docs/img/avi_triplehat_diecut.png
Binary files differ
diff --git a/docs/index.md b/docs/index.md
index 316dc21..08ee994 100644
--- a/docs/index.md
+++ b/docs/index.md
@@ -1,5 +1,3 @@
-# You are in the wrong place. Leave.
+# fkfd
-Why are you here? Are you here because you wanna "learn more" about me, you creep? Or you wanna know some metadata? Go to [the meta page](/meta). Nobody should be checking the index page; I put it here merely because this damn thing won't let me update if I don't include it. I would never share the index page of my blog. If you are here to check for updates, you have done something **monumentally wrong**. There is no such thing called an "update". This is a mere archive of textual rant and thonks that would otherwise be unfit in a comic. If I ever wanted you to read an article of mine, I would attach the entire path to it. Under and only under this circumstance should you check my "blog".
-
-Oh, you're not leaving. Good. I wish I could just put `</body>` here so that the webpage would end, but you would just hit devtools and read the source. As to the non-tech-savvy audience, they would just hit refresh ever so frantically wondering what the heck is up with their internet. You may not proceed. Leave immediately. Leave before the `</p>`. This is a threat.
+Yes this is just a low effort blog why do you ask
diff --git a/docs/meta.md b/docs/meta.md
index b42387e..4a42a0a 100644
--- a/docs/meta.md
+++ b/docs/meta.md
@@ -1,41 +1,31 @@
-# Blog Meta
+# fkfd meta
-## PGP
-
-[PGP PUBLIC KEY BLOCK](https://fkfd.me/static/fkfd.asc)
+Last updated 2022-01-07
-`EBD3 5396 508C 755F 3BBA 5458 F355 1C6B 01DB 77FF`
+## PGP
+[EBD3 5396 508C 755F 3BBA 5458 F355 1C6B 01DB 77FF](https://fkfd.me/static/fkfd.asc)
## License
-
[CC BY-NC 4.0](https://creativecommons.org/licenses/by-nc/4.0/) unless otherwise stated.
## Contact
+[Mastodon](https://mastodon.technology/@fakefred)
-[Mastodon.technology](https://mastodon.technology/@fakefred)
+## Nobody builds their blog with MkDocs. What's wrong with you
+Tired of social media buttons and fancy animations that come at the cost of computer juice, I quit. So here you are, in a static-site blog generated with MkDocs (a documentation engine written in Python, like Sphinx). I call this "Blogumentation".
-[fkfd@macaw.me](mailto:fkfd@macaw.me)
+Here is a list of tools that I ruled out:
-## Medium
-
-Tired of social media buttons and excessive fancy animations provided by too many blogging themes, I quit. So here you are, in a static-site blog generated with MkDocs (a documentation engine written in Python, like Sphinx, which is known for its appearance in ReadTheDocs). I call this "Blogumentation".
+- [__ssg6__](https://www.romanzolotarev.com/ssg.html) — A static site generator written in shell. Extremely simple yet versatile. Sadly, it'll take forever for me to settle on a template or CSS, and, given so much privilege, I will most probably break everything.
+- A self-hosted pastebin. The links would be a mess, albeit short.
+- HTML+CSS from scratch. Same as ssg6.
+- Sphinx. It graduated with a `.rst` degree, but who uses rsts these days.
+- Hugo. I didn't want a Go environment on my machine. (Update: Joke's on me, I installed go later and wrote a bit of it. But still no.)
+- Hexo, Jekyll, etc: I didn't want a Node.js/Ruby environment. Keep them away.
-Here is a list of blogging media I was more reluctant to use:
+## Debloated
+You will not find any of these in my blogposts, as long as I am in control:
-- A static site generator I got from [trivial technologies](https://trivial.technology/), literally named "ssg", written in Perl. It is currently used for
- [usable technologies](https://fkfd.me/ut).
-- A self-hosted pastebin. The links would be a mess, albeit short.
-- HTML+CSS from scratch. Not mobile-friendly, and I'm too lazy for it.
-- Sphinx. Its major language is rst, which I do not master.
-- Hugo. I didn't want a Go environment on my machine.
-
-key | value
------------|----------
-features | not many
-speed | fast enough
-SEO | doesn't matter
-javascript | none
-analytics | none
-trackers | none
-original | yes
-DMCA takedown notice | fuck you
+- Advertisements
+- Analytics
+- JavaScript
diff --git a/docs/img/rickstodon-youtube-GET.webp b/docs/projects/img/rickstodon-youtube-GET.webp
index c5c70aa..c5c70aa 100644
--- a/docs/img/rickstodon-youtube-GET.webp
+++ b/docs/projects/img/rickstodon-youtube-GET.webp
Binary files differ
diff --git a/docs/img/rickstodon.webp b/docs/projects/img/rickstodon.webp
index 5a64e3f..5a64e3f 100644
--- a/docs/img/rickstodon.webp
+++ b/docs/projects/img/rickstodon.webp
Binary files differ
diff --git a/docs/projects/index.md b/docs/projects/index.md
new file mode 100644
index 0000000..490f1ac
--- /dev/null
+++ b/docs/projects/index.md
@@ -0,0 +1,28 @@
+# Projects
+
+Of all the peojects I've made over the years, not many deserve their own
+standing blogpost either because (a) it is too ephemeral and a thread of
+512-character long microblogs is enough or (b) it is more fitting to write
+proper documentation for it instead (ironic when I build my blog with
+MkDocs). But the few that do, are here.
+
+Projects below are sorted reverse chronologically (most recent first).
+
+## [Rickstodon](rickstodon)
+
+![Demo](img/rickstodon.webp)
+
+On April Fool's Day, 2020, I launched a mock Mastodon login page at
+`https://social.fkfd.me` (now defunct) that rickrolled anyone that clicked
+the links or buttons. It was more sophisticatedly designed than most other
+rickrolling attempts (it's weird to compare trolling technique, I know) in
+that hovering your cursor over the links doesn't immediately reveal your
+evil intent; the URL shown is totally legit, and it takes another round of
+carefully set-up nginx configs to redirect you to the classic music video.
+
+Because of restrictions in AGPL that Mastodon is distributed under,
+I decided not to release the code itself but rather to write a guide on
+how I made it. The codeberg repo that came along was unlicensed.
+
+As I said, this was a impulse project that's faded into the past. It is
+2022 as I write this. Isn't this crazy?
diff --git a/docs/rickstodon.md b/docs/projects/rickstodon.md
index 45a69d7..2b40521 100644
--- a/docs/rickstodon.md
+++ b/docs/projects/rickstodon.md
@@ -6,6 +6,8 @@
See [video demo](https://fkfd.me/static/rickstodon.mp4); hosted on [social.fkfd.me](https://social.fkfd.me); see [Codeberg repo](https://codeberg.org/fakefred/rickstodon)
+> Edit 2022-01-07: social.fkfd.me is now defunct.
+
## How to host it?
Because Mastodon is licensed under AGPL, and the frontend is not explicitly excluded, I doubt the legitimacy to redistribute it unlicensed. Therefore, this repo only contains a guide to make your own Rickstodon in N easy steps. You need either a working nginx, or python+pyramid.
diff --git a/docs/gemini_tldr.md b/docs/random/gemini_tldr.md
index c631968..b232bfd 100644
--- a/docs/gemini_tldr.md
+++ b/docs/random/gemini_tldr.md
@@ -1,5 +1,7 @@
# Gemini TL;DR
+2020-06-05
+
For any internet protocol, you can either make it a few thousand words long, or make it 114M. Of course, we know this 114M wasn't there in the first place. W3C has tried very hard to standardize the web, without guarantee it would be simple. So, what we have now is a collaborative system where it's easier to introduce a standard than to deprecate one (remember Adobe Flash?). It's reassuring to know there isn't a central megacorp monopolizing the web, but this openness comes at a cost. It's when evangelical developers who can't program proper desktop apps abruptly choose to make a new web framework, a parasite on web browsers - one of the only things that are largely cross-platform. Because the work of portability has been handled by Mozilla, Google, etc, not by themselves, there is virtually no limitation regarding what you can do with it. If a handful of people suddenly like your "standard", all modern browsers will get to support it eventually.
[Gemini](https://gemini.circumlunar.space/) is a young protocol that's slightly heavier than Gopher, but radically more lightweight than the Web. Its [spec](https://gemini.circumlunar.space/docs/spec-spec.txt) is 4.4k words long as of time of writing, which, excluding the appendix, is a 20-minute read if you skim past the microscopic details. Here is a TL;DR of the specs that's ~1k words long.
diff --git a/docs/how_fkfd_is_made.md b/docs/random/how_fkfd_is_made.md
index dc54baf..0615df9 100644
--- a/docs/how_fkfd_is_made.md
+++ b/docs/random/how_fkfd_is_made.md
@@ -1,5 +1,7 @@
# How an FKFD Comic is Made
+2020-07-21
+
I don't consider myself a cartoonist, let alone good cartoonist. I am unqualified at comics in all aspects, you know? I can hardly draw anything that's not a rectangle, circle, or straight line; for every final stroke you see on the canvas, I have undone and redone three times; my update frequency is like `abs(tan(x/k))` where k is around 10 days\^-1 [1]. One day in May I pushed 4 comics. And then I completely skipped June.
Let me keep it short and talk about how an fkfd comic is made. Not technical details (i.e. export as webp, then png, then run `./submit.py`...) but how I come up with ideas and express them in comics.
@@ -48,5 +50,3 @@ There are certain periods when I was super innovative and others super productiv
[10] Notable examples: [Time Consumption](https://fkfd.me/9), [Turning Point](https://fkfd.me/59), and [Graph Nerd Sniped](https://fkfd.me/89).
[11] Notable examples: [Smart Home](https://fkfd.me/46), [Middle Button](https://fkfd.me/52), and [Grades](https://fkfd.me/96).
[12] Notable examples: [Wheeled Armchair and Armed Wheelchair](https://fkfd.me/54), [One-Letter Modifications](https://fkfd.me/69), and [Company Rules](https://fkfd.me/88).
-
-Last updated: 2020-07-21
diff --git a/docs/random/index.md b/docs/random/index.md
new file mode 100644
index 0000000..dc60a86
--- /dev/null
+++ b/docs/random/index.md
@@ -0,0 +1,12 @@
+# Random stuff
+
+If you know me you'll be impressed how quickly and unexpectably my
+interests change. I'd pick up something and, whether I'm done with it or
+not, I'd dump it into a heap labeled "stuff I loved at some point", and
+they just stay there, like malloc'd memory that will never be freed.
+
+Nevertheless, occasionally I leave a permanent trace along the way.
+
+- [Gemini TL;DR](gemini_tldr)
+- [How an FKFD Comic is made](how_fkfd_is_made)
+- [The Real Git](realgit)
diff --git a/docs/realgit.md b/docs/random/realgit.md
index 590382d..6fa9cf5 100644
--- a/docs/realgit.md
+++ b/docs/random/realgit.md
@@ -1,5 +1,7 @@
# The Real Git
+2020-05-02
+
This post is for young developers like me, ditching GitHub/Lab for Gitea with a self-recognition as a hipster. There is a <a href="#tldr">TL;DR</a> at the bottom.
For too long have I held the incorrect belief that we needed a GitHub alternative that federates, and joins the fediverse using ActivityPub. Well, it could be a thing. Gitea is good, and I'd be pleased to see it get better by implementing AP.
@@ -67,5 +69,3 @@ A lot. While beginners tend to wet their hands in a web environment they're fami
Many people believed the GitHub-like UI is the way all FOSS is developed. They are wrong. A web UI is not the only nor the original way to use git; you could use [git-send-email](https://git-send-email.io) to submit patches in mailing lists, and as maintainers you can merge them using git's stock utilities. Some people have never heard of the latter because they were never told about it; meanwhile, the web UI has hijacked their mindset. [Sourcehut](https://sourcehut.org/) is an example of email-driven development with a minimalistic web frontend. In such development scheme you will find your workflow more efficient, especially if you are used to a terminal. The obvious pain in the neck is a good mailbox as your identity and a local client that doesn't suck. I hope you're experienced enough to figure those out. Then it's the low public exposure of a mailing list. Perhaps maintain a mirror on a UI-driven site as a portfolio.
The reason why I had never heard of such a thing before is no one told me the exact thing I needed to know. Also GitHub formed the stereotype of a git forge. There are certainly other young people suffering, unaware of email-driven development being an option. Tell them this thing has been around for 15 years.
-
-Last updated: 2020-05-02
diff --git a/docs/shitpost/fake_moon_landing.md b/docs/shitpost/fake_moon_landing.md
new file mode 100644
index 0000000..044d8c1
--- /dev/null
+++ b/docs/shitpost/fake_moon_landing.md
@@ -0,0 +1,19 @@
+# Debunking the "fake moon landing" conspiracy theory
+
+2021-01-18
+
+Some people think that what Neil Armstrong and Buzz Aldrin did in 1969 was
+a "fake moon landing". However, there's no way this is true. The moon, as
+we see at night, is actually a spherical lump of rock. It looks small only
+because it's far away from us. In fact, it is 1737km in radius and
+7.342e19t in mass, both much larger and heavier than anything humans
+have made. Despite the United States' unsurpassable power in engineering
+amidst the Cold War, it was impossible for NASA to build a fake moon
+identical to the real one in dimension, let alone quietly propel it into
+the orbit where the latter belongs without the Soviet Union noticing. They
+would only have a few hours' window in which to perform the manipulations,
+before the sun sets in USSR. This is as practical as trying to escape an
+earthquake on a segway. Therefore, what the pioneers landed on fifty
+years ago was *the* real moon, not a fake one.
+
+Thank you for coming to my TED talk.
diff --git a/docs/haiku.md b/docs/shitpost/haiku.md
index c6ffd1e..c6ffd1e 100644
--- a/docs/haiku.md
+++ b/docs/shitpost/haiku.md
diff --git a/docs/shitpost/index.md b/docs/shitpost/index.md
new file mode 100644
index 0000000..fa0a6f0
--- /dev/null
+++ b/docs/shitpost/index.md
@@ -0,0 +1,10 @@
+# Shitposts
+
+Based on the fact you're looking at my shitposts and not anything of
+value, I know you are very bored. You may attempt but miserably fail to
+entertain yourself with one or more of the following shitposts in the
+precious time you could've spent more wisely elsewhere:
+
+- [Debunking the "fake moon landing" conspiracy theory](fake_moon_landing)
+- [Haiku collection](haiku)
+- [Rousseau and Schopenhauer walk into a bar](rousseau_and_schopenhauer)
diff --git a/docs/shitpost/rousseau_and_schopenhauer.md b/docs/shitpost/rousseau_and_schopenhauer.md
new file mode 100644
index 0000000..0003518
--- /dev/null
+++ b/docs/shitpost/rousseau_and_schopenhauer.md
@@ -0,0 +1,22 @@
+# Rousseau and Schopenhauer walk into a bar
+
+2020-10-02
+
+Rousseau and Schopenhauer walk into a bar. Both order a whiskey. “Say
+Rousseau,” the tender asks, “how’s your kids doin’ in the orphanage?”
+
+Rousseau gets mad, says, “I had no choice back then! How else could I have
+time to develop my theories in child education?”
+
+“Hey Schopenhauer,” the tender leans to him and asks, “heard ya hooked up
+some hot whore last night, huh?”
+
+Schopenhauer gets mad, says, “I’m still a virgin, man! That can’t even be
+called sex. I had to pull it out halfway to meet the deadline. Spent the
+rest of the night finishing Thirty Reasons Why Women Suck.”
+
+Rousseau happens to finish his whiskey, slams his glass on the counter,
+turns to the bartender. “Why you prick keep judgin’ us?”
+
+“Naaaah”, the tender shrugs and says, “I’m totally not disrespecting you
+philosophers! I justlike to taunt them from time to time.”