=== ANCHOR POEM ===
═════════════════════════════════════════════──────────────────────────────────────
 @user-447 @user-192 
 
 I see, interesting. I'll look into those tables - I've been using C lately and
 I've noticed myself rebuilding several Object Oriented features.
 
 It feels a little silly every time I notice myself doing it, like "oh, I can't
 separate future paradigms from my practice"
                                                           ┌───────────┐
 similar                        chronologicaldifferent═══════════════════════════════════════════════─────────────────────────────────────┘

=== SIMILARITY RANKED ===

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

--- #2 fediverse/112 ---
══════════════════════════════════════════─────────────────────────────────────────
 I live through the moments where I find a folder of stuff I made that I forgot
 about and I can go back and see it for the first time.
                                                           ┌───────────┐
 similar                        chronologicaldifferent════════════════════════════════════════════────────────────────────────────────────┘

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

--- #4 fediverse/3495 ---
════════════════════════════════════════════════════════───────────────────────────
 @user-774 
 
 I know that when you recycle 3d printed things the color tends to meld
 together and it looks kinda meh... but hey at least it's recycled.
 
 though recycled filament is probably pretty rare still, so it's probably not
 the kind you're thinking of.
                                                           ┌───────────┐
 similar                        chronologicaldifferent══════════════════════════════════════════════════════════──────────────────────────┘

--- #5 fediverse/3487 ---
════════════════════════════════════════════════════════───────────────────────────
 @user-1218 
 
 I like to have notes for things I found that will be useful someday, but not
 today. I also throw in poetry that I write while I'm waiting for something to
 happen (or if I have an idea that I know I'll forget)
                                                           ┌───────────┐
 similar                        chronologicaldifferent══════════════════════════════════════════════════════════──────────────────────────┘

--- #6 fediverse/2922 ---
══════════════════════════════════════════════════════─────────────────────────────
 @user-192 
 
 now I want to re-implement strings as structs in C! I don't know why I never
 thought of them that way.
                                                           ┌───────────┐
 similar                        chronologicaldifferent════════════════════════════════════════════════════════────────────────────────────┘

--- #7 fediverse/5719 ---
═══════════════════════════════════════════════════════════════════════────────────
 I love dispatch tables! which is a term I just learned and a concept I have
 been using for a while.
                                                           ───────────┐
 similar                        chronological                        different═════════════════════════════════════════════════════════════════════════───────────┘

--- #8 fediverse/3134 ---
═══════════════════════════════════════════════════════────────────────────────────
 @user-1352 
 
 I like that article. I definitely fail to follow some of those principles at
 times, though never all of them at once. I can be better, as all people can.
                                                           ┌───────────┐
 similar                        chronologicaldifferent═════════════════════════════════════════════════════════───────────────────────────┘

--- #9 fediverse/1988 ---
═════════════════════════════════════════════════════──────────────────────────────
 @user-246 
 
 I once heard that Excel is a functional programming language with a tabular
 interface
                                                           ┌───────────┐
 similar                        chronologicaldifferent═══════════════════════════════════════════════════════─────────────────────────────┘

--- #10 fediverse/4804 ---
═══════════════════════════════════════════════════════════════────────────────────
 I love it when wine doesn't work because it "failed to open program.exe"
 
 ... okay, can you tell me why it failed?
                                                           ┌───────────┐
 similar                        chronologicaldifferent═════════════════════════════════════════════════════════════════───────────────────┘

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

--- #12 messages/527 ---
═════════════════════════════════════════════════════════──────────────────────────
 could give us some experience organizing small, short-term projects to
 accomplish specific goals and tasks in an ad-hoc way that relied less upon
 procedure and more on "I think so-and-so knows something about that, they were
 looking into those files and posted a breakdown of how they work yesterday"
                                                           ┌───────────┐
 similar                        chronologicaldifferent═══════════════════════════════════════════════════════════─────────────────────────┘

--- #13 fediverse/2873 ---
══════════════════════════════════════════════════════─────────────────────────────
 ┌────────────────────────────┐
 │ CW: re: unsolicited advice │
 └────────────────────────────┘


 @user-883 @user-192 
 
 I don't update my kernel more than like, once every few months, so maybe that
 would be something to look into! how scriptable is it?
                                                           ┌───────────┐
 similar                        chronologicaldifferent════════════════════════════════════════════════════════────────────────────────────┘

--- #14 fediverse/4427 ---
═══════════════════════════════════════════════════════════────────────────────────
 @user-246 
 
 I am the infohazard but I have that "automatically expand CW" post marked off.
 I like to click them each time, and with CWs it makes it easier to scroll back
 a couple months to find what you're looking for.
                                                           ┌───────────┐
 similar                        chronologicaldifferent═════════════════════════════════════════════════════════════───────────────────────┘

--- #15 fediverse/111 ---
══════════════════════════════════════════─────────────────────────────────────────
 @user-95 that's why I like programming - it's my favorite form of spelling.
 i'm not very good at remembering all the names and the numbers, but I like to
 think I can make things do a function.
                                                           ┌───────────┐
 similar                        chronologicaldifferent════════════════════════════════════════════────────────────────────────────────────┘

--- #16 fediverse_boost/5470 ---
◀─[BOOST]
  
  I like to leave notes on stuff I've modified so that I and any future owner (after i die or need to sell stuff to survive or whatever) can figure out what I've done, since more documentation might have vanished by the time it's needed  
  
                                                            
 similar                        chronological                        different 
─▶

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

--- #18 fediverse/2884 ---
══════════════════════════════════════════════════════─────────────────────────────
 ┌──────────────────────┐
 │ CW: tech-paranoia    │
 └──────────────────────┘


 every time I update my system, it breaks.
 
 kinda makes me think they do that on purpose so that you spend all your time
 up to date and that way they can quickly patch in and out security flaws fast
 enough that nobody notices.
                                                           ┌───────────┐
 similar                        chronologicaldifferent════════════════════════════════════════════════════════────────────────────────────┘

--- #19 fediverse/775 ---
══════════════════════════════════════════════─────────────────────────────────────
 @user-192 
 
 It's totally simple! It's just structs, void pointers, function pointers,
 arrays, mallocs, and oh boy I think I see what you mean
                                                           ┌───────────┐
 similar                        chronologicaldifferent════════════════════════════════════════════════────────────────────────────────────┘

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