RSS Amplifier

Blog

César Del Solar's website on César Del Solar, Maker of Things

Recent content in César Del Solar's website on César Del Solar, Maker of Things

cesardelsolar.comRSS feed ↗28 posts

Latest posts

What I'm Working On

I’m a husband and father of two young kids. I’ve spent the past few years co-founding a
startup, which means my open-source side projects get whatever scraps of attention I can
carve out during evenings and weekends – but the backlog isn’t getting shorter. 
 I maintain several projects and there’s always something I “owe” someone: a bug fix,…

Bayesian Rack Inference in Macondo: Teaching a Scrabble Bot to Read Minds

How we implemented mathematically rigorous Bayesian inference in Macondo to let BestBot reason about its opponent’s rack, and why it only barely edges out going first.

Why I didn't win the 2025 Scrabble Players Championship

A tournament report for the most prestigious NWL tournament of the year - the SPC 2025. Lessons learned and so forth, as well as a shameful (or shameless?) request for help.

Beyond Leave Tables: A State-of-the-Art CNN Static Evaluator for Scrabble

I’ve trained a convolutional neural network that beats our long-standing equity engine (HastyBot’s static evaluator) in direct play - 51.7 % win rate over 250K self-play games - making it, as far as we know, the strongest pure static evaluator in Scrabble today. In this post I walk through the feature set (board image, rack, bag, tempo, power-tile counts, more), the training pipeline,…

WordVault - a new spaced repetition web app for learning words

I just released a new web app for learning words called WordVault. Read more about it here.

How to unf*ck Arch Linux

Arch Linux is the main system on my desktop computer. I love it but sometimes it screws up. Here are some tricks for unscrewing it up.

Exhaustively solving Scrabble endgames using chess programming techniques

Scrabble endgames are computationally difficult to solve exhaustively. I used some chess programming techniques to greatly speed them up.

Se7en is a great film

When I was 11 or so my friends and I snuck into Sesevenen (Se7en). I remember being excited that this was an R-rated movie and that we were going to see some cool violence or whatever. However, my main memory of the movie was that it was a disappointing slog. I think at the time I wanted something like an R-rated version of Independence Day, a movie I enjoyed very much. Or stylized violence ala…

Let's Listen - Falling for You

Weezer’s Falling For You is an amazing song

2022 is finally the year of Linux on the desktop, and I can prove it

Linux provides the best and most cost-effective desktop experience.

Profiling a Go-language Production Server

A few months ago, I noticed my app was having CPU spikes. Read on to see how I diagnosed the issue on a running production server.

Scrabble is nowhere close to a solved game

I have found that in the literature about games and AI (artificial intelligence) that Scrabble is invariably referred to as something of a “solved” game, in the same way that Chess, Go, etc are “solved” by AI —in these latter games, there exist AIs that have superhuman performance and can basically beat any person.

Using NATS to build a very functional Websocket server

How we built the Woogles backend messaging system using NATS and Websockets.

Based and gopher-pilled.

Based and gopher-pilled.

Further progress on liwords

Our site is looking prettier now. My friend Conrad is doing the design for the site; the above is a very early version of what he’s already designed, and we have a team working to bring it to life. I’m mostly in charge of the backend, but doing a little front end work on the API. We finally got a full game timer working; I based the code mostly on lichess’s. Why not use a fully functional thing…

liwords

A small team of us have been working very hard on a project that I internally call “liwords”. The inspiration is obviously lichess.org. Why not do for crossword board games what lichess did for chess? 
 This has been a dream of mine for a few years since I first saw that wonderful site. Although we are very far from being done, I hit a minor milestone recently on Twitch (I…

Macondo Dev Blog - simming

I’m going to log more of my progress on the apps that I wrote about in an earlier post, in an attempt to: 
 
 make myself more likely to work on these apps 
 write a log for me and others and drum up some excitement! ;) 
 
 Monte Carlo simulation is basically working on Macondo. I expect that since I just got it working, that I’ll discover some bugs and special…

Ideas for improving the state of Scrabble

I have a lot of ideas for improving the state of tournament and recreational Scrabble, mostly revolving around the technological aspect of things. I am aware that there are many other ways in which it is lacking, but my expertise is in technology, and that’s probably the best way I can make an impact

Moving my side project to Kubernetes, a year and a half later

Around April of 2017 I wrote this article about moving my side project to a single-node Kubernetes cluster: https://hackernoon.com/lessons-learned-from-moving-my-side-project-to-kubernetes-c28161a16c69 
 As of today, the infrastructure is still running strong, although I’ve run into a few issues I will talk about later in this article. I initially set up my node as a $10/month node but it was…

Building an emulator

I have been coding in one form or another since I was around 8 years old, on my brother’s calculator that had around 450 bytes of program memory, and I’ve been videogaming since I was 6 (my dad bringing an NES from the US back to my native Caracas was one of my happiest memories). But why not combine both those loves? 
 I’ve been wanting to make an emulator for ages but for…

Lessons learned from moving my side project to Kubernetes

This title may already be ringing some faint alarm bells; why move a small side project to use Kubernetes? And was it worth it? 
 I run a small study site for tournament Scrabble players, available at https://www.aerolith.org . (Please excuse the lack of a nice landing page). It consists of a Django app, with PostgreSQL, and a small Go-based microservice that generates some complex word…

notes


 
 Copy 
 
 docker run -it -p 8181:8000 -v /home/ubuntu/word_db:/db:ro --env-file webolith/config/config.env domino14/webolith:latest 
 (and 8180 instead of 8181) 
 on home machine 
 ab -kc 100 -n 1000 
 For haproxy stuff 
 
 
 Copy 
 
 apt-get install ruby
gem install haproxyctl 
 Need a haproxy.cfg file that exposes the socket. Need…

Breaking the Zyzzyva encryption

The article here sums up pretty well the debacle that North American tournament Scrabble players have been faced with since the introduction of the new Tournament Word List in April of 2015: 
 Major Scrabble Brouhaha: Can You Copyright a List of Words? 
_In the 1980s, when Brian Sheppard created a computer program that played Scrabble, he typed in a lot of words-more than…_www.slate.com…

LOL

This is hilarious: 
 http://www.openbsd.org/cgi-bin/cvsweb/src/lib/libssl/ssl/Makefile?rev=1.29;content-type=text%2Fx-cvsweb-markup 
 The CFLAGS in the commit contain:
-DOPENSSL_NO_HEARTBEAT 
 The actual setting to disable the SSL heartbeat is -DOPENSSL_NO_HEARTBEATS (note the S at the end). 
 This commit was apparently OKed by two other people. 
 This right here tells you…

Facebook insights have different return formats.

https://graph.facebook.com/me/insights/page_impressions_unique/day?access_token={{TOKEN}}&since=1388649600&until=1391241600 
 
 1388649600 = 1/2/2014 12:00:00 AM GMT-8 
 1391241600 = 2/1/2014 12:00:00 AM GMT-8 
 
 returns something that looks like this: 
 {
 /* previous, next page, etc keys */
 "data": [
 {
 "values": [
 {
 "end_time":…

stupid Python logging woes

Recently moved a project to Django 1.3 and I kept seeing duplicate messages for all of my logger.x messages, even though my LOGGING dictionary looked like: 
 LOGGING = {
 'version': 1,
 'disable_existing_loggers': True,
 'loggers': {
 'base': {
 'level': 'DEBUG',
 },
 }
}
 
 I simplified it to this to see if there were any issues, and although I define…

Let's try my first post


 
 
 YOM is better than the bingo CO(E)MpLOY

About

César fell in love with technology at the tender age of 8, while a child in his native Caracas, Venezuela. His older brother had a Casio calculator and through trial and error, César figured out how to program it to play a simple number guessing game. He also ended up draining his brother’s calculator battery before a big test, much to his brother’s dismay. 
 César fell in love…