Home
This started as a sprawling file in my ~/log folder. I enjoyed sharing it with people by emailing them a Dropbox share URL, but maybe this wiki will be more fun.
Thoughts on this stuff? Open issues or email me or something.
I want to get better at reading.
To be specific, each month I'd like to select a topic and thoughtfully choose several works about it, read them, and write about them. The writing can be reflective notes or, as is often the case with technical reading, small projects to practice or demonstrate skill in the new topic. Topics should build on each other over the course of several months. Another way of looking at this is: there are some topics I'm interested in but am not prepared for. I should select and schedule background readings for the months before those later topics.
Each month I'd like to read across a variety of works on a topic. That said, it's impossible to be comprehensive in only a month. At the end of a month, I'll move on to the next topic. I'll take notes about where to pick up on this topic when I revisit it in the future.
This is inspired in part by Apprenticeship Patterns; particularly the notion of maintaining reading list and publicizing it. It is also inspired by two ideas from How to Read a Book: The Classic Guide to Intelligent Reading; first, that of taking a fixed duration of time to skimming for breadth ("inspectional reading"). Second, reading many views (often competing) on a topic in order to gain a more holistic view of the field ("syntopical reading", pretty sure Adler made that up though).
Some original notes:
- Read 2 books a month?
- Review notes later?
- Do a breakable toy each month?
- This "reading" list is developing into a "professional development" map.
- It seems to span multiple disciplines - software, finance, and communication.
https://github.com/coryschires/reading-list says:
Inspired in part by Apprenticeship Patterns, I've decided to maintain a public reading list. The goals are pretty simple:
- Be honest about what books I've read, partially read, and plan to read.
- Write a few sentences about each book – mostly for myself but also for anyone who might be interested.
- Only include books related to development, user experience design, and entrepreneurship.
- Include screencasts as well since that's how I do much of my learning.
Meta:
- Take notes on recent reading
- Review prior notes
- Practice faster/better reading
- http://www.spritzinc.com/
- Practice fast reading with re-reads?
Formatting notes:
Much of this is written in my own personal "text editor TODO" markup which looks like:
_ a thing that needs to be done
x something that is complete
> something I decided to defer
* a section header
* subsection
_ a thing to do in this subsection
x something complete from this subsection
- Focus in programming: Clojure, FP, distributed systems, concurrency models, CLJS, FRP, CSP
- Focus elsewhere: finance/investing, communication/interpersonal
sequenced: -+-> Clojure/FP -+--> CSP, core.async, distributed systems
\ \-> CLJS, Mori ->
\--> FRP, React-----------------\-> Om
- 2014 January - planning
- 2014 February - Meteor, React, FRP. Little Blue Book.
- 2014 March - Clojure, FP, core.async. non-programming: game theory?
- 2014 April - CLJS, mori, om
- 2014 May - CSP, other concurrencies? Actor model?
- 2014 June - ??? Distributed systems? XMPP?
Chunk these up into themes, organize by month. May have to revisit some many times.
See ~/Dropbox/log/0000-00-00-books-reading-films
via David (http://wit.io/posts/clojure-all-grown-up):
Clojure Programming (O'Reilly)
The Joy of Clojure (Manning) is more philosophical and moves at a faster clip
- Publishing March 2014: http://www.manning.com/fogus2/
[Clojure cheat sheet](http://clojure.org/cheatsheet)
[Clojure API](http://clojure.github.io/clojure/) (ugly but exhaustive)
[ClojureDocs](http://clojuredocs.org/) ([ClojureDoc](http://clojure-doc.org) will soon replace ClojureDocs)
[Ring spec](https://github.com/mmcgrana/ring/blob/master/SPEC)
[Ring wiki](https://github.com/mmcgrana/ring/wiki)
[Korma docs](http://sqlkorma.com)
[Abstraction overview](database-abstractions.md)
[Speclj tutorial](http://speclj.com/tutorial)
FRP / simulation - clojure games
http://stackoverflow.com/questions/3431654/how-does-functional-programming-apply-to-simulations
Snake game!
http://java.ociweb.com/mark/programming/ClojureSnake.html
ClojureScript: Up and Running Functional Programming for the Web
http://shop.oreilly.com/product/0636920025139.do
Clojure Cookbook
git@github.com:clojure-cookbook/clojure-cookbook.git
clojure project to play with - use riemann
http://aphyr.github.io/riemann/quickstart.htmggl
lispcast clojure
Purchased - http://videos.lispcast.com/ or ~/Downloads/
x watch through once
_ watch through video-1, doing exercises
_ skim pdf for video-1, noting major concepts
_ watch through video-2, doing exercises
_ skim pdf for video-2, noting major concepts
_ watch through video-3, doing exercises
_ skim pdf for video-3, noting major concepts
lighttable ide:
x http://www.chris-granger.com/2014/01/07/light-table-is-open-source/
Pedestal (clj web framework)
http://pedestal.io/documentation/
https://github.com/pedestal/app-tutorial
http://thinkrelevance.com/blog/2013/03/18/pedestal-podcast-episode-027
http://learnyouahaskell.com/making-our-own-types-and-typeclasses#the-functor-typeclass
http://learnyouahaskell.com/functors-applicative-functors-and-monoids
"Worlds: Controlling the Scope of Side Effects"
http://www.vpri.org/pdf/tr2011001_final_worlds.pdf
"Local State is Harmful"
http://scattered-thoughts.net/blog/2014/02/17/local-state-is-harmful/
Brian Lonsdorf
https://twitter.com/drboolean/status/439635711906443264
""" For me, the works of martin, beck, evans, fowler
""" have been replaced by wadler, gibbons, mcbride, hughes.
""" I wonder who will be next...
The Essence of the Iterator Pattern
http://www.cs.ox.ac.uk/jeremy.gibbons/publications/iterator.pdf
Origami programming
http://www.cs.ox.ac.uk/jeremy.gibbons/publications/origami.pdf
Theorems for free!
http://ttic.uchicago.edu/~dreyer/course/papers/wadler.pdf
Applicative Programming with Effects
http://www.soi.city.ac.uk/~ross/papers/Applicative.html
why education is so difficult and contentious - egan via bret victor
x http://www.sfu.ca/~egan/Difficult-article.html
_ http://www.youtube.com/watch?v=0QFDzRkmiUE
learning in depth - egan via victor
_ http://www.sfu.ca/~egan/Learningdepth.html
_ http://www.youtube.com/watch?v=KDAOKJpg2fM
http://blogs.kqed.org/mindshift/2014/01/do-rigid-college-admissions-leave-room-for-creative-thinkers/
http://www.ultrasaurus.com/2008/12/situated-learning-through-open-source/
http://oxcheps.new.ox.ac.uk/Publications/Resources/OxCHEPS_OP1_08.pdf
http://educationnext.org/education-and-economic-growth/
https://groups.google.com/forum/#!topic/philosophy-in-a-time-of-software/
http://www.partiallyexaminedlife.com/
http://users.aber.ac.uk/dgc/Documents/S4B/sem01.html
continental philosophy reading list: https://gist.github.com/steveklabnik/4017292
_ what was that game theory book? where did I find the recommendation?
It was this:
http://www.amazon.com/Games-Strategy-Third-Edition-Avinash/dp/0393931129
But maybe get this instead:
http://www.amazon.com/Thinking-Strategically-Competitive-Business-Politics/dp/0393310353
https://github.com/bodil/cljs-noderepl
how to start cljs, react, om
http://adamsolove.com/js/clojure/2014/01/06/om-experience-report.html
FRP/CLJS implementations
http://kevinoncode.blogspot.com/2013/05/a-short-survey-on-state-of-functional.html
_ http://facebook.github.io/react/docs/displaying-data.html
_ http://facebook.github.io/react/docs/interactivity-and-dynamic-uis.html
x http://2013.jsconf.eu/speakers/pete-hunt-react-rethinking-best-practices.html
_ http://www.lispcast.com/react-another-level-of-indirection
_ http://swannodette.github.io/2013/12/17/the-future-of-javascript-mvcs/
_ http://swannodette.github.io/2013/12/31/time-travel/
KA transition: http://joelburget.com/backbone-to-react/
how would prismatic/schema play with this? clj? cljs?
https://github.com/prismatic/schema
https://github.com/swannodette/lt-cljs-tutorial
http://swannodette.github.io/
http://sitr.us/2013/05/22/functional-reactive-programming-in-javascript.html
x http://skulbuny.com/2013/10/31/react-vs-angular/
_ http://eldar.djafarov.com/2013/11/reactjs-mixing-with-backbone/
_ ongoing http://facebook.github.io/react/blog/
om tutorial
https://github.com/swannodette/om/wiki/Tutorial
(hipchat alternative) kandan client: from sf cljs meetup:
http://www.meetup.com/SF-Clojurescript-Meetup/events/164121132/
https://github.com/sgrove/omchaya
chess with om
https://twitter.com/swannodette/status/432588577424556032
https://github.com/danieroux/rubyfuza2014/blob/master/src/rubyfuza/core.cljs
http://www.slideshare.net/danieroux/rubyfuza-2014
https://github.com/swannodette/mori
cljs data structures into javascript land
http://clojure.org/data_structures
http://en.wikipedia.org/wiki/Persistent_data_structure#Examples_of_persistent_data_structures
?? papers on persistent/immutable data structures
"RICON West Videos: Distributed Systems in Academia"
http://basho.com/ricon-west-videos-distributed-systems-in-academia/
* recent blog post "what level distributed systems engineer" - what background material is there?
http://blog.incubaid.com/2012/03/28/the-game-of-distributed-systems-programming-which-level-are-you/
_ read & take notes
_ revisit in +2 months, read & take notes
* what models of concurrecy / distributed systems are there? why are there different ones?
* "concurrency is not the problem, shared mutable state is" - reference?
Joy of Clojure Chapter 11 - "When to use X, Y, Z"
via http://pepijndevos.nl/how-reify-works-and-how-to-write-a-custom-typ/index.html
Patterns in concurrency
http://parlab.eecs.berkeley.edu/wiki/patterns/patterns
Raft "In Search of an Understandable Consensus Algorithm"
https://ramcloud.stanford.edu/wiki/download/attachments/11370504/raft.pdf
BOOM Analytics: Exploring Data-Centric, Declarative Programming for the Cloud
http://db.cs.berkeley.edu/papers/eurosys10-boom.pdf
Podcast: Think Distributed
http://thinkdistributed.io/
http://christophermeiklejohn.com/distributed/systems/2013/07/12/readings-in-distributed-systems.html
In Search of an Understandable Consensus Algorithm Diego Ongaro, John Ousterhout 2013
https://ramcloud.stanford.edu/wiki/download/attachments/11370504/raft.pdf
A Simple Totally Ordered Broadcast Protocol Benjamin Reed, Flavio P. Junqueira 2008
http://labs.yahoo.com/files/ladis08.pdf
Paxos Made Live - An Engineering Perspective Tushar Deepak Chandra, Robert Griesemer, Joshua Redstone 2007
http://research.google.com/pubs/pub33002.html
The Chubby Lock Service for Loosely-Coupled Distributed Systems Mike Burrows 2006
http://static.googleusercontent.com/media/research.google.com/en/us/archive/chubby-osdi06.pdf
Paxos Made Simple Leslie Lamport 2001
http://www.cs.utexas.edu/users/lorenzo/corsi/cs380d/past/03F/notes/paxos-simple.pdf
Impossibility of Distributed Consensus with One Faulty Process Michael Fischer, Nancy Lynch, Michael Patterson 1985
http://macs.citadel.edu/rudolphg/csci604/ImpossibilityofConsensus.pdf
The Byzantine Generals Problem Leslie Lamport 1982
http://www.cs.cornell.edu/courses/cs614/2004sp/papers/lsp82.pdf
* find examples of distributed systems and compare "pass messages to single linearizing choke point" vs
"everybody makes state changes and respects their permissions which are later double-checked"
- KRTconf, XMPP, etc.?
http://swannodette.github.io/2013/07/12/communicating-sequential-processes/
using csp for UI
http://swtch.com/~rsc/thread/cws.pdf
http://alleystoughton.us/eXene/1991-ml-workshop.pdf
How it is extended in core.async:
http://clojure.com/blog/2013/06/28/clojure-core-async-channels.html
http://www.usingcsp.com/cspbook.pdf hoare
~/Dropbox/Library-mine/cspbook.pdf
related algebras, books:
http://theory.stanford.edu/~rvg/process.html
how does this get distributed? erlang gen-server/gen-event etc? other models?
distributed core.async for JVM and CLJ:
http://blog.paralleluniverse.co/2013/07/19/quasar-pulsar-0-2-0-distributed-actors-supervisors/
https://github.com/levjj/sweet-actors/blob/master/README.md
Functional Reactive Programming
what is it?
http://stackoverflow.com/questions/1028250/what-is-functional-reactive-programming/1030631#1030631
class
https://class.coursera.org/reactive-001/wiki/LearningResources
strangeloop talk
http://www.infoq.com/presentations/rx-event-processing?utm_source=infoq&utm_medium=QCon_EarlyAccessVideos&utm_campaign=StrangeLoop2013
https://github.com/Reactive-Extensions/StrangeLoop2013/blob/master/StrangeLoop%202013.pdf
bacon.js
https://github.com/baconjs/bacon.js/wiki
https://github.com/baconjs/bacon.js/blob/master/README.md
compare/constrast reactive programming with CSP - see strangeloop Rx talk for lang-level analogies
Classic FRP vs Signal-Function FRP (Arrow FRP??)
http://blog.edwardamsden.com/2012/09/video-introduction-to-functional.html
http://www.cs.rit.edu/~eca7215/frp-independent-study/Survey.pdf
Current haskell reactive project
http://www.haskell.org/haskellwiki/Reactive
Nice LtU thread
http://lambda-the-ultimate.org/node/3214
"incremental computing"
http://en.wikipedia.org/wiki/Incremental_computing
"dataflow programming"
http://en.wikipedia.org/wiki/Dataflow_programming
http://stackoverflow.com/questions/461796/dataflow-programming-languages
so much links!!
asana lunascript
https://asana.com/luna
x meteor book
"Subscriptions and DDP"
http://2012.realtimeconf.com/video/matt-debergalis
https://www.eventedmind.com/feed/fe2d6048-e1f6-42bc-8ac7-fa18b91f9c5d
https://github.com/benjamn/react-meteor
x http://www.slideshare.net/fitc_slideshare/meteor-reactivestyle
some neat repos
https://github.com/awwx?tab=repositories
reactive joins
https://www.discovermeteor.com/blog/reactive-joins-in-meteor/
Javascript Allongé
https://leanpub.com/javascript-allonge
https://leanpub.com/javascript-allonge/read - free
ilya grigorik http://chimera.labs.oreilly.com/books/1230000000545/ch18.html#_configuring_message_order_and_reliability
progfun Coursera class
SICP
joy of clojure
Education reading ~/log/2012-03-10-edu-safari
stream processing / distributed processing / "big data"
http://manning.com/marz/
http://www.eecs.berkeley.edu/Pubs/TechRpts/2012/EECS-2012-259.pdf
REST / transports
fielding thesis
http://rocket.github.io/
meteor DDP
https://github.com/codeparty/racer via derbyjs
From "Apprenticeship Patterns":
> Find and read RFC 2616, which describes HTTP1.1, and RFC 707, which
> describes the state of the art in Remote Procedure Call technology as of
> January 1976. Armed with your deeper knowledge of HTTP, try to implement a
> client and a server for RFC 707. When you feel you have a good understanding of
> the trade-offs made by the editors of RFC 707, examine a modern open source
> implementation of the same ideas, such as the Apache Thrift framework that
> powers Facebook. Then, from your informed vantage point, write a blog post
> describing the evolution of our knowledge regarding remote procedure calls and
> distributed systems over the last three decades. Now, go and read Steve
> Vinoski’s articles about RPC. Do you now have doubts about the depth of your
> understanding? Write a blog post about your doubts and your current level of
> understanding.
_ bibliography of Apprenticeship_Patterns.pdf
* psychology of computer programming
* pair programming illuminated
* becoming a technical leader
_ peopleware?
_ heath brothers - made to stick (re-read, last read ~2008), decisions ?
http://www.confreaks.com/videos/2488-railsconf2013-how-to-talk-to-developers
berkshire hathaway reports
In ~/Dropbox/Library-mine:
* 2006 Graham Intelligent Investor, Revised Edition, The
* 2010 Greenblatt Little Book That Still Beats the Market, The
* Discussion:
http://www.bogleheads.org/forum/viewtopic.php?p=599845
http://boards.fool.com/magic-formula-investing-117512.aspx
The Unwinding: An Inner History of the New America
http://www.amazon.com/dp/B00ANI9GIQ
The Alchemists: Three Central Bankers and a World on Fire
http://www.amazon.com/dp/B008EKOGKS
Lawrence in Arabia: War, Deceit, Imperial Folly and the Making of the Modern Middle East
http://www.amazon.com/dp/B00BH0VSPI
War is a Racket: The Antiwar Classic by America's Most Decorated Soldier
http://www.amazon.com/dp/B003XRDBJY
The Autobiography of Malcolm X
http://www.amazon.com/Autobiography-Malcolm-X/dp/B000BMG58I
The Rise of Theodore Roosevelt
http://www.amazon.com/Theodore-Roosevelt-Modern-Library-Nonfiction-ebook/dp/B004DEPH3E
http://www.amazon.com/Introduction-Neuropsychopharmacology-Leslie-Iversen-ebook/dp/B0060L8QCM/ref=tmm_kin_title_0
http://worrydream.com/Links2013/
Visualization and Cognition: Drawing Things Together (1986)
Knowledge in Pieces (1988)
Analogy as the Core of Cognition (2001)
Simulation and its Discontents (2009)
* Why education is so difficult and contentious (2001)
* Other Egan pieces
Naya's Quest (2013)
Clock Of The Long Now: Time And Responsibility (2000)
The Origin of Consciousness in the Breakdown of the Bicameral Mind (1977)
An Interview with David Hestenes (2012)
* Notes for a Modeling Theory of Science, Cognition and Instruction (2006)
Modeling Games in the Newtonian World (1991)
An Interview with Carver Mead (2001)
Collective Electrodynamics (2002)
* The Engelbart Hypothesis: dialogs with Douglas Engelbart (2009)
Improving Our Ability to Improve: A Call for Investment in a New Future (2003)
Alan Kay
Putting Turing To Work (2013)
Normal Considered Harmful (2009)
SCIx keynote presentation (2012)
The Center of “Why?” (2004)