Roots of Lisp

Partial Summary of Paul Graham’s essay on the 1960 McCarthy’s Lisp

http://www.paulgraham.com/rootsoflisp.html

Seven primitive operators:

quote, atom, eq, car, cdr, cons, cond

Expression  : 
foo
()
(foo)
(foo bar)
(a b (c) d)

 

  1. (quote x) returns x. Abbreviated as ‘x
  2. (atom ‘a) – predicate,  returns T if true, () if False  (Nil)
  3. (eq x y)  – returns T if  atoms x=y, or two empty lists, otherwise returns ()
  4. (car x) expects x to be a list, and returns the first element.
  5. (cdr x) expects x to be a list, and returns everything after the first element
  6. (cons  x y) expects the value of y to be a list, and returns a list containing the value of x followed by the elements of the value of y.
  7. (cond (p1 e1) … (pn en)) is evaluated as follows. The p expressions are evaluated in order until one returns T, true. When one is found, the value of the corresponding e expression is returned as the value of the whole cond expression.

 

Further reading:

See McCarthy eval Lisp on github   based on the 1.5 manual 

Also, this PG version https://gist.github.com/bsima/7d52b805996e60fa5832

And this: http://informatimago.com/develop/lisp/com/informatimago/small-cl-pgms/aim-8/aim-8.lisp

another useful doc

Numbers can be implemented by using a list of n atoms to represent the number n.

See “The Art of The Interpreter”  by Steele and Sussman  for an examination of “effects of various language design decisions on theprogramming styles available to a user of the language, with particular emphasis on the ability to incrementally construct modular systems.”

https://dspace.mit.edu/handle/1721.1/6094

 

Learn Lisp in 2019

Summary: On GNU/Linux install  SBCL http://www.sbcl.org/

For editors, if You want a “classic” visual IDE, go with Atom or Eclipse, otherwise you can use implementations such as Emacs or Vim, see the road to common Lisp guide.

For books, if You have a compsci background, go with Structure and Implementation of Computer Programs, otherwise choose Common Lisp: A Gentle Introduction to Symbolic Computation

https://www.cs.cmu.edu/~dst/LispBook/

Good starter guide – road to common Lisp

http://stevelosh.com/blog/2018/08/a-road-to-common-lisp/

Lisp in Small Parts

http://lisp.plasticki.com/show?14F

Practical Common Lisp

http://www.gigamonkeys.com/book/

Common Lisp Cookbook

https://lispcookbook.github.io/cl-cookbook/

Structure and Implementation of Computer Programs (book, free online )

https://mitpress.mit.edu/sites/default/files/sicp/full-text/book/book.html

The book uses Scheme

https://www.gnu.org/software/mit-scheme/

Free Basic Online Lisp Course

http://art2.ph-freiburg.de/Lisp-Course

Lisp Quick Start

https://cs.gmu.edu/~sean/lisp/LispTutorial.html

Comparison chart for Lisp: Common Lisp, Racket, Clojure, Emacs Lisp

http://hyperpolyglot.org/lisp

Common Lisp Hints

http://n-a-n-o.com/lisp/cmucl-tutorials/LISP-tutorial.html#toc5

Lisp Koans

https://github.com/google/lisp-koans

Reddit Lisp community

https://www.reddit.com/r/lisp/

 

Metrics in Scrum

Measuring “success” in Scrum

  1. Working Software ( stuff gets shipped ) “Working software is the primary measure of progress” . [ Manifesto ]
  2. Sustainable ( = continious ) development. Developers don’t quit, don’t ask to change teams, don’t claim multiple granny funerals.
  3. Extra – four key metrics to support software delivery performance: lead time, deployment frequency, mean time to restore (MTTR), and change fail percentage. ( time to deploy, how often deploys happen, backup time, how many times deploys fail ) GoCD https://www.gocd.org/
  4. Predictability – delivering over 90% of commitments,

  5. story acceptance rate, defect rate – tracking acceptance ( can track bug life as well)

  6. HEART framework – Happiness, Engagement, Adoption, Retention, Task Success safe.pngheart2.jpg

The Dark Side of Work Perks

Interesting article on work perks and what they really mean for employees.

Free food encourages people to:

  • work longer hours,
  • exchange ideas,
  • saves time,
  • imposes lifestyle creep and creates a competitive advantage as employees considering changing jobs must consider either preparing their own lunch or lunch available in the vicinity of the competing employer that does not offer free food.
  • discourages outside friends and having a family

https://marker.medium.com/every-day-companies-around-the-world-execute-a-low-risk-high-return-arbitrage-they-buy-the-time-9be6e1c1d486

The impact of Puritan ideology on aspects of project management

puritansOne rarely finds a pearl such as this one

The impact of Puritan ideology on aspects of project management” by Stephen Jonathan Whitty, https://doi.org/10.1016/j.ijproman.2006.05.002

“Project management has developed against a background of Puritan elements (memes) that are favourable to the development of capitalism. Moreover, it is suggested that these religious origins continue to impact in a conservative way on how the project management discipline evolves; limiting its development, oversimplifying the process of managing people, and consequentially thwarting nonconformists.”

Strongly recommended! Even more surprisingly, cited by 51 scientists, according to google scholar. Ladies and Gentlemen, I tip my hat to You!

The obnoxious American practice of preaching prosperity gospels, while charging regular licensing fees ( “freedom isn’t free!” ), has oppressed project management for too long.

Prediction of project outcome – statistics

Prediction of project outcome: The application of statistical methods to earned value management and earned schedule performance indexes https://doi.org/10.1016/j.ijproman.2008.02.009

A widely cited paper outlining an improved Earned Value Management prediction of outcome. Heavy on math, but a good start is to play with the excel file provided by the researchers online http://www.earnedschedule.com/Calculator.shtml

And there’s even a video.

youtube.com/watch?v=Z98FRgyKbNM

 

Influential books on project management -mythical man month

estimate-deadlineGood cooking fakes time. If you are made to wait, it is to
serve you better, and to please you.
MENU OF RESTAURANT ANTOINE. NEW ORLEANS

Quote from

The Mythical Man Month by Frederick Brooks

https://archive.org/details/mythicalmanmonth00fred

Delay is the most wide problem in IT. There are multiple causes.
In 1975, this  book was one of the first to postulate that You cannot “solve an IT problem” 10x faster by throwing 10x more developers at it.

An interesting reaction to the problems presented in the MMM is Atomic design (in interfaces), which gave us React, among other things

https://hackernoon.com/react-and-the-mythical-man-month-5ac12ba91f34

A shorter paper,  No Silver Bullet, is a good way to start with the MMM

No Silver Bullet – Essence and Accident in Software Engineering

https://ieeexplore.ieee.org/document/1663532

Downloadable without registration here: https://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.117.315