Tuesday, April 09 2013 @ 00:00 +0200
Tuesday, April 09 2013 @ 00:00 +0200
After almost two years without a single competition, last September I decided to enter the Stackoverflow contest on Kaggle. It was a straightforward text classification problem with extremely unbalanced classes.
Sunday, February 27 2011 @ 00:00 +0100
My ISP replaced a Thomson modem with a Cisco EPC3925 modem-router to fix the speed issue I was having. The good news is that the connection operates near its advertised bandwidth, the bad news is that tcp connections started to hang. It didn't take long to find out that this particular router drops "unused" tcp connections after five minutes.
The fix recommended in the linked topic (namely sysctl'ing
net.ipv4.tcp_keepalive_time & co) was mostly effective but I had to
lower the keepalive to one minute to keep my ssh sessions alive. The
trouble was that OfflineIMAP connections to the U.S. west coast still
hanged intermittently while it could work with Gmail just fine.
In the end, OfflineIMAP had to be patched to use the keepalive and the keepalive be lowered to 15s:Read more
Saturday, February 26 2011 @ 00:00 +0100
I've moved to an OfflineIMAP + Gnus setup that's outlined at various
places. Gnus can be configured to use ~/.authinfo as a netrc style of
file to read passwords from and can easily use encrypted authinfo
files as well. Offlineimap, on the other hand, offers no such support
and passwords to the local and remote imap accounts are normally
stored in clear text in
For the local account this can be overcome by not running a dovecot server but making offlineimap spawn a dovecot process when needed:
[Repository LocalGmail] type = IMAP preauthtunnel = /usr/sbin/dovecot -c ~/.dovecot.conf --exec-mail imapRead more
Monday, December 27 2010 @ 00:00 +0100
It hasn't been a year yet since I first promised that alpha-beta snippet and it is already added to micmac in all its 35 line glory. The good thing about not rushing it out the door is that it saw more a bit more use. For a tutorialish tic-tac-toe example see test/test-game-theory.lisp.
The logging code in the example produces output suitable for cut and pasting into an org-mode buffer and exploring it by TABbing into subtrees to answer the perpetual 'What the hell was it thinking?!' question.
Sunday, December 26 2010 @ 00:00 +0100
While I seem to be unable to make my mind up on a good interface to alpha-beta with a few bells and whistles, I added a Nash equilibrium finder to Micmac that's becoming less statistics oriented. This was one of the many things in Planet Wars that never really made it.
Let's consider the Matching pennies game. The row player wins iff the two pennies show the same side. The payoff matrix is:
| | Heads | Tails | +-------+-------+-------+ | Heads | 1 | -1 | | Tails | -1 | 1 |Read more
Wednesday, December 01 2010 @ 00:00 +0100
Monday, October 25 2010 @ 00:00 +0200
First, is it possible to get something as simple as
wrong? Apparently, yes. That's what one gets for trying to port Python
code that's pretty foreign in the sense of being far from the way I'd
More importantly, I found out the hard way that sbcl 1.0.11 that's
still on the official servers has a number of bugs in its timer
WITH-TIMEOUT unreliable. Also, it can trigger
timeouts recursively eventually exceeding the maximum interrupt
nesting depth. Well, "found out" is not the right way to put it as we
did fix most of these bugs ages ago.
In the new starter package (v0.8 in git, latest tarball), you'll find timer.lisp that's simply backported almost verbatim from sbcl 1.0.41 to sbcl 1.0.11. Seems to work for me, but I also had to lower the timeout to 0.8 from 0.98 because the main server is extremely slow.Read more
Tuesday, September 21 2010 @ 00:00 +0200
Sunday, September 19 2010 @ 00:00 +0200
The Google AI Challange is back with a new game that's supposed to be much harder than Tron was this spring. The branching factor of the game tree is enormous which only means that straight minimax is out of question this time around. Whether some cleverness can bring the game within reach of conventional algorithms remains to be seen.
- no excessive use of specials (
- player class to support different types of players
MyBot.lispsplit into several files
- it uses asdf (more convenient development)
- made it easier to run tests with executables (
./MyBot) or when starting a fresh sbcl (