I want to make a short film / animation where aliens are approaching earth, the only thing we know about the aliens is that they plan to destroy all life and replace it with their own twisted creation. A few minutes of typical story follows, heroes assemble, go to fight, etc. The heroes lose and the ending scene shows that the aliens have succeeded and replaced all the diverse life on Earth with a perfectly manicured lawn that covers the entire planet. A biological wasteland.
This is actually a legit excuse. If someone is working more than one job to afford rent, are we just going to tell them to walk an hour back and forth to the grocery store every day for food?
If the solution is for people to do things that require more time, the first step is to make sure people have more time.
Teetering on the edge is where you have a chance to win.
When things are going easy and you stick to your goals, good job, but will it stick?
When thins are hard and you stick to your goals, that’s like a Matrix “he is beginning to believe” moment. You show yourself that hard times aren’t enough to distract your from your goals.
Best wishes, keep trying, if you fail and try again, that’s another important moment.
There are (roughly) two types of projects:
Projects that have coding standards that are documented. If you want to contribute to one of these projects then read the coding documentation and follow it. People will help you write code that fits the standards.
Projects that don’t have coding standards. When you look at such a project you’ll see endless layers of shitty hacks that mostly work, sometimes. Add your own shitty hack to the pile and as long as everything still mostly works, you’re good.
The “trees” for an LLM are their neural networks and word vectors. The forest is a word prediction algorithm. There is no higher level to what they do.
At what level do LLMs teach? Something was teaching me linear algebra and I thought it was the GPT4. When GPT4 was able to recognize a valid mathematical proof that was previously unknown to it, what level was it operating at?
As a programmer I can confirm that LLMs definitely have loops. Look at the code, look at the algorithms, you will see the loops. The “core loop” in the LLM algorithm is “read the context, produce the next work, read the context, produce the next word”.
The core loop in animals is “receive stimulus using senses, move muscles, receive stimulus using senses, move muscles”. That’s all humans do, that’s all animals do.
I think there’s a possibility that humans are simply very advance machines. Look at the debate over whether humans have free will, it’s an interesting question and the important take away is that we still have a lot to learn about our brains and physics. I don’t want to get into that though.
You’ve ignored my main complaint. I said that you treat LLMs and humans at different levels of abstraction:
It’s not fair to say that LLMs simply predict the next word and humans have feelings and reason.
It would be fair though, to say that LLMs simply predict the next word and humans simply bounce electric-chemical signals between neurons and move muscles.
I don’t think that way about people or LLMs though. I think people have feeling and reason, and I think LLMs reason too. LLMs aren’t as capable as people are, but LLMs are capable enough to say that they can “reason” in my experience[0].
[0]: I formed this opinion when learning linear algebra from GPT4. It was quite a good teacher (at one point GPT4 even pointed out a mistake in the textbook I’m using). I encountered a proof that GPT4 wasn’t aware of, and GPT4 wouldn’t agree with me that C(A) = C(AA^T) until I explained the proof, and then GPT4 could finally reason for itself and see for itself that C(A) = C(AA^T). As an experiment, I started a new GPT4 session and repeated the experiment using a faulty proof, but I wasn’t able to convince GPT4 with a faulty proof, it was able to reason through the math concepts well enough to recognize when a mathematical proof was faulty and could not be convinced by a faulty proof. I tried this experiment 4 or 5 times. To be clear, what happened here is that GPT4 was able to learn a new math concept in one shot (within a single context window), but only if accompanied by a proper mathematical proof, and was smart enough to recognize faulty proofs as being faulty. To me, that rises to the level of “reason”.
You apply a reductionist view to LLMs that you do not apply to humans.
LLMs receive words and produce the next word. Humans receive stimulus from their senses and produce muscle movements.
LLMs are in their infancy, but I’m not convinced their “core loop”, so to speak, is any more basic than our own.
In the world of text: text in -> word out
In the physical word: sense stimulation in -> muscle movement out
There’s nothing more to it than that, right?
Well, actually there is more to it than that, we have to look at these things on a higher level. If we believe that humans are more than sense stimulation and muscle movements, then we should also be willing to believe that LLMs are more than just a loop producing one word at a time. We need to assess both at the same level of abstraction.
Yes. I learned this from Haskell. I like Haskell, but it has a lot of very granular functions.
Earlier comment said that breaking up 1 function into 3 improves readability? Well, if you really want readability then break it up into 30 functions using Haskell. Your single function with 25 lines will become 30 functions, so readable (/s).
In truth, there’s a balance between the two. Breaking things up into function does have advantages, but, as you say, it makes it more likely that you’ll have to jump around a lot to understand a single process.
Shorter code is almost always better.
Should you use a class? Should you use a Factory pattern or some other pattern? Should you reorganize your code? Whichever results in the least code is probably best.
A nice thing about code length is it’s objective. We can argue all day about which design pattern makes more sense, but we can agree on which of two implementations is shorter.
It takes a damn good abstraction to beat having shorter code.
And what are the consequences of “strikes”? Will you delete my Google account, including my email, and also screw up my Android phone and my kids Chromebook?
It’s scary to realize that Google has me by the balls here. They can screw me in so many ways, and screw my family members as well. I’d rather have my bank credentials stolen than my email credentials, at least I can get real customer service from the bank, I can even go to a physical location and speak face-to-face with someone who can help me. Google wont give me customer support, and my email account is the closest thing to an identity I have for most businesses I interact with.
It takes a lot of work to avoid Google. Yes, there are alternatives, but in D&D terms, avoiding Google is like a -2 to all stats for your entire life, and not something we can expect the general population to do.
All this shows the need for anti-trust enforcement. The same company is controlling too much. Bust 'em up!
Telling people they need to quit Reddit is not realistic. People are more likely to respond if we give them easy and realistic advice.
The most realistic course for most people is to join a few alternative communities that match your values. Join a Lemmy instance, join a Mastodon instance, etc.
This advice is not too intimidating, anyone can act on it, and even if only a few people act on it, it’s still effective for those few people. This plan has everything it needs to be effective and spread.
Traditional RTS games require a lot of work to have one cool fight, then usually the game is over. There’s so much pressure on that one fight that it’s stressful and no fun for a lot of players.
Mechabellum and similar games seems to skip all the hard work and focus on the one cool fight, and they repeat the one cool fight over and over.
There may be some other fun RTS elements that can be reintroduced, like the ability to control units during combat, or some base building.
If someone says “I’m never using Reddit again”, they’re probably just being dramatic and I don’t think I believe them.
But if someone says, “I’ve signed up for a Lemmy instance and have set it up on all my devices and created convenient shortcuts and have found some interesting communities to read”, that person has performed a greater act of defiance against Reddit than the first.
Personally, I haven’t quit Reddit, but I’ve made sure to put a few other communities ahead of it in line. Many times I will reach my fill of social media before I ever get Reddit.
Everything is easy when you don’t care about performance.
Have you ever used py-spy? It’s an excellent profiler for Python code (written in Rust 😉). It can attach to a running process and tell you what line is taking the most time. Seems pretty easy to me. (Which is not to say Python can achieve optimal C speed.)
I don’t think there’s such an easy profiling tool for C or Rust? But I’d be happy to be proven wrong here.
Go solve 20 or 30 Project Euler problems. All of them are solvable in less than a second using Python (or any language). Write your solutions in C or Rust and you will soon see that a naive or brute-force solution in Rust will literally never finish (the heat death of the universe will come first), but a clever and efficient solution in Python takes less than a second.
This is why I say algorithms matter more than language. There’s like 2 or 3 orders of magnitude to be had by choosing the fastest language (which is to say, Rust might be 1000 times faster than Python in some cases), but there’s like 10 or 20 orders of magnitude to be saved using the right algorithms sometimes.
Expressing concerns to skip level + a little shade towards boss = backstabber
Expressing concerns to skip level + a lot of praise and respect for boss = excellent employee seeking to solve problems
I like the book “Crucial Conversations”, in a sentence it teaches how to be 100% honest, and 100% respectful. How can you be both honest and respectful with either your boss or your skip level boss? Don’t leave out the show of respect.
Rust is not to blame, but that code that has been written in Rust might be to blame.
The algorithms used have more effect than the language used, and Rust might make using certain algorithms more painful and thus steer programmers towards less efficient algorithms. Using clone
is often an example of this, it’s a little easier and gets around some borrow checker difficulties. (This is true in general, but I don’t know if this is what has happened with Lemmy.)
Look at salvo [diesel] coming it at #200+ on this benchmark1, lots of programming languages have at least one framework that is faster on the microbenchmark. This isn’t especially meaningful, but it does show that, let’s say, a feature rich framework in Rust might end up being slower than a Python framework that’s laser focused on the specific use case.
The lemmy.ml post that asks people to go elsewhere is still stickied and the first thing it mentions is that they have upgraded the server. So that does suggest that compute scaling is an issue.
To avoid running code that might steal your data for profit, only run official code that will still your data for profit.