Category: Techonology
-
Site Update – Converted to WordPress
After months of instability, I have finally landed on what I think will be the final resting place for my website. WordPress seems like the best option for customizability, ease of use, and long-term stability, and I want to share how I came to this seemingly obvious conclusion. This all started just over a year…
-
Chess V2.1 – A Leap Forward in Chess Engine Development
I just wanted to announce a major update to my chess library. V2.1 introduces the uci chess package. I think it’s pretty cool. It provides an interface to which you can build your chess engine. With a surprisingly small amount of effort, you can now create a UCI compatible chess engine. I made a bunch of them here.…
-
A Commonly Unaddressed Issue in C++ and Golang Comparisons
I just wanted to address a seldom mentioned nuance in the comparison of the Go and C++ programming languages. Pretty much every website or forum you go to will mention that C++ is usually at least 50% faster than go. What they don’t mention is the amount of extra effort that went into optimizing the…
-
Musings on Ownership in a Digital World
Every once in a while I go down a rabbit hole and think a whole lot more about a topic than I really should. It often has no true effect on my life other than how I see and understand the world. But even so I think it is important to think about these things…
-
Chess Devlog: Huge Performance Improvements
I just released v2.0.3 of https://github.com/brighamskarda/chess. And it has some huge improvements. It went from taking over 20 seconds to calculate perft 6 from the staring position to taking just 6.5 seconds with profile guided optimization enabled. Here are some of the changes I made. Performance Improvements Remove Square Validation There were three bitboard functions that…
-
Chess Devlog: Perft Testing
Just wanted to give an update on a cool little thing I learned about recently. phaul21 brought to my attention that I had no perft testing in my library. Perft testing is essentially generating a tree of positions based on all the legal moves that can be made. Then by counting the leaf nodes you can compare…
-
Introducing Chess V2: A New Chess Library in Golang
This has been a project I’ve been working on for a good bit now, and I’m finally excited to announce version 2.0 of my chess library written in Golang. I’ve learned a ton from this project, and I’m excited to share it with the world. Repo – https://github.com/brighamskarda/chess Docs – https://pkg.go.dev/github.com/brighamskarda/chess/v2 Performance Version 2 was pretty much…
-
My Gripe With PGN Notation
I just wanted to gripe about the PGN file specification for chess games. Lately I’ve been working on version two of my chess library written in Go. (Which by the way is looking really nice by the way. It has significantly faster move generation than some of the competition.) My gripe is that to export and read…
-
My Opinion On Various Programming Languages
Here are my opinions on various programming languages. I don’t think I have too many controversial opinions in this respect. Even still, I hope at least a few of my takes are mildly triggering. At the end of the day use the right tool for the job. I think Bjarne Stroustrup said it best. “There…