#programmers-off-topic
1 messages · Page 45 of 1
makes sense
Or "frantically hit Ctrl-C, Ctrl-Break, and eventually just close the terminal/ssh window"
the di and ci motions are pretty good
I’ll admit I probably overuse certain things like d4d etc though lol
I never learned vim properly I just picked things up along the way for the most part
I think that's the way for vim
you learn a few things that work nicely for you and then never attempt to learn more again
I have no idea what d4d does
does it delete 4 lines
yup
I’m sure there’s a better way to do it
but that’s what I do
especially since I don’t use hjkl as my movement keys because ew
excuse me what the fuck
Yeah, I exaggerated a little when I said 2 commands, I know dd, p and P also, so 5 commands.
I make no apologies, using hjkl (or jkl; maybe? I can’t remember) as your movement keys is cursed
god and manufacturers gave us arrow keys for a reason /lh
and they decided to put those arrow keys far away from the rest of the keys so that you would not do this
and yet, alas, I do

I know some of the more niche vim movements though, like a few vimdiff-specific ones etc
I even use vim movements for navigation my dekstop
I didn't even configure it it's the default behavior
It makes more sense if you consider the class exists to communicate with a specific bit of hardware
And we mock it for tests
I think my wm has both behaviours enabled as default but I may have disabled the vim ones
honestly I rarely actually use h and l themselves it's pretty much always w and b
j and k I use a lot though
then j is up and k is down or something
also I forgot what w and b do
I do pretty much everything using one of a, o, c, s, x, and d 
oh and i, obviously
aquo can attest to the fact that it took me like 3 different attempts at learning vim to finally get it to click
and then I proceeded to use vim keybinds in literally every editor that supports it
using vim keybinds in IDEs feels wrong
well it shouldn't
but I’ll admit there’s something so good about just being able to jump around a file like that
for jetbrains it's even a first party plugin
maybe you stopped learning new vim stuff a little too early
it just feels weird if visually it looks like I’m always in edit mode, whereas in vim I know when I’m in normal mode and can use commands
you're barely even using vim at that point...
that is very true, like I said, I only know a tiny bit of vim haha
I can do things like ciw etc
various movements, all sorts of stuff like that
I just never learned the more complicated stuff lmao
I know there's a lot I have never used
in recent months I've been starting to use recorded macros (q)
they can admittedly be very handy at times
I used to use those a ton
iirc
but mostly I wasted more time than I saved 
and I always recorded them on the spot, I never remembered what previous ones were or anything
is it weird that I would do dj twice
didn’t someone make an educational vim game at some point
I remember the very early stages of it but then it became paid or something
vim adventures maybe?
yeah I think there's a few browser ones out there
I think vim actually has some sort of tutorial feature built-in too
oh Tutor that's it
I did start with vimtutor
I felt roughly equally as useless in vim at the end as when I started
I did a tiny bit of vimtutor I think, but I was talking about one of the browser ones year
yeah the trick is to wish there was some movement you could do, then look it up as you go along and remember it
rather than learning everything all at once
i've def learned some bad habits tho
like rebinding B and E
yeah, definitely best through practice, unfortunately I’m at the point where I can achieve everything I need to, just not well
gotta obsess over it and make it your personality
brag about how few keypresses you need
the circular loop where the only thing you use vim for is to edit your vimrc to make you more efficient at vim
I’m sure I’ve done things to my vimrc I just don’t know what
it’s probably in my dotfiles repo actually 
I'm going through the helix tutor and I'm running into so funky things
like using helix
yes
…helix?
helix has a whole section based on multiple cursor edits
I will never understand the appeal of multiple cursor edits
what is helix 
I simultaneously don’t understand it and have used it in IDEs
helix is an editor that essentially has a different take on the vim movement type editing system
they wanted to create vim if it was made today
oh, another one of those
but like, half of their movement keys are backwards to vims which confuses me
not really backwards but it's all different enough to mess me up
tbh I never knew what the difference between neovim and vim even was and I don’t intend to learn
I barely even know the difference between vim and vi
I would hope so, otherwise it doesn’t really need to exist 
They're more or less the same, but neovim has more async stuff, better lsp support, better plugin language
fair enough
the difference is growing bigger over time
I keep mine pretty tidy
and doesn’t have mixed line numbers enabled by default
I do need to see if i actually need all these lsp plugins tho, i feel like I could get away without some of them
oh I mean that the vim setup itself is ugly, I think the vimrc for root is default rn
I only changed the vimrc for my user
I do that in vscode sometimes, though not often tbh because it’s very fragile
in reality there aren’t that many cases where you need to identically edit five lines in exactly the same way and place
oh heilx does also support multiple cursors simply by holding alt and clicking with your mouse
neat
yeah that’s how most IDEs do it
yeah but terminal editors have a tendency not to care about anything that involves the mouse
true
I’m still impressed my mouse works with vim at all
I kind of assumed if you try to click the terminal window while using vim that it would immediately run sudo rm -rf --no-preserve-root / or something
Geesh, what is with the spam today? It's coming in every 10 minutes.
what are you saying about us
named after the original vim plugin that introduced the concept even if there are better versions of it nowadays. Essentially when you enter sneak mode you can jump to any word by entering the two letter code that is displayed there
apparently helix has it built in
idk
how does easymotion work
but I like the idea
its a similar idea, but you give it a pattern to follow. So it'll light up every line, or every word, or every match of a search or whatever
sneak mode is quite nice but I can't use it cause I'm stuck with a pluginless visual studio implementation
wait is it overwriting the first two characters of each word? I take it back this is a nightmare
it's just highlighting them
no, the one Crumble sent
once you type two letters, the cursor moves to those two letters then the text returns to normal
it's not actually overwriting them it's just showing the keys you need to press to get there
the text is still the same
yeah, but while you’re in that mode they’re replaced instead of prepended, I would never be able to find what I wanted lmao
prepended would move everything around
fun fact, the original sneak mode plugin actually genuine modifies your buffer so the lsp's break on the spot
I just realised I don’t know what lsp is
language syntax plugin?
newer implementations of that no longer actually modify the buffer
also that is cursed
language server protocol
good thing vim doesn’t have autosave or you’d be in for a world of trouble with that approach 
basically vscode introduced some kind of protocol/standard for writing plugins that are intended for some specific programming language. Like if you have a python plugin installed it will do through through lsp
lsps have since been adopted by a lot of editors
so that the same plugins work in various editors
as long as the protocol is supported by the editor
oh, I see
lsps do everything from autocomplete, debug info, info on hover, jump to references etc
it's great
I know what they are in terms of vscode etc haha, I just wasn’t familiar with the acronym
I haven’t done a deepdive into coding stuff in a long time
vscode kinda hides it from you
neovim and helix support lsps too but they're more explicit about it if you want to use them
neovim's implementation also seems to still leave like 50% of the process to random ass plugins you need
I get the idea, though - it’s everything language-specific that your IDE does. Formatting, code autocompletion, syntax highlighting, hover info, etc etc
Yeah, looking at my config, I use 7 plugins just to set up and manage the LSPs
I'm pretty sure I definitely need 6 of them
oh, I assume syntax highlighting is just something vscode happens to typically bundle together with lsps then
yeah
in the case of neovim and helix the syntax highlighting is handled by treesitter
which is also language aware and also has a bunch of editing stuff associated with it. Treesitter is what's used when you ask like "delete everything within this function" with vim commands
😌
it's a lot
treesitter at least tends to be incredibly easy to set up
yeah treesitter is super easy, although it does require an external package
or maybe it doesnt
we both know I do that using relative line numbers and dXd with X being the number of lines in the function 
I think it needs a plugin for easy installs but treesitter itself is built into neovim yeah
and I don't even have that many plugins compared to some
you don't even use easymotion anymore you use hop
I’ll go dig up my vimrc in a bit
hop is just easymotion in lua
and I think easymotion also was one that actually edited the buffer
I don't think they had a choice at the time to be fair
I hope you don’t think I’m kidding about the dXd thing btw, that is my approach to 99% of vim things
I do enjoy how I can use this same config file in vscode
dXd is a fine way to do it
I would do either dj over and over, or just highlight the whole section
ok in reality I do often to V and then select and then delete
Yeah, it's what I used to use
now you've become lazy
lazy actually downloads them, I think pathogen just did easier loading of plugins but you had to download them yourself
And I think vim got built-in functionality to not even need pathogen anymore
I think I have no plugins? but I can’t remember if maybe pathogen plugins are just set somewhere else
I don't have plugins because I can't use them in visual studio anyway
I really do like C# but it's a curse at the same time
vim powerline would be a plugin
so how am I loading it… 
I see a call to pathogen infect. Is that set somewhere else
time to go hunting
if they're put into their special plugin folder, vim will load them automatically
do you know what that plugin folder is by default?
What OS are you on
actually
if you open vim and run :echo $HOME I think that should say
or maybe not HOME what is it
linux, should be using the xdg home stuff
it's probably either ~/.config/vim or ~/.local/share/vim then
neither of those
I do have a ~/.vim directory but it isn’t in that I’m pretty sure. Interesting.
wait, I think I know what’s going on - I’m pretty sure I got powerline through the arch package manager
yup. That explains it
it put them in /usr/share rather than my user directory
ah, you're one of those people
for some reason I never liked the idea of getting my editor plugins from the system repos
I try to do everything through the system repos when possible
makes things easier
unless I’m very familiar with the package manager used for that specific thing for some reason
not sure if better or worse than firefox addons from the system repo
it was a thing for Ubuntu aeons ago
cursed
oh hey it's still a thing for arch apparently: https://archlinux.org/packages/extra/any/firefox-ublock-origin/
wow ublock is gpl
idk what you guys expected, arch people love their repos 
(minor correction: still a thing for Ubuntu, I was using the old names: https://packages.ubuntu.com/search?keywords=webext&searchon=names)
tried vim adventures again, and not only is it paid for anything more than the very start, it's a time limited access payment
which feels very strange considering vim itself is open source etc
but you pay $35 for 6 months of access
...why is it pay for time access 
idk but it seems sleazy
especially since there's no mention of pay when you start
it's also so expensive? like why that much
that's more than a fair few full sized games for an in-browser educational game with a time limited access
those are their little in-game tooltip signs
wherever there's a tooltip it's marked by one of those funkopops
yeah this is kinda wack lol, I'd be fine with $100 even if it's for life
I wouldn't be fine with $100 tbh
I don't mind paying for things but this feels unreasonable
what does this do
Yeah, I started that years ago, and it was the same then
same
it's for learning vim movements. It's a browser game
I used no such tools...
I don't have an issue paying for good software but
vim tutor and trial and error
I learned vim partly through an old professor who would spend like 5 min at the start of every lecture showing cool vim tricks (has nothing to do with the lecture)
truly one of the church of vim's strongest soldiers
none of my professors were the vim kind of cs nerd
one got close but preferred emacs
I remember having 1 teacher who was really proud of how quickly he could edit text but he wasn't a vim user
I had a CS professor like that, but he used to show off his terminal mail set up instead
What, they are blackboard people?
whiteboard or pen and paper, but yeah
very few of my cs professors were ever willing to interact with computers
cs stood for computer skeptical
That professor was also a blackboard guy
had a lecturer who immediately hated any student who took notes on a laptop
And what I mean was we met on Tuesdays and Thursdays. Tuesdays was in a classroom with no computers, we would in groups have a section of the blackboard to write out our code, then on Thursday we'd come in and see if it actually ran
ew....
and another one who used a wheelchair so he couldn't use a whiteboard, and despite being given a fancy webcam by the uni, decided to instead make them give him an overhead projector he wrote on the slides of live in the lecture
It seems weird in hindsight, but it worked fine actually. I was used to math courses so it didn't seem unreasonable lol
we didn't do anything like that but we did a lot of handwriting code etc
I had a few exams with handwritten code but it was more just pseudocode to show an algorithm
it wasn't particularly important if the syntax was right
I think he was noting us for syntax as well
Reverse interpolated strings https://youtu.be/JtLPfjJvrOU?si=T5CtmWSBbMFwwsZE
Get our two C# courses for free on Dometrain: https://dometrain.com/bundle/from-zero-to-hero-csharp/
Subscribe to my weekly newsletter: https://nickchapsas.com
Become a Patreon and get special perks: https://www.patreon.com/nickchapsas
Hello, everybody. I'm Nick, and in this video, I will show you an insane concept in C# which is effectively R...
I dare any of my lecturers to try to mark us on syntax
like they'd know
string outerpolation
👀
oh is this C# version of *args
Yup
how terror
args and kwargs
in 🐍 u do this
def cool_things(*args, **kwargs):
pass
cool_things(1, 2, my_cabbages=10)
in C# u use the params keyword
I don't think I've ever in my life actually written python code that uses kwargs. I just never think to do them
python crime isn't appreciated enough imo
as shown on the article u can have *args like things
WriteByteArray(1, 2, 3);
WriteByteArray();
static void WriteByteArray(params byte[] bytes) { }
i dunno if C# has a **kwargs tho
params can be a nicer experience in C# sometimes but I rarely use them
metaclasses and custom __new__ methods can have such creative ways of doing deranged things
I wonder what's the most cursed thing I've done with them 
in C# there's many ways to do deranged things and they almost all involve System.Reflection
python is true neutral
well u dont need any reflection in snek just __dict__
except it isn't it's chaotic neutral. javascript is chaotic evil
don't need reflection when your language doesn't understand types to begin with
My favorite thing is methods that return refs. It's not even that nutty all things considered but it feels so illegal
getRef() = value
I love that python's answer to private fields is "no" and "I guess we can give fields that start with an underscore a special name in the dict to kind of sort of hide them? but not really"
I don't remember everything from my js days any more but I remember aggressive use of .bind(this) because js scopes go brr
Yes!
I don't want to
private int[] values;
public ref int GetIntSlot(int which) {
return ref values[which];
}
GetIntSlot(0) = 5;
Mostly I've only ever used it through harmony's FieldAccess (or a reimplementation of it) because it's much faster than reflection for accessing private fields
I've done it in build tools, mainly when I just want to pass on a bunch of stuff to the next rule without knowing what any of it means.
Re: tabbed menus. Our oscilloscope are like that lol
I literally work better with pyvisa with them than the UI
@rain apex random selection of things that happen to be on my camera roll 
they're surprisingly easy to make!
the colourful two were for my grandmas, and the plain one is my key tray
I'm getting a migraine/headache thing though so 
Gorgeous!!!!
cute
Another friendship bracelet maker?? 👀
Very cute <3
Khloe I saw this and thought of you https://www.reddit.com/r/knitting/comments/1iphr8w/untitled_goose_mittens/
I love it

why does gitlab not have a dark mode :(
I have dark mode on in our local GitLab at work, I think it's just a "beta" or something you have to enable in your profile
I have dark mode too
cisco update
every time this channel gets marked as unread without any new messages I assume it’s another gift card scammer
you're probably right
I figured it out finally. It was property 40120
the procedure that used to take 15 minutes to execute now takes 0.3 seconds
I'm now circumventing the api that caused me pain and directly modifying the data
Did everyone here see that google enrolled every user above 18 into their AI program? You can disable the tracking here gemini.google.com/extensions then here myactivity.google.com/product/gemini (in that order from what I read).
oh that's fun
You can also uninstall your google software
I shall uninstall my phone
you wouldn't uninstall a phone
looks like the thing you're opted into by default is Gemini app activity. I had nothing to disable or delete personally for some reason (possibly because I already have some settings set that mean I don't use Gemini?). I'm guessing any of our data that's used to TRAIN Gemini cannot be opted out.
the first link you provided does not seem to exist for me
and the other one is already off by default
idk if this is eu things
it often is
I had some stuff to disable in the first link, but I haven't used Gemini so the second link didn't show any activity for me
I prefer do my own research on glass or rock consumption
so the first link actually goes anywhere for you?
I'm just rerouted to the gemini main page
First link is dead to me, second link takes me to a page about Gemini Apps Activity which tracks my actual Gemini usage (which is nothing, since I don't use Gemini).
Seems like much ado about nothing; I already had WAA turned off because that shit is creepy, this is tracking for Gemini itself.
The first link works for me, but only on my non-workspace Google account where Gemini's just hard disabled.
Huh. It does work in the sense of not being a 404 for me but it just redirects to gemini/home.
Yeah, on an account that can access Gemini, it takes me to this.
Oh, that's weird. The second time it did work.
The first time it definitely redirected to the home page. Second time it loaded that page.
I've tried like a dozen times
Do you both have multiple Google accounts you're signed into? What I have to do is:
- Paste link and get redirected to Gemini home
- Switch Google account in the account switcher
- Paste the link again, then I get there
none of my accounts I'm logged into get to that screen
Probably just doing A/B testing on opting out of your data being used to train their AI.
I've also tried to use chrome instead of firefox but it just doesn't exist
oh well
I have never used gemini
I'm wondering if this is actually tracking, or something else. The extensions seem to be just a way to permit these apps to expose the AI search/recommendations as an explicit opt-in feature. It doesn't imply to me that Google tracks my GPS or map usage just because the Gemini extension is there. Just means that the Maps app is allowed to use Gemini to respond to prompts if I issue a prompt.
Unless I'm misunderstanding. The language is a little opaque, as always. But since I have WAA turned off, that pretty much disables all tracking.
what's waa
Web and App Activity, it's like the master control switch for all the tracking crap.
Actually, my reading of this is that the Gemini extensions are either a replacement or add-on for the old "Google Assistant" and they've added more controls for you to disable it in specific apps (where it used to be on by default, but didn't work anyway if you disabled WAA).
If you go to https://gemini.google.com/ you can also just click the gear in the bottom left -> Extensions to see that page. I switched between my few main Google accounts and disabled it on all of them
Must be regional differences.
I can use a US vpn and see
looks to me like the reason it’s available in the US is that the US is the only one that’s automatically enabled when you enter the site?
Yeah, that's what we see. With different names, obviously. (Hope you're not posting your real name online.)
when I clicked on "chat with gemini" in my regular dutch version I had to agree to some privacy agreement which I had no interest in doing so I assume that's the difference
whereas for the rest of us we just see a homepage
my real name is already in this server and has been for 9 years I'm afraid
I never actually clicked on the chat button.
we were looking through quotes earlier and I was amazed how early on you were around, Crumble 
literally this server’s entire existence
Apparently it just assumed I wanted to chat because I've never used Gemini
I have one of the first remaining messages on this server ye
"Remaining?" Is there some auto-delete?
they should really find a way to purge those quotes ngl
though uber doesn’t seem to have any method built in
not all channels that existed back then still exist
uber has a quote list page in the admin console
also how long was your name Crumbledore for 
that’s accessible by everyone! it just doesn’t have a mass delete function
you can access the list of quotes by doing .q list
I could swear it does allow deletion for admins
fair enough
(at least, not that’s documented in the commands list)
This server has cleaned out quotes many times honestly
and as far as we can tell, there are like 4000 quotes that need deleting lmao
has it? there are some as old as 2016
including quote #2
yeah it hasn't been cleaned out by date, more by content
(uber doesn’t reuse numbers, so that’s the genuinely second quote ever saved)
a lot of people quote essentially nothing
the essentially nothing ones aren’t the problem 
oh yes there were also many inappropriate ones or at one point we just had a very significant number of fart quotes
I haven't been in the moderation team in god knows how many years though so idk when that last happened
you were a mod?
Every n00b thinks that their quotes are absolutely hilarious, classic, need to be remembered forever.
twice yes
also I wish I could run a course for discord server moderators because lesson one would include not using quote bots in staff-only channels 
I was a mod back in early 2016 and then again in idk, 2019 or something
I wish I could share the second to last message you said in the staff channel right now, because that is funny. 
I don't remember it
I don't even remember if I left on good terms
for all I know my last message in the staff channels is insulting every moderator's entire bloodline
hi DH! could you pass that along btw? there are nearly 30 times that the quote bot was used in your staff channels and those can be seen by anyone using the list
nothing incriminating but probably not best practice lmao
We are aware of that, actually! Which is... at least why (hopefully) there's nothing sensitive in them.
But it won't hurt to forward this as a reminder...
make sure to quote whenever anything is posted about #programmers-off-topic so we stay aware of how we are perceived
there isn’t! there are a lot of other quotes that really, really need to be deleted though
I'd imagine this channel needs about as little moderation as channels get
idk those scam spam posts have been frequent
"they think they're safe in their little 'rustacean' channel, eh?"
I want to bludgeon people who make breaking API changes in non-major version updates with a giant nerf bat with https://semver.org/ emblazoned on the side.
imma introduce a breaking change in a minor revision release
Better yet: introduce a breaking change without an increase in any version number.
smart

dont forget to alter your git history to make it look like it was always there
I also make sure to put my api's build version string in the api url so that all urls become invalid every build
nah, my breaking change will also go BACK a semver version
breaking changes are a regression so the version number goes backwards
I don't care what anyone says about you, git push -f, we'll always be friends.
Also should point out that Semver is one system, happens to be a good one, but not everyone actually follows it. If someone claims to follow Semver, but doesn't, then yeah, bludgeon 'em.
past systems I've worked with boiled down to "higher number means newer release"
aka no system
which of the numbers would get updated was not consistent
ok it was never the major version
How does it work? Is the roll absolute, or does it modify the current version?
.roll 6
You rolled ... 2
we’re on major version 2
the fun thing is that the next time you can be on version 1
you only reroll if you've already had that version number
actually, that's how you move down the versions
first roll is major version
then if you've already had that major version before you roll again for a minor version
you add more and more numbers till it's unique
version 3.2.5.1
I like to work in very subtle breaking changes, so that 1.1 is technically compatible with 1.0, and 1.2 is technically compatible with 1.1, but if you upgrade from 1.0 to 1.5 then it erases your hard drive.
thar sounds more fun
It occurs to me that you can tell that coding ai salespeople don't really believe in what they're selling because if they did, they'd have trained the models to output compiled binaries instead of raw source code
if they did that, they would have to take some amount of responsibility for it actually running/compiling
the thing with the musk vs openai nonsense recently was so weird to me because why are people cheering for either one of them. I don’t like musk any more than the next person but openai are not heroes…
I admit that I haven't been following that particular thread of news
tl;dr openai are trying to buy themselves out from the nonprofit that apparently owns them (I know, a surprise for me too), musk is trying to torpedo the deal by making much bigger offers to the nonprofit which he may or may not be planning on following through on, now they’re bickering on twitter
good luck to them
Expecting salespeople in any industry to know the first thing about what they're selling is an act of extreme optimism.
it's magical how "expert .NET recruiters" can know absolutely nothing about it
since finding employment is primarily handled through recruitment agencies here I've dealt with quite a few
obviously they wouldn't be working in recruitment if they were actually knowledgeable about the technologies but they continued to surprise me despite knowing this
Every business larger than a lemonade stand is stuffed to the gills with unnecessary employees and outsourcers, partly because they're forced to and partly because they're constantly lied to about how it will improve their productivity or their outcomes.
A team of 20 engineers, a President and half a dozen marketing, sales and graphics guys can produce the same output as a team of 20 engineers, 10 HR staff, 3 accountants, 6 managers, 2 recruiters, 12 salespeople, a PR firm, a legal firm, a brand manager, an ad agency and any number of other lamprey divisions. More, in fact, since they're not wasting time in mind-numbing "training" sessions and other "compliance" work.
smh what a lot of work for nothing
Just make your version number the hash of the software
done
smart
I hope the mods are keeping screenshots of all these spam messages so they can make a montage over sappy music at the end of the year, award show style
They should just have a straight-up award show. Best Creative Writing, Least Likely to Succeed, Most Spelling Errors While Still Being Readable
Unfortunately they'd never know they'd won because the criteria includes having been banned for spam
Furthest Edit Distance From Valid English
I still think Steem Communutty wins best in show
Stemcomnutiy
I haven’t seen that one 
So many misspellimgs
... THE IRONY
The butterisms are infectious
But yeah
There's so many variations at this point lol
the recent ones have been boring, they aren’t trying to pretend to be the real link at all
where’s your pride as scammers

The mispellings are intentional to help evade automatic detection
Same playbook as spam emails
Yep
Also why they sometimes use the weird characters that resemble latin alphanumeric, but aren't quite them
Using Cyrillic characters to evade the censor isn't restricted to scammers, even
It's also a favourite of trolls that join to spam nasty things
it's also used to avoid plagiarism detection software
Yep
Just gotta ban Unicode ig
Imagine when they get sophisticated enough using LLMs to have full on-topic conversations in the relevant channels before sneaking in spam
the horrors of someone shitposting in off topic for 3 weeks before scamming everyone
using other alphabets as English is also a habit of those “aesthetic username” people, there have been multiple times where I’ve been unable to read a username because it had characters in my first language and that made it nearly impossible to tell what they were supposed to be in English 
We've had the likes of...
https://stemmcommunuty.com
https://stemmcommunuty.com
https://stearmcommunity.com
https://steemcommunnuty.com
http://www.steemcommunnuty.com
https://www.steemcommunnuty.com
https://stenmcommunuty.com
https://stemncommnunity.com
https://stemncommnunity.com
https://stemscommunity.com
https://stemscommunity.com
https://stenmcommunity.com
https://stenmcommunity.com
https://steamcommunity.com
https://steamcommunity.com
It seems like not a far off possibility, but I take comfort in knowing I got these free Steem Gift Cards, DM me for details.
Hi DH 
Couple duplicates there, because some have different parts to the URL after the domain.
nah, we’ll know it’s an LLM because they’ll be respectful and speak full sentences with punctuation
I'm supposed to be reading for my thesis but I'm hungry so I'm here instead 
There was an LLM on BlueSky whose entire purpose was to find popular discussions and disagree with everyone, and it got the engagement it was looking for
many of those I think
Oh, the Quora Stratagem.
why spend money on developing an LLM when countless thirteen year olds will do it for free, smh my head
the easiest people to imitate will be us tech nerds, you can probably do it with no ML by just finding keywords in previous messages and spitting back wikipedia snippets from the relevant articles 
shit on Javascript, get free engagement
steem
...I still don't see how the last two aren't legit
They are! I just removed everything past the TLD in this instance. Needed the legit ones there to test the regex doesn't catch real Steam links... and forgot to remove the legit ones.
You need a phoenetic library that matches anything that could resemble steamcommunity, and whitelist the actual steamcommunity
nono, render the links into a png then use OCR that only knows english characters
Found the video talking about it https://youtu.be/rpOkrxxpTcE?si=fIHqTRfs1eqWmsSN
Disagree bot for engagement
“I disagree” says exactly what she said 
I disagree
It was successful in baiting users to respond to it
how much does c++ knowledge apply to c#
decently
what level of c# knowledge is needed for making custom npcs
Zero!
Can't believe we r on topic here again
which makes it off topic for the off topic channel
(feel free to follow up in making-mods!)
I think knowing <any programming language> is applicable to learning C#
Unless... you're talking about NPCs in general, nothing to do with SDV. How do you make an NPC IRL?
step 1 get married
Probably ChatGPT
go talk to someone. boom, two NPCs
Just bud one off like yeast
when will humans be capable of parthenogenesis
consider: haskell?
I think the most common pitfall among people who already know a language is people who only know Python, and only a smallish amount of Python. Thing like "variable type" and "variable scope" and even sometimes organizing things into functions you can often pretend aren't real when writing Python
i agree that knowing python is a common programming pitfall /lh
Haskell ppl can learn F# instead
they'll hate F#
I agree, but I also think that you also need to consider what constitutes "knowing" there are definitely people who know enough to get by, but don't actually know how to program.
Programming is a language-agnostic skillset imo
F# sucks to write honestly because you have to resort to C# style code constantly anyway due to all the .NET libraries being written that way
None
I mean if you're trying to make a sentient being from scratch using non-organic methods, it requires quite a bit of knowledge
easy
Are NPCs sentient
presumably not
To me at least, you're all NPCs. Are you sentient?
No
I wish
🤖 YES.
The only sentient being in the universe is Bob, age 54, who runs a small convenience store in downtown Denver Colorado
at risk of losing his business to a walmart
"average person is sentient" factoid actualy just statistical error. average person is 0 sentient. Sentience Georg, who lives in cave & is over 10,000 sentient, is an outlier adn should not have been counted
also applicable, it teaches you how much pain you’re signing up for
haskell people move to scala apparently
interestingly enough, my hatred of typed languages has nothing to do with the fact I was forced to learn haskell
I’m actually one of the only people at my uni who enjoyed it 
I'll just skip that loop de loop by not touching async 
I only know async from javascript and will assume that that’s a terrible way to learn about it
(/hj, I actually have done concurrent programming courses
but nothing practical)
for the javascript people here: are you an async/await person or a chained promises/.then person
a hatred of typed languages is so bizarre to me
I'm an async await person cause I'm used to C#. I only use .then when the function it's in isn't async
Tbh I'm starting to realize I have much much higher standards to when I can list a programming language on my resume than most people do
It's sort of like the old joke about the employee who's been around for 20 years and has 5 years of experience. "Hey I've done more than 15 'projects' in <language X>" except that none of them were much more complex than a "guess the number" game.
"I've done a dozen projects using this technology and all of them failed horribly"
tbh I feel like years of experience becomes a horrible metric after only like a year or two
some will have stagnated by then and never go outside their comfort zone and others will continue trying to improve
This graph feels exactly like my experience with Rust lol
It's spot on
All metrics are horrible if you forget what the metric is actually supposed to measure. 10 years of experience does mean something, as long as you can discern the difference between them actually having 10 years of experience vs. getting 1 year of experience 10 times.
This is handwaving away the more nonsensical requirements we sometimes see, like 10 years of experience in a technology that's only 5 years old.
don't think I was handwaving anything away but yes obviously there's much worse requirements out there
I didn't mean to imply that you were, I was the one handwaving that away as an obviously bogus use of experience.
oh okay I misinterpreted it
Meaning it can sometimes be a useful metric as long as the person asking for experience knows how experience actually works, and understands the concept of linear time.
(which might just sound like the definition of common sense, but you know what they say about common sense)
Years are not created equally. What I look for when it comes to hiring engineers is that they understand relevant concepts, and they can demonstrate how to apply them. Years doesn't really matter in that regard because some of the worst interviewees I've met have 10+ of experience with X but have shown that they stagnated 10 years ago.
stagnated the day they started 
Plus I've encountered a lot of people who are good at doing what they're told, but can't think for themselves, and in working with them, they require a lot of hand holding.
Like the amount of help they need isn't much more than someone else just writing the code for them.
I've learnt that any assumption one might have about what should definitely be achievable by someone with some amount of experience can turn out not to be the case
for one person at my old job I genuinely just didn't understand how it was possible and grew increasingly frustrated when they would ask for help
I still remember the turning point in my mind where it turned into baffled frustration when they asked me to help them do something I knew for a fact they had done before several times within that year alone
ultimately he got fired
honestly was worried he suffered from memory loss
but he seemed fine in every other regard
I was agreeing with you. If someone doesn't intuitively grok the concepts associated with programming, things we all take for granted like iterative control flow or the meaning of a variable, then it doesn't matter if they have 1 year or 5 years or 20 years experience, they're still not going to get it.
All other things being equal, if you take two engineers with a lot of raw talent, then the one who's got 20 years is going to do a better job than the one who just escaped graduated college. But as I've said before, there are a whole lot of people either already in the industry or trying to get into the industry who actually don't have any talent.
I'm not worried. In fact, I hope they go balls to the wall with GenAI coding. They'll crash and burn and then I can charge triple my normal rate to do it right.
I'm also not particularly worried
nothing I've seen so far gives any reason to believe it's remotely close to being good/reliable enough to replace anyone
even if I were to be very generous and pretend a development job is solely about adding very clearly defined and easy to test/verify features to well maintained and documented codebases
python and javascript let me commit crimes without asking questions and I'm just so used to that
Why
I'm scared
Mommy I'm scared I don't like crimes ||unless I'm committing them||
have you ever looked into python's __new__ special method and the many, many wonderful crimes you can commit with it?
iirc you can set it up so that for your custom class A,
a = A()
isinstance(a, A)
# returns False
and I just think that's beautiful tbh
class A:
def __new__(self):
return 1
a = A()
print(isinstance(a, A))
it's as simple as this
didn't even know about __new__ tbh
Crime is a core pillar of Python
Python is a crime.
The C in CPython definitely stands for Crime.
Can ChatGPT yell at me to do one more rep when I'm feeling on the verge of exhaustion?
I think that's like, one of the few things it could do quite effectively
Can chatgpt call 911 if I drop a weight on my face?
damn, chatgpt does not know about core exercises
well, we're getting there
....other than chatgpt giving me a pace that's slower than my current pace, not bad.
took quite a bit of prompting though
it's still not giving me actual good core exercises, but that's fixable
It's not giving actual exercises at all. "Chest + Shoulders" isn't an exercise.
That's like, really loosely speaking, a split, but not a program of any kind.
they did break it out later but it's rough guidelines ish
like that
and this is the idea of core they have
what is that side plank supposed to do other than be boring.
Obliques, obviously.
3x6 or 3x8 sure doesn't sound like strength training to me. Not sure what that's supposed to be. Too many reps to be strength, too few to be hypertrophy. It's like... "intro to weightlifting" sets and reps.
I'm...mostly ignoring that lol
The core isn't really all that bad imo. I mean there are dozens of core exercises you could do, so it's as good a random three as any.
Oh, I just realized the side planks were measured in seconds, yeah that's the stupid version of side planks where you just sit there.
yeah, there's a way to make side planks harder, or perhaps add a resistance band, but just doing 3x30s is kinda pointless
Moderate version is to do a crunch motion and hard version is to do a twist.
I'm also not a fan of them picking three random core exercises per day, my preference is fewer variations tbh.
less to remember.
The former is actually called "side planks" in a lot of cases, the latter is not.
Well yeah, but muscles do get acclimatized to specific motions so you do have to switch it up fairly often to make progress.
this is the variation I usually work
im not used to how short the dotnet build output is in 9
As someone who hasn't used dotnet build in 9, I hope it's ```
dotnet build
k
no but they did a lot of \r print
and now you know one of my favourite python crimes! next step is metaclasses
your favorite language features are chaos
correct
scala implicit returns are another good one
(my only non-crime usecase for returning something other than a new instance of the class with __new__ is memoization, you keep some reference to existing instances and if a new instance is created that’s a duplicate of an existing one, you return the existing one, allowing you to use the constructor as a kind of “try to get else create” method.)
(I’m using “non-crime” rather loosely, I know)
iirc you can do something similar using companion objects in scala but I don’t know how you would do it in a sane language (if at all)
basically implicit pooling
I can’t remember what pooling is but that sounds right, yeah 
object pooling is essentially exactly that. Instead of creating a new one every time it will take one from an existing pool of them (or make one if there aren't any available)
so basically, coming from languages that let you do nonsense like this and learning a typed language is an interesting experience, where on the one hand I love it and on the other hand I want to throw types into a ditch
then yeah! exactly that. Implicit pooling without the ability to call the constructor directly
out of curiosity, what don't you like about types?
(I dislike when they're not there. /lh)
Darn type safe languages, keeping me from making an entire category of coding errors
Please, don't tell me exec isn't fun as hell to play with
what Khloe said
in all seriousness, I'm mostly joking, I actually have a lot of love for typed languages, there were a few growing pains with learning to use them for the first time back when I did a few years ago but it's just a more structured experience when writing code (which is 99% of the time a good thing lmao)
oh yeah no I feel that
I actually half think it might genuinely be better for most people to learn something without types first. Because going from having/needing them to them not being a thing is... probably more difficult than vice-versa? I think? Having never done it the other way, I can't say for sure.
when you first start coming from an untyped language it feels like such a hassle. but then you realize that you don't have to deal with runtime errors nearly as often, and your IDE can give you suggestions, and it's like "oh, maybe this is worth it."
I went Java to C & Python together
Imo lack of strict type check doesn't make much difference to noob cus
You are still being taught things like "the function add takes a number X and add it to a number Y"
I am the least qualified person to talk about programming education. Entirely self taught and too much interaction with people who allegedly learned to code at college but are completely useless. But I think Types should be a day 1 thing. Even if the type is just "number"
It has to be, surely? Even in untyped languages?
Yeah that's my argument here, ppl who r new to programming don't attempt the various crimes untyped languages allow
I started with C# and types were never something that made it harder
types only "get in the way" when you are forced into doing something in a very dynamic context
The most annoyed I get with types in C# is when doing something like consuming a new API and needing to write a bunch of models all at once just to deserialize something
The main reason I prefer some weakly-typed support (whether it's dynamic, reflection, or the TS ability to just bail on types and revert to all), is that no reasonably mainstream statically-typed languages support higher-order generics.
Framework code and extensibility features in general are very difficult to write without one of the two.
I like unknown in TypeScript a lot.
Just "Yeah this sure is... some value. Don't know what it is, but it's there."
As opposed to any in TypeScript which is just "yeah sure whatever don't type check this"
Well yes, all of the special types. unknown is fairly unusable without either any or a structural interface, obviously the latter is preferred.
I think you're right about that, but I feel like I care about them being able to debug the problems that come from type mismatching
Python will definitely spit errors back at you in some packages that are obviously about types
and it makes no sense if you don't even know what a type is
both can be tricky imo - I went from untyped to typed and I can see why some people who start out in python/javascript refuse to ever learn a typed language, though those are typically the same people who were never great devs to begin with
as someone who was self-taught THEN went to uni for it, I can tell you you probably know a lot more than 99% of people who do CS degrees 
…ish? in python, types are very much an afterthought a lot of the time, beyond the basic “is it a string or an int”. And in javascript, everything that isn’t a primitive is pretty much the same thing anyway
I admit that I have abused the heck out of JavaScript's lack of types to write absolute monstrosities in the name of performance that writing proper types for would be at best a nightmare. But that is not good in the long run because try going back to something like that and maintaining it.
someone’s never had to explain to someone why “3” - 1 doesn’t work outside of javascript, clearly /lh
tbf people who are new are typically not using those packages (maybe numpy? but in my experience newer devs seem to use numpy by closing their eyes and mashing the keyboard…)
I have thoroughly abused javascript prototypes in ways I would never encourage anyone to 
atra you laugh, but we had an assignment in my ML course that required using numpy, with the “optional” instruction to try to do everything through numpy functions rather than loops for performance’s sake, and literally everyone who actually managed to figure out how to do it but me used numpy’s vectorize… which is syntactic sugar for a loop
my code ran in a fraction of their time lmao
the real rebel would’ve used recursion
I’m sure some of the people who couldn’t figure out how to do it in numpy did
though I think using recursion on a numpy array is particularly cursed
especially in python, recursion certainly isn’t the answer for performance concerns
I want to make games in C# I'm using monogame as my framework any tips ?
Are you learning C# or do you already know it?
Learning
Is Monogame still a good choice nowadays? I was under the impression that Unity is all the rage.
If you specifically want not an engine, MonoGame's perfectly good!
I don't want an engine I'm trying something new from unreal.
Oh wait. Unity was cancelled weren’t they because of their controversy.
Exactly
These days the engine I recommend to people is Godot. If you're trying to get into low level stuff without a full engine, monogame seems fine to me.
A bit dated in some ways, but perfectly fine for hobby projects and stuff.
Isn't stardew on monogame?
What kind of game are you trying to make?
Yeah, nowadays I wouldn't recommend something like Godot/Unity for learning C#. Because then you're going to be bumping against the wall of "oh, this is the more C# way", and "gah, this is the more Godot way".
It is, and an outdated fork of MonoGame at that.
they serve a different kind of person in my opinion. Monogame is more in the market of stuff like raylib or LOVE, (mostly) code only engines where they just provide a base framework to work with and you are given a lot of freedom to build whatever you want on top of that.
Personally I like them just because I like something really being a “codebase” and not attached script files
Anyways any tips on learning C#?
Learning c# works the same as learning any other language
the generic answer to that is the same for every language and it’s just “do something with it that keeps you motivated to keep using it”
The one project I try on every new language is try to make a pong game using my own art
Yeah. That works. You just need an obtainable goal so you have problems to figure out. People who just try to learn a programming language without having an actual use case don't get very far in my experience.
I want to eventually make a game.
you’ll have to figure out some way to break that down into some more concrete smaller measurable steps probably
Yes
Making pong is a good starter project though, for sure. It's a game but such a simple game you don't have many systems to worry about.
One tip is you can brute force your learning and maybe end up with something like SDV that works but is probably not designed in a very efficient way, or take the time to learn some common conventions
Because most design problems out there have been solved already
I'm thinking of trying to make a little platformer game as a learning project.
That's what I was going to do lol
Just not farming
Yeah not trying to imply either is right or wrong. I find interest in learning how people smarter people than me have accomplished things.
what did they do?
(also, while it’s probably not smart to use in absolutely performance critical pieces of code. LINQ is a part of C# that’s very popular and incredibly common to find in C# projects so it might be worth messing around with)
force developers using their engine to pay per installation of their game
ew
it was incredibly poorly defined and the initial version even included what essentially sounded like spyware to achieve it
It didn't work in the end and eventually were forced to roll it back, which included kicking out the CEO, but the damage was done.
also, I implemented solitaire in MonoGame (twice!) and it taught me a ton about both C# and monogame
you’d literally need to force all games to have some pretty invasive DRM, for starters… what a stupid move
I made a level editor in monogame which I suppose isn’t a game but it’s the only time I ever used it. I ended up quitting it after I grew increasingly frustrated by its asset management system
Yeah, there would be no way for them to actually do it without essentially spyware.
And they refused to elaborate on exactly how they would do it.
Yeah and that included the ability for someone to install/delete over and over again to rack up the bill
Why don't you guys try what is that rust one instead 😛
Making a game is hard enough I don't need to fist fight my compiler about it
it also would have meant nobody could ever really release Unity games for free again… genuinely stupid move for a company to make
everything I know about rust I know because I had a friend who was very obsessive about it (which already was enough of a red flag for trying to use it
)
I suppose there’s also fyrox as far as rust game engines go
I like it when the compiler tells me I'm a dumb ass because I am
I think I started that rust book it comes bundled with like five times and got bored every single time
rust is the best language if you want a compiler who tells you you’re a dumbass
A rust game engine just seems so contradictory because
- rust is about writing perfectly memory safe code
- game development is about writing the most cursed, hacked together stuff that somehow works
Bevy ties those two together remarkably well.
I know it sounds unlikely, but it's true.
I thought all development was about writing the most cursed, hacked together stuff that somehow works /lh
helped by what the bevy engine developers themselves lovingly call “type crimes”
Yeah, although it's kind of silly rhetoric the same way modders keep referring to "harmony crimes" and "reflection crimes" and all that, it's perfectly legal and mostly-intended use of Rust's traits.
my favourite evidence of all development being crime is the fact that technically no language can be pure functional programming because writing to screen/log is, in fact, a side effect 
same except the friend is atra so not a red flag per se
And the memory-safety and more importantly thread-safety is actually salient, it's what allows all of Bevy's systems to be run totally safely in parallel.
It's not a harmony crime unless it's my data driven dynamic transpiler.
more of a "this is probably cool but also probably difficult" flag
Are there 3 of those now
I'm not saying "learn Rust/Bevy" by the way, just responding to earlier arguments. I know next to nothing about Godot but I think it's a better choice than MonoGame for C# because... well, because MonoGame. You'll understand very quickly once you try to use it.
finding out how easy it is to transpile ternaries made me unreasonably happy
also, rust actually isn’t necessarily about writing perfectly memory safe code. It’s more that areas where there is a risk of memory unsafe behavior are explicitly labeled (and most are inside the engine itself generally with extensive comments explaining exactly why it’s still memory safe within the context it is used in despite requiring the unsafe keyword)
You: memory safety
(That said, the number of times I've seen crashes from code labeled "this is safe because"...)
Me: has a screwdriver
do I want to know what happens if someone decompiles the resulting IL? no, probably not. But the transpiler itself is simple 
😌
// this is safe because i lied```
// this is safe because trust me bro
I mean
I wouldn't go that far... more like "this is safe because I'm only looking straight ahead and ignoring everything off to the side".
unsafe really should be renamed trust me bro
public trust me bro class Foo {```
we should rename all class-related keywords in the same way. change private to
public please don’t look at this class Bar {
I have to use unsafe a bit with my FF14 plugins and it always feels weird.
unsafe in .NET really just means "unmanaged".
Unsafe in Rust means... unsafe.
I vaguely remember reading somewhere that more than half of all uses of the rust unsafe keyword is to call C functions
I estimate, based on pulling the number out of my ass, that more than 80% of unsafe in C# is just to do pointer arithmetic without the index-checking overhead.
wait since we were talking about python crime earlier… how many of you are familiar with how python handles/implements “private” fields
because it’s one of the funniest things I’ve ever seen
yeah though contrary to popular belief, rust does still do a lot of checks even in unsafe code. It’s not completely a lawless land
Yes, and of course Rust has the "bypass compile-time checks but we'll still nail you at runtime" workarounds that don't technically let you do the thing that you thought you were going to get to do.
I know far too much about Python internals and you can't force me to remember I won't let you
there’s also a funky tool called miri that’s used almost universally in unsafe code heavy libraries to detect issues
(I’m talking specifically about _fieldname fields)
Yup.
That infected JS too.
Since JS doesn't really have private stuff unless you abuse closures.
which python makes “private” by renaming them to something else lmao
javascript hates privacy
Yes, continue, remind me why I dislike both of these languages. 
90% of my time doing javascript was fighting javascript closures
I knew way too much about the specifics of scopes by the time I stopped actively using it lmao
There is privacy in JS, through inner functions.
1 - "1" = 0
1 + "1" = "11"
quick maths
the worst part is the fact that there’s a small part of my brain screaming “no that makes sense it’s because—“ 
though I have for the most part accepted that just because I know exactly why that happens doesn’t mean it should 
It absolutely makes sense if you implement operators in an insane way
And some idiot in the 90s thought they were clever
So here we are
why did they ever allow operators to cast based on the right argument
whose genius idea was that
Incidentally, I also believed I was clever in the 1990s
I didn’t but that’s because I did not yet exist
I probably did too, I was an annoying little shit back then.
But now I'm much bigger and also annoying
I only started being an annoying little shit some time in the early 2000s (take the year 2000 and add a couple years for, like, sentience to develop)
I'm not sure if I believed I was clever in the 90s, as it takes a decent amount of self-introspection to believe this on a conscious level
As someone who has been around babies let me assure you, you were likely annoying before adding a couple years too.
very fair
I was annoying from day zero actually, I made my mum have an emergency c-section
I want to suggest 1 - "1" = ""
Commit to stupid behavior
As a baby, I would apprently squeak instead of cry. I can only imagine I was the least annoying baby ever as a result, clearly.
Most of this server didn't exist in the early 90s
may I interest you in the very real result of running {} + {} instead?
oh I'm aware...
But what about ```js
{} - []
-0```
please tell me that’s a real thing
I checked... it is.
Ah, and {} - -[] is of course 0.
Technically speaking negative zero is a thing with floats
makes sense, though also that being part of the float spec is upsetting
There is home video of me climbing on my great grandfather's head
Like the little shit I am
As an extra special bonus let me introduce you to this: ```js
Math.sign(-5)
-1
Math.sign(5)
1
Math.sign(0)
0
Math.sign({} - [])
NaN```
...
javascript’s workarounds to its own stupidity are on another level. I explained what actually happened with leftpad to someone today and had to take a detour to explain why it was even necessary 
imagine trying to implement a Javascript runtime
well, necessary is pushing it ig, but why there was a use for it
Not to confuse matters ```js
Math.sign(-0)
-0```
oh good
That was the first thing I tried after that, which makes sense, of course.
I do like negative no sign
> x = {} - []
NaN
> {} - []
-0```
That's why, anyways
So. Yeah. JS. You're welcome.
wait, so is x NaN, or does the assignment statement return NaN?
and if x is NaN, wtaf is going on there
I'll be honest I have no clue why {} - [] evaluates to -0 but attempting to use the value converts it to NaN
But it's consistent across multiple JS engines
Javascript has a special case specifically for the letter x of course
you joke, but there’s probably some kind of type casting being done to expressions but not variables or vice-versa 
undefined behavior 
99% of javascript is undefined behaviour
Honestly, I think it's an edge case in the inspector
Where the number is invalid and the engine knows it's invalid but the inspector isn't catching that it's invalid, for some reason
It's just... yeah
probably tbh. I still wonder why it’s evaluating it like that though. Maybe something to do with the implicit conversion to string it has to do in order to display it?
hmm
both bun (javascriptcore) and node (v8) output NaN, NaN for this:
const x = {} - []
console.log({} - [])
console.log(x)
and if they're wrapped in isNaN(), both return true for both
hmm. I assume you’re in a browser console, Khloe?
Oh. Wait. I have a new idea.
The console might be interpretting the {} as an empty block, rather than as an object literal
yeah spidermonkey does the -0/NaN thing in the browser console
Then it'd effectively be just -[] which is -0
But when you do something like x = {} - [] then it's forced to treat it as an object literal
no, if you define a variable as {} it does the same thing in the brwoser
oh interesting, could be that. What does object() - [] do then?
but (new Object()) - [] is always nan
weird… why are browser js implementations always like this lmao
lol this is even more broken
This is a fun one
> {toString: ()=>"3"} - []
-0
> x = {toString: ()=>"3"} - []
3 ```
oh, oh god 
So yeah, the console is incorrectly treating the object literal as a block
someone teach js that sometimes throwing errors is a good thing 
Well, I learned something about how the dev consoles work today, even if that something is terrible
while we're talking about curly braces
const myFunction = () => {
return
{
key: 'this is definitely a value!'
}
}
console.log(myFunction())
guess what this outputs?
Object object or something
undefined
If return is on its own line, it returns undefined, because JS is nice and doesn't force you to use semi-colons
isn't that nice of it
Oh yeah.
Funny, I have actually carried over the "don't put return on its own line" to other languages but still don't see it when it happens. (That's why the rule)
if we keep talking about js I’m going to end up remembering why I did a bunch of things using => lambdas wrapped in .bind(this) and I really don’t want to ngl
Bonus ```js
const myFunction1 = () => {key: 'hi there'};
const myFunction2 = () => ({key: 'hi there'});
console.log(myFunction1(), myFunction2());
||`undefined {key: 'hi there'}`||
that's actually a quite helpful realisation for when doing .map
why does the first one not throw an error 
because you can just do that
Because labels
…labels?
so if they're within eachother, you can break/continue a specific one
Honestly a great feature
mhm
oh it’s brand new
Though in order to use it you have to convince JS devs to stop().chaining().methods().together()
of course js implemented gotos in 2025 though, why wouldn’t it
gotos always seem weird to me
are you also going to ask python devs to stop abusing list comprehensions now?
Gotos are how I program
they're just functions that are more annoying when decompiling
Hate to tell you this but labelled statements have always been in JavaScript
I just don’t like how they mess with the flow of the code, though I’ve been told I naturally think about code in a very functional programming way
I have one goto in one of my mods. 
the page you sent says they were introduced in the 2025 ES spec though? 
It also says it's been supported since Chrome 1
oh, one of those implementation quirks that are only now getting officially added to specs
this is why js devs have to use those massive compat tables 
Web devs gotta deal with this and then at the same time with css having a lot of features that you can't use because some random browser doesn't support it or does it wrong
“some random browser” it’s IE, it’s always IE
I was about to say sometimes it’s safari too 
practically no one supports IE anymore anyway
Government
Okay I checked it was actually introduced to JavaScript in the 3rd revision of ECMA-262 circa December 1999
The first 2 revisions don't mention them.
safari 🤝 IE
breaking 99% of js
I don't think our government supports it anymore for anything other than legacy systems that were already around when IE had to be supported
so the page is just wrong then ig
thank you for checking!
I predate javascript, which means I could've theoretically somehow stopped this from happening and failed
I was roaming aound before JavaScript...
I am sorry 
That'd be awful. Just imagine it. Oracle corporation would be trying to exert control of a trademark over the primary programming language of websites.
Could you imagine that
they'd never
You only have scant few days to stop the person from making js
(For those unaware, Oracle has JavaScript trademark'd even though they have literally nothing to do with it. https://javascript.tm/)
I vote we just abandon JavaScript (the name, though ideally the languge itself too).
do we all move to wasm
or to pyscript (https://pyscript.net/)

to wasm or to python
no idea
Last I knew you couldn't unallocate memory once you allocated it
...what.
literal patent trolls
Yes, being a patent troll is basically Oracle's business model isn't it?
yup. IBM’s too.
you have a memory leak? no, that's intentional
They stopped innovating software and started innovating licensing.
It's not a leak if it just all gets vacuumed up and hoarded.
This issue kind of told me everything I needed to know about WASM. From 2019. (https://github.com/WebAssembly/design/issues/1300)
