=== ANCHOR POEM ===
═══════════════════════════════════════════════════════════────────────────────────
@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 │
╘═════════╧╧════════════════════════════════════════════════════───────────────────────┘
=== SIMILARITY RANKED ===
--- #1 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 │
╘═════════╧╧════════════════════════════════════════════════════───────────────────────┘
--- #2 fediverse/247 ---
═══════════════════════════════════════════────────────────────────────────────────
@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 │
╘═════════╧╧════════════════════════════════════───────────────────────────────────────┘
--- #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/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 │
╚═════════╧═════════════════════════════════════════════════════════───┴──────────┘
--- #5 fediverse/1121 ---
═══════════════════════════════════════════════────────────────────────────────────
@user-812 @user-826
there should exist either the assurance that the default configuration does
not overheat or crash your computer (as Windows and Mac claim to offer) or the
OS should provide the capability to solve any configuration problems that may
prevent a user for utilizing their system as they desire. (as does Linux)
they're all Turing machines after all, why would they not be interoperable?
Even if there's a translation layer, as long as the functionality of the
software is the same, why would there ever be considerations as to whether or
not a program would be able to be run on a particular computer?
lack of hardware capabilities I can understand, that just means you need a
better computer. But why, if the code is visible, would your computer not
develop understandings about how to run each and every conceivable program
written using known languages like C or Python? Seems like pretty basic stuff
to me. (endless sufficient backwards compatibility)
┌─────────┐ ┌───────────┐
│ similar │ chronological │ different │
╘═════════╧╧════════════════════════════════════════───────────────────────────────────┘
--- #6 fediverse/3151 ---
╔══════════════════════════════════════════════════════────────────────────────────┐
║ ┌───────────────────────────┐ │
║ │ CW: re: cursing-mentioned │ │
║ └───────────────────────────┘ │
║ │
║ │
║ @user-1461 │
║ │
║ I'm best at Bash. │
║ │
║ I'm most capable with Lua. │
║ │
║ My favorite is C. │
║ │
║ I'm not a good programmer, I think too hard. Massive systems are too large for │
║ me. I like laying out data, whether that be by files and programs in Bash, │
║ arrays and tables in Lua, or memory and datatypes in C, I like to think about │
║ how programs are constructed. │
║ │
║ Which functions point to which piles of numbers? what do they do when they get │
║ there? │
║ │
║ I think I'm better as an artist. But I can do systems administration quite │
║ well (with Bash and a guiding hand telling me what and why to do) │
║ │
║ ... though I kinda suck at technical sysadmin, like Gentoo. There's too much │
║ terminology - why is data too complicated? Just use data! │
║ │
║ anyway. I sound opinionated, but I listen closely to good arguments and │
║ quickly change my tune when I am incorrected. I am a team player, and I firmly │
║ believe that sometimes a bad plan executed with cohesion and precision is │
║ better than the best play executed too late and with too little strength. │
╟─────────┐ ┌───────────┤
║ similar │ chronological │ different │
╚═════════╧═══════════════════════════════════════════─────────────────┴──────────┘
--- #7 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 │ chronological │ different │
╘═════════╧╧════════════════════════════════════════════════───────────────────────────┘
--- #8 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 │
╚═════════╧═══════════════════════════════════─────────────────────────┴──────────┘
--- #9 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 │ chronological │ different │
╘═════════╧╧═════════════════════════════════════════════════════════════──────────────┘
--- #10 fediverse/2879 ---
══════════════════════════════════════════════════════─────────────────────────────
┌────────────────────────┐
│ CW: re: tech info-dump │
└────────────────────────┘
@user-1370
I love this a lot! I want to put function pointers in a "matrix architecture
array" and make them point to different functions at different points in the
program. I bet you could even point them at each other, so like if M and Y
then point at N, A, Y or something.
this is really cool I like stuff like this tomorrow I'll take pictures of
something similar I'm working on! I abandoned it tho hehe anyway remind me if
I forget!!
┌─────────┐ ┌───────────┐
│ similar │ chronological │ different │
╘═════════╧╧═══════════════════════════════════════════════────────────────────────────┘
--- #11 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 │
╘═════════╧╧═════════════════════════════════════──────────────────────────────────────┘
--- #12 fediverse/653 ---
═════════════════════════════════════════════──────────────────────────────────────
there's a difference between designing software and using software. Some
things can be made, and then saved for another day when their implementations
may be accomplished more ethically. It's okay to say "let's leave this as
'okay' and work on the next thing we've chosen."
Check out this piece of C code I wrote last night:
it doesn't compile, it's not finished, but I wrote it as-is
[pretend like it was called "main.c" instead of "main.txt" - had to change it
because mastodon thinks it's an invalid file]
[actually .txt didn't work, try .png]
[hmmm it realized it wasn't a valid png file, okay try screenshotting the
code, there's only 300 lines]
[sure glad there's only 300 lines]
[too bad it won't let you send .zip]
[won't let me name it main.png, presumably because they already have a
failed-verified version on their machine. will rename to main-src.png instead]
┌─────────┐ ┌───────────┐
│ similar │ chronological │ different │
╘═════════╧╧══════════════════════════════════════─────────────────────────────────────┘
--- #13 fediverse/634 ---
═════════════════════════════════════════════──────────────────────────────────────
@user-192
I'd agree with that. it's not designed for performance, not really. Mostly
ubiquity, which is it's strength. As long as something can be compiled to a
binary, BASH can execute it. That's why it's good, for accomplishing diverse
tasks that you cannot have the capacity to program yourself. Scientific
computations or cultural approximations, things that are beyond your intuitive
understanding as a human on this earth, but which compel and align your
thinking.
I'm sure someone could create a more intuitive or accessible syntax, but
syntax isn't the point - the capabilities, what you can do with it, has always
defined the purpose of programming paradigms. And BASH is (currently) at the
forefront of it's niche, the "terminal" language that handles "command line"
applications. Powershell is good, yes... but it's not as good as BASH. Neither
is Fish or... the one that starts with a z? zfs? something like that. The
acronyms are hard to keep straight sometimes.
┌─────────┐ ┌───────────┐
│ similar │ chronological │ different │
╘═════════╧╧══════════════════════════════════════─────────────────────────────────────┘
--- #14 fediverse/3553 ---
════════════════════════════════════════════════════════───────────────────────────
@user-381
I have this notion about a math/CS curriculum where students build and program
their own calculators. Once you make the calculator do it you never need to do
it yourself again.
for the same reason that "writing is thinking" is true, so too is "programming
is calculation" true.
by working through the steps required to produce a result, and fully
understanding each step, they have a much more solid understanding of what's
going on than if they practiced rote memorization (worse) or continual
computation (better, not best tho)
especially if every step of the way is accompanied with visual elements which
show exactly what is happening. Some people are more visual, some people are
more algorithmic, and finding a way to teach all types of people is a truly
difficult and rewarding part of teaching.
┌─────────┐ ┌───────────┐
│ similar │ chronological │ different │
╘═════════╧╧═════════════════════════════════════════════════──────────────────────────┘
--- #15 messages/755 ---
═════════════════════════════════════════════════════════════════──────────────────
Code editor that moves boxes by saving over the file with a lua script every
time you moved a function call around.
Oh lemme start at the beginning:
A code editor program that's like a text editor like Vim or Emacs. If you
don't know what those are, you should probably learn Emacs. Or Vim. Up to you.
Oh right so if you do know what those mean, here's the idea: the white space
matters. It's counted and tracked into variables in a LUA script which
interface with the Vim C keybindings.
"run a function within a c program or LUA script which calls a bash command
which opens Vim for example with a file you want to edit. Then, inside the
file, your spaces and tabs would WYSIWYG for the various food ads placed
about, and then you could very easily create game design knowledge.
WASD to move, alternatively hjkl
It would run a check every time the file updates and depending on how it
changed it'd mark certain variables which would change the website as the user
moved things around.
It's just files. And files are just bits. But files are a useful abstraction,
If you realize that "ugly hacking" should be industry standard.
┌─────────┐ ┌───────────┐
│ similar │ chronological │ different │
╘═════════╧╧══════════════════════════════════════════════════════════─────────────────┘
--- #16 fediverse/1892 ---
═════════════════════════════════════════════════════──────────────────────────────
┌─────────────────────────────────────────┐
│ CW: C-programming-and-alcohol-mentioned │
└─────────────────────────────────────────┘
I want to write C programs with threads and manual memory management and
function pointers and lots and lots of arrays and I'm not even kidding
... wait a minute I literally don't have a job, why am I not writing C
programs right now?
BRB I got something important to do, where's my vodka --> pkill firefox
┌─────────┐ ┌───────────┐
│ similar │ chronological │ different │
╘═════════╧╧══════════════════════════════════════════════─────────────────────────────┘
--- #17 fediverse/5780 ---
════════════════════════════════════════════════════════════════════════───────────
┌─────────────────────────────────────────────────────────────────────┐
│ CW: scary-dark-circle-magic-is-totally-not-my-vibe-I'm-more-like-a- │
└─────────────────────────────────────────────────────────────────────┘
game idea:
factorio clone except it's actually an IDE
double click a "factory" building and you can open up a script window. Just
enough room for a function or three, don't go off-screen...
then, draw as many conveyor belts as you want. They have to be conveyors, and
they can only dive under [num_belt_passthrough] other conveyor belts at a
time. By forcing the player to structure their code linearly and laterally,
they can see it with a more comprehensive [scope, but pronounced hope].
could also have a neat visualizer for the data structures you'd build.
[highly recommend that any programmer learn Lua, it's faster than you know]
I name my variables after objects and patterns and I think that's normal
┌─────────┐ ┌───────────┐
│ similar │ chronological │ different │
╘═════════╧╧═════════════════════════════════════════════════════════════════──────────┘
--- #18 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 │
╘═════════╧╧═══════════════════════════════════════════════════════════════════════────┘
--- #19 fediverse/2754 ---
══════════════════════════════════════════════════════─────────────────────────────
┌────────────────────────┐
│ CW: is-that-rude??-wha │
└────────────────────────┘
AI engineers only ask users for prompts because they don't have any ideas of
their own
i'm a programmer, I think of AI like a tool, like a for loop or something.
it's trivial to script together a local LLM that can process your stuff 1s
slower every time you click the mouse, but like... who cares, right? everybody
needs a chatbot...
then they plan to script together a computer system that operates just like a
corporation and it's like... no way, now there's something that can compete.
and they don't know how to implement it. (but they're working on it)
like, think about the absolute most automated Microsoft Teams or Discord could
be.
there's SO MUCH of your text-based information that they could process
ANYTHING.
well, anything that's been performed before.
there'll still be a need for people, who actually apply the things they've
learned. and -- stack overflow --
alt text that has a list of attributes that are poster-selected that can be
described one-by-one (to paint a picture)
┌─────────┐ ┌───────────┐
│ similar │ chronological │ different │
╘═════════╧╧═══════════════════════════════════════════════────────────────────────────┘
--- #20 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 │
╘═════════╧╧══════════════════════════════════════════════════════════════─────────────┘
|