COLMARvista is presented as a new, highly versatile software for the easy and intuitive processing and visual inspection of 2D and pseudo-3D NMR data both for uniformly and non-uniformly sampled datasets. COLMARvista ...
详细信息
COLMARvista is presented as a new, highly versatile software for the easy and intuitive processing and visual inspection of 2D and pseudo-3D NMR data both for uniformly and non-uniformly sampled datasets. COLMARvista allows fully autonomous processing of spectra, including zero-filling, apodization, water suppression, Fourier transformation, and phase correction. Its full integration with DEEP Picker and Voigt Fitter programs allows the automated deconvolution and reconstruction of the experimental spectra for highly quantitative analysis, from compound concentration determination to the extraction of cross-peak specific relaxation parameters, even for signals affected by significant overlap with other peaks. COLMARvista is based on javascript and, hence, it is computer-architecture and operating-system independent including its advanced graphics. It runs on all recent web browsers and does not require a potentially elaborate operating-system dependent installation. COLMARvista may serve as a paradigm also for other software projects to prevent the stockpiling of once powerful legacy software that became frozen in time, thereby ensuring continuing progress of the NMR field and its software for future generations of NMR spectroscopists.
In recent years, there has been a notable increase in the prevalence of malicious websites, leading to a majority of cyber-attacks and data breaches. Malicious websites often incorporate javascript code to execute att...
详细信息
ISBN:
(纸本)9783031752001;9783031752018
In recent years, there has been a notable increase in the prevalence of malicious websites, leading to a majority of cyber-attacks and data breaches. Malicious websites often incorporate javascript code to execute attacks on web browsers. Despite existing methodologies documented in the literature, the analysis and detection of malicious javascript pose significant challenges due to the dynamic nature of javascript and the use of advanced evasion techniques. These challenges motivate the need for an innovative and efficient approach to comprehensively analyze the code to identify its malicious intent. In this paper, we introduce a monitoring approach for analyzing javascript code, which can capture all of the code's features at runtime. Our method leverages the security reference monitor technique to mediate javascript security-sensitive executions, including function calls and property accesses. Therefore, the proposed method can capture behaviors at runtime regardless of how the code is written, even with recent advanced evasion techniques like WebAssembly diversification. We have implemented our approach as a javascript dynamic analysis framework called JSMBox in aChromium-based browser extension. Our experiments demonstrated that JSMBox is capable of effectively countering sophisticated evasion techniques found in modern malicious javascript code, including WebAssembly diversification. We have also evaluated the framework's ability to classify malicious behaviors based on a large-scale raw dataset comprising about 20,000 malicious and benign webpages. Our developed tool automatically launches the browser to execute these webpages, records javascript code execution events, and captures their execution frequency as extracted features. We have tested the extracted dataset with various machine-learning models, yielding promising experimental results that confirm the effectiveness of our approach and achieve a high accuracy rate.
Despite the popularity of javascript for client-side web applications, there is a lack of effective software tools supporting javascript development and testing. The dynamic characteristics of javascript pose software...
详细信息
Despite the popularity of javascript for client-side web applications, there is a lack of effective software tools supporting javascript development and testing. The dynamic characteristics of javascript pose software engineering challenges such as program understanding and security. One important feature of javascript is that its objects support flexible mechanisms such as property changes at runtime and prototype-based inheritance, making it difficult to reason about object behavior. We have performed an empirical study on real javascript applications to understand the dynamic behavior of javascript objects. We present metrics to measure behavior of javascript objects during execution (e.g., operations associated with an object, object size, and property type changes). We also investigated the behavioral patterns of observed objects to understand the coding or user interaction practices in javascript software. Copyright (c) 2015John Wiley & Sons, Ltd.
Web apps are built by using a combination of HTML, CSS, and javascript. While building modern web apps, it is common practice to make use of third-party libraries and frameworks, as to improve developers' producti...
详细信息
Web apps are built by using a combination of HTML, CSS, and javascript. While building modern web apps, it is common practice to make use of third-party libraries and frameworks, as to improve developers' productivity and code quality. Alongside these benefits, the adoption of such libraries results in the introduction of javascript dead code, i.e., code implementing unused functionalities. The costs for downloading and parsing dead code can negatively contribute to the loading time and resource usage of web apps. The goal of our study is two-fold. First, we present Lacuna, an approach for automatically detecting and eliminating javascript dead code from web apps. The proposed approach supports both static and dynamic analyses, it is extensible and can be applied to any javascript code base, without imposing constraints on the coding style or on the use of specific javascript constructs. Second, by leveraging Lacuna we conduct an experiment to empirically evaluate the run-time overhead of javascript dead code in terms of energy consumption, performance, network usage, and resource usage in the context of mobile web apps. We applied Lacuna four times on 30 mobile web apps independently developed by third-party developers, each time eliminating dead code according to a different optimization level provided by Lacuna. Afterward, each different version of the web app is executed on an Android device, while collecting measures to assess the potential run-time overhead caused by dead code. Experimental results, among others, highlight that the removal of javascript dead code has a positive impact on the loading time of mobile web apps, while significantly reducing the number of bytes transferred over the network.
How a sidekick scripting language for Java, created at Netscape in a ten-day hack, ships first as a de facto Web standard and eventually becomes the world's most widely used programming language. This paper tells ...
详细信息
How a sidekick scripting language for Java, created at Netscape in a ten-day hack, ships first as a de facto Web standard and eventually becomes the world's most widely used programming language. This paper tells the story of the creation, design, evolution, and standardization of the javascript language over the period of 1995-2015. But the story is not only about the technical details of the language. It is also the story of how people and organizations competed and collaborated to shape the javascript language which dominates the Web of 2020.
javascript web applications are improving performance mainly thanks to the inclusion of new standards by HTML5. Among others, web workers API allows multithreaded javascript web apps to exploit parallel processors. Ho...
详细信息
javascript web applications are improving performance mainly thanks to the inclusion of new standards by HTML5. Among others, web workers API allows multithreaded javascript web apps to exploit parallel processors. However, developers have difficulties to determine the minimum number of web workers that provide the highest performance. But even if developers found out this optimal number, it is a static value configured at the beginning of the execution. Because users tend to execute other applications in background, the estimated number of web workers could be non-optimal, because it may overload or underutilize the system. In this paper, we propose a solution for highly parallel web apps to dynamically adapt the number of running web workers to the actual available resources, avoiding the hassle to estimate a static optimal number of threads. The solution consists in the inclusion of a web worker pool and a simple management algorithm in the web app. Even though there are co-running applications, the results show our approach dynamically enables a number of web workers close to the optimal. Our proposal, which is independent of the web browser, overcomes the lack of knowledge of the underlying processor architecture as well as dynamic resources availability changes. Copyright (c) 2015 John Wiley & Sons, Ltd.
Website visitors are performing increasingly complex computational work on the websites' behalf, such as validating forms, rendering animations, and producing data visualizations. In this article, we explore the p...
详细信息
Website visitors are performing increasingly complex computational work on the websites' behalf, such as validating forms, rendering animations, and producing data visualizations. In this article, we explore the possibility of increasing the work offloaded to web visitors' browsers. The idle computing cycles of web visitors can be turned into a large-scale distributed data processing engine, which we term gray computing. Past research has looked primarily at either volunteer computing with specialized clients or browser-based volunteer computing where the visitors keep their browsers open to a single web page for a long period of time. This article provides a comprehensive analysis of the architecture, performance, security, cost effectiveness, user experience, and other issues of gray computing distributed data processing engines with heterogeneous computing power, non-uniform page view times, and high computing pool volatility. Several real-world applications are examined and gray computing is shown to be cost effective for a number of complex tasks ranging from computer vision to bioinformatics to cryptology.
Many Internet-of-Things (IoT) systems use lightweight javascript engines to support easy programming in microcontrollers. Lightweight javascript engines use several techniques for memory optimization, such as static h...
详细信息
Many Internet-of-Things (IoT) systems use lightweight javascript engines to support easy programming in microcontrollers. Lightweight javascript engines use several techniques for memory optimization, such as static heap reservation and compressed addressing. Recent IoT systems also use several external libraries and a larger on-chip memory to support abundant functionalities, such as machine learning and connectivity. However, as the javascript heap space is not resizable owing to the memory optimizations, the javascript engine or an external library is prone to fail the memory allocation in these devices. To address this problem, we propose a flexible memory optimization technique, segment-based multiple-base compressed addressing (SMBCA), which compresses a pointer indicating a javascript object allocated to a resizable heap based on multiple base addresses. SMBCA comprises two components: a dynamic segment allocator (DSA) and a multiple-base compressed address translator (MBCAT). DSA dynamically allocates the javascript heap in segment units. Meanwhile, MBCAT converts a low-bitwidth address into a full-bitwidth address and vice versa, based on the multiple base addresses. To reduce the address compression overhead of MBCAT, we propose a software cache technique, reverse map cache (RMC). We found that the SMBCA reduces average memory usage by 43.9% compared to the existing lightweight javascript engines when running SunSpider benchmarks, V8 benchmarks, and real-world applications. We also showed that the RMC reduces the average address compression latency of MBCAT by 34.9% when running the SunSpider benchmarks.
Web applications created using web languages such as HTML, CSS, and javascript are widely used regardless of execution environments, owing to their portability and popularity. Since javascript language is conventional...
详细信息
Web applications created using web languages such as HTML, CSS, and javascript are widely used regardless of execution environments, owing to their portability and popularity. Since javascript language is conventionally used for complex computations in large-scale web apps, many optimization techniques have been proposed to accelerate the javascript performance. However, most of these optimizations speed up javascript engines at the expense of consuming more memory. Hence, memory consumption becomes an additional concern in the javascript field. Based on the research on memory status, we unearthed that a substantial portion of the heap memory is allocated for javascript source code, particularly in lightweight javascript engines, which may range from 13.2% to a maximal 52.5% of the entire heap. To resolve this memory issue, this article suggests a new memory optimization method, called dynamic code compression that dynamically compresses the source code and keeps its compressed form instead of the source string. A novel heuristic is proposed to timely compress the source code. We also re-design the internal structure of the javascript engine to efficiently compress the source code without incurring any conflict. Using our code compression method, we could reduce the entire heap memory by up to 43.3% and consistently downsize the overall heap size. From an evaluation of standard benchmarks, our approach showed just 2.7% degradation in performance with negligible compression overhead, proving the feasibility of the code compression technique.
暂无评论