620 research outputs found
From JSON to JSEN through Virtual Languages
In this paper we describe a data format suitable for storing and manipulating executable language statements that can be used for exchanging/storing programs, executing them concurrently and extending homoiconicity of the hosting language. We call it JSEN, JavaScript Executable Notation, which represents the counterpart of JSON, JavaScript Object Notation. JSON and JSEN complement each other. The former is a data format for storing and representing objects and data, while the latter has been created for exchanging/storing/executing and manipulating statements of programs. The two formats, JSON and JSEN, share some common properties, reviewed in this paper with a more extensive analysis on what the JSEN data format can provide. JSEN extends homoiconicity of the hosting language (in our case JavaScript), giving the possibility to manipulate programs in a finer grain manner than what is currently possible. This property makes definition of virtual languages (or DSL) simple and straightforward. Moreover, JSEN provides a base for implementing a type of concurrent multitasking for a single-threaded language like JavaScript
Pando: Personal Volunteer Computing in Browsers
The large penetration and continued growth in ownership of personal
electronic devices represents a freely available and largely untapped source of
computing power. To leverage those, we present Pando, a new volunteer computing
tool based on a declarative concurrent programming model and implemented using
JavaScript, WebRTC, and WebSockets. This tool enables a dynamically varying
number of failure-prone personal devices contributed by volunteers to
parallelize the application of a function on a stream of values, by using the
devices' browsers. We show that Pando can provide throughput improvements
compared to a single personal device, on a variety of compute-bound
applications including animation rendering and image processing. We also show
the flexibility of our approach by deploying Pando on personal devices
connected over a local network, on Grid5000, a French-wide computing grid in a
virtual private network, and seven PlanetLab nodes distributed in a wide area
network over Europe.Comment: 14 pages, 12 figures, 2 table
A JavaScript Framework Comparison Based on Benchmarking Software Metrics and Environment Configuration
JavaScript is a client-side programming language that can be used in multi-platform applications. It controls HTML and CSS to manipulate page behaviours and is widely used in most websites over the internet. JavaScript frameworks are structures made to help web developers build web applications faster by offering features that enhance the user interaction with the web page. An increasing number of JavaScript frameworks have been released in recent years in the market to help front-end developers build applications in a shorter space of time. Decision makers in software companies have been struggling to determine which frameworks are best suited for a specific project. This work investigates the actual state-of-the-art of JavaScript framework comparison, and it proposes metrics and methods that could help developers when choosing a JavaScript framework. In this work, a benchmark framework executes tasks to test the efficiency of three JavaScript frameworks (AngularJS, Aurelia, and Ember). The research shows the impact of the environment (CPU usage and network connectivity) on JavaScript frameworks
The Seamless Peer and Cloud Evolution Framework
Evolutionary algorithms are increasingly being applied to problems that are too computationally expensive to run on a single personal computer due to costly fitness function evaluations and/or large numbers of fitness evaluations. Here, we introduce the Seamless Peer And Cloud Evolution (SPACE) framework, which leverages bleeding edge web technologies to allow the computational resources necessary for running large scale evolutionary experiments to be made available to amateur and professional researchers alike, in a scalable and cost-effective manner, directly from their web browsers. The SPACE framework accomplishes this by distributing fitness evaluations across a heterogeneous pool of cloud compute nodes and peer computers. As a proof of concept, this framework has been attached to the RoboGen open-source platform for the co-evolution of robot bodies and brains, but importantly the framework has been built in a modular fashion such that it can be easily coupled with other evolutionary computation systems
Interactive Planning Tool For Global Software Projects
When planning global software development (GSD) projects, project managers often face decision-making problems such as how to choose the most suitable teams among the available teams, or how to assign work optimally to the selected teams considering both the duration and cost of the project. There are many alternative solutions, and each of them affects the duration and cost of the project differently. Hence, the idea of developing an automated planning tool that guides the project manager is helpful. This thesis documents a research focusing on planning GSD projects by an automated tool proposed by Sri Vathsavayi at Tampere University of Technology.
Vathsavayi in his research proposes a GSD model and some preliminary ideas for developing an automated planning tool. He utilizes multi-objective genetic algorithms to apply search-based software engineering in planning GSD projects. In the thesis, the GSD model and the planning tool proposed by Vathsavayi are evaluated in few specific aspects. Firstly, the GSD model besides the planning tool is referenced to some of the typical issues of a GSD project. Moreover, some recommendations for the assessment of communication distances between teams participating in a GSD project are proposed.
The thesis, as a constructive research, focuses mostly on designing and implementing a concrete user interface (UI) for the proposed planning tool. The developed UI is a simple, clear, and user-friendly web application used by the project manager to gather data about GSD projects and participating teams. The data is stored into a database and con-sidered as the input data to the proposed tool by Vathsavayi. Finally, the developed UI is evaluated, and some further work is proposed to provide a better user experience for the project manager
- …