Land of Lisp is finally out...and has a music video.
landoflisp.com
landoflisp.com
I'll be lurking in this thread today and tomorrow... feel free to post any questions about the book or about Lisp in general and I will answer them.
Here's the only coupon code currently for the book. I'm posting it exclusively on HN and proggit: 76738380768586 (ASCII for LISPLUV :-)
It gives a 35% discount on the Book+eBook combo on the No Starch site (http://nostarch.com/lisp.htm). It expires 11/3. (FYI- If you just want the eBook, No Starch already has a 50% off sale right now across the board. If you only want the print copy, Amazon has a heavily discounted price already, for reasons that are mysterious to me. Oh, and if you've already pre-ordered, just cancel and reorder to get the discount.)
Long Live Lisp.
Also: I have really enjoyed your writing on the web for a long time!
After some 3 attempts of download, I could download the book. All I can say is that this book is really awesome!
> (defun pudding-eater (person)
(cond ((eq person 'henry) (setf *arch-enemy* 'stupid-lisp-alien) '(curse you lisp alien – you ate my pudding))
((eq person 'johnny) (setf *arch-enemy* 'useless-old-johnny) '(i hope you choked on my pudding johnny))
(t '(why you eat my pudding stranger ?))))
> (pudding-eater 'johnny)
(I HOPE YOU CHOKED ON MY PUDDING JOHNNY)
> *arch-enemy*
JOHNNY
arch-enemy at this time should hold the value 'useless-old-johnny, not 'johnnyAt least the intent of the code is still clear.
CL-USER> (defvar *arch-enemy* nil)
(defun pudding-eater (person)
(cond ((eq person 'henry)(setf *arch-enemy* 'stupid-lisp-alien)'(curse you lisp alien - you ate my pudding))
((eq person 'johnny)(setf *arch-enemy* 'useless-old-johnny)'(i hope you choked on my pudding johnny))
(t'(why you ate my pudding stranger?))))
PUDDING-EATER
CL-USER> *arch-enemy*
NIL
CL-USER> (pudding-eater 'johnny)
(I HOPE YOU CHOKED ON MY PUDDING JOHNNY)
CL-USER> *arch-enemy*
USELESS-OLD-JOHNNY
CL-USER>Will this book be available for Kindle by any chance?
I.e., we could produce a native ebook (not pdf) file for the Kindle, iPad, Nook, Sony, and a bunch of other dedicated e-reader devices.
And thank you for the book and the awesome video and comic! :-)
This might be just the perfect companion to "Pratical Common Lisp" by Peter Seibel. I always thought PCL is an excellent book for someone who already knows some Lisp. With these two books, I believe you really achieve a powerfull combo to start learning and using Lisp!
And the music is very cool too :-)
Just ordered. (The ebook seems to be working fine now.)
FWIW, the proof used the halting problem and went like this. Assume there is a an unoptimized program that, when ran, would go through a series of motions but ultimately halt without any useful output or side-effect. Assume there existed a perfect compiler, PC; that compiler would need to be sufficiently smart enough to translate the problem to a single HALT instruction (or "Label X: goto X".) But since the halting of programs can not be proven analytically, it stands to reason that PC does not exist.
"Hello from Amazon.com.
Due to a lack of availability from our suppliers, we will not be able to obtain the following item(s) from your order:
Conrad Barski "Land of Lisp: Learn to Program in Lisp, One Game at a Time!" http://www.amazon.com/gp/product/1593272006
We've cancelled the item(s) and apologize for the inconvenience. We must also apologize for the length of time it has taken us to reach this conclusion. Until recently, we had still hoped to obtain these item(s) for you.
Your credit card will NOT BE CHARGED for this item because you only pay for items when we ship them to you."
I am just bummed I did not notice sooner but glad I caught this thread so I can re-order! SO excited - just wanted to give a heads up in case other people were under the impression that they should be seeing it arrive on their doorstep.
update: per the authors comment below I have used the promo code to order directly from no starch so I can read the digital version while I wait for the lovely physical copy.
Right now you can order on Amazon without difficulty.
My philosophy of marketing is that you need to do something different that no one else has done before to attract attention. There wasn't a programming book with a music video yet, so I exploited that fact :)
But of course, there's still plenty other ideas that could be used to market other books/sites...
Happy to talk about Lisp/Clojure anytime. (with a little notice)
This all got me thinking about developing interactive stories and the ideal lisp game development environment...
I hear from people who want to create interactive books and lessons for iPad. I recommend they prototype things in PowerPoint or Keynote first, then hire a developer to turn it into a cocoa app or a HTML5 web app with webkit animations. Its too hard.
If the ideal tool was a web app, you could develop games and interactive lessons for iPad and other tablets directly on the device.
You'd want a DSL for standard slide/rotate/scale animations, and write code in lisp for game logic. This would bypass expense of developing native cocoa apps yet reach nice platforms.
Ideally you'd prototype quickly and be led gently into the best language. I guess mobile is the primary computer for most young people, so would be ideal to take a lisp environment to them.
If your reading this Conrad do you mind me asking you about your art work? It's, hands down, some of the best cartoon drawing I've seen on the web. I'd love to know what tools you use to do the drawing and make the animations, and what process you go through when developing them.
I used to do all the artwork in ink and then scan it. Now I do it all on my iPad with SketchBook Pro (took me a while to figure out how to get decent quality this way- At first, I didn't think decent drawing on an iPad was possible)
The animation was all done by importing bitmap artwork into Toon Boom animation. It's a cheesy Windows program (i.e. save your work every 30 minutes, or else...) but is feature rich.
I'll look at some of the things you mentioned and see about trying them.
(thanks again!)
(Hope they release a large-screen iPad soon :)
If the formula works well, please comment there and suggest the authors accept my pull request. (If not, I ll be very happy to help.)
(BTW, Conrad, I think you meant to say 'geezer' instead of 'geyser' in the comic adapted from your epilogue...?)
I'm hoping I can use the book to teach lisp to some junior high kids in a disadvantaged youth program. Is it appropriate for that, or no?
I'm not sure the book can really take someone from zero programming experience and teach them Lisp- It assumes at least some programming background. It would be fine for junior high kids if they already know a bit of programming, but I suspect they may not.
I'm speechless...
However, I was amused to read: "Continuations are such an awesome feature that they don't really have a downside." Personally, I find that continuations are utterly mindbending. While the comic says carelessly applied DSLs can make it hard to understand code, I think continuations can make it downright impenetrable.
I love this little continuation brainteaser: http://groups.csail.mit.edu/mac/ftpdir/scheme-mail/HTML/rrrs...
(piano solo)
"balance weasels on a rake .."
Too funny .. :-P
Conrad, you're awesome!
Also, your video on landoflisp.com reminds me of the music video John Carpenter produced with his band for Big Trouble in Little China (I mean that as a compliment): http://www.youtube.com/watch?v=D03E9kUTTtQ
By the way, I've shown the music video and the comic to friends of mine, and two of them actually got interested and started to ask questions about Lisp. Their positive reaction makes me think that those materials could be good to show to people to get them seriously interested in parenthesis-oriented-programming ;).
On p.42, when explaining the c*r functions, I found it easier to just read the "sequence" right-to-left.
For example:
(cadadr '((peas carrots tomatoes) (pork beef chicken) duck))
BEEF
Read as "rest, first, rest, first" of the cons cells, where "a" means "first" and "d" means "rest of the cons cell(s)".Aside: I am now beginning to appreciate Clojure more. :P
Congratulations on finally getting it out! :)
Game programming + Lisp! That's some winning combo! :D
Conrad, you are my hero!