User Tools

Site Tools


todo

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
todo [2014/11/18 11:57]
djo
todo [2017/07/11 22:26] (current)
djo
Line 2: Line 2:
  
 Articles to write; things to consider doing. Articles to write; things to consider doing.
 +
 +===== Why Clojure / Learning Clojure =====
 +
 +  - Clojure isn't about FP, but:
 +    * Data fundamentally takes a few core shapes and programs generically manipulate those few core shapes of data
 +      * What?
 +        * Sequences (lists, vectors)
 +        * Maps
 +        * Sets
 +        * Simple data types (numbers, strings, etc.)
 +      * Examples
 +        * clojure.java.io/​input-stream - Set of input types
 +        * map/reduce (flatmap) have exactly one implementation in Clojure and will never need another one
 +          * (Contrast with Scala where every collection needs its own map/​flatten/​flatmap implementations)
 +  - Separating the customer'​s perspective/​vocabulary from the program'​s
 +    * Concerns
 +      * Customer has one vocabulary (Objects formalize that vocabulary into protocols that make it impossible to process data generically)
 +      * Programs want to process data as generically as possible
 +    * These two concerns tend to be intertwined in OO programs. ​ Lisp gives us tools to separate those concerns.
 +      * Internal DSLs
 +  - Compile-time type inference/​checking with Specs
  
 ===== Scala / FP ===== ===== Scala / FP =====
Line 13: Line 34:
   * LazyParallel   * LazyParallel
   * ThreadPool   * ThreadPool
- 
-===== Agile ===== 
- 
-Document [[EclipseWay]] Agile process 
-  * Record of success **DONE** 
-  * Values 
-  * How it works with other Agile processes 
-  * References to important articles / presentations (bibliography) 
- 
-==== Values ==== 
- 
-  * Modular architecture enabling distributed development 
-    * API 
-    * (Interview people about API?) 
-    * API with and without OSGi 
-    * Maven vs. OSGi 
- 
-  * 6-week release cadence versus 2 week sprint and specific deliverables 
-    * Themes, not specific deliverables 
-    * Enough time to do interesting work 
-    * Good for research topics, when there aren't hard deliverables pre-committed by management 
-    * Good for contractual work, with mature teams who have measured their velocity and management that has built a pad into the schedule to account for unforeseen events 
- 
-  * Ship often! 
-    * Forces the team to remove pain points / automate / create checklists (There'​s a good reason airplane pilots use checklists) 
-    * The team gets good at it 
-    * Shipping becomes boring rather than exciting (boring ship dates are good ship dates) 
- 
-  * Milestone builds come with N&N and engage customers in the development process 
-    * Eat your own dogfood (use your tools to build themselves as much as possible) 
- 
-  * Additional practices 
-    * Document anything that must be manual--helps and make processes disaster-resilient 
- 
  
 ===== The Cloud ===== ===== The Cloud =====
todo.1416329860.txt.gz ยท Last modified: 2014/11/18 11:57 by djo