I’ve been working on developing a CPU architecture based around my own variant of lisp called “dollhouse lisp” the big twist is that DHlisp executes code by reducing a syntax tree, so all code is destroyed once it’s been executed. It’s a very elegant solution, but a very difficult implementation. (Especially when it comes to loops and garbage collection.)
- 0 Posts
- 92 Comments
stingpie@lemmy.worldto
Showerthoughts@lemmy.world•With how shitty some Christians are, you really have to wonder if Lucifer or Satan is truly "evil"
4·5 months agoOne thing we know about Jesus is that he was very good at using rhetorics. Other than the accounts in several books about him using rhetorical techniques very advanced for the day, there’s also evidence that he was skilled enough to start a religion. But any information finer than that is hard to prove. The books are over a thousand years old, written at different times by different people, followed by several translations, so we can’t know his exact word choice or style of speech with certainty. The closest to the ‘source’ are ancient Greek texts which were likely translated from some other language.
stingpie@lemmy.worldto
Showerthoughts@lemmy.world•With how shitty some Christians are, you really have to wonder if Lucifer or Satan is truly "evil"
12·5 months agoPopular Christianity is heavily based on paganism, which is incredibly ironic considering that paganism is generally posed as the antithesis of Christianity. The story of Lucifer is syncretized with the story of Prometheus, although Lucifer doesn’t really benefit humanity at all. According to the popular interpretation, Lucifer is the origin of all evil, became a snake in the garden of Eden, and then tempted Eve to eat the fruit of the tree of the knowledge of good and evil. However, the snake isn’t actually connected to Lucifer in the text—that interpretation was added later to explain the problem of evil (why it exists if God is supposedly good)
The idea that Lucifer is insubordinate and violated the natural hierarchy is very old, but the idea that Lucifer is the origin of evil is relatively new.
Christian theology contains many holes like this because there’s a tendency towards treating every word in the Bible as literal, where it may have been written allegorically or as a parable, as Jesus often did. (Just to be clear, Jesus did NOT write the Bible, I’m just pointing out that the writers of the Bible may have tried to replicate his style.) This issue is compounded when you include the Old testament, as it contains portions which are clearly mythological, but are nonetheless treated as fact by certain modern Christians.
stingpie@lemmy.worldto
Retro Computers@lemmy.world•Why doesn't everyone use battery backed SRAM for retro projects and breadboarding?English
3·5 months agoPutting the power lines underneath the 68k is clever. I had never thought of doing that before.
As for EEPROM vs NVRAM, if you have an EPROM programmer, there isn’t any effort required to program the ROM, and NVRAM is just more expensive compared to ROM.
Also, what is your general plan for the design? Is it to have multiple CPUs running simultaneously, or will only one CPU execute code at a time? In addition, will they be sharing a bus, or doing some mailbox message passing?
I once tried to make a ridiculous multi-processor computer, which took advantage of the TMS-9900’s weird clocking to allow it to run faster CPUs in between slower clock cycles. The 9900 has a four phase clock and a maximum speed of 3mhz. I wasn’t skilled enough to pull it off, but it’s still a really interesting idea.
stingpie@lemmy.worldto
Programmer Humor@programming.dev•Computer Science Courses that Don't Exist, But Should
31·5 months agoFP & OOP both have their use cases. Generally, I think people use OOP for stateful programming, and FP for stateless programming. Of course, OOP is excessive in a lot of cases, and so is FP.
OOP is more useful as an abstraction than a programming paradigm. Real, human, non-computer programming is object-oriented, and so people find it a natural way of organizing things. It makes more sense to say “for each dog, dog, dog.bark()” instead of “map( bark, dogs)”.
A good use case for OOP is machine learning. Despite the industry’s best effort to use functional programming for it, Object oriented just makes more sense. You want a set of parameters, unique to each function applied to the input. This allows you to use each function without referencing the parameters every single time. You can write “function(input)” instead of “function(input, parameters)”. Then, if you are using a clever library, it will use pointers to the parameters within the functions to update during the optimization step. It hides how the parameters influence the result, but machine learning is a black box anyway.
In my limited use of FP, I’ve found it useful for manipulating basic data structures in bulk. If I need to normalize a large number of arrays, it’s easy to go “map(normalize, arrays)” and call it a day. The FP specific functions such as scan and reduce are incredibly useful since OOP typically requires you to set up a loop and manually keep track of the intermediate results. I will admit though, that my only real use of FP is python list comprehension and APL, so take whatever I say about FP with a grain of salt.
I think ‘implies’ asks whether it’s possible that A causes B to be true. In other words, it is false if there is evidence that A does not cause B.
So:
If A is true and B is false, then the result is false, since A could not cause B to be true.
If A and B are both true, then the result is true, since A could cause B.
If A is false and B is true, then the result is true since A could or could not make B true (but another factor could also be making B true)
If A and B are both false we don’t have any evidence about the relationship between A and B, so the result is true.
I don’t know for sure, though. I’m not a mathematician.
I personally think the change from master & slave was kind of silly, as far as I’m aware, it was a bunch of people with no background in CS who thought the application of the term to something that has neither race nor agency was an insult to black people.
But I digress. It led to better guidelines in the Linux kernel, which I think are useful. You should tailor the terms you’re using to the specifics of the task. If you have a master process that only has outward interfaces through the slave processes, you could use the term ‘director’ and ‘actor.’ if the master process is managing slave processes which compete over the same resources, you can use the terms ‘arbiter’ and ‘mutex holder.’ If the slaves do some independent processing the master does not need to know the details of, you can use the term ‘controller’ and ‘peripheral.’
Basically, use a term that is the most descriptive in the context of your program.
Edit: also, I don’t know why no one mentions this, but you can also use master/servant. Historically, there wasn’t a difference between servant and slave, but in modern days there is, so it’s technically different, technically the same.
Unused memory is not useless, it is just unused. If I want to pull up a guide on how to giggle the grables in my favorite game Grable Giggler, I would be very happy if I had unused memory which I can now use for my browser.
Also, smaller RAM usage generally correlates to smaller file size, which is very useful on computers with limited storage.
And finally, there’s also low spec gaming and accessibility. Minecraft, at least prior to the microsoft acquisition, was a very low spec game. I wouldn’t say it was optimized, but a game of minecraft took less ram than chrome. There was nearly no computers at the time which couldn’t run minecraft. At the time of minecraft’s early boom, kids were getting low-spec hand-me-downs, and so minecraft was one of the most open-ended games they could play. What I’m trying to say is that minecraft—and Doom for that matter—owe a large part of their success to low memory usage.
GIF compression is endearing, though. It only has 256 colors, but it tries its hardest anyway.
What’s your preferred default pronoun? As far as I’m aware, there isn’t a universally accepted replacement, since any pronoun comes with drawbacks. ‘he’ & ‘she’ are gendered, ‘it’ typically refers to non-sentient things, and ‘they’ can cause confusion about number. Of course, there’s also neopronouns, but people have come up with a billion, and there’s no consensus or standard, so I can’t confirm the person I’m talking to will understand.
stingpie@lemmy.worldto
retrocomputing@lemmy.sdf.org•Whats a good Resource on Learning 6502 Assembly, for someone who has little to no experience Programming?
2·7 months agoThis guy has made a whole lot of tutorials for various assembly languages and systems, including the pet. The website has text tutorials, but if you prefer he also has a YouTube channel.
stingpie@lemmy.worldto
Programmer Humor@lemmy.ml•I'm new to using Ruby and this tickled me pink
2·7 months agoI really like that lemmy is small enough that I can recognize people by their individual writing style—Hello, thorn guy!
I struggle to learn rust because the semantics and syntax are just so awful. I would love to be enthusiastic about rust, since every seems to love it, but I can’t get over that hurdle. Backporting the features into C, or even just making a transpiler from C to rust that uses annotations would be great for me. But the rust community really does not seem interested in making stepping stones from other languages to rust.
stingpie@lemmy.worldto
Programmer Humor@lemmy.ml•Child labour with 10 years of experience, 'AI-native' accepting 250k lines of Cursor code
1141·8 months agoFrom my experience, being “good” at vibe coding is more about being unable to detect flaws in AI generated code rather than being able to code well. Add AI to the workflow of someone who actually understands scalability and maintenance and that won’t be able to get past a couple functions before they drop the AI.
Also, assuming this kid gets weekends off, he would be writing 12k lines of code each day. I don’t think the average programmer could even review that number of lines in a day, so there’s likely no actual supervision for what the kid is feeding into the codebase.
I’d estimate within four months the project will be impenetrable, and they’ll scrap the whole thing.
I don’t understand how not using a keyword to define a function causes the meaning to change depending on imports. I’ve never run into an issue like that before. Can you give an example?
After reading a lot of comments in this thread, I’m not sure I know what spaghetti code is. I thought spaghetti code was when the order of execution was obfuscated due to excessive jumps and GOTOs. But a lot of people are citing languages without those as examples of spaghetti code. Is this just a classic “I don’t like this programming language, and I don’t know much about it.” Or is there something I’m missing?
stingpie@lemmy.worldto
Programmer Humor@programming.dev•Mom can we have Scratch? We have scratch at home. Scratch at home:
8·11 months agoYou could do this in basic ASCII, with only three defines. replace "_ " with “{”, replace “_;” with “}”, and “_” with nothing. If your compiler processes macros in the correct order, it will become valid code. (You would use semicolons as the vertical lines)
I’m guessing old CRTs. I’ve heard they can emit radiation if they aren’t lead lined.