# papers

title: On the Calculus of Relations
venue: J. Symb. Log.
directory: distributed_systems/
created: 2017-09-11T23:07:02.003037109
modified: 2017-09-11T23:07:02.003037109
abstract:
Terms and Conditions of Use provides, in part, that unless you have obtained prior permission, you may not download an entire issue of a journal or multiple copies of articles, and you may use content in the JSTOR archive only for your personal, non-commercial use. Please contact the publisher regarding any further use of this work. Publisher contact information may be obtained at. Each copy of any part of a JSTOR transmission must contain the same copyright notice that appears on the screen or printed page of such transmission. JSTOR is a not-for-profit service that helps scholars, researchers, and students discover, use, and build upon a wide range of content in a trusted digital archive. We use information technology and tools to increase productivity and facilitate new forms of scholarship. For more information about JSTOR, please contact support@jstor.org. Association for Symbolic Logic is collaborating with JSTOR to digitize, preserve and extend access to The Journal of Symbolic Logic.


title: Life beyond Distributed Transactions: an Apostate's Opinion
venue: CIDR
directory: distributed_systems/
created: 2017-09-11T23:07:02.107585938
modified: 2017-09-11T23:07:02.107585938
abstract:
The positions expressed in this paper are personal opinions and do not in any way reflect the positions of my employer Amazon.com. ABSTRACT Many decades of work have been invested in the area of distributed transactions including protocols such as 2PC, Paxos, and various approaches to quorum. These protocols provide the application programmer a façade of global serializability. Personally, I have invested a non-trivial portion of my career as a strong advocate for the implementation and use of platforms providing guarantees of global serializability. My experience over the last decade has led me to liken these platforms to the Maginot Line 1. In general, application developers simply do not implement large scalable applications assuming distributed transactions. When they attempt to use distributed transactions, the projects founder because the performance costs and fragility make them impractical. Natural selection kicks in… 1 The Maginot Line was a huge fortress that ran the length of the Franco-German border and was constructed at great expense between World War I and World War II. It successfully kept the German army from directly crossing the border between France and Germany. It was quickly bypassed by the Germans in 1940 who invaded through Belgium. Instead, applications are built using different techniques which do not provide the same transactional guarantees but still meet the needs of their businesses. This paper explores and names some of the practical approaches used in the implementations of large-scale mission-critical applications in a world which rejects distributed transactions. We discuss the management of fine-grained pieces of application data which may be repartitioned over time as the application grows. We also discuss the design patterns used in sending messages between these repartitionable pieces of data. The reason for starting this discussion is to raise awareness of new patterns for two reasons. First, it is my belief that this awareness can ease the challenges of people hand-crafting very large scalable applications. Second, by observing the patterns, hopefully the industry can work towards the creation of platforms that make it easier to build these very large applications.


title: In Search of an Understandable Consensus Algorithm
venue: USENIX Annual Technical Conference
directory: distributed_systems/
created: 2017-09-11T23:07:02.159053955
modified: 2017-09-11T23:07:02.159053955
abstract:
Raft is a consensus algorithm for managing a replicated log. It produces a result equivalent to (multi-)Paxos, and it is as efficient as Paxos, but its structure is different from Paxos; this makes Raft more understandable than Paxos and also provides a better foundation for building practical systems. In order to enhance understandabil-ity, Raft separates the key elements of consensus, such as leader election, log replication, and safety, and it enforces a stronger degree of coherency to reduce the number of states that must be considered. Results from a user study demonstrate that Raft is easier for students to learn than Paxos. Raft also includes a new mechanism for changing the cluster membership, which uses overlapping majorities to guarantee safety.


title: Large-scale Incremental Processing Using Distributed Transactions and Notifications
venue: OSDI
directory: distributed_systems/
created: 2017-09-11T23:07:02.216813965
modified: 2017-09-11T23:07:02.216813965
abstract:
Updating an index of the web as documents are crawled requires continuously transforming a large repository of existing documents as new documents arrive. This task is one example of a class of data processing tasks that transform a large repository of data via small, independent mutations. These tasks lie in a gap between the capabilities of existing infrastructure. Databases do not meet the storage or throughput requirements of these tasks: Google's indexing system stores tens of petabytes of data and processes billions of updates per day on thousands of machines. MapReduce and other batch-processing systems cannot process small updates individually as they rely on creating large batches for efficiency. We have built Percolator, a system for incrementally processing updates to a large data set, and deployed it to create the Google web search index. By replacing a batch-based indexing system with an indexing system based on incremental processing using Percolator, we process the same number of documents per day, while reducing the average age of documents in Google search results by 50%.


title: Oblivious Routing of Highly Variable Traffic in Service Overlays and IP Backbones
venue: IEEE/ACM Transactions on Networking
directory: distributed_systems/
created: 2017-09-11T23:07:02.333633057
modified: 2017-09-11T23:07:02.333633057
abstract:
The emergence of new applications on the Internet like voice-over-IP, peer-to-peer, and video-on-demand has created highly dynamic and changing traffic patterns. In order to route such traffic with quality-of-service (QoS) guarantees without requiring detection of traffic changes in real-time or reconfiguring the network in response to it, a routing and bandwidth allocation scheme has been recently proposed that allows preconfiguration of the network such that all traffic patterns permissible within the network's natural ingress-egress capacity constraints can be handled in a capacity efficient manner. The scheme routes traffic in two phases. In the first phase, incoming traffic is sent from the source to a set of intermediate nodes and then, in the second phase, from the intermediate nodes to the final destination. The traffic in the first phase is distributed to the intermediate nodes in predetermined proportions that depend on the intermediate nodes. In this paper, we develop linear programming formulations and a fast combinatorial algorithm for routing under the scheme so as to maximize throughput (or, minimize maximum link utilization). We compare the throughput performance of the scheme with that of the optimal scheme among the class of all schemes that are allowed to even make the routing dependent on the traffic matrix. For our evaluations, we use actual Internet Service Provider topologies collected for the Rocketfuel project. We also bring out the versatility of the scheme in not only handling widely fluctuating traffic but also accommodating applicability to several widely differing networking scenarios, including i) economical Virtual Private Networks (VPNs); ii) supporting indirection in specialized service overlay models like Internet Indirection Infrastructure (i3); iii) adding QoS guarantees to services that require routing through a network-based middlebox; and iv) reducing IP layer transit traffic and handling extreme traffic variability in IP-over-optical networks without dynamic reconfiguration of the optical layer. The two desirable properties of supporting indirection in specialized service overlay models and static optical layer provisioning in IP-over-optical networks are not present in other approaches for routing variable traffic, such as direct source-destination routing along fixed paths.


title: MapReduce: Simplified Data Processing on Large Clusters
venue: OSDI
directory: distributed_systems/
created: 2017-09-11T23:07:02.421571045
modified: 2017-09-11T23:07:02.421571045
abstract:
MapReduce is a programming model and an associated implementation for processing and generating large datasets that is amenable to a broad variety of real-world tasks. Users specify the computation in terms of a <i>map</i> and a <i>reduce</i> function, and the underlying runtime system automatically parallelizes the computation across large-scale clusters of machines, handles machine failures, and schedules inter-machine communication to make efficient use of the network and disks. Programmers find the system easy to use: more than ten thousand distinct MapReduce programs have been implemented internally at Google over the past four years, and an average of one hundred thousand MapReduce jobs are executed on Google's clusters every day, processing a total of more than twenty petabytes of data per day.


title: Mesos: A Platform for Fine-Grained Resource Sharing in the Data Center
venue: NSDI
directory: distributed_systems/
created: 2017-09-11T23:07:02.485283936
modified: 2017-09-11T23:07:02.485283936
abstract:
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. To copy otherwise, to republish, to post on servers or to redistribute to lists, requires prior specific permission. Abstract We present Mesos, a platform for sharing commodity clusters between multiple diverse cluster computing frameworks, such as Hadoop and MPI 1. Sharing improves cluster utilization and avoids per-framework data replication. Mesos shares resources in a fine-grained manner, allowing frameworks to achieve data locality by taking turns reading data stored on each machine. To support the sophisticated schedulers of today's frameworks , Mesos introduces a distributed two-level scheduling mechanism called resource offers. Mesos decides how many resources to offer each framework, while frameworks decide which resources to accept and which computations to run on them. Our experimental results show that Mesos can achieve near-optimal locality when sharing the cluster among diverse frameworks, can scale up to 50,000 nodes, and is resilient to node failures.


title: Paxos Made Moderately Complex
venue: ACM Comput. Surv.
directory: distributed_systems/
created: 2017-09-11T23:07:02.741273926
modified: 2017-09-11T23:07:02.741273926
abstract:
This article explains the full reconfigurable multidecree Paxos (or multi-Paxos) protocol. Paxos is by no means a simple protocol, even though it is based on relatively simple invariants. We provide pseudocode and explain it guided by invariants. We initially avoid optimizations that complicate comprehension. Next we discuss liveness, list various optimizations that make the protocol practical, and present variants of the protocol.


title: Pastry: Scalable, distributed object location and routing for large-scale peer-to-peer systems
directory: distributed_systems/
created: 2017-09-11T23:07:02.844856934
modified: 2017-09-11T23:07:02.844856934
abstract:
This paper presents the design and evaluation of Pastry, a scalable, distributed object location and routing scheme for wide-area peer-to-peer applications. Pastry performs application-level routing and object location in a potentially very large overlay network of nodes connected via the Internet. It can be used to support a wide range of peer-to-peer applications like global data storage, global data sharing, and naming. An insert operation in Pastry stores an object at a user-defined number of diverse nodes within the Pastry network. A lookup operation reliably retrieves a copy of the requested object if one exists. Moreover, a lookup is usually routed to the node nearest the client issuing the lookup (by some measure of proximity), among the nodes storing the requested object. Pastry is completely decentralized, scalable, and self-configuring; it automatically adapts to the arrival, departure and failure of nodes. Experimental results obtained with a prototype implementation on a simulated network of up to 100,000 nodes confirm Pastry's scalability, its ability to self-configure and adapt to node failures, and its good network locality properties.


title: Recent SRI work in verification
venue: SOEN
directory: distributed_systems/
created: 2017-09-11T23:07:02.934626953
modified: 2017-09-11T23:07:02.934626953
abstract:
end has already been implemented as part of an experimental Ada/Ada-M compiler [7] ; work on a syntax-directed editor is i n progress .) However, the methodology of verification-oriented programming is still a research topic. This section provides an update to our last year ' s VERkshop summary [21], summarizing recent work in verification at SRI. I t considers progress as well as current and future plans. As noted in last year's report, the Fortran verification system [1] handles a subset of both ANS I Fortran 66 and 77. The subset excludes the I/O statements, as well as EQUIVALENCE, DATA, and BLOCK DATA statements. Whil e some restrictions are placed on the remaining statements, the subset permits certain uses of COMMON, adjustable array dimensions , functions, and subroutines with side-effects. Unusual features of the system include a syntax checker that enforces all of th e syntactic restrictions, the thorough analysis of aliasing, and the generation of VCs to ensure against run time errors (e .g ., arithmeti c overflow). If a program is proved correct by the system, then any invocation of the program on an ANSI Fortran processor in a stat e satisfying the input assertion terminates without run time errors and produces a state satisfying the output assertion. The main thrust of this year's work with the Fortran system has been to apply it to several small but difficult programs. Some of tha t work is described below. A VCG reduces th e question of whether a program is consistent with its specifications to that of whether certain logical formulas are theorems in a n underlying theory. VCGs must embody the semantics of the programming language ; for the most part, they have been seen as


title: On Proof and Progress in Mathematics
directory: distributed_systems/
created: 2017-09-11T23:07:03.052739014
modified: 2017-09-11T23:07:03.052739014
abstract:
This essay on the nature of proof and progress in mathematics was stimulated by the article of Jaffe and Quinn, "Theoretical Mathematics: Toward a cultural synthesis of mathematics and theoretical physics". Their article raises interesting issues that mathematicians should pay more attention to, but it also perpetuates some widely held beliefs and attitudes that need to be questioned and examined. The article had one paragraph portraying some of my work in a way that diverges from my experience, and it also diverges from the observations of people in the field whom I've discussed it with as a reality check. After some reflection, it seemed to me that what Jaffe and Quinn wrote was an example of the phenomenon that people see what they are tuned to see. Their portrayal of my work resulted from projecting the sociology of mathematics onto a one-dimensional scale (speculation versus rigor) that ignores many basic phenomena. Responses to the Jaffe-Quinn article have been invited from a number of mathematicians, and I expect it to receive plenty of specific analysis and criticism from others. Therefore, I will concentrate in this essay on the positive rather than on the contranegative. I will describe my view of the process of mathematics, referring only occasionally to Jaffe and Quinn by way of comparison. In attempting to peel back layers of assumptions, it is important to try to begin with the right questions: 1. What is it that mathematicians accomplish? There are many issues buried in this question, which I have tried to phrase in a way that does not presuppose the nature of the answer. It would not be good to start, for example, with the question How do mathematicians prove theorems? This question introduces an interesting topic, but to start with it would be to project two hidden assumptions: (1) that there is uniform, objective and firmly established theory and practice of mathematical proof, and (2) that progress made by mathematicians consists of proving theorems. It is worthwhile to examine these hypotheses, rather than to accept them as obvious and proceed from there.


title: Self-stabilizing Systems in Spite of Distributed Control
venue: Commun. ACM
directory: distributed_systems/
created: 2017-09-11T23:07:03.275273926
modified: 2017-09-11T23:07:03.275273926
abstract:
The synchronization task between loosely coupled cyclic sequential processes (as can be distinguished in, for instance, operating systems) can be viewed as keeping the relation &#8220;the system is in a legitimate state&#8221; invariant. As a result, each individual process step that could possibly cause violation of that relation has to be preceded by a test deciding whether the process in question is allowed to proceed or has to be delayed. The resulting design is readily&#8212;and quite systematically&#8212;implemented if the different processes can be granted mutually exclusive access to a common store in which &#8220;the current system state&#8221; is recorded.


title: Signal/Collect: Graph Algorithms for the (Semantic) Web
venue: International Semantic Web Conference
directory: distributed_systems/
created: 2017-09-11T23:07:03.423362061
modified: 2017-09-11T23:07:03.423362061
abstract:
The Semantic Web graph is growing at an incredible pace, enabling opportunities to discover new knowledge by interlinking and analyzing previously unconnected data sets. This confronts researchers with a conundrum: Whilst the data is available the programming models that facilitate scalability and the infrastructure to run various algorithms on the graph are missing. Some use MapReduce – a good solution for many problems. However, even some simple iterative graph algorithms do not map nicely to that programming model requiring programmers to shoehorn their problem to the MapReduce model. This paper presents the Signal/Collect programming model for synchronous and asynchronous graph algorithms. We demonstrate that this abstraction can capture the essence of many algorithms on graphs in a concise and elegant way by giving Signal/Collect adaptations of various relevant algorithms. Furthermore, we built and evaluated a prototype Signal/Collect framework that executes algorithms in our programming model. We empirically show that this prototype transparently scales and that guiding computations by scoring as well as asyn-chronicity can greatly improve the convergence of some example algorithms. We released the framework under the Apache License 2.0 (at


title: Stronger Semantics for Low-Latency Geo-Replicated Storage
venue: NSDI
directory: distributed_systems/
created: 2017-09-11T23:07:03.640283936
modified: 2017-09-11T23:07:03.640283936
abstract:
We present the first scalable, geo-replicated storage system that guarantees low latency, offers a rich data model, and provides " stronger " semantics. Namely, all client requests are satisfied in the local datacenter in which they arise; the system efficiently supports useful data model abstractions such as column families and counter columns; and clients can access data in a causally-consistent fashion with read-only and write-only transac-tional support, even for keys spread across many servers. The primary contributions of this work are enabling scalable causal consistency for the complex column-family data model, as well as novel, non-blocking algorithms for both read-only and write-only transactions. Our evaluation shows that our system, Eiger, achieves low latency (single-ms), has throughput competitive with eventually-consistent and non-transactional Cassandra (less than 7% overhead for one of Facebook's real-world workloads), and scales out to large clusters almost linearly (averaging 96% increases up to 128 server clusters).


title: Secure network provenance
venue: SOSP
directory: distributed_systems/
created: 2017-09-11T23:07:03.856059082
modified: 2017-09-11T23:07:03.856059082
abstract:
This paper introduces <i>secure network provenance (SNP)</i>, a novel technique that enables networked systems to explain to their operators <i>why</i> they are in a certain state -- e.g., why a suspicious routing table entry is present on a certain router, or where a given cache entry originated. SNP provides network forensics capabilities by permitting operators to track down faulty or misbehaving nodes, and to assess the damage such nodes may have caused to the rest of the system. SNP is designed for adversarial settings and is robust to manipulation; its tamper-evident properties ensure that operators can detect when compromised nodes lie or falsely implicate correct nodes.
 We also present the design of SNooPy, a general-purpose SNP system. To demonstrate that SNooPy is practical, we apply it to three example applications: the Quagga BGP daemon, a declarative implementation of Chord, and Hadoop MapReduce. Our results indicate that SNooPy can efficiently explain state in an adversarial setting, that it can be applied with minimal effort, and that its costs are low enough to be practical.


title: Dining Cryptographers are Practical
directory: distributed_systems/
created: 2017-09-11T23:07:03.979736084
modified: 2017-09-11T23:07:03.979736084
abstract:
The dining cryptographers protocol provides information-theoretically secure sender and recipient untraceability. However, the protocol is considered to be impractical because a malicious participant may disrupt the communication. We propose an implementation which provides information-theoretical security for senders and recipients, and in which a disruptor with limited computational capabilites can easily be detected.


title: Sparse Partitions
directory: distributed_systems/
created: 2017-09-11T23:07:04.032876953
modified: 2017-09-11T23:07:04.032876953
abstract:
This abstract presents a collection of clustering and decomposition techniques enabling the construction of sparse and locality preserving representations for arbitrary networks. These new clustering techniques have already found several powerful applications in the area of distributed network algorithms. Two of these applications are described in this abstract, namely, routing with polynomial communication-space tradeoo and online tracking of mobile users.


title: Tiered Replication: A Cost-effective Alternative to Full Cluster Geo-replication
venue: USENIX Annual Technical Conference
directory: distributed_systems/
created: 2017-09-11T23:07:04.083599121
modified: 2017-09-11T23:07:04.083599121
abstract:
Cloud storage systems typically use three-way random replication to guard against data loss within the cluster, and utilize cluster geo-replication to protect against correlated failures. This paper presents a much lower cost alternative to full cluster geo-replication. We demonstrate that in practical settings, using two replicas is sufficient for protecting against independent node failures, while using three random replicas is inadequate for protecting against correlated node failures. We present Tiered Replication, a replication scheme that splits the cluster into a primary and backup tier. The first two replicas are stored on the primary tier and are used to recover data in the case of independent node failures , while the third replica is stored on the backup tier and is used to protect against correlated failures. The key insight of our paper is that, since the third replicas are rarely read, we can place the backup tier on separate physical infrastructure or a remote location without affecting performance. This separation significantly increases the resilience of the storage system to correlated failures and presents a low cost alternative to geo-replication of an entire cluster. In addition, the Tiered Replication algorithm optimally minimizes the probability of data loss under correlated failures. Tiered Repli-cation can be executed incrementally for each cluster change, which allows it to supports dynamic environments in which nodes join and leave the cluster, and it facilitates additional data placement constraints required by the storage designer, such as network and rack awareness. We have implemented Tiered Replication on HyperDex, an open-source cloud storage system, and demonstrate that it incurs a small performance overhead. Tiered Replication improves the cluster-wide MTTF by a factor of 20,000 compared to random replication and by a factor of 20 compared to previous non-random replica-tion schemes, without increasing the amount of storage.


title: Why Do Some Men Use Violence Against Women and How Can We Prevent It?
directory: distributed_systems/
created: 2017-09-11T23:07:04.147093018
modified: 2017-09-11T23:07:04.147093018
abstract:
The views expressed in this publication are those of the authors and do not necessarily represent those of the United Nations, including UNDP, UNFPA, UN Women, UNV or UN Member States. UNDP partners with people at all levels of society to help build nations that can withstand crisis and drive and sustain the kind of growth that improves the quality of life for everyone. On the ground in 177 countries and territories, we offer a global perspective and local insight to help empower lives and build resilient nations. The United Nations Population Fund (UNFPA) is an international development agency that works with countries to protect and promote the sexual and reproductive health of women, men and young people. The United Nations Entity for Gender Equality and the Empowerment of Women (UN Women) is a global champion for women and girls; UN Women was established to accelerate progress on meeting their rights worldwide. The United Nations Volunteers (UNV) programme, is the UN organization that contributes to peace and development through volunteerism worldwide. Partners for Prevention is a UNDP, UNFPA, UN Women and UNV regional joint programme for gender-based violence prevention in Asia and the Pacific. foreword Violence against women constrains the enjoyment of women's human rights everywhere. We know that it is a manifestation of power and control and a tool to maintain gender inequalities, disrupting the health, survival, safety and freedom of women and their families around the world. We know that to end violence against women and girls, we must ensure their full empowerment, promote and protect their rights, including access to justice and support services, and end the discrimination they face in all aspects of their lives. Changing cultures towards zero tolerance for violence against women, therefore, must be a priority for States, communities and families. Over the past few decades, much has been done in legal and policy reform and the extension of services to support and protect women and their families from domestic and sexual violence, while prevention efforts have focused on campaigns and advocacy that have brought the issue into public consciousness. Preventing violence requires the sustained involvement of socializing institutions at the community and state levels, including schools, faith-based organizations, media and popular culture. This is recognized in the Declaration on the Elimination of Violence against Women, which calls for States to modify the social and cultural patterns of conduct of men and women …


title: Tor: The Second-Generation Onion Router
venue: USENIX Security Symposium
directory: distributed_systems/
created: 2017-09-11T23:07:04.339806885
modified: 2017-09-11T23:07:04.339806885
abstract:
We present Tor, a circuit-based low-latency anonymous communication service. This second-generation Onion Routing system addresses limitations in the original design. Tor adds perfect forward secrecy, congestion control, directory servers, integrity checking, configurable exit policies, and a practical design for rendezvous points. Tor works on the real-world Internet, requires no special privileges or kernel modifications, requires little synchronization or coordination between nodes, and provides a reasonable trade-off between anonymity, usability, and efficiency. We briefly describe our experiences with an international network of more than a dozen hosts. We close with a list of open problems in anonymous communication. Onion Routing is a distributed overlay network designed to anonymize TCP-based applications like web browsing, secure shell, and instant messaging. Clients choose a path through the network and build a circuit, in which each node (or " onion router " or " OR ") in the path knows its predecessor and successor, but no other nodes in the circuit. Traffic flows down the circuit in fixed-size cells, which are unwrapped by a symmetric key at each node (like the layers of an onion) and relayed downstream. The Onion Routing project published several design and analysis papers [27, 41, 48, 49]. While a wide area Onion Routing network was deployed briefly, the only long-running public implementation was a fragile proof-of-concept that ran on a single machine. Even this simple deployment processed connections from over sixty thousand distinct IP addresses from all over the world at a rate of about fifty thousand per day. But many critical design and deployment issues were never resolved, and the design has not been updated in several years. Here we describe Tor, a protocol for asynchronous, loosely federated onion routers that provides the following improvements over the old Onion Routing design: Perfect forward secrecy: Onion Routing was originally vulnerable to a single hostile node recording traffic and later compromising successive nodes in the circuit and forcing them to decrypt it. Rather than using a single multiply en-crypted data structure (an onion) to lay each circuit, Tor now uses an incremental or telescoping path-building design , where the initiator negotiates session keys with each successive hop in the circuit. Once these keys are deleted, subsequently compromised nodes cannot decrypt old traffic. As a side benefit, onion replay detection is no longer necessary, and the process of building circuits is more reliable , since the initiator knows when a hop fails …


title: Toward a cloud computing research agenda
venue: SIGACT News
directory: distributed_systems/
created: 2017-09-11T23:07:04.515084961
modified: 2017-09-11T23:07:04.515084961
abstract:
The 2008 LADIS workshop on Large Scale Distributed Systems brought together leaders from the commercial cloud computing community with researchers working on a variety of topics in distributed computing. The dialog yielded some surprises: some hot research topics seem to be of limited near-term importance to the cloud builders, while some of their practical challenges seem to pose new questions to us as systems researchers. This brief note summarizes our impressions.


title: ZooKeeper: Wait-free Coordination for Internet-scale Systems
venue: USENIX Annual Technical Conference
directory: distributed_systems/
created: 2017-09-11T23:07:04.659739014
modified: 2017-09-11T23:07:04.659739014
abstract:
In this paper, we describe ZooKeeper, a service for coordinating processes of distributed applications. Since ZooKeeper is part of critical infrastructure, ZooKeeper aims to provide a simple and high performance kernel for building more complex coordination primitives at the client. It incorporates elements from group messaging, shared registers, and distributed lock services in a repli-cated, centralized service. The interface exposed by Zoo-Keeper has the wait-free aspects of shared registers with an event-driven mechanism similar to cache invalidations of distributed file systems to provide a simple, yet powerful coordination service. The ZooKeeper interface enables a high-performance service implementation. In addition to the wait-free property, ZooKeeper provides a per client guarantee of FIFO execution of requests and linearizability for all requests that change the ZooKeeper state. These design decisions enable the implementation of a high performance processing pipeline with read requests being satisfied by local servers. We show for the target workloads, 2:1 to 100:1 read to write ratio, that ZooKeeper can handle tens to hundreds of thousands of transactions per second. This performance allows ZooKeeper to be used extensively by client applications.


title: Zab: High-performance broadcast for primary-backup systems
venue: 2011 IEEE/IFIP 41st International Conference on Dependable Systems & Networks (DSN)
directory: distributed_systems/
created: 2017-09-11T23:07:04.720141113
modified: 2017-09-11T23:07:04.720141113
abstract:
Zab is a crash-recovery atomic broadcast algorithm we designed for the ZooKeeper coordination service. ZooKeeper implements a primary-backup scheme in which a primary process executes clients operations and uses Zab to propagate the corresponding incremental state changes to backup processes<sup>1</sup>. Due the dependence of an incremental state change on the sequence of changes previously generated, Zab must guarantee that if it delivers a given state change, then all other changes it depends upon must be delivered first. Since primaries may crash, Zab must satisfy this requirement despite crashes of primaries.


title: Understanding the Limitations of Causally and Totally Ordered Communication
directory: distributed_systems/
created: 2017-09-11T23:07:04.814311035
modified: 2017-09-11T23:07:04.814311035
abstract:
Causally and totally ordered communication support (CATOCS) has been proposed as important to provide as part of the basic building blocks for constructing reliable distributed systems. In this paper, we identify four major limitations to CATOCS, investigate the applicability of CATOCS to several classes of distributed applications in light of these limitations, and the potential impact of these facilities on communication scalability and robustness. From this investigation, we find limited merit and several potential problems in using CATOCS. The fundamental difficulty with the CATOCS is that it attempts to solve state problems at the communication level in violation of the well-known " end-to-end " argument.


title: Gamification in educational software development
venue: CSERC
directory: gamification/
created: 2017-09-11T23:07:04.876124023
modified: 2017-09-11T23:07:04.876124023
abstract:
Software development education often suffers from the image of tedious programming, leading to low levels of activity. In general, gamification can help making tasks more attractive. This paper reports on a gamification case study, indicating that the use of gamification may be an effective instrument to increase the activity of students in Educational Software Development.


title: A Data-driven Method for the Detection of Close Submitters in Online Learning Environments
venue: WWW
directory: gamification/
created: 2017-09-11T23:07:05.383691895
modified: 2017-09-11T23:07:05.383691895
abstract:
Online learning has become very popular over the last decade. However , there are still many details that remain unknown about the strategies that students follow while studying online. In this study, we focus on the direction of detecting 'invisible' collaboration ties between students in online learning environments. Specifically, the paper presents a method developed to detect student ties based on temporal proximity of their assignment submissions. The paper reports on findings of a study that made use of the proposed method to investigate the presence of close submitters in two different massive open online courses. The results show that most of the students (i.e., student user accounts) were grouped as couples, though some bigger communities were also detected. The study also compared the population detected by the algorithm with the rest of user accounts and found that close submitters needed a statistically significant lower amount of activity with the platform to achieve a certificate of completion in a MOOC. These results confirm that the detected close submitters were performing some collaboration or even engaged in unethical behaviors, which facilitates their way into a certificate. However, more work is required in the future to specify various strategies adopted by close submitters and possible associations between the user accounts.


title: Reducing Garbage Collector Cache Misses
venue: ISMM
directory: garbage_collection/
created: 2017-09-11T23:07:05.45999292
modified: 2017-09-11T23:07:05.45999292
abstract:
Cache misses are currently a major factor in the cost of garbage collection, and we expect them to dominate in the future. Traditional garbage collection algorithms exhibit relatively little temporal locality; each live object in the heap is likely to be touched exactly once during each garbage collection. We measure two techniques for dealing with this issue: prefetch-on-grey, and lazy sweeping. The first of these is new in this context. Lazy sweeping has been in common use for a decade. It was introduced as a mechanism for reducing paging and pause times; we argue that it is also crucial for eliminating cache misses during the sweep phase.
Our measurements are obtained in the context of a non-moving garbage collector. Fully copying garbage collection inherently requires more traffic through the cache, and thus probably also stands to benefit substantially from something like the prefetch-on-grey technique. Generational garbage collection may reduce the benefit of these techniques for some applications, but experiments with a non-moving generational collector suggest that they remain quite useful.


title: The Pagerank Citation Ranking: Bringing Order to the Web
directory: information_retrieval/
created: 2017-09-11T23:07:05.754172119
modified: 2017-09-11T23:07:05.754172119
abstract:
The importance of a Web page is an inherently subjective matter, which depends on the readers interests, knowledge and attitudes. But there is still much that can be said objectively about the relative importance of Web pages. This paper describes PageRank, a method for rating Web pages objectively and mechanically, eeectively measuring the human interest and attention devoted to them. We compare PageRank to an idealized random Web surfer. We show how to eeciently compute PageRank for large numbers of pages. And, we show how to apply PageRank to search and to user navigation.


title: An implementation and semantics for transactional memory introspection in Haskell
venue: PLAS
directory: languages/haskell/
created: 2017-09-11T23:07:06.164483887
modified: 2017-09-11T23:07:06.164483887
abstract:
Transactional Memory Introspection (TMI) is a novel reference monitor architecture that provides complete mediation, freedom from <i>time of check to time of use</i> bugs and improved failure handling for authorization. TMI builds on and integrates with implementations of the Software Transactional Memory (STM) architecture [Harris and Fraser 2003]. In this paper we present a formal definition of TMI and a concrete implementation over the Haskell STM. We find that this specification and reference implementation establishes clear semantics for the TMI architecture. In particular, they help identify and resolve ambiguities that apply to implementations such in our prior work [Birgisson et al. 2008].


title: Davis's Poetic Dialogue with Leiris's Autobiography
directory: logic_and_programming/
created: 2017-09-11T23:07:12.611304932
modified: 2017-09-11T23:07:12.611304932
abstract:
In his article "Davis's Poetic Dialogue with Leiris's Autobiography" Jonathan Evans analyzes Lydia Davis's translation of the first two parts of Michel Leiris's autobiography, which shows an encounter between two writers. Davis has also written stories which reference Leiris and thus position him as a precursor. Evans proposes that Leiris is not only a source of influence for Davis, but that their texts can be read as a dialogue. Using a methodology that draws on Lacanian psychoanalysis, Evans shows how Leiris focuses on sound and graphological patterns in order to understand his own conscious and unconscious relationship with words. Davis, in her stories, forces the reader to question their own relationship to language and the symbolic order. Thus, Davis's translation of Leiris's autobiography becomes a graft on her work as it offers her a chance to explore writing in a way which would be uncharacteristic in her own work. Jonathan Evans, "Davis's Poetic Dialogue with Leiris's Autobiography" page 2 of 10 CLCWeb: Comparative Literature and Culture 14.1 (2012): <http://docs.lib.purdue.edu/clcweb/vol14/iss1/8>


title: Design Principles Behind Smalltalk
directory: languages/smalltalk/
created: 2017-09-11T23:07:12.636461914
modified: 2017-09-11T23:07:12.636461914
abstract:
The purpose of the Smalltalk project is to provide computer support for the creative spirit in everyone. Our work flows from a vision that includes a creative individual and the best computing hardware available. We have chosen to concentrate on two principle areas of research: a language of description (programming language) that serves as an interface between the models in the human mind and those in computing hardware, and a language of interaction (user interface) that matches the human communication system to that of the computer. Our work has followed a two-to four-year cycle that can be seen to parallel the scientific method: Build an application program within the current system (make an observation) Based on that experience, redesign the language (formulate a theory) Build a new system based on the new design (make a prediction that can be tested) The Smalltalk-80 system marks our fifth time through this cycle. In this article, I present some of the general principles we have observed in the course of our work. While the presentation frequently touches on Smalltalk "motherhood", the principles themselves are more general and should prove useful in evaluating other systems and in guiding future work. Just to get warmed up, I'll start with a principle that is more social than technical and that is largely responsible for the particular bias of the Smalltalk project: Personal Mastery: If a system is to serve the creative spirit, it must be entirely comprehensible to a single individual. The point here is that the human potential manifests itself in individuals. To realize this potential, we must provide a medium that can be mastered by a single individual. Any barrier that exists between the user and some part of the system will eventually be a barrier to creative expression. Any part of the system that cannot be changed or that is not sufficiently general is a likely source of impediment. If one part of the system works differently from all the rest, that part will require additional effort to control. Such an added burden may detract from the final result and will inhibit future endeavors in that area. We can thus infer a general principle of design: Good Design: A system should be built with a minimum set of unchangeable parts; those parts should be as general as possible; and all parts of the system should be held in a uniform framework. Language In …


title: The Early History of Smalltalk
venue: HOPL Preprints
directory: languages/smalltalk/
created: 2017-09-11T23:07:12.693862061
modified: 2017-09-11T23:07:12.693862061
abstract:
Most ideas come from previous ideas. The sixties, particularly in the ARPA community, gave rise to a host of notions about &#8220;human-computer symbiosis&#8221; through interactive time-shared computers, graphics screens and pointing devices. Advanced computer languages were invented to simulate complex systems such as oil refineries and semi-intelligent behavior. The soon to follow paradigm shift of modern personal computing, overlapping window interfaces, and object-oriented design came from seeing the work of the sixties as something more than a &#8220;better old thing&#8221;. That is, more than a better way: to do mainframe computing; for end-users to invoke functionality; to make data structures more abstract. Instead the promise of exponential growth in computing/$/volume   demanded that the sixties be regarded as &#8220;<italic>almost</italic> a new thing&#8221; and to find out what the actual &#8220;new things&#8221; might be. For example, one would compute with a handheld &#8220;Dynabook&#8221; in a way that would not be possible on a shared mainframe; millions of potential users meant that the user interface would have to become a learning environment along the lines of Montessori and Bruner; and needs for large scope, reduction in complexity, and end-user literacy would require that data and control structures be done away with in favor of a more biological scheme of protected universal cells interacting only through messages that could mimic any desired behavior.
Early Smalltalk was the first complete realization of these new points of view   as parented by its many predecessors in hardware, language and user interface design. It became the exemplar of the new computing, in part, because we were actually trying for a qualitative shift in belief structures&#8212;a new Kuhnian paradigm in the same spirit as the invention of the printing press&#8212;and thus took highly extreme positions which almost forced these new styles to be invented.


title: Part I: Transcendence of Values of Some Special Functions
directory: mathematics/
created: 2017-09-11T23:07:12.789364014
modified: 2017-09-11T23:07:12.789364014
abstract:
This paper is a transcript of the Inaugural Monroe H. Martin Lecture and Seminar given at Johns Hopkins University on February 23rd and 24th, 2009. In Part I, we present classical and recent results on the transcendence of values of certain special functions of one variable at algebraic points. In Part II, we describe some new results, joint with Marvin D. Tretkoff, on the transcendence of values at algebraic points of hypergeometric functions of several variables. Note that the author's maiden name is Paula B. Cohen. In this part of our paper, we present some results on the transcendence of values of certain special functions of one variable at algebraic points. Recall that the algebraic numbers are the complex numbers satisfying a non-trivial polynomial relation with rational coefficients. We denote the field of rational numbers by Q, and the field of algebraic numbers by Q. A transcendental number, α, is a complex number which is not algebraic. Therefore P (α) = 0 for every polynomial P ∈ Q[x] with at least one non-zero coefficient. The first examples of explicit transcendental numbers are due to Liouville in 1844 [Lio1], but their construction is rather artificial. Liouville showed that an irrational algebraic number cannot be too well approximated by rational numbers with denominators of relatively small size. He then constructed numbers that are so well approximated by rational numbers that they must be transcendental. An example is the number ξ = ∞ n=1 10 −n!. In 1874, Cantor gave another proof of the existence of transcendental numbers. He showed that the set of all algebraic numbers is countable, while the set of real numbers is uncountable. It follows that the set of transcendental numbers is uncountable. Somewhat paradoxically, it is usually very difficult to show that any given number is transcendental.


title: A sparse Johnson: Lindenstrauss transform
venue: STOC
directory: machine_learning/dimensionality_reduction/
created: 2017-09-11T23:07:12.832991943
modified: 2017-09-11T23:07:12.832991943
abstract:
Dimension reduction is a key algorithmic tool with many applications including nearest-neighbor search, compressed sensing and linear algebra in the streaming model. In this work we obtain a <i>sparse</i> version of the fundamental tool in dimension reduction -- the Johnson-Lindenstrauss transform. Using hashing and local densification, we construct a sparse projection matrix with just ~O(1/&#949;) non-zero entries per column. We also show a matching lower bound on the sparsity for a large class of projection matrices. Our bounds are somewhat surprising, given the known lower bounds of &#937;(1/&#949;<sup>2</sup>) both on the number of rows of any projection matrix and on the sparsity of projection matrices generated by natural constructions. Using this, we achieve an ~O(1/&#949;) update time per non-zero element for a (1 &#949;)-approximate projection, thereby substantially outperforming the ~O(1/&#949;<sup>2</sup>) update time required by prior approaches. A variant of our method offers the same guarantees for sparse vectors, yet its ~O(d) worst case running time matches the best approach of Ailon and Liberty.


title: Toward a unified theory of sparse dimensionality reduction in Euclidean space
venue: STOC
directory: machine_learning/dimensionality_reduction/
created: 2017-09-11T23:07:12.949864014
modified: 2017-09-11T23:07:12.949864014
abstract:
Let &#934;&#8712;R<sup>m x n</sup> be a sparse Johnson-Lindenstrauss transform [52] with column sparsity s. For a subset T of the unit sphere and &#949;&#8712;(0,1/2), we study settings for m,s to ensure E<sub>&#934;</sub> sup<sub>x&#8712; T</sub> |&#934; x|<sub>2</sub><sup>2</sup> - 1| < &#949;, i.e. so that &#934; preserves the norm of every x &#8712; T simultaneously and multiplicatively up to 1+&#949;. We introduce a new complexity parameter, which depends on the geometry of T, and show that it suffices to choose s and m such that this parameter is small. Our result is a sparse analog of Gordon's theorem, which was concerned with a dense &#934; having i.i.d. Gaussian entries. We qualitatively unify several results related to the Johnson-Lindenstrauss lemma, subspace embeddings, and Fourier-based restricted isometries. Our work also implies new results in using the sparse Johnson-Lindenstrauss transform in randomized linear algebra, compressed sensing, manifold learning, and constrained least squares problems such as the Lasso.


title: Fast asymmetric thread synchronization
venue: TACO
directory: memory_management/
created: 2017-09-11T23:07:13.017452881
modified: 2017-09-11T23:07:13.017452881
abstract:
For most multi-threaded applications, data structures must be shared between threads. Ensuring thread safety on these data structures incurs overhead in the form of locking and other synchronization mechanisms. Where data is shared among multiple threads these costs are unavoidable. However, a common access pattern is that data is accessed primarily by one dominant thread, and only very rarely by the other, non-dominant threads. Previous research has proposed biased locks, which are optimized for a single dominant thread, at the cost of greater overheads for non-dominant threads. In this article we propose a new family of biased synchronization mechanisms that, using a modified interface, push accesses to shared data from the non-dominant threads to the dominant one, via a novel set of message passing mechanisms. We present mechanisms for protecting critical sections, for queueing work, for caching shared data in registers where it is safe to do so, and for asynchronous critical section accesses. We present results for the conventional Intel&#174; Sandy Bridge processor and for the emerging network-optimized many-core IBM&#174; PowerEN#8482; processor. We find that our algorithms compete well with existing biased locking algorithms, and, in particular, perform better than existing algorithms as accesses from non-dominant threads increase.


title: The Meaning of Employee Engagement
directory: logic_and_programming/
created: 2017-09-11T23:07:13.169413086
modified: 2017-09-11T23:07:13.169413086
abstract:
The meaning of employee engagement is ambiguous among both academic researchers and among practitioners who use it in conversations with clients. We show that the term is used at different times to refer to psychological states, traits, and behaviors as well as their antecedents and outcomes. Drawing on diverse relevant literatures, we offer a series of propositions about (a) psychological state engagement; (b) behavioral engagement; and (c) trait engagement. In addition, we offer propositions regarding the effects of job attributes and leadership as main effects on state and behavioral engagement and as moderators of the relationships among the 3 facets of engagement. We conclude with thoughts about the measurement of the 3 facets of engagement and potential antecedents, especially measurement via employee surveys. The notion of employee engagement is a relatively new one, one that has been heavily marketed by human resource (HR) consulting firms that offer advice on how it can be created and leveraged. Academic researchers are now slowly joining the fray, and both parties are saddled with competing and inconsistent interpretations of the meaning of the construct. Casual observation suggests that much of the appeal to organizational management is driven by claims that employee engagement drives bottom-line results. Indeed, at least one HR consulting firm (Hewitt Associates LLC, 2005, p. 1) indicates that they ''have established a conclusive, compelling relationship between engagement and profitability through higher productivity, sales, customer satisfaction, and employee retention .'' Some practitioners view engagement as having evolved from prior research on work attitudes, directly implying that this newer concept adds interpretive value that extends beyond the boundaries of those traditions. We agree with this thought and hope to show why we agree in what follows. Although compelling on the surface, the meaning of the employee engagement concept is unclear. In large part, this can be attributed to the ''bottom-up'' manner in which the engagement notion has quickly evolved within the practitioner community. This is not an unfamiliar stage in the incre-mental evolution of an applied psychological construct. Thus, similar to the manner in which burnout was at first a construct attributed to pop psychology (Maslach, Schaufeli, & Leiter, 2001) engagement is a concept with a sparse and diverse theoretical and empirically demonstrated nomological net— the relationships among potential antecedents and consequences of engagement as well as the components of engagement have We appreciate the thoughtful comments of our colleagues Karen Barbera and Scott …


title: A Wait-Free Stack
venue: ICDCIT
directory: non_blocking_algorithms/
created: 2017-09-11T23:07:13.286172119
modified: 2017-09-11T23:07:13.286172119
abstract:
In this paper, we describe a novel algorithm to create a concurrent wait-free stack. To the best of our knowledge, this is the first wait-free algorithm for a general purpose stack. In the past, researchers have proposed restricted wait-free implementations of stacks, lock-free implementations, and efficient universal constructions that can support wait-free stacks. The crux of our wait-free implementation is a fast pop operation that does not modify the stack top; instead, it walks down the stack till it finds a node that is unmarked. It marks it but does not delete it. Subsequently, it is lazily deleted by a cleanup operation. This operation keeps the size of the stack in check by not allowing the size of the stack to increase beyond a factor of W as compared to the actual size. All our operations are wait-free and linearizable.


title: The Story of the Therac in LOTOS
directory: operating_systems/
created: 2017-09-11T23:07:13.372977051
modified: 2017-09-11T23:07:13.372977051
abstract:
We consider the use of formal speciication and veriication techniques for proving the safety, or otherwise, of an abstraction of a safety-critical medical application: the Therac-25 radiation machine. This machine was responsible for several patient deaths in the late 1980s. The speciication is given in LOTOS and we consider trace analysis, property testing, and temporal logic for reasoning about the safe and unsafe behaviour of the speciied machine. The testing tool LOLA is used for rigorous veriicationn with LOLA, two signiicant design errors are uncovered. The work reported herein is part of a case study on the practical use of formal methods in safety-critical softwaree the speciication is based only on an informal description of part of the ma-chine's behaviour, and does not constitute a speciication of the entire machine.


title: kvm: the Linux Virtual Machine Monitor
directory: operating_systems/
created: 2017-09-11T23:07:13.386318115
modified: 2017-09-11T23:07:13.386318115
abstract:
Virtualization is a hot topic in operating systems these days. It is useful in many scenarios: server consolidation , virtual test environments, and for Linux enthusiasts who still can not decide which distribution is best. Recently , hardware vendors of commodity x86 processors have added virtualization extensions to the instruction set that can be utilized to write relatively simple virtual machine monitors. The Kernel-based Virtual Machine, or kvm, is a new Linux subsystem which leverages these virtualization extensions to add a virtual machine monitor (or hyper-visor) capability to Linux. Using kvm, one can create and run multiple virtual machines. These virtual machines appear as normal Linux processes and integrate seamlessly with the rest of the system. Virtualization has been around almost as long as computers. The idea of using a computer system to emulate another, similar, computer system was early recognized as useful for testing and resource utilization purposes. As with many computer technologies, IBM led the way with their VM system. In the last decade, VMware's software-only virtual machine monitor has been quite successful. More recently, the Xen [xen] open-source hypervisor brought virtualization to the open source world, first with a variant termed paravirtualization and as hardware became available, full virtualization. 2 x86 Hardware Virtualization Extensions x86 hardware is notoriously difficult to virtualize. Some instructions that expose privileged state do not trap when executed in user mode, e.g. popf. Some privileged state is difficult to hide, e.g. the current privilege level, or cpl. Recognizing the importance of virtualization, hardware vendors [Intel][AMD] have added extensions to the x86 architecture that make virtualization much easier. While these extensions are incompatible with each other, they are essentially similar, consisting of: • A new guest operating mode – the processor can switch into a guest mode, which has all the regular privilege levels of the normal operating modes, except that system software can selectively request that certain instructions, or certain register accesses, be trapped. • Hardware state switch – when switching to guest mode and back, the hardware switches the control registers that affect processor operation modes, as well as the segment registers that are difficult to switch, and the instruction pointer so that a control transfer can take effect. • Exit reason reporting – when a switch from guest mode back to host mode occurs, the hardware reports the reason for the switch so that software can take the appropriate action. Under …


title: Live Migration of Virtual Machines
venue: NSDI
directory: operating_systems/
created: 2017-09-11T23:07:13.664154053
modified: 2017-09-11T23:07:13.664154053
abstract:
Migrating operating system instances across distinct physical hosts is a useful tool for administrators of data centers and clusters: It allows a clean separation between hard-ware and software, and facilitates fault management, load balancing, and low-level system maintenance.
 By carrying out the majority of migration while OSes continue to run, we achieve impressive performance with minimal service downtimes; we demonstrate the migration of entire OS instances on a commodity cluster, recording service downtimes as low as 60<i>ms</i>. We show that that our performance is sufficient to make live migration a practical tool even for servers running interactive loads.
 In this paper we consider the design options for migrating OSes running services with liveness constraints, focusing on data center and cluster environments. We introduce and analyze the concept of writable working set, and present the design, implementation and evaluation of high-performance OS migration built on top of the Xen VMM.


title: The UNIX Time-Sharing System
venue: Commun. ACM
directory: operating_systems/
created: 2017-09-11T23:07:13.988735107
modified: 2017-09-11T23:07:13.988735107
abstract:
UNIX is a general-purpose, multi-user, interactive operating system for the Digital Equipment Corporation PDP-11/40 and 11/45 computers. It offers a number of features seldom found even in larger operating systems, including: (1) a hierarchical file system incorporating demountable volumes; (2) compatible file, device, and inter-process I/O; (3) the ability to initiate asynchronous processes; (4) system command language selectable on a per-user basis; and (5) over 100 subsystems including a dozen languages. This paper discusses the nature and implementation of the file system and of the user command interface.


title: Genetic Programming: An Introduction
directory: paradigms/functional_programming/
created: 2017-09-11T23:07:14.017030029
modified: 2017-09-11T23:07:14.017030029
abstract:
1. viii Line 13, change " iteration s " to " iterations " 2. xv Line 17, change " Figure 99.1 " to " Figure 1 " 3. xv Lines 20-21, delete the sentence " GP-related resources are provided in an appendix. " 4. xvi Figure 99.1, change " 99.1 " to " 1 " 5. xvii After the 2 nd bulleted item beginning " Part III, " insert the following, additional bullet, Y Four appendices summarize valuable resources available for the reader: Appendix A contains printed and recorded resources, Appendix B suggests web-related resources, Appendix C discusses GP software tools, including Discipulus tm , the GP software developed by the authors, and Appendix D mentions events most closely related to the field of genetic programming. URLs can be found online at http://mkp.com/GP-Intro. 6. 52 Line 3, change " and and " to " and " 7. 88 Line 18, change " deGaris " to " de Garis " 8. 128 Line 5, change " derivations " to " deviations " 9. i c N c N c p i − − − = 1 1 to i c N c N c p i − − − = 1 1 11. 142 Exercise 13, line 1, insert " set " after " function " 12. 147 Equation 6.1, change " E[m(H , t]… " to " E[m(H , t + 1)]… " 13. 167 Line 10, change " separarately " to " separately " 14. 168 Equation 6.6, change ∑ k D F (k, jmin (k)) to ∑ j D F (j, jmin (j)) * All line numbers refer to running text and do not include tables, figures, bulleted text, or code samples


title: Deprecating the Observer Pattern
directory: paradigms/functional_reactive_programming/
created: 2017-09-11T23:07:14.283834961
modified: 2017-09-11T23:07:14.283834961
abstract:
Programming interactive systems by means of the observer pattern is hard and error-prone yet is still the implementation standard in many production environments. We present an approach to gradually deprecate observers in favor of re-active programming abstractions. Several library layers help programmers to smoothly migrate existing code from call-backs to a more declarative programming model. Our central high-level API layer embeds an extensible higher-order data-flow DSL into our host language. This embedding is enabled by a continuation passing style transformation.


title: Prediction in Joint Action: What, When, and Where
venue: topiCS
directory: organizational_simulation/
created: 2017-09-11T23:07:14.942620117
modified: 2017-09-11T23:07:14.942620117
abstract:
Drawing on recent findings in the cognitive and neurosciences, this article discusses how people manage to predict each other's actions, which is fundamental for joint action. We explore how a common coding of perceived and performed actions may allow actors to predict the what, when, and where of others' actions. The "what" aspect refers to predictions about the kind of action the other will perform and to the intention that drives the action. The "when" aspect is critical for all joint actions requiring close temporal coordination. The "where" aspect is important for the online coordination of actions because actors need to effectively distribute a common space. We argue that although common coding of perceived and performed actions alone is not sufficient to enable one to engage in joint action, it provides a representational platform for integrating the actions of self and other. The final part of the paper considers links between lower-level processes like action simulation and higher-level processes like verbal communication and mental state attribution that have previously been at the focus of joint action research.


title: Towards Equal Rights for Higher-kinded Types
directory: paradigms/functional_programming/
created: 2017-09-11T23:07:15.55114209
modified: 2017-09-11T23:07:15.55114209
abstract:
Generics are a very popular feature of contemporary OO languages, such as Java, C# or Scala. Their support for genericity is lacking, however. The problem is that they only support abstracting over proper types, and not over generic types. This limitation makes it impossible to, e.g., define a precise interface for Iterable, a core abstraction in Scala's collection API. We implemented " type constructor polymorphism " in Scala 2.5, which solves this problem at the root, thus greatly reducing the duplication of type signatures and code.


title: Optimal Purely Functional Priority Queues
venue: J. Funct. Program.
directory: paradigms/functional_programming/
created: 2017-09-11T23:07:15.623645996
modified: 2017-09-11T23:07:15.623645996
abstract:
Brodal recently introduced the rst implementation of imperative priority queues to support ndMin, insert, and meld in O(1) worst-case time, and deleteMin in O(log n) worst-case time. These bounds are asymptotically optimal among all comparison-based priority queues. In this paper, we adapt Brodal's data structure to a purely functional setting. In doing so, we both simplify the data structure and clarify its relationship to the binomial queues of Vuillemin, which support all four operations in O(log n) time. Speciically, we derive our implementation from binomial queues in three steps: rst, we reduce the running time of insert to O(1) by eliminating the possibility of cascading links; second, we reduce the running time of ndMin to O(1) by adding a global root to hold the minimum element; and nally, we reduce the running time of meld to O(1) by allowing priority queues to contain other priority queues. Each of these steps is expressed using ML-style functors. The last transformation, known as data-structural bootstrapping, is an interesting application of higher-order functors and recursive structures.


title: A survey of network virtualization
venue: Computer Networks
directory: paradigms/functional_reactive_programming/
created: 2017-09-11T23:07:15.655483887
modified: 2017-09-11T23:07:15.655483887
abstract:
Due to the existence of multiple stakeholders with conflicting goals and policies, alterations to the existing Internet architecture are now limited to simple incremental updates; deployment of any new, radically different technology is next to impossible. To fend off this ossification, network virtualization has been propounded as a diversifying attribute of the future inter-networking paradigm. By introducing a plurality of heterogeneous network architectures cohabiting on a shared physical substrate, network virtualization promotes innovations and diversified applications. In this paper, we survey the existing technologies and a wide array of past and state-of-the-art projects on network virtualization followed by a discussion of major challenges in this area. The Internet has been stunningly successful over the course of past three decades in supporting multitude of distributed applications and a wide variety of network technologies. However, its popularity has become the biggest impediment to its further growth. Due to its multi-provider nature, adopting a new architecture or modification of the existing one requires consensus among competing stakeholders. As a result, alterations to the Internet architecture have become restricted to simple incremental updates and deployment of new network technologies have become increasingly difficult [1,2]. To fend off this ossification, network virtualization has been propounded as a diversifying attribute of the future inter-networking paradigm. Even though architectural purists view network virtualization as a means for evaluating new architectures, the pluralist approach considers vir-tualization as a fundamental attribute of the architecture itself [1]. They believe that network virtualization can eradicate the ossifying forces of the Internet and stimulate innovation [1,2]. A networking environment supports network virtual-ization if it allows coexistence of multiple virtual networks on the same physical substrate. Each virtual network (VN) in a network virtualization environment (NVE) is a collection of virtual nodes and virtual links. Essentially, a virtual network is a subset of the underlying physical network resources. Network virtualization proposes decoupling of func-tionalities in a networking environment by separating the role of the traditional Internet Service Providers (ISPs) into two: infrastructure providers (InPs), who manage the physical infrastructure, and service providers (SPs), who create 1389-1286/$-see front matter Ó 2009 Elsevier B.V. All rights reserved.


title: Why Functional Programming Matters
venue: Comput. J.
directory: paradigms/functional_programming/
created: 2017-09-11T23:07:15.918833008
modified: 2017-09-11T23:07:15.918833008
abstract:
As software becomes more and more complex, it is more and more important to structure it well. Well-structured software is easy to write, easy to debug, and provides a collection of modules that can be re-used to reduce future programming costs. Conventional languages place conceptual limits on the way problems can be modularised. Functional languages push those limits back. In this paper we show that two features of functional languages in particular, higher-order functions and lazy evaluation, can contribute greatly to modularity. As examples, we manipulate lists and trees, program several numerical algorithms, and implement the alpha-beta heuristic an algorithm from Artiicial Intelligence used in game-playing programs. Since modularity is the key to successful programming, functional languages are vitally important to the real world.


title: A survey on reactive programming
venue: ACM Comput. Surv.
directory: paradigms/functional_reactive_programming/
created: 2017-09-11T23:07:16.097763916
modified: 2017-09-11T23:07:16.097763916
abstract:
Reactive programming has recently gained popularity as a paradigm that is well-suited for developing event-driven and interactive applications. It facilitates the development of such applications by providing abstractions to express time-varying values and automatically managing dependencies between such values. A number of approaches have been recently proposed embedded in various languages such as Haskell, Scheme, JavaScript, Java, .NET, etc. This survey describes and provides a taxonomy of existing reactive programming approaches along six axes: representation of time-varying values, evaluation model, lifting operations, multidirectionality, glitch avoidance, and support for distribution. From this taxonomy, we observe that there are still open challenges in the field of reactive programming. For instance, multidirectionality is supported only by a small number of languages, which do not automatically track dependencies between time-varying values. Similarly, glitch avoidance, which is subtle in reactive programs, cannot be ensured in distributed reactive programs using the current techniques.


title: RAY: Integrating Rx and Async for Direct-Style Reactive Streams
directory: paradigms/functional_reactive_programming/
created: 2017-09-11T23:07:16.214478027
modified: 2017-09-11T23:07:16.214478027
abstract:
Languages like F#, C#, and recently also Scala, provide “async” extensions which aim to make asynchronous programming easier by avoiding an inversion of control that is inherent in traditional callback-based programming models (for the purpose of this paper called the “Async” model). This paper outlines a novel approach to integrate the Async model with observable streams of the Reactive Extensions model which is best-known from the .NET platform, and of which popular implementations exist for Java, Ruby, and other widespread languages. We outline the translation of “Reactive Async” programs to efficient state machines, in a way that generalizes the state machine translation of regular Async programs. Finally, we sketch a formalization of the Reactive Async model in terms of a small-step operational semantics.


title: Functional Reactive Animation
venue: ICFP
directory: paradigms/functional_reactive_programming/
created: 2017-09-11T23:07:16.240920898
modified: 2017-09-11T23:07:16.240920898
abstract:
<i>Fran</i> (Functional Reactive Animation) is a collection of data types and functions for composing richly interactive, multimedia animations. The key ideas in Fran are its notions of <i>behaviors</i> and <i>events</i>. Behaviors are time-varying, reactive values, while events are sets of arbitrarily complex conditions, carrying possibly rich information. Most traditional values can be treated as behaviors, and when images are thus treated, they become animations. Although these notions are captured as data types rather than a programming language, we provide them with a denotational semantics, including a proper treatment of real time, to guide reasoning and implementation. A method to effectively and efficiently perform <i>event detection</i> using <i>interval analysis</i> is also described, which relies on the partial information structure on the domain of event times. Fran has been implemented in Hugs, yielding surprisingly good performance for an interpreter-based system. Several examples are given, including the ability to describe physical phenomena involving gravity, springs, velocity, acceleration, etc. using ordinary differential equations.


title: Cognitive Computing: A Brief Survey and Open Research Challenges
directory: paradigms/new_paradigms/
created: 2017-09-11T23:07:16.365863037
modified: 2017-09-11T23:07:16.365863037
abstract:
Cognitive computing is a multidisciplinary field of research aiming at devising computational models and decision making mechanisms based on the neurobiological processes of the brain, cognitive sciences, and psychology. The objective of cognitive computational models is to endow computer systems with the faculties of knowing, thinking, and feeling. The major contributions of this survey include (i) giving insights into cognitive computing by listing and describing its definitions, related fields, and terms, (ii) classifying current research on cognitive computing according to its objectives, (iii) presenting a concise review of cognitive computing approaches, and (iv) identifying the open research issues in the area of cognitive computing.

venue:
2015 3rd International Conference on Applied Computing and Information Technology/2nd International Conference on Computational Science and Intelligence


title: Buridan’s Principle
directory: physics/
created: 2017-09-11T23:07:16.440333984
modified: 2017-09-11T23:07:16.440333984
abstract:
The problem of Buridan's Ass, named after the fourteenth century French philosopher Jean Buridan, states that an ass placed equidistant between two bales of hay must starve to death because it has no reason to choose one bale over the other. With the benefit of modern mathematics, the argument can be expressed as follows. Assume that, at time 0, the ass is placed at position x along the line joining the bales of hay, where one bale is at position 0 and the other at position 1, so 0 < x < 1. The position of the ass at time t > 0 is a function of two arguments: the time t and the starting position x. Let A t (x) denote that position. For simplicity, assume that when the ass reaches a bale of hay it stays there forever, so for all t ≥ 0: A t (0) = 0, A t (1) = 1, and 0 ≤ A t (x) ≤ 1 for any x with 0 < x < 1. The ass is a physical mechanism subject to the laws of physics. Any such mechanism is continuous, so A t (x) is a continuous function of x. Since A t (0) = 0 and A t (1) = 1, by continuity there must be a finite range of values of x for which 0 < A t (x) < 1. These values represent initial positions of the ass for which it does not reach either bale of hay within t seconds. Such a range of values of x exists for any time t, including times large enough to insure that the ass has starved to death by then. Thus, there exists a finite range of starting positions for which the ass starves to death. The key assumption in this argument is continuity: the ass's position at a later time is a continuous function of its initial position. Continuity has been a guiding principle in the development of modern physics. Phenomena that appear discontinuous, such as discrete atomic spectral lines, are explained in terms of continuous physical laws, such as Schroedinger's equation. The assumption of continuity is discussed at length in Section 6. For now, let us accept it and investigate its consequences. The general principle underlying the starvation of Buridan's ass can be stated as follows: Buridan's Principle. A discrete decision based upon an input having a …


title: Improved Dynamic Dictionary Matching
venue: Inf. Comput.
directory: pattern_matching/
created: 2017-09-11T23:07:16.453485107
modified: 2017-09-11T23:07:16.453485107
abstract:
1 Introduction In the dynamic dictionary matching problem, a dictionary D contains a set of patterns that can change over time by insertion and deletion of individual patterns. The user also presents text strings and asks for all occurrences of any patterns in the text. The two main contributions of this paper are: 1) A faster algorithm for dynamic string dictionary matching with bounded alphabets, and 2) A dynamic dictionary matching algorithm for two dimensional texts and square patterns. The first contribution is based on an algorithm that solves the general problem of maintaining a sequence of well-balanced parentheses under the operations insert, delete, and find nearest enclosing parenthesis pair. The main ideas behind the second contribution are: a linearization of two dimensional square patterns along the main diagonal, and new data structures to allow efficient manipulation of failure links. The classical pattern matching paradigm is that of searching for a given pattern in a given text. For example, the classical string matching problem is defined This is one of the most studied problems in computer science [16] and has many different linear time solutions (e.g., [lo, 191 d an many others). The two dimensional version of this problem in which strings of symbols are replaced with matrices is also well studied [9, 8, 21. Another paradigm is that of multiple matching. The input is a set of patterns D and a text. The object is to find all occurrences of all patterns from D that appear in the text. A motivation for this paradigm was given by Aho and Corasick [l]. They solved a bibliographic search problem for a set of words. Aho and Corasick gave an O((t + d) loga + tocc) time algorithm (AC for short) for the multiple string matching problem, where the text is of length t, the sum of all pattern lengths is d, the total number of pattern occurrences reported is tom, and u is the number of distinct characters that occur in D. It will always be the case that d 1 u, so terms depending on 0 are sometimes omitted. Recently there has been interest in a stronger paradigm, that of (dynamic) dictionary matching. Like multiple matching, we seek all appearances of any of a set of patterns (the dictionary) in an input text. The difference between dictionary matching and multiple matching is that the dictionary matching paradigm assumes a very …


title: Quantum vacuum pressure on a conducting slab
directory: physics/
created: 2017-09-11T23:07:16.546793945
modified: 2017-09-11T23:07:16.546793945
abstract:
The casimir pressure on a non ideal conducting slab is calculated. Using a simple model for the conductivity according to which the slab is perfectly conducting at frequencies below plasma frequency ω p and perfectly transparent above such frequency, it is found that the vacuum pressure on each surface of the slab is ¯ hω 4 p 24π 2 c 3 which is finite without removal of any divergence.


title: The extensible neuroimaging archive toolkit
venue: Neuroinformatics
directory: pattern_matching/
created: 2017-09-11T23:07:16.570693115
modified: 2017-09-11T23:07:16.570693115
abstract:
The Extensible Neuroimaging Archive Toolkit (XNAT) is a software platform designed to facilitate common management and productivity tasks for neuroimaging and associated data. In particular, XNAT enables qualitycontrol procedures and provides secure access to and storage of data. XNAT follows a threetiered architecture that includes a data archive, user interface, and middleware engine. Data can be entered into the archive as XML or through data entry forms. Newly added data are stored in a virtual quarantine until an authorized user has validated it. XNAT subsequently maintains a history profile to track all changes made to the managed data. User access to the archive is provided by a secure web application. The web application provides a number of quality control and productivity features, including data entry forms, data-type-specific searches, searches that combine across data types, detailed reports, and listings of experimental data, upload/download tools, access to standard laboratory workflows, and administration and security tools. XNAT also includes an online image viewer that supports a number of common neuroimaging formats, including DICOM and Analyze. The viewer can be extended to support additional formats and to generate custom displays. By managing data with XNAT, laboratories are prepared to better maintain the long-term integrity of their data, to explore emergent relations across data types, and to share their data with the broader neuroimaging community.


title: On the Electrodynamics of Moving Bodies
directory: physics/
created: 2017-09-11T23:07:16.613353027
modified: 2017-09-11T23:07:16.613353027
abstract:
It is known that Maxwell's electrodynamics—as usually understood at the present time—when applied to moving bodies, leads to asymmetries which do not appear to be inherent in the phenomena. Take, for example, the reciprocal electrodynamic action of a magnet and a conductor. The observable phenomenon here depends only on the relative motion of the conductor and the magnet, whereas the customary view draws a sharp distinction between the two cases in which either the one or the other of these bodies is in motion. For if the magnet is in motion and the conductor at rest, there arises in the neighbourhood of the magnet an electric field with a certain definite energy, producing a current at the places where parts of the conductor are situated. But if the magnet is stationary and the conductor in motion, no electric field arises in the neighbourhood of the magnet. In the conductor, however, we find an electro-motive force, to which in itself there is no corresponding energy, but which gives rise—assuming equality of relative motion in the two cases discussed—to electric currents of the same path and intensity as those produced by the electric forces in the former case. Examples of this sort, together with the unsuccessful attempts to discover any motion of the earth relatively to the " light medium, " suggest that the phenomena of electrodynamics as well as of mechanics possess no properties corresponding to the idea of absolute rest. They suggest rather that, as has already been shown to the first order of small quantities, the same laws of electrodynamics and optics will be valid for all frames of reference for which the equations of mechanics hold good. 1 We will raise this conjecture (the purport of which will hereafter be called the " Principle of Relativity ") to the status of a postulate, and also introduce another postulate, which is only apparently irreconcilable with the former, namely, that light is always propagated in empty space with a definite velocity c which is independent of the state of motion of the emitting body. These two postulates suffice for the attainment of a simple and consistent theory of the electrodynamics of moving bodies based on Maxwell's theory for stationary bodies. The introduction of a " luminiferous ether " will prove to be superfluous inasmuch as the view here to be developed will not require an " absolutely stationary space " …


title: Warnings for pattern matching
venue: J. Funct. Program.
directory: pattern_matching/
created: 2017-09-11T23:07:16.659339111
modified: 2017-09-11T23:07:16.659339111
abstract:
We examine the ML pattern-matching anomalies of useless clauses and non-exhaustive matches. We state the definition of these anomalies, building upon pattern matching semantics, and propose a simple algorithm to detect them. We have integrated the algorithm in the Objective Caml compiler, but we show that the same algorithm is also usable in a non-strict language such as Haskell. Or-patterns are considered for both strict and nonstrict languages.


title: Programming with algebraic effects and handlers
venue: J. Log. Algebr. Meth. Program.
directory: plt/
created: 2017-09-11T23:07:16.697760986
modified: 2017-09-11T23:07:16.697760986
abstract:
Eff is a programming language based on the algebraic approach to computational effects, in which effects are viewed as algebraic operations and effect handlers as homomorphisms from free algebras. Eff supports first-class effects and handlers through which we may easily define new computational effects, seamlessly combine existing ones, and handle them in novel ways. We give a de-notational semantics of eff and discuss a prototype implementation based on it. Through examples we demonstrate how the standard effects are treated in eff , and how eff supports programming techniques that use various forms of delimited continuations , such as backtracking, breadth-first search, selection functionals, cooperative multi-threading, and others.


title: Propositions as types
venue: Commun. ACM
directory: plt/
created: 2017-09-11T23:07:16.800558105
modified: 2017-09-11T23:07:16.800558105
abstract:
Connecting mathematical logic and computation, it ensures that some aspects of programming are absolute.


title: Inductive Supervised Quantum Learning.
venue: Physical review letters
directory: quantum_computing/
created: 2017-09-11T23:07:16.827540039
modified: 2017-09-11T23:07:16.827540039
abstract:
In supervised learning, an inductive learning algorithm extracts general rules from observed training instances, then the rules are applied to test instances. We show that this splitting of training and application arises naturally, in the classical setting, from a simple independence requirement with a physical interpretation of being nonsignaling. Thus, two seemingly different definitions of inductive learning happen to coincide. This follows from the properties of classical information that break down in the quantum setup. We prove a quantum de Finetti theorem for quantum channels, which shows that in the quantum case, the equivalence holds in the asymptotic setting, that is, for large numbers of test instances. This reveals a natural analogy between classical learning protocols and their quantum counterparts, justifying a similar treatment, and allowing us to inquire about standard elements in computational learning theory, such as structural risk minimization and sample complexity.


title: Distributed Authorization in Vanadium
venue: FOSAD
directory: security/
created: 2017-09-11T23:07:16.913667969
modified: 2017-09-11T23:07:16.913667969
abstract:
In this tutorial, we present an authorization model for distributed systems that operate with limited internet connectivity. Reliable internet access remains a luxury for a majority of the world's population. Even for those who can afford it, a dependence on internet connectivity may lead to sub-optimal user experiences. With a focus on decentralized deployment, we present an authorization model that is suitable for scenarios where devices right next to each other (such as a sensor or a friend's phone) should be able to communicate securely in a peer-to-peer manner. The model has been deployed as part of an open-source distributed application framework called Vanadium. As part of this tuto-rial, we survey some of the key ideas and techniques used in distributed authorization, and explain how they are combined in the design of our model.


title: Defending against network IDS evasion
venue: Recent Advances in Intrusion Detection
directory: security/
created: 2017-09-11T23:07:17.034110107
modified: 2017-09-11T23:07:17.034110107
abstract:
ICSI as a Senior Scientist. Most of his work is in the areas of scalable multimedia conferencing systems, reliable multicast protocols, multicast routing and address allocation, and network simulation and visualisation. He is co-chair of the IETF Multiparty Multimedia Session Control working group and the IRTF Reliable Multicast Research Group. When attempting to build sound network intrusion detection systems, a major problem is hardening the monitor against "evasion": attempts by attackers to mislead the monitor as to the actual state of the end-to-end dialog between the attacker and its victim [Ptacek and Newsham 98, Paxson 98]. Evasion techniques include sending traffic that is ambiguous from the monitor's observational vantage point (such as whether a given packet has sufficient TTL to reach the victim) and attempting to overwhelm the monitor by clogging it with more connection state records than it can sustain ("state holding" attacks). One technique for preventing certain forms of evasion attacks is "bifurcating analysis", in which the monitor deals with ambiguous traffic streams by instantiating separate analysis threads for each possible interpretation of the ambiguous traffic. We discuss the applicability of this approach to different forms of evasion, with the key distinction being tractable analysis for cases where the number of analysis threads can be bounded, versus problematic analysis for cases where the attacker can cause the number of threads to grow arbitrarily large.


title: The Solovay-Kitaev algorithm
venue: Quantum Information & Computation
directory: quantum_computing/
created: 2017-09-11T23:07:17.060738037
modified: 2017-09-11T23:07:17.060738037
abstract:
This pedagogical review presents the proof of the Solovay-Kitaev theorem in the form of an efficient classical algorithm for compiling an arbitrary single-qubit gate into a sequence of gates from a fixed and finite set. The algorithm can be used, for example, to compile Shor's algorithm, which uses rotations of π/2 k , into an efficient fault-tolerant form using only Hadamard, controlled-not, and π/8 gates. The algorithm runs in O(log 2.71 (1/ǫ)) time, and produces as output a sequence of O(log 3.97 (1/ǫ)) quantum gates which is guaranteed to approximate the desired quantum gate to an accuracy within ǫ > 0. We also explain how the algorithm can be generalized to apply to multi-qubit gates and to gates from SU (d).


title: SoK: Eternal War in Memory
venue: 2013 IEEE Symposium on Security and Privacy
directory: security/
created: 2017-09-11T23:07:17.188061035
modified: 2017-09-11T23:07:17.188061035
abstract:
Memory corruption bugs in software written in low-level languages like C or C++ are one of the oldest problems in computer security. The lack of safety in these languages allows attackers to alter the program's behavior or take full control over it by hijacking its control flow. This problem has existed for more than 30 years and a vast number of potential solutions have been proposed, yet memory corruption attacks continue to pose a serious threat. Real world exploits show that all currently deployed protections can be defeated. This paper sheds light on the primary reasons for this by describing attacks that succeed on today's systems. We systematize the current knowledge about various protection techniques by setting up a general model for memory corruption attacks. Using this model we show what policies can stop which attacks. The model identifies weaknesses of currently deployed techniques, as well as other proposed protections enforcing stricter policies. We analyze the reasons why protection mechanisms implementing stricter polices are not deployed. To achieve wide adoption, protection mechanisms must support a multitude of features and must satisfy a host of requirements. Especially important is performance, as experience shows that only solutions whose overhead is in reasonable bounds get deployed. A comparison of different enforceable policies helps designers of new protection mechanisms in finding the balance between effectiveness (security) and efficiency. We identify some open research problems, and provide suggestions on improving the adoption of newer techniques.


directory: sports_analytics/
created: 2017-09-11T23:07:17.247954102
modified: 2017-09-11T23:07:17.247954102
title:
Faculty of Associated Medical Sciences 1. Anterior Translation of Humeral Head in Glenohumeral Joint: Comparison between Limb Dominance and Gender Using Ultrasonography


title: Understanding RFID Counting Protocols
venue: IEEE/ACM Transactions on Networking
directory: sublinear_algorithms/
created: 2017-09-11T23:07:17.310060059
modified: 2017-09-11T23:07:17.310060059
abstract:
Counting the number of radio frequency identification (RFID) tags, namely <i>RFID counting</i>, is needed by a wide array of important wireless applications. Motivated by its paramount practical importance, researchers have developed an impressive arsenal of techniques to improve the performance of RFID counting (i.e., to reduce the time needed to do the counting). This paper aims to gain deeper and fundamental insights in this subject to facilitate future research on this topic. As our central thesis, we find out that the overlooked key design aspect for RFID counting protocols to achieve near-optimal performance is a conceptual separation of a protocol into two phases. The first phase uses small overhead to obtain a rough estimate, and the second phase uses the rough estimate to further achieve an accuracy target. Our thesis also indicates that other performance-enhancing techniques or ideas proposed in the literature are only of secondary importance. Guided by our central thesis, we manage to design near-optimal protocols that are more efficient than existing ones and simultaneously simpler than most of them.


title: ASAP: the Alternative Splicing Annotation Project
venue: Nucleic Acids Research
directory: time_series/
created: 2017-09-11T23:07:17.616083008
modified: 2017-09-11T23:07:17.616083008
abstract:
Recently, genomics analyses have demonstrated that alternative splicing is widespread in mammalian genomes (30-60% of genes reported to have multiple isoforms), and may be one of their most important mechanisms of functional regulation. However, by comparison with other genomics data such as genome annotation, SNPs, or gene expression, there exists relatively little database infrastructure for the study of alternative splicing. We have constructed an online database ASAP (the Alternative Splicing Annotation Project) for biologists to access and mine the enormous wealth of alternative splicing information coming from genomics and proteomics. ASAP is based on genome-wide analyses of alternative splicing in human (30 793 alternative splice relationships found) from detailed alignment of expressed sequences onto the genomic sequence. ASAP provides precise gene exon-intron structure, alternative splicing, tissue specificity of alternative splice forms, and protein isoform sequences resulting from alternative splicing. Moreover, it can help biologists design probe sequences for distinguishing specific mRNA isoforms. ASAP is intended to be a community resource for collaborative annotation of alternative splice forms, their regulation, and biological functions. The URL for ASAP is http://www.bioinformatics.ucla.edu/ASAP.


# files

sha1: bde7543a8b3ce071342dfaea2a14357431d94b82
directory: distributed_systems/
normalized: kelips building an efficient and stable p2p dht through increased memory and background overhead
created: 2017-09-11T23:06:08.511139893
modified: 2017-09-11T23:06:08.511139893
filename:
kelips-building-an-efficient-and-stable-p2p-dht-through-increased-memory-and-background-overhead.pdf


sha1: 9d48eb6b89a9d7aa6feab3f6b2f57c70c1d9d18f
directory: languages/haskell/
created: 2017-09-11T23:06:10.549975098
modified: 2017-09-11T23:06:10.549975098
filename:
tackling-the-awkward-squad-monadic-input-output-concurrency-exceptions-and-foreign-language-calls-in-haskell.pdf

normalized:
tackling the awkward squad monadic input output concurrency exceptions and foreign language calls in haskell


# links

url: http://www.bodden.de/pubs/far+14flowdroid.pdf
directory: android/
created: 2017-09-11T23:06:15.191657959
modified: 2017-09-11T23:06:15.191657959
title:
FlowDroid: Precise Context, Flow, Field, Object-sensitive and Lifecycle-aware Taint Analysis for Android Apps


directory: artificial_intelligence/
created: 2017-09-11T23:06:15.221187012
modified: 2017-09-11T23:06:15.221187012
url:
https://github.com/papers-we-love/papers-we-love/blob/master/artificial_intelligence/3-bayesian-network-inference-algorithm.pdf

title:
Analysis of Three Bayesian Network Inference Algorithms: Variable Elimination, Likelihood Weighting, and Gibbs Sampling


title: An O(1) algorithm for implementing the LFU cache eviction scheme
directory: caching/
created: 2017-09-11T23:06:15.291054932
modified: 2017-09-11T23:06:15.291054932
url:
https://github.com/papers-we-love/papers-we-love/blob/master/caching/a-constant-algorithm-for-implementing-the-lfu-cache-eviction-scheme.pdf


title: On the Computational Complexity of Algorithims
directory: comp_sci_fundamentals_and_history/
created: 2017-09-11T23:06:15.32148999
modified: 2017-09-11T23:06:15.32148999
url:
http://www.ams.org/journals/tran/1965-117-00/S0002-9947-1965-0170805-7/S0002-9947-1965-0170805-7.pdf


title: MEXICA: a computer model of a cognitive account of creative writing.
directory: computational_creativity/
created: 2017-09-11T23:06:15.345144043
modified: 2017-09-11T23:06:15.345144043
url:
https://www.researchgate.net/publication/220080099_MEXICA_A_computer_model_of_a_cognitive_account_of_creative_writing


title: Map-Reduce-Merge: Simplified Relational Data Processing on Large Clusters
directory: datastores/
created: 2017-09-11T23:06:15.508783936
modified: 2017-09-11T23:06:15.508783936
url:
http://www.cs.duke.edu/courses/cps399.28/current/papers/sigmod07-YangDasdanEtAl-map_reduce_merge.pdf


title: A simple totally ordered broadcast protocol
directory: distributed_systems/
created: 2017-09-11T23:06:15.583287109
modified: 2017-09-11T23:06:15.583287109
url:
http://diyhpl.us/~bryan/papers2/distributed/distributed-systems/zab.totally-ordered-broadcast-protocol.2008.pdf


title: Practical Byzantine Fault Tolerance and Proactive Recovery
directory: distributed_systems/
created: 2017-09-11T23:06:15.583287109
modified: 2017-09-11T23:06:15.583287109
url:
http://www.itu.dk/stud/speciale/bepjea/xwebtex/litt/practical-byzantine-fault-tolerance-and-proactive-recovery.pdf


url: https://www.usenix.org/system/files/conference/osdi14/osdi14-paper-yuan.pdf
directory: distributed_systems/
created: 2017-09-11T23:06:15.583287109
modified: 2017-09-11T23:06:15.583287109
title:
Simple Testing Can Prevent Most Critical Failures:
An Analysis of Production Failures in Distributed
Data-Intensive Systems


title: From Game Design Elements to Gamefulness: Defining “Gamification”
directory: gamification/
created: 2017-09-11T23:06:15.648018066
modified: 2017-09-11T23:06:15.648018066
url:
http://dl.dropboxusercontent.com/u/220532/MindTrek_Gamification_PrinterReady_110806_SDE_accepted_LEN_changes_1.pdf


title: Epidemic Algorithms for Replicated Database Maintenance
directory: gossip/
created: 2017-09-11T23:06:15.671643066
modified: 2017-09-11T23:06:15.671643066
url:
http://bitsavers.informatik.uni-stuttgart.de/pdf/xerox/parc/techReports/CSL-89-1_Epidemic_Algorithms_for_Replicated_Database_Maintenance.pdf


url: http://www.thocp.net/biographies/papers/backus_turingaward_lecture.pdf
directory: plt/
created: 2017-09-11T23:06:15.970409912
modified: 2017-09-11T23:06:15.970409912
title:
Can Programming Be Liberated from the von Neumann Style? A Functional Style and Its Algebra of Programs


title: Fundamental Concepts in Programming Languages
directory: plt/
created: 2017-09-11T23:06:15.970409912
modified: 2017-09-11T23:06:15.970409912
url:
https://github.com/papers-we-love/papers-we-love/blob/master/plt/fundamental-concepts-in-programming-languages.pdf


title: On Understanding Types, Data Abstraction, and Polymorphism
directory: plt/
created: 2017-09-11T23:06:15.970409912
modified: 2017-09-11T23:06:15.970409912
url:
https://github.com/papers-we-love/papers-we-love/blob/master/plt/on-understanding-types-data-abstraction-polymorphism.pdf


title: Principal type-schemes for functional programs
directory: plt/
created: 2017-09-11T23:06:15.970409912
modified: 2017-09-11T23:06:15.970409912
url:
https://github.com/papers-we-love/papers-we-love/blob/master/plt/principal-type-schemes-for-functional-programs.pdf


title: Programming Languages: Application and Interpretation
directory: plt/
created: 2017-09-11T23:06:15.970409912
modified: 2017-09-11T23:06:15.970409912
url:
https://github.com/papers-we-love/papers-we-love/blob/master/plt/programming-languages-application-and-interpretation.pdf


title: The Derivative of a Regular Type is its Type of One-Hole Contexts
directory: plt/
created: 2017-09-11T23:06:15.970409912
modified: 2017-09-11T23:06:15.970409912
url:
https://github.com/papers-we-love/papers-we-love/blob/master/plt/the-derivative-of-a-regular-type-one-hole-contexts.pdf


title: Calculus of Communicating Systems
directory: processes/
created: 2017-09-11T23:06:15.990677979
modified: 2017-09-11T23:06:15.990677979
url:
https://moodle.risc.jku.at/pluginfile.php/3407/mod_resource/content/1/A%20Calculus%20of%20Communicating%20Systems%5B1980%5D.pdf


title: Probablistic Counting Algorithms for Database Applications
directory: sublinear_algorithms/
created: 2017-09-11T23:06:16.093955078
modified: 2017-09-11T23:06:16.093955078
url:
https://github.com/papers-we-love/papers-we-love/blob/master/sublinear_algorithms/1985-Flajolet-Probabilistic-counting.pdf


title: An Elementary Proof of a Theorem of Johnson and Lindenstrauss
directory: sublinear_algorithms/
created: 2017-09-11T23:06:16.093955078
modified: 2017-09-11T23:06:16.093955078
url:
https://github.com/papers-we-love/papers-we-love/blob/master/sublinear_algorithms/An-Elementary-Proof-of-a-Theorem-of-Johnson-and-Lindenstrauss.pdf


title: Systematic Review in Software Engineering
directory: systematic_review/
created: 2017-09-11T23:06:16.094850098
modified: 2017-09-11T23:06:16.094850098
url:
http://www.elizabete.com.br/site/Outros/Entradas/2012/11/19_Revisao_Sistematica_files/ConceitosRevisaoSistematica_Biolchini.pdf


title: Notions of Computation and Monads
directory: languages/haskell/
created: 2017-10-21T05:25:06.034217041
modified: 2017-10-21T05:25:06.034217041
url:
https://ac.els-cdn.com/0890540191900524/1-s2.0-0890540191900524-main.pdf?_tid=45497e1c-b5c9-11e7-963f-00000aacb361&acdnat=1508526351_2f3bf288ce0f81ff89fb10ece92eeb9e


title: The Essence of Functional Programming
directory: languages/haskell/
created: 2017-10-21T05:25:06.034217041
modified: 2017-10-21T05:25:06.034217041
url:
https://page.mi.fu-berlin.de/scravy/realworldhaskell/materialien/the-essence-of-functional-programming.pdf


