Your personal Tumblr library awaits
True and real! I agree that gender binary is generally bad and in fact I wish that I could opt out of hormones completely without rapidly deteriorating my health.
That said, unfortunately having some binary sex hormones are generally necessary for long-term wellbeing and health. That meant that I had to choose between my birth guy hormones or woman-y hormones if I wanted to avoid a ton of health complications. I chose to transition to become hormonally more woman-y since switching hormones felt much more nonbinary than keeping the same ones, at least for me personally. (I also felt like I should definitely have boobs, regardless of my assigned gender at birth). However, I’m not a woman which makes the term trans woman a dysphoric self-identifier for me.
Now you might wonder, why do you ever need to talk about your hormonal transition? Well sometimes I really crave salty foods a lot or I really want a lot of cuddles or I have periods and I ideally like to qualify those lived experiences by noting my hormonal layout. Now sure, I could just say “I am an amab who now has the hormonal layout of a woman but I’m not a woman and I’m actually nonbinary. Anyway…” but that’s incredibly clunky. Instead, I like to have an easy and clear non-clinical self-identifier that signifies my hormonal transition to allow me to easily contextualize my experiences with my hormonal makeup.
I have also found that generally other people who have gone from guy hormones to woman-y hormones are generally similar to me in specific ways, and like most humans, I like to “find my tribe” so to speak. Having the short and clear label of transfem, especially within label based internet communities made it easy for me to find people that I especially vibe with. Without a short and clear label I would likely struggle to find other nonbinary amabs who hormonally transitioned to the woman-y hormones.
Side tangent: I disagree with you that the terms transfem and transmasc have to always correlate to birth sex. For example I have one nonbinary transmasc friend who is amab and the label transmasc is generally a good descriptor of them. They note that the term fits them well because they kept their amab hormones in their transition while embracing their masculine side throughout their social transition to being nonbinary. They also often feel more similar to transmascs than transfems or cis guys which means the label transmasc for them functions similar to me in finding their tribe.
For me, and for other nonbinary people I know, the terms transfem and transmasc help us find communities where we share the same hormones and smoothly communicate which hormones we have without causing dysphoria or feeling needlessly clinical.
I agree that imposing binary labels onto those who do not want them is wrong and I’m sorry that you have felt the gender binary reimposed onto you by the trans community via these labels. At the same time however, I still feel that the terms transfem and transmasc definitely have their place in the community and do not always coorelate to birth sex. Both can be true at once.
Really hate that the queer community's response to the creation of a gender trinary (girl, boy, and nonbinary, which is still not all-encompassing) was to... reinvent the binary. We just started grouping all genders into "masc/male-aligned" and "fem/female-aligned" and it's so fucking stupid. Even with the occasional allowance of "neutral/unaligned" it still maintains the binary as the standard. And then they don't let you use certain labels if you don't have the "right" gender alignment. The fuck.
Uhh I’m gonna use this as an excuse to infodump about graphs and fractals and how those two combined help me reason about everything from artistic composition to neural networks to psychology to neuroscience to quantum physics to distributed systems to astrophysics to etc etc etc. I’m calling this theory the:
Fractal theory of Everything
And I’ll probably post a lot of #looooonnnggggg posts about it under the tag “#fractal theory of everything” if you wanna adjust your filters accordingly. This is just the intro post to explain the theory. Actually using this theory to explain everything will be the posts which follow this one.
TLDR located here: https://docs.google.com/document/d/1DF9lYoQXZbebiIgB071Pv_lHiISCiocuSq-pbubD_xg/edit
Imagine everything as a bunch of nodes (cities, people, classrooms, photons, tumblr users, etc) connected by edges (roads, friendships, paths, quantum strings, followers, etc). This representation is called a graph and you might be familiar with it (looking at who follows me) from math and/or computer science.
This representation of a graph is useful because sometimes a large enough graph is self-similar at multiple scales, meaning when you look at like 100 nodes it looks about the same as when you look at 100k nodes. See percolation which shows why magnets stop working when they get too hot or too cold.
I argue that any graph with meaningful data (meaning not all noise and not all uniform) is an approximation of an n-dimensional fractal. As the graph approaches a more and more accurate approximation of a fractal the data becomes more and more meaningful.
If you assume that energy is finite (change in the momentum of objects over time) then you start to think about how the universe could possibly exist with its near endless complexity (see fractal graphs from above with their complexity).
My conclusion from energy being finite is that adding a new particle to the universe must scale at most linearly, otherwise adding more particles would make the universe quickly use way too much energy way too fast. Think about a universe where every particle collides to some small degree with every other particle. If you add one more particle to a 2 particle universe then you’ve added 2 more collision checks which is not so bad, right? However, if you add one more particle to a 100 particle universe then you’ve added 100 more particle checks. It becomes obvious that if energy is finite then this is a massive waste of energy for very little increase in scale of our universe. Since intelligent life which can reason about stuff like this can only exist in a sufficiently large universe, there’s a bit of a survivorship bias in that we must live within a universe which scales linearly at worst in order for us to be able to reason about all this, assuming energy is limited.
Since the universe must scale linearly, each particle can only “talk to” the top X most important particles around it for each “update frame” of the universe. (Time is weird though because the universe kind of slows down fast moving objects and my theory is that fast moving objects get more frames compared to slower moving objects but this is even more speculative and hazy than the rest of this infodump. There’s also some weird time shenanigans with looking back through time - see double slit experiment).
Having each particle only talk to their X most important neighbors means that the universe can scale linearly since every particle doesn’t have to talk to every other particle anymore (yay!).
However, limiting the number of edges each particle has also has ramifications in quantum behavior (behavior of particles on a quantum level or dealing with 1 to 100 particles rather than billions).
Basically when a particle only has a few other particles near it in spacetime it’s as though that particle has a weak GPS signal and the particle ends up moving in ways it shouldn’t because the particle only has a few friends to orient itself with. I theorize that the double slit behavior seen with a laser beam entering two slits is due to that particle having to guess where and when it is in spacetime based on the very few particles around it (see math theory of multilateration).
Therefore since the particle can't orient itself it has to guess where it is using probability and some sort of pseudorandom process. This creates the wave pattern seen in the double slit experiment.
there's nothing that melts me more than just hearing someone be passionate about something. And if someone has hurt you in the past and makes you reluctant to fuckin completely go off on the expanded canon of the X-Files or whatever, I'm gonna hit them in the head with a big mallet. You're adorable, show it. Please
All fancy smancy generative ai models know how to do is parrot what they’ve been exposed to.
A parrot can shout words that kind of make sense given context but a parrot doesn’t really understand the gravity of what it’s saying. All the parrot knows is that when it says something in response to certain phrases it usually gets rewarded with attention/food.
What a parrot says is sometimes kinda sorta correct/sometimes fits the conversation of humans around it eerily well but the parrot doesn’t always perfectly read the room and might curse around a child for instance if it usually curses around its adult owners without facing any punishment. Since the parrot doesn’t understand the complexities of how we don’t curse around young people due to societal norms, the parrot might mess that up/handle the situation of being around a child incorrectly.
Similarly AI lacks understanding of what it’s saying/creating. All it knows is that when it arranged pixels or words in a certain way after being given some input it usually gets rewarded/gets to survive and so continues to get the sequence of words/pixels following a prompt correct enough to imitate people convincingly (or that poorly performing version of itself gets replaced with another version of itself which is more convincing).
I argue that a key aspect of consciousness is understanding the gravity and context of what you are saying — having a reason that you’re saying or doing what you are doing more than “I get rewarded when I say/do this.” Yes AI can parrot an explanation of its thought process (eli5 prompting etc) but it’s just mimicking how people explain their thought process. It’s surface level remixing of human expression without understanding the deeper context of what it’s doing.
I do have some untested ideas as to why its understanding is only surface level but this is pure hypothesis on my part. In essence I believe humans are really good at extrapolating across scales of knowledge. We can understand some topics in great depth while understanding others similarly on a surface level and go anywhere in between those extremes. I hypothesize we are good at that because our brains have fractal structure to them that allows us to have different levels of understanding and look at some stuff at a very microscopic level while still considering the bigger picture and while fitting that microscopic knowledge into our larger zoomed out understanding.
I know that neural networks aren’t fractal (self-similar across various scales) and can’t be by design of how they learn/how data is passed through them. I hypothesize that makes them only understand the scale at which they were trained. For LLM’s/GAN’s of today that usually means a high level overview of a lot of various fields without really knowing the finer grain intricacies all that well (see how LLM’s make up believable sounding but completely fabricated quotes for long writing or how GAN’s mess up hands and text once you zoom in a little bit.
There is definitely more research I want to do into understanding AI and more generally how networks which approximate fractals relate to intellegence/other stuff like quantum physics, sociology, astrophysics, psychology, neuroscience, how math breaks sometimes etc.
That fractal stuff aside, this mental model of generative AI being glorified parrots has helped me understand how AI can seem correct on first glance/zoomed out yet completely fumble on the details. My hope is that this can help others understand AI’s limits better and therefore avoid putting too much trust into to where AI starts to have the opportunity to mess up serious stuff.
Think of the parrot cursing around children without understanding what it’s doing or why it’s wrong to say those words around that particular audience.
In conclusion, I want us to awkwardly and endearingly laugh at the AIs which mimic the squaks of humans rather than take what it says as gospel or as truth.
Eh all programming languages are good for certain use cases (aside from Java - Kotlin is better for android and Go is better for anything else).
Python is good at quick and dirty automation that just needs to get done. It’s very friendly to use and won’t pout at you when you ask it do something. Also once you learn to navigate pandas+numpy combined with Jupyter Notebooks it gets wayyyy faster and easier to use for data wrangling.
For example, I recently used Python to scrape hundreds of thousands of tweets via snscrape without having to use twitter’s API. Once I downloaded all the tweets it took me about 30 minutes to then do some basic analysis/labeling/sorting on said tweets.
Yes pip is terrible. Yes Python has only a hint of types (typescript style type hinting arrived in 3.something). Yes pickle creates so many vulnerabilities. Yes performant Python is basically C in a trench coat.
All that said, there’s a reason Python is many people’s first typed programming language and why I continue to use it whenever I have some data I have to fetch, transform, and analyze or whenever I’m just starting to explore a new field of computer science.
Writing Python is basically like writing pseudo code so I love it for anything that I just need to code up and run once or twice for either a proof of concept before moving to a more “serious” language or just discard the program is for my one-time personal use only.
No one should ever have to maintain more than 1k lines of Python but I will still occasionally write that much Python simply because it lets me explore high level techniques without worrying about being perfectly precise.
Python is not for production but instead for messing around. Python is that goofy ahh language that everyone likes because it doesn’t mind when you affectionately mess with it. Python is the adorable sidekick that makes programming fun again and for that I adore it
Java is a trash language that should burn in the parts of hell where hitler is
Rust on the other hand is a bratty lil language that should burn in the parts of hell where queers party
I felt like the placement of your background images within the body tag to the top and bottom of your main content div is pretty intuitive overall. The only thing I could think of to improve the vines would be to make them pseudo elements (another YouTube video by Kevin Powell) of the body element so that way you don't have to have empty divs cluttering your html for them. Pseudo elements are useful for purely decorative elements because they're created purely out of CSS; no HTML required!
TLDR: Color contrast is hard; especially with the current color systems we have today (HSB/RGB) since the numeric incantations of popular color systems don't line up with how our eyes actually perceive color, especially when it comes to brightness. Google made a new color system (along with a tool based on that color system to generate color palettes) that lines up better with how humans perceive color but it still isn’t perfect. IMO using tools like palettte.app (with 3 t’s) and hand-selecting colors numbered by how light they are - more about that below - works best and gives projects more of a hand-made feel but Google's tool works well enough for making a quick and professional looking color palette.
Making CSS variables with the format
colorName-brightnessValue
makes it easier to meet contrast standards when coding up a website. I'll usually organize my colors to range from 0 to 1000 exclusive where 0 is black and 1000 is white. I usually use 100, 300, 500, 700, and 900 the most so I have those 5 shades of each main color ready to go whenever I start a new project. (I use the same 4 colors for all my projects so it's easy to copy and paste the colors from the last project into the new one!)
That way if I know my background is violet-100 and my text color is violet-700 that the text will be legible because of the difference in brightness values is 600 just based on the variable names alone. Generally a difference of at least 500 (assuming you go linearly in perceived brightness) is enough to get AAA contrast levels.
For an example, here are my css variables for zephiris.me:
Others do the numbering of the shades differently. Here's how tailwind does it:
Tailwind CSS color guide's section on making a custom color palette has links to some helpful tools on how to hand-pick several shades of a set of colors so that the brightnesses of the colors decrease with the numeric value in a way that actually lines up with people's perception of color.
On that same page, tailwind also has all those color palettes shown above free for you to steal use in your projects!
Google's Material 3 design framework has shades of every color go from 0 to 100 for brightness instead of my 0-1000 brightness or Tailwind's 0-1000 darkness.
Google also has a nice resource which will automatically generate a color palette for you (I like doing it manually with palettte.app [with 3 t's] but if you just need a quick and easy palette that meets contrast standards, Google’s resource works pretty well).
Google actually has a very interesting blog post on why it’s so hard to make accessible colors and get the right amount of contrast with current color systems like HSB/RGB etc.. To fix this, they created a new color system, HCT (Hue Chroma Tone), which helps solve that problem by having HCT's Tone value better match our human perception of brightness.
My main advice for overall UI design is to pick three colors: a primary color (for background colors), a secondary color (for card backgrounds/text colors), and a tertiary color (for any elements that should be interacted with like buttons and links). I made a site to try out various combinations of colors and share those palettes with others a while ago (apparently November of 2021, thanks GitHub!)
Recently Juxtopposed made a more professional version of what I made called realtimecolors.com along with an accompanying video. Her website also features a palette generator where you just enter in one color and it will generate a set of palettes off that one color!
Unfortunately neither mine nor Juxtopposed's websites support multiple shades of each key color, so to get those additional shades make sure to either use Google's generator or one of the tools mentioned by Tailwind once you have a general set of colors that you feel works well together.
What works best for me is to pick colors based on environments which I enjoy to be surrounded by. I based my color palette for zephiris.me on:
the night sky's bluish-purple hue (maybe I wear rose-tinted glasses ok?)
greenish-blue seafoam from ocean waves
golden rays of sun filtering through pine trees
Lastly, I used the trans flag colors to describe my gender for obvious symbolic reasons - I also like being next to a particular shark :p
Meeting color contrast standards can get way easier by numbering your colors based on how light they are. There are plenty of ways to get a set of colors labeled by lightness:
using palettes already made from Tailwind
Have Google do some math wizardry to generate you a custom palette
Use tools like palettte.app to create your own set of colors to play with
Regardless of what option you choose, the overall added structure of numbering colors' brightnesses makes it dramatically easier to make incredibly legible, accessible, and colorful designs.
i like your website! it looks very nice
especially the gradient colored text!! you used a separate font to make it more legible
whenever i try to do something like that, it always becomes really hard to read... maybe i should learn some basic web design?
my website looks like this and it took two days of fiddling with css
Thank you! The biggest thing with making text legible is making sure there is enough contrast between the text color and the background or make the text big enough that it’s legible even if there isn’t that much contrast. The best guide on color contrast that I know of is the Mozilla docs! If you scroll down to the solution part there it has many tools to check text contrast.
Since your website has a warm bright canvas background darker colors and gradients would work better and end up being more legible.
If you’re looking to learn more about web development and especially CSS I strongly recommend Kevin Powell on YouTube! His videos on flexbox and grid are very helpful in understanding those new browser features and making responsive websites (websites that look great on any screen size). For example, I used grid for the nickname table and for my projects so that on desktop those elements would be wider and shorter while on mobile they’d get narrower and taller.
I love your site too, especially the canvas theme with the green branch/orange leaves and the clever span box to show your favorite color complete with a title tag featuring the hex code!
To be clear my site took me at least 20 hours of fiddling and development to make. Feel free to look at the site code (and my commit history) on GitHub!