#programming

1 messages · Page 239 of 1

balmy nacelle
#

as for the "shop"

#

uh*

#

either i make it also a pop up where u can like expand it or not and put it left side

#

or something else mayb

#

like if u are only playing with keybinds then u can minimize the shop

#

or already finished placing towers

#

there's also the problem with my game being fixed pixel ratio and anyone with a smaller screen than 1920 horizontal is screwed but i'll deal with that later...

obsidian mantle
#

I think it should be automatically minimized and appear when you press "open menu" key or hover your mouse on it.

balmy nacelle
#

hm, so for example make where this is like a "Shop" button, and on hover show the shop? And as long as mouse is in the shop area keep it extended and once mouse is out of area for x seconds minimize it?

#

or what do you mean

obsidian mantle
#

Right, exactly that

#

Maybe not even "seconds" but instantly after mouse is out of it

balmy nacelle
#

ic

obsidian mantle
#

So you can always get it minimized fast

balmy nacelle
#

okok, i'll focus on the upgrade part first and then work on the left side after ig

#

onto mspaint i go unless theres a better program for me to go make a ui panel lol

obsidian mantle
#

It will work for now, you dont need it to be mona liza quality yet

balmy nacelle
#

actually i'll just use gms' built in

faint sandal
obsidian mantle
#

neuroKufufu what is that

thick imp
#

cryptic messages

obsidian mantle
#

Disassembled dll?

faint sandal
#

obfuscated calls, presumably with warbird

nocturne olive
#

Holy
I don't know why the pitch sounds wrong to me but that's like wayyyy better than I expected

#

Now I want to work more on the Teto cover but I have a dataset to build and stuff

#

Finnish Evil actually sounds really cool

#

Just looked at the waveform, I have literally no idea how this doesn't clip

balmy nacelle
#

lines are separators for the stats idk if theyre needed per se

#

text box for tower name then image

#

then upgrade and sell button

#

oh well vedalCoding time

nocturne olive
#

I really wonder why my Chess bot is so slow

#

Even with 4 recursion it's way too slow

#

Is the Chess API SO supposed to have -O3?

#

This thing loses on time with 15 minutes

nocturne olive
#

Oh how silly

#

I've never used one

rigid snow
#

it’s more in the mastering realm yeah

#

not mixing necessarily

nocturne olive
#

Sily

#

I just tune the volume until nothing clips

rigid snow
#

it’s to push loudness

#

because quiet master almost never good

nocturne olive
#

Seems silly

#

I usually don't have to push my volume down that much

#

I don't want to worry about weirdness making my audio sound bad

rigid snow
#

ye as i said this is part of mastering

#

you don’t have to do that but someone probably should if you’re releasing a song

#

it’s just a big part of my workflow and besides i literally didn’t do anything crazy i just put pro-l 2 on the master and changed the preset to “transparent”

nocturne olive
#

Well I have no clue how to do that but stuff like Raise up your bat works just fine

rigid snow
#

i mean releasing a song as in properly, like with streaming services etc

nocturne olive
#

Seems silly

#

I could never release a song anyway, I don't have the creativity for it

rigid snow
#

god

#

i don't know how it doesn't sound like crap

#

oh it does kill the drums in the instrumental though

obsidian mantle
#

5 is too much it starts thinking for 30 seconds

#

pure alpha beta VS pure alpha beta, nothing else. 5 and 8 seconds

#

depth 4, static evaluation on depth 5, no quiescence

#

print amount of beta cutoffs after each move, maybe it doesnt get cut off properly

#

the number is supposed to be high

#

however your negamax looked fine.. thonk

#

did you make piece-position evaluation and tried without mobility evaluation?

nocturne olive
#

Actually no 4 steps is still pretty fast

obsidian mantle
#

dont go higher than 4 without transpositions and iterative, its too high

nocturne olive
#

Though it also gets completely destroyed by my older bot with no recursion

obsidian mantle
#

show new eval

nocturne olive
#

Looks about like this

obsidian mantle
#

you only evaluate your own positions but you also need position of enemy pieces

#

i mean piece positions

nocturne olive
#

Oh

obsidian mantle
#

it probably sees that your own pieces are in good positions, but enemy pieces get +0 for position. but enemy can be higher

#

therefore wrong board evaluation and bad moves

nocturne olive
#

So like that?

obsidian mantle
#

looks good

nocturne olive
#

It loses EVEN FASSTER

obsidian mantle
#

huh

nocturne olive
obsidian mantle
#

maybe it doesnt work if you dont have checkmate check

#

it lost a bunch of pieces too though

nocturne olive
#

I do though no?

obsidian mantle
#

something aint right

nocturne olive
#

This checks if the move of the playing player resulted in a checkmate and gives the move infinite score

#

So after the move is made it checks if that made checkmate

obsidian mantle
#

do you have "no-piece" table for piece positions

#

[piece] can be 0

#

but pawn is [1]

nocturne olive
#

If getPieceFromIndex returns a null (yes I fixed my bindings) the iteration of the loop will be skipped

obsidian mantle
#

but is pawn still 1

#

i had it like this before i just started doing [piece-1]

nocturne olive
#

Pawn is PieceType.PAWN

obsidian mantle
#

which is 1

nocturne olive
obsidian mantle
#

ohh

#

i see

nocturne olive
#

We don't have enums as numbers here in glorious Kotlin land

#

We have enums as types

obsidian mantle
#

wait you pass move to alpha beta function

#

how do you call the first alphabeta

nocturne olive
#

Pretty simply

obsidian mantle
#

so if it got beta cutoff...
it returns -inf?
which makes the upper alphabeta think that this move is super good because it leads to enemy making super trash move

#

you need to return beta after this

#

i think

nocturne olive
#

The Chess programming wiki said to return bestValue and that happens at the end already

midnight sigil
obsidian mantle
#

hmm right

midnight sigil
obsidian mantle
#

why do i return beta what

#

oh i stole it from lague

midnight sigil
obsidian mantle
#

neuroBwaa im confused now

nocturne olive
#

Either way why does this bot suck more than the non-recursive bot?

obsidian mantle
#

oh yes there are fail-high and low in chess programmin

#

2 variants

obsidian mantle
nocturne olive
#

Well it would be great to know what

obsidian mantle
#

what the hell there are

#

fail hard
fail soft
fail high
fail low

midnight sigil
#

neuroPogHD fancy pruning turns

#

cutoff conditions

hard raptor
midnight sigil
#

sometimes you need to perform Q-searches or extend the current search after reaching a fail high etc

#

it's why those terms exist

rigid snow
#

huge ass video

#

too much

#

wtf

midnight sigil
#

(plz don't)

nocturne olive
rigid snow
#

it ducks the volume but uhh in a way that isn't very perceptible

nocturne olive
#

Looks pretty significant to me

rigid snow
#

i'm not sure how exactly maybe hayleigh knows, is pro-l just a regular limiter with tp?

#

and all of these mastering limiters

obsidian mantle
#

@nocturne olive can you try make -eval here real quick

#

return -eval()

nocturne olive
rigid snow
rigid snow
hard raptor
rigid snow
#

maybe overdoing it just a bit

#

is that how he produces evilWheeze

hard raptor
#

yes lmao

nocturne olive
#

I'll just stick to mixing deep and adjusting the volume until good

rigid snow
rigid snow
hard raptor
#

idk

#

i always use pro-mb

rigid snow
#

like do the "mastering" limiters do anything special besides true peak

rigid snow
#

bope very important

hard raptor
nocturne olive
#

Eh, never needed it

nocturne olive
hard raptor
nocturne olive
hard raptor
#

wait

obsidian mantle
#

Maybe your old bot is super good

nocturne olive
#

It doesn't even have any recursion

#

And it constantly makes stupid moves

#

It just throws its queen away to get like a pawn

hard raptor
#

@rigid snow i worked with alan walker once... his layering and over compressing is way worse than martin garrix even

rigid snow
#

overcompressing is fine glueless

nocturne olive
#

Like what should I even do? -eval or +eval?

hard raptor
#

i always used to be better at like techno rather than bigroom anyways

rigid snow
#

5 randomly picked demos of mine evilWheeze

hard raptor
#

partially cuz i'm mentored by the queen of techno herself lmao

#

wait

rigid snow
hard raptor
#

doesn't that make me a princess of techno?

rigid snow
#

perchance

nocturne olive
rigid snow
#

it's there it's just -2 lufs (not joking) vedalCry

hard raptor
nocturne olive
#

What is a lufs

rigid snow
#

sounds... surprisingly fine for what it is

hard raptor
#

dam

nocturne olive
hard raptor
nocturne olive
#

?

hard raptor
#

oh i thought we were combining calculator symbols with the word eval

nocturne olive
#

This is Chess bot

rigid snow
nocturne olive
#

My Chess bot is werid and sucks and we can't tell why

rigid snow
#

pointer to an eval

rigid snow
hard raptor
#

whattabout

#

&eval

#

then

nocturne olive
#

I would not want my audio to look like that

rigid snow
#

i'm fixing the master on that dw

#

but also it's in a genre where that works

hard raptor
#

i find it funny that if you put an electric charge on a solar panel that the panel then turns into an IR LED

#

almost types fonyons name there

obsidian mantle
#

but i cant quite put it in words correctly

nocturne olive
#

?

#

Eval literally just evaluates a single move

obsidian mantle
#

oh i mean alphabeta

#

so you make move then get all countermoves and eval them

#

but they also make move first

midnight sigil
#

I guess I got null pruning working

obsidian mantle
#

so it goes like this:

alphabeta(move)
makemove(move) <- move made but not evaluated
getnewmoves->alphabeta(moves[i])
makemove(move)

nocturne olive
#

And how am I supposed to deal with that then?

obsidian mantle
#

dont pass moves to alphabeta,
make move before calling new alphabeta

midnight sigil
#

pass the board instead mhm

obsidian mantle
#

sooo like this

alphabeta()

for (move : getlegalmoves)
makemove(move)
somethingsomething = -alphabeta()
undomove()

obsidian mantle
#

and eval doesnt make move at all

#

i think this should work

#

backup the bot and try it

midnight sigil
nocturne olive
#

That makes for a piece shuffling bot that also loses

#

I thought I did it right, I even reversed the turn check since it now happens after making the move

#

How is this so much worse?

obsidian mantle
#

show new everything

nocturne olive
#

Wait since when did this become a broken thing

#

The other one should be the opposite of turn

#

Well that appears to have changed literally nothing

#

It loses with the exact same moves

rigid snow
#

any ideas on how i can indicate if there are options above and below

#

like that this isn't the top or the bottom

obsidian mantle
#

arrows

rigid snow
#

where

obsidian mantle
#

three dots

#

scrollwheel

rigid timber
# rigid snow where

below or above the commands, depending on whether there's stuff in that direction

rigid snow
#

layout shift mug

rigid timber
#

too bad

#

then a scrollbar

simple pollen
rigid timber
#

also it doesn't need to have layout shift actually

rigid snow
#

where do i put the dots or arrows then

obsidian mantle
rigid timber
#

lemme get an image editor up, hold on

simple pollen
#

scrollbar or an up/down arrow above / blow?

midnight sigil
#

my bot sacrificed the queen to delay the checkmate neuroNOWAYING

#

it thinks like a human

#

I'm pround

simple pollen
#

or the lazy direct approach, make the fade "X options"

rigid snow
#

also a scrollbar will be a lie, i can't do mouse interaction in the lib i'm working in

nocturne olive
simple pollen
rigid snow
rigid timber
#

sth like this, where the box with the arrow is drawn directly over the command list, without shifting the layout, and disappears when the user got fully to the end

obsidian mantle
midnight sigil
#

for some reason my bot really really likes to trade knights and bishops neuroCatUuh

obsidian mantle
#

must be white for white

rigid snow
obsidian mantle
#

you havent made a turn, so you are evaluating same side

nocturne olive
rigid snow
#

[mug

obsidian mantle
#

finger slipped neurOMEGALUL

rigid snow
#

emug]

obsidian mantle
obsidian mantle
nocturne olive
#

And it STILL just shuffles a rook around

simple pollen
nocturne olive
#

It worked better before

#

It's also suddenly thinking for 30 seconds

obsidian mantle
#

material score inverted too

#

whole eval should be evaluated in favour of current side

simple pollen
#

heh, so your in integration hell? where your not sure where in the chain its gone wrong 😄

nocturne olive
#

Current is this

obsidian mantle
obsidian mantle
nocturne olive
#

This time it got a time loss but was on the path to the exact same moves

#

Why is this whole thing suddenly completely borken?

obsidian mantle
#

unless

#

for some reason this feels off

#

its supposed to give opposite of the turn

nocturne olive
#

It inverses the turn yes

obsidian mantle
#

what if turn is white

#

it gives white

#

if black it gives white too

nocturne olive
#

Whuh

obsidian mantle
simple pollen
#

yeah its short circuiting 😄

nocturne olive
#

I'm dum

rigid snow
obsidian mantle
#

also i found out that im actually doing 64-index instead of 63-index

#

after happily fixing it, bot peforms worse catdespair i am in the same situation

midnight sigil
obsidian mantle
#

look at scroll on the right its so nice

nocturne olive
#

Do I need to do -eval again?

midnight sigil
#

glad I chose PeSTO's Evaluation Function at first instead of the simplified one NeuroClueless

simple pollen
#

its not something like you need to invert your turns, as the logic was borked before you dont have an inversion elsewhere?

#

personally i'd probably treat it as a boolean so you don't have to do too much logic dancing

nocturne olive
#

So even -eval has the SAME exact behavior

#

Almost like it was returning 0 every time or something

midnight sigil
obsidian mantle
#

is this unchanged

#

except the move

#

i dont understand how it pushes if alphabeta returns maxvalue

obsidian mantle
#

show whole main ()

#

maybe it has perfect evaluation but picks the worst move now on the final layer

midnight sigil
#

@​Shiro can we get a is_repeated_position(Board *board)

nocturne olive
#

The main is just this

simple pollen
nocturne olive
#

No the eval seems to be returning normal values

obsidian mantle
simple pollen
#

perhaps dump a problem state and statically test that one?

nocturne olive
midnight sigil
obsidian mantle
#

i dont get how this works

#

moves has no values yet

#

before this

#

or they are incorrect

simple pollen
#

that would also prune any checkmates if I'm reading it right

nocturne olive
#

Uhuh
Somehow everything is indeed returned as 0 in the end

obsidian mantle
#

can you do something like this

#

and then push(bestmove)

#

bestmove is global

nocturne olive
#

WAIT I just realized

#

I KNOW WHY IT'S BROKEN

#

THE MOVES ARE NOT PASSED TO ALPHA-BETA

obsidian mantle
nocturne olive
#

No that's stupid also I know why it broken

obsidian mantle
#

it leaves you with actual bestmove as global you just push it

nocturne olive
#

I need to find a way to push the moves into alpha-beta again

obsidian mantle
#

alphabeta gets moves by itself

nocturne olive
#

No but I need the initial moves so my whole logic works

obsidian mantle
#

they have no value and alpha beta returns just value

nocturne olive
#

The associateWith is meant to map the moves to their scores

obsidian mantle
#

you cant match it to moves you got outside of alphabeta, only alphabeta knows (knew) which move was the best

#

and it forgets it on return

nocturne olive
#

But since every move is the same and apparently even everything is just 0 so it takes the first move in the list

obsidian mantle
#

then you just get left with best move

#

and push it and it works neuroSuperior

midnight sigil
obsidian mantle
#

so it doesnt push gigamove from some depth3

#

lets say we had actual best move in branch 1

#

and its the absolute best

#

and then it finds super move on depth3

#

and overrides global bestmove

#

and it makes illegal move from some depth3 board that doesnt exist yet

midnight sigil
#

then don't make it global

obsidian mantle
#

then you need to return it

#

but you want alpha beta to return the value and not just move

#

you can make alphabeta return struct? idk

midnight sigil
#

not really, you only need the value(evaluation) from non-root branches/nodes

nocturne olive
#

Yay it does something different now
Nooo it thinks for years now

#

Oh god it's still broken it does something stupid still just not the same stupid

midnight sigil
#

std::pair is there for you

#

whatever that equivalents to in kotlin

nocturne olive
#

Pair

obsidian mantle
#

i love global variables neuroKufufu

midnight sigil
nocturne olive
#

I hate them

midnight sigil
#

it's hard to manage

#

since you sure won't be doing OOP in this competition

#

right?

nocturne olive
#

Hm I'm still stupid

obsidian mantle
#

technically i dont even know what oop actually is

#

i have a slight clue

#

something somethins structures classes

#

is this oop

#

ignore the comment

#

and then i have this

midnight sigil
#

doing class and stuff

midnight sigil
obsidian mantle
#

it must be class with methods to be oop?

midnight sigil
#

yuh

obsidian mantle
#

its not token efficient at all

midnight sigil
#

make transposition_struct and stuff a class with getter setters and that'll be OOP, perhaps

obsidian mantle
#

i can work with global vars, i do it all the time at work

#

they are the only interface we have between blocks of programs

#

in our shit enviroment

tender river
#

it's not very efficient since you're intentionally limiting what you can do, but it's useful in many domains and also makes it harder to do something horribly wrong since you're limited in what you can do

nocturne olive
#

Weird

tender river
#

the more your program grows, the more "demarcation lines" you have to draw either way (the network stack is a classic example, from l1 to l7, each layer being concerned with its own thing)

nocturne olive
#

Somehow my stalemate check was corrupting all my values

tender river
#

arguably even the basics of fp contain a lot of oop'y elements if you think of functions as objects

nocturne olive
#

And now it seemingly makes the moves that are the most beneficial to the opponent

simple pollen
#

recursion will hurt your head unless you make the boundaries clear 😄

nocturne olive
#

YEEEEEEEEEEEE
BotMK2 has overtaken MK1

#

All it took was this gigantic mess

simple pollen
nocturne olive
#

This time I'll have a Git repo locally so if I ruin it I can go back to a functional version and in the end I can see which of the versions does the best

nocturne olive
#

MK1 had 10 versions

#

MK2 is a complete rewrite

simple pollen
#

and MK3 will come when you wake up and think, what in the heck was I thinking, 😄

nocturne olive
#

MK1 had no external help, I did it completely on my own
MK2 is using all the tools I have, Chess programming wiki, ChatGPT, #programming , whatever

simple pollen
#

thats vscode or pycharm?

nocturne olive
#

IntelliJ IDEA

#

This is Kotlin

simple pollen
#

the AI agent stuff is free for 30 days, you can throw a reasonable amount of claud or gpt at directly poking the problem 😄

nocturne olive
#

Nah I don't use LLMs in my IDEs

rigid snow
#

same as webstorm, clion, rider, rustrover, whatever else they have, android studio

simple pollen
#

to be honest I've never dealt much with java or Kotlin, just looked like similar styling

rigid snow
#

basically pycharm yes just branded differently

dusty niche
#

Clean ported Roblox backend code

rigid snow
#

neuroLookUp holy fuck

dusty niche
#

Screenshots are from my friend, it’s a Roblox revival I’m working and contributing on

#

Uses a ported Roblox backend code

rigid snow
#

i thought my last time seeing that would be in 2018

#

but no you blessed me with spaghetti php today

dusty niche
#

It’s super ass

rigid snow
#

i don't want to thx

dusty niche
#

Thousands of micro services

midnight sigil
#

my bot got 90% acc against the previous version of itself(without null pruning and SEE ordering)

dusty niche
#

And db structures

midnight sigil
#

white is new bot

#

crazy crazy

rigid snow
#

microservices aren't a bad thing especially in a corpa env. overhead of integrating is worth it

#

usually

#

the problem starts when something is being split into a microservice when no real concern exists, just for the sake of it

nocturne olive
midnight sigil
#

idk we can test

rigid snow
#

i haven't even started my bot MyHonestReaction

midnight sigil
nocturne olive
midnight sigil
#

no I'm on windows

rigid snow
nocturne olive
#

Then chessapi.dll

midnight sigil
#

it should be fine, they are the same

#

only difference is my py file

nocturne olive
#

You will want to have Java 21 too

#

If you want to run my bot

midnight sigil
#

yea I do

#

openjdk 21.0.2

nocturne olive
#

Then prepare a folder where you have a folder called "native" that containts "chessapi.dll" and a runner that runs java -jar chess-bot.jar

hoary lion
#

java mentioned?

nocturne olive
#

And add the runner in CuteChess

nocturne olive
#

Nah Kotlin better

midnight sigil
nocturne olive
#

Wha

#

The API says /native

midnight sigil
#

ok nvm win32-x86-64/ still doesn't work

nocturne olive
#

Put the win32-x86-64 folder in the native folder

#

Surely that'll work

nocturne olive
#

Windows is weird

midnight sigil
#

it's native/ but idk what's wrong

#

lul

nocturne olive
#

Windows weirdness

midnight sigil
#

best of 5 let's goo

#

I hope your bot survives 5min time management

clear sedge
nocturne olive
#

I have no clue what calls slow it down so much

midnight sigil
#

you need more pruning methods eliv

nocturne olive
#

Well how am I gonna add more stuff on top of alpha-beta?

midnight sigil
#

black is you

nocturne olive
#

It's a very basic eval function on 4 level recursion with alpha-beta right now

midnight sigil
#

I did Alpha-beta pruning, Reverse Futility Pruning, Null Move Pruning

#

I'm thinking to add Q-Search

nocturne olive
#

Well I think first I'll need to compress the piece position tables
They're currently making the thing way too big

midnight sigil
#

you actually make the bot work well first before compressing stuff

nocturne olive
#

Then I'll have an idea of how many tokens I'm working with here

midnight sigil
#

that's the clean up stage

#

you're still getting the bot to actually work

nocturne olive
#

Well I don't want to add so much stuff I can't get it below the limit

solid bough
#

Hiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii

#

Chat

#

oh, Wrong channel NeuroRage

midnight sigil
nocturne olive
#

Bot too slow I guess

midnight sigil
#

no it's the API issue

#

I'm heading for an issue ticket

nocturne olive
#

Wha?

#

Are you sure it's the API and not just it being slow

midnight sigil
#

stop will be thrown after a game end, and the bot stops listening to any uci commands, causing the "stall"

obsidian mantle
midnight sigil
#

against its previous ver

obsidian mantle
#

I dont have this graph when my bots play against each other, but i do against stockfish. Do i need to enable something thonk

midnight sigil
nocturne olive
obsidian mantle
#

Is it possible to beat 1300 stockfish

#

Lague said his bot was 2300 and someone made a much better bot in his challenge

obsidian mantle
#

Or 2700 i forgot

midnight sigil
#

then I guess idk what happened

nocturne olive
#

I get that when the bot is too slow

#

It's just a different time fail

midnight sigil
obsidian mantle
#

Are there multiple elo measures

#

Like one 1300 = 5k other

nocturne olive
#

Well guess whatever your CPU is + Windows is too slow

#

Anyway I gotta go have fun with the terrible bot

obsidian mantle
#

Stockfish printing 40-100 level depth scares me

#

How is it even 1300 elo

#

???? 40 depth is half of the game

midnight sigil
#

it's not searching all branches

#

it just search branches that it think is correct

#

so it can reach crazy depth

#

anyways my bot lost against stockfish

obsidian mantle
#

Do you have iterative search

midnight sigil
#

not yet

#

I need Aspiration Window before Iterative Search

obsidian mantle
#

Just q search with alpha beta?

midnight sigil
#

it's like a tech tree

midnight sigil
obsidian mantle
#

What

midnight sigil
#

no q search

obsidian mantle
#

I thought q is quiescence

midnight sigil
#

yes quiescence

#

I haven't do quiescence search

obsidian mantle
#

Oh NeurOhISee

clear sedge
dull egret
clear sedge
#

she has white monter

#

a woman of culture

midnight sigil
#

I added some debug features to my code

#

unfortunately finding out the evaluation function is broken

#

have to redo the whole part

hoary drum
#

do you guys wanna see gayballs?

obsidian mantle
#

When new patch

#

Send it to nn catSUS

stray dragon
hoary drum
#

1 sec updating the embed

stray dragon
#

how are you a real living person

hoary drum
#

and ill continue doing it

obsidian mantle
#

Are you ai

hoary drum
#

i updated the embed for the website

#

lets see

rigid snow
obsidian mantle
#

Location tomato?

hoary drum
#

gayballs

#

imma make the image bigger

#

so it looks better

stray dragon
#

he's just giving himself more excuses to post the link again

hoary drum
#

im trying to update the embed

#

test 2

#

WHY IS THE IMAGE STILL SMALL

#

:(

#

so the image here is big

#

but the image on gayballs is tiny?

obsidian mantle
#

It became smaller

trim valve
#

skill issue probably

#

but in all honesty check the meta tags

#

you're probably using a different one to GitHub

#

GitHub may also serve an image to scrapers, like issue summaries

hoary drum
#

imma test this in a different channel so i dont make a text wall

#

OHHHHHHHHHHH

#

IT WORKED!!!

midnight sigil
#

big thumbnail

hoary drum
#

now lets see the other websites

#

HAMSTER!!!

#

guess the password boiiiiiii

#

nice

stray dragon
#

self-promo smh

#

mods cut off his legs

midnight sigil
midnight sigil
#

buh

#

are they DDOSing Github after games now

#

glad they didn't accidentally wipe out the entire database again

#

phew

sick owl
#

Am I right in thinking that most proprietary LLMs discard reasoning tokens from the conversation history?

#

If so I'm wondering if someone here who has tested can clarify, is that just due to context window efficiency reasons or does the reasoning prefill actually degrade performance over multi turn conversations?

rough bloom
#

AFAIK yes, everyone always discards the reasoning from the history
both because it takes an absolute ton of space and also because it probably makes future output worse because now there's a bunch of garbage in the context

midnight sigil
#

crazy crazy

jovial remnant
trim valve
midnight sigil
midnight sigil
#

move ordering is very important

#

if you don't order your moves correctly, a true best move would be pruned or deducted

#

that's all

#

silly issue that took me a while to find

midnight sigil
#

the real mate move is ordered behind some bad moves, when that specific bad move branch got pruned, the whole branch which includes the real best move got pruned as well, leading to a false positive

merry plank
#

010010000110100100100000011010000110010101101100011011000110111100100000010010010010000001100001011011010010000001110010011000010111011101110010

obsidian mantle
#

but if its a best move, why would it be pruned

#

it would cause beta cutoff

#

or do you get it pruned on highest level?

olive sable
obsidian mantle
#

💀

#

my new bot

#

forced old bot to give away the queen

#

because otherwise it would be 3fold

#

i think i did it

#

correct ( glueless ) iterative search and transpositions and killer moves

#

new bot destroys old bot

midnight sigil
#

oh wait I reversed the sign whatever

#

you get it

obsidian mantle
#

but its the best move of 3rd layer

#

we discard it because 2nd layer will not pick this branch at all

#

so no need to calculate branch which will be discarded any further

midnight sigil
obsidian mantle
#

no its not like that im saying bullshit

#

sooo

#

you see we dont pick this branch, layer0 doesnt pick this branch

manic jacinth
merry plank
obsidian mantle
#

because it will be worse than left branch 100%

manic jacinth
#

New model architecture paper just dropped

midnight sigil
obsidian mantle
#

yes

midnight sigil
#

how'd u know

obsidian mantle
#

lets say it has value of 500

#

will this guy pick it?

#

opponent answers with +500 if he picks it

kindred belfry
#

wait i just realized is there a chance the neuro and evil breaks are signs on SSD decay in the machines?

#

because corruption like that can happen with bad ram or a drive

obsidian mantle
#

its not opponent

midnight sigil
#

neuroSadge we're sinking deeper and deeper to misundertandings

obsidian mantle
#

yes neuroCry

rare bramble
#

Learned that you can get loop vectorization information out of MSVC with the compiler flag /Qvec-report:2

olive sable
rare bramble
#

had to check if you can get similar info for Rust from LLVM and found that you can get full LLVM optimization reports with cargo-remark

opaque sigil
#

clang/gcc have a flag for that too iirc but i don't remember what it's called newero

olive sable
#

Toast new pfp?

opaque sigil
olive sable
#

You stopped looking so scary now neurOMEGALUL

opaque sigil
obsidian mantle
#

@midnight sigil

#

we have at least -2 on left branch

#

wait no im wrong

#

NeuroRage im so bad at explaining

olive sable
obsidian mantle
#

what do we pick lowest or highest

#

does it depend on who picks

#

does it depend on it being negamax minmax bruteforcemax idk

maiden geyser
#

bruteforcemaxpilled negamax minmaxcel

obsidian mantle
#

is this correct can someone confirm

#

we always pick the highest

#

every side picks the highest, flip sign every layer

#

1000 is highest but even 500 was enough to NOT pick this branch at all - we have confirmed -3 on the other branch

#

so we stop calculating it

#

neuroEZ sounds right

obsidian mantle
#

how do i do this cool graph thingy...

warped narwhal
obsidian mantle
#

i dont see this number in stockfish log what

warped narwhal
obsidian mantle
#

yes so we discard the right branch entirely because it will allow enemy to get at least 500, and we have 3 on the other branch

warped narwhal
#

Minimax = __mini__mise the enemies __max__imum score

warped narwhal
#

The "we get at least X" is for us, not the enemy

obsidian mantle
#

we dont know if its 1000 or 10 on that branch we discarded it but he gets at least 500

#

so we dont care since its at least 500 which is worse than entire other branch

warped narwhal
#

Are we skipping the evaluation for the 1000 position?

obsidian mantle
obsidian mantle
#

because when we start calculating the right branch - we know that left branch had -3

#

and since this branch causes -500 or worse, we dont need to calculate how much worse

warped narwhal
obsidian mantle
#

left branch got us alpha -3, which is passed to the right branch as beta 3. and since 500>3 this entire branch gets pruned

#

(for negamax variant)

#

i dont know minimax i only tried negamax

obsidian mantle
formal quartz
#

ReallyInnocent man peeking into here from time to time, i have been really slacking with my chess bot, oops (well not like i ever considered making anything combative xD)

obsidian mantle
#

my bot vs stockfish 1300 elo thonk

#

(i lost)

#

ok i'll try give my bot 30 minutes and 10 seconds per turn and stockfish 1 minute lets see

#

actually, 30 seconds per turn

nocturne olive
#

I found a reproducible illegal move bug

obsidian mantle
hollow dagger
#

Ok question!

#

Where do i make an app for my phone for free? And i dont want app for people to use its just for personal use

clear sedge
rare bramble
#

though it does give you the output for all the dependencies you have...

clear sedge
hollow dagger
clear sedge
obsidian mantle
#

is there a quick command to shift array to the left by 1 in c++

clear sedge
#

it's certainly easier than going through apple's developer hellscape

clear sedge
obsidian mantle
#

yes make element n into n-1

clear sedge
#

oh, popping the first element

versed orchid
obsidian mantle
#

yeah like popping

clear sedge
obsidian mantle
#

i can probably use vector

hollow dagger
#

On the blue double dorito app?

shadow sinew
obsidian mantle
#

my tokens noo

clear sedge
#

if you use a raw pointer you can literally just p++

shadow sinew
#

You could also do a memcpy but I don't think it's much smaller.

versed orchid
shadow sinew
#

If you're on C++ you could use a std::deque

clear sedge
obsidian mantle
#

i want the array to remain the same size and access all elements

shadow sinew
#

Do you actually need to modify the array in place? If you do array+1 you get a pointer to an array that starts with element 1.

obsidian mantle
#

i need to shift it to the left and rewrite [0] element

#

or wait is it

#

uuh

#

doesnt matter left or right actually

#

so i have int * array[5]
i do array++,

it becomes array[5] shifted by 1 to the left?

#

wait im wrong it will be array of pointers?

clear sedge
obsidian mantle
#

i hate C for its *

#

no i need it to stay int[5]

versed orchid
clear sedge
shadow sinew
#

Do you know how often you need to shift? You could declare it oversized so you don't run out of space at the end.

obsidian mantle
#

it will be recursively updated

clear sedge
#

std::deque is also an option in this case

obsidian mantle
#

eventually [3,2,1,0] will turn into [30,29,28,27]

#

so its to the right then

versed orchid
obsidian mantle
#

no actually i want [0,1,2,3] into [27,28,29,30] so to the left

clear sedge
#

std::deque is probably the most efficient option in terms of tokens and in terms of performance

#

you can pop_front and pop_back, and emplace_front/emplace_back

#

same with push

#

ginkgoat for suggesting std::deque

versed orchid
#

do you need access to elements in the middle?

clear sedge
obsidian mantle
#

i will sum all the elements

versed orchid
clear sedge
rare bramble
#

i'm pretty sure that if you want to access Nth element in a deque it's a O(Nth) complexity

clear sedge
#

or, does std::deque supply an iterator?

obsidian mantle
#

thonk i guess its enough to start

clear sedge
#

either way

#

pop_front() and front() in a loop is probably more efficient since an iterator would want to not modify the deque

versed orchid
clear sedge
#

an iterator would be fine

#

only a naive iterator would fuck performance up

#

and std::deque supplies an iterator and a const_iterator

versed orchid
olive sable
clear sedge
#

btw i'm pretty sure you can do for(auto el : deque) and not hurt performance too much since integers are trivially copyable

#

token saving tips

rigid snow
versed orchid
#

:q!

clear sedge
#

:wq!

versed orchid
#

why writing?

clear sedge
#

because i want to fuck up a random config file >:3

shadow sinew
#
$killall vim```  ![thonk](https://cdn.discordapp.com/emojis/602047082064510986.webp?size=128 "thonk")
olive sable
#

i wonder why its confusing the size of the monitors

versed orchid
#

installing Applio to try RVC models @nocturne olive sent here few days ago

#

just curious

nocturne olive
#

Sily

versed orchid
#

double L

clear sedge
#

i have to figure out base64 decoding catdespair

#

wait this should be easy

versed orchid
#

the wiki page doesn't make my eyes bleed, so probably

shadow sinew
#

The only gnarly part of Base64 is the special handling at the end.

clear sedge
clear sedge
#

i did it

#

that was easy

#

nevermind i have a bug

#

bug killed

#

i am so proud of myself

#

i did that all by myself

versed orchid
#

programming:

  • make shit
  • get paid
  • add bugs
  • remove bugs
  • get paid again
    neuroWomp
clear sedge
#

you get paid?

versed orchid
#

I have work

clear sedge
#

i put myself through this torture out of sheer masochism

#

mostly because no one will hire me for some reason

versed orchid
#

this is what I can't understand

versed orchid
clear sedge
#

i am the crime

versed orchid
#

I think the employment in some smaller IT companies is too easy tho

#

at least in my country

clear sedge
#

god i wish

#

"send an email to hr and we'll call you back" is pretty much constantly my experience

versed orchid
#

well... are you a student now?

clear sedge
#

no

#

and i'm not willing to fork over thousands for a degree that might help me land a minimum wage job

versed orchid
#

tough

#

I getting my master degree for free

clear sedge
#

where and how

versed orchid
#

Russia

clear sedge
#

guess i'm moving to moscow

hoary drum
#

its gayballs time

rigid snow
hoary drum
#

GAAAAAAAAAAAAAAAAAAAY BAAAAAAAAAAAAAAALLS

#

also igor

hoary drum
#

igor

versed orchid
#

there is a large quota financed by government, but you compete for it on exam. Then it's free. But as I know the university costs less here than in many other places

velvet crestBOT
#

You have unlocked new role

obsidian mantle
rigid snow
versed orchid
#

lile around a million people

clear sedge
rigid snow
obsidian mantle
#

i am qualified industrial oil and gas automation middle level software engineer with $1k salary

tender river
rigid snow
#

also careful rule 3

versed orchid
rigid snow
#

keep in mind neuroDinkDonk

clear sedge
obsidian mantle
#

it might be good if you work remotely and get paid in $

#

(not happening in this decade)

versed orchid
#

Can we put down the political questions and opinions?

clear sedge
#

boring SMH

obsidian mantle
#

there are still bugs in my bot

rigid snow
#

buh s

obsidian mantle
#

i cant see them but i can feel them catdespair

versed orchid
clear sedge
#

the answer to "can i use a string_view for a stringstream" is either

  1. copy it
  2. use boost
versed orchid
#

I think it just differs from city to city and from university to university...

clear sedge
#

classic

#

i'm just gonna implement my own stream

nocturne olive
hexed grove
#

yall i need ideas for my window manager & desktop environment

nocturne olive
#

I have Cinnamon

#

It's cool

clear sedge
#

making a wm and de or choosing a wm and de?

hexed grove
nocturne olive
#

Ohh

clear sedge
#

sounds like a big task

hexed grove
#

i like dwm because its light!

nocturne olive
#

Well first decide on XOrg or Wayland

hexed grove
#

i dont like it because it imlements nothing

nocturne olive
#

If you pick Wayland you'll need to implement a compositor

hexed grove
#

also id like it to be hybrid

clear sedge
#

i think kde is the ideal de so i'd just mimic that

hexed grove
nocturne olive
#

Yeah so XOrg

clear sedge
hexed grove
nocturne olive
#

Sounds old

#

Anyway other than that it's kinda up to your preference

clear sedge
hexed grove
#

whatevrr

hexed grove
#

i cant do UX

#

i perish

#

i need some webdev to teach me

nocturne olive
#

Well I am no webdev

clear sedge
#

why there is no std::stringviewstream, i do not know, but it's time to extend stl catdespair

clear sedge
#

std::istringstream also copies the provided string btw so that's non-viable

#

can't even do stream operations on non-owned strings in peace

warped narwhal
#

what do you use a stream for that you can't do with an iterator?

olive sable
clear sedge
#

std::fstream doesn't provide an iterator SMH

manic jacinth
#

Stuff like this is why i avoid C++ for personal projects. I'd just open a FILE *ptr and do streaming-related stuff with it

#

But then i'd have to deal with ftell and friends, despair

clear sedge
#

tbf wanting a stream-like interface for a non-owned string is a very c-minded approach

manic jacinth
#

🙂‍↕️

clear sedge
#

in c++ you have to bite the bullet and copy the string for memory safety SMH

#

which is why i'm creating my own very unsafe way of doing things

manic jacinth
clear sedge
#

(i'm decoding base64 data)

dusty niche
#

tuff or nah

clear sedge
#

wait i've seen that before aware

olive stag
# hexed grove i need some webdev to teach me

look up Nielson Norman Group, they've got a lot of good user research information

unfortunately it's article-based and there's no real "getting started" structure... so you just gotta browse until you see things you don't know / find interesting

#

also Google's Material Design and Apple's Human Interface Guidelines are great for being more closely developer-useful

clear sedge
#

gee thanks cppreference

hexed grove
#

LIKE SO MUCH

#

you just appear with 8 tons of info randomly

#

i appreciate ittt

olive stag
#

i'm a developer but am so far removed from understanding any conversation in this channel, so I was stoked to jump on something easy for me lol

#

good luck on your UI/UX adventures, it's a long road

olive stag
#

most of my time has been in C# ASP.NET sites, MAUI mobile/desktop apps, with mild amounts of OpenShift K8s

#

have always wanted to work on more lower-level stuff but motivation outside of work is nonexistent

hexed grove
#

lmao

#

second sentence of wikipedia page

hexed grove
#

so thats how i know C

#

i hate OO languages

#

they make me want to perish

olive stag
#

I like them, but they're just what I've happened to use the most (and gotten paid for)

#

recently learning more about the struct-of-arrays vs array-of-structs thing has been interesting for me

clear sedge
#

i don't mind OOP that much

#

generally i keep things like inheritance to a minimum or only where it makes sense NeuroSip

hexed grove
#

usually the way i code is the same way i write

manic jacinth
hexed grove
#

i write and make it work

#

and then i fix it

#

its easier that way at least for me

clear sedge
#

my codebases are delicate pieces of art

hexed grove
#

i want to know more

#

-# 😭

olive stag
clear sedge
hexed grove
#

i cannot organize

olive stag
hexed grove
#

modulizing requires 8 years of time in my head

clear sedge
hexed grove
clear sedge
patent shard
#

actually impressive how much it's keeping the vocals out on the "longaudiosegment" one
this is apparently a track that they struggle with... interesting how much different the results are if you only give it 2 seconds to process versus the full 27 second segment
this is the BS Roformer Resurrection Inst model

clear sedge
manic jacinth
# hexed grove i cannot organize

In C or Lisp, i'd start sketching things out in the main function, then begin splitting it out to their own functions once i begin seeing patterns. Loops are the easiest to isolate.

olive stag
#

also flowcharts, draw it visually

manic jacinth
#

Then i'd try to get to a compile-test-loop as soon as possible.

clear sedge
#

my mind is just good at organising as i go, no whiteboard in sight

manic jacinth
olive stag
hexed grove
#

i dont have a drawing app installed

clear sedge
#

ms paint

olive stag
manic jacinth
#

Pen and paper. Then graphviz when it gets big

olive stag
#

slowing down to physical reality can legitimately help you reason through your line of thought

clear sedge
#

correct

olive stag
#

and the effort you need to spend on it also makes you critically think more accurately about it, so you don't "waste 30 seconds drawing this table if it truly won't work"

manic jacinth
#

Paper has been RAM for the human mind for the longest time

hexed grove
manic jacinth
#

Point

olive stag
clear sedge
#

pro tip: sometimes, when a project feels too cluttered up in your mind and you feel overwhelmed, you wanna take a break instead of continuing
continuing will make you compromise and make things "just work", leave it there, and then you get unmaintainable code that barely works

manic jacinth
hexed grove
olive stag