Posts by kasdeya@cryptid.cafe
 (DIR) Post #B2yEKunOH5fERqqjnk by kasdeya@cryptid.cafe
       2025-12-22T21:09:08.010865Z
       
       1 likes, 0 repeats
       
       it also has really nice short-form lambda syntax omggghttps://janet-lang.org/docs/functions.htmlI’m slowly falling in love with this language
       
 (DIR) Post #B2yiKxE2EpI8boFO2S by kasdeya@cryptid.cafe
       2026-02-03T23:37:34.116417Z
       
       1 likes, 0 repeats
       
       there was a certain era of internet art that I think of as “the Newgrounds era” - where you have a bunch of artists who are suddenly given absolute free reign to make whatever they want, with no censorship or limitations whatsoever, after living their entire lives up to that point in a stifling environment of censorshipand because of this new freedom they of course go absolutely over-the-top on gore, sex, violence, and other types of transgression - just to revel in their newfound freedom. a great example of this is The Binding of Isaacnowadays we still have that level of freedom on the internet, but 2026-era internet art isn’t nearly as interested in transgression or shock value because the novelty wore offand lately I’ve been wondering if mainstream art (especially TV shows and mainstream video games) is going through its own Newgrounds era, where shows like The Boys and Peacemaker - and video games like Baldur’s Gate 3 - are going for over-the-top violence and sex and shock value simply because they can, and because they’re reveling in their freedom to do itif so that has me hopeful that eventually mainstream media will calm down again and go back to being more thoughtful and mature and maybe dial it back down to a 5 or at least a 7, instead of being at an 11 all the time
       
 (DIR) Post #B36LYarJRvXzc5piAi by kasdeya@cryptid.cafe
       2026-02-06T23:17:24.029178Z
       
       0 likes, 0 repeats
       
       a witch appears and offers you a TF potion! she explains that the transformation will take 1 hour and you can mold your body during that time to choose your exact shape, coloration, sex characteristics, etc.which do you take?
       
 (DIR) Post #B3wveTekqDjha9ypiS by kasdeya@cryptid.cafe
       2026-03-05T00:16:07.141469Z
       
       1 likes, 0 repeats
       
       reminder that to “try your best” doesn’t mean to strain yourself. it means to take the task seriously. when “trying your best” it’s still important to:work at a reasonable, sustainable paceset definite end points to any work that you do (“I’ll read one chapter”, “I’ll finish refactoring this function”, etc.)take frequent breakstake a moment to appreciate your work whenever you finish a task
       
 (DIR) Post #B3wveUmaeZb94kebZI by kasdeya@cryptid.cafe
       2026-03-05T00:19:02.210896Z
       
       1 likes, 0 repeats
       
       in my experience there’s an optimal amount of effort for doing tasks. if I feel stressed, rushed, or strained while doing a task, that means I’m putting in too much effort - which is just as bad for the quality of my work as too little effortI’m trying to learn to:recognize when I need a break - or even take breaks pre-emptivelyrecognize when I’m putting in too much effort and deliberately slow myself down and/or make the task easier
       
 (DIR) Post #B42Hul2N9lcSu4zlC4 by kasdeya@cryptid.cafe
       2026-03-08T03:42:07.418402Z
       
       0 likes, 0 repeats
       
       so I made a basic tic-tac-toe game in Racket (it even has a simple AI that you can play against!) and now I’m moving on to using its GUI modules to make a little clicker game!unfortunately GUI stuff is always a clusterfuck so I’m currently trying to figure out how to decouple the game logic from the GUI code, while still being able to pass messages back-and-forth between them (there are lots of ugly ways to do this, but I’m trying to find a non-ugly way to do it)
       
 (DIR) Post #B4XM0y90qVRejKDeNM by kasdeya@cryptid.cafe
       2026-03-23T03:52:17.249076Z
       
       1 likes, 1 repeats
       
       @lizzie there is a really good CGP Grey video about how anger makes folks dumber and can lead to spirals of outrage online. I’d definitely recommend giving it a watch if anyone is interested:https://www.youtube.com/watch?v=rE3j_RHkqJc
       
 (DIR) Post #B4XOzatY6JgOCE1R0y by kasdeya@cryptid.cafe
       2026-03-23T03:05:11.781162Z
       
       8 likes, 0 repeats
       
       hey just as a reminder, if you’re posting or boosting something that is meant to create strong negative emotions in the reader, please be sure to give it a CW that gives folks a good idea of what they’re going to be seeingby “strong negative emotions” I’m talking about outrage, fear, a sense of vulnerability or danger, empathy for others’ suffering, a sense of injustice or unfairness, or any other emotion one might expect to feel about Current EventsIMO it doesn’t matter what the post is about (it could be about drama in some obscure hobby, or something happening on GitHub, or anything else) it’s about the emotions that that post is meant to create. that’s an important thing for folks to be able to opt into or out of explicitlyadding CWs for this kind of post will help everyone have a much more comfortable Fedi browsing experience
       
 (DIR) Post #B4mHr7rQNfgFWVRTqS by kasdeya@cryptid.cafe
       2026-03-29T23:39:01.435220Z
       
       1 likes, 1 repeats
       
       languages like Clojure and Common Lisp are designed so that everything is an expression, but in my new language, (C++)++, everything defaults to being a statement instead. if you’d like to turn a statement into an expression, just prepend return:int foo() {    return 1337;;}int addOne(int n) {    return (return n) + (return 1);;}int factorial(int n) {    return if (return (return n) == (return 1)) {        return 1;;    } else (return if (return (return n) > (return 1)) {        return factorial(return (return n) - (return 1));;    } else {        error(return "invalid number");;    });;}you may have noticed (C++)++’s revolutionary new return if expression syntax. in (C++)++, an if ... else statement simply evaluates its condition and both bodies (whether the condition is true or not) and then discards the results. but a return if ... else statement instead acts like a ternary operator in other languages:// this evaluates to `1`!return if (return true) {    return 1;;} else {    return 0;;};;in fact, a return if ... else expression is just syntactic sugar for the ternary operator:return (return true) ? (return 1) : (return 0);;you may have also noticed that many lines in (C++)++ end with two semicolons instead of one. this is for two reasons: first, (C++)++ has a revolutionary “automatic semicolon removal” system. while your code is being compiled, the compiler will automatically remove all of your semicolons and then guess where they should go. this is very easy to do and should be fine second, (C++)++ comes bundled with a new type of operator known as the “double semicolon operator”. here’s how it works: // when a double semicolon is inserted at the end of an expression, with no expression in // front of it, it evaluates to the expression on the left return 1;; // ^ this evaluates to `1` // when a double semicolon is used to separate two expressions, it evaluates to the // second expression return 1;; return 2 // ^ this evaluates to `2` // and finally, the double-semicolon operator is left-associative, and can be chained // forever if you want: return 1;; return 2;; return 3;; return 4 // ^ this is the same as (((return 1;; return 2);; return 3);; return 4) curly braces are ignored by the (C++)++ compiler. instead, the language uses significant whitespace. including curly braces is still considered best practice, however, to avoid scaring C++ developers: // avoid doing this: int collatz(int n)     return if (return (return (return n) % (return 2)) == (return 0))         return (return n) / (return 2)     else         return (return (return n) * (return 3)) + (return 1) // instead, do this: int collatz(int n) {     return if (return (return (return n) % (return 2)) == (return 0)) {         return (return n) / (return 2)     } else {         return (return (return n) * (return 3)) + (return 1)     } } also, make sure to add lots of double-semicolon operators, so that C++ devs will feel at home: // this is even better: int collatz(int n) {     return if (return (return (return n;;) % (return 2;;);;) == (return 0;;);;) {         return (return n;;) / (return 2;;);;     } else {         return (return (return n;;) * (return 3;;);;) + (return 1;;);;     };; };;
       
 (DIR) Post #B4oSzsnvDXaRFE6OCe by kasdeya@cryptid.cafe
       2026-03-30T23:08:33.885331Z
       
       0 likes, 0 repeats
       
       @wintermost people (or I am doing the xkcd comic thing again) probably have some idea that gravity wells have weird effects on the local passage of time omg wait do gravity wells affect the passage of time indirectly, because they like to move objects at high velocities? or is it possible to be completely stationary next to a completely stationary gravity well and still have the passage of time be affected?
       
 (DIR) Post #B4oT9hJUnK6cVDYBpQ by kasdeya@cryptid.cafe
       2026-03-30T23:32:03.049368Z
       
       0 likes, 0 repeats
       
       @leinna @winter gravity is a form of acceleration? omg that’s so weird. but pretty cool! I guess that means that if you could survive being in a really strong gravity well somehow, you could time travel hehe
       
 (DIR) Post #B4oT9iVwKXecE6Ndrc by kasdeya@cryptid.cafe
       2026-03-31T02:27:55.765340Z
       
       0 likes, 0 repeats
       
       @leinna @winter woahh that is fucking wild but I think it at least kinda makes sense?like if you’re freefalling, it feels like you’re weightless because presumably you’re accelerating downwards in a way that perfectly counteracts the upwards acceleration of gravityso is it acceleration that causes time dilation, and not speed? I thought it was speed but I might be wrongthis was a really interesting read btw! and thanks for explaining this
       
 (DIR) Post #B4sSXPjSURanbTHMa8 by kasdeya@cryptid.cafe
       2026-04-01T20:59:24.588226Z
       
       0 likes, 0 repeats
       
       I feel like learning the import system is the worst part of learning any language because literally all of them suck for different reasons:in Python you can’t import from parent directories without jumping through hoops and adding unnecessary __init__.py files everywhere. also the syntax for importing is really unintuitive and documented across multiple PEPs, each of which is a heavy read on its ownC-family languages generally don’t have proper import systems at all and what they have instead is probably a headachey clusterfuckJava.in Clojure if you want to import a file from another file at all you have to use a command called lein to generate a massive overcomplicated structure of directories and config files and then edit the config files and even then you have to import them using a fully-qualified namespace and every single file must manually specify which namespace it’s part of, but the namespace must also perfectly match its directory structure or it will silently fail to be imported. it’s like this confusing halfway point between a proper module system and a com.java.www.java.src.code.style.clusterfuck.systemI don’t know what’s going on with Common Lisp’s import system but it scares me, just like everything else about that languageRacket doesn’t have a proper concept of namespaces. if you import rackunit then by default everything from that module will be dumped into your current file, but you can choose to prefix those names with something like rackunit:so that they become named things like rackunit:check-eq? and rackunit:check-false. this isn’t a separate namespace though - it’s literally just renaming every import to start with rackunit:one of JavaScript’s many, many import systems actually seems pretty nice - but I couldn’t tell you which one it is because I was relieved just to convince package.json to let me import anything at all and left it at that. good luck finding any documentation on your chosen import system btw, or even information on how the import systems differ or which to use. oh also if you install Node packages then have fun figuring out how to import them too. here’s a hint: it involves bashing your head against package.json some moreTypeScript somehow makes the package.json thing worse. like so much worseIIRC Lua’s import system is based on the current directory instead of the directory of the current file, which means that you have to be cded to exactly the right directory when you run Lua code or you’ll get import errors and not know why. also the only clear description of how the import system works is in Programming In Lua which is outdated and missing some important details. and this isn’t even getting into the clusterfuck of trying to use someone else’s Lua library - especially if luarocks is involvedevery time I learn a new language I dread when I’ll have to figure out how to import something, because there’s always some bullshit like this. every time
       
 (DIR) Post #B4tSnxFFqtOHKhzyAS by kasdeya@cryptid.cafe
       2026-03-29T09:29:15.206903Z
       
       0 likes, 0 repeats
       
       my new conlang is so efficient that a single word can express what would, in English, require a whole noun phrase. for example here's how you say "a red beach ball with a smooth texture that is currently flying quickly through the air": a'red'beach'ball'with'a'smooth'texture'that'is'currently'flying'quickly'through'the'air
       
 (DIR) Post #B57AjZ9sNzNEVcgBqC by kasdeya@cryptid.cafe
       2026-04-09T10:24:16.029668Z
       
       2 likes, 0 repeats
       
       @lain @Mitsu “fans say”the moon fandom is at it again
       
 (DIR) Post #B59OM6hDpRgvFVu9Hk by kasdeya@cryptid.cafe
       2026-04-10T03:04:26.278737Z
       
       0 likes, 0 repeats
       
       I think I’m noticing a trend with English words:“cool” used to mean “a bit cold” but now it mostly means “good”“awesome” used to mean “inspiring awe” but now it mostly means “good”“fantastic” used to mean “fantastical” but now it mostly means “good”“incredible” used to mean “unbelievable” but now it mostly means “good”“amazing” used to mean “inspiring amazement” but now it mostly means “good”
       
 (DIR) Post #B5EEkR3BmAY9ZkwPB2 by kasdeya@cryptid.cafe
       2026-04-12T20:15:13.922865Z
       
       0 likes, 0 repeats
       
       I wonder if anyone has made a low-level #Lisp that is specifically designed to be semantically close to #WASM code, so that it compiles to be very very efficient (kinda like how Lua is really fast because it’s very semantically similar to C code, which is what its interpreter is written in)like WASM already reads kinda like a Lisp to me, and I bet that would run crazy fast(I’ve been tempted to do this several times I’m ngl. I think I want to learn WASM one of these days. sadly most of the “learn WASM” tutorials are more like “learn how to compile some shitty language like C++ to WASM”)
       
 (DIR) Post #B5NhBK9U4v598e8PyK by kasdeya@cryptid.cafe
       2026-04-17T07:24:12.565178Z
       
       1 likes, 0 repeats
       
       the life cycle of every programming language is like that trope where someone is fiddling with a priceless antique and then it breaks in their hands and they frantically try to put it back together and hope nobody will noticeexcept imagine that goes on for multiple years and parts keep breaking off so they start adding superglue and duct tape until the whole thing is more duct tape than priceless artifact and also some pieces roll away, never to be seen again
       
 (DIR) Post #B6QnLUaofHbKKNwKTA by kasdeya@cryptid.cafe
       2026-05-17T20:04:40.522120Z
       
       0 likes, 0 repeats
       
       just encountered another of those “Linux is literally perfect and Windows users are just too lazy to learn how to use it properly” posts and… just stopmaybe Linux is the best OS available if you’re a computer geek who is happy to devote 1-4 hours per day to researching and trial-and-erroring arcane tech problems until something works, but unfortunately that description doesn’t fit like 99.9% of the world’s population and that’s why everyone is still using WindowsWindows users aren’t “lazy” - Linux is an extremely demanding OS and the vast majority of people simply do not have the time or energy to spare, let alone the interest to learn arcane tech things for 1-4 hours per day in order to have a functioning computerand that’s assuming that they can even afford to have a non-functioning computer for an unknown period of time while they learn how to get everything that they depend on running again in an unfamiliar OScertain Linux Evangelists™ need to take a step back for a second and realize that they are experts at Linux and that that expertise has taken them hundreds or thousands of hours to attain and they can’t just expect a random Windows user to put hundreds or thousands of hours into learning a completely foreign OS just because of some concept of software purity that they don’t understand or care about
       
 (DIR) Post #B6XZ8dyoPjzoQOrWj2 by kasdeya@cryptid.cafe
       2026-05-22T00:15:22.301899Z
       
       0 likes, 1 repeats
       
       @futurebird omg in that case I bet pterodactyl means “wing-fingers”! because “dactyl” means “fingers”, like “Pentadactyl” (five fingers), the vim web browser thing