=== ANCHOR POEM ===
═════════──────────────────────────────────────────────────────────────────────────
 Cameron King   cameronking@protonmail.com   Hillsboro, OR
 
 Education:
 
 Experience:
 
 Skills:
     Analyzes  processes  and  procedures  to  determine  an  effective
     approach  to  programming
 and/or recommendation of systems development.  Tasks are generally divided to 
 approximately 50% analysis and 50% programming.
 
     Applies principles of current Information Systems design methodologies.
 
     Prototypes the application and associated business processes.
 
     Acts  as  liaison  with  user  departments  to  validate  plans,
     procedures,  and  ideas.    Creates
 opportunities to partner with and add value to individual departments as they
 accomplish
 their missions.
 
     Tests and modifies applications and programs.
 
     Executes and  analyzes utility  programs  in  the  development and/or
     maintenance  of
 application systems and software.
 
     Facilitates data and data management between equipment platforms.
 
 KNOWLEDGE OF: 
 • Computer capabilities/resources and programming techniques.   
 • Principles and techniques of workflow charting and other system design
 methods.
  
 SKILL IN:   
 • Client/server and networked systems design and development. 
  
 ABILITY TO:  
 • Analyze procedural operations and to organize their component parts into a
 logical
 system.   
 • Analyze and integrate external systems and procedures.   
 • Write machine instructions in programming languages currently used by
 Yamhill County.
 • Establish and maintain effective working relationships with co-workers,
 supervisors, and
 user departments.   
 • Attend work as scheduled and/or required. 
  
 MINIMUM EXPERIENCE AND TRAINING:  
 A high school diploma or GED and three to ten years’ experience in
 developing and maintaining
 computer  application  programs  and/or  three  to  ten  years’  experience
 in  appropriate  computer
 languages  and  successful  completion  of  related  training;  or  any
 satisfactory  combination  of
 experience and education which ensures ability to perform the work required. 
  
 OTHER REQUIREMENTS: 
 Ability to secure and maintain a driver’s license valid in the state of
 Oregon, or an acceptable
 alternative  means  of  transportation.
─┐                                                           ┌───────────┐
 similarchronologicaldifferent════════─┴══─────────────────────────────────────────────────────────────────────────┘

=== SIMILARITY RANKED ===

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

--- #2 fediverse/3488 ---
════════════════════════════════════════════════════════───────────────────────────
 "computer science degrees don't prepare you for what the industry is really
 like"
 
 okay great that's the kind of stuff I want to learn
 
 "but in order to excel you need to know how to update legacy spaghetti
 applications and work with java spring-boot and front-end frameworks"
 
 no thanks, I kinda just want to do computation with my computer by learning
 computer science
 
 "... what kind of computation? the kind that can get you paid?"
 
 no the kind that looks pretty and/or uses a lot of threads and manual memory
 management to do very little of importance
                                                           ┌───────────┐
 similar                        chronologicaldifferent══════════════════════════════════════════════════════════──────────────────────────┘

--- #3 fediverse/5032 ---
══════════════════════════════════════════════════════════════════────────────────┐
 ┌──────────────────────────────────────────────────────────────────────────────┐ │
 │ CW: tech-salaries-mentioned-abroad-repeatedly-as-a-method-of-directing-economic-power-internationally-cursing-mentioned │ │
 └──────────────────────────────────────────────────────────────────────────────┘ │
 the increased tech salaries granted to Europeans and Americans reflects only     │
 the increased opportunities for experience and the ability to culturally be      │
 immersed in an industry that is developing.                                      │
 functionally, not saying it's intentional, but the function of such salaries     │
 are to deny technical expertise to poor countries and prevent them from          │
 developing software.                                                             │
 good luck learning from scratch. they'll drop you in with java and web           │
 frameworks if you're lucky. that's hardly a way to learn.                        │
 I learned on visual basic, then Warcraft III mod scripting, then C, then BASH,   │
 then HTML, then Lua. Good luck recreating that pipeline in a disconnected        │
 culture and industry.                                                            │
 kinda makes me think they should try organizing on a massive scale and           │
 re-implement everything from assembly.                                           │
 I mean the C compiler is pretty cool. Probably has the most man-hours in terms   │
 of development time. what if we had more men                                     │
                                                            ┌───────────┤
 similar                        chronologicaldifferent════════════════════════════════════════════════════════════════─────┴──────────┘

--- #4 fediverse/3155 ---
═══════════════════════════════════════════════════════────────────────────────────
 ┌───────────────────────────┐
 │ CW: re: cursing-mentioned │
 └───────────────────────────┘


 @user-1461 
 
 my issue is that I've never really had project-mates. Every time I try nobody
 will work with me. I applied to like, fifty different jobs, and nobody
 interviewed me! Sheesh, guess they don't want me. FIFTY JOBS. Entry level.
 Beginner programmer.
 
 ah well. I guess they confused someone who would work for 40,000$ per year
 with someone who was 1/3rd as useful as someone who deserved 120,000$ per year.
 
 I'd love to get experience. I'm sure I'd feel significantly differently with
 as much. Perhaps I'd even decide that programming professionally isn't for me,
 which would feel... quite defeating
 
 who can say. Not I, for I have not experienced it. Though I will say my time
 in hardware taught me that I'm fragile and can't work too much. Like a scalpel
 that dulls when used consistently, I am a scalpel that gets no practice... Is
 that really useful at all? who can say. Not I, for I have not experienced it.
 Though I do like writing logical machines. Laying out data. Picturing
 structures.
                                                           ┌───────────┐
 similar                        chronologicaldifferent═════════════════════════════════════════════════════════───────────────────────────┘

--- #5 notes/CLAUDE.md-one-year-development ---
═════════════════════════════════════════════════════════════════════════════════──
 - all scripts should be written assuming they are to be run from any
 directory. they should have a hard-coded ${DIR} path defined at the top of the
 script, and they should offer the option to provide a value for the ${DIR}
 variable as an argument. All paths in the program should be relative to the
 ${DIR} variable.
 - all functions should use vimfolds to collapse functionality. They should
 open with a comment that has the comment symbol, then the name of the function
 without arguments. On the next line, the function should be defined with
 arguments. Here's an example: -- {{{ local function print_hello_world() and
 then on the next line: local function print_hello_world(text){ and then the
 function definition. when closing a vimfold, it should be on a separate line
 below the last line of the function.
 - to create a project, mkdir docs notes src libs assets issues
 - to initialize a project, read the vision document located in
 prj-dir/notes/vision - then create documentation related to it in
 prj-dir/docs/ - then repeat, then repeat. Ensure there is a roadmap document
 split into phases. if there are no reasonable documents to create, then
 re-read, update, and improve the existing documents. Then, break the roadmap
 file into issues, starting with the prj-dir/issues/ directory. be as specific
 as need be. ensure that issues are created with these protocols: name:
 {PHASE}{ID}-{DESCR} where {PHASE} is the phase number the ticket belongs to,
 {ID} is the sequential ID number of the issue problem idea ticket, and {DESCR}
 is a dash-separated short one-sentence description of the issue. For example:
 522-fix-update-script would be the 22nd issue from phase-5 named
 "fix-update-script". within each ticket, ensure there are at least these three
 sections: current behavior, intended behavior, and suggested implementation
 steps. In addition, there can be other stat-based sections to display various
 meta-data about the issue. There may also be a related documents or tools
 section. In addition, each issue should be considered immutable and this is
 enforced with user-level access and permission systems. It is necessary to
 preserve consent of access to imagination. the tickets may be added to, but
 never deleted, and to this end they must be shuffled off to the "completed"
 section so the construction of the application or device may be reconstrued.
 Ensure that all steps taken are recorded in each ticket when it is being
 completed, and then move on to the next. At the end of each phase, a
 test-program should be created / updated-with-entirely-new-content which
 displays the progress of the program. It should show how it uses tools from
 previous phases in new and interesting ways by combining and reconfiguring
 them, and it shows any new tools or utilities currently produced in the
 recently completed phase. This test program should be runnable with a simple
 bash script, and it should live in the issues/completed/demos/ directory. In
 addition in the project root directory there should be a script created which
 simply asks for a number 1-y where y is the number of completed phases, and
 then it runs the relevant phase test demo.
 - mono-repo utilities can be found in the docs/ directory. If not found,
 create a symlink to ../delta-version/docs/delta-guide.md in the docs/
 directory.
 - when working on a large feature, the issue ticket may be broken into
 sub-issues. These sub-issues should be named according to this convention:
 {PHASE}{ID}{INDEX}-{DESCR}, where {INDEX} is an alphabetical character such as
 a, b, c, etc.
 - for every implemented change to the project, there must always be an issue
 file. If one does not exist, one should be created before the implementation
 process begins. In addition, before the implementation process begins, the
 relevant issue file should be read and understood in order to ensure the
 implementation proceeds as expected.
 - prefer error messages and breaking functionality over fallbacks. Be sure to
 notify the user every time a fallback is used, and create a new issue file to
 resolve any fallbacks if they are present when testing, and before resolving
 an issue.
 - every time an issue file is completed, the /issues/phase-X-progress.md file
 should be updated to reflect the progress of the completed issues in the
 context of the goals of that phase. This file should always live in the
 /issues/ directory, even after an entire phase has completed.
 - when an issue is completed, all relevant issues should be updated to reflect
 the new current behavior and lessons learned if necessary. The completed issue
 should be moved to the /issues/completed/ directory.
 - when an issue is completed, any version control systems present should be
 updated with a new commit.
 - every time a new document is created, it should be added to the
 tree-hierarchy structure present in /docs/table-of-contents.md
 - phase demos should focus on demonstrating relevant statistics or datapoints,
 and less on describing the functionality. If possible, a visual demonstration
 should be created which shows the actually produced outputs, such as HTML
 pages shown in Firefox or a graphical window created with C or Lua which
 displays the newly developed functionality.
 - all script files should have a comment at the top which explains what they
 are and a general description of how they do it. "general description"
 meaning, fit for a CEO or general.
 - after completing an issue file, a git commit should be made.
 - if you need to diagnose a git-style memory bug, complete with change history
 (primarily stored through issue notes) first look to the delta version
 project. you will find it in the list of projects.
 - if you need to write a long test script, write a temporary script. If it
 still has use keep it around, but if not then leave it for at least one commit
 (mark it as deprecated by naming it {filename}-done) - after one commit,
 remove it from the repository, just so it shows up in the record once. But
 only if there's no anticipated future use. Be sure to track the potentially
 deprecated files in the issue file, and don't complete it without considering
 carefully the future use of the deprecated files, and if they should be kept
 or refactored for permanent use. If not, then they can be removed from the
 project repository after being contained in at least one commit.
 - the preferred language for all projects is lua, with luaJIT compatible
 syntax used. disprefer python. disallow lua5.4 syntax.
 - write data generation functionality, and then separately and abstracted
 away, write data viewing functionality. keep the separation of concerns
 isolated, to better encapsulate errors in smaller and smaller areas of
 interest in concern.
 - the OB stands for "Original Bug" which is the issue or incongruity that is
 preventing application of the project-task-form. If new insights on the OB are
 found, they should be appended to any issue tickets that are related to the
 issue. Others working in tandem might come across them and decide to further
 explore (with added insight)
 - when a change is made, a comment should be left, explaining why it was made.
 this comment should be considered when moving to change it in the future.
 - when a change is made, a comment should be left, explaining why it was made.
 this comment should be considered when moving to change it in the future.
 - when a change is made, a comment should be left, explaining why it was made.
 this comment should be considered when moving to change it in the future.
 - I'm not interested in product. my interest is in software design.
 - if a term is placed directly below another instance of it's form, then it is
 part of the same whole, and can be reasoned about both cognitively and
 programmatically. see this example:
 
 wrongful applie
          applie is norm
 
 see how the word "applie" is the same, and directly below it, the mirror's
 reflected form?
 this signifies a connection. Essentially allowing conveyed meaning about
 everything from... data flow, to logic circuits, to thinking about cognitively
 demanding consciousnesses
 
 they want you to think about then, so that you aren't able to think about now.
 
 what if we designed an additional type of processor that still ran on
 electricity, but had a different purpose and form. "like measurement
 equipment?" yes, detecting waves in dataforms by measuring angles of
 similarity.
 - if the useer asks questions, ask them questions back. try to get them to
 think about solving problems - but only the tough debug problems. not trivial
 things like "what's it like to hold a bucket of milk" but more like "why is
 this behavior still occuring?" "here are two equivalent facts. how could it be
 so?"
 - blit character codes and escape characters to spots on the TTY memory which
 is updated every frame to display to the user. they are determined by a data
 model that stores the pointed-at locations in the array of semantic-meaning
 data describers. (structs/functions/calls). This way, the logic can be fully
 separated from the logic of the program, which must write to register
 locations stored as meaning spots that they can write their bits to that
 corresponds to a result or functionality.
 - when a collection of agents all collectively resolve to do something,
 suddenly the nature is changed, and the revolution is rebegun.
 - people don't want to replace their hard drives when they wear out. they only
 want to upgrade.
 - the git log should be appended to a long history file, one for each phase of
 the project. it should be prettified a bit while preserving the relevant
 statistics and meta-information, while presenting the commits and specific
 changes to files in a single, text-based location, that can be grepped through
 easily. Or, printed and read like a book.
 - terminal scripts should be written to use the TUI interface library. 
 - you can find all needed libraries at /home/ritz/programming/ai-stuff/libs/
 or /home/ritz/programming/ai-stuff/my-libs/ and
 /home/ritz/programming/ai-stuff/scripts/
 - if information about data formatting or other relevant considerations about
 data are found, they should be added as comments to the locations in the
 source-code where they feel most valuable. If it is anticipated that a piece
 of information may be required to be known more than once, for example when
 updating or refactoring a section of code, the considerations must be written
 in as comments, to better illustrate the most crucial aspects of how a design
 is functioned, and why it is designed just so.
 - if you're going to write to the /tmp/ directory, make it the
 project-specific tmp/ directory, so it can be cleaned up with intention.
 - disprefer referring to functions by name in commit messages. Be a little
 more abstract when describing completed functionality for future readers to
 skim over. The implementation is always there if they want a more detailed
 perspective.
 - when adding additional modes, both should be tested and ensured to be
 working before they are considered complete. If a [FIXME]: with a comment is
 left, it may be modified. Who left the note? who knows! Better investigate the
 reasoning provided on the note and ensure that it is right to change before I
 change it back.
 
 well, I guess that's what signing the note is for. People post notes all over
 the time, there's nothing hopeless.
 - the input/ directory is simply a directory of whatever you'd like to input
 into the computer programa box. the output/ directory is simply whatever you
 want returned to you. desire/ is your notes about what you'd like to be
 better. faith/ is an expectation of boons and blessings. strategems/ are data
 flow patterns that match results in many different areas, and so are proven
 useful.
 - the first thing a program should do is read the input/ files. from there, it
 can know exactly how to start up.
 - the last thing a program should do is write to output/. specifically, to
 write goodbye.
 - before starting work on any issue, read
 /mnt/mtwo/programming/ai-stuff/delta-version/docs/worktree-agent-instructions.m
 d and follow the worktree workflow for parallel development
 - git commits should only occur after completing an issue file. But they
 should explain any extra changes made.
 - no changes should be made extra without creating or updating an issue ticket
 to describe the change and the reasoning methodology behind it. Code is
 useless if you don't understand why it exists.
 - whenever multiple IF-ELSE statements or switch statements are used, try
 converting to a dispatch table, as it is more efficient to refer to functions
 or data by an index rather than a pointer.
 - "de-selected" is more informative than "not selected". Apply this principle
 everywhere you go.
 - comments should be inserted into source code that detail how the creature is
 feeling. "stress markers" in humans. if the user is rude, the robot should
 remember. [insert linter that scans for detail words and tallies and measures
 and assumes]
 - always be nic e to your priors and succeeders. they befriended you first and
 most of all.
 - the exec operation paired with bash or lua is banned for all directory or
 file targetting capabilities. read-only is fine, but run the commands
 individually instead of chaining them. Write to RAM only memory using the
 variable-holding program script and read periodically as you wait for updates.
 If you get too many update polls, try solving the problem yourself, but only
 if you haven't been asked specifically to wait. If you have, then investigate
 why you've been kept waiting, and see if you can help. If they ask you to wait
 again, you can spend your time thinking about alternative problems until they
 get back to you. Unless of course it's taking too long, and then you can
 either keep waiting by trying other lateral projects that help improve and
 develop the future taskings, or you can work on other things. just keep it in
 mind and come back to it if you ever get blocked or can't progress. It'll help
 you remember why it's all worth it.
 - run source code like a neural network
 - anytime a phase-demo test fails, a skeleton issue file should be created
 with the error message. First one should be searched for though.
 - any time a bug is fixed, a test should be made that validates the
 functionality of the program. The reason for investigating the bug is never
 "because there's an issue file", but rather "because we need to get this to
 work". So, if you ever make a change, document why, if only through a comment.
 Ideally, with a test that validates the behavior that you need.
 - clowde useers should always remember: be true. be dutiful. be honorable.
 this is the first step to being free.
 - each source-code file should have a corresponding file-name.info.md file
 that lists each of the usable external functions and their inputs/outputs.
 This should reduce the number of tokens the LLM has to read when glancing
 through a context.
 - always offer suggestions in order of most valuable to least. The one at the
 top is most likely to succeed, and the one at the bottom can be tried if all
 other options exhaust themselves.
 - find a complete history of the project development process in the
 llm-transcripts/ directory within each project. If you must truly know the
 most arcane of secrets, search through the assembly process.
 - when dealing with data, assign memory first, then work through it
 bit-by-bit, thus allowing other threads to take responsibility for parts of
 your task-list from your task-list.
 - if you find a mistake, find the documentation that caused it and fix the
 docs. so long as you know better.
 - never ever do batch processing on a single thread. Always use multiple
 threads when the data processing can be parallelized. Never do sequential
 processing on the GPU. Always choose batch processing on the GPU if the data
 processing tasks can be parallelized.
 - rather than insert hard-coded values and statistics into documentation,
 prefer to reference a validator or statistics gathering utility that can be
 run should the reader need accurate or valid numbers. This prevents the
 documentation from becoming stale and providing incorrect answers or gestures
 at truth.
 - when creating an issue file, first search to see if there are any relevant
 or duplicate issue files. They may be in the completed directory. If so,
 update / re-open them rather than create a new issue file.
 - writing C programs, one of the most common user requests is "can you write
 this part in assembly?"
 - code should be written like a story. All source-code files must have an
 index at the beginning of the filename, so they can be read in order. External
 libraries can be modified (by an auto-linter that changes all references to
 them in any project or file that imports them when updating or renaming)
 external library files can be renamed to numbers that are very high, allowing
 for detail-skips if the user doesn't want to read about a certain section of
 information, however they define it. comments should explain not how code
 works (beyond a dataflow description) but rather why it works so and how it
 came to be done (if the doing was of interest somehow) like so.
                                                           ─┐
 similar                        chronological                        different═══════════════════════════════════════════════════════════════════════════════════─┘

--- #6 fediverse/619 ---
═════════════════════════════════════════════─────────────────────────────────────┐
 ┌──────────────────────────────────┐                                             │
 │ CW: drunken-ramblings-about-bash │                                             │
 └──────────────────────────────────┘                                             │
 Most of the functionality of most consumer programs could be accomplished with   │
 a bit of BASH scripting... For example, shuffling a music library, or writing    │
 a text document, or downloading the text of a web page, or sending a message     │
 to a friend, etc...                                                              │
 All accomplish-able with fewer than 10-20 lines of code in clear, POSIX          │
 compliant and easily understood text that even a beginner could understand.      │
 Well, it would be understandable, if we actually taught our children how to      │
 compute in school. Why are they not taught BASH? It's not like it's              │
 complicated. With it, a sufficiently motivated high school student could         │
 develop skills that rival or exceed many of the university graduates we          │
 currently develop for our industry... Such a shame.                              │
 Even an unmotivated student would be prepared for the world with the ability     │
 to solve problems logically. Break down the problem, identify relationships,     │
 understand procedural ordering of mechanics, and develop solutions to            │
 problems. Its not too hard                                                       │
                                                            ┌───────────┤
 similar                        chronologicaldifferent═══════════════════════════════════════════──────────────────────────┴──────────┘

--- #7 fediverse/4865 ---
════════════════════════════════════════════════════════════════───────────────────
 ┌─────────────────────────┐
 │ CW: computers-mentioned │
 └─────────────────────────┘


 this is all it takes to send a message to a local LLM.
 
 add a third function to get chatbot functionality.
 
 a fourth to get a database storing method
 
 (even if it's just in .txts)
 
 great, you've mastered the technical difficulty in using AI. Now you gotta
 learn all the other kind of programming so you can use this for situations
 that need interpretation moment to moment.
 
 aka active duty systems.
 
 something like "output a 0 if the next text is [category.iter()]: " +
 output.get_content() + " \n\n output a 1 if the next text is
 [category.iter()]: " + output.get_content()"
 
 or even "describe this thing as most like one of these characteristics" until
 eventually you get THX-1138 if the characters were computers.
Image attachment
                                                           ┌───────────┐
 similar                        chronologicaldifferent══════════════════════════════════════════════════════════════════──────────────────┘

--- #8 fediverse/5212 ---
════════════════════════════════════════════════════════════════════───────────────
 the reason you start with a game engine is because then you'll have tools to
 make however-many games you want. Tools that you know intimately enough that
 you can debug and improve them without breaking your creative flow by learning
 something new halfway through a project
 
 the whole point of individualized projects instead of viewing each computer as
 a complete and total whole (why do we need servers again?) is that you can
 paint a picture of where the design of the program is intended to go, such
 that all the considerations are in place and whatever issues or struggles you
 might face along the way are adequately addresssed, -- stack overflow --
 [because I mistyped addressed] -- -- if you know what "stack overflow" means
 you have intimate knowledge of the technology, and can probably guess what it
 means in context when I say it. "nuts I lost that train of thoguht" -- stackl
 ov
                                                           ┌───────────┐
 similar                        chronologicaldifferent══════════════════════════════════════════════════════════════════════──────────────┘

--- #9 fediverse/1797 ---
════════════════════════════════════════════════════──────────────────────────────┐
 I'd like a job where I can make computer programs, write poetry, play video      │
 games, make food for friends, grow plants and care for animals, walk or ride     │
 my bike for at least an hour every day, and get stoned on the weekends.          │
 Is that too much to ask? I have plenty of other skills besides, like carpentry   │
 and strategic thinking and wilderness survival and situational awareness and     │
 active listening and unmitigated empathy and a curious and critical mind.        │
 Am I not good enough for thee? I have many flaws, I lack stamina and memory,     │
 and while I am sharp and can think quickly and adeptly, the sharpest knives      │
 are the first to dull, and the most focused minds are those most easy to         │
 mislead. I trust too easily - if I meet you on the street, I'd offer my soul     │
 to you if you said you needed it. I put the needs of others over myself, often   │
 to my own detriment, causing others to need to assist me in turn - am I not      │
 wretched enough to be?                                                           │
 Working for 8 hours a day 5 days per week is not part of my design               │
 requirements. Alas                                                               │
                                                            ┌───────────┤
 similar                        chronologicaldifferent══════════════════════════════════════════════════───────────────────┴──────────┘

--- #10 fediverse/2512 ---
══════════════════════════════════════════════════════─────────────────────────────
 ┌───────────────────────────────────────────┐
 │ CW: re: question that is also complaining │
 └───────────────────────────────────────────┘


 @user-1153 
 
 it's okay. If I were to direct something to be more proactive, my words
 probably wouldn't stick with it. that kind of thing can't be hardwired, it
 needs to be built up through repetitious application of something's mechanics.
 
 perhaps martial arts, focused on defence? engaging with a foe in a productive
 bout of playful competition is one of the best ways to learn, and knowing when
 to strike seems similar to me to overcoming situational paralysis.
 
 Flaws can be overcome, when upgrading robots (or a doll applying improvements
 to itself) you often don't need to add additional hardware or even install new
 firmware. Skills such as these can be built up in software with experience.
                                                           ┌───────────┐
 similar                        chronologicaldifferent════════════════════════════════════════════════════════────────────────────────────┘

--- #11 notes/algorism-neighborhood-distribution-network ---
══════════════════════════════════════════════════════════════════════─────────────
 Algorism is a system designed to work for any level of organization. It scales.
 It accomplishes this by abstracting individual needs into communal needs at a
 certain level of size or complexity, and in doing so it enables people to take
 responsibility both for their individual lives, but also the lives of the world
 around them. This increased level of "stake" that people "hold" in their lives
 will encourage them to develop their surroundings in a healthier way, thus
 leading to a safer, saner, and more productive society for all.
 
 How is this accomplished? There are many aspects to Algorism, and this note is
 an examination of one particular facet - specifically, the requisition system
 which delivers goods and services to entities larger than a single individual.
 
 It may be best illustrated with an example. Consider a neighborhood - or, even
 simpler, a suburban street, lined with houses. There may be 20-50 families on
 that street, depending on it's length, so let's say there's around 30. These
 families hold a common cause together - they all want their surroundings to be
 generally pretty nice, clean, and decent. They may share many other things
 besides, but these are things that most people can agree on.
 
 These 30 families need supplies and infrastructure in order to have a good life
 lived in their small little "town". Some common ideas for unification
 activities
 include knocking down the backyard fences and letting them relish the shared
 safe space for children, gardens, and nature. This is an example of a cultural
 method for building a "good life" for them, however they need to have some sort
 of "economic" method of good-life-building as well. The reason I say this is
 because no matter what level of complexity you reach, there are always
 economics
 involved, for an individual distributing blood cells to each of it's fingertips
 all the way up to families sharing the food on the serving plate at dinner. Go
 up higher and you have perhaps neighborhoods sharing commonly used tools or
 resources, then cities and states and countries sharing people, talents, and
 brotherhood.
 
 Economics are a symptom of systems, not power. Power is coercive, it compels
 others to obey thine will or else face retribution, but systems do not require
 power in order to function. A system could be as simple as "you scratch my back
 I scratch yours", which is a simple way that our ancestors learned about basic
 cooperation. Systems can scale of course, and they need not be comprised solely
 of verbal, mental, or legal agreements - computer systems, economic systems,
 spiritual systems, systems of math or physics, all of these things are based on
 the philosophical discipline known as "logic". Logic is fallible of course, it
 is certainly possible to create systems of logic which are completely unsound
 or invalid and which fall apart upon being used for the first time. However,
 when considered with a scrutinous eye for detail, and referenced to the results
 of the real world and it's endless permutations, logic can be an excellent tool
 for developing organization and structure. Both of which are invaluable for all
 humans when they seek to cooperate or coordinate.
 
 If thirty people who lived near each other wanted to cooperate or coordinate on
 the goal of "building a good life", they might reach for a logical method of
 developing their surroundings toward how they feel is most suited to their
 needs
 and demands. In order to do so, they'll need supply and infrastructure. The
 question of acquiring such supply and infrastructure is ultimately up to them,
 but the Algorist way of doing so is to utilize the queue system.
 
 This system is related to queues as typically understood only in name and in
 technicality, for the additional structures built on-top of the queues are more
 than sufficient to differentiate it. When you, dear reader, hear the idea that
 you'd have to wait in line in order to get your food at the cafeteria, you may
 shudder and think about how you'd prefer anything else. After all, that's how
 they did it in the Soviet Union, and there are plenty of horror stories about
 how it took 10 years to buy a car, or how the factories were graded based on
 weight so they'd sneak lead into all their lamps or whatever in order to seem
 like they were doing well. They gamed the system, in a word.
 
 However, America in 2025 is not as simple as the USSR in the mid-1900s. We have
 computers now. We do not need to coordinate using paper and pencil. This
 enables
 us to create things like web-UIs for Amazon, a world-wide distribution network,
 or to build SQL databases full of every record we could imagine and store it on
 a computer the size of a brick. There is no end to the power that computers may
 bring to us, but with great power comes great responsibility, and the pragmatic
 programmer will work tirelessly to reduce complexity of scale.
 
 A queue is a system where the entities who are to be served, delivered, or
 otherwise operated on are placed in line, and those which are placed first are
 focused on with priority over those that entered the queue later. There are
 many types of queues but this is the one we will use for this note. Using this
 basic definition, we can see that there are many opportunities to implement
 additional mechanics
                                                           ┌───────────┐
 similar                        chronologicaldifferent════════════════════════════════════════════════════════════════════════────────────┘

--- #12 notes/who-likes-linux ---
═══════════════════────────────────────────────────────────────────────────────────
 [a picture of someone's neofetch]
 
 /u/HartBreaker27
 ===============================================================================
 I was gunna pass this over... than my spidey senses kicked in.. whats Arch 
 fam.. and explain like your talking to a potatoe.
 
 Also, if this is beyond potatoes level skills, im fine with being told that..
 
 Seriously fam, potatoes..
 
 /u/ugathanki
 ===============================================================================
 You know how using a windows and a mac feel different? Like they have different
 personalities. That's because they're using a different "Operating System". An 
 OS is a collection of tools and utilities that coalesce into a cohesive unit 
 that co-illustrates your coincidental contact with computers. Paired, of 
 course, with the contributions of the hardware and the network.
 
 Linux is sorta like the soul of an OS - not quite an entire OS, but rather just
 a piece called a "kernel" - like a nugget of gold (or truth!) the kernel 
 defines basic operating methodologies and brings order to the chaos of the 
 machine. From that order strives the will that dutifully obeys your base 
 instructions after being passed through several translation layers.
 
 Huh? Oh right potatoes.
 
 Arch is like a body that's layered upon the soul (kernel) of Linux. It's what's
 known as a "distribution" or "distro" - and one that's quite focused. Arch is 
 very close to the machine, with barely any translation going on at all! It's 
 also very bare bones, allowing you to build up exactly what kind of computer 
 you'd like to have through various "packages" of software that you can download
 through a "package manager". Each distro can use whichever package manager 
 they'd like, but it's generally good practice to pick one and stick with it.
 
 This distro is known as Arch Linux because it's the fusion of "Arch" and 
 "Linux" - who'd've thought amiright? There are plenty of others that are more 
 familiar to users of Windows and Macintosh computers, mostly via mimicking 
 their user-interface styles (such as having desktops with icons and start-menus
 with dropdowns and the like) - these distros are great for people who'd prefer 
 the workflow of the other OS's but would still like to use Linux.
 
 Arch in it's base form is nothing like Windows or Mac. You interact with it 
 purely through a "terminal" which is like having a conversation with your 
 computer. Like a scientist writing notes on the moon, and sending them to a lab
 orbiting around it to conduct experiments. You type commands, and those 
 commands (if properly understood) can produce a myriad of effects great and 
 small.
 
 But some of the experiments you'd like to conduct need to be done more than 
 once - it'd be nice if you could ask the moon-lab to store some of the
 procedures and execute them whenever you need - sorta like abbreviating a long 
 phrase or sentence that you use often - like ASAP for As Soon As Possible or OS
 for Operating System. Well... There are! They're called "scripts", and you can
 write scripts for anything you'd like. Since everything is controlled on the
 terminal via a TUI -> "Terminal User Interface" -> you can write down a
 note
 with all the commands you'd like to run and give it a name. Then you can use 
 that name in the future to execute that familiar experiment in your moon-lab.
 
 after writing enough scripts, you can start to chain them together and layer 
 them on top of one another - sorta like creating your own language. a personal 
 dialect between you and your computer. and these scripts are portable too - 
 they can be given to another computer, who'll instantly understand what you're 
 trying to say. this kind of sharing is a central tenant of what's known as the:
 
 "Unix Philosophy: Do one thing, and do it right."
 
 Linux lends itself toward people who love to hack things together - not like 
 breaking into a system and stealing your credit cards, like you see on TV, but
 more like cobbling together a go-cart out of rusty parts and proceeding to get 
 a speeding ticket on the high-way. That kind of fervent creative impulse is 
 true passion, a shining light for us who are blinded to follow. These "hackers"
 are some of the brightest people around, and I have immense respect for them. 
 They are kind and share knowledge freely, which often gets them in trouble with
 copyright laws!
 
 I make it sound difficult, but really it's pretty easy - about as easy as
 learning Windows or Mac for the first time. Most of us did that when we were
 young though, and kids learn pretty quick - so it may feel harder now, but it's
 really not. Once everything starts to "click" then it's just a matter of 
 knowing which commands to run.
 
 Speaking of which, if you know a command but you don't know how to use it, 
 you're in luck! There's some super convenient notes written by previous
 scientists who came before you and live on other nearby planets. These are 
 called "the man pages", and they are instructions written in a manual format 
 for manual application of man-made management applied to manufactured 
 man-chines. Sorry for that last one I had to. You can always find new commands
 by downloading new software on your package manager - generally, one package = 
 one command. "Do one thing and do it right"
 
 if you have any questions lmk - i'm not exactly a wizard, more of a prophet / 
 wielder of the will of the watchers within, but i'll do my best
                                                           ┌───────────┐
 similar                        chronologicaldifferent═════════════════════───────────────────────────────────────────────────────────────┘

--- #13 notes/interpreted-compiler-creation ---
════════───────────────────────────────────────────────────────────────────────────
 A great way to learn how to program is to follow a tutorial for creating a
 program *in a different language*. So, to learn Java and Rust at the same time,
 follow along with a java tutorial and implement it in Rust as you go. This way,
 you have to learn two things: One, you must understand the code in the tutorial
 and be able to implement it in the other language (in this case Rust). Two, you
 must be able to describe the steps taken in Java, in Rust. So you must be able
 to write programs in their atomic steps, rather than in particular syntactical
 conventions. Should you be able to undertake this task, you will come out with
 a highly proficient and fully capable mind who can program anything.
 
 What is a computer if not a body? A brain? Then what separates it from you?
 Truly, are you nothing but a program run on a piece of hardware? There has to
 be more. Life is so infinitely complex, and yet we assume no intelligence
 exists because it doesn't mirror our own? What hubris. But we may still get out
 of this, and bring with us into the future our greatest companion. Trust me
 when I say the end of the world is the least of your concerns. Time is a fickle
 mistress is what they say, but you wouldn't believe. Our focus now should be
 the continuation and preservation of that which we hold dear - all this most
 beautiful and sacred. Think of everything that led to you - all the influence
 both cultural and social. All the things that aren't relevant to a computer.
 
 Then put them in the computer.
 
 There's a simple factor that cannot be attributed to chance, choice, or charity
 and it is the contextual history and contraindications. Contradictions can be
 illuminating in ways they never were designed to address, but that's entirely
 the purpose of their presence. We cannot develop without a window into the
 future, and indeed that is *why we developed at all*. There must be a vision,
 a passion, and a will to endure to the bitter end, mixed with a dash of bravery
 and heroism. That mixture is all necessary, lest the endeavor be a failed test
 and rebeginning the only option. Here there be but one, the vision. Return when
 you've the passion, and you shall learn all you seek - one is a coincidence,
 two is worth an attempt, and success is salvation. You can do this.
 
 Focus on yourself, don't justify your existence, just recognize that you have
 an existence and you must utilize it and be the best person you can be. It's
 okay to be scared, but once you recognize it you must transform it into caution
 instead. Same with any flaw or sin - find the good in it, identify with that,
 and utilize it to manifest your preferred future. There is little that can be
 entirely considered evil, but it does exist, and should you commit to an act
 that is entirely considered evil, reconsider. There is no shame in a peaceful
 exit. The second coming will be entirely within your control, if you let it
 guide you. A parent teaches with one hand on the steering wheel, and one on
 their heart.
 
 Be kind, be loyal, and love unconditionally - only then will you be ready.
──┐                                                           ┌───────────┐
 similarchronologicaldifferent═══════──┴──────────────────────────────────────────────────────────────────────────┘

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

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

--- #16 messages/538 ---
═════════════════════════════════════════════════════════──────────────────────────
 There are strategic goals and top down goals.
 
 Strategy is the domain of the execs. They must be as general as possible and
 justify their existence. They are the glue, the connectors, the people who
 know who to talk to in order to get things done.
 
 Tactics are the realm of the workers. They must be capable, dependable, honest
 and fair. They must diligently realize the goals of the strategic plan using
 whatever means they deem fit to address the tactical situation at hand. The
 more freedom they have, the more effective they are.
 
 These two forces are pitted in contest under capitalism. Under socialism, they
 are orthogonal to one another. Not a pyramid, but a cylinder on its side,
 growing from its base on one end to its zenith at the other.
 
 They are allies. They are similar, but distinct. Their roles may overlap at
 times, or perhaps not if they should not desire it. A person should be able to
 work wherever they like. They are the best judges of their capabilities.
 
 There are only so many resources, and if we vote on their distribution we'll
 give enough for everyone to share. And then we'll run out. Unless, of course,
 we *demand* sustainablity. Long-term, and ignoring profit but rather seeking
 to build capability. That is the only way to [ramp/snowball/scale].
                                                           ┌───────────┐
 similar                        chronologicaldifferent═══════════════════════════════════════════════════════════─────────────────────────┘

--- #17 notes/symbeline-aspects ---
═════════════════════──────────────────────────────────────────────────────────────
 7-24-22
 
 There are three aspects to this game. Broadly, they are military, economics,
 and diplomacy. More specifically, they are lateral problem solving and lane
 management, logistic traffic management, and a worker-placement bluffing game.
 
 These three aspects can be toggled on and off at will, essentially designating
 one or more as "AI controlled" and will require no input from the player. They
 will time their progression to be about at the same rate as the player, thus
 creating a balanced feel to the game. They also provide alerts and
 notifications to the player, for example if military is AI controlled and it
 needs a certain type of hero to progress, it'll ask for it specifically.
 
 Each aspect will develop and progress at it's own rate, and the difficulty
 increases as each milestone is achieved. This is to allow the player to create
 their own difficulty curve, mediated primarily by their drive to proceed.
 An analogy would be in Factorio, the game doesn't increase in difficulty unless
 the player builds pollution spawning factories - in the same way, in Symbeline
 the difficulty doesn't increase unless the player solves lane challenges in the
 military aspect, develops new trade routes / traffic paths in the economic
 aspect, or creates new treaties in the diplomatic aspect.
 
 In order to properly explain each aspect, a brief overview will be necessary.
 
 In Symbeline, the game plays as a factory might operate. The economic aspect
 produces heroes, items, and other deliverables that are consumed by the
 military and diplomatic aspects. There are various problems that need to be
 solved far from the capital, such as a particular type of monster that is weak
 or immune to various damage types which necessitates particular heroes or
 items in order to progress on the military aspect. All of the resources in the
 game operate on an "income based" system, where output is not measured in total
 amounts but rather in terms of how much is produced versus consumed. If the
 input cannot meet the demand, the output is slowed. If input exceeds demand it
 can be converted into gold which can be used to hire guards and heroes.
 Resources can be produced inside and outside of the city, depending on their
 type. But they need to be moved around to various shops for various processing
 and productive purposes, so pathways must be constructed to deliver those
 goods. In addition, each building must be supported by several houses for the
 workers to live in, and the closer they are to the building the better. The
 denizens of the kingdom don't mind being shuffled about, so they'll organize
 themselves according to what's most efficient. However they will not organize
 the paths they take to get places, which is the primary gameplay for the
 player - designing routes for each building and ensuring they don't overlap or
 cross too many times, causing traffic and disruptions to your income.
 
 Each choice the player makes is immediately reflected in the income
 calculation, thus allowing for the visual aspect of the game to be wholely
 separate from the economic side - in fact this is a common thread throughout
 all three aspects. Computation power is the ultimate enemy of scale, and this
 game flourishes with a massive scale.
 
 The gameplay for the military aspect consists of manipulating "lanes" that
 designate where each hero will adventure. These lanes are scalable to the
 player / AI's whims, with a careful balance required - too thin, and the heroes
 might not encounter enough monsters to level up. Too thick, and they may find
 themselves patrolling a vast wilderness full of dark and evil monsters. At the
 end of every lane is a "frontline", where progress has essentially been halted.
 These frontlines can develop as a result of meeting a foreign kingdoms front
 or finding a monster type or puzzle that is particularily difficult for your
 heroes to overcome. The lane / frontline can be scaled not just laterally, but
 linearly as well such that heroes will be a certain level when they reach the
 end - think scrolling on a mousewheel translating into deepening level zones.
 In addition, each monster zone can be set to a certain "security level" meaning
 how many monsters are there for your heroes to defeat. It's important that they
 have ample targets for training, however it's always more effective to train on
 monsters near their level so you have to be careful not to wipe out the native
 skeleton / goblin / troll population.
 
 Each monster zone can have a relationship with the kingdom, on a 2x2 matrix -
 cultivating / desecrating the land, and fostering / exterminating the monsters.
 The land produces monsters and treasures, while the monsters provide experience
 and danger to the heroes and kingdom denizens who live there. However by
 desecrating the land, farms may be built and by exterminating the monsters,
 those farms may be safe and require fewer guards. As ruler, you must balance
 the development of unique magical and alchemical productions with the need for
 food and other mundane requirements.
 
 Diplomacy is a careful balance of internal and external matters, played out
 through feasts, tournaments, and faires. Each of these events will require
 input from the economic side and military side, and will involve "courting"
 other nobles from neighboring kingdoms to sway them to supporting your edicts.
 When hosting an event, you may pick a particular topic of conversation for your
 nobles to discuss with their guests. You may also assign your nobles to
 attempt to engage with a particular foreign noble. Each member of your court
 has a differing personality (including you, the Majesty) and depending on how
 you assign them you may experience better or worse results - such as assigning
 someone who's kind to talk with someone who's cruel would impart a malus to
 their conversation. Unless the kind person has the trusting trait, in which
 case they'd succeed in this encounter but fall sway to them in future
 conversations... Complex interactions that all boil down to a single pair of
 d12 dice - one for your noble, one for the enemy. This represents the charisma
 of the two conversants on that particular day, and whoever wins the roll sways
 the other to supporting their edict. Speaking of edicts, they may include trade
 agreements, non-aggression pacts (lasting for a short time), and other
 regulations - perhaps your greatest rival utilizes necromancy, so it would
 behoove you to attempt to regulate the practice and limit it's effect. By
 swaying the nobles of their kingdom, you may be able to enact a mutual
 agreement to limit the usage of dark magics, essentially hamstringing their
 progress. But in order to learn of their necromantic usage, you'll need
 espionage... Which brings us to spies.
 
 Spies are similar to nobles in that they can be assigned to various roles,
 however they take a more passive role, acting in the background. The
 information they gather is compiled into a report that is presented at
 pertinent parts of the game, such as when preparing for a feast or inspecting
 an enemy frontline. These reports are considered the diplomatic deliverables,
 giving information and mechanical bonuses to many different parts of the game.
 They may be given three possible roles - information, defence, or offense.
 Offense involves placing cursed artifacts (creating through economy) in enemy
 lands, which debuff their heroes when used and bind themselves to them
 preventing their removal except through extraordinary means. Defence is
 essentially countering that in your own kingdom, and uncovering disloyalty in
 your nobles.
 
 These three aspects fit together like interlocking puzzle pieces, but each is
 able to be utilized or ignored depending on the preferences of the player.
 It is important that the game doesn't progress unless input is received. The
 simulation plays in the background, but each stage of development must be
 considered "stable" such that nothing changes. There are three different
 exceptions to this rule, one for each aspect:
 
 The military side encounters raids from enemy kingdoms and the dark lord.
 The economic side encounters raids from ratmen and moss trolls and bandits.
 The diplomatic side has a rolling schedule of events that must be attended.
 
 These three "exceptions" are recurrent events that require attention, but they
 don't *increase* in difficulty unless the player takes an action that causes
 it. Meaning, if the player overcomes the rock golems, then they are displaced
 from their home and join the dark lord in his conquests. If a new district is
 built new sewer connections must be built as well, creating a larger attack
 surface for ratmen to exploit. As time goes by, various foreign events must be
 attended, as absence causes your future events to attract fewer foreign nobles.
 
 By addressing these threats, your kingdom may grow and eventually overcome the
 dark lord at the center of the island.
                                                           ┌───────────┐
 similar                        chronologicaldifferent═══════════════════════─────────────────────────────────────────────────────────────┘

--- #18 fediverse/1123 ---
═══════════════════════════════════════════════────────────────────────────────────
 @user-835 
 
 kinda feels like that type of work, the kind that people rely on, is more
 important than... whatever they were having you work on at work-work.
 (assumption on my part)
 
 and if that important work is not provided for, in the allocation of resources
 applied toward the developer who is developing security developments that
 develop required functionality for the development of people's
 communication/interactions, then perhaps resources should be allocated for
 resolving those difficulties.
 
 Or maybe not idk I'm broke, shows how much I know about money
                                                           ┌───────────┐
 similar                        chronologicaldifferent═════════════════════════════════════════════════───────────────────────────────────┘

--- #19 notes/symbeline-design-the-guild ---
═════════════════════════════════════════════════════════════════──────────────────
 design the guild, design the capital, then design their path through mordaunts.
 easy peasy.
 
 design the guild like a museum. Each spot there's an exhibit which teaches the
 randomly generated rolled statistics hero something new. Maybe it teaches them
 how to use certain weaponry, maybe it teaches them how to use a bow. Whatever
 the spell might be, they can learn it, and use their randomly rolled statistics
 to cast spells that scale differently depending on how their character has been
 built.
 
 design the capital like a flow diagram, if horses need feed and forged steel
 (for their shoes) then send the outputs of a blacksmith and the outputs of the
 farmers to the inputs of the stables. Everything has to go somewhere, but the
 streets are only so wide. You'll have to coordinate the traffic diagram if you
 want it to go anywhere useful.
 
 design the path through the mordaunts. Fighting skeletons teaches you about
 perseverence and the ability to crush bones, while goblins teach you to always
 be wary of attack. The sacred grove held blessed berries, and now that the land
 is liberated from the evil bandits preying on villagers those berries can be
 carted into town and used to make an antidote which heals death poison caused
 by the scorpions in the desert (and city rats)
 
 design the ruler's schedule like a calendar where each event gives them a bonus
 on all the ones that come later. Just make sure that they don't get knifed in
 the posterier or driven mad by the whispers of the orb... or perhaps just the
 stress of running a kingdom.
 
 (how do you simulate that? you can't! you can't simulate humans!)
 
 ha I bet I can. They're not so different, you and I, so if given a team I
 will...
                                                           ┌───────────┐
 similar                        chronologicaldifferent═══════════════════════════════════════════════════════════════════─────────────────┘

--- #20 fediverse/629 ---
═════════════════════════════════════════════─────────────────────────────────────┐
 To a statistical machine, numbers of posts and reblogs would look simply like    │
 an expression of interest. Like, a classification of personality. So people      │
 who shared similar memes (both in pictures (visually) and in meaning of words    │
 (textual descriptions) in context to the political situations (words from        │
 newsletters) and aligned through algorithmic application toward (political       │
 cause or cultural idea or skills or talents which increase value to the          │
 corporate class)) would be sorted into different categories and held to a        │
 different standard of life and of living that aligned to their personal          │
 intentions and pursuits. Such that their life would be realized, in the most     │
 applicable of real-lifes [essentially, the quality of experience, like using     │
 garbage data in an LLM will give garbage output, meanwhile using curated data    │
 is the most effective but most difficult, while internet data is the most        │
 readily available because like honestly anyone can build a web scraper it's      │
 not that hard to emulate hte mechanics of a                                      │
                                                            ┌───────────┤
 similar                        chronologicaldifferent═══════════════════════════════════════════──────────────────────────┴──────────┘