Tag: ai
Exhaustively solving Scrabble endgames using chess programming techniques
Wednesday, Jun 14, 2023
Scrabble endgames are computationally difficult to solve exhaustively. I used some chess programming techniques to greatly speed them up.
Scrabble is nowhere close to a solved game
Sunday, Feb 13, 2022
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.
Macondo Dev Blog - simming
Sunday, Mar 22, 2020
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 cases, and there’s so much more I want to do with it, but for now I’m excited that I got it working.
Tag: api
Facebook insights have different return formats.
Saturday, Jan 4, 2014
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": "2014-01-03T08:00:00+0000", "value": 4 }, { "end_time": "2014-01-04T08:00:00+0000", "value": 1 }, { "end_time": "2014-01-05T08:00:00+0000", "value": 0 } .... /* More 0 values here until Feb 2 */ ], "period": "day", "description": "Daily: The number of people who have seen any content associated with your Page.
Tag: arch
How to unf*ck Arch Linux
Wednesday, Jun 28, 2023
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.
Tag: coding
LOL
Thursday, Apr 10, 2014
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 why code is hard. Hubris anyone? Is there a coding equivalent to Muphry’s law?
Facebook insights have different return formats.
Saturday, Jan 4, 2014
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": "2014-01-03T08:00:00+0000", "value": 4 }, { "end_time": "2014-01-04T08:00:00+0000", "value": 1 }, { "end_time": "2014-01-05T08:00:00+0000", "value": 0 } .... /* More 0 values here until Feb 2 */ ], "period": "day", "description": "Daily: The number of people who have seen any content associated with your Page.
stupid Python logging woes
Wednesday, Oct 17, 2012
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 no handlers for the ‘base’ logger, it still was printing out logging messages.
Tag: devjournal
Profiling a Go-language Production Server
Wednesday, Apr 27, 2022
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.
Using NATS to build a very functional Websocket server
Wednesday, Jul 22, 2020
How we built the Woogles backend messaging system using NATS and Websockets.
Further progress on liwords
Saturday, May 30, 2020
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.
liwords
Saturday, May 30, 2020
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 sometimes stream coding on Twitch).
Macondo Dev Blog - simming
Sunday, Mar 22, 2020
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 cases, and there’s so much more I want to do with it, but for now I’m excited that I got it working.
Ideas for improving the state of Scrabble
Monday, Feb 24, 2020
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
Thursday, Jan 31, 2019
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 barely not powerful enough. Since then, Digital Ocean seems to have roughly doubled the CPU/memory for each of its instances, so $10 might work out.
Building an emulator
Tuesday, Jul 31, 2018
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 some reason or another I’ve kept putting it off.
notes
Sunday, Nov 27, 2016
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
apt-get install ruby gem install haproxyctl Need a haproxy.cfg file that exposes the socket. Need latest HAProxy:
https://haproxy.debian.net/#?distribution=Ubuntu&release=trusty&version=1.6
Take down a server cleanly
sudo haproxyctl set server servers/server2 state drain Need to set up health checks, and figure out when a server is done draining
Tag: endgames
Exhaustively solving Scrabble endgames using chess programming techniques
Wednesday, Jun 14, 2023
Scrabble endgames are computationally difficult to solve exhaustively. I used some chess programming techniques to greatly speed them up.
Tag: films
Se7en is a great film
Tuesday, Jul 19, 2022
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.
Tag: golang
Profiling a Go-language Production Server
Wednesday, Apr 27, 2022
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.
Using NATS to build a very functional Websocket server
Wednesday, Jul 22, 2020
How we built the Woogles backend messaging system using NATS and Websockets.
Macondo Dev Blog - simming
Sunday, Mar 22, 2020
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 cases, and there’s so much more I want to do with it, but for now I’m excited that I got it working.
Tag: heartbleed
LOL
Thursday, Apr 10, 2014
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 why code is hard. Hubris anyone? Is there a coding equivalent to Muphry’s law?
Tag: kubernetes
Moving my side project to Kubernetes, a year and a half later
Thursday, Jan 31, 2019
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 barely not powerful enough. Since then, Digital Ocean seems to have roughly doubled the CPU/memory for each of its instances, so $10 might work out.
Lessons learned from moving my side project to Kubernetes
Monday, Apr 17, 2017
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 challenges on demand. The reason that service uses Go instead of Python had mainly to do with performance, but partially I was also experimenting with Go at the time.
Tag: linux
How to unf*ck Arch Linux
Wednesday, Jun 28, 2023
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.
2022 is finally the year of Linux on the desktop, and I can prove it
Friday, May 13, 2022
Linux provides the best and most cost-effective desktop experience.
Tag: machinelearning
Macondo Dev Blog - simming
Sunday, Mar 22, 2020
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 cases, and there’s so much more I want to do with it, but for now I’m excited that I got it working.
Tag: scrabble
Exhaustively solving Scrabble endgames using chess programming techniques
Wednesday, Jun 14, 2023
Scrabble endgames are computationally difficult to solve exhaustively. I used some chess programming techniques to greatly speed them up.
Scrabble is nowhere close to a solved game
Sunday, Feb 13, 2022
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.
Macondo Dev Blog - simming
Sunday, Mar 22, 2020
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 cases, and there’s so much more I want to do with it, but for now I’m excited that I got it working.
Breaking the Zyzzyva encryption
Saturday, Jun 20, 2015
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
Basically, Hasbro or Merriam-Webster or both decided to take the volunteer work various Scrabble players did in putting together a new word list, slapped a copyright on it, and made it impossible for players to obtain a digital version of the word list.
Tag: ssl
LOL
Thursday, Apr 10, 2014
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 why code is hard. Hubris anyone? Is there a coding equivalent to Muphry’s law?