Table of Contents
- 1. Poster: the development of a semantic feature analysis based mobile application for individuals with aphasia
- 2. Professional JavaScript for Web Developers
- 3. Functional Programming and the Lambda Calculus
- 4. The Lambda Calculus, Its Syntax and Semantics
- 5. λ-Calculus: Then & Now
- 6. A Useful λ-Notation
- 7. The formal system λδ
- 8. An Interpreter for Extended Lambda Calculus
- 9. DONE Testable JavaScript
- 10. The Road to Modern Logic - An Interpretation
- 11. The Completion of the Emergence of Modern Logic
- 12. The Org Mode 7 Reference Manual
- 13. A Simpler Proof Theory for Nominal Logic
- 14. Equivariance and Invariance
- 15. Higher-Order Abstract Syntax: Setting the Record Straight
- 16. Nominal logic, a first order theory of names and binding
- 17. Nominal Logic Programming
- 18. First-Order Logic
- 19. Learn Prolog Now!
- 20. AdSentry: comprehensive and flexible confinement of JavaScript-based advertisements
- 21. An Introduction to Functional Programming through Lambda Calculus
- 22. ToMaTo: a trustworthy code mashup development tool
- 23. An empirical study of privacy-violating information flows in JavaScript web applications
- 24. Partitioning graphs to speedup Dijkstra's algorithm
- 25. Purely functional data structures
- 26. Russellian Simple Type Theory
- 27. Learn You a Haskell
- 28. Tree-Manipulating Systems and Church-Rosser Theorems
- 29. The functional power of parameter passage mechanism
- 30. Learning from the Web
- 31. On the security of public-key protocols
- 32. HTTP Cookies: Standards, privacy, and politics
- 33. Web caching on smartphones: ideal vs. reality
- 34. Selecting a hashing algorithm
- 35. JavaScript as an embedded DSL
- 36. How not to survey developers and repositories: experiences analyzing language adoption
- 37. The Joy of Clojure: Thinking the Clojure Way clojure
- 38. Programming Clojure clojure
- 39. EMACS the extensible, customizable self-documenting display editor
- 40. Eoops: an object-oriented programming system for Emacs-Lisp
- 41. Multics Emacs (Prose and Cons): A commercial text-processing system in Lisp
- 42. Mixin-based inheritance
- 43. XSLT version 2.0 is turing-complete: a purely transformation based proof
- 44. Javascript bible, sixth edition javascript
- 45. Status report: specifying JavaScript with ML
- 46. ECMA-262: ECMAScript Language Specification javascript
- 47. 10 Immutable Laws of Security
- 48. Graded Browser Support
- 49. The Promise System
- 50. Channels: A Generalization of Streams
- 51. Promises: Linguistic Support for Efficient Asynchronous Procedure Calls in Distributed Systems
- 52. Async JavaScript: Build More Responsive Apps with Less Code
- 53. The Uses of Knowledge in Society
- 54. A Universal Modular ACTOR Formalism for Artificial Intelligence
- 55. Design Patterns, Elements Of Reusable Object-Oriented Software
- 56. A Security Kernel Based on the Lambda-Calculus
- 57. The Architecture of Complexity
- 58. Measuring Relative Attack Surfaces
- 59. Toward a Critical Theory of Cyberspace
- 60. Hedgehog Architecture
- 61. DONE Tracking the trackers: fast and scalable dynamic analysis of web content for privacy violations
- 62. TODO I Still Know What You Visited Last Summer: Leaking Browsing History via User Interaction and Side Channel Attacks
- 63. TODO An empirical study of privacy-violating information flows in JavaScript web applications privacy javascript
- 64. TODO Privacy leakage in mobile online social networks
- 65. AOJS: aspect-oriented javascript programming framework for web development
- 66. Keeping information safe from social networking apps
- 67. Privacy-aware identity management for client-side mashup applications
- 68. Web user de-identification in personalization
- 69. AjaxScope: A Platform for Remotely Monitoring the Client-Side Behavior of Web 2.0 Applications
- 70. Formal specification of a JavaScript module system
- 71. An approach for identifying JavaScript-loaded advertisements through static program analysis
- 72. The case for JavaScript transactions: position paper
- 73. TODO Automated Analysis of Security-Critical JavaScript APIs javascript
- 74. When browsing leaves footprints: automatically detect privacy violations
- 75. App isolation: get the security of multiple browsers with just one
- 76. AdSentry: Comprehensive and Flexible Confinement of JavaScript-based Advertisements
- 77. DONE Fast, Scalable Detection of “Piggybacked” Mobile Applications
- 78. The open-closed principle
- 79. Realizing the Open-Closed Principle
- 80. JavaScript: The Good Parts javascript
- 81. JavaScript: The Definitive Guide javascript
- 82. Third-Party Javascript javascript
- 83. Maintainable JavaScript javascript
- 84. Programming JavaScript Applications
- 85. Upgrading to RequireJS 2.1
- 86. Design Patterns
- 87. JavaScript Enlightenment
- 88. Test-Driven JavaScript Development javascript
- 89. JavaScript Patterns javascript
- 90. Secrets of the Javascript Ninja javascript
- 91. Eloquent JavaScript: A Modern Introduction to Programming javascript
- 92. Dependent Types for JavaScript javascript
- 93. Type Analysis for JavaScript javascript
- 94. Even Faster Web Sites: Performance Best Practices for Web Developers javascript
- 95. The Dispossessed
- 96. Makers
- 97. Windup Girl
- 98. South of the Border, West of the Sun
- 99. Anathem
- 100. Accelerando
- 101. Evolution of Cooperation
- 102. Beyond the Hoax
- 103. Clojue Data Analysis Cookbook clojure
- 104. CyberStorm
- 105. Quiet
- 106. Vision of Buddhism
- 107. Facets of Buddhism
- 108. Tao is Silent
- 109. Painted Birds
- 110. Nexus
- 111. Tractatus Logico-Philophicus
- 112. Rissa and Tregare
- 113. Young Rissa
- 114. Programming in Scala
- 115. GNU Emacs Extensions
- 116. Lake
- 117. This Perfect Day
- 118. Best Writing on Mathematics 2012
- 119. HTML5 for Publishers
- 120. ClojureScript: Up and Running clojure
- 121. Clojure in Action
- 122. From the Teeth of Angels
- 123. American Psycho
- 124. Day of the Triffids
- 125. Slaughterhouse - Five
- 126. Ubik
- 127. Clown
- 128. Signal and the Noise
- 129. Effective JavaScript javascript
- 130. Irony of American History
- 131. Fire Upon the Deep
- 132. Understanding Power
- 133. Prague Cemetery
- 134. Infinite Jest
- 135. Doing Capitalism in the Innovation Economy
- 136. The Great Thoughts
- 137. Well-Grouynded Rubyist
- 138. Rails 3 in Action rails
- 139. Rails 4 in Action rails
- 140. Age of Insight
- 141. Social Conquest of Earth
- 142. JavaScript Web Applications javascript
- 143. Large Web Applications javascript
- 144. Kafka on the Shore
- 145. Speaker for the Dead
- 146. Thinking Fast and Slow
- 147. Think Complexity
- 148. Antifragile
- 149. Foundation
- 150. Functional Programming in Scala
- 151. Linked Data
- 152. Do Androids Dream of Electric Sheep?
- 153. A Scanner Darkly
- 154. Thinking Statistically
- 155. Programming Problems
- 156. Ender's Shadow
- 157. Reasoned Schemer
- 158. RFC 6265: HTTP State Management Mechanism
- 159. 1Q84
- 160. Norwegian Wood
- 161. Woman in the Dunes
- 162. 1984
- 163. Brothers Karamozov
- 164. Babel-17
- 165. Snow Crash
- 166. JPod
- 167. Neuromancer
- 168. Count Zero
- 169. Mona Lisa Overdrive
- 170. Patern Recognition
- 171. Spook country
- 172. Zero History
- 173. The VAL Language: Description and Analysis
- 174. Coproducts of Monads on Set
- 175. Extending Monads with Pattern Matching
- 176. Monads, Zippers and Views
- 177. Monads in Action
- 178. Taming Aspects with Monads and Membranes
- 179. Towards Control of Aspect Interference using Membranes and Monads
- 180. Monads for Incremental Computing
- 181. The marriage of effects and monads
- 182. Building Interpreters by Composing Monads
- 183. Making Monads First-class with Template Haskell
- 184. Monad Transformers Step by Step
- 185. Monad Transformers Step by Step
- 186. The Marriage of Effects and Monads
- 187. Programming Monads Operationally with Unimo
- 188. High Performance Websites
- 189. Using types as search keys in function libraries
- 190. Retrieving re-usable software components by polymorphic type
- 191. On Lisp
- 192. SICP
- 193. SICM
- 194. Paradigms of Artificial Intelligence Programming
- 195. Push-pull functional reactive programming
- 196. Denotational design with type class morphisms
- 197. Functional Reactive Animation
- 198. Two Techniques for Compiling Lazy Pattern Matching
- 199. Lectures on the Curry-Howard Isomorphism
- 200. Functional Reactive Animation
- 201. Growing a Languages
http://www.citeulike.org/user/jwalsh/ http://www.goodreads.com/review/list/5368953?shelf=currently-reading
1. Poster: the development of a semantic feature analysis based mobile application for individuals with aphasia
2. Professional JavaScript for Web Developers
3. Functional Programming and the Lambda Calculus
Stephen A. Edwards Columbia University Fall 2008
http://www.cs.columbia.edu/~sedwards/classes/2010/w4115-spring/functional.pdf
4. The Lambda Calculus, Its Syntax and Semantics
5. λ-Calculus: Then & Now
Dana S. Scott University Professor Emeritus Carnegie Mellon University Visiting Scholar University of California, Berkeley
6. A Useful λ-Notation
http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.15.6554
KAMAREDDINE, F. AND NEDERPELT, R. 1996b. A useful λ-notation. Theoretical Comput. Sci. 155, 1, 85–109. KLEENE, S
An historical survey on type theory can be found in Kamareddine et al.
7. The formal system λδ
8. An Interpreter for Extended Lambda Calculus
AI Memo No. 349, December 1979
file:///Users/jasonwalsh/Dropbox/Books/AIM-349.pdf
http://repository.readscheme.org/ftp/papers/ai-lab-pubs/AIM-349.pdf
This brings up the point that the pedagogy of programming languages shouldn't start with the mathematical foundations: that battle has largely been lost in spite of the typing and proof approaches. It would be better to create something fun, play with the current best language available, then move to something more historical.
For example,
- CoffeeScript
- JavaScript
- Scheme
- Lambda Calculus
- Proof theory
- Logic
Would probably be best not to require that one conform directly to typing the language: though generally something that wouldn't be advised the building block approach might be reasonable.
9. DONE Testable JavaScript
Starts just by looking at the reasons by one would want to test their code: that's not a particularly good use of time since people buying the book presumeably understand the goals.
Looks initially just at the process for software development; likely a previous job from Mark Trostler?
Covered some interesting points:
10. The Road to Modern Logic - An Interpretation
11. The Completion of the Emergence of Modern Logic
… from Boole’s The Mathematical Analysis of Logic to Frege’s Begriffsschrift http://link.springer.com/chapter/10.1007/978-3-642-18026-2_10#page-2
12. The Org Mode 7 Reference Manual
12.1. Tables
- Using C-c = for adding calculations
12.2. TODO Keywords for org-mode
Using TODO as the main keyword with the default state changes.
Should review the progress logging notes in 5.3 later this evening
org-export-with-todo-keywords is a variable defined in `org-exp.el'.
12.3. Dates and Times
- Using scheduled dates more agressively
12.4. Capture
- Using base capture templates
- Added emacsclient
12.5. Agendas
- Adding new org-agenda-files
- Custom agenda views for week and status
12.6. Mobile
- Base setup to WebDav
- Separating of notes to SVN directory but shared WebDav
- org-mobile-push org-mobile-push on startup
- Setup of iOS
12.7. Easy Templates
- <e <s examples
- This are covered more fully in 16.2
13. A Simpler Proof Theory for Nominal Logic
equivariance, freshness and abstraction.
14. Equivariance and Invariance
http://mason.gmu.edu/~jgentle/csi9723/11s/l08b_11s.pdf
Definition. A group G is a nonempty set G together with a binary operation ◦ such that
• g1,g2 ∈ G ⇒ g1 ◦ g2 ∈ G (closure); • ∃e ∈ G ∀g ∈ G, e ◦ g = g (identity); • ∀g ∈ G ∃g −1 ∈ G 3 g −1 ◦ g = e (inverse); • g1,g2,g3∈ G ⇒ g 1 ◦ (g2 ◦ g3) = (g1 ◦ g2) ◦ g3 (associativity).
15. Higher-Order Abstract Syntax: Setting the Record Straight
16. Nominal logic, a first order theory of names and binding
17. Nominal Logic Programming
http://www.inf.ed.ac.uk/teaching/courses/lp/
http://www.cl.cam.ac.uk/~amp12/talks/tacs01.pdf
The primary book for the programming side of the course is Learn Prolog Now, by Blackburn, Bos and Striegnitz. The book is strongly recommended, and is available free on-line. Other useful books on prolog programming are
Programming in Prolog by Clocksin and Mellish, Springer. (There are many copies of this in the University library.) The Art of Prolog by Sterling and Shapiro, MIT Press Prolog Programming for Artificial Intelligence by Ivan Bratko, Addison Wesley. For the theory lectures, the following background material on propositional and predicate will be useful for students who have not previously encountered propositional and predicate logic.
Wikipedia page on Propositional calculus Wikipedia page on First-order logic Wikipedia page on Structure (mathematical logic) Introductory slides (pdf) on Predicate logic and quantifiers from University of Nebraska
18. First-Order Logic
@book{smullyan1968first, title={First-Order Logic}, author={Smullyan, R.M.}, isbn={9783642867187}, series={Erg. d. Math. u. i. Grenzgeb}, url={http://books.google.com/books?id=eq5GNAEACAAJ}, year={1968}, publisher={Springer Berlin Heidelberg} }
19. Learn Prolog Now!
20. AdSentry: comprehensive and flexible confinement of JavaScript-based advertisements
21. An Introduction to Functional Programming through Lambda Calculus
- https://dl.acm.org/citation.cfm?id=534538
- http://www.amazon.com/Introduction-Functional-Programming-Calculus-Mathematics/dp/0486478831
This was also listed under http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.55.9553 which looks interesting.
21.1. Core concepts
Seems so much harder than the actual concepts being applied: the semantics of lambda calculus makes it more annoying and makes the value suspects for practitioners.
22. ToMaTo: a trustworthy code mashup development tool
23. An empirical study of privacy-violating information flows in JavaScript web applications
24. Partitioning graphs to speedup Dijkstra's algorithm
25. Purely functional data structures
26. Russellian Simple Type Theory
Alonzo Church Proceedings and Addresses of the American Philosophical Association Vol. 47, (1973 - 1974), pp. 21-33 Published by: American Philosophical Association Article Stable URL: http://www.jstor.org/stable/3129899
27. Learn You a Haskell
28. Tree-Manipulating Systems and Church-Rosser Theorems
29. The functional power of parameter passage mechanism
30. Learning from the Web
31. On the security of public-key protocols
32. HTTP Cookies: Standards, privacy, and politics
33. Web caching on smartphones: ideal vs. reality
34. Selecting a hashing algorithm
35. JavaScript as an embedded DSL
36. How not to survey developers and repositories: experiences analyzing language adoption
37. The Joy of Clojure: Thinking the Clojure Way clojure
On Kindle.
- ch4: automatic promotion on overflow
38. Programming Clojure clojure
39. EMACS the extensible, customizable self-documenting display editor
40. Eoops: an object-oriented programming system for Emacs-Lisp
41. Multics Emacs (Prose and Cons): A commercial text-processing system in Lisp
42. Mixin-based inheritance
43. XSLT version 2.0 is turing-complete: a purely transformation based proof
44. Javascript bible, sixth edition javascript
45. Status report: specifying JavaScript with ML
46. ECMA-262: ECMAScript Language Specification javascript
47. 10 Immutable Laws of Security
48. Graded Browser Support
49. The Promise System
50. Channels: A Generalization of Streams
51. Promises: Linguistic Support for Efficient Asynchronous Procedure Calls in Distributed Systems
52. Async JavaScript: Build More Responsive Apps with Less Code
http://pragprog.com/book/tbajs/async-javascript
You purchased this item on July 13, 2012.
53. The Uses of Knowledge in Society
54. A Universal Modular ACTOR Formalism for Artificial Intelligence
55. Design Patterns, Elements Of Reusable Object-Oriented Software
56. A Security Kernel Based on the Lambda-Calculus
57. The Architecture of Complexity
58. Measuring Relative Attack Surfaces
59. Toward a Critical Theory of Cyberspace
60. Hedgehog Architecture
61. DONE Tracking the trackers: fast and scalable dynamic analysis of web content for privacy violations
http://www.comp.nus.edu.sg/~liangzk/papers/acns12.pdf
This had a number of the same points that we were planning on using for the fingerprinting.
Each of the parameters we were passing were going to be included in the list of privacy affected components.
62. TODO I Still Know What You Visited Last Summer: Leaking Browsing History via User Interaction and Side Channel Attacks
63. TODO An empirical study of privacy-violating information flows in JavaScript web applications privacy javascript
@inproceedings{Jang:2010:ESP:1866307.1866339, author = {Jang, Dongseok and Jhala, Ranjit and Lerner, Sorin and Shacham, Hovav}, title = {An empirical study of privacy-violating information flows in JavaScript web applications}, booktitle = {Proceedings of the 17th ACM conference on Computer and communications security}, series = {CCS '10}, year = {2010}, isbn = {978-1-4503-0245-6}, location = {Chicago, Illinois, USA}, pages = {270--283}, numpages = {14}, url = {http://doi.acm.org/10.1145/1866307.1866339}, doi = {10.1145/1866307.1866339}, acmid = {1866339}, publisher = {ACM}, address = {New York, NY, USA}, keywords = {JavaScript, dynamic analysis, history sniffing, information flow, privacy, rewriting, web application, web security}, }
var l = document.getElementsByTagName('a')[0]; document.defaultView.getComputedStyle(l, null).getPropertyValue("color")
64. TODO Privacy leakage in mobile online social networks
http://web.cs.wpi.edu/~cew/papers/wosn10.pdf
Figure 3 shows three different mOSN interfaces where the mOSN identifier is leaked to a third-party server as part of a HTTP request via either the Request-URI or the Referer header.
65. AOJS: aspect-oriented javascript programming framework for web development
JavaScript is a popular scripting language that is particularly useful for client-side programming together with HTML /XML on the Web. As JavaScript programs become more complex and large, separation of concerns at the implementation level is a significant challenge.
66. Keeping information safe from social networking apps
67. Privacy-aware identity management for client-side mashup applications
68. Web user de-identification in personalization
69. AjaxScope: A Platform for Remotely Monitoring the Client-Side Behavior of Web 2.0 Applications
70. Formal specification of a JavaScript module system
71. An approach for identifying JavaScript-loaded advertisements through static program analysis
Similarly, return [expression,…]; was more common in ad-related scripts.
72. The case for JavaScript transactions: position paper
73. TODO Automated Analysis of Security-Critical JavaScript APIs javascript
74. When browsing leaves footprints: automatically detect privacy violations
@inproceedings{Hofinger:2012:BLF:2181196.2181205, author = {Hofinger, Hans and Kiening, Alexander and Schoo, Peter}, title = {When browsing leaves footprints: automatically detect privacy violations}, booktitle = {Proceedings of the First Workshop on Measurement, Privacy, and Mobility}, series = {MPM '12}, year = {2012}, isbn = {978-1-4503-1163-2}, location = {Bern, Switzerland}, pages = {9:1--9:6}, articleno = {9}, numpages = {6}, url = {http://doi.acm.org/10.1145/2181196.2181205}, doi = {10.1145/2181196.2181205}, acmid = {2181205}, publisher = {ACM}, address = {New York, NY, USA}, keywords = {Firefox add-on, PRIVIDOR, privacy violations, web}, }
75. App isolation: get the security of multiple browsers with just one
@inproceedings{Chen:2011:AIG:2046707.2046734, author = {Chen, Eric Yawei and Bau, Jason and Reis, Charles and Barth, Adam and Jackson, Collin}, title = {App isolation: get the security of multiple browsers with just one}, booktitle = {Proceedings of the 18th ACM conference on Computer and communications security}, series = {CCS '11}, year = {2011}, isbn = {978-1-4503-0948-6}, location = {Chicago, Illinois, USA}, pages = {227--238}, numpages = {12}, url = {http://doi.acm.org/10.1145/2046707.2046734}, doi = {10.1145/2046707.2046734}, acmid = {2046734}, publisher = {ACM}, address = {New York, NY, USA}, keywords = {cross-site request forgery, cross-site scripting, isolation, security modeling, web application security, web browser architecture}, }
76. AdSentry: Comprehensive and Flexible Confinement of JavaScript-based Advertisements
77. DONE Fast, Scalable Detection of “Piggybacked” Mobile Applications
Malware Family | Module Name | # Piggybacked Apps |
Geinimi | om.geinimi | 6 |
ADRD | om.xxx.yyy | 1 |
Pjapps | om.android.main | 8 |
DDream | om.android.root | 10 |
BgServ | om.mms.bg | 1 |
78. The open-closed principle
@incollection{Martin:2000:OP:331120.331143, author = {Martin, Robert C.}, chapter = {The open-closed principle}, title = {More C++ gems}, editor = {Martin, Robert C.}, year = {2000}, isbn = {0-521-78618-5}, pages = {97--112}, numpages = {16}, url = {http://dl.acm.org/citation.cfm?id=331120.331143}, acmid = {331143}, publisher = {Cambridge University Press}, address = {New York, NY, USA}, }
Listed in http://en.wikipedia.org/wiki/Open/closed_principle
79. Realizing the Open-Closed Principle
The first principle in developing large software systems is the Open-Closed Principle (OCP). This principle seems asking for two conflict goals. How to realize the principle in the real software practice? What are the enabling technologies that can be used to implement the principle? This paper uses a case study to demonstrate the importance of the principle, the design methodology for realizing the principle, and its enabling technologies.
@inproceedings{Xu:2005:ROP:1090950.1091578, author = {Xu, Chong-wei and Hughes, Jose}, title = {Realizing the Open-Closed Principle}, booktitle = {Proceedings of the Fourth Annual ACIS International Conference on Computer and Information Science}, series = {ICIS '05}, year = {2005}, isbn = {0-7695-2296-3}, pages = {274--279}, numpages = {6}, url = {http://dx.doi.org/10.1109/ICIS.2005.107}, doi = {10.1109/ICIS.2005.107}, acmid = {1091578}, publisher = {IEEE Computer Society}, address = {Washington, DC, USA}, keywords = {Component-based Software Engineering, Software Reuse, Software Architecture, JavaBeans, Multithreading}, }
80. JavaScript: The Good Parts javascript
81. JavaScript: The Definitive Guide javascript
82. Third-Party Javascript javascript
Looked at the delivery of JavaScript to make it non-blocking. The key notes are in
82.1. TODO Subdomain proxies
This should be reviewed more deeply.
82.2. Third-party cookies
See the table here for the best background on the behavior:
Browser | Send | Write | Disabled by default |
Chrome | No | No | No |
Firefox | No | No | No |
IE | Yes | No | No |
Opera | Yes | No | No |
Safari (+mobile) | Yes | Sometimes | Yes |
This also includes the prototype that lists how to test for the setting of third-party cookies.
This also recommended explicitly opening a new browser window as the way to force first-party status (p. 141).
83. Maintainable JavaScript javascript
84. Programming JavaScript Applications
Picked up during the Fluent sale.
84.1. Chapter 5. Modules
This seems to have the best discussion of modules.
http://chimera.labs.oreilly.com/books/1234000000262/ch05.html
Not clear why they needed the specialized, independent, decomposable, recomposable, substitutable distinction as a "Principle of Modularity" rather than just diving in to the implementation aspects.
The Open Closed Principle states that a module interface should be open to extension but closed to modification.
This also had some of the information on how to best use browserify to creae a public application. This required setting a package.json. In general it looks like people will be moving away from RequireJS because of the complexity: even the async parts didn't seem to be that great and the masking of globals can be a bit difficult to debug.
http://esa-matti.suuronen.org/blog/2013/03/22/journey-from-requirejs-to-browserify/
85. Upgrading to RequireJS 2.1
86. Design Patterns
Program to an interface, not an implementation.
(quoted in )
87. JavaScript Enlightenment
- Get a short and digestible summary of ECMA-262, Edition 3, backed by real code you can run instantly
- Examine the creation of JavaScript objects
- Learn complex values, primitive values, scope, and inheritance
- Understand the importance of the head object
- Work with string, number, and Boolean objects and values
- Discover how to use the null value and the built-in math object
- Get into the details—beyond Mozilla’s reference guide for JavaScript 1.5
88. Test-Driven JavaScript Development javascript
89. JavaScript Patterns javascript
90. Secrets of the Javascript Ninja javascript
91. Eloquent JavaScript: A Modern Introduction to Programming javascript
92. Dependent Types for JavaScript javascript
We present Dependent JavaScript (DJS), a statically typed dialect of the imperative, object-oriented, dynamic language. DJS supports the particularly challenging features such as run-time type-tests, higher-order functions, extensible ob- jects, prototype inheritance, and arrays through a combina- tion of nested refinement types, strong updates to the heap, and heap unrolling to precisely track prototype hierarchies.
@article{Chugh:2012:DTJ:2398857.2384659, author = {Chugh, Ravi and Herman, David and Jhala, Ranjit}, title = {Dependent types for JavaScript}, journal = {SIGPLAN Not.}, issue_date = {October 2012}, volume = {47}, number = {10}, month = oct, year = {2012}, issn = {0362-1340}, pages = {587--606}, numpages = {20}, url = {http://doi.acm.org/10.1145/2398857.2384659}, doi = {10.1145/2398857.2384659}, acmid = {2384659}, publisher = {ACM}, address = {New York, NY, USA}, keywords = {JavaScript, arrays, prototype inheritance, refinement types, strong updates}, }
93. Type Analysis for JavaScript javascript
JavaScript is the main scripting language for Web browsers, and it is essential to modern Web applications. Programmers have started using it for writing complex applications, but there is still little tool support available during development.
We present a static program analysis infrastructure that can infer detailed and sound type information for JavaScript programs using abstract interpretation. The analysis is designed to support the full language as defined in the ECMAScript standard, including its peculiar object model and all built-in functions. The analysis results can be used to detect common programming errors — or rather, prove their absence, and for producing type information for program comprehension.
@inproceedings{Jensen:2009:TAJ:1615441.1615460, author = {Jensen, Simon Holm and M{\o}ller, Anders and Thiemann, Peter}, title = {Type Analysis for JavaScript}, booktitle = {Proceedings of the 16th International Symposium on Static Analysis}, series = {SAS '09}, year = {2009}, isbn = {978-3-642-03236-3}, location = {Los Angeles, CA}, pages = {238--255}, numpages = {18}, url = {http://dx.doi.org/10.1007/978-3-642-03237-0_17}, doi = {10.1007/978-3-642-03237-0_17}, acmid = {1615460}, publisher = {Springer-Verlag}, address = {Berlin, Heidelberg}, }
94. Even Faster Web Sites: Performance Best Practices for Web Developers javascript
@book{Souders:2009:EFW:1717800, author = {Souders, Steve}, title = {Even Faster Web Sites: Performance Best Practices for Web Developers}, year = {2009}, isbn = {0596522304, 9780596522308}, edition = {1st}, publisher = {O'Reilly Media, Inc.}, }
This provides the core decision tree that is generally used when selecting loader. Applied heavily with some of the Canvas work but focussed more heavily when integrating with third-parties. See chapter 4 for the main distriction.
XHR Eval XHR Injection Script in Iframe Script DOM Elemnt Script Defer
- different domain
- no order
- preserve order
- same domain
- no order
- no busy
- show busy
- preserve order
- no busy
- show busy
- no order
In general for third-party JavaScript I've been looking at providing the no-order, async approach.
95. The Dispossessed
- Anarchy
- Utopia
- Physics
- Communication
- Sapir–Whorf Hypothesis http://c2.com/cgi/wiki?SapirWhorfHypothesis
- Whorfianism http://c2.com/cgi/wiki?WhorfianHypothesis
Contrast other books that note that the language used defines the ability to create abstractions.
@book{guin2009dispossessed, title={The Dispossessed}, author={Guin, U.K.L.}, isbn={9780061796883}, url={http://books.google.com/books?id=k1Smynbdy\_IC}, year={2009}, publisher={HarperCollins} }
96. Makers
97. Windup Girl
98. South of the Border, West of the Sun
99. Anathem
100. Accelerando
101. Evolution of Cooperation
102. Beyond the Hoax
103. Clojue Data Analysis Cookbook clojure
104. CyberStorm
105. Quiet
106. Vision of Buddhism
107. Facets of Buddhism
108. Tao is Silent
109. Painted Birds
110. Nexus
- Transhumanism
- Cyborgs
111. Tractatus Logico-Philophicus
112. Rissa and Tregare
113. Young Rissa
114. Programming in Scala
115. GNU Emacs Extensions
116. Lake
117. This Perfect Day
118. Best Writing on Mathematics 2012
119. HTML5 for Publishers
120. ClojureScript: Up and Running clojure
121. Clojure in Action
122. From the Teeth of Angels
123. American Psycho
124. Day of the Triffids
125. Slaughterhouse - Five
126. Ubik
127. Clown
128. Signal and the Noise
129. Effective JavaScript javascript
130. Irony of American History
131. Fire Upon the Deep
132. Understanding Power
133. Prague Cemetery
134. Infinite Jest
135. Doing Capitalism in the Innovation Economy
136. The Great Thoughts
137. Well-Grouynded Rubyist
138. Rails 3 in Action rails
139. Rails 4 in Action rails
140. Age of Insight
141. Social Conquest of Earth
142. JavaScript Web Applications javascript
143. Large Web Applications javascript
144. Kafka on the Shore
145. Speaker for the Dead
146. Thinking Fast and Slow
147. Think Complexity
148. Antifragile
149. Foundation
150. Functional Programming in Scala
151. Linked Data
152. Do Androids Dream of Electric Sheep?
153. A Scanner Darkly
154. Thinking Statistically
155. Programming Problems
156. Ender's Shadow
157. Reasoned Schemer
@book{friedman2005reasoned, title={The reasoned schemer}, author={Friedman, D.P. and Byrd, W.E. and Kiselyov, O.}, isbn={9780262562140}, lccn={2005051092}, url={http://books.google.com/books?id=\_xciAQAAIAAJ}, year={2005}, publisher={MIT Press} }
158. RFC 6265: HTTP State Management Mechanism
Look at all of the fields available. Should there be an override?
Should there be encoding
Should this just be extra values.
159. 1Q84
160. Norwegian Wood
161. Woman in the Dunes
162. 1984
163. Brothers Karamozov
164. Babel-17
http://en.wikipedia.org/wiki/Babel-17
During an interstellar war one side develops a language, Babel-17, that can be used as a weapon. Learning it turns one into an unwilling traitor as it alters perception and thought. The change is made more dangerous by the language's seductive enhancement of other abilities.
165. Snow Crash
- Neal Stephenson
166. JPod
http://en.wikipedia.org/wiki/JPod
- read while in Germany
167. Neuromancer
http://en.wikipedia.org/wiki/Neuromancer
- Sprawl trilogy
- Gibson
- 1984
- Case (Henry Dorsett Case)
168. Count Zero
http://en.wikipedia.org/wiki/Count_Zero
- 1986
- Bobby Newmark
169. Mona Lisa Overdrive
- 1988
- Mona
- Kumiko
170. Patern Recognition
http://en.wikipedia.org/wiki/Pattern_Recognition_(novel)
- Cayce Pollard
- Hubertus Bigend
Viral marketing with anonymous artistic clips.
171. Spook country
- Hollis Henry
- Tito
- New York, Vancouver
172. Zero History
http://en.wikipedia.org/wiki/Zero_History
- Hollis Henry
- Milgrim
- Gabriel Hounds
- Garreth
- London, Japan
173. The VAL Language: Description and Analysis
@article{McGraw:1982:VLD:357153.357157, author = {McGraw, James R.}, title = {The VAL Language: Description and Analysis}, journal = {ACM Trans. Program. Lang. Syst.}, issue_date = {Jan. 1982}, volume = {4}, number = {1}, month = jan, year = {1982}, issn = {0164-0925}, pages = {44--82}, numpages = {39}, url = {http://doi.acm.org/10.1145/357153.357157}, doi = {10.1145/357153.357157}, acmid = {357157}, publisher = {ACM}, address = {New York, NY, USA}, }
174. Coproducts of Monads on Set
175. Extending Monads with Pattern Matching
176. Monads, Zippers and Views
We make monadic components more reusable and robust to changes by employing two new techniques for virtualizing the monad stack: the monad zipper and monad views. The monad zipper is a higherorder monad transformer that creates virtual monad stacks by ignoring particular layers in a concrete stack. Monad views provide a general framework for monad stack virtualization: they take the monad zipper one step further and integrate it with a wide range of other virtualizations. For instance, particular views allow restricted access to monads in the stack. Furthermore, monad views provide components with a call-by-reference-like mechanism for accessing particular layers of the monad stack.
177. Monads in Action
In functional programming, monadic characterizations of computational effects are normally understood denotationally: they describe how an effectful program can be systematically expanded or translated into a larger, pure program, which can then be evaluated according to an effect-free semantics. Any effect-specific operations expressible in the monad are also given purely functional definitions, but these definitions are only directly executable in the context of an already translated program. This approach thus takes an inherently Church-style view of effects: the nominal meaning of every effectful term in the program depends crucially on its type.
178. Taming Aspects with Monads and Membranes
In this paper we describe how to control aspect interference by construction by relying on the type system. More precisely, we combine a monadic embedding of the pointcut/advice model in Haskell with the notion of membranes for aspect-oriented programming. Aspects must explicitly declare the side effects and the context they can act upon. Allowed patterns of control flow interference are declared at the membrane level and statically enforced. Finally, computational interference between aspects is controlled by the membrane topology. To combine independent and reusable aspects and monadic components into a program specification we use monad views, a recent technique for conveniently handling the monadic stack.
179. Towards Control of Aspect Interference using Membranes and Monads
In aspect-oriented programming (AOP), aspects are modular units that encapsulate crosscutting concerns. Aspects are typically developed independently, sometimes under the assumption that no other aspects will be applied to a system. However, when several aspects are applied on a system it is important to be aware of the interactions between them, because the correctness of the composed system may be affected.
180. Monads for Incremental Computing
This paper presents a monadic approach to incremental computation, suitable for purely functional languages such as Haskell. A program that uses incremental computation is able to perform an incremental amount of computation to accommodate for changes in input data. Recently, Acar, Blelloch and Harper presented a small Standard ML library that supports efficient, high-level incremental computations. Here, we present a monadic variant of that library, written in Haskell extended with first-class references. By using monads, not only are we able to provide a purely functional interface to the library, the types also enforce “correct usage” without having to resort to any type-system extension. We also find optimization opportunities based on standard monadic combinators.
181. The marriage of effects and monads
Abstract Gifford and others proposed an effect typing discipline to de- limit the scope of computational effects within a program, while Moggi and others proposed monads for much the same purpose. Here we marry effects to monads, uniting two pre- viously separate lines of research. In particular, we show that the type, region, and effect system of Talpin and Jou- velot carries over directly to an analogous system for mon- ads, including a type and effect reconstruction algorithm. The same technique should allow one to transpose any ef- fect systems into a corresponding monad system.
182. Building Interpreters by Composing Monads
183. Making Monads First-class with Template Haskell
184. Monad Transformers Step by Step
185. Monad Transformers Step by Step
186. The Marriage of Effects and Monads
187. Programming Monads Operationally with Unimo
Monads are widely used in Haskell for modeling computational effects, but defining monads remains a daunting challenge. Since every part of a monad’s definition depends on its computational effects, programmers cannot leverage the common behavior of all monads easily and thus must build from scratch each monad that models a new computational effect.
188. High Performance Websites
This was from an article
Load scripts without blocking. As described in rule 6, external scripts block the download and rendering of other content in the page. This is true when the script is loaded in the typical way: <script src=”foo.js” type=”text/javascript”></script> Several techniques for downloading scripts, however, avoid this blocking behavior: • XHR eval • XHR injection • script in iframe • script DOM element • script defer • document.write script tag You can see these techniques illustrated in Cuzillion (http://stevesouders.com/cuzillion/), but as an example let’s look at the script DOM element approach: <script type=”text/javascript”> var se = document.createElement(‘script’); se.src = ‘http://anydomain.com/foo.js’; document.getElementsByTagName(‘head’). appendChild(se); </script>
189. Using types as search keys in function libraries
@inproceedings{Rittri:1989:UTS:99370.99384, author = {Rittri, Mikael}, title = {Using types as search keys in function libraries}, booktitle = {Proceedings of the fourth international conference on Functional programming languages and computer architecture}, series = {FPCA '89}, year = {1989}, isbn = {0-89791-328-0}, location = {Imperial College, London, United Kingdom}, pages = {174--183}, numpages = {10}, url = {http://doi.acm.org/10.1145/99370.99384}, doi = {10.1145/99370.99384}, acmid = {99384}, publisher = {ACM}, address = {New York, NY, USA}, }
A method is proposed to search for an identifier by using its type as a key. This can be seen as an approximation of using the specification as a key. Functions that only differ in their currying or argument order are essentially the same, which is expressed by a con- gruence relation on types. Isomorphism in Cartesian closed categories is used for this purpose. Simpler put, types are re- garded as congruent if they are equal under an arithmetical interpretation, with Cartesian product as multiplication and function space as exponentiation. The congruence is char- acterized by seven axioms, and there is an efficient decision algorithm. A search system for Lazy ML has been implemented; its performance is promising
190. Retrieving re-usable software components by polymorphic type
@inproceedings{Runciman:1989:RRS:99370.99383, author = {Runciman, Colin and Toyn, Ian}, title = {Retrieving re-usable software components by polymorphic type}, booktitle = {Proceedings of the fourth international conference on Functional programming languages and computer architecture}, series = {FPCA '89}, year = {1989}, isbn = {0-89791-328-0}, location = {Imperial College, London, United Kingdom}, pages = {166--173}, numpages = {8}, url = {http://doi.acm.org/10.1145/99370.99383}, doi = {10.1145/99370.99383}, acmid = {99383}, publisher = {ACM}, address = {New York, NY, USA}, }
ABSTRACT Polymorphic types are labels classifying both (a) degned components in a library and @) contexts of free variables in partially written programs. We propose to help programmers make better use of software libraries by providing a system that, given (b). identifies candidates from (a) with matching types. Assuming at first that matching means unifying (ie having a common instance) we discuss efficient ways of implementing such a retrieval system, and also indicate its likely effectiveness based on a quantitative study of currently available libraries. Later we introduce the applicative inamnce relation between types* which captures some iUttlitiOnS about generalisation/specialisation~ and discuss its use as the basis of a more flexible system.
191. On Lisp
On Lisp Prolog interpretter http://dunsmor.com/lisp/onlisp/onlisp_28.html
192. SICP
http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-25.html#%_chap_4
Mentioned at #lambdajam
193. SICM
194. Paradigms of Artificial Intelligence Programming
195. Push-pull functional reactive programming
@InProceedings {Elliott2009-push-pull-frp, author = {Conal Elliott}, title = {Push-pull functional reactive programming}, booktitle = {Haskell Symposium}, url = {http://conal.net/papers/push-pull-frp}, year = 2009 }
http://conal.net/papers/push-pull-frp/
Functional reactive programming (FRP) has simple and powerful semantics, but has resisted efficient implementation. In particular, most past implementations have used demand-driven sampling, which accommodates FRP’s continuous time semantics and fits well with the nature of functional programming. Consequently, values are wastefully recomputed even when inputs don’t change, and reaction latency can be as high as the sampling period.
196. Denotational design with type class morphisms
197. Functional Reactive Animation
http://conal.net/papers/icfp97/
@InProceedings{ElliottHudak97:Fran, title = {Functional Reactive Animation}, url = {http://conal.net/papers/icfp97/}, author = "Conal Elliott and Paul Hudak", booktitle = "International Conference on Functional Programming", year = 1997 }
198. Two Techniques for Compiling Lazy Pattern Matching
@MISC{Maranget94twotechniques, author = {Luc Maranget and Inria Rocquencort}, title = {Two Techniques for Compiling Lazy Pattern Matching}, year = {1994} }
199. Lectures on the Curry-Howard Isomorphism
@MISC{Sørensen98lectureson, author = {Morten Heine B. Sørensen and Pawel Urzyczyn}, title = {Lectures on the Curry-Howard Isomorphism}, year = {1998} }
200. Functional Reactive Animation
@InProceedings{ElliottHudak97:Fran, title = {Functional Reactive Animation}, url = {http://conal.net/papers/icfp97/}, author = "Conal Elliott and Paul Hudak", booktitle = "International Conference on Functional Programming", year = 1997 }
201. Growing a Languages
Growing a Language Guy L. Steele Jr. Sun Microsystems Laboratories 1 Network Drive Burlington, Massachusetts 01803 guy.steele@sun.com October 1998