=== ANCHOR POEM ===
════════════════════════════════════════════════════════───────────────────────────
 ┌───────────────────────┐
 │ 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══════════════════════════════════════════════════════════──────────────────────────┘

=== SIMILARITY RANKED ===

--- #1 fediverse/3680 ---
════════════════════════════════════════════════════════───────────────────────────
 it's probably a good idea to write pseudocode, then real code, instead of
 starting with real code, and bugfixing something incomplete and more difficult
 to reason with.
 
 unless you write real code easier than pseudocode. idk do what works for you.
                                                           ┌───────────┐
 similar                        chronologicaldifferent══════════════════════════════════════════════════════════──────────────────────────┘

--- #2 fediverse/1225 ---
═══════════════════════════════════════════════────────────────────────────────────
 @user-883 
 
 don't worry I can sift through junk. I'll write my own using yours as a
 reference to debug why mine isn't working. "oh probably because I didn't do
 this part here"
 
 also, bad news. Guess I'm doing C programming. What should I make? I'm
 thinking Tic Tac Toe or maybe a really basic Asteroids or something
                                                           ┌───────────┐
 similar                        chronologicaldifferent═════════════════════════════════════════════════───────────────────────────────────┘

--- #3 fediverse_boost/5981 ---
◀─[BOOST]
  
  Some programming languages I’ve tried and liked and would recommend to others:C (especially C89/C90/“ANSI C” and C99)posix shell, bourne shell, and similar shells (bash, ksh93, mksh)PHPScheme (depending on the vibes I’m getting from someone I might recommend)Common Lisp (Same caveat as Scheme)Emacs Lisp (Same caveat as Scheme and Common Lisp)Motorola 68000 assembly  
                                                                              
  Some languages I’ve tried and liked but would not recommend to others:Hewlett-Packard RPL (Actually I might recommend it to someone but it has to be a very specific kind of person)FORTH (same as RPL)Commodore BASIC (Microsoft BASIC) for the VIC-206502 assembly (so bad it’s good)Z80 assembly  
                                                                              
  Some languages I’ve tried, did not like, and would not recommend to others:COBOL (maybe I could get used to it? I can at least read it. Just it’s so painfully like writing SQL statements without being as generally useful as SQL database queries)Kotlin (Like that feeling when you read words that alone you understand, but together in a sentence they make zero sense)JavaClojure (a.k.a. “Let’s make Common Lisp but make it worse”)Rust (stands for “Ridiculous Use of System Time” or something as far as I am concerned, heavy on memory and storage and super slow to compile and reads like Kotlin)TI BASIC (TI-82/83/84 style; TI-89 is a little bit better but still not good)C++ (unless you’re just writing almost completely C and building it with a C++ compiler)x86 assembly (I kind of like it but mostly don’t, there are better and more coherent CISC processor ISA’s if you’re into that)  
                                                                              
  I should put Javascript somewhere, so I’ll say that it’s possible to write javascript code that I like and can read. Just no one chooses to do it anymore. There was a window between the time JQuery started to fade and all these stupid fucking “web frameworks” took off that it was somewhat tolerable.  
  
                                                            
 similar                        chronological                        different 
─▶

--- #4 fediverse/6437 ---
══════════════════════════════════════════════════════════════════════════════─────
 if I was writing a programming language, I'd name it C just to fuck with people
 
 (great, now others can decide how it's known)
                                                           ────┐
 similar                        chronological                        different════════════════════════════════════════════════════════════════════════════════────┘

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

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

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

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

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

--- #10 fediverse/707 ---
══════════════════════════════════════════════─────────────────────────────────────
 @user-524 
 
 Sometimes when I feel overwhelmed with all the boilerplate I just start coding
 and making stuff. Doesn't matter if it works, doesn't matter if it says /*
 FIXME */ all over the place, doesn't matter if it includes header files that
 don't exist yet, as long as you're hacking out the mechanics of whatever
 operations you need to perform then you can figure the rest of that stuff out
 later. The creative urge doesn't last forever, which is why projects get
 abandoned, but with discipline you can keep bringing yourself back to fix all
 the /* FIXME */'s and the compiler errors.
                                                           ┌───────────┐
 similar                        chronologicaldifferent════════════════════════════════════════════════────────────────────────────────────┘

--- #11 fediverse/2003 ---
═════════════════════════════════════════════════════──────────────────────────────
 The most important programming language to master is pseudocode.
 
 With a firm grasp of pseudocode in your toolbox, you can solve any problem in
 any language.
                                                           ┌───────────┐
 similar                        chronologicaldifferent═══════════════════════════════════════════════════════─────────────────────────────┘

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

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

--- #14 fediverse/4301 ---
═══════════════════════════════════════════════════════════────────────────────────
 @user-1655 
 
 maybe the user could tell their client what fields to expect and how to
 present them (like, a field called "memes" would be presented as a picture in
 this panel, a field called "rants" would be passed to a word-cloud function
 that extracts the most common 6+ letter words so you can tell at a glance what
 the rant is about, this other field could be for calendar invites (plain text
 of course, but interpreted by the calendar program) etc)
 
 plus, if it's encrypted with PGP keys by default, there'd be few security
 concerns. Unless your friend got hacked, or you got hacked, but, well... make
 sure everything's sandboxed and don't do any remote code execution and you're
 good, right?
                                                           ┌───────────┐
 similar                        chronologicaldifferent═════════════════════════════════════════════════════════════───────────────────────┘

--- #15 fediverse/2638 ---
══════════════════════════════════════════════════════─────────────────────────────
 I really do believe that you can write any computer program you'd like with a
 combination of Lua, Bash, and C.
 
 Bash to start the program and enable updates / configuration, Lua to handle
 the scripting and ordering of events, and C (or Rust) to execute performance
 intensive sections. (often in their own threads)
                                                           ┌───────────┐
 similar                        chronologicaldifferent════════════════════════════════════════════════════════────────────────────────────┘

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

--- #17 messages/181 ---
══════════════════════════════════════════════─────────────────────────────────────
 I know you don't want to hear this, but there is a chance that there will come
 a time where your life depends on your ability to debug a computer without the
 internet. To set up an SSH server. To install Linux. To program in C. To do
 something else that I'm not prepared for... If StackOverflow didn't exist
 because network connectivity has been lost, could you remember syntax? Maybe
 it's a good idea to set up a local LLM that can answer basic questions about
 technology. Maybe it's a good idea to set up on your parents computer, just in
 case you have to hide out there for a couple months. Maybe it's a good idea to
 download wikipedia, just in case.
 
 If I need to use a mac, I'm screwed
                                                           ┌───────────┐
 similar                        chronologicaldifferent════════════════════════════════════════════════────────────────────────────────────┘

--- #18 fediverse/1246 ---
═══════════════════════════════════════════════────────────────────────────────────
 @user-883 
 
 hehe if I don't understand how it works it's difficult for me to use things.
 My Linux friends get so exasperated with me because I'm like "cool script
 gimme like 2 days to figure it out" and they're like "bro just use these
 flags" and I'm like "no"
                                                           ┌───────────┐
 similar                        chronologicaldifferent═════════════════════════════════════════════════───────────────────────────────────┘

--- #19 fediverse/5689 ---
═══════════════════════════════════════════════════════════════════════────────────
 why don't we make large arrays of vram that are slightly slower because
 they're farther on the circuit-board from their host and their reception at
 the processing section has to be gated such that they all enter to be
 processed at once.
 
 like that one infinite scrolling XKCD cartoon where the things move from one
 screen to the other simultaneously assembly line style.
 
 [fail safes. https://xkcd.com/2916/#xt=7&yt=35 ]
 
 if we all feel like we're doing nothing, we'll all grow tired of it and decide
 to do some prevailing. gosh I wish I wasn't so useless is code for
why don't we make large arrays of vram that are slightly slower because they're farther on the circuit-board from their host and their reception at the processing section has to be gated such that they all enter to be processed at once.  like that one infinite scrolling XKCD cartoon where the things move from one screen to the other simultaneously assembly line style.  [fail safes. https://xkcd.com/2916/#xt=7&yt=35 ]  if we all feel like we're doing nothing, we'll all grow tired of it and decide to do some prevailing. *gosh I wish I wasn't so useless* is code for
                                                           ───────────┐
 similar                        chronological                        different═════════════════════════════════════════════════════════════════════════───────────┘

--- #20 fediverse/1892 ---
═════════════════════════════════════════════════════──────────────────────────────
 ┌─────────────────────────────────────────┐
 │ CW: C-programming-and-alcohol-mentioned │
 └─────────────────────────────────────────┘


 I want to write C programs with threads and manual memory management and
 function pointers and lots and lots of arrays and I'm not even kidding
 
 ... wait a minute I literally don't have a job, why am I not writing C
 programs right now?
 
 BRB I got something important to do, where's my vodka --> pkill firefox
                                                           ┌───────────┐
 similar                        chronologicaldifferent═══════════════════════════════════════════════════════─────────────────────────────┘