Past Meetings‎ > ‎

Discussion meeting (April 2012)

* Attending Members
  Ravi
  Leo
  Brian
  Joe
  Jos'h
  Paul

* Notes
** Leo bitching about cl-typesetting
   A particular function (`compute-row-size`) which contains a ~90 line `loop` form
** Brian brought Lisp In Small Pieces
   I've actually been looking to pick that up, but haven't gotten around to it yet
   Jos'h ended up borrowing it
** Brian has been using KnowledgeWorks hobby-wise
   KnowledgeWorks is a LispWorks module for building expert systems
   Fully declarative programming (resembles a mix of CL, CLOS and prolog)
** Introductions, histories (it's been a while for Joe and Brian)
*** Joe
    Engineer with a Unix C history. Does consulting in the mobile space (and has recently filed some patents).
*** Brian
    Works on maintaining a CAD system. Sneaks Lisp everywhere he can (part of the project involves AutoLisp, so he has excuses).
*** Jos'h
    More hardcore than he lets on, works on components of 3D rendering projects.
    most recently [dolphin tale](http://www.imdb.com/title/tt1564349/) and [gnomeo and juliet](http://www.imdb.com/title/tt0377981/)
    Has experience with managing unruly codebases, and uses Python, [Rebol](http://www.rebol.com/) and Common Lisp, among others.
*** Ravi
    Mosly a hobbyist Lisper at the moment.
    Currently working on a [neural-net-based prediction engine](https://github.com/ravster/pleasance) for financial markets
*** Leo
    Web developer that works primarily in Common Lisp.
** SHRDLU
   Named after character frequency on a linotype keyboard?
   AI program written in Lisp to control a robot arm with an internal model of the world
*** original project site: http://hci.stanford.edu/~winograd/shrdlu/
*** resurrection (uses Java-based 3D system for modelling) http://www.semaphorecorp.com/misc/shrdlu.html
** [Racket](http://racket-lang.org/) mentioned off-handedly as a hobby item
   Jos'h and Leo both have experience.
   Jos'h misses the 10000-foot view option
*** 10 000 foot view
    A mode in DrScheme (now drracket) which shows you a composite image of your file where each character is represented by a single pixel.
    The idea is that it shows a very zoomed-out view of your code.
    This is apparently very useful when editing very large files.
** Talking about disorganized codebases and how much they suck
** Auto-running test framework
   Jos'h has automated his Python test-suite to run as soon as a given file is saved.
   Number of failed tests is represented graphically as the [Doom guy](http://images.wikia.com/doomevil/images/6/6b/Face.png) taking damage per failed test
** Comparing Lisp for stuff
*** How does it compare to other languages
    Joe mainly asking about how it stacks up to Java for enterprise development
**** How useful are Macros?
     See [On Lisp](http://paulgraham.com/onlisp.html) and [Let Over Lambda](http://letoverlambda.com/)
**** What's meant by Symbolic Computation?
     Originally meant as a differentiator from Fortran and similar systems
**** What advantages does the Lisp cycle have over other languages?
     See
     [iterative development](http://en.wikipedia.org/wiki/Iterative_and_incremental_development),
     [bottom-up development](http://en.wikipedia.org/wiki/Top-down_and_bottom-up_design) (as well as On Lisp),
     [functional programming](http://en.wikipedia.org/wiki/Functional_programming)
     (Joe was asking as someone whos main background is C/Java-related, so all of the above is pretty different from what he's used to)
** Literate programming
   Relating documentation in code
   Jos'h brought in a book containing a literate ray tracer (the compiled program has two outputs; the book and the ray tracer program)
*** Doesn't this get crowded and redundant?
    No! The point of the literate programming approach is to document the intentions of the program
    (this doesn't overlap with the code the way that inline comments tend to)
    The real problem with documentation is that it's too long
** At this point, the conversation branches
*** Jos'h and Paul are discussing literate programming as it applies to JavaScript and various related techniques
    In-depth look at the literate Python program Jos'h brought in (he wrote the pre-processor)
    Essentially, structured comments following [Textile](http://textile.sitemonks.com/) rules.
    Pre-processor extracts documentation into browseable HTML structure, program compiles as normal
*** Joe and Ravi discussing the patented project Joe mentioned earlier
    Joe's thinking about a novel approach to natural language processing (no details)
    Dealing mainly with voice-recognition for limited vocabularies
    Looking to get a team together to prototype the thing for the patent application
*** Leo trying to listen to everything for a while in order to compile notes
    Gives up (apparently I am not concurrency-oriented)
** [Git](http://git-scm.com/) is awesome
   How awesome is it? Very.
*** git-svn is briefly discussed as a way of not being annoyed by [Subversion](http://git-scm.com/)
**** Leo has good experiences with it on a previous team
     reduced checkin time, local branches allowed a lot of flexibility, allowed working normally through network bs
**** Paul has had it blow up, and didn't want to risk further repo interaction
** [YSlow](http://developer.yahoo.com/yslow/)
   Report with optimization hinting in javascript (integrates with FireBug)

Comments