#programmers-off-topic
1 messages · Page 1 of 1 (latest)
Huh.
This was probably needed lol
Weird. Wonder where this came from.
Ooo 👀
👀??

"first!", i guess
xD
new channel?
Perhaps to stop making-mods from going offtopic 
The goal being to make #making-mods-general less spooky to artists/content people, who currently primarily use #modded-stardew for the art stuff!
👀
Because... we do go on about the ol' programming a lot in #making-mods-general.
Oh yeah that makes a lot of sense
👀
they told me not to mind the other channels, but this one is relevant to my interests
Yeah, this one I anticipate will see a lot of use.

so basically this is where you discuss snakes, coffee and fiesta and iron oxydization and similar topics?
Hi everyone
I feel like I am partially to blame for the recent offtopicness of #making-mods-general lol
(sweating trying to decode fiesta)
Yeah programming and stuff

No, I promise you we're just terrible with that in general and always have been.
(well, maybe it's a french saying, hence the coffee that is maybe more classic version)
(Personally I'm stuck on coffee...which one is that
)
coffee i get. don't know what language fiesta is though
it's the same one :p
Java?
french would say "faire la java" to "faire la fête" ("to party")
I only dont know what fiesta is
The iron one is nice! We'll wait for a certain someone else to come by who's particularly into it to answer that. 
well, i'm glad i contributed to enrich everyone with a bit of french obscure expressions 😄
first
Close enough Yara 
Since the new free games announcements channel is called "Junimo Bundle Rewards", will the Governor's automated messages be rewritten?
How do you do, fellow programers?
...a fantastic question.
Would be weird to get Lewis' shorts as a reward from a bundle...
Now that this exists, I'm gonna break rules and talk about modding
"i saw strange green creatures carrying a package libelled [link]" 😄
I feel like we'll mostly discuss specific musical notes in here
And Rust.
I can imagine people having a discussion about programming mods, and then a junimo has to come in and say "hey guys, let's back off topic"
Just be good noodles and only be off topic here.
first
See, now I can post things like this oddity guilt-free.
Debug? Fine.
Release? What the hell is this SimpleTheme nonsense you're trying to use?
i'm gonna start expecting asset making pixel art pixel art art in #creative and #creative-discussion .... i want art there
Yes.
Well the channel is named off topic but still in the Game Modding section, not the Off Topic one, probably to avoid the meme-y shenanigans of those off topic channels
You bet your asset, butter
looks up the Junimo Bundle Rewards channel way up top Did you coding peeps mess up the channels again? 😛
Nope! That's where Governor's going to post the free games from now on.
huh
Maybe I could convince some good soul to help this tadpole VSC user figure out why “debug” isn’t working for me…
stop don't remind me I'm already dying
Are you using vsc to compile, logo?
Anyway, back to off topic programming
oh you're using avalonia too? what for?
Yus. Unless you have a better suggestion? I’ll take mac suggestions!
(...So, python right)
this where we banish atra to?

No, im being lazy and resistant and refusing to stop using VS
But someday Microsoft will tear this away from me
Like the cruel overlords they are
I figured I’d start with VSC because of that, Elizabeth
I really hope making-mods gets split into art and non-art
I never “got used” to VS
Idk I’ve used VSC like for Python a couple times
I don't use python to build but I do use it for publishing because batch files and msbuild scripting are a PITA
(things other than stardew mods)
I begrudgingly admit VSC has some nice features
I'm attempting to work on a tool to make using git as simple as possible for content/expansion people who don't want or need to think about actually using git. Just the kind of thing that'll monitor for changes and slap together a commit every now and again.
But I prefer that raw text files command line experience
oh nice!!
Regrettably my poor taste means I can’t help you here, logo
github desktop is a great ui but it doesn't do automatic commits afaik
Wait, you can use Python to build something else?
Drat and darn. That’s okay, Elizabeth. I’ll figure it out somehow…
damn they finally made a nerd channel
So far I've only been making small apps, this is a surpriae
you can use python to call dotnet / msbuild on the command line and do other stuff before and after
Nice!
the main reasons I use it is
- vs does not have a any built-in mechanism to publish for multiple platforms at once and
- I need to do zip shenanigans for macos packaging to get it to work right when publishing on windows bc chmod +x doesn't exist on windows
Have you looked at Sublime Merge?
That's actually what I use!
Sublime Merge is what I'm currently using too
I use that in combination with Tortoise Git for in-file-explorer
Although, VSCode + GitLens does a pretty good job too
you could look at stuff like gitautosync for ideas I guess though I feel like you'll have a lot of annoying edge cases to deal with
PyCharm is where it's at
I want this tool to be as simple as: open folder > initialise repo where necessary > monitor > commit > repeat.
I find it's not great for going through historical commits, but it's great for making them and doing merges
That's what I use TortoiseGit for
gotcha
If you can think of anything that would be about as simple as that for non-programmers, I'm all ears! Saves me effort in the long run. 
I think GitHub had a desktop app but I haven't tried it
I guess you could use inotify-win/inotify and whatever the built in macos one is to detect changes automatically for them. Only issue would be linux where inotify isn't automatically installed on most systems... And it'd still need to be a running application while they're working
GitHub Desktop makes things pretty easy too
I see. I hadn't considered that for windows, sounds like it's pretty different to build
And yeah, true. I've had the issue of finding equivalent windows commands (e.g for grep or sid)
I like to review my options for the tools I use about once a year to see if anything has changed
So I tend to get experience with all of the options
the issue with chmod +x isn't that there's not an equivalent to chmod for windows, but that the +x flag doesn't exist on windows at all
Do we need to rename this channel to "DH's new home"? 
also hi modders I don't mod but I do program for a living so I'm here now
Hi Crumble 
this is close enough to the off-topic channels I usually reside in
Windows 11 is adding sudo to a future version however

Slowly they're adopting Linux conventions
I'm so excited for sudo on windows you have no idea
#making-mods-general is dead, we're only on topic there 1% of the time
thank fucking god, it desperately needs it
Because of how windows works, right?
(Never seen an executable disabled in windows, now that i think about it)
@supple ether Re: Markdown convo in #making-mods-general : Yeah I've tried to use Markdown for personal notes but since in my editors it doesn't render that differently it's never really stuck. I usually just use a combination of spacing, horizontal lines, and ALL CAPS to split up sections and blocks of thought in my plain text note files.
as someone who uses linux for everything hobby related I keep forgetting sudo is not a thing when I'm on my windows work pc and have to close the terminal again and open as admin
Well, antivirus can stop you from executing things iirc but, not exactly what i mean
There is one example of this convention. Unsigned PowerShell scripts couldn't be executed without changing the default permissions.
yeah executables are done by filetype/magic bytes on windows afaik
I think the closest Windows gets to execute permissions are signed vs unsigned code, but even then everyone just turns off protection since it usually gets in the way of what you want to do
which is kind of a shame because permission flags seem a lot more elegant
That sounds more confusing/troublesome than how linux does it, IMO
"protection"
I'm a Windows main, but my work laptop is a Mac, and I run a bunch of Linux servers
windows is a clunky piece of shit for power users
But muh gaming
I've been gaming on linux for years now with little issue
depends on the kind of games you play though
the only reason I've stuck with it for as long as I have is because it's a pretty standardized platform with good compatibility
I am always tempted to use linux but there's a lot of programs I would miss
a little bit on mini metro
Honestly at this point, I could probably get away with running Linux Desktop, but there's just those random things that I run into every now and again
Yeah, wine is pretty good (esp if you make a game specific prefix), and there's always lutris
Well Proton has "changed the game" for gaming on Linux thanks in large part to Valve and the Steam Deck
(There's also playonlinux but i never used it)
Same. I deleted my windows partition in like 2021 and it felt so satisfying
also I am scared by the prospect of having to reinstall my OS sometimes when things go wrong
proton and lutris pretty much bundle everything you'd normally need together to run shit
if it was just about games I would switch to linux right away
I deleted windows from my home pc pretty much immediately after I graduated uni and wasn't forced to be able to run Visual Studio anymore
Like working things? If so yeah i get that
but there's a lot of tools and other programs I've come to love that are windows-only
there's stuff like wallpaper engine that will just never be on linux, and notepad++ which could conceivably be on linux but isn't
Yeah, I've learned what I'll miss switching away from Windows when I started using MacOS as my laptop
I just like the package management on linux too much. chocolatey and winget are neat but not the same
the biggest hurdle I have is that I use lightroom but I've just accepted to just use the ipad version as a compromise
I absolutely loathe MacOS Finder vs Windows Explorer, and I know a lot of people have some special hate for Explorer, but at least I can assign default settings that stick
What wild stuff do you do in notepad++? I just use mousepad on Linux, it supports a ton of syntax highlighting, but it's basic for sure
the other thing with linux is that while I realize it's theoretically possible to get any kind of shell you want for it, getting different shell components to work together might be a bit of a hassle
Finding linux equivalents has been easy for me because libreoffice is fairly close to office (i kinda prefer it more), but there's things that don't have an equivalent. Like that time in quarantine they did videocalls and the specific program wasn't available for linux 
never heard of that, maybe I'll check it out
windows explorer search is just really bad but the rest of the application is fine... ignoring the double context menu they added in windows 11 that means I now always have to open context menus with shift right click instead to actually get the options I need
Windows Explorer couldn't find it's way out of a paper bag
I just want something that's not fucking electron
There's a registry hack to turn that off
I'm not doing registry hacks on my work provided laptop
(Isn't notepad++ avaiable via snap?)
Ah, my work actually implements that hack by default
Genuine question. Though that uses wine IIRC
windows explorer is a lot better in 11 because they finally added TABS
They know that no one wants that behavior by default so all work laptops come pre-equipped with it
for anyone on windows: WinAeroTweaker is a godsend
I looked at a bunch of Windows Explorer replacements but never got around to actually using any
But my work laptop just went out of warranty so I got a Macbook M3 instead, and I'm so far loving it
there's a million applications on linux that can replace notepad from stuff basic stuff that are essential text editors to stuff like Kate which are borderline just fullfledged code editors
if there's one thing linux has more than enough of it's programming tools
I guess you don't have adobe dreamweaver if that's something you feel very fondly for 
all the popular ones I could find were either like basic text editors or bloated electron junk
Try Zed, it launched on MacOS but just added Linux. It's Rust based and focused on performance.
XYplorer, One Commander, Free Commander, Double Commander.. just never settled on one
ooooo I will try that
Yeah, then there's desktop-specific tools for each (like gnome/KDE/etc disk manager)
Oh the right click menu?
God I should get long paths
kate is actually the default notepad for KDE so yeah
I don't need dreamweaver I am a css/html/js god
I can write web pages in my sleep
no webstorm not even visual studio code just base vim no plugins
Oh it is? That's interesting. Xfce just comes with mousepad
no one I hope
Oh wait, I can't find the Linux donwload, but I swear I got emailed on the waitlist
mlocate is one of those great Linux packages too. Windows Explorer file search is so sloooow
We had a few clients bring us their existing site written in DW and they were nightmares to clean up
on windows, Everything is a great search replacement
since my work is very very entrenched in dotnet stuff my web development task are either fuckin Webforms or Blazor depending on its age which in both cases are best done in visual studio
Dreamweaver? I always just used Microsoft Word /s
I am so sorry
Yeah linux has some great ones. grep -ir has saved me so much time (and it's short compared to windows')
I legit had a professor who did that and it drove me nuts. no indentation either
I've been stuck back on webforms lately and I don't recommend it
I mean Word can actually output garbage HTML, or at least it could
As in, not writing HTML, but using it for formatting, tables, and such
I have clients that will screenshot their screen, print it out, write on it and circle things, scan in it back in, put the image into a Word doc, and then convert the Word doc to PDF and email it to me. I'm not even surprised by it anymore
hmmm gpt-4. not a huge fan of that
Oh wait, it was a different MacOS application that added Linux support I was thinking of. Warp for terminal.
well they claim support for the LSP protocol so I imagine it just supports lsp code actions
Autojump
Warp, also bult in Rust for speed
https://www.warp.dev/
Is what I use. Excellent bit of time-saving
can't be bad if it's rust
that one I have seen and been interested in
I've seen that around a lot!
AI built in?
Yeah, I've been trying out a bunch of new apps to find alternatives to what I'm used to on Windows
I like dumb technology
if you want a fast very good terminal that doesn't have ai shit, alacritty
it's also written in rust!
for bonus points
I don't mind AI features as long as they're not intrusive
I'm seeing a trend here. Somebody likes rust 😂
Rust is nice
I like rust
It's fun to write
I do also like rust but I am always amused whenever I see any new project or an update and see the seemingly inevitable "(partially) written in rust" sentence. Even fuckin JQuery 4.0 wasn't safe from being rewritten in rust
What syntax is Rust most similar to? Does it look like Swift?
Mousepad: https://en.m.wikipedia.org/wiki/Mousepad_(software) for anything heavier I use an IDE 🤷🏼♂️
Much better.
most of what I program is in c# because I'm more familiar with the syntax and don't need a systems language. Also to a lesser extent I'm still wrapping my head around the borrow checker
I use neovim for pretty much everything that isn't dotnet development
it's kind of it's own thing? but it definitely has some C influences
can't say it'd take more than an hour to learn the rust syntax if you already know a bunch of languages. The borrowchecker is the real first hurdle
Like when Kotlin came out I was like: Oh, they did a bunch of things Swift did. So I just kind of assume each new language uses similar things to other newer languages
yeah
the syntax was self-explanatory (mostly) but the borrow checker is something I'm still wrapping my head around
The language really is comfortable to write
Other than arguing with the borrow checker
I feel like once I understand it I'll really enjoy writing rust but until then it's slow going
Tbh beats type erased c# threading
thank god it did not inherit the "hidden parameter" part of haskell aka point-free/tacitfree programming or as people who hate it (like me) like to call it, pointless programming
Is that for dealing with nullable/optional type things?
Borrow checker is the memory management static analyzer for rust
the biggest things I like about rust are the built-in unions and the struct/trait system
It makes sure you don't commit memory crimes
rust doesn't have null it has Option and Result depending on the usecase
That was the thing I was thinking of in the alpha thread the other day
If I as a function expect you to give me ownership of a textuee
I can express that in rusr
I can also express that in cpp
I can't in c#
the struct/trait system is nice because it gets rid of inheritance entirely and forces you to use composition, but also it offers very low coupling between data and code, which is very, very nice
you can express it with a "pretty please" in the summary no one will read
I love my M3.
Oh I always read xml docs
I'm also in love with proper Discriminated Unions
tbh, wren, I should learn Go sometimes
That one has a fun type system
the rust trait system is nice till it's not which you can very clearly see in the mess that is async
Bit like xompil3 time duck typing
After having exclusively windows work laptops for... a long time, switching to the M3 is such a different experience. Like having a decent battery life makes me realize how bad my old laptops were, and the OS does a really good job at helping you manage a bunch of windows on the laptop screen
I do too... but often they're just like
SuckBlotch(): sucks a blotch
Love it in theory need to play with it in reality
that was one of the biggest things I struggled with avalonia is the documentation never really explains how something works and I kept having to dig into the actual source code to figure it out
Exactly. I almost daily get an OOM error on my Windows work laptop. Not a single instance on my M3.
I've been enjoying a lot of C#'s features for awhile now. outs are really nice (til you cant use it with async), task handling is really nice. Extension methods are great
I like c# until I try to optimize
"SetBorder(string) parses the border from a string" okay cool but what is the format for that string. does it handle null.
Then you get bitching like "oh my God no user defined intrinsics?"
I'm just imagining the nightmare that would be ref params across threads
Please let me use a Span
One of the programming YouTubers I follow, theo.gg had an interesting video recently about Go, and in it he talks about Rust and Typescript. Go is like a forgotten middle child because it's not as efficient as Rust and not as simple as Typescript (which we can substitute TS for C# and everything would still apply).
https://youtu.be/N8fjU_hlwDI?si=qCYUXYQdjlxVaDwV
After years of being, well, not fond of Golang, I think I'm seeing the appeal. I doubt I'll touch it (still spend my days in Typescript), but the benefits are clear. Sorry Rust.
Enjoy reacting to this one, Melkey
Check out my Twitch, Twitter, Discord more at https://t3.gg
S/O Ph4se0n3 for the awesome edit 🙏
out is a nice feature but I always find it a bit cumbersome to read code with it. Have to end up reading back up until I find where the variable appeared from.
can't say golang is very forgotten
This is an infographic that came out of that video
Haha
Like with Python or JS/TS you have a lot of packages and tooling to help you get a lot done quickly
I need to pick up haskell again
one thing I discovered in c# and fell in love with was tuple assignment syntax, ie.
(a, b) = (b, a) which works exactly as you would expect
then there's haskell which cannot be put onto this infographic cause it's neither easy to write performant code nor quick to write
I avoid Tuples if at all possible. Just make a POCO for it.
Tbh like my python velocity is type error
Possibly because I'm working with shitty libs st the moment
and the compiler is smart enough to simplify out the tuples completely into a series of ldloc and stloc
Effing love tuples
I do feel like they have a bit of code smell to them and they often give me the itch to just use a struct instead, but sometimes they really are the simplest option
I'll also do teensy record structs
Ok, now go back and read your code with Tuples in year and tell me how easy it was to understand lol
you can name tuple components
I always name mine
with how easy records are to write in a single line it's not much effort to introduce a quick little record to be your return type if you really need to
Just switch to using readonly record struct and feel less dirty
Same, depends on the use frequency. If you have 10 methods returning the same tuple, use a POCO for sure
Hmm.. that sounds familiar.. is that a newer C# version thing?
named tuples might be like around .NET 6 ish maybe not sure
And also frankly I can go back to code I've not seen for years and still remember thr context haha
the last time I used them was for storing an ordered list of paired items
Lots of our client's C# codebases are stuck in the stone age
it was used nowhere else and only passed around inside that one method so it seemed alright
I could've used KVPs but that seemed less clear intent-wise
I understand voltaek one of our windows forms applications recently received a massive upgrade from 4.5 to 4.7.2 and it took us like 3 years of begging with no progress.... till a client asked us to implement something that required a library that didn't support 4.5 and suddenly it was allowed for us to upgrade
maybe we will reach 4.8.1 someday
We're currently migrating a company off of their Access 2000 database and pre-.NET VB desktop app
Oh god
oh
Their database is approaching 4GB and the whole company is going to come crumbling down
I had to write something in net standard 2.0 the other day and it was terrible
well good luck
I get to use the version of .NET that our Azure server supports, which upgrades at the pace of the Change Advisory Board approval. i.e. still on .NET Framework.
Have fun!
So it's migrating 200 tables and 400 views to SQL Server, and boy do I just love that
(it was a sourcegen and I couldn't get it to work properly in newer versions of .net)
After that we'll create a new web app for them on current tech, but it's been a slog
Yeah sourcegen requires standard sadly
jquery 4.0 hell yeah
modern tech
What happened to the good old days of html and css
hey those didn't go anywhere
None of this dynamic BS
Give me a site a math professor might have written while drunk on a Friday night
We don't use all these fancy JS SPA nonsense frameworks, we do C# and PHP sites with normal JS and CSS
I can't say I'm a fan of the SPAs either
When a client comes back to us in 5 years for a change to their site we don't have to reinvent the whole thing because the basics continue to just work
or javascript for that matter
YES
We still have a client internal site that uses Prototype JS that we're trying to migrate to jQuery lol
people when they need a site with like 3 buttons that do something basic so they build a whole ass React application
CSS? Just use the HTML attributes for styling.
God I'm getting sick of fucking up python types on stupid shit
99% of webpages that use js do not need it. and a surprising chunk of websites using a framework could be replaced with static html
bad. bad
God people annotate your fuckibg libraries
Gotta have a language with strong types 👏🏼 👏🏼
that's not very semantic of you matt
<html bgColor="red">
let me guess you like tailwind
Incidentally typing is the thing I'm currently annoyed at c# at
and marquees
Have to type scrub to use threads grumbled
<marquee><blink>This was a fun effect.</blink>
Next you'll bust out a blink element
Unclosed tag!!
I KNEW IT
I do like tailwind it's convenient
This is how you can tell who learned HTML when MySpace was the only social media platform
Tailwind takes utility classes to absurdity
I'm sad that C# doesn't have a type operator like Java of <? extends T>
you forgot to close the marquee and this is transitional html so the browser is going to explode your webpage
I recently found out that the autoclosing tag like <div /> actually by definition does nothing in the html5 spec. It's just straight up ignored. Whether a tag is autoclosed is entirely decided by what tag it is
I feel called out
isn't that part of the xml standard?
Am I even old enough for MySpace
<marquee><blink>Okay, better?</marquee></blink>
that self-closed and otherwise-closed tags are the same?
well it's a remnant of the XHTML days
only difference if its self-closed is that you can't give it child nodes
All my homies use XHTML 4.01
hell no
I'm not aware of this, huh
screeching derangedly SEMANTICS SEMANTICS SEMANTICS SEMANTICS
like.
<div />
some text
Some text is actually inside the div cause autoclosing on a div does nothing
<b>Semantically bold</b> <i>Semantically italics</i>
idk why you'd do this with a div but you know
I... don't think that's how it works
text is nodes too
How is this used?
Not using strong and em.. smh
actually b and i aren't considered semantic. the idea is that the tags tell the browser the function of a thing rather than its appearance. hence <strong> and <em>
it's also why div buttons are bad
I know, I'm just trolling. Semantics is such a nerdy subject that I think most people are unaware of.
They know, they're just trying to make me tear out my hair
what the browser actually make of it
I think I love this channel
this is just what making mods was before today lol
I know, making mods so quiet now
It's making mods only unhinged because after 10 minutes no one has come in to tell us to stop
or you can make it more fun
<div />
<div />
some text
and it will nest it in both!
I feel like it was slightly more restrained in there lol
I'm going to learn so much haha 😂
I second this one lol
Dh I love you
idk making mods I'm the wild card
Uhhh, it's kinda complicated so I'm not sure the best example. It's helpful for overrides. <? extends T> could be a return type, where it's any type that extends T. Like in C# if you have an override on Task<object> you can't change the return type to Task<MyObj> even though MyObj extends object. C# overrides don't work that way
you can do that with reflection but yeah nothing compile time that I can think of
Wait... that can't be done with type constraints?
I think the "proper" way to do it in c# would be to just cast it, or have a separate method that called and casted for you
I think that usually gets handled by having the return type be an interface
object is a bit of a weird case
Although, I'd probably do Task<T> where T : class
it can be. what elm is saying is that you can change the typing of overridden virtual methods if they're assignable
Ah okay
can of course use a good ol dynamic everyone will love that
dynamic is not as bad as I thought it would be
Everyone did not love that
I still avoid it though
brb replacing all my variables with dynamic
I used it for Happy Home Designer for soft references against AT
Contravariance
And covariance
C# has that
I used dynamic once but then at 4 am I finally figured out how to write it without needing to resort to using it
because using expression trees / il emission turned out to be too complkicated
thank you for that tip about covariance and IReadOnlyList that one time by the way, really saved my bacon
somehow I don't think I've ever seen this in any c# code I've come across professionally
atra is probably better with c# than your average c#er
(I'm not a professional dev just a language geek)
Yeah if you're just changing the return type itself you can. If a child returns object you can override the return type to MyObj because MyObj : obj. But it doesn't work with async sadly. You can't override Task<object> with Task<MyObj> because Task<MyObj> doesn't extend Task<object>. In java you could do Task<? extends object> because of type erasure
I think I'm just not familiar enough with the use of out probably
you can do that with some types; I'm not sure why not Task since IIRC the generic version indicates the return value
The slot binds the type it uses
Ring slots only accept rings etc
Because Task in c# doesn't implelent covariance
:o
TryGets are great 😆
it's time for TaskCovariant
Yup. Wish it did 😁
Interesting
Ok, I need to do some actual work today. This new channel has killed my day lol
it's 8 pm, there is no work ignore your own timezone
I don't think I've ever seen the keyword this this much before in C#
if it's in parameters, that's an extension method. otherwise it's mostly only used for differentiating between fields/properties and shadowing variables/parameters
yeah I mean I get why it's there
Oh I use it all the time. I like fully qualifying parameters like @supple ether says
our coding guidelines at work and your preferred style would not get along
my style has gotten a lot less messy over the years but I have no idea how it measures up to "professional" work
I do try to make the code as self-explanatory as possible though
well I doubt it's more messy than professional work...
Lol
I just stole Pathos's editorconfig for SMAPI. That's enough to keep me in check, right? /s
Way easier to tell on things like GitHub what is and isn't a local var when you've got this. qualifiers
I should probably add a readme
Yeah, I have my editor set to mark a lack of this. as an error.
A lot of Pathos's little ducklings do IMO
idk how pathos programs
Like a monster 
one thing I am trying to do less of is storing monitor/helper statically in my mod entries. It's convenient but it feels like a bad idea for loose coupling and encapsulation
pathos' code is a work of art
I may have been here for longer than pathos but I have not set foot inside the modding channels
woah new(?) channel
Indeed
containment channel for programmer noodling
a crime, unbelievable. Inconsistent naming convention
just like stardew's codebase fr fr
I have not seen stardew's codebase but from what I know CA wasn't exactly a professional programmer
It's...
Written in a way that optimises for getting a game finished and working quickly?
I think I'd put it?
that's a very kind way to say it
Which isn't meant to be a knock at it at all! He was making a game to make a game after all.
And did a damn good job at that
The use of JSON objects where values are like "aaa/bbb/ccc" and a . Split('/') are used pains me.
the thing with game design is that it's better to try for something that works than something that's good. if you have something that works you can polish it up later, but if you try to make something perfect right from the start it will never be finished
yeah I mean I don't care even if your game is a 7000 line switch case of states defined as strings
if that worked for you... good for you
basically every massively successful indie game is massive spaghetti behind the scenes because of that
i mean that's basically the Object.cs item system now
I'm absurdly excited to run Haunted Chocolatier through ILSpy when it comes out to see his styles have changed.
it ends up being worse
just ILSpy 1.6 hehe
But so much of that is Pathos and Casey and you!
I don't get to see commit signatures! 
Oh banger, thank you Atra
Test
pfffft
pathos is undefined? I know discord uses javascript but damn
at least he's not [object Object]
[object Object] is not valid JSON
lol
ah yes, my favourite channel! #codeybois
LMAO i picked it because it's undefined behavior in C
I do think sebs-basement would actually have been a good channel name though
That is true!
It would have been that, but we ended up wanting clarity first.
I think most people would expect it to be false
I can ping you in if you want
^^
there's a thread for the 1.6 alpha
I mean, you're increasing it and then increasing it again so it makes sense it's false
why??
that's assuming that the left executes before the right
ok true
oh so it's doing ++i == i?
aw, i+++++i doesn't work
it's undefined behavior in C though. Not because a compiler won't emit some functional code for it, but because the result isn't determined by the C standard
It's like INT_MAX + 1 in C
Signed integer overflow is a very classic undefined C behavior
It's probably(?) well defined in JS lol
well defined but does it make sense
wdym
javascript loves to do things that don't make sense though for this one I dont' really see what it could do weirdly
Someone in Twitter is complaining about ieee754
it's because the order of operations here are weird
So time to get into a stupid argument
i++ is supposed to increment and be the old value, ++i is supposed to increment and be the new value
this makes sense I guess but it's a little funny. You basically just increment by 1 only to immediately override it
right, but if they're in the same expression, which one executes first?
My general rule of thumb is that if I have to look up the order of operations table I need more parens
the more I think about this the less I'm sure this makes sense
The point is, JavaScript will do something, which can be sensical
C is not JavaScript, and leaves a lot of the implementation details to the one who implements the compiler
sometimes it's just fun the ponder the very strange unusual code no one would realistically ever write to begin with
what's the complaint
i love how Twitter can complain about a programming standard
like what an off the cuff thing to rant about
Right, because it's not a number
Floats are also only partial ord due to this
Yeah
And they find it confusing haha
(I agree with the standard here.)
I also agree with the standard here
Doesn't everg browser have their own implementation of JS?
well
Yeah, though I'm not really sure if it's unspecified in JS?
A lot use the Chromium V8(?) engine anyways
not every browser has its own implementation of javascript. There's essentially three javascript engines that people actually use
V8 is the most common yeah
then SpiderMonkey for firefox and JavaScriptCore for safari(and a few random other things)
<- smug look of firefox superiority /jk
I mean SpiderMonkey is defnitely the best name of the three
I do believe it's the slowest of the three engines though
not that it matters unless people go insane on their websites
it's fast enough that I haven't noticed significant lag on anything other than reddit. (which was a while ago now) and on reddit I suspect the issue was that the infinite scrolling just kept making the page have more and more stuff on it and the bottleneck was probably DOM processing
yeah I haven't had any issues
also firefox here, haven't really had issues either
alright so we'll trap the nerds in here then push them all out to sea right
I'll corrupt your arch cache
please, i can do that myself
so independent
#making-mods-general is suddenly always on topic
Isn't it great? 
👀 new channel just dropped?
don't worry it won't last and mods will have to keep saying "please take this to #programmers-off-topic"
I can finally out my frustrations about the horrible workings of source generators without interrupting modding discussions 
maybe once in a while if we start to get into that border zone between stardew modding and general c# talk but overall I think it will go pretty well
Yes, give us the SAML rants!
I did some sourcegen stuff the other day and it is... something
Builds source gen -> has to restart VS for a change to take effect. Every. single. character
And how about the fact, I have access to loaded assembly type names and namespaces, but not THE ACTUALL TYPES
I'm just going to loop back to this from a previous mini rant: <#programmers-off-topic message>
Behold my horrific attempt to map out the types for an assembly (this took 4 days (I'm tired))
Got anonymous event handlers to work though
SAML is the UI framework I just released to alpha, when I started working on it I talked about having an xaml like language attached (hence the name)
Not a fan myself, but I can only play minecraft for so long until I start itching to do something productive
Not on weekends though...
makes me wonder how microsoft behind the scenes implemented the eventcallbacks in blazor razor files to accept both async and normal functions
I don't remember xaml allowing anonymous event handlers
though I barely used it
I remember just getting annoyed by the converters
It doesn't, but I found out that, after moving around some checks, I could
And converters will still be a thing (kind off), since I can't easily take a string and convert it to a rectangle otherwise
ez
abc
d e
fgh
Valid rectangle would now be something like 320, 320, 64, 64, which will then be parsed with a pre-build converter to a rect
tbh my experience with XAML comes from MAUI which was barely functional despite microsoft's claims
not a great introduction
wait are you not just using a custom ISyntaxReciever?
I remember having high hopes for this, but eventually deciding to learn flutter instead
yeah makes sense
oh you're doing xml bindings that's a whole other can of worms
Nope, this is all built from xml, I have absolutely no access to types outside the project assembly (except like that)
the better choice for sure
All of my XAML experience comes from Avalonia, which is... at least better.
I know nothing about avalonia other than that it's the option that's actually cross platform instead of just pretending to be like MAUI
whether's it's actually good I have no idea
it's based on WPF conceptually
I use it because there's not actually a whole lot of options for robust, data-driven cross-platform gui frameworks
it's not amazing but it's less terrible than much of the competition
Uno technically exists, but I've tried that very little.
plays draw 5
opens paint
who needs a responsive ui? just draw it in photoshop and hardcode the buttons
ship the figma design as the final product
I presume this is why electron is so popular despite the bloat
My clients when they don't understand that there is more than one size of computer screen in the world
just specify the resolution as one of the required specs
And make sure you specify everything in px not em
I use vw and vh like god intended /jk
Like, who even needs flexboxes when you have the old position: absolute; left: 50%; margin-left: -400px;
Hey, stop looking at my Stardew mod's UI code.
I can't even tell if you're joking because Stardew UI code really do be like that
float: right; display:inline-box; still gives me nightmares
the things we had to do before flexbox....
at least tables were better than frames shudder
frames, you mean overflow: scroll
no I mean those ancient web pages that would make the navigation bar a frame. and also the sidebar. and the main content. and probably the footer
I'm sad that none of my old websites load on archive.org because I wanted to be clever and had a bunch of random crappy Javascript to load my pages
not Iframes, frames
I was doing SPA before we had a good way of doing that
https://developer.mozilla.org/en-US/docs/Web/HTML/Element/frame
these bad boys. do not miss
Sadly scrapers weren't able to pick up all of my dynamic content so the page is just empty now
it's like tables made of other webpages
rip
How about this for a blast from the past
https://www.spacejam.com/1996/
Why can't the internet go back to that. Peak design right there.
geocities, hypermart, virtualave
there's still plenty of that in userspace! it's just hard to find because seo favors all the streamlined garbage corpo shit
neocities is a revival of geocities!
I've also found some nice old-school style forums
For some reason, that page just reminded me of image maps of all things...
honestly image maps weren't a terrible idea, people just abused them
#include <iostream>
using namespace std;
int main()
{
cout << "Omg we have a programming channel now!" << endl;
return 0;
}

the long discussed programming off topic chat is here
a momentous day for the server
#modding continues it's slow takeover
the number of modding related channels has quintupled in the last 5 years
We're writing it in rust
think of this channel as like chatgpt

and about as accurate
You can't spell rustaceans without C
so when are we getting a stardew-oxide library to let us make mods in rust atra /jk
I don't even know what a computer is
Never
its something you craft with a dwarven gadget
I have freed myself from the responsibilities of maintaining stardew mods
I dont want to maintain mods I just want to make them
Tbh I don't want to make them either
Hey all, this sounds like #making-mods-general. Let's keep things off topic. /s
I'm shocked we haven't devolved into linguistics here yet.
Now I want a programming themed parody of the one Haddaway song everyone knows...
It's un-making-mods though
Rm -rf
sudo rm -rf * 
how do I erase the boot sector /jk
I heard if you delete system32 it makes your computer faster
it's true! gets rid of all the bloat
This is true, but only if you install linux afterwards
Just grab a book and write the code bt hand
Hiss to the gpio pins
I use my body's electric field to rewrite the electrons on the ram die to achieve the result I want
sudo rm -rf /boot ez
Rare aquo sighting
I know, I'm surprised to see him outside of ||[redacted]||!
Rare DH sighting too 
I feel so cool knowing what the redacted is..
probably
#sewers
what were the sewers?
sorry for going off topic here but i can do a short explanation, iirc it was an off-topic chat mostly for images.
huh, interesting
"We die like kings" is such a hardcore quote
apparently it's a pretty hardcore metal song, too.
https://www.youtube.com/watch?v=l5_Ld5SxeNI
Hardcore metal fr
not to be confused with "Die as a King", which is even harder-core metal
https://www.youtube.com/watch?v=5WnI8dnQSlw
Official music video for "Die As A King" from metal giants @Kataklysm. The monstrous new album GOLIATH is out on August 11, 2023 via Nuclear Blast Records. Shop and listen at https://bfan.link/kataklysm-goliath.yde
Subscribe to Kataklysm: https://nblast.de/subs-kataklysm-yt
Subscribe to Nuclear Blast: https://nblast.de/subs-nb-yt
ORDER & LISTE...
Just the old name for #images-and-memes!
people got upset that they kept being told to send their pet & game images to the sewers...
#include <deez>
print("Hello world")
(You are correct.
)
(you are cool)
woah new channel?
new channel? 👀
a channel that's new?
N E W C H A N N E L
E W C H A N N E L N
W C H A N N E L N E
C H A N N E L N E W
H A N N E L N E W C
A N N E L N E W C H
N N E L N E W C H A
E L N E W C H A N N
L N E W C H A N N E
This word search seems a little too easy 
assembly
interger 
This is something I'd both love to try to learn, and would hate to actually do
Im looking to learn a programming language, whats an easy one?
peoples' first is usually Python
it's very beginner friendly
depends what you want to do, though!
That right there is one of the most divisive questions you can ask any programmer! 
oh, thank you!
(not me, i learned C# first because i wanted to mod stardew !)
Thats something i wanna do at some point too, is that a relatively easy language?
uhh
Python and Javscript are two of the most common starting languages, but personally I don't really like suggesting them to beginners.
Purely because I feel starting with something that isn't strict on typing (you won't understand what this means right now, and that's fine) leads to... thinking of things in a less structured way, almost?
It's also certainly more difficult to go from something like Python to C# than the other way around.
i see
i would personally recommend C# purely because of how useful it is and how easy it was (imo) to learn
hmm... C# it is, then.
C# or Java is the best imho
Now i just gotta figure out how to get myself motivated and start watching a bunch of videos on it
there's plenty of resources out there btw. for reference, i learned using a website called Codecademy
make sure you use a course that makes you do exercises
this was... what, 3 years ago O.o
What might help with motivation is the realisation that you'll be able to apply the C# to Stardew modding!
i wouldn't recommend videos personally
and the best way to learn is through exploration and trying stuff yourself - make a simple mod !
Free video courses on YouTube and the likes generally don't have exercises to do or anything along those lines. And actually using the stuff you learn immediately is normally one of the most effective ways to learn.
hmm... ok, ill try that!
my first mod was 'Yet Another Sprint Mod' and it was crap, but it helped me learn C# and apply it
huh. nice!
And since then, Harv's now technically making money doing mod commissions with it.
Really? Im just interested in it as a hobby and for making my perfect version of stardew.
Aha, well if you're interested in modding Stardew, C# is 100% the choice.
Nice!
I don't really have any learning resources to recommend myself, unfortunately. All of my programming learning has been self-taught poking at things over the last... geez, 20 years or so?
i know a few programmer friends, should i ask them about it?
I figure itll be the easiest way to learn
Definitely get more opinions! But keeping in mind no language but C# will let you get deep into Stardew modding.
K! thanks!
damn I missed the classic question to start an argument between developers
my first programming language was C# cause it's what my university primarily uses in its courses
I made like a little xna catapult simulation for physics class in my last year of high school using XNA so that was my introduction
then uni was mostly C# as well with some Haskell, Prolog and a tiny bit of python
A TON of games, actually
Godot is... much less likely to use C# at least, but it exists.
Can’t forget Terraria
lots of games from back in the XNA days
it was definitely one of the easiest game dev tools to learn at the time
I don't look into modding much but I feel like the most popular language for writing mods is lua
I should try run the 1.6 alpha on my switch
I still sorely hope the Switch port gets the modding changes.
Imagine Switch modding of the game then.
I doubt it wouldn't (clarification: I'm sure it probably will)
wouldn't you need a devkit to run a game on a switch
✨ linux ✨
it's a modded switch anyway, so technically if I had the port I wouldn't need a devkit
is anything ever complete without a rust binding for it
I found it interesting that Balatro is a Lua game
(Also please send help, I played like 30 hours of it in the past week)
now that's an engine I've never heard of, LÖVE
I’ve only heard about it because my hipster high school friend did some things in that engine back in the day
(That was 10-12 years ago)
seems like one of the smaller more straightforward frameworks much like xna was
seems neat
I would... well, love it if I enjoyed Lua!
I much prefer these over the giant ones like unity where learning the engine is half of the battle. Just let me dive into the code and give me a basic way to get started
How dare
do you like that one
Its a fun engine. Im shocked they got it running on consoles tho
I've only ever seen you talk about pico8 and I guess godot
Its like pico8s big brother
nice
pico64
if I actually had any motivation to make a game idk what I'd actually genuinely pick
uh as a fan of Bevy I'd say I like them
actually pico64 is coming out in like a week, its hype
not to brag but I am a contributor to bevy (I wrote some docs)
we'll add a bevy contributor role
thansk I did basically nothing and it will probably be deleted when the UI code redesign happens
lmao
look it me
ECS makes more sense to my brain so I like it
yeah I mean it excels if you have a lot of entities to handle
dreaded shaders
does it matter which engine i use if i never finish any project anyway
yes
pick the one you have the most fun in instead of what makes sense
nice
I'm the type to find some interesting project, read about it to the tiniest detail for a few weeks and then forget it exists and never look at it again
I never actually end up commiting to anything
I like learning about tech things but rarely have anything I'd actually want to do with them
like bevy
it keeps me busy
my actual job is in... idk tbh
it's mostly web dev from websites themselves to backend servers... but then also random other applications
a lot of database work
fullstack I guess
deep in the dotnet/C# ecosystems
for backend, aka ASP.NET Core is very good and I do enjoy that quite a bit. Front end... WebForms is a big no thank you, Blazor is pretty good but it suffers from trying to allow both serverside and client side applications, being worse at both as an end result
not much to say about the database, it do be a database and SQL is good at what it's intended for
Entity Framework for database interaction is quite good though it has its performance issues sometimes or suddenly changes its behavior after an update of the package
the nerd channel
Being a nerd is underrated
And I'm not shocked this channel has apparently become an instant hit!
(10/10 great idea)
Might as well ask a question. For you devs with online aliases, do you keep just one GitHub account? I was reading the TOS for github and it says one personal account for a person so I'm thinking I have no other option. I tend to think about security a lot but I might be overthinking
Lol, at the end of the day it probably isn't enforced much
does github not specifically have an account switching feature
It does, I might be wrong but that might be intended for enterprise accounts
They also consider some other kind of account I forget what the TOS called it
I think a machine account (one not ran by an individual)
ah interesting
I'm probably just overthinking this. But ideally I would want one account for my Stardew mods and other projects under my online alias on discord
you could make an organisation
if you just want them to be seperated but not different aliases
^I heard about that. I'll look into it I don't know much about it
Thank you appreciate it
That might be a good option. Honestly I might just use my account with my real name linked to it since I would want people IRL to see my online contributions
you might not want people online to know your IRL name though
Yeah thats exactly what I was thinking
An idea I had was having my IRL account and then linking my online alias account in that profile
Keep in mind that your local git configuration also has some name and email attached to it, so you'll want to be careful if pushing publicly
Yes that too
If I do this if GitHub cared about TOS thats a violation then
I highly doubt they'd care, but you could also use gitlab or something else
Oh true haven't thought of that
Yeah, you can set things like that globally, which you want to be careful about. I just decided to stop caring and have my name on my modding repo.
I think you can set your git name/email on a per repository basis?
you can
Can even set signing keys and such on a per repo basis.
Huh interesting
don't think my name is anywhere to be found on my github account
Got you
It's just rough cause I'm a computer science student as well. So plenty of work that I want my real name to be attached to
But if I want to link source code in a nexus mod description as an example
Then it links to my profile with my identity and all
I'll figure it out but thank you all for the ideas
Mine is on my github account. I've debated removing it, but eh
I'm more concerned about someone spamming my email attached to the commits lol
There are some non-github repositories I occasionally push to, idk if its worth the effort to do non-global configs really
I believed I've hidden my email address on github using their features to do that, and so far I haven't gotten any spam
i'm fairly sure my real emails is on some commits, but I changed it to the hidden one at some point, don't think I got any spam on it
Huh, I'm actually not seeing my email address on any commit messages.
not sure at what point I think I set it to be hidden, since the real email's on some commits
ok actually changed now
The most satisfying thing to get set up is the ol' vigilant mode + verified badge, though.
the what?
oo fancy
When I have the time, I am getting Stardew mods building directly on GitHub as well. Just that extra layer of fanciness and being able to verify what you've downloaded was built from what you can see.
And eventually uploading to Nexus via the build process... when they get an upload API.
I've been using this hacked together workflow for releasing sometimes: https://github.com/drbirbdev/StardewValley/blob/main/.github/workflows/release_mod.yml
opmu...
but it doesn't build, I just push release zips
Oh, that's another thing of yours!
yeah I have to trust some sketchy unofficial api with nexus creds
I didn't make the opmu thing, I just forked it
Trying to do anything network-related in python makes netcode look easy....
I was so used to just grabbing field.Value...What's this about requests being rejected
Makes me appreciate SMAPI (and Stardew) for how easy it makes things, though.
just cause you're hiding it in the game modding category can't stop me
i see the words off topic I'm there

python makes netcode look easy?
now I'm curious what this netcode looks like
having written some networking logic in C# with TcpClient/TcpListener they're anything but simple the moment you actually need it to be reliable/robust 
I just found this channel! This looks like it will be helpful!
Oh I don't mean coding per se(?) but getting values. In SDV I can just tell the game "give me this" while here I'm struggling with errors left and right
I wanted to make a simple app that returns search results (to get used to python), but- request rejected, something about stale in XPATH...
Now that the other channels are "making- mods-*" i find this channel name bothersome
#making-modders-distracted
#making-mods-programming-off-topic could maybe be a bit too long 
Can you elaborate a little on what makes it bothersome to you?
Different naming format, nothing serious
Ah, I see. Well, the idea was that this channel wasn't intended to be about making mods, but rather a place where people could have random coding & programming conversations.
It made the most sense, server wise, to put it in the "modding" category, since that's where the majority of the coders frequent (with a few exceptions)
#mod-showcase exists tho
Seems like the ideal use for thread to me, but oh well
Thread visibility was why we opted for a channel instead
#making-mods-nerds-section
Well i can't come up with a better name
#sebs-basement
#making-mods-not-sdv-tho
I genuinely like this though
I know. I love it
it makes sense and fits with the stardew channel theme
But we opted for clarity first 🙂
does that mean we can play role-playing games here though
ummm prolly not?
now I just need to know what the difference between #creative and #creative-discussion is
aw
(explanation: [[Sebastian#Six_Hearts]])
Wait, what is art-gallery then?
rare aquo sighting!
featured art I think
I know! But that only happens on a Saturday, and well, time zones
art-gallery is for featured SDV-themed art that gets posted in creative
Have we managed a linguistics digression yet?
...and we're getting off-topic 
Programming languages are a type of language.
Atra! I concede the floor to you
Atraaaa
Any rust shenanigans
Talking about naming things is very on topic for programming
Atra's Rust shenanigans were completed with #lost-rustaceans going in the subject. 
what's people here's opinion on go?
Go is okay sometimes
... My keyboard suggested shamanism instead of shenanigans, which supports my non programmer theory that y'all do witchcraft when working with harmony
generic question: can I define multiple classes in the same C# file?
followup: should I?
- yes you can
- it depends
Does the filename have any effect here?
nope
Interesting
I don't think I've ever had a reason to put two classes side-by-side in a file, but having inner classes can be useful
if you expect people to browse through your code on Github, having 1 file per class, named accordingly, is preferred generally
I'm trying to make ~15 essentially useless subclasses
I should probably ask more detailed questions (ie actually stardew relevant ones) in #making-mods-general I guess??
Re whether you should: technically it depends, but usually it's bad practice. It's better to have a namespace instead if you have a bunch of related classes.
basically my subclasses are entirely empty, they just need to exist
(see #making-mods-general for context)
Yeah, I'd just have a nested namespace for those.
I like to pretend my C# is Java-level strict on this subject.
the Java point was brought up, because the answer to 1. in that language is "no, you can't"
and "the files HAVE to be named the same as the classes"
Interesting
Is a nested namespace Pathos' fancy word for a folder?
Also what the heck is a partial class?
making a class partial means you can have multiple files adding something to the class
okay that sounds a little haunted and not at all anything I need
the main use case is for source generators
i've also found a nice use case for these in Season Affixes. my config class is partial. each affix is defined in a single file (possibly with multiple types). and then each of these files also has a partial class ModConfig and defines its own configurable properties
ooh that's fancy
Ideally your folder structure should match the namespaces, but I was referring to the namespace X declaration. So for example, you might have the main class in namespace YourMod.Framework and the models in namespace YourMod.Framework.DummyModels.
I'm not sure I understand entirely, but I think I understand like 60% and that's probably good enough for now
I never really have classes in the same file but we have a whole bunch of records we use for message passing in one of our applications and those records are all defined as one liners in their relevant files
someone here using VS with intellij keybindings?
I think what you're describing would be more necessary if I wasn't writing an extremely small mod
simple answer is that a partial class allows you to split the definition of a single class over multiple files
For what you're doing, I don't think it's really going to make a functional difference to maintaining the mod to just have them all in the one file.
They're essentially going to be tiny classes with some fields and that's it, right?
sometimes partial classes are used so you can extend them with more functionality in a way that inheriting wouldn't
they're handy I like em
look at FTM's sourcecode and be traumatized 
the entire mod is a single partial class split over 30 files
