Graduated but never done with school

2012-01-07 00:03:32 PST

Tags: , ,

So starting around October last year Stanford started the first few of its free online geared classes. I successful took and completed and passed the Artificial Intelligence class and the Machine Learning class. That, coupled with full time work, pretty much left me with no time for anything else. I was crazy busy for that 10 weeks but I learned a bunch and it was fun. Over the winter break, even though I’ve been busy, I’ve more or less recovered, and just in time, because in a few weeks a whole new batch of free online classes will be kicking off. I’m going to see if it’ll be feasible for me to do 3 this time, but I might have to settle for 2. So If I vanish against for another 10 weeks, that’ll be why.

This stuff is amazing and a lot of it simply isn’t available at the university I went to, so to have it now for free is a pretty big opportunity so I’m eager to cram in as much as I can before it goes for pay (it has the feel of a beta/demo that will go that way once material is built up and kinks worked out).

So cheers! and see you again in the spring!

What have I been up to (summer 2011)

2011-10-08 19:58:51 PST

Tags: , , , ,

Well, aside from being pretty busy with work, I spent some more time playing with OpenGL and Lisp. I took my demo test of a spinning diamond up to the beginnings of a space flight sim. Now we have a ship that has a thruster that applies forward thrust, there is the beginnings of physics. The next logical step would be to add turning, but I wanted to do it with physics, which meant writing torque code and that’s about where I got side tracked and have stopped for the moment. Not super interesting yet, but not bad for someone who has never done 3D programming before. The code is at https://github.com/dballard/flight-sim.



View on YouTube
Video recorded with Record My Desktop

I then got distracted by the idea of a checkers AI by a few articles I read in August. I decided to dust off my Ruby and give that a go but it didn’t get too far before I realized that I was going to have to get side tracked from search in to aggressive pruning and heuristics. I was satisfied with the project even though it doesn’t really play because at it renewed me Ruby which had been shelved since some time last year and reminded me that search of this kind is bloody hard. The code is at https://github.com/dballard/checkers. It can simulate a full game to any depth if you have the time. If you have less than days or years per turn, it’s pretty much no good.

Now I’m getting further distracted by a few ideas in different directions yet again and I’m starting the Stanford AI class and Machine Learning class that they are offering online for free on monday. That should keep me pretty much tied up until years end and I’m looking forward to it all!

Also thanks to my Kobo Touch eReader I’ve been reading a ton, which is nice. I may have to give up my pace of a book every week or two for the next month or two to keep up with the new classes, we shall see.

Release of Fink (my old Go AI bot)

2011-07-09 08:15:49 PST

Tags: , , ,

I woke up today to a message from a physics PhD student in the US asking about my old Lisp Go AI bot code (from the Mindstab Go AI competition of 2008) and if I was ever planning on releasing it or if he could get a look at it since Go and programming were two of his hobbies.

“fink”, as my Go AI bot was called, was my frist real Lisp project, and in hindsight probably not that good, but I learned a lot from it and it was fun, which is all that really matters. Possibly it’s most notable feature now is that it’s a Lisp program that speaks GTP and may provide a base for someone to write a better bot with. So if someone else can learn something from it or use it, that would be pretty cool. So here it is

https://github.com/dballard/fink

There’s some notes about it in it’s README. I don’t recall if I documented it much but hopefully it can be made sense of :)

links for 2011-02-24

2011-02-24 00:01:19 PST

Tags: ,

2010 in passing

2010-12-31 07:22:01 PST

Tags: , , , , , , ,

So 2010′s been a year.

Nearer it’s start some friends and I competed for the second time in MIT’s BattleCode, this time getting second non-MIT spot, or 18th overall. These competitions have been good for us: they are fun, it’s a good group project, and we work on our group project skills like planning, coordinating, and so forth. We spend so much time on our own, or in school even, working solo it’s good to work these skills as they will be needed later. Also it’s fun to learn about and catch up on low level AI stuff, like swarming and flocking movement/coordination techniques etc.

I also entered a school project into BCNet’s Broadband Innovation Challenge and got awarded second place. My project was “Cortex” a P2P processing app that runs with no software install entirely in your web browser. It was comprised of a small Java Applet webserver used as a backbone for communication and then a JavaScript front end, with all the control logic of the P2P network also written in JavaScript. I pretty much wrote a P2P app in JavaScript just using Java only to get around the AJAX/Server of Origin security policy issue. It was an interesting and challenging project and I’m pleased with how it did in the competition.

Over the summer I was in China which was amazing.

Then in the fall while finishing off my degree in CS once and for all I also competed in the Google sponsored University of Waterloo AI Contest. This, while being a simpler solo competition, was notable for me as it was my third major project undertaken in Lisp. I thoroughly enjoyed the challenge and again learned lots more about Lisp and again improved my Lisp style. Lisp and the emacs environment just take longer to learn and wrap my head around. And since I don’t get to work in them constantly, between work and school, it takes time. I’m by no means a master, but after convincing a friend to take a stab at the same competition in Lisp for his first try with Lisp, I at least see how far I’ve come. I’m getting more used to thinking functionally, especially with respect to using Lisp mapping functions instead of loops to modify, filter, or build on data. I placed disappointingly poorly due to lack of time, but I’m satisfied with what I learned (and also proud by association that the winner was a Lisp entry!). It was a good experience. I look forward to being able to undertake some more Lisp projects in the new year.

I also boned up on my Python this fall for a small work project, a multi threaded web crawler for a client. Played successfully with Python’s threading, so that was fun.

And that brings us to now. I’m in Colombia for the holidays, and in my vacation spare time I’ve finally gotten around to looking at the codebase to my school project “Cortex”. As school projects are, it worked, and well, but the codebase was a bit of a mess due to strong time constraints. Now that I have some time I’m doing some massive cleanups and adding a few features I’d wanted to but didn’t have time to. Hopefully early in the new year it’ll be in shape that I can release it. That would be nice.

So 2010 was a great year. I got to write a lot of cool code in several different language. I got to travel more than I ever have before, and I read a lot more than 2009 (traveling facilitates a lot of reading :)). It’s been a good year.

For 2011 though, now that I’m done with school, I’d like to start by releasing more code, starting with Cortex; getting more paying work; and looking at maybe starting a startup. I’d like to spend more time working on both AI (if you hadn’t noticed, obviously a hobby of mine) and in Lisp, starting with getting back into my signed copy of Peter Norvig’s “Paradigms of Artificial Intelligence Programming: Case Studies in Common Lisp” (yes getting it signed was awesome and a ridiculously geeky moment) and moving on from there. I’d like to at least keep up with the reading. I have high hopes for it to be an interesting year.

So here’s to 2010, you’ve been great, lets see if I can’t build on that for a more amazing 2011.

links for 2010-09-07

2010-09-07 00:01:45 PST

Tags: , ,

On the go

2010-01-07 21:04:41 PST

Tags: , , , , , , , , ,

So, what have I got on the go?

  • School: Last semester, just two classes, but they are looking like they’ll be delicious and meaty
    • CS 411: Compiler design: We build a java compiler
    • CS 415: We build an operating system, fun times with C!
    • …actually, I’m also taking spanish!
  • “Paradigms of Artificial Intelligence Programming: Case Studies in Common Lisp” by Peter Norvig. I got this for christmas and have started to work through it. I’m really excited about getting further into it. In the middle of it I’ll be implementing prolog in Lisp and the in the latter half I’ll be working on a natural language processor! Not to mention tons of other stuff, this book is huge and dense.
  • BattleCode 2010 has just started so my team and I are just about to start digging into that. Lots of AI coding to be done there.
  • Peter Michaux’s Scheme from Scratch. I stumbled upon this from Hacker News. This fellow wants to write his own scheme to scratch a mental itch, and he’s blogging each step and posting the code as well. I think it looks like a great amount of fun and that I too have that mental itch, so I’m following along, using his blog as a guide and looking at his code as well when I get stuck, but doing my best to do it myself.
  • The great mindstab.net migration to the cloud! Yes, setting up an entirely new server and migrating years of site history and email etc can take a lot of work.

So yeah, I have an insane amount of work on my plate, but I couldn’t be more excited! All of it is thrilling and amazing!

Also, if I haven’t mentioned it before, the dynamic duo of Jono Bacon and Stuart Langridge of Lug Radio fame are back with a new podcast Shot of Jaq! It’s fun. Really, those two Brits have been the source of the only podcast’s I’ve ever listened to. They are a great source of both Linux and British in my weekly diet.

But now I’m stoked to just find out that Ximian/Linux rockstar coder Nat Friedman and Tomboy creator and a rock star in his own right Alex Graveley have started a brand new podcast Hacker Medley that is the first new podcast that I’m actually quite excited to try out.

Finally, I’m reading “Pattern Recognition” by William Gibson in my spare time (read: on the bus) and finding it pleasant.

Winning BattleCode (excluding MIT)

2009-04-15 19:07:53 PST

Tags: , , ,

I’ve been quiet on the blogging front lately. Don’t know exactly why, could be school has kept me busy, or who knows.

Anyways, I thought I’d pop in and mention something I should have back in January when it started, which is that two friends and I entered MIT’s BattleCode competition. It’s an AI competition that a class at MIT was running, but was also open to public participation. Basically you are writing AI to run inside robots on a battle field. You and your opponent start with a few robots and they have to coordinate and do things like build more units, mine, and attack then enemy. The AI executes inside each robot so there is not overall “player” of the game, just lots of instances of your code, hopefully working together. It was a fun neat challenge.

It also reminded me of how much I’m not a fan of Java, and don’t think I didn’t make a list that I might publish if I get unlazy at some future point. Anyways, we worked on it for a while and then the open tournament was run. And we got the results back this week,

Now since the MIT teams had class time and a whole class of people to work with and bounce ideas off of, sadly they still dominated.

But there was a second ranking, this time of Non MIT teams only, and now for the real surprise: we won!

battlecode.mit.edu/2009/info/glory

Our team was called “Bad Meme” and we were representing UBC and you can see it all their on the results page. Of all the other non MIT teams, we were the best. It’s really kind of surprising and awesome. Especially when you consider that anyone anywhere could enter and it appears that there were teams from places like Stanford and Harvard, and that we beat them. So that’s kind of a buzz.

And so that a big chunk of what I’ve been doing in the past month: programming battle AI. That and school. But now with the competition over and school coming to a draw it’s time to look for some new projects. I have a few ideas already, hopefully I’ll get around to mentioning them before they are over this time, but time will tell.

Mindstab Go AI competition status report

2008-06-22 11:02:17 PST

Tags: , , , ,

Well the Mindstab Go AI competition is really starting to heat up. You can watch the battles unfold over on the match page.

So far the only entered contenders are myself with “fink” and Rob with “RGB”. He took an early lead for a while and was working towards beating our house bot, “Amigo” (found on the net, an old Go bot from the early 90s, was originally an Amiga gobot that was someone’s PhD dissertation. It isn’t super good, but it is fast), and making progress on that. I finally got some free time and have been working a ton in the last week and on friday got my bot up to a point where it could beat his, and thus took the lead. Now with some actual competition the two of use are both hacking away at a good pace and he’s retaken the lead for now but neither of use can quite best Amigo yet.

I’m also pretty happy with myself as my entry is coded entirely in Lisp, and this is my first actual Lisp project. So things are sailing smoothly enough, and I’m also learning tons about Lisp. Also, I’m crediting the high level power of Lisp with letting me do more interesting things easily, which I’m going to attribute to the fact that my bot runs at usually 1/3 to 1/2 the time Rob’s does, even when beating it, and his is written in C. So when it comes to thinking about optimizing, it seems algorithms are a lot more important than the speed of the language implementing it, and a language that lets you more easily use more complex algorithms is possibly better. We’ll see though once everything is all said and done .

We’re hoping a few of the other people who have expressed interest will soon get enough code together to join the competition, and we’re always looking for more interested people. The more the merrier!

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.

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