614 karma · joined June 29, 2017
Feedback on ComputerPoker.ai: contact@computerpoker.ai
I <3 vim + tmux + iTerm2 + tmuxinator
Life is absurd, might as well laugh
My general position is that assuming that children ages of 10 to 16 _need_ to be or _must_ be online to communicate with their peers, without considering the negative impact on developing brains, is intellectually dishonest at best.
> It’s important for kids to do this online, an arena where they often develop social skills and refine their identities.
Later on they say:
> Rather than attempting to block young people from online services that allow them to access information and engage in age-essential communication
The fact being “social media online” is taken as a given for under 16s is laughable. Kids do not need to socialize like this, they do not need to be online, they can and should go outside. When they turn 16 their brains will be slightly more fully formed and I could go on and on but it seems these authors just want the kids exposed to the algorithms.
I’m not sure exactly why I share this, perhaps I think some comments about suicide being an “escape hatch” resonated with me. I’ve since sought support, going just short of self-hospitalization, and I was on a SSRI until recently switching to a non-antidepressant.
While life remains Messed Up, I keep telling myself two things: (1) If you’re really considering killing yourself, try “ killing yourself” in the gym (often super hard exercise makes me feel infinitely better); and (2) “Wouldn’t it make a better story if I didn’t (kill myself)?”
I’m getting through, day by day, and I’ve got some strong “protective factors,” however they’re not invincible or bulletproof so I need to remain vigilant and avoid doing anything impulsive. And just try to remember that if I keep making good decisions one day at a time things will get better in the long-run.
One time I met a psychiatrist after moving to a new area. In our very first meeting he takes me off a medicine I’ve been on for nearly 7 years, cold turkey. Then? _Zero_ follow-up, no check-ins, and I can’t get an appointment on my own for months. The decision may have been wise, leaving out specifics here, but the lack of follow-up really was negligent.
I bet you’re fun at parties!
Are there any comparisons between the state of the stdlib in C++ vs. Rust? I’d think that would serve as an excellent jumping off point to start chipping away.
> A scramjet is a variant of a ramjet airbreathing jet engine in which combustion takes place in supersonic airflow. As in ramjets, a scramjet relies on high vehicle speed to compress the incoming air forcefully before combustion, but whereas a ramjet decelerates the air to subsonic velocities before combustion using shock cones, a scramjet has no shock cone and slows the airflow using shockwaves produced by its ignition source in place of a shock cone - Wikipedia
My motivation for creating CompterPoker.ai was feeling a bit overwhelmed by some of the professional poker tools out there for learning GTO play. For some tools, learning how to simply operate the tool itself felt like a second job. With ComputerPoker.ai players can play against bots themselves simulating GTO play to learn what it "feels like" to play GTO vs. GTO opponents without having to turn any knobs or dials (feedback is real-time as you play).
The Beta tester code for HN Users is: HackerNews2026. All feedback is welcome! Please send suggestions for improvement or bugs to contact@computerpoker.ai or alternatively leave a comment below. Any questions I will do my best to answer.
As for the product offering the website is designed to teach players how to play optimal poker strategy (GTO) in simulated Texas Hold 'Em poker tournaments. Our value proposition is that if you can consistently beat the bots then you will fare well in live poker tournaments (of course adjusting for your opponents' play).
In addition to GTO pre-flop quizzes and pre-flop charts, users have the ability to simulate poker tournaments from start-to-finish and get feedback on their decisions _in real-time_ in a fun and low-risk environment.
For those interested the tech stack is Django deployed on AWS via Terraform and SaltStack, the database uses a Postgres RDS backend, and the frontend uses HTMX with WebSockets via Django Channels and Redis (Nginx serving as reverse proxy with CloudFlare DNS and SSL). During the project I used Claude Code to aid with various boilerplate aspects of the code base including building out the repos for Terraform and SaltSack and of course speeding up Django development.
Users are graded pre-flop based on the covered pre-flop scenarios (two-ways only for now). Post-flop users are graded on a residual MLP PyTorch model. We have built an in-house solver in Rust using the discontented CFR++ algorithm. The PyTorch model approximates GTO play post-flop (again only two-ways currently) based on training data with raises, EV, and realistic ranges for OOP and IP players. Because the post-flop decisions are based on a model that will always be a work in progress I refer to these decisions as GTOA (or "GTO Approximate").
Version 8 of the PyTorch model is the first one that I am happy with and actually find it quite difficult to play against. If you manage to beat the bots please do let me know how many tries it took! For those curious the PyTorch params for the most recent run are below (I trained on a gaming PC via Linux WSL2 using an AMD GPU).
The website is live in Beta mode as I gather feedback on how things are structured and work out any bugs/kinks. If you have any suggestions for improvements I’d love to hear them. Subscriptions are live so if anyone wanted to test the Stripe payment processing flow I certainly wouldn’t mind! ;-)
p.s. This is a side gig for me. I am currently looking for full-time work either fully remote or on-site based in London, UK (this LLC that runs ComputerPoker.ai operates out of USA but I am based full-time in the UK and authorized to work in both UK and USA). If you or someone you know is looking for a SRE with strong software engineering skills please let me know!
At least in the book/movie(s) Harry Wormwood faces consequences. The enablement top down is the problem. The system is rotten and no one faces any real consequence only a slap on the wrist at a fraction of revenue many years later.
By all means game developers deserve to make a living... However, if they're going to operate a casino, they should be treated and licensed as such.
The overall point I'm making is that it is "gross" when companies do stuff like this and yet there's zero accountability. Or when it comes to reliability of account deletion tech companies put up their hands and say "whoops technology is hard."
We trained PyTorch models on solved poker scenarios for post-flop, turn, and river situations. The planned "killer feature" is to give users feedback on their poker play in the flow of a simulated poker tournament or simulated cash game scenario. The goal is to play against "GTO Bots" (Game Theory Optimal Bots) to learn how to play closer to GTO.^1
Poker has been a passion of mine for a few years now, I find the game incredibly intellectually stimulating as well as a tremendous catalyst for personal growth, and this project has been a great way to channel that energy.
The web app uses Django/Channels/WebSockets. We've built an internal discounted CFR solver as well, hopefully building up to multiway scenarios in the future. The webapp is still in Beta/gated, and you're interested in learning more please email contact at surlesol dot com.
We are thinking of pricing $8/month or $74.99/year, with the rationale that this will be far less expensive than learning by experience at even micro stakes for online poker, with better feedback for learning, and at least we make it explicit that you're competing against bots ;-)
1. I am aware that GTO play is not always optimal, especially in live poker where live tells are available, and often exploitative strategies fare better than pure GTO. The target audience for ComputerPoker.ai is not hardcore poker pros, there's plenty of existing software for that, but rather those individuals looking to get acquainted with what GTO play "feels like." Then, with this knowledge in hand, knowing what the GTO play would be given various assumptions about our range and a reasonable opponent's range, we can deviate from the GTO play as deemed necessary.