Skip to content

Instantly share code, notes, and snippets.

@niklasf
niklasf / bratko-kopec.py
Last active Feb 24, 2020
An implementation of the Bratko-Kopec Test using python-chess
View bratko-kopec.py
#!/usr/bin/python
import chess
import chess.uci
import sys
import time
MOVETIME = 120.0
@niklasf
niklasf / asyncio-private-loop.py
Last active Sep 23, 2019
A ChildWatcher that does not require the asyncio loop to be running in the main thread
View asyncio-private-loop.py
#!/usr/bin/python
import asyncio
import os
import sys
import threading
import time
import warnings
View install-display-kiosk.sh
#!/bin/sh
#
# Ausführen um Raspbian (oder ein anderes Debian) zu einem Anzeiger für IServ
# zu konfigurieren.
# Superuser Rechte holen.
if [ $(id -u) -ne 0 ]; then
echo Superuser Rechte nötig.
exit 1
fi
View calculator.c
#include <avr/io.h>
void USART_Init( unsigned int ubrr){
/* Set baud rate */
UBRR1H = (unsigned char)(ubrr>>8);
UBRR1L = (unsigned char)ubrr;
/* Enable receiver and transmitter */
UCSR1B = (1<<RXEN1)|(1<<TXEN1);
/* Set frame format: 8data, 2stop bit */
UCSR1C = (1<<USBS1)|(1<<UCSZ11)|(1<<UCSZ10);
View bench-parallel.sh
#!/bin/bash
if [[ $# -ne 3 ]]; then
echo "usage:" $0 "base test n_runs"
echo "example:" $0 "./stockfish_base ./stockfish_test 10"
exit 1
fi
base=$1
test=$2
n_runs=$3
@niklasf
niklasf / tbdep.py
Created Jan 26, 2018
Create a Makefile for Syzygy tabebase generation
View tbdep.py
import sys
import chess.syzygy
import itertools
PCHR = chess.syzygy.PCHR
NORMAL = set(chess.syzygy.filenames())
def swap(egname):
w, b = egname.split("v")
@niklasf
niklasf / pgn-codebook.py
Last active Jan 19, 2018
Experiment with PGN compression. Usage: python pgn-codebook.py corpus.pgn
View pgn-codebook.py
import chess.pgn
import huffman
import sys
# https://github.com/flok99/feeks/blob/master/psq.py
PSQT = {
chess.PAWN: [
0, 0, 0, 0, 0, 0, 0, 0,
50, 50, 50, 50, 50, 50, 50, 50,
@niklasf
niklasf / title_and_description_delegate.cpp
Last active Jan 3, 2018
A Qt QItemDelegate that shows a bold title above a description text. Could also be used to render more general rich text in QTableView and co.
View title_and_description_delegate.cpp
#include "title_and_description_delegate.h"
void TitleAndDescriptionDelegate::paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const
{
m_paintingIndex = index;
QItemDelegate::paint(painter, option, index);
}
void TitleAndDescriptionDelegate::drawDisplay(QPainter *painter, const QStyleOptionViewItem &option, const QRect &rect, const QString &text) const
{
@niklasf
niklasf / 3-4-5.atbw.md5
Created Nov 21, 2016
Atomic syzygy tablebase stats
View 3-4-5.atbw.md5
5f09f78f986d440d5fda3cd28b335eb3 KBBBvK.atbw
8314a33d3042c8ab76ca365d492c7fd2 KBBNvK.atbw
2087b9823af4ca34e0f1692b917650e5 KBBPvK.atbw
0b12a60dcd347e5db4dcb3a19a351b1f KBBvK.atbw
6d57f8073f620c5a4c0e33ecda89e79a KBBvKB.atbw
03dfac996c8ad3bb0243b6cab20d22db KBBvKN.atbw
fea01a36c7246c01ff7dee676478f69f KBBvKP.atbw
df59dd79ecd5e81667a8d0df9279ad5d KBBvKQ.atbw
69e712795f8131d814fe9c5207d01423 KBBvKR.atbw
3ec95fde73d9142b220c7b599a7bc569 KBNNvK.atbw
@niklasf
niklasf / encode-movetimes.py
Last active Nov 21, 2016
Benchmarking various methods to encode 100 000 movetimes from FICS
View encode-movetimes.py
from __future__ import division
from __future__ import print_function
import heapq
import math
import itertools
from collections import defaultdict
#from scipy.special import erf, erfinv
You can’t perform that action at this time.