#programming
1 messages · Page 227 of 1
seek help
i am seeking help
LOL, yes I should totally do this for celeste.
seek more help
nah even game-engine dev's just use pre-existing parsers for a bunch of stuff.

i still have the urge to write c++
write it in scratch next pls
someday i hope we find the cure to c++
look i hate myself but not that much
damn, thats like 2/10 people now
IMPORTANT! READ THIS BEFORE PLAYING:
The project works best if used with turbowarp pointerlock:
https://experiments.turbowarp.org/pointerlock/1188911953
Or use Turbowarp without pointerlock:
https://turbowarp.org/1188911953
Project not downloading? Try this version with stamped triangles turned off:
https://turbowarp.org/1169375581
Gameplay Con...
i love it
a friend i knew once wrote a whole language in scratch
json parser in scratch
weak
pathetic
They are pathetic
alr i gtg for now @stark needle take ur meds and bye
i am beeg and strong and write my own parsers god damn it
do it now
no i need to draw femboys
no i have to make 5 props in blender for school
why is sam drawing femboys again
school? just write a json parser and submit that as your art project
Yes
if im inferring the category correctly, idk what tiktok is doing there
You learn world ending events from these sources
i get all my research from askjeeves
the category is "educational resources"
100%
or something like that
tiktok certainly is education
..on natural selection
once again idk how tiktok got there 
no no trust it makes perfect sense
they try to be one at least
and it's not like they don't have educational content on tiktok
i can't believe you guys have the toilet word blocked
people cannot be trusted with anything
server almost went into meltdown over brainrot words
it was spawning an unbelievable amount of arguments and tickets every day
that sounds terrifying
solution:
make better brainrot
call it "how to make a json parser"
get everyone to make a json parser
easy
make everyone make a chess bot in their own json-derived programming language
art? nah this is 3D1. the class where we have our teacher as a 3D scan and his full legal name is in the tenor gif finder on discord
[
{
"operator": "if",
"operand": "this.isTurn",
"action": [
{
// something something random turn shenanigans i can't be bothered writing a fake json schema for
}
]
}
]```
my art teacher's name was girls kissing, look her up on google
:koniibwaa:
sudo libinput list-devices | grep -A5 -i wacom
Device: Wacom Intuos Pro M Pen
Kernel: /dev/input/event22
Id: usb:056a:0357
Group: 7
Seat: seat0, default
Size: 224x148mm
--
Device: Wacom Intuos Pro M Pad
Kernel: /dev/input/event23
Id: usb:056a:0357
Group: 7
Seat: seat0, default
Capabilities: tablet-pad
--
Device: Wacom Intuos Pro M Finger
Kernel: /dev/input/event24
Id: usb:056a:0357
Group: 7
Seat: seat0, default
Size: 224x148mm
nah thats crazy
i have the "wacom Intuos Pro M Finger"
Ah yes my favorite device
me when i sell my finger as adspace
hyprland sees the oculus rift sensors as keyboards lmao
Keyboard at 55fb6e370cd0:
rift-sensor:-cv1-external-camer-1
rules: r "", m "", l "us", v "", o ""
active layout index: 0
active keymap: English (US)
capsLock: no
numLock: no
main: no
English keyboard 
(Yes this is what is set as default)
en passant issues and castling issues may be fixed
many rounds of fuzzing are not revealing anything
going to push changes
i now understand why. there is so much shit you have to do in napi

drawing is hard
im doing the shading and stuff later
mhm it looks good at least
I wouldn't even be mad if I ended up in something that looks decent
ive pressed ctrl+z for 95% of the lines i drew
Only?
Anyways, I'm going to try and do a new pfp because I saw a comment while pinging down the old room photo saying I was going to work on it.
And it has been 10ish months and still the same pfp
you also want femboy art of yourself?
If I could pay for it I wouldn't even mind doing so
they say it is a male dominated field, but im beginning to doubt that now
its all jsut femboys
All femboys, that does include yourself 
its a sacrefice im willing to make for the meme
the node bindings are a crime

take a look at your discord decoration real quick shiro
it was a gift 
it was also a gift 

and its a banger pfp
Where is charger

I found
Now I can pretend that a stylus will improve my art skills 
I am very surprised my stylus connect script works
For those who don't know what the script is even doing
man's running 24.11
This is the first time it has been booted in months
Having this screen on while sending input over ssh will never not be cursed
I should grab a keyboard so I'm not using the laptop one
The system running krita is on unstable 
every femboy says that 
Do Board.in_check and Board.in_checkmate refer to the current turn’s player being in check(mate)? The other player? Some other criteria? The docs just say “its player” and I’m not sure what that means
they return this status for whichever player has the move on the given board
i.e. if it is white-to-move on the board, it will return the check or checkmate status for white
it's impossible for both players to be in check at the same time
the other day i saw some woman compiling something in the wild and my first impluse was to recommend iterm2 for some reason
a few days ago I also saw some guy create an ad banner in illustrator then animate it and export it and proceed to write some javascript to animate the ad


For some reason when I run my chess bot in cutechess, instead of calculating in the background and allowing time to tick down, it's causing the whole application to lock up while it's searching and the timer doesn't go down at all (in fact somehow it's causing the timer to go up. Both players started with 5 min and by the time the game finished they each had almost 35 min
). Is there something I need to make sure I'm not doing to avoid interfering with cutechess?
Not sure why that was a reply

sorry

i’m going back to sleep
good night
good night
good night lol




yep
use it
not blur i mean like stroke smoothing
idk where that is in krita
https://docs.krita.org/en/reference_manual/tools/freehand_brush.html shoudl be in the tool options
the bingo box will finally be filled
I'm not entirely sure but this might be related to the timing rules you're playing. iirc it defaults to 5m/40 moves
I think I got it figured out (though I'm still not entirely sure why it adds time to the clock sometimes)
if I understand correctly after 40 moves that timing mode adds 5 minutes
Oh, I see. I thought the 40 moves meant... I actually don't know what I thought it meant lol, it obviously wasn't a limit on the game length
I kinda assumed it was a limit but then that fell apart when i was in games with like 400 turns
want easter egg
4
5
1
ye
1403035125347778683
Awkward
true


promote pawn to knight
place knights on a1 c1 a5
move a1 knight to b3

both rank and file are specified in that case (which is to be expected
)
@stark needle
it just be like that
i spent liek 6 hours on this 
why did you spend 6 hours drawing a neon purple femboy
Omg its lilac
The docs for other langs are certainly a bit confusing on that one, so I tried to clarfiy in the KT version
bingo!!!
libac
the Easter egg is that one of the variables in chessapi.c uses camel case
just another reason that long algebraic format is superior
only for computer interchange 
noper better for human interchange too 
my brain is low power and that sort of compression is too difficult
I would rather use more bandwidth to communicate moves
brain needs power for reading 
less reading more looking at the board
oh
shiro java dev
Is there anything special to get chess_get_time_millis() to work? I set up a timed game with cutechess but I still always get 0 from that..
maybe crlf issues? 
or tab/space mismatch
idk it just happens when I switch between branches sometimes
so wouldn't be surprised if it was a bit of both
https://youtu.be/tNsDH9pYC_E
VR being helpful to techno producers wasn't something on my 2025 bingo card
Get the drums from this episode here: https://www.patreon.com/posts/fine-day-anthem-139844729?utm_medium=clipboard_copy&utm_source=copyLink&utm_campaign=postshare_creator&utm_content=join_link
00:00 - Intro
00:26 - How to Rumble
05:08 - Full Drum-Loop
07:44 - Rimshot Synthesis
10:28 - Quick Sub Tutorial
12:45 - 2 more loops
13:25 - Outtro
why are we posting vr in programming 
# music-production real
wow
how do you even do this thing
i'm going to crash out why is formatting in discord miserable
this will do
chat i am so cooked
i feel like
anything i'm preparing for isnt enough for the interview
there's a gazillion classic questions that could arise
good luck lilac you can do it 
i can do it 
job application 
Well... i thought this channel allowed any form of tech stuff
you're fine
it's just that this demonstrates a profound lack of a dedicated music production channel

Yeah
#music-prod when 

it's so many questions tho that are common😭😭😭 and this is not even factoring in the technical questions
shadow heeeeeelp i just spent like 3 hours writing a single cover letter 
shouldn't be? it works successfully for me
(and i know it will just be met with "unfortunately," like all the others
)
actually I've only tried chess_get_elapsed_time_millis()
My bot looks more or less like this. For some reason chess_get_time_millis() returns 0.
int main() {
for (;;) {
Board *board = chess_get_board();
while (chess_get_time_millis() > (int)chess_get_elapsed_time_millis() - 100)
{
compute();
}
chess_push(get_best_move());
cleanup(board);
chess_done();
}
}
it's for sure a timed game?
chat do i need to actually come up with novel original answers for everything in a frigging interview i can't with all of this
UCI should pass go wtime ... btime ...
Basic new game with 20 sec per move + 2000ms margin

strange
I wonder if any of the types are inconsistent between platforms
I don't believe any of the time-related code has changed
Let me check again..
it's not a super complicated function so
I'm not sure where it could be failing
it returns a uint64_t, I see you're casting to an int in your code
I don't suppose that would cause issues
Wait, it should be +100..
Yeah tried printing the values. I'm still getting chess_get_time_millis()==0.. This is my cutechess game setting.
Is there a way to display the exact UCI commands passed in cutechess?
guess which one it is
That only shows printfs from my bot. Not commands like go wtime ...
It surely is Flip Board
Yeah I've set that. Aren't you supposed to do that?
weird
In hourglass mode it sends the available time, but not in time per move mode..
It sends a go movetime 20000 command instead..
Shiro's API doesn't catch that movetime?
Seems to only handle wtime/btime
https://github.com/shiro-nya/2025-chess-bot-tournament/blob/main/src/c/chessapi.c#L790
yeah
so I'm not sure if I was using an outdated version of the UCI spec when I wrote the chess api
but depending on settings, cutechess sends a number of commands that were not part of my reference spec
as such, things like movestogo and movetime aren't supported
I haven't been able to add them since I lack the relevant documentation
..but wasn't the plan to run the tournament in cutechess? 
cutechess has modes that use btime and wtime
in particular, the tournament settings I plan to use, use btime and wtime
pretty sure that would be with hourglass, not time per move
So we're playing hourglass mode? My plan was to have my bot use up all available time each turn..
official tournament format will be 1 minute per side for the entire game, no increment
"how the hell do I know if I should stop searching now"
1 minute in total?
I thought it was per turn.
That's enough time to hack Shiro's computer smh
Might be a good idea to mention that in the FAQ..
1 minute per turn, calculate the move and mine some bitcoin on the side
will add to FAQ
it used to be on the README, but i think it vanished after a rewrite
chat random question off topic (sorry to interrupt), but if anyone knows feel free to let me know
how do i exactly get started in hardware reverse engineering? i.e., i have a basic idea, but how do i exactly go about it (i can read the circuit and probably model it too in an fpga if needed, build a shitty oscilloscope/logic analyzer or buy one if needed, reverse engineer software to some extent, but how do i exactly get the machine to let me dump the flash via jtag or sniffing the bus). basically, what i want are some sort of resources anyone can point me to in the right direction so that i can read and figure out myself
yes neurobot we know its a long text
we draw femboys here what makes you think we know shit about reversing
More like open up your opps source code and spam tokens so that when Shiro rechecks them they are out of range
i mean you guys program so where the hell else do i ask
because there are very limited resources on this on the internet

best stuff there is, is a blog run by one guy and a pdf from pre 2010 about hacking the xbox dedicated to aaron swartz
400h long tournament
because apparently hardware hacking is only done by companies now to get cheaper prices on cpus
FAQ updated
Just run games in parallel. 
If I don't have to use 700 tokens for NN parameters, I'll make sure to add something stupid to my bot
so much to learn so little time and too much other coursework to do 
then it will need 1m per turn indeed
processor 
i mean aren’t bots supposed to be singlethreaded
anyways thank you for your time chat i'll try and ask this question again later
my bad i read wrong
i read "not singlethreaded" my fault gang
Why do the bots go so much faster when NN bots are running at the same time 
i work with guys who do hardware reverse engineering but i myself have no idea how they do it
wait are you all programming in python lol
since when have they been at it anyways
Nah, some are doing correct lanuages
i mean, probably measure resistors and all parts, look them up by signatures or smth
i fucking hate python
I should be doing C or C++ for this project but I'm still in prototyping stagr
probably at least 10 years or engineering
My mind is more the enemy than the actual code I write
Skill issue. Python doesn’t hate you, it just exposes your logic errors faster than C ever will.
that much i can pull off on my own but the real problem starts when they encrypt the data lines so that sniffing them is pointless or straight up add hardware that doesnt allow reading the flash without being the cpu itself
which is why the xbox 360 kamikaze attack had to be invented
(whoever did that one was a madlad, my cousin enjoyed hundreds of games on his 360 for free because of that hack)
pretend you are cpu
(i am clueless)

recently i think they did the same one for the switch oled too
you have to grind two layers of the motherboard to get to a trace
oh that’s common
*correction, a flex cable
because it’s definitely easier to reverse a circuit board that an ic
true
this one is mildly harder because of the more fragile nature of the flex cable you have to get to
Good: the morning
morbing
I was 3 seconds away from summoning jester for identity theft and then i realized you are jester...
Anyway I've mostly run out of ways to be funny and do the summoning ritual for #1337733692709146674 so just stand in the circle please
Honestly i have no idea what's happening in there but it sounds like help would be greatly appreciated
Neurobot really is just the hardware channel huh
How much time do the chessbots get in total?
1 min, we playing bullet chess
Ah ok
The chess tourmant is the #1 reason NN progress is getting made at all
It is doing a lot better than it was before it started, I am actually starting to formulate ideas
Instead of shooting in the dark that is
If you shoot in the dark enough the dark will eventually get killed
That is a great quote, I'm taking that for my own usage
chess tuff asl 🔥 💯
I am nearly at the point where I can actually start drafting code to the plan
just a small roadblock remains
in 3D1 class in my first week the only thing i really learned is that non-manifold edges exist and they're bad for some reason. so now i need to change the way i design stuff
:neuroNOTED:
I wanna say thank you to vedal for inspiring me to code.
Today, I got verified on Nexus Mods and became a Verified Mod Author :D
https://next.nexusmods.com/profile/SlavkyDev
Checking out the mods and I see your doing what should have been done in the base game

godspeed
basically theres a bug that if u have multiple monitors, the game doesnt lock/focus ur mouse properly, and if u move ur mouse a bit, u can scroll whatever is happening on your other monitors, u cant interact (like click or something) but u could scroll, and it was insanely annoying, and after 10 years of no fix, i just made it myself
Don't tell the content mod authors this, but features that should have already existed in the game are some of my favorite mod types.
i mean, sure its a proprietary engine, but surely they had enough budget to make the focus work.
the gaming industry is just such a shithole
as a gamedev i salute the mod makers, but im deeply embarrassed that those mods even need to exist
a dollar a day
is this what elvyn's cpu has been cooking 
is it making more than it costs in power 
i dont think so
ye that system probably costs more to run than $2 a day
rough ballpark of 420W for the entire system, 0.42 kW x €0.35/kWh = €0.147 per hour, x 24 hours = €3.53 per day
i've seen some company try to sell bitcoin asics as a heater, was expensive i think
i mean packaged in a heater form factor
wsp
this is just straight up not worth it
i mean, if you can afford it, its probably not too inefficient compared to a singular heating unit
but compared to a central heating system it probably isnt great
yeah just run it for a couple years and youll definitely get your cash back trust
100% of consumed power is converted to heat
yep
the problem is just the initial cost
ye
i wasn't talking about cost and profitability lmao
i don't think those who have central heating use electric heaters in the first place
i was gonna talk about how apparently the threadripper could make more than a gpu?
cost of gas per unit of energy is significantly lower than electricity
so its more efficient in terms of electricity, less efficient in terms of price
there was that one where your profits scaled with hard drive space
cuz a central heating system loses energy through the pipes and stuff
chia i think?
pentium 2 with 8 petabytes of storage 
@umbral thorn try openssl stuff
and check how much does the SHA ISA actually make per second

im damn well interested
you can look which chain and which mining algo was chosen in nicehash somewhere
if you're curious
the device based calculator on nicehash might be not accurate at all ig
the only way to tell is to use the hashrate calculator ones, check how many hashes on specific algo the thing can run and compare lol
is it somewhere online or what? the software benches all sorts of algos and chooses the most profitable one
like actually benches on your system
Chia coin, also known as XCH, is a cryptocurrency created by Chia Network, which uses a unique consensus mechanism called proof of space and time to validate transactions. This method allows users to allocate unused storage space on their computers to earn XCH tokens, making it more energy-efficient compared to traditional cryptocurrencies like Bitcoin.
alternatively you can try mining for like few minutes and check the result 
not sure if elvyn wants to though
that's basically what their bench does
she has the threadripper
i remember it taking forever
lmao same
oh yeah, that lovely thing that trashes hard drives for no good reason and caused storage prices to go up...
and now used drives sold as "new" with thousands of hours of actual use... lovely thing, that
pfftt
shush me tweakin bios
She going for that maximally optimal overclock
oh ok
wtf are you doing 😭
could i ask, how do i add the python example bot to cutechess? [cli or ui im not picky at this point]
(i have the libchess file and just starting the bot with py seems to work)
shiro is temporarily dead so i'll answer
are you on linux or windows?
windows
You create a batch script that runs the python file
i think there was an easier option
and that i feed as the bot command to cutechess?
set the Command field to "C:\Python311\python.exe" "C:\User\user\code\bot.py" (example)

thats it hopefully 
yeah 180W my ass
idk if its either that your NH-U14S is absolutely busted
or you did something on the bios that made it run cooler even with that power draw
did you do something to the voltage settings 
don't look this up on random websites, get it from Noctua's compatibility list
thanks, could have sworn i have tried that already (since i seen shiros message, kinda embarrassing)
tho the bot still gets stuck at "isready" so i guess i haven't managed to make pthread work full, oh well back to trying more
gonna bother yall later again, maybe 
me try 420W 

RIP THREADRIPPER
how are there more issues with python which binds directly to native code than i have with the jankiest 700 lines of c i've ever written wrapper for node
i should upload them
after i figure out what and where to eat
Can't rent dead hardware
ugh
Okay, which part of this is helpful
Nah, let me grab a better crop
maybe there is an image which is like press here to claim
for me 5955wx + 5090 + 4070 + 4060 + 512gb ram consumes 2 kW at full load
Which part of this email is helpful advice discord?
mhm
Idle
nah its more my lack of knowledge of coding outside of pascal xD
and the issue that threads.h does not exist under windows 
but it does 
Apparently not all systems for some reason
idk vs 2022 tools have it
Shiro themselves were complaining about it
It wouldn't surprise me if some people were running vs 2019
vs 2019 is not that old yeah
i mean the sdk that ships with it
whatever semantics
it does with the correct clang
i swear this spec can't decide if it wants integer enums or string enums
also the major releases being years but them not releasing annually is confusing
2022 is the latest 
it's just that nobody here knows how to get the correct SDK apparently...
tried around and couldn't get it to work, at least it worked with the pthreads branch and some modification
I misinterpreted this as idk which year's version VS 2022 of the tools contain threads.h
It still works to some degree
3.9GHz 
all core 

@true hemlock it isn't dead yet
please tell, at this point in almost more interested in getting this to work then the bot itself
I'll be home in 40 minutes, I can check then
thanks, no rush
but also doesn’t clang on windows still depend on headers in the win sdk which is part of vs build tools
possibly, I have VS build tools for unrelated reasons so that may have helped
idk what did she tweak on the bios to get lower temps but higher tdp lmao
i mean building with clang, the sdk headers don’t ship with clang i don’t think
forgive my stupid ass but this?
Iunno, I use the clang that's part of the SDK, didn't get clang separately at all
to get more oc headroom apparently but idk how she does it
the uhhh c/c++ build tools i think are separate from the ide
my current power usage (fine tuning)
or part of the build tools... whatever, part of that entire C/C++ thing
oh do they ship with it
its worth a try
ye that’s it i think
I damn wish I could tweak my bios just so I can slightly emulate this on my laptop
16 core... smol 
chat i came to the conclusion to try to wing the friggin interview instead of overly rehearsing and preparing
tmrw is death day
Best of luck 
i have interview with a head of r&d at some company
*director of r&d

it will likely be more technical focused, asking about experience and stuff
gl
Well, it depends on what you're using it for... sometimes you need single-core performance, not the number of cores.
show interest in position and try to relate your past experience to it
i came to the conclusion that they know i'm junior so they wont expect perfect answers
then why threadripper 
OOOOOOOOOOOOOOOOOOOOOOOOOOOOOO

128 pcie lines

good job elvyn please do not explode your pc
yeah i guess since it's only 40min
I think I only have 32 unused
@crude saffron

me when i :() { : | : & }; :
i would like to thank vedal for the "it's probably fine" mentality
wtf...
Are we still in the 80s in temps?
huh the 3990x has become quite cheap
they might ask regular interview questions still just remember its ok if you arent sure, just try to answer to the best of your abilities, interview is basically a vibe check
💀 wtf arent threadrippers like 10k$ or smth
I get a stable ~4.6 GHz on all cores under load for a long time (water cooling)
Depends on how new they are
the new ones are 
they can charge whatever tf they want now unfortunately 
i got her 3990x with trx40 mobo and 256gb ddr4 for around 1.3k usd
What are you "full loading" that with
damn that's a nice deal
Looks like cinabench
much compute. regular compute 10x
one google chrome tab
cpu?? definitely firefox

fake. process suspended
I usually don't either, but when it takes up half of my 64 GB and kills my other stuff I tend to notice that
what do you have to do to make it take up 32gb
that's what I'd like to know too

bw
photoshopped
generated by gemini
i could give you ssh access to my computor and you'd still find a way to call it fake


yes pls gib ssh access where send pubky
what running 
I need to build it .. ) 2950x, 128gb ram
❌

can't be chrome, it'd be 256/256 if it were
the answer is 1 (one)
holy it actually works
well not really im getting some syntax errors from inside threads.h while making the file (with cl yeah?) but still
yes i’m good at maths like that
could yall stop being so rich? 
Nope, they won't
make sure to compile with /std:c17 or some other version not /std:c++20 i think it’s the default
i ran into that too the cpp compiler no likey threads.h
why your memory so slow? Is this a bug or is it really slow?
forgot to turn on xmp?
oh yeah that was it xD it actually works
thanks so much 
now i can get started at testing my interface (still optimistic)
anyone else gets weird bishop-pawn trades?
when your bishop takes pawn and dies without visible profit
(i cant beat my bot on my own maybe its some 5head from him that i dont see)
How did this turn into a chess-bot channel?
or /std:clatest if you actually want all the parts of C23 that it supports
yeah
but they’re compiling a shared lib for bindings i think so doesn’t matter thaaat much
brrr goes brrr
only had a quick issues with having the wrong vs command prompt open (x86 instead of x64) but for now it seems to work, wonderful
msvc toolchain 
@real sierra found a bug in the python api. the get_color functions return None if the board value is 0 or less making it return None when the color of a space is white
yeah, probably true
but y'know, for completeness' sake
shiro
At least it seems like an easy fix of just doing >= instead of >
shiro says fixed go pull 
assuming that's even implementd it should yes
+1.00000000000000004 
hold up
is that bug with false moves after +2 recursion fixed?
i havent seen it being discussed since yesterday
today morning i pulled and i felt like its fixed but im not sure now
should be if I read things correctly
Someone notify me when the recursion stuff fix happens, whoever was the one that found the real version that bug
it should be fixed as ginkgo just said
and i think this morning i thought something that made me think it was fixed (i forgot what exactly)
Well time to pull and see
Well it bugs way less
Still somehow 3x bugged though
Oh wait I'm on depth 2
ye my bot gets 3 fold against itself even though i put -99999999 points on 3fold move
I need to be on depth 3
when recursion ends on your turn, it can get "i took a piece" and there was no response by opponent which shifts it wrongly in your favour
Each time it prints this it means a piece was not where it was 100% supposed to be
It's spending all of its CPU time printing bugged
oh true
While nice in theory
This is giving me nefarious vibes
Like if I wanted to start slipping ads into the platform or influencing people this is one way I'd go about doing so
reminds me of letta
oooh actually. about me getting 3folds
3folds are less unpleasant than mate by opponent so it makes sense that my bot does it
so its not bad at all
So it gets a draw by 3-fold if the opponent would otherwise mate?
i think so
So there is a logic behind it at least
nah im wrong
the winning bot just caused it, and he was supposed to know it will be a draw. but he was winning a lot, just had to move pawns or do something else
i'll try to check if 3fold check from api is wrong.
here i have 100% situation where my bots are making 3fold. last 3 moves repeat. so i will take hash of last 3 moves and check it myself
yeah. chess_in_draw does not detect 3fold.
checking last 6 boards manually removed 3fold when both sides were jiggling a piece
and this doesnt work because bot doesnt know if hes losing or not and treats draw as a bad move
however the check for draw happens after check for mate so it might still work
that's strange if it doesn't, it should
it should it just doesnt happen i guess
losing side usually doesnt have opportunity to chose a lot of moves in those situations
so winning bot sees 3fold and avoids it, and losing bot cant do shit about it
definitely file that as a bug if you can get some examples where it doesn't work
I'd create an issue on the GitHub repo
ideally with steps how to reproduce it, for this it'd probably be a board state where it fails to detect the 3fold repetition?
my bot is 100% logical with 0 random (unless the api gives legal moves in random order which doesnt look like being a thing). so i can add and remove check and see if situation changes
so here i have this thing
if i remove it my bot 3folds agains himself from the winning side
if it stays it doesnt 3fold and loses later
let me confirm
actually, looking at the code... it just goes the previous 3 boards and checks if they're identical... but shouldn't that be 6 boards and check if every other board is identical?
bc every board is a halfmove
its 6 boards
is it? I must be misreading the code then
are you in my walls
where do you see it 3
wait no, I'm stupid
I'm looking at the API, not your code 
oh
it also checks last 3 boards and thats it?
also I'm stupid, it's not 6 moves 
no, I just can't read
and can't brain properly either, as it turns out
]
3-fold repetition is just 3 identical board states at any point in the past, not "last 3 moves were the same"
which it apparently does... if not then something is borked
with check - 3fold (not actually a winning side, i got confused with other situation). so it ends on black queen doing it.
1 sec will recreate with check
HUH. it also changes the pawn
looking at the code, it might accidentally not be counting one of the repetitions...? bc it counts only duplicate boards, but the condition is >= 3, but you'd only have 2 duplicates if you don't count the first one...
so here it does not do the same but situation is a bit different (i guess its because of it seeing 3fold in several moves and moving pawn or smth)
i'll remove recursion so its plain
shiro fix attempted

so this is without recurion but it starts acting different earlier too. idk why
the other game 3folds too but on turn 68 (i guess when last 6 boards are not enough)
preceding
nah it checks the full board history, I misunderstood how it works at the start
ye the kings are dancing around, the one king suddenly goes on the right and then returns after several turns.
the turns which will cause 3fold are forgotten so he does it
huuh
I think this should fix it, but I don't know if I'm missing something or not...
diff --git a/src/c/chessapi.c b/src/c/chessapi.c
--- a/src/c/chessapi.c (revision 889fb91140d67b121ad3365b8f43c07d417f55e1)
+++ b/src/c/chessapi.c (date 1759089855386)
@@ -1766,7 +1766,7 @@
if (board_equals(boards[i], cur_board)) {
counts[i]++;
hit = true;
- if (counts[i] >= 3) {
+ if (counts[i] >= 2) {
found = true;
}
break;

forwarding
initializing occurences to 1 for each board instead?
ban evasion 

ah, yeah, initialized to 1
@obsidian mantle pull the latest chess API, it has a fix

also I really like that
if (!found) return false;
return true;
at the end, instead of just return found;
oh my god it's horrendous i love it
tbf if found is non-zero that's one of the ways ever to make it either 0 or 1
you have to look at it as a guard statement and a return at the end
it's a boolean...
you can just... return the boolean...
3am code syndrome
y'all actually believe it's stupid
personally i dont think its stupid
its useful for early returns or code that intends to change in the future

"i might want an early return in the future so i'm gonna use a bajillion more keywords than necessary"
big brain
uhh ye?

a bajillion more being 2 returns and 1 if
wait
instead of one return
are you two being fr
I don't think I want to argue this one
yupp 
it's more readable often yes
why would an early return mean you need to make the later one overcomplicated? its not like an early return ruins the control path
makes more sense mentally
how is "return found" not readable
i dont know about readable, but i prefer indicating my intention with it 
i am amazed
readable as in easier to comprehend
i dont see a reason to be amazed that people have style preferences 
this is just
true, but in c the only canonical representation of bool is 1 or 0, additionally 
i thought you were ragebaiting at first
i have far more effective ways of doing such a thing 
does it have a limit? it 3folded on 139th turn with same hash being in last 4 turns
real ones use a full uint8_t instead 

just dont specify and let the compiler deal with it
its not my problem, its the compilers problem
actually it is your problem before c23
good thing im using c23
before c23 you have to include stdbool or use _Bool instead
what happens when i do ! on that variable tho

logical ! works perfectly fine
the compiler has a full 16 cores while my brain has maybe 2 on a good day

mostly portable code or old code such as kernel
c 
yes
its because !!x will shrink the range from >0, 0 to 1, 0
this is way more common in javascript land btw
((!5) == 0)
> 1
true wisdom comes in using a uint256_t for booleans
correct
cutechess froze and wsl isnt shutting down 
had to do the parenthesis cuz clang likes that
idk
i didnt put much thought into it
i just tested it out to see if it actually worked like i thought it does
yoda ass mentality
trude
im not doing chess rn so i dont need to worry abou tokens
save token

save token
// no!!!
if (x) {
printf("hi");
return 0;
}
// yes!!!
if (x) return printf("hi"), 0;

working on school assignment rn
chair

waybar seems to have broken 12 hours ago cuz its stuck on krita lmao
idk how to properly restart it without restarting my system

return x && !printf("hi");```
save more token
its fine on my phone so maybe multimonitor related 
Warbar has been suspiciously stable so far 
cuz if i restart it in a fish window the waybar closes when i close fish
at least in my case
Start as background task mhm
it depends on printing successfully, yes
but save token
is it not worth it
i have node bindings that will probably crash and burn and segfault the second anything actually gets written with them but i have them

i have yet to make my lua bindings
will anyone use my lua bindings? probably not
will it be fun? maybe
fish -c "waybar" &
Surely
https://github.com/mlntcandy/chessapi-node if anyone wants to have a reason to murder me
cmake 
no submodules 
after i pulled my bot stopped seeing opponent's mate in 1 move 
yes submodules are better than copy pasting code 
you know what
yes 
done
error C1083: Cannot open include file: 'chessapi/src/c/chessapi.h': No such file or directory
i am actually going to crash out did you make me do this for nothing chay
yeah i think recursion got broken again
i will collect more data tomorrow
or its get_legal_moves again... i cant find mating move in the list
I can't wait for my bot to just be asking chatgpt (what do you mean there is a no network requirement?)
its probably possible to make bindings for scratch via turbowarp
aka better scratch
TurboWarp is a Scratch mod with a compiler to run projects faster, dark mode for your eyes, a bunch of addons to improve the editor, and more.
npm i doesn't fetch submodules of git repos
I mentioned it offhanded, but don't think there was an answer
usually you'd create a vendored package but keep submodules in git tree
turbowarp has a lot of extentions, one of which can send requests
but it does fetch git repos 
so you can probably use that to make bindings
just doesn't resolve submodules
add package.json to shiro repo 

add a low quality (50x50) png image of a turtle to shiro repo
when nix bot
Package up Shiro and ship it

oh i misread as "or"
eyes tired 
ahh yes, the real punishment for pinging vedal randomly
doesnt sound too unrealistic
but i dont wanna do it 
wait you might unfortunately be right it doesn't
npm 
can you instead do dynamic linking
like python

but less copy paste 
two shared libs 
I'm out of time for day but I can report the Neuro MOD gets loaded into Oxygen not Included

you mean const char*s?
or std::strings?

std strings
huh
you should be able to though 
what's your code
wait maybe its vscode
turn it the other way around
oh
lhs is Move, not string
fucking bracket
I had massiv problems with UniTask because it runs on 4.7.2 Net Framework and not on modern NET
eepy
I let Claude build me a Wrapper class which simulate the same behaviour
At somepoint I properly need ask Alex about this
gn8
something is wrong with board it isnt right. maybe i messed up undoing moves. or it is api again
it thinks king is d8 not e8
i straight up reverted the commits for now
i can imagine shiro looking at chat rn and being unable to talk about api stuff
so it at least works
its 90% my bad in something else but i cant see yet
do

you do
i not know who shiro is but there is an unrelated third party
(name redact for privacy)
shiro online
100% lurking
who could that be
what happened to Shiro?
Smh shiro would never lurk
vedal ping
@real sierra what happened to you
tell us in this very here chat
shiro banned from server









java
these are so ass




shiro, fix attempted


