Programming thread

  • Want to keep track of this thread?
    Accounts can bookmark posts, watch threads for updates, and jump back to where you stopped reading.
    Create account
It sounds like you want to make games. It depends on the type of games you want to make. I wouldn't recommend MUGEN because it's a bit niche unless you're okay with making what is essentially more like mods than programs. Renpy is perfectly good for visual novels and I've fiddled around with it. There's nothing wrong with it.

Personally if games are your interest there are a few good places to start, but it's really a question of what you want to do, and if you don't know what that is yet, it doesn't hurt to just fiddle around with things. Probably the fastest, but not necessarily the best, way to start would be with Game Maker and just try and make Pong, and then something a little harder, like Space Invaders or another arcade game. Ask for help where you struggle, and try and think about what your code is doing, instead of just how to get results.
Yes I do; but like I'm thinking of using a visual novel format later on; learn how to improve in pixel art besides Gaiaonline avatars first, sample music files/alter it or try to compose my own music as it started as a childhood 'joke' that I'd be a future vidya game composer and I love Shoji Meguro/Iwatari/Kenji Kawaii as inspirations but I know fully well that as an intermediate beginner in piano that it's so different from like chiptune.
Thanks.
 
@Creative Username yes I'm aware of that; I'll be quite picky about which AI id utilize as a guinea pig but TBH I didn't really finish the book as I had to return it back to the local library.
 
SICP is not for beginners

"For perspective, SICP was written to accompany a course for MIT students. Students who not only had the background for MIT, but access to its authors, MIT grad student teaching assistants, and soft resources like study groups. Students who were not usually working full time jobs.

On top of that, it was written to challenge even the best of those students (including grad students).

SICP is really really hard for just about everyone...at least in parts...by design. That's what makes it a good book. You can keep going back to it for years and years and learning something as you gain relevant experience and knowledge."

"SICP is known to be quite difficult - it was originally written for MIT students who also had college-level training in other math, science, and engineering subjects including calculus - as I recall SICP assumes you know something about these."
sicp mostly starts at the fundamentals of program organization and sort of works up from there
you don't need to know about everything in it or completely dominate it to gain value from it
i think even a new programmer can get important things from sicp, at least a really good mindset
TBH I didn't really finish the book as I had to return it back to the local library.
sicp is available for free on the internet in many different formats. there are also some other neat BASED AND SCHEMEPILLED books like "the little schemer" (it only expects you to be able to read english, recognize numbers, and count when you start reading the book)
 
For someone new I would recommend not letting the AI do it for you, but you can get quite a bit of mileage out of it for doing code reviews, (if you are on your own don’t have access to more senior dev’s time to nitpick what you wrote). GitHub copilot added this in a month or so back.
I haven't seen the Copilot version of this in action, but just to toss another data point into the pile: Gitlab Duo's code reviews are worse than useless.
"It looks like you're upgrading a library dependency! Did you know that new versions of libraries can behave differently from old ones?"
It also seems very willing to offer empty praise, and spout off about things it has no way to know about, such as whether a change makes things "more modern", or if you're doing a good job interfacing with an external system it has no documentation on.
It might do better on code with glaring mistakes to flag, but it seems biased to say nonsense over saying nothing. (In fairness I did see a couple "No comments, good job" reviews)
 
Even John Carmack mentioned difficulty with SICP:
https://x.com/ID_AA_Carmack/status/350028210551013376
yeah sicp contains some very powerful magic but that doesn't mean it's some kind of advanced text that nobody can read unless they have deep knowledge in at least 6 fields of abstract mathematics
If your beginner's guide assumes familiarity with calculus it is probably not really a beginner's guide
this is the most extreme level of basic calculus and it even explains what's going on so the notationally illiterate retards in the back (such as me) can figure it out
also pretty much everybody has a basic intuitive understanding of calculus whether they know it or not, so simple polynomial differentiation is a perfectly good thing to pick as an example for this kind of program

hell sicp is a good way to learn some math too since it's much better at explaining things than most math textbooks i've seen
and who the fuck would pass up a chance to learn some math? nobody who deserves to be a programmer!
 
yeah sicp contains some very powerful magic but that doesn't mean it's some kind of advanced text that nobody can read unless they have deep knowledge in at least 6 fields of abstract mathematics

this is the most extreme level of basic calculus and it even explains what's going on so the notationally illiterate retards in the back (such as me) can figure it out
also pretty much everybody has a basic intuitive understanding of calculus whether they know it or not, so simple polynomial differentiation is a perfectly good thing to pick as an example for this kind of program

hell sicp is a good way to learn some math too since it's much better at explaining things than most math textbooks i've seen
and who the fuck would pass up a chance to learn some math? nobody who deserves to be a programmer!
None of the response really addresses the claim that SICP is not a beginner's text. You're saying it's a classic, with a lot of valuable information, and I agree, but pitching it to a beginner will almost certainly result in a lot of frustration with the material itself, followed by further frustration with Scheme's balkanized and relatively small / obscure (even with Racket for example) ecosystem.
 
There's been another NPM related supply chain attack, at what point do people not realize that node is a problem?
Never. Node.js is one of those cargo cults, like Rust, where its userbase hasn't developed skills at programming per se, they've developed largely non-portable skills in using the cult tool and if forced to pick up anything else would be essentially starting from scratch, so they are absolutely going down with that ship.

well oop is actually quite good at certain very specific problems where the procedural/functional style suffers
this is why many schemes include powerful oop systems with metaclass bullshit that blows the likes of java completely out of the water
The things that OOP is best at are providing abstract data types (there's a reason OOP tutorials tend to start with a class implementing a stack) and providing a solid framework for callbacks (historically, discrete simulation would also be claimed, but I think that falls under the umbrella of callbacks). The problem is that the methodology gurus (every last one of them a scammer) try to push whatever they're selling into a universal tool that is the best possible solution to every problem. This is also why, once the fragile base class problem was understood, we saw the cult deciding that implementation inheritance is always and everywhere bad, even though it's great for event handlers, where the base class can have all the normal event callback methods do nothing and all of the error recovery callback methods throw exceptions, so the client only has to define methods for the events that he cares about.
 
The problem is that the methodology gurus (every last one of them a scammer) try to push whatever they're selling into a universal tool that is the best possible solution to every problem.
I am highly opposed to dogmatism of any kind in writing software which is why I tend to see Scala for example as what an FP language should be
 
None of the response really addresses the claim that SICP is not a beginner's text. You're saying it's a classic, with a lot of valuable information, and I agree, but pitching it to a beginner will almost certainly result in a lot of frustration with the material itself, followed by further frustration with Scheme's balkanized and relatively small / obscure (even with Racket for example) ecosystem.
idk it starts out by explaining very basic shit, so i think it has at least some value for beginners
you could probably understand sicp even if you have no idea what a variable is or how a loop is supposed to work

it will also teach him the value of being able to use multiple languages quick because when you use scheme you use one of at least six mildly different languages
also if you're trying to become a programmer and can't handle extreme levels of pure unfettered tard frustration you need to fix that quick since programming is at least 93% being mad at problems other programmers have created for you
so you can really think of it as me giving him the first retarded bullshit problem another programmer has created for him
providing a solid framework for callbacks
the html5 dom seems to tell me that good old functions are a fine enough way to do this
of course it is a document object model so that's more of a hint where objects are nice
tbh i think the best way for guishit is to mix object-oriented and functional programming and perhaps a little dash of imperative logic
 
The things that OOP is best at are providing abstract data types (there's a reason OOP tutorials tend to start with a class implementing a stack) and providing a solid framework for callbacks (historically, discrete simulation would also be claimed, but I think that falls under the umbrella of callbacks). The problem is that the methodology gurus (every last one of them a scammer) try to push whatever they're selling into a universal tool that is the best possible solution to every problem. This is also why, once the fragile base class problem was understood, we saw the cult deciding that implementation inheritance is always and everywhere bad, even though it's great for event handlers, where the base class can have all the normal event callback methods do nothing and all of the error recovery callback methods throw exceptions, so the client only has to define methods for the events that he cares about.
I hate inheritance, I think it should be an implementation detail. Stuff like protocols in python or the concept keyword in C++ mog Java style OOP
 
Um, I'm new to this thread, but I'm currently reading a 9 books in one "Coding for Dummies" after reading a little about "Coding Using AI for Dummies" and currently having a little graph notebook that has an exclusive section for like GitHub and links for me to use and reference for future use.
Welcome to the club, if you have any questions just ask. If you hear the words 'lisp' or 'haskell' just turn around and walk away, it's safer for your mind.
if you see the words "scheme" or "ml" walk directly towards it
your mind will be enhanced by at least 6 levels of recursion and you will be able to visualize photorealistic klein bottles in your mind
Psst, hey kid... neither of these squares know a really good time. You've gotta try this hip cool thing, FORTH. Just one program won't hurt, bro. I can quit any time I want.
lua is easy to learn and luanti is easy to mod
Code:
Lua 5.2.4  Copyright (C) 1994-2015 Lua.org, PUC-Rio
> 3
stdin:1: unexpected symbol near '3'
> 3 + 3
stdin:1: unexpected symbol near '3'
> print(3 + 3)
6
> x = { 5, 4, 3, 2, 1, 0 }
> x[1]
>> ;
stdin:2: syntax error near ';'
> print(x[1])
5
> print({ 5, 4, 3, 2, 1, 0 }[1])
stdin:1: ')' expected near '['
> local y = 42
> print(y)
nil
> local y = 42; print(y)
42
> return
> return
> return
> return 3
3

The REPL is missing both the E (it apparently means "execute" instead of "evaluate", because of course it insists on a statement-expression distinction) and the P.

A good interactive interpreter is crucial for rapid experimentation, and weird random jank like "um akshyually it reads a single fragment, compiles it, and executes it in its own isolated lexical environment" and "some expressions can't be evaluated directly" (for example, you can't index a table literal, it has to go through a variable reference) adds lots of needless confusion.

That kind of confusion is especially damaging at a time when "think it through, consult the specification and documentation, try to solve the problem yourself" is most encouraged. With all my experience, I can look at these things and say "lol Brazil jank" and move on, but someone new may very well waste a great deal of time and energy trying to rationalize and understand something that has no explanation.

Personally, I dislike magic, but I especially dislike it in a learning context. Trying to learn starting with some framework or engine might let you start doing things you care about faster, but as soon as you hit something that depends on some not-magic-but-very-real detail of the framework, you have to go digging through its source code to figure out what to do. Reading, debugging, and mentally tracing some random third party's large, unfamiliar code with any kind of efficiency is an advanced skill for most programmers. This is doubly so in the kind of situation where understanding the design of the framework requires effectively understanding everything it does from the beginning. So either you'll squeeze your brain dry powering through or you'll give up.

Or, I suppose, you'll ask for help. It could just be my self-learning preferences that keep that from sounding viable to me.
 
I haven't seen the Copilot version of this in action, but just to toss another data point into the pile: Gitlab Duo's code reviews are worse than useless.
"It looks like you're upgrading a library dependency! Did you know that new versions of libraries can behave differently from old ones?"
It also seems very willing to offer empty praise, and spout off about things it has no way to know about, such as whether a change makes things "more modern", or if you're doing a good job interfacing with an external system it has no documentation on.
It might do better on code with glaring mistakes to flag, but it seems biased to say nonsense over saying nothing. (In fairness I did see a couple "No comments, good job" reviews)
That sounds awful. Copilot did significantly better, and made recommendations on trapping errors, input validation and other actually useful things in a shell script I slapped together in a totally half ass manner. I was pleasantly surprised.

Sounds like duo is retarded. I feel you, I used to have code whisperer, before they made that Claude based. It was a total pile of crap.
 
The REPL is missing both the E (it apparently means "execute" instead of "evaluate", because of course it insists on a statement-expression distinction) and the P.
Nigger, this was fixed in version 5.3 (which came out in 2015).
Code:
Lua 5.3.6  Copyright (C) 1994-2020 Lua.org, PUC-Rio
> 3
3
> 3 + 3
6
In the versions before, you had to prepend =
Code:
Lua 5.2.4  Copyright (C) 1994-2015 Lua.org, PUC-Rio
> =3
3
> =3 + 3
6
> print(({ 5, 4, 3, 2, 1, 0 })[1])
5
> y = 42
> =y
42
 
Nigger, this was fixed in version 5.3 (which came out in 2015).
Code:
Lua 5.3.6  Copyright (C) 1994-2020 Lua.org, PUC-Rio
> 3
3
> 3 + 3
6
In the versions before, you had to prepend =
Code:
Lua 5.2.4  Copyright (C) 1994-2015 Lua.org, PUC-Rio
> =3
3
> =3 + 3
6
> print(({ 5, 4, 3, 2, 1, 0 })[1])
5
> y = 42
> =y
42
yeah that's nice but lua 5.3 is not supported by luajit which is stuck in 5.1 forever and guess what luanti likes to use
i guess you could use a 5.4 repl for testing shit and then just mind the subtle differences between it and 5.1 for when you want to try it in the block game
lua 5.1 and 5.x are not that different really, even less of a difference than, say, r6rs and r7rs scheme
the biggest thing they did in newer versions of lua are just make the language slightly simpler and more elegant

yeah lua somehow has a bit worse implementation situation than scheme does. there are only 2 of them and one of them is being cheztarded
 
Guys, I have an ask referring to something I posted over in the Archival Tools thread. Please don't throw rocks at me.
If I've got a list of urls for archive.today, I run them through a script that takes the text list of urls, prefaces them with the archive url, creates an html file, then opens that in a browser. Once you solve the first captcha, you can click a bunch of them before you get hit with another captcha. This code is atrocious and I haven't touched it for a few years, much less clean it up, but it works absolutely fine. Plz no bully, I'm just an idiot that plays on computers as a hobby and sar'd this up from bits and pieces from here and there. If anyone could rewrite this properly in bash or python, please do the needful, thank you sar!
You don't even want to know how much adderall was involved with getting this to work with zero idea of what I was doing.
Bash:
#!/bin/bash
#
# archive.today link script
#

cwd=$(pwd)
shortname=$(echo "$1" | sed 's/\.txt$//')

if [[ -z "$1" ]]; then
  echo "Error: No filename provided"
  exit
fi

if [[ ! -f "$1" ]] ; then
  echo "Error: File does not exist"
  exit
fi

if [[ ! -s "$1" ]] ; then
  echo "Error: File is empty"
  exit
fi

urls=$(while read -r line; do
  echo -n '  <DT><A HREF="https://archive.today/?run=1&url='
  echo ''"$line"'">'"$line"'</A>'
done <"$1")
touch "$shortname".html
cat >"$shortname".html <<CREATEHTML
<!DOCTYPE html>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<html>
<head>
<title>$shortname</title>
<style>
body {
    background-color: #000000;
    color: #ffffff;
}
</style>
<b>$shortname</b><br>
<br>
Archived urls:<br>
<dl><p>
$urls
</dl><p>
</head>
</html>
CREATEHTML

echo 'file://'"$cwd"'/'"$shortname"'.html'

brave-browser file://"$cwd"/"$shortname".html &>/dev/null &
#flatpak run com.brave.Browser file://"$cwd"/"$shortname".html 2>/dev/null &
 
Back
Top Bottom