Reviewerly/exHarmony huggingface dataset:
A combined neural network model for forecasting solar energy from multiple weather parameters

The article aims to propose a combined neural network model to forecast the solar energy of a solar power plant. Predicting solar energy is extremely important in planning, investing in electricity development, and operating the power system. Solar power integration in electrical grids is complicated due to its dependence on volatile weather conditions. Artificial neural networks have been employed in recent years to solve the problem. Two well-known models, the Nonlinear autoregressive exogenous model (NARX) and the Long-short term memory (LSTM), are suitable methods for determining photovoltaic (PV) output forecasting. This article proposes a two-stage model combining the NARX and LSTM to forecast the output energy of a solar power plant. The proposed model has been evaluated and compared with NARX and LSTM. The data have been collected at Son My 3.1 Solar Power Plant project from the monitoring system with electrical power, solar irradiance, wind speed, and wind direction, from July 1, 2019, to June 30, 2020. A general score based on three error functions, Mean squared error, Mean absolute error, and R-squared, is the indicator to investigate the forecasting efficiency of the methods. The numerical results show that the combined NARX-LSTM model is better than other methods in this study.
Development of Path Tracking and Obstacle Avoidance based on an Advanced Potential Field Controller

This paper proposes a new method that combines path tracking and obstacle avoidance for a differential drive mobile robot based on the Advanced Potential Field Controller (APFC) to increase stability and safety for robot operation. In conventional methods, the transition between path following and obstacle avoidance is typically achieved through a simple switch, which does not ensure the robot returns to the original path after avoiding the obstacle. The proposed methods integrate the Repulsive Potential Field (RPF) and Attractive Potential Field (APF), effectively solving this issue and enhancing smooth navigation in static environments. The RPF is utilized to steer the robot away from obstacles, while the APF is employed to redirect the robot back to its path after obstacle avoidance. The algorithm is verified on the designed robot, and experimental results provide efficiency in achieving autonomous robot navigation.
Advanced Anti-Forensic Protection of Mobile Applications

A mobile device is usually the carrier of its owner's sensitive data, but it also contains a lot of system data that reveals the owner's daily activities. In case of loss or theft, it is possible to analyze the mobile device through unauthorized forensic analysis and reverse engineering, and possible misuse of the obtained information may represent a security risk. The work analyzes the possibilities of solving the problem of data protection in the event that the lock screen protection of the mobile device has been broken. This work proposes an antiforensic method of running a mobile applications from a remote fully controlled environment. The result is a proposed and implemented model by the author, which prevents before creation of logs about the operation of the mobile applications and the storage of applications data on the terminal mobile device that the person carries with him. The solution was demonstrated on the default Android SMS sending application - Android Messaging.
Derivation of Two-Point Difference Track Initiation Method for CWPA Model

This paper describes the mathematical derivation of the optimal Kalman filter initialization using the Continuous Wiener Process Acceleration (CWPA) model. The method used in the paper makes use of the so-called “two-point differencing” (TPD) method presented, for example, in [1] and also in [2]. The derivation of the method was inspired by the description in [3]. For the problem of initializing an optimal tracking filter, a mathematical derivation based on two-point initialization is presented in the first part. This derivation results in an initialization covariance matrix P(0|0) together with a state vector x(0|0). In the second part of the paper a comparison of the use of the derived initialization matrices and vectors with various other trivial initialization matrices is shown. For the purpose of comparison, random Gaussian noise data were generated and processed by the Kalman filter with and without the above mentioned initialization. The processed data were compared using the mean squared error metric and the results plotted in graphs. Some interesting numerical values are also shown in the tables. In the conclusion it is shown that the derived method used converges faster to the steady-state MSE value in the post-meaning phase.
Detecting Interpreter Bugs via Filling Function Calls in Skeletal Program Enumeration

Skeletal Program Enumeration (SPE) is one of the state-of-the-art techniques for generating programs and validating the correctness of compilers/interpreters. However, existing SPE approaches neglect the enumeration of function calls, thereby overlooking a crucial feature of modern programming languages. To address this gap, this paper proposes an approach that integrates function calls into SPE techniques. Our approach first defines function skeletons and then employs the staged enumeration of variables and arguments. Consequently, our approach can eliminate equivalent programs on-the-fly. To address the test oracle problem in SPE, it takes a differential strategy to identify interpreter bugs, i.e., differentially comparing program execution results across various interpreters. Hence it can effectively detect crash bugs, behavior bugs, and miscompilation bugs. To evaluate the effectiveness, we have implemented the proposed approach into an open-source tool, i.e., FcFuzzer, for testing Python interpreters. The evaluation is conducted on seven Python interpreters: CPython, RustPython, IronPython, Pyston, PyPy, Codon, and GPython. Using the same seeds, FcFuzzer can detect, on average, 1.6 times more bugs than the state-of-the-art SPE technique. In a one-month fuzzing experiment, FcFuzzer successfully identified 35 Python interpreter bugs, of which 16 were confirmed to be unknown, and six have been fixed.
ShellGPT: Generative Pre-trained Transformer Model for Shell Language Understanding

This paper presents ShellGPT, a pre-trained language model specifically designed to enhance the understanding of shell language which plays a crucial role in IT operations. Based on the GPT series of models, ShellGPT is trained on a corpus that aligns shell language with natural language, aiming to inject domain-specific knowledge into the model. The technique of pre-tokenization is employed to maximize the reuse of a general-purpose vocabulary, facilitating effective model transfer from general domain. Furthermore, a new pre-training objective, named equivalent command learning, is proposed to refine the command representations through modeling function equivalence of commands. To evaluate the performance of ShellGPT, we conduct fine-tuning on various downstream tasks related to shell language understanding. These tasks include command recommendation, command correction, and translation from natural language to shell command. Our experimental results demonstrate that ShellGPT outperforms other baseline models in terms of performance across almost all evaluated tasks. The findings from our experiments highlight the effectiveness of Shell-GPT in enhancing shell language understanding and demonstrate its potential for practical applications in IT operations.
Knowledge-Based Approach for Unlocking Divided Secrets in Threshold Schemes with Privileges

Among cryptographic techniques for securing information, threshold schemes of secret sharing are also used. Such methods allow the generation of a certain number of secret parts, which require to collect of a specific number of them in order to reconstruct the information. Some protocols allow for the generation of somewhat privileged shares, which in an even smaller number allow for the restoration of secret data. This paper will describe a secret sharing protocol that will use visual authorization codes based on thematic knowledge to select privileged shares.
Improving the Quality of Automated Vehicle Control Systems Using Video Compression Technologies for Networks with Unstable Bandwidth

The challenges of improving the quality of the automatic control systems of autonomous vehicles are studied. The methodology of the adaptation of video compression technologies for networks with variable and unstable bandwidth is considered from the perspective of a systematic approach to the development of automatic control systems for self-driving vehicles. A modification of the MJPEG-based video stream compression and transmission algorithm is proposed, that allows transmitting up-to-date data and obtaining images of maximum quality in conditions of non-guaranteed network bandwidth. The performance and reliability of the proposed algorithm have been verified during the field tests.
Discriminating Human-authored from ChatGPT-Generated Code Via Discernable Feature Analysis

The ubiquitous adoption of Large Language Generation Models (LLMs) in programming has highlighted the importance of distinguishing between human-written code and code generated by intelligent models. This paper specifically aims to distinguish ChatGPT-generated code from human-generated code. Our investigation reveals differences in programming style, technical level and readability between these two sources. Consequently, we develop a discriminative feature set for differentiation and evaluate its effectiveness through ablation experiments. In addition, we develop a dataset cleaning technique using temporal and spatial segmentation to mitigate dataset scarcity and ensure high quality, uncontaminated datasets. To further enrich the data resources, we apply "code transformation", "feature transformation" and "feature adaptation" techniques, generating a rich dataset of 100,000 lines of ChatGPT-generated code. The main contributions of our research include: proposing a discriminative feature set that yields high accuracy in distinguishing ChatGPT-generated code from human-authored code in binary classification tasks; devising methods for generating rich ChatGPT-generated code; and introducing a dataset cleansing strategy that extracts pristine, high-quality code datasets from open-source repositories, thereby achieving exceptional accuracy in code authorship attribution tasks.
Semantics-Based, Automated Preparation of Exploratory Data Analysis for Complex Systems

Visual Exploratory Data Analysis (EDA) is a key step in data analysis – however, after decades of research, recommending visualizations and their sequences for a human analyst in an exploration-supporting, efficient and repeatable way is still not a solved problem. However, EDA in the empirical assessment of performance and dependability of complex IT systems has key differences from the general setting: system structure and behavior have at least partial specifications, and the EDA process tends to follow established engineering processes (e.g., for diagnosis). Utilizing these differences, in this paper, we propose a novel, semantically driven approach for rapidly setting up analytic notebooks for the IT performance and dependability EDA of complex systems. An ontology-based knowledge base connects observed and inferred operational data with operational semantics and deployment topology; rule-based inference on the knowledge base creates a model of EDA notebook structure and plot recommendations. The model is automatically translated to notebook code and connected to the input data. We also present an open, end-to-end proof of concept implementation of the approach for the transaction duration analysis of Hyper-ledger Fabric, a complex, cross-organizational distributed ledger platform.
An Approach to Characterize the Security of Open-Source Functions using LSP

The malicious exploitation of security flaws by attackers can lead to a range of problems. While several techniques and tools allow detecting vulnerabilities during the Software Development Life Cycle (SDLC), most face the challenge of generating many false alarms while failing to detect vulnerabilities. This leads software development teams to waste considerable time in the analysis and to deploy potentially vulnerable code. In this context, we believe that complementary solutions are needed to help teams focusing the vulnerability detection and refactoring efforts on the code units that are more prone to have security issues. In this paper, we propose SCOLP (Security Characterization of Open-Source Functions using Logic Scoring of Preference (LSP)), an approach based on Multi-Criteria Decision Making (MCDM), aimed at categorizing code units (functions) based on the perceived proneness to have security issues. In practice, we use static information (e.g., Software Metrics (SMs) and memory management-related attributes) collected from the source code to feed Quality Models (QMs) that output a score that is then used to categorize the code units. To demonstrate SCOLP, we developed several QMs and applied them to the functions of a large open-source project developed using the C language (Linux Kernel). A preliminary validation with security experts was conducted to assess the accuracy of the categorization. Despite the subjectiveness of the process, results show that the output of SCOLP is aligned with the view of security experts. Our technique can be easily integrated into the SDLC without adding overhead to the development processes.
Mind Your Enclave Pointers! Detecting Privacy Leaks for SGX Apps via Sparse Taint Analysis

Intel SGX is a promising TEE technique that can protect programs running in user space from being maliciously accessed by the host operating system. Although it provides hardware access control and memory encryption, improper implementation of a code snippet running inside an enclave can still leak private data. While existing research mainly detects bugs of enclave code, this paper serves as a first attempt to study the privacy leakage issues caused by pointer misuse. In particular, we focus on explicit pointer declarations that may incur data copy from trusted to untrusted spaces, and we summarize five common patterns of such leakage code. Further, we propose a novel approach to detect these patterns based on static sparse taint analysis. Our approach starts from suspicious pointers of predefined patterns and performs forward analysis to recognize all taint sinks. It then backward analyzes the values being leaked through these sinks and checks if their identifiers are sensitive. We have implemented a prototype, namely STELLA, and conducted real-world experiments with dozens of open-source SGX programs. Results show that STELLA found 80 new leakage issues previously unknown in 13 projects. We hope our work can remind SGX developers of pointer misuse issues and inspire better designs toward mitigating the problem.
Resilience Assessment of Large Language Models under Transient Hardware Faults

Large Language Models (LLMs) are transforming the field of natural language processing and revolutionizing the way machines interact with humans. LLMs like ChatGPT and Google’s Bard have already made significant strides in conversational AI, enabling machines to understand natural language and respond in a more human-like manner. In addition to typical applications like sentiment analysis and text generation, LLMs are also used in safety-critical applications such as code generation and speech comprehension in autonomous driving vehicles, where reliability is important.In this work, we investigate the resilience of LLMs under transient hardware faults. Specifically, we used IR-level fault injection (FI) to assess the reliability of five popular LLMs, including Bert, GPT2, and T5, under transient hardware faults. Moreover, we also investigate how the resilience of LLMs varies with different pre-training, fine-tuning objectives, and the number of encoder and decoder blocks. We find that LLMs are quite resilient to transient faults overall. We also find that the behavior of the LLM under transient faults varies significantly with the input, LLM’s architecture, and the type of task (e.g., translation vs. fill-in-the-blank). Finally, we find that the Silent Data Corruption (SDC) rate varies with different fine-tuning objectives, and for the fill-mask fine-tuning objective, the SDC rate also increases with the model size. Overall, our findings indicate that the use of LLMs in safety-critical applications needs further investigation.
Assessing and Improving Dataset and Evaluation Methodology in Deep Learning for Code Clone Detection

Code clone detection is a task that identifies whether two code snippets are semantically identical. In recent years, deep learning models have shown high performance in detecting Type-3 and Type-4 code clones, and received increasing attention from the research community. However, compared with the attention given to the model design by the researchers, there is little research work on the quality of the datasets and the evaluation methodology (the way of dividing the dataset into training set and test set), which poses a challenge to the credibility of deep learning models.In this paper, we conduct experiments to evaluate the performance of the existing state-of-the-art models in multi-perspectives. At the same time, we release two new datasets for code clone detection, namely ConBigCloneBench and Google-CodeJam2 based on the existing datasets BigCloneBench and GoogleCodeJam, respectively. Our experiments show that the performance of the same model decreases up to 0.5 F1 score (from 0.9 to 0.4) on different evaluation perspectives and datasets, and the performance of some models is only similar to the simple MLP model. We analyze reasons for the performance decline further, and provide suggestions for future research to improve the performance of deep learning models from multi-perspectives.
A Survey on What Developers Think About Testing

Software is infamous for its poor quality and frequent occurrence of bugs. While there is no doubt that thorough testing is an appropriate answer to ensure sufficient quality, the poor state of software generally suggests that developers may not always engage as thoroughly with testing as they should. This observation aligns with the prevailing belief that developers simply do not like writing tests. In order to determine the truth of this belief, we conducted a comprehensive survey with 21 questions aimed at (1) assessing developers’ current engagement with testing and (2) identifying factors influencing their inclination toward testing; that is, whether they would actually like to test more but are inhibited by their work environment, or whether they would really prefer to test even less if given the choice. Drawing on 284 responses from professional software developers, we uncover reasons that positively and negatively impact developers’ motivation to test. Notably, reasons for motivation to write more tests encompass not only a general pursuit of software quality but also personal satisfaction. However, developers nevertheless perceive testing as mundane and tend to prioritize other tasks. One approach emerging from the responses to mitigate these negative factors is by providing better recognition for developers’ testing efforts.
Method-Level Bug Severity Prediction using Source Code Metrics and LLMs

In the past couple of decades, significant research efforts are devoted to the prediction of software bugs. However, most existing work in this domain treats all bugs the same, which is not the case in practice. It is important for a defect prediction method to estimate the severity of the identified bugs so that the higher-severity ones get immediate attention. In this study, we investigate source code metrics, source code representation using large language models (LLMs), and their combination in predicting bug severity labels of two prominent datasets. We leverage several source metrics at method-level granularity to train eight different machine-learning models. Our results suggest that Decision Tree and Random Forest models outperform other models regarding our several evaluation metrics. We then use the pre-trained CodeBERT LLM to study the source code representations’ effectiveness in predicting bug severity. CodeBERT fine-tuning improves the bug severity prediction results significantly in the range of 29%-140% for several evaluation metrics, compared to the best classic prediction model on source code metric. Finally, we integrate source code metrics into CodeBERT as an additional input, using our two proposed architectures, which both enhance the CodeBERT model effectiveness <sup xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink">1</sup> .
Towards Predicting Source Code Changes Based on Natural Language Processing Models: An Empirical Evaluation

In this paper, we investigate the prediction of software code changes using a natural language processing (NLP) model. NLP is one of the most rapidly developing fields in recent years, allowing various tasks related to natural language to be performed using large-scale models. In particular, BERT (bidirectional encoder representations from transformers) is a well-known model for encoding the input sentences of natural language into an appropriate vector space and is used for various classification tasks. In this paper, we use CuBERT (code understanding BERT), which was trained on programming languages as data in the pre-training stage, to perform tasks related to program code. Specifically, we run a regression problem where the output is the number of code changes.
Fixing Robust Out-of-distribution Detection for Deep Neural Networks

Deep Neural Network (DNN) classifiers easily yield high confidence for Out-of-Distribution (OOD) examples beyond the training distribution, i.e., In-Distribution (ID), leading to classification errors. Detecting and rejecting various OOD examples is crucial for the reliability of DNNs. More challenging, well-built detections can also suffer from being re-bypassed by adversarial attacks perturbing unseen OOD examples. Some existing works introduce adversarial training on the auxiliary outliers to improve the robustness of OOD detection. However, in this work, we find that applying adversarial training on the auxiliary outliers is insufficient to make the detection robust to strong adaptive attacks. To fix this bug of OOD detection, we propose a semi-supervised adversarial training approach, RobDet, which mines adversarially perturbed ID examples from within the neighborhood of clean ID ones as auxiliary outliers and uses multiple "other" classes to train them together with other auxiliary clean and adversarially perturbed outliers to enhance the robustness of OOD detection without significantly sacrificing the performance on clean OOD examples. Experiments show that RobDet has a significant advantage in detecting malicious OOD examples generated by strong adaptive attacks while maintaining advanced performance in detecting clean OOD examples.