#programmers-off-topic
1 messages · Page 13 of 1
not that boring celeste
How very dare.
pico8 celeste
the real one
celeste on the 3ds is great
I think there was some guy on youtube that I used to get recommended videos from that went down this route all the way down to building his own chip
pico-8 can be a great inspiration to a young developer
his own operating system
all to play I think tetris
pico8 is pretty cool I'll give you that
I'm making a game right now
i actually havent finished the logo theres supposed to be another word
Okay, everything looks aligned to the pixel grid. You may pass unscathed. /j
are you familiar with the hit game Chu Chu Rocket
no
I respect it
btw. building your own lighting engine from scratch is not something I would recommend... It's probably one of the most complex fields of computing that I've ever encountered
even just introducing shadows is highly complex
actually thats why i thought about pico-8, theres a blog series of a guy who did dynamic lighting for his pico-8 game
Stop making me remember how text drawing used to not be pixel aligned in Stardew. (Best change in 1.6?)
ok but text rendering gets a pass
it sucks
does pico-8 restrict itself to monospace fonts?
The default latin character set is monospaced, but there are additional symbols mapped to the capital letters which arent, and you can just set up and use your own custom font
oh yeah just found that out,just read on a shader server for MC that shaders for mc that use custom lighting can take thousands of hours.... which is costly as well
That was one of the most exciting things to me in the Haunted Chocolatier trailer!
nerds
ironically raytracing is conceptually much simpler than traditional rendering. It's just unusably slow
building a basic raytracer with shadows and reflections is not that difficult, compared to most rendering anyway
If I was a nerd would I spend hours benchmarking a function to do string splitting more efficiently? Hah, checkmate.
yes you would
(Going well though)
what's the "games" version you're comparing to?
is that a method in the sdv source code?
did CA write a custom splitting method
StardewValley.ArgUtility.SplitQuoteAware
It's very... "This code needs to run on .NET Framework also"
Though I feel like I could have written a faster method that would run on .NET Framework I may be forgetting how awful .NET Framework is.
well you wouldn't have spans at least... I think
It does this weird thing where it calls string.split() and then it iterates over the resulting array, storing entries into a list (that is defined with an initial capacity of 4x the array's length)
I feel like it'd be faster to use StringBuilder + loop over the string, but maybe those operations sucked in .NET Framework and I'm forgetting.
don't think so
I remember Pathos doing a ton of benchmarks on that method in the 1.6 thread, but finding them is... difficult because of how they were all screenshots.
did sdv end up becoming a performance critical application while I wasn't looking?
Anyways time for some real performance tests. (I, of course, am now string splitting the entire bee movie script.)
Well, int IDs were replaced with string ones for... a lot of things.
why benchmark with the works of shakespeare when you have the bee movie script
why strings
Interesting.
Strings so that mods can extend things.
With numeric Ids mods were constantly running into each other.
And 1.6 was primarily a modding update.
all the silly non modders got some extra content to distract them from the true purpose
is that apart of python's libs? or something entirely different
cuda is a gpu programming language for nvidia gpus (and by nvidia)
generally speaking running code on a gpu is a pretty complex problem
if not they just are sitting there
i heard its not possible to run shaders across them
across what
GPUs
oh
multi gpu programming is not even something I have any knowledge about
that's such a specific niche
oh, didnt know that
Multi GPU rendering was abandoned by everyone because the performance gains didn't make up for the problems keeping them synced.
If you're running a compute task that can be split up, that's one thing, but rendering? No thanks.
lol, the more i learn the more i wanna try the niche stuff
but i need the basics first then i can start that
a long journey ahead of you
at which point multi gpu rendering might be a forgotten concept
companies like nvidia are already struggling enough getting gpus with multiple dies working without too many sync issues
not the field as a whole because it's important to fields like AI
for rendering it's dead though
so gpu compute will continue to have multi gpu solutions
they'll still be complicated though
hmm ok, other than AI is there any i can use my GPUs for?
run minecraft at max render distance
sadly MC isnt cross GPU compatible
ive asked like 20 different places and got the same answer
(however i do do that already 256 render distance go brrrrr :3 )
get into neo4j graph databases and start visualizing way too many nodes at once?
jesus what kind of hardware do you have that works with 256 render distance
or maybe the only reason it sucks on my machine is because I don't have enough vram
no i have a decent GPU and i'm not getting anywhere near that
oh are you using nvidium or something
Bobby plus nvidium
even with sodium I don't get a chunk radius that huge
plus spark and lithuim
yeah that tracks
with the distant horizons mod 256 render distance isn't even particularly crazy
I can't use nvidium bc I play with other mods
my max was 1k
distant horizons doesnt work properly with iris though sadly
It would be nice if Nvidium was more broadly compatible.
i tried 10k but my PC red lighted
it does nowadays
Isn't there a test build for distant horizons + iris?
yeah but shaders still have to have explicit support and only a specific build of Bliss does
for now yeah
if I can start using nvidium with Create and shaders then maybe I'll look into it, but until then I'll keep going with 9-11 chunk range
bobby does seem good
i'm still sticking with neoforge for now though, since some of the big mods I like aren't fabric-ported
(ars nouveau, mekanism, apotheosis)
also IME fabric create is somewhat unstable, though that might have changed in newer versions
you can use fabric mods with forge now
well.... some
these two
yeah, some is the operative word here
slap those in mod list and then you can
also I was having a lot of trouble with connector the lst time I used it
kept ending up with weird crashes on startup until I got rid of it
i did too but i remember it working after some time
Bobby with and without nvidium(i get much more fps on servers but this is just single player so its less effective)
what shell are you using?
I can't tell if that's linux or windows with a 3rd party skin
Yeah
Ah hello fellow ShaderLabs member! Technically speaking, what you're writing in Minecraft Shaders for Optifine/Iris is GLSL, the shader language. All of the nitty gritty OpenGL details are left to Optifine/Iris
If you're working on a 2D game, DH is right that SDL w/ SDL_Textures & SDL_Renderer is more than enough to get started with, while still being relatively low level
Anything 3D though, and you'll still likely be requesting an OpenGL context (or DirectX, Metal, etc.) and working with the OpenGL API calls yourself
I highly recommend using SDL, GLFW, or some similar windowing library as the minimum cutoff point if you're looking to go low level. You almost definitely do not want to have to handle the platform-specific boilerplate code for creating a window & polling input from keyboard/mice/controller/other HID
There is a lot of operating system specific code:
https://github.com/glfw/glfw/blob/master/src/win32_window.c (Windows)
https://github.com/glfw/glfw/blob/master/src/cocoa_window.m (MacOS)
And even on the same OS (like Ubuntu), you'd still need to support things like X11 vs Wayland:
https://github.com/glfw/glfw/blob/master/src/x11_window.c
https://github.com/glfw/glfw/blob/master/src/wl_window.c
All that just to create a functioning window that can be moved around, resized, handle input events, etc.
And those are definitely valid things to build expertise in! There is, for instance, Handmade Hero (https://hero.handmade.network/episode/code) which goes about creating games via those really low level, fundamental building blocks
But in my heart of hearts I cannot recommend training for a marathon as your very first race, so to speak
Ahh hello!
im actually really wanting to get into shaders
that's a great place to start!
gotta fix a current bug in a tutorial shader im having, been working on it for like 3 days now
I also started my graphics journey with Minecraft Shaders, both resourcepack & optifine ones
it seems so hard to learn but i want pretty game lol
It can be a lot at first, for sure
And for what it's worth, I think Minecraft Shaders are perhaps harder to learn than most
You're stuck working around the limitations of the engine & whatever Optifine/Iris exposes for you to use
would you be willing to help me with a issue ive been having, or point me in the right area to look?
well two issues really
I can try, for sure!
Though I'm sure the dev trainee chat on the labs could also be very helpful on that end too
oh yeah, ive tried there, had a few people take a look but no-one seemed to be able to figure it out 
probably cause idk what to give em
(code wise)
actually yeah ill ask there, so i dont fill this chat! if you wanna see whats going on itll be there, if you dont, thats ok too!
we'll see! I've been inactive for almost 3 years so it's been a while
But I'll take a look if there's something I can point you in the right direction for
So I'm gonna respond in here, it looks like you might need to clamp a value somewhere
It seems like there are spots where a value might be going negative and/or fragments are getting discarded
handy alright, ill go google how to do that
I would take a look at the gbuffers fragment programs.
It could also be in the composite shaders. Idk how many buffers your shader is using but it could also be that the entities are in one buffer, while the terrain is in another, and when blending them together there's some mistake
What stands out is that the places where the entities are seemingly discarding fragments seem to be absolutely black
I'd recommend loading your screenshot into an image editor and sampling the colors where the fragments are being discarded; I suspect it's #000000 RGB(0,0,0)
will do, thank you
Oh, actually, no, I think the answer might be a lot simpler than that
It looks like you're applying the terrain shadow onto the entities
I'm not sure how the things are getting composited, but it definitely seems like the entity fragments are having the same lighting as the terrain behind it should have
Make sure you're sampling the shadow map correctly for the entities
Oh this is all from a tutorial shader, trying to learn how they work
ill take a look at the shadow stuff and sadlly no entity files, but ill take a look at the terrain to make sure nothing funky is going on
there's no gbuffer entities?
That's odd
This tutorial shader doesn't look like it would work at all if there's entities in the screen
It's a strictly terrain shader
Basically what's happening is gbuffers_terrain.fsh is outputting to 3 buffers.
0: albedo (the raw color of the texture + any color modifiers)
1: The normal vectors, converted so that [-1,1] maps to [0,1]
2: The lightmap coords (the coordinate where to sample the Minecraft lightmap
^^ example lightmap
The problem is that there's no gbuffer entities program, so by default it is using a "passthrough shader"
Basically, buffer 0 (the albedo) will have the color of the entity, and then none of the other buffers will be written to
So buffer 1 (the normal vectors) still has the normal vectors of the terrain, even if there are entities that are drawn above that terrain
Buffer 2 will also still be using the lightmap coordinates of the terrain
So when applying the lighting in composite.fsh, it is using the data of the terrain even when there are entities in the screen
That is to say, this is a very simplistic tutorial shader that won't actually work for normal gameplay, and only illustrates how to do basic lighting on terrain alone
ohhhhhhh ok
Personally I'd recommend learning from the resources linked in #dev-info of ShaderLabs, like the shadow tutorial that was (I believe) originally made by builderboy
This one is far more complete & actually is a fully working Minecraft pack
You can modify it & build off of it to add your own stylizations, like bloom, tone mapping, etc
oh nice, thank you. the one i was given was from the dev-info and i didnt think to check other ones from there(lazyness on my part)
No worries! It's hard to find resources to learn about this stuff (especially the Minecraft specific stuff)
I personally think playing around with a more complete pack helps better understand what each program does. You can, for example, write only the color red for a certain .fsh program to see how it affects a scene
That's how the Resource Pack Shader devs initially reverse engineered which programs do what
i think thats how ill have to learn to code, is by reverse engineering, im having a really hard time doing it the normal way (i think, not sure if this is just how it is at the start)
Yeah for Minecraft Shaders especially, it's hard to follow tutorials especially because so much changes every year
Back when I was still active, Iris was still very new and didn't support most Optifine shaders
Now it has its own feature set distinct from Optifine iirc
The fundamentals though have largely stayed the same
Yeah I mean, fundamentally Optifine & Iris packs are pretty similar
But when you start getting to more advanced, cutting edge stuff
Like using compute shaders, doing voxelization, using buffers (like for random access storage)
I believe Iris is actively doing more to support that sort of dev work
probably something to be said as well about using Fabric or whatever
Idk, I've been out of the game for a while
lol just saw this comment on a programming vid of someone doing something crazy
"The problem with programmers is that, given the opportunity, they will start programming"
"We do this not because it is easy, but because we thought it was going to be easy"
Me every time
why is C++ easier than python for me
(so far)
I hope you'll be safe from labview soon
you know that saying, "tip of the iceberg"? well, C++ isn't that. it's more like an iceberg tip in the beginning, but beyond that it sprawls into two icebergs. and then you find out those two icebergs actually have pointers between them that expand to about 250 different icebergs with more icebergs referenced in their headers. all the while, your toolchain is catching fire and you're asking yourself "what the FUCK is Makefile language" or telling yourself "if I have to decipher one more line of CMake gobbledigook I might actually destroy my computer with a blowtorch."
anyways, once you get the hang of all the quirks and patterns inherent in those 250 icebergs, you find out that all of the patterns you learned were based on metaprogramming using templates that apply to no other library except the one you just learned. all the while, your program is eating memory like it's a hungry wolverine and is outputting nothing but error codes that tell you nothing about what is actually wrong.
anyways, enjoy!

so long as i can learn A language i dont care which one it is
fair! although I'd definitely recommend C over C++ (unless you're in a class or something already), it'll teach you so much more. taught myself C to work on pokemon emerald decompilation/modding and it was great. it's essential for getting a handle on what other programming languages are actually doing and how the shortcuts they implement actually function under the hood.
granted, C is sorta unforgiving. especially if you know other languages - the more high-level they are, the harder C will be for you, because you'll have to unlearn a LOT of stuff. C++ is this to an extent, but there's so many layers on top of it that it's like a whole 'nother thing. Rust also follows that principle, but it's even hard for people who know C/C++ since it sorta forks into another path entirely in terms of its conventions.
i have a goal in mind but it required a biiiiiiiiiiig learning curve
i wanna make MC into a retainer mode game
retainer mode?
hard to explain given idk it much either
(also isn't MC java? or do you mean reimplement the entirety of Minecraft in C++ and THEN do that?)
MC is java yeah
because that's going to be a not-fun time if i'm being honest
if the latter is your goal
nah just learning C++ for the "basics"
(unless you already have plenty of experience in gamedev, that is)
ah okay
i mean C++ is the exact opposite of basic but I get what you mean
i cant read python, its to wierd
i wanna learn to code and C++ seemed to be the most readable to me
...really? I find most C++ codebases to be an unreadable mess
but different people work differently i suppose
granted, compared to Java, I can't say that I entirely blame you. i'd look into Kotlin, it's like Java if it were designed by someone without brain damage
lol
btw, i know my goals are wild
but i am deterimend to get there once i can code
meh not entirely, MC modding is a good intro project
i, i would be refactoring the entire render engine of MC 
thats a big step up from simple modding
oh lmfao, then that's different. probably not a great idea, unless you plan to do it with shadercode.
Can someone please find the chart of "how to decide your passing convention in c++"
is it this one?
It was worse than that but thar is about right
lmfaoooo
C++ is a very old language with its quirks
Not to say it is bad
But it is many layers of changes
also i will say, modern C++? not terrible. but yeah, it's old, and there's been so many like... phases, and libraries, and people doing things terribly and then teaching those people how to do them terribly, over cycles and cycles and so on.
like modern C++ is great if you can stick to it, but good luck finding resources that ignore historic patterns and now-redundant conventions lol
I'm somewhat e,citedly following the guy trying to make safe c++
If you like it, feel free to use it, don't let the C++ naysayers put you down. It's a fine langauge
The problem with C++ is that you can still do C stuff in it. You start by doing C++ the C++ way. Then it gets convoluted, so you say "heck with this!" and do C++ C style. Two different memory managers. And then you cross the pointers. Then ZUUL comes down from the heavens...
Weirdly... You can say almost the same with TypeScript and JavaScript
But JS and TS at least have garbage collection. 😉
Ya know... Fair...
=shurg= Doesn't matter. My uni started off teaching us.... Ada.
I'm self-taught myself. Picked up learning to program in random languages as a hobby over the years.
My most cursed creation is a Discord bot that posts on a schedule that it gets from a MediaWiki page in JSON.
And yet i still managed to make an "out of heap space" error once 
i mean, GC'd languages still have a heap, it's just managed by the GC. if you run out of allocatable memory, the GC cannot save you
why
you get me 😌
i'm just saying the only time i caused a memory error bad enough to kill the heap it was in typescript... coincidence... i think NOT
just a little bit of caching
I like my data appropriately spaced out in memory, okay? It's all shy.
taking sparse data structures seriously
Benefits of converting recursion to a loop:
- Can't overflow the stack
Drawbacks of converting recursion to a loop: - Infinite loops won't overflow the stack
I've never overflowed the stack with recursive code unless it was an infinite loop
should be 18 exabytes
Stack smashing!
usually when I write recursive code it's for some tree that's at most like 5 levels deep
ive done it for AoC
I've always done AoC in languages with good tail call optimization
functional programming languages + rust
no stack overflow
unless you of course write recursive code that isn't friendly to tail call optimization
me neither, but I'm always worried about it when doing things like flood fill algorithms and tree traversal. images are Big and people do crazy things with trees
yeah
but then of course if you write the algorithm wrong you get an infinite loop :P
when you forget to check your visited cells...
Did AoC in python 
like most
I like rust
definitely the most popular language for aoc
what I did was I was limiting by range because there were no bounds, but unfortunately my range comparison had a typo and was referencing the current cell instead of the source point
so it just spiraled out into infinity
always ideal
I try to do a different language each year, first year I did was c#, last year was python, this year I'm considering GO
I mean my last aoc flood fill originally had the bounds wronf
So it walked off checking 9999999,0,0
Mysteriously
I've done AoC twice in Elixir, once in Haskell and once in Rust
I might just do elixir again this year
or maybe go exotic
Roc-lang
Go is on my list to learn proper
AoC is never going to be at a good time for me tbh
I can do c#, python, js, rust (sort of) and java (sort of) so I feel like I've got enough of a toolkit for now
though I will probably try and pick up php again at some point
December is not a chill month (except in the weather :P)
I usually have way too many weeks of pto left at the end of the year so I usually end up taking time off for the later days off of aoc
Time off is a strange and foreign concept
it would be fun to do something with xslt again too, it's been a while
There are days when I do less work and days when I do more work, and no one really tells me what to do, but the downside is I’m never really off
Sheku was surprised when I mentioned to him I often don't take both weekend days odf
my company does a feature freeze in december due to our clients being retailers and being unwilling to risk anything breaking during the holiday season. As a result it's usually super chill
@sand frost why the fear emote xD
not a fan of php I take it?
When I was writing my thesis I took half days on Sundays to teach the children! I do usually do very little work on weekends but emails never stop
Php scares me…
that's unfortunate
I am decent enough in Python, Matlab, and C# at this point. I remember very little of Java and Scheme (Lisp) but could probably pick that up again without too much trouble?
In terms of things that would actually help my job it’s probably just C++ and that sounds like hell tbh
I could try to learn rust and cave to the peer pressure 😛
Europeans
my choices for AoC have never been practical ones
Peer presssureeeeee
I’m in academia, so it’s a bargain I’ve made with ups and downs
attempts the linux peer pressure again
Help! I’m squished! Like one of those cute clay figures in a hydraulic press
Yeah that’s not gonna take unless Apple drastically screws up 😛
In a way different from their regular fuck ups
And/or major simulation softwares mysteriously change over to Linux
From windows only
....what if I try multiple avenues of peer pressure
I can handle having to use two OSs but i think I would keel over if I had to do 3
get into vulkan rendering development it's what got me to finally switch to linux for real
That sounds actively unfun tbh
Rendering sounds bad, like something i should get other people to do
not because it's the best platform for vulkan development, that's windows.... but I just could not for the life of me install the shit I needed on windows after several hours of trying
There’s things I can do and then there’s things I should do…and to play to my strengths i definitely should not be writing renderers
meanwhile it took like 5 minutes on linux
Installing Python on windows is stupidly difficult
It’s not hard to install but it’s hard to install correctly
And it makes no goddamn sense
I’m definitely committing crimes with my Python setup on macOS but at least they’re very easy
windows package management 
Also some of the grad students are telling me conda doesn’t work for some specific robot thingy
Big sigh but also something I’m not likely to end up actually debugging myself
the right choice
rendering is some of the most arcane shit I've ever looked at
especially as someone with a very poor grasp of linear algebra
and runs in fear from the word quaternion
though to be fair, almost everyone runs in fear from quaternions
Ah, I’m okay with linear algebra and quaternions actually
wow
I just don’t want to bother with whatever the computer does at a low level
Write a Vulkan renderer entirely in Python then! /j
And I haven’t touched quaternions in years, but like it’s just the complex plane but more complexier right 😛
using the vulkan C api directly
write 1000 lines boilerplate just to render a triangle inefficiently
Even better. Pull as much of that into Python as you can and go even more direct.
At some point I might have to replace matplotlib in our gui which will be an utter disaster, I am sure
it's the complexiest
Matplotlib isn’t good but it works
never replace it
Grad students keep complaining it’s slow and inefficient and it’s where a huge chunk of computation time is going
Absolutely
What are you using it to render?
See, Crumble, she's mechE and I have not insubstantial physics chops
Linal is fine.
Simulation results every n time steps
I at least let you set n
Most people better than me at math are mathematicians or theoretical physicists
No, Python
Pure python including gui?
There’s like numpy and shit being used but yeah
Though we also have a website version
Luckily I don't touch the website
...ooh.
public implicit extension PersonExtension for Person
{
public bool IsLead
=> this.Organization
.Teams
.Any(team => team.Lead == this);
}
is that finally happening in C# 13 or not? i've seen some kind of reddit post, but it wasn't conclusive
ah yeah that
implicit and explicit extensions
scrolls past all the AI shit
being able to use spans for params is pretty neat
Hell yeah params
I hadn't seen that
(Will it be compatible with .NET 6 though? I have no idea how params work behind the scenes.)
although honestly collection expressions make it so i'm not even sure i want to use params anymore
Thinking about it logically, I would expect it to work with .NET 6.
i see no reason why it wouldn't, params is just syntax sugar, isn't it?
Yeah, that's my assumption. But I have no practical experience to know for sure.
Yeah, the extension stuff looks pretty neat too.
i can finally drop my ugly extension methods which look like properties but you need to call them with () for no fucking reason
i guess we're not getting extensions which can make a type implement a new interface yet though
and that almost surely wouldn't be backwards compatible lol
extensions that don't need to be static is neat
the blazor changes aren't particularly exciting...
gotta try out the websocket compression
I haven't really used blazor for anything. We don't use it at work. Our server stuff is all TypeScript projects.
we use it for I think three projects at work
only of em is server blazor tho
Last year we introduced initial support for building .NET MAUI apps in Visual Studio Code across Windows, Mac, and Linux with the C# Dev Kit.
uh microsoft
maui does not support linux
I mean I'm sure VSCode supports it...
the params changes are probably the most interesting ultimately
maybe the extensions but I'll have to use them
wait no actually
being able to define properties as extensions is huge
Will be supported as of Stardew 1.9
You may not be able to run them, but build them anyway!
so nice
Yay developer, boo consumer -whoever decided that
Something something the magic of traits
something something orphan rules
okay actually even rust's orphan rule(which is annoying enough) at least lets you implement an interface if you own that interface yourself
allowing you to implement interfaces you don't own for types you also don't own is a nightmare from a package compatibility perspective

it'd be so nice tho
it's easy enough to work around in a final application but it's definitely a pain if you maintain a library
C# tho... ur screwed
they're marketing it as a C# 13 feature, aka unrelated to .NET, so idk
That makes it 20x more interesting
meanwhile one of the projects I've been working with lately at work is set to I think C# 7
I usually just use latest, so this is going to help me out a lot
Meanwhile I apparently can't even get it to work using the preview .NET 9, preview VS while targeting .NET 9...
I don't believe that part has even made it into any usable build
That... would certainly explain many things. I totally read that article as this being in the preview now. 
yep. the article says the extensions are not in preview yet
You can mess around with the params already in sharplab
no idea if it's available anywhere else yet
it does indeed compile
the C# it's lowered into definitely ain't as pretty looking as the old array version
mostly just because spans
always looks spooky though
[CompilerGenerated]
internal sealed class <PrivateImplementationDetails>
{
internal static ReadOnlySpan<TElement> InlineArrayAsReadOnlySpan<TBuffer, TElement>([In][IsReadOnly] ref TBuffer buffer, int length)
{
return MemoryMarshal.CreateReadOnlySpan(ref Unsafe.As<TBuffer, TElement>(ref Unsafe.AsRef(ref buffer)), length);
}
internal static ref TElement InlineArrayElementRef<TBuffer, TElement>(ref TBuffer buffer, int index)
{
return ref Unsafe.Add(ref Unsafe.As<TBuffer, TElement>(ref buffer), index);
}
}
[StructLayout(LayoutKind.Auto)]
[InlineArray(3)]
internal struct <>y__InlineArray3<T>
{
[CompilerGenerated]
private T _element0;
}
nothing it generates to me looks like something that shouldn't work in .NET 6
smh it clearly used Unsafe.Add right there smh
you definitely can do some nasty unsafe stuff with spans if you really want to
though I suppose that's true of most things
For ex. Robin and the Traveling Cart, which have random items, and entries including ex.
"Id": "RandomObjects",
"ItemId": "RANDOM_ITEMS (O) 2 789 @requirePrice @isRandomSale",
or
"Id": "RandomFurniture",
"ItemId": "RANDOM_ITEMS (F) 0 1612 @requirePrice @isRandomSale",
Am I correct in the assessment that none of the items added in 1.6 (besides ones explicitly stated elsewhere, like the spouse-portraits from the cart, the Dwarvish Safety Manual from the dwarf, etc.) are available in these random rolls, since the code requires a numbered id between the listed numbers, and the new items have words as their ids instead (so ex. Lead Bobber (id 692) is available at the cart, while Sonar Bobber (id SonarBobber) is not)?
this looks suspiciously on topic
(Watch this life hack)
Wow, the stardew.chat bot response list looks weird on mobile when some commands are opened. Too bad no one here is smart enough to fix it
Yea... That's too bad... Good luck anyways
gdi
word-break: break-all;
That should force the URLs to wrap?
...but it does make normal wrapping look terrible.
I'm very dumb
Yeah I think its the URL thats the issues. Im also not sure if theres other mobile friendly changes i should make alongside it
such a shame
Aquo your links are broken
Honestly aside from borders disappearing the page is fine for me
Nvm, macscreenshots is weird
Now can I code on a phone and it work
Thats by design. I want it to show what actually is typed in
yeah 1 px borders are finnicky but it seems to work alright
https://github.com/AnotherPillow/governor latest two commits, yes I have no idea why it's 112000 pixels I only typed 1 once, the 2 typed it again
me with OpenGL
https://www.youtube.com/shorts/-2Nf06qbYiw?feature=share
Work purchased coconut dr pepper
I now need to go around asking who lost their sanith
yeah one time I did something horrible with kotlin and wrote a 200-line file that turned into a 2000-line file when you compiled it
that sounds good, I had no idea that was a thing
:(

gods no
man now I want a strawberry cream dr pepper
I was working with a framework that had like 30 different classes that all had the same fields and methods but didn't share an interface or base class and I was trying to find a generic way to set those values that didn't make me want to throw out my computer
never going back to that project ever
oof
does C++ have a std::getfile command?
tried asking google but dont know the proper terms yet still
do you want to read, check it exists, or write?
ooooooo
i really just put "cpp check file exists" into google. it's pretty good at guessing what you want
apparently you can also try an open an input stream and check if the stream is good
which might be what you want anyway if you're going to write/read
ahh i was trying the key words, guess its as simple as i hoped it would be
im gonna learn more C++ and then try making a simple file browser
it's worth noting this is a c++17 feature
oof im on 14
oh boy, posix
i sure love the man pages
?
you can do a lot of directory/file io in posix system calls
they're just annoying
cpp probably abstracts some of them? i get all lost between C and C++ because we did so much C in my course lol
you're probably going to want scandir for listing files in a directory once you get there since you aren't in cpp 17 (assuming linux)
noted, will learn more first cause still dont even know how to do a name printer just yet
but i think i file browser is a good first start
as a test of knowledge(im just guessing)
scandir is a posix call so it's a little weird to use (at least to me. took me a while to get used to all the funny structs). but the man page (manual page; you can type man scandir in your terminal or google) has an example
in C++/C land, i would avoid checking for the file first. just try to open it, and check whether it succeeded.
if you check for existence first, you are susceptible to a(n unlikely) race condition between checking and opening.
i also got a handy thing i found called tldr, basically man but simplified, provided the community made a page
wait what's the race condition come from if your program is sequential?
another program can create delete the file in the meantime
that is a true statemnt
maybe out of scope 😭
it reminds me of when you wanna delete a file but some other process has a hold on that file lol
i do agree with just trying to open though rather than checking existance
just sudo rm -rf --no-preserve-root / and you want have that issue any more :3
(do not)
jokes on you i run windows 😭
oh yeah, %0%0's you
i'm literally writing race condition test cases right now, this is funny timing
also magic words, coding still hard
race condition is like two users/processes trying to do conflicting actions on a shared resource like a database or file
you know when you try to book tickets online
and you're like ooo i add to cart!!! and ticketmaster is like ummmmmm actually someone else just bought those sorry you can't have em
oof yeah
or like lacey's example, person A wants to write to some file, but just as they're about to open it, person B deletes it
race conditions are some of the worst most difficult to figure out bugs out there
Team Lead: "Hey, can you add these features and adjust some business logic in this desktop app you've worked on before?"
Me: *checks commit history* "I haven't worked on that app since 2016, which means I might as well have never worked on it before"
Team Lead: "Also everyone that does work on it is off Friday and you're not added to any of the tasks with the info you probably need, good luck"
Me: 😐
that's fun
I had to help a guy in essentially that situation before
except I suppose that I was around to help
I updated my copy of the repo and I think this is a ship of Theseus situation
was strange to explain a service to the person who originally created it
seeing every design decision you made back then clearly disregarded now...
It seems like everyone is off today... but yikes!
Well they're on vacation / sick, but yeah, we'll see how good the comments / doc in the code is after not being in there in forever.
do you have some holiday on Monday?
Memorial Day
I didn't even realize until like mid-week otherwise I probably would've taken today off too lol
I only get work done like 4 to 6 hours each workday anyways
same
I can only get deep into something for so long before I need some air
Sometimes 4 hours of work is 3.5 hours of reading docs and collecting notes and then .5 hour to actually make the changes. Which is fine as long as no one interrupts you, but that never happens.
glad you have 3.5 hours worth of documentation
home server life
they were trying to be kind when using the word Fair
only triple the efficiency zone
I actually bought some plugs with energy monitoring on them the other day, I need to hook one up to my server, I have no idea how much electricity it uses
maybe i'll do that now
just dont accidentally hit the remote off switch on it...
I have a home server but my monthly electricity usage is 140 kWh
was 170 kWh when I had a minecraft server running...
probably more likely the piss poor insulation in my apartment and the need to run my AC constantly
AC would do it
ours is the AC and dryer I think
oh yeah... in unit laundry too
I hang dry almost everything despite owning a dryer
good thing i dont charge my car at home hehe
good thing I don't even own a car
that'll cost even less!
a lot less than I thought tbh
cars are expensive
that's a strange sentence but you get what I mean
yeah just insurance and road tax + parking cost at my foot would be several hundred a month
i wish Linux had voicemod, so nice for coding
why do you need a voice changer to program...
oop i mean voiceattack lol
its a voice activated app that can do a whoooooole lot
i can also just add hotkeys to stuff, like making a class
do i still have internet test test
that didnt work the first time i tried it
well.. I probably shouldve hooked up the power plug before connecting it to the server. Now I cant force it into pairing mode...
that's... interesting for accessibility
I've never felt the desire to talk to my computer and would rather just use custom snippets myself though
I curse at mine, does that count
does the pc react to it
i like to think it understands the sentiment
maybe then
how long until the mods notice bouncer is up and down and message me in a panic
Are you saying that bouncer is bouncing? That sounds almost like intended behavior based on the name
closes comment with Won't fix
sudo make me a sandwich.
Syntax error
User is not in the sudoers file, this incident will be reported
oh hang on, i gotta wait 18 more minutes for the firmware of my smart plug to update...
reported to who, tho
why does a smart plug need a 20 minute long firmware update
me
my email is spammed 24/7 from random people all over the world trying to use sudo without being a sudoer

I'm gonna do it more now that I know
windows needs a sudo install command
i dislike having to use google just to install something
(wget doesnt count)
Windows is getting sudo finally, isn't it? Not that I'm willing to downgrade to Windows 11 to use it
is it?
it is yeah
first time im hearing of this
im not sure why it is, but its getting one
was in preview last I heard
VICTORY 
I for one am very happy about this
It's convenient to have instead of reopening a shell as administrator all the time
you... dont have to LOL
cause I keep opening powershell normally, realizing I didn't open it as administrator, close it again and try again
theres an option already
there is?
yep
oh there is some command thing for it which apparently differs depending on which terminal you have open
Just turn off UAC 
I'm not sure our IT department would be a fan
i do that for every new install
I think the goal of introducing sudo is that people remember sudo easily and don't remember Microsoft's random fuckin commands that aren't even consistent
and something that isn't a security hazard if you forget to close the terminal after...

I haven't seen any ads but I only use windows at work which presumably doesn't have them
whhen you hit windows key, do you normally see a bunch of apps in the start menue
half of those arent installed, they are ads
(on base install at least)
idk tbh I instantly start typing the moment I open that thing to find the app I need
same
I think it looks fine though but can't check till Monday
you could VM a windows install to see the horror 
I'd hope they didn't put the ads on windows 11 professional
something tells me they wont be rolling out that god awful recall feature to the enterprise versions
I feel like this also has to do with whether someone lives in the US or in an actual country with laws and stuff
NDAs go brrrrrr.
it does yeah, if you select international all the ads in the start menu go away cause they arent allowed to show ads for places they dont havce access to
now, the normal ads stay
my work version of windows also doesnt have ads and I'm in the US
no getting rid of those
LUCKY
rivo unistaller is great for getting rid of bloat without killing the PC
always been hesitant to use those kinda tools
obviously now I won't cause I'd get murdered trying to run anything like that on my work laptop
lol
I got it set up, it claims my server is using 50W
which is much lower than i was expecting tbh
id take the murder if it meant i could use my PC in peace
while actually running services?
yeah theres like 10 or so docker images started
what kinda server you got?
not bad
i thought it would be over 100W easy
Oh, they're still there, don't worry.
i built it myself from desktop consumer parts
your name implies there are... UnDecidelyHumans 
i cant remember what power supply is in it, but i didnt think it was one of the best efficiency, which was an oversight
whats it run?
i wanna make a server server once i get another PC in the future
several smaller utility self hosted server stuff
my home server definitely doesn't have the parts you should use for a power efficient server but it's fine enough
I'm curious about getting one of those snapdragon dev boards to use as a server
oh! youre a mod for this server?
Still a bit too pricy for me at this point though
Yeah
are there snapdragon boards that aren't arm
are they any more remarkable than any other x64 board tho
It's very warm in here. Send help.

I'm hoping they're way more power efficient than an x86 board for basic server work.
get back in your cupboard you
the new devkit features the much more powerful 4.3 GHz X Elite 12-core 64-bit Armv8 Oryon processor coupled with 32GB LPDDR5x RAM and 512GB NVMe SSD, and offering a range of ports and features such as USB4 and WiFi 7.
Going for $900 USD when orders open as I understand it. But that's for a dev kit so I imagine future releases will be cheaper
The kit apparently comes with a 180W power adapter, to give you an idea of how hungry it is
thats less than i thought it would be tbh
I could do a lot with 12 arm cores and 32gb of RAM.
Probably not suitable for Plex, but all my other local stuff? Sure
I dunno, I'd be shocked if it didn't have some pretty decent video encoding hardware in it somewhere...
Encoding Resolution: 4K @ 60 Hz
Encoding Bit Depth: 10-bit
Encoding Formats: H.264 (Advanced Video Coding (AVC)), AV1, H.265 (High Efficiency Video Coding (HEVC))
Ooh.
nice
I think AV1 will be standard going forward, which is nice
I'm more concerned about simultaneous streams than merely having the ability
should be fine
Well, it specifies nothing about that! So my guess is it can handle about 4k60 worth overall, and presumably multiple streams as long as they don't overwhelm it? Maybe?
Unless they've gone full Nvidia.
for all those 4K 60Hz films out there
The Hobbit 4.
Never go full Nvidia
I imagine it's something like 2x 4k 30 streams, and some number of 1080 streams
It's the some number I'm curious about
But more than that, I don't expect Plex to support their hardware for transcodes right away
My Plex can hit five simultaneous encodes sometimes
I've lived in this place for 3.5 years and I've still not plugged in the TV to internet or cable...
it's background decoration for my video calls
I like the idea of setting up jellyfin but I know I'd never use it
I like the idea of jellyfin but it was a pretty terrible experience when I tried it, compared to Plex.
It couldn't handle the library size and the UI is pretty amateur in comparison

everyone seems to rag on it, but I love it. I dont have any complaints with it
if you have entry A copy missing fields from entry B, how would you expect the disabled field to work?
should a disabled entry A copying from an entry B become enabled?
should an enabled entry A copying from a disabled entry B become disabled?
(asking for your intuitive thoughts)
what's the context?
different patch entries containing some data, those patches can be temporarily disabled in which case their data will be ignored
those entries can also "copy from" other entries, meaning the other entry will act as base data for that entry
entries upon entries…
written out like that it sounds like entry A should always override entry B... but it just feels strange for an entry to copy disabled data..
maybe that's the part I'm missing
if one entry or the other is disabled, they shouldn't be merged
Well, RustRover is fully released... and free for individual/non-commercial use.
Not as generous as the community versions of IntelliJ or PyCharm, but I'll take it.
First attempt at writing a flood fill algorith implementation, any pointers?
functionally seems fine. I'd probably put the whole && tile is HoeDirt... etc part in a reusable named method instead of repeating it 4 times but that's nitpicking
or the true nitpick is that you're going against standard C# naming conventions by starting with a lowercase letter for the method name
You sound like vs
I usually do instance private/protected methods lower case, everything else upper case, don't know why, it's just become a habit
you're not checking if you've already been at a tile as far as I can tell, you'd be looping over tiles you already did
Pointer scawwy 
Yea, it's one caveat, but they are filtered out by the hashset
Still might be better to check performance wise I suppose 
doesn't this loop infinitely?
if you check if the add on the hash set returns true if you want a simple approach
since hashset add returns false it was already in there
Going to run it real quick, 2 secs
if you only add it to the queue if the tiles.Add returns true you should essentially be done
Welp, it just doesn't work right now for some reason, thanks for the suggestion anyway, definitely useful
I'm sure a lot could technically be optimized with specialized data structures for vector sets and possibly even some SIMD shenanigans but I doubt it's all that performance critical
Not generally, I'm a little worried about those giant farms, if someone decides to plant all blueberries on every tillable tile this WILL crash, but that's an edge case and I don't support it
hashing the entire tile object might be expensive idk what it looks like
tile, just a vector, HoeDirt, complex object with a lot of properties, netdata, etc.
if it comes down to you could you benchmark I suppose. Check if there's a performance difference from simply returning a list of HoeDirt but having a separate hashset of just the vector that you use to make sure you're not revisiting the same tiles(or if you want to get fancy, a single integer with the cantor pairing instead of a vector) please ignore I was only thinking of valuetypes
I'ma be honest, I don't understand that last part, my brain was trained on WPF with a focus on design code, but I'm definitely going to look this over a few more times (and to think this was supposed to be the easy part of this project
)
Yeah, what's this for? 
I got two fairies in a row on a patch I had laid out of perfectly timed crops, so I'm making something to select which crops it can and can't insta grow
That first one was ok, but the second one pissed me off
disregard what I said if HoeDirt is a reference type btw I wasn't thinking about that
reference types are fast in a hashset
if it's a class you're probably good
Copy, ctrl-z incoming 
but yeah, only real functional remark is the whole avoid adding tiles to the queue that you've checked before thing
since this causes infinite loops otherwise
till you run out of memory and it crashes I suppose
I still need to add the paint bucket to Smart Building at some point...
When I do, I'll be making myself look bad with my food fill here!
Got that fully implemented now, and found my issue (instance of attached crop is never equal)
Copy mine /j
I can't luckilly, c# just throws a stack overflow exception and crashes the game
anything is possible if you believe in yourself
I feeeeel like it shouldn't be possible to cause any huge problems in Stardew with the amount of tiles that are possible...
in an ideal world you'd have a graph datastructure prepared here already that has all the valid edges for each node precomputed to avoid some checks and allocations
I'm sure someone very good at graph theory knows very fancy ways of doing this
hell there's probably some magic to be achieved with cache locality
but that all goes beyond me
I know there's arcane wizards out there that could probably make such an algorithm orders of magnitude faster
It took 3 days, but I was able login to Nexus finally.
Gratz
For some reason it decides to not check more than one left, but that's a problem for the morning, this is enough code at 1AM for tonight
it doesn't like the left
Nevermind, it's because for the left check, I only supply the initial tile instead of the current 
stupid pip and python code not being cross machine grumpy bear noises
Gotta put it all in a Docker container 
IDK how to use docker
For legal reasons what I said is a joke please do not Dockerize your python project
Oop
im trying to train my own AI model and my PC is NOT having it
send help
and cookies
I would've thought you'd want us to send GPUs
For legal reasons, no one can stop me muhahaha
python ain’t nodejs
this sounds illegal
using it for something else than it was intended for!
ok but it shouldnt let me run commands then
(the process manager, not.. that? (i have no idea what that is))
Send..... cuda....
If we get one more cuda we will hit 95% validation set accuracy please
Sadly the code errored after a few minutes... So IDK if I need more yet
If you need MORE GPU's then I need a second heart.
That is 2560 CUDAs...
Ahh... and he only needed 1? But they work in groups of 16 or 32, no? You can't add just ONE cuda!
AI is a resource hog
I simply wanna have it output a python code that currently dies hello world
Does not dies, that's my PCs job
Are you training a codegen AI?
i swear tho I downloaded cuda the other day and it was not that much faster training a network than on raw CPU
you downloaded cuda? how does that work
i installed the drivers to let my device use cuda
oh
because it is cuda-capable
i should use proper terminology probably lol
pytorch was hellbent on using the cached cpu version of itself and no amount of cache clearing or venvs could fix it so I literally ended up just installing a newer verssion of python and suddenly torch was happy to load itself
I've tried some gpu compute stuff in the past and it can be pretty insane in the right scenarios
I definitely believe it can, it might just be that I had my expectations too high for what I was doing and my hardware lol
I got too disillusioned with the amoutn of headache to get pytorch working
idk much about pytorch but every time I've tried to use cuda or rocm I've had issues
for rocm I never even got it working
i want to throw the blame at Windows but for all my complaining about windows i'm gonna keep using windows machines for day-to-day stuff
Never tried rocm
can't say you'd have an easier time on Linux for this issue specifically
in my mind, linux is an easier time simply because the one time i used cuda on linux i didn't have to set anything up 😭 but I know that's not necessarily true
Cuda is definitely the easiest one
it's part of the default drivers
unlike rocm for amd
since everyone on Linux uses the open source mesa drivers
for amd
which doesn't support rocm, nor any reasonable opencl version for that matter
Vulkan compute shaders seem to honestly been the most reliable for me
works on any system that is reasonably modern
at a performance cost mostly
yes
im trying to at least
cause i wanna make my own coding langauge one day and wanna have AI know it
also THIS is why i use rivo unistaller
are you training on top of an existing model? or like full on from scratch
Full scratch
oh jeez 😭
cause i need to understand how they work
granted im using AI to MAKE AI
but eh, its working :3
training on top of an existing model and training a brand new model is a really similar process i will not lie lol
idk how to train ontop
it's literally just how you initialize the weights and it probably influences your hyperparams like learning rate
you gotta tell me more about your proces si'm curious now
if you can show my a tutorial or something i can do that /gen
you have no shortage of very large ambitions huh
i have no idea what you're doing lol
its all doable once i learn, and yes
i do :3
ML + compilers goes hard
Personally I don't see a reason to not train on top of an existing codegen model to learn YOUR language
but if you don't have a langugage that's hard lol
i know i have big goals, but im gonna start small and stuff, im only messing about right now this isnt serious code given its all AI made
(it's hard anyway)
The one time I trained anything we got best results training on top of an existing classifier and just tuning it for our purposes cause why redo a bunch of research way smarter people than me did
i labeled SO MANY images for that 😭
i hacked my way through it for work. I have only done anything related to classifiers. I'm gonna actually formally learn it in the fall
im taking a class in w3 on AI
i feel like we are using AI and ML interchangeably here
apperenretly itll be half a year before i can do anything 
and ML is AI but are we talking specifically ML
and even in that only a specific niche
true, the codegen niche of genai
i think thats what i wanna learn but idk terms
basically i just want an AI that can learn what i give it and chat with me :3
that's kinda different than a model that generates code in a custom language, no?
im starting out with this first
if you want ot chat with it i'm begging you to train on top of an existing LLM
actually either way please train on top of an existing model
since there is a lot of code data i can feed to it
from where?
oh yeah i plan on that
google!
like python and stuff i can hand pick, copy paste, and just generally find it
oh not a published dataset
oh no i mean digging through code myself 
i know it's for personal use but please do consider the license on the code you are using to train (also you need a LOT of examples to train something)
google does have a dataset but its like 60 a pop per model trained
yep, ill make sure its all MIT or CC
i think thats the two
there are copyleft licenses too
please don't even entertain the idea of gathering your own dataset, you'd be in for a rude awakening
that too lol
i know that it required a TOOOOON of data
i think i hand labeled several hundred images for the classifier for work and then i made a TON more synthetic images
which is why im just doing a simple hello world test right now
i do NOT plan on a ground zero model as a real thing
gonna use open source model to train off of once i learn
but for now i like to see a simple one to see how its done 
also, tensorflow is annoying on Windows
dont wanna use my GPUs huff
im having fun btw, coding is hard but rewarding
still cant do anything yet but very much having fun, not enough learned to do much
maybe i should finally get around to writing that one scraping script so i can actually have the data I want for my project
you're taking a very unusual route to learning to program but if you're enjoying it I suppose that's alright
i learn wierdly, if i cant put something into practice i cant learn it
like reading, i cant put reading into practice
that's not weird, that's like the only way to learn coding lol
so i physically cant learn by reading
learning by doing is a fundamental part of programming yes
the things you're doing are the unusual part
crumble did you ever do a little text adventure game when you learned
having fun is a big thing to me, and ive learned more this way than just sitting and reading, and reading, and reading
i've done more reading to do stuff like ML than for anything else 😭
never did just text cause my introduction to programming was learning XNA and making a few game clones
I think tho if you set your mind to it you can do just about anything so
ah i see
GIB YOU KNOWLEDGE, i shall steal your brain /j
empty brain
technically I did my major in comp sci with a specialization in game technologies
ultimately ended up kinda ignoring the game tech part
but it's there on my degree
the first year had a lot of game projects
and then shifted away from it
did do 3 courses on AI
they were all essentially the same course it was pretty bad
they ended up scrapping two of em after I graduated

😔
and now I'm just a silly web dev
for now... I'd like to shift away from it eventually
there are lots of people who want to do web dev but i am not one of them lol
i mean i would take a web dev job over not working in CS but I did my time in web dev and I'm not sure i wanna go back
I don't mind the backend and database sides of it but front end just ain't my thing
Screme
It has the thought it could have rows
the half hour is wild
what's your performance like
is it good at its job
surely this will prevent the rate limit (it def will not)
I love calling time.sleep in my code
Then I can remove it later
And see a nice performance increase
Also, race conditions
so far i don't think they're limiting me but i have fear
i shoulda opted for csv instead of json so i could periodically dump my output tho
uh oh they stopped me and I didnt even make it through "A"
surely it eventually throws an exception so it'll hit my "finally" block and dump... right.... right?
surely i don't have to keyboard interrupt
the part where it said lllllllllllllllllllllllllllll?
Yes :(
And I have it 2 mil lines of python saying hello world
That's from scratch, gonna do a funny then distro hop to where I can use tensorflow aka NixOS
never trained a genai, what's the data format? cause there isn't a "right answer" right? how's it know if it's going the right direction?
It has this 2 million times in the file



