Mindstab Go AI competition really starting now

2008-05-10 02:10:44 PST

Tags: , , , ,

Ok, so I know we announced it at around Christmas, but *now* the Mindstab AI Go Competition is starting to get under way. Both Rob and I now have entries that can compete, though mine is mostly just an over engineered random bot, until I get even more framework in place.
Still, everything has really started happening this week as now that school is over, I've had some time to devote to this, so my bot finally got off the ground. And then we got together to day and hacked on the server some more cleaning it up, and making an 0.2 release of out Go client/server software.
Finally, and most fun, we whipped together a Matchs page where you can see all the results of games so far. See, real proof that things are happening!
So with this out of the way I can really start to focus on the bot. To that end I've defiantly come up against some quicks in Lisp and SBCL. But then today we were also working in C, Python and PHP and we certainly came up against some quirks in the first two (oddly PHP really does manage to get out of your way and let you do your thing). Still, I think I have things mostly worked out and I can focus on the bot. Which is fun because I'm finding for the most part I'm really enjoying coding in Lisp and Slime+Emacs is pretty rocking. As for the bot, I'm excited. I've got some fun plans for it and I haven't done nearly enough fun coding since school's been on.

Note for C developers on Ubuntu

2008-05-09 11:57:13 PST

Tags: , ,

Right, so when doing C development on Ubuntu I suddenly noticed something was missing in the pan pages department. Like all the C api.

apt-get install manpages-dev

ah that's better. Someone might want to make it part of the 'build-essentials' package.

C++ is getting Lambda expressions! (and Cadbury creme egg cakes)

2008-03-31 00:28:00 PST

Tags: , , ,

C++0x, the next version of C++ due by the end of the decade has just had Lambda expressions added to the language. This is great!
Read about it at herbsutter.spaces.live.com/blog/cns.
It should look something like the following

 
find_if( w.begin(), w.end(),
             []( const Widget& w ) -> bool { w.Weight() > 100; } );
 

Sadly, Lambda expressions haven't made their way into GCC, so I can't play with them... yet!

Also, thanks to George for this:

Cadbury Egg Cake :D

Experiment:

Replace ordinary eggs in cake recipe with Cadbury Creme Eggs and observe results.

Hypothesis:

THIS IS GOING TO BE SO AWESOME

bigmixup.com/content/cadbury-cake

I just wrote my first buffer o…

2008-02-12 22:49:46 PST

Tags: , ,

I just wrote my first buffer overflow exploit... for marks!!

Bonus

2008-01-09 09:07:19 PST

Tags: ,

Wow, I'm going to get to learn HCL as well as x86 assembly for my OS and Hardware class. Cool.

Mindstab Go AI competition kicks off

2008-01-07 22:35:31 PST

Tags: , , , ,

So this has been in the works for a bit, and now that I have the basic server software up and running I can let the cat out of the bag! We (some friends and I) are having ourselves an AI competition writing Go bots (Go the ancient Japanese board game). All the details of the competition are on the wiki at ai.mindstab.net and the client (and server) software can be gotten from ai.mindstab.net/wiki/index.php/Goserver.

Anyone who is interested is more than welcome to join our merry little band of novice AI hackers. Just sign up on the wiki and make your presence known.

As for writing the Goserver software, that was an interesting little adventure. We built it around GnuGo's twogtp.py initially. This was my first time really working in Python, and I've got to say it was a pleasure. The language does a really credible job of getting out of your way and just letting you do stuff. There are a few odd little things about the language but once you get up to speed coding in it they hardly seem a problem. I still think I like Ruby overall for elegance, but until Ruby 2.0 lands with it's proper VM, execution speed isn't even comparable. Not that for this server that was an issue, more that we had a bunch of already written python code in gtptwo.py, which is is why Python was chosen. Still defiantly pleased, it's a fine language. So yeah, fun times.

As for a little more history for the 0 people who are interested, we're using GTP (Go Text Protocol) for the communication between engines and server. It's a protocol penned by the folks at GNU for GNU Go but being adopted else where. So there's plenty of software that can speak GTP as a client and several engine vs engine pieces of code using GTP out on the web GPLed for public use. However, running an actually Go server means you need to facilitate lots and lots of matches and also keep track of scores. Code for all that for the different internet Go servers is all closed source, which is why we had to write our own before we could start the competition. That done, we're all ready to Go!

I have finally beaten Belkin’s F8U1500-E insane and buggy IR protocol

2007-09-03 14:37:34 PST

Tags: , , ,

I finally think I did it! I finally made my Belkin F8U1500-E IR keyboard talk properly with X on Familiar Linux on my IPaq hx4700. Yes yes, I'll get to the whole buying an IPaq and putting Linux on it in a bit. But this has been a huge hassle and a lot of work thats had the side effect of me learning to speak the apparently overly complex language the keyboard talks (press a button, send one event not 3 or 4, no?). Wicked. This is super cool. More details later. I am champion.

Job + a cursory look at XML + HTTP libraries

2007-04-28 00:38:03 PST

Tags: , ,

School's out for the summer. Looks like I'll be graduating from Langara college with an Associates of Computer Science degree, and then going into 3rd-ish year of Computer Science at UBC in the fall. Pretty nifty.

I didn't score the lab aiding job I was looking for for the summer, but I have managed it seems to get some contracting work for web development, PHP/MySQL/Javascript stuff. Hopefully it will be reasonably bountiful all summer long, UBC ain't cheap.

Also, on my own time I've been reading up on XML libraries and http libraries. As you might be able to guess I'm looking at doing a project that involves HTTP and XML, so picking good libraries would make life so much easier. I want something that obviously has a good API and is actively maintained. So I dug up what projects I could and checked their homepage for mission statement, last release, and used Gentoo's equery to see how many packages in Portage depended on each one for a crude popularity metric. Popularity doesn't mean good, but it can give you at least an indication of what has been working for lots of people. The results as summarized and interpreted by me:
XML libraries

  • expat: (221) seems pretty popular, been around for a while, but slow development. Last release, 2.0, was January 2006
  • libxml2: (882) Quite powerful looking xml library. Big with the Gnome crowd I believe. Fairly active development. And looks quite popular.

HTTP Libraries

  • libwww: (29) The W3C's contribution, used by a handful of projects, but sadly, last updated 2002.
  • libcurl: (241) Active development, somewhat popular, but marred by a need for a one time two part global initiation. I'm not sure how it could be worked into a library, and still allow the using app to also use libcurl. The whole API seems a bit not good. Origional design was not sufficent but they didn't want to break backwards compatibility so you have lots of functionName2s floating around. It's kind of ugly.
  • libsoup: (57) Gnome's HTTP library, GObject based for better Gnome app integration. Active development.
  • neon: (47) Somewhat slow, but still active development. Also has XML handling facilities! Also, apparently used by GNOME VFS. I think a newcomer to the game somewhat.

Recommendations?

2006-11-15 23:29:49 PST

Tags: ,

If I'm looking for the book on Javascript and Ajax, what would it be?

Lispbox on a stick

2006-10-16 14:24:55 PST

Tags: , ,

I've started reading Practical Common Lisp and so I also wanted to get lispbox installed on my USB stick to play around with it. Lispbox is a fully self contained lisp environment + editor + extras that is supposed to be portable. I got it installed but it was giving me an error before loading. So that was sad.

After looking it at it more closely I noticed it was an access denied error. Upon further inspection it was trying to write to the C: drive and that's not possible on our school computers. After some googleing I came upon this post which had the solution. In lispbox.bat add 'set HOME=%CD%' just before the line launching emacs. Then it uses the USB stick as the 'home' directory and everything works.

Valid XHTML 1.0!
Valid CSS!
Mindstab.net is proudly powered by WordPress
Entries (RSS) and Comments (RSS).
18 queries. 0.558 seconds.