If you like this kind of content, consider joining the SDF. It's a free public access computing community with lots of artists, hackers, and grognards of all stripes. Your support is appreciated: <a href="https://sdf.org/" rel="nofollow">https://sdf.org/</a>
This is really cool. So is <a href="http://sdf.org" rel="nofollow">http://sdf.org</a> . You can get a lifetime Unix (NetBSD) shell account at them for as little as $5, mail, http/gopher hosting, etc. included, and more.
This is one of the most fun and informative programming posts I've seen on Hacker News recently. I also killed my wifi immediately after reading the article to play the game.
Regarding the code, its ok although there are some parts that are unnecessarily messy. Here[0], and in other parts you use labels in the middle the function. It is best to do in the outer level form. I like the rlabels of misc-extension[1] when using local functions but I understand most people would prefer not to add 'util' dependencies. Another thing in that function. The (let ((data (or ...)))) is unnecessary. You place the form in the default case of the keyword argument So it would end up looking like:<p><pre><code> (defun x-find-color (rgba &key (x 0) (y 0)
(width default-width) (height default-height)
(test #'equal)
(snap-data (x-snapshot :x x :y y :width width :height height)))
...)
</code></pre>
Also if not using asdf, the quickload form should be wrapped in an eval-when. It will fail If I Try to compile the file (C-c C-k) on a fresh session.<p>This are nitpicks, the code is understandable and easy to read. Nice writeup and cool idea!<p>[0]: <a href="https://github.com/VitoVan/cl-dino/blob/master/cl-autogui.lisp#L173" rel="nofollow">https://github.com/VitoVan/cl-dino/blob/master/cl-autogui.li...</a>
[1]: <a href="https://github.com/slburson/misc-extensions" rel="nofollow">https://github.com/slburson/misc-extensions</a>
Apart from Clojure (which is not LISP, really), I haven't seen end-user applications written in LISP dialects (I don't think emacs is end-user software). Scheme (and its PLT dialect Racket) was in academia for so long that it literally got "friend-zoned" and has little (read "no") use in the industry.<p>Then again, I expected to see more Common LISP around. Paul Graham really put it right, but I guess any leverage/advantage LISP had on other languages, it waned in the 90's (maybe Viaweb was one of the last projects done in LISP, and even that was translated later to other langs...)<p>I don't think s-expressions are _that_ problematic. The main issue with LISP's nowadays is lack of _momentum_. Java gained its momentum by Sun, after that it just keeps rolling in the industry and apparently, there's no stopping that. Python also has its momentum from the academia, what with all the great libraries and all. But one would expect to see some _major_ projects done entirely in LISP (and not a Trojan Horse LISP like Clojure), after that, it's only a matter of time for developers to become LISPers.<p>Of course, one could also claim that LISP actually _did_ have like half a century to prove itself, or gain momentum. After all, Golang and ruby are relatively new, but they eat LISP's lunch at launch of new apps.<p>I really appreciate things like this project. It's not enough, but what is?