Time for another update. I'm pretty slack, so I'll just take the time to say "Merry Xmas!", because knowing me I won't post again before the big fella in the red suit arrives.
Personal:
Isis and I are trying to go boarding every weekend, and so far we are 4 times in the past 5 weeks. The last couple of times we went to Willamette pass (willamettepass.com), smaller ski field than Mt Hood, but a lot less people and easier for us to get to. I'm pretty happy on Green runs now and Isis has enough board control that she can get down a Green run at a speed she is happy with. Lots of fun! We have one more weekend to practice before we head to Canada and Whistler Mountain for Xmas with Isis' Canadian relatives.
Work:
Sigh, nothing too bad, but nothing too good. At least it is nearly Christmas.
Geek:
Still playing with Lisp. This language really is different. Normally when I pick up a new language, I read some documentation, write a few trivial examples and then throw myself into a project that is somewhat graphical in nature. Not so with Lisp, mostly because I really don't feel like I have enough understanding to create a decent Lisp program. I look at some of the code posted to c.l.l, and my mind boggles.
I am also frustrated that the best Lisp development environment is Emacs + Slime, I like Vim damnit. I've discovered a few techniques that are making me somewhat productive, but I am having to debug printf style for the most part. The good thing is that I am doing very little debugging, I can test snippets of code very easily, run them in the Lisp (SCBL to be exact) image and know that for the most part they work.
To learn Lisp better I am writing a Vim clone. I started using Ltk (a Lisp binding to Tk), and had a passable prototype quickly. It was dog slow though, mostly because of me. Profiling the code showed that huge amounts of time were being spent in low-level SBCL string functions, it took me a while to understand why.
I was repainting the screen at every character press - this is slow, but hey nothing compared to rendering Open GL scenes at 60 fps - the way that the Ltk binding sends commands to Tk is via a text stream pipe to a Tk interpreter, which results in a lot of created strings & a lot of data transfer.
I decided to give up on Ltk rather than optimise the string passing, after all Ltk was never my prefered target front-end, a simple text ncurses interface was.
So back to cl-ncurses. Which promptly blew up on my new SBCL install for reasons unknown. Generally the code in cl-ncurses is fine, but there are some nasties, for example, to access C macros (getyx), the author created a C file with functions that simply wrapped the macros. The C file needs to be compiled by the system's C compiler, which means that cl-ncurses needs to be explicitly aware of different platform specific details such as what compiler to use. Ick.
So I looked at Verrazano, which automatically generates bindings from C/C++ headers. In general this is a good idea, because you can track the latest C headers by just rerunning VZN over them. Contrast this to cl-ncurses that was finished in 2004 and hasn't tracked ncurses changes since.
VZN is very good, not quite there yet, but I learned a lot about Lisp libraries & how to install them by installing VZN's dependancies. It is actually pretty easy, I'll have to write about it.
I also posted an idea to cll about forming CL Janitors (now CL Gardeners), which is a project where a bunch of newbs like me can help CL in general by doing some clean up work.
Got to run, laters!!
Happy New Year.
December 28 2005, 02:05:52 UTC 6 years ago
Glad to hear you have been boarding a lot. I still have not gone up, been really busy. Next weekend for sure. I bet the boarding in Canada will be awesome! Hope you have a good time.