Reviewerly/exHarmony huggingface dataset:
Fast and Reliable Program Synthesis via User Interaction

The performance of programming-by-example systems varies significantly across different tasks and even across different examples in one task. The key issue is that the search space depends on the given examples in a complex way. In particular, scalable synthesizers typically rely on a combination of machine learning to prioritize search order and deduction to prune search space, making it hard to quantitatively reason about how much an example speeds up the search. We propose a novel approach for quantifying the effectiveness of an example at reducing synthesis time. Based on this technique, we devise an algorithm that actively queries the user to obtain additional examples that significantly reduce synthesis time. We evaluate our approach on 30 challenging benchmarks across two different data science domains. Even with ineffective initial user-provided examples for pruning, our approach on average achieves a 6.0× speed-up in synthesis time compared to state-of-the-art synthesizers.
Comprehensive Review of Benefits from the Use of Neuron Connection Pruning Techniques During the Training Process of Artificial Neural Networks in Reinforcement Learning: Experimental Simulations in Atari Games

This paper presents a comprehensive examination of the advantages associated with the application of neuron connection pruning techniques in the training of Artificial Neural Networks (ANNs) within the context of Reinforcement Learning (RL). Our study involved rigorous experimentation through numerous Atari game simulations, with a focus on recording crucial metrics, including reward accumulation per episode, actions performed per episode, and computation time per action. The key highlight of our research is the compelling discovery that increasing the likelihood of disconnecting connections between neurons yields a significant enhancement in RL model performance. This remarkable performance boost can be attributed to the unique characteristics of RL and ANNs in RL tasks. In RL, each model processes input layers containing vast vectors of information encompassing all attributes of the current state. Our findings provide valuable insights into optimizing ANNs for RL tasks and demonstrate the practical benefits of connection pruning techniques in enhancing the performance of RL models. These results shows that when no pruning of connections is applied, and ANNs train as fully connected, the simulations are left unsolved. However, when ANNs with some pruning are employed, the tasks are successfully solved. Furthermore, our findings reveal a noteworthy side effect: increasing the dropout rate of train connections can significantly reduce processing time. This outcome holds significant implications for optimizing RL models, as it not only enhances performance but also streamlines computational efficiency.
The Vocabulary of Flaky Tests in the Context of SAP HANA

Background. Automated test execution is an important activity to gather information about the quality of a software project. So-called flaky tests, however, negatively affect this process. Such tests fail seemingly at random without changes to the code and thus do not provide a clear signal. Previous work proposed to identify flaky tests based on the source code identifiers in the test code. So far, these approaches have not been evaluated in a large-scale industrial setting. Aims. We evaluate approaches to identify flaky tests and their root causes based on source code identifiers in the test code in a large-scale industrial project. Method. First, we replicate previous work by Pinto et al. in the context of SAP HANA. Second, we assess different feature extraction techniques, namely TF-IDF and TF-IDFC-RF. Third, we evaluate CodeBERT and XGBoost as classification models. For a sound comparison, we utilize both the data set from previous work and two data sets from SAP HANA. Results. Our replication shows similar results on the original data set and on one of the SAP HANA data sets. While the original approach yielded an F1-Score of 0.94 on the original data set and 0.92 on the SAP HANA data set, our extensions achieve F1-Scores of 0.96 and 0.99, respectively. The reliance on external data sources is a common root cause for test flakiness in the context of SAP HANA. Conclusions. The vocabulary of a large industrial project seems to be slightly different with respect to the exact terms, but the categories for the terms, such as remote dependencies, are similar to previous empirical findings. However, even with rather large F1-Scores, both finding source code identifiers for flakiness and a black box prediction have limited use in practice as the results are not actionable for developers.
Creating oriented and precisely sectioned mineral mounts for in situ chemical analyses—An example using olivine for diffusion chronometry studies

First posted November 8, 2023 For additional information, contact: Director, Volcano Science CenterU.S. Geological Survey1300 SE Cardinal CourtVancouver, WA 38683 Diffusion chronometry is now a widely applied methodology for determining the rates and timescales of geologic processes from the chemical zoning observed in minerals. Despite the popularity of the method, several challenges still remain during its application, including: (1) the random sectioning of minerals either in thin sections or grain mounts in which both off-center and oblique sections contribute substantial uncertainty to modeled timescales and (2) diffusion anisotropy needs to be accounted for in models, which generally requires determining the principal crystallographic axes of the mineral using electron backscatter diffraction, a technique that is both challenging and limiting because few scanning electron microscopes have an electron backscatter detector. This guide developed by the U.S. Geological Survey focuses on a step-by-step methodology for mounting individually oriented minerals that are sectioned through their cores prior to polishing for analytical work. Using this technique, one can significantly reduce the uncertainties associated with off-center sections and minimize or completely remove the need for determining crystallographic orientation via electron backscatter diffraction analyses. This report is presented as a guide for using the technique on olivine crystals but can be applied to any minerals that can be extracted for analysis. Two variations of the methodology are included here: (1) The individual crystal method that entails mounting individually sectioned single crystals and crystal groups and (2) the whole mount method in which multiple single crystals or crystal clusters are mounted and sectioned at the same time.
An Exploratory Literature Study on Sharing and Energy Use of Language Models for Source Code

Context: Large language models trained on source code can support a variety of software development tasks, such as code recommendation and program repair. Large amounts of data for training such models benefit the models' performance. However, the size of the data and models results in long training times and high energy consumption. While publishing source code allows for replicability, users need to repeat the expensive training process if models are not shared. Goals: The main goal of the study is to investigate if publications that trained language models for software engineering (SE) tasks share source code and trained artifacts. The second goal is to analyze the transparency on training energy usage. Methods: We perform a snowballing-based literature search to find publications on language models for source code, and analyze their reusability from a sustainability standpoint. Results: From a total of 494 unique publications, we identified 293 relevant publications that use language models to address code-related tasks. Among them, 27% (79 out of 293) make artifacts available for reuse. This can be in the form of tools or IDE plugins designed for specific tasks or task-agnostic models that can be fine-tuned for a variety of downstream tasks. Moreover, we collect insights on the hardware used for model training, as well as training time, which together determine the energy consumption of the development process. Conclusion: We find that there are deficiencies in the sharing of information and artifacts for current studies on source code models for software engineering tasks, with 40% of the surveyed papers not sharing source code or trained artifacts. We recommend the sharing of source code as well as trained artifacts, to enable sustainable reproducibility. Moreover, comprehensive information on training times and hardware configurations should be shared for transparency on a model's carbon footprint.
Exploring the Serverless First Strategy in Cloud Application Development

This paper explores the Serverless First strategy in cloud application development. Serverless computing has gained popularity due to its flexibility and scalability. In our work, we provide a systematic review of the literature about the Serverless paradigm in cloud computing and an evaluation of the advantages of this approach by performing a comparative analysis among three ways for the implementation of an application: AWS Lambda, AWS Lambda with Chalice framework, and the traditional form using the Flask framework. The literature review results show the gains in scaling, cost reduction, and ease of maintenance achieved with the Serverless First strategy. However, some limitations and challenges were also highlighted, such as the greater complexity of the environment, less control over resources, resource limitations imposed by the cloud provider, and difficulties in debugging and managing the infrastructure. The case study demonstrates in practice that the Chalice framework provided the most straightforward and rapid implementation, the AWS Lambda without Chalice offered greater flexibility and control, and the Flask version allowed local testing and total control but required more manual setup and lacked automatic scalability.
Security Defect Detection via Code Review: A Study of the OpenStack and Qt Communities

Background: Despite the widespread use of automated security defect detection tools, software projects still contain many security defects that could result in serious damage. Such tools are largely context-insensitive and may not cover all possible scenarios in testing potential issues, which makes them susceptible to missing complex security defects. Hence, thorough detection entails a synergistic cooperation between these tools and human-intensive detection techniques, including code review. Code review is widely recognized as a crucial and effective practice for identifying security defects. Aim: This work aims to empirically investigate security defect detection through code review. Method: To this end, we conducted an empirical study by analyzing code review comments derived from four projects in the OpenStack and Qt communities. Through manually checking 20,995 review comments obtained by keyword-based search, we identified 614 comments as security-related. Results: Our results show that (1) security defects are not prevalently discussed in code review, (2) more than half of the reviewers provided explicit fixing strategies/solutions to help developers fix security defects, (3) developers tend to follow reviewers' suggestions and action the changes, (4) Not worth fixing the defect now and Disagreement between the developer and the reviewer are the main causes for not resolving security defects. Conclusions: Our research results demonstrate that (1) software security practices should combine manual code review with automated detection tools, achieving a more comprehensive coverage to identifying and addressing security defects, and (2) promoting appropriate standardization of practitioners' behaviors during code review remains necessary for enhancing software security.
SmartCoCo: Checking Comment-Code Inconsistency in Smart Contracts via Constraint Propagation and Binding

Smart contracts are programs running on the blockchain. Comments in source code provide meaningful information for developers to facilitate code writing and understanding. Given various kinds of token standards in smart contracts (e.g., ERC-20, ERC-721), developers often copy&paste code from other projects as templates, and then implement their own logic as add-ons to such templates. In many cases, the consistency between code and comment is not well-aligned, leading to comment-code inconsistencies (as we call CCIs). Such inconsistencies can mislead developers and users, and even introduce vulnerabilities to the contracts. In this paper, we present SmartCoCo, a novel framework to detect comment-code inconsistencies in smart contracts. In particular, our research focuses on comments related to roles, parameters, and events that may lead to security implications. To achieve this, SmartCoCo takes the original smart contract source code as input and automatically analyzes the comment and code to find potential inconsistencies. SmartCoCo associates comment constraints and code facts via a set of propagation and binding strategies, allowing it to effectively discover inconsistencies with more contextual information. We evaluated SmartCoCo on 101,780 unique smart contracts on Ethereum. The evaluation result shows that SmartCoCo achieves good effectiveness and efficiency. In particular, SmartCoCo reports 4,732 inconsistencies from 1,745 smart contracts, with a precision of over 79% on 439 manual-labeled comment-code inconsistencies. Meanwhile, it only takes 2.64 seconds to check a smart contract on average.
Improving Fault Tolerance in Blockchain Sharding using One-to-Many Block-to-Shard Mapping

The goal of sharding in a contemporary Blockchain system is to increase throughput linearly in proportion to the number of shards. This is achieved in practice by one-to-one mapping of each transaction block to a shard, with the assumption that each shard is ‘perfect’ and hence cannot fail. The notion of perfection is achieved by forming shards that have negligible failure probabilities. This contemporary approach to blockchain sharding has two drawbacks: (1) shards tend to be large in size to maintain low failure probability, which can negatively affect performance and throughput; (2) the ‘perfect’ shard assumption can easily be breached if any shard becomes faulty, which can fail an entire blockchain system because there is no fault-detection mechanism during transaction-processing (i.e., faulty blocks approved by faulty shards may only be detected after being appended to the blockchain). To overcome these drawbacks, this paper presents a multi-round consensus scheme which adopts one-to-many mapping of a transaction block to <tex xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink">$k$</tex> shards, followed by a second consensus round among the <tex xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink">$k$</tex> shard leaders (inter-shard consensus) in an epoch to validate and commit a transaction block with finality. In return, the following are achieved: (1) possibility of increased fault tolerance, despite using smaller shard sizes, because the collective failure probability of a group of <tex xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink">$k$</tex> small shards can be much lower than the failure probability of an individual larger shard with the proper selection of the values of <tex xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink">$k$</tex> and other parameters; (2) capability of faulty block detection with high probability during transaction processing; and (3) relaxation of the ‘perfect’ shard assumption so that the system can be tolerant to more faulty shards and still maintain safety. Detailed theoretical analyses are presented which demonstrate the benefits of such a multi-round block validation approach over contemporary approaches in terms of achieving better fault tolerance without compromising on throughput.
Investigating the Impact of Bug Dependencies on Bug-Fixing Time Prediction

Background: Bug dependencies refer to the link relationships between bugs and related issues, which are commonly observed in software evolution. It has been found that bugs with bug dependencies often take longer time to be resolved than other bugs without any dependencies. Despite the potential impact of bug dependencies on bug-fixing time, previous studies use traditional metrics without considering bug dependencies to build bug-fixing time prediction models. As a result, there is currently little empirical evidence to support the use of bug dependencies in improving prediction accuracy. Aims: We aim to conduct a comprehensive empirical study to investigate the value of considering bug dependencies for bug-fixing time prediction. Method: We define a set of bug dependency metrics based on bug dependencies. We first investigate the correlation between bug dependency metrics and bug-fixing time to investigate whether bugs with more complex dependencies are more time-consuming to be fixed. Next, we employ principal component analysis to study whether bug dependency metrics capture additional dimensions of a bug compared to traditional metrics. Finally, we build multivariate prediction models to explore whether considering bug dependencies can improve the effectiveness of bug-fixing time prediction. Results: The experimental results suggest that: (1) bugs with more complex dependencies require more time to be fixed; (2) bug dependency metrics are complementary to traditional metrics; (3) considering bug dependencies can improve the effectiveness of bug-fixing time prediction. Conclusions: These findings highlight the importance of considering bug dependencies in bug-fixing time prediction, and provide valuable insights into the potential impact of bug dependencies on software development processes.
Manual Tests Do Smell! Cataloging and Identifying Natural Language Test Smells

Background: Test smells indicate potential problems in the design and implementation of automated software tests that may negatively impact test code maintainability, coverage, and reliability. When poorly described, manual tests written in natural language may suffer from related problems, which enable their analysis from the point of view of test smells. Despite the possible prejudice to manually tested software products, little is known about test smells in manual tests, which results in many open questions regarding their types, frequency, and harm to tests written in natural language. Aims: Therefore, this study aims to contribute to a catalog of test smells for manual tests. Method: We perform a two-fold empirical strategy. First, an exploratory study in manual tests of three systems: the Ubuntu Operational System, the Brazilian Electronic Voting Machine, and the User Interface of a large smartphone manufacturer. We use our findings to propose a catalog of eight test smells and identification rules based on syntactical and morphological text analysis, validating our catalog with 24 in-company test engineers. Second, using our proposals, we create a tool based on Natural Language Processing (NLP) to analyze the subject systems' tests, validating the results. Results: We observed the occurrence of eight test smells. A survey of 24 in-company test professionals showed that 80.7% agreed with our catalog definitions and examples. Our NLP-based tool achieved a precision of 92%, recall of 95%, and f-measure of 93.5%, and its execution evidenced 13,169 occurrences of our cataloged test smells in the analyzed systems. Conclusion: We contribute with a catalog of natural language test smells and novel detection strategies that better explore the capabilities of current NLP mechanisms with promising results and reduced effort to analyze tests written in different idioms.
Synthetic Image Detection: Highlights from the IEEE Video and Image Processing Cup 2022 Student Competition [SP Competitions]

Provides society information that may include news, reviews or technical notes that should be of interest to practitioners and researchers.
Techno-Econo-Enviro Assessment of Photovoltaic-Thermal (PV-T) System for Residential Use in Iran Based on Köppen Climate Classification

The reason for utilizing PV-T systems is their capability to generate both electricity and heat at the same time, which enhances energy efficiency and decreases the need for multiple energy sources. Considering the potential of solar energy and different climates in Iran, in this research, the feasibility, modeling, and comparison of the PV-T system to supply electricity and heat to residential units were investigated in 28 cities with 9 climates of Iran. A thorough evaluation of performance was conducted using the software Polysun 9.0 and PVsyst 6.6.8 for a duration of one year. The scientific novelty of this study relies on the simultaneous utilization of two analytical software, the thoroughness of the research, and taking into account the impact of climate on the findings. Investigations showed that the best performance of the designed system is related to Bandar Abbas and Zahedan, and the worst performance is related to Rasht and Sari. In general, according to the amount of electricity and heating produced by the PV-T system, it showed that Shiraz and Rasht stations have the highest and lowest production of energy. In terms of environmental effects, Birjand station will have the most and Rasht the least reduction in CO2 emissions. In terms of heating energy demand for the investigated building, Ardabil has the highest amount and Bandar Abbas has the lowest amount.
Looking at the posterior: accuracy and uncertainty of neural-network predictions

Abstract Bayesian inference can quantify uncertainty in the predictions of neural networks using posterior distributions for model parameters and network output. By looking at these posterior distributions, one can separate the origin of uncertainty into aleatoric and epistemic contributions. One goal of uncertainty quantification is to inform on prediction accuracy. Here we show that prediction accuracy depends on both epistemic and aleatoric uncertainty in an intricate fashion that cannot be understood in terms of marginalized uncertainty distributions alone. How the accuracy relates to epistemic and aleatoric uncertainties depends not only on the model architecture, but also on the properties of the dataset. We discuss the significance of these results for active learning and introduce a novel acquisition function that outperforms common uncertainty-based methods. To arrive at our results, we approximated the posteriors using deep ensembles, for fully-connected, convolutional and attention-based neural networks.
A New Encryption Key Generator Design with True Random Bits

As the importance of data security increases day by day, the new encryption method developments are also becoming more complex. Although logical and operational operators increase data security by complicating the algorithm, it can sometimes create disadvantages. Therefore, encryption algorithms must be chosen very accurately; research in this area has also generally been shaped around this focus. In the field of cryptology, the most important parameter is the encryption key. Generating, distributing, and hiding this key is one of the most important problems. Random number generators in cryptography should meet some requirements. For this purpose, we realized a new true random number generator. ESC-50 sound dataset is selected as a seed for random number generator. Applied design is approved by NIST 800-22 test suite, Ent test, UACI, and NPCR tests. All of these successful test results showed that our design can be implemented in encryption system as a key generator.