39,614 research outputs found
Historical awareness support and its evaluation in collaborative software engineering
The types of awareness relevant to collaborative soft-
ware engineering are identified and an additional type,
"historical awareness" is proposed. This new type of
awareness is the knowledge of how software artefacts re-
sulting from collaboration have evolved in the course of
their development.
The types of awareness that different software engineer-
ing environment architectures can support are discussed. A
way to add awareness support to our existing OSCAR sys-
tem, a component of the GENESIS software engineering
platform, is proposed. Finally ways of instrumenting and
evaluating the awareness support offered by the modified
system are outlined
Avida: a software platform for research in computational evolutionary biology
Avida is a software platform for experiments with self-replicating and evolving computer programs. It provides detailed control over experimental settings and protocols, a large array of measurement tools, and sophisticated methods to analyze and post-process experimental data. We explain the general principles on which Avida is built, as well as its main components and their interactions. We also explain how experiments are set up, carried out, and analyzed
Simulation of networks of spiking neurons: A review of tools and strategies
We review different aspects of the simulation of spiking neural networks. We
start by reviewing the different types of simulation strategies and algorithms
that are currently implemented. We next review the precision of those
simulation strategies, in particular in cases where plasticity depends on the
exact timing of the spikes. We overview different simulators and simulation
environments presently available (restricted to those freely available, open
source and documented). For each simulation tool, its advantages and pitfalls
are reviewed, with an aim to allow the reader to identify which simulator is
appropriate for a given task. Finally, we provide a series of benchmark
simulations of different types of networks of spiking neurons, including
Hodgkin-Huxley type, integrate-and-fire models, interacting with current-based
or conductance-based synapses, using clock-driven or event-driven integration
strategies. The same set of models are implemented on the different simulators,
and the codes are made available. The ultimate goal of this review is to
provide a resource to facilitate identifying the appropriate integration
strategy and simulation tool to use for a given modeling problem related to
spiking neural networks.Comment: 49 pages, 24 figures, 1 table; review article, Journal of
Computational Neuroscience, in press (2007
Taking the C out of CVMFS
The Cern Virtual Machine File System is most well known as a distribution mechanism for the WLCG VOs@@ experiment software; as a result, almost all the existing expertise is in installing clients mount the central Cern repositories. We report the results of an initial experiment in using the cvmfs server packages to provide Glasgow-based repository aimed at software provisioning for small UK-local VOs. In general, although the documentation is sparse, server configuration is reasonably easy, with some experimentation. We discuss the advantages of local CVMFS repositories for sites, with some examples from our test VOs, vo.optics.ac.uk and neiss.org.uk
Tree-Chain: A Fast Lightweight Consensus Algorithm for IoT Applications
Blockchain has received tremendous attention in non-monetary applications
including the Internet of Things (IoT) due to its salient features including
decentralization, security, auditability, and anonymity. Most conventional
blockchains rely on computationally expensive consensus algorithms, have
limited throughput, and high transaction delays. In this paper, we propose
tree-chain a scalable fast blockchain instantiation that introduces two levels
of randomization among the validators: i) transaction level where the validator
of each transaction is selected randomly based on the most significant
characters of the hash function output (known as consensus code), and ii)
blockchain level where validator is randomly allocated to a particular
consensus code based on the hash of their public key. Tree-chain introduces
parallel chain branches where each validator commits the corresponding
transactions in a unique ledger. Implementation results show that tree-chain is
runnable on low resource devices and incurs low processing overhead, achieving
near real-time transaction settlement
Evolution of robustness in digital organisms
We study the evolution of robustness in digital organisms adapting to a high mutation rate. As genomes adjust to the harsh mutational environment, the mean effect of single Imitations decreases, up until the point where a sizable fraction (up to 30% in many cases) of the Imitations are neutral. We correlate the changes in robustness along the line of descent to changes in directional epistasis, and find that increased robustness is achieved by moving from antagonistic epistasis between mutations towards codes where mutations are, on average, independent. We interpret this recoding as a breakup of linkage between vital sections of the genome, up to the point where instructions are maximally independent of each other. While such a recoding often requires sacrificing some replication speed, it is the best strategy for withstanding high rates of mutation
Toward Linearizability Testing for Multi-Word Persistent Synchronization Primitives
Persistent memory makes it possible to recover in-memory data structures following a failure instead of rebuilding them from state saved in slow secondary storage. Implementing such recoverable data structures correctly is challenging as their underlying algorithms must deal with both parallelism and failures, which makes them especially susceptible to programming errors. Traditional proofs of correctness should therefore be combined with other methods, such as model checking or software testing, to minimize the likelihood of uncaught defects. This research focuses specifically on the algorithmic principles of software testing, particularly linearizability analysis, for multi-word persistent synchronization primitives such as conditional swap operations. We describe an efficient decision procedure for linearizability in this context, and discuss its practical applications in detecting previously-unknown bugs in implementations of multi-word persistent primitives
- âŠ