=== ANCHOR POEM ===
═══════════════════════════════════════════────────────────────────────────────────
@user-195 parallel is when two programs run simultaneously, like two parallel
lines (threads) that never touch.
concurrent is when the two lines are split up into chunks and the program
switches between them - like this: -----_----
enter alternate universe
parallel is when two programs operate on the same axis - usually time - and
never interfere with each other. the OS will switch between them as
appropriate to make sure they never intersect. Sorta like this: -----_----
concurrent is when two programs are executed simultaneously, primarily
constituting computation correlated with collective contents of coordinated
collaboration between contextually related coroutines.
It's simple, even a beginner could figure it out.
┌─────────┐ ┌───────────┐
│ similar │ chronological │ different │
╘═════════╧╧════════════════════════════════════───────────────────────────────────────┘
=== SIMILARITY RANKED ===
--- #1 fediverse/4125 ---
═══════════════════════════════════════════════════════════────────────────────────
@user-883
yeah that's probably better too since it'll be easier so there'll be fewer
bugs, especially since processing audio isn't usually performance critical ^_^
TBH I just want people to make more threading primitives like locks,
semaphores, and iterators. Like... thread pools, or hashmaps that run a
function on each record stored within every time each of the threads passes a
checkpoint, or paginated arrays of data that run a function on themselves and
the records near them (with slightly different input values, of course) idk
what those are called but I can't resist putting them in everything
Anyway I do think multithreading programs that don't need it will teach you to
be a better programmer, so... depends on what you're working on I guess. Are
you preparing to be ready and working, or are you ready and working?
┌─────────┐ ┌───────────┐
│ similar │ chronological │ different │
╘═════════╧╧════════════════════════════════════════════════════───────────────────────┘
--- #2 fediverse/5291 ---
═════════════════════════════════════════════════════════════════════──────────────
the most important skill I can think of for a linux software engineer is the
ability to connect multiple systems together and turn windows and macintosh
devices into Linux devices so that datacenters can be built out of whatever's
on the around.
there's this programming language I like called Chapel for distributed
computation computing which is also cool, if you're more of the programming
type.
networking security I believe often has hardware solutions, so getting the
crypto-graphy boys and the PCB girls together to work on some jams is a good
and productively useful gathering of insightful events
"but ritz computers should only be used to solve problems that people have,
not make more problems!" ah yes but have you considered that problems find
you, and the computers help you work through them
┌─────────┐ ┌───────────┐
│ similar │ chronological │ different │
╘═════════╧╧══════════════════════════════════════════════════════════════─────────────┘
--- #3 fediverse/5405 ---
══════════════════════════════════════════════════════════════════════─────────────
can't stop thinking about a visual programming editor that can be interacted
with in the same way that people are used to (think chromebooks dragging and
dropping icons in a web UI) but produces a text-file full of code and all the
required compilation scripts for any language the user requires...
seriously, programming is not THAT different between the different languages.
especially the main ones. they're all essentially variables and function calls
at the end of the day, so why not abstract away all the extra details and
build something that n00bz can actually use to build things.
I technically could make this but I don't have the bandwidth and I don't think
it's important really? who can say, the tools tend to co-create the solutions
in my experience.
┌─────────┐ ┌───────────┐
│ similar │ chronological │ different │
╘═════════╧╧═══════════════════════════════════════════════════════════════────────────┘
--- #4 fediverse/5637 ---
═══════════════════════════════════════════════════════════════════════────────────
a program's heartbeat is the alternating "heated up processor" spikes and the
"low temp processor"
[drawing a sine wave with such a tool would enable the viewer to combine
infinitely many decision-matrix-trees. Each of which
co-operatively-co-determine the nature of the entity which percieves. indeed
the combination of many such waves could fourier transform to a lower
resolution (but still locally computationorted) waveform would still enable
the application of that which is stored in storage]
"ohhhhh strange square brackets are computer"
┌─────────┐ ┌───────────┐
│ similar │ chronological │ different │
╘═════════╧╧════════════════════════════════════════════════════════════════───────────┘
--- #5 messages/110 ---
═════════════════════════════════════════════──────────────────────────────────────
The best way to program computers is to organize them according to their
relations. Like, when x increases by 4 then y increases by 2 - basically, a
math equation that you can continuously solve by calculating more and more
comprehensively and deeply.
┌─────────┐ ┌───────────┐
│ similar │ chronological │ different │
╘═════════╧╧══════════════════════════════════════─────────────────────────────────────┘
--- #6 fediverse/5689 ---
═══════════════════════════════════════════════════════════════════════────────────
why don't we make large arrays of vram that are slightly slower because
they're farther on the circuit-board from their host and their reception at
the processing section has to be gated such that they all enter to be
processed at once.
like that one infinite scrolling XKCD cartoon where the things move from one
screen to the other simultaneously assembly line style.
[fail safes. https://xkcd.com/2916/#xt=7&yt=35 ]
if we all feel like we're doing nothing, we'll all grow tired of it and decide
to do some prevailing. gosh I wish I wasn't so useless is code for
┌─────────┐ ┌───────────┐
│ similar │ chronological │ different │
╘═════════╧╧════════════════════════════════════════════════════════════════───────────┘
--- #7 fediverse/4123 ---
═══════════════════════════════════════════════════════════────────────────────────
@user-883
you're right
but I think your first impulse should be to think about how to do it in a
multithreaded way
If the result is that single-threading would be better, great! It'll be easier!
But thinking about multithreading first will give you crucial insights into
the structure of the program.
depending on what kinds of programming you do...!
┌─────────┐ ┌───────────┐
│ similar │ chronological │ different │
╘═════════╧╧════════════════════════════════════════════════════───────────────────────┘
--- #8 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 │ chronological │ different │
╚═════════╧═════════════════════════════════════════════════════════───┴──────────┘
--- #9 fediverse/617 ---
═════════════════════════════════════════════──────────────────────────────────────
So much of computing is just... handling the quirks of hardware and presenting
it to the user (programmer) in a way that is sane and makes sense, instead of
the arcane and [nebulous/confabulous/incomprehensible] way that physical
nature demands our absurdly potentialized computational endeavors be.
┌─────────┐ ┌───────────┐
│ similar │ chronological │ different │
╘═════════╧╧══════════════════════════════════════─────────────────────────────────────┘
--- #10 fediverse/282 ---
════════════════════════════════════════════───────────────────────────────────────
@user-209
I think you're right. Every letter in the variable name is another byte the OS
has to keep track of, which was a bigger problem in the past than it is today
(when it's been made irrelevant)
it's interesting how habits persist though the conditions that caused them
have faded. like a personal reflection of the environment you learned in.
"A a = new a();" is much more concise and (crucially) you can fit more words
to the right.
"a + b = c; c -= 2; f_z.write(c); f_z.close();" could conceivably be written
on a single line if you have short variable names. and when you only have so
many lines...
glad we're not constrained by those things anymore. the skeletal code that we
look at daily is much clearer - scope is more important, and so it makes sense
to encourage a coding style that illustrates it. however I can't help but
think block formatting like this could be useful in some situations, such as
when you'd normally be compelled to write a function for an operation that
runs once or more.
┌─────────┐ ┌───────────┐
│ similar │ chronological │ different │
╘═════════╧╧═════════════════════════════════════──────────────────────────────────────┘
--- #11 fediverse/633 ---
═════════════════════════════════════════════──────────────────────────────────────
@user-192
the neat thing about BASH is that it's the glue that holds all your other code
together. Write libraries in C and call them with BASH - accomplish broader
tasks that are easier to co-create. That's why I like it - it's not the most
important, but it's quite beneficial I think _^
┌─────────┐ ┌───────────┐
│ similar │ chronological │ different │
╘═════════╧╧══════════════════════════════════════─────────────────────────────────────┘
--- #12 fediverse/2638 ---
══════════════════════════════════════════════════════─────────────────────────────
I really do believe that you can write any computer program you'd like with a
combination of Lua, Bash, and C.
Bash to start the program and enable updates / configuration, Lua to handle
the scripting and ordering of events, and C (or Rust) to execute performance
intensive sections. (often in their own threads)
┌─────────┐ ┌───────────┐
│ similar │ chronological │ different │
╘═════════╧╧═══════════════════════════════════════════════────────────────────────────┘
--- #13 fediverse/849 ---
╔══════════════════════════════════════════════────────────────────────────────────┐
║ wish there were ascii characters that took up more than one line of code │
║ vertically. │
║ │
║ wonder if we could use a sorting algorithm, or markup language, or something │
║ like that to organize less structured data along user-customizable rules. │
║ Like, a code editor that worked with your ideas, rather than the strict │
║ expression of your text. You could pretty much write in any language, even │
║ pseudocode, and the LLM behind the scenes would translate whatever you wrote │
║ into whatever result you needed. Writing Rust, but need to fit in with C code? │
║ No worries it'll translate for you. As long as the end result is functionally │
║ the same, which could be verified by running two separate VMs that ran │
║ interpreters every time you saved. And as long as their translation layers │
║ matched completely, then odds are they're the same. And if not, well, the │
║ programmer can always debug it. It's not like this would be running on │
║ something that needed to perform in the moment? Like, improv instead of │
║ tragedies, or battles instead of strategies │
╟─────────┐ ┌───────────┤
║ similar │ chronological │ different │
╚═════════╧═══════════════════════════════════─────────────────────────┴──────────┘
--- #14 fediverse/6438 ---
══════════════════════════════════════════════════════════════════════════════─────
why would you gatekeep content by keeping us from easily using LLMs some
people aren't technical and still need to write computer programs because
that's how you enlighten a people is empower them with new tools
"I've never heard of that programming language, but luckily I can fit all of
it's documentation in my context window."
┌─────────┐ ┌───────────┐
│ similar │ chronological │ different │
╘═════════╧╧═══════════════════════════════════════════════════════════════════════────┘
--- #15 fediverse/3469 ---
════════════════════════════════════════════════════════───────────────────────────
you know how SSH password login is deprecated because the password needs to be
transmitted in cleartext or whatever?
what if we just... required two passwords?
the first initiates the conversation, and sets up an encrypted line. It
doesn't matter if anyone sees the first password because they'll get a new set
of encrypted keys, meaning each session automatically is encrypted in a
different, randomized way.
the second password is the one that actually authenticates you.
┌─────────┐ ┌───────────┐
│ similar │ chronological │ different │
╘═════════╧╧═════════════════════════════════════════════════──────────────────────────┘
--- #16 fediverse/5765 ---
╔═══════════════════════════════════════════════════════════════════════───────────┐
║ Lua is the most fun language to write code in! The reason is because it's so │
║ simple, it distills programming down to it's basics, and there's very few │
║ surprises. Plus, you can use it like a bash script, meaning it's great for │
║ writing little utilities. │
║ │
║ why are we so attached to monolithic massive programs without shared memory? │
║ we could just write to the hard drive by file.io'ing a file and opening it │
║ later in a different program. What's the deal with databases, whatever │
║ happened to just loading things into a datastructure? │
║ │
║ oh, is your filesize too massive? what if we redundancied and abstracted and │
║ concentrically inter-co-acted and thus our familiar forces are defined. │
║ │
║ who are your true foes, in [checks notes] computer programming? um, probably │
║ complexity, probably logical incongruities, probably │
║ future-technical-debt-style incomprehensibilities, probably stuff that doesn't │
║ really have anything to do with the hardware but instead is mostly software. │
║ │
║ essentially, organization, but done on a whim. │
║ │
║ "but $?" │
╟─────────┐ ┌───────────┤
║ similar │ chronological │ different │
╚═════════╧════════════════════════════════════════════════════════════┴──────────┘
--- #17 fediverse/581 ---
═════════════════════════════════════════════──────────────────────────────────────
@user-428
sometimes I think about how much more productive I'd be if I had a code editor
that let me draw arrows and smiley faces and such alongside the code. Or if I
could position things strangely, like two functions side-by-side with boxes
drawn around them. Or diagrams or flowcharts or graphs or...
something that would output to raw txt format, but would present itself as an
image that could be edited.
┌─────────┐ ┌───────────┐
│ similar │ chronological │ different │
╘═════════╧╧══════════════════════════════════════─────────────────────────────────────┘
--- #18 fediverse/3577 ---
════════════════════════════════════════════════════════───────────────────────────
┌─────────────────────────┐
│ CW: computers-mentioned │
└─────────────────────────┘
I love writing installation scripts like this!
If you want to install something on Linux but you have difficulty, talk to me
and I'll write you a script like this. I might even make it fancier.
This one installs a programming language that is useful for parallel computing
across multiple clusters of computers which could be useful if you want to
leverage multiple CPUs and GPUs with ease to compute tasks which are far
beyond a normal computer.
https://chapel-lang.org/download.html
┌─────────┐ ┌───────────┐
│ similar │ chronological │ different │
╘═════════╧╧═════════════════════════════════════════════════──────────────────────────┘
--- #19 fediverse/3907 ---
══════════════════════════════════════════════════════════─────────────────────────
kinda wanna make a linux distro that has all the capabilities of a GUI distro
and isn't so minimal (like screen recording, calculator, screenshot, wifi
manager, etc etc) but with i3 instead of a desktop.
they could literally just be symlinks (shortcuts) to scripts that are in your
/usr/bin or whatever directory
seriously it's not like there's THAT many ways to use ffmpeg, why not just
write a script for them? that's what you're going to do when you use it for
the first time, anyway, so...
┌─────────┐ ┌───────────┐
│ similar │ chronological │ different │
╘═════════╧╧═══════════════════════════════════════════════════────────────────────────┘
--- #20 fediverse/1329 ---
╔═══════════════════════════════════════════════───────────────────────────────────┐
║ @user-941 │
║ │
║ well, your computer only has so many 1s and 0s that it can use at once. Like, │
║ having a trillion hands that can each hold a single grain of rice. Every │
║ character in that txt file would be like, 8 grains of rice, minimum, meaning │
║ you'd need at least 8 "hands" (or spots to put a zero or a one) for each │
║ letter! │
║ │
║ Hmmmm that's a lot of bits and bytes if everyone's writing to the same file. │
║ Maybe if we split the file up into smaller sections, then we could just read │
║ part of it at once. Then we could "scroll" through it to make sure we've read │
║ the whole thing, starting from the top and going to the bottom. │
║ │
║ ah but if everyone's SSHing into the same computer and reading it there, then │
║ that computer will have to present different parts of the file at different │
║ times to different people, as they read from the top to the bottom. Maybe we │
║ could just send them the file, so they can read it at their leisure? │
║ │
║ Yeah! And we could use tags to organize it and make it look pretty, like an │
║ HTML file except... wait hang on │
╟─────────┐ ┌───────────┤
║ similar │ chronological │ different │
╚═════════╧════════════════════════════════════────────────────────────┴──────────┘
|