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 13, 2010
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!
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!
October 27, 2010
CS Pranks: Push it!
While working as a Sunlab consultant at Brown, my buddy and I would frequently find ways to 'spice up' the workspace. If we ever found the other person's workstation empty without being properly xlocked, we'd usually pull pranks on each other: 'alias ls='eject; ls' being a popular harmless one, or writing zwrite <username> -m "PAUL LOGGED OUT" on my .logout file, executed anytime I logged out.
The sad thing about these pranks was that occasionally someone else would do a more malicious one, and we'd get blamed :( But there's still so much fun to be had from finding ways to shake things up.
This tweet by Coding Horror's Jeff Atwood gave me the idea for the next one:
Naturally, the youtube link plays this:
Gotta love the 80's.
Were I still there, I would love to institute this. But for now, I'm setting it up on my machine, to keep things from getting too boring. To do this yourself you'll need the following:
Given all this, the rest is easy as pie. There are surely more elegant solutions than what I did:
Now just use git psh instead of git push, and have a surprise every now and then ^_^
The sad thing about these pranks was that occasionally someone else would do a more malicious one, and we'd get blamed :( But there's still so much fun to be had from finding ways to shake things up.
This tweet by Coding Horror's Jeff Atwood gave me the idea for the next one:
by law, every fifth push to DVCS must be followed by this video link http://www.youtube.com/watch?v=vCadcBR95oU
Naturally, the youtube link plays this:
Gotta love the 80's.
Were I still there, I would love to institute this. But for now, I'm setting it up on my machine, to keep things from getting too boring. To do this yourself you'll need the following:
- mpg123, a simple command-line mp3 player. Easily installable.
- An mp3 of Salt-n-Pepa's Push It
Given all this, the rest is easy as pie. There are surely more elegant solutions than what I did:
- Store the number of pushes in an external file echo "1" > how_many_pushes.txt
- Write a script to keep track of and increment that number as time goes on. Here's my Ruby script:
- Execute git config --global alias.psh !push_wrapper.rb.
Now just use git psh instead of git push, and have a surprise every now and then ^_^
October 24, 2010
Fear and Loathing
Glenn Greenwald has another winner, this time over the firing of Juan Williams after his "I's afraid of Muslins!" kerfuffle. His article is great by describing the general trend of fear and loathing in America:
The terrorists have won, guys. They flew a few planes, destroyed some buildings, killed a couple thousand people. It was our idiotic scared reactions which drove us to record deficits, torture, fewer civil liberties, a surveillance state, and participation in the two longest foreign wars in US history, which killed more of our people than the planes did (not to mention Iraqis/Afghans). And we're still scared.
It's simple advice, sadly still relevant: Refuse to be terrorized. Stop playing into their hands and for Baal's sake, grow up.
----
On the theme of cultural Paul-is-grouchy, Dan Savage has an exchange, followed by another, from Good Christians who wish he'd just stop being so mean! He (rightly) tells them to shut up and wake up:
It's required reading. As someone who also doesn't keep silent on the horrors of irrational thinking (usually religious or religiously motivated), I too tire of the "stop being so mean, Paul!" line. Really guys, all I do is report the news. If you aren't completely outraged, you aren't paying attention. And any offended religious folk should probably be pointing their ire elsewhere, since I'm normally reacting to egregious events. The "don't be offended at me" angle was the genius of this song:
While not religious, also relevant:

I know we all want to be friends and not have anybody's feelings hurt, but kids, some shit is just stupid. And I'll call it that.
To start with, as a general proposition, it's vital that the American citizenry always be frightened of some external (and relatedly internal) threat. Nothing is easier, or more common, or more valuable, than inducing people to believe that one discrete minority group is filled with unique Evil, poses some serious menace to their Safety, and must be stopped at all costs. The more foreign-seeming that group is, the easier it is to sustain the propaganda campaign of fear. [...]
"The Muslims" are currently the premier, featured threat which serves that purpose, following in the footsteps of the American-Japanese, the Communists, the Welfare-Stealing Racial Minorities, the Gays, and the Illegal Immigrants. Many of those same groups still serve this purpose, but their scariness loses its luster after decades of exploitation and periodically must be replaced by new ones.
The terrorists have won, guys. They flew a few planes, destroyed some buildings, killed a couple thousand people. It was our idiotic scared reactions which drove us to record deficits, torture, fewer civil liberties, a surveillance state, and participation in the two longest foreign wars in US history, which killed more of our people than the planes did (not to mention Iraqis/Afghans). And we're still scared.
It's simple advice, sadly still relevant: Refuse to be terrorized. Stop playing into their hands and for Baal's sake, grow up.
----
On the theme of cultural Paul-is-grouchy, Dan Savage has an exchange, followed by another, from Good Christians who wish he'd just stop being so mean! He (rightly) tells them to shut up and wake up:
I'm sorry your feelings were hurt by my comments.
No, wait. I'm not. Gay kids are dying. So let's try to keep things in perspective: fuck your feelings.
A question: do you support atheist marriage? Interfaith marriage? Divorce and remarriage? All legal, of course, and there's no Christian movement to deny marriage rights to atheists or people marrying outside their respective faiths or to people divorcing and remarrying. Why the hell not? [...]
The children of people who see gay people as sinful or damaged or disordered and unworthy of full civil equality—even if those people strive to express their bigotry in the politest possible way (at least when they happen to be addressing a gay person)—learn to see gay people as sinful, damaged, disordered, and unworthy. And while there may not be any gay adults or couples where you live, or at your church, or at your workplace, I promise you that there are gay and lesbian children in your schools. You may only attack gays and lesbians at the ballot box, nice and impersonally, but your children have the option of attacking actual real gays and lesbians, in person, in real time.
Real gay and lesbian children. Not political abstractions, not "sinners." Real gay and lesbian children.
It's required reading. As someone who also doesn't keep silent on the horrors of irrational thinking (usually religious or religiously motivated), I too tire of the "stop being so mean, Paul!" line. Really guys, all I do is report the news. If you aren't completely outraged, you aren't paying attention. And any offended religious folk should probably be pointing their ire elsewhere, since I'm normally reacting to egregious events. The "don't be offended at me" angle was the genius of this song:
While not religious, also relevant:

I know we all want to be friends and not have anybody's feelings hurt, but kids, some shit is just stupid. And I'll call it that.
Back from Istanbul!
I'm a week back from my marvelous trip, photos over at Madly Brilliant's blog and a Facebook album.
I can only say it was a magnificent, magnificent week. I might even say transplendent! Istanbul is one of the most beautiful cities I've ever been to, and Turkish people were (as many people are) kind, warm, and happy people.
Sometimes I imagine/fantasize doing what my mother did, which is to go to another country where you don't speak the language and really make a life for yourself there. If I had to do it anywhere, Istanbul would be a great candidate. While you have the beautiful old city, you also have a thriving, modern hub rich with activity and the city life that I love so much.

So why aren't I thinking of ways to make my life there now? There are a few sore points with my Turkish experience:

Despite these little thorns (and most countries, ours included, have more and more severe ones), I'm pretty much in love with that country ^_^
The whole experience also made me think of my new adulthood. I'm working, and loving it, but occasionally thinking to myself "So when's Winter Break?" Oh yeah, there isn't one. You get three weeks a year.
If my three weeks get to be like that one was, it's a bargain for twice the price ^_^
I can only say it was a magnificent, magnificent week. I might even say transplendent! Istanbul is one of the most beautiful cities I've ever been to, and Turkish people were (as many people are) kind, warm, and happy people.
Sometimes I imagine/fantasize doing what my mother did, which is to go to another country where you don't speak the language and really make a life for yourself there. If I had to do it anywhere, Istanbul would be a great candidate. While you have the beautiful old city, you also have a thriving, modern hub rich with activity and the city life that I love so much.

So why aren't I thinking of ways to make my life there now? There are a few sore points with my Turkish experience:
- It's illegal to criticize Ataturk in Turkey. Not that I know enough about him to criticize him at all (hell, it's because of him Turkey is the success story that it is, in terms of secularism) but I still find this law egregious. We all know I'm pretty anal about freedom of speech though.
- Youtube is banned throughout the country after trolls made fun of Ataturk. Really? Yeah, that'll show'em! The funny thing is there are crappy proxy sites people use, and the prime minister himself said something along the lines of "the supreme court made a dick decision, so use the sites. I know it's illegal, but you should use them anyways."
- Turkey is the most dangerous place to surf the internet. It hardly affects me because I'm usually on Linux/Mac, and am a security buff. But still, hardly a mark you want. Madly Brilliant found 2 viruses on her USB drive after lending it to a Turkish Roommate. That's what happens when you stick your stick in the wrong slot!
- Finally, its turn back to religion. While Istanbul and Izmir remain pretty secular, populated almost exclusively by MINOs (Muslims in Name Only), this is true of almost any country: the big cities are pretty secular. What also matters is the leadership, and the general populace, both of which are crossing into more religious territory. I avoid that when I can.

Despite these little thorns (and most countries, ours included, have more and more severe ones), I'm pretty much in love with that country ^_^
The whole experience also made me think of my new adulthood. I'm working, and loving it, but occasionally thinking to myself "So when's Winter Break?" Oh yeah, there isn't one. You get three weeks a year.
If my three weeks get to be like that one was, it's a bargain for twice the price ^_^
October 8, 2010
Off to Istanbul!
I'm off next week to visit Madly Brilliant in her current home of Istanbul, Turkey. She's abroad for the first time, spending 5-ish months as a lab tech, so my visit bisects hers. Mad props to Adobe for letting me do this ^_^
(by the way, we just released the AIR Runtime for Android! Download it onto your phone now, and enjoy mobile AIR apps ^_^)
Of course, I'm visiting during a terror warning. Surprisingly, I'll describe my reaction with a meme:

Bruce Schneier (from 2004!) and Slate highlight why this is so.
Also, the last show I sound designed at pw used Fly Me To The Moon as a recurring musical motif. So when I heard this, at first I was like "Hmm..." but then started grooving contentedly:
I have a very colorful, mixed relationship to the theatre that produced the show (I was on the board). Still, they have a wonderful little wiki where I made and defaced a profile page.
Away I go!
(by the way, we just released the AIR Runtime for Android! Download it onto your phone now, and enjoy mobile AIR apps ^_^)
Of course, I'm visiting during a terror warning. Surprisingly, I'll describe my reaction with a meme:

Bruce Schneier (from 2004!) and Slate highlight why this is so.
Also, the last show I sound designed at pw used Fly Me To The Moon as a recurring musical motif. So when I heard this, at first I was like "Hmm..." but then started grooving contentedly:
I have a very colorful, mixed relationship to the theatre that produced the show (I was on the board). Still, they have a wonderful little wiki where I made and defaced a profile page.
Away I go!
October 4, 2010
moar remixes
I'm a tired, grumpy Geodude, but I have to post these remixes, because they're quite lovely. 16 pop tunes:
Glenn Beck/Donald Duck. It only really picks up after 3:00 or so.
Not a remix, but this short was used as an illustration of how one can be an atheist and still at peace with the world. I don't know if I agree with that assessment, but it is a wonderful piece:
Glenn Beck/Donald Duck. It only really picks up after 3:00 or so.
Not a remix, but this short was used as an illustration of how one can be an atheist and still at peace with the world. I don't know if I agree with that assessment, but it is a wonderful piece:
Subscribe to:
Posts (Atom)