- Joined
- Aug 7, 2024
He fell for it and tried installing gentoo.Idk, but there are other like nvidia-smi,
He might have been into programing, Who knows. He definitely was somewhat tech savvy given he understood 4chan.
Follow along with the video below to see how to install our site as a web app on your home screen.
Note: This feature may not be available in some browsers.
He fell for it and tried installing gentoo.Idk, but there are other like nvidia-smi,
He might have been into programing, Who knows. He definitely was somewhat tech savvy given he understood 4chan.
I'm not an LLM evangelist and acknowledge it has limitations, but Claude AI can 100% handle more than 5 small Go files, and you can link it to the GitHub repo so it always up to date and has context of what's committed. I know this because I've been trying it out while learning Godot with C# and its managing around a couple dozen C# source files, as well as Godot scene files (so still a small project, used about 20% of the free tier for coverage, but bigger than your project). Its still able to introduce features, bugfix, refactor, analyse architecture etc at this size. You still need to validate its changes yourself and make sure you understand what its outputting, obviously.I believe I am at that point where an LLM can no longer help me other than menial tasks. I tried working on this on a branch but I have fucked up the organization.
I didn't know this could be done, That sounds great as I have been using Claude!but Claude AI can 100% handle more than 5 small Go files, and you can link it to the GitHub repo so it always up to date and has context of what's committed.
I guess I'll organize once this gets too big, I will keep in mind the organization structures.Fortunately, there's a great resource for this: https://go.dev/doc/modules/layout
I didn't know this could be done, That sounds great as I have been using Claude!
Issue is I have a problem that isn't on Discord's API or anywhere else on the internet. I am trying to get the private dms but the only place where that is done is the Discord chat exporter. I do not think the LLM has the necessary training data to make a function to do this, let alone other problems similar to this.
I also want to make it so that it watches a server as some of the lolcows I am watching DFE their servers every month or show up across multiple different servers. I dunno how I'll have Discord send my server the messages.
Then again I can have the LLM do menial tasks, like having it set up all the api request functions or basic database functions.
I guess I'll organize once this gets too big, I will keep in mind the organization structures.
I have checked out some of your repositories and I think they're very interesting.
chan struct{}. Note that struct{} here is just an empty object (like setting a var to {} in JS). In the stdlib source, you can see the immensely important context.Done() just returns a simple read-only channel. The "Done" signal happens when that channel eventually closes.type clientUser struct {
ID uint32
Username string
found chan struct{}
}
func newClientUser(id uint32) clientUser {
return clientUser{
ID: id,
found: make(chan struct{}),
}
}
type userTable struct {
sync.Map
Client clientUser
}
// TODO: Make this value passing less retarded.
func NewUserTable(clientID uint32) *userTable {
return &userTable{
Client: newClientUser(clientID),
}
}
func (ut *userTable) ClientName() string {
select {
case <-ut.Client.found:
return ut.Client.Username
default:
return ""
}
}
func (ut *userTable) AddUser(u *User) *User {
select {
case <-ut.Client.found:
default:
if ut.Client.ID == u.ID {
ut.Client.Username = u.Username
close(ut.Client.found)
}
}
// ...
return u
}
ut.Client.Username is an empty string across multiple threads/routines is a textbook data race—one that simply didn't matter enough for me to fix for a while due to time constraints lol.select statements and a "Done"/"Found" channel that acts sorta like a valve. While ut.Client.Username is empty, the ut.Client.found channel remains open; once found, the channel is closed. This acts as a thread-safe flag that helps us return this shared string safely. (Foolproof and relatively concise).default blocks in the select statements only trigger when the other channel(s) read from above are empty and there's nothing to receive. Closing the ut.Client.found channel causes it to send out an empty struct every time it's read from, so the defaults no longer get reached. This way, we truly turn select into a whole new type of switch.defer cleanup functions.It's only bad if you use it as a crutch, but for spitballing/prototyping it's great. Especially when you are experienced enough to go over the generated code, input commentary so it's documented for future browsing and appropriate it. Basically, if you are a senior dev (as a reference) it can be used like a team of junior devs without the hassle of herding cats.Stop using AI, it's bad for your brain.
I learn best by doing and experimenting thoughIt's only bad if you use it as a crutch, but for spitballing/prototyping it's great. Especially when you are experienced enough to go over the generated code, input commentary so it's documented for future browsing and appropriate it. Basically, if you are a senior dev (as a reference) it can be used like a team of junior devs without the hassle of herding cats.
To resume, just don't be a retard and use it for it's intended use, not as a slave. But yes it's bad for your brain if you use it like the majority of people.
I absolutely understand, it's the most basic and reliable way of learning. Learning theory, trying and then self-correcting is basically what the brain do too.I learn best by doing and experimenting though
I firmly believe that the mechanical act of programming itself is vital for doing it correctly, you have more time to think about what you're doing as you do soI absolutely understand, it's the most basic and reliable way of learning. Learning theory, trying and then self-correcting is basically what the brain do too.
Yet there's a whole thread of us here waiting, ready to tear it to shreds. Do we not exist?I've found AI useful at criticizing my code
yeah but you take 3.5 hours to respondYet there's a whole thread of us here waiting, ready to tear it to shreds. Do we not exist?
Stop using AI, it's bad for your brain.
No, this is cope. Not the "it's great" part, that's true of course, but the "it's only bad if" part. Just like with other great and society-transforming inventions like automobiles and personal mobility vehicles, the "if" part always happens. Except this time it isn't just going to turn everybody fat and gross, but cause a severe cognitive decline that already can be measured in the late Z generation.It's only bad if you use it as a crutch, but for spitballing/prototyping it's great.
(defun find-primes(end)
"Purpose is to find the primes with a given number"
(let ((numbers (make-array (+ 1 end) :initial-element t)))
;;set 0 and 1 to nil
(setf (aref numbers 0) nil)
(setf (aref numbers 1) nil)
;;now for the loops
(loop for p from 2 to end
do (if(and (eql (aref numbers p) t)(<= (expt p 2) (length numbers)))
;;another loop
;;this time create a local variable
(let ((r (expt p 2)))
(loop for r from r by p to end
do(setf (aref numbers r) nil)
))))
;;now print the final results
(dotimes (i end)
(if (eql (aref numbers i) t)
(format t "~d " i)
))))
same tbqh, i participate only when the discussion is normie enough for me to be able chip in to the conversationI always feel like an idiot entering this thread,
hey man thats great! for hobby programming the most important thing is to have fun (while still learning something along the way)Regardless, I'm happy I made the Sieve of Eratosthenes in Lisp! Or at least close to the solution. I'm still pleased with myself.
The coolest prime sieve I ever saw was the concurrent prime sieve of Tony Hoare, as presented by Rob Pike in his talk about concurrency patterns. Link to a github I found with the talk and the code examples he used. Yours is interesting and probably more efficient in some ways.I always feel like an idiot entering this thread, because everyone is talking about these computer science concepts I can't follow along. Regardless, I'm happy I made the Sieve of Eratosthenes in Lisp! Or at least close to the solution. I'm still pleased with myself.
Feel free to comment and critique!Code:(defun find-primes(end) "Purpose is to find the primes with a given number" (let ((numbers (make-array (+ 1 end) :initial-element t))) ;;set 0 and 1 to nil (setf (aref numbers 0) nil) (setf (aref numbers 1) nil) ;;now for the loops (loop for p from 2 to end do (if(and (eql (aref numbers p) t)(<= (expt p 2) (length numbers))) ;;another loop ;;this time create a local variable (let ((r (expt p 2))) (loop for r from r by p to end do(setf (aref numbers r) nil) )))) ;;now print the final results (dotimes (i end) (if (eql (aref numbers i) t) (format t "~d " i) ))))
Can you elaborate? I don't see it.Monads are just coroutines btw. They’re both functions whose execution continues after they return a value.
“Calling a coroutine” is equivalent to yielding into the coroutines execution context and a coroutine “returning a value” is equivalent to it communicating a value to the calling process. In this model, the only difference between a subroutine (function) and a coroutine is that a subroutine’s execution context ends when it returns a value, while a coroutine’s context continues to exist.Can you elaborate? I don't see it.