The Sky Is The Limit

Reaching it will give you emptiness

Flogvit

Vegard Hanssen

Coding

If it’s not possible to code, it’s not worth doing.

Music

Playing, recording, producing, mixing, mastering.

Presentation

Backgrounds, text, visualizing

$

Running

Halv marathon is fun

Puzzles

Using my brain is vital

Knowledge

You can never know to much

Pi Sudoku

Pi Sudoku

I love Pi. It has always fascinated me. And since I also create sudoku puzzles, I just found myself wanting to make a Pi sudoku puzzle one day. I wanted it rotational symmetric, as a good puzzle should be, and I wanted it with as few given as possible. Since I didn’t find anyone with 20 givens, I ended up with 21 givens. I also wanted it to have the first line with the numbers 314, with an opening between 3 and 14, since that’s what most people think of as Pi. I ended up creating about 20 puzzles, and picked one which I think looks good, and is pretty difficult to solve. So here it is. Read the puzzle from upper left to bottom right and you’ll get 21 digits of Pi. If you want to solve it, head to my website.

WordPressChess

I’m testing out a chess plugin for wordpress, made by my good friend Alf Magne @ http://dhtmlgoodies.com. You can test the beta at http://wordpresschess.com/.

Google Drive on Windows crashes

I like Google Drive. But, there is a problem with it crashes in certain scenarios. If you import too many files to it, like 5000+, before you let it finish syncing, it tends to crash. This was pretty frustrating when I wanted to move the files from dropbox to Google Drive. So I created a little perl script which slowly moves the files into the Google Drive directory. It’s available as a gist at github. You need the File::Copy::Recursive module installed. It is run like:


slowmove.pl
slowmove.pl /cygwin/d/dropbox/ /cygwin/d/gdrive/ 1 100 2

Slow Windows performance in Parallels

I had a problem with disk space on my Mac, so I figured I should move my Parallels folder to en external SSD to make room. I bought a Samsung T3 and moved all the Parallels files over to it. When I restarted the Windows installation it was really slow, I mean, like 100 times slower to start up. After some research I found out that Parallels work very badly with ExFat which is the filesystem Samsung equip the T3 as standard.

So I moved the files back to the internal SSD, reformatted the T3 to Mac OS Extended (Journaled), and moved the files to the T3 again. And, voila, the speed was back again.

Running stockfish or komodo on Centos 6

I wanted to try out a chess engine, but I didn’t want to run it on my own computer where I have the GUI. So what to do? I had a centos 6 computer with enough cpu power, but when I downloaded and ran stockfish I got:

$ ./stockfish-7-linux/Linux/stockfish\ 7\ x64 
./stockfish-7-linux/Linux/stockfish 7 x64: /lib64/libc.so.6: version `GLIBC_2.14' not found (required by ./stockfish-7-linux/Linux/stockfish 7 x64)
./stockfish-7-linux/Linux/stockfish 7 x64: /lib64/libc.so.6: version `GLIBC_2.17' not found (required by ./stockfish-7-linux/Linux/stockfish 7 x64)

And when I ran komodo 10.1 (which you have to buy), I got:

$ ./komodo-10.1-linux 
./komodo-10.1-linux: /lib64/libc.so.6: version `GLIBC_2.14' not found (required by ./komodo-10.1-linux)
./komodo-10.1-linux: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.15' not found (required by ./komodo-10.1-linux)

The problem is Centos 6 has too old glibc version. So how to fix this? The short version is to download the finished files I’ll show you how to create in the long answer. They are ld-linux-x64-64.so.2, libc.so.6 and libstdc++.so.6.

Short answer:

wget http://www.menneske.no/libs/chesslib.tar.gz
tar zxvf chesslib.tar.gz
./ld-linux-x86-64.so.2 --library-path . <path to komodo or stockfish>

Voila, they both works fine on Centos 6.

Long answer:
For stockfish you can download the src and compile it. But for komodo that is not possible. So, you need to compile both gcc and glibc to be able to get the files. It takes a long time, and some GB of space, but here is how you do it, if you don’t trust my precompiled files:

# First we assure we have the development tools to build stuff
yum groupinstall "Development tools"
yum install -y glibc-devel glibc-i686

# Now we build glibc. This will not overwrite your current glibc, so don't worry
cd /tmp
wget http://ftp.gnu.org/gnu/glibc/glibc-2.17.tar.gz
tar -xvzf glibc-2.17.tar.gz
cd glibc-2.17
mkdir glibc
cd glibc
../configure --prefix='/opt/glibc-2.17'
make
make install

# Then compile gcc
cd /tmp
wget ftp://ftp.gwdg.de/pub/misc/gcc/releases/gcc-4.6.4/gcc-4.6.4.tar.gz
tar -xvzf gcc-4.6.4.tar.gz
cd gcc-4.6.4
./contrib/download_prerequisites
mkdir objdir
cd objdir
../configure --prefix=/opt/gcc-4.6.4
make
make install

Now we have all the files, and we copy them out to our preferred directory.

cd <your path>
cp /opt/gcc-4.6.4/lib64/libstdc++.so.6 .
cp /opt/glibc-2.17/lib/libc.so.6 .
cp /opt/glibc-2.17/lib/ld-linux-x86-64.so.2 .

And then you run it with:

./ld-linux-x86-64.so.2 --library-path . <path to komodo or stockfish>

But how did I reach it from my other computer? Well, ssh to the resque.

cat <<EOT > komodo
#!/bin/sh
# ssh chess.test.com -l chess ./ld-linux-x86-64.so.2 --library-path . <path to komodo or stockfish>
ssh <yourhost> -l <youruser> <path to komodo on host>
EOT

# fix permissions
chmod 750 komodo

Remember to add pub ssh key to the host, so you don’t need to write the password to login. Voila, then you just add “komodo” as the engine in your favourite GUI.

%d bloggers like this: