First thing I do when helping someone new to coding with debugging is format their code. 70% of the time, the bug becomes immediately obvious to me once everything is spaced where it should be
seen from United States
seen from Argentina
seen from United Kingdom
seen from Malaysia
seen from United States
seen from United States

seen from Singapore
seen from China

seen from Italy
seen from United States

seen from Italy
seen from United States
seen from United States

seen from Italy

seen from United States

seen from Kazakhstan
seen from United Kingdom

seen from Canada
seen from United States
seen from United States
First thing I do when helping someone new to coding with debugging is format their code. 70% of the time, the bug becomes immediately obvious to me once everything is spaced where it should be
I am hereby announcing my next video game: Abstractigons!
by me, Willow F.! stay tuned for dev cycle updates
it is not yet written but the creative vision compels me to realize it
My eye is twitching over people wanting to seem like "cute girl in STEM" but lack the discipline to do so. I'm sorry, miss, "I'm ambitious, hot and in tech!" your ENTIRE application is a security risk due to being built by AI. There's little to no structure, it's not readable enough, the buttons are glitchy, it hardly functions... and you think you're on the same level as those who put in the work? No ma'am.
I can turn a blind eye to using AI for troubleshooting and small tidbits to make workflow easier. But if you're building everything using an AI, you don't like to code. You don't genuinely have interest in these things. You simply want to tout the badge of "coding girlie" with zero work. I find that quite pathetic.
Master data visualization and business analytics with our Microsoft Power BI Course. Learn dashboards, reports, DAX, Power Query, and real-time analytics through live online classes, hands-on projects, and expert guidance. Join interactive sessions with industry trainers and build job-ready skills from anywhere.
📞 Mob Num: +91-971-152-6942 📧 Email: [email protected]
🚀 Enroll now and start your journey toward becoming a Power BI expert!
Alright everyone time for a 3 am crashout
Guess who's working on chess again? Partially due to revived interest, i'm gonna take a crack at getting this thing up to a reasonable speed. Starting with one of the neatest trick from 2D chess
Magic bit boards babyyyyyyyyy. Basically in 2D chess we take advantage of the fact that a 64 bit integer holds just enough individual bits to correspond one-to-one (and onto) occupancy of a chess board. You should read about them if you want i'm not explaining magic bitboards here lol It does require multiple bit boards to use, usually requiring one for rooks, for bishops, white, probably ghost pawns, stuff like that. The beauty of this though is we can represent essentially an entire board state with just a couple unsigned long ints. So here's where our journey start.... how uh... so fir... you may have noticed... uh....
yeah there's more than 64 squares there. This is where our trouble first starts. We need ways of dealing with larger boards. Now ya' girl went ahead and cracked this pretty quickly. Too bad its the wrong fucking thing.
Basically its as simple as reserving the outer lines of bits for data used to outright skip over that entire section, though it does come at the cost of only being able to represent 6x6 boards. So just apply that to.... I... actually only have like 2 boards that need this. This doesnt help at all, maybe i'll revisit it for the donuts.
(second ones a tiger btw, a 4D analog to a torus) Now lets revisit these magic bitboards again rq
Now astute readers may have noticed something horrifying about this. Notice how the left most grids are defined not only by the piece, but also the pieces positions. More generally, we can say that its defined by its n-agonals (monagonals, diagonals, triagonals, quadragonals, pentagonals)
It'd be good to know how many of these there are in total so we can get a rough idea of the number of magic bitboards we need. Luckily this is an easily solved problem. The number of monagonals in 5D space are 5 Choose 1. diagonals 5 choose 2. The total number of nagonals in 5D would then be the sum of these. We technically want to skip 5 choose 0 but for estimating memory usage the number being 32 instead of 31 wont make a difference, we kinda care about order of magnitude
Now you could add that up... ooooooooor you could use pascal's triangle. Well, there are some number theory theorems i dont remember but pascal's triangle is cute.
Now if you punch in all of the choose expressions above, you'll find they correspond to the bottom row of the pascals triangle here. And there's a neat trick about the sum of that row we can utilize.
The sums of the nth row of binomial coefficients is simply 2^n. So if we wanted to be exact we'd remove the 0-agonal, (5 choose 0) but for now, we'll settle into *about* 32 n-agonals. So for each square thats 32 n-agonals. on the 5x5x5x5x5 board we have 1024 squares. So thats like, 32k magic numbers right? Noooooot quite because that would assume we have access to 1024 bit integers. We do not have that kind of access. Each bit board can only represent a very small section of the board at once. For the 5D board we're lucky that it fits perfectly into a 3D slice. So a pretty solid approach would be to simply break it down into 4x4x4 3D slices
Upon inspection we see there are 16 3D slices which makes sense. Now there are a few ways to actually make those slices as well. This is a very similar problem to generating bishop moves. See, when we say a "3D slice" what we really mean is we're going to choose 3 dimensions to variables, and hold the other two fixed. 5 choose 3 is 10 so we get 10 different orientations of slices, meaning 160 3D slices in total with some transposition math.
A naive calculation would be to simply multiply this all together. 32 n-agonals * 1024 squares * 10 slice orientations * 16 slices * 8 btytes per 64 bit integer gives uuuuuuus....
Holy fuck, 40 MB of magic numbers, just for this board. *However* there was a naive thrown in there. This isn't entirely accurate, and i dont know in which direction. I think its better as far as memory goes, but time complexity is looking a bit worse. Basically the thing is, we're already taking 3D slices right? So hypothetically for any given board we only need the magic numbers for whatever subset of a board we can take. We can take an 8x8 section of a 2D slice, or a 4x4x4 section of a 3D slice. If you had a 64 squares long board you could take a single strip of that but like who would be crazy enough to do such a weird board like that, a 16x64 2D board? imagine. But anyway, the idea will be to take these bit boards that are solved for smaller slices, and use them to bulk process larger boards with fewer magic bit boards. This also somewhat solve the problem regarding user generated boards when that eventually does happen, but it does give us a new, at least... slightly easier one. Given some arbitrary board, how do you best subdivide it into bit boards and what can we do to speed things up. Oh yeah, and the fact Dragons wont move in 3D slices... But that's actually not as bad as it seems. Basically instead of taking a flat slice
We can sheer the slice across another direction. After that within the sheered slice the dragon would move like a unicorn. A devil (personal name for pentagonal rider) would move like a unicorn if we sheered across a second dimension as well. The combinatorics for this are actually much more forgiving in 5D than it would seem. Basically we need some extra bitboards for quadragonals and pentagonals, but we didnt have that many to begin with. There are 5 quadragonals, and with only one direction left to sheer we have to sheer that direction. Then we throw in an extra bitboard for the pentagonal sheer as well.
Well... it is important to note that the extra bitboards need to be multiplied by the (5 choose 3) or 10 ways to take slices in 3D space. We're actually going to drop the quadragonals and pentagonals from our original sum, and split them out here. 25 n-agonals (n<=3) * 64 squares per slice * 10 slice orientations * 16 slices * 8 bytes = 2MB for up to triagonals. 5 quadragonals * 64 squares per slice * 10 slice orientations * 2 sheer directions * 16 slices * 8 bytes = 2MB for quadragonals alone 1 pentagonal * 64 squares per slice * 10 slice orientations * 1 sheer direction * 16 slices * 8 bytes = 1 MB for pentagonals. So assuming i did all my math right we can use this building block for any board we need about 5MB dedicated just for these magic numbers. And actually, different slice forms are going to require other magic numbers and slicing rules. Good thing we're running on mostly modern hardware. That does feel like a lot of space but hopefully i can compress it. Accessing it quickly scares me as well, thats a lot of read-in, the whole thing would have to sit in RAM. Hopefully i can throw it into a compute shader and call it a day. Till next time~
Life update
Y'all it's been so long since I've done one of these
Anyways a lot has happened. I've given like 3 interviews (even though I thought I'd get no interviews this sem) and got a decent internship for the summer. I'm not applying for other better options cuz this one is very near to where I live so I won't have to relocate to another city and cry etc etc
Also somehow finished all my practical exams. All went well except ML (which was just bad luck but eh)
But my 6th sem is basically over now. My end sems would start from 4th may and then after that I'd pretty much be a final year student.
---warning: placements panic+ rambling incoming---
So like any other loser cs student I was like yeah I need to lock in now (which is the very last minute) cuz I have placements from next sem and the job market is cooked and the companies that come to my campus don't care about the skills I have so it's all misaligned and the ones that are aligned only recruit like 1 student out of 300 applicants (who all have almost the same set of skills as me btw cuz it's 2026 and everyone is a carbon copy replica of every other person and I order to stand out you'd have to do the equivalent of lifting a mountain with your bare hands or something)
I can't do masters abroad even though I wanted to, cuz again, job market is cooked and I don't wanna work at McDonald's in some Western European country cuz no one would hire me yk. My seniors told me you'd have an advantage if you have atleast 3-4 years of work experience, so it would be easier to get jobs after masters. So that's my plan, I have to join the rat race and drown in placement hell.
(also I won't do masters in my country because the only good institutes here require you to have a really high national rank to get in their program, and that's another entrance exam rat race, and I will cry if I'll have to focus on 2 rat races instead of 1)
(this is a lie because I'm still going to prep for GATE, the entrance exam to do a MTech. In my country. Not because I wanna do MTech here but because many PSUs that pay well and govt organisations in defence security and space tech and stuff consider your GATE rank, and I wanna apply to those cuz private jobs are cooked and startup jobs feel like you're literally being burned alive slowly)
Anyways what I mean to say is, my focus these days is leetcoding (from scratch again cuz i am really bad at this I don't even wanna talk about it. Like you will laugh) technical interview prep, making atleast 2 decent projects with skills that'll actually help me get hired thru either on campus or off campus placements and uh system design stuff AND GATE prep. All while managing my 9-5 on site summer internship. Hurray
And yep I'm gonna be unsuccessful in doing all of this but what else can I do atp. Gonna try my best
I wanna make a funny app to send to my friend for her birthday (because I just remembered that I can do that lol)
App dev community, if this reaches you, please unleash your creativity on me. I need ideas
This is the funniest way I've ever seen anyone describe discrete math and it's kinda true
https://www.reddit.com/r/ExplainTheJoke/comments/1snff04/what_happened_in_1978/ogn0eqw/