ThatOneCalculator's personal blog.

So yea, I made my own code license, the

Based License.

I love copyleft, but I feel that licenses such as the (A)GPL and MPL are just too bloated and advanced. I also like the PAM license, but it's not copyleft. So I up and wrote my own.

Hopefully you'll consider it for your own projects, I'll be using it for all mine going forward!

Click below to view the license:

                   The Based License v1.3.6

Used by <software author(s)> on <day month year>
Written by Kainoa Kanter (ThatOneCalculator) on 1 March, 2022


Questions, comments, or concerns? Open an issue here:
or send me an email at <>.

A non-legally binding summary of the license can be found here:


While the software author(s) can modifify the based license, you have to state below if it was and if so,
how it was modified.

Have the license terms been modified? If so, how was it modified?
* No, the terms in this copy of the based license has not been modified. *



All copies of this software that are redistributed (INCLUDING modifications to the software)
must have their source code easily and publicly available, and also be licensed under the based license.
That means that this is a copyleft license. If the software does not contain a copy of this license, you
can obtain a copy from .

The author of this software has the right to claim the software as their own, and while anyone can contribute
to, redistribute, and modify this software (under the based license), they cannot claim it as their own software,
and credits must be given to the original author(s) of this software.

This software is provided with no warranty. If the device you're running this on gets messed up because of
this software, that's on you reading this for not auditing the code before running this software.

This software cannot be used to mint or produce NFTs (Non Fungible Tokens) or any other similar smart-contract
based proof-of-ownership scheme. This includes the source code, binaries, screenshots, artifacts produced,
websites, the name of the software, or anything else from or of this software.

If this software depends on other software dependencies under different licenses, the parts that are used under
different licenses must be stated clearly in the software or in documentation. If this software depends on any
non-free network services, that must also be stated clearly in the software or in documentation.

This software cannot be used as a dependency in other software that is closed source.

This software can be used for corporate/for-profit purposes as long as it follows every guideline in the based 
license, including the fact that all components of said software must be open source. Binaries of this software
can be sold, as long as they're bundled with the based license and a link to the source code.

By using this software, you agree to the terms above. If you break the terms of this license, the author(s) of the 
software this copy of the based license is being used for have the right to pursue legal action against you if
violations are not resolved within one week (7 days) after being notified by the software author(s).


⠘⡀  ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡜⠀⠀⠀
⠀⠀⠀⠀⠀ ⠑⠀ ⠀⠀  ⣀⣀⣀⡀⢀⣀⣀⣀⣀⣀⡀⢀⣀⣀⣀⣀⣀⡀⢀⣀⣀⣀⣀⣀⡀⢀⣀⣀⣀⣀⣀⡀⢀⣀⣀⣀⣀⣀⡀⢀⣀⣀⣀⣀⣀⡀⢀⣀⣀⣀⣀⣀⡀⢀⣀⣀⣀⣀⣀⡀⢀⣀⣀⣀⣀⣀⡀⢀⣀⣀⣀⡀⠤⠄⠒⠈⠀⠀⠀⠀⠀⠀⠀⠀

(The above ASCII art isn't a legally binding part of the license.)

These are some Fediverse instances I think are cool, especially for people new to the Fediverse.


🍮 Misskey

I'd recommend Misskey for most people who want to get into the Fediverse. It's a customizable, comfy, and overall awesome microblogging (“tweeting”) experience.

🐘 Mastodon

Mastodon is a bit more easy for those coming from Twitter to grasp, and while being popular, lacks a lot of features other microblogging platforms have.

🎨 Pixelfed

Unlike the rest of these, Pixelfed instead takes a more Instagram-like approach, and is what I'd recommend for artists and photographers.

🐁 Pleroma

Very customizable microblogging, but I wouldn't recommend it to new people as it can be harder to use and understand.

📺 Peertube

It's like YouTube, but can interact with all these different platforms.

🐦 = Run by me 🐱 = Run by stux

The list:

QR code memes are stupid

Ok wait what the fuck are you talking about?

There's this trend going around on — you guessed it — Twitter of people posting QR codes on images and telling people it's pirated software. But a lot of the times these images contain malware, IP loggers, zip bombs, or just deadlinks. Software piracy is a good thing, but this isn't the way to do it istg y'all are dumb asf and it shows.

How to safely scan QR Codes

If you're on Android, use BinaryEye. By far the best scanner on this list, as it will give you a full breakdown of the code before you can open it. For everyone else (iOS, desktop), I'd recommend WebQR.

Android and iOS users, PLEASE DON'T USE YOUR CAMERA APP'S SCANNER! Your camera apps won't give you a full breakdown of the code being scanned.

Please inspect any zip files before opening them. Preferably, have the md5/sha256sums on-hand to cross check them. (Scroll below for more details on how to do that.) However, you shouldn't be getting your pirated software from QR codes.

How to actually pirate

Simple: it's about trust.

Make sure to use a trusted torrenting source with a trusted torrenting client on a trusted VPN, inspecting the contents of the download before opening it.


By far the most reliable all-around torrent source is 1337x. They have pretty much everything you'll ever need (movies, TV, anime, PC software, games, etc). However, I'd like to give an honorable mention to PCGamesTorrents for having very up-to-date PC game torrents.


For desktop (Linux, Windows, macOS), use qBittorrent or Deluge. For Android, use LibreTorrent. I personally hate iOS and refuse to use it. There seem to be some apps you can sideload, but I can't speak for any of them.


VPNs are one of the most shilled and overhyped things ever. All you're doing is redirecting who can see the traffic of your internet from your ISP's servers to someone else's. Never use big-name VPNs like NordVPN! If it was in a sponsored YouTube video, chances are it's shit. Hell, ExpressVPN and Kape are owned by a company known for distributing malware. Same can be said for those Chrome extensions offering a “free lifetime VPN”. Self-hosting a VPN is always the best option, however, because you're here, chances are you can't do that. I'll cut to the chase — for clearnet users (aka you), Mullvad is the ONLY good choice. Their prices are reasonable, and it's completely anonymous. Furthermore, their servers are hosted in Sweden, which has great internet privacy laws.

Inspecting the content

Even with all of this, there's a chance what you download could be malicious. This practice applies to whatever you download from shitty QR codes as well.

  • Inspect what you download
  • Don't open zip files before previewing the contents
  • Put any exes through VirusTotal if you're on Windows. Note that some games may show false positives, especially from PCGameTorrents due to their cracking method.
  • If you know how and have the md5/sha256sums, please check them before opening a file.
    • On Windows, this consists of opening Command Prompt and running certUtil -hashfile PATH_TO_FILE HASH_ALGORITHM (PATH_TO_FILE should be self-explanitory. HASH_ALGORITHM is should be either md5 or sha256 depending on the hash algorithm.)
    • On macOS/Linux this consists of opening Terminal (or your preferred Terminal emulator) and running md5sum PATH_TO_FILE or sha256sum PATH_TO_FILE.

Specifically pirating Windows

If you just want to pirate Windows (even though Linux is far superior), use WinActivate.

That's it. Thanks for reading my ramblings.

This was my final for ICS 80 (Data science). Enjoy this silly little analysis on a shitpost bot. Source code for each graph included. As this was a group project, please note that a lot of the writing is not me speaking. Please also note the data used is from July 27th to December 6th.

An analysis on the growth and resource usage of Among Us Dumpy Bot

Kainoa Kanter, Chun Yin Harris Wan, Brian Kim, José Valdivia


What is Among Us Dumpy Bot?

Simply put, Among Us Dumpy Bot is a simple add-on (referred to as a “bot”) for the social media platform Discord that takes any image and converts it into a series of a twerking crewmates from the hit game Among Us, which received a fair amount of recognition and notoriety online due to the absolute absurdity and hilarity it can produce, eventually leading it to be added to over 30,000 groups (or “servers”) and accumulating over 1.6 million unique users over a period of around 6 months.

A couple things we are interested in in analyzing is how user engagement affects both overall popularity and growth of an application and how effectively the physical server hosting the bot scales to a higher workload.

Question 1

calc <- 
  data %>% 
  mutate(rowID = row_number())

popular <-
  map_dfr(set_names(calc$popular, calc$rowID), function(pop_var)
  .id = "rowID"

popular %>% 
  group_by(name) %>% 
  summarise(count = sum(
    as.numeric(count))) %>% 
    x = count,
    y = reorder(name, count),
  )) +
  geom_col() + 
  theme_rose_pine() +
    limits = c(0, 265000), 
    labels = scales::comma,
    breaks = seq(0, 265000, by = 50000)
  ) +
  labs(x = "# of times used",
       y = "Name of command",
       title = "Total command popularity",
       color = "#c4a7e7") +
    label = count),
    position = position_dodge(
      width = 0.4),
    vjust = 0.5,
    hjust = -0.05)

This is a bar illustrating the popularity of each command available in the bot. The x-axis indicates the number of times each command was used, and the y-axis indicates the name of the command used. The command dumpy is observed to the most popular, most likely due to the fact that it's what the bot is mostly used for. However, we are also able to see the usage of other commands available. For example, the help command (which shows other commands the bot contains) has also been used a fair amount of times, as well as the background command, which lets users set a custom background for all images generated.

Question 2

       aes(x = memload,
           y = active)) +
  geom_point() +
  theme_rose_pine() +
    labels = scales::comma,
    breaks = seq(0, 2000, by = 400)
  ) +
  labs(x = "Memory load (%)",
       y = "# of active users",
       title = "Relationship Between User Engagement and Resource Usage")

The scatter plot illustrates the relationship between user engagement and resource usage. The x-axis is the memory load and the y-axis is the number of active users. From this, we can see that there isn't necessarily a direct correlation between the number of active users and the amount of memory that the bot uses, as shown with the average number of users being 200-800 displaying memory usage all the way from ~30% to ~85%.

Question 3

       aes(x = servers,
           y = users)) +
  geom_line() +
  theme_rose_pine() +
    limits = c(18000, 30100), 
    labels = scales::comma,
    breaks = seq(18000, 30100, by = 3000)
  ) +
    limits = c(800000, 1600000), 
    labels = scales::comma,
    breaks = seq(800000, 1600000, by = 200000)
  ) +
  labs(x = "# of Servers",
       y = "# of Users",
       title = "Relationship Between Server and User Growth")

This is a line graph signifying the relationship between the number of servers the bot appears on and user growth. The x-axis represents the amount of servers the bot is in, while the y-axis represents the amount of users of the bot.

The number of users in this graph starts at around 800,000 and steadily grows from there, with occasional dips in users. Past ~26,000 servers however, the line dramatically jumps, and evens out into a straight line going diagonally up.

This indicates a positive relationship: as the number of servers the bot is increases, so does the amount of users. Similarly, this does not necessarily indicate a causal relationship, and has to be looked at further.

Question 4

       aes(x = memload,
           y = bandwidth / 1000000000)) +
  geom_density_2d() +
  theme_rose_pine() +
    limits = c(0, 100), 
    labels = scales::comma,
    breaks = seq(0, 100, by = 20)
  ) +
  labs(x = "Memory Load (%)",
       y = "Bandwidth (gb)",
       title = "Relationship Between Memory Load and Bandwidth Usage")

This is a density graph representing the relationship between the memory load of the bot on the host server and the amount of bandwidth used as the bot sends data back and forth from the host server to and from Discord. The x-axis represents the memory load percentage, and the y-axis represents bandwidth in gigabytes.

In the graph, there is less space between lines around the 10% to ~50% range, and at the ~60% to ~90% range below 5 GB of bandwidth. There are outliers present, as the density graph stretches out into higher bandwidths.

This graph shows that there isn't much of a relationship between the two variables. It's mostly gathered around constant areas, with some taking far more bandwidth for no apparent reason in this graph.

Question 5

t <- data %>% 
  select(time) %>% 
  pull() %>%

data %>% 
  ggplot(aes(x = t,
             y = active)) +
  geom_line() +
  theme_rose_pine() +
    labels = scales::comma,
    breaks = seq(0, 2000, by = 500)
  ) +
  labs(x = "Time",
       y = "# of active users",
       title = "Relationship between time and user engagement")

The line graph shows the relationship between time and user engagement. The x-axis is the time in months from July to December, and the y-axis is the number of active users.

As shown, the number of active users started from a bit over 2000 in July, but then it has an overall decline and some fluctuations in between. The number of active users drastically dropped to around 100 when close to December, which could be explained by the fall in popularity leading to the fall in engagement.

And recently, there is a rapid increase in the number of active users that reaches almost 1,500 and then declines again. The reason for the sudden rise is that SomeOrdinaryGamers, a Youtuber with 3 million subscribers, made a video which directly mentioning the bot which caused a significant portion of his viewers to check the bot out.

It seems that there is an overall negative relationship between the two variables. However, we have to take into consideration of other factors that might change the relationship.


Using the data we got from AUDB, we succeeded in answering all of our questions. We were able to effectively deduce which command was the most popular, dumpy, being used 244,697 times.

Bar plot: average popular command across days

Scatter plot: relationship between user engagement and server resource usage

Line graphs: relationship between server growth and user growth (positive); relationship between time and user engagement (negative)

Density graph: relationship between the memory load of the bot on the host server and the amount of bandwidth used as the bot sends data to and from the host server to and from Discord.

Welp, thanks for reading! Feel free to check out the bot here:


CSS Source Code

An h1 header

An h2 header

An h3 header

An h4 header

An h5 header
An h6 header

Paragraphs are separated by a blank line.

2nd paragraph. Italic, bold, and monospace link. Itemized lists look like:

  • this one
  • that one
  • the other one
  1. first item
  2. second item
  3. third item

Block quotes are written like so.

They can span multiple paragraphs, if you like.

Use 3 dashes for an em-dash. Use 2 dashes for ranges (ex., “it's all in chapters 12—14”). Three dots ... will be converted to an ellipsis. Unicode is supported. ☺

define foobar() {
    print "Welcome to flavor country!";
import time
# Quick, count to ten!
for i in range(10):
    # (but not *too* quick)

Images can be specified like so:

example image

Inline math equation: $\omega = d\phi / dt$. Display math should get its own line like so:

$$I = \int \rho R^{2} dV$$

And note that you can backslash-escape any punctuation characters which you wish to be displayed literally, ex.: `foo`, *bar*, etc.