November 21, 2010

Another lazy video post

The weekends are when I get lazy. I got promoted to Diamond League in Starcraft. I'm still plugging away on ScrabbleCheat (see the branch 'feature-curses-ui'). Did me some laundry.

While folding/placing laundry and cleaning up my room, it's good to have some videos or music playing. If you have an hour to burn, there's a great 1 hour interview in 4 15-minute segments with Christopher Hitchens:



If you only have 7 minutes, in honor of our departing Governer:

November 18, 2010

Every morning of my undergrad

I had a Serious post all lined up, made of words and things, but found an old video I forgot the name of, and decided to post it instead.



It's been a long, exciting week at work, kids. I'll post with words and write some long delayed emails when I have a wee bit more energy ^_^

November 13, 2010

I have a music degree, too

Little known fact, but true. While I took traditional music theory and piano, I kind of endured that; the degree had a focus on Electronic Music and digital media production. It was affiliated with the Multimedia and Electronic Music Experiments (MEME) program at Brown.

And sometimes I miss creating things with the skills I gathered in it. This kind of things is pretty awesome:



And while I linked it a long time ago already, it's always nice to have a refresher:



Another:



And some vintage Norman McLaren for you:

The Road to Lisp Survey

I, Paul Meier, do solemnly offer these responses to the Road to Lisp Survey:

When did you first try Lisp (meaning here and throughout the survey "any member of the Lisp family") seriously, and which Lisp family member was it?

I took Lisp seriously after my first exposure to it, in Shriram Krishnamurthi's programming languages course, based on his excellent book, PLAI (download it! it's free!). We mostly used Scheme for the course (the implementation now called Racket), and while I could call the programming from that class my first exposure, I really only explored it during self-study after the course.

In the Preface to his book, Shriram mentioned The Little Schemer as a good introduction to thinking in Scheme. In the Acknowledgments, he said "Please read those magnificent books even if you never read this one" of two books, one of them being Structure and Interpretation of Computer Programs. I picked them both up that Winter, and I was hooked.

What led you to try Lisp?

The answer is really in the next question, but I'll also mention that this was not just my first exposure to Lisp, but functional programming as a whole. While I enjoyed programming to a point, what really interested me in Computer Science was the strong theoretical results we'd achieved: the fact that we could prove undecidability kept me awake for weeks.

So part of my migration to Lisp wasn't just to homoiconic syntax and dynamic type systems: it was also the wonders of functional programming I would find prominently in Scheme.

If you were trying Lisp out of unhappiness with another language, what was that other language and what did you not like about it, or what were you hoping to find different in Lisp?

I took the languages course at the same time I took our excellent graphics course, where we used C++. I found I spent much, much longer debugging the C++ programs, for a much less interesting class of bugs. You'd pull your hair out, looking at memory addresses and pointer values only to find you did your pointer arithmetic wrong (we were investigating a two-dimensional matrix stored as a linear array), or that a state change occurring in an edge case was leaving your program in an inconsistent state. It was frustrating, to say the least.

In Scheme, I was only fixing logical bugs. I spent more time thinking than typing. My programs were shorter and elegant. It's as if, by framing the problem differently, hundreds of edge cases and corner cases simply ceased to exist.

And there's something to that. Removing state means putting a lot more effort up front, but ultimately makes your programs worlds easier to write and maintain after you've invested. Not to mention spending your brain cycles modeling is worlds more fun spending them debugging.

Of course, I didn't know that back then; I moved because I just had the feeling they were doing something right, and I could learn something valuable.

How far have you gotten in your study of Lisp? (I know, that is hard to measure)

This is very hard to say. In many ways, I'm still a novice, since most of my Lisping doesn't take full advantage of macros, Lisp's crown jewel. I'm still much more comfortable in Scheme than CL, Clojure, or Arc; I'd call myself a competent Lisp programmer having written a few small programs and baby scripts, with a toe in advanced and a longing to go expert.

What do you think of Lisp so far?

I think it's still a very advanced, progressive way to approach programming, at least with smaller engineering teams. I'm completely unsurprised it's not used in industry as much; it's a large investment, and languages rely heavily on community. Incidentally, I feel the only real rival to Lisp in caliber would be Haskell, who's unofficial motto is "avoid success at all costs." ^_^

--------------

Also, any of you see atomo? It looks pretty hip, if ambitious...

November 7, 2010

THE LAND OF LISP

It's been a while since I've been able to run through a code book, with life throwing me so many welcome curveballs since the summer. But I'm finally taking the time to work through a book like old times; this go-round is with Conrad Barski's Land of Lisp. I probably wouldn't have gone for it, but the music video he made was just too cute:



The book is peppered with cute cartoons and a whimsy feel that is endearing, not overbearing. I highly recommend it, if only for the comics (though working through the examples is fun, the games you make really highlight Lisp's strengths).

Some may recall that I've dabbled in CL before; sadly that affair was over before it started (curveballs!), but my next project after ScrabbleCheat will likely be in either Haskell or Common Lisp ^_^

And how goes ScrabbleCheat? Quite well, actually! The technologically adventurous can download and play with it now. What I'm working on now is a simple UI in ncurses, which will probably take another week or two. But as soon as that's up, the program should not only be functional (which it mostly is now), but usable!