- Needs more cognitive agents to do his bidding #
- Remember "Slingers"? Apparently it's not dead, just moving veeeery slowly! Still good news. #
- While I'm enjoying G+ the number of stories of users getting their entire Google accounts locked is why I still host my own email and jabber #
- Also starting a monthly cloud backup: download my FB data and use google's tackout, which when your account is locked you can't use anymore #
- Sweet! I just used sb-sprof, deftype and declare for the first time to greatly speed up my lisp code :) Yeah for optimization! #
links for 2011-07-25
Some good examples of what you can do with common lisp typing
Great tutorial on profiling your common lisp program in SBCL and using deftype and declare to speed it up
- I think the puddle I just stepped in was trying to tell me I was too optimistic this morning when I put on sandals ;) #
- aaand there's a burning car across the street in the seabus/skytrain/steamworks parking lot… 0_o? #
- Today I am 852,000,000 seconds old, or 9,861 days old or 1,408 weeks old or 324 months old or 27 years old. Hopefully lots more to come :) #
Zach outlines how to start projects using quicklisp and quickproject
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
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 :)
So as you may know I’m trying to keep up with programming exploratory side projects in my spare time, somewhat spurred on by among many things, The Cult of Done. After learning a bit about HTML5 and Canvas and writing the The Game of Life for Canvas I wanted to move on to something more meaty. That’s about as far as I’d ever gone in graphics programming so I wanted to keep pushing on in that vein for a bit. So I figured why not check out 3D land. I briefly looked at WebGL but it’s not entirely ready just yet. Some of the tech demos look decent but for one thing, there’s almost no interactivity in the more complicated ones like flight sims, I assume because a good IO system isn’t in place, so I figured why not go for straight up OpenGL.
The defacto language for OpenGL programming is C/C++ however I’ve done my share of C programming and I’m enjoying higher level languages for many things these days. I have an ok relationship with Python but it doesn’t get me excited or anything, and I’m still working at getting better at Lisp which I am fond of so I thought why not use this as another excuess to work in Lisp? And so against some people’s advice I’ve been exploring OpenGL programmign in Lisp.
I Googled around and found that the basic package is cl-opengl and using Quicklisp got that installed and found a very basic tutorial for getting a window to show with a tutorial at nklein.com from NeHe. It worked okish but not really. Then I found 3bb.cc’s cl-opengl tutorials which were better. They used SDL instead of GLUT to make a window and the first one worked and I had a raindow triangle. Instead of going on, I started looking at the opengl.com tutorial’s in C and tried translating them. I worked through the cube.c one, but it didn’t quite work, so after a bit I gave up.
I went back to the 3bb code and instead of continuing on with the tutorials, I just started working on it myself and googling for parts I needed and getting some help from a friend who’d done some heavier OpenGL programming in C. I made the color change over time (like I learned for the game of life). Then I made the triangle spin. Then I added a second back triangle and made them spin. Then I fleshed it out and made pyramid, then a diamond that spun. Then I finally made the spinning color changing diamond that also moved in a circle, refactoring the code a few times in the process.
Now I have a nice simple tech demo and some code and understandings of the basics of OpenGL and 3D programming. For about 8 days work in spare time I am very pleased. I have more plans to move on to from here, but I’ll probably start a new project for it. The code for all my demos is on github at https://github.com/dballard/cl-opengl-tests. The only one that really works is 3bb.lisp and you need cl-opengl and lispbuilder-SDL.
Something I discovered is that the linear algebra scene for Lisp is confusing and a mess (IMHO). There are a bunch of projects for it, all kind of a mess with no apparent blessed/defacto standard library. I looked at L-math, but the version in quicklisp seemed a bit broken :/. This whole Lisp philosophy of always using the latest dev code instead of stable releases seems… against better sense. And seemed to fail me here. I looked at Femlisp/matlisp but their own FAQ talked about how their linear algebra implementation was slow and that’s all I wanted it for. So in the end I just rolled my own. It was fun and I had to remember some basic math from a few years ago.
Here’s the final product:
View on YouTube