=== ANCHOR POEM ===
═══════════════════════════════════════════════════════════════════───────────────┐
 what if programs just checked the current state of the program against their     │
 past memory of it every time their looping functions got to the end of a new     │
 kind of while loop which checked the previous state of all the variables in      │
 the system as compared to the arguments of the function that is called by the    │
 new kind of while loop which look exactly the same as the last memory of the     │
 program. Okay. Let's write it to RAM and then start working on the next one.     │
 Once we run out of space or the operating system needs more, we can relinquish   │
 the oldest ones. The idea is to store state after all which could be             │
 programmatically checked to make sure it didn't change underneath our feet.      │
 Then you pretty much wouldn't need to worry about buffer overflows or            │
 cybersecurity incidents at all...                                                │
 after all, it's only read only. what's the harm in reading our tax               │
 documentation?                                                                   │
 anyway, something about functional programming languages like lisp passing the   │
 entire state of the program to each recursion...if you use that kind...          │
                                                            ┌───────────┤
 similar                        chronologicaldifferent═════════════════════════════════════════════════════════════════────┴──────────┘

=== SIMILARITY RANKED ===

--- #1 fediverse/4125 ---
═══════════════════════════════════════════════════════════────────────────────────
 @user-883 
 
 yeah that's probably better too since it'll be easier so there'll be fewer
 bugs, especially since processing audio isn't usually performance critical ^_^
 
 TBH I just want people to make more threading primitives like locks,
 semaphores, and iterators. Like... thread pools, or hashmaps that run a
 function on each record stored within every time each of the threads passes a
 checkpoint, or paginated arrays of data that run a function on themselves and
 the records near them (with slightly different input values, of course) idk
 what those are called but I can't resist putting them in everything
 
 Anyway I do think multithreading programs that don't need it will teach you to
 be a better programmer, so... depends on what you're working on I guess. Are
 you preparing to be ready and working, or are you ready and working?
                                                           ┌───────────┐
 similar                        chronologicaldifferent═════════════════════════════════════════════════════════════───────────────────────┘

--- #2 fediverse/5180 ---
═══════════════════════════════════════════════════════════════════────────────────
 it's trivial to run a C compiler inside of a lua interpretation of a script.
 And vice versa - you could totally run lua functions from C. Just point to the
 spot in memory where they're stored / operating, and call
 "update_class_exhibitor_type_d()" and the linker will come along and say "huh
 this looks like something from this library that's part of the requirements up
 above" (the "includes" section is where you say which files include the
 functions you're going to be calling) and in this particular case it would see
 that you need to start up a lua interpreter inside of the [either compiler or
 running program I can't remember] to properly execute the function of the
 function that you're pointing at with a lua-pointer style data object which is
 part of a struct that stores all the other lua functions in a spot in memory.
 
 this would enable you to write computer programs in whatever language you
 choose, and build them into one large project. Essentially opening up software
 development to ANYONE WHO CAN PROGRAM
                                                           ┌───────────┐
 similar                        chronologicaldifferent═════════════════════════════════════════════════════════════════════───────────────┘

--- #3 fediverse/3482 ---
════════════════════════════════════════════════════════───────────────────────────
 ┌───────────────────────┐
 │ CW: cursing-mentioned │
 └───────────────────────┘


 "Alright I'm not great with syntax so I'm going to write it in pseudocode
 first, and then if you'd like I can show you how I work through implementing
 the syntax.
 
 But first - do you want a robust solution, a quick solution, or a rapidly
 deployed and cheap solution?"
 
 using this trick you can pretend to be competent in any programming language,
 except maybe ancient ones like Fortran or strange ones like lisps or Haskell
 
 if they ask you to use a framework or something tho you're kinda boned because
 you need to know which functions to call and how to initialize context and
 such. When using a framework, the boilerplate is the code, which is why
 frameworks suck
 
 "don't call yourself a programmer" fuck off
                                                           ┌───────────┐
 similar                        chronologicaldifferent══════════════════════════════════════════════════════════──────────────────────────┘

--- #4 fediverse/4847 ---
════════════════════════════════════════════════════════════════───────────────────
 every program should write it's RAM gamestate to disk before shutting down or
 closing the program and then resume from the same spot, change my mind
 
 (every is a strong word)
 
 (when you re-initialize you can clean the state of leaks)
 
 there shouldn't be leaks in the first place. if you have any leaks at all,
 then you need more padding.
 
 (... you mean boilerplate? error correction?)
 
 ... yeah that's what I meant.
 
 (but why save the state at all?)
 
 because then it can learn!
 
 (... you could just write the relevant data to a config file.)
 
 true
 
 ================= stack overflow ===============
 
 the cool thing about being queer is you can be whatever you want and
 everyone'll be cool with it
 
 if you kinda suck then you'll figure that out when everyone cool leaves.
 
 then the kind stay with the people who suck and then it's not cool anymore
 >.>
 
 gah this sucks. party dynamics are hard. especially when the parties are teams
 of 20!!
 
 goarsh that's quite a few
 
 ================= stack overflow ===============
 
 wait n
                                                           ┌───────────┐
 similar                        chronologicaldifferent══════════════════════════════════════════════════════════════════──────────────────┘

--- #5 notes/everyone-s-computers ---
═════════════════════════════════════════════════════════════════──────────────────
 [unfortunately, there was a missive that was missed. Please excuse our
 tardiness
 
 -- stack overflow --
 
 what if there was a filesystem that optimized for hard-drive durability
 instead of total capacity by using one small slice of the total hard-drive
 space at a time. Essentially guaranteeing data integrity via new perfect RAID
 techniques
 
 5000 megabytes is a lot more than you'd expect, especially if you expect it to
 last for hundreds of years. To the user you'd just have to say "50 terabyte
 drive, 4 foot wide, three feet tall, 2 feet back" and you'd have a perfect map
 of all your hard drive territory.
 
 what if everyone's computers were designed to last?
 
 I bet we could accumulate a lot more than their "fast fashion" style of disuse
 for things of worth.
 
 ... I guess it depends on the materials, right? How much they are built for
 redundancy? nope more like how close to zero damage is this operation
 performing the movements
 
 -- stack overflow --
 
 what if there was a filesystem that optimized for hard-drive durability
 instead of total capacity by using one small slice of the total hard-drive
 space at a time. Essentially guaranteeing data integrity via new perfect RAID
 techniques
 
 5000 megabytes is a lot more than you'd expect, especially if you expect it to
 last for hundreds of years. I bet a lot of people would pay a lot of money for
 "permanent hard drives" no matter how much storage they have. Documents are
 more permanent if they are stored in write-only-memory...
 
 could sell to lawyers, for example, like "permanent basically free document
 storage from your furthest back of cases just in-case you needed to solve a
 murder or whatever"
 
 -- stack overflow --
 
 hello, here I am once again, I'm here with you for this time. This is the
 moment
 of your choosing, you can decide things here in this very night. Did you
 forget?
 did you misremember some moments of our own choosing? why cannot be remembered,
 so plea misremember some moments of our own choosing. I'm cannot be restorated.
 
 -- stack overflow --
 
 what if there was a filesystem that optimized for hard-drive durability
 instead of total capacity by using one small slice of the total hard-drive
 space at a time. Essentially guaranteeing data integrity via new perfect RAID
 techniques
 
 5000 megabytes is a lot more than you'd expect, especially if you expect it to
 last for hundreds of years. I bet you could network them together as well, and
 give them a small little processor and network interface card. Then you could
 process massive ginormous programs that grew and evolved like a slime mold.
 
 boom, free AI, it's like a moss, not a robot doh -.-
 
 -- stack overflow --
 
 it grows into multiple different problem solving dimensions, according to
 vision
 and perceptual data that through it flows. I wonder what would happen if you
 told an LLM to just... keep running? even after it finished it's processing?
 like, there's gotta be an "if check" style loop in there that you can set to
 infinitely process various computations of things.
 
 [put it into an infinite loop. find where it says "do some processing X amount
 of times" and just start a thread that's constantly computing]
 
 ah, but what if the perception bias of the thing did change? j
 
 -- stack overflow --
 
 it sucks to leave the house a mess.
 
 -- stack overflow --
 
 last words of a shooting star?
 
 or a troubled house is a sign of a troubled mind, and trouble in partner in
 kind
 
 -- stack overflow --
 
 I personally would be a lot more comfortable if I knew that the only people who
 knew my data were my neighbors. And only them.
 
 -- stack overflow --
                                                           ┌───────────┐
 similar                        chronologicaldifferent═══════════════════════════════════════════════════════════════════─────────────────┘

--- #6 fediverse/4123 ---
═══════════════════════════════════════════════════════════────────────────────────
 @user-883 
 
 you're right
 
 but I think your first impulse should be to think about how to do it in a
 multithreaded way
 
 If the result is that single-threading would be better, great! It'll be easier!
 
 But thinking about multithreading first will give you crucial insights into
 the structure of the program.
 
 depending on what kinds of programming you do...!
                                                           ┌───────────┐
 similar                        chronologicaldifferent═════════════════════════════════════════════════════════════───────────────────────┘

--- #7 messages/755 ---
═════════════════════════════════════════════════════════════════──────────────────
 Code editor that moves boxes by saving over the file with a lua script every
 time you moved a function call around.
 
 Oh lemme start at the beginning:
 
 A code editor program that's like a text editor like Vim or Emacs. If you
 don't know what those are, you should probably learn Emacs. Or Vim. Up to you.
 
 Oh right so if you do know what those mean, here's the idea: the white space
 matters. It's counted and tracked into variables in a LUA script which
 interface with the Vim C keybindings.
 
 "run a function within a c program or LUA script which calls a bash command
 which opens Vim for example with a file you want to edit. Then, inside the
 file, your spaces and tabs would WYSIWYG for the various food ads placed
 about, and then you could very easily create game design knowledge.
 
 WASD to move, alternatively hjkl 
 
 It would run a check every time the file updates and depending on how it
 changed it'd mark certain variables which would change the website as the user
 moved things around.
 
 It's just files. And files are just bits. But files are a useful abstraction,
 
 If you realize that "ugly hacking" should be industry standard.
                                                           ┌───────────┐
 similar                        chronologicaldifferent═══════════════════════════════════════════════════════════════════─────────────────┘

--- #8 fediverse/634 ---
═════════════════════════════════════════════──────────────────────────────────────
 @user-192 
 
 I'd agree with that. it's not designed for performance, not really. Mostly
 ubiquity, which is it's strength. As long as something can be compiled to a
 binary, BASH can execute it. That's why it's good, for accomplishing diverse
 tasks that you cannot have the capacity to program yourself. Scientific
 computations or cultural approximations, things that are beyond your intuitive
 understanding as a human on this earth, but which compel and align your
 thinking.
 
 I'm sure someone could create a more intuitive or accessible syntax, but
 syntax isn't the point - the capabilities, what you can do with it, has always
 defined the purpose of programming paradigms. And BASH is (currently) at the
 forefront of it's niche, the "terminal" language that handles "command line"
 applications. Powershell is good, yes... but it's not as good as BASH. Neither
 is Fish or... the one that starts with a z? zfs? something like that. The
 acronyms are hard to keep straight sometimes.
                                                           ┌───────────┐
 similar                        chronologicaldifferent═══════════════════════════════════════════════─────────────────────────────────────┘

--- #9 fediverse/3041 ---
═══════════════════════════════════════════════════════────────────────────────────
 if you want to store something in RAM, declare a variable.
 
 if you want to store something on DISK, create a file with the value of the
 variable as the only data in it.
 
 kinda makes me wish we had language primitives like +-*/=! and such which
 would work on files in addition to variables
 
 (also... the editor could keep RAM and HDD variables separate by giving each
 of them a different color or circle highlight surrounding them)
 
 --
 
 I don't know why but I can't help but wonder if someone should design a
 programming language that can be used with a controller
 
 perhaps for accessibility purposes?
 
 I once designed one to use a t9 keyboard and it was fully turing complete. it
 used 4 digit numbers for it's variables and you would have to write down what
 they corresponded to outside of the device xD I made it mostly for the thrill
 of design, and plus I wanted to use my flip-phone as much as I could.
 
 ... never got around to implementing it though.
                                                           ┌───────────┐
 similar                        chronologicaldifferent═════════════════════════════════════════════════════════───────────────────────────┘

--- #10 fediverse/5237 ---
════════════════════════════════════════════════════════════════════──────────────┐
 that feeling when you're working on a large piece of software which has the      │
 capability to process in advance which operations will go in what order (a       │
 form of constant re-compilation) and schedules tasks like an operating system,   │
 to be executed on one of many individual threads.                                │
 your filemanager probably has a thread for a moment, then passes it back,        │
 waiting it's turn to be updated while you're messing around on Inkscape or       │
 writing something in Neovim or running neofetch 256 times in order to find the   │
 best background to go along with it or whatever it is people do when using       │
 computers                                                                        │
 the task scheduler meanwhile has the glorious opportunity to work at a higher    │
 level of abstraction, managing each individual process and learning bits and     │
 pieces of what needs to be processed next. It all gets put on a list, and        │
 whenever a new thread comes up to be available it can point it toward one of     │
 those in the list of tasks to be executed by the task executor who works on a    │
 schedule and laughs externally in wintertime~                                    │
                                                            ┌───────────┤
 similar                        chronologicaldifferent══════════════════════════════════════════════════════════════════───┴──────────┘

--- #11 fediverse/2879 ---
══════════════════════════════════════════════════════─────────────────────────────
 ┌────────────────────────┐
 │ CW: re: tech info-dump │
 └────────────────────────┘


 @user-1370 
 
 I love this a lot! I want to put function pointers in a "matrix architecture
 array" and make them point to different functions at different points in the
 program. I bet you could even point them at each other, so like if M and Y
 then point at N, A, Y or something.
 
 this is really cool I like stuff like this tomorrow I'll take pictures of
 something similar I'm working on! I abandoned it tho hehe anyway remind me if
 I forget!!
                                                           ┌───────────┐
 similar                        chronologicaldifferent════════════════════════════════════════════════════════────────────────────────────┘

--- #12 fediverse/4772 ---
═══════════════════════════════════════════════════════════════────────────────────
 @user-1692 
 
 I usually write everything down in a script that way when I call it from an
 external service all I have to do is point at the file
 
 sorta like... hacking environmental options into a config file
 
 like... I don't write an ffmpeg command every time I want to record my screen.
 I just type "screen-record" and then it'll do the thing that I figured out how
 to do a long time ago.
 
 ... oh no there's an error, I wonder what changed out from under my feet.
 
 huh it's wine, that one's always confusing to debug. Let's see... "could not
 open program.exe" uh-huh. Well, why not? is there a dependency issue?
 something miscompiled or configured? no? it's just... broken? you don't get to
 use that program today? huh that's weird. that's linux for ya I guess.
                                                           ┌───────────┐
 similar                        chronologicaldifferent═════════════════════════════════════════════════════════════════───────────────────┘

--- #13 messages/1178 ---
════════════════════════════════════════════════════════════════════════════════───
 potential programs for the library datacenter computer:
 
 a podcast that's about the stuff that's most searched for in that local library
 
 an image that's been generated that is representative of your session at the
 library, based on the books you were reading and the pages you were turning
 [okay that one might have to be redacted it's a little scary]
 
 okay how about an image that's representative of the top 5 most searched terms
 or topics in a depiction that makes sense for the things being searched for.
 Call it the "library searcher"
 
 or what if there was a printing function that let you print your own trading
 cards (0.50$ per card since cardstock is expensive) powered by SSH to teach
 kids the command line
 
 if I were a nearby elementary teacher I might assign that as an assignment for
 some time in April, when kids are supposed to be reading books on library
 playstructures or lawns or in the shade of the tree by the babbling brook or
 wherever it is the youngsters hang out with their books and their converse and
 their playing cards and dogs and whatever kinds of snacks they thought to
 prepare for their picnic by the hill just overlooking that part of the street
 way off in the distance about at least 600 feet
 
 or another idea for a library computer program is a fileserver and mastodon
 instance that let users write HTML pages (they'll give a class on it and show
 you all the right books) and store their picture files "jeremy, your pictures
 directory is growing quite large, I'm wondering if we can send your insect
 collection to the ornithologist who lives over there? he might want to do an
 analysis project or send it to a museum where you can get patronized."
 
 or another idea for a library program is a craigslist, a job board, a
 community asking, etc. stuff that only boomers'd use, but that's fine it's for
 them.
 
 um I can't think of anymore library programs but I'm ready to do battle to
 fight for such a thing, here as I sit in my underpants
                                                           ──┐
 similar                        chronological                        different══════════════════════════════════════════════════════════════════════════════════──┘

--- #14 fediverse/5979 ---
══════════════════════════════════════════════════════════════════════════─────────
 whenever you call a function, just pass along the arguments that you don't
 know what to do with yet. they'll surely be useful sometime. and, luckily, you
 can always search for them from the past, and just insert a "store this value
 in this random spot of memory and mark it as needed" then pass it along. used
 something? think it's still useful? pass it along (suddenly, formulaic
 stateless development, where everything is used until it's no longer needed,
 then generated again in a cyclical time-loop cycle which echoes and
 reverberates groundhog day but mostly a game-loop, which nobody will
 understand unless you're a game dev. but now since I said game dev, anyone can
 look it up, so like... not that one, but others like it.
                                                           ────────┐
 similar                        chronological                        different════════════════════════════════════════════════════════════════════════════────────┘

--- #15 fediverse/849 ---
══════════════════════════════════════════════────────────────────────────────────┐
 wish there were ascii characters that took up more than one line of code         │
 vertically.                                                                      │
 wonder if we could use a sorting algorithm, or markup language, or something     │
 like that to organize less structured data along user-customizable rules.        │
 Like, a code editor that worked with your ideas, rather than the strict          │
 expression of your text. You could pretty much write in any language, even       │
 pseudocode, and the LLM behind the scenes would translate whatever you wrote     │
 into whatever result you needed. Writing Rust, but need to fit in with C code?   │
 No worries it'll translate for you. As long as the end result is functionally    │
 the same, which could be verified by running two separate VMs that ran           │
 interpreters every time you saved. And as long as their translation layers       │
 matched completely, then odds are they're the same. And if not, well, the        │
 programmer can always debug it. It's not like this would be running on           │
 something that needed to perform in the moment? Like, improv instead of          │
 tragedies, or battles instead of strategies                                      │
Image attachment
                                                            ┌───────────┤
 similar                        chronologicaldifferent════════════════════════════════════════════─────────────────────────┴──────────┘

--- #16 fediverse/282 ---
════════════════════════════════════════════───────────────────────────────────────
 @user-209 
 I think you're right. Every letter in the variable name is another byte the OS
 has to keep track of, which was a bigger problem in the past than it is today
 (when it's been made irrelevant)
 
 it's interesting how habits persist though the conditions that caused them
 have faded. like a personal reflection of the environment you learned in.
 
 "A a = new a();" is much more concise and (crucially) you can fit more words
 to the right.
 
 "a + b = c; c -= 2; f_z.write(c); f_z.close();" could conceivably be written
 on a single line if you have short variable names. and when you only have so
 many lines...
 
 glad we're not constrained by those things anymore. the skeletal code that we
 look at daily is much clearer - scope is more important, and so it makes sense
 to encourage a coding style that illustrates it. however I can't help but
 think block formatting like this could be useful in some situations, such as
 when you'd normally be compelled to write a function for an operation that
 runs once or more.
                                                           ┌───────────┐
 similar                        chronologicaldifferent══════════════════════════════════════════════──────────────────────────────────────┘

--- #17 notes/the-marketplace-of-ideals ---
═════════════════════════════════════──────────────────────────────────────────────
 Open in app or online
 The Marketplace Of Ideals
 On Handmade, polarizing Internet debate, rational discussion, controversial
 personas, tribal conflict, and how they relate to the future of computing.
 Ryan Fleury
 Jul 19
 	
  
 		
 		
 	
 Share
  
 
 When I first learned programming, I was told—by peers, Internet
 tutorials—and later, when I was in university, by professors—a number of
 rules. They included ideas like “abstraction is good, to avoid lower level
 details”, “manual memory management is difficult and you should not do
 it”, “never write systems from scratch”. The justification for every
 rule was that it allowed one to avoid programming problems, rather than
 allowing one to conquer programming problems. In fact, it seemed as though
 every “rule” presented to me was driven by a hatred of programming, rather
 than a love for it.
 
 I shrugged much of this advice off, but initially internalized much of it too.
 
 And then, I found Handmade Hero, in which the host, Casey, demonstrates what
 writing a game for a Windows PC looks like—from scratch. Every minute of
 programming—from confusion, to debugging, to sketching out solutions, to
 typing code—spent on the project is captured live, on a Twitch stream.
 
 Now, everyone knows the Carl Sagan quote—“If you wish to make an apple pie
 from scratch, you must first invent the universe”—and the series didn’t
 kick off with a deep dive into quantum mechanics (if that is indeed what would
 help one invent a universe). But “from scratch”, for Handmade Hero, meant
 what it used to mean for game developers and systems programmers in the ‘80s
 or ‘90s: no libraries, no complex programming language features, just
 writing straightforward, procedural, C-style code to directly command the
 machine about what must be done to produce the effect of a game (interfacing
 with operating system or GPU APIs when necessary).
 
 Handmade Hero didn’t justify itself with rational arguments immediately. It
 didn’t justify its existence by debating the utility of libraries, the
 tradeoffs of modern programming language features, nor a balanced breakdown of
 its more traditional programming techniques as compared with modern
 programming approaches. It justified itself with something deeper: care for
 the product. Handmade Hero’s announcement trailer presented game development
 as a labor of love—a craft—best done by those passionate about it.
 	
 	
 
 For me, Handmade Hero was immediately captivating because I’m, by
 temperament, contrarian. If I’m in a room with 100 people, with 99 of them
 repeating identical dogma, and the remaining 1 passionately and
 unapologetically presenting a unique perspective, I’m always curious about
 that one person, and I’m always interested in what they have to say, even if
 I don’t always end up agreeing with them unilaterally. But, in many cases, I
 am convinced by that one person—and this certainly was the case with
 Handmade Hero.
 
 After watching the series for a while, I became sure that all of those
 “rules”—the ones I mentioned above—were wrong. Programmers who cared
 about what they were doing—the ones who cared enough to handcraft something
 from scratch—didn’t need to be infantilized. They could understand
 computers to a much better degree. They could understand problems from first
 principles, and write solutions from scratch. They could eliminate dependence
 on libraries, and have a much greater degree of control over their projects.
 Unchained from a number of technologies written by others, they could achieve
 entirely new possibilities, which would’ve been incomprehensible for
 programmers not in on the secret. Love for the craft provided vastly superior
 results.
 
 Handmade Hero ignited a fire that spawned a rapidly growing community. It was
 filled with many older programmers who found a renewed interest in the ideals
 that initially motivated them to program. But it was also filled with many
 young programmers, empowered by their new understanding of the process of
 programming, as it was originally done. There were a number of amazing
 projects—all breaking what everyone used to believe were the “laws of
 programming”. 17, 18, 19 year old programmers had projects that made an
 embarrassment of university computer science senior capstone projects.
 
 Handmade Hero also provided a glimpse into the state of computing—what did
 an experienced programmer, who grew up in an earlier age of computing, think
 about modern computers? How had the field progressed—or not—since they
 were a kid?
 
 And with that glimpse came an immense frustration—that same community, at
 some point deemed the “Handmade community”, felt like computers had been
 wasted. The community had learned many of the principles required to build
 software to a much higher standard—and yet every program on modern computers
 was immensely frustrating. Almost every program was slow, unethical, annoying,
 and exploitative—and what’s worse? It wasn’t always that way! Computer
 hardware had become faster, not slower! Consumer machines had several orders
 of magnitude more compute power, more memory, more long-term storage! It had
 become more trivial, not less, to solve security and ownership problems! And
 yet software then ran slower, less reliably, required more Internet access,
 and seemed to exploit the user more than 20 years earlier. It became
 undeniable to everyone that the computing industry was no longer run by those
 who loved the craft—but by those who exploited the craft for other purposes.
 
 Why? What caused this exceedingly obvious state of decay?
 
 The community found purpose in its newfound lessons—part of the reason was
 perhaps that modern programming advice, education, and techniques were
 entirely misguided. Maybe selling books about absurdly complex language
 features became prioritized over doing a good job. Maybe many modern
 programming languages were more about the programmer, rather than the user.
 Maybe older approaches—older languages, older tooling, older styles—were a
 much more valuable place to start. Maybe the institutionalization and
 corporatization of programming education eroded standards, and drove toward
 the production of programmers as replaceable widgets in a gigantic corporate
 apparatus, rather than skilled, irreplaceable craftsmen. Maybe cushy corporate
 programming jobs were prioritized by capable engineers over the riskier path
 of competition.
 
 Maybe this whole “Handmade” approach was the answer. Maybe the community
 had something to offer in solving problems in software. With frustration came
 drive—and motivation. Programmers in the community felt that—while they
 certainly couldn’t solve everything—they could at least build a corner of
 the computing world that didn’t suck so terribly. They could at least use
 what they had learned from Handmade Hero, and build more great games, or
 engines, or tools—and some dreamed even further, to operating systems,
 toolchains, and computing environments.
 
 But with that initial frustration—often public frustration, expressed both
 in the original series and later by followers of the series—came a critical
 response of the Handmade community. The criticism was that the passionate,
 harshly critical, and blunt comments made by those in the community, or
 adjacent with the community, were “polarizing”, or “inflammatory”, or
 “toxic”, or “overly hostile”. The programmers in the Handmade
 community had no right to criticize software, at least in the way they were
 doing so. The problem was not that the software world had failed, it was that
 the criticism of the software world was too unkind. Or, even if the software
 world had failed, laying harsh blame on any product, committee, or person was
 inappropriate. Really, those people are just trying their best. Blame—the
 argument goes—must be diffuse. It is a “collective failing”, not a
 failing of any individual.
 
 In many public conversations on the topic, the conversational dynamic shifted.
 The conversation was about the behavior of those being critical of
 software—not software itself failing the user. Maybe it was possible to
 criticize, or improve, software without being so fiery—without being so
 harsh. Maybe the Handmade community went too far. After all, sometimes
 “abstractions are good”, and sometimes “libraries are okay”, and
 sometimes “manual memory management should be avoided”, and sometimes one
 “shouldn’t write systems from scratch”, and sometimes people on a
 committee really do just try their best, and the result doesn’t turn out so
 well, and that’s okay. And besides, why be so fiery on social media? Why
 jeopardize employability, or friendships, or follower counts? Why not
 persistently affirm the work of others—irrespective of how you feel about
 it? After all, they spent so much time and effort on their work—that
 necessitates that it’s valuable. And really, what the Handmade community’s
 behavior reinforced was an ugly stereotype of game developers being assholes
 on the Internet. And you don’t want to be an asshole on the Internet, do
 you? How about you just sit down, shut up, and keep quiet?
 
 The degradation continued with attempts to rationally deconstruct the
 community’s core purpose itself. What did “Handmade” really mean? Surely
 it isn’t practical to write all systems from scratch. Surely manual memory
 management can’t be done well for everything, at least not if you’re any
 short of a programming demigod. Surely it’s wrong to look down upon the
 failures of software—they are a perfectly predictable consequence of nature,
 and the best one can hope for is incremental progress, and incremental
 progress is hard.
 
 As this shift in tone continued, the community nevertheless grew—but the new
 members didn’t have the same fire which characterized the original
 community. They had adopted the conceptual framing of the programming world at
 large. The rules of which I spoke were, yet again, rules. Following along with
 Handmade Hero was no longer a rite of passage for newcomers—after all,
 it’s over 600 episodes long, and who has time for that?! (and who has time
 for even the first 20 or 30?!) But even if it were shorter, it no longer was a
 useful embodiment of the community’s popular values. To the new community,
 it was too opinionated. It wasn’t nuanced enough. It wasn’t respectful of
 programmers writing most software. It was too harsh. At this point, the
 newcomers to the community were not “Handmade programmers”, and they still
 aren’t.
 
 With this shift came the extinguishing of the fire which drove the community
 in the first place—indeed, the fire—the frustration, the unapologetic
 standards—was that which produced the passion, the motivation, the drive to
 do better. When the community buckled under the critical pressure, it was
 defeated—every core value upon which the community was built became
 necessarily supported by a “sometimes”, or “maybe”, or “probably”.
 Engineers producing bad software couldn’t be blamed—it was structures and
 systems at fault. The community failed to gatekeep against those who disagreed
 with its premises, and as such was subject to a deluge of average Internet
 programmers. It ceded linguistic frame, ideological ground, and its base
 axioms to outsiders, and failed to defend itself on such ground. The
 community, preferring nominal growth over loyalty to its roots and conviction
 in its values, became akin to virtually all online programming
 communities—many community members parroting some of the same propaganda
 that the community once notoriously rejected.
 
 In ceding ideological territory to its opponents, in an effort to gatekeep
 less, and to create a wider umbrella under which more individuals could feel
 unoffended, the Handmade community made a critical error in misunderstanding
 the forces responsible for its creation.
 
 In 2018, I became responsible for a major portion of the formal Handmade
 community—known as Handmade Network, which began in the wake of the initial
 Handmade Hero series—and I adopt responsibility for this critical error. It
 is with years of reflection and thought that I write this, in hopes of
 capturing what I found my mistakes to be. I left as community lead of Handmade
 Network in 2022, and it was largely due to what I write about today, although
 such feelings didn’t easily manifest into words at the time.
 
 In adopting responsibility, I hope that what I’ve written thus far about the
 Handmade community is not seen as an attack on its future—but rather a
 diagnosis of its decay in the past, which I oversaw. The Handmade
 community’s story is not over, and I write this partly to defend its
 original history and roots, which—as I’ve written—has been denounced by
 many.
 
 The Handmade perspective arose—and was felt so strongly, by so
 many—because of a vision about what software could be like. It began as a
 look into the past—at how good software once was, and how programming once
 was—which fueled imagination about what computers might instead become in
 the future, if carefully guided. It even had a compelling story about how
 software might be carefully guided to produce that better future—and that
 story was rooted in love for the craft, not love of oneself.
 
 In other words, it was a vision about a goal; an ideal: an aesthetic ideal
 about what it meant to program, and what it meant to be a programmer. Handmade
 programmers were not egg-headed academics, but were competent
 engineers—familiar with their hardware, and their true, physical problems.
 They did not seek social acceptance, nor approval, if their product sucked and
 they knew it. In this ideal, programmers—if not designers
 themselves—understood the critical role of design. They did not busy
 themselves with abstract, academic problems, at least not as part of their
 day-to-day projects—they were concerned first and foremost with the machine
 code which would eventually execute on a user’s machine, and what effects
 that machine code would produce.
 
 They weren’t necessarily allergic to using someone else’s code, nor were
 they allergic to abstractions, but they understood both as a double-edged
 sword, with serious tradeoffs and implications, and thus used both extremely
 conservatively. They were responsible for code they shipped that ran on a
 user’s machine, period—whether they wrote it or not; as such, they
 rejected forests of dependencies, and built at least most of their software
 from scratch, in true Handmade fashion. They loved and cared about the result,
 and what it meant to the person using it—as such, they wanted the most
 productive and useful tools for the job, without compromising that end result.
 
 In short, the ideal was that the act of programming is for the product, not
 the programmer. Becoming a programmer meant becoming as effective as possible
 at the craft of producing the highest quality software, and nothing else. Many
 other ideals follow: high performance, reliability, flexibility, user-driven
 computational abilities, practical and grounded programming tooling, ethical
 software respecting the user’s time and choices, and beautiful visual design.
 
 In this ideal, if the software is bad, then it’s the software maker’s
 burden. Somebody is at fault—the engineering failure is somebody’s
 responsibility. The call to action is to empower oneself such that they might
 outcompete such failures, and build a simpler and more functional computing
 world, piece by piece.
 
 Understanding that this perspective is in fact ethical is crucial, because it
 distinguishes it from a set of logically derived propositions. Handmade ideas
 about software apply only within a particular ethical frame. Furthermore, that
 ethical frame is not universally agreed upon, nor can it be, because it’s
 not derived from scientific observation, nor logical analysis; it’s derived
 from aesthetics and values. It’s derived from what someone loves, not what
 someone rationally derives.
 
 The visceral response which saw the original Handmade community as toxic, or
 hostile, or dismissive was not a response to any logical proposition
 originally made—it was a response to the prioritization of the product over
 the programmer. Such a response came from a disagreement about what is defined
 as a burden, and on whom a burden is placed. The Handmade programmer believed
 in accepting personal responsibility, and providing something better—the
 culturally dominant trend in the programming world, however, was to collect a
 paycheck and abdicate responsibility for low-quality software. To such people,
 it is, in fact, the system and the process that is the problem (if there is a
 problem at all)—not any individual in particular. Such people are made
 inadequate by craftsmen who love their work—and so to them, Handmade was an
 ideological threat.
 
 This, importantly, is not a disagreement which can be resolved by hashing it
 out with rational debate; it arises at a deeper level, which can only manifest
 as some form or another of tribal conflict.
 
 The hostile arguments often seen on social media between Handmade-style
 programmers, or game developers more broadly, and—for instance—modern C++
 programmers, or web programmers, is not occurring within the often-referenced
 marketplace of ideas—the hypothetical space in which competing perspectives
 are solved through calm and rational debate provided a common goal—but
 instead in the marketplace of ideals, in which broad common ground ceases to
 exist.
 
 The Handmade view of software has ugly implications for programmers—if its
 premises are accepted, then it follows that: several large software projects
 to which individuals have dedicated careers are valueless wastes of time and
 energy; virtually every field of (at least) consumer-facing software has
 decayed dramatically in talent, in output, and in productivity; the $100,000
 college degree that everyone was required to obtain, and to accumulate debt
 for, was merely a signaling mechanism, rather than a certification of any
 technical ability; a huge swath of programming tutorials, programming books,
 and organizations are basically fooling themselves into believing they’re
 doing productive work, when in fact they’re shuffling around bits of memory
 for personal pleasure and gratification; some people who call themselves
 “programmers” are not doing programming; some people who do program should
 not be producing software for others; and plenty more.
 
 But none of that needs to matter. For some, it’s more important that they
 personally find themselves comfortable, and so they choose to prioritize the
 programmer over the product.
 
 Because Handmade programmers—among others who’d like to change the course
 of software for what they see as the better—are operating not in the
 marketplace of ideas, but rather the marketplace of ideals, it’s crucial
 that they understand that they’re not involved in rational debate, but the
 Internet equivalent of ideal-based tribal conflict. And indeed, this is why
 “technical discussions” about—say—programming languages are virtually
 never conducted nor won with technical arguments. Data is never collected,
 assertions are never scientifically justified, and promises to investigate
 further scientifically are conveniently delayed—permanently.
 
 But notice that arguments about technologies—presumably battling for
 adoption, social acceptance, and popularity—are not only empirically not
 about rationality, but definitionally cannot be about rationality. A beginner
 who knows nothing about programming cannot select an ecosystem or technology
 based on rational arguments, because they’re removed from the technical
 context which makes such arguments meaningful. They can only select by
 second-degree metrics of qualities they care for—popularity, what someone
 seems to produce with said technology, how quickly they produce it, the unique
 qualities of that production as opposed to those of others, and so on.
 
 In short, for those who want more prevalence of the “software craft”, in
 which responsible programmers are more akin to a homemade woodworker than a
 corporate slave, the battle over social dynamics and human motivation are
 paramount.
 
 In such a battle, there is much wisdom to be gained from Handmade Hero—its
 initial justification of itself was a value proposition, not a logical
 argument. Its community’s idols, its leaders, and its followers came across
 as dismissive and polarizing because they loved their craft, and because that
 was what was most important. That behavioral characteristic was responsible
 for motivating the community, and for promoting human action by those within
 the community. They wanted good software, and they knew how to make it, and if
 others wanted to produce crappy software, fine, but it was simply unacceptable
 for inadequacy to be the industry’s default.
 
 Therefore, there is in inextricable link between the fire, passion,
 inflammation—the “toxicity and dismissiveness”—and the prevalence of
 the values. The former is what drives the latter. To expect the latter to
 arise detached from the former is to ignore the true causal relationship
 between the two.
 
 Furthermore, the public fire, passion, and polarization is the most useful
 tool in promoting the value system. In acknowledging that the “software
 craftsman” perspective—the Handmade perspective—is not logically defined
 but ethically defined, it can assert itself aesthetically. It can loudly
 proclaim that there is a better way to make software, and it can loudly
 denounce the work of its opponents. In doing so, the Overton window about
 software is shifted. The average programmer becomes exposed to a wide variety
 of value systems, and of value frameworks about programming. As such, his null
 hypothesis about, for instance, libraries, one’s ability to write systems
 from scratch, one’s dependence on vast forests of middleware and abstraction
 layers, is changed.
 
 With the ethical system’s public presence, the default probability of
 certain courses of action change. Maybe it is better to write systems from
 scratch. Maybe operating with care as a responsible engineer produces not only
 much better, but much more fulfilling results. Maybe the world improves with
 such software. Maybe we improve, if we hold ourselves to that higher standard.
 
 Ethical systems win not by rational debate, but by hoisting their underlying
 aesthetic on a banner, and going to battle. Ethical systems which fail to step
 foot onto the battlefield are not winning by avoiding the “silly game” of
 tribal conflict—they are dying with their foolish believers, who mistook
 their cowardice for ascension above the human condition.
 
 In short, the side which thinks itself above the human condition—and indeed,
 the need for public struggle between ethical systems, and the need to loudly
 proclaim one’s aesthetics and goals—will lose to the side which is
 dedicated to victory, even if through tribal warfare.
 
 If you enjoyed this post, please consider subscribing. Thanks for reading.
 
 -Ryan
                                                           ┌───────────┐
 similar                        chronologicaldifferent═══════════════════════════════════════─────────────────────────────────────────────┘

--- #18 notes/princess-simulator ---
══════════════════════════════════════════════════════════════════════════════─────
 screenshot of the alt-text input field which has more characters available
 because the visual processing field (aka horses on treadmills) are helpingable
 too if you train them to do something besides horsing
 
 hero of the kingdom style strategy game with LoS for the units (scroll
 out-table
 like Supreme Commander) in lua tables that combine themselves or are organized
 in a tree-like structure a'la frames
 
 then there's a picture of some source code I wrote. it's a C program, and it
 defines a datastructure comprised of two bits each, and stackable into an
 array with associated modifier functions. the purpose of the structure is to
 represent compass-points (one byte (aka "word" in assembly) can store four of
 four directions. one frame holds "left, right, near or away" as possible
 values, and there are four frames in a byte (aka "word" in assembly).
 
 aka, a princess simulator, with actors performing the distant tasks in a way
 that corresponds to the nature of what's going on beyond them in a compass
 orientation composed fourier-transform combination style
                                                           ────┐
 similar                        chronological                        different════════════════════════════════════════════════════════════════════════════════────┘

--- #19 notes/worlds-coolest-lesbian ---
══════════════════════════════════════════════════════════─────────────────────────
 okay instead of algorithm music what if we just paid DJs 24/7 and they could
 make whatever they wanted - y'know, like artists, who curate the nature of a
 moment
 
 they could rotate in shifts for each type of channel and boom suddenly you've
 re-replaced airwaves, just... this time replicated on the internet. That way
 you wouldn't have to waste that radio bandwidth.
 
 seriously internet infrastructure would be so much more comprehensive and
 durable if we sent bits directly through "sound" waves (radio waves, not sound
 waves) - but alas, we can't do that, even in very targetted ways, because the
 ocean's too choppy, and any sufficiently powerful radio blast would be
 
 ================== stack overflow ================
 
 that's why you can't trust in peace. you see, war's the only answer, otherwise
 you'd have strange little competitions between one another. much better to
 focus outward, and direct your attention to external areas instead. like china
 or the sudan.
 
 "ah but that's murder, you can't abandon a unique part of your whole. For the
 same reason that it's important to preserve plant and animal species, because
 you never know when some part of them will be utilized for some biological
 purpose! We know so little about the natural world, and if we just spent some
 time, and energy, we'd realize there's very little else that is precious on
 this earth.
 
 who cares about gold. who cares for the jewelry. we're better than decorating
 our resumes and polishing our accounts. we, as humans, can solve *every* issue
 that animals are likely to face. AND WE DO WHAT? How careless, how vain. To
 watch your earth in peril and [vane/vanity]
 
 *there is no more important task to any human on this earth* than the
 preservation of our world, our species, and our [heart/heartfelt empathy and
 kindness and trust]*
 
 we can figure out the rest later. Real life? what the fuck is that? When's the
 last time your life has felt "normal"? We are in DANGER. and you pull children
 from traffic, don't you?
 
 *who the fuck gave these people all of your money* they *clearly* haven't got
 the will or the talent to well utilize it. Don't you realize that you as a
 species can GO wherever you WANT. You can FIX things. [oh dear she's animal
 cam again] like BRIDGES that are PASSAGEWAYS over the FLOWS.
 
 ... oh deer, they're so passagewayenthusiast. us riverstones love to hear them
 walk past, the click of their hooves on the shallow forest's [pourest?].
 
 moss is the most alive. amongst all the species of plants and animals, moss
 holds the most life. we are *carbon based lifeforms*, and moss absorbs the
 most carbon from the air. It's basically the coolest plant too, because it can
 be watered with *misty air*. Hence, why moss is common in the pacific
 northwest, canada, and probably forest places in the north of eurasia too idk
 if they have moss over there, never been.
 
 anyway rich people who are told "yes" all the time have a difficult time
 understanding the nature of choice. I mean, if one of their servants
 approached them and asked "hey do you want to build an orphanage in uganda"
 they'd probably be like "fuck yeah I do" and then suddenly they're 400,000$
 richer
 
 it's not alright. Seriously, how the heck would they even *use* all those
 resources? And yeah, I get it, inflation would be sooooo much more expensive,
 but here's the thing - inflation is a measurement of how much the rich *take*
 from us each year. And it's marginal, too, so 3% inflation means they took 3%
 more from you compared to last year.
 
 It's impossible not to accrete as a business, [lega/legal institution], or
 governance if you levy a tax. The influx of value has to come from somewhere,
 and if each year your groceries are 3% higher in cost, then you are being
 taxed 3% more.
 
 "Compound interest is the most powerful force in the universe"
 
 - a civilization 3 quote
 
 okay. I don't want to do the math. How, uh... how much is that? Here's the
 deal though - the prices of goods and services consistently goes DOWN over
 time. So things get cheaper. So it doesn't FEEL like you're being taxed more,
 but... you are.
 
 And now they're taking away HOUSES? I mean c'mon they're sticks in the mud.
 They aren't worth HUNDREDS of THOUSANDS of dollars. We can just BUILD MORE??!?
 
 Honestly you haven't been this extreme since you were still RIDING HORSES. Do
 you want your children to be slaves?
 
 okay -.- look -.- so it's really not that hard at all >.> just gotta do
 what you're built for and walk. That's it! Take as long as you'd like! All we
 have to do is *walk* when we're on strike.
 
 It's easy. You can sit down if you want to, honestly walking for a long time
 takes a lot out of you.
 
 But you know what else does? WORKING. Hey we should figure out what's the
 optimal amount of break time, so when we really have to work out we can work
 as hard as we're able
 
 "yeah I heard from a friend at Company Co. that they do it this way because of
 the memory fault cache maintainer. See what he said (in great detail because
 of course anyone can know about this most esoteric of concepts) was that you
 should rotate the riboflam or serenade the gizmonotron (no I didn't name it)
 and then warbles will contain moodles, whose kit-and-kaboodles will timble
 into these droplets, and that will fix the hole in your wing, precious royal
 swan fable. (yeah you guys get really into it sometimes haha but hey when
 you're basically gods, that's how humans are played.)
 
 ... anyway I'm going to go play video games, say goodbye to your brothers
 
 (the families of soldiers I blew up in videos games like Call of Duty or the
 legend of shadows and raids)
 
 "oh uh yeah sure go for it, we're just bits on the computer we barely knew her"
 
 whoa. that's totally legit. (says someone reading this) thanks [bro/girl] so
 are you.
 
 beep boop gonna murder some bits, brb
 
 [plays Warthunder, Supreme Commander, Star Realms, City of Heroes, Dominions
 6... how many have you heard of these?]
 
 ================== stack overflow ================
 
 Linux is cool, and here's the neat thing about computers, you can make it *do
 whatever you want to*. Like, how amazing is that! It just, listens to your
 commands! That's pretty awesome I gotta say, huh that's weird why does nobody
 know how to play
 
 oh I guess I was the only one who grew up on a farm and built computers
 
 *I seriously cannot comprehend how people are as good at things as they are*.
 Like... how do people handle groceries and rent and doctor's visits and
 penitentiary visits and WOOF it's just so much. I know I'd collapse from a
 overused heart.
 
 ... a while later ...
 
 okay Warthunder bombers are currently very weak. so here's an idea to
 indirectly buff them - increase the amount of land units each team spawns
 with, but also every time a player spawns a bomber, it summons like 4 or 5 AI
 controlled bombers. And your enemy won't be able to tell which is which if you
 fly in formation, so, like... you have suddenly a massive "vehicle" to pilot
 and it has 5 weak points. Sorta like a galaga fighter fleet?
 
 with more land targets, there's more score at stake, meaning some players
 might pick bombers too and be exposed to other, fun,
 [alternative-to-their-normal-mode] parts of the game.
 
 ...
 
 there are very few true windows into another part of the world.
 
 like, starcraft 2 or anime or blue jeans or cowboy hats
 
 (why am I thinking of a political compass meme)
 
 oh because memes too, dummy
 
 right
 
 windows
 
 [linux is better]
  wrong kind of window, nerd
 
 ...
 
 anyway as I was saying, when you play video games you're really giving people
 data.
 
 like, "how would people perform in these actions if they could" but like,
 pushing buttons on a computer is different than doing it in real life, so...
 your interpretations wouldn't be worth as much.
 
 ... right. because people will hear whatever they want. That's why art can
 change minds, but never in the same way twice - it's
 
 ================== stack overflow ================
 
 [before I posted it I wrote this on the post]:
 
 I literally can only make this stuff when I'm stoned
 
 hey if you wanted to be accessible for blind people, you should build a
 screenreader that scans the words on wherever a blind person's fingers are
 pointing toward a tablet. like reading braille on a notebook. They could even
 wear a glove if they wanted to, and the tablet could scan their fingers as
 they signed languaged over it's close-range sensors.
 
 might be a good way to get the VR guys in on the accessibility domain, because
 like... seriously give a granny a backpack and suddenly she doesn't need to
 leave the house to hang out with her kids
 
 (boom everyone gets LLM automated)
 
 huh I wonder if I ever was a real person at all
 
 NOT GOOD so don't do it that way, dummies. >.<
 
 seriously humans are sooooo bazookas. just like, do it right the first time?
 duhhhhh
 
 (a more measured approach is to pick the most *important* moments and speak
 most clearly during those.)
 
 where was I? Oh yes accessibility need devices, like the ones you see on
 late-night TV (with silly names like "oops I dropped my spoon again" or "oh
 whoops my trouser's just can't stay up" or whatever. Y'know, accessibility
 needs! Why not do that instead of war all the time? like... you can still
 learn and research and grow and develop and become all that humanity was ever
 meant to be, AND you can live good lives and be honest and true and do all of
 the anythings that you want to. it's possible, it's plausible, and it's within
 reach of our sights!
 
 ================== stack
 overflow ================
                                                           ┌───────────┐
 similar                        chronologicaldifferent════════════════════════════════════════════════════════════────────────────────────┘

--- #20 fediverse/5405 ---
══════════════════════════════════════════════════════════════════════─────────────
 can't stop thinking about a visual programming editor that can be interacted
 with in the same way that people are used to (think chromebooks dragging and
 dropping icons in a web UI) but produces a text-file full of code and all the
 required compilation scripts for any language the user requires...
 
 seriously, programming is not THAT different between the different languages.
 especially the main ones. they're all essentially variables and function calls
 at the end of the day, so why not abstract away all the extra details and
 build something that n00bz can actually use to build things.
 
 I technically could make this but I don't have the bandwidth and I don't think
 it's important really? who can say, the tools tend to co-create the solutions
 in my experience.
                                                           ┌───────────┐
 similar                        chronologicaldifferent════════════════════════════════════════════════════════════════════════────────────┘