#programmers-off-topic

1 messages · Page 13 of 1

crystal wren
#

Well, Stardew was technically made with XNA... then ported... but same difference.

pliant snow
#

not that boring celeste

crystal wren
#

How very dare.

safe dragon
#

pico8 celeste

pliant snow
#

the real one

crystal wren
#

Oh.

#

Okay, I accept this.

lethal walrus
#

celeste on the 3ds is great

safe dragon
#

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

pliant snow
#

pico-8 can be a great inspiration to a young developer

safe dragon
#

his own operating system

#

all to play I think tetris

#

pico8 is pretty cool I'll give you that

pliant snow
#

I'm making a game right now

safe dragon
#

cats

#

what kinda game is it

pliant snow
#

i actually havent finished the logo theres supposed to be another word

crystal wren
#

Okay, everything looks aligned to the pixel grid. You may pass unscathed. /j

pliant snow
#

are you familiar with the hit game Chu Chu Rocket

safe dragon
#

no

pliant snow
#

it was a puzzle game on dreamcast

#

this is a shameless rip off

safe dragon
#

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

pliant snow
#

actually thats why i thought about pico-8, theres a blog series of a guy who did dynamic lighting for his pico-8 game

ivory shadow
safe dragon
#

ok but text rendering gets a pass

#

it sucks

#

does pico-8 restrict itself to monospace fonts?

pliant snow
#

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

dapper sinew
crystal wren
safe dragon
#

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

pliant snow
ivory shadow
# safe dragon nerds

If I was a nerd would I spend hours benchmarking a function to do string splitting more efficiently? Hah, checkmate.

safe dragon
#

yes you would

ivory shadow
#

(Going well though)

safe dragon
#

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

ivory shadow
#

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.

safe dragon
#

well you wouldn't have spans at least... I think

ivory shadow
#

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.

safe dragon
#

don't think so

crystal wren
#

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.

safe dragon
#

did sdv end up becoming a performance critical application while I wasn't looking?

ivory shadow
#

Anyways time for some real performance tests. (I, of course, am now string splitting the entire bee movie script.)

crystal wren
safe dragon
#

why benchmark with the works of shakespeare when you have the bee movie script

#

why strings

ivory shadow
#

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.

safe dragon
#

all the silly non modders got some extra content to distract them from the true purpose

dapper sinew
#

is that apart of python's libs? or something entirely different

safe dragon
#

cuda is a gpu programming language for nvidia gpus (and by nvidia)

#

generally speaking running code on a gpu is a pretty complex problem

dapper sinew
#

oh well dang

#

i got three of the things and need some use for em other than AI negative

safe dragon
#

any code that isn't for rendering anyway

#

for rendering you'd use shaders

dapper sinew
#

if not they just are sitting there

dapper sinew
safe dragon
#

across what

dapper sinew
#

GPUs

safe dragon
#

oh

#

multi gpu programming is not even something I have any knowledge about

#

that's such a specific niche

dapper sinew
#

oh, didnt know that

ivory shadow
#

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.

dapper sinew
#

lol, the more i learn the more i wanna try the niche stuff

#

but i need the basics first then i can start that

safe dragon
#

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

dapper sinew
#

hmm true. what about multiGPU coding?

#

would that be forgotten?

safe dragon
#

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

dapper sinew
#

hmm ok, other than AI is there any i can use my GPUs for?

strange copper
#

run minecraft at max render distance

dapper sinew
#

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 )

strange copper
#

get into neo4j graph databases and start visualizing way too many nodes at once?

supple ether
#

or maybe the only reason it sucks on my machine is because I don't have enough vram

strange copper
#

no i have a decent GPU and i'm not getting anywhere near that

ivory shadow
#

It's more about having the right mods.

#

Minecraft's native renderer sucks.

supple ether
#

oh are you using nvidium or something

supple ether
#

even with sodium I don't get a chunk radius that huge

dapper sinew
#

plus spark and lithuim

supple ether
#

yeah that tracks

safe dragon
#

with the distant horizons mod 256 render distance isn't even particularly crazy

supple ether
#

I can't use nvidium bc I play with other mods

dapper sinew
#

my max was 1k

supple ether
#

distant horizons doesnt work properly with iris though sadly

ivory shadow
#

It would be nice if Nvidium was more broadly compatible.

dapper sinew
#

i tried 10k but my PC red lighted

safe dragon
#

it does nowadays

ivory shadow
#

Isn't there a test build for distant horizons + iris?

safe dragon
#

at least in my experience

#

yeah

supple ether
safe dragon
#

for now yeah

supple ether
#

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

dapper sinew
#

use bobby if your on fabric

#

it doesnt hit too hard

supple ether
#

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

supple ether
#

yeah, some is the operative word here

dapper sinew
#

slap those in mod list and then you can

supple ether
#

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

dapper sinew
#

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)

supple ether
#

what shell are you using?

#

I can't tell if that's linux or windows with a 3rd party skin

dapper sinew
#

im on Linux

#

its oxygen with Plasma stuff cause i like the look

safe dragon
#

a 3 monitor setup

#

fancy

dapper sinew
#

Yeah

leaden marsh
#

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

#

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

dapper sinew
#

im actually really wanting to get into shaders

leaden marsh
#

that's a great place to start!

dapper sinew
#

gotta fix a current bug in a tutorial shader im having, been working on it for like 3 days now

leaden marsh
#

I also started my graphics journey with Minecraft Shaders, both resourcepack & optifine ones

dapper sinew
#

it seems so hard to learn but i want pretty game lol

leaden marsh
#

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

dapper sinew
#

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

leaden marsh
#

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

dapper sinew
#

oh yeah, ive tried there, had a few people take a look but no-one seemed to be able to figure it out laugh

#

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!

leaden marsh
#

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

leaden marsh
#

It seems like there are spots where a value might be going negative and/or fragments are getting discarded

dapper sinew
#

handy alright, ill go google how to do that

leaden marsh
#

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)

dapper sinew
#

will do, thank you

leaden marsh
#

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

dapper sinew
#

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

leaden marsh
#

there's no gbuffer entities?

dapper sinew
#

nope

#

thats the tutorial im using

leaden marsh
#

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

leaden marsh
# dapper sinew thats the tutorial im using

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

dapper sinew
#

ohhhhhhh ok

leaden marsh
#

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

dapper sinew
#

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)

leaden marsh
#

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

dapper sinew
#

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)

leaden marsh
#

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

dapper sinew
#

from what i hear, Optifine has really fallen down

#

but im not sure

leaden marsh
#

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

dapper sinew
#

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"

sonic mirage
#

"We do this not because it is easy, but because we thought it was going to be easy"

cinder karma
#

Day 35837473 of wanting to murder LabVIEW

#

Also, why am I debugging openssl issues

sonic mirage
#

Imagine having ni.com and not having it just host a Monty Python meme

dapper sinew
#

why is C++ easier than python for me spooky (so far)

safe dragon
harsh mortar
# dapper sinew why is C++ easier than python for me <:spooky:750077803315068948> (so far)

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!

dapper sinew
#

so long as i can learn A language i dont care which one it is

harsh mortar
# dapper sinew 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.

dapper sinew
#

i have a goal in mind but it required a biiiiiiiiiiig learning curve

#

i wanna make MC into a retainer mode game

harsh mortar
#

retainer mode?

dapper sinew
#

hard to explain given idk it much either

harsh mortar
#

(also isn't MC java? or do you mean reimplement the entirety of Minecraft in C++ and THEN do that?)

dapper sinew
#

MC is java yeah

harsh mortar
#

because that's going to be a not-fun time if i'm being honest

#

if the latter is your goal

dapper sinew
#

nah just learning C++ for the "basics"

harsh mortar
#

(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

dapper sinew
#

i cant read python, its to wierd

dapper sinew
harsh mortar
#

...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

dapper sinew
#

lol

#

btw, i know my goals are wild

#

but i am deterimend to get there once i can code

harsh mortar
#

meh not entirely, MC modding is a good intro project

dapper sinew
#

i, i would be refactoring the entire render engine of MC laugh

#

thats a big step up from simple modding

harsh mortar
#

oh lmfao, then that's different. probably not a great idea, unless you plan to do it with shadercode.

cinder karma
#

Can someone please find the chart of "how to decide your passing convention in c++"

cinder karma
#

It was worse than that but thar is about right

harsh mortar
#

lmfaoooo

cinder karma
#

C++ is a very old language with its quirks

#

Not to say it is bad

#

But it is many layers of changes

harsh mortar
#

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

cinder karma
#

I'm somewhat e,citedly following the guy trying to make safe c++

dapper sinew
#

well dang, i just want a readable language to code in

#

(readable to me)

cinder karma
#

I'm just a language nerd

#

I love this stuff

pliant snow
#

If you like it, feel free to use it, don't let the C++ naysayers put you down. It's a fine langauge

upbeat turtle
#

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...

trim relic
upbeat turtle
#

But JS and TS at least have garbage collection. 😉

trim relic
#

Ya know... Fair...

upbeat turtle
#

=shurg= Doesn't matter. My uni started off teaching us.... Ada.

trim relic
#

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.

strange copper
harsh mortar
cinder karma
#

Hey, I needed to allocate 18 exabytes

#

Don't ask why

#

Just give it to me, pls

ivory shadow
#

why

strange copper
#

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

safe dragon
crystal wren
#

I like my data appropriately spaced out in memory, okay? It's all shy.

safe dragon
#

taking sparse data structures seriously

supple ether
#

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
safe dragon
#

I've never overflowed the stack with recursive code unless it was an infinite loop

cinder karma
#

I hear thr windows stack is teensy

#

4kb

safe dragon
#

should be 18 exabytes

upbeat turtle
#

Stack smashing!

safe dragon
#

usually when I write recursive code it's for some tree that's at most like 5 levels deep

safe dragon
#

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

supple ether
safe dragon
#

gotta be careful with floodfill definitely

#

at least you can just use a queue

supple ether
#

yeah

#

but then of course if you write the algorithm wrong you get an infinite loop :P

safe dragon
#

when you forget to check your visited cells...

tropic anchor
#

Did AoC in python SDVpufferchickcry

safe dragon
#

like most

cinder karma
#

I like rust

safe dragon
#

definitely the most popular language for aoc

cinder karma
#

You can make your stack frames teensy

#

I love that

supple ether
#

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

safe dragon
#

always ideal

tropic anchor
cinder karma
#

I mean my last aoc flood fill originally had the bounds wronf

#

So it walked off checking 9999999,0,0

#

Mysteriously

safe dragon
#

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

cinder karma
#

Go is on my list to learn proper

sand frost
#

AoC is never going to be at a good time for me tbh

supple ether
#

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

sand frost
#

December is not a chill month (except in the weather :P)

safe dragon
#

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

sand frost
#

Time off is a strange and foreign concept

supple ether
#

it would be fun to do something with xslt again too, it's been a while

cinder karma
#

I need to re code this fpga code entirely ahahahaha

#

Think I might try Clash

sand frost
#

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

cinder karma
safe dragon
#

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

supple ether
#

@sand frost why the fear emote xD
not a fan of php I take it?

sand frost
#

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

safe dragon
sand frost
#

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 😛

cinder karma
safe dragon
#

my choices for AoC have never been practical ones

cinder karma
sand frost
cinder karma
#

attempts the linux peer pressure again

sand frost
sand frost
safe dragon
#

In a way different from their regular fuck ups

sand frost
#

And/or major simulation softwares mysteriously change over to Linux

#

From windows only

cinder karma
#

....what if I try multiple avenues of peer pressure

sand frost
#

I can handle having to use two OSs but i think I would keel over if I had to do 3

safe dragon
#

get into vulkan rendering development it's what got me to finally switch to linux for real

cinder karma
#

That sounds actively unfun tbh

sand frost
#

Rendering sounds bad, like something i should get other people to do

safe dragon
#

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

sand frost
#

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

safe dragon
#

meanwhile it took like 5 minutes on linux

sand frost
#

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

safe dragon
#

windows package management hc_pensive

sand frost
#

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

safe dragon
#

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

sand frost
#

Ah, I’m okay with linear algebra and quaternions actually

safe dragon
#

wow

sand frost
#

I just don’t want to bother with whatever the computer does at a low level

crystal wren
#

Write a Vulkan renderer entirely in Python then! /j

sand frost
#

And I haven’t touched quaternions in years, but like it’s just the complex plane but more complexier right 😛

safe dragon
#

using the vulkan C api directly

#

write 1000 lines boilerplate just to render a triangle inefficiently

crystal wren
#

Even better. Pull as much of that into Python as you can and go even more direct.

sand frost
#

At some point I might have to replace matplotlib in our gui which will be an utter disaster, I am sure

sand frost
#

Matplotlib isn’t good but it works

safe dragon
#

never replace it

sand frost
#

Grad students keep complaining it’s slow and inefficient and it’s where a huge chunk of computation time is going

cinder karma
cinder karma
#

Linal is fine.

sand frost
#

I at least let you set n

cinder karma
#

Ah

#

You in JS?

sand frost
sand frost
cinder karma
#

Pure python including gui?

sand frost
#

There’s like numpy and shit being used but yeah

#

Though we also have a website version

#

Luckily I don't touch the website

crystal wren
#

...ooh.

public implicit extension PersonExtension for Person
{
    public bool IsLead
        => this.Organization
            .Teams
            .Any(team => team.Lead == this);
}
thin estuary
#

is that finally happening in C# 13 or not? i've seen some kind of reddit post, but it wasn't conclusive

thin estuary
#

the proposal also still has a ton of TODOs

#

ohhhhh params change

safe dragon
#

ah yeah that

#

implicit and explicit extensions

#

scrolls past all the AI shit

#

being able to use spans for params is pretty neat

ivory shadow
#

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.)

thin estuary
#

although honestly collection expressions make it so i'm not even sure i want to use params anymore

ivory shadow
#

Thinking about it logically, I would expect it to work with .NET 6.

thin estuary
#

i see no reason why it wouldn't, params is just syntax sugar, isn't it?

ivory shadow
#

Yeah, that's my assumption. But I have no practical experience to know for sure.

thin estuary
#

ohhhh static extensions too

#

that's very nice

ivory shadow
#

Yeah, the extension stuff looks pretty neat too.

thin estuary
#

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

safe dragon
#

extensions that don't need to be static is neat

#

the blazor changes aren't particularly exciting...

#

gotta try out the websocket compression

ivory shadow
#

I haven't really used blazor for anything. We don't use it at work. Our server stuff is all TypeScript projects.

safe dragon
#

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

tropic anchor
tropic anchor
safe dragon
#

so nice

tropic anchor
#

Yay developer, boo consumer -whoever decided that

crystal wren
cinder karma
safe dragon
#

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

cinder karma
#

Yeah

#

It makes for a proliferation of serde packages

safe dragon
#

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

thin estuary
tropic anchor
#

That makes it 20x more interesting

safe dragon
#

meanwhile one of the projects I've been working with lately at work is set to I think C# 7

tropic anchor
#

I usually just use latest, so this is going to help me out a lot

crystal wren
#

Meanwhile I apparently can't even get it to work using the preview .NET 9, preview VS while targeting .NET 9...

safe dragon
#

I don't believe that part has even made it into any usable build

crystal wren
#

That... would certainly explain many things. I totally read that article as this being in the preview now. SDVkrobusgiggle

thin estuary
#

yep. the article says the extensions are not in preview yet

safe dragon
#

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

cinder karma
#

Spans aren't scary

#

They're like pointers but safe

safe dragon
#

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

spice patrol
#

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)? seagT

safe dragon
#

this looks suspiciously on topic

pliant snow
#

(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

tropic anchor
#

Yea... That's too bad... Good luck anyways

pliant snow
#

gdi

crystal wren
#

...but it does make normal wrapping look terrible.

pliant snow
#

Yeah I think its the URL thats the issues. Im also not sure if theres other mobile friendly changes i should make alongside it

lethal walrus
#

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

pliant snow
lethal walrus
#

Wow, github.dev works on mobile

#

Desktop mode!!

safe dragon
#

yeah 1 px borders are finnicky but it seems to work alright

lethal walrus
cinder karma
#

Work purchased coconut dr pepper

#

I now need to go around asking who lost their sanith

supple ether
#

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

supple ether
cinder karma
#

I tried one on a lark

#

It is not

supple ether
#

:(

supple ether
#

man now I want a strawberry cream dr pepper

supple ether
# dapper sinew <:negative:607663479687741460>

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

dapper sinew
#

oof

dapper sinew
#

does C++ have a std::getfile command?

#

tried asking google but dont know the proper terms yet still

strange copper
#

do you want to read, check it exists, or write?

dapper sinew
#

check if it exists

#

reading is next

#

writing is last

dapper sinew
#

ooooooo

strange copper
#

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

dapper sinew
dapper sinew
strange copper
dapper sinew
#

oof im on 14

strange copper
#

i sure love the man pages

dapper sinew
#

?

strange copper
#

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

dapper sinew
#

rip

#

i know this is a lot simpler in something like python or javascript but meh

strange copper
#

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)

dapper sinew
#

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)

strange copper
#

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

worn remnant
#

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.

dapper sinew
strange copper
worn remnant
#

another program can create delete the file in the meantime

strange copper
#

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

dapper sinew
#

(do not)

strange copper
#

jokes on you i run windows 😭

dapper sinew
#

oh yeah, %0%0's you

strange copper
#

i'm literally writing race condition test cases right now, this is funny timing

dapper sinew
#

uncase your code

#

it needs freedom

#

and food

#

feed it twice daily

dapper sinew
strange copper
#

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

dapper sinew
#

oof yeah

strange copper
#

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

safe dragon
#

race conditions are some of the worst most difficult to figure out bugs out there

sonic mirage
#

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: 😐

safe dragon
#

that's fun

#

I had to help a guy in essentially that situation before

#

except I suppose that I was around to help

sonic mirage
#

I updated my copy of the repo and I think this is a ship of Theseus situation

safe dragon
#

was strange to explain a service to the person who originally created it

safe dragon
sand frost
sonic mirage
#

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.

sand frost
#

yeah I think tons of people are taking the 4 day weekend

#

in the US, at least

safe dragon
#

do you have some holiday on Monday?

sonic mirage
#

Memorial Day

safe dragon
#

ah

#

the Netherlands is out of holidays till Christmas unfortunately

sonic mirage
#

I didn't even realize until like mid-week otherwise I probably would've taken today off too lol

safe dragon
#

most of my team works part time so Fridays are pretty quiet

#

Fridays and Wednesdays

sonic mirage
#

I only get work done like 4 to 6 hours each workday anyways

safe dragon
#

same

sonic mirage
#

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.

safe dragon
#

glad you have 3.5 hours worth of documentation

rugged flower
#

home server life

pliant snow
#

they were trying to be kind when using the word Fair

safe dragon
#

only triple the efficiency zone

pliant snow
#

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...

safe dragon
#

I have a home server but my monthly electricity usage is 140 kWh

#

was 170 kWh when I had a minecraft server running...

rugged flower
#

probably more likely the piss poor insulation in my apartment and the need to run my AC constantly

safe dragon
#

AC would do it

pliant snow
#

ours is the AC and dryer I think

rugged flower
#

oh yeah... in unit laundry too

safe dragon
#

I hang dry almost everything despite owning a dryer

pliant snow
#

good thing i dont charge my car at home hehe

safe dragon
#

good thing I don't even own a car

pliant snow
#

that'll cost even less!

safe dragon
#

a lot less than I thought tbh

pliant snow
#

cars are expensive

safe dragon
#

yeah just insurance and road tax + parking cost at my foot would be several hundred a month

dapper sinew
#

i wish Linux had voicemod, so nice for coding

safe dragon
#

why do you need a voice changer to program...

dapper sinew
#

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

pliant snow
#

do i still have internet test test

dapper sinew
#

you do

#

or did

pliant snow
#

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...

safe dragon
#

I've never felt the desire to talk to my computer and would rather just use custom snippets myself though

pliant snow
#

I curse at mine, does that count

safe dragon
#

does the pc react to it

pliant snow
#

i like to think it understands the sentiment

safe dragon
#

maybe then

sonic mirage
pliant snow
#

how long until the mods notice bouncer is up and down and message me in a panic

sonic mirage
#

Are you saying that bouncer is bouncing? That sounds almost like intended behavior based on the name

safe dragon
#

closes comment with Won't fix

ivory shadow
#

sudo make me a sandwich.
Syntax error

pliant snow
#

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...

ivory shadow
safe dragon
#

why does a smart plug need a 20 minute long firmware update

safe dragon
#

my email is spammed 24/7 from random people all over the world trying to use sudo without being a sudoer hc_pensive hc_pensive

ivory shadow
#

I'm gonna do it more now that I know

dapper sinew
#

windows needs a sudo install command

#

i dislike having to use google just to install something

#

(wget doesnt count)

ivory shadow
#

Windows is getting sudo finally, isn't it? Not that I'm willing to downgrade to Windows 11 to use it

dapper sinew
#

is it?

safe dragon
#

it is yeah

dapper sinew
#

first time im hearing of this

pliant snow
#

im not sure why it is, but its getting one

safe dragon
#

was in preview last I heard

dapper sinew
#

VICTORY nekoYippee

safe dragon
#

I for one am very happy about this

ivory shadow
#

It's convenient to have instead of reopening a shell as administrator all the time

safe dragon
#

cause I keep opening powershell normally, realizing I didn't open it as administrator, close it again and try again

dapper sinew
#

theres an option already

safe dragon
#

there is?

dapper sinew
#

yep

safe dragon
#

oh there is some command thing for it which apparently differs depending on which terminal you have open

ivory shadow
#

Just turn off UAC SDVpuffercool

safe dragon
#

I'm not sure our IT department would be a fan

dapper sinew
dapper sinew
ivory shadow
#

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

safe dragon
#

and something that isn't a security hazard if you forget to close the terminal after...

dapper sinew
#

sudo is the best

#

maybe we can finally sudo unistall ALL THE STUPID WINDOWS ADS

safe dragon
#

alas

#

no

dapper sinew
safe dragon
#

I haven't seen any ads but I only use windows at work which presumably doesn't have them

dapper sinew
#

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)

safe dragon
#

idk tbh I instantly start typing the moment I open that thing to find the app I need

dapper sinew
#

same

safe dragon
#

I think it looks fine though but can't check till Monday

dapper sinew
#

you could VM a windows install to see the horror laugh

safe dragon
#

I'd hope they didn't put the ads on windows 11 professional

pliant snow
#

something tells me they wont be rolling out that god awful recall feature to the enterprise versions

ivory shadow
#

I feel like this also has to do with whether someone lives in the US or in an actual country with laws and stuff

dapper sinew
#

now, the normal ads stay

pliant snow
#

my work version of windows also doesnt have ads and I'm in the US

dapper sinew
#

no getting rid of those

dapper sinew
#

rivo unistaller is great for getting rid of bloat without killing the PC

safe dragon
#

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

dapper sinew
#

lol

pliant snow
#

I got it set up, it claims my server is using 50W

#

which is much lower than i was expecting tbh

dapper sinew
safe dragon
#

while actually running services?

pliant snow
#

yeah theres like 10 or so docker images started

dapper sinew
safe dragon
#

not bad

pliant snow
#

i thought it would be over 100W easy

crystal wren
pliant snow
dapper sinew
pliant snow
#

i cant remember what power supply is in it, but i didnt think it was one of the best efficiency, which was an oversight

dapper sinew
pliant snow
#

bouncer, leah, the jukebox

#

home assistant and various services, jellyfin

dapper sinew
#

i wanna make a server server once i get another PC in the future

pliant snow
#

several smaller utility self hosted server stuff

safe dragon
#

my home server definitely doesn't have the parts you should use for a power efficient server but it's fine enough

ivory shadow
#

I'm curious about getting one of those snapdragon dev boards to use as a server

dapper sinew
ivory shadow
#

Still a bit too pricy for me at this point though

pliant snow
#

I was

#

the ARM one?

ivory shadow
#

Yeah

safe dragon
#

are there snapdragon boards that aren't arm

pliant snow
#

are they any more remarkable than any other x64 board tho

devout trellisBOT
#

It's very warm in here. Send help.

dapper sinew
ivory shadow
pliant snow
ivory shadow
#

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.

pliant snow
#

someday i'll upgrade to wifi 6 lol

#

how expensive are they

ivory shadow
#

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

pliant snow
#

thats less than i thought it would be tbh

ivory shadow
#

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

crystal wren
#

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.

safe dragon
#

nice

pliant snow
#

I think AV1 will be standard going forward, which is nice

ivory shadow
#

I'm more concerned about simultaneous streams than merely having the ability

safe dragon
#

should be fine

crystal wren
#

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.

pliant snow
#

for all those 4K 60Hz films out there

crystal wren
#

The Hobbit 4.

ivory shadow
#

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

safe dragon
#

need that for all the 3 movies I watch a year

#

that's probably optimistic...

ivory shadow
#

My Plex can hit five simultaneous encodes sometimes

safe dragon
#

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

ivory shadow
#

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

safe dragon
pliant snow
#

everyone seems to rag on it, but I love it. I dont have any complaints with it

atomic musk
#

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)

lethal walrus
#

what's the context?

atomic musk
#

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

safe dragon
#

entries upon entries…

atomic musk
#

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 SDVpufferthinkblob if one entry or the other is disabled, they shouldn't be merged

safe dragon
#

this all sounds very magical to me

#

disabled patch entries, merging entries…

crystal wren
#

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.

tropic anchor
#

First attempt at writing a flood fill algorith implementation, any pointers?

safe dragon
#

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

tropic anchor
#

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

safe dragon
#

as long as you're consistent I suppose

#

wait

crystal wren
#

Also, I see no pointers.

safe dragon
#

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

tropic anchor
#

Pointer scawwy SDVpufferchickcry

#

Yea, it's one caveat, but they are filtered out by the hashset

#

Still might be better to check performance wise I suppose SDVpufferthinkblob

safe dragon
#

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

tropic anchor
#

Going to run it real quick, 2 secs

safe dragon
#

if you only add it to the queue if the tiles.Add returns true you should essentially be done

tropic anchor
#

Welp, it just doesn't work right now for some reason, thanks for the suggestion anyway, definitely useful

safe dragon
#

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

tropic anchor
#

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

safe dragon
#

hashing the entire tile object might be expensive idk what it looks like

tropic anchor
#

tile, just a vector, HoeDirt, complex object with a lot of properties, netdata, etc.

safe dragon
#

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

tropic anchor
#

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 SDVpufferchickcry )

crystal wren
#

Yeah, what's this for? SDVpufferlurk

tropic anchor
#

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

safe dragon
#

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

tropic anchor
#

Copy, ctrl-z incoming SDVpuffersquee

safe dragon
#

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

crystal wren
#

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!

tropic anchor
safe dragon
#

I've caused my pc to crash before with a floodfill

#

it's pretty exciting

tropic anchor
#

I can't luckilly, c# just throws a stack overflow exception and crashes the game

safe dragon
#

anything is possible if you believe in yourself

crystal wren
#

I feeeeel like it shouldn't be possible to cause any huge problems in Stardew with the amount of tiles that are possible...

safe dragon
#

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

crystal wren
#

Those are words of competence.

#

I do not speak this.

safe dragon
#

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

trim relic
#

It took 3 days, but I was able login to Nexus finally.

safe dragon
#

Gratz

tropic anchor
safe dragon
#

it doesn't like the left

tropic anchor
#

Nevermind, it's because for the left check, I only supply the initial tile instead of the current SDVpufferchickcry

scarlet hollow
dapper sinew
#

stupid pip and python code not being cross machine grumpy bear noises

scarlet hollow
dapper sinew
scarlet hollow
dapper sinew
#

Oop

dapper sinew
#

im trying to train my own AI model and my PC is NOT having it

#

send help

#

and cookies

lethal walrus
#

I would've thought you'd want us to send GPUs

pliant snow
lethal walrus
#

I prefer pm2 start python3 main.py

#

(yes, FC is running via pm2)

pliant snow
#

what is pm2

safe dragon
#

python ain’t nodejs

#

this sounds illegal

#

using it for something else than it was intended for!

lethal walrus
#

ok but it shouldnt let me run commands then

lethal walrus
strange copper
safe dragon
#

need more Cuda plz one more Cuda will fix everything

#

need more (PCIe) lanes

strange copper
#

If we get one more cuda we will hit 95% validation set accuracy please

dapper sinew
trim relic
#

If you need MORE GPU's then I need a second heart.

upbeat turtle
#

I have a 2070Super

#

Is that enough cudas?

crystal wren
#

That is 2560 CUDAs...

upbeat turtle
#

Ahh... and he only needed 1? But they work in groups of 16 or 32, no? You can't add just ONE cuda!

dapper sinew
pliant snow
#

All in the name of

#

uh

#

generating recipies?

dapper sinew
#

I simply wanna have it output a python code that currently dies hello world

#

Does not dies, that's my PCs job

strange copper
#

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

safe dragon
#

you downloaded cuda? how does that work

strange copper
#

i installed the drivers to let my device use cuda

safe dragon
#

oh

strange copper
#

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

safe dragon
#

I've tried some gpu compute stuff in the past and it can be pretty insane in the right scenarios

strange copper
#

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

safe dragon
#

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

strange copper
#

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

safe dragon
#

can't say you'd have an easier time on Linux for this issue specifically

strange copper
#

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

safe dragon
#

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

dapper sinew
#

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

strange copper
#

are you training on top of an existing model? or like full on from scratch

dapper sinew
strange copper
#

oh jeez 😭

dapper sinew
#

cause i need to understand how they work

#

granted im using AI to MAKE AI

#

but eh, its working :3

strange copper
#

training on top of an existing model and training a brand new model is a really similar process i will not lie lol

dapper sinew
#

idk how to train ontop

strange copper
#

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

dapper sinew
safe dragon
strange copper
dapper sinew
#

i do :3

strange copper
#

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

dapper sinew
#

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

strange copper
#

(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 😭

dapper sinew
#

do you know how to train AI?

#

cause i sure dont laugh

strange copper
#

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

dapper sinew
#

im taking a class in w3 on AI

strange copper
#

i feel like we are using AI and ML interchangeably here

dapper sinew
#

apperenretly itll be half a year before i can do anything laugh

strange copper
#

and ML is AI but are we talking specifically ML

safe dragon
#

and even in that only a specific niche

strange copper
#

true, the codegen niche of genai

dapper sinew
#

basically i just want an AI that can learn what i give it and chat with me :3

strange copper
#

that's kinda different than a model that generates code in a custom language, no?

dapper sinew
#

im starting out with this first

strange copper
#

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

dapper sinew
#

since there is a lot of code data i can feed to it

strange copper
#

from where?

dapper sinew
strange copper
#

oh neat

#

i didn't know google published datasets

dapper sinew
#

like python and stuff i can hand pick, copy paste, and just generally find it

strange copper
#

oh not a published dataset

dapper sinew
strange copper
#

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)

dapper sinew
#

google does have a dataset but its like 60 a pop per model trained

dapper sinew
#

i think thats the two

strange copper
#

there are copyleft licenses too

safe dragon
#

please don't even entertain the idea of gathering your own dataset, you'd be in for a rude awakening

dapper sinew
strange copper
#

i think i hand labeled several hundred images for the classifier for work and then i made a TON more synthetic images

dapper sinew
#

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 panda_happy

#

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

strange copper
#

maybe i should finally get around to writing that one scraping script so i can actually have the data I want for my project

safe dragon
#

you're taking a very unusual route to learning to program but if you're enjoying it I suppose that's alright

dapper sinew
#

i learn wierdly, if i cant put something into practice i cant learn it

#

like reading, i cant put reading into practice

strange copper
#

that's not weird, that's like the only way to learn coding lol

dapper sinew
#

so i physically cant learn by reading

safe dragon
#

learning by doing is a fundamental part of programming yes

#

the things you're doing are the unusual part

dapper sinew
#

i know

#

wont deny it

strange copper
#

crumble did you ever do a little text adventure game when you learned

dapper sinew
#

having fun is a big thing to me, and ive learned more this way than just sitting and reading, and reading, and reading

strange copper
#

i've done more reading to do stuff like ML than for anything else 😭

safe dragon
#

never did just text cause my introduction to programming was learning XNA and making a few game clones

strange copper
#

I think tho if you set your mind to it you can do just about anything so

dapper sinew
strange copper
#

empty brain

safe dragon
#

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

strange copper
#

😔

safe dragon
#

and now I'm just a silly web dev

#

for now... I'd like to shift away from it eventually

strange copper
#

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

safe dragon
#

I don't mind the backend and database sides of it but front end just ain't my thing

dapper sinew
#

I may have gave it a few lines to read

dapper sinew
strange copper
#

Long 😭

#

How can you have none rows and 1 col

cinder karma
#

It has the thought it could have rows

strange copper
#

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)

cinder karma
#

I love calling time.sleep in my code

#

Then I can remove it later

#

And see a nice performance increase

#

Also, race conditions

strange copper
#

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

dapper sinew
strange copper
dapper sinew
#

Yes :(

strange copper
#

real tbh 😭

#

what's it like before you train on top?

dapper sinew
#

And I have it 2 mil lines of python saying hello world

dapper sinew
strange copper
#

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?

dapper sinew
#

It has this 2 million times in the file