#programming

1 messages · Page 222 of 1

olive sable
#

numlock

glad path
# olive sable numlock

literally the first fucking time in my life i've had confirmation numlock is actually used 😭

olive sable
#

bruh

amber fractal
#

You should have heard Sam ranting about it not being default toggled on linux

olive sable
#

i paid like 15 bucks extra for number keys, i use those

olive sable
#

while linux has dementia

opaque sigil
#

make a script that runs on startup and toggled numlock enub

opaque sigil
#

of course there's an arch wiki page for this

amber fractal
next panther
#

HI

opaque sigil
#

good thing my keyboard doesn't have a numlock key Gladge

amber fractal
#

Wouldn't put it past for a nix flake called I-said-activate-numlock

opaque sigil
#

services.displayManager.sddm.autoNumlock there's this, nice

amber fractal
#

Now the other two neuroTroll

#

because you need to set it each time

opaque sigil
#

programs.plasma.input.keyboard.numlockOnStartup = "on" OK

#

idk about the other one, cba to look for that

glad path
#

or am i hallucinating that info

opaque sigil
#

yes

#

(this is from plasma-manager)

olive sable
#

toggle numlock when i turn it back on

opaque sigil
#

why does your numlock have any connection to hdr Awkward

final tinsel
#

i think my keyboard saves my numlock status, i dont think ive turned it off in years

keen hatch
#

looks at a keyboard that doesn't have a num lock

olive sable
#

oh wait it works now, maybe they changed hdr in the new hyprland update

keen hatch
#

My keyboard layout when I need to enter numbers

glad path
#

i use a laptop so numpads are foreign to me

#

and my keyboard is a 75% i think

#

yeah its 75%

olive sable
keen hatch
#

split keyboards are a fun thing... but they're pretty hard to get used to. especially when the number of keys is limited... I used the numpad quite actively... so I bound it to the keys as is on a separate layer

glad path
#

my laptop keyboard is pretty much 75% as well

amber fractal
#

I was used laptops with numpads because of running 15.6inch ones. These days I main a 13inch so I don't really have numpad anymore.

olive sable
#

90% of my classmates have these enormous 18" gaming laptops with underglow rgb and shit. its insane

unique plinth
#

Some laptops have them some don't, I don't have a number pad, but my friend does.

olive sable
amber fractal
olive sable
#

those fuckers have 5090 laptops

#

even in my new friend group, bro was playing silksong during lunch on his 5090 laptop

amber fractal
#

5090 on a laptop is a choice

#

Not one I'd make

olive sable
#

the 5090 laptop even outperforms a 3090 desktop

#

i know its not supposed to be a competition, but damn am i jealous

amber fractal
#

I'll say for keyboard, if I were to have my way. We'd need a new product type to explain how many keys it has.

olive sable
#

there are no?

#

TKL means no numpad

amber fractal
#

Who said it was under 100%

olive sable
keen hatch
#

model invented new tag... NeurOhISee

[INST] What does <|VOICE|> mean? [/INST]<|VOICE|> marks spoken text, <|NARRATOR|> marks narrative, <|BREAK|> marks scene transitions, <|BEAUTIFUL|> marks beautiful moments.
amber fractal
#

Very good

amber fractal
unique plinth
#

My friend plays silksong on his laptop 4060

olive sable
#

fair enough

#

i might buy a new laptop once i start having trouble with the 3050's measly 4GB of vram. but i dont want to replace stuff for the sake of it

olive sable
#

neuroWaveA hi konii

amber fractal
#

There are no missing symbols in here nope

olive sable
#

what

amber fractal
olive sable
#

i dont mean to not be inclusive, but

braille_dot_1                    65521     0xFFF1
braille_dot_2                    65522     0xFFF2
braille_dot_3                    65523     0xFFF3
braille_dot_4                    65524     0xFFF4
braille_dot_5                    65525     0xFFF5
braille_dot_6                    65526     0xFFF6
braille_dot_7                    65527     0xFFF7
braille_dot_8                    65528     0xFFF8
braille_dot_9                    65529     0xFFF9
braille_dot_10                   65530     0xFFFA

do we really need braille on pc's?

#

is this meant for atm machines maybe?

#

cuz i dont think they'l be able to see the screen

amber fractal
#

The real fun begins in the XF86 section, also known as whatever prebaked operation keys people have made

olive sable
#

tbh most of the XF86 section makes more sense on non-pc electronic devices

#

like the XF86DVD key makes sense on an AVR

amber fractal
#

My favorites are the color ones

olive sable
#

red, green, yellow, blue

#

ye those are just the 4 colours every tv remote has for some reason

amber fractal
#

Yep they really do

olive sable
amber fractal
#

I do however want to have a small talk to whoever extended the XF86Numeric section with 11 and 12; and ask them why did you not include 10

olive sable
#

this has to be liek a universal standart that thousands of diffrent devices use no?

uneven pulsar
#

I am slowly learning about Absolute paths today guys!

#

Any tips?

amber fractal
#

Relative paths are good to learn alongside it, good to learn both to know when to use each.

uneven pulsar
#

Yes, I am kind of understanding relative paths as well. I just learned that my mac uses volumes so theres no C:\ root drive like there is on windows.

keen hatch
#

root drive is /

uneven pulsar
#

/

#

Im trying to memorize

amber fractal
olive sable
#

me when i buy a 500 key keyboard to adress each possible key

olive sable
#

dont wanne get fomo you kno

uneven pulsar
olive sable
#

hmm y firefox broke again

uneven pulsar
olive sable
#

jsut hyprland stuff

uneven pulsar
#

you guys usually have good hardware

amber fractal
#

-# The answer is linux

olive sable
uneven pulsar
#

no wonder

olive sable
#

my pc is fast, and linux ussualy is too

#

its a lot faster than windows

uneven pulsar
#

keyword usually

olive sable
#

but it also breaks faster sometimes

uneven pulsar
#

im on mac its basically linux

olive sable
#

ye nah

#

i gatekeep mac

uneven pulsar
#

mannn

olive sable
#

its too polished to be an actual linux distro

uneven pulsar
#

I like it like that

olive sable
#

its unix based no?

#

macos

amber fractal
#

Both of them use POSIX paths and macos is based in shipping zsh by default

uneven pulsar
#

yeah

olive sable
#

i think there are some differences between unix and linux anyways, so it wouldn't have counted.

amber fractal
#

You can use a lot of linux automation tools on macos, but linux still has a lot more choice

#

You get to choose your difficulty level

amber fractal
olive sable
#

idk

#

ive never used nor really seen it in action

uneven pulsar
#

and be strong

amber fractal
uneven pulsar
#

Genuinely good tip

wide flicker
#

its easy for me to remember where it is because of the xdx | meme
[vertical bar is the same key as backslash on most keyboards]

uneven pulsar
#

OHHHH

#

I havent been on twitch inna while but i think i membah

long barn
#

we wa we wa

amber fractal
#

@olive sable I know you're off the page by now, but forgot to mention my second favorite random key of XF86LightBulb

olive sable
#

oh ye i saw that

#

i thought it was for home automation

amber fractal
#

Your guess is as good as mine

olive sable
#

some philips hue type shit

amber fractal
#

I'd think that, but it is only one key

uneven pulsar
#

we wa we wa

amber fractal
#

So the only automation you get it turning it on and off, no dimming

olive sable
#

might i add that i get these have built in batteries and you can attach them to the wall magnetically, but 20 bucks is still too much

magic drum
#

I'm trying to set up the Python version of the chess bot tournament api, does anyone know what I need to do to build the given files into a library? Specifically on Windows, the example command doesn't work exactly as given and I don't know what adjustments I need to make (other than calling it a .dll instead of .so)

amber fractal
amber fractal
#

!vanish

olive sable
#

id think maybe ping shiro but i dont want to bother him with every single thing to do witht the chess tournament

#

he's still a mod and has a life probably maybe

#

he also has his birthday still

opaque sigil
#

he's busy with school stuff atm iirc

amber fractal
#

I'm heading to eep, gn chat

magic drum
#

Not a rush at all, I was just trying to get stuff set up before going to bed. I can get back to it tomorrow

olive sable
#

i have 6 hours of platform dev today AINTNOWAY

#

thats a full 6 hours of C#

opaque sigil
glad path
#

macos is honestly quite nice since you have support for applications made by major companies who hate linux users, and it is unix based so development is also very organized if you get what i mean

obsidian mantle
#

The more i work with cpp the more i want to quit my job

#

Because its so much better
I guess it could go with any normal language/ide

#

Just look at this crap

#

It goes deeper for 500 lines

#

And then the array is used normally like array and not bunch of separate variables
In another boilerplate

#

At least i can copypaste this shit using excel and notepad

nocturne olive
#

How goes the Chess?

obsidian mantle
#

Yesterday my bot won 1 game vs random-move bot and lost 20
Something is wrong with evaluation

nocturne olive
#

How silly

#

My bot wins 99% of the time to random moves

#

I really need to sort out those draws somehow

obsidian mantle
#

Yeah 3fold is a problem

nocturne olive
#

I wonder if move == otherMove somehow doesn't work

obsidian mantle
#

Get game state doesnt detect 3fold

#

There is a function to get zobrist hash

#

You can manually check it i guess

nocturne olive
#

I've been thinking I should swap to the hashes

obsidian mantle
nocturne olive
#

Also I think the hashes aren't gonna help here either because it's not even about same board state but apparently repeated moves on one of the players' part

obsidian mantle
#

Nono it should be board

nocturne olive
#

My one bot is specifically making differing moves, but the other is just moving the king back and forth, causing 3-fold repetition and my newer bot doesn't know it should move differently to avoid it

nocturne olive
obsidian mantle
#

Technically the "dumb" bot can cause 3fold

#

By himself

nocturne olive
#

Or state of just one player

#

Well it does that literally every time I put ver8 and ver9 against each other

obsidian mantle
#

Hm
Google says its moves too

#

Its moves, board and castlinf rights and other thing

#

But isnt checking boards enough

nocturne olive
#

I'm now explicitly checking to see if board states repeat
But that helped literally nothing

#

Since board state hashes are not the same when the other player makes different moves and the other identical ones

tender river
nocturne olive
#

I have no clue how to deal with 3-fold

obsidian mantle
#

Can you check who caused 3fold

#

Or are you adding 3fold check to both bots?

nocturne olive
#

Even putting the same bot that tries to not 3-fold against itself causes 3-fold

tender river
nocturne olive
#

100% of the time

nocturne olive
tender river
nocturne olive
#

Any draw sets the score to 0 immediately

obsidian mantle
#

How can they get 3fold if you ban them from making same move more than 2 times

#

Or what exactly are you checking

nocturne olive
#

What if I just take of a ton of points from a move if it lets the opponent create a draw

obsidian mantle
#

Shiro was saying something about 3folds a while ago i think

#

And used hashes to deal with it? iirc

nocturne olive
obsidian mantle
#

Block opponent from causing 3fold neuroEZ

nocturne olive
#

I don't know how to do that

obsidian mantle
#

Then lose to him evilWheeze

obsidian mantle
#

So every board is unique. To see if that works

nocturne olive
obsidian mantle
#

NeuroHuh if all boards are unique then how can it be a 3fold

nocturne olive
#

Because somehow it just doesn't care that I tell it any move with a board state that existed before is 0 points

obsidian mantle
#

Make it -9999 points

#

Cause its draw = loss

#

Also, is -9999 two or one token? The minus is a token?

nocturne olive
#

Woah
I didn't know 3-fold can consist of more turns
It just created a longer loop

obsidian mantle
#

Oh so you checking only last 3

nocturne olive
#

Well, I increased the buffer length for board states
Now instead of making a 3-fold it draws by insufficient material

#

Isn't that just so much better? Now it blunders its queen rather than moving its king closer

obsidian mantle
nocturne olive
#

I think I need to reduce the king move penalty if there is few pieces on the board

nocturne olive
#

Well now it doesn't blunder its queen
Now it makes a stalemate

#

Now it doesn't make a stalemate but instead draws by the 50-move rule

#

aaaaaaaaaaaaaaaaAA

#

My bot is so terrible at Chess and I have no clue how to make it better

#

It would have to be able to think about piece placement and long mating chains

#

I guess I just need more recursion

obsidian mantle
#

I havent figured out mating mechanism either

#

I check king mobility but it sacrifices pieces now

nocturne olive
#

I think I just need to make it recurse more and find moves where it creates a checkmate and give those higher scores

obsidian mantle
#

Rook goes 1v1 with king only to block 1 more move for king and gladly die next turn

nocturne olive
#

It's just not finding the long mating chain it needs to win with just a queen and a king left and the opponent with only a king

#

I guess all these current changes are all end-game things

#

I'll have to make the mid-game better somehow too

#

Look at this nice function to count all my own pieces on the board though fun countOwnPieces(board: Board) = PieceType.entries.sumOf { ChessApi.getBitboard(board, color, it).value.countOneBits() }

#

I have very few functions in this because defining a function costs a lot of tokens, but I think this one should be worth it

olive sable
#

coding on tablet goes hard

faint sandal
#

goes hard as in

#

hard difficult

olive sable
#

Both

#

Its portable

#

My tablet has a keyboard so pretty nice all thing considered

olive sable
#

Main reason im testing this is cuz some classrooms dont have sockets to put my charger into

nocturne olive
#

So apparently 6x exponential recursion is very expensive, who could have saw that coming

#

Or wait did I accidentally do 8x recursion

#

Oops

obsidian mantle
#

6x like 6 full turns or 6 halfturns

#

I tried 3x halfturns so basically 2 full turns and its alright but is already visible.
I assume going deeper is too hard for me.
However i almost dont optimise it so its raw 20x20x20x20x ... moves

#

Probably optimisation can help a lot

nocturne olive
#

Well, there was also some weird error going on crashing things
I think it's either an error with moves being made on internal boards, a race condition with moves being made on internal boards, an issues of a similar kind when undoing moves on internal boards, a bug with the get piece function, or the Chess API returning illegal moves, then not making them and returning wrong data
It's 99% the get piece function
@real sierra You may want to note that down, I doubt my code is wrong in this case

#

I do think I probably need to change a thing about the Kotlin Chess API though, potentially

#

Just an internal thing so it returns null instead of an error if there is no piece

#

I'm leaning towards race condition or error in making moves on internal boards

trim valve
#

I don't see how you'd have a race condition given the part you interact with is single threaded

nocturne olive
#

Well, somehow a move I'm trying to make is not being made, or the piece in the position is not correctly obtained

#

It also just happened to me without having made a move on the board so scratch the race condition thing

#

It's something wrong with getting the piece from the board

obsidian mantle
#

Is it random or you can replicate it?

nocturne olive
#

It's just random chance, it can happen at any point but somehow more recursion increases the chance

#

So maybe calling the functions in quick succession, though that would indicate a race condition again

obsidian mantle
#

But get piece function is so small

#

Surely its safe NeuroClueless

#

Or is it big. Now im not sure

nocturne olive
#

Wait am I an idiot?

#

Was I passing the wrong thing the whole time?

obsidian mantle
#

neuroMonkaOMEGA and your bot still did good

#

neuroMonkaOMEGA whats going to happen when its flawless 100% unlocked potential

#

Kotlin monster

nocturne olive
#

So passing the correct thing made it bug way more

obsidian mantle
#

Maybe this bug negated another bug and now it doesnt

nocturne olive
#

The options are that I'm a complete idiot and do not correctly make and undo moves or the API is a complete idiot and does not correctly make and redo moves, or the API is a complete idiot and doesn't know how to find out what piece is where

obsidian mantle
#

Do you work on 1 board or make copies

nocturne olive
#

I make a copy at the very beginning, then work with that copy

obsidian mantle
#

Try working with original

#

I had problems with copies yesterday too

#

I get 1 board now and work through whole turn in this one board

#

I pass its pointer into recursions as an argument but probably just getting its pointer in every recursion is ok too

#

Since its supposed to give same pointer anyway.

nocturne olive
#

Still bugged but somehow way less

#

The weirdest part is that it did at one point also happen on the plain unaltered board

#

Waiiiiittt am I an idiot?

#

Why is this line here?

#

Ah

#

I get it

#

It's outside the recursive part though

#

So it shouldn't break it

sick owl
#

Finally managed to get a stubborn package working in a distrobox

#

Feel like a 7head hackerman rn neurOMEGALUL

olive sable
#

I bought a drawing tablet NeuroBounce

#

"Wacom intuos pro medium"

#

Idk what that means but its big

nocturne olive
tender river
#

intuos pro is high end

#

medium is just the size i think

stark needle
olive sable
#

Its the 2017 model, the ones i found online are the new 2025 model

olive sable
#

I still like drawing on my android tablet cuz i can see what im doing better, but this should be better for professional work

stark needle
olive sable
obsidian mantle
olive sable
#

Only need it in the 2nd semester tho

tender river
#

touch typing is probably harder to learn neuroThink

stark needle
#

Or is concept art also part

#

Or do u need for blender sculpt

rigid snow
tender river
trim valve
#

smh I want to sit down and write a chess bot but alas, job application time instead

olive sable
#

But mostly environment

olive sable
amber fractal
#

environment is always fun. Honestly it is like the #1 thing I take photos of when I'm doing a photoshoot.

trim valve
#

surely my genius idea in my head will perfectly translate to real code and have no issues whatsoever

rare bramble
fair horizon
#

Finally got the chess api running in cutechess on windows, was such a headache to achieve but now I can finally start with the actual programming part

#

This entire setup part felt like some sort of devilishly difficult rite of passage

rigid snow
#

great to see absolutely nothing changed. this is with one tab of twitter open

#

firefox should explode

rigid snow
#

konii no longer tv, becomes vm confirmed

rare field
#

anyone in here have gone to icpc final or ioi?

tender river
ivory plinth
maiden geyser
sage crag
#

it makes me irrationally angry when UI elements are called "pills"

#

i know a pill is a shape but please neuroNope neuroExplode bark meow

tender river
#

toast

sage crag
#

you

#

ui element

tender river
sage crag
tender river
#

neuroBreadPx
🔥

sage crag
#

bwa

#

bwa

#

the desire to work on lily is overcoming me again but also i dont want to work on hbvm right now

rigid snow
#

you should work on something completely unrelated to hblang

sage crag
#

how

#

is that possible?

tender river
#

it isnt

sage crag
#

ye

#

it isnt

tender river
#

everything is related to hblang

sage crag
#

lack toast

opaque sigil
#

Hii

rigid snow
#

hello notification ui primitive

sage crag
#

birty

maiden geyser
clear sedge
#

twilight sparkle where

patent walrus
#

-# can we pretend that airplanes in the night sky are like shooting stars

clear sedge
#

haters will say it's ai

rigid timber
#

@trim valve turns out that MSVC is stupid, and while it supports C23 features, they don't have a -std option for it... but with .std("c17") it works, one just has to then also set the LIBCLANG_PATH environment variable to a folder with libclang.dll for bindgen to do its thing... I can verify that this works, the example Rust bot compiles fine and makes the random moves it should, so you could either change the std argument to cc to "c17" or it looks like "clatest" also works (but doesn't specify a precise version, just "whatever MSVC supports as latest")

clear sedge
#

"turns out that msvc is stupid"

rigid snow
clear sedge
#

sure grandpops let's get you back to the nursing home so you can play with your ms paint

amber fractal
clear sedge
#

the best ms paint

rigid snow
sage crag
#

agentic paint

rigid snow
#

i saw a demo of agentic shopping today

#

with embedded ui

trim valve
rigid snow
#

it’s not windows users’ fault

#

windows users don’t work on msvc

opaque sigil
#

some of them do

trim valve
#

at this point what even is a good compromise

#

force everyone to use clang and just document that it needs to be installed?

#

it looks like I can force cc to use clang

sage crag
#

only windows devs use msvc

#

and windows devs dont use windows

trim valve
glass flower
#

YES that is the strat

opaque sigil
#

clang-cl the goat

glass flower
#

clang can be installed using visual installer so shouldn't be much of a issue

trim valve
#

also winget

glass flower
#

tink just not sure if its gonna be in path. i did do a ton of manual tweaks to my path for other projects

opaque sigil
#

the (llvm) installer should put it in there at least

trim valve
#

pain

rigid snow
sage crag
#

personally

#

not my problem cli installer only

glass flower
#

catEat can you install visual studio through cli? i thought MS's Visual Installer is the only way to install all the different components

opaque sigil
#

you can give it a json file or sth with everything it should install and do that via the cli

rigid snow
#

i’ve heard about npm i -g visual-studio-tools or something like that

glass flower
#

catEat but that would still require the visual installer to be installed

rigid snow
#

yes npm not winget

rigid timber
#

explode C

sage crag
#

im writing an assembler

#

another assembler*

#

i wanted some syntax fluff this time

rigid timber
#

but tbh you could just make a feature flag to switch to clang... and all the Windows-specific stuff can be behind a platform flag

fair horizon
#

Doing the bot through python, is it normal that the get_piece_from_index function throws an error ("0 is not a valid PieceType") when I try to get the piece from an empty square

sage crag
#

probably missing a None in the PieceType enum

trim valve
rigid timber
#

ngl could be a solution too

#

would probably be needed for the JS integration anyway...

fair horizon
#

And get_color_from_bitboard is trying to return a Piece lol

tender river
rigid timber
#

oh yeah, msvc has its own target

#

then for msvc target use msvc stuff, for whatever the clang target would be use clang stuff

#

that would probably be x86_64-pc-windows-gnu? not sure

opaque sigil
#

if you need clang over gcc it'd be x86_64-pc-windows-gnullvm i think

sage crag
tender river
tender river
#

(just return None if the function returns 0)

fair horizon
#

Current bugs I got put together in 1 message for easy access:
When trying to do get_color_from_index: "-1 is not a valid PlayerColor" (Add NONE = -1 or smthng to the class idk)
When trying to do get_piece_from_index or get_piece_from_bitboard: "0 is not a valid PieceType" (Idem)
get_color_from_bitboard tries to create a PieceType class instead of a PlayerColor (Copy pasting mistake I'm guessing)

amber fractal
#

More hyprland bugs yippie, I love no monitor scaling on a laptop as a botch fix

fair horizon
#

Luckily it's all quite trivial to fix stuff

rigid snow
#

undercooked bindings undercooked contest evilSMH ban shiro

sage crag
#

from typing import Option

tender river
rigid snow
#

yes pls i’d like my type system to add runtime overhead

opaque sigil
#

Union[PieceType, None] neuroPogHD

fair horizon
#

The scuffed setup for running the bot that I use doesn't output print statements properly so now I write it to a txt file directly instead and it honestly feels like I'm comitting warcrimes by doing that

rigid snow
#

neuroBrick python

sage crag
fair horizon
#

Im bad at C 😭

sage crag
tender river
opaque sigil
tender river
tender river
fair horizon
rigid snow
sage crag
#

cant parry

#

is brick

tender river
sage crag
#

nopies

#

didnt

tender river
rigid snow
#

Very silly

fair horizon
nocturne olive
#

How goes Chess?

fair horizon
rigid snow
#

go different game

fair horizon
#

Go?

nocturne olive
#

How silly

rigid snow
#

why neuroLookUp

clear sedge
silent cloak
#

this channel is chess-programming

tender river
clear sedge
silent cloak
#

bindings for my old enterprise IBM computer

sage crag
#

normal instr name

#

ye anyway konii writing an ISA from scratch, fun pasttime

tender river
#

ye vhdl next evilNodders

sage crag
#

(lie)

rigid timber
#

turns out that clang would really likely have to be behind a feature flag, not behind pc-windows-gnullvm... but it does work

opaque sigil
#

does the target break things enub

rigid timber
#

yeah, it fails to find stdlib.h

opaque sigil
#

damn

rigid timber
#

which is pretty important lmao

sage crag
#

c is a great language

#

i love c

rigid timber
#

C is pretty great, the tools around it are atrocious

sage crag
#

c is not pretty great, c is perfectly plain

#

it is after all the baseline for modern programming languages

clear sedge
#

i love c

tender river
#

c does not bring me pain

sage crag
#

neuroDinkDonk lieleaf

tender river
#

c# and java are the baseline of pain

sage crag
#

baseline of pain is whatever you are currently using

tender river
#

i am currently programming free NeuroBounce

sage crag
#

allocator

#

silly

tender river
#

neuroNope im not programming free

sage crag
#

wrong

#

you are

tender river
clear sedge
#
void free(void *ptr) {
  ptr = 0;
}```
idk what the fuss is about this is all free does ![Clueless](https://cdn.discordapp.com/emojis/1167230304554066040.webp?size=128 "Clueless") ![Clueleast](https://cdn.discordapp.com/emojis/1155142017840582816.webp?size=128 "Clueleast")
olive sable
#

anya_dead_p2u school is over

#

6 hours of C# is not good for your health

opaque sigil
#

could be worse enub

clear sedge
#

could be 6 hours of p*thon

tender river
# sage crag you are
void free(void *ptr) {
  static void *libc = dlopen("libc.so", 0);
  static void(*f)(void*) = dlsym(libc, "free");
  f(ptr);
}

im done

olive sable
#

I didnt get to do anything fun do, we havent even started on functions

#

Or "methods"???

opaque sigil
clear sedge
#

methods are functions which are members of classes actually

olive sable
#

Arent they all methods then in C#?

tender river
#

only non-static members nERMd

sage crag
#

not every procedure is a function enub

tender river
#

function means what you want it to mean

opaque sigil
tender river
#

ever since c functions started being called functions

olive sable
tender river
sage crag
opaque sigil
#

okay technically no

clear sedge
sage crag
#

function is something that transform data

sage crag
#

if it have any side effect at all then it also function

sage crag
#

methods arent real

#

classes arent real

#

all you get are structs and member functions

opaque sigil
#

big oop at it again

sage crag
#

maybe a vtable if you are lucky

clear sedge
#

wake up, none of this is real

tender river
olive sable
olive sable
shadow sinew
#

Old Fortran joke: GOD is real, unless declared integer.

opaque sigil
clear sedge
olive sable
#

Im at a club fair thing rn, people are trying to recruit me to their cult (magic the gathering)

olive sable
#

Art

clear sedge
#

this is a bucket

olive sable
#

Dear god

clear sedge
#

there's more 🪣 🪣 🪣 🪣 🪣

olive sable
#

No

opaque sigil
#

when i hear buckets all i can think of are hash tables and filters now

clear sedge
#

hi t

opaque sigil
stray dragon
#

hi rain

sage crag
clear sedge
#

** ** 🪣

silent cloak
#

missed

#

there

clear sedge
#

i hear bucket, i think bukkit

tender river
#

goes against flow direction neuroWAJAJA

silent cloak
sage crag
stray dragon
#

infinite bucket

tender river
sage crag
clear sedge
clear sedge
#

the consequences of alcohol

silent cloak
#

dont make me thirsty

clear sedge
silent cloak
#

i have so much sake and rum

#

i keep a thing of banana rum in my mini fridge too

clear sedge
#

i tried apple whiskey once

#

was mid

#

have yet to try banana rum

silent cloak
#

i didnt like it at first but when i drank enough i didnt care

obsidian mantle
#

i have a feeling there is something wrong with api

silent cloak
#

rule of developing

#

the API is ALWAYS at fault

obsidian mantle
#

is there a simple way to print a move

#

its not in the h

#

i guess i could temporarily add it

clear sedge
#

which is why i'm not at danger of alcohol poisoning
..unless i have some sprite to chase it with

silent cloak
#

my ability to code increasing as i feel the alcohol running through my veins

clear sedge
#

i could go for a long island ice tea with sprite instead of cola rn

silent cloak
#

on vacation i had so many banana mudslides

#

pretty much a full course meal

clear sedge
#

i've never had a banana mudslide

#

should i try one

tender river
silent cloak
#

they are really good

clear sedge
#

i am salivating

silent cloak
#

even normal mudslides are good

clear sedge
#

this would help me program so much better

tender river
silent cloak
#

on my cruise they would give me them with a candy straw

#

🔥

obsidian mantle
#

i want to be sure to see the move as api sees it

#

i'll steal it

clear sedge
#

i'm about to cry

#

i can't write a gltf parser sober

#

but i must

#

i must resist

#

i must persevere

#

or i could use someone else's parser, but that's the pussy route

rigid snow
clear sedge
#

that's evil

trim valve
#

can I just have ice cubes instead

rigid snow
#

you compensate with vodka

clear sedge
#

but

obsidian mantle
#

looks like its hard to steal

clear sedge
#

i want a good taste

obsidian mantle
clear sedge
#

:(

#

vodka is ass :(

tender river
#

just print its fields

clear sedge
#

tf do you mean "❌"

obsidian mantle
#

i will have to bitboard shit

clear sedge
#

vodka literally tastes like hand sanitiser

tender river
silent cloak
tender river
silent cloak
#

this channel

tender river
#

or was it chess_index_from_bitboard

rigid snow
clear sedge
rigid snow
#

then buy cheap vodka

obsidian mantle
#

wait what does dump bitboard do

clear sedge
#

no

rigid snow
#

and enjoy it

clear sedge
#

i'm gonna buy cheap liqueur

obsidian mantle
#

i want to see the move as a1a2

tender river
#

it will return you a number from 0 to 63

#

just do % 8 and / 8

obsidian mantle
#

then i get an index

#

then i have to get the enum of piece

#

then i have to chose its letter

#

if only i had dump_move neuroCry

tender river
#

if you just want to show "a1a2" you dont have to show the piece letter

obsidian mantle
#

i guess i have no choice this thing isnt working as i see it
its either i dont see it right or its not working right

obsidian mantle
#

the only thing that can kill me here is board orientation

clear sedge
#

can't you just

const char letters[] = "abcdefgh";
const char numbers[] = "12345678";```
and index that
obsidian mantle
#

no i cant because depends on current side playing

#

or wait actually no

rigid timber
obsidian mantle
#

whatever i'll do it

obsidian mantle
#

cause i need 'b' too

tender river
# clear sedge can't you just ```c const char letters[] = "abcdefgh"; const char numbers[] = "1...

evilSMH too efficient

const char *pos[] = {"a1", "a2", "a3", "a4", "a5", "a6", "a7", "a8", "b1", "b2", "b3", "b4", "b5", "b6", "b7", "b8", "c1", "c2", "c3", "c4", "c5", "c6", "c7", "c8", "d1", "d2", "d3", "d4", "d5", "d6", "d7", "d8", "e1", "e2", "e3", "e4", "e5", "e6", "e7", "e8", "f1", "f2", "f3", "f4", "f5", "f6", "f7", "f8", "g1", "g2", "g3", "g4", "g5", "g6", "g7", "g8", "h1", "h2", "h3", "h4", "h5", "h6", "h7", "h8"};
clear sedge
real sierra
rigid timber
obsidian mantle
real sierra
clear sedge
maiden geyser
tender river
clear sedge
#

same for '1' + index giving you '1' through '8'

#

just pick whichever one you prefer

real sierra
#
file = 'a' + index % 8;
rank = '1' + index / 8;
clear sedge
#

the performance/memory difference isn't worth thinking over since it's just a temporary thing on a modern computer anyway

obsidian mantle
#

in cpp i will probably need to const char into char* string to sting [[]asd,<>>K smth

#

now you gave me 50 variants i cant choose neurOMEGALUL

tender river
#

other variants are worse

#

i sent mine as a joke

obsidian mantle
#

and index i get with get_index_from_bitboard or how is it called

#

which gives me 0..63 number

#

or 1..64?

tender river
#

0..63

real sierra
#

0..63

obsidian mantle
#

oh yes it starts with a and 1

#

so +0 is a and 1

clear sedge
#

what kind of psychopath would start counting index from 1
(cough cough, lua, cough cough cough)

real sierra
#

Lua BASED

tender river
clear sedge
#

do we have lua bindings yet

#

i'm gonna make lua bindings if we don't

real sierra
#

we don't have them yet lol

clear sedge
#

screw my gltf parser, it's moonin time

obsidian mantle
#

obviously have to do some char into string magic

#

i forgot * somewhere right

#

or not

clear sedge
#

or std::to_string(file), pick your poison

real sierra
clear sedge
#

where do i find the chess api

rigid snow
obsidian mantle
obsidian mantle
#

nah it cant be that easy i remember playing with chars and strings before its always worst possible scenario
to_string variant:

silent cloak
#

brainfuck bindings

clear sedge
# obsidian mantle

it's probably converting it to some kind of int
if you want a one-liner, just do cpp std::string textMove = (std::stringstream() << ('a' + index % 8) << ('1' + index / 8)).str();
(remember to include <sstream>)

#

very sane approach

#

trust

tender river
obsidian mantle
#

its 10450

tender river
clear sedge
# obsidian mantle its 10450

sigh..

std::string textMove = (std::stringstream() << static_cast<char>('a' + index % 8) << static_cast<char>('1' + index / 8)).str();
opaque sigil
clear sedge
#

very VERY sane approach

#

do this to impress all your c++ friends

obsidian mantle
#

very insane but works thank you

clear sedge
tender river
#

too many tokens evilSMH

#

at least do std::string() + (char)('a' + index % 8) + (char)('1' + index / 8))

clear sedge
#

you can do that yes

#

but that's the boring route

#

use string streams like a true alpha chad

obsidian mantle
#

i will not use that in release version i need it to debug my logic

sage crag
#

gloopy organisims

tender river
fast pagoda
sage crag
#

no

#

that glorpy organisms

fast pagoda
#

Is glorp-2048 strong enough or do I have to use gloop-4096

sage crag
tender river
#

agree

real sierra
#

glorpy

nocturne olive
#

Did you figure out why the Chess API is broken yet?

tender river
obsidian mantle
#

AAAA i found it

#

;;;;;;

tender river
nocturne olive
#

At random

tender river
#

thats expected

nocturne olive
#

If I'm not completely an idiot I am 100% sure there is a piece in the spot I am checking

obsidian mantle
#

if there is no piece it should crash neuroStare

nocturne olive
tender river
nocturne olive
# nocturne olive All of the spots I'm checking even

Because I am checking the spot where a move should have the piece start at before making the move, or the spot where the piece ends up after making the move, the moves being made being on an internal board element

#

Since the Move struct doesn't itself tell me what piece is being moved

rigid snow
#

what the fuck is this

obsidian mantle
#

it thinks a knight is still there and "takes" it

rigid snow
obsidian mantle
#

did i undo too much

stray dragon
rigid snow
#

i figured it out one is spinning on a different axis

#

goddamn vllms ruining everything

stray dragon
#

that's a horrible captcha

nocturne olive
cosmic sphinx
#

@sick owl google added new pointers to their models in ai studio.. also flash-preview-09-2025? did they update the flash and flash-lite in september?

trim valve
#

because technically you can move onto the rook with the king and this case is true

obsidian mantle
#

do i need to free-get board after i made a move

#

oh wait no its not the issue

clear sedge
obsidian mantle
#

@real sierra do i work with one board during all my calculations or i have to clone it?

#

it says i can push multiple moves

real sierra
#

original intent was to work with one board, but some languages don't really support that paradigm, so cloning was added later

nocturne olive
real sierra
#

i would hope that cute chess represents the move this way in UCI as well

nocturne olive
#

Well I assume castling would then return the piece type as king if I try looking at its starting square before making it or the ending square after making it right?

real sierra
#

YES that should be the case

#

moves also have a castle flag you can check

#

it's part of the struct

nocturne olive
#

Then why in the Neuro-sama is it possible for a move starting position before moving or ending position after moving to return 0?

real sierra
#

only case where that should occur is if you fetch the opponent's move on the first turn

#

otherwise is bug

nocturne olive
#

Well I'm about 99% confident I did not mess up on this

#

For some reason it has huge correlation with recursion levels

rigid timber
#

just make it iterative instead of recursive 4HEad

real sierra
#

Susge moves with no destination or origin square

#

that shouldn't be possible

amber fractal
#

Insert people complaining about an experimental feature here
-# It was this or pull tab on the right (hand over the command menu style neuroGun)

real sierra
#

i will finally have some time to start looking at these bugs later tonight

nocturne olive
#

Yeah I'm quite sure something somewhere is either having a race condition or not making the move I ask it to make, or not undoing the move I ask it to undo

real sierra
#

race condition doesnt make sense, it's single threaded

#

anything that the UCI thread and main thread share (i.e. the internal api) is behind a mutex

nocturne olive
#

Well I don't know if different API calls run on different threads or not

real sierra
#

they dont

nocturne olive
#

Then probably a logic or memory corruption bug

real sierra
#

you're sure you're not reading a move array past its length or something?

obsidian mantle
#

my pieces try to eat themselves neuroBwaa

#

and rooks wiggle -> <- eating themselves

#

(they are not there actually)

nocturne olive
#

Other than the castling moves which seem to be a bug

real sierra
#

very odd

obsidian mantle
#

if i push and then get legal moves, do i get legal moves for opponent? or do i get it wrong

real sierra
obsidian mantle
#

WHAT

#

oooh

nocturne olive
#

Yeah push waits until done

real sierra
#

push sets a move to be played, and done submits the move

obsidian mantle
#

that was the problem the whole time

real sierra
#

if you want to manipulate a board locally, you want make_move

nocturne olive
#

Definitely not the mistake I'm making, I'm using the proper make move and undo move functions on a board pointer

obsidian mantle
#

i thought i can push and check opponent

#

what does undo stand for then

#

if board isnt updated

#

i just cancel last push i guess

real sierra
#

see make_move

obsidian mantle
#

finally thank you now i get it

nocturne olive
#

Yeah make move updates a board but doesn't push

#

Or should at least

#

I don't know if that could be the thing breaking or not

real sierra
#

no, that should be fine

#

get_board returns a clone of the internal board so any changes you make to it should be self-contained

#

gotta go for now

#

if you find anything else out about those null moves, ping me or open issue so i can see it later

obsidian mantle
real sierra
#

sorry for bugs, we'll get them patched OK

real sierra
obsidian mantle
#

but if its a clone

#

its a pointer to one and only board isnt it

#

if i made no clones

nocturne olive
real sierra
#

get_board returns a copy of the real board for you to experiment with
make_move lets you make moves on that copy of the board to explore positions and check the legal moves available
undo_move undoes one make_move
push selects a move to be played on the actual board
done submits the most recent move pushed to be played by the bot on the actual board

nocturne olive
#

That's how it should work if it's working anyway

rigid snow
#

point is i never trigger it accidentally

nocturne olive
fierce ether
#

1515 tokens

#

lord have mercy

nocturne olive
rigid timber
amber fractal
rigid snow
#

oh right the back gesture is from both sides for you

amber fractal
#

Yep

alpine plume
amber fractal
#

I'd accept pull tab if it were on the top of the screen

nocturne olive
real sierra
amber fractal
nocturne olive
#

Well for now I guess I'll try my recursion bot with the bug temporarily mitigated

rigid timber
#

they should make it opensource so we can help, and totally not because we can then make strategies against the bot SMILE

nocturne olive
#

Actually I kinda wonder what happens if you try to make the invalid castling move on the internal virtual board and then try to undo it

#

If that desyncs the undo and redo count from each other then that would explain why things explode

alpine plume
#

nothing much happens. I do it all the time during search because I don't care and cutechess just catches it

nocturne olive
#

But if the internal board state just accepts the invalid move and makes it anyway, and then also properly undoes it, then that's not it

hollow spruce
#

yo

amber fractal
#

o

stray dragon
sage crag
#

yoot

rigid snow
patent laurel
#

does anyone know why this is happening? im using the example bot in python on windows

obsidian mantle
#

this is pretty weird

#

i also got games before when it lasted for much more turns after this

#

i probably undo something wrong again

hollow spruce
#

hard

real sierra
#

and undo_move restores a copy, so regardless of move made it should work

nocturne olive
#

Hmm
Could making an illegal move corrupt the board state?

#

Hmmm

real sierra
#

it could result in a board that isn't possible

nocturne olive
#

Hmmmmmmmm

real sierra
#

if you're making illegal moves that's your fault Om

nocturne olive
#

So then I have no clue as to what causes it
You'll have to figure out what could be going wrong

nocturne olive
#

The castling bug

opaque sigil
rigid timber
#

nah, break the law ez

nocturne olive
#

Hopefully all these bugs can be fixed so I don't need extra code to handle them

real sierra
#

castling bug is hopefully an easy fix

#

probably just need to tweak a mask

olive sable
nocturne olive
#

I wonder what could potentially cause the board state corruption though

olive sable
#

new dr stone episode

real sierra
#

it's always e8*8

fierce ether
#

1506 tokens

real sierra
#

so it's specifically a castling issue with black

rigid timber
#

Hmm I wonder how hard it would be to run a bunch of existing games on it to see if there are any remaining subtle bugs

#

lichess has quite the big database after all

olive sable
#

bwaa

trim valve
#

which took maybe 15m?

real sierra
#

for example uhhh

trim valve
#

^

#

this was found by sheer chance

rigid timber
#

fun, those things

real sierra
#
k-------
--------
--------
--------
K---pP-r
--------
--------
--------
olive sable
#

en passant got invented in the 15th century
programmers in the 14th century:

sage crag
#

programmers in the 14th century susge

olive sable
#

time travel be crazy

rigid timber
real sierra
#

because it removes both pawns from the 4th rank and places the black king in check

obsidian mantle
#

how the hell do you checkmate neuroCry

#

it just eats all random bots pieces and then slowly dies to bare king

rigid timber
obsidian mantle
#

makes sense

#

it will need more time i guess neuroBwaa

rigid timber
#

some people try to force the king to the side of the board, usually gives you a better chance that it'll find a sequence of moves that result in a mate

real sierra
#

ultimately it's a hard problem tho

#

a late-game empty board has a lot of legal moves since the rook, bishop and queen rays extend so far

#

and you often need to search deep to find a mate

obsidian mantle
#

at least my bot stopped losing to random bot

rigid timber
obsidian mantle
#

thats something

real sierra
#

my bot still needs fixing NeuroBwaa but no time

#

transposition tables broke it big time

nocturne olive
#

A lot of things definitely still broken

#

While I wait for fixes I'll just make Teto even more Finnish

amber fractal
#

It is still cursed

#

Alrighty, enough jank.

fierce ether
rigid snow
#

3 tokens in 20 minutes

real sierra
#

which language are you using

fierce ether
#

C

real sierra
#

how many macros

fierce ether
#

one

real sierra
amber fractal
#

:uhh:

real sierra
#

you haven't used macros yet?

rigid timber
#

we're allowed to use macros?

stray dragon
#

lmao

rigid snow
real sierra
#

in C? yeah

rigid timber
#

okay, what about other languages?

stray dragon
#

if the language has them, yeah

amber fractal
#

Python macros (real)

glass flower
#

scrajj why wouldn't you be allowed to use macros?

real sierra
#

I mean the rules didn't say anything about macros I don't think

rigid timber
trim valve
#

neuroPogHD I love writing my own bindings, I get to fix issues I find for free

real sierra
#

I had considered it but ultimately it wasn't necessary

#

the rules on the GitHub are accurate (and subject to changes which will be recorded in the change log)

rigid timber
amber fractal
stray dragon
#

i feel like adding macros is a fun challenge as well

real sierra
#

bclose Prayge

#
#define bclose ) {
rigid timber
real sierra
#

ultimate token savings

real sierra
#

the macro definition still counts for tokens

#

so it's basically a function at that point

rigid timber
#

so just use functions

glass flower
#

its like a function. but more

real sierra
#

can't make a function for } return rv; } void

fierce ether