====== Seattle WingDing Notes ====== * [[http://tech.groups.yahoo.com/group/wingding/|WingDings Yahoo Group]] * [[http://code.google.com/p/wing-ding/|Shared WingDing Google Code SVN Repository]] ===== Java Security ===== Studied from January 2017 - April 2017 * [[http://www.informit.com/store/java-coding-guidelines-75-recommendations-for-reliable-9780133439519|Java Coding Guidelines: 75 Recommendations for Reliable and Secure Programs]] * [[https://www.securecoding.cert.org/confluence/display/java/SEI+CERT+Oracle+Coding+Standard+for+Java|SEI CERT Oracle Coding Standard for Java Wiki]] * [[https://github.com/robertkuhar/java_coding_guidelines|Robert Kuhar's Github notes]] ===== Security and Countermeasures / Bitcoin ===== Studied from January 2014 - February 2014 SSL: * [[http://security.stackexchange.com/questions/20803/how-does-ssl-work|How does SSL work?]] * [[http://publib.boulder.ibm.com/infocenter/wmqv6/v6r0/index.jsp?topic=%2Fcom.ibm.mq.csqzas.doc%2Fsy10660_.htm|An overview of the SSL handshake]] * [[http://www.infoq.com/articles/keeping-your-secrets|Keeping Your Secrets]] * [[https://ssltools.websecurity.symantec.com/checker/|SSL Toolbox]] * [[http://ibuildings.nl/blog/2013/03/4-http-security-headers-you-should-always-be-using|4 HTTP Security headers you should always be using | ibuildings]] Bitcoin: * [[https://docs.google.com/presentation/d/1TJ425ivx3387alSxTzPL5lH30fg-Id0kvY3TIQhe8mI/edit#slide=id.p|Bitcoins For Dummies]] - Steven Lewis Presentation * [[http://www.michaelnielsen.org/ddi/how-the-bitcoin-protocol-actually-works/|How the Bitcoin protocol actually works]] * [[http://dealbook.nytimes.com/2014/01/21/why-bitcoin-matters/?_php=true&_type=blogs&_r=0|Why Bitcoin Matters - By Marc Andreessen]] * [[http://bitcoinwisdom.com/|Bitcoin Wisdom]] - Current Market Price ===== Akka ===== Studied from September 2013 - January 2014 * [[http://doc.akka.io/docs/akka/2.2.1/AkkaJava.pdf|Akka Java Documentation]] (PDF) * [[http://vimeo.com/user18356272/review/66548920/f93e3fa7d9|Viktor Klang - Distributed Reactive Programming -- Introducing Akka 2.2]] (Video) ===== Algorithms ===== Studied from April 2013 - Present * [[https://class.coursera.org/algs4partII-001/class/index|Algorithms, Part II]] - Princeton online course ([[http://www.kirkdorffer.com/wingdings/algorithms/AlgorithmsII/Algorithms-Part_II.html| Saved Local Files]]) * [[https://class.coursera.org/algs4partI-002/class/index|Algorithms, Part I]] - Princeton online course ([[http://www.kirkdorffer.com/wingdings/algorithms/AlgorithmsI/Algorithms-Part_I.html| Saved Local Files]]) * [[http://algs4.cs.princeton.edu/home/|Algorithms, 4th Edition]] - Online Book with code Additional Material: * [[http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-046j-introduction-to-algorithms-sma-5503-fall-2005/video-lectures/|MIT Introduction to Algorithms (SMA 5503)]] - Video lectures ===== Functional Programming / Clojure ===== Studied from October 2012 - March 2013 * [[https://leanpub.com/fp-oo|"Functional Programming for the Object-Oriented Programmer" by Brian Marick]] * [[https://groups.google.com/forum/?fromgroups#!forum/fp-oo|Google Groups book forum]] * [[http://app.kodowa.com/playground|Light Table playground]] (REPL) * [[https://github.com/technomancy/leiningen|leiningen]] - for automating Clojure projects ===== GWT and PhoneGap ===== Brief look at cross platform development using PhoneGap on GWT in September 2012 * [[http://xa.yimg.com/kq/groups/2267342/1795041769/name/OneStackToRuleThemAll.pdf|Web Apps & Mobile Platform Proliferation: Affecting Team Dynamics with Development Language Choices]] (PDF) ===== Various Articles by Robert C. Martin ===== Studied from May 2012 - September 2012 * [[http://www.objectmentor.com/resources/publishedArticles.html|Articles By Robert C. Martin]] * [[http://www.objectmentor.com/resources/articles/TestingThings.ppt|Testing Things That Seem Hard to Test]] (PPT) * [[http://www.objectmentor.com/resources/articles/Proxy.pdf|Proxy and Stairway to Heaven]] (PDF) * [[http://www.objectmentor.com/resources/articles/agileProcess.pdf|Agile Processes]] (PDF) * [[http://blog.8thlight.com/uncle-bob/2011/10/20/Simple-Hickey.html|Simple Hickey]] - Regarding Rich Hickey's [[http://www.infoq.com/presentations/Simple-Made-Easy|"Simple made Easy" talk]] * [[http://www.objectmentor.com/resources/articles/ocp.pdf|The Open Closed Principle]] (PDF) * [[http://www.objectmentor.com/resources/articles/lsp.pdf|The Liskov Substitution Principle]] (PDF) * [[https://docs.google.com/presentation/d/1nCETmWh6FLEat_I0xDA4qFaAwabXpd7AR4m8arz0ciM/edit?pli=1#slide=id.p|Liskov Substitution Principle]] (Steven Lewis' Slides) * [[http://www.objectmentor.com/resources/articles/dip.pdf|The Dependency Inversion Principle]] (PDF) * [[http://www.objectmentor.com/resources/articles/isp.pdf|The Interface Segregation Principle]] (PDF) * [[http://www.objectmentor.com/resources/articles/srp.pdf|The Single Responsibility Principle]] (PDF) ===== Various Papers on Programming ===== Studied from January 2012 - May 2012 * [[http://blog.objectmentor.com/articles/2009/02/26/10-papers-every-programmer-should-read-at-least-twice|10 Papers Every Programmer Should Read (At Least Twice)]] * [[http://sunnyday.mit.edu/16.355/parnas-criteria.html|On the criteria to be used in decomposing systems into modules]] – David Parnas * [[http://labs.oracle.com/techrep/1994/smli_tr-94-29.pdf|A Note On Distributed Computing]] – Jim Waldo, Geoff Wyant, Ann Wollrath, Sam Kendall * [[http://www.thecorememory.com/Next_700.pdf|The Next 700 Programming Languages]] – P. J. Landin * [[http://tinyurl.com/6paawqd|Can Programming Be Liberated from the von Neumann Style?]] – John Backus * [[http://cm.bell-labs.com/who/ken/trust.html|Reflections on Trusting Trust]] – Ken Thompson * [[http://tinyurl.com/88wes7p|Lisp: Good News, Bad News, How to Win Big]] – Richard Gabriel * [[http://tinyurl.com/7mlgqhd|An experimental evaluation of the assumption of independence in multiversion programming]] – John Knight and Nancy Leveson * [[http://www.laputan.org/pub/patterns/noble/noble.pdf|Arguments and Results]] – James Noble * [[http://c2.com/doc/oopsla89/paper.html|A Laboratory For Teaching Object-Oriented Thinking]] – Kent Beck, Ward Cunningham * [[http://tinyurl.com/83ux7td|Programming as an Experience: the inspiration for Self]] – David Ungar, Randall B. Smith Plus: * [[http://highlyscalable.wordpress.com/2012/03/01/nosql-data-modeling-techniques/|NoSQL Data Modeling Techniques]] * [[http://www.stanford.edu/~ouster/cgi-bin/decisions.php|Open Decision-Making]] * [[http://martinfowler.com/articles/lmax.html|The LMAX Architecture]] ===== Google Guava ===== Studied from December 2011 - January 2012 * [[http://code.google.com/p/guava-libraries/|Google Guava]]: * [[http://code.google.com/p/guava-libraries/wiki/GuavaExplained|GuavaExplained Wiki]] * [[http://www.youtube.com/watch?v=ZeO_J2OcHYM|GTUG - Using the Google Collections Library for Java (1 of 2)]] (41 mins) * [[http://www.youtube.com/watch?v=9ni_KEkHfto|GTUG - Using the Google Collections Library for Java (2 of 2)]] (54 mins) * [[http://www.javacodegeeks.com/2011/09/google-guava-libraries-essentials.html|Google Guava Libraries Essentials]] ===== Java ===== Studied from October 2011 - December 2011 * [[http://oreilly.com/catalog/9780596803742|"Java: The Good Parts" by Jim Waldo - O'Reilly]] ===== REST ===== Studied from April 2011 - October 2011 * [[http://oreilly.com/catalog/9780596805838|REST in Practice - O'Reilly Media]] ===== HTML 5 ===== Studied from January 2011 - April 2011 * [[http://diveintohtml5.org/|Dive Into HTML5]] * [[http://oreilly.com/catalog/9780596806033/|HTML5: Up and Running - O'Reilly Media]] ===== JavaScript ===== Studied from September 2010 - December 2010 * [[http://oreilly.com/catalog/9780596517748|JavaScript: The Good Parts by Douglas Crockford]] * [[http://video.yahoo.com/watch/630959/2974197|Douglas Crockford: "JavaScript - The Good Parts" on Yahoo! Video]] ===== NoSQL ===== Studied from May 2010 - August 2010 * [[http://asserttrue.blogspot.com/2009/12/nosql-required-reading.html|NoSQL Required Reading list]]: * [[http://s3.amazonaws.com/AllThingsDistributed/sosp/amazon-dynamo-sosp2007.pdf|Dynamo: Amazon’s Highly Available Key-value Store]] (PDF) * [[http://static.googleusercontent.com/external_content/untrusted_dlcp/research.google.com/en/us/archive/bigtable-osdi06.pdf|Bigtable: A Distributed Storage System for Structured Data]] (PDF) * [[http://www.allthingsdistributed.com/2008/12/eventually_consistent.html|Eventually Consistent - Revisited]] * [[http://www.julianbrowne.com/article/viewer/brewers-cap-theorem|Brewer's CAP Theorem]] * [[http://blog.oskarsson.nu/2009/06/nosql-debrief.html|NOSQL debrief]] (Video) * [[http://adam.heroku.com/past/2009/7/6/sql_databases_dont_scale/|SQL Databases Don't Scale]] * [[http://www.rackspace.com/blog/nosql-ecosystem/|NoSQL Ecosystem]] * [[http://themindstorms.blogspot.com/2009/05/quick-reference-to-alternative-data.html|Quick Reference to Alternative data storages]] * [[http://nosqlsummer.org/papers|Another reading list of NoSQL related papers]] ===== Scala ===== Studied from September 2009 - April 2010 * [[http://programming-scala.labs.oreilly.com/index.html|"Programming Scala" by Dean Wampler and Alex Payne]] * [[http://examples.oreilly.com/9780596155964/|"Programming Scala" Code Samples]] * [[http://www.scala-lang.org/docu/files/ScalaOverview.pdf|Scala Overview]] (PDF) * [[http://www.scala-lang.org/|Scala Language]] * [[http://www.scala-lang.org/docu/files/api/index.html|Scala API Docs]] ([[http://scala-tools.org/scaladocs/scala-library/2.7.1/|Alternate API Doc Style]]) Studied in August 2009 * [[http://www.codecommit.com/blog/scala/roundup-scala-for-java-refugees|Code Commit Blog Article - Roundup: Scala for Java Refugees]] ===== Clojure ===== Looked at briefly in July 2009 * [[http://delicious.com/stand/clojure|Stan Dyck's Clojure Bookmarks]] * [[http://jnb.ociweb.com/jnb/jnbMar2009.html|Clojure - Functional Programming for the JVM]] ===== Collective Intelligence ===== Studied from February 2009 - July 2009 * [[http://oreilly.com/catalog/9780596529321/index.html|"Programming Collective Intelligence" by Toby Segaran - O'Reilly Site]] * [[http://proquest.safaribooksonline.com.ezproxy.spl.org:2048/9780596529321|"Programming Collective Intelligence" - SPL Safari Site]] ===== Python ===== Brief overview of [[Python Notes|Python]] 2.x by Brian Dorsey in January 2009 ===== Java ===== Studied from June 2008 - December 2008 * [[http://java.sun.com/docs/books/effective/|"Effective Java, 2nd Edition" by Joshua Bloch]]