UP | HOME

Table of Contents

http://www.citeulike.org/user/jwalsh/
http://www.goodreads.com/review/list/5368953?shelf=currently-reading

Poster: the development of a semantic feature analysis based mobile application for individuals with aphasia

TITLE: Poster: the development of a semantic feature analysis based mobile application for individuals with aphasia BTYPE: inproceedings CUSTOM_ID: Higgins:2012:PDS:2307636.2307710 AUTHOR: Higgins, Conor and Kearns, \'{A}ine and Franklin, Sue BOOKTITLE: Proceedings of the 10th international conference on Mobile systems, applications, and services SERIES: MobiSys '12 YEAR: 2012 ISBN: 978-1-4503-1301-8 LOCATION: Low Wood Bay, Lake District, UK PAGES: 513--514 NUMPAGES: 2 URL: http://doi.acm.org/10.1145/2307636.2307710 DOI: 10.1145/2307636.2307710 ACMID: 2307710 PUBLISHER: ACM ADDRESS: New York, NY, USA KEYWORDS: aphasia, semantic feature analysis

Professional JavaScript for Web Developers

TITLE: Professional JavaScript for Web Developers BTYPE: book CUSTOM_ID: Zakas:2012:PJW:2222729 AUTHOR: Zakas, Nicholas C. YEAR: 2012 ISBN: 1118026691, 9781118026694 EDITION: 3rd PUBLISHER: Wrox Press Ltd. ADDRESS: Birmingham, UK, UK

Functional Programming and the Lambda Calculus

ID: FFA54569-575F-4C85-9A3D-6E9E7250892F

Stephen A. Edwards
Columbia University
Fall 2008

http://www.cs.columbia.edu/~sedwards/classes/2010/w4115-spring/functional.pdf

The Lambda Calculus, Its Syntax and Semantics

λ-Calculus: Then & Now

ID: FEBE041D-3F1B-4EB8-8056-F60E20A1BE7F

Dana S. Scott
University Professor Emeritus
Carnegie Mellon University
Visiting Scholar
University of California, Berkeley

http://turing100.acm.org/lambda_calculus_timeline.pdf

A Useful λ-Notation

TITLE: A Useful λ-Notation BTYPE: misc CUSTOM_ID: Kamareddine96auseful AUTHOR: Fairouz Kamareddine and Rob Nederpelt YEAR: 1996 ID: 22BB741B-C50C-4B05-ADE9-172F834AF8AF

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.

The formal system λδ

TITLE: The formal system \λ\δ BTYPE: article CUSTOM_ID: Guidi:2009:FSL:1614431.1614436 AUTHOR: Guidi, Ferruccio JOURNAL: ACM Trans. Comput. Logic ISSUE_DATE: October 2009 VOLUME: 11 NUMBER: 1 MONTH: nov YEAR: 2009 ISSN: 1529-3785 PAGES: 5:1--5:37 ARTICLENO: 5 NUMPAGES: 37 URL: http://doi.acm.org/10.1145/1614431.1614436 DOI: 10.1145/1614431.1614436 ACMID: 1614436 PUBLISHER: ACM ADDRESS: New York, NY, USA KEYWORDS: Abbreviations, environments as terms, terms as types

An Interpreter for Extended Lambda Calculus

TITLE: An Interpreter for Extended Lambda Calculus BTYPE: techreport CUSTOM_ID: Sussman:1975:IEL:889230 AUTHOR: Sussman, Gerald J. and Steele,Jr., Guy L. YEAR: 1975 SOURCE: http://www.ncstrl.org:8900/ncstrl/servlet/search?formname=detail\&id=oai%3Ancstrlh%3Amitai%3AMIT-AILab%2F%2FAIM-349 PUBLISHER: Massachusetts Institute of Technology ADDRESS: Cambridge, MA, USA ID: D788AC2D-9966-4DE7-AE53-A5C9BD19BF05 INSTITUTION: None

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.

DONE Testable JavaScript

TITLE: Testable JavaScript BTYPE: book CUSTOM_ID: trostler2013testable AUTHOR: Trostler, M. ISBN: 9781449323394 SERIES: Oreilly and Associate Series URL: http://books.google.com/books?id=hjE767CCeQwC YEAR: 2013 PUBLISHER: O'Reilly Media, Incorporated ID: 47B9EE7D-BC22-4B2C-A477-6EB1CF0054F0

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:

The Road to Modern Logic - An Interpretation

ID: EC3F827A-121E-4382-B27D-AA1773B8DA8D

https://www.math.ucla.edu/~asl/bsl/0704/0704-001.ps

The Completion of the Emergence of Modern Logic

ID: 1F2200F8-317D-42BA-9C82-AFC2347995A5

… 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

The Org Mode 7 Reference Manual

Tables

  • Using C-c = for adding calculations

TODO Keywords for org-mode

ID: 20F23CD7-79FC-4C59-8A05-0D57557C6BEF

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’.

Dates and Times

  • Using scheduled dates more agressively

Capture

  • Using base capture templates
  • Added emacsclient

Agendas

  • Adding new org-agenda-files
  • Custom agenda views for week and status

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

Easy Templates

  • <e <s examples
  • This are covered more fully in 16.2

A Simpler Proof Theory for Nominal Logic

equivariance, freshness and abstraction.

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).

Higher-Order Abstract Syntax: Setting the Record Straight

Nominal logic, a first order theory of names and binding

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

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}
}

Learn Prolog Now!

AdSentry: comprehensive and flexible confinement of JavaScript-based advertisements

An Introduction to Functional Programming through Lambda Calculus

TITLE: An Introduction to Functional Programming through Lambda Calculus BTYPE: book CUSTOM_ID: Michaelson:1989:IFP:534538 AUTHOR: Michaelson, Greg YEAR: 1989 ISBN: 0201178125 EDITION: 1st PUBLISHER: Addison-Wesley Longman Publishing Co., Inc. ADDRESS: Boston, MA, USA ID: 9B1B5C8A-B48D-4A8A-B9D1-432AC789E516

This was also listed under
http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.55.9553 which
looks interesting.

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.

ToMaTo: a trustworthy code mashup development tool

TITLE: ToMaTo: a trustworthy code mashup development tool BTYPE: inproceedings CUSTOM_ID: Chang:2011:TTC:2076006.2076012 AUTHOR: Chang, Jian and Venkatasubramanian, Krishna and West, Andrew G. and Kannan, Sampath and Sokolsky, Oleg and Kim, Myuhng Joo and Lee, Insup PUBLISHER: ACM SERIES: Mashups '11 VOLUME: 7 YEAR: 2011 ISBN: 978-1-4503-0823-6 BOOKTITLE: Proceedings of the 5th International Workshop on Web APIs and Service Mashups LOCATION: Lugano, Switzerland PAGES: 5:1--5:8 NUMPAGES: 8 URL: http://doi.acm.org/10.1145/2076006.2076012 DOI: 10.1145/2076006.2076012 ACMID: 2076012 ADDRESS: New York, NY, USA ARTICLENO: 5 KEYWORDS: JavaScript, code analysis, mashup, trust

An empirical study of privacy-violating information flows in JavaScript web applications

TITLE: An empirical study of privacy-violating information flows in JavaScript web applications BTYPE: inproceedings CUSTOM_ID: Jang:2010:ESP:1866307.1866339 AUTHOR: Jang, Dongseok and Jhala, Ranjit and Lerner, Sorin and Shacham, Hovav 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

Partitioning graphs to speedup Dijkstra’s algorithm

TITLE: Partitioning graphs to speedup Dijkstra's algorithm BTYPE: article CUSTOM_ID: Mohring:2007:PGS:1187436.1216585 AUTHOR: M\"{o}hring, Rolf H. and Schilling, Heiko and Sch\"{u}tz, Birk and Wagner, Dorothea and Willhalm, Thomas JOURNAL: J. Exp. Algorithmics ISSUE_DATE: 2006 VOLUME: 11 MONTH: feb YEAR: 2007 ISSN: 1084-6654 ARTICLENO: 2.8 URL: http://doi.acm.org/10.1145/1187436.1216585 DOI: 10.1145/1187436.1216585 ACMID: 1216585 PUBLISHER: ACM ADDRESS: New York, NY, USA KEYWORDS: Dijkstra's algorithm, Shortest path, acceleration method, road network

Purely functional data structures

TITLE: Purely functional data structures BTYPE: book CUSTOM_ID: Okasaki:1998:PFD:280586 AUTHOR: Okasaki, Chris YEAR: 1998 ISBN: 0-521-63124-6 PUBLISHER: Cambridge University Press ADDRESS: New York, NY, USA

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

Learn You a Haskell

ID: 82439CA8-B12E-41B1-AE64-24DCF7760CAE

http://learnyouahaskell.com/

Tree-Manipulating Systems and Church-Rosser Theorems

The functional power of parameter passage mechanism

TITLE: The functional power of parameter passage mechanism BTYPE: inproceedings CUSTOM_ID: Critcher:1979:FPP:567752.567767 AUTHOR: Critcher, Adrienne BOOKTITLE: Proceedings of the 6th ACM SIGACT-SIGPLAN symposium on Principles of programming languages SERIES: POPL '79 YEAR: 1979 LOCATION: San Antonio, Texas PAGES: 158--168 NUMPAGES: 11 URL: http://doi.acm.org/10.1145/567752.567767 DOI: 10.1145/567752.567767 ACMID: 567767 PUBLISHER: ACM ADDRESS: New York, NY, USA

Learning from the Web

TITLE: Learning from the Web BTYPE: article CUSTOM_ID: Bosworth:2005:LW:1103822.1103833 AUTHOR: Bosworth, Adam JOURNAL: Queue ISSUE_DATE: October 2005 VOLUME: 3 NUMBER: 8 MONTH: oct YEAR: 2005 ISSN: 1542-7730 PAGES: 26--32 NUMPAGES: 7 URL: http://doi.acm.org/10.1145/1103822.1103833 DOI: 10.1145/1103822.1103833 ACMID: 1103833 PUBLISHER: ACM ADDRESS: New York, NY, USA

On the security of public-key protocols

TITLE: On the security of public-key protocols BTYPE: article CUSTOM_ID: dolev83 AUTHOR: Danny Dolev and Andrew C. Yao JOURNAL: IEEE Transaction on Information Theory MONTH: Mars NUMBER: 29 PAGES: 198--208 VOLUME: 2 YEAR: 1983

HTTP Cookies: Standards, privacy, and politics

TITLE: HTTP Cookies: Standards, privacy, and politics BTYPE: article CUSTOM_ID: Kristol:2001:HCS:502152.502153 AUTHOR: Kristol, David M. JOURNAL: ACM Trans. Internet Technol. ISSUE_DATE: November 2001 VOLUME: 1 NUMBER: 2 MONTH: nov YEAR: 2001 ISSN: 1533-5399 PAGES: 151--198 NUMPAGES: 48 URL: http://doi.acm.org/10.1145/502152.502153 DOI: 10.1145/502152.502153 ACMID: 502153 PUBLISHER: ACM ADDRESS: New York, NY, USA KEYWORDS: Cookies, HTTP, World Wide Web, privacy, state management

Web caching on smartphones: ideal vs. reality

TITLE: Web caching on smartphones: ideal vs. reality BTYPE: inproceedings CUSTOM_ID: Qian:2012:WCS:2307636.2307649 AUTHOR: Qian, Feng and Quah, Kee Shen and Huang, Junxian and Erman, Jeffrey and Gerber, Alexandre and Mao, Zhuoqing and Sen, Subhabrata and Spatscheck, Oliver BOOKTITLE: Proceedings of the 10th international conference on Mobile systems, applications, and services SERIES: MobiSys '12 YEAR: 2012 ISBN: 978-1-4503-1301-8 LOCATION: Low Wood Bay, Lake District, UK PAGES: 127--140 NUMPAGES: 14 URL: http://doi.acm.org/10.1145/2307636.2307649 DOI: 10.1145/2307636.2307649 ACMID: 2307649 PUBLISHER: ACM ADDRESS: New York, NY, USA KEYWORDS: cellular networks, http caching, redundancy elimination, redundant traffic, smartphone applications

Selecting a hashing algorithm

TITLE: Selecting a hashing algorithm BTYPE: article CUSTOM_ID: McKenzie:1990:SHA:78876.78882 AUTHOR: McKenzie, B. J. and Harries, R. and Bell, T. JOURNAL: Softw. Pract. Exper. ISSUE_DATE: February 1990 VOLUME: 20 NUMBER: 2 MONTH: feb YEAR: 1990 ISSN: 0038-0644 PAGES: 209--224 NUMPAGES: 16 URL: http://dx.doi.org/10.1002/spe.4380200207 DOI: 10.1002/spe.4380200207 ACMID: 78882 PUBLISHER: John Wiley \& Sons, Inc. ADDRESS: New York, NY, USA

JavaScript as an embedded DSL

TITLE: JavaScript as an embedded DSL BTYPE: inproceedings CUSTOM_ID: Kossakowski:2012:JED:2367163.2367190 AUTHOR: Kossakowski, Grzegorz and Amin, Nada and Rompf, Tiark and Odersky, Martin BOOKTITLE: Proceedings of the 26th European conference on Object-Oriented Programming SERIES: ECOOP'12 YEAR: 2012 ISBN: 978-3-642-31056-0 LOCATION: Beijing, China PAGES: 409--434 NUMPAGES: 26 URL: http://dx.doi.org/10.1007/978-3-642-31057-7_19 DOI: 10.1007/978-3-642-31057-7_19 ACMID: 2367190 PUBLISHER: Springer-Verlag ADDRESS: Berlin, Heidelberg KEYWORDS: DSL, javascript, programming languages, scala

How not to survey developers and repositories: experiences analyzing language adoption

TITLE: How not to survey developers and repositories: experiences analyzing language adoption BTYPE: inproceedings CUSTOM_ID: Meyerovich:2012:SDR:2414721.2414724 AUTHOR: Meyerovich, Leo A. and Rabkin, Ariel BOOKTITLE: Proceedings of the ACM 4th annual workshop on Evaluation and usability of programming languages and tools SERIES: PLATEAU '12 YEAR: 2012 ISBN: 978-1-4503-1631-6 LOCATION: Tucson, Arizona, USA PAGES: 7--16 NUMPAGES: 10 URL: http://doi.acm.org/10.1145/2414721.2414724 DOI: 10.1145/2414721.2414724 ACMID: 2414724 PUBLISHER: ACM ADDRESS: New York, NY, USA KEYWORDS: programming languages, sociology, surveys

The Joy of Clojure: Thinking the Clojure Way   clojure

TITLE: The Joy of Clojure: Thinking the Clojure Way BTYPE: book CUSTOM_ID: Fogus:2011:JCT:2018918 AUTHOR: Fogus, Michael and Houser, Chris YEAR: 2011 ISBN: 1935182641, 9781935182641 EDITION: 1st PUBLISHER: Manning Publications Co. ADDRESS: Greenwich, CT, USA

On Kindle.

  • ch4: automatic promotion on overflow

Programming Clojure   clojure

TITLE: Programming Clojure BTYPE: book CUSTOM_ID: Halloway:2012:PC:2361842 AUTHOR: Halloway, Stuart and Bedra, Aaron YEAR: 2012 ISBN: 1934356867, 9781934356869 EDITION: 2nd PUBLISHER: Pragmatic Bookshelf

EMACS the extensible, customizable self-documenting display editor

TITLE: EMACS the extensible, customizable self-documenting display editor BTYPE: article CUSTOM_ID: Stallman:1981:EEC:1159890.806466 AUTHOR: Stallman, Richard M. JOURNAL: ACM SIGOA Newsletter ISSUE_DATE: Spring/Summer 1981 VOLUME: 2 NUMBER: 1-2 MONTH: apr YEAR: 1981 ISSN: 0737-819X PAGES: 147--156 NUMPAGES: 10 URL: http://doi.acm.org/10.1145/1159890.806466 DOI: 10.1145/1159890.806466 ACMID: 806466 PUBLISHER: ACM ADDRESS: New York, NY, USA

Eoops: an object-oriented programming system for Emacs-Lisp

TITLE: Eoops: an object-oriented programming system for Emacs-Lisp BTYPE: article CUSTOM_ID: Houser:1992:EOP:147135.147248 AUTHOR: Houser, Chris and Kalter, Scott D. JOURNAL: SIGPLAN Lisp Pointers ISSUE_DATE: July-Sept. 1992 VOLUME: V NUMBER: 3 MONTH: aug YEAR: 1992 ISSN: 1045-3563 PAGES: 25--33 NUMPAGES: 9 URL: http://doi.acm.org/10.1145/147135.147248 DOI: 10.1145/147135.147248 ACMID: 147248 PUBLISHER: ACM ADDRESS: New York, NY, USA

Multics Emacs (Prose and Cons): A commercial text-processing system in Lisp

TITLE: Multics Emacs (Prose and Cons): A commercial text-processing system in Lisp BTYPE: inproceedings CUSTOM_ID: Greenberg:1980:MEC:800087.802784 AUTHOR: Greenberg, Bernard S. BOOKTITLE: Proceedings of the 1980 ACM conference on LISP and functional programming SERIES: LFP '80 YEAR: 1980 LOCATION: Stanford University, California, United States PAGES: 6--12 NUMPAGES: 7 URL: http://doi.acm.org/10.1145/800087.802784 DOI: 10.1145/800087.802784 ACMID: 802784 PUBLISHER: ACM ADDRESS: New York, NY, USA

Mixin-based inheritance

TITLE: Mixin-based inheritance BTYPE: inproceedings CUSTOM_ID: Bracha:1990:MI:97945.97982 AUTHOR: Bracha, Gilad and Cook, William BOOKTITLE: Proceedings of the European conference on object-oriented programming on Object-oriented programming systems, languages, and applications SERIES: OOPSLA/ECOOP '90 YEAR: 1990 ISBN: 0-89791-411-2 LOCATION: Ottawa, Canada PAGES: 303--311 NUMPAGES: 9 URL: http://doi.acm.org/10.1145/97945.97982 DOI: 10.1145/97945.97982 ACMID: 97982 PUBLISHER: ACM ADDRESS: New York, NY, USA

XSLT version 2.0 is turing-complete: a purely transformation based proof

TITLE: XSLT version 2.0 is turing-complete: a purely transformation based proof BTYPE: inproceedings CUSTOM_ID: Onder:2006:XVT:2124092.2124121 AUTHOR: Onder, Ruhsan and Bayram, Zeki BOOKTITLE: Proceedings of the 11th international conference on Implementation and Application of Automata SERIES: CIAA'06 YEAR: 2006 ISBN: 3-540-37213-X, 978-3-540-37213-4 LOCATION: Taipei, Taiwan PAGES: 275--276 NUMPAGES: 2 URL: http://dx.doi.org/10.1007/11812128_26 DOI: 10.1007/11812128_26 ACMID: 2124121 PUBLISHER: Springer-Verlag ADDRESS: Berlin, Heidelberg

Javascript bible, sixth edition   javascript

TITLE: Javascript\&\#174; bible, sixth edition BTYPE: book CUSTOM_ID: Goodman:2007:JBS:1406518 AUTHOR: Goodman, Danny and Morrison, Michael and Eich, Brendan YEAR: 2007 ISBN: 9780470069165 PUBLISHER: John Wiley \& Sons, Inc. ADDRESS: New York, NY, USA

Status report: specifying JavaScript with ML

TITLE: Status report: specifying JavaScript with ML BTYPE: inproceedings CUSTOM_ID: Herman07statusreport: AUTHOR: David Herman BOOKTITLE: In ML ’07: Proceedings of the 2007 workshop on Workshop on ML YEAR: 2007 PAGES: 47--52 PUBLISHER: ACM

ECMA-262: ECMAScript Language Specification   javascript

TITLE: {ECMA-262}: {ECMAScript} Language Specification BTYPE: book CUSTOM_ID: ECMA-262 AUTHOR: ECMA PUBLISHER: pub-ECMA ADDRESS: pub-ECMA:adr EDITION: Third MONTH: dec YEAR: 1999 URL: http://www.ecma.ch/ecma1/STAND/ECMA-262.HTM ECMANUMBER: ECMA-262

10 Immutable Laws of Security

TITLE: 10 Immutable Laws of Security BTYPE: misc CUSTOM_ID: msoft:law1 AUTHOR: Microsoft NOTE: \\ \myurl{microsoft.com/technet/archive/community/columns/security/essays/10imlaws.mspx}

Graded Browser Support

TITLE: Graded Browser Support BTYPE: misc CUSTOM_ID: Yahoo:AGrade AUTHOR: Yahoo! YEAR: 2008 NOTE: \\ \myurl{http://developer.yahoo.com/yui/articles/gbs}

The Promise System

TITLE: The Promise System BTYPE: misc CUSTOM_ID: gold:promises AUTHOR: Mark S. Miller YEAR: 1992 NOTE: \\ \myurl{sunless-sea.net/Transcripts/promise.html}

Channels: A Generalization of Streams

TITLE: Channels: A Generalization of Streams BTYPE: inproceedings CUSTOM_ID: tribble:channels AUTHOR: E. Dean Tribble and Mark S. Miller and Kenneth M. Kahn and Daniel G. Bobrow and Curtis Abbott and Ehud Y. Shapiro BOOKTITLE: International Conference on Logic Programming YEAR: 1987 PAGES: 839--857

Promises: Linguistic Support for Efficient Asynchronous Procedure Calls in Distributed Systems

TITLE: Promises: Linguistic Support for Efficient Asynchronous Procedure Calls in Distributed Systems BTYPE: inproceedings CUSTOM_ID: liskov:promises AUTHOR: Barbara Liskov and Lubia Shrira BOOKTITLE: PLDI '88: Proc. ACM SIGPLAN 1988 Conference on Programming Language Design and Implementation YEAR: 1988 PAGES: 260--267 LOCATION: Atlanta, Georgia, United States PUBLISHER: ACM Press ADDRESS: New York, NY, USA

Async JavaScript: Build More Responsive Apps with Less Code

http://pragprog.com/book/tbajs/async-javascript

You purchased this item on July 13, 2012.

The Uses of Knowledge in Society

TITLE: The Uses of Knowledge in Society BTYPE: article CUSTOM_ID: Hayek:1945:UKS AUTHOR: Friedrich Hayek JOURNAL: American Economic Review YEAR: 1945 VOLUME: 35 MONTH: sep PAGES: 519--530

A Universal Modular ACTOR Formalism for Artificial Intelligence

TITLE: A Universal Modular ACTOR Formalism for Artificial Intelligence BTYPE: inproceedings CUSTOM_ID: hewitt:actors AUTHOR: Carl Hewitt and Peter Bishop and Richard Steiger PAGES: 235--245 EDITOR: Nils J. Nilsson BOOKTITLE: Proc. 3rd International Joint Conference on Artificial Intelligence ADDRESS: Standford, CA MONTH: aug YEAR: 1973 PUBLISHER: William Kaufmann

Design Patterns, Elements Of Reusable Object-Oriented Software

TITLE: Design Patterns, Elements Of Reusable Object-Oriented Software BTYPE: book CUSTOM_ID: gamma:patterns AUTHOR: Erich Gamma and Richard Helm and Ralph Johnon and John Vlissides PUBLISHER: Addison Wesley YEAR: 1994

A Security Kernel Based on the Lambda-Calculus

TITLE: A Security Kernel Based on the Lambda-Calculus BTYPE: techreport CUSTOM_ID: rees96security AUTHOR: Jonathan A. Rees INSTITUTION: Massachusetts Institute of Technology YEAR: 1996 PUBLISHER: Massachusetts Institute of Technology

The Architecture of Complexity

TITLE: The Architecture of Complexity BTYPE: article CUSTOM_ID: simo:62 AUTHOR: Herbert A. Simon YEAR: 1962 JOURNAL: Proc. American Philosophical Society VOLUME: 106 PAGES: 467--482 KWDS: nearly uncoupled system

Measuring Relative Attack Surfaces

TITLE: Measuring Relative Attack Surfaces BTYPE: techreport CUSTOM_ID: HoPiWi2003 AUTHOR: Michael Howard and Jon Pincus and Jeannette Wing YEAR: 2003 INSTITUTION: Carnegie Mellon University NUMBER: CMU-TR-03-169 MONTH: aug NOTE: Proc. 2003 Workshop on Advanced Developments in Software and Systems Security \\ \myurlt{www.cs.cmu.edu/}{wing/publications/Howard-Wing03.pdf}

Toward a Critical Theory of Cyberspace

TITLE: Toward a Critical Theory of Cyberspace BTYPE: article CUSTOM_ID: froomkin:cyberspace AUTHOR: A. Michael Froomkin JOURNAL: Harvard Law Review PAGES: 750--871 YEAR: 2003 NUMBER: 3 VOLUME: 116 NOTE: \\ \myurl{www.icannwatch.org/article.pl?sid=03/01/16/057208}

Hedgehog Architecture

TITLE: Hedgehog Architecture BTYPE: misc CUSTOM_ID: hedgehog AUTHOR: David A. Smith and Andreas Raab and David Patrick Reed and Alan Kay YEAR: 2005 NOTE: \\ \myurl{croquetproject.org/Site PDFs/2005 Hedgehog Architecture.pdf}

DONE Tracking the trackers: fast and scalable dynamic analysis of web content for privacy violations

TITLE: Tracking the trackers: fast and scalable dynamic analysis of web content for privacy violations BTYPE: inproceedings CUSTOM_ID: Tran:2012:TTF:2352593.2352627 AUTHOR: Tran, Minh and Dong, Xinshu and Liang, Zhenkai and Jiang, Xuxian BOOKTITLE: Proceedings of the 10th international conference on Applied Cryptography and Network Security SERIES: ACNS'12 YEAR: 2012 ISBN: 978-3-642-31283-0 LOCATION: Singapore PAGES: 418--435 NUMPAGES: 18 URL: http://dx.doi.org/10.1007/978-3-642-31284-7_25 URL: http://www.comp.nus.edu.sg/~liangzk/papers/acns12.pdf DOI: 10.1007/978-3-642-31284-7_25 ACMID: 2352627 PUBLISHER: Springer-Verlag ADDRESS: Berlin, Heidelberg KEYWORDS: JavaScript, dynamic analysis, information flow, privacy, web security

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.

TODO I Still Know What You Visited Last Summer: Leaking Browsing History via User Interaction and Side Channel Attacks

TITLE: I Still Know What You Visited Last Summer: Leaking Browsing History via User Interaction and Side Channel Attacks BTYPE: inproceedings CUSTOM_ID: Weinberg:2011:ISK:2006077.2006762 AUTHOR: Weinberg, Zachary and Chen, Eric Y. and Jayaraman, Pavithra Ramesh and Jackson, Collin BOOKTITLE: Proceedings of the 2011 IEEE Symposium on Security and Privacy SERIES: SP '11 YEAR: 2011 ISBN: 978-0-7695-4402-1 PAGES: 147--161 NUMPAGES: 15 URL: http://dx.doi.org/10.1109/SP.2011.23 URL: http://www.ieee-security.org/TC/SP2011/PAPERS/2011/paper010.pdf DOI: 10.1109/SP.2011.23 ACMID: 2006762 PUBLISHER: IEEE Computer Society ADDRESS: Washington, DC, USA KEYWORDS: privacy, web security, browsing history ID: 95C33E61-583C-459D-84FA-087227B3D787

TODO An empirical study of privacy-violating information flows in JavaScript web applications   privacy javascript

ID: B5F02E16-8944-4828-8589-307F6CFA2214
@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")

TODO Privacy leakage in mobile online social networks

ID: C9F8E987-394C-400F-85E8-5434F66B26F7

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.

AOJS: aspect-oriented javascript programming framework for web development

TITLE: AOJS: aspect-oriented javascript programming framework for web development BTYPE: inproceedings CUSTOM_ID: Washizaki:2009:AAJ:1509276.1509285 AUTHOR: Washizaki, Hironori and Kubo, Atsuto and Mizumachi, Tomohiko and Eguchi, Kazuki and Fukazawa, Yoshiaki and Yoshioka, Nobukazu and Kanuka, Hideyuki and Kodaka, Toshihiro and Sugimoto, Nobuhide and Nagai, Yoichi and Yamamoto, Rieko BOOKTITLE: Proceedings of the 8th workshop on Aspects, components, and patterns for infrastructure software SERIES: ACP4IS '09 YEAR: 2009 ISBN: 978-1-60558-450-8 LOCATION: Charlottesville, Virginia, USA PAGES: 31--36 NUMPAGES: 6 URL: http://doi.acm.org/10.1145/1509276.1509285 DOI: 10.1145/1509276.1509285 ACMID: 1509285 PUBLISHER: ACM ADDRESS: New York, NY, USA KEYWORDS: aojs, aspect-oriented programming, javascript, separation of concerns, 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.

Keeping information safe from social networking apps

Privacy-aware identity management for client-side mashup applications

TITLE: Privacy-aware identity management for client-side mashup applications BTYPE: inproceedings CUSTOM_ID: Zarandioon:2009:PIM:1655028.1655036 AUTHOR: Zarandioon, Saman and Yao, Danfeng and Ganapathy, Vinod BOOKTITLE: Proceedings of the 5th ACM workshop on Digital identity management SERIES: DIM '09 YEAR: 2009 LOCATION: Chicago, Illinois, USA PAGES: 21--30 NUMPAGES: 10 URL: http://doi.acm.org/10.1145/1655028.1655036 URL: http://web.cs.wpi.edu/~cew/papers/wosn10.pdf ACMID: 1655036 PUBLISHER: ACM ADDRESS: New York, NY, USA ID: 32AB0964-FA15-4ED9-81DE-906E0AF375F1 ISBN: 978-1-60558-786-8 DOI: 10.1145/1655028.1655036 KEYWORDS: ajax, communication, mashup, omos, security, web

Web user de-identification in personalization

AjaxScope: A Platform for Remotely Monitoring the Client-Side Behavior of Web 2.0 Applications

Formal specification of a JavaScript module system

TITLE: Formal specification of a JavaScript module system BTYPE: inproceedings CUSTOM_ID: Kang:2012:FSJ:2384616.2384661 AUTHOR: Kang, Seonghoon and Ryu, Sukyoung BOOKTITLE: Proceedings of the ACM international conference on Object oriented programming systems languages and applications SERIES: OOPSLA '12 YEAR: 2012 ISBN: 978-1-4503-1561-6 LOCATION: Tucson, Arizona, USA PAGES: 621--638 NUMPAGES: 18 URL: http://doi.acm.org/10.1145/2384616.2384661 DOI: 10.1145/2384616.2384661 ACMID: 2384661 PUBLISHER: ACM ADDRESS: New York, NY, USA KEYWORDS: desugaring, formalization, javascript, module system JOURNAL: ACM Trans. Web ISSUE_DATE: September 2010 VOLUME: 4 NUMBER: 4 MONTH: sep ISSN: 1559-1131 ARTICLENO: 13

An approach for identifying JavaScript-loaded advertisements through static program analysis

TITLE: An approach for identifying JavaScript-loaded advertisements through static program analysis BTYPE: inproceedings CUSTOM_ID: Orr:2012:AIJ:2381966.2381968 AUTHOR: Orr, Caitlin R. and Chauhan, Arun and Gupta, Minaxi and Frisz, Christopher J. and Dunn, Christopher W. BOOKTITLE: Proceedings of the 2012 ACM workshop on Privacy in the electronic society SERIES: WPES '12 YEAR: 2012 ISBN: 978-1-4503-1663-7 LOCATION: Raleigh, North Carolina, USA PAGES: 1--12 NUMPAGES: 12 URL: http://doi.acm.org/10.1145/2381966.2381968 DOI: 10.1145/2381966.2381968 ACMID: 2381968 PUBLISHER: ACM ADDRESS: New York, NY, USA KEYWORDS: advertisements, analytics, javascript, security

Similarly, return [expression,…]; was more common in ad-related scripts.

The case for JavaScript transactions: position paper

TITLE: The case for JavaScript transactions: position paper BTYPE: inproceedings CUSTOM_ID: Dhawan:2010:CJT:1814217.1814223 AUTHOR: Dhawan, Mohan and Shan, Chung-chieh and Ganapathy, Vinod BOOKTITLE: Proceedings of the 5th ACM SIGPLAN Workshop on Programming Languages and Analysis for Security SERIES: PLAS '10 YEAR: 2010 ISBN: 978-1-60558-827-8 LOCATION: Toronto, Canada PAGES: 6:1--6:7 ARTICLENO: 6 NUMPAGES: 7 URL: http://doi.acm.org/10.1145/1814217.1814223 DOI: 10.1145/1814217.1814223 ACMID: 1814223 PUBLISHER: ACM ADDRESS: New York, NY, USA KEYWORDS: JavaScript, confinement, isolation, transactions

TODO Automated Analysis of Security-Critical JavaScript APIs   javascript

TITLE: Automated Analysis of Security-Critical JavaScript APIs BTYPE: inproceedings CUSTOM_ID: Taly:2011:AAS:2006077.2006776 AUTHOR: Taly, Ankur and Erlingsson, \'{U}lfar and Mitchell, John C. and Miller, Mark S. and Nagra, Jasvir BOOKTITLE: Proceedings of the 2011 IEEE Symposium on Security and Privacy SERIES: SP '11 YEAR: 2011 ISBN: 978-0-7695-4402-1 PAGES: 363--378 NUMPAGES: 16 URL: http://dx.doi.org/10.1109/SP.2011.39 DOI: 10.1109/SP.2011.39 ACMID: 2006776 PUBLISHER: IEEE Computer Society ADDRESS: Washington, DC, USA KEYWORDS: Language-Based Security, Points-to Analysis, APIs, Javascript ID: 84B437AD-05BF-43ED-8DF2-7EA519810920

http://www-cs-students.stanford.edu/~ataly/Papers/sp11.pdf

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},
}

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},
}

AdSentry: Comprehensive and Flexible Confinement of JavaScript-based Advertisements

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

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

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},
}

JavaScript: The Good Parts   javascript

TITLE: JavaScript: The Good Parts BTYPE: book CUSTOM_ID: Crockford:2008:JGP:1386753 AUTHOR: Crockford, Douglas YEAR: 2008 ISBN: 0596517742 PUBLISHER: O'Reilly Media, Inc.

JavaScript: The Definitive Guide   javascript

TITLE: JavaScript: The Definitive Guide BTYPE: book CUSTOM_ID: flanagan2011javascript AUTHOR: Flanagan, D. ISBN: 9780596805524 LCCN: 2011377767 SERIES: Definitive Guide Series URL: http://books.google.com/books?id=4RChxt67lvwC YEAR: 2011 PUBLISHER: O'Reilly Media, Incorporated

Third-Party Javascript   javascript

TITLE: Third-Party Javascript BTYPE: book CUSTOM_ID: Vinegar:2013:TPJS AUTHOR: Vinegar, B. and Kovalyov, A. ISBN: 9781617290541 SERIES: Running Series URL: http://books.google.com/books?id=07E2LgEACAAJ YEAR: 2013 PUBLISHER: Manning Publications Company

Looked at the delivery of JavaScript to make it non-blocking. The key
notes are in

TODO Subdomain proxies

ID: 07080A56-CE88-41C0-A696-3A09F4B5986E

This should be reviewed more deeply.

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).

Maintainable JavaScript   javascript

TITLE: Maintainable JavaScript BTYPE: book CUSTOM_ID: Zakas:2012:MJ:2331096 AUTHOR: Zakas, Nicholas C. YEAR: 2012 ISBN: 1449327680, 9781449327682 PUBLISHER: O'Reilly Media, Inc.

Programming JavaScript Applications

Picked up during the Fluent sale.

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/

Upgrading to RequireJS 2.1

Design Patterns

Program to an interface, not an implementation.

(quoted in )

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

Test-Driven JavaScript Development   javascript

TITLE: Test-Driven JavaScript Development BTYPE: book CUSTOM_ID: Johansen:2010:TJD:1869929 AUTHOR: Johansen, Christian YEAR: 2010 ISBN: 0321683919, 9780321683915 EDITION: 1st PUBLISHER: Addison-Wesley Professional

JavaScript Patterns   javascript

TITLE: JavaScript Patterns BTYPE: book CUSTOM_ID: Stefanov:2010:JP:1941081 AUTHOR: Stefanov, Stoyan YEAR: 2010 ISBN: 0596806752, 9780596806750 EDITION: 1st PUBLISHER: O'Reilly Media, Inc.

Secrets of the Javascript Ninja   javascript

TITLE: Secrets of the Javascript Ninja BTYPE: book CUSTOM_ID: resig2012secrets AUTHOR: Resig, J. and Bibeault, B. ISBN: 9781933988696 SERIES: Manning Pubs Co Series URL: http://books.google.com/books?id=ab8CPgAACAAJ YEAR: 2012 PUBLISHER: Manning Publications Company

Eloquent JavaScript: A Modern Introduction to Programming   javascript

TITLE: Eloquent JavaScript: A Modern Introduction to Programming BTYPE: book CUSTOM_ID: Haverbeke:2011:EJM:1996202 AUTHOR: Haverbeke, Marijn YEAR: 2011 ISBN: 1593272820, 9781593272821 EDITION: 1st PUBLISHER: No Starch Press ADDRESS: San Francisco, CA, USA

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},
}

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},
}

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

In general for third-party JavaScript I’ve been looking at providing
the no-order, async approach.

The Dispossessed

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}
}

Makers

Windup Girl

South of the Border, West of the Sun

Anathem

Accelerando

Evolution of Cooperation

Beyond the Hoax

Clojue Data Analysis Cookbook   clojure

CyberStorm

Quiet

Vision of Buddhism

Facets of Buddhism

Tao is Silent

Painted Birds

Nexus

  • Transhumanism
  • Cyborgs

Tractatus Logico-Philophicus

Rissa and Tregare

Young Rissa

Programming in Scala

GNU Emacs Extensions

Lake

This Perfect Day

Best Writing on Mathematics 2012

HTML5 for Publishers

ClojureScript: Up and Running   clojure

Clojure in Action

From the Teeth of Angels

American Psycho

Day of the Triffids

Slaughterhouse - Five

Ubik

Clown

Signal and the Noise

Effective JavaScript   javascript

Irony of American History

Fire Upon the Deep

Understanding Power

Prague Cemetery

Infinite Jest

Doing Capitalism in the Innovation Economy

The Great Thoughts

Well-Grouynded Rubyist

Rails 3 in Action   rails

Rails 4 in Action   rails

Age of Insight

Social Conquest of Earth

JavaScript Web Applications   javascript

Large Web Applications   javascript

Kafka on the Shore

Speaker for the Dead

Thinking Fast and Slow

Think Complexity

Antifragile

Foundation

Functional Programming in Scala

Linked Data

Do Androids Dream of Electric Sheep?

A Scanner Darkly

Thinking Statistically

Programming Problems

Ender’s Shadow

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}
}


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.

http://tools.ietf.org/html/rfc6265#section-5.2

1Q84

Norwegian Wood

Woman in the Dunes

1984

Brothers Karamozov

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.

Snow Crash

JPod

http://en.wikipedia.org/wiki/JPod

  • read while in Germany

Neuromancer

http://en.wikipedia.org/wiki/Neuromancer

  • Sprawl trilogy
  • Gibson
  • 1984
  • Case (Henry Dorsett Case)

Count Zero

Mona Lisa Overdrive

  • 1988
  • Mona
  • Kumiko

Patern Recognition

http://en.wikipedia.org/wiki/Pattern_Recognition_(novel)

  • Cayce Pollard
  • Hubertus Bigend

Viral marketing with anonymous artistic clips.

Spook country

  • Hollis Henry
  • Tito
  • New York, Vancouver

Zero History

http://en.wikipedia.org/wiki/Zero_History

  • Hollis Henry
  • Milgrim
  • Gabriel Hounds
  • Garreth
  • London, Japan

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},
}

Coproducts of Monads on Set

Extending Monads with Pattern Matching

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.

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.

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.

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.

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.

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.

Building Interpreters by Composing Monads

Making Monads First-class with Template Haskell

Monad Transformers Step by Step

Monad Transformers Step by Step

The Marriage of Effects and Monads

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.

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>

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

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.

On Lisp

On Lisp Prolog interpretter http://dunsmor.com/lisp/onlisp/onlisp_28.html

SICP

SICM

Paradigms of Artificial Intelligence Programming

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.

Denotational design with type class morphisms

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
}

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}
}

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}
}

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
 }

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

Author: Jason Walsh

j@wal.sh

Last Updated: 2024-08-02 13:42:23