# papers

title: The Byzantine Generals Problem
venue: ACM Trans. Program. Lang. Syst.
directory: 0
created: 2017-09-06T19:00:47.937073975
modified: 2017-09-06T19:00:47.937073975
abstract:
A definition • Byzantine (www.m-w.com): 1: of, relating to, or characteristic of the ancient city of Byzantium … 4b: intricately involved : labyrinthine <rules of Byzantine complexity> • Lamport's reason: " I have long felt that, because it was posed as a cute problem about philosophers seated around a table, Dijkstra's dining philosopher's problem received much more attention than it deserves. "


title: Omega: flexible, scalable schedulers for large compute clusters
venue: EuroSys
directory: 0
created: 2017-09-06T19:00:48.665274902
modified: 2017-09-06T19:00:48.665274902
abstract:
Increasing scale and the need for rapid response to changing requirements are hard to meet with current monolithic cluster scheduler architectures. This restricts the rate at which new features can be deployed, decreases efficiency and utilization, and will eventually limit cluster growth. We present a novel approach to address these needs using parallelism, shared state, and lock-free optimistic concurrency control.
 We compare this approach to existing cluster scheduler designs, evaluate how much interference between schedulers occurs and how much it matters in practice, present some techniques to alleviate it, and finally discuss a use case highlighting the advantages of our approach -- all driven by real-life Google production workloads.


title: The PageRank Citation Ranking: Bringing Order to the Web
directory: 0
created: 2017-09-06T19:00:49.376569092
modified: 2017-09-06T19:00:49.376569092
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 showhow to apply PageRank to search and to user navigation.


title: Security Concerns in Android mHealth Apps
venue: AMIA
directory: 0
created: 2017-09-06T19:00:50.506239014
modified: 2017-09-06T19:00:50.506239014
abstract:
Mobile Health (mHealth) applications lie outside of regulatory protection such as HIPAA, which requires a baseline of privacy and security protections appropriate to sensitive medical data. However, mHealth apps, particularly those in the app stores for iOS and Android, are increasingly handling sensitive data for both professionals and patients. This paper presents a series of three studies of the mHealth apps in Google Play that show that mHealth apps make widespread use of unsecured Internet communications and third party servers. Both of these practices would be considered problematic under HIPAA, suggesting that increased use of mHealth apps could lead to less secure treatment of health data unless mHealth vendors make improvements in the way they communicate and store data.


title: Squeak: a language for communicating with mice
venue: SIGGRAPH
directory: 0
created: 2017-09-06T19:00:51.155383057
modified: 2017-09-06T19:00:51.155383057
abstract:
Graphical user interfaces are difficult to implement because of the essential concurrency among multiple interaction devices, such as mice, buttons, and keyboards. <i>Squeak</i> is a user interface implementation language that exploits this concurrency rather than hiding it, helping the programmer to express interactions using multiple devices. We present the motivation, design and semantics of <i>squeak</i>. The language is based on concurrent programming constructs but can be compiled into a conventional sequential language; our implementation generates C code. We discuss how <i>squeak</i> programs can be integrated into a graphics system written in a conventional language to implement large but regular user interfaces, and close with a description of the formal semantics.


title: Kafka: a Distributed Messaging System for Log Processing
directory: 0
created: 2017-09-06T19:00:51.961165039
modified: 2017-09-06T19:00:51.961165039
abstract:
Log processing has become a critical component of the data pipeline for consumer internet companies. We introduce Kafka, a distributed messaging system that we developed for collecting and delivering high volumes of log data with low latency. Our system incorporates ideas from existing log aggregators and messaging systems, and is suitable for both offline and online message consumption. We made quite a few unconventional yet practical design choices in Kafka to make our system efficient and scalable. Our experimental results show that Kafka has superior performance when compared to two popular messaging systems. We have been using Kafka in production for some time and it is processing hundreds of gigabytes of new data each day.


title: The effects of video games on laparoscopic simulator skills.
venue: American journal of surgery
directory: 0
created: 2017-09-06T19:00:53.736280029
modified: 2017-09-06T19:00:53.736280029
abstract:
BACKGROUND
Recently, there has been a growth in studies supporting the hypothesis that video games have positive effects on basic laparoscopic skills. This review discusses all studies directly related to these effects.


DATA SOURCES
A search in the PubMed and EMBASE databases was performed using synonymous terms for video games and laparoscopy. All available articles concerning video games and their effects on skills on any laparoscopic simulator (box trainer, virtual reality, and animal models) were selected.


CONCLUSIONS
Video game experience has been related to higher baseline laparoscopic skills in different studies. There is currently, however, no standardized method to assess video game experience, making it difficult to compare these studies. Several controlled experiments have, nevertheless, shown that video games cannot only be used to improve laparoscopic basic skills in surgical novices, but are also used as a temporary warming-up before laparoscopic surgery.


title: Conditional Random Fields: Probabilistic Models for Segmenting and Labeling Sequence Data
venue: ICML
directory: 0
created: 2017-09-06T19:00:54.709387939
modified: 2017-09-06T19:00:54.709387939
abstract:
We present conditional random fields, a framework for building probabilistic models to segment and label sequence data. Conditional random fields offer several advantages over hidden Markov models and stochastic grammars for such tasks, including the ability to relax strong independence assumptions made in those models. Conditional random fields also avoid a fundamental limitation of maximum entropy Markov models (MEMMs) and other discrimi-native Markov models based on directed graph-ical models, which can be biased towards states with few successor states. We present iterative parameter estimation algorithms for conditional random fields and compare the performance of the resulting models to HMMs and MEMMs on synthetic and natural-language data.


title: Everything you always wanted to know about synchronization but were afraid to ask
venue: SOSP
directory: 0
created: 2017-09-06T19:00:55.521930908
modified: 2017-09-06T19:00:55.521930908
abstract:
This paper presents the most exhaustive study of synchronization to date. We span multiple layers, from hardware cache-coherence protocols up to high-level concurrent software. We do so on different types of architectures, from single-socket -- uniform and non-uniform -- to multi-socket -- directory and broadcast-based -- many-cores. We draw a set of observations that, roughly speaking, imply that scalability of synchronization is mainly a property of the hardware.


title: Instant architecture
venue: ACM Trans. Graph.
directory: 0
created: 2017-09-06T19:00:57.08977002
modified: 2017-09-06T19:00:57.08977002
abstract:
This paper presents a new method for the automatic modeling of architecture. Building designs are derived using split grammars, a new type of parametric set grammar based on the concept of shape. The paper also introduces an attribute matching system and a separate control grammar, which offer the flexibility required to model buildings using a large variety of different styles and design ideas. Through the adaptive nature of the design grammar used, the created building designs can either be generic or adhere closely to a specified goal, depending on the amount of data available.


title: Evaluating Generative Models for Text Generation
directory: 0
created: 2017-09-06T19:00:58.090095947
modified: 2017-09-06T19:00:58.090095947
abstract:
Generating human quality text is a challenging problem because of ambiguity of meaning and difficulty in modeling long term semantic connections. Recurrent Neural Networks (RNNs) have shown promising results in this problem domain, with the most common approach to its training being to maximize the log predictive likelihood of each true token in the training sequence given the previously observed tokens. Scheduled Sampling, proposed by Bengio et al. (2015), was proposed as an improvement to the maximum likelihood approach by stochastically introducing inference steps during training steps. More recently, Generative Adversarial Nets (GAN) that use a discriminative model to guide the training of the generative model have become popular in vision domain, and also reinterpreted as a reinforcement learning problem to adapt it to text generation by Yu et al. (2016). Here we test and compare these three approaches and thus hope to extend the evaluation presented for the SeqGAN model in Yu et al. (2016) using two additional datasets and an additional perplexity evaluation metric.


title: Viewstamped Replication: A General Primary Copy
venue: PODC
directory: 0
created: 2017-09-06T19:00:58.687498047
modified: 2017-09-06T19:00:58.687498047
abstract:
One of the potential benefits of distributed systems is their use in providing highly-available services that are likely to be usable when needed. Availabilay is achieved through replication. By having inore than one copy of information, a service continues to be usable even when some copies are inaccessible, for example, because of a crash of the computer where a copy was stored. This paper presents a new replication algorithm that has desirable performance properties. Our approach is based on the primary copy technique. Computations run at a primary. which notifies its backups of what it has done. If the primary crashes, the backups are reorganized, and one of the backups becomes the new primary. Our method works in a general network with both node crashes and partitions. Replication causes little delay in user computations and little information is lost in a reorganization; we use a special kind of timestamp called a viewstamp to detect lost information. 1 Introduction One of the potential benefits of distributed systems is their use in providing highly-available services, that is, services that are likely to be up and accessible when needed. Availability is essential to many computer-based services; for example, in airline reservation systems the failure of a single computer can prevent ticket sales for a considerable time, causing a loss of revenue and passenger goodwill.


title: Metaobject protocols: Why we want them and what else they can do
directory: 0
created: 2017-09-06T19:00:59.413693115
modified: 2017-09-06T19:00:59.413693115
abstract:
All rights reserved. No part of this book may be reproduced in any form by any electronic or mechanical means (including photocopying, recording, or information storage and retrieval) without permission in writing from the publisher. Originally conceived a s a n e at idea that could help solve problems in the design and implementation of CLOS, the metaobject protocol framework now appears to have applicability to a wide range of problems that come up in high-level languages. This chapter sketches this wider potential, by drawing an analogy to ordinary language design, by presenting some early design principles, and by presenting an overview of three new metaobject protcols we have designed that, respectively, control the semantics of Scheme, the compilation of Scheme, and the static parallelization of Scheme programs.


title: Interactive Horizon Mapping
directory: 0
created: 2017-09-06T19:01:00.003795898
modified: 2017-09-06T19:01:00.003795898
abstract:
Shadows play an important role in perceiving the shape and texture of an object. While some previous interactive shadowing methods are appropriate for casting shadows on other geometry they can not be applied to bump maps (which contain no explicit geometry.) Horizon Mapping is a technique used to compute shadows for bump-mapped surfaces. We map the technique into modern graphics API's and extend it to account more accurately for the geometry of the underlying surface. We also use it to represent limited self-shadowing for pure geometry. In mapping the algorithm to hardware, we use a novel method to interpolate orientation in tangent space over the surface. We show results of self-shadowing at frame rates.


title: Message Analysis for Concurrent Languages
venue: SAS
directory: 0
created: 2017-09-06T19:01:01.109062012
modified: 2017-09-06T19:01:01.109062012
abstract:
We describe an analysis-driven storage allocation scheme for concurrent languages that use message passing with copying semantics. The basic principle is that in such a language, data which is not part of any message does not need to be allocated in a shared data area. This allows for deallocation of thread-specific data without requiring global synchronization and often without even triggering garbage collection. On the other hand, data that is part of a message should preferably be allocated on a shared area, which allows for fast (O(1)) interprocess communication that does not require actual copying. In the context of a dynamically typed, higher-order, concurrent functional language, we present a static message analysis which guides the allocation. As shown by our performance evaluation, conducted using an industrial-strength language implementation , the analysis is effective enough to discover most data which is to be used as a message, and to allow the allocation scheme to combine the best performance characteristics of both a process-centric and a shared-heap memory architecture.


title: And then there were none: a stall-free real-time garbage collector for reconfigurable hardware
venue: PLDI
directory: 0
created: 2017-09-06T19:01:01.970197998
modified: 2017-09-06T19:01:01.970197998
abstract:
Programmers are turning to radical architectures such as reconfigurable hardware (FPGAs) to achieve performance. But such systems, programmed at a very low level in languages with impoverished abstractions, are orders of magnitude more complex to use than conventional CPUs. The continued exponential increase in transistors, combined with the desire to implement ever more sophisticated algorithms, makes it imperative that such systems be programmed at much higher levels of abstraction. One of the fundamental high-level language features is automatic memory management in the form of garbage collection.
 We present the first implementation of a complete garbage collector in hardware (as opposed to previous "hardware-assist" techniques), using an FPGA and its on-chip memory. Using a completely concurrent snapshot algorithm, it provides single-cycle access to the heap, and never stalls the mutator for even a single cycle, achieving a deterministic mutator utilization (MMU) of 100%.
 We have synthesized the collector to hardware and show that it never consumes more than 1% of the logic resources of a high-end FPGA. For comparison we also implemented explicit (malloc/free) memory management, and show that real-time collection is about 4% to 17% slower than malloc, with comparable energy consumption. Surprisingly, in hardware real-time collection is superior to stop-the-world collection on every performance axis, and even for stressful micro-benchmarks can achieve 100% MMU with heaps as small as 1.01 to 1.4 times the absolute minimum.


title: Soft Typing
venue: PLDI
directory: 0
created: 2017-09-06T19:01:03.34302002
modified: 2017-09-06T19:01:03.34302002
abstract:
Type systems are designed to prevent the improper use of program operations. They can be classified as either static or dynamic depending on when they detect type errors. Static type systems detect potential type errors at compile-time and prevent program execution. Dynamic type systems detect type errors at run-time and abort program execution. Static type systems have two important advantages over dynamic type systems. First, they help programmers detect a large class of program errors before exe-cut ion. Second, the y extract information that a compiler can exploit to produce more efficient code. The price paid for these advantages, however, is a loss of expressiveness, generality, and semantic simplicity. This paper presents a generalization of static and dynamic typing—called soft typing-that combines the best features of both approaches, The key idea underlying soft typing is that a static type checker need not reject programs that contain potential type errors. Instead, the type checker can insert explicit run-time checks around " suspect " arguments of p~imitive operations , converting dynamically typed programs into statically type-correct form. The inserted run-time checks identify program phrases that may be erroneous. For soft typing to be effective, the type system must avoid inserting unnecessary run-time checks. To accomplish this objective, we have developed an extension of the ML type system supporting union types and recursive types that assigns types to a wider class *The work of both authors was partially supported by NSF and DARPA. Permission to copy without fee ell or part of this material is granted provided that the copies are not made or distributed for direct commercial advantege, the ACM copyright notice and the title of the publication and its date appear, and notice is given that copying is by permission of the Association for Computing Machinery. To copy otherwise, or to republish, requires a fee and/or specific permission.


title: VEWS: A Wikipedia Vandal Early Warning System
venue: KDD
directory: 0
created: 2017-09-06T19:01:04.252110107
modified: 2017-09-06T19:01:04.252110107
abstract:
We study the problem of detecting vandals on Wikipedia <i>before</i> any human or known vandalism detection system reports flagging potential vandals so that such users can be presented early to Wikipedia administrators. We leverage multiple classical ML approaches, but develop 3 novel sets of features. Our Wikipedia Vandal Behavior (WVB) approach uses a novel set of user editing patterns as features to classify some users as vandals. Our Wikipedia Transition Probability Matrix (WTPM) approach uses a set of features derived from a transition probability matrix and then reduces it via a neural net auto-encoder to classify some users as vandals. The VEWS approach merges the previous two approaches. Without using any information (e.g. reverts) provided by other users, these algorithms each have over 85% classification accuracy. Moreover, when temporal recency is considered, accuracy goes to almost 90%. We carry out detailed experiments on a new data set we have created consisting of about 33K Wikipedia users (including both a black list and a white list of editors) and containing 770K edits. We describe specific behaviors that distinguish between vandals and non-vandals. We show that VEWS beats ClueBot NG and STiki, the best known algorithms today for vandalism detection. Moreover, VEWS detects far more vandals than ClueBot NG and on average, detects them 2.39 edits before ClueBot NG when both detect the vandal. However, we show that the combination of VEWS and ClueBot NG can give a fully automated vandal early warning system with even higher accuracy.


title: Organizing Programs Without Classes
venue: Lisp and Symbolic Computation
directory: 0
created: 2017-09-06T19:01:05.454429932
modified: 2017-09-06T19:01:05.454429932
abstract:
All organizational functions carried out by classes can be accomplished in a simple and natural way by object inheritance in classless languages, with no need for special mechanisms. A single model—dividing types into prototypes and traits—supports sharing of behavior and extending or replacing representations. A natural extension, dynamic object inheritance, can model behavioral modes. Object inheritance can also be used to provide structured name spaces for well-known objects. Classless languages can even express " class-based " encapsulation. These stylized uses of object inheritance become instantly recognizable idioms, and extend the repertory of organizing principles to cover a wider range of programs.


title: A LISP garbage-collector for virtual-memory computer systems
venue: Commun. ACM
directory: 0
created: 2017-09-06T19:01:06.129583984
modified: 2017-09-06T19:01:06.129583984
abstract:
In this paper a garbage-collection algorithm for list-processing systems which operate within very large virtual memo, ies is described. The object of the algorithm is more the compaction of active storage than the discovery of free storage. Because free storage is never really exhausted, the decision to garbage collect is not easily made; therefore, various criteria of this decision are discussed. Users of list processing are familiar with garbage-collectors of the sort first described by McCarthy [1]. Systems using collectors of this sort run freely until space is nearly exhausted. Then, all execution stops while a marking routine marks every free-storage cell which is reachable by program. Finally, a gathering routine scans the free-storage area, collecting the unmarked cells onto a free-storage list, and unmarking the marked cells. Garbage-collection has always been necessary because the computer's supply of addressable space has always been much less than the total space used during execution of a list-processing program. Garbage-collection makes it possible to reuse the system's limited supply of addressable space. (01). Reproduction in whole or in part is permitted for any purpose of the United States Government. With the coming of virtual-memory systems [2, 3], the problem of limited addressable space is hardly present. In MULTICS, for example, a LISP system might be made to operate with a potential free-storage list of billions of LISP cells. Such a system may run almost endlessly with no need for garbage-collection. As operation proceeds, however, performance degrades. This is because the active-list-storage becomes spread over a larger and larger region of virtual storage, and it becomes increasingly likely that a given reference to this virtual memory will require a reference to secondary storage. Bobrow and Murphy [4] faced a substantially similar problem, but the virtual memory of their system was not yet so large as to be effectively infinite. Many of their strategies for pointer enrichment and for data segmenta-tion are appropriate to an infinite memory system, but their garbage-collector is not. What is needed is a collector whose task is not so much the discovery of free storage as the compaction of active storage. It is especially clear that a routine will not do if its gathering phase must scan all potential storage. The procedure is shown in detail below. Briefly, it operates by dividing the potential storage space into two semispaces. Only one semispace is used for free storage (only one semispaee …


title: Composable and compilable macros: : you want it when?
venue: ICFP
directory: 0
created: 2017-09-06T19:01:06.855849121
modified: 2017-09-06T19:01:06.855849121
abstract:
Many macro systems, especially for Lisp and Scheme, allow macro transformers to perform general computation. Moreover, the language for implementing compile-time macro transformers is usually the same as the language for implementing run-time functions. As a side effect of this sharing, implementations tend to allow the mingling of compile-time values and run-time values, as well as values from separate compilations. Such mingling breaks programming tools that must parse code without executing it. Macro implementors avoid harmful mingling by obeying certain macro-definition protocols and by inserting phase-distinguishing annotations into the code. However, the annotations are fragile, the protocols are not enforced, and programmers can only reason about the result in terms of the compiler's implementation. MzScheme---the language of the PLT Scheme tool suite---addresses the problem through a macro system that separates compilation without sacrificing the expressiveness of macros.


title: Map-reduce-merge: simplified relational data processing on large clusters
venue: SIGMOD Conference
directory: 0
created: 2017-09-06T19:01:07.55939209
modified: 2017-09-06T19:01:07.55939209
abstract:
Map-Reduce is a programming model that enables easy development of scalable parallel applications to process a vast amount of data on large clusters of commodity machines. Through a simple interface with two functions, map and reduce, this model facilitates parallel implementation of many real-world tasks such as data processing jobs for search engines and machine learning.
 However,this model does not directly support processing multiple related heterogeneous datasets. While processing relational data is a common need, this limitation causes difficulties and/or inefficiency when Map-Reduce is applied on relational operations like joins.
 We improve Map-Reduce into a new model called Map-Reduce-Merge. It adds to Map-Reduce a Merge phase that can efficiently merge data already partitioned and sorted (or hashed) by map and reduce modules. We also demonstrate that this new model can express relational algebra operators as well as implement several join algorithms.


title: Towards a next generation data center architecture: scalability and commoditization
venue: PRESTO
directory: 0
created: 2017-09-06T19:01:08.346731934
modified: 2017-09-06T19:01:08.346731934
abstract:
Applications hosted in today's data centers suffer from internal fragmentation of resources, rigidity, and bandwidth constraints imposed by the architecture of the network connecting the data center's servers. Conventional architectures statically map web services to Ethernet VLANs, each constrained in size to a few hundred servers owing to control plane overheads. The IP routers used to span traffic across VLANs and the load balancers used to spray requests within a VLAN across servers are realized via expensive customized hardware and proprietary software. Bisection bandwidth is low, severly constraining distributed computation Further, the conventional architecture concentrates traffic in a few pieces of hardware that must be frequently upgraded and replaced to keep pace with demand - an approach that directly contradicts the prevailing philosophy in the rest of the data center, which is to scale out (adding more cheap components) rather than scale up (adding more power and complexity to a small number of expensive components).
 Commodity switching hardware is now becoming available with programmable control interfaces and with very high port speeds at very low port cost, making this the right time to redesign the data center networking infrastructure. In this paper, we describe monsoon, a new network architecture, which scales and commoditizes data center networking monsoon realizes a simple mesh-like architecture using programmable commodity layer-2 switches and servers. In order to scale to 100,000 servers or more,monsoon makes modifications to the control plane (e.g., source routing) and to the data plane (e.g., hot-spot free multipath routing via Valiant Load Balancing). It disaggregates the function of load balancing into a group of regular servers, with the result that load balancing server hardware can be distributed amongst racks in the data center leading to greater agility and less fragmentation. The architecture creates a huge, flexible switching domain, supporting any server/any service and unfragmented server capacity at low cost.


title: The treadmill: real-time garbage collection without motion sickness
venue: SIGPLAN Notices
directory: 0
created: 2017-09-06T19:01:09.00136792
modified: 2017-09-06T19:01:09.00136792
abstract:
A simple real-time garbage collection algorithm is presented which does not copy, thereby avoiding some of the problems caused by the asynchronous motion of objects. This in-place "treadmill" garbage collection scheme has approximately the same complexity as other non-moving garbage collectors, thus making it usable in a high-level language implementation where some pointers cannot be traced. The treadmill is currently being used in a Lisp system built in Ada.


title: Decoding speech in the presence of other sources
venue: Speech Communication
directory: 0
created: 2017-09-06T19:01:10.677626953
modified: 2017-09-06T19:01:10.677626953
abstract:
The statistical theory of speech recognition introduced several decades ago has brought about low word error rates for clean speech. However, it has been less successful in noisy conditions. Since extraneous acoustic sources are present in virtually all everyday speech communication conditions, the failure of the speech recognition model to take noise into account is perhaps the most serious obstacle to the application of ASR technology. Approaches to noise-robust speech recognition have traditionally taken one of two forms. One set of techniques attempts to estimate the noise and remove its effects from the target speech. While noise estimation can work in low-to-moderate levels of slowly-varying noise, it fails completely in louder or more variable conditions. A second approach utilises noise models and attempts to decode speech taking into account thei presence. Again, model-based techniques can work for simple noises, but they are computationally complex under realistic conditions and require models for all sources present in the signal. In this paper, we propose a statistical theory of speech recognition in the presence of other acoustic sources. Unlike earlier model-based approaches, our framework makes no assumptions about the noise background, although it can exploit such information if it is available. It does not require models for background sources, nor an estimate of their number. The new approach extends statistical ASR by introducing a segregation model in addition to the conventional acoustic and language models. While the conventional statistical ASR problem is to find the most likely sequence of speech models which generated a given observation sequence, the new approach additionally determines the most likely set of signal fragments which make up the speech signal. Although the framework is completely general, we provide one interpretation of the segregation model based on missing-data theory. We derive an efficient HMM decoder which searches both across subword state and across alternative segregations of the signal between target and interference. We call this modified system the speech fragment decoder. The value of the speech fragment decoder approach has been verified through experiments on small-vocabulary tasks in high-noise conditions. For instance, in a noise-corrupted connected digit task, the new approach decreases the word error rate in the condition of factory noise at 5 dB SNR from over 59% for a standard ASR system to less than 22%.


title: Asynchronous functional reactive programming for GUIs
venue: PLDI
directory: 0
created: 2017-09-06T19:01:11.364379883
modified: 2017-09-06T19:01:11.364379883
abstract:
Graphical user interfaces (GUIs) mediate many of our interactions with computers. Functional Reactive Programming (FRP) is a promising approach to GUI design, providing high-level, declarative, compositional abstractions to describe user interactions and time-dependent computations. We present Elm, a practical FRP language focused on easy creation of responsive GUIs. Elm has two major features: simple declarative support for <i>Asynchronous FRP</i>; and purely functional graphical layout.
 Asynchronous FRP allows the programmer to specify when the global ordering of event processing can be violated, and thus enables efficient concurrent execution of FRP programs; long-running computation can be executed asynchronously and not adversely affect the responsiveness of the user interface.
 Layout in Elm is achieved using a purely functional declarative framework that makes it simple to create and combine text, images, and video into rich multimedia displays.
 Together, Elm's two major features simplify the complicated task of creating responsive and usable GUIs.


title: Parallel generational-copying garbage collection with a block-structured heap
venue: ISMM
directory: 0
created: 2017-09-06T19:01:12.094086914
modified: 2017-09-06T19:01:12.094086914
abstract:
We present a parallel generational-copying garbage collector implemented for the Glasgow Haskell Compiler. We use a block-structured memory allocator, which provides a natural granularity for dividing the work of GC between many threads, leading to a simple yet effective method for parallelising copying GC. The results are encouraging: we demonstrate wall-clock speedups of on average a factor of 2 in GC time on a commodity 4-core machine with no programmer intervention, compared to our best sequential GC.


title: Piranha: A scalable architecture based on single-chip multiprocessing
directory: 0
created: 2017-09-06T19:01:12.839988037
modified: 2017-09-06T19:01:12.839988037
abstract:
The microprocessor industry is currently struggling with higher development costs and longer design times that arise from exceedingly complex processors that are pushing the limits of instruction-level parallelism. Meanwhile, such designs are especially ill suited for important commercial applications, such as on-line transaction processing (OLTP), which suffer from large memory stall times and exhibit little instruction-level parallelism. Given that commercial applications constitute by far the most important market for high-performance servers, the above trends emphasize the need to consider alternative processor designs that specifically target such workloads. The abundance of explicit thread-level parallelism in commercial workloads, along with advances in semiconductor integration density, identify chip multiprocessing (CMP) as potentially the most promising approach for designing processors targeted at commercial servers. This paper describes the Piranha system, a research prototype being developed at Compaq that aggressively exploits chip multi-processing by integrating eight simple Alpha processor cores along with a two-level cache hierarchy onto a single chip. Piranha also integrates further on-chip functionality to allow for scalable multiprocessor configurations to be built in a glueless and modular fashion. The use of simple processor cores combined with an industry-standard ASIC design methodology allow us to complete our prototype within a short time-frame, with a team size and investment that are an order of magnitude smaller than that of a commercial microprocessor. Our detailed simulation results show that while each Piranha processor core is substantially slower than an aggressive next-generation processor, the integration of eight cores onto a single chip allows Piranha to outperform next-generation processors by up to 2.9 times (on a per chip basis) on important workloads such as OLTP. This performance advantage can approach a factor of five by using full-custom instead of ASIC logic. In addition to exploiting chip multiprocessing, the Piranha prototype incorporates several other unique design choices including a shared second-level cache with no inclusion, a highly optimized cache coherence protocol, and a novel I/O architecture.


title: FlashNet: flash/network stack co-design
venue: SYSTOR
directory: 0
created: 2017-09-06T19:01:13.424304932
modified: 2017-09-06T19:01:13.424304932
abstract:
During the past decade, network and storage devices have undergone rapid performance improvements, delivering ultra-low latency and several Gbps of bandwidth. Nevertheless, current network and storage stacks fail to deliver this hardware performance to the applications, often due to the loss of IO efficiency from stalled CPU performance. While many efforts attempt to address this issue solely on either the network or the storage stack, achieving high-performance for networked-storage applications requires a holistic approach that considers both.
 In this paper, we present FlashNet, a software IO stack that unifies high-performance network properties with flash storage access and management. FlashNet builds on RDMA principles and abstractions to provide a direct, asynchronous, end-to-end data path between a client and remote flash storage. The key insight behind FlashNet is to co-design the stack's components (an RDMA controller, a flash controller, and a file system) to enable cross-stack optimizations and maximize IO efficiency. In micro-benchmarks, FlashNet improves 4kB network IOPS by 38.6% to 1.22M, decreases access latency by 43.5% to 50.4 <i>&#181;</i>secs, and prolongs the flash lifetime by 1.6--5.9&#215; for writes. We illustrate the capabilities of FlashNet by building a Key-Value store, and porting a distributed data store that uses RDMA on it. The use of FlashNet's RDMA API improves the performance of KV store by 2&#215;, and requires minimum changes for the ported data store to access remote flash devices.


title: Looking Inside the (Drop) Box
venue: WOOT
directory: 0
created: 2017-09-06T19:01:14.503706055
modified: 2017-09-06T19:01:14.503706055
abstract:
Dropbox is a cloud based file storage service used by more than 100 million users. In spite of its widespread popularity, we believe that Dropbox as a platform hasn't been analyzed extensively enough from a security standpoint. Also, the previous work on the security analysis of Dropbox has been heavily censored. Moreover, the existing Python bytecode reversing techniques are not enough for reversing hardened applications like Dropbox. This paper presents new and generic techniques, to reverse engineer frozen Python applications, which are not limited to just the Dropbox world. We describe a method to bypass Dropbox's two factor authentication and hijack Dropbox accounts. Additionally, generic techniques to intercept SSL data using code injection techniques and monkey patching are presented. We believe that our biggest contribution is to open up the Dropbox platform to further security analysis and research. Dropbox will / should no longer be a black box. Finally, we describe the design and implementation of an open-source version of Dropbox client (and yes, it runs on ARM too).


title: Efficient Predicate Dispatching
directory: 0
created: 2017-09-06T19:01:15.212341064
modified: 2017-09-06T19:01:15.212341064
abstract:
The speed of method dispatching is an important issue in the overall performance of object-oriented programs. We have developed an algorithm for constructing efficient dispatch functions for the general predicate dispatching model, which generalizes single dispatching, multiple dispatching, predicate classes and classifiers, and pattern-matching. Our algorithm generates a lookup DAG each of whose nodes represents an N-way test of the class or value of a formal or other expression. Our algorithm implements each of these N-way tests with a binary decision tree blending class identity tests, class range tests, and table lookups. Our algorithm exploits any available static information (from type declarations or class analysis) to prune unreachable paths from the lookup DAG, and uses any available dynamic profile information to minimize the expected time to traverse the binary decision trees. We measure the effectiveness of our dispatching algorithms on a collection of large Cecil and Java programs, compiled by the Vortex optimizing compiler, showing improvements of up to 40% over already heavily optimized baseline versions.


directory: 0
created: 2017-09-06T19:01:15.900865967
modified: 2017-09-06T19:01:15.900865967
title:
Analysis of Three Bayesian Network Inference Algorithms: Variable Elimination, Likelihood Weighting, and Gibbs Sampling


title: Imaging vector fields using line integral convolution
venue: SIGGRAPH
directory: 0
created: 2017-09-06T19:01:16.726648926
modified: 2017-09-06T19:01:16.726648926
abstract:
Imaging vector fields has applications in science, art, image processing and special effects. An effective new approach is to use linear and curvilinear filtering techniques to locally blur textures along a vector field. This approach builds on several previous tex-It is, however, unique because it is local, one-dimensional and independent of any predefined geometry or texture. The technique is general and capable of imaging arbitrary two-and three-dimensional vector fields. The local one-dimensional nature of the algorithm lends itself to highly parallel and efficient implementations. Furthermore, the curvilinear filter is capable of rendering detail on very intricate vector fields. Combining this technique with other rendering and image processing techniques — like periodic motion filtering — results in richly informative and striking images. The technique can also produce novel special effects. 1. INTRODUCTION Upon first inspection, imaging vector fields appears to have limited application — confined primarily to scientific visualization. However, much of the form and shape in our environment is a function of not only image intensity and color, but also of directional information such as edges. Painters, sculptors, photographers , image processors[16] and computer graphics researchers[9] have recognized the importance of direction in the process of image creation and form. Hence, algorithms that can image such directional information have wide application across both scientific and artistic domains. Such algorithms should possess a number of desirable and sometimes conflicting properties including: accuracy, locality of calculation, simplicity, controllability and generality. Line Integral Convolution (LIC) is a new technique that possesses many of these properties. Its generality allows for the introduction of a com


title: Heap architectures for concurrent languages using message passing
venue: MSP/ISMM
directory: 0
created: 2017-09-06T19:01:17.340791016
modified: 2017-09-06T19:01:17.340791016
abstract:
We discuss alternative heap architectures for languages that rely on automatic memory management and implement concurrency through asynchronous message passing. We describe how interprocess communication and garbage collection happens in each architecture, and extensively discuss the tradeoffs that are involved. In an implementation setting (the Erlang/OTP system) where the rest of the runtime system is unchanged, we present a detailed experimental comparison between these architectures using both synthetic programs and large commercial products as benchmarks.


title: Teaching Garbage Collection without Implementing Compilers or Interpreters
directory: 0
created: 2017-09-06T19:01:18.007337891
modified: 2017-09-06T19:01:18.007337891
abstract:
Given the widespread use of memory-safe languages, students must understand garbage collection well. Following a constructivist philosophy, an effective approach would be to have them implement garbage collectors. Unfortunately, a full implementation depends on substantial knowledge of compilers and runtime systems, which many courses do not cover or cannot assume. This paper presents an instructive approach to teaching gc, where students implement it atop a simplified stack and heap. Our approach eliminates enormous curricular dependencies while preserving the essence of gc algorithms. We take pains to enable testability, comprehensibility, and facilitates debugging. Our approach has been successfully classroom-tested for several years at several institutions.


title: CRUSH: controlled, scalable, decentralized placement of replicated data
venue: SC '06
directory: 0
created: 2017-09-06T19:01:18.689456055
modified: 2017-09-06T19:01:18.689456055
abstract:
Emerging large-scale distributed storage systems are faced with the task of distributing petabytes of data among tens or hundreds of thousands of storage devices. Such systems must evenly distribute data and workload to efficiently utilize available resources and maximize system performance, while facilitating system growth and managing hardware failures. We have developed CRUSH, a scalable pseudorandom data distribution function designed for distributed object-based storage systems that efficiently maps data objects to storage devices without relying on a central directory. Because large systems are inherently dynamic, CRUSH is designed to facilitate the addition and removal of storage while minimizing unnecessary data movement. The algorithm accommodates a wide variety of data replication and reliability mechanisms and distributes data in terms of user-defined policies that enforce separation of replicas across failure domains.


title: Lightweight Locking for Main Memory Database Systems
venue: PVLDB
directory: 0
created: 2017-09-06T19:01:20.199403076
modified: 2017-09-06T19:01:20.199403076
abstract:
Locking is widely used as a concurrency control mechanism in database systems. As more OLTP databases are stored mostly or entirely in memory, transactional throughput is less and less limited by disk IO, and lock managers increasingly become performance bottlenecks. In this paper, we introduce very lightweight locking (VLL), an alternative approach to pessimistic concurrency control for main-memory database systems that avoids almost all overhead associated with traditional lock manager operations. We also propose a protocol called selective contention analysis (SCA), which enables systems implementing VLL to achieve high transactional throughput under high contention workloads. We implement these protocols both in a traditional single-machine multi-core database server setting and in a distributed database where data is partitioned across many commodity machines in a shared-nothing cluster. Our experiments show that VLL dramatically reduces locking overhead and thereby increases transactional through-put in both settings.


title: Practical byzantine fault tolerance and proactive recovery
venue: ACM Trans. Comput. Syst.
directory: 0
created: 2017-09-06T19:01:21.387283936
modified: 2017-09-06T19:01:21.387283936
abstract:
Our growing reliance on online services accessible on the Internet demands highly available systems that provide correct service without interruptions. Software bugs, operator mistakes, and malicious attacks are a major cause of service interruptions and they can cause arbitrary behavior, that is, Byzantine faults. This article describes a new replication algorithm, BFT, that can be used to build highly available systems that tolerate Byzantine faults. BFT can be used in practice to implement real services: it performs well, it is safe in asynchronous environments such as the Internet, it incorporates mechanisms to defend against Byzantine-faulty clients, and it recovers replicas proactively. The recovery mechanism allows the algorithm to tolerate any number of faults over the lifetime of the system provided fewer than 1/3 of the replicas become faulty within a small window of vulnerability. BFT has been implemented as a generic program library with a simple interface. We used the library to implement the first Byzantine-fault-tolerant NFS file system, BFS. The BFT library and BFS perform well because the library incorporates several important optimizations, the most important of which is the use of symmetric cryptography to authenticate messages. The performance results show that BFS performs 2&percnt; faster to 24&percnt; slower than production implementations of the NFS protocol that are not replicated. This supports our claim that the BFT library can be used to build practical systems that tolerate Byzantine faults.


title: Making lockless synchronization fast: performance implications of memory reclamation
venue: Proceedings 20th IEEE International Parallel & Distributed Processing Symposium
directory: 0
created: 2017-09-06T19:01:22.356666992
modified: 2017-09-06T19:01:22.356666992
abstract:
Achieving high performance for concurrent applications on modern multiprocessors remains challenging. Many programmers avoid locking to improve performance, while others replace locks with non-blocking synchronization to protect against deadlock, priority inversion, and convoying. In both cases, dynamic data structures that avoid locking, require a memory reclamation scheme that reclaims nodes once they are no longer in use. The performance of existing memory reclamation schemes has not been thoroughly evaluated. We conduct the first fair and comprehensive comparison of three recent schemes -quiescent-state-based reclamation, epoch-based reclamation, and hazard-pointer-based reclamation - using a flexible microbenchmark. Our results show that there is no globally optimal scheme. When evaluating lockless synchronization, programmers and algorithm designers should thus carefully consider the data structure, the workload, and the execution environment, each of which can dramatically affect memory reclamation performance


title: Traits: A mechanism for fine-grained reuse
venue: ACM Trans. Program. Lang. Syst.
directory: 0
created: 2017-09-06T19:01:23.060425049
modified: 2017-09-06T19:01:23.060425049
abstract:
Inheritance is well-known and accepted as a mechanism for reuse in object-oriented languages. Unfortunately, due to the coarse granularity of inheritance, it may be difficult to decompose an application into an optimal class hierarchy that maximizes software reuse. Existing schemes based on single inheritance, multiple inheritance, or mixins, all pose numerous problems for reuse. To overcome these problems we propose <i>traits</i>, pure units of reuse consisting only of methods. We develop a formal model of traits that establishes how traits can be composed, either to form other traits, or to form classes. We also outline an experimental validation in which we apply traits to refactor a nontrivial application into composable units.


title: On computable numbers with an application to the Entscheidungsproblem
directory: 0
created: 2017-09-06T19:01:23.74287207
modified: 2017-09-06T19:01:23.74287207
abstract:
Many cyberneticists would agree that, had it not been for consistent hashing, the simulation of checksums might never have occurred. After years of essential research into replication, we prove the analysis of online algorithms, which embodies the confirmed principles of robotics. Our focus in our research is not on whether digital-to-analog converters and evolutionary programming can agree to accomplish this mission, but rather on constructing a novel framework for the construction of scatter/gather I/O (HOLLEE). while such a hypothesis is usually an intuitive objective, it is derived from known results.


title: A history of Erlang
venue: HOPL
directory: 0
created: 2017-09-06T19:01:24.416001953
modified: 2017-09-06T19:01:24.416001953
abstract:
Erlang was designed for writing concurrent programs that "run forever." Erlang uses concurrent processes to structure the program. These processes have no shared memory and communicate by asynchronous message passing. Erlang processes are lightweight and belong to the language, not the operating system. Erlang has mechanisms to allow programs to change code "on the fly" so that programs can evolve and change as they run. These mechanisms simplify the construction of software for implementing non-stop systems.
 This paper describes the history of Erlang. Material for the paper comes from a number of different sources. These include personal recollections, discussions with colleagues, old newspaper articles and scanned copies of Erlang manuals, photos and computer listings and articles posted to Usenet mailing lists.


title: New directions in cryptography
venue: IEEE Trans. Information Theory
directory: 0
created: 2017-09-06T19:01:25.183447998
modified: 2017-09-06T19:01:25.183447998
abstract:
Two kinds of contemporary developments in cryp-communications over an insecure channel order to use cryptog-tography are examined. Widening applications of teleprocess-raphy to insure privacy, however, it currently necessary for the ing have given rise to a need for new types of cryptographic communicating parties to share a key which is known to no systems, which minimize the need for secure key distribution one else. This is done by sending the key in advance over some channels and supply the equivalent of a written signature. This secure channel such a private courier or registered mail. A paper suggests ways to solve these currently open problems. private conversation between two people with no prior acquain-It also discusses how the theories of communication and compu-tance is a common occurrence in business, however, and it is tation are beginning to provide the tools to solve cryptographic unrealistic to expect initial business contacts to be postponed problems of long standing. long enough for keys to be transmitted by some physical means. The cost and delay imposed by this key distribution problem is a major barrier to the transfer of business communications


title: Multicore profiling for Erlang programs using percept2
venue: Erlang Workshop
directory: 0
created: 2017-09-06T19:01:25.879126953
modified: 2017-09-06T19:01:25.879126953
abstract:
Erlang is a functional programming language with built-in support for concurrency based on share-nothing processes and asynchronous message passing. The design of Erlang makes it suitable for writing concurrent and parallel applications, taking full advantage of the computing power of modern multicore machines. However many existing Erlang applications are sequential, in need of parallelisation.
 In this paper, we present the Erlang concurrency profiling tool Percept2,and demonstrate how the information provided by it can help the user to explore the potential parallelism in an Erlang application and how the system performs on the Erlang multicore system. Percept2 thus allows users improve the performance and scalability of their applications.


title: Object Space Silhouette Algorithims
directory: 0
created: 2017-09-06T19:01:26.993477051
modified: 2017-09-06T19:01:26.993477051
abstract:
In computer graphics, silhouette extraction and rendering has a critical role in a growing number of applications. This paper examines five object space silhouette extraction algorithms for polygonal models. The algorithms are applied to a variety of models and compared in terms of code complexity and run time performance. The purpose of this paper is to inform programmers who must choose from among these five algorithms.


title: The Dynamic Window Approach to Collision Avoidance
directory: 0
created: 2017-09-06T19:01:27.866728027
modified: 2017-09-06T19:01:27.866728027
abstract:
This paper describes the dynamic window a p proach t o reactive collision avoidance for mobile robots equipped with synchro-drives. The a p proach i s d erived directly from the motion dynamics of the robot and i s t herefore particularly well-suited for robots o perating a t high speed. It diiers from previous approaches in that t he search for commands controlling t he translational a n d rotational velocity o f t he robot is carried out directly in the space of velocities. The advantage of our approach i s t hat it correctly and in an elegant w ay incorporatesthe dynamics of the robot. This is done by r e d ucing t he search space to t he dynamic window, which consists o f t he v elocities reachable within a short time i n terval. Within the dynamic window t he a p proach only considers admissible velocities yielding a trajectory on which t he robot is able to s t op safely. Among t hesevelocities the combination of translational and rotational velocity is chosen by m aximizing an objective f u nction. The objective f u nction includes a measure of progress towards a goal location, the forward velocity o f t he robot, and the d i s t ance to t he n ext obstacle on the trajectory. In extensive experiments t he approach presented here has been found t o safely control our mobile robot RHINO with speeds of up to 95 cmmsec, in populated and dynamic environments.


title: Axodraw Version 2
venue: ArXiv
directory: 0
created: 2017-09-06T19:01:28.558075928
modified: 2017-09-06T19:01:28.558075928
abstract:
We present version two of the L A T E X graphical style file Axodraw. It has a number of new drawing primitives and many extra options, and it can now work with pdflatex to directly produce output in PDF file format (but with the aid of an auxiliary program).


title: Breadth-first numbering: lessons from a small exercise in algorithm design
venue: ICFP
directory: 0
created: 2017-09-06T19:01:29.422587891
modified: 2017-09-06T19:01:29.422587891
abstract:
Every programmer has blind spots. Breadth-first numbering is an interesting toy problem that exposes a blind spot common to many---perhaps most---functional programmers.


title: Dynamic Hash Tables
venue: Commun. ACM
directory: 0
created: 2017-09-06T19:01:30.3517771
modified: 2017-09-06T19:01:30.3517771
abstract:
Linear hashing and spiral storage are two dynamic hashing schemes originally designed for external files. This paper shows how to adapt these two methods for hash tables stored in main memory. The necessary data structures and algorithms are described, the expected performance is analyzed mathematically, and actual execution times are obtained and compared with alternative techniques. Linear hashing is found to be both faster and easier to implement than spiral storage. Two alternative techniques are considered: a simple unbalanced binary tree and double hashing with periodic rehashing into a larger table. The retrieval time of linear hashing is similar to double hashing and substantially faster than a binary tree, except for very small trees. The loading times of double hashing (with periodic reorganization), a binary tree, and linear hashing are similar. Overall, linear hashing is a simple and efficient technique for applications where the cardinality of the key set is not known in advance.


title: Resilient Overlay Networks
venue: SOSP
directory: 0
created: 2017-09-06T19:01:31.152511963
modified: 2017-09-06T19:01:31.152511963
abstract:
A Resilient Overlay Network (RON) is an architecture that allows distributed Internet applications to detect and recover from path outages and periods of degraded performance within several seconds, improving over today's wide-area routing protocols that take at least several minutes to recover. A RON is an application-layer overlay on top of the existing Internet routing substrate. The RON nodes monitor the functioning and quality of the Internet paths among themselves, and use this information to decide whether to route packets directly over the Internet or by way of other RON nodes, optimizing application-specific routing metrics.Results from two sets of measurements of a working RON deployed at sites scattered across the Internet demonstrate the benefits of our architecture. For instance, over a 64-hour sampling period in March 2001 across a twelve-node RON, there were 32 significant outages, each lasting over thirty minutes, over the 132 measured paths. RON's routing mechanism was able to detect, recover, and route around <i>all</i> of them, in less than twenty seconds on average, showing that its methods for fault detection and recovery work well at discovering alternate paths in the Internet. Furthermore, RON was able to improve the loss rate, latency, or throughput perceived by data transfers; for example, about 5% of the transfers doubled their TCP throughput and 5% of our transfers saw their loss probability reduced by 0.05. We found that forwarding packets via at most one intermediate RON node is sufficient to overcome faults and improve performance in most cases. These improvements, particularly in the area of fault detection and recovery, demonstrate the benefits of moving some of the control over routing into the hands of end-systems.


title: A unified theory of garbage collection
venue: OOPSLA
directory: 0
created: 2017-09-06T19:01:33.476531006
modified: 2017-09-06T19:01:33.476531006
abstract:
Tracing and reference counting are uniformly viewed as being fundamentally different approaches to garbage collection that possess very distinct performance properties. We have implemented high-performance collectors of both types, and in the process observed that the more we optimized them, the more similarly they behaved - that they seem to share some deep structure. 
 We present a formulation of the two algorithms that shows that they are in fact duals of each other. Intuitively, the difference is that tracing operates on live objects, or "matter", while reference counting operates on dead objects, or "anti-matter". For every operation performed by the tracing collector, there is a precisely corresponding anti-operation performed by the reference counting collector.
 Using this framework, we show that all high-performance collectors (for example, deferred reference counting and generational collection) are in fact hybrids of tracing and reference counting. We develop a uniform cost-model for the collectors to quantify the trade-offs that result from choosing different hybridizations of tracing and reference counting. This allows the correct scheme to be selected based on system performance requirements and the expected properties of the target application.


title: IronFleet: proving practical distributed systems correct
venue: SOSP
directory: 0
created: 2017-09-06T19:01:34.070897949
modified: 2017-09-06T19:01:34.070897949
abstract:
Distributed systems are notorious for harboring subtle bugs. Verification can, in principle, eliminate these bugs a priori, but verification has historically been difficult to apply at full-program scale, much less distributed-system scale.
 We describe a methodology for building practical and provably correct distributed systems based on a unique blend of TLA-style state-machine refinement and Hoare-logic verification. We demonstrate the methodology on a complex implementation of a Paxos-based replicated state machine library and a lease-based sharded key-value store. We prove that each obeys a concise safety specification, as well as desirable liveness requirements. Each implementation achieves performance competitive with a reference system. With our methodology and lessons learned, we aim to raise the standard for distributed systems from "tested" to "correct."


title: Automatic prediction of emotions induced by movies
directory: 0
created: 2017-09-06T19:01:34.962695068
modified: 2017-09-06T19:01:34.962695068
abstract:
N before have movies been as easily accessible to viewers, who can enjoy anywhere the almost unlimited potential of movies for inducing emotions. Thus, knowing in advance the emotions that a movie is likely to elicit to its viewers could help to improve the accuracy of content delivery, video indexing or even summarization. However, transferring this expertise to computers is a complex task due in part to the subjective nature of emotions. The present thesis work is dedicated to the automatic prediction of emotions induced by movies based on the intrinsic properties of the audiovisual signal. To computationally deal with this problem, a video dataset annotated along the emotions induced to viewers is needed. However, existing datasets are not public due to copyright issues or are of a very limited size and content diversity. To answer to this specific need, this thesis addresses the development of the LIRIS-ACCEDE dataset. The advantages of this dataset are threefold: (1) it is based on movies under Creative Commons licenses and thus can be shared without infringing copyright, (2) it is composed of 9,800 good quality video excerpts with a large content diversity extracted from 160 feature films and short films, and (3) the 9,800 excerpts have been ranked through a pair-wise video comparison protocol along the induced valence and arousal axes using crowdsourcing. The high inter-annotator agreement reflects that annotations are fully consistent, despite the large diversity of raters’ cultural backgrounds. Three other experiments are also introduced in this thesis. First, affective ratings were collected for a subset of the LIRIS-ACCEDE dataset in order to cross-validate the crowdsourced annotations. The affective ratings made also possible the learning of Gaussian Processes for Regression, modeling the noisiness from measurements, to map the whole ranked LIRIS-ACCEDE dataset into the 2D valence-arousal affective space. Second, continuous ratings for 30 movies were collected in order develop temporally relevant computational models. Finally, a last experiment was performed in order to collect continuous physiological measurements for the 30 movies used in the second experiment. The correlation between both modalities strengthens the validity of the results of the experiments. Armed with a dataset, this thesis presents a computational model to infer the emotions induced by movies. The framework builds on the recent advances in deep learning and takes into account the relationship between consecutive scenes. It is composed of two fine-tuned Convolutional Neural Networks. One is dedicated to the visual modality and uses as input crops of key frames extracted from video segments, while the second one is dedicated to the audio modality through the use of audio spectrograms. The activations of the last fully connected layer of both networks are con-


title: HyParView: A Membership Protocol for Reliable Gossip-Based Broadcast
venue: 37th Annual IEEE/IFIP International Conference on Dependable Systems and Networks (DSN'07)
directory: 0
created: 2017-09-06T19:01:35.56426709
modified: 2017-09-06T19:01:35.56426709
abstract:
Gossip, or epidemic, protocols have emerged as a powerful strategy to implement highly scalable and resilient reliable broadcast primitives. Due to scalability reasons, each participant in a gossip protocol maintains a partial view of the system. The reliability of the gossip protocol depends upon some critical properties of these views, such as degree distribution and clustering coefficient. Several algorithms have been proposed to maintain partial views for gossip protocols. In this paper, we show that under a high number of faults, these algorithms take a long time to restore the desirable view properties. To address this problem, we present HyParView, a new membership protocol to support gossip-based broadcast that ensures high levels of reliability even in the presence of high rates of node failure. The HyParView protocol is based on a novel approach that relies in the use of two distinct partial views, which are maintained with different goals by different strategies.


title: HaLoop: Efficient Iterative Data Processing on Large Clusters
venue: PVLDB
directory: 0
created: 2017-09-06T19:01:36.233032959
modified: 2017-09-06T19:01:36.233032959
abstract:
The growing demand for large-scale data mining and data analysis applications has led both industry and academia to design new types of highly scalable data-intensive computing platforms. MapReduce and Dryad are two popular platforms in which the dataflow takes the form of a directed acyclic graph of operators. These platforms lack built-in support for iterative programs, which arise naturally in many applications including data mining, web ranking, graph analysis, model fitting, and so on. This paper presents HaLoop, a modified version of the Hadoop MapReduce framework that is designed to serve these applications. HaLoop not only extends MapReduce with programming support for iterative applications, it also dramatically improves their efficiency by making the task scheduler loop-aware and by adding various caching mechanisms. We evaluated HaLoop on real queries and real datasets. Compared with Hadoop, on average, HaLoop reduces query runtimes by 1.85, and shuffles only 4% of the data between mappers and reducers.


title: A program optimization for automatic database result caching
venue: POPL
directory: 0
created: 2017-09-06T19:01:37.240474121
modified: 2017-09-06T19:01:37.240474121
abstract:
Most popular Web applications rely on persistent databases based on languages like SQL for declarative specification of data models and the operations that read and modify them. As applications scale up in user base, they often face challenges responding quickly enough to the high volume of requests. A common aid is caching of database results in the application&#039;s memory space, taking advantage of program-specific knowledge of which caching schemes are sound and useful, embodied in handwritten modifications that make the program less maintainable. These modifications also require nontrivial reasoning about the read-write dependencies across operations. In this paper, we present a compiler optimization that automatically adds sound SQL caching to Web applications coded in the Ur/Web domain-specific functional language, with no modifications required to source code. We use a custom cache implementation that supports concurrent operations without compromising the transactional semantics of the database abstraction. Through experiments with microbenchmarks and production Ur/Web applications, we show that our optimization in many cases enables an easy doubling or more of an application&#039;s throughput, requiring nothing more than passing an extra command-line flag to the compiler.


title: SWIM: Scalable Weakly-consistent Infection-style Process Group Membership Protocol
venue: DSN
directory: 0
created: 2017-09-06T19:01:37.903718994
modified: 2017-09-06T19:01:37.903718994
abstract:
Several distributed peer-to-peer applications require weakly-consistent knowledge of process group membership information at all participating processes. SWIM is a generic software module that offers this service for large-scale process groups. The SWIM effort is motivated by the unscalability of traditional heart-beating protocols, which either impose network loads that grow quadratically with group size, or compromise response times or false positive frequency w.r.t. detecting process crashes. This paper reports on the design, implementation and performance of the SWIM subsystem on a large cluster of commodity PCs. Unlike traditional heartbeating protocols, SWIM separates the failure detection and membership update dissemination functionalities of the membership protocol. Processes are monitored through an efficient peer-to-peer periodic randomized probing protocol. Both the expected time to first detection of each process failure, and the expected message load per member, do not vary with group size. Information about membership changes, such as process joins, drop-outs and failures, is propagated via piggyback-ing on ping messages and acknowledgments. This results in a robust and fast infection style (also epidemic or gossip-style) of dissemination. The rate of false failure detections in the SWIM system is reduced by modifying the protocol to allow group members to suspect a process before declaring it as failed-this allows the system to discover and rectify false failure detections. Finally, the protocol guarantees a deterministic time bound to detect failures. Experimental results from the SWIM prototype are presented. We discuss the extensibility of the design to a WAN-wide scale. £ Author last names are in alphabetical order.


title: Causal Diagrams for Empirical Research
directory: 0
created: 2017-09-06T19:01:38.924162109
modified: 2017-09-06T19:01:38.924162109
abstract:
The primary aim of this paper is to show how graphical models can be used as a mathematical language for integrating statistical and subject-matter information. In particular, the paper develops a principled, nonparametric framework for causal inference, in which diagrams are queried to determine if the assumptions available are suucient for identifying causal eeects from non-experimental data. If so the diagrams can be queried to produce mathematical expressions for causal eeects in terms of observed distributions; otherwise, the diagrams can be queried to suggest additional observations or auxiliary experiments from which the desired inferences can be obtained.


title: 2Q: A Low Overhead High Performance Buffer Management Replacement Algorithm
venue: VLDB
directory: 0
created: 2017-09-06T19:01:39.635860107
modified: 2017-09-06T19:01:39.635860107
abstract:
In a path-breaking paper last year Pat and Betty O'Neil and Gerhard Weikum proposed a self-tuning improvement to the Least Recently Used (LRU) buuer management algorithmm15]. Their improvement is called LRU/k and advocates giving priority to buuer pages based on the kth most recent access. (The standard LRU algorithm is denoted LRU/1 according to this terminology.) If P1's kth most recent access is more more recent than P2's, then P1 will be replaced after P2. Intuitively, LRU/k for k > 1 is a good strategy , because it gives low priority to pages that have been scanned or to pages that belong to a big randomly accessed le (e.g., the account le in TPC/A). They found that LRU/2 achieves most of the advantage of their method. The one problem of LRU/2 is the processor overhead to implement it. In contrast to LRU, each page access requires log N work to manipulate a priority queue where N is the number of pages in the buuer. Question: is there low overhead way (constant overhead per access as in LRU) to achieve similar page 0 replacement performance to LRU/2? Answer: Yes. Our \Two Queue" algorithm (hereafter 2Q) has constant time overhead, performs as well as LRU/2, and requires no tuning. These results hold for real (DB2 commercial, Swiss bank) traces as well as simulated ones. Based on these experiments, we estimate that 2Q will provide a few percent improvement over LRU without increasing the overhead by more than a constant additive factor. 1 Background Fetching data from disk requires at least a factor of 1000 more time than fetching data from a RAM buuer. For this reason, good use of the buuer can signii-cantly improve the throughput and response time of any data-intensive system. Until the early 80's, the least recently used buuer replacement algorithm (replace the page that was least recently accessed or used) was the algorithm of choice in nearly all cases. Indeed, the theoretical community blessed it by showing that LRU never replaces more than a factor B as many elements as an optimal clair-voyant algorithm (where B is the size of the buuer) 19]. 1 Factors this large can heavily innuence the behavior of a database system, however. Furthermore , database systems usually have access patterns in which LRU performs poorly, as noted by Stone-braker 21], Sacco and Schkolnick 18], and Chou and Dewitt 5]. As a result, there …


title: QuickCheck: a lightweight tool for random testing of Haskell programs
venue: ICFP
directory: 0
created: 2017-09-06T19:01:40.324278076
modified: 2017-09-06T19:01:40.324278076
abstract:
Quick Check is a tool which aids the Haskell programmer in formulating and testing properties of programs. Properties are described as Haskell functions, and can be automatically tested on random input, but it is also possible to define custom test data generators. We present a number of case studies, in which the tool was successfully used, and also point out some pitfalls to avoid. Random testing is especially suitable for functional programs because properties can be stated at a fine grain. When a function is built from separately tested components, then random testing suffices to obtain good coverage of the definition under test.


title: Projecting a Modular Future
venue: IEEE Software
directory: 0
created: 2017-09-06T19:01:41.504993896
modified: 2017-09-06T19:01:41.504993896
abstract:
Two innovations are enhancing programming languages' capabilities. First, modularity lets you combine independently developed languages without changing their respective definitions. A language is no longer a fixed quantity; you can extend it with domain-specific constructs as needed. Second, projectional editing lets you build editors and IDEs that don't require parsers. Such editors and IDEs support a range of tightly integrated notations, including textual, symbolic, tabular, and graphical notations. In addition, by avoiding parsers, they avoid grammar composition's well-known limitations. Three examples illustrate how these two innovations affect programming-language design. A set of modular extensions of C for embedded programming enables efficient code generation and formal analysis. A language for requirements engineering flexibly combines structured and unstructured (prose) data. Finally, a language for defining insurance rules uses mathematical notation. These examples all rely on the open source JetBrains MPS (Meta Programming System) language workbench. This article is part of a special issue on Software Architecture.


title: MillWheel: Fault-Tolerant Stream Processing at Internet Scale
venue: PVLDB
directory: 0
created: 2017-09-06T19:01:42.14798291
modified: 2017-09-06T19:01:42.14798291
abstract:
MillWheel is a framework for building low-latency data-processing applications that is widely used at Google. Users specify a directed computation graph and application code for individual nodes, and the system manages persistent state and the continuous flow of records, all within the envelope of the framework's fault-tolerance guarantees. This paper describes MillWheel's programming model as well as its implementation. The case study of a continuous anomaly detector in use at Google serves to motivate how many of MillWheel's features are used. MillWheel's programming model provides a notion of logical time, making it simple to write time-based aggre-gations. MillWheel was designed from the outset with fault tolerance and scalability in mind. In practice, we find that MillWheel's unique combination of scalability, fault tolerance, and a versatile programming model lends itself to a wide variety of problems at Google.


title: Computing Machinery and Intelligence
directory: 0
created: 2017-09-06T19:01:44.995601074
modified: 2017-09-06T19:01:44.995601074
abstract:
I propose to consider the question, "Can machines think?" This should begin with definitions of the meaning of the terms "machine" and "think." The definitions might be framed so as to reflect so far as possible the normal use of the words, but this attitude is dangerous, If the meaning of the words "machine" and "think" are to be found by examining how they are commonly used it is difficult to escape the conclusion that the meaning and the answer to the question, "Can machines think?" is to be sought in a statistical survey such as a Gallup poll. But this is absurd. Instead of attempting such a definition I shall replace the question by another, which is closely related to it and is expressed in relatively unambiguous words. The new form of the problem can be described in terms of a game which we call the 'imitation game." It is played with three people, a man (A), a woman (B), and an interrogator (C) who may be of either sex. The interrogator stays in a room apart front the other two. The object of the game for the interrogator is to determine which of the other two is the man and which is the woman. He knows them by labels X and Y, and at the end of the game he says either "X is A and Y is B" or "X is B and Y is A." The interrogator is allowed to put questions to A and B thus: C: Will X please tell me the length of his or her hair? Now suppose X is actually A, then A must answer. It is A's object in the game to try and cause C to make the wrong identification. His answer might therefore be: "My hair is shingled, and the longest strands are about nine inches long." In order that tones of voice may not help the interrogator the answers should be written, or better still, typewritten. The ideal arrangement is to have a teleprinter communicating between the two rooms. Alternatively the question and answers can be repeated by an intermediary. The object of the game for the third player (B) is to help the interrogator. The best strategy for her is probably to give truthful answers. She can add such things as "I am the woman, don't listen to him!" to her answers, but it will avail …


title: Web page classification: Features and algorithms
venue: ACM Comput. Surv.
directory: 0
created: 2017-09-06T19:01:47.114304932
modified: 2017-09-06T19:01:47.114304932
abstract:
Classification of Web page content is essential to many tasks in Web information retrieval such as maintaining Web directories and focused crawling. The uncontrolled nature of Web content presents additional challenges to Web page classification as compared to traditional text classification, but the interconnected nature of hypertext also provides features that can assist the process.
 As we review work in Web page classification, we note the importance of these Web-specific features and algorithms, describe state-of-the-art practices, and track the underlying assumptions behind the use of information from neighboring pages.


title: Bimodal Multicast
venue: ACM Trans. Comput. Syst.
directory: 0
created: 2017-09-06T19:01:48.198811035
modified: 2017-09-06T19:01:48.198811035
abstract:
There are many methods for making a multicast protocol &#8220;reliable.&#8221; At one end of the spectrum, a reliable multicast protocol might offer tomicity guarantees, such as all-or-nothing delivery, delivery ordering, and perhaps additional properties such as virtually synchronous addressing. At the other are protocols that use local repair to overcome transient packet loss in the network, offering &#8220;best effort&#8221; reliability. Yet none of this prior work has treated stability of multicast delivery as a basic reliability property, such as might be needed in an internet radio, television, or conferencing application. This article looks at reliability with a new goal: development of a multicast protocol which is reliable in a sense that can be rigorously quantified and  includes throughput stability guarantees. We characterize this new protocol as a &#8220;bimodal multicast&#8221; in reference to its reliability model, which corresponds to a family of bimodal probability distributions. Here, we introduce the protocol, provide a theoretical analysis of its behavior, review experimental results, and discuss some candidate applications. These confirm that bimodal multicast is reliable, scalable, and that the protocol provides remarkably stable delivery throughput.


title: The Slab Allocator: An Object-Caching Kernel Memory Allocator
venue: USENIX Summer
directory: 0
created: 2017-09-06T19:01:48.821033936
modified: 2017-09-06T19:01:48.821033936
abstract:
This paper presents a comprehensive design overview of the SunOS 5.4 kernel memory allocator. This allocator is based on a set of object-caching primitives that reduce the cost of allocating complex objects by retaining their state between uses. These same primitives prove equally effective for managing stateless memory (e.g. data pages and temporary buffers) because they are space-efficient and fast. The allocator's object caches respond dynamically to global memory pressure, and employ an object-coloring scheme that improves the system's overall cache utilization and bus balance. The allocator also has several statistical and debugging features that can detect a wide range of problems throughout the system.


title: KinectFusion: real-time 3D reconstruction and interaction using a moving depth camera
venue: UIST
directory: 0
created: 2017-09-06T19:01:49.798724121
modified: 2017-09-06T19:01:49.798724121
abstract:
KinectFusion enables a user holding and moving a standard Kinect camera to rapidly create detailed 3D reconstructions of an indoor scene. Only the depth data from Kinect is used to track the 3D pose of the sensor and reconstruct, geometrically precise, 3D models of the physical scene in real-time. The capabilities of KinectFusion, as well as the novel GPU-based pipeline are described in full. Uses of the core system for low-cost handheld scanning, and geometry-aware augmented reality and physics-based interactions are shown. Novel extensions to the core GPU pipeline demonstrate object segmentation and user interaction directly in front of the sensor, without degrading camera tracking or reconstruction. These extensions are used to enable real-time multi-touch interactions anywhere, allowing any planar or non-planar reconstructed physical surface to be appropriated for touch.


title: A Tutorial on Hidden Markov Models and Selected Applications in Speech Recognition
directory: 0
created: 2017-09-06T19:01:50.769458984
modified: 2017-09-06T19:01:50.769458984
abstract:
Although initially introduced and studied in the late 1960s and early 1970s, statistical methods of Markov source or hidden Markov modeling have become increasingly popular in the last several years. There are two strong reasons why this has occurred. First the models are very rich in mathematical structure and hence can form the theoretical basis for use in a wide range of applications. Second the models, when applied properly, work very well in practice for several important applications. In this paper we attempt to carefully and methodically review the theoretical aspects of this type of statistical modeling and show how they have been applied to selected problems in machine recognition of speech.


venue: Empirical Software Engineering
directory: 0
created: 2017-09-06T19:01:51.730195068
modified: 2017-09-06T19:01:51.730195068
title:
Realizing quality improvement through test driven development: results and experiences of four industrial teams

abstract:
Test-driven development (TDD) is a software development practice that has been used sporadically for decades. With this practice, a software engineer cycles minute-by-minute between writing failing unit tests and writing implementation code to pass those tests. Test-driven development has recently re-emerged as a critical enabling practice of agile software development methodologies. However, little empirical evidence supports or refutes the utility of this practice in an industrial context. Case studies were conducted with three development teams at Microsoft and one at IBM that have adopted TDD. The results of the case studies indicate that the pre-release defect density of the four products decreased between 40% and 90% relative to similar projects that did not use the TDD practice. Subjectively, the teams experienced a 15–35% increase in initial development time after adopting TDD.


title: The Part-Time Parliament
venue: ACM Trans. Comput. Syst.
directory: 0
created: 2017-09-06T19:01:54.206787109
modified: 2017-09-06T19:01:54.206787109
abstract:
Recent archaeological discoveries on the island of Paxos reveal that the parliament functioned despite the peripatetic propensity of its part-time legislators. The legislators maintained consistent copies of the parliamentary record, despite their frequent forays from the chamber and the forgetfulness of their messengers. The Paxon parliament's protocol provides a new way of implementing the state machine approach to the design of distributed systems.


title: Xen and the art of virtualization
venue: SOSP
directory: 0
created: 2017-09-06T19:01:55.392845947
modified: 2017-09-06T19:01:55.392845947
abstract:
Numerous systems have been designed which use virtualization to subdivide the ample resources of a modern computer. Some require specialized hardware, or cannot support commodity operating systems. Some target 100% binary compatibility at the expense of performance. Others sacrifice security or functionality for speed. Few offer resource isolation or performance guarantees; most provide only best-effort provisioning, risking denial of service.This paper presents Xen, an x86 virtual machine monitor which allows multiple commodity operating systems to share conventional hardware in a safe and resource managed fashion, but without sacrificing either performance or functionality. This is achieved by providing an idealized virtual machine abstraction to which operating systems such as Linux, BSD and Windows XP, can be <i>ported</i> with minimal effort.Our design is targeted at hosting up to 100 virtual machine instances simultaneously on a modern server. The virtualization approach taken by Xen is extremely efficient: we allow operating systems such as Linux and Windows XP to be hosted simultaneously for a negligible performance overhead --- at most a few percent compared with the unvirtualized case. We considerably outperform competing commercial and freely available solutions in a range of microbenchmarks and system-wide tests.


venue: ISMM
directory: 0
created: 2017-09-06T19:01:56.234485107
modified: 2017-09-06T19:01:56.234485107
title:
Message analysis-guided allocation and low-pause incremental garbage collection in a concurrent language

abstract:
We present a memory management scheme for a concurrent programming language where communication occurs using message-passing with copying semantics. The runtime system is built around process-local heaps, which frees the memory manager from redundant synchronization in a multithreaded implementation and allows the memory reclamation of process-local heaps to be a private business and to often take place without garbage collection. The allocator is guided by a static analysis which speculatively allocates data possibly used as messages in a shared memory area. To respect the (soft) real-time requirements of the language, we develop a generational, incremental garbage collection scheme tailored to the characteristics of this runtime system. The collector imposes no overhead on the mutator, requires no costly barrier mechanisms, and has a relatively small space overhead. We have implemented these schemes in the context of an industrial-strength implementation of a concurrent functional language used to develop large-scale, highly concurrent, embedded applications. Our measurements across a range of applications indicate that the incremental collector substantially reduces pause times, imposes only very small overhead on the total runtime, and achieves a high degree of mutator utilization.


title: Support-vector networks
venue: Machine Learning
directory: 0
created: 2017-09-06T19:01:57.211269043
modified: 2017-09-06T19:01:57.211269043
abstract:
Thesupport-vector network is a new learning machine for two-group classification problems. The machine conceptually implements the following idea: input vectors are non-linearly mapped to a very high-dimension feature space. In this feature space a linear decision surface is constructed. Special properties of the decision surface ensures high generalization ability of the learning machine. The idea behind the support-vector network was previously implemented for the restricted case where the training data can be separated without errors. We here extend this result to non-separable training data. High generalization ability of support-vector networks utilizing polynomial input transformations is demonstrated. We also compare the performance of the support-vector network to various classical learning algorithms that all took part in a benchmark study of Optical Character Recognition.


title: A file undelete with Aho-Corasick algorithm in file recovery
venue: 2016 International Conference on Informatics and Computing (ICIC)
directory: 0
created: 2017-09-06T19:01:57.833256104
modified: 2017-09-06T19:01:57.833256104
abstract:
In this research, a file undelete method is proposed by which the file recovery system retrieved the file metadata through a parsing process from the master file table (MFT) attributes. Using the Aho-Corasick algorithm, the process is then continued with a filtering process in which keywords are matched with file names. The result obtained shows that the proposed method is able to perform recovery of files that has been deleted from the file system. The experiment is performed four times with various file condition which had been overwritten 0%, 18.98%, 32.21% and 59.77% from their original size. The rate of the average file recovery success is 87.50% and the average time required is 0.32 second for string matching on file names.


title: Blue native PAGE.
venue: Nature protocols
directory: 0
created: 2017-09-06T19:01:58.912200928
modified: 2017-09-06T19:01:58.912200928
abstract:
Blue native PAGE (BN-PAGE) can be used for one-step isolation of protein complexes from biological membranes and total cell and tissue homogenates. It can also be used to determine native protein masses and oligomeric states and to identify physiological protein-protein interactions. Native complexes are recovered from gels by electroelution or diffusion and are used for 2D crystallization and electron microscopy or analyzed by in-gel activity assays or by native electroblotting and immunodetection. In this protocol, we describe methodology to perform BN-PAGE followed by (i) native extraction or native electroblotting of separated proteins, or (ii) a second dimension of tricine-SDS-PAGE or modified BN-PAGE, or (iii) a second dimension of isoelectric focusing (IEF) followed by a third dimension of tricine-SDS-PAGE for the separation of subunits of complexes. These protocols for 2D and 3D PAGE can be completed in 2 and 3 days.


title: Reverend Bayes on Inference Engines: A Distributed Hierarchical Approach
venue: AAAI
directory: 0
created: 2017-09-06T19:01:59.666990967
modified: 2017-09-06T19:01:59.666990967
abstract:
This paper presents generalizations of Bayes likelihood-ratio updating rule which facilitate an asynchronous propagation of the impacts of new beliefs and/or new evidence in hierarchically organized inference structures with multi-hypotheses variables. The computational scheme proposed specifies a set of belief parameters, communication messages and updating rules which guarantee that the diffusion of updated beliefs is accomplished in a single pass and complies with the tenets of Bayes calculus.


venue: OSDI
directory: 0
created: 2017-09-06T19:02:00.791937988
modified: 2017-09-06T19:02:00.791937988
title:
Simple Testing Can Prevent Most Critical Failures: An Analysis of Production Failures in Distributed Data-Intensive Systems

abstract:
Large, production quality distributed systems still fail periodically , and do so sometimes catastrophically, where most or all users experience an outage or data loss. We present the result of a comprehensive study investigating 198 randomly selected, user-reported failures that occurred on Cassandra, HBase, Hadoop Distributed File System (HDFS), Hadoop MapReduce, and Redis, with the goal of understanding how one or multiple faults eventually evolve into a user-visible failure. We found that from a testing point of view, almost all failures require only 3 or fewer nodes to reproduce, which is good news considering that these services typically run on a very large number of nodes. However, multiple inputs are needed to trigger the failures with the order between them being important. Finally, we found the error logs of these systems typically contain sufficient data on both the errors and the input events that triggered the failure, enabling the diagnose and the reproduction of the production failures. We found the majority of catastrophic failures could easily have been prevented by performing simple testing on error handling code – the last line of defense – even without an understanding of the software design. We extracted three simple rules from the bugs that have lead to some of the catastrophic failures, and developed a static checker, Aspirator, capable of locating these bugs. Over 30% of the catastrophic failures would have been prevented had Aspirator been used and the identified bugs fixed. Running Aspirator on the code of 9 distributed systems located 143 bugs and bad practices that have been fixed or confirmed by the developers.


title: MDCC: Multi-Data Center Consistency
venue: EuroSys
directory: 0
created: 2017-09-06T19:02:01.800666992
modified: 2017-09-06T19:02:01.800666992
abstract:
Replicating data across multiple data centers allows using data closer to the client, reducing latency for applications, and increases the availability in the event of a data center failure. MDCC (Multi-Data Center Consistency) is an optimistic commit protocol for geo-replicated transactions, that does not require a master or static partitioning, and is strongly consistent at a cost similar to eventually consistent protocols. MDCC takes advantage of Generalized Paxos for transaction processing and exploits commutative updates with value constraints in a quorum-based system. Our experiments show that MDCC outperforms existing synchronous transactional replication protocols, such as Megastore, by requiring only a single message round-trip in the normal operational case independent of the master-location and by scaling linearly with the number of machines as long as transaction conflict rates permit.


title: An elementary proof of a theorem of Johnson and Lindenstrauss
venue: Random Struct. Algorithms
directory: 0
created: 2017-09-06T19:02:02.530388916
modified: 2017-09-06T19:02:02.530388916
abstract:
A result of Johnson and Lindenstrauss [13] shows that a set of n points in high dimensional Euclidean space can be mapped into an O(log n/⑀ 2)-dimensional Euclidean space such that the distance between any two points changes by only a factor of (1 Ϯ ⑀). In this note, we prove this theorem using elementary probabilistic techniques.


title: Implementing Fault-Tolerant Services Using the State Machine Approach: A Tutorial
venue: ACM Comput. Surv.
directory: 0
created: 2017-09-06T19:02:03.330979004
modified: 2017-09-06T19:02:03.330979004
abstract:
The state machine approach is a general method for implementing fault-tolerant services in distributed systems. This paper reviews the approach and describes protocols for two different failure models&#8212;Byzantine and fail stop. Systems reconfiguration techniques for removing faulty components and integrating repaired components are also discussed.


title: Random Forests
venue: Machine Learning
directory: 0
created: 2017-09-06T19:02:04.088136963
modified: 2017-09-06T19:02:04.088136963
abstract:
Random forests are a combination of tree predictors such that each tree depends on the values of a random vector sampled independently and with the same distribution for all trees in the forest. The generalization error for forests converges a.s. to a limit as the number of trees in the forest becomes large. The generalization error of a forest of tree classifiers depends on the strength of the individual trees in the forest and the correlation between them. Using a random selection of features to split each node yields error rates that compare favorably to Adaboost (Y. Freund & R. Schapire, Machine Learning: Proceedings of the Thirteenth International conference, ***, 148–156), but are more robust with respect to noise. Internal estimates monitor error, strength, and correlation and these are used to show the response to increasing the number of features used in the splitting. Internal estimates are also used to measure variable importance. These ideas are also applicable to regression.


title: Diminished reality for augmented reality interior design
venue: The Visual Computer
directory: 0
created: 2017-09-06T19:02:05.041069092
modified: 2017-09-06T19:02:05.041069092
abstract:
A modular real-time diminished reality pipeline for indoor applications is presented. The pipeline includes a novel inpainting method which requires no prior information of the textures behind the object to be diminished. The inpainting method operates on rectified images and adapts to scene illumination. In typically challenging illumination situations, the method produces more realistic results in indoor scenes than previous approaches. Modularity enables using alternative implementations in different stages and adapting the pipeline for different applications. Finally, practical solutions to problems occurring in diminished reality applications, for example interior design, are discussed.


title: Epidemic Algorithms for Replicated Database Maintenance
venue: PODC
directory: 0
created: 2017-09-06T19:02:05.70974292
modified: 2017-09-06T19:02:05.70974292
abstract:
When a database is replicated at many sites, maintaining mutual consistency among the sites in the face of updates is a significant problem. This paper describes several randomized algorithms for distributing updates and driving the replicas toward consistency. The algorithms are very simple and require few guarantees from the underlying communication system, yet they ensure that the effect of every update is eventually reflected in all replicas. The cost and performance of the algorithms are tuned by choosing appropriate distributions in the randomization step. The algorithms are closely analogous to epidemics, and the epidemiology literature aids in understanding their behavior. One of the algorithms has been implemented in the Clearinghouse servers of the Xerox Corporate Internet. solving long-standing problems of high traffic and database inconsistency.


title: Experience with Processes and Monitors in Mesa
venue: Commun. ACM
directory: 0
created: 2017-09-06T19:02:06.756271973
modified: 2017-09-06T19:02:06.756271973
abstract:
The use of monitors for describing concurrency has been much discussed in the literature. When monitors are used in real systems of any size, however, a number of problems arise which have not been adequately dealt with: the semantics of nested monitor calls; the various ways of defining the meaning of WAIT; priority scheduling; handling of timeouts, aborts and other exceptional conditions; interactions with process creation and destruction; monitoring large numbers of small objects. These problems are addressed by the facilities described here for concurrent programming in Mesa. Experience with several substantial applications gives us some confidence in the validity of our solutions.


title: ASAP: Automatic Smoothing for Attention Prioritization in Streaming Time Series Visualization
venue: ArXiv
directory: 0
created: 2017-09-06T19:02:07.494342041
modified: 2017-09-06T19:02:07.494342041
abstract:
Time series visualization of streaming telemetry (i.e., charting of key metrics such as server load over time) is increasingly prevalent in recent application deployments. Existing systems simply plot the raw data streams as they arrive, potentially obscuring large-scale deviations due to local variance and noise. We propose an alternative: to better prioritize attention in time series exploration and monitoring visualizations, smooth the time series as much as possible to remove noise while still retaining large-scale structure. We develop a new technique for automatically smoothing streaming time series that adaptively optimizes this trade-off between noise reduction (i.e., variance) and outlier retention (i.e., kurtosis). We introduce metrics to quantitatively assess the quality of the choice of smoothing parameter and provide an efficient streaming analytics operator, ASAP, that optimizes these metrics by combining techniques from stream processing, user interface design, and signal processing via a novel autocorrelation-based pruning strategy and pixel-aware preaggregation. We demonstrate that ASAP is able to improve users' accuracy in identifying significant deviations in time series by up to 38.4% while reducing response times by up to 44.3%. Moreover, ASAP delivers these results several orders of magnitude faster than alternative optimization strategies.


title: The semantics of x86-CC multiprocessor machine code
venue: POPL
directory: 0
created: 2017-09-06T19:02:08.151102051
modified: 2017-09-06T19:02:08.151102051
abstract:
Multiprocessors are now dominant, but real multiprocessors do not provide the sequentially consistent memory that is assumed by most work on semantics and verification. Instead, they have subtle relaxed (or weak) memory models, usually described only in ambiguous prose, leading to widespread confusion.
 We develop a rigorous and accurate semantics for x86 multiprocessor programs, from instruction decoding to relaxed memory model, mechanised in HOL. We test the semantics against actual processors and the vendor litmus-test examples, and give an equivalent abstract-machine characterisation of our axiomatic memory model. For programs that are (in some precise sense) data-race free, we prove in HOL that their behaviour is sequentially consistent. We also contrast the x86 model with some aspects of Power and ARM behaviour.
 This provides a solid intuition for low-level programming, and a sound foundation for future work on verification, static analysis, and compilation of low-level concurrent code.


title: HyperDex: a distributed, searchable key-value store
venue: SIGCOMM
directory: 0
created: 2017-09-06T19:02:08.870037109
modified: 2017-09-06T19:02:08.870037109
abstract:
Distributed key-value stores are now a standard component of high-performance web services and cloud computing applications. While key-value stores offer significant performance and scalability advantages compared to traditional databases, they achieve these properties through a restricted API that limits object retrieval---an object can only be retrieved by the (primary and only) key under which it was inserted. This paper presents HyperDex, a novel distributed key-value store that provides a unique <b>search</b> primitive that enables queries on secondary attributes. The key insight behind HyperDex is the concept of <i>hyperspace hashing</i> in which objects with multiple attributes are mapped into a multidimensional hyperspace. This mapping leads to efficient implementations not only for retrieval by primary key, but also for partially-specified secondary attribute searches and range queries. A novel chaining protocol enables the system to achieve strong consistency, maintain availability and guarantee fault tolerance. An evaluation of the full system shows that HyperDex is 12-13x faster than Cassandra and MongoDB for finding partially specified objects. Additionally, HyperDex achieves 2-4x higher throughput for <b>get</b>/<b>put</b> operations.


title: Quantum-enhanced machine learning
venue: Physical review letters
directory: 0
created: 2017-09-06T19:02:10.530903076
modified: 2017-09-06T19:02:10.530903076
abstract:
The emerging field of quantum machine learning has the potential to substantially aid in the problems and scope of artificial intelligence. This is only enhanced by recent successes in the field of classical machine learning. In this work we propose an approach for the systematic treatment of machine learning, from the perspective of quantum information. Our approach is general and covers all three main branches of machine learning: supervised, unsupervised, and reinforcement learning. While quantum improvements in supervised and unsupervised learning have been reported, reinforcement learning has received much less attention. Within our approach, we tackle the problem of quantum enhancements in reinforcement learning as well, and propose a systematic scheme for providing improvements. As an example, we show that quadratic improvements in learning efficiency, and exponential improvements in performance over limited time periods, can be obtained for a broad class of learning problems.


title: Crossing the gap from imperative to functional programming through refactoring
venue: ESEC/SIGSOFT FSE
directory: 0
created: 2017-09-06T19:02:11.139569092
modified: 2017-09-06T19:02:11.139569092
abstract:
Java 8 introduces two functional features: lambda expressions and functional operations like map or filter that apply a lambda expression over the elements of a Collection. Refactoring existing code to use these new features enables explicit but unobtrusive parallelism and makes the code more succinct. However, refactoring is tedious: it requires changing many lines of code. It is also error-prone: the programmer must reason about the control-, data-flow, and side-effects. Fortunately, refactorings can be automated. We designed and implemented LambdaFicator, a tool which automates two refactorings. The first refactoring converts anonymous inner classes to lambda expressions. The second refactoring converts for loops that iterate over Collections to functional operations that use lambda expressions. Using 9 open-source projects, we have applied these two refactorings 1263 and 1709 times, respectively. The results show that LambdaFicator is useful: (i) it is widely applicable, (ii) it reduces the code bloat, (iii) it increases programmer productivity, and (iv) it is accurate.


title: VL2: a scalable and flexible data center network
venue: Commun. ACM
directory: 0
created: 2017-09-06T19:02:11.930014893
modified: 2017-09-06T19:02:11.930014893
abstract:
To be agile and cost effective, data centers should allow dynamic resource allocation across large server pools. In particular, the data center network should enable any server to be assigned to any service. To meet these goals, we present VL2, a practical network architecture that scales to support huge data centers with uniform high capacity between servers, performance isolation between services, and Ethernet layer-2 semantics. VL2 uses (1) flat addressing to allow service instances to be placed anywhere in the network, (2) Valiant Load Balancing to spread traffic uniformly across network paths, and (3) end-system based address resolution to scale to large server pools, without introducing complexity to the network control plane. VL2's design is driven by detailed measurements of traffic and fault data from a large operational cloud service provider. VL2's implementation leverages proven network technologies, already available at low cost in high-speed hardware implementations, to build a scalable and reliable network architecture. As a result, VL2 networks can be deployed today, and we have built a working prototype. We evaluate the merits of the VL2 design using measurement, analysis, and experiments. Our VL2 prototype shuffles 2.7 TB of data among 75 servers in 395 seconds - sustaining a rate that is 94% of the maximum possible.


title: Attacks on the WEP protocol
venue: IACR Cryptology ePrint Archive
directory: 0
created: 2017-09-06T19:02:12.616501953
modified: 2017-09-06T19:02:12.616501953
abstract:
WEP is a protocol for securing wireless networks. In the past years, many attacks on WEP have been published, totally breaking WEP's security. This thesis summarizes all major attacks on WEP. Additionally a new attack, the PTW attack, is introduced, which was partially developed by the author of this document. Some advanced versions of the PTW attack which are more suiteable in certain environments are described as well. Currently, the PTW attack is fastest publicly known key recovery attack against WEP protected networks.


title: Polynomial-time theory of matrix groups
venue: STOC
directory: 0
created: 2017-09-06T19:02:13.295931885
modified: 2017-09-06T19:02:13.295931885
abstract:
We consider matrix groups, specified by a list of generators, over finite fields. The two most basic questions about such groups are membership in and the order of the group. Even in the case of abelian groups it is not known how to answer these questions without solving hard number theoretic problems (factoring and discrete log); in fact, constructive membership testing in the case of 1 &#215; 1 matrices is precisely the discrete log problem. So the reasonable question is whether these problems are solvable in randomized polynomial time using number theory oracles. Building on 25 years of work, including remarkable recent developments by several groups of authors, we are now able to determine the order of a matrix group over a finite field of odd characteristic, and to perform constructive membership testing in such groups, in randomized polynomial time, using oracles for factoring and discrete log. One of the new ingredients of this result is the following. A group is called semisimple if it has no abelian normal subgroups. For matrix groups over finite fields, we show that the order of the largest semisimple quotient can be determined in randomized polynomial time (no number theory oracles required and no restriction on parity). As a by-product, we obtain a natural problem that belongs to BPP and is not known to belong either to RP or to coRP. No such problem outside the area of matrix groups appears to be known. The problem is the decision version of the above: Given a list A of nonsingular d &#215; d matrices over a finite field and an integer N, does the group generated by A have a semisimple quotient of order &gt; N? We also make progress in the area of constructive recognition of simple groups, with the corollary that for a large class of matrix groups, our algorithms become Las Vegas.


title: 3-Sweep: extracting editable objects from a single photo
venue: ACM Trans. Graph.
directory: 0
created: 2017-09-06T19:02:13.900961914
modified: 2017-09-06T19:02:13.900961914
abstract:
We introduce an interactive technique for manipulating simple 3D shapes based on extracting them from a single photograph. Such extraction requires understanding of the components of the shape, their projections, and relations. These simple cognitive tasks for humans are particularly difficult for automatic algorithms. Thus, our approach combines the cognitive abilities of humans with the computational accuracy of the machine to solve this problem. Our technique provides the user the means to quickly create editable 3D parts---human assistance implicitly segments a complex object into its components, and positions them in space. In our interface, three strokes are used to generate a 3D component that snaps to the shape's outline in the photograph, where each stroke defines one dimension of the component. The computer reshapes the component to fit the image of the object in the photograph as well as to satisfy various inferred geometric constraints imposed by its global 3D structure. We show that with this intelligent interactive modeling tool, the daunting task of object extraction is made simple. Once the 3D object has been extracted, it can be quickly edited and placed back into photos or 3D scenes, permitting object-driven photo editing tasks which are impossible to perform in image-space. We show several examples and present a user study illustrating the usefulness of our technique.


title: Functional Programming with Bananas, Lenses, Envelopes and Barbed Wire
venue: FPCA
directory: 0
created: 2017-09-06T19:02:14.533295898
modified: 2017-09-06T19:02:14.533295898
abstract:
We develop a calculus for lazy functional programming based on recursion operators associated with data type deenitions. For these operators we derive various algebraic laws that are useful in deriving and manipulating programs. We shall show that all example functions in Bird and Wadler's \Introduction to Functional Programming" can be expressed using these operators.


title: Removing gamification from an enterprise SNS
venue: CSCW
directory: 0
created: 2017-09-06T19:02:15.236344971
modified: 2017-09-06T19:02:15.236344971
abstract:
Gamification, the use of game mechanics in non-gaming applications, has been applied to various systems to encourage desired user behaviors. In this paper, we examine patterns of user activity in an enterprise social network service after the removal of a points-based incentive system. Our results reveal that the removal of the incentive scheme did reduce overall participation via contribution within the SNS. We also describe the strategies by point leaders and observe that users geographically distant from headquarters tended to comment on profiles outside of their home country. Finally, we describe the implications of the removal of extrinsic rewards, such as points and badges, on social software systems, particularly those deployed within an enterprise.


title: Microreboot - A Technique for Cheap Recovery
venue: OSDI
directory: 0
created: 2017-09-06T19:02:15.868
modified: 2017-09-06T19:02:15.868
abstract:
A significant fraction of software failures in large-scale Internet systems are cured by rebooting, even when the exact failure causes are unknown. However, rebooting can be expensive, causing nontrivial service disruption or downtime even when clusters and failover are employed. In this work we separate process recovery from data recovery to enable microrebooting – a fine-grain technique for surgically recovering faulty application components, without disturbing the rest of the application. We evaluate microrebooting in an Internet auction system running on an application server. Microreboots recover most of the same failures as full reboots, but do so an order of magnitude faster and result in an order of magnitude savings in lost work. This cheap form of recovery engenders a new approach to high availability: microreboots can be employed at the slightest hint of failure, prior to node failover in multi-node clusters, even when mistakes in failure detection are likely; failure and recovery can be masked from end users through transparent call-level re-tries; and systems can be rejuvenated by parts, without ever being shut down.


title: RGB-D Mapping: Using Depth Cameras for Dense 3D Modeling of Indoor Environments
venue: ISER
directory: 0
created: 2017-09-06T19:02:16.60650708
modified: 2017-09-06T19:02:16.60650708
abstract:
1 Problem Statement and Related Work RGB-D cameras are novel sensing systems that capture RGB images along with per-pixel depth information. RGB-D cameras rely on either structured light patterns combined with stereo sensing [6, 10] or time-of-flight laser sensing [1] to generate depth estimates that can be associated with RGB pixels. Very soon, small, high-quality RGB-D cameras developed for computer gaming and home entertainment applications will become available at cost below $100. In this paper we investigate how such cameras can be used in the context of robotics, specifically for building dense 3D maps of indoor environments. Such maps have applications in robot navigation, manipulation, semantic mapping, and telepresence. The robotics and computer vision communities have developed a variety of techniques for 3D mapping based on laser range scans [8, 11], stereo cameras [7], monocular cameras [3], and unsorted collections of photos [4]. While RGB-D cameras provide the opportunity to build 3D maps of unprecedented richness, they have drawbacks that make their application to 3D mapping difficult: They provide depth only up to a limited distance (typically less than 5m), depth values are much noisier than those provided by laser scanners, and their field of view (∼ 60 •) is far more constrained than that of specialized cameras or laser scanners typically used for 3D mapping (∼ 180 •). In our work, we use a camera developed by PrimeSense [10]. The key insights of this investigation are: first, that existing frame matching techniques are not sufficient to provide robust visual odometry with these cameras; second, that a tight integration of depth and color information can yield robust frame matching and loop closure detection; third, that building on best practice techniques in SLAM and computer graphics makes it possible to build and visualize accurate and extremely rich 3D maps with such cameras; and, fourth, that it will be feasible to build complete robot navigation and interaction systems solely based on cheap depth cameras. Following best practice in robot mapping, our RGB-D mapping technique consists of three key components: first, the spatial alignment of consecutive data frames; second, the detection of loop closures; and, third, the globally consistent alignment of the complete data sequence. Alignment between successive frames is computed by jointly optimizing over both appearance and shape matching. Appearance-based alignment is done with RANSAC over SIFT features annotated with 3D position. The 3D SIFT matching requires no initial estimate of the …


title: The Chubby Lock Service for Loosely-Coupled Distributed Systems
venue: OSDI
directory: 0
created: 2017-09-06T19:02:17.386165039
modified: 2017-09-06T19:02:17.386165039
abstract:
We describe our experiences with the Chubby lock service, which is intended to provide coarse-grained locking as well as reliable (though low-volume) storage for a loosely-coupled distributed system. Chubby provides an interface much like a distributed file system with advisory locks, but the design emphasis is on availability and reliability, as opposed to high performance. Many instances of the service have been used for over a year, with several of them each handling a few tens of thousands of clients concurrently. The paper describes the initial design and expected use, compares it with actual use, and explains how the design had to be modified to accommodate the differences.


title: Finding race conditions in Erlang with QuickCheck and PULSE
venue: ICFP
directory: 0
created: 2017-09-06T19:02:18.01811792
modified: 2017-09-06T19:02:18.01811792
abstract:
We address the problem of testing and debugging concurrent, distributed Erlang applications. In concurrent programs, race conditions are a common class of bugs and are very hard to find in practice. Traditional unit testing is normally unable to help finding all race conditions, because their occurrence depends so much on timing. Therefore, race conditions are often found during system testing, where due to the vast amount of code under test, it is often hard to diagnose the error resulting from race conditions. We present three tools (QuickCheck, PULSE, and a visualizer) that in combination can be used to test and debug concurrent programs in unit testing with a much better possibility of detecting race conditions. We evaluate our method on an industrial concurrent case study and illustrate how we find and analyze the race conditions.


title: The algorithmization of counterfactuals
venue: Annals of Mathematics and Artificial Intelligence
directory: 0
created: 2017-09-06T19:02:19.2922229
modified: 2017-09-06T19:02:19.2922229
abstract:
Recent advances in causal reasoning have given rise to a computation model that emulates the process by which humans generate, evaluate and distinguish counterfactual sentences. Though compatible with the “possible worlds” account, this model enjoys the advantages of representational economy, algorithmic simplicity and conceptual clarity. Using this model, the paper demonstrates the processing of counterfactual sentences on a classical example due to Ernest Adam. It then gives a panoramic view of several applications where counterfactual reasoning has benefited problem areas in the empirical sciences.


title: The scalable commutativity rule: designing scalable software for multicore processors
venue: SOSP
directory: 0
created: 2017-09-06T19:02:20.671334961
modified: 2017-09-06T19:02:20.671334961
abstract:
Developing software that scales on multicore processors is an inexact science dominated by guesswork, measurement, and expensive cycles of redesign and reimplementation. Current approaches are workload-driven and, hence, can reveal scalability bottlenecks only for known workloads and available software and hardware. This paper introduces an <i>interface-driven</i> approach to building scalable software. This approach is based on the <i>scalable commutativity rule</i>, which, informally stated, says that whenever interface operations commute, they can be implemented in a way that scales. We formalize this rule and prove it correct for any machine on which conflict-free operations scale, such as current cache-coherent multicore machines. The rule also enables a better design process for scalable software: programmers can now reason about scalability from the earliest stages of interface definition through software design, implementation, and evaluation.


title: A simple totally ordered broadcast protocol
venue: LADIS '08
directory: 0
created: 2017-09-06T19:02:21.581976074
modified: 2017-09-06T19:02:21.581976074
abstract:
This is a short overview of a totally ordered broadcast protocol used by ZooKeeper, called Zab. It is conceptually easy to understand, is easy to implement, and gives high performance. In this paper we present the requirements ZooKeeper makes on Zab, we show how the protocol is used, and we give an overview of how the protocol works.


title: Hopscotch Hashing
venue: DISC
directory: 0
created: 2017-09-06T19:02:23.29389209
modified: 2017-09-06T19:02:23.29389209
abstract:
We present a new resizable sequential and concurrent hash map algorithm directed at both uni-processor and multicore machines. The algorithm is based on a novel hopscotch multi-phased probing and displacement technique that has the flavors of chaining, cuckoo hashing, and linear probing, all put together, yet avoids the limitations and overheads of these former approaches. The resulting algorithm provides a table with very low synchronization overheads and high cache hit ratios. In a series of benchmarks on a state-of-the-art 64-way Niagara II multicore machine, a concurrent version of the new algorithm proves to be highly scalable, delivering in some cases 2 or even 3 times the throughput of today's most efficient concurrent hash algorithm, Lea's ConcurrentHashMap from java.concurr.util. Moreover, in tests on both Intel and Sun uni-processor machines, a sequential version of the algorithm consistently outperforms the most effective sequential hash table algorithms including cuckoo hashing and bounded linear probing. The most interesting feature of the new hopscotch algorithm is that it continues to deliver good performance when the table is more than 90% full, increasing its advantage over other algorithms as the table density grows.


title: Orleans: Distributed Virtual Actors for Programmability and Scalability
directory: 0
created: 2017-09-06T19:02:24.065706055
modified: 2017-09-06T19:02:24.065706055
abstract:
High-scale interactive services demand high throughput with low latency and high availability, difficult goals to meet with the traditional stateless 3-tier architecture. The actor model makes it natural to build a stateful middle tier and achieve the required performance. However, the popular actor model platforms still pass many distributed systems problems to the developers. The Orleans programming model introduces the novel abstraction of virtual actors that solves a number of the complex distributed systems problems, such as reliability and distributed resource management, liberating the developers from dealing with those concerns. At the same time, the Orleans runtime enables applications to attain high performance, reliability and scalability. This paper presents the design principles behind Orleans and demonstrates how Orleans achieves a simple programming model that meets these goals. We describe how Orleans simplified the development of several scalable production applications on Windows Azure, and report on the performance of those production systems.


title: One VM to rule them all
venue: Onward!
directory: 0
created: 2017-09-06T19:02:24.805774902
modified: 2017-09-06T19:02:24.805774902
abstract:
Building high-performance virtual machines is a complex and expensive undertaking; many popular languages still have low-performance implementations. We describe a new approach to virtual machine (VM) construction that amortizes much of the effort in initial construction by allowing new languages to be implemented with modest additional effort. The approach relies on abstract syntax tree (AST) interpretation where a node can rewrite itself to a more specialized or more general node, together with an optimizing compiler that exploits the structure of the interpreter. The compiler uses speculative assumptions and deoptimization in order to produce efficient machine code. Our initial experience suggests that high performance is attainable while preserving a modular and layered architecture, and that new high-performance language implementations can be obtained by writing little more than a stylized interpreter.


title: End-To-End Arguments in System Design
venue: ACM Trans. Comput. Syst.
directory: 0
created: 2017-09-06T19:02:26.553409912
modified: 2017-09-06T19:02:26.553409912
abstract:
This paper presents a design principle that helps guide placement of functions among the modules of a distributed computer system. The principle, called the end-to-end argument, suggests that functions placed at low levels of a system may be redundant or of little value when compared with the cost of providing them at that low level. Examples discussed in the paper include bit error recovery, security using encryption, duplicate message suppression, recovery from system crashes, and delivery acknowledgement. Low level mechanisms to support these functions are justified only as performance enhancements.


title: Fast String Searching
venue: Softw., Pract. Exper.
directory: 0
created: 2017-09-06T19:02:27.391962891
modified: 2017-09-06T19:02:27.391962891
abstract:
SUMMARY Since the Boyer-Moore algorithm was described in 1977, it has been the standard benchmark for the practical string search literature. Yet this yardstick compares badly with current practice. We describe two algorithms that perform 47% fewer comparisons and are about 4.5 times faster across a wide range of architectures and compilers. These new variants are members of a family of algorithms based on the skip loop structure of the preferred , but often neglected, fast form of Boyer-Moore. We present a taxonomy for this family, and describe a toolkit of components that can be used to design an algorithm most appropriate for a given set of requirements.


title: Reflections on Trusting Trust
venue: Commun. ACM
directory: 0
created: 2017-09-06T19:02:28.862888916
modified: 2017-09-06T19:02:28.862888916
abstract:
<italic>To what extent should one trust a statement that a program is free of Trojan horses? Perhaps it is more important to trust the people who wrote the software.</italic>


title: A wait-free queue as fast as fetch-and-add
venue: PPOPP
directory: 0
created: 2017-09-06T19:02:29.391708984
modified: 2017-09-06T19:02:29.391708984
abstract:
Concurrent data structures that have fast and predictable performance are of critical importance for harnessing the power of multicore processors, which are now ubiquitous. Although wait-free objects, whose operations complete in a bounded number of steps, were devised more than two decades ago, wait-free objects that can deliver scalable high performance are still rare.
 In this paper, we present the first wait-free FIFO queue based on fetch-and-add (FAA). While compare-and-swap (CAS) based non-blocking algorithms may perform poorly due to work wasted by CAS failures, algorithms that coordinate using FAA, which is guaranteed to succeed, can in principle perform better under high contention. Along with FAA, our queue uses a custom epoch-based scheme to reclaim memory; on x86 architectures, it requires no extra memory fences on our algorithm's typical execution path. An empirical study of our new FAA-based wait-free FIFO queue under high contention on four different architectures with many hardware threads shows that it outperforms prior queue designs that lack a wait-free progress guarantee. Surprisingly, at the highest level of contention, the throughput of our queue is often as high as that of a microbenchmark that only performs FAA. As a result, our fast wait-free queue implementation is useful in practice on most multi-core systems today. We believe that our design can serve as an example of how to construct other fast wait-free objects.


title: The Redox Code
venue: Antioxidants & redox signaling
directory: 0
created: 2017-09-06T19:02:30.297529053
modified: 2017-09-06T19:02:30.297529053
abstract:
SIGNIFICANCE
The redox code is a set of principles that defines the positioning of the nicotinamide adenine dinucleotide (NAD, NADP) and thiol/disulfide and other redox systems as well as the thiol redox proteome in space and time in biological systems. The code is richly elaborated in an oxygen-dependent life, where activation/deactivation cycles involving O₂ and H₂O₂ contribute to spatiotemporal organization for differentiation, development, and adaptation to the environment. Disruption of this organizational structure during oxidative stress represents a fundamental mechanism in system failure and disease.


RECENT ADVANCES
Methodology in assessing components of the redox code under physiological conditions has progressed, permitting insight into spatiotemporal organization and allowing for identification of redox partners in redox proteomics and redox metabolomics.


CRITICAL ISSUES
Complexity of redox networks and redox regulation is being revealed step by step, yet much still needs to be learned.


FUTURE DIRECTIONS
Detailed knowledge of the molecular patterns generated from the principles of the redox code under defined physiological or pathological conditions in cells and organs will contribute to understanding the redox component in health and disease. Ultimately, there will be a scientific basis to a modern redox medicine.


title: Motion Planning 5.1 Motion Planning Concepts 5.1.1 Configuration Space
directory: 0
created: 2017-09-06T19:02:30.93275708
modified: 2017-09-06T19:02:30.93275708
abstract:
A fundamental robotics task is to plan collision-free motions for complex bodies from a start to a goal position among a collection of static obstacles. Although relative simple, this geometric path planning problem is provably computationally hard [84]. Extensions of this formulation take into account additional constraints that are inherited from mechanical and sensor limitations of real robots such as uncertainties, feedback and differential constraints, which further complicate the development of automated planners. Modern algorithms have been fairly successful in addressing hard instances of the basic geometric problem and a lot of effort is devoted to extend their capabilities to more challenging instances. These algorithms have had widespread success in applications beyond robotics, such as computer animation, virtual prototyping, and computational biology. There are many available surveys [36, 70, 91] and books [23, 57, 60] that cover modern motion planning techniques and applications. This chapter first provides a formulation of the geometric path planning problem in Section 5.1 and then introduces sampling-based planning in Section 5.2. Sampling-based planners are general techniques applicable to a wide set of problems and have been successful in dealing with hard planning instances. For specific, often simpler planning instances, alternative approaches exist and are presented in Section 5.3. These approaches provide theoretical guarantees and for simple planning instances they outperform sampling-based planners. Section 5.4 considers problems that involve differential constraints , while Section 5.5 overviews several other extensions of the basic problem formulation and proposed solutions. Finally, Section 5.7 addresses some important and more advanced topics related to motion planning. This section provides a description of the fundamental motion planning problem or else the geometric path planning problem. Extensions of this basic formulation to more complicated instances will be discussed later in the chapter and they will be revisited throughout this book. In path planning, a complete description of the geometry of a robot A and of a workspace W is provided. The workspace W = R N , in which N = 2 or N = 3, is a static environment populated with obstacles. The goal is to find a collision-free path for A to move from an initial position and orientation to a goal position and orientation. To achieve that, a complete specification of the location of every point on the robot geometry, or a configuration q, must be provided. The configuration space, or C-space (q ∈ C), is the space of all …


title: The Derivative of a Regular Type is its Type of One-Hole Contexts
directory: 0
created: 2017-09-06T19:02:32.40063208
modified: 2017-09-06T19:02:32.40063208
abstract:
Polymorphic regular types are tree-like datatypes generated by polynomial type expressions over a set of free variables and closed under least fixed point. The 'equal-ity types' of Core ML can be expressed in this form. Given such a type expression T with x free, this paper shows a way to represent the one-hole contexts for elements of x within elements of T, together with an operation which will plug an element of x into the hole of such a context. One-hole contexts are given as inhabitants of a regular type @ x T, computed generically from the syntactic structure of T by a mechanism better known as partial differentiation. The relevant notion of containment is shown to be appropriately characterized in terms of derivatives and plugging in. The technology is then exploited to give the one-hole contexts for sub-elements of recursive types in a manner similar to Huet's 'zippers'[Hue97].


venue: PLDI
directory: 0
created: 2017-09-06T19:02:33.097191895
modified: 2017-09-06T19:02:33.097191895
title:
FlowDroid: precise context, flow, field, object-sensitive and lifecycle-aware taint analysis for Android apps

abstract:
Today's smartphones are a ubiquitous source of private and confidential data. At the same time, smartphone users are plagued by carelessly programmed apps that leak important data by accident, and by malicious apps that exploit their given privileges to copy such data intentionally. While existing static taint-analysis approaches have the potential of detecting such data leaks ahead of time, all approaches for Android use a number of coarse-grain approximations that can yield high numbers of missed leaks and false alarms.
 In this work we thus present FlowDroid, a novel and highly precise static taint analysis for Android applications. A precise model of Android's lifecycle allows the analysis to properly handle callbacks invoked by the Android framework, while context, flow, field and object-sensitivity allows the analysis to reduce the number of false alarms. Novel on-demand algorithms help FlowDroid maintain high efficiency and precision at the same time.
 We also propose DroidBench, an open test suite for evaluating the effectiveness and accuracy of taint-analysis tools specifically for Android apps. As we show through a set of experiments using SecuriBench Micro, DroidBench, and a set of well-known Android test applications, FlowDroid finds a very high fraction of data leaks while keeping the rate of false positives low. On DroidBench, FlowDroid achieves 93% recall and 86% precision, greatly outperforming the commercial tools IBM AppScan Source and Fortify SCA. FlowDroid successfully finds leaks in a subset of 500 apps from Google Play and about 1,000 malware apps from the VirusShare project.


title: A Theory of Inferred Causation
venue: KR
directory: 0
created: 2017-09-06T19:02:34.188910889
modified: 2017-09-06T19:02:34.188910889
abstract:
This paper concerns the empirical basis of causation, and addresses the following issues: 1. the clues that might prompt people to perceive causal relationships in uncontrolled observations. 2. the task of inferring causal models from these clues, and 3. whether the models inferred tell us anything useful about the causal mechanisms that underly the observations. We propose a minimal-model semantics of causation, and show that, contrary to common folklore, genuine causal innuences can be distinguished from spurious covariations following standard norms of inductive reasoning. We also establish a sound characterization of the conditions under which such a distinction is possible. We provide an effective algorithm for inferred causation and show that, for a large class of data the algorithm can uncover the direction of causal innuences as deened above. Finally, we address the issue of non-temporal causation.


title: Information-based models for ad hoc IR
venue: SIGIR
directory: 0
created: 2017-09-06T19:02:35.729894043
modified: 2017-09-06T19:02:35.729894043
abstract:
We introduce in this paper the family of information-based models for <i>ad hoc</i> information retrieval. These models draw their inspiration from a long-standing hypothesis in IR, namely the fact that the difference in the behaviors of a word at the document and collection levels brings information on the significance of the word for the document. This hypothesis has been exploited in the 2-Poisson mixture models, in the notion of eliteness in BM25, and more recently in DFR models. We show here that, combined with notions related to burstiness, it can lead to simpler and better models.


title: Coupled 3D reconstruction of sparse facial hair and skin
venue: ACM Trans. Graph.
directory: 0
created: 2017-09-06T19:02:36.427528076
modified: 2017-09-06T19:02:36.427528076
abstract:
Although facial hair plays an important role in individual expression, facial-hair reconstruction is not addressed by current face-capture systems. Our research addresses this limitation with an algorithm that treats hair and skin surface capture together in a coupled fashion so that a high-quality representation of hair fibers as well as the underlying skin surface can be reconstructed. We propose a passive, camera-based system that is robust against arbitrary motion since all data is acquired within the time period of a single exposure. Our reconstruction algorithm detects and traces hairs in the captured images and reconstructs them in 3D using a multiview stereo approach. Our coupled skin-reconstruction algorithm uses information about the detected hairs to deliver a skin surface that lies underneath all hairs irrespective of occlusions. In dense regions like eyebrows, we employ a hair-synthesis method to create hair fibers that plausibly match the image data. We demonstrate our scanning system on a number of individuals and show that it can successfully reconstruct a variety of facial-hair styles together with the underlying skin surface.


title: GigaVoxels: ray-guided streaming for efficient and detailed voxel rendering
venue: SI3D
directory: 0
created: 2017-09-06T19:02:37.164099121
modified: 2017-09-06T19:02:37.164099121
abstract:
We propose a new approach to efficiently render large volumetric data sets. The system achieves interactive to real-time rendering performance for several billion voxels.
 Our solution is based on an adaptive data representation depending on the current view and occlusion information, coupled to an efficient ray-casting rendering algorithm. One key element of our method is to guide data production and streaming directly based on information extracted during rendering.
 Our data structure exploits the fact that in CG scenes, details are often concentrated on the interface between free space and clusters of density and shows that volumetric models might become a valuable alternative as a rendering primitive for real-time applications. In this spirit, we allow a quality/performance trade-off and exploit temporal coherence. We also introduce a mipmapping-like process that allows for an increased display rate and better quality through high quality filtering. To further enrich the data set, we create additional details through a variety of procedural methods.
 We demonstrate our approach in several scenarios, like the exploration of a 3D scan (8192<sup>3</sup> resolution), of hypertextured meshes (16384<sup>3</sup> virtual resolution), or of a fractal (theoretically infinite resolution). All examples are rendered on current generation hardware at 20--90 fps and respect the limited GPU memory budget.


title: Untraceable Electronic Mail, Return Addresses, and Digital Pseudonyms
venue: Commun. ACM
directory: 0
created: 2017-09-06T19:02:37.858753906
modified: 2017-09-06T19:02:37.858753906
abstract:
A technique based on public key cryptography is presented that allows an electronic mail system to hide who a participant communicates with as well as the content of the communication-in spite of an unsecured underlying telecommunication system. The technique does not require a universally trusted authority. One correspondent can remain anonymous to a second, while allowing the second to respond via an untraceble return address. The technique can also be used to form rosters of untraceable digital pseudonyms from selected applications. Applicants retain the exclusive ability to form digital signatures corresponding to their pseudonyms. Elections in which any interested party can verify that the ballots have been properly counted are possible if anonymously mailed ballots are signed with pseudonyms from a roster of registered voters. Another use allows an individual to correspond with a record-keeping organization under a unique pseudonym which appears in a roster of acceptable clients.


title: Applications of Machine Learning in Cancer Prediction and Prognosis
venue: Cancer informatics
directory: 0
created: 2017-09-06T19:02:39.328415039
modified: 2017-09-06T19:02:39.328415039
abstract:
Machine learning is a branch of artificial intelligence that employs a variety of statistical, probabilistic and optimization techniques that allows computers to "learn" from past examples and to detect hard-to-discern patterns from large, noisy or complex data sets. This capability is particularly well-suited to medical applications, especially those that depend on complex proteomic and genomic measurements. As a result, machine learning is frequently used in cancer diagnosis and detection. More recently machine learning has been applied to cancer prognosis and prediction. This latter approach is particularly interesting as it is part of a growing trend towards personalized, predictive medicine. In assembling this review we conducted a broad survey of the different types of machine learning methods being used, the types of data being integrated and the performance of these methods in cancer prediction and prognosis. A number of trends are noted, including a growing dependence on protein biomarkers and microarray data, a strong bias towards applications in prostate and breast cancer, and a heavy reliance on "older" technologies such artificial neural networks (ANNs) instead of more recently developed or more easily interpretable machine learning methods. A number of published studies also appear to lack an appropriate level of validation or testing. Among the better designed and validated studies it is clear that machine learning methods can be used to substantially (15-25%) improve the accuracy of predicting cancer susceptibility, recurrence and mortality. At a more fundamental level, it is also evident that machine learning is also helping to improve our basic understanding of cancer development and progression.


title: Incremental Collection of Mature Objects
venue: IWMM
directory: 0
created: 2017-09-06T19:02:40.067829102
modified: 2017-09-06T19:02:40.067829102
abstract:
We present a garbage collection algorithm that extends generational scav-enging to collect large older generations (mature objects) non-disruptively. The al-gorithm's approach is to process bounded-size pieces of mature object space at each collection; the subtleties lie in guaranteeing that it eventually collects any and all garbage. The algorithm does not assume any special hardware or operating system support, e.g., for forwarding pointers or protection traps. The algorithm copies objects, so it naturally supports compaction and reclustering.


title: Acoustic Cryptanalysis
venue: Journal of Cryptology
directory: 0
created: 2017-09-06T19:02:40.690782959
modified: 2017-09-06T19:02:40.690782959
abstract:
Many computers emit a high-pitched noise during operation, due to vibration in some of their electronic components. These acoustic emanations are more than a nuisance: They can convey information about the software running on the computer and, in particular, leak sensitive information about security-related computations. In a preliminary presentation (Eurocrypt’04 rump session), we have shown that different RSA keys induce different sound patterns, but it was not clear how to extract individual key bits. The main problem was the very low bandwidth of the acoustic side channel (under 20  kHz using common microphones, and a few hundred kHz using ultrasound microphones), and several orders of magnitude below the GHz-scale clock rates of the attacked computers. In this paper, we describe a new acoustic cryptanalysis key extraction attack, applicable to GnuPG’s implementation of RSA. The attack can extract full 4096-bit RSA decryption keys from laptop computers (of various models), within an hour, using the sound generated by the computer during the decryption of some chosen ciphertexts. We experimentally demonstrate such attacks, using a plain mobile phone placed next to the computer, or a more sensitive microphone placed 10 meters away.


title: The Peer Sampling Service: Experimental Evaluation of Unstructured Gossip-Based Implementations
venue: Middleware
directory: 0
created: 2017-09-06T19:02:41.372576904
modified: 2017-09-06T19:02:41.372576904
abstract:
In recent years, the gossip-based communication model in large-scale distributed systems has become a general paradigm with important applications which include information dissemination, aggrega-tion, overlay topology management and synchronization. At the heart of all of these protocols lies a fundamental distributed abstraction: the peer sampling service. In short, the aim of this service is to provide every node with peers to exchange information with. Analytical studies reveal a high reliability and efficiency of gossip-based protocols, under the (often implicit) assumption that the peers to send gossip messages to are selected uniformly at random from the set of all nodes. In practice—instead of requiring all nodes to know all the peer nodes so that a random sample could be drawn—a scalable and efficient way to implement the peer sampling service is by constructing and maintaining dynamic unstructured overlays through gossiping membership information itself. This paper presents a generic framework to implement reliable and efficient peer sampling services. The framework generalizes existing approaches and makes it easy to introduce new ones. We use this framework to explore and compare several implementations of our abstraction. Through extensive experimental analysis, we show that all of them lead to different peer sampling services none of which is uniformly random. This clearly renders traditional theoretical approaches invalid, when the underlying peer sampling service is based on a gossip-based scheme. Our observations also help explain important differences between design choices of peer sampling algorithms, and how these impact the reliability of the corresponding service.


title: DP-SLAM: Fast, Robust Simultaneous Localization and Mapping Without Predetermined Landmarks
venue: IJCAI
directory: 0
created: 2017-09-06T19:02:42.032378906
modified: 2017-09-06T19:02:42.032378906
abstract:
A fundamental task for reasoning with preferences is the following: given input preference information from a user, and outcomes α and β, should we infer that the user will prefer α to β? For CP-nets and related comparative preference formalisms, inferring a preference of α over β using the standard definition of derived preference appears to be extremely hard, and has been proved to be PSPACE-complete in general for CP-nets. Such inference is also rather conservative, only making the assumption of transitivity. This paper defines a less conservative approach to inference which can be applied for very general forms of input. It is shown to be efficient for expressive comparative preference languages, allowing comparisons between arbitrary partial tuples (including complete assignments), and with the preferences being ceteris paribus or not.


title: Two Tasty Servings of Pi
directory: 0
created: 2017-09-06T19:02:43.35389209
modified: 2017-09-06T19:02:43.35389209
abstract:
Perhaps no concept has captured the mathematical imagination more than the circle ratio π, while no mathematical symbol has evoked more mystery, romanticism and popular appeal than π itself. Why this fascination with math-ematics' most famous number? For the professional mathematician, π has long presented a challenge, being taciturn by nature and yielding up its splendours only grudgingly. When they are teased out, however, the effort expended is often handsomely repaid. Among reasons drawing the amateur to π are: its habit of turning up everywhere, often in unexpected places; the highly publicized search for its decimal digits, with world records tumbling almost annually in today's age of the supercomputer; and its long, colourful history filled with incident, drama, humour, genius and eccentricity. Continued interest in π over four millennia has resulted in the accumulation of a vast π-archive. What, then, do the two books under review here contribute to this collection? Pi : A Source Book, the first source book on π ever to be published, documents , mainly through original writings, the history of π from the dawn of


title: Design requirements for technologies that encourage physical activity
venue: CHI
directory: 0
created: 2017-09-06T19:02:46.499763916
modified: 2017-09-06T19:02:46.499763916
abstract:
Overweight and obesity are a global epidemic, with over one billion overweight adults worldwide (300+ million of whom are obese). Obesity is linked to several serious health problems and medical conditions. Medical experts agree that physical activity is critical to maintaining fitness, reducing weight, and improving health, yet many people have difficulty increasing and maintaining physical activity in everyday life. Clinical studies have shown that health benefits can occur from simply increasing the number of steps one takes each day and that social support can motivate people to stay active. In this paper, we describe Houston, a prototype mobile phone application for encouraging activity by sharing step count with friends. We also present four design requirements for technologies that encourage physical activity that we derived from a three-week long in situ pilot study that was conducted with women who wanted to increase their physical activity.


title: Above the Clouds: A Berkeley View of Cloud Computing
directory: 0
created: 2017-09-06T19:02:47.426389893
modified: 2017-09-06T19:02:47.426389893
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.


title: The Case for Determinism in Database Systems
venue: PVLDB
directory: 0
created: 2017-09-06T19:02:48.352452881
modified: 2017-09-06T19:02:48.352452881
abstract:
Replication is a widely used method for achieving high availability in database systems. Due to the nondeterminism inherent in traditional concurrency control schemes, however, special care must be taken to ensure that replicas don't diverge. Log shipping, eager commit protocols, and lazy synchronization protocols are well-understood methods for safely replicating databases, but each comes with its own cost in availability, performance, or consistency. In this paper, we propose a distributed database system which combines a simple deadlock avoidance technique with concurrency control schemes that guarantee equivalence to a predetermined serial ordering of transactions. This effectively removes all nondeterminism from typical OLTP workloads, allowing active replication with no synchronization overhead whatsoever. Further, our system eliminates the requirement for two-phase commit for any kind of distributed transaction, even across multiple nodes within the same replica. By eschewing deadlock detection and two-phase commit, our system under many workloads outper-forms traditional systems that allow nondeterministic transaction reordering.


title: Beyond short snippets: Deep networks for video classification
venue: 2015 IEEE Conference on Computer Vision and Pattern Recognition (CVPR)
directory: 0
created: 2017-09-06T19:02:49.838665039
modified: 2017-09-06T19:02:49.838665039
abstract:
Convolutional neural networks (CNNs) have been extensively applied for image recognition problems giving state-of-the-art results on recognition, detection, segmentation and retrieval. In this work we propose and evaluate several deep neural network architectures to combine image information across a video over longer time periods than previously attempted. We propose two methods capable of handling full length videos. The first method explores various convolutional temporal feature pooling architectures, examining the various design choices which need to be made when adapting a CNN for this task. The second proposed method explicitly models the video as an ordered sequence of frames. For this purpose we employ a recurrent neural network that uses Long Short-Term Memory (LSTM) cells which are connected to the output of the underlying CNN. Our best networks exhibit significant performance improvements over previously published results on the Sports 1 million dataset (73.1% vs. 60.9%) and the UCF-101 datasets with (88.6% vs. 88.0%) and without additional optical flow information (82.6% vs. 73.0%).


title: Simple, Fast, and Practical Non-Blocking and Blocking Concurrent Queue Algorithms
venue: PODC
directory: 0
created: 2017-09-06T19:02:50.787524902
modified: 2017-09-06T19:02:50.787524902
abstract:
Drawing ideas from previous authors, we present a new non-blocking concurrent queue algorithm and a new two-lock queue algorithm in which one enqueue and one de-queue can proceed concurrently. Both algorithms are simple , fast, and practical; we were surprised not to find them in the literature. Experiments on a 12-node SGI Challenge multiprocessor indicate that the new non-blocking queue consistently outperforms the best known alternatives; it is the clear algorithm of choice for machines that provide a universal atomic primitive (e.g. compare and swap or load linked/store conditional). The two-lock concurrent queue outperforms a single lock when several processes are competing simultaneously for access; it appears to be the algorithm of choice for busy queues on machines with non-universal atomic primitives (e.g. test and set). Since much of the motivation for non-blocking algorithms is rooted in their immunity to large, unpredictable delays in process execution, we report experimental results both for systems with dedicated processors and for systems with several processes multiprogrammed on each processor.


title: Unicorn: A System for Searching the Social Graph
venue: PVLDB
directory: 0
created: 2017-09-06T19:02:51.362321045
modified: 2017-09-06T19:02:51.362321045
abstract:
Unicorn is an online, in-memory social graph-aware indexing system designed to search trillions of edges between tens of billions of users and entities on thousands of commodity servers. Unicorn is based on standard concepts in information retrieval, but it includes features to promote results with good social proximity. It also supports queries that require multiple round-trips to leaves in order to retrieve objects that are more than one edge away from source nodes. Unicorn is designed to answer billions of queries per day at latencies in the hundreds of milliseconds, and it serves as an infrastructural building block for Facebook's Graph Search product. In this paper, we describe the data model and query language supported by Unicorn. We also describe its evolution as it became the primary backend for Facebook's search offerings.


title: The Moral Character of Cryptographic Work
venue: IACR Cryptology ePrint Archive
directory: 0
created: 2017-09-06T19:02:52.004144043
modified: 2017-09-06T19:02:52.004144043
abstract:
Cryptography rearranges power: it configures who can do what, from what. This makes cryptography an inherently political tool, and it confers on the field an intrinsically moral dimension. The Snowden revelations motivate a reassessment of the political and moral positioning of cryptography. They lead one to ask if our inability to effectively address mass surveillance constitutes a failure of our field. I believe that it does. I call for a community-wide effort to develop more effective means to resist mass surveillance. I plead for a reinvention of our disciplinary culture to attend not only to puzzles and math, but, also, to the societal implications of our work. Preamble. Most academic cryptographers seem to think that our field is a fun, deep, and politically neutral game—a set of puzzles involving communicating parties and notional adversaries. This vision of who we are animates a field whose work is intellectually impressive and rapidly produced, but also quite inbred and divorced from real-world concerns. Is this what cryptography should be like? Is it how we should expend the bulk of our intellectual capital? For me, these questions came to a head with the Snowden disclosures of 2013. If cryptography's most basic aim is to enable secure communications, how could it not be a colossal failure of our field when ordinary people lack even a modicum of communication privacy when interacting electronically? Yet I soon realized that most cryptographers didn't see it this way. Most seemed to feel that the disclosures didn't even implicate us cryptographers. I think that they do. So I want to talk about the moral obligations of cryptographers , and my community as a whole. This is not a topic cryptographers routinely discuss. In this post-Snowden era, I think it needs to be. The essay and talk are addressed to the cryptographic community—my community— and the words " we " and " our " should be so interpreted. I apologize in advance if I offend anyone with any of my comments; nothing of the sort is my intent.


title: Joint action: bodies and minds moving together.
venue: Trends in cognitive sciences
directory: 0
created: 2017-09-06T19:02:53.012899902
modified: 2017-09-06T19:02:53.012899902
abstract:
The ability to coordinate our actions with those of others is crucial for our success as individuals and as a species. Progress in understanding the cognitive and neural processes involved in joint action has been slow and sparse, because cognitive neuroscientists have predominantly studied individual minds and brains in isolation. However, in recent years, major advances have been made by investigating perception and action in social context. In this article we outline how studies on joint attention, action observation, task sharing, action coordination and agency contribute to the understanding of the cognitive and neural processes supporting joint action. Several mechanisms are proposed that allow individuals to share representations, to predict actions, and to integrate predicted effects of own and others' actions.


title: Why Silent Updates Boost Security
directory: 0
created: 2017-09-06T19:02:53.637066895
modified: 2017-09-06T19:02:53.637066895
abstract:
Security fixes and feature improvements don't benefit the end user of software if the update mechanism and strategy is not effective. In this paper we analyze the effectiveness of different Web browsers update mechanisms; from Google Chrome's silent update mechanism to Opera's update requiring a full re-installation. We use anonymized logs from Google's world wide distributed Web servers. An analysis of the logged HTTP user-agent strings that Web browsers report when requesting any Web page is used to measure the daily browser version shares in active use. To the best of our knowledge, this is the first global scale measurement of Web browser update effectiveness comparing four different Web browser update strategies including Google Chrome. Our measurements prove that silent updates and little dependency on the underlying operating system are most effective to get users of Web browsers to surf the Web with the latest browser version. However, there is still room for improvement as we found. Google Chrome's advantageous silent update mechanism has been open sourced in April 2009. We recommend any software vendor to seriously consider deploying silent updates as this benefits both the vendor and the user, especially for widely used attack-exposed applications like Web browsers and browser plug-ins.


title: A DNA-Based Archival Storage System
venue: ASPLOS
directory: 0
created: 2017-09-06T19:02:54.339066895
modified: 2017-09-06T19:02:54.339066895
abstract:
Demand for data storage is growing exponentially, but the capacity of existing storage media is not keeping up. Using DNA to archive data is an attractive possibility because it is extremely dense, with a raw limit of 1 exabyte/mm<sup>3</sup> (109 GB/mm<sup>3</sup>), and long-lasting, with observed half-life of over 500 years. This paper presents an architecture for a DNA-based archival storage system. It is structured as a key-value store, and leverages common biochemical techniques to provide random access. We also propose a new encoding scheme that offers controllable redundancy, trading off reliability for density. We demonstrate feasibility, random access, and robustness of the proposed encoding with wet lab experiments involving 151 kB of synthesized DNA and a 42 kB random-access subset, and simulation experiments of larger sets calibrated to the wet lab experiments. Finally, we highlight trends in biotechnology that indicate the impending practicality of DNA storage for much larger datasets.


title: Epidemic Broadcast Trees
venue: 2007 26th IEEE International Symposium on Reliable Distributed Systems (SRDS 2007)
directory: 0
created: 2017-09-06T19:02:55.915253906
modified: 2017-09-06T19:02:55.915253906
abstract:
There is an inherent trade-off between epidemic and deterministic tree-based broadcast primitives. Tree-based approaches have a small message complexity in steady-state but are very fragile in the presence of faults. Gossip, or epidemic, protocols have a higher message complexity but also offer much higher resilience. This paper proposes an integrated broadcast scheme that combines both approaches. We use a low cost scheme to build and maintain broadcast trees embedded on a gossip-based overlay. The protocol sends the message payload preferably via tree branches but uses the remaining links of the gossip overlay for fast recovery and expedite tree healing. Experimental evaluation presented in the paper shows that our new strategy has a low overhead and that is able to support large number of faults while maintaining a high reliability.


title: ScatterAlloc: Massively parallel dynamic memory allocation for the GPU
venue: 2012 Innovative Parallel Computing (InPar)
directory: 0
created: 2017-09-06T19:02:56.531697998
modified: 2017-09-06T19:02:56.531697998
abstract:
In this paper, we analyze the special requirements of a dynamic memory allocator that is designed for massively parallel architectures such as Graphics Processing Units (GPUs). We show that traditional strategies, which work well on CPUs, are not well suited for the use on GPUs and present the thorough design of ScatterAlloc, which can efficiently deal with hundreds of requests in parallel. Our allocator greatly reduces collisions and congestion by scattering memory requests based on hashing. We analyze ScatterAlloc in terms of allocation speed, data access time and fragmentation, and compare it to current state-of-the-art allocators, including the one provided with the NVIDIA CUDA toolkit. Our results show, that ScatterAlloc clearly outperforms these other approaches, yielding speed-ups between 10 to 100.


title: Hoard: A Scalable Memory Allocator for Multithreaded Applications
venue: ASPLOS
directory: 0
created: 2017-09-06T19:02:58.056206055
modified: 2017-09-06T19:02:58.056206055
abstract:
Parallel, multithreaded C and C++ programs such as web servers, database managers, news servers, and scientific applications are becoming increasingly prevalent. For these applications, the memory allocator is often a bottleneck that severely limits program performance and scalability on multiprocessor systems. Previous allocators suffer from problems that include poor performance and scalability, and heap organizations that introduce false sharing. Worse, many allocators exhibit a dramatic increase in memory consumption when confronted with a producer-consumer pattern of object allocation and freeing. This increase in memory consumption can range from a factor of <i>P</i> (the number of processors) to unbounded memory consumption.This paper introduces Hoard, a fast, highly scalable allocator that largely avoids false sharing and is memory efficient. Hoard is the first allocator to simultaneously solve the above problems. Hoard combines one global heap and per-processor heaps with a novel discipline that provably bounds memory consumption and has very low synchronization costs in the common case. Our results on eleven programs demonstrate that Hoard yields low average fragmentation and improves overall program performance over the standard Solaris allocator by up to a factor of 60 on 14 processors, and up to a factor of 18 over the next best allocator we tested.


title: Analyzing inter-application communication in Android
venue: MobiSys
directory: 0
created: 2017-09-06T19:02:58.913718018
modified: 2017-09-06T19:02:58.913718018
abstract:
Modern smartphone operating systems support the development of third-party applications with open system APIs. In addition to an open API, the Android operating system also provides a rich inter-application message passing system. This encourages inter-application collaboration and reduces developer burden by facilitating component reuse. Unfortunately, message passing is also an application attack surface. The content of messages can be sniffed, modified, stolen, or replaced, which can compromise user privacy. Also, a malicious application can inject forged or otherwise malicious messages, which can lead to breaches of user data and violate application security policies.
 We examine Android application interaction and identify security risks in application components. We provide a tool, ComDroid, that detects application communication vulnerabilities. ComDroid can be used by developers to analyze their own applications before release, by application reviewers to analyze applications in the Android Market, and by end users. We analyzed 20 applications with the help of ComDroid and found 34 exploitable vulnerabilities; 12 of the 20 applications have at least one vulnerability.


title: Panorama weaving: fast and flexible seam processing
venue: ACM Trans. Graph.
directory: 0
created: 2017-09-06T19:02:59.471416992
modified: 2017-09-06T19:02:59.471416992
abstract:
A fundamental step in stitching several pictures to form a larger mosaic is the computation of boundary seams that minimize the visual artifacts in the transition between images. Current seam computation algorithms use optimization methods that may be slow, sequential, memory intensive, and prone to finding suboptimal solutions related to local minima of the chosen energy function. Moreover, even when these techniques perform well, their solution may not be perceptually ideal (or even good). Such an inflexible approach does not allow the possibility of user-based improvement. This paper introduces the <i>Panorama Weaving</i> technique for seam creation and editing in an image mosaic. First, <i>Panorama Weaving</i> provides a procedure to create boundaries for panoramas that is fast, has low memory requirements and is easy to parallelize. This technique often produces seams with lower energy than the competing global technique. Second, it provides the first interactive technique for the exploration of the seam solution space. This powerful editing capability allows the user to automatically extract energy minimizing seams given a sparse set of constraints. With a variety of empirical results, we show how <i>Panorama Weaving</i> allows the computation and editing of a wide range of digital panoramas including unstructured configurations.


title: Managing Update Conflicts in Bayou, a Weakly Connected Replicated Storage System
directory: 0
created: 2017-09-06T19:03:00.140837891
modified: 2017-09-06T19:03:00.140837891
abstract:
Bayou is a replicated, weakly consistent storage system designed for a mobile computing environment that includes portable machines with less than ideal network connectivity. To maximize availability, users can read and write any accessible replica. Bayou's design has focused on supporting application-specific mechanisms to detect and resolve the update conflicts that naturally arise in such a system, ensuring that replicas move towards eventual consistency, and defining a protocol by which the resolution of update conflicts stabilizes. It includes novel methods for conflict detection, called dependency checks, and per-write conflict resolution based on client-provided merge procedures. To guarantee eventual consistency, Bayou servers must be able to roll-back the effects of previously executed writes and redo them according to a global serialization order. Furthermore, Bayou permits clients to observe the results of all writes received by a server, including tentative writes whose conflicts have not been ultimately resolved. This paper presents the motivation for and design of these mechanisms and describes the experiences gained with an initial implementation of the system.


title: High-quality single-shot capture of facial geometry
venue: ACM Trans. Graph.
directory: 0
created: 2017-09-06T19:03:01.627975098
modified: 2017-09-06T19:03:01.627975098
abstract:
This paper describes a passive stereo system for capturing the 3D geometry of a face in a single-shot under standard light sources. The system is low-cost and easy to deploy. Results are submillimeter accurate and commensurate with those from state-of-the-art systems based on active lighting, and the models meet the quality requirements of a demanding domain like the movie industry. Recovered models are shown for captures from both high-end cameras in a studio setting and from a consumer binocular-stereo camera, demonstrating scalability across a spectrum of camera deployments, and showing the potential for 3D face modeling to move beyond the professional arena and into the emerging consumer market in stereoscopic photography.
 Our primary technical contribution is a modification of standard stereo refinement methods to capture pore-scale geometry, using a qualitative approach that produces visually realistic results. The second technical contribution is a calibration method suited to face capture systems. The systemic contribution includes multiple demonstrations of system robustness and quality. These include capture in a studio setup, capture off a consumer binocular-stereo camera, scanning of faces of varying gender and ethnicity and age, capture of highly-transient facial expression, and scanning a physical mask to provide ground-truth validation.


title: Efficient Lock-free Binary Search Trees
venue: PODC
directory: 0
created: 2017-09-06T19:03:02.4040979
modified: 2017-09-06T19:03:02.4040979
abstract:
In this paper we present a novel algorithm for concurrent lock-free internal binary search trees (BST) and implement a Set abstract data type (ADT) based on that. We show that in the presented lock-free BST algorithm the amortized step complexity of each set operation - Add, Remove and Contains - is O(H(n) + c), where H(n) is the height of the BST with n number of nodes and c is the contention during the execution. Our algorithm adapts to contention measures according to read-write load. If the situation is read-heavy, the operations avoid helping the concurrent Remove operations during traversal, and adapt to interval contention. However, for the write-heavy situations we let an operation help a concurrent Remove, even though it is not obstructed. In that case, an operation adapts to point contention. It uses single-word compare-and-swap (CAS) operations. We show that our algorithm has improved disjoint-access-parallelism compared to similar existing algorithms. We prove that the presented algorithm is linearizable. To the best of our knowledge, this is the first algorithm for any concurrent tree data-structure in which the modify operations are performed with an additive term of contention measure.


title: Making Programs Forget: Enforcing Lifetime for Sensitive Data
venue: HotOS
directory: 0
created: 2017-09-06T19:03:03.136187988
modified: 2017-09-06T19:03:03.136187988
abstract:
This paper introduces guaranteed data lifetime, a novel system property ensuring that sensitive data cannot be retrieved from a system beyond a specified time. The trivial way to achieve this is to " reboot " ; however, this is disruptive from the user's perspective, and may not even eliminate disk copies. We discuss an alternate approach based on state reincarnation where data expiry is completely transparent to the user, and can be used even if the system is not designed a priori to provide the property.


title: Differential Privacy
venue: ICALP
directory: 0
created: 2017-09-06T19:03:03.84175708
modified: 2017-09-06T19:03:03.84175708
abstract:
In 1977 Dalenius articulated a desideratum for statistical databases: nothing about an individual should be learnable from the database that cannot be learned without access to the database. We give a general impossibility result showing that a formalization of Dalenius' goal along the lines of semantic security cannot be achieved. Contrary to intuition, a variant of the result threatens the privacy even of someone not in the database. This state of affairs suggests a new measure, differential privacy, which, intuitively, captures the increased risk to one's privacy incurred by participating in a database. The techniques developed in a sequence of papers [8, 13, 3], culminating in those described in [12], can achieve any desired level of privacy under this measure. In many cases, extremely accurate information about the database can be provided while simultaneously ensuring very high levels of privacy.


title: Adaptive Road Following using Self-Supervised Learning and Reverse Optical Flow
venue: Robotics: Science and Systems
directory: 0
created: 2017-09-06T19:03:04.590306885
modified: 2017-09-06T19:03:04.590306885
abstract:
— The majority of current image-based road following algorithms operate, at least in part, by assuming the presence of structural or visual cues unique to the roadway. As a result, these algorithms are poorly suited to the task of tracking unstructured roads typical in desert environments. In this paper, we propose a road following algorithm that operates in a self-supervised learning regime, allowing it to adapt to changing road conditions while making no assumptions about the general structure or appearance of the road surface. An application of optical flow techniques, paired with one-dimensional template matching, allows identification of regions in the current camera image that closely resemble the learned appearance of the road in the recent past. The algorithm assumes the vehicle lies on the road in order to form templates of the road's appearance. A dynamic programming variant is then applied to optimize the 1-D template match results while enforcing a constraint on the maximum road curvature expected. Algorithm output images, as well as quantitative results, are presented for three distinct road types encountered in actual driving video acquired in the California Mojave Desert.


title: A history of Haskell: being lazy with class
venue: HOPL
directory: 0
created: 2017-09-06T19:03:05.262572021
modified: 2017-09-06T19:03:05.262572021
abstract:
This paper describes the history of Haskell, including its genesis and principles, technical contributions, implementations and tools, and applications and impact.


title: NTRU Prime
venue: IACR Cryptology ePrint Archive
directory: 0
created: 2017-09-06T19:03:05.926577881
modified: 2017-09-06T19:03:05.926577881
abstract:
Focus of this talk: motivation. 2 Can we predict future attacks? 1996 Dobbertin–Bosselaers– Preneel " RIPEMD-160: a strengthened version of RIPEMD " : " It is anticipated that these techniques can be used to produce collisions for MD5 and perhaps also for RIPEMD. This will probably require an additional effort, but it no longer seems as far away as it was a year ago. " 1996 Robshaw: Collisions " should be expected " ; upgrade " when practical and convenient ". 1 rime. Bernstein y of Illinois at Chicago & he Universiteit Eindhoven o/papers.html ime is joint work with: ok Chuengsatiansup nge van Vredendaal he Universiteit Eindhoven this talk: motivation. 2 Can we predict future attacks? 1996 Dobbertin–Bosselaers– Preneel " RIPEMD-160: a strengthened version of RIPEMD " : " It is anticipated that these techniques can be used to produce collisions for MD5 and perhaps also for RIPEMD. This will probably require an additional effort, but it no longer seems as far away as it was a year ago. " 1996 Robshaw: Collisions " should be expected " ; upgrade " when practical and convenient ". Imagine " This is The atta not brea MD5, so point of speculati is contro and crea state of alternati the very 1 is at Chicago & iteit Eindhoven .html t work with: gsatiansup endaal iteit Eindhoven motivation.


title: Replication, history, and grafting in the Ori file system
venue: SOSP
directory: 0
created: 2017-09-06T19:03:06.717608887
modified: 2017-09-06T19:03:06.717608887
abstract:
Ori is a file system that manages user data in a modern setting where users have multiple devices and wish to access files everywhere, synchronize data, recover from disk failure, access old versions, and share data. The key to satisfying these needs is keeping and replicating file system history across devices, which is now practical as storage space has outpaced both wide-area network (WAN) bandwidth and the size of managed data. Replication provides access to files from multiple devices. History provides synchronization and offline access. Replication and history together subsume backup by providing snapshots and avoiding any single point of failure. In fact, Ori is fully peer-to-peer, offering opportunistic synchronization between user devices in close proximity and ensuring that the file system is usable so long as a single replica remains. Cross-file system data sharing with history is provided by a new mechanism called <i>grafting</i>. An evaluation shows that as a local file system, Ori has low overhead compared to a File system in User Space (FUSE) loopback driver; as a network file system, Ori over a WAN outperforms NFS over a LAN.


title: The Dangers of Replication and a Solution
venue: SIGMOD Conference
directory: 0
created: 2017-09-06T19:03:07.842531982
modified: 2017-09-06T19:03:07.842531982
abstract:
Update anywhere-anytime-anyway transactional replication has unstable behavior as the workload scales up: a ten-fold increase in nodes and traffic gives a thousand fold increase in deadlocks or reconciliations. Master copy replication (primary copy) schemes reduce this problem. A simple analytic model demonstrates these results. A new two-tier replication algorithm is proposed that allows mobile (disconnected) applications to propose tentative update transactions that are later applied to a master copy. Commutative update transactions avoid the instability of other replication schemes.


title: RRB-Trees: Efficient Immutable Vectors
directory: 0
created: 2017-09-06T19:03:08.454440918
modified: 2017-09-06T19:03:08.454440918
abstract:
Immutable vectors are a convenient data structure for functional programming and part of the standard library of modern languages like Clojure and Scala. The common implementation is based on wide trees with a fixed number of children per node, which allows fast indexed lookup and update operations. In this paper we extend the vector data type with a new underlying data structure, Relaxed Radix Balanced Trees (RRB-Trees), and show how this structure allows immutable vector concatenation, insert-at and splits in O(logN) time while maintaining the index, update and iteration speeds of the original vector data structure.


title: The operating system: should there be one?
venue: PLOS@SOSP
directory: 0
created: 2017-09-06T19:03:11.349419922
modified: 2017-09-06T19:03:11.349419922
abstract:
Operating systems and programming languages are often informally evaluated on their conduciveness towards composition. We revisit Dan Ingalls' Smalltalk-inspired position that "an operating system is a collection of things that don't fit inside a language; there shouldn't be one", discussing what it means, why it appears not to have materialised, and how we might work towards the same effect in the postmodern reality of today's systems. We argue that the trajectory of the "file" abstraction through Unix and Plan 9 culminates in a Smalltalk-style object, with other filesystem calls as a primitive metasystem. Meanwhile, the key features of Smalltalk have many analogues in the fragmented world of Unix programming (including techniques at the library, file and socket level). Based on the themes of unifying OS- and language-level mechanisms, and increasing the expressiveness of the meta-system, we identify some evolutionary approaches to a postmodern realisation of Ingalls' vision, arguing that an operating system is still necessary after all.


title: EM Algorithms for Probabilistic Mapping Networks
directory: 0
created: 2017-09-06T19:03:11.976951904
modified: 2017-09-06T19:03:11.976951904
abstract:
The Expectation-Maximization (EM) algorithm is a general technique for maximum likelihood estimation (MLE). In this paper we present several of the important theoretical and practical issues associated with Gaussian mixture mod-eling (GMM) within the EM framework. First, we propose an EM algorithm for estimating the parameters of a special GMM structure, named a probablistic mapping network (PMN), where the Gaussian probability density function is realized as an internal node. In this way, the EM algorithm is extended to deal with the supervised learning of a multicategory classiication problem and serve as a parameter estimator of the neural network Gaussian classiier. Then, a generalized EM (GEM) algorithm is developed as an alternative to the MLE problem of PMN. This is followed by a discussion on the computational considerations and algorithmic comparisons. It is shown that GEM converges faster than EM to the same solution space. The computational eeciency and the numerical stability of the training algorithm beneet from the well-established EM framework. The eeectiveness of the proposed PMN architecture and developed EM algorithms are assessed by conducting a set of speaker recognition experiments. INRIA Apprentissage de RRseaux Probabilistes par Algorithmes EM RRsumm : L'algorithme "Expectation-Maximisation" (EM) est une technique gg-nnrale pour l'estimation par maximum de vraisemblance. Ce document prrsente quelques aspects thhoriques et pratiques importants liis la moddlisation par mm-langes de gaussienne (GMM) dans le cadre EM. Nous proposons d'abord un algo-rithme EM pour estimer le parammtres d'un moddle GMM particulier, appell PMN ("probabilistic mapping network"), dans lequel la fonction de densitt de probabilitt gaussienne est calculle par un noeud interne du rrseau. Nons prrsentons ensuite un algorithm EM ggnnraliss (GEM) comme une solution alternative l'estimation par maximum de vraisemblance d'un PMN. Cette prrsentation est complltte par une discussion sur les aspects calculatoires comparrs des deux algorithmes EM et GEM. Nous montrons en particulier que GEM converge plus vite que EM vers le mmme espace de solutions. L'eecacitt pratique de l'architecture PMN et des algo-rithmes EM proposss est valuue travers un ensemble d'exemples pratiques dans le domaine de la reconnaissance de locuteurs.


title: A Fast String Searching Algorithm
venue: Commun. ACM
directory: 0
created: 2017-09-06T19:03:12.830452881
modified: 2017-09-06T19:03:12.830452881
abstract:
An algorithm is presented that searches for the location, &#8220;<italic>i</italic>l&#8221; of the first occurrence of a character string, &#8220;<italic>pat</italic>,&#8221; in another string, &#8220;<italic>string</italic>.&#8221; During the search operation, the characters of <italic>pat</italic> are matched starting with the last character of <italic>pat</italic>. The information gained by starting the match at the end of the pattern often allows the algorithm to proceed in large jumps through the text being searched. Thus the algorithm has the unusual property that, in most cases, not all of the first <italic>i</italic> characters of <italic>string</italic> are inspected. The number of characters actually inspected (on the average) decreases as a function of the length of <italic>pat</italic>. For a random English pattern of length 5, the algorithm will typically inspect <italic>i</italic>/4 characters of <italic>string</italic> before finding a match at <italic>i</italic>. Furthermore, the algorithm has been implemented so that (on the average) fewer than <italic>i</italic> + <italic>patlen</italic> machine instructions are executed. These conclusions are supported with empirical evidence and a theoretical analysis of the average behavior of the algorithm. The worst case behavior of the algorithm is linear in <italic>i</italic> + <italic>patlen</italic>, assuming the availability of array space for tables linear in <italic>patlen</italic> plus the size of the alphabet.
3~


title: The chemical basis of morphogenesis
directory: 0
created: 2017-09-06T19:03:13.690751953
modified: 2017-09-06T19:03:13.690751953
abstract:
Concurrent algorithms and the memory bus have garnered improbable interest from both theorists and futurists in the last several years. In fact, few scholars would disagree with the refinement of multicast heuristics. In order to fulfill this objective, we present a framework for virtual technology (Puck), confirming that lambda calculus can be made wearable, self-learning, and unstable.


title: Coq: the world's best macro assembler?
venue: PPDP
directory: 0
created: 2017-09-06T19:03:14.216634033
modified: 2017-09-06T19:03:14.216634033
abstract:
We describe a Coq formalization of a subset of the x86 architecture. One emphasis of the model is brevity: using dependent types, type classes and notation we give the x86 semantics a makeover that counters its reputation for baroqueness. We model bits, bytes, and memory concretely using functions that can be computed inside Coq itself; concrete representations are mapped across to mathematical objects in the SSReflect library (naturals, and integers modulo 2<sup><i>n</i></sup>) to prove theorems. Finally, we use notation to support conventional assembly code syntax inside Coq, including lexically-scoped labels. Ordinary Coq definitions serve as a powerful "macro" feature for everything from simple conditionals and loops to stack-allocated local variables and procedures with parameters. Assembly code can be assembled within Coq, producing a sequence of hex bytes. The assembler enjoys a correctness theorem relating machine code in memory to a separation-logic formula suitable for program verification.


title: On the scalability of the Erlang term storage
venue: Erlang Workshop
directory: 0
created: 2017-09-06T19:03:14.880659912
modified: 2017-09-06T19:03:14.880659912
abstract:
The Erlang Term Storage (ETS) is an important component of the Erlang runtime system, especially when parallelism enters the picture, as it provides an area where processes can share data. It is therefore important that ETS's implementation is efficient, flexible, but also as scalable as possible. In this paper we document and describe the current implementation of ETS in detail, discuss the main data structures that support it, and present the main points of its evolution across Erlang/OTP releases. More importantly, we measure the scalability of its implementations, the effects of its tuning options, identify bottlenecks, and suggest changes and alternative designs that can improve both its performance and its scalability.


title: Don't settle for eventual: scalable causal consistency for wide-area storage with COPS
venue: SOSP
directory: 0
created: 2017-09-06T19:03:15.520718018
modified: 2017-09-06T19:03:15.520718018
abstract:
Geo-replicated, distributed data stores that support complex online applications, such as social networks, must provide an "always-on" experience where operations always complete with low latency. Today's systems often sacrifice strong consistency to achieve these goals, exposing inconsistencies to their clients and necessitating complex application logic. In this paper, we identify and define a consistency model---causal consistency with convergent conflict handling, or <i>causal</i>+---that is the strongest achieved under these constraints.
 We present the design and implementation of COPS, a key-value store that delivers this consistency model across the wide-area. A key contribution of COPS is its scalability, which can enforce causal dependencies between keys stored across an entire cluster, rather than a single server like previous systems. The central approach in COPS is tracking and explicitly checking whether causal dependencies between keys are satisfied in the local cluster before exposing writes. Further, in COPS-GT, we introduce get transactions in order to obtain a consistent view of multiple keys without locking or blocking. Our evaluation shows that COPS completes operations in less than a millisecond, provides throughput similar to previous systems when using one server per cluster, and scales well as we increase the number of servers in each cluster. It also shows that COPS-GT provides similar latency, throughput, and scaling to COPS for common workloads.


title: Structural asymmetries of perisylvian regions in the preterm newborn
venue: NeuroImage
directory: 0
created: 2017-09-06T19:03:16.172923096
modified: 2017-09-06T19:03:16.172923096
abstract:
During the last trimester of human pregnancy, the cerebral cortex of foetuses becomes greatly and quickly gyrified, and post-mortem studies have demonstrated that hemispheres are already asymmetric at the level of Heschl gyrus, planum temporale and superior temporal sulcus (STS). Recently, magnetic resonance imaging (MRI) and dedicated post-processing tools enabled the quantitative study of brain development non-invasively in the preterm newborn. However, previous investigations were conducted either over the whole brain or in specific sulci. These approaches may consequently fail to highlight most cerebral sites, where anatomical landmarks are hard to delineate among individuals. In this cross-sectional study, we aimed to blindly and automatically map early asymmetries over the immature cortex. Voxel-based analyses of cortical and white matter masks were performed over a group of 25 newborns from 26 to 36 weeks of gestational age. Inter-individual variations associated with increasing age were first detected in large cerebral regions, with a prevalence of the right hemisphere in comparison with the left. Asymmetries were further highlighted in three specific cortical regions. Confirming previous studies, we observed deeper STS on the right side and larger posterior region of the sylvian fissure on the left side, close to planum temporale. For the first time, we also detected larger anterior region of the sylvian fissure on the left side, close to Broca's region. This study demonstrated that perisylvian regions are the only regions to be asymmetric from early on, suggesting their anatomical specificity for the emergence of functional lateralization in language processing prior to language exposure.


title: Authoritative Sources in a Hyperlinked Environment
venue: SODA
directory: 0
created: 2017-09-06T19:03:16.920866943
modified: 2017-09-06T19:03:16.920866943
abstract:
The network structure of a hyperlinked environment can be a rich source of information about the content of the environment, provided we have effective means for understanding it. We develop a set of algorithmic tools for extracting information from the link structures of such environments, and report on experiments that demonstrate their effectiveness in a variety of context on the World Wide Web. The central issue we address within our framework is the distillation of broad search topics, through the discovery of &#8220;authorative&#8221; information sources on such topics. We propose and test an algorithmic formulation of the notion of authority, based on the relationship between a set of relevant authoritative pages and the set of &#8220;hub pages&#8221; that join them together in  the link structure. Our formulation has connections to the eigenvectors of certain matrices associated with the link graph; these connections in turn motivate additional heuristrics for link-based analysis.


title: From game design elements to gamefulness: defining "gamification"
venue: MindTrek
directory: 0
created: 2017-09-06T19:03:17.488041016
modified: 2017-09-06T19:03:17.488041016
abstract:
Recent years have seen a rapid proliferation of mass-market consumer software that takes inspiration from video games. Usually summarized as "gamification", this trend connects to a sizeable body of existing concepts and research in human-computer interaction and game studies, such as serious games, pervasive games, alternate reality games, or playful design. However, it is not clear how "gamification" relates to these, whether it denotes a novel phenomenon, and how to define it. Thus, in this paper we investigate "gamification" and the historical origins of the term in relation to precursors and similar concepts. It is suggested that "gamified" applications provide insight into novel, <i>gameful</i> phenomena complementary to playful phenomena. Based on our research, we propose a definition of "gamification" as <i>the use of game design elements in non-game contexts</i>.


title: Cassandra – A Decentralized Structured Storage System
directory: 0
created: 2017-09-06T19:03:18.651454102
modified: 2017-09-06T19:03:18.651454102
abstract:
Cassandra is a distributed database bringing together Dynamo's fully distributed design and Bigtable's ColumnFamily-based data model. It is highly scalable both in terms of storage volume and request throughput while not being subject to any single point of failure. This paper presents an architectural overview of Cassandra and also discusses how its design is founded in fundamental principles of distributed systems. Some practical applications that use Cassandra are also listed. This paper also presents why Cassandra may not be a good choice for some applications by highlighting its limitations.


title: IDF for Word N-grams
venue: TOIS
directory: 0
created: 2017-09-06T19:03:19.211346924
modified: 2017-09-06T19:03:19.211346924
abstract:
Inverse Document Frequency (IDF) is widely accepted term weighting scheme whose robustness is supported by many theoretical justifications. However, applying IDF to word N-grams (or simply N-grams) of any length without relying on heuristics has remained a challenging issue. This article describes a theoretical extension of IDF to handle N-grams. First, we elucidate the theoretical relationship between IDF and information distance, a universal metric defined by the Kolmogorov complexity. Based on our understanding of this relationship, we propose N-gram IDF, a new IDF family that gives fair weights to words and phrases of any length. Based only on the magnitude relation of N-gram IDF weights, dominant N-grams among overlapping N-grams can be determined. We also propose an efficient method to compute the N-gram IDF weights of all N-grams by leveraging the enhanced suffix array and wavelet tree. Because the exact computation of N-gram IDF provably requires significant computational cost, we modify it to a fast approximation method that can estimate weight errors analytically and maintain application-level performance. Empirical evaluations with unsupervised/supervised key term extraction and web search query segmentation with various experimental settings demonstrate the robustness and language-independent nature of the proposed N-gram IDF.


title: Procedural modeling of buildings
venue: ACM Trans. Graph.
directory: 0
created: 2017-09-06T19:03:22.106775879
modified: 2017-09-06T19:03:22.106775879
abstract:
<i>CGA shape</i>, a novel shape grammar for the procedural modeling of CG architecture, produces building shells with high visual quality and geometric detail. It produces extensive architectural models for computer games and movies, at low cost. Context sensitive shape rules allow the user to specify interactions between the entities of the hierarchical shape descriptions. Selected examples demonstrate solutions to previously unsolved modeling problems, especially to consistent mass modeling with volumetric shapes of arbitrary orientation. <i>CGA shape</i> is shown to efficiently generate massive urban models with unprecedented level of detail, with the virtual rebuilding of the archaeological site of Pompeii as a case in point.


title: The Space Complexity of Approximating the Frequency Moments
venue: J. Comput. Syst. Sci.
directory: 0
created: 2017-09-06T19:03:23.179571045
modified: 2017-09-06T19:03:23.179571045
abstract:
The frequency moments of a sequence containing m i elements of type i, for 1 ≤ i ≤ n, are the numbers F k = n i=1 m k i. We consider the space complexity of randomized algorithms that approximate the numbers F k , when the elements of the sequence are given one by one and cannot be stored. Surprisingly, it turns out that the numbers F 0 , F 1 and F 2 can be approximated in logarithmic space, whereas the approximation of F k for k ≥ 6 requires n Ω(1) space. Applications to data bases are mentioned as well.


title: Uncovering network tarpits with degreaser
venue: ACSAC
directory: 0
created: 2017-09-06T19:03:23.813618896
modified: 2017-09-06T19:03:23.813618896
abstract:
Network tarpits, whereby a single host or appliance can masquerade as many fake hosts on a network and slow network scanners, are a form of defensive cyber-deception. In this work, we develop <i>degreaser</i>, an efficient fingerprinting tool to remotely detect tarpits. In addition to validating our tool in a controlled environment, we use <i>degreaser</i> to perform an Internet-wide scan. We discover tarpits of non-trivial size in the wild (prefixes as large as/16), and characterize their distribution and behavior. We then show how tarpits pollute existing network measurement surveys that are tarpit-na&#239;ve, e.g. Internet census data, and how <i>degreaser</i> can improve the accuracy of such surveys. Lastly, our findings suggest several ways in which to advance the realism of current network tarpits, thereby raising the bar on tarpits as an operational security mechanism.


title: Safety Verification of Deep Neural Networks
venue: CAV
directory: 0
created: 2017-09-06T19:03:24.35387793
modified: 2017-09-06T19:03:24.35387793
abstract:
Deep neural networks have achieved impressive experimental results in image classification, but can surprisingly be unstable with respect to adver-sarial perturbations, that is, minimal changes to the input image that cause the network to misclassify it. With potential applications including perception modules and end-to-end controllers for self-driving cars, this raises concerns about their safety. We develop the first SMT-based automated verification framework for feed-forward multi-layer neural networks that works directly with the code of the network, exploring it layer by layer. We define safety for a region around a data point in a given layer by requiring that all points in the region are assigned the same class label. Working with a notion of a manipulation, a mapping between points that intuitively corresponds to a modification of an image, we employ discretisation to enable exhaustive search of the region. Our method can guarantee that adversarial examples are found for the given region and set of manipulations. If found, adversarial examples can be shown to human testers and/or used to fine-tune the network, and otherwise the network is declared safe for the given parameters. We implement the techniques using Z3 and evaluate them on state-of-the-art networks, including regularised and deep learning networks.


title: The Join Calculus: A Language for Distributed Mobile Programming
venue: APPSEM
directory: 0
created: 2017-09-06T19:03:25.052316895
modified: 2017-09-06T19:03:25.052316895
abstract:
In these notes, we give an overview of the join calculus, its semantics, and its equational theory. The join calculus is a language that models distributed and mobile programming. It is characterized by an explicit notion of locality, a strict adherence to local synchronization, and a direct embedding of the ML programming language. The join calculus is used as the basis for several distributed languages and implementations, such as JoCaml and functional nets. Local synchronization means that messages always travel to a set destination , and can interact only after they reach that destination; this is required for an efficient implementation. Specifically, the join calculus uses ML's function bindings and pattern-matching on messages to program these synchronizations in a declarative manner. Formally, the language owes much to concurrency theory, which provides a strong basis for stating and proving the properties of asynchronous programs. Because of several remarkable identities, the theory of process equivalences admits simplifications when applied to the join calculus. We prove several of these identities, and argue that equivalences for the join calculus can be rationally organized into a five-tiered hierarchy, with some trade-off between expressiveness and proof techniques. We describe the mobility extensions of the core calculus, which allow the programming of agent creation and migration. We briefly present how the calculus has been extended to model distributed failures on the one hand, and cryptographic protocols on the other.


title: An improved illumination model for shaded display
venue: SIGGRAPH Courses
directory: 0
created: 2017-09-06T19:03:25.943824951
modified: 2017-09-06T19:03:25.943824951
abstract:
To accurately render a scene, global illumination information that affects the intensity of each pixel of the image must be known at the time the intensity is calculated. In a simplified form, this information is stored in a tree of &#8220;rays&#8221; extending from the viewer to the first surface encountered and from there to other surfaces and to the light sources. The visible surface algorithm creates this tree for each pixel of the display and passes it to the shader. The shader then traverses the tree to determine the intensity of the light received by the viewer. Consideration of all of these factors allows the shader to accurately simulate true reflection, shadows, and refraction as well as the effects simulated by conventional shaders. Anti-aliasing is included as an integral part of the visibility calculations. Surfaces displayed include curved as well as polygonal surfaces.


title: Efficient reconciliation and flow control for anti-entropy protocols
venue: LADIS '08
directory: 0
created: 2017-09-06T19:03:26.718412109
modified: 2017-09-06T19:03:26.718412109
abstract:
The paper shows that anti-entropy protocols can process only a limited rate of updates, and proposes and evaluates a new state reconciliation mechanism as well as a flow control scheme for anti-entropy protocols.


title: MoviPill: improving medication compliance for elders using a mobile persuasive social game
venue: UbiComp
directory: 0
created: 2017-09-06T19:03:27.38201001
modified: 2017-09-06T19:03:27.38201001
abstract:
Medication compliance is a critical component in the success of any medical treatment. However, only 50% of patients correctly adhere to their prescription regimens. Mobile and ubiquitous technologies have been proposed to tackle this challenge, mainly in the form of memory aid solutions that remind patients to take their pills. However, most of these methods do not <i>engage</i> patients in shifting their behavior towards better compliance. In this paper, we propose and evaluate a mobile phone-based game called <i>MoviPill</i> that persuades patients to be more adherent to their medication prescription by means of social competition. In a 6-week user study conducted with 18 elders, the use of <i>MoviPill</i> improved both their compliance to take the daily medication and also the accuracy of the drug intake time according to the prescribed time. Moreover, the improvement in the latter increased from 43% to 56% when we considered only participants that had any interest in games, which reveals the importance of applying persuasive techniques in a personalized manner. We conclude with a set of implications for the design of persuasive mobile solutions in this domain.


title: A comparison of software and hardware techniques for x86 virtualization
venue: ASPLOS
directory: 0
created: 2017-09-06T19:03:29.11475293
modified: 2017-09-06T19:03:29.11475293
abstract:
Until recently, the x86 architecture has not permitted classical trap-and-emulate virtualization. Virtual Machine Monitors for x86, such as VMware &#174; Workstation and Virtual PC, have instead used binary translation of the guest kernel code. However, both Intel and AMD have now introduced architectural extensions to support classical virtualization.We compare an existing software VMM with a new VMM designed for the emerging hardware support. Surprisingly, the hardware VMM often suffers lower performance than the pure software VMM. To determine why, we study architecture-level events such as page table updates, context switches and I/O, and find their costs vastly different among native, software VMM and hardware VMM execution.We find that the hardware support fails to provide an unambiguous performance advantage for two primary reasons: first, it offers no support for MMU virtualization; second, it fails to co-exist with existing software techniques for MMU virtualization. We look ahead to emerging techniques for addressing this MMU virtualization problem in the context of hardware-assisted virtualization.


title: Top 10 algorithms in data mining
venue: Knowledge and Information Systems
directory: 0
created: 2017-09-06T19:03:30.460089111
modified: 2017-09-06T19:03:30.460089111
abstract:
This paper presents the top 10 data mining algorithms identified by the IEEE International Conference on Data Mining (ICDM) in December 2006: C4.5, k-Means, SVM, Apriori, EM, PageRank, AdaBoost, kNN, Naive Bayes, and CART. These top 10 algorithms are among the most influential data mining algorithms in the research community. With each algorithm, we provide a description of the algorithm, discuss the impact of the algorithm, and review current and further research on the algorithm. These 10 algorithms cover classification, clustering, statistical learning, association analysis, and link mining, which are all among the most important topics in data mining research and development.


title: Unikernels: library operating systems for the cloud
venue: ASPLOS
directory: 0
created: 2017-09-06T19:03:31.096469971
modified: 2017-09-06T19:03:31.096469971
abstract:
We present <i>unikernels</i>, a new approach to deploying cloud services via applications written in high-level source code. Unikernels are single-purpose appliances that are compile-time specialised into standalone kernels, and sealed against modification when deployed to a cloud platform. In return they offer significant reduction in image sizes, improved efficiency and security, and should reduce operational costs. Our Mirage prototype compiles OCaml code into unikernels that run on commodity clouds and offer an order of magnitude reduction in code size without significant performance penalty. The architecture combines static type-safety with a single address-space layout that can be made immutable via a hypervisor extension. Mirage contributes a suite of type-safe protocol libraries, and our results demonstrate that the hypervisor is a platform that overcomes the hardware compatibility issues that have made past library operating systems impractical to deploy in the real-world.


title: Practical Optional Types for Clojure
venue: ESOP
directory: 0
created: 2017-09-06T19:03:31.900430908
modified: 2017-09-06T19:03:31.900430908
abstract:
Typed Clojure is an optional type system for Clojure, a dynamic language in the Lisp family that targets the JVM. Typed Clojure's type system build on the design of Typed Racket, repurposing in particular occurrence typing, an approach to statically reasoning about predicate tests. However, in adapting the type system to Clo-jure, changes and extensions are required to accommodate additional language features and idioms used by Clojure programmers. In this paper, we describe Typed Clojure and present these type system extensions, focusing on three features widely used in Clo-jure. First, Java interoperability is central to Clojure's mission but introduces challenges such as ubiquitous null; Typed Clojure handles Java interoperability while ensuring the absence of null-pointer exceptions in typed programs. Second, Clojure programmers idiomatically use immutable dictionaries for data structures; Typed Clojure handles this in the type system with multiple forms of heterogeneous dictionary types. Third, multimethods provide extensi-ble operations, and their Clojure semantics turns out to have a surprising synergy with the underlying occurrence typing framework. We provide a formal model of the Typed Clojure type system incorporating these and other features, with a proof of soundness. Additionally, Typed Clojure is now in use by numerous corporations and developers working with Clojure, and we report on experience with the system and its lessons for the future. The popularity of dynamically-typed languages in software development , combined with a recognition that types often improve programmer productivity, software reliability, and performance, has led to the recent development of a wide variety of optional and gradual type systems aimed at checking existing programs written in existing languages. These include Microsoft's TypeScript for JavaScript, Facebook's Hack for PHP and Flow for JavaScript, and MyPy for Python among the optional systems, and Typed Racket, Reticulated Python, and GradualTalk among gradually-typed systems. 1 One key lesson of these systems, indeed a lesson known to early developers of optional type systems such as StrongTalk, is that type systems for existing languages must be designed to work with the features and idioms of the target language. Often this takes the form of a core language, be it of functions or classes and objects, together with extensions to handle distinctive language features. We synthesize these lessons to present Typed Clojure, an optional type system for Clojure. Typed Clojure builds on the core type checking approach of Typed Racket, an existing gradual type system for Racket. However, Typed Clojure extends …


title: Linearizability: A Correctness Condition for Concurrent Objects
venue: ACM Trans. Program. Lang. Syst.
directory: 0
created: 2017-09-06T19:03:32.659111084
modified: 2017-09-06T19:03:32.659111084
abstract:
A concurrent object is a data object shared by concurrent processes. Linearizability is a correctness condition for concurrent objects that exploits the semantics of abstract data types. It permits a high degree of concurrency, yet it permits programmers to specify and reason about concurrent objects using known techniques from the sequential domain. Linearizability provides the illusion that each operation applied by concurrent processes takes effect instantaneously at some point between its invocation and its response, implying that the meaning of a concurrent object's operations can be given by pre- and post-conditions. This paper defines linearizability, compares it to other correctness conditions, presents and demonstrates a method for proving the correctness of implementations, and shows how to reason about concurrent objects, given they are linearizable.


title: Large-Scale Newscast Computing on the Internet
directory: 0
created: 2017-09-06T19:03:33.867985107
modified: 2017-09-06T19:03:33.867985107
abstract:
This paper introduces the newscast model of computation for large-scale computing on the Internet. The engine realizing this model is a lazy fully distributed information propagation protocol among the participants which is responsible for membership management and communication. It maintains a constantly changing communication graph over the participants. This graph has useful emergent properties like small diameter and sufficiently random structure without deploying special purpose protocols to achieve these properties. For adding a new participant only the address of an arbitrary member is needed and for removal no action is necessary. We provide theoretical and empirical evidence that—besides being simple and lightweight—our newscast computing engine is extremely scalable and robust. We also suggest some interesting application areas including information dissemination, monitoring of large systems, resource sharing and efficient multi-casting.


title: Testing ecological models: the meaning of validation
directory: 0
created: 2017-09-06T19:03:35.008759033
modified: 2017-09-06T19:03:35.008759033
abstract:
The ecological literature reveals considerable confusion about the meaning of validation in the context of simulation models. The confusion arises as much from semantic and philosophical considerations as from the selection of validation procedures. Validation is not a procedure for testing scientific theory or for certifying the 'truth' of current scientific understanding, nor is it a required activity of every modelling project. Validation means that a model is acceptable for its intended use because it meets specified performance requirements. Before validation is undertaken, (1) the purpose of the model, (2) the performance criteria, and (3) the model context must be specified. The validation process can be decomposed into several components: (1) operation, (2) theory, and (3) data. Important concepts needed to understand the model evaluation process are verification, calibration, validation, credibility, and qualification. These terms are defined in a limited technical sense applicable to the evaluation of simulation models, and not as general philosophical concepts. Different tests and standards are applied to the operational, theoretical, and data components. The operational and data components can be validated; the theoretical component cannot. The most common problem with ecological and environmental models is failure to state what the validation criteria are. Criteria must be explicitly stated because there are no universal standards for selecting what test procedures or criteria to use for validation. A test based on comparison of simulated versus observed data is generally included whenever possible. Because the objective and subjective components of validation are not mutually exclusive, disagreements over the meaning of validation can only be resolved by establishing a convention.


title: Online Trajectory Generation: Basic Concepts for Instantaneous Reactions to Unforeseen Events
venue: IEEE Transactions on Robotics
directory: 0
created: 2017-09-06T19:03:35.657446045
modified: 2017-09-06T19:03:35.657446045
abstract:
This paper introduces a new method for motion-trajectory generation of mechanical systems with multiple degrees of freedom (DOFs). The key feature of this new concept is that motion trajectories are generated online, i.e., within every control cycle, typically every millisecond. This enables systems to react instantaneously to unforeseen and unpredictable (sensor) events at any time instant and in any state of motion. As a consequence, (multi)sensor integration in robotics, in particular the development of control systems enabling sensor-guided and sensor-guarded motions, becomes greatly simplified. We introduce a class of online trajectory-generation algorithms and present the mathematical basics of this new approach. The algorithms presented here consist of three steps: calculation of the minimum synchronization time for all DOFs, synchronization of all DOFs, and calculation of output values. The theory is followed by real-world experimental results indicating new possibilities in robot-motion control.


title: Real-Time FRP
venue: ICFP
directory: 0
created: 2017-09-06T19:03:36.330886963
modified: 2017-09-06T19:03:36.330886963
abstract:
Functional reactive programming (FRP) is a declarative programming paradigm where the basic notions are continuous, time-varying behaviors and discrete, event-based reactivity. FRP has been used successfully in many reactive programming domains such as animation, robotics, and graphical user interfaces. The success of FRP in these domains encourages us to consider its use in real-time applications, where it is crucial that the cost of running a program be bounded and known before run-time. But previous work on the semantics and implementation of FRP was not explicitly concerned about the issues of cost. In fact, the resource consumption of FRP programs in the current implementation is often hard to predict. As a first step towards addressing these concerns, this paper presents real-time FRP (RT-FRP), a statically-typed language where the time and space cost of each execution step for a given program is statically bounded. To take advantage of existing work on languages with bounded resources, we split RT-FRP into two parts: a reactive part that captures the essential ingredients of FRP programs, and a base language part that can be instantiated to any generic programming language that has been shown to be terminating and resource-bounded. This allows us to focus on the issues specific to RT-FRP, namely, two forms of recursion. After presenting the operational explanation of what can go wrong due to the presence of recursion, we show how the typed version of the language is terminating and resource-bounded. Most of our FRP programs are expressible directly in RT. The rest are expressible via a simple mechanism that integrates RT-FRP with the base language.


title: Elm: Concurrent FRP for Functional GUIs
directory: 0
created: 2017-09-06T19:03:36.992700928
modified: 2017-09-06T19:03:36.992700928
abstract:
Graphical user interfaces (GUIs) mediate almost all of our interactions with computers, whether it is through web pages, phone apps, or desktop applications. Functional Reactive Programming (FRP) is a promising approach to GUI design. This thesis presents Elm, a concurrent FRP language focused on easily creating responsive GUIs. Elm has two major features: (1) purely functional graphical layout and (2) support for Concurrent FRP. Purely functional graphical layout is a high level framework for working with complex visual components. It makes it quick and easy to create and combine text, images, and video into rich multimedia displays. Concurrent FRP solves some of FRP's long-standing efficiency problems: global delays and needless recomputation. Together, Elm's two major features simplify the complicated task of creating responsive and usable graphical user interfaces. This thesis also includes a fully functional compiler for Elm, available at elm-lang.org. This site includes an interactive code editor that allows you to write and compile Elm programs online with no download or install.


title: Dremel: Interactive Analysis of Web-Scale Datasets
venue: PVLDB
directory: 0
created: 2017-09-06T19:03:37.640918945
modified: 2017-09-06T19:03:37.640918945
abstract:
Dremel is a scalable, interactive ad hoc query system for analysis of read-only nested data. By combining multilevel execution trees and columnar data layout, it is capable of running aggregation queries over trillion-row tables in seconds. The system scales to thousands of CPUs and petabytes of data, and has thousands of users at Google. In this paper, we describe the architecture and implementation of Dremel, and explain how it complements MapReduce-based computing. We present a novel columnar storage representation for nested records and discuss experiments on few-thousand node instances of the system.


title: Exploring the Potential of Gamification Among Frail Elderly Persons
directory: 0
created: 2017-09-06T19:03:38.30310791
modified: 2017-09-06T19:03:38.30310791
abstract:
The application of game elements a in non-gaming context offers a great potential regarding the engagement of senior citizens with information systems. In this paper, we suggest the application of gamification to routine tasks and leisure activities, namely physical and cognitive therapy, the gamification of real-life activities which are no longer accessible due to age-related changes and the application of game design elements to foster social interaction. Furthermore, we point out important chances and challenges such as the lack of gaming experience among the target audience and highlight possible areas for future work which offer valuable design opportunities for frail elderly audiences.


title: Can SPDY really make the web faster?
venue: 2014 IFIP Networking Conference
directory: 0
created: 2017-09-06T19:03:38.949562988
modified: 2017-09-06T19:03:38.949562988
abstract:
HTTP is a successful Internet technology on top of which a lot of the web resides. However, limitations with its current specification have encouraged some to look for the next generation of HTTP. In SPDY, Google has come up with such a proposal that has growing community acceptance, especially after being adopted by the IETF HTTPbis-WG as the basis for HTTP/2.0. SPDY has the potential to greatly improve web experience with little deployment overhead, but we still lack an understanding of its true potential in different environments. This paper offers a comprehensive evaluation of SPDY's performance using extensive experiments. We identify the impact of network characteristics and website infrastructure on SPDY's potential page loading benefits, finding that these factors are decisive for an optimal SPDY deployment strategy. Through exploring such key aspects that affect SPDY, and accordingly HTTP/2.0, we feed into the wider debate regarding the impact of future protocols.


title: The rendering equation
venue: SIGGRAPH
directory: 0
created: 2017-09-06T19:03:40.123154053
modified: 2017-09-06T19:03:40.123154053
abstract:
We present an integral equation which generalizes a variety of known rendering algorithms. In the course of discussing a monte carlo solution we also present a new form of variance reduction, called Hierarchical sampling and give a number of elaborations shows that it may be an efficient new technique for a wide variety of monte carlo procedures. The resulting rendering algorithm extends the range of optical phenomena which can be effectively simulated.


title: A theoretician's guide to the experimental analysis of algorithms
venue: Data Structures, Near Neighbor Searches, and Methodology
directory: 0
created: 2017-09-06T19:03:40.952553955
modified: 2017-09-06T19:03:40.952553955
abstract:
This paper presents an informal discussion of issues that arise when one attempts to analyze algorithms experimentally. It is based on lessons learned by the author over the course of more than a decade of experimentation, survey paper writing, refereeing, and lively discussions with other experimentalists. Although written from the perspective of a theoretical computer scientist, it is intended to be of use to researchers from all fields who want to study algorithms experimentally. It has two goals: first, to provide a useful guide to new experimen-talists about how such work can best be performed and written up, and second, to challenge current researchers to think about whether their own work might be improved from a scientific point of view. With the latter purpose in mind, the author hopes that at least a few of his recommendations will be considered controversial.


title: Fortifying macros
venue: J. Funct. Program.
directory: 0
created: 2017-09-06T19:03:41.509760986
modified: 2017-09-06T19:03:41.509760986
abstract:
Existing macro systems force programmers to make a choice between clarity of specification and robustness. If they choose clarity, they must forgo validating significant parts of the specification and thus produce low-quality language extensions. If they choose robustness, they must write in a style that mingles the implementation with the specification and therefore obscures the latter.
 This paper introduces a new language for writing macros. With the new macro system, programmers naturally write robust language extensions using easy-to-understand specifications. The system translates these specifications into validators that detect misuses - including violations of context-sensitive constraints - and automatically synthesize appropriate feedback, eliminating the need for ad hoc validation code.


title: Pregel: a system for large-scale graph processing
venue: PODC
directory: 0
created: 2017-09-06T19:03:42.238586914
modified: 2017-09-06T19:03:42.238586914
abstract:
Many practical computing problems concern large graphs. Standard examples include the Web graph and various social networks. The scale of these graphs - in some cases billions of vertices, trillions of edges - poses challenges to their efficient processing. In this paper we present a computational model suitable for this task. Programs are expressed as a sequence of iterations, in each of which a vertex can receive messages sent in the previous iteration, send messages to other vertices, and modify its own state and that of its outgoing edges or mutate graph topology. This vertex-centric approach is flexible enough to express a broad set of algorithms. The model has been designed for efficient, scalable and fault-tolerant implementation on clusters of thousands of commodity computers, and its implied synchronicity makes reasoning about programs easier. Distribution-related details are hidden behind an abstract API. The result is a framework for processing large graphs that is expressive and easy to program.


title: The Φ Accrual Failure Detector
venue: SRDS
directory: 0
created: 2017-09-06T19:03:44.385541992
modified: 2017-09-06T19:03:44.385541992
abstract:
Detecting failures is a fundamental issue for fault-tolerance in distributed systems. Recently, many people have come to realize that failure detection ought to be provided as some form of generic service, similar to IP address lookup or time synchronization. However, this has not been successful so far. One of the reasons is the difficulty to satisfy several application requirements simultaneously when using classical failure detectors. We present a novel abstraction, called accrual failure detectors, that emphasizes flexibility and expressiveness and can serve as a basic building block to implementing failure detectors in distributed systems. Instead of providing information of a boolean nature (trust vs. suspect), accrual failure detectors output a suspicion level on a continuous scale. The principal merit of this approach is that it favors a nearly complete decoupling between application requirements and the monitoring of the environment. In this paper, we describe an implementation of such an accrual failure detector, that we call the ϕ failure detector. The particularity of the ϕ failure detector is that it dynamically adjusts to current network conditions the scale on which the suspicion level is expressed. We analyzed the behavior of our ϕ failure detector over an intercontinental communication link during several days. Our experimental results show that our ϕ failure detector performs equally well as other known adaptive failure detection mechanisms, with an improved flexibility. I. INTRODUCTION It is well-known that failure detection constitutes a fundamental building block for ensuring fault tolerance in distributed systems. For this reason, many people have been advocating that failure detection should be provided as a service [1]–[5], similar to IP address lookup (DNS) or time synchronization (e.g., NTP). Unfortunately, in spite of important technical breakthroughs, this view has met little success so far. We believe that one of the main reasons is that the conventional boolean interaction (i.e., trust vs. suspect) makes it difficult to meet the requirements of several distributed applications running simultaneously. For this reason, we advocate a different abstraction that helps decoupling application requirements from issues related to the underlying system. It is well-known that there exists an inherent tradeoff between (1) conservative failure detection (i.e., reducing the risk of wrongly suspecting a running process), and (2) aggressive failure detection (i.e., quickly detecting the occurrence of a real crash). There exists a continuum of valid choices between these two extremes, and what defines an appropriate choice is strongly related to application requirements. …


title: Jails: Confining the Omnipotent Root
directory: 0
created: 2017-09-06T19:03:45.016802979
modified: 2017-09-06T19:03:45.016802979
abstract:
The traditional UNIX security model is simple but inexpressive. Adding fine-grained access control improvest he expressiveness, but often dramatically increases both the cost of system management and implementation complexity.I nenvironments with a more complexman-agement model, with delegation of some management functions to parties under varying degrees of trust, the base UNIX model and most natural extensions are inappropriate at best. Where multiple mutually un-trusting parties are introduced, ''inappropriate''r apidly transitions to ''nightmarish'', especially with regards to data integrity and privacy protection. The FreeBSD ''Jail''facility provides the ability to partition the operating system environment, while maintaining the simplicity of the UNIX ''root''m odel. In Jail, users with privilege find that the scope of their requests is limited to the jail, allowing system administrators to delegate management capabilities for each virtual machine environment. Creating virtual machines in this manner has manyp otential uses; the most popular thus far has been for providing virtual machine services in Internet Service Provider environments.


title: Chord: A scalable peer-to-peer lookup service for internet applications
venue: SIGCOMM
directory: 0
created: 2017-09-06T19:03:45.850829102
modified: 2017-09-06T19:03:45.850829102
abstract:
A fundamental problem that confronts peer-to-peer applications is to efficiently locate the node that stores a particular data item. This paper presents <i>Chord</i>, a distributed lookup protocol that addresses this problem. Chord provides support for just one operation: given a key, it maps the key onto a node. Data location can be easily implemented on top of Chord by associating a key with each data item, and storing the key/data item pair at the node to which the key maps. Chord adapts efficiently as nodes join and leave the system, and can answer queries even if the system is continuously changing. Results from theoretical analysis, simulations, and experiments show that Chord is scalable, with communication cost and the state maintained by each node scaling logarithmically with the number of Chord nodes.


title: Incremental Mature Garbage Collection Using the Train Algorithm
venue: ECOOP
directory: 0
created: 2017-09-06T19:03:46.55098291
modified: 2017-09-06T19:03:46.55098291
abstract:
We present an implementation of the Train Algorithm, an incremental collection scheme for reclamation of mature garbage in generation-based memory management systems. To the best of our knowledge, this is the rst Train Algorithm implementation ever. Using the algorithm, the traditional mark-sweep garbage collector employed by the Mjjlner run-time system for the object-oriented BETA programming language was replaced by a non-disruptive one, with only negligible time and storage overheads.


title: Principal Type-Schemes for Functional Programs
venue: POPL
directory: 0
created: 2017-09-06T19:03:47.707565918
modified: 2017-09-06T19:03:47.707565918
abstract:
Permission to copy without fee all or part of this material is granted provided that the copies are not made or distributed for direct commercial advantage, the ACM copyright notice and the title of its publication and date appear, and notice is given that copying is by permission of the Association for Computing Machinery. To copy otherwise, or to republish, requires a fee and/or specific permission.


title: Programming and reasoning with algebraic effects and dependent types
venue: ICFP
directory: 0
created: 2017-09-06T19:03:48.542669922
modified: 2017-09-06T19:03:48.542669922
abstract:
One often cited benefit of pure functional programming is that pure code is easier to test and reason about, both formally and informally. However, real programs have side-effects including state management, exceptions and interactions with the outside world. Haskell solves this problem using <i>monads</i> to capture details of possibly side-effecting computations --- it provides monads for capturing state, I/O, exceptions, non-determinism, libraries for practical purposes such as CGI and parsing, and many others, as well as <i>monad transformers</i> for combining multiple effects.
 Unfortunately, useful as monads are, they do not compose very well. Monad transformers can quickly become unwieldy when there are lots of effects to manage, leading to a temptation in larger programs to combine everything into one coarse-grained state and exception monad. In this paper I describe an alternative approach based on handling <i>algebraic effects</i>, implemented in the IDRIS programming language. I show how to describe side effecting computations, how to write programs which compose multiple fine-grained effects, and how, using dependent types, we can use this approach to reason about states in effectful programs.


title: Paxos made live: an engineering perspective
venue: PODC
directory: 0
created: 2017-09-06T19:03:49.140737061
modified: 2017-09-06T19:03:49.140737061
abstract:
We describe our experience in building a fault-tolerant data-base using the Paxos consensus algorithm. Despite the existing literature in the field, building such a database proved to be non-trivial. We describe selected algorithmic and engineering problems encountered, and the solutions we found for them. Our measurements indicate that we have built a competitive system.


title: Wormholes: introducing effects to FRP
venue: Haskell
directory: 0
created: 2017-09-06T19:03:49.778645996
modified: 2017-09-06T19:03:49.778645996
abstract:
Functional reactive programming (FRP) is a useful model for programming real-time and reactive systems in which one defines a <i>signal function</i> to process a stream of input values into a stream of output values. However, performing side effects (e.g. memory mutation or input/output) in this model is tricky and typically unsafe. In previous work, Winograd-Cort et al. [2012] introduced <i>resource types</i> and <i>wormholes</i> to address this problem.
 This paper better motivates, expands upon, and formalizes the notion of a wormhole to fully unlock its potential. We show, for example, that wormholes can be used to define the concept of causality. This in turn allows us to provide behaviors such as looping, a core component of most languages, without building it directly into the language. We also improve upon our previous design by making wormholes less verbose and easier to use.
 To formalize the notion of a wormhole, we define an extension to the simply typed lambda calculus, complete with typing rules and operational semantics. In addition, we present a new form of semantic transition that we call a <i>temporal</i> transition to specify how an FRP program behaves over time and to allow us to better reason about causality. As our model is designed for a Haskell implementation, the semantics are lazy. Finally, with the language defined, we prove that our wormholes indeed allow side effects to be performed safely in an FRP framework.


title: Sinfonia: A new paradigm for building scalable distributed systems
venue: ACM Trans. Comput. Syst.
directory: 0
created: 2017-09-06T19:03:50.374003906
modified: 2017-09-06T19:03:50.374003906
abstract:
We propose a new paradigm for building scalable distributed systems. Our approach does not require dealing with message-passing protocols -- a major complication in existing distributed systems. Instead, developers just design and manipulate data structures within our service called Sinfonia. Sinfonia keeps data for applications on a set of memory nodes, each exporting a linear address space. At the core of Sinfonia is a novel minitransaction primitive that enables efficient and consistent access to data, while hiding the complexities that arise from concurrency and failures. Using Sinfonia, we implemented two very different and complex applications in a few months: a cluster file system and a group communication service. Our implementations perform well and scale to hundreds of machines.


title: Solaris Zones: Operating System Support for Consolidating Commercial Workloads
venue: LISA
directory: 0
created: 2017-09-06T19:03:51.14812207
modified: 2017-09-06T19:03:51.14812207
abstract:
Server consolidation, which allows multiple workloads to run on the same system, has become increasingly important as a way to improve the utilization of computing resources and reduce costs. Consolidation is common in mainframe environments, where technology to support running multiple workloads and even multiple operating systems on the same hardware has been evolving since the late 1960's. This technology is now becoming an important differentiator in the UNIX and Linux server market as well, both at the low end (virtual web hosting) and high end (traditional data center server consolidation). This paper introduces Solaris Zones (zones), a fully realized solution for server consolidation projects in a commercial UNIX operating system. By creating virtualized application execution environments within a single instance of the operating system, the facility strikes a unique balance between competing requirements. On the one hand, a system with multiple workloads needs to run those workloads in isolation, to ensure that applications can neither observe data from other applications nor affect their operation. It must also prevent applications from over-consuming system resources. On the other hand, the system as a whole has to be flexible, manageable, and observable, in order to reduce administrative costs and increase efficiency. By focusing on the support of multiple application environments rather than multiple operating system instances, zones meets isolation requirements without sacrificing manageability.


title: A Gossip-Style Failure Detection Service
directory: 0
created: 2017-09-06T19:03:51.842156982
modified: 2017-09-06T19:03:51.842156982
abstract:
Failure Detection is valuable for system management, replication, load balancing , and other distributed services. To date, Failure Detection Services scale badly in the number of members that are being monitored. This paper describes a new protocol based on gossiping that does scale well and provides timely detection. We analyze the protocol, and then extend it to discover and leverage the underlying network topology for much improved resource utilization. We then combine it with another protocol, based on broadcast, that is used to handle partition failures.


title: Modularity and Scalability in Calvin
venue: IEEE Data Eng. Bull.
directory: 0
created: 2017-09-06T19:03:53.855706055
modified: 2017-09-06T19:03:53.855706055
abstract:
Calvin is a transaction scheduling and replication management layer for distributed storage systems. By first writing transaction requests to a durable, replicated log, and then using a concurrency control mechanism that emulates a deterministic serial execution of the log's transaction requests, Calvin supports strongly consistent replication and fully ACID distributed transactions while incurring significantly lower inter-partition transaction coordination costs than traditional distributed database systems. Furthermore, Calvin's declarative specification of target concurrency-control behavior allows system components to avoid interacting with actual transaction scheduling mechanisms—whereas in traditional DBMSs, the analogous components often have to explicitly observe concurrency control modules' (highly nondeterministic) procedural behaviors in order to function correctly.


title: A taxonomy of suffix array construction algorithms
venue: ACM Comput. Surv.
directory: 0
created: 2017-09-06T19:03:54.452649902
modified: 2017-09-06T19:03:54.452649902
abstract:
In 1990, Manber and Myers proposed suffix arrays as a space-saving alternative to suffix trees and described the first algorithms for suffix array construction and use. Since that time, and especially in the last few years, suffix array construction algorithms have proliferated in bewildering abundance. This survey paper attempts to provide simple high-level descriptions of these numerous algorithms that highlight both their distinctive features and their commonalities, while avoiding as much as possible the complexities of implementation details. New hybrid algorithms are also described. We provide comparisons of the algorithms' worst-case time complexity and use of additional space, together with results of recent experimental test runs on many of their implementations.


title: MEXICA: A computer model of a cognitive account of creative writing
venue: J. Exp. Theor. Artif. Intell.
directory: 0
created: 2017-09-06T19:03:56.367568115
modified: 2017-09-06T19:03:56.367568115
abstract:
MEXICA is a computer model that produces frameworks for short stories based on the engagement-reflection cognitive account of writing. During engagement MEXICA generates material guided by content and rhetorical constraints, avoiding the use of explicit goals or story-structure information. During reflection the system breaks impasses, evaluates the novelty and interestingness of the story in progress and verifies that coherence requirements are satisfied. In this way, MEXICA complements and extends those models of computerised story-telling based on traditional problem-solving techniques where explicit goals drive the generation of stories. This paper describes the engagement-reflection account of writing, the general characteristics of MEXICA and reports an evaluation of the program


title: Interactive topic modeling
venue: Machine Learning
directory: 0
created: 2017-09-06T19:03:58.169862061
modified: 2017-09-06T19:03:58.169862061
abstract:
Topic models are a useful and ubiquitous tool for understanding large corpora. However, topic models are not perfect, and for many users in computational social science, digital humanities, and information studies—who are not machine learning experts—existing models and frameworks are often a “take it or leave it” proposition. This paper presents a mechanism for giving users a voice by encoding users’ feedback to topic models as correlations between words into a topic model. This framework, interactive topic modeling (itm), allows untrained users to encode their feedback easily and iteratively into the topic models. Because latency in interactive systems is crucial, we develop more efficient inference algorithms for tree-based topic models. We validate the framework both with simulated and real users.


title: Functional reactive programming, continued
venue: Haskell '02
directory: 0
created: 2017-09-06T19:03:59.133345947
modified: 2017-09-06T19:03:59.133345947
abstract:
Functional Reactive Programming (FRP) extends a host programming language with a notion of time flow. Arrowized FRP (AFRP) is a version of FRP embedded in Haskell based on the arrow combinators. AFRP is a powerful synchronous dataflow programming language with hybrid modeling capabilities, combining advanced synchronous dataflow features with the higher-order lazy functional abstractions of Haskell. In this paper, we describe the AFRP programming style and our Haskell-based implementation. Of particular interest are the AFRP combinators that support dynamic collections and continuation-based switching. We show how these combinators can be used to express systems with an evolving structure that are difficult to model in more traditional dataflow languages.


title: Time, Clocks, and the Ordering of Events in a Distributed System
venue: Commun. ACM
directory: 0
created: 2017-09-06T19:04:00.659889893
modified: 2017-09-06T19:04:00.659889893
abstract:
The concept of one event happening before another in a distributed system is examined, and is shown to define a partial ordering of the events. A distributed algorithm is given for synchronizing a system of logical clocks which can be used to totally order the events. The use of the total ordering is illustrated with a method for solving synchronization problems. The algorithm is then specialized for synchronizing physical clocks, and a bound is derived on how far out of synchrony the clocks can become.


title: Calvin: fast distributed transactions for partitioned database systems
venue: SIGMOD Conference
directory: 0
created: 2017-09-06T19:04:01.615398926
modified: 2017-09-06T19:04:01.615398926
abstract:
Many distributed storage systems achieve high data access throughput via partitioning and replication, each system with its own advantages and tradeoffs. In order to achieve high scalability, however, today's systems generally reduce transactional support, disallowing single transactions from spanning multiple partitions. Calvin is a practical transaction scheduling and data replication layer that uses a deterministic ordering guarantee to significantly reduce the normally prohibitive contention costs associated with distributed transactions. Unlike previous deterministic database system prototypes, Calvin supports disk-based storage, scales near-linearly on a cluster of commodity machines, and has no single point of failure. By replicating transaction inputs rather than effects, Calvin is also able to support multiple consistency levels---including Paxos-based strong consistency across geographically distant replicas---at no cost to transactional throughput.


title: An introduction to argumentation semantics
venue: Knowledge Eng. Review
directory: 0
created: 2017-09-06T19:04:02.802635986
modified: 2017-09-06T19:04:02.802635986
abstract:
This paper presents an overview on the state of the art of semantics for abstract argumentation, covering both some of the most influential literature proposals and some general issues concerning semantics definition and evaluation. As to the former point the paper reviews Dung's original notions of complete, grounded, preferred, and stable semantics, as well as subsequently proposed notions like semi-stable, ideal, stage, and CF2 semantics, considering both the extension-based and the labelling-based approaches with respect to their definitions. As to the latter point the paper presents an extensive set of general properties for semantics evaluation and analyzes the notions of argument justification and skepticism. The final part of the paper is devoted to discuss some relationships between semantics properties and domain specific requirements.


title: Defining gamification: a service marketing perspective
venue: MindTrek
directory: 0
created: 2017-09-06T19:04:03.472758057
modified: 2017-09-06T19:04:03.472758057
abstract:
During recent years "gamification" has gained significant attention among practitioners and game scholars. However, the current understanding of gamification has been solely based on the act of adding systemic game elements into services. In this paper, we propose a new definition for gamification, which emphases the experiential nature of games and gamification, instead of the systemic understanding. Furthermore, we tie this definition to theory from service marketing because majority of gamification implementations aim towards goals of marketing, which brings to the discussion the notion of how customer / user is always ultimately the creator of value. Since now, the main venue for academic discussion on gamification has mainly been the HCI community. We find it relevant both for industry practitioners as well as for academics to study how gamification can fit in the body of knowledge of existing service literature because the goals and the means of gamification and marketing have a significant overlap.


title: F1: A Distributed SQL Database That Scales
venue: PVLDB
directory: 0
created: 2017-09-06T19:04:04.176154053
modified: 2017-09-06T19:04:04.176154053
abstract:
F1 is a distributed relational database system built at Google to support the AdWords business. F1 is a hybrid database that combines high availability, the scalability of NoSQL systems like Bigtable, and the consistency and us-ability of traditional SQL databases. F1 is built on Spanner , which provides synchronous cross-datacenter replica-tion and strong consistency. Synchronous replication implies higher commit latency, but we mitigate that latency by using a hierarchical schema model with structured data types and through smart application design. F1 also includes a fully functional distributed SQL query engine and automatic change tracking and publishing.


title: Sparrow: distributed, low latency scheduling
venue: SOSP
directory: 0
created: 2017-09-06T19:04:04.955657959
modified: 2017-09-06T19:04:04.955657959
abstract:
Large-scale data analytics frameworks are shifting towards shorter task durations and larger degrees of parallelism to provide low latency. Scheduling highly parallel jobs that complete in hundreds of milliseconds poses a major challenge for task schedulers, which will need to schedule millions of tasks per second on appropriate machines while offering millisecond-level latency and high availability. We demonstrate that a decentralized, randomized sampling approach provides near-optimal performance while avoiding the throughput and availability limitations of a centralized design. We implement and deploy our scheduler, Sparrow, on a 110-machine cluster and demonstrate that Sparrow performs within 12% of an ideal scheduler.


title: No Silver Bullet: Essence and Accidents of Software Engineering
directory: 0
created: 2017-09-06T19:04:05.696456055
modified: 2017-09-06T19:04:05.696456055
abstract:
All software construction involves essential tasks, the fashioning of the complex conceptual structures that compose the abstract software entity, and accidental tasks, the representation of these abstract entities in programming languages and the mapping of these onto machine languages within space and speed constraints. Most of the big past gains in software productivity have come from removing artificial barriers that have made the accidental tasks inordinately hard, such as severe hardware constraints, awkward programming languages, lack of machine time. How much of what software engineers now do is still devoted to the accidental, as opposed to the essential? Unless it is more than 9/10 of all effort, shrinking all the accidental activities to zero time will not give an order of magnitude improvement. Therefore it appears that the time has come to address the essential parts of the software task, those concerned with fashioning abstract conceptual structures of great complexity. I suggest: • exploiting the mass market to avoid constructing what can be bought. • using rapid prototyping as part of a planned iteration in establishing software require-· ments. • growing software organically, adding more and more function to systems as they are run, used, and tested. • identifying and developing the great conceptual designers of the rising generation.


title: Fundamental Concepts in Programming Languages
venue: Higher-Order and Symbolic Computation
directory: 0
created: 2017-09-06T19:04:07.851819092
modified: 2017-09-06T19:04:07.851819092
abstract:
This paper forms the substance of a course of lectures given at the International Summer School in Computer Programming at Copenhagen in August, 1967. The lectures were originally given from notes and the paper was written after the course was finished. In spite of this, and only partly because of the shortage of time, the paper still retains many of the shortcomings of a lecture course. The chief of these are an uncertainty of aim—it is never quite clear what sort of audience there will be for such lectures—and an associated switching from formal to informal modes of presentation which may well be less acceptable in print than it is natural in the lecture room. For these (and other) faults, I apologise to the reader. There are numerous references throughout the course to CPL [1–3]. This is a programming language which has been under development since 1962 at Cambridge and London and Oxford. It has served as a vehicle for research into both programming languages and the design of compilers. Partial implementations exist at Cambridge and London. The language is still evolving so that there is no definitive manual available yet. We hope to reach another resting point in its evolution quite soon and to produce a compiler and reference manuals for this version. The compiler will probably be written in such a way that it is relatively easy to transfer it to another machine, and in the first instance we hope to establish it on three or four machines more or less at the same time. The lack of a precise formulation for CPL should not cause much difficulty in this course, as we are primarily concerned with the ideas and concepts involved rather than with their precise representation in a programming language. Any discussion on the foundations of computing runs into severe problems right at the start. The difficulty is that although we all use words such as 'name', 'value', 'program', 'expression' or 'command' which we think we understand, it often turns out on closer investigation that in point of fact we all mean different things by these words, so that communication is at best precarious. These misunderstandings arise in at least two ways. The first is straightforwardly incorrect or muddled thinking. An investigation of the meanings of these basic terms is undoubtedly an exercise in mathematical logic and neither to the taste nor within the field of …


title: Backtracking iterators
venue: ML
directory: 0
created: 2017-09-06T19:04:08.791931885
modified: 2017-09-06T19:04:08.791931885
abstract:
Iterating over the elements of an abstract collection is usually done in ML using a fold-like higher-order function provided by the data structure. This article discusses a different paradigm of iteration based on purely functional, immutable cursors. Contrary to fold-like iterators, the iteration can be cleanly interrupted at any step. Contrary to imperative cursors (such as those found in C++ and Java libraries) it is possible to backtrack the iterator to a previous step. Several ways to iterate over binary trees are examined and close links with G&#233;rard Huet's <i>Zipper</i> are established. Incidentally, we show the well-known two-lists implementation of functional queues arising from a <i>Zipper</i>-based breadth-first traversal.


title: Cuckoo Hashing
venue: ESA
directory: 0
created: 2017-09-06T19:04:09.324783936
modified: 2017-09-06T19:04:09.324783936
abstract:
We present a simple and efficient dictionary with worst case constant lookup time, equaling the theoretical performance of the classic dynamic perfect hashing scheme of Dietzfelbinger et al. The space usage is similar to that of binary search trees, i.e., three words per key on average. The practicality of the scheme is backed by extensive experiments and comparisons with known methods, showing it to be quite competitive also in the average case.


title: Transactional Client-Server Cache Consistency: Alternatives and Performance
venue: ACM Trans. Database Syst.
directory: 0
created: 2017-09-06T19:04:10.25762207
modified: 2017-09-06T19:04:10.25762207
abstract:
Client-server database systems based on a data shipping model can exploit client memory resources by caching copies of data items across transaction boundaries. Caching reduces the need to obtain data from servers or other sites on the network. In order to ensure that such caching does not result in the violation of transaction semantics, a transactional cache consistency maintenance algorithm is required. Many such algorithms have been proposed in the literature and, as all provide the same functionality, performance is a primary concern in choosing among them. In this article we present a taxonomy that describes the design space for transactional cache consistency maintenance algorithms and show how proposed algorithms relate to one another. We then investigate the performance of six of these algorithms, and use these results to examine the tradeoffs inherent in the design choices identified in the taxonomy. The results show that the interactions among dimensions of the design space impact performance in many ways, and that classifications of algorithms as simply &#8220;pessimistic&#8221; or &#8220;optimistic&#8221; do not accurately characterize the similarities and differences among the many possible cache consistency algorithms.


title: Molecular computation of solutions to combinatorial problems.
venue: Science
directory: 0
created: 2017-09-06T19:04:10.970664062
modified: 2017-09-06T19:04:10.970664062
abstract:
The tools of molecular biology were used to solve an instance of the directed Hamiltonian path problem. A small graph was encoded in molecules of DNA, and the "operations" of the computation were performed with standard protocols and enzymes. This experiment demonstrates the feasibility of carrying out computations at the molecular level.


title: Programming Languages: History and Future
venue: Commun. ACM
directory: 0
created: 2017-09-06T19:04:12.264321045
modified: 2017-09-06T19:04:12.264321045
abstract:
This paper discusses both the history and future of programming languages ( = higher level languages). Some of the difficulties in writing such a history are indicated. A key part of the paper is a tree showing the chronological development of languages and their interrelationships. Reasons for the proliferation of languages are given. The major languages are listed with the reasons for their importance. A section on chronology indicates the happenings of the significant previous time periods and the major topics of 1972. Key concepts other than specific languages are discussed.


title: Mastering the game of Go with deep neural networks and tree search
venue: Nature
directory: 0
created: 2017-09-06T19:04:12.983225098
modified: 2017-09-06T19:04:12.983225098
abstract:
The game of Go has long been viewed as the most challenging of classic games for artificial intelligence owing to its enormous search space and the difficulty of evaluating board positions and moves. Here we introduce a new approach to computer Go that uses 'value networks' to evaluate board positions and 'policy networks' to select moves. These deep neural networks are trained by a novel combination of supervised learning from human expert games, and reinforcement learning from games of self-play. Without any lookahead search, the neural networks play Go at the level of state-of-the-art Monte Carlo tree search programs that simulate thousands of random games of self-play. We also introduce a new search algorithm that combines Monte Carlo simulation with value and policy networks. Using this search algorithm, our program AlphaGo achieved a 99.8% winning rate against other Go programs, and defeated the human European Go champion by 5 games to 0. This is the first time that a computer program has defeated a human professional player in the full-sized game of Go, a feat previously thought to be at least a decade away.


title: Auctions and bidding: A guide for computer scientists
venue: ACM Comput. Surv.
directory: 0
created: 2017-09-06T19:04:15.095488037
modified: 2017-09-06T19:04:15.095488037
abstract:
There is a veritable menagerie of auctions&#8212;single-dimensional, multi-dimensional, single-sided, double-sided, first-price, second-price, English, Dutch, Japanese, sealed-bid&#8212;and these have been extensively discussed and analyzed in the economics literature. The main purpose of this article is to survey this literature from a computer science perspective, primarily from the viewpoint of computer scientists who are interested in learning about auction theory, and to provide pointers into the economics literature for those who want a deeper technical understanding. In addition, since auctions are an increasingly important topic in computer science, we also look at work on auctions from the computer science literature. Overall, our aim is to identifying what both these bodies of work these tell us about creating electronic auctions.


title: On Understanding Types, Data Abstraction, and Polymorphism
venue: ACM Comput. Surv.
directory: 0
created: 2017-09-06T19:04:15.826186035
modified: 2017-09-06T19:04:15.826186035
abstract:
Our objective is to understand the notion of <I>type</I> in programming languages, present a model of typed, polymorphic programming languages that reflects recent research in type theory, and examine the relevance of recent research to the design of practical programming languages.
Object-oriented languages provide both a framework and a motivation for exploring the interaction among the concepts of type, data abstraction, and polymorphism, since they extend the notion of type to data abstraction and since type inheritance is an important form of polymorphism. We develop a &#955;-calculus-based model for type systems that allows us to explore these interactions in a simple setting, unencumbered by complexities of production programming languages.
The evolution of languages from untyped universes to monomorphic and then polymorphic type systems is reviewed. Mechanisms for polymorphism such as overloading, coercion, subtyping, and parameterization are examined. A unifying framework for polymorphic type systems is developed in terms of the typed &#955;-calculus augmented to include binding of types by quantification as well as binding of values by abstraction.
The typed &#955;-calculus is augmented by universal quantification to model generic functions with type parameters, existential quantification and packaging (information hiding) to model abstract data types, and bounded quantification to model subtypes and type inheritance. In this way we obtain a simple and precise characterization of a powerful type system that includes abstract data types, parametric polymorphism, and multiple inheritance in a single consistent framework. The mechanisms for type checking for the augmented &#955;-calculus are discussed.
The augmented typed &#955;-calculus is used as a programming language for a variety of illustrative examples. We christen this language Fun because fun instead of &#955; is the functional abstraction keyword and because it is pleasant to deal with.
Fun is mathematically simple and can serve as a basis for the design and implementation of real programming languages with type facilities that are more powerful and expressive than those of existing programming languages. In particular, it provides a basis for the design of strongly typed object-oriented languages.


title: Programmatic and direct manipulation, together at last
venue: PLDI
directory: 0
created: 2017-09-06T19:04:17.095748047
modified: 2017-09-06T19:04:17.095748047
abstract:
Direct manipulation interfaces and programmatic systems have distinct and complementary strengths. The former provide intuitive, immediate visual feedback and enable rapid prototyping, whereas the latter enable complex, reusable abstractions. Unfortunately, existing systems typically force users into just one of these two interaction modes. We present a system called Sketch-n-Sketch that integrates programmatic and direct manipulation for the particular domain of Scalable Vector Graphics (SVG). In Sketch-n-Sketch, the user writes a program to generate an output SVG canvas. Then the user may directly manipulate the canvas while the system immediately infers a program update in order to match the changes to the output, a workflow we call live synchronization. To achieve this, we propose (i) a technique called trace-based program synthesis that takes program execution history into account in order to constrain the search space and (ii) heuristics for dealing with ambiguities. Based on our experience with examples spanning 2,000 lines of code and from the results of a preliminary user study, we believe that Sketch-n-Sketch provides a novel workflow that can augment traditional programming systems. Our approach may serve as the basis for live synchronization in other application domains, as well as a starting point for yet more ambitious ways of combining programmatic and direct manipulation.


title: Optimistic replication
venue: ACM Comput. Surv.
directory: 0
created: 2017-09-06T19:04:17.961131104
modified: 2017-09-06T19:04:17.961131104
abstract:
Data replication is a key technology in distributed systems that enables higher availability and performance. This article surveys optimistic replication algorithms. They allow replica contents to diverge in the short term to support concurrent work practices and tolerate failures in low-quality communication links. The importance of such techniques is increasing as collaboration through wide-area and mobile networks becomes popular.Optimistic replication deploys algorithms not seen in traditional &#8220;pessimistic&#8221; systems. Instead of synchronous replica coordination, an optimistic algorithm propagates changes in the background, discovers conflicts after they happen, and reaches agreement on the final contents incrementally.We explore the solution space for optimistic replication algorithms. This article identifies key challenges facing optimistic replication systems---ordering operations, detecting and resolving conflicts, propagating changes efficiently, and bounding replica divergence---and provides a comprehensive survey of techniques developed for addressing these challenges.


title: There is more consensus in Egalitarian parliaments
venue: SOSP
directory: 0
created: 2017-09-06T19:04:18.548063965
modified: 2017-09-06T19:04:18.548063965
abstract:
This paper describes the design and implementation of Egalitarian Paxos (EPaxos), a new distributed consensus algorithm based on Paxos. EPaxos achieves three goals: (1) optimal commit latency in the wide-area when tolerating one and two failures, under realistic conditions; (2) uniform load balancing across all replicas (thus achieving high throughput); and (3) graceful performance degradation when replicas are slow or crash.
 Egalitarian Paxos is to our knowledge the first protocol to achieve the previously stated goals efficiently---that is, requiring only a simple majority of replicas to be non-faulty, using a number of messages linear in the number of replicas to choose a command, and committing commands after just one communication round (one round trip) in the common case or after at most two rounds in any case. We prove Egalitarian Paxos's properties theoretically and demonstrate its advantages empirically through an implementation running on Amazon EC2.


directory: 0
created: 2017-09-06T19:04:19.239533936
modified: 2017-09-06T19:04:19.239533936
title:
Effective Inter-Component Communication Mapping in Android with Epicc: An Essential Step Towards Holistic Security Analysis

abstract:
Many threats present in smartphones are the result of interactions between application components, not just ar-tifacts of single components. However, current techniques for identifying inter-application communication are ad hoc and do not scale to large numbers of applications. In this paper, we reduce the discovery of inter-component communication (ICC) in smartphones to an instance of the Interprocedural Distributive Environment (IDE) problem, and develop a sound static analysis technique targeted to the Android platform. We apply this analysis to 1,200 applications selected from the Play store and characterize the locations and substance of their ICC. Experiments show that full specifications for ICC can be identified for over 93% of ICC locations for the applications studied. Further the analysis scales well; analysis of each application took on average 113 seconds to complete. Epicc, the resulting tool, finds ICC vulnerabilities with far fewer false positives than the next best tool. In this way, we develop a scalable vehicle to extend current security analysis to entire collections of applications as well as the interfaces they export.


title: Compiling pattern matching to good decision trees
venue: ML
directory: 0
created: 2017-09-06T19:04:19.943174072
modified: 2017-09-06T19:04:19.943174072
abstract:
We address the issue of compiling ML pattern matching to compact and efficient decisions trees. Traditionally, compilation to decision trees is optimized by (1) implementing decision trees as dags with maximal sharing; (2) guiding a simple compiler with heuristics. We first design new heuristics that are inspired by necessity, a concept from lazy pattern matching that we rephrase in terms of decision tree semantics. Thereby, we simplify previous semantic frameworks and demonstrate a straightforward connection between necessity and decision tree runtime efficiency. We complete our study by experiments, showing that optimizing compilation to decision trees is competitive with the optimizing match compiler of Le Fessant and Maranget (2001).


title: Counting Large Numbers of Events in Small Registers
venue: Commun. ACM
directory: 0
created: 2017-09-06T19:04:21.130579102
modified: 2017-09-06T19:04:21.130579102
abstract:
It is possible to use a small counter to keep approximate counts of large numbers. The resulting expected error can be rather precisely controlled. An example is given in which 8-bit counters (bytes) are used to keep track of as many as 130,000 events with a relative error which is substantially independent of the number <italic>n</italic> of events. This relative error can be expected to be 24 percent or less 95 percent of the time (i.e. <italic>&sgr;</italic> = <italic>n</italic>/8). The techniques could be used to advantage in multichannel counting hardware or software used for the monitoring of experiments or processes.


title: Introduction to a System for Distributed Databases (SDD-1)
venue: ACM Trans. Database Syst.
directory: 0
created: 2017-09-06T19:04:21.906489014
modified: 2017-09-06T19:04:21.906489014
abstract:
The declining cost of computer hardware and the increasing data processing needs of geographically dispersed organizations have led to substantial interest in distributed data management. SDD-1 is a distributed database management system currently being developed by Computer Corporation of America. Users interact with SDD-1 precisely as if it were a nondistributed database system because SDD-1 handles all issues arising from the distribution of data. These issues include distributed concurrency control, distributed query processing, resiliency to component failure, and distributed directory management. This paper presents an overview of the SDD-1 design and its solutions to the above problems.
This paper is the first of a series of companion papers on SDD-1 (Bernstein and Shipman [2], Bernstein et al. [4], and Hammer and Shipman [14]).


title: A Fast Quantum Mechanical Algorithm for Database Search
venue: STOC
directory: 0
created: 2017-09-06T19:04:22.827514893
modified: 2017-09-06T19:04:22.827514893
abstract:
An unsorted database contains N records, of which just one satisfies a particular property. The problem is to identify that one record. Any classical algorithm, deter-ministic or probabilistic, will clearly take O (N) steps since on the average it will have to examine a large fraction of the N records. Quantum mechanical systems can do several operations simultaneously due to their wave like properties. This paper gives an O (JN) step quantum mechanical algorithm for identifying that record. It is within a constant factor of the fastest possible quantum mechanical algorithm.


title: f4: Facebook's Warm BLOB Storage System
venue: OSDI
directory: 0
created: 2017-09-06T19:04:23.4757771
modified: 2017-09-06T19:04:23.4757771
abstract:
Facebook's corpus of photos, videos, and other Binary Large OBjects (BLOBs) that need to be reliably stored and quickly accessible is massive and continues to grow. As the footprint of BLOBs increases, storing them in our traditional storage system, Haystack, is becoming increasingly inefficient. To increase our storage efficiency, measured in the effective-replication-factor of BLOBs, we examine the underlying access patterns of BLOBs and identify temperature zones that include hot BLOBs that are accessed frequently and warm BLOBs that are accessed far less often. Our overall BLOB storage system is designed to isolate warm BLOBs and enable us to use a specialized warm BLOB storage system, f4. f4 is a new system that lowers the effective-replication-factor of warm BLOBs while remaining fault tolerant and able to support the lower throughput demands. f4 currently stores over 65PBs of logical BLOBs and reduces their effective-replication-factor from 3.6 to either 2.8 or 2.1. f4 provides low latency; is resilient to disk, host, rack, and datacenter failures; and provides sufficient throughput for warm BLOBs.


title: PushPull++
venue: ACM Trans. Graph.
directory: 0
created: 2017-09-06T19:04:24.206654053
modified: 2017-09-06T19:04:24.206654053
abstract:
PushPull tools are implemented in most commercial 3D modeling suites. Their purpose is to intuitively transform a face, edge, or vertex, and then to adapt the polygonal mesh locally. However, previous approaches have limitations: Some allow adjustments only when adjacent faces are orthogonal; others support slanted surfaces but never create new details. Moreover, self-intersections and edge-collapses during editing are either ignored or work only partially for solid geometry. To overcome these limitations, we introduce the PushPull++ tool for rapid polygonal modeling. In our solution, we contribute novel methods for adaptive face insertion, adjacent face updates, edge collapse handling, and an intuitive user interface that automatically proposes useful drag directions. We show that PushPull++ reduces the complexity of common modeling tasks by up to an order of magnitude when compared with existing tools.


title: Consistency in Non-Transactional Distributed Storage Systems
venue: ACM Comput. Surv.
directory: 0
created: 2017-09-06T19:04:24.922320068
modified: 2017-09-06T19:04:24.922320068
abstract:
Over the years, different meanings have been associated with the word <i>consistency</i> in the distributed systems community. While in the &#8217;80s &#8220;consistency&#8221; typically meant <i>strong consistency</i>, later defined also as <i>linearizability</i>, in recent years, with the advent of highly available and scalable systems, the notion of &#8220;consistency&#8221; has been at the same time both weakened and blurred.
 In this article, we aim to fill the void in the literature by providing a structured and comprehensive overview of different consistency notions that appeared in distributed systems, and in particular <i>storage</i> systems research, in the last four decades. We overview more than 50 different consistency notions, ranging from linearizability to eventual and weak consistency, defining precisely many of these, in particular where the previous definitions were ambiguous. We further provide a partial order among different consistency predicates, ordering them by their semantic &#8220;strength,&#8221; which we believe will be useful in future research. Finally, we map the consistency semantics to different practical systems and research prototypes.
 The scope of this article is restricted to non-transactional semantics, that is, those that apply to single storage object operations. As such, our article complements the existing surveys done in the context of transactional, database consistency semantics.


title: A Method for Obtaining Digital Signatures and Public-Key Cryptosystems
venue: Commun. ACM
directory: 0
created: 2017-09-06T19:04:25.576746094
modified: 2017-09-06T19:04:25.576746094
abstract:
An encryption method is presented with the novel property that publicly revealing an encryption key does not thereby reveal the corresponding decryption key. This has two important consequences: (1) Couriers or other secure means are not needed to transmit keys, since a message can be enciphered using an encryption key publicly revealed by the intented recipient. Only he can decipher the message, since only he knows the corresponding decryption key. (2) A message can be &#8220;signed&#8221; using a privately held decryption key. Anyone can verify this signature using the corresponding publicly revealed encryption key. Signatures cannot be forged, and a signer cannot later deny the validity of his signature. This has obvious applications in &#8220;electronic mail&#8221; and &#8220;electronic funds transfer&#8221; systems. A message is encrypted by representing it as a number M, raising M to a publicly specified power e, and then taking the remainder when the result is divided by the publicly specified product, <italic>n</italic>, of two large secret primer numbers p and q. Decryption is similar; only a different, secret, power d is used, where e * d &#8801; 1(mod (p - 1) * (q - 1)). The security of the system rests in part on the difficulty of factoring the published divisor, <italic>n</italic>.


title: Linear work suffix array construction
venue: J. ACM
directory: 0
created: 2017-09-06T19:04:26.376464111
modified: 2017-09-06T19:04:26.376464111
abstract:
Suffix trees and suffix arrays are widely used and largely interchangeable index structures on strings and sequences. Practitioners prefer suffix arrays due to their simplicity and space efficiency while theoreticians use suffix trees due to linear-time construction algorithms and more explicit structure. We narrow this gap between theory and practice with a simple linear-time construction algorithm for suffix arrays. The simplicity is demonstrated with a C&plus;&plus; implementation of 50 effective lines of code. The algorithm is called DC3, which stems from the central underlying concept of <i>difference cover</i>. This view leads to a generalized algorithm, DC, that allows a space-efficient implementation and, moreover, supports the choice of a space--time tradeoff. For any <i>v</i> &#8712; &lsqb;1,<i>&nradic;</i>&rsqb;, it runs in O(<i>vn</i>) time using O(<i>n</i>/<i>&vradic;</i>) space in addition to the input string and the suffix array. We also present variants of the algorithm for several parallel and hierarchical memory models of computation. The algorithms for BSP and EREW-PRAM models are asymptotically faster than all previous suffix tree or array construction algorithms.


title: On the resemblance and containment of documents
directory: 0
created: 2017-09-06T19:04:28.563496094
modified: 2017-09-06T19:04:28.563496094
abstract:
Given two documents A and B we define two mathematical notions: their resemblance r(A, B) and their containment c(A, B) that seem to capture well the informal notions of " roughly the same " and " roughly contained. " The basic idea is to reduce these issues to set intersection problems that can be easily evaluated by a process of random sampling that can be done independently for each document. Furthermore, the resemblance can be evaluated using a fixed size sample for each document. This paper discusses the mathematical properties of these measures and the efficient implementation of the sampling process using Rabin fingerprints.


title: Weighted Finite-state Transducers in Speech Recognition
directory: 0
created: 2017-09-06T19:04:29.3917771
modified: 2017-09-06T19:04:29.3917771
abstract:
We survey the weighted finite-state transducer (WFST) approach to speech recognition developed at AT&T over the last several years. We show that WFSTs provide a common and natural representation for HMM models, context-dependency, pronunciation dictionaries, grammars, and alternative recognition outputs. Furthermore, general finite-state operations combine these representations flexibly and efficiently. Weighted determinization and minimization algorithms optimize their time and space requirements , and a weight pushing algorithm distributes the weights along the paths of a weighted transducer optimally for speech recognition. As an example, we describe a North American Business News (NAB) recognition system built using these techniques that combines the HMMs, full crossword triphones, a lexicon of forty thousand words, and a large trigram grammar into a single weighted transducer that is only somewhat larger than the trigram word grammar and that runs NAB in real-time on a very simple decoder. In another example, we show that the same techniques can be used to optimize lattices for second-pass recognition. In a third example , we show how finite-state operations can be used to assemble lattices from different recognizers to improve recognition performance .


title: Large-scale cluster management at Google with Borg
venue: EuroSys
directory: 0
created: 2017-09-06T19:04:30.04673291
modified: 2017-09-06T19:04:30.04673291
abstract:
Google's Borg system is a cluster manager that runs hundreds of thousands of jobs, from many thousands of different applications, across a number of clusters each with up to tens of thousands of machines.
 It achieves high utilization by combining admission control, efficient task-packing, over-commitment, and machine sharing with process-level performance isolation. It supports high-availability applications with runtime features that minimize fault-recovery time, and scheduling policies that reduce the probability of correlated failures. Borg simplifies life for its users by offering a declarative job specification language, name service integration, real-time job monitoring, and tools to analyze and simulate system behavior.
 We present a summary of the Borg system architecture and features, important design decisions, a quantitative analysis of some of its policy decisions, and a qualitative examination of lessons learned from a decade of operational experience with it.


title: Propositions as Types
venue: J. Log. Comput.
directory: 0
created: 2017-09-06T19:04:31.507678955
modified: 2017-09-06T19:04:31.507678955
abstract:
Image factorizations in regular categories are stable under pull-backs, so they model a natural modal operator in dependent type theory. This unary type constructor [A] has turned up previously in a syntactic form as a way of erasing computational content, and formalizing a notion of proof irrelevance. Indeed, semantically, the notion of a support is sometimes used as surrogate proposition asserting inhab-itation of an indexed family. We give rules for bracket types in dependent type theory and provide complete semantics using regular categories. We show that dependent type theory with the unit type, strong extensional equality types, strong dependent sums, and bracket types is the internal type theory of regular categories, in the same way that the usual dependent type theory with dependent sums and products is the internal type theory of locally cartesian closed categories. We also show how to interpret first-order logic in type theory with brackets, and we make use of the translation to compare type theory with logic. Specifically, we show that the propositions-as-types interpretation is complete with respect to a certain fragment of intuitionistic first-order logic. As a consequence, a modified double-negation translation into type theory (without bracket types) is complete for all of classical first-order logic.


title: Push-pull functional reactive programming
venue: Haskell
directory: 0
created: 2017-09-06T19:04:33.404837891
modified: 2017-09-06T19:04:33.404837891
abstract:
Functional reactive programming (FRP) has simple and powerful semantics, but has resisted efficient implementation. In particular, most past implementations have used demand-driven sampling, which accommodates FRP's continuous time semantics and fits well with the nature of functional programming. Consequently, values are wastefully recomputed even when inputs don't change, and reaction latency can be as high as the sampling period. This paper presents a way to implement FRP that combines data- and demand-driven evaluation, in which values are recomputed only when necessary, and reactions are nearly instantaneous. The implementation is rooted in a new simple formulation of FRP and its semantics and so is easy to understand and reason about. On the road to a new implementation, we'll meet some old friends (monoids, functors, applicative functors, monads, morphisms, and improving values) and make some new friends (functional future values, reactive normal form, and concurrent "unambiguous choice").


title: Illumination for Computer Generated Pictures
venue: Commun. ACM
directory: 0
created: 2017-09-06T19:04:34.311608887
modified: 2017-09-06T19:04:34.311608887
abstract:
The quality of computer generated images of three-dimensional scenes depends on the shading technique used to paint the objects on the cathode-ray tube screen. The shading algorithm itself depends in part on the method for modeling the object, which also determines the hidden surface algorithm. The various methods of object modeling, shading, and hidden surface removal are thus strongly interconnected. Several shading techniques corresponding to different methods of object modeling and the related hidden surface algorithms are presented here. Human visual perception and the fundamental laws of optics are considered in the development of a shading rule that provides better quality and increased realism in generated images.


venue: Commun. ACM
directory: 0
created: 2017-09-06T19:04:34.938181885
modified: 2017-09-06T19:04:34.938181885
title:
Can Programming Be Liberated From the von Neumann Style? A Functional Style and its Algebra of Programs

abstract:
Conventional programming languages are growing ever more enormous, but not stronger. Inherent defects at the most basic level cause them to be both fat and weak: their primitive word-at-a-time style of programming inherited from their common ancestor&#8212;the von Neumann computer, their close coupling of semantics to state transitions, their division of programming into a world of expressions and a world of statements, their inability to effectively use powerful combining forms for building new programs from existing ones, and their lack of useful mathematical properties for reasoning about programs.
An alternative functional style of programming is founded on the use of combining forms for creating programs. Functional programs deal with structured data, are often nonrepetitive and nonrecursive, are hierarchically constructed, do not name their arguments, and do not require the complex machinery of procedure declarations to become generally applicable. Combining forms can use high level programs to build still higher level ones in a style not possible in conventional languages.
Associated with the functional style of programming is an algebra of programs whose variables range over programs and whose operations are combining forms. This algebra can be used to transform programs and to solve equations whose &#8220;unknowns&#8221; are programs in much the same way one transforms equations in high school algebra. These transformations are given by algebraic laws and are carried out in the same language in which programs are written. Combining forms are chosen not only for their programming power but also for the power of their associated algebraic laws. General theorems of the algebra give the detailed behavior and termination conditions for large classes of programs.
 A new class of computing systems uses the functional programming style both in its programming language and in its state transition rules. Unlike von Neumann languages, these systems have semantics loosely coupled to states&#8212;only one state transition occurs per major computation.


title: Poisson surface reconstruction
venue: Symposium on Geometry Processing
directory: 0
created: 2017-09-06T19:04:35.746206055
modified: 2017-09-06T19:04:35.746206055
abstract:
We show that surface reconstruction from oriented points can be cast as a spatial Poisson problem. This Poisson formulation considers all the points at once, without resorting to heuristic spatial partitioning or blending, and is therefore highly resilient to data noise. Unlike radial basis function schemes, our Poisson approach allows a hierarchy of locally supported basis functions, and therefore the solution reduces to a well conditioned sparse linear system. We describe a spatially adaptive multiscale algorithm whose time and space complexities are proportional to the size of the reconstructed model. Experimenting with publicly available scan data, we demonstrate reconstruction of surfaces with greater detail than previously achievable.


title: Direct and Indirect Effects
venue: UAI
directory: 0
created: 2017-09-06T19:04:36.562456055
modified: 2017-09-06T19:04:36.562456055
abstract:
The direct effect of one event on another can be defined and measured by holding constant all intermediate variables between the two. Indirect effects present conceptual and prac­ tical difficulties (in nonlinear models), be­ cause they cannot be isolated by holding cer­ tain variables constant. This paper presents a new way of defining the effect transmit­ ted through a restricted set of paths, without controlling variables on the remaining paths. This permits the assessment of a more nat­ ural type of direct and indirect effects, one that is applicable in both linear and nonlinear models and that has broader policy-related interpretations. The paper establishes con­ ditions under which such assessments can be estimated consistently from experimen­ tal and nonexperimental data, and thus ex­ tends path-analytic techniques to nonlinear and nonparametric models. The distinction between total, direct, and indirect ef­ fects is deeply entrenched in causal conversations, and attains practical importance in many applications, in­ cluding policy decisions, legal definitions and health care analysis. Structural equation modeling (SEM) (Goldberger 1972), which provides a methodology of defining and estimating such effects, has been re­ stricted to linear analysis, and no comparable method­ ology has been devised to extend these capabilities to models involving nonlinear dependencies,1 as those 1 A notable exception is the counterfactual analysis of Robins and Greenland (1992) which is applicable to non­ linear models, but does not incorporate path-analytic tech­ niques. The causal relationship that is easiest to interpret, define and estimate is the total effect. Written as P(Y"' = y), the total effect measures the probability that response variable Y would take on the value y when X is set to x by external intervention.2 This probability function is what we normally assess in a controlled experiment in which X is randomized and in which the distribution of Y is estimated for each level x of X. In many cases, however, this quantity does not ade­ quately represent the target of investigation and at­ tention is focused instead on the direct effect of X on Y. The term "direct effect" is meant to quantify an influence that is not mediated by other variables in the model or, more accurately, the sensitivity of Y to changes in X while all other factors in the analysis are held fixed. Naturally, holding those factors fixed would sever all causal paths from X to Y with the exception of the direct link …


title: BIG Cache Abstraction for Cache Networks
venue: 2017 IEEE 37th International Conference on Distributed Computing Systems (ICDCS)
directory: 0
created: 2017-09-06T19:04:37.172961914
modified: 2017-09-06T19:04:37.172961914
abstract:
In this paper, we advocate the notion of &#x0022;BIG&#x0022; cache as an innovative abstraction for effectively utilizing the distributed storage and processing capacities of all servers in a cache network. The &#x0022;BIG&#x0022; cache abstraction is proposed to partly address the problem of (cascade) thrashing in a hierarchical network of cache servers, where it has been known that cache resources at intermediate servers are poorly utilized, especially under classical cache replacement policies such as LRU. We lay out the advantages of &#x0022;BIG&#x0022; cache abstraction and make a strong case both from a theoretical standpoint as well as through simulation analysis. We also develop the dCLIMB cache algorithm to minimize the overheads of moving objects across distributed cache boundaries and present a simple yet effective heuristic for addressing the cache allotment problem in the design of &#x0022;BIG&#x0022; cache abstraction.


title: Deep Colorization
venue: 2015 IEEE International Conference on Computer Vision (ICCV)
directory: 0
created: 2017-09-06T19:04:37.823420898
modified: 2017-09-06T19:04:37.823420898
abstract:
This paper investigates into the colorization problem which converts a grayscale image to a colorful version. This is a very difficult problem and normally requires manual adjustment to achieve artifact-free quality. For instance, it normally requires human-labelled color scribbles on the grayscale target image or a careful selection of colorful reference images (e.g., capturing the same scene in the grayscale target image). Unlike the previous methods, this paper aims at a high-quality fully-automatic colorization method. With the assumption of a perfect patch matching technique, the use of an extremely large-scale reference database (that contains sufficient color images) is the most reliable solution to the colorization problem. However, patch matching noise will increase with respect to the size of the reference database in practice. Inspired by the recent success in deep learning techniques which provide amazing modeling of large-scale data, this paper re-formulates the colorization problem so that deep learning techniques can be directly employed. To ensure artifact-free quality, a joint bilateral filtering based post-processing step is proposed. Numerous experiments demonstrate that our method outperforms the state-of-art algorithms both in terms of quality and speed.


title: Communicating Sequential Processes
venue: Commun. ACM
directory: 0
created: 2017-09-06T19:04:38.977754883
modified: 2017-09-06T19:04:38.977754883
abstract:
This paper suggests that input and output are basic primitives of programming and that parallel composition of communicating sequential processes is a fundamental program structuring method. When combined with a development of Dijkstra's guarded command, these concepts are surprisingly versatile. Their use is illustrated by sample solutions of a variety of a familiar programming exercises.


title: Event-Driven FRP
venue: PADL
directory: 0
created: 2017-09-06T19:04:39.629645996
modified: 2017-09-06T19:04:39.629645996
abstract:
Functional Reactive Programming (FRP) is a high-level declarative language for programming reactive systems. Previous work on FRP has demonstrated its utility in a wide range of application domains, including animation, graphical user interfaces, and robotics. FRP has an elegant continuous-time denotational semantics. However, it guarantees no bounds on execution time or space, thus making it unsuitable for many embedded real-time applications. To alleviate this problem, we recently developed Real-Time FRP (RT-FRP), whose operational semantics permits us to formally guarantee bounds on both execution time and space. In this paper we present a formally verifiable compilation strategy from a new language based on RT-FRP into imperative code. The new language , called Event-Driven FRP (E-FRP), is more tuned to the paradigm of having multiple external events. While it is smaller than RT-FRP, it features a key construct that allows us to compile the language into efficient code. We have used this language and its compiler to generate code for a small robot controller that runs on a PIC16C66 micro-controller. Because the formal specification of compilation was crafted more for clarity and for technical convenience, we describe an implementation that produces more efficient code.


title: Purely functional lazy nondeterministic programming
venue: J. Funct. Program.
directory: 0
created: 2017-09-06T19:04:40.324324951
modified: 2017-09-06T19:04:40.324324951
abstract:
Functional logic programming and probabilistic programming have demonstrated the broad benefits of combining laziness (non-strict evaluation with sharing of the results) with non-determinism. Yet these benefits are seldom enjoyed in functional programming, because the existing features for non-strictness, sharing, and non-determinism in functional languages are tricky to combine.
 We present a practical way to write purely functional lazy non-deterministic programs that are efficient and perspicuous. We achieve this goal by embedding the programs into existing languages (such as Haskell, SML, and OCaml) with high-quality implementations, by making choices lazily and representing data with non-deterministic components, by working with custom monadic data types and search strategies, and by providing equational laws for the programmer to reason about their code.


title: A Note on Distributed Computing
venue: Mobile Object Systems
directory: 0
created: 2017-09-06T19:04:42.608986084
modified: 2017-09-06T19:04:42.608986084
abstract:
We argue that objects that interact in a distributed system need to be dealt with in ways that are intrinsically different from objects that interact in a single address space. These differences are required because distributed systems require that the programmer be aware of latency, have a different model of memory access, and take into account issues of concurrency and partial failure. We look at a number of distributed systems that have attempted to paper over the distinction between local and remote objects, and show that such systems fail to support basic requirements of robustness and reliability. These failures have been masked in the past by the small size of the distributed systems that have been built. In the enterprise-wide distributed systems foreseen in the near future, however, such a masking will be impossible. We conclude by discussing what is required of both systems-level and application-level programmers and designers if one is to take distribution seriously.


title: The BUDS Language for Distributed Bayesian Machine Learning
venue: SIGMOD Conference
directory: 0
created: 2017-09-06T19:04:43.726670898
modified: 2017-09-06T19:04:43.726670898
abstract:
We describe BUDS, a declarative language for succinctly and simply specifying the implementation of large-scale machine learning algorithms on a distributed computing platform. The types supported in BUDS--vectors, arrays, etc.--are simply logical abstractions useful for programming, and do not correspond to the actual implementation. In fact, BUDS automatically chooses the physical realization of these abstractions in a distributed system, by taking into account the characteristics of the data. Likewise, there are many available implementations of the abstract operations offered by BUDS (matrix multiplies, transposes, Hadamard products, etc.). These are tightly coupled with the physical representation. In BUDS, these implementations are co-optimized along with the representation. All of this allows for the BUDS compiler to automatically perform deep optimizations of the user's program, and automatically generate efficient implementations.


title: D-Expressions: Lisp Power, Dylan Style
directory: 0
created: 2017-09-06T19:04:44.345201904
modified: 2017-09-06T19:04:44.345201904
abstract:
1 Abstract This paper aims to demonstrate that it is possible for a language with a rich, conventional syntax to provide Lisp-style macro power and simplicity. We describe a macro system and syntax manipulation toolkit designed for the Dylan programming language that meets, and in some areas exceeds, this standard. The debt to Lisp is great, however, since although Dylan has a conventional algebraic syntax, the approach taken to describe and represent that syntax is distinctly Lisp-like in philosophy. 2 Introduction The ability to extend a programming language with new constructs is a valuable tool. With it, system designers can grow a language towards their problem domain and enhance productivity and ease of maintenance. A macro system provides this capability in a portable, high-level fashion by allowing new constructs to be implemented in terms of existing ones via programmer-defined source-to-source transformations. Beyond the above, the ability to read, write, and easily manipulate the syntax of a language from within that language can be especially powerful. It can allow the full language to be brought to bear when implementing macros. It can provide a convenient means of saving and restoring structured data in text form. It can form the basis of code analysis tools and be the starting point for experiments with new language processors or into modified language semantics. Lisp is the only language family (cf [9], [10]) that has succeeded in providing integrated macro systems along with simple and powerful syntax manipulation tools like these. They are considered one of Lisp's unique strengths, perhaps even the most important and distinctive feature of the language. But the key to their viability in Lisp is the simplicity and regularity of its syntax. Recognizing their utility, attempts have been made to provide powerful macro facilities in languages with more conventional syntaxes like those of C or Pascal, but in comparison with what Lisp provides, the solutions have been restrictive, difficult to explain and use, or both. None have been standardized. Further, the utility of syntax manipulation tools independent of the macroex-pansion process is typically forgotten. This paper aims finally to demonstrate that it is possible for a language with a richer, more conventional syntax to provide Lisp-style macro power and simplicity. We describe a macro system and syntax manipulation toolkit designed for the Dylan programming language (cf [13], [7]) that meets our goals as well as, if not better than, those commonly …


title: The phase transition in inhomogeneous random graphs
venue: Random Struct. Algorithms
directory: 0
created: 2017-09-06T19:04:45.147321045
modified: 2017-09-06T19:04:45.147321045
abstract:
The 'classical' random graph models, in particular G(n, p), are 'homogeneous', in the sense that the degrees (for example) tend to be concentrated around a typical value. Many graphs arising in the real world do not have this property, having, for example, power-law degree distributions. Thus there has been a lot of recent interest in defining and studying 'inhomogeneous' random graph models. One of the most studied properties of these new models is their 'robust-ness', or, equivalently, the 'phase transition' as an edge density parameter is varied. For G(n, p), p = c/n, the phase transition at c = 1 has been a central topic in the study of random graphs for well over 40 years. Many of the new inhomogeneous models are rather complicated; although there are exceptions, in most cases precise questions such as determining exactly the critical point of the phase transition are approachable only when there is independence between the edges. Fortunately, some models studied have this property already, and others can be approximated by models with independence. Here we introduce a very general model of an inhomogeneous random graph with (conditional) independence between the edges, which scales so that the number of edges is linear in the number of vertices. This scaling corresponds to the p = c/n scaling for G(n, p) used to study the phase transition; also, it seems to be a property of many large real-world graphs. Our model includes as special cases many models previously studied. We show that, under one very weak assumption (that the expected number of edges is 'what it should be'), many properties of the model can be determined, in particular the critical point of the phase transition, and the size of the giant component above the transition. We do this by relating our random graphs to branching processes, which are much easier to analyze. We also consider other properties of the model, showing, for example, that when there is a giant component, it is 'stable': for a typical random graph, no matter how we add or delete o(n) edges, the size of the giant component does not change by more than o(n).


title: Byzantine Chain Replication
venue: OPODIS
directory: distributed_systems/
created: 2017-09-06T19:04:47.970041992
modified: 2017-09-06T19:04:47.970041992
abstract:
We present a new class of Byzantine-tolerant State Machine Replication protocols for asynchronous environments that we term Byzan-tine Chain Replication. We demonstrate two implementations that present different trade-offs between performance and security, and compare these with related work. Leveraging an external reconfiguration service, these protocols are not based on Byzantine consensus, do not require majority-based quorums during normal operation, and the set of replicas is easy to reconfigure. One of the implementations is instantiated with t + 1 replicas to tolerate t failures and is useful in situations where perimeter security makes malicious attacks unlikely. Applied to in-memory BerkeleyDB replication, it supports 20,000 transactions per second while a fully Byzantine implementation supports 12,000 transactions per second—about 70% of the throughput of a non-replicated database.


title: Spanner: Google's globally-distributed database
venue: SYSTOR
directory: datastores/
created: 2017-09-06T19:04:48.654156982
modified: 2017-09-06T19:04:48.654156982
abstract:
Spanner is Google&#8217;s scalable, multiversion, globally distributed, and synchronously replicated database. It is the first system to distribute data at global scale and support externally-consistent distributed transactions. This article describes how Spanner is structured, its feature set, the rationale underlying various design decisions, and a novel time API that exposes clock uncertainty. This API and its implementation are critical to supporting external consistency and a variety of powerful features: nonblocking reads in the past, lock-free snapshot transactions, and atomic schema changes, across all of Spanner.


title: The Quest for Artificial Intelligence a History of Ideas and Achievements
directory: comp_sci_fundamentals_and_history/
created: 2017-09-06T19:04:49.297701904
modified: 2017-09-06T19:04:49.297701904
abstract:
In the second full paragraph of page 21, change George A. Miller's dates from " (1920—) " to " (1920—2012) " In the last full paragraph of page 33, replace " The claim that these " in the sentence " The claim that these two ... " by " That these " and eliminate the parenthetical sentence following that sentence, (" The claim has not. .. "). Move footnote #51 to occur along with footnote #50.


title: A survey of network virtualization
venue: Computer Networks
directory: paradigms/functional_reactive_programming/
created: 2017-09-06T19:04:50.379657959
modified: 2017-09-06T19:04:50.379657959
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: Fast asymmetric thread synchronization
venue: TACO
directory: memory_management/
created: 2017-09-06T19:04:51.023820068
modified: 2017-09-06T19:04:51.023820068
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: Consensus in the presence of partial synchrony
venue: J. ACM
directory: distributed_systems/
created: 2017-09-06T19:04:51.765340088
modified: 2017-09-06T19:04:51.765340088
abstract:
The concept of partial synchrony in a distributed system is introduced. Partial synchrony lies between the cases of a synchronous system and an asynchronous system. In a synchronous system, there is a known fixed upper bound &#916; on the time required for a message to be sent from one processor to another and a known fixed upper bound &PHgr; on the relative speeds of different processors. In an asynchronous system no fixed upper bounds &#916; and &PHgr; exist. In one version of partial synchrony, fixed bounds &#916; and &PHgr; exist, but they are not known a priori. The problem is to design protocols that work correctly in the partially synchronous system regardless of the actual values of the bounds &#916; and &PHgr;. In another version of partial synchrony, the bounds are known, but are only guaranteed to hold starting at some unknown time <italic>T</italic>, and protocols must be designed to work correctly regardless of when time <italic>T</italic> occurs. Fault-tolerant consensus protocols are given for various cases of partial synchrony and various fault models. Lower bounds that show in most cases that our protocols are optimal with respect to the number of faults tolerated are also given. Our consensus protocols for partially synchronous processors use new protocols for fault-tolerant &#8220;distributed clocks&#8221; that allow partially synchronous processors to reach some approximately common notion of time.


title: Transactional storage for geo-replicated systems
venue: SOSP
directory: datastores/
created: 2017-09-06T19:04:52.521644043
modified: 2017-09-06T19:04:52.521644043
abstract:
We describe the design and implementation of Walter, a key-value store that supports transactions and replicates data across distant sites. A key feature behind Walter is a new property called <i>Parallel Snapshot Isolation</i> (PSI). PSI allows Walter to replicate data asynchronously, while providing strong guarantees within each site. PSI precludes write-write conflicts, so that developers need not worry about conflict-resolution logic. To prevent write-write conflicts and implement PSI, Walter uses two new and simple techniques: preferred sites and counting sets. We use Walter to build a social networking application and port a Twitter-like application.


title: A Byzantine Fault Tolerant Distributed Commit Protocol
venue: Third IEEE International Symposium on Dependable, Autonomic and Secure Computing (DASC 2007)
directory: distributed_systems/
created: 2017-09-06T19:04:53.226562012
modified: 2017-09-06T19:04:53.226562012
abstract:
In this paper, we present a Byzantine fault tolerant distributed commit protocol for transactions running over un- trusted networks. The traditional two-phase commit protocol is enhanced by replicating the coordinator and by running a Byzantine agreement algorithm among the coordinator replicas. Our protocol can tolerate Byzantine faults at the coordinator replicas and a subset of malicious faults at the participants. A decision certificate, which includes a set of registration records and a set of votes from participants, is used to facilitate the coordinator replicas to reach a Byzantine agreement on the outcome of each transaction. The certificate also limits the ways a faulty replica can use towards non-atomic termination of transactions, or semantically incorrect transaction outcomes.


title: Inductive Supervised Quantum Learning.
venue: Physical review letters
directory: quantum_computing/
created: 2017-09-06T19:04:53.943787109
modified: 2017-09-06T19:04:53.943787109
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: High-throughput DNA sequence data compression
venue: Briefings in Bioinformatics
directory: data_compression/
created: 2017-09-06T19:04:59.581676025
modified: 2017-09-06T19:04:59.581676025
abstract:
The exponential growth of high-throughput DNA sequence data has posed great challenges to genomic data storage, retrieval and transmission. Compression is a critical tool to address these challenges, where many methods have been developed to reduce the storage size of the genomes and sequencing data (reads, quality scores and metadata). However, genomic data are being generated faster than they could be meaningfully analyzed, leaving a large scope for developing novel compression algorithms that could directly facilitate data analysis beyond data transfer and storage. In this article, we categorize and provide a comprehensive review of the existing compression methods specialized for genomic data and present experimental results on compression ratio, memory usage, time for compression and decompression. We further present the remaining challenges and potential directions for future research.


title: Introduction to Cryptocurrencies
venue: ACM Conference on Computer and Communications Security
directory: digital_currency/
created: 2017-09-06T19:05:00.157906982
modified: 2017-09-06T19:05:00.157906982
abstract:
We provide a research-oriented introduction to the cryptographic currencies. We start with a description of Bitcoin and its main design principles. We then discuss some of its weaknesses, and show some ideas for dealing with them. We also talk about the mechanics of the mining pools and ideas for discouraging the mining pool creation. We provide an introduction to the smart contracts, and give some examples of them, including the multiparty lotteries.
 We then present alternative currencies that were designed to remedy some of the problems of Bitcoin. In particular, we talk about the Litecoin, the Primecoin, the Permacoin, the Zerocoin, the Proofs of Stake and the Proofs of Space. We also discuss the most important research challenges in this area.


title: Paxos Made Moderately Complex
venue: ACM Comput. Surv.
directory: distributed_systems/
created: 2017-09-06T19:05:01.612158936
modified: 2017-09-06T19:05:01.612158936
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: Out of the Tar Pit
directory: design/
created: 2017-09-06T19:05:02.668707031
modified: 2017-09-06T19:05:02.668707031
abstract:
Complexity is the single major difficulty in the successful development of large-scale software systems. Following Brooks we distinguish accidental from essential difficulty, but disagree with his premise that most complexity remaining in contemporary systems is essential. We identify common causes of complexity and discuss general approaches which can be taken to eliminate them where they are accidental in nature. To make things more concrete we then give an outline for a potential complexity-minimizing approach based on functional programming and Codd's relational model of data.


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


title: Genetic Programming: An Introduction
directory: paradigms/functional_programming/
created: 2017-09-06T19:05:06.811043945
modified: 2017-09-06T19:05:06.811043945
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: Implementing the Omega failure detector in the crash-recovery failure model
venue: J. Comput. Syst. Sci.
directory: distributed_systems/
created: 2017-09-06T19:05:08.129467041
modified: 2017-09-06T19:05:08.129467041
abstract:
a r t i c l e i n f o a b s t r a c t Unreliable failure detectors are mechanisms providing information about process failures, that allow to solve several problems in asynchronous systems, e.g., Consensus. A particular failure detector, Omega, provides an eventual leader election functionality. This paper addresses the implementation of Omega in the crash-recovery failure model. We first propose an algorithm assuming that processes are reachable from the correct process that crashes and recovers a minimum number of times. Then, we propose two algorithms which assume only that processes are reachable from some correct process. Besides this, one of the algorithms requires the membership to be known a priori, while the other two do not.


title: Signal/Collect: Graph Algorithms for the (Semantic) Web
venue: International Semantic Web Conference
directory: distributed_systems/
created: 2017-09-06T19:05:09.0327229
modified: 2017-09-06T19:05:09.0327229
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: Toward a cloud computing research agenda
venue: SIGACT News
directory: distributed_systems/
created: 2017-09-06T19:05:10.217718994
modified: 2017-09-06T19:05:10.217718994
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: Gamification in educational software development
venue: CSERC
directory: gamification/
created: 2017-09-06T19:05:11.227712891
modified: 2017-09-06T19:05:11.227712891
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: The Early History of Smalltalk
venue: HOPL Preprints
directory: languages/smalltalk/
created: 2017-09-06T19:05:12.583335938
modified: 2017-09-06T19:05:12.583335938
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: A History of the Virtual Synchrony Replication Model
venue: Replication
directory: distributed_systems/
created: 2017-09-06T19:05:13.372816895
modified: 2017-09-06T19:05:13.372816895
abstract:
In this chapter, we discuss a widely used fault-tolerant data replication model called virtual synchrony. The model responds to two kinds of needs. First, there is the practical question of how best to embed replication into distributed systems. Virtual synchrony defines dynamic process groups that have self-managed membership. Applications can join or leave groups at will: a process group is almost like a replicated variable that lives in the network. The second need relates to performance. Although state machine replication is relatively easy to understand, protocols that implement state machine replication in the standard manner are too slow to be useful in demanding settings, and are hard to deploy in very large data centers of the sort seen in today's cloud-computing environments. Virtual synchrony implementations, in contrast, are able to deliver updates at the same data rates (and with the same low latencies) as IP multicast: the fast (but unreliable) Internet multi-cast protocol, often supported directly by hardware. The trick that makes it possible to achieve these very high levels of performance is to hide overheads by piggyback-ing extra information on regular messages that carry updates. The virtual synchrony replication model has been very widely adopted, and was used in everything from air traffic control and stock market systems to data center management platforms marketed by companies like IBM and Microsoft. Moreover, in recent years, state machine protocols such as those used in support of Paxos have begun to include elements of the virtual synchrony model, such as self-managed and very dynamic membership. Our exploration of the model takes the form of a history. We start by exploring the background, and then follow evolution of the model over time. A " Cloud Computing " revolution is underway, supported by massive data centers that often contain thousands (if not hundreds of thousands) of servers. In such systems , scalability is the mantra and this, in turn, compels application developers to replicate various forms of information. By replicating the data needed to handle client requests, many services can be spread over a cluster to exploit parallelism.


title: The Meaning of Employee Engagement
directory: logic_and_programming/
created: 2017-09-06T19:05:14.756280029
modified: 2017-09-06T19:05:14.756280029
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: Freenet: A Distributed Anonymous Information Storage and Retrieval System
venue: Workshop on Design Issues in Anonymity and Unobservability
directory: datastores/
created: 2017-09-06T19:05:17.669041992
modified: 2017-09-06T19:05:17.669041992
abstract:
We describe Freenet, an adaptive peer-to-peer network application that permits the publication, replication, and retrieval of data while protecting the anonymity of both authors and readers. Freenet operates as a network of identical nodes that collectively pool their storage space to store data les and cooperate to route requests to the most likely physical location of data. No broadcast search or centralized location index is employed. Files are referred to in a location-independent manner, and are dynamically replicated in locations near requestors and deleted from locations where there is no interest. It is infeasible to discover the true origin or destination of a le passing through the network, and diicult for a node operator to determine or be held responsible for the actual physical contents of her own node.


title: The Story of the Therac in LOTOS
directory: operating_systems/
created: 2017-09-06T19:05:18.185139893
modified: 2017-09-06T19:05:18.185139893
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: Dynamo: amazon's highly available key-value store
venue: SOSP
directory: datastores/
created: 2017-09-06T19:05:18.862406982
modified: 2017-09-06T19:05:18.862406982
abstract:
Reliability at massive scale is one of the biggest challenges we face at Amazon.com, one of the largest e-commerce operations in the world; even the slightest outage has significant financial consequences and impacts customer trust. The Amazon.com platform, which provides services for many web sites worldwide, is implemented on top of an infrastructure of tens of thousands of servers and network components located in many datacenters around the world. At this scale, small and large components fail continuously and the way persistent state is managed in the face of these failures drives the reliability and scalability of the software systems.
 This paper presents the design and implementation of Dynamo, a highly available key-value storage system that some of Amazon's core services use to provide an "always-on" experience. To achieve this level of availability, Dynamo sacrifices consistency under certain failure scenarios. It makes extensive use of object versioning and application-assisted conflict resolution in a manner that provides a novel interface for developers to use.


title: Axiomatic Basis for Computer Programming
directory: comp_sci_fundamentals_and_history/
created: 2017-09-06T19:05:19.648459961
modified: 2017-09-06T19:05:19.648459961
abstract:
This paper considers a formal method, known as axiomatic semantics, used to prove the correctness of a computer program. This formal method extracts, using some proof rules, the mathematical verification conditions from a computer program. The axioms of program flow, including, sequential flow, iteration, and alternation flows are presented. Using the axiomatic basis the completeness of two variants of integer multiplication program is proved. Results show that computer programs can actually be verified sufficiently for correctness without necessarily testing them, or more practically put, to complement their testing.


title: Toward a unified theory of sparse dimensionality reduction in Euclidean space
venue: STOC
directory: machine_learning/dimensionality_reduction/
created: 2017-09-06T19:05:20.464197021
modified: 2017-09-06T19:05:20.464197021
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: Large-scale Incremental Processing Using Distributed Transactions and Notifications
venue: OSDI
directory: distributed_systems/
created: 2017-09-06T19:05:21.291697021
modified: 2017-09-06T19:05:21.291697021
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: Spherical hashing
venue: 2012 IEEE Conference on Computer Vision and Pattern Recognition
directory: distributed_systems/
created: 2017-09-06T19:05:24.01964209
modified: 2017-09-06T19:05:24.01964209
abstract:
Many binary code encoding schemes based on hashing have been actively studied recently, since they can provide efficient similarity search, especially nearest neighbor search, and compact data representations suitable for handling large scale image databases in many computer vision problems. Existing hashing techniques encode high-dimensional data points by using hyperplane-based hashing functions. In this paper we propose a novel hypersphere-based hashing function, spherical hashing, to map more spatially coherent data points into a binary code compared to hyperplane-based hashing functions. Furthermore, we propose a new binary code distance function, spherical Hamming distance, that is tailored to our hypersphere-based binary coding scheme, and design an efficient iterative optimization process to achieve balanced partitioning of data points for each hash function and independence between hashing functions. Our extensive experiments show that our spherical hashing technique significantly outperforms six state-of-the-art hashing techniques based on hyperplanes across various image benchmarks of sizes ranging from one to 75 million of GIST descriptors. The performance gains are consistent and large, up to 100% improvements. The excellent results confirm the unique merits of the proposed idea in using hyperspheres to encode proximity regions in high-dimensional spaces. Finally, our method is intuitive and easy to implement.


title: Kelips: Building an Efficient and Stable P2P DHT through Increased Memory and Background Overhead
venue: IPTPS
directory: distributed_systems/
created: 2017-09-06T19:05:25.170361084
modified: 2017-09-06T19:05:25.170361084
abstract:
A peer-to-peer (p2p) distributed hash table (DHT) system allows hosts to join and fail silently (or leave), as well as to insert and retrieve files (objects). This paper explores a new point in design space in which increased memory usage and constant background communication overheads are tolerated to reduce file lookup times and increase stability to failures and churn. Our system, called Kelips, uses peer-to-peer gossip to partially repli-cate file index information. In Kelips, (a) under normal conditions, file lookups are resolved with O(1) time and complexity (i.e., independent of system size), and (b) membership changes (e.g., even when a large number of nodes fail) are detected and disseminated to the system quickly. Per-node memory requirements are small in medium-sized systems. When there are failures, lookup success is ensured through query rerouting. Kelips achieves load balancing comparable to existing systems. Locality is supported by using topologically aware gossip mechanisms. Initial results of an ongoing experimental study are also discussed. * System name derived from kelip-kelip, Malay name for the self-synchronizing fireflies that accumulate after dusk on branches of mangrove trees in Selangor, Malaysia [11]. Our system organizes similarly into affinity groups, and nodes in a group " synchronize " loosely to store information for a common set of file indices.


title: Live Migration of Virtual Machines
venue: NSDI
directory: operating_systems/
created: 2017-09-06T19:05:26.088996094
modified: 2017-09-06T19:05:26.088996094
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: Optimal Purely Functional Priority Queues
venue: J. Funct. Program.
directory: paradigms/functional_programming/
created: 2017-09-06T19:05:26.834574951
modified: 2017-09-06T19:05:26.834574951
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: Deprecating the Observer Pattern
directory: paradigms/functional_reactive_programming/
created: 2017-09-06T19:05:27.5486521
modified: 2017-09-06T19:05:27.5486521
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: MapReduce: Simplified Data Processing on Large Clusters
venue: OSDI
directory: distributed_systems/
created: 2017-09-06T19:05:28.710909912
modified: 2017-09-06T19:05:28.710909912
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: Spartan: A Distributed Array Framework with Smart Tiling
venue: USENIX Annual Technical Conference
directory: datastores/
created: 2017-09-06T19:05:29.387280029
modified: 2017-09-06T19:05:29.387280029
abstract:
Application programmers in domains like machine learning, scientific computing, and computational biology are accustomed to using powerful, high productivity array languages such as MatLab, R and NumPy. Distributed array frameworks aim to scale array programs across machines. However, maximizing the locality of access to distributed arrays is an unsolved problem; such locality is critical for high performance. This paper presents Spartan, a distributed array framework that automatically determines how to best partition (aka " tile ") n-dimensional arrays and to co-locate data with computation to maximize locality. Spartan combines a lazy-evaluation based, optimizing frontend with a distributed tiled array backend. Central to Spartan's design is a small number of carefully chosen parallel high-level operators, which form the expression graph captured by Spartan's frontend during runtime. These operators simplify the programming of distributed applications. More importantly , their well-defined semantics allow Spartan's runtime to calculate the costs of different tiling strategies and pick the best one for evaluating the entire expression graph. Using Spartan, we have implemented 12 applications from a variety of domains including machine learning and scientific computing. Our evaluations show that Spartan's automatic tiling mechanism leads to good and scalable performance while eliminating the need for manual tiling.


title: The extensible neuroimaging archive toolkit
venue: Neuroinformatics
directory: pattern_matching/
created: 2017-09-06T19:05:30.305115967
modified: 2017-09-06T19:05:30.305115967
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: Self-stabilizing Systems in Spite of Distributed Control
venue: Commun. ACM
directory: distributed_systems/
created: 2017-09-06T19:05:31.960602051
modified: 2017-09-06T19:05:31.960602051
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: Stronger Semantics for Low-Latency Geo-Replicated Storage
venue: NSDI
directory: distributed_systems/
created: 2017-09-06T19:05:33.164758057
modified: 2017-09-06T19:05:33.164758057
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: Techniques for Automated Generation of Testbed Infrastructures for SOA
directory: computer_education/
created: 2017-09-06T19:05:34.31026001
modified: 2017-09-06T19:05:34.31026001
abstract:
Service-oriented architecture (SOA), as a paradigm for flexible distributed computing based on modular services, has become a major topic in computer science and in software industry. As a result, numerous SOA-based concepts have been published by the research community and many software solutions are nowadays provided by the industry. However, both, the research community and the industry, have neglected the need for sophisticated support for testing of SOA's. While most of the effort has been put into supporting the testing of single Web services, only very few works actually aim at testing of complex SOA-based systems. In particular, there is a lack of solutions for testing of systems that will be deployed in service-based environments and that need proper testbeds at development time. In this thesis we focus on solving this issue and present our results on automated generation of testbed infrastructures for SOA. The purpose of our work is to provide means for developers to generate customized testbeds that emulate missing SOA environments in order to have an infrastructure for testing the developed system at runtime. We have developed techniques for modeling SOA environments in an extensible manner, a scripting language for specifying the models, mechanisms for generating running testbeds from these models, and techniques for automating the whole process to a certain degree. We have implemented a prototype framework, called GENESIS, and applied it for testing and evaluation of SOA-based systems. We present the developed concepts and techniques in detail, explain how they have evolved, how they can be extended for implementing custom testbed features, and, eventually, how the framework is applied in practice. In addition, we provide all developed software prototypes as open-source for proving the correctness of the developed techniques, plus, as a contribution to the research community. iii Acknowledgements First of all, I would like to thank my advisor Prof. Schahram Dustdar for the opportunity to carry out my PhD studies at the Distributed Systems Group (DSG). I am very grateful for the liberty to choose a research field and to develop my own ideas within such a great environment as the DSG. Especially, I am much obliged for the invaluable support Prof. Dustdar gave me during the hard days of my studies and for the mentoring during all phases of my research. Additionally, I would also like to thank Prof. Frank Leymann for being my second advisor and examiner, and for his valuable comments …


title: A sparse Johnson: Lindenstrauss transform
venue: STOC
directory: machine_learning/dimensionality_reduction/
created: 2017-09-06T19:05:34.957337891
modified: 2017-09-06T19:05:34.957337891
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: ASAP: the Alternative Splicing Annotation Project
venue: Nucleic Acids Research
directory: time_series/
created: 2017-09-06T19:05:35.570440918
modified: 2017-09-06T19:05:35.570440918
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.


title: Harvest, Yield and Scalable Tolerant Systems
venue: Workshop on Hot Topics in Operating Systems
directory: distributed_systems/
created: 2017-09-06T19:05:37.316689941
modified: 2017-09-06T19:05:37.316689941
abstract:
The cost of reconciling consistency and state management with high availability is highly magnified by the unprecedented scale and robustness requirements of today's Internet applications. We propose two strategies for improving overall availability using simple mechanisms that scale over large applications whose output behavior tolerates graceful degradation. We characterize this degradation in terms of harvest and yield, and map it directly onto engineering mechanisms that enhance availability by improving fault isolation, and in some cases also simplify programming. By collecting examples of related techniques in the literature and illustrating the surprising range of applications that can benefit from these approaches, we hope to motivate a broader research program in this area. Increasingly, infrastructure services comprise not only routing, but also application-level resources such as search engines [15], adaptation proxies [8], and Web caches [20]. These applications must confront the same ¢ ¡ ¤ £ ¦ ¥ operational expectations and exponentially-growing user loads as the routing infrastructure, and consequently are absorbing comparable amounts of hardware and software. The current trend of harnessing commodity-PC clusters for scalability and availability [9] is reflected in the largest web server installations. These sites use tens to hundreds of PC's to deliver 100M or more read-mostly page views per day, primarily using simple replication or relatively small data sets to increase throughput. The scale of these applications is bringing the well-known tradeoff between consistency and availability [4] into very sharp relief. In this paper we propose two general directions for future work in building large-scale robust systems. Our approaches tolerate partial failures by emphasizing simple composition mechanisms that promote fault containment, and by translating possible partial failure modes into engineering mechanisms that provide smoothly-degrading functionality rather than lack of availability of the service as a whole. The approaches were developed in the context of cluster computing, where it is well accepted [22] that one of the major challenges is the nontrivial software engineering required to automate partial-failure handling in order to keep system management tractable. In this discussion, strong consistency means single-copy ACID [13] consistency; by assumption a strongly-consistent system provides the ability to perform updates, otherwise discussing consistency is irrelevant. High availability is assumed to be provided through redundancy, e.g. data replication; data is considered highly available if a given consumer of the data can always reach some replica. Partition-resilience means that the system as whole can survive a partition between data replicas. The CAP …


title: Distributed Authorization in Vanadium
venue: FOSAD
directory: security/
created: 2017-09-06T19:05:37.894155029
modified: 2017-09-06T19:05:37.894155029
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: Davis's Poetic Dialogue with Leiris's Autobiography
directory: logic_and_programming/
created: 2017-09-06T19:05:38.637175049
modified: 2017-09-06T19:05:38.637175049
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: Database metatheory: asking the big queries
venue: SIGACT News
directory: datastores/
created: 2017-09-06T19:05:39.234187012
modified: 2017-09-06T19:05:39.234187012
abstract:
Is " database theory " an oxymoron? Or is ata platitude? What is the fitness measure that decides the surviva! of ideas (and areas) in mathematics, in applted science, and in computer science? Which ideas from database theory during the past twenty-five years have influenced research in other fields of computer science? How many were encapsulated in actual products? Was the rela-tional model the on[y true paradigm sh@ m computer science ? Is applicability the only and ultimate justification of theoretical research in an applied science? Are applicability pressures rea!ly exogenous and unwelcome? Are negattve results appropriate goals of theoretical research in an appiied science —or are they the on[y pos-sibie such research goals? If scientific theories must be refutab!e, what are the " hard facts " that provide the possibility of refutation in the case of database theory?


title: Impossibility of Distributed Consensus with One Faulty Process
venue: J. ACM
directory: distributed_systems/
created: 2017-09-06T19:05:40.071206055
modified: 2017-09-06T19:05:40.071206055
abstract:
The consensus problem involves an asynchronous system of processes, some of which may be unreliable. The problem is for the reliable processes to agree on a binary value. In this paper, it is shown that every protocol for this problem has the possibility of nontermination, even with only one faulty process. By way of contrast, solutions are known for the synchronous case, the &#8220;Byzantine Generals&#8221; problem.


title: The Solovay-Kitaev algorithm
venue: Quantum Information & Computation
directory: quantum_computing/
created: 2017-09-06T19:05:42.492144043
modified: 2017-09-06T19:05:42.492144043
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: Ideal Hash Trees
directory: data_structures/
created: 2017-09-06T19:05:43.33639502
modified: 2017-09-06T19:05:43.33639502
abstract:
Hash Trees with nearly ideal characteristics are described. These Hash Trees require no initial root hash table yet are faster and use significantly less space than chained or double hash trees. Insert, search and delete times are small and constant, independent of key set size, operations are O(1). Small worst-case times for insert, search and removal operations can be guaranteed and misses cost less than successful searches. Array Mapped Tries(AMT), first described in Fast and Space Efficient Trie Searches, Bagwell [2000], form the underlying data structure. The concept is then applied to external disk or distributed storage to obtain an algorithm that achieves single access searches, close to single access inserts and greater than 80 percent disk block load factors. In addition two further applications of AMTs are briefly described, namely, Class/Selector dispatch tables and IP Routing tables. Each of the algorithms has a performance and space usage that is comparable to contemporary implementations but simpler.


title: A Wait-Free Stack
venue: ICDCIT
directory: non_blocking_algorithms/
created: 2017-09-06T19:05:44.877468018
modified: 2017-09-06T19:05:44.877468018
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: 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-06T19:05:46.329626953
modified: 2017-09-06T19:05:46.329626953
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: Hints for Computer System Design
directory: comp_sci_fundamentals_and_history/
created: 2017-09-06T19:05:47.52213501
modified: 2017-09-06T19:05:47.52213501
abstract:
A b s t r a c t Experience with the design and implementation of a number of computer systems, and study of many other systems , has led to some general hints for system design which are described here. They are illustrated by a number of examples, ranging from hardware such as the Alto and the Dorado to applications programs such as Bravo and Star. Designing a computer system is very different from designing an algorithm: The external interface (i.e., the requirement) is more complex, less precisely defined, and more subject to change. The system has much more internal structure, and hence many internal interfaces. The measure of success is much less clear. The designer usually finds himself floundering in a sea of possibilities, unclear about how one choice will limit his freedom to make other choices, or affect the size and performance of the entire system. There probably isn't a best way to build the system, or even any major part of it; much more important is to avoid choosing a terrible way, and to have clear division of responsibilities among the parts. I have designed and built a number of computer systems, some that worked and some that didn't. I have also used Permission to copy without fee all or part of this material is granted provided that the copies are not made or distributed for direct commercial advantage, the ACM copyright notice and the title of the publication and its date appear, and notice is given that copying is by permission of the Association for Computing Machinery. To copy otherwise, or to republish, requires a fee and/or specific permission. and studied many other systems, both successful and unsuccessful. From this experience come some general hints for designing successful systems. I claim no originality for them; most are part of the folk wisdom of experienced designers. Nonetheless, even the expert often forgets, and after the second system [6] comes the fourth one. Disclaimer'. These are not novel (with a few exceptions), foolproof recipes, laws of system design or operation, precisely formulated, consistent, always appropriate, approved by all the leading experts, or guaranteed to work; they are just hints. Some are quite general and vague; others are specific techniques which are more widely applicable than many people know. Both the hints and the illustrative examples are necessarily oversimplified. Many are controversial. I have tried to avoid exhortations to …


title: Understanding the Limitations of Causally and Totally Ordered Communication
directory: distributed_systems/
created: 2017-09-06T19:05:48.428818115
modified: 2017-09-06T19:05:48.428818115
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: Bigtable: A Distributed Storage System for Structured Data
venue: ACM Trans. Comput. Syst.
directory: datastores/
created: 2017-09-06T19:05:49.197250977
modified: 2017-09-06T19:05:49.197250977
abstract:
Bigtable is a distributed storage system for managing structured data that is designed to scale to a very large size: petabytes of data across thousands of commodity servers. Many projects at Google store data in Bigtable, including web indexing, Google Earth, and Google Finance. These applications place very different demands on Bigtable, both in terms of data size (from URLs to web pages to satellite imagery) and latency requirements (from backend bulk processing to real-time data serving). Despite these varied demands, Bigtable has successfully provided a flexible, high-performance solution for all of these Google products. In this article, we describe the simple data model provided by Bigtable, which gives clients dynamic control over data layout and format, and we describe the design and implementation of Bigtable.


title: An Industrial Strength Audio Search Algorithm
venue: ISMIR
directory: audio_comp_sci/
created: 2017-09-06T19:05:50.398408936
modified: 2017-09-06T19:05:50.398408936
abstract:
We have developed and commercially deployed a flexible audio search engine. The algorithm is noise and distortion resistant, computationally efficient, and massively scalable, capable of quickly identifying a short segment of music captured through a cellphone microphone in the presence of foreground voices and other dominant noise, and through voice codec compression, out of a database of over a million tracks. The algorithm uses a combinatorially hashed time-frequency constellation analysis of the audio, yielding unusual properties such as transparency, in which multiple tracks mixed together may each be identified. Furthermore, for applications such as radio monitoring, search times on the order of a few milliseconds per query are attained, even on a massive music database.


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


title: Chain Replication for Supporting High Throughput and Availability
venue: OSDI
directory: distributed_systems/
created: 2017-09-06T19:05:53.494674072
modified: 2017-09-06T19:05:53.494674072
abstract:
Chain replication is a new approach to coordinating clusters of fail-stop storage servers. The approach is intended for supporting large-scale storage services that exhibit high throughput and availability without sacrificing strong consistency guarantees. Besides outlining the chain replication protocols themselves , simulation experiments explore the performance characteristics of a prototype implementation. Throughput, availability, and several object-placement strategies (including schemes based on distributed hash table routing) are discussed.


title: Prediction in Joint Action: What, When, and Where
venue: topiCS
directory: organizational_simulation/
created: 2017-09-06T19:05:54.51672998
modified: 2017-09-06T19:05:54.51672998
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: Bitcoin
venue: Datenschutz und Datensicherheit - DuD
directory: digital_currency/
created: 2017-09-06T19:05:55.268941895
modified: 2017-09-06T19:05:55.268941895
abstract:
kamoto veröffentlichten digitalen Zahlungssystems Bitcoin [2] ist eigentlich irreführend – „digitale Münzen“ gibt es in Bitcoin nämlich nicht. Zumindest technisch gesehen ist Bitcoin kein digitales Geld wie beispielsweise DigiCash [1]. Technisch ähnelt Bitcoin eher einem großen, öffentlichen Haushaltsbuch: In einer immer länger werdenden Liste (Blockchain) werden Transaktionen (Blocks) aneinandergereiht, deren Höhe in „Bitcoin“-Einheiten bemessen wird. Damit stellen die Teilnehmer sich gegenseitig gewissermaßen „Schuldscheine“ aus, in denen sie sich zur Zahlung virtueller „Bitcoin“ an andere Teilnehmer verpflichten. Neue Transaktionen werden von dem transferierenden Teilnehmer mit einem Zeitstempel versehen, digital unterschrieben und publiziert. Durch unabhängige Teilnehmer der Bitcoin Community (den Minern) wird jeder neue Block geprüft und im Erfolgsfall über einen kryptographischen Hashwert fest mit dem bis dato letzten Eintrag der Liste verknüpft. Die Transaktionsliste ist per Peer-to-Peer-Netzwerk redundant über das Internet verteilt und jedem Teilnehmer zugänglich – eine zentrale Verwaltungsinstanz (wie z. B. eine Bank) ist überflüssig. Die Teilnehmer melden sich unter einem (oder mehreren) Pseudonym(en) an; ihre geheimen kryptografischen Schlüssel, mit denen sie die Gültigkeit einer Transaktion zu ihren Gunsten nachweisen und über ihr Guthaben weiter verfügen können, sind in einem lokalen oder von einem Dienstleister verwalteten Wallet gespeichert (das man nicht verlieren oder löschen sollte). Double Spending (das mehrfache Ausgeben einer digitalen Münze), ein zentrales Problem bei elektronischen Währungen, gibt es bei Bitcoin im eigentlichen Sinne nicht. Denn in diesem „Überweisungs-Logbuch“ sind keine Konto-Überziehungen erlaubt: Transferieren darf man nur Bitcoins, die man besitzt. Um Betrug zu verhindern, überprüfen die Bitcoin-Miner jede Transaktion, indem sie aus der Transaktionskette die „Kontostände“ der Beteiligten berechnen und Zahlungsfähigkeit und Signatur überprüfen. Damit ermöglicht Bitcoin aber auch die Erstellung von Profilen über das Zahlungsverhalten einzelner Teilnehmer, mit denen in Einzelfällen z. B. eine Korrelation mit Kaufvorgängen und sogar die Identifikation eines Teilnehmers möglich sein kann – anonym ist Bitcoin daher, anders als vielerorts behauptet, nicht (DigiCash und Bargeld hingegen sehr wohl). Das Bitcoin-Protokoll „bereinigt“ die Transaktionsliste um nicht bestätigte Transaktionen oder (wegen möglicher kurzzeitiger Abweichungen der dezentral geführten Listen voneinander) entstandene Verzweigungen (Forks). Daher ist auch erst nach einer Weile (wenige Minuten bis ggf. Stunden) sicher, dass eine Transaktion auch tatsächlich in die maßgebliche Version der Blockchain aufgenommen wurde. Ein Transaktionsempfänger sollte also bis zur Konsolidierung der Blockchain warten, bevor er sich auf den Zahlungseingang verlässt. Für schnelle Transaktionen ist Bitcoin daher eher ungeeignet. Welcher Zweig tatsächlich weitergeführt wird, entscheidet letztlich die Mehrheit der an der Überprüfung beteiligten Systeme. Stirbt ein längerer Fork ab, müssen dort angehängte, verwaiste Transaktionen wieder an die eigentliche Blockchain angehängt werden. Wie aber wird aus einer solchen Transaktionsliste ein Zahlungssystem? Dafür müssen neue Bitcoins „geschöpft“ werden – und einen Tauschwert darstellen. Die Schöpfung von Bitcoins ist raffiniert mit der Prüfung der Blockchain verknüpft: wer sich als Miner an Transaktionsprüfungen beteiligt, darf sich selbst mit jedem erfolgreich angefügten Block einen kleinen Bitcoin-Obolus gutschreiben. Damit füllen sich die Konten der Teilnehmer, die dafür (indirekt) mit der investierten Rechenleistung zahlen. Den eigentlichen Wert erhalten Bitcoin über die Bereitschaft von Teilnehmern, Bitcoin gegen etwas anderes einzutauschen – z. B. gegen „echtes“ Geld. Teilnehmende Bitcoin-Börsen bieten solche Tauschvorgänge an. Damit Bitcoin keine inflationäre Entwertung erfahren, wenn es immer mehr davon gibt, wächst der (Rechen-)Aufwand zum Schöpfen neuer Bitcoin im Laufe der Zeit; so werden Bitcoin nach und nach für die Teilnehmer „teurer“. Außerdem ist die Maximalzahl der schöpfbaren Bitcoin durch einen stetig schrumpfenden Miner-Obolus auf 21 Millionen begrenzt. Letztlich aber basiert Bitcoin auf dem Vertrauen der Teilnehmer in die kryptografischen Verfahren und die Vertrauenswürdigkeit der Transaktionsprüfung durch die BitcoinCommunity.


title: Sparse Partitions
directory: distributed_systems/
created: 2017-09-06T19:05:56.799375977
modified: 2017-09-06T19:05:56.799375977
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: Bayesian Network Classifiers
venue: Machine Learning
directory: artificial_intelligence/
created: 2017-09-06T19:05:57.760589111
modified: 2017-09-06T19:05:57.760589111
abstract:
Recent work in supervised learning has shown that a surprisingly simple Bayesian classifier with strong assumptions of independence among features, called naive Bayes, is competitive with state-of-the-art classifiers such as C4.5. This fact raises the question of whether a classifier with less restrictive assumptions can perform even better. In this paper we evaluate approaches for inducing classifiers from data, based on the theory of learning Bayesian networks. These networks are factored representations of probability distributions that generalize the naive Bayesian classifier and explicitly represent statements about independence. Among these approaches we single out a method we call Tree Augmented Naive Bayes (TAN), which outperforms naive Bayes, yet at the same time maintains the computational simplicity (no search involved) and robustness that characterize naive Bayes. We experimentally tested these approaches, using problems from the University of California at Irvine repository, and compared them to C4.5, naive Bayes, and wrapper methods for feature selection.


title: Warnings for pattern matching
venue: J. Funct. Program.
directory: pattern_matching/
created: 2017-09-06T19:05:58.681118896
modified: 2017-09-06T19:05:58.681118896
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: Understanding RFID Counting Protocols
venue: IEEE/ACM Transactions on Networking
directory: sublinear_algorithms/
created: 2017-09-06T19:05:59.2758479
modified: 2017-09-06T19:05:59.2758479
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: Defending against network IDS evasion
venue: Recent Advances in Intrusion Detection
directory: security/
created: 2017-09-06T19:05:59.941335938
modified: 2017-09-06T19:05:59.941335938
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: Recent SRI work in verification
venue: SOEN
directory: distributed_systems/
created: 2017-09-06T19:06:00.514730957
modified: 2017-09-06T19:06:00.514730957
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: Consistent Global States of Distributed Systems: Fundamental Concepts and Mechanisms
directory: distributed_systems/
created: 2017-09-06T19:06:01.955559082
modified: 2017-09-06T19:06:01.955559082
abstract:
Reports are available via anonymous FTP from the area ftp.cs.unibo.it:/pub/TR/UBLCS in compressed PostScript format. Abstracts are available from the same host in the directory /pub/TR/ABSTRACTS in plain text format. All local authors can be reached via e-mail at the address last-name@cs.unibo.it. Abstract Many important problems in distributed computing admit solutions that contain a phase where some global property needs to be detected. This subproblem can be seen as an instance of the Global Predicate Evaluation (GPE) problem where the objective is to establish the truth of a Boolean expression whose variables may refer to the global system state. Given the uncertainties in asynchronous distributed systems that arise from communication delays and relative speeds of computations, the formulation and solution of GPE reveal most of the subtleties in global reasoning with imperfect information. In this paper, we use GPE as a canonical problem in order to survey concepts and mechanisms that are useful in understanding global states of distributed computations. We illustrate the utility of the developed techniques by examining distributed deadlock detection and distributed debugging as two instances of GPE. (DoD) under NASA Ames grant number NAG 2–593, and by grants from IBM and Siemens. The views, opinions, and findings contained in this report are those of the authors and should not be construed as an official Department of Defense position, policy, or decision.


title: On the Calculus of Relations
venue: J. Symb. Log.
directory: distributed_systems/
created: 2017-09-06T19:06:02.74999292
modified: 2017-09-06T19:06:02.74999292
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: An Analysis of the Cryptocurrency Industry
directory: digital_currency/
created: 2017-09-06T19:06:03.344146973
modified: 2017-09-06T19:06:03.344146973
abstract:
INTRODUCTION The cryptocurrency market has evolved erratically and at unprecedented speed over the course of its short lifespan. Since the release of the pioneer anarchic cryptocurrency, Bitcoin, to the public in January 2009, more than 550 cryptocurrencies have been developed, the majority with only a modicum of success [1]. Research on the industry is still scarce. The majority of it is singularly focused on Bitcoin rather than a more diverse spread of cryptocurrencies and is steadily being outpaced by fluid industry developments, including new coins, technological progression, and increasing government regulation of the markets. Though the fluidity of the industry does, admittedly, present a challenge to research, a thorough evaluation of the cryptocurrency industry writ large is necessary. This paper seeks to provide a concise yet comprehensive analysis of the cryptocurrency industry with particular analysis of Bitcoin, the first decentralized cryptocurrency. Particular attention will be given to examining theoretical economic differences between existing coins. Section 1 of this paper provides an overview of the industry. Section 1.1 provides a brief history of digital currencies, which segues into a discussion of Bitcoin in section 1.2. Section 2 of this paper provides an in-depth analysis of coin economics, partitioning the major currencies by their network security protocol mechanisms, and discussing the long-term theoretical implications that these classes entail. Section 2.1 will discuss network security protocol. The mechanisms will be discussed in the order that follows. Section 2.2 will discuss the proof-of-work (PoW) mechanism used in the Bitcoin protocol and various altcoins. Section 2.3 will discuss the proof-of-stake (PoS) protocol scheme first introduced by Peercoin in 2011, which relies on a less energy intensive security mechanism than PoW. Section 2.4 will discuss a hybrid PoW/PoS mechanism. Section 2.5 will discuss the Byzantine Consensus mechanism. Section 2.6 presents the results of a systematic review of 21 cryptocurrencies. Section 3 provides an overview of factors affecting industry growth, focusing heavily on the regulatory environment in section 3.1. Section 3.2 discusses public perception and acceptance of cryptocurrency as a payment system in the current retail environment. Section 4 concludes the analysis. A note on sources: Because the cryptocurrency industry is still young and factors that impact it are changing on a daily basis, few comprehensive or fully updated academic sources exist on the topic. While academic work was of course consulted for this project, the majority of the information that informs this paper was derived from …


