diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md index f50f390..ea13e11 100644 --- a/.github/CONTRIBUTING.md +++ b/.github/CONTRIBUTING.md @@ -18,7 +18,7 @@ We want to help bring academic research closer to practitioners and we strive to * Directory names are undercased and separated by underscores (example: artificial_intelligence) * Paper names are undercased and separated by dashes (example: out-of-the-tar-pit.pdf). Use the full title when possible. -* If your pull request includes a binary file, like a `*.pdf` for example, please still include a link to the source URL in the appropriate subject's folder's README file and highlight it with a :scroll: emojii to show that the directory contains the file itself. Here's an example [pull request](https://github.com/papers-we-love/papers-we-love/pull/366/files). +* If your pull request includes a binary file, like a `*.pdf` for example, please still include a link to the source URL in the appropriate subject's folder's README file and highlight it with a :scroll: emoji to show that the directory contains the file itself. Here's an example [pull request](https://github.com/papers-we-love/papers-we-love/pull/366/files). * After raising [this issue](https://github.com/papers-we-love/papers-we-love/issues/290), it would beneficial to also include the *year* along with the title, link, and description/importance when adding paper(s) to a README. * Please rebase all multi-commit branches/PRs into 1 single commit. diff --git a/.github/workflows/lychee.yml b/.github/workflows/lychee.yml index ddc0fa6..102f0c7 100644 --- a/.github/workflows/lychee.yml +++ b/.github/workflows/lychee.yml @@ -17,7 +17,7 @@ jobs: #env: # GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}} with: - args: '--verbose --no-progress **/*.md' + args: --verbose --max-retries 4 --no-progress '**/*.md' - name: Create Issue From File uses: peter-evans/create-issue-from-file@v2 diff --git a/README.md b/README.md index 0de989d..e1c7826 100644 --- a/README.md +++ b/README.md @@ -12,24 +12,17 @@ If you enjoy the papers, perhaps stop by a local chapter meetup and join in on t Here are our official chapters. Let us know if you are interested in [starting one](https://github.com/papers-we-love/organizers) in your city! -* [Amsterdam](http://www.meetup.com/papers-we-love-amsterdam/) * [Athens](https://www.meetup.com/Papers-We-Love-Athens) * [Atlanta](https://www.meetup.com/Papers-We-Love-Atlanta) * [Bangalore](http://www.meetup.com/Papers-we-love-Bangalore/) -* [Barcelona](https://www.meetup.com/papers-we-love-bcn/) -* [Belfast](http://www.meetup.com/Papers-We-Love-Belfast/) * [Berlin](http://www.meetup.com/Papers-We-Love-Berlin/) * [Bhubaneswar](https://www.facebook.com/groups/pwlbbsr/) * [Boston](http://www.meetup.com/Papers-We-Love-Boston-Cambridge/) -* [Brasilia](http://www.meetup.com/papers-we-love-bsb) * [Bucharest](http://www.meetup.com/papers-we-love-bucharest/) * [Buenos Aires](https://paperswelove.org/buenos-aires/) -* [Cairo](http://www.meetup.com/Papers-We-Love-Cairo/) * [Chattanooga](http://www.meetup.com/Papers-We-Love-Chattanooga/) * [Chicago](http://www.meetup.com/papers-we-love-chicago/) * [Columbus, Ohio](http://www.meetup.com/Papers-We-Love-Columbus/) -* [Gothenburg](https://www.meetup.com/Papers-We-Love-Gothenburg/) -* [Hamburg](http://www.meetup.com/Papers-We-Love-Hamburg/) * [Hyderabad](http://www.meetup.com/papers-we-love-hyderabad/) * [Iowa City](https://www.meetup.com/techcorridorio) * [Kathmandu](https://www.facebook.com/groups/PapersWeLoveKathmandu/) @@ -37,19 +30,17 @@ Here are our official chapters. Let us know if you are interested in [starting o * [Lebanon](http://www.paperswelovelb.club) * [London](http://www.meetup.com/papers-we-love-london) * [Los Angeles](http://www.meetup.com/papers-we-love-la) -* [Madrid](http://www.meetup.com/Papers-We-Love-Madrid/) * [Montreal](http://www.meetup.com/Papers-We-Love-Montreal/) * [New York City](http://www.meetup.com/papers-we-love/) * [Paris](http://www.meetup.com/Papers-We-Love-Paris/) +* [Portland](https://www.meetup.com/papers-we-love-pdx/) * [Pune](http://www.meetup.com/Doo-Things) * [Raleigh-Durham](https://www.meetup.com/Papers-We-Love-Raleigh-Durham/) -* [Rio de Janeiro](https://www.meetup.com/pt-BR/papers-we-love-rio-de-janeiro/) * [San Diego](http://www.meetup.com/Papers-We-Love-San-Diego/) * [San Francisco](http://www.meetup.com/papers-we-love-too/) * [Seattle](http://www.meetup.com/Papers-We-Love-Seattle/) * [Seoul, Korea](http://www.meetup.com/seoul-tech-society) * [Singapore](https://www.facebook.com/groups/paperswelovesg/) -* [St. Louis](http://www.meetup.com/Papers-We-Love-in-saint-louis/) * [Teresina](https://www.meetup.com/pt-BR/Papers-We-Love-Teresina/) * [Toronto](http://www.meetup.com/Papers-We-Love-Toronto/) * [Vienna](http://www.meetup.com/Papers-We-Love-Vienna/) diff --git a/audio_comp_sci/README.md b/audio_comp_sci/README.md index dccc56f..fe2e807 100644 --- a/audio_comp_sci/README.md +++ b/audio_comp_sci/README.md @@ -5,7 +5,7 @@ * :scroll: [An Industrial-Strength Audio Search Algorithm](shazam-audio-search-algorithm.pdf) by Avery Li-Chun Wang * [WaveNet: A Generative Model for Raw Audio](https://arxiv.org/pdf/1609.03499.pdf) by a team @ Google DeepMind, 2016 - * [Announcement and interactive examples](https://deepmind.com/blog/wavenet-generative-model-raw-audio/) + * [Announcement and interactive examples](https://www.deepmind.com/blog/wavenet-a-generative-model-for-raw-audio) * [[Python] Implementation with the Keras Neural Networks library](https://github.com/basveeling/wavenet) * [[Python] Implementation with the TensorFlow Machine Intelligence library](https://github.com/ibab/tensorflow-wavenet) diff --git a/computer_education/README.md b/computer_education/README.md new file mode 100644 index 0000000..571d31b --- /dev/null +++ b/computer_education/README.md @@ -0,0 +1,4 @@ +# Computer Education + +* :scroll: [A Framework for Automated Generation of Questions Across Formal Domains](framework-for-automated-generation-of-questions-across-formal-domains.pdf) by Rahul Singhal, Martin Henz, and Shubham Goyal + diff --git a/computer_education/A framework for automated generation of questions across formal domains.pdf b/computer_education/framework-for-automated-generation-of-questions-across-formal-domains.pdf similarity index 100% rename from computer_education/A framework for automated generation of questions across formal domains.pdf rename to computer_education/framework-for-automated-generation-of-questions-across-formal-domains.pdf diff --git a/distributed_systems/README.md b/distributed_systems/README.md index c9437ba..f8b4efb 100644 --- a/distributed_systems/README.md +++ b/distributed_systems/README.md @@ -124,7 +124,7 @@ Distributed Caching Protocols for Relieving Hot Spots on the World Wide Web](con * :scroll: [Implementing the Omega failure detector in the crash-recovery failure model](implementing-the-omega-failure-detector-in-crash-recovery-failure-model.pdf) -* :scroll: [Impossibility of Distributed Consensuswith One Faulty Process](impossibility-of-consensus-with-one-faulty-process.pdf) +* :scroll: [Impossibility of Distributed Consensus with One Faulty Process](impossibility-of-consensus-with-one-faulty-process.pdf) * :scroll: [In Search of an Understandable Consensus Algorithm](in-search-of-an-understandable-consensus-algorithm.pdf) @@ -156,7 +156,7 @@ Distributed Caching Protocols for Relieving Hot Spots on the World Wide Web](con * :scroll: [Signal/Collect: Graph Algorithms for the (Semantic) Web](signal-%26-collect-graph-algorithms-for-the-\(semantic\)-web.pdf) -* :scroll: [Slution of a Problem in +* :scroll: [Solution of a Problem in Concurrent Programming Control](solution-of-a-problem-in-concurrent-programming-control.pdf) * :scroll: [Sparse Partitions](sparse-partitions.pdf) @@ -165,7 +165,7 @@ Concurrent Programming Control](solution-of-a-problem-in-concurrent-programming- * :scroll: [The Akamai Network: A Platform for High-Performance Internet Applications](the-akamai-network.pdf) -* :scroll: [The Dining CryptographersProblem: +* :scroll: [The Dining Cryptographers Problem: Unconditional Sender and Recipient Untraceability](the-dining-cryptographers-problem.pdf) * :scroll: [Tor: The Second-Generation Onion Router](tor-the-second-generation-onion-router.pdf) diff --git a/garbage_collection/README.md b/garbage_collection/README.md index 5183aab..6bfb0a3 100644 --- a/garbage_collection/README.md +++ b/garbage_collection/README.md @@ -1,4 +1,4 @@ -* [A Unified Theory of Garbage Collection](https://researcher.watson.ibm.com/researcher/files/us-bacon/Bacon04Unified.pdf) +* [A Unified Theory of Garbage Collection](https://www.cs.cornell.edu/courses/cs6120/2019fa/blog/unified-theory-gc/) > An overview for programmers and language implementors for understanding different garbage collection algorithms. * [A LISP Garbage-Collector for Virtual-Memory Computer Systems](https://www.cs.purdue.edu/homes/hosking/690M/p611-fenichel.pdf) @@ -8,6 +8,5 @@ * [On-the-Fly Garbage Collection: An Exercise in Cooperation](https://lamport.azurewebsites.net/pubs/garbage.pdf) * [:scroll:](the_lisp_ii_garbage_collector.pdf) [The Lisp II Garbage Collector](http://www.softwarepreservation.com/projects/LISP/lisp2/TM-3417_500_00_LISP2_GC_Spec.pdf) * [The Treadmill: Real-Time Garbage Collection Without Motion Sickness](http://plover.com/~mjd/misc/hbaker-archive/NoMotionGC.html) -* [Parallel Generational-Copying Garbage Collection with a Block-Structured +* [:scroll:](parallel_generational_copying_garbage_collection_with_a_block_structured_heap.pdf)[Parallel Generational-Copying Garbage Collection with a Block-Structured Heap](http://simonmar.github.io/bib/papers/parallel-gc.pdf) - diff --git a/information_retrieval/README.md b/information_retrieval/README.md index c73926f..14d7822 100644 --- a/information_retrieval/README.md +++ b/information_retrieval/README.md @@ -17,7 +17,7 @@ The included documents are significantly better results that popular existing models. This paper won a honorable mention at CIKM 2013. -* [:scroll:](the-pagerank-citation-ranking-bringing-order-to-the-web) [The PageRank Citation Ranking: Bringing Order to the Web](http://ilpubs.stanford.edu:8090/422/1/1999-66.pdf) - Lawrence Page, Sergey Brin, Rajeev Motwani and Terry Winograd +* [:scroll:](the-pagerank-citation-ranking-bringing-order-to-the-web.pdf) [The PageRank Citation Ranking: Bringing Order to the Web](http://ilpubs.stanford.edu:8090/422/1/1999-66.pdf) - Lawrence Page, Sergey Brin, Rajeev Motwani and Terry Winograd This paper introduces the PageRank algorithm, which forms the backbone of the present day google search engine. Pagerank operates by assessing the diff --git a/languages/erlang/README.md b/languages/erlang/README.md index 7c1c28f..a06bdf2 100644 --- a/languages/erlang/README.md +++ b/languages/erlang/README.md @@ -3,7 +3,7 @@ * [Making reliable distributed systems in the presence of software errors](http://erlang.org/download/armstrong_thesis_2003.pdf) PhD thesis of Joe Armstrong, Erlang’s co-inventor, describing the origins of Erlang. -* [A History of Erlang](http://webcem01.cem.itesm.mx:8005/erlang/cd/downloads/hopl_erlang.pdf) by Joe Armstrong +* [A History of Erlang](https://www.labouseur.com/courses/erlang/history-of-erlang-armstrong.pdf) by Joe Armstrong * [Characterizing the Scalability of Erlang VM on Many-core Processors](http://www.diva-portal.org/smash/get/diva2:392243/FULLTEXT01.pdfOn) by Jianrong Zhang diff --git a/languages/haskell/README.md b/languages/haskell/README.md index a5ce403..116896b 100644 --- a/languages/haskell/README.md +++ b/languages/haskell/README.md @@ -4,7 +4,7 @@ * :scroll: [Tackling the Awkward Squad: monadic input/output, concurrency, exceptions, and foreign-language calls in Haskell](tackling-the-awkward-squad-monadic-input-output-concurrency-exceptions-and-foreign-language-calls-in-haskell.pdf) by Simon Peyton Jones * :scroll: [Making a Fast Curry: Push/Enter vs. Eval/Apply for Higher-order Languages](making-a-fast-curry-push-enter-versus-eval-apply-for-higher-order-languages.pdf) by Simon Marlow and Simon Peyton Jones. A classic... describes well the execution model GHC uses for Haskell, and catches the brilliant authors in a design pivot from original intuition to new conclusions based on empirical data. * :scroll: [A Poor Man's Concurrency Monad](a-poor-mans-concurrency-monad.pdf) by Koen Claessen. Paper describes how without adding any primitives to the language, you could define a concurrency monad transformer in Haskell. -* :scroll: [Parallel Generational-Copying Garbage Collection with a Block-Structured Heap](../garbage_collection/parallel_generational_copying_garbage_collection_with_a_block_structured_heap.pdf). In Haskell, data immutability forces us to produce a lot of temporary data but also helps to collect this garbage rapidly. This paper explains how the Glasgow Haskell Compiler accomplishes this task in a simple, yet effective, manner with no programmer intervention. +* :scroll: [Parallel Generational-Copying Garbage Collection with a Block-Structured Heap](../../garbage_collection/parallel_generational_copying_garbage_collection_with_a_block_structured_heap.pdf). In Haskell, data immutability forces us to produce a lot of temporary data but also helps to collect this garbage rapidly. This paper explains how the Glasgow Haskell Compiler accomplishes this task in a simple, yet effective, manner with no programmer intervention. * [Notions of Computation and Monads](https://ac.els-cdn.com/0890540191900524/1-s2.0-0890540191900524-main.pdf?_tid=45497e1c-b5c9-11e7-963f-00000aacb361&acdnat=1508526351_2f3bf288ce0f81ff89fb10ece92eeb9e) by Eugenio Moggi. One of the canonical references for Monads in the functional paradigm. It relates the semantics of computations to equivalences of programs for various notions of computations. * [The Essence of Functional Programming](https://page.mi.fu-berlin.de/scravy/realworldhaskell/materialien/the-essence-of-functional-programming.pdf) by Philip Wadler. This paper uses monads to structure functional programs in Haskell. A very good reference for understanding monads and more generally in the context of programming languages. * [Monad Transformers and Modular Interpreters](http://haskell.cs.yale.edu/wp-content/uploads/2011/02/POPL96-Modular-interpreters.pdf) by Sheng Liang, Paul Hudak and Mark Jones. Canonical paper on Monad Transformers: the canonical way in which to combine monads and the basis of the popular mtl Haskel library. diff --git a/memory_management/README.md b/memory_management/README.md index c1ef78a..95d75c7 100644 --- a/memory_management/README.md +++ b/memory_management/README.md @@ -1,18 +1,18 @@ ## Memory Management -* [A Unified Theory of Garbage Collection](https://researcher.watson.ibm.com/researcher/files/us-bacon/Bacon04Unified.pdf) +* [A Unified Theory of Garbage Collection](https://web.eecs.umich.edu/~weimerw/2012-4610/reading/bacon-garbage.pdf) * [Teaching Garbage Collection without Implementing Compilers or Interpreters](https://cs.brown.edu/~sk/Publications/Papers/Published/cgkmf-teach-gc/paper.pdf) * [Message Analysis Guided Allocation and Low Pause Incremental GC in a Concurrent Language](http://user.it.uu.se/~kostis/Papers/ismm04.pdf) -* [And Then There Were None: A Stall-Free Real-Time Garbage Collector for Reconfigurable Hardware](http://researcher.watson.ibm.com/researcher/files/us-bacon/Bacon12AndThen.pdf) +* [And Then There Were None: A Stall-Free Real-Time Garbage Collector for Reconfigurable Hardware](https://cacm.acm.org/magazines/2013/12/169948-and-then-there-were-none/fulltext) * [The Slab Allocator: An Object-Caching Kernel Memory Allocator](https://www.usenix.org/legacy/publications/library/proceedings/bos94/bonwick.html) - [ASCII version](https://www.usenix.org/legacy/publications/library/proceedings/bos94/full_papers/bonwick.a) - [POSTSCRIPT version](https://www.usenix.org/legacy/publications/library/proceedings/bos94/full_papers/bonwick.ps) -* :scroll: [ScatterAlloc: Massively Parallel Dynamic Memory Allocation for the GPU](http://www.icg.tugraz.at/Members/steinber/scatteralloc-1) +* :scroll: [ScatterAlloc: Massively Parallel Dynamic Memory Allocation for the GPU](https://markussteinberger.net/papers/ScatterAlloc.pdf) Presents a useful algorithm as well as considerations relevant to designing algorithms for GPUs. diff --git a/robotics/README.md b/robotics/README.md index 2221fe5..66c8030 100644 --- a/robotics/README.md +++ b/robotics/README.md @@ -5,7 +5,7 @@ Robotics [DP-SLAM: Fast, Robust Simultaneous Localization and Mapping Without Predetermined Landmarks](http://people.ee.duke.edu/~lcarin/Lihan4.21.06a.pdf) -[The Dynamic Window Approach to Collision Avoidance](http://www.cs.washington.edu/node/4749) +[The Dynamic Window Approach to Collision Avoidance](https://www.csie.ntu.edu.tw/~b92025/paper/Dyanmic_Window.pdf) [Online Trajectory Generation: Basic Concepts for Instantaneous Reactions to Unforeseen Events](http://ieeexplore.ieee.org/xpl/freeabs_all.jsp?arnumber=5350749) diff --git a/security/README.md b/security/README.md index 326df66..68c111e 100644 --- a/security/README.md +++ b/security/README.md @@ -6,7 +6,7 @@ * [Making Programs Forget: Enforcing Lifetime For Sensitive Data (2011)](https://www.usenix.org/events/hotos11/tech/final_files/Kannan.pdf) * [Breach: Reviving The Crime Attack (2013)](http://breachattack.com/resources/BREACH%20-%20SSL,%20gone%20in%2030%20seconds.pdf) * [Why Silent Updates Boost Security (2009)](http://tik-old.ee.ethz.ch/file/ef72343372ca8659a9ae8a98873167c0/TIKReport302.pdf) -* [A survey of coordinated attacks and collaborative intrusion detection (2010)](https://www.tk.informatik.tu-darmstadt.de/fileadmin/user_upload/Group_TK/zhou2010survey.pdf) +* [A survey of coordinated attacks and collaborative intrusion detection (2010)](https://www.sciencedirect.com/science/article/pii/S016740480900073X) * :scroll: [Macaroons: Cookies with Contextual Caveats for Decentralized Authorization in the Cloud (2014)](macaroons-cookies-with-contextual-caveats.pdf) * :scroll: [Insertion, Evasion, and Denial of Service: eluding network intrusion detection (1998)](ids-evasion-ptacek-newsham.pdf)