diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md index 9621ad8..f50f390 100644 --- a/.github/CONTRIBUTING.md +++ b/.github/CONTRIBUTING.md @@ -11,7 +11,7 @@ We want to help bring academic research closer to practitioners and we strive to ### Respect content licenses -* **We will only merge pull requests that contain research papers that allow digital distribution.** Papers whose copyright prohibits redistribution will not be accepted; for example [license 1](http://www.acm.org/publications/policies/copyright-policy-v1/) from the [ACM digital library](http://www.acm.org/publications/policies/copyright_policy). +* **We will only merge pull requests that contain research papers that allow digital distribution.** Papers whose copyright prohibits redistribution will not be accepted; for example [license 8](http://www.acm.org/publications/policies/copyright-policy-v8/) from the [ACM digital library](http://www.acm.org/publications/policies/copyright_policy). * We encourage papers that do not allow digital distribution to be added to a README, with a link to the source URL, in the appropriate subject's folder. For example, [the distributed systems README](https://github.com/papers-we-love/papers-we-love/blob/master/distributed_systems/README.md). ### Follow our commit, naming, and directory-organization conventions diff --git a/README.md b/README.md index 7592a3e..b8c77f4 100644 --- a/README.md +++ b/README.md @@ -17,10 +17,12 @@ Here are our official chapters. Let us know if you are interested in [starting o * [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) * [Boulder](http://www.meetup.com/Papers-We-Love-Boulder/) * [Bucharest](http://www.meetup.com/papers-we-love-bucharest/) +* [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/) @@ -39,6 +41,7 @@ Here are our official chapters. Let us know if you are interested in [starting o * [Madrid](http://www.meetup.com/Papers-We-Love-Madrid/) * [Medellín](https://www.meetup.com/paperswelovemde/) * [Montreal](http://www.meetup.com/Papers-We-Love-Montreal/) +* [Mumbai](https://www.meetup.com/Papers-We-Love-Mumbai/) * [Munich](http://www.meetup.com/Papers-We-Love-Munich/) * [New York City](http://www.meetup.com/papers-we-love/) * [Paris](http://www.meetup.com/Papers-We-Love-Paris/) @@ -66,7 +69,7 @@ All of our meetups follow our [Code of Conduct](CODE_OF_CONDUCT.md). ### Past Presentations -Check out our [Youtube](https://www.youtube.com/user/PapersWeLove) and [MixCloud](https://www.mixcloud.com/paperswelove/) (audio-only format) channels. +Check out our [YouTube](https://www.youtube.com/user/PapersWeLove) and [MixCloud](https://www.mixcloud.com/paperswelove/) (audio-only format) channels. ## Info diff --git a/clustering_algorithms/README.md b/clustering_algorithms/README.md index 1ccea35..b052414 100644 --- a/clustering_algorithms/README.md +++ b/clustering_algorithms/README.md @@ -1,3 +1,3 @@ ## Clustering Algorithms -[On the resemblance and containment of documents](http://gatekeeper.dec.com/ftp/pub/dec/SRC/publications/broder/positano-final-wpnums.pdf) (Andrei Z. Broder) +[On the resemblance and containment of documents](https://www.cs.princeton.edu/courses/archive/spr05/cos598E/bib/broder97resemblance.pdf) (Andrei Z. Broder) diff --git a/datastores/README.md b/datastores/README.md index 02a74b2..49e366f 100644 --- a/datastores/README.md +++ b/datastores/README.md @@ -44,6 +44,8 @@ ## Hosted Papers +* :scroll: [A Solution to the Network Challenges of Data Recovery in Erasure-coded Distributed Storage Systems: A Study on the Facebook Warehouse Cluster](network-challenges-of-data-recovery-in-erasure-coded-distributed-storage-systems.pdf) + * :scroll: [Bigtable: A Distributed Storage System for Structured Data](bigtable-a-distributed-storage-system-for-structured-data.pdf) * :scroll: [Database Metatheory: Asking Big Queries](database-metatheory--asking-the-big-queries.pdf) @@ -54,14 +56,16 @@ * :scroll: [Freenet: A Distributed Anonymous Information Storage and Retrieval System](freenet-a-distributed-anonymous-information-and-retrieval-system.pdf) -* :scroll: [Megastore: Providing Scalable, Highly Available Storage for Interactive Services](megastore-providing-scalable-highly-available-storage-for-interactive-services.pdf) +* :scroll: [The Google File System](the-google-file-system.pdf) -* :scroll: [A Solution to the Network Challenges of Data Recovery in Erasure-coded Distributed Storage Systems: A Study on the Facebook Warehouse Cluster](network-challenges-of-data-recovery-in-erasure-coded-distributed-storage-systems.pdf) +* :scroll: [Megastore: Providing Scalable, Highly Available Storage for Interactive Services](megastore-providing-scalable-highly-available-storage-for-interactive-services.pdf) * :scroll: [RADOS: A Scalable, Reliable Storage Service for Petabyte-scale Storage Clusters](rados-a-scalable-reliable-storage-service-for-petabyte-scale-storage-clusters.pdf) * :scroll: [Spanner: Google’s Globally-Distributed Database](spanner-google's-globally-distributed-database.pdf) +* :scroll: [Spartan: A distributed array framework with smart tiling](spartan-a-distributed-array-framework-with-smart-tiling.pdf) + * :scroll: [Stasis: Flexible Transactional Storage](stasis-flexible-transactional-storage.pdf) * :scroll: [TAO: Facebooks Distributed Data Store for the Social Graph'](tao-facebook-distributed-datastore.pdf) @@ -70,4 +74,3 @@ * :scroll: [Warp: Multi-Key Transactions for Key-Value Stores](warp-multi-key-transactions-for-key-value-stores.pdf) -* :scroll: [Spartan: A distributed array framework with smart tiling](spartan-a-distributed-array-framework-with-smart-tiling.pdf) diff --git a/datastores/the-google-file-system.pdf b/datastores/the-google-file-system.pdf new file mode 100644 index 0000000..52fd80d Binary files /dev/null and b/datastores/the-google-file-system.pdf differ diff --git a/design/README.md b/design/README.md index 63159b1..57c76de 100644 --- a/design/README.md +++ b/design/README.md @@ -1,6 +1,7 @@ # Design * [No Silver Bullet — Essence and Accidents of Software Engineering](http://faculty.salisbury.edu/~xswang/Research/Papers/SERelated/no-silver-bullet.pdf) * [Traits: A Mechanism for Fine-Grained Reuse](http://scg.unibe.ch/archive/papers/Duca06bTOPLASTraits.pdf) +* [THING-MODEL-VIEW-EDITOR an Example from a planningsystem](http://heim.ifi.uio.no/~trygver/1979/mvc-1/1979-05-MVC.pdf) * :scroll: [Out of the Tar Pit](out-of-the-tar-pit.pdf) > We identify common causes of complexity and discuss general approaches which can be taken to eliminate them where they are accidental in nature. diff --git a/digital_currency/README.md b/digital_currency/README.md index ac86903..c998c35 100644 --- a/digital_currency/README.md +++ b/digital_currency/README.md @@ -1,3 +1,11 @@ # Digital Currency -* :scroll: [Bitcoin](bitcoin.pdf) * :scroll: [PeerCoin](peercoin.pdf) * :scroll: [PrimeCoin](primecoin.pdf) \ No newline at end of file +## External Papers + +* [Ethereum: a secure decentralized generalized transaction ledger](https://ethereum.github.io/yellowpaper/paper.pdf) + +## Hosted Papers + +* :scroll: [Bitcoin](bitcoin.pdf) +* :scroll: [PeerCoin](peercoin.pdf) +* :scroll: [PrimeCoin](primecoin.pdf) diff --git a/distributed_systems/README.md b/distributed_systems/README.md index d874e22..90e07fc 100644 --- a/distributed_systems/README.md +++ b/distributed_systems/README.md @@ -9,7 +9,7 @@ ## External Papers -* [:scroll:](a-note-on-distributed-computing.pdf) [A Note on Distributed Computing](http://www.eecs.harvard.edu/~waldo/Readings/waldo-94.pdf) +* [:scroll:](a-note-on-distributed-computing.pdf) [A Note on Distributed Computing](http://citeseerx.ist.psu.edu/viewdoc/download;jsessionid=5A960A7B16A7BB42A99D7B6EFC30FB25?doi=10.1.1.41.7628&rep=rep1&type=pdf) * [A simple totally ordered broadcast protocol](http://diyhpl.us/~bryan/papers2/distributed/distributed-systems/zab.totally-ordered-broadcast-protocol.2008.pdf) diff --git a/experimental_algorithmics/README.md b/experimental_algorithmics/README.md index 7c6a4bc..8765a01 100644 --- a/experimental_algorithmics/README.md +++ b/experimental_algorithmics/README.md @@ -5,4 +5,4 @@ It can be used in the analysis of algorithms [(Wikipedia)](http://en.wikipedia.o ## Included Papers -* [:scroll:](a-theoreticians-guide-to-the-experimental-analysis-of-algorithms.pdf) [A Theoretician's Guide to the Experimental Analysis of Algorithms](http://davidsjohnson.net/papers/experguide.pdf) (David S. Johnson): An exceptionally well-written guide to correctly evaluating algorithms by experimental analysis. The techniques described in this paper do not only apply to theoreticians although the title might lead one to believe so. The examples used in this paper and specifically the method of listing straight-forward principles illustrated by pit-falls and pet peeves make for an excellent must-read for everyone intending to publish experimental algorithm results. +* :scroll: [A Theoretician's Guide to the Experimental Analysis of Algorithms](a-theoreticians-guide-to-the-experimental-analysis-of-algorithms.pdf) (David S. Johnson): An exceptionally well-written guide to correctly evaluating algorithms by experimental analysis. The techniques described in this paper do not only apply to theoreticians although the title might lead one to believe so. The examples used in this paper and specifically the method of listing straight-forward principles illustrated by pit-falls and pet peeves make for an excellent must-read for everyone intending to publish experimental algorithm results. diff --git a/fault_protection/README.md b/fault_protection/README.md new file mode 100644 index 0000000..68b31aa --- /dev/null +++ b/fault_protection/README.md @@ -0,0 +1,16 @@ +# Fault Protection + +## External Papers + +* [GN&C Fault Protection Fundamentals](https://trs.jpl.nasa.gov/bitstream/handle/2014/41696/08-0125.pdf) +> As software becomes more and more integrated in our daily lives, we +> need, more than ever, for the software we write to work reliably in a +> wide range of conditions--even, and especially, in unexpected +> conditions. This paper, written by Robert Rasmussen from the Jet +> Propulsion Laboratory in 2008, documents and explains some fundamental +> principles about designing fault tolerant systems as learned through +> the hard-won experience of designing Guidance, Navigation, and Control +> (GN&C) systems for spacecraft. This paper is rich in principles, +> examples, and advice, and has a lot to offer to our industry +> generally--even for those of us who don't actively work on software for +> spaceships! diff --git a/gossip/README.md b/gossip/README.md index afd481f..5923e31 100644 --- a/gossip/README.md +++ b/gossip/README.md @@ -17,5 +17,5 @@ Briefly, a peer sampling service is a system that maintains a restricted set (pa # Failure Detectors * [A Gossip-Style Failure Detection Service](https://ecommons.cornell.edu/bitstream/handle/1813/7341/98-1687.pdf) -* [The ϕ Accrual Failure Detector ](http://ddg.jaist.ac.jp/pub/HDY+04.pdf) +* [The ϕ Accrual Failure Detector ](https://dspace.jaist.ac.jp/dspace/bitstream/10119/4784/1/IS-RR-2004-010.pdf) diff --git a/information_theory/README.md b/information_theory/README.md index 5252db1..b65eede 100644 --- a/information_theory/README.md +++ b/information_theory/README.md @@ -2,7 +2,7 @@ * :scroll: [A Mathematical Theory of Communication](a-mathematical-theory-of-communication-1948.pdf) -* [Differential Privacy](http://www.msr-waypoint.com/pubs/64346/dwork.pdf) +* [Differential Privacy](https://www.microsoft.com/en-us/research/wp-content/uploads/2016/02/dwork.pdf) - How do we quantify the exposure an individual faces from being included in a statistical dataset? How do we anonymize aggregated data in a way that has formal guarantees? diff --git a/networks/README.md b/networks/README.md index 0a7cd01..8a743a3 100644 --- a/networks/README.md +++ b/networks/README.md @@ -1,7 +1,7 @@ ## Networks * [Bimodal Multicast](http://www.csl.mtu.edu/cs6461/www/Reading/Birman99.pdf) -* [End-to-End Arguments in System Design](http://www.reed.com/dpr/locus/Papers/EndtoEnd.html) +* [End-to-End Arguments in System Design](http://www.deepplum.com/dpr/locus/Papers/EndtoEnd.html) * [Can SPDY Really Make the Web Faster?](http://www.comp.lancs.ac.uk/~elkhatib//Docs/2014.06_Netw.pdf) * [Datacenter Traffic Control: Understanding Techniques and Trade-offs](https://osf.io/6qzxc/) * [B4: Experience with a Globally-Deployed Software Defined WAN](https://dl.acm.org/citation.cfm?id=2486019) diff --git a/operating_systems/README.md b/operating_systems/README.md index 0f60aa4..4793c4e 100644 --- a/operating_systems/README.md +++ b/operating_systems/README.md @@ -2,26 +2,13 @@ * :scroll: [The UNIX Time-Sharing System](unix-time-sharing-system.pdf) -* [The operating system: should there be one?](http://plosworkshop.org/2013/preprint/kell.pdf) +* [The operating system: should there be one?](https://www.cl.cam.ac.uk/~srk31/research/papers/kell13operating.pdf) * [The Scalable Commutativity Rule: Designing Scalable Software for Multicore Processors](https://people.csail.mit.edu/nickolai/papers/clements-sc.pdf) -## System Virtualization - -* [Xen and the Art of Virtualization](http://www.cl.cam.ac.uk/research/srg/netos/papers/2003-xensosp.pdf) - -* :scroll: [kvm: the Linux Virtual Machine Monitor](kvm-linux-virtual-machines-monitor.pdf) - -### Live migration of Virtual Machines - -* :scroll: [Live Migration of Virtual Machines](live-migration-of-virtual-machines.pdf) - ## Jails and containers * :scroll: [Jails: Confining the omnipotent root.](https://us-east.manta.joyent.com/bcantrill/public/ppwl-cantrill-jails.pdf) * :scroll: [Solaris Zones: Operating System Support for Consolidating Commercial Workloads](https://us-east.manta.joyent.com/bcantrill/public/ppwl-cantrill-zones.pdf) - - - diff --git a/unikernels/README.md b/unikernels/README.md new file mode 100644 index 0000000..6aac656 --- /dev/null +++ b/unikernels/README.md @@ -0,0 +1,9 @@ +## Unikernels (LibOS) + +* [Unikernels: Library Operating Systems for the Cloud](http://anil.recoil.org/papers/2013-asplos-mirage.pdf) +* [IncludeOS: A minimal, resource efficient unikernel for cloud services](http://folk.uio.no/paalee/publications/2015-cloudcom.pdf) +* [The rump kernel: A tool for driver development and a toolkit for applications](https://www.netbsd.org/gallery/presentations/justin/2015_AsiaBSDCon/justincormack-abc2015.pdf) + +### High Availability Through Unikernel +* [Tardigrade: Leveraging Lightweight Virtual Machines to Easily and Efficiently Construct Fault-Tolerant Services](https://www.usenix.org/node/189029) + diff --git a/virtual_machines/README.md b/virtual_machines/README.md index 5db407a..e340f3e 100644 --- a/virtual_machines/README.md +++ b/virtual_machines/README.md @@ -1,5 +1,18 @@ +## Virtual Machines + * [One VM to Rule Them All](http://lafo.ssw.uni-linz.ac.at/papers/2013_Onward_OneVMToRuleThemAll.pdf) - This is an exciting VM implementation that incorporates AST node rewriting and an optimizing compiler. It enables the implementation of, and excellent performance for, a wide range of languages. * [A Comparison of Software and Hardware Techniques for x86 Virtualization](http://www.vmware.com/pdf/asplos235_adams.pdf) - virtualization theory background + +## System Virtualization + +* [Xen and the Art of Virtualization](http://www.cl.cam.ac.uk/research/srg/netos/papers/2003-xensosp.pdf) + +* :scroll: [kvm: the Linux Virtual Machine Monitor](kvm-linux-virtual-machines-monitor.pdf) + +### Live migration of Virtual Machines + +* :scroll: [Live Migration of Virtual Machines](live-migration-of-virtual-machines.pdf +) diff --git a/operating_systems/kvm-linux-virtual-machines-monitor.pdf b/virtual_machines/kvm-linux-virtual-machines-monitor.pdf similarity index 100% rename from operating_systems/kvm-linux-virtual-machines-monitor.pdf rename to virtual_machines/kvm-linux-virtual-machines-monitor.pdf diff --git a/operating_systems/live-migration-of-virtual-machines.pdf b/virtual_machines/live-migration-of-virtual-machines.pdf similarity index 100% rename from operating_systems/live-migration-of-virtual-machines.pdf rename to virtual_machines/live-migration-of-virtual-machines.pdf