=== ANCHOR POEM ===
══════════════════════════════════════════════════════─────────────────────────────
 ┌──────────────────────┐
 │ CW: pol              │
 └──────────────────────┘


 laws should have three layers of abstraction.
 
 a simple version, that you can understand and talk about on the couch.
 
 a well defined version, that explains exactly in detail how this law will be
 achieved,
 
 and a precise version, which will basically be programming in legalese.
 
 with these three layers of abstraction, all representing the same whole, it
 should be easier to contribute to a democracy.
                                                           ┌───────────┐
 similar                        chronologicaldifferent════════════════════════════════════════════════════════────────────────────────────┘

=== SIMILARITY RANKED ===

--- #1 fediverse/1810 ---
═════════════════════════════════════════════════════──────────────────────────────
 some people hear words like "datastructures" and "object-oriented programming"
 and think they're made up terms that don't mean anything important.
                                                           ┌───────────┐
 similar                        chronologicaldifferent═══════════════════════════════════════════════════════─────────────────────────────┘

--- #2 fediverse/6383 ---
══════════════════════════════════════════════════════════════════════════════─────
 nobody wants to write computer code that lets Java programs call Rust
 functions.
 An LLM is excellent for this task, since it's relatively easy busy work that
 doesn't
 reflect any meaningful implementation decisions besides "I should be able to
 call that Rust function in my Java code"
 
 In addition, it is technically efficient at it as well, because most of
 compatibility
 is matching up two sets of documentation. Easy for a text-processing machine.
                                                           ────┐
 similar                        chronological                        different════════════════════════════════════════════════════════════════════════════════────┘

--- #3 fediverse/3226 ---
═══════════════════════════════════════════════════════────────────────────────────
 if your man page is longer than a list of options and their usage and a
 paragraph or twenty of how to use the software... then you need to abstract,
 and break your code into multiple purpose-built applications.
 
 do one thing, and do it right. alternatively, do one set of things, and do
 them concisely.
                                                           ┌───────────┐
 similar                        chronologicaldifferent═════════════════════════════════════════════════════════───────────────────────────┘

--- #4 fediverse/1977 ---
═════════════════════════════════════════════════════──────────────────────────────
 functions should be forced to describe the context of why they were being
 called. I think it would help debug a lot if we supplied a reasoning for each
 and every request [function call] that we made. We might even be able to parse
 them into semantic pyramids which we could sorta use to estimate [tree-like
 scanning] how and why the program did do wrong.
                                                           ┌───────────┐
 similar                        chronologicaldifferent═══════════════════════════════════════════════════════─────────────────────────────┘

--- #5 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═════════════════════════════════════════════════════════════───────────────────────┘

--- #6 fediverse/572 ---
═════════════════════════════════════════════──────────────────────────────────────
 Hi, I'm learning about semaphores right now and trying to explain them to a
 friend. But I only sorta understand how they work - can anyone look at this
 pseudocode and tell me if I'm on the right track?
Some C pseudocode working through the semaphore design pattern. Here's the text of the pseudocode:  /* no lock example */  void start_thread(int* x) {   *x += 1; }  int main() {   int x = 0;   for (1000 times){     start_thread(&x);   }   print(x); }  /* in this case you have no idea what will print because thread A will take x and be like "ah yes it's 423" and then in the next instruction it'll be like "I'll increment this to be 424" and in the next one it'll say "okay now it's time to store 424 in the variable X" but like... there's a thousand threads all doing that at the same time, so odds are you'll have 5 that are like "ah yes this is 423 I'll set it to 424" */  /* not a good plan. Need a lock, so only one thread can use it at once. */ /* mutex example: */  void start_thread(int* x, int* x_mutex) {   *x += 1;   *x_mutex = 0; }  int main() {   int x = 0;   int x_mutex = 0;   for (1000 times){     while (x_mutex != 0){ } /* do nothing */     x_mutex = thread_id;     start_thread(&x, &x_mutex);   }   print(x); }  /* this should print 1000, but it's basically as slow as doing it single threaded. */  #define MAX 10  void start_thread(int* x, int* x_semaphore) {   *x += 1;   *x_semaphore += 1; }  int main() {   int x[MAX];   int x_semaphore = MAX;   for (1000 times) {     for (int i = 0; i < MAX; i++) {       x_semaphore -= 1;       start_thread(&x[i], &x_semaphore);     }     while (x_semaphore != MAX) { } /* do nothing */   }   int value = sum(x, MAX);   print(value); }
                                                           ┌───────────┐
 similar                        chronologicaldifferent═══════════════════════════════════════════════─────────────────────────────────────┘

--- #7 fediverse/6438 ---
══════════════════════════════════════════════════════════════════════════════─────
 why would you gatekeep content by keeping us from easily using LLMs some
 people aren't technical and still need to write computer programs because
 that's how you enlighten a people is empower them with new tools
 
 "I've never heard of that programming language, but luckily I can fit all of
 it's documentation in my context window."
                                                           ────┐
 similar                        chronological                        different════════════════════════════════════════════════════════════════════════════════────┘

--- #8 fediverse/4092 ---
═══════════════════════════════════════════════════════════────────────────────────
 why not make a unified fediverse identity that can post on whatever instance
 it wants?
 
 ... hmmm could be accomplished with a layer of abstraction. You could use a
 "fediverse client" software to enter text into an HTML page which would have
 it's own UI and stuff and would organize your accounts and instances such that
 you could mark like, 3-7 as places you'd like to put a particular message.
 Then it would just... do it
 
 l m a o spam is gonna get sooooo much worse before it gets better
 
 but trust me, we'll figure it out. And it won't be long, either. It's a
 solvable problem, we just haven't built anything to handle it yet.
 
 ... yet...
                                                           ┌───────────┐
 similar                        chronologicaldifferent═════════════════════════════════════════════════════════════───────────────────────┘

--- #9 messages/455 ---
═════════════════════════════════════════════════════──────────────────────────────
 I don't understand why modern software isn't error correcting. We shouldn't
 have any bugs in this day and age.
 
 For example, if you're missing a dependency then why doesn't your program try
 to, I dunno, download that dependency to the program's installation directory
 and use it there? Seriously there are very few problems that are unsolvable!
                                                           ┌───────────┐
 similar                        chronologicaldifferent═══════════════════════════════════════════════════════─────────────────────────────┘

--- #10 fediverse/280 ---
════════════════════════════════════════════───────────────────────────────────────
 old school programmers use short variable names because the computer monitors
 they would code on had a lower resolution, meaning fewer characters per line.
 
 why waste pixels being verbose?
                                                           ┌───────────┐
 similar                        chronologicaldifferent══════════════════════════════════════════════──────────────────────────────────────┘

--- #11 fediverse/498 ---
═════════════════════════════════════════════──────────────────────────────────────
 Wikipedia would make a lot more sense to me if they included pictures next to
 the names of every proper noun so that my pictorally oriented primate brain
 might pattern match meaning onto the visual understandings gleaned from the
 perceptual conceiving which were arrayed within and alongside the textual
 information presented to me.
                                                           ┌───────────┐
 similar                        chronologicaldifferent═══════════════════════════════════════════════─────────────────────────────────────┘

--- #12 fediverse_boost/4925 ---
◀─[BOOST]
  
  still waiting to find the energy and headspace to write an irritated blog post about why the fact that most toolchains are like 80% of the learning curve for those who are just getting into programming (especially on windows)  
  
                                                            
 similar                        chronological                        different 
─▶

--- #13 fediverse/4812 ---
═══════════════════════════════════════════════════════════════────────────────────
 ┌────────────────────────────┐
 │ CW: re: politics-mentioned │
 └────────────────────────────┘


 @user-1074 
 
 hence my suggestion for a three tier system - one of which maintains the
 current system, the next which organizes labor, and the next which organizes
 families
                                                           ┌───────────┐
 similar                        chronologicaldifferent═════════════════════════════════════════════════════════════════───────────────────┘

--- #14 fediverse/581 ---
═════════════════════════════════════════════──────────────────────────────────────
 @user-428 
 
 sometimes I think about how much more productive I'd be if I had a code editor
 that let me draw arrows and smiley faces and such alongside the code. Or if I
 could position things strangely, like two functions side-by-side with boxes
 drawn around them. Or diagrams or flowcharts or graphs or...
 
 something that would output to raw txt format, but would present itself as an
 image that could be edited.
                                                           ┌───────────┐
 similar                        chronologicaldifferent═══════════════════════════════════════════════─────────────────────────────────────┘

--- #15 messages/1129 ---
═══════════════════════════════════════════════════════════════════════════════────
 ai-stuff - this is how to program a society. (or software project) there are
 lots of other implementations
                                                           ───┐
 similar                        chronological                        different═════════════════════════════════════════════════════════════════════════════════───┘

--- #16 fediverse/2289 ---
══════════════════════════════════════════════════════─────────────────────────────
 ┌────────────────────────┐
 │ CW: politics-mentioned │
 └────────────────────────┘


 I think every law or policy should be required to be labelled as "short term"
 or "long term"
 
 the short term ones are meant to gather information, to try things out, and to
 reassess after stated conditions have been met. Ideally with protections
 against "infinite loops" - a term that any programmer will know.
 
 The long term legislation is something that can be relied on for quite a
 while. If there is enough momentum, then an alternative can be created, but
 the original must remain operational. The alternative must be "short term",
 and if it's deemed successful and does not harm the long-term it's
 contrasting, then sure yeah go ahead implement both.
                                                           ┌───────────┐
 similar                        chronologicaldifferent════════════════════════════════════════════════════════────────────────────────────┘

--- #17 messages/324 ---
══════════════════════════════════════════════════─────────────────────────────────
 The difference between front-end and back-end programming is whether or not
 you want to design abstractions or use them. Backend is all about creating
 abstract things that are networked together, while front end is about putting
 them together in a way that suits the user. Front end is collage, back end is
 pencil drawing.
                                                           ┌───────────┐
 similar                        chronologicaldifferent════════════════════════════════════════════════════────────────────────────────────┘

--- #18 fediverse/6040 ---
═══════════════════════════════════════════════════════════════════════════────────
 everyone's all against ai because it's big tech but it doesn't have to be that
 big it can be [minimized but pronounced marginalized]
 
 == stack overflow ==
 
 distributed
 
 so I think the idea is that by the time you would use AI, there's been enough
 time to rewrite the software to work on handheld laptops in a distributed way
 
 and we'd vote on what to ask the amphora of great knowledge, the answer could
 always be 42.
                                                           ───────┐
 similar                        chronological                        different═════════════════════════════════════════════════════════════════════════════───────┘

--- #19 messages/110 ---
═════════════════════════════════════════════──────────────────────────────────────
 The best way to program computers is to organize them according to their
 relations. Like, when x increases by 4 then y increases by 2 - basically, a
 math equation that you can continuously solve by calculating more and more
 comprehensively and deeply.
                                                           ┌───────────┐
 similar                        chronologicaldifferent═══════════════════════════════════════════════─────────────────────────────────────┘

--- #20 fediverse/617 ---
═════════════════════════════════════════════──────────────────────────────────────
 So much of computing is just... handling the quirks of hardware and presenting
 it to the user (programmer) in a way that is sane and makes sense, instead of
 the arcane and [nebulous/confabulous/incomprehensible] way that physical
 nature demands our absurdly potentialized computational endeavors be.
                                                           ┌───────────┐
 similar                        chronologicaldifferent═══════════════════════════════════════════════─────────────────────────────────────┘