2014 February

Jason Morrison edited this page Apr 26, 2014 · 14 revisions

February

High level: Meteor, FRP, React. Skim a finance book.

February is complete! I wrote some notes.

Readings

Meteor

* Meteor book
  x bolster with DDP talks
    x http://2012.realtimeconf.com/video/matt-debergalis
    _ https://www.eventedmind.com/tracks/feed-archive/meteor-subscriptions-and-ddp
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/

FRP

  • Notes I have collected after February:

http://elm-lang.org/
  Elm is a functional language that compiles to HTML, CSS, and JavaScript.
  Designed for functional reactive programming, Elm makes it easy to create
  highly interactive applications.
    Elm’s Time Traveling Debugger
    Pause, rewind, and replay programs. Debug by changing history.
    http://debug.elm-lang.org/


Propagators / clj propaganda:
    https://github.com/tgk/propaganda
    http://dspace.mit.edu/handle/1721.1/44215
    https://skillsmatter.com/skillscasts/5103-propaganda-a-declarative-programming-model-in-clojure

KVO, 1- vs 2-way binding, FRP
http://blog.metaobject.com/2014/03/the-siren-call-of-kvo-and-cocoa-bindings.html?m=1

Bacon/backbone/socket.io model syncing:
  http://blog.flowdock.com/2013/01/25/syncing-backbone-models-in-realtime-over-socketio/
  http://blog.flowdock.com/2013/01/22/functional-reactive-programming-with-bacon-js/


http://awelonblue.wordpress.com/2011/10/04/reactive-state-transition/
https://github.com/dmbarbour/Sirea
  • Notes from February:
via list: http://stackoverflow.com/questions/1028250/what-is-functional-reactive-programming/1030631#1030631
x http://conal.net/fran/tutorial.htm
x http://conal.net/papers/icfp97/icfp97.pdf
_ http://conal.net/papers/push-pull-frp/push-pull-frp.pdf
AUXILLIARY:
  Many links: http://www.haskell.org/haskellwiki/FRP
  Denotational design with type class morphisms (extended version)
    http://conal.net/papers/type-class-morphisms/type-class-morphisms-long.pdf
  Survey of Classic vs Signal-Function FRP:
    http://www.cs.rit.edu/~eca7215/frp-independent-study/Survey.pdf
  http://blog.edwardamsden.com/2012/09/video-introduction-to-functional.html
  Nilsson, Signal-Function / Arrow-based FRP:
    Safe Functional Reactive Programming through Dependent Types
      Paper: http://www.ittc.ku.edu/~neil/papers_and_talks/icfp09.pdf
      Video: http://vimeo.com/6632457
    Functional Reactive Programming, Continued
    http://haskell.cs.yale.edu/wp-content/uploads/2011/02/workshop-02.pdf
    More resources:
    http://www.haskell.org/haskellwiki/Yampa
  http://infoscience.epfl.ch/record/176887/files/DeprecatingObservers2012.pdf
    via https://github.com/lihaoyi/scala.rx
  another conal?
    https://web.archive.org/web/20030713173149/http://haskell.cs.yale.edu/frp/genuinely-functional-guis.pdf
    via https://web.archive.org/web/20100218023222/http://haskell.org/fruit/
  "Is Functional GUI programming possible?"
    http://stackoverflow.com/questions/2672791/is-functional-gui-programming-possible
  Also related Elm: elm-lang.org debug.elm-lang.org
ClojureScript implementations
  http://kevinoncode.blogspot.com/2013/05/a-short-survey-on-state-of-functional.html
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
http://sitr.us/2013/05/22/functional-reactive-programming-in-javascript.html
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

React

Reading Group resources from Brandon Tilley:
  Overview/Brain Dump
    Templates vs. Components
    Coupling and Cohesion
    JSX—nice but not required
    “Just don’t write spaghetti code”—okay, what should we write?
    Passing props
    Evented architectures
    Flux
    Re-render the world
    Performant with intelligent DOM diffing
    DOM as a rendering engine
    Optimizing with shouldComponentUpdate
    Recommended Material

  Rethinking Best Practices
    https://www.youtube.com/watch?v=DgVS-zXgMTk&hd=1
    I recommend watching Pete Hunt’s Rethinking Best Practices if you watch or read
    nothing else. He talks a bit about React on a high level, but also focuses a
    lot on why they think the approaches they take are good ideas. Try not to let
    the giant fish tank distract you too much.

  Introduction to React
    https://www.youtube.com/watch?v=XxVg_s8xAms&hd=1
    This video is a bit older and has some duplicate content, but covers the idea
    of a uni-directional data flow in a tiny bit more detail, and explains what
    benefits this has over a more traditional MVC architecture in client-side
    applications.  Though the video length on YouTube is 1 hour 20 minutes, the
    main part of the talk is actually a bit under 30 minutes—there is a lot of Q&A.
    The diagram shown at ~3:30 will lead us into a discussion of the “Flux”
    architecture (maybe FB’s blog post on it will be out by the time we meet).

  Learning React
    """ The React site is pretty good; they have a decent tutorial you can follow if
    """ you wanna get some hands-on experience with React, and the rest of the docs are
    """ pretty solid. I found Thinking in React to be interesting and useful.
    https://github.com/BinaryMuse/wow-realm-status-react
    http://facebook.github.io/react/docs/tutorial.html
    http://facebook.github.io/react/docs/thinking-in-react.html

  Demo Applications
    WoW Realm Status
      https://github.com/BinaryMuse/wow-realm-status-react
    Fast Tab Switcher
      https://github.com/BinaryMuse/chrome-fast-tab-switcher
    Imgur Gallery Browser
      https://github.com/BinaryMuse/react-imgur-album-browser
    Imgsible
      It uses something similar to the Flux architecture with some changes. The readme has a bunch of notes.
      https://github.com/BinaryMuse/imgsible

My older notes:

x http://facebook.github.io/react/docs/getting-started.html
x http://facebook.github.io/react/docs/tutorial.html
_ http://facebook.github.io/react/docs/interactivity-and-dynamic-uis.html
_ http://facebook.github.io/react/docs/multiple-components.html#dynamic-children
  _ (rest of the tutorial docs)
_ http://facebook.github.io/react/blog/2013/11/05/thinking-in-react.html#step-4-identify-where-your-state-should-live
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
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/

Finance

_ Little Blue Book
* interesting investment strategy.
  * build algo/simulation with Mac to test?
  * http://seekingalpha.com/article/363901-the-perils-of-backtesting-technical-strategies
* data sources
  * how to avoid [survivorhip bias](http://en.wikipedia.org/wiki/Survivorship_bias) in dataset
  * http://stackoverflow.com/questions/5774218/algorithmic-trading-simulator-benchmark-data
  * https://market-archive.appspot.com/
  * http://quant.caltech.edu/historical-stock-data.html
* testing libraries/service
  * http://gbeced.github.io/pyalgotrade/
  * https://www.quantopian.com
    * this looks like the ticket ^^ provided it can choose stocks from
      external/"fundamental" info, not just provide a universe per
      criteriaset
  * https://www.quantopian.com/posts/how-i-wo - see comments
  * fundamental data:
    * https://www.quantopian.com/posts/using-the-fetcher-with-quandl
      * seems like the last comment is pertinent to testing little-blue-book; is it now possible?  else try pyalgotrade?
* related
  * "nifty thrifty" and F_score stat http://www.iii.co.uk/articles/88741/playing-long-game-turning-traders-investors
  * http://en.wikipedia.org/wiki/Magic_formula_investing

Retrospective

* Tough to understand some of the FRP papers due to haskell/FP terminology.
  Revisit Push/Pull FRP after functor/applicative/monoid review in March

Writing ideas

  • write comparison of: react/meteor/angular/ember runloop/coalesce/deps ?
    • maybe there are 2 difference concerns here; push/rx/deps and batching updates
    • that's a fair thing - i think some of the frameworks do both (angular, maybe meteor? idk the others)

Projects