Posts
2733
Following
119
Followers
682
software tinkerer and aspiring rationalist. transhumanist and alterhuman

I try to be very careful about CWing things. sometimes I make mistakes but I want to make my posts as safe to read as possible

I sometimes post NSFW/kinky/lewd things behind CWs. this should go without saying but if you're a minor please do not interact with anything lewd/NSFW that I post

I have very limited energy and am very shy so it might take me a long time to reply to messages sometimes, or I might not be able to reply at all. this is kind of an "output only" account for the most part, but I'm hopeful that I can change that over time

I sometimes use curly braces to {clearly show where a grammatical phrase begins and ends}, like that. you can think of them like parenthesis in code or math, except they operate on grammar instead

after I have (print) and (input) I think I want to do some simple DailyProgrammer problems in kaslisp, and then after that I’ll start writing a kaslisp interpreter in kaslisp

0
0
3

kaslisp now has:

  • macros!
  • a cool macro syntax that looks like this:
`(symbol symbol ,(evaluate this please) (symbol symbol))
  • floats and ints as datatypes
  • tons of operators that work on floats and ints
  • comments! (finally. it was surprisingly hard to get my parser to be okay with these lol)
  • an (eval) function
  • unit-tests to make sure that closures work correctly
  • (let) and (set) (I can’t remember if I’ve already posted about these but I’m so happy to have them working)

I feel like it’s almost ready for me to start writing some proper code in it? I just want to add (print) and (input) (and in order to have either of these I’ll need to introduce a string datatype and I’m not sure how hard that will be for my parser to understand lol but we’ll see!)

1
0
4

a point-and-click scifi horror adventure game called Stasis is free on GOG today!

https://www.gog.com/en/#giveaway

CWs: gore, violence, cruelty, and other things that you would expect from a scifi horror game. I don’t know all of the details because I haven’t played it

0
4
4

@CIMB4 hmm I have a bad memory so I feel like I do repeat myself on Fedi a lot, although if I’ve posted this before it definitely wasn’t in the past week or I would remember it

0
0
1

@liese so I haven’t played too many VNs at all but I’ve played a decent bit of Vampire Therapist! often their history features tend to confuse lol and if I miss something what I end up doing is reloading a save so that I can read it again. they definitely seem to have history features though but I just don’t know how to use them, and I’m glad that they have them!

I also played a VN that was set on a Discord server, so you could scroll up to read the conversations just like you could on Discord and that was really really nice IMO. and I think that has a lot of overlap with how Disco Elysium does it as well

0
0
1

genuinely I think that if a game has a lot of talking it either needs to use the Disco Elysium conversation UI or it needs to rethink how much talking it has

Dialog Boxes™ are nice for Zelda-like games where characters will generally say like 1-2 short things and those things are simple hints or little bits of flavor. but as soon as a character starts monologing they are a terrible UI choice (IMO) because:

  • you’re forced to read at the pace that the text is appearing
  • dialog text is very ephemeral and there’s no way to reread it. so if you forget to pay attention, accidentally skip past a single box worth of text, or misinterpret what someone is saying, you can sometimes get confused about what’s going on for the rest of the game

but Disco Elysium:

  • gives the text tons of vertical room so you can see a lot of it at once
  • appears immediately (no gradually appearing), so you can read at your own pace
  • lets you scroll up as far as you want, to reread anything that you missed or didn’t process correctly

it’s amazing. it solves every complaint that I have about dialog boxes, while still providing a format for characters to communicate with text on the screen

1
1
4

huge shoutout to Vampire Therapist for being the only Scrolling Dialog Boxes game that I’ve enjoyed because of the text in the scrolling dialog boxes. that was a hell of an experience for me

1
2
6

also, of all the art that I love, I don’t think a single bit of it has the property {I felt bored engaging with it at first and I had to tough it out before I enjoyed it}. they all hooked me right away. that might be sampling bias but it’s also reassuring

2
0
2
Edited 2 months ago

I get bored with art really really quickly. I basically have no patience for it at all - it has to capture my interest within the first few minutes or I just move on to something else

for example when I’m reading some fiction I often quickly skim through it at first to see if my eyes catch something interesting, and if I’m playing a game with scrolling dialog boxes I’ll often just stop playing if there are too many dialog boxes in a row lol

and often if a game expects a lot of up-front effort from me (for example, a big AAA game with lots of cutscenes and tutorials at the start) I’ll put off playing it pretty much indefinitely

and I used to think that this was a problem, like my attention span was being shortened by spending my entire life on the computer (which is kinda accurate, lol. though of course it’s more nuanced than that). like maybe I need to stop and appreciate things more or learn to have more patience. or I would have FOMO about “what if it gets really good just after I stopped?”

but thinking about it now, I think it’s just that there are so few types of art that I end up enjoying, so the expected utility of me putting effort into something that I don’t immediately enjoy is very low. in fact the statistical distribution of my enjoyment of art, given that I’m not immediately hooked by it, probably looks like a long-tailed bell curve with the center firmly on the negative side of the X axis - so the mean of that bell curve is definitely negative lol

so yeah I’ve decided that there’s nothing wrong with me playing a game, seeing that it has a lot of scrolling dialog boxes, and immediately uninstalling it lol. or me saying “I’ve been meaning to play this demanding AAA game for like 2 months. that’s never going to happen so I’m just uninstalling it” or even just, skimming a piece of fiction for 3 seconds and deciding not to read it

2
0
5

@drawnto ohh, huh! kaslisp does essentially do this (whenever a new namespace is created, it becomes the child of the previous namespace. then that child namespace gets garbage collected after the scope ends. so it all happens at runtime using a stack-like structure)

but I looked up the behavior of dynamic scopes on StackOverflow and it looks like they work like this:

local x = 0 -- we'll call this x0

function setX(value)
    x = value
end

function setLocalX(value)
    local x = value -- and this is x1
end

print(x) -- prints x0, which is 0
setX(1) -- x0 is now 1
print(x) -- prints x0, which is 0
setLocalX(2) -- x1 is now 2
print(x) -- prints x1, which is 2

and kaslisp doesn’t work that way. instead when setLocalX returns, kaslisp would clean up the namespace containing x1 and revert to x0 instead

so based on that I think that what I’m doing counts as lexical scoping instead of dynamic scoping

0
0
0

@drawnto woah… I just read about dynamic scopes and they are so strange and counterintuitive to me! they seem like a very bad idea to me to be honest, although maybe there are use cases for them. kaslisp uses lexical scopes (which, I didn’t know what that meant either until just now! so I’m glad you mentioned this distinction - thank you) and I actually have some unit-tests to make sure that variable scopes are working correctly (for example, that local variables shadow non-local variables and when you change them the non-local variables are left unchanged)

1
0
0

just implemented (let)! and I actually understand namespaces so well now omg. like I was always kinda fuzzy on what exactly a namespace is in a programming language and exactly how it works, but now having made my own namespace system and thought through all the edge cases, I think I have a really good grasp of them

or at least, I have a really good grasp of how I want them to work lol. who knows if other languages do them differently

1
0
8
repeated

🫵YOU should love yourself

3
2
1

(lambda) is confirmed working in kaslisp! I decided that I wanted most of my unit-testing code for (lambda) to be written in kaslisp itself, so I ended up also adding (not), (or), (and), (is?), and (set) which were all surprisingly easy to make!

I also decided that I’m no longer going to represent the boolean values true and false as 'true and 'false. instead they’re represented by the Python versions of True and False which simplifies my Python code a fair bit in several places

1
0
6
repeated

btw conventional games marketing wisdom says block game will never get a lick of press because i'm developing it out in the open and anything that's already public knowledge is not news so that means for it to go anywhere it has to have strong word of mouth

so uh, tell your friends? https://enikofox.com/blockgame

10
8
1
repeated

On Monday November 3 16:30 UTC, the UK petition will be debated in Parliament:
https://commonslibrary.parliament.uk/research-briefings/cdp-2025-0195/

It will be streamed live on the UK Parliament's YouTube channel: https://www.youtube.com/@ukparliament/streams

If you haven't already, inform your MPs and encourage them to attend!: https://www.parliament.uk/get-involved/contact-an-mp-or-lord/contact-your-mp/

0
2
1
re: Doom screenshots, so heavily pixellated video game gore and violence
Show content

@ifixcoinops hm I see! that definitely makes sense. and thank you!

0
0
1
Edited 2 months ago

it’s so hard to sell someone on the concept of “what you’re doing is unnecessarily hard, but if you put in a lot of effort to wrap your head around this counterintuitive thing, then you can do it way more easily instead”

I’m specifically thinking about stuff like ECS, Vim/Emacs/Neovim, containerization, immutability in general, and functional programming

because like, the argument format that I usually see is:

  1. okay so the way that you would normally do XYZ is hard right?
  2. but if you just [describes a very counterintuitive solution] then it would be really easy instead

because first of all, if you say “the way that you normally do XYZ is hard” the first thing someone is going to think is “… I guess? but it’s just an inherently tricky problem. I could definitely solve it though, and I already have a high-level idea of how I would do that”. to them the problem is inherently tricky because - in their mental framework for solving this category of problems - it is

and when you follow up with “but actually you could do this much simpler thing instead” their response is going to be “that sounds sideways and backwards, almost to the point of being academic. if it’s so hard for me to even understand what your solution is then why would it be simpler?”

and like, how do you even bridge that gap without coming off like “trust me bro. my way is better. put in a bunch of work without understanding why and you’ll eventually agree with me”?

and also, if you’re in the position of the person being convinced, how do you distinguish between a genuinely useful problem-solving technique and a tech fad? like, is NixOS actually a useful operating system or is it an excuse to tinker with a cool functional language? is Vim actually a superior way to edit text or is it a mind-bending exercise in memorizing arcane keybinds and configuring plugins for no tangible benefit?

you can’t just try every counterintuitive new thing in the hope that it turns out to be a good idea, but you also can’t stagnate and refuse to learn new things because they all seem counterintuitive to you

2
0
9
Edited 2 months ago
Doom screenshots, so heavily pixellated video game gore and violence
Show content

@ifixcoinops has been doing a thing where he adds 468x60 ads to his website for free and I’ve been thinking about making one for #HideousDestructor ( #HDest ) to hopefully get more people interested in this very niche ZDoom mod

here’s what I have so far - what do y’all think?

this might not be the kind of thing that Dan had in mind though, since it’s not for a hobby website exactly. I would probably link it to some kind of “getting started” guide for the mod

in any case idk I’m proud of how good this looks so far and I’m just happy to have made it. graphic design is extremely not my thing but I think this is Not Terrible and maybe enticing to click

1
1
3
repeated

Like I know I don't have to tell y'all, here on the algorithmless fedi, that you-might-like-this algorithms will not tell you things about yourself that you didn't know, will not help you grow as a person, will in fact stunt you and restrict your ability to change, because they're designed to show you things that they think you already like, not things that nobody, even yourself, could predict you'd be interested in. An algorithm can't stumble by chance and serendipity across your next passionate obsession, only a firehose of utterly random bollocks can do that

1
1
1
Show older