Pub Date : 2024-01-01DOI: 10.7256/2454-0714.2024.1.70173
Aleksey N. Alpatov, Ilia Igorevich Iurov
In the modern world, teamwork is becoming more and more common. Different participants may be in different places, but they still need to work together on the same project, including graphic diagrams. An important aspect of this approach is the ability to observe changes made by other participants in real time. This allows, first of all, to reduce the frequency of conflicts when simultaneously editing the same schema element. However, existing solutions for sharing data in real-time collaborative editing of graphical diagrams face a number of problems, such as delays in data transmission. The subject of research in this article is the development of a minimum viable web application that allows users to perform collaborative graphical editing of a canvas in real time. The object of the study is a model of the process of collaborative editing in real time, taking into account the resolution of emerging conflicts. The research methodology is based on a theoretical approach to identifying mathematical formulas that describe changes in the state of a document when it is jointly edited by users. The characteristics of the use of the HTTP and WebSocket protocols in multi-user client-server applications are given. To use the WebSocket protocol, the Socket.IO library is used. The application server is built using the Express framework. The authors' main contribution to the topic is a model of the real-time collaborative editing process, as well as a mechanism for detecting conflicts for any number of users and a conflict resolution function for each pair of conflicting changes when online collaborative editing of documents. Within the framework of this study, an algorithm for collaborative editing of graphic schemes in real time is additionally proposed and its implementation in the form of a software system is given. The algorithm proposed as a result of the study in the JavaScript programming language can be used as a basis for developing more rich web applications using the Socket.IO library and be the object of future research affecting multi-user interaction and real-time conflict resolution.
{"title":"Algorithm and software implementation of real-time collaborative editing of graphical schemes using Socket.IO library","authors":"Aleksey N. Alpatov, Ilia Igorevich Iurov","doi":"10.7256/2454-0714.2024.1.70173","DOIUrl":"https://doi.org/10.7256/2454-0714.2024.1.70173","url":null,"abstract":"\u0000 In the modern world, teamwork is becoming more and more common. Different participants may be in different places, but they still need to work together on the same project, including graphic diagrams. An important aspect of this approach is the ability to observe changes made by other participants in real time. This allows, first of all, to reduce the frequency of conflicts when simultaneously editing the same schema element. However, existing solutions for sharing data in real-time collaborative editing of graphical diagrams face a number of problems, such as delays in data transmission. The subject of research in this article is the development of a minimum viable web application that allows users to perform collaborative graphical editing of a canvas in real time. The object of the study is a model of the process of collaborative editing in real time, taking into account the resolution of emerging conflicts. The research methodology is based on a theoretical approach to identifying mathematical formulas that describe changes in the state of a document when it is jointly edited by users. The characteristics of the use of the HTTP and WebSocket protocols in multi-user client-server applications are given. To use the WebSocket protocol, the Socket.IO library is used. The application server is built using the Express framework. The authors' main contribution to the topic is a model of the real-time collaborative editing process, as well as a mechanism for detecting conflicts for any number of users and a conflict resolution function for each pair of conflicting changes when online collaborative editing of documents. Within the framework of this study, an algorithm for collaborative editing of graphic schemes in real time is additionally proposed and its implementation in the form of a software system is given. The algorithm proposed as a result of the study in the JavaScript programming language can be used as a basis for developing more rich web applications using the Socket.IO library and be the object of future research affecting multi-user interaction and real-time conflict resolution.\u0000","PeriodicalId":155484,"journal":{"name":"Программные системы и вычислительные методы","volume":"28 3","pages":""},"PeriodicalIF":0.0,"publicationDate":"2024-01-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"140519106","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Pub Date : 2024-01-01DOI: 10.7256/2454-0714.2024.1.69900
Valentin Anatolyevich Cherepenin, Nikolai Olegovich Smyk, Sergei Petrovich Vorob'ev
The study is dedicated to analyzing methods and tools for optimizing the performance of high-load systems using cloud, fog, and edge technologies. The focus is on understanding the concept of high-load systems, identifying the main reasons for increased load on such systems, and studying the dependency of the load on the system's scalability, number of users, and volume of processed data. The introduction of these technologies implies the creation of a multi-level topological structure that facilitates the efficient operation of distributed corporate systems and computing networks. Modern approaches to load management are considered, the main factors affecting performance are investigated, and an optimization model is proposed that ensures a high level of system efficiency and resilience to peak loads while ensuring continuity and quality of service for end-users. The methodology is based on a comprehensive approach, including the analysis of existing problems and the proposal of innovative solutions for optimization, the application of architectural solutions based on IoT, cloud, fog, and edge computing to improve performance and reduce delays in high-load systems. The scientific novelty of this work lies in the development of a unique multi-level topological structure capable of integrating cloud, fog, and edge computing to optimize high-load systems. This structure allows for improved performance, reduced delays, and effective system scaling while addressing the challenges of managing large data volumes and servicing multiple requests simultaneously. The conclusions of the study highlight the significant potential of IoT technology in improving production processes, demonstrating how the integration of modern technological solutions can contribute to increased productivity, product quality, and risk management.
{"title":"Integration of cloud, fog, and edge technologies for the optimization of high-load systems","authors":"Valentin Anatolyevich Cherepenin, Nikolai Olegovich Smyk, Sergei Petrovich Vorob'ev","doi":"10.7256/2454-0714.2024.1.69900","DOIUrl":"https://doi.org/10.7256/2454-0714.2024.1.69900","url":null,"abstract":"\u0000 The study is dedicated to analyzing methods and tools for optimizing the performance of high-load systems using cloud, fog, and edge technologies. The focus is on understanding the concept of high-load systems, identifying the main reasons for increased load on such systems, and studying the dependency of the load on the system's scalability, number of users, and volume of processed data. The introduction of these technologies implies the creation of a multi-level topological structure that facilitates the efficient operation of distributed corporate systems and computing networks. Modern approaches to load management are considered, the main factors affecting performance are investigated, and an optimization model is proposed that ensures a high level of system efficiency and resilience to peak loads while ensuring continuity and quality of service for end-users. The methodology is based on a comprehensive approach, including the analysis of existing problems and the proposal of innovative solutions for optimization, the application of architectural solutions based on IoT, cloud, fog, and edge computing to improve performance and reduce delays in high-load systems. The scientific novelty of this work lies in the development of a unique multi-level topological structure capable of integrating cloud, fog, and edge computing to optimize high-load systems. This structure allows for improved performance, reduced delays, and effective system scaling while addressing the challenges of managing large data volumes and servicing multiple requests simultaneously. The conclusions of the study highlight the significant potential of IoT technology in improving production processes, demonstrating how the integration of modern technological solutions can contribute to increased productivity, product quality, and risk management.\u0000","PeriodicalId":155484,"journal":{"name":"Программные системы и вычислительные методы","volume":"21 6","pages":""},"PeriodicalIF":0.0,"publicationDate":"2024-01-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"140527425","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Pub Date : 2023-02-01DOI: 10.7256/2454-0714.2023.2.40755
Andrei Marchenko, D. Shchemelinin
The object of this study is a service for managing virtual machines in a cloud environment. When developing and operating such a service, it becomes necessary to assess its availability and reliability for compliance with the selected quality level that the client can count on. This paper presents a developed system that allows testing the availability of a cloud service for managing virtual machines. The method of integration with the existing monitoring system at the enterprise using open source software in order to reduce the cost of development and operation is considered. A test case for deploying and removing a virtual machine using a graphical user interface has been developed and implemented, and triggering criteria have been defined. The requirements for the architecture and implementation of the system based on the production statistics of the virtual machine creation service using the Prometheus monitoring system are collected and analyzed. The novelty of the research lies in the development of a new method of testing a cloud service for managing virtual machines in order to increase its reliability and availability. Based on this method, a system for testing virtual machines is described and implemented, as well as a method for integration into the monitoring system of the Intel cloud service. During the operation of cloud environments with the help of this system, problem areas were identified in the architecture of the virtual machine creation service, which made it possible to optimize the system operation in a timely manner. The described method is an effective way to test cloud services, and can also be used to analyze and improve reliability and availability.
{"title":"Development of an automated system for testing a cloud service for deploying virtual machines using modern monitoring tools","authors":"Andrei Marchenko, D. Shchemelinin","doi":"10.7256/2454-0714.2023.2.40755","DOIUrl":"https://doi.org/10.7256/2454-0714.2023.2.40755","url":null,"abstract":"\u0000 The object of this study is a service for managing virtual machines in a cloud environment. When developing and operating such a service, it becomes necessary to assess its availability and reliability for compliance with the selected quality level that the client can count on. This paper presents a developed system that allows testing the availability of a cloud service for managing virtual machines. The method of integration with the existing monitoring system at the enterprise using open source software in order to reduce the cost of development and operation is considered. A test case for deploying and removing a virtual machine using a graphical user interface has been developed and implemented, and triggering criteria have been defined. The requirements for the architecture and implementation of the system based on the production statistics of the virtual machine creation service using the Prometheus monitoring system are collected and analyzed. The novelty of the research lies in the development of a new method of testing a cloud service for managing virtual machines in order to increase its reliability and availability. Based on this method, a system for testing virtual machines is described and implemented, as well as a method for integration into the monitoring system of the Intel cloud service. During the operation of cloud environments with the help of this system, problem areas were identified in the architecture of the virtual machine creation service, which made it possible to optimize the system operation in a timely manner. The described method is an effective way to test cloud services, and can also be used to analyze and improve reliability and availability.\u0000","PeriodicalId":155484,"journal":{"name":"Программные системы и вычислительные методы","volume":"315 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2023-02-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"116623781","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Pub Date : 2023-02-01DOI: 10.7256/2454-0714.2023.2.43502
M. V. Laptev, V. Yanchus, V. Laptev
This study examines the features of forming in data visualization. To do this, the authors hypothesize that there are special areas of interest on the charts. The user pays attention to them in order to decode data encrypted with graphics. The presence of such areas, and in some cases, points, are intuitively determined during the formation of the design rules of information graphics. To verify them, the study used the eye-tracking method and the cluster analysis method. The application of interdisciplinary principles and rules of infographics design has been studied on the example of horizontal and vertical bar charts, pie, pictorial and flow charts. The result of experiments with various types of charts showed the presence of additional areas of interest not previously indicated by data visualization specialists. This makes it possible to clarify the features of graphic forms and the formation of diagrams, allows you to verify the use of design rules formulated by the efforts of domestic and foreign specialists in the late XIX — early XX centuries. Such verification can be done using a methodology that includes statistical methods and the tracking method, which allows us to take into account the valuable experience of the past in modern information design. The presented procedure can be extended to other types of charts, diagrams and thematic maps, and have practical application in the analysis of big data visualization.
{"title":"Eye-tracking detection of the area of interest in data visualization","authors":"M. V. Laptev, V. Yanchus, V. Laptev","doi":"10.7256/2454-0714.2023.2.43502","DOIUrl":"https://doi.org/10.7256/2454-0714.2023.2.43502","url":null,"abstract":"\u0000 This study examines the features of forming in data visualization. To do this, the authors hypothesize that there are special areas of interest on the charts. The user pays attention to them in order to decode data encrypted with graphics. The presence of such areas, and in some cases, points, are intuitively determined during the formation of the design rules of information graphics. To verify them, the study used the eye-tracking method and the cluster analysis method. The application of interdisciplinary principles and rules of infographics design has been studied on the example of horizontal and vertical bar charts, pie, pictorial and flow charts. The result of experiments with various types of charts showed the presence of additional areas of interest not previously indicated by data visualization specialists. This makes it possible to clarify the features of graphic forms and the formation of diagrams, allows you to verify the use of design rules formulated by the efforts of domestic and foreign specialists in the late XIX — early XX centuries. Such verification can be done using a methodology that includes statistical methods and the tracking method, which allows us to take into account the valuable experience of the past in modern information design. The presented procedure can be extended to other types of charts, diagrams and thematic maps, and have practical application in the analysis of big data visualization.\u0000","PeriodicalId":155484,"journal":{"name":"Программные системы и вычислительные методы","volume":"194 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2023-02-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"121872101","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Pub Date : 2023-02-01DOI: 10.7256/2454-0714.2023.2.43552
Bulat Zufarovich Yusupov
The article is devoted to the organization of the educational process using a specialized laboratory stand of security and fire systems. The main purpose of the paper is to form professional competencies of students in the field of security and safety systems. The paper describes in detail the structure and components of the laboratory stand, emphasizing the importance of its key elements - the control panel "Astra-812 Pro" and a variety of detectors. This allows students to practically apply theoretical knowledge, studying the functioning and interaction of various components of the security and fire system. The article also presents schemes of connection of detectors to the expander, allowing students to more deeply understand the technical side of the process. The steps of the bench training are disclosed to support step-by-step, sequential learning. The study emphasizes the effectiveness of the proposed learning system, which involves direct student interaction with hands-on equipment. The findings confirm the significance of using such training stands in modern higher professional education, emphasizing their contribution to the formation of the necessary professional competencies in future specialists in the field of safety and security. Scientific novelty of the work consists in the development and application of a specialized training stand for teaching students to work with security and fire systems. This allows students to get direct experience of interaction with the equipment, deepen their understanding of the technical aspects of the systems operation and improve their practical skills. The work also contributes to research on educational approaches in the field of safety and security by proposing an effective teaching methodology through the use of a laboratory bench. This provides a platform for further research and development in this area that can broaden and deepen the educational opportunities in the field.
{"title":"Development of the security and fire system training stand for student training","authors":"Bulat Zufarovich Yusupov","doi":"10.7256/2454-0714.2023.2.43552","DOIUrl":"https://doi.org/10.7256/2454-0714.2023.2.43552","url":null,"abstract":"\u0000 The article is devoted to the organization of the educational process using a specialized laboratory stand of security and fire systems. The main purpose of the paper is to form professional competencies of students in the field of security and safety systems. The paper describes in detail the structure and components of the laboratory stand, emphasizing the importance of its key elements - the control panel \"Astra-812 Pro\" and a variety of detectors. This allows students to practically apply theoretical knowledge, studying the functioning and interaction of various components of the security and fire system. The article also presents schemes of connection of detectors to the expander, allowing students to more deeply understand the technical side of the process. The steps of the bench training are disclosed to support step-by-step, sequential learning. The study emphasizes the effectiveness of the proposed learning system, which involves direct student interaction with hands-on equipment. The findings confirm the significance of using such training stands in modern higher professional education, emphasizing their contribution to the formation of the necessary professional competencies in future specialists in the field of safety and security. Scientific novelty of the work consists in the development and application of a specialized training stand for teaching students to work with security and fire systems. This allows students to get direct experience of interaction with the equipment, deepen their understanding of the technical aspects of the systems operation and improve their practical skills. The work also contributes to research on educational approaches in the field of safety and security by proposing an effective teaching methodology through the use of a laboratory bench. This provides a platform for further research and development in this area that can broaden and deepen the educational opportunities in the field.\u0000","PeriodicalId":155484,"journal":{"name":"Программные системы и вычислительные методы","volume":"3 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2023-02-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"131126766","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Pub Date : 2023-02-01DOI: 10.7256/2454-0714.2023.2.39801
R. Gibadullin, I. Viktorov
Parallel programming is a way of writing programs that can run in parallel on multiple processors or cores. This allows programs to process large amounts of data or perform more complex calculations in a reasonable amount of time than would be possible on a single processor. The advantages of parallel programming: increased performance, load sharing, processing large amounts of data, improved responsiveness, increased reliability. In general, parallel programming has many advantages that can help improve the performance and reliability of software systems, especially with the increasing complexity of computational tasks and data volumes. However, parallel programming can also have its own complexities related to synchronization management, data races, and other aspects that require additional attention and experience on the part of the programmer. When testing parallel programs, it is possible to get ambiguous results. For example, this can happen when we optimize concatenation of float- or double-type data by means of For or ForEach methods of the Parallel class. Such behavior of a program makes you doubt about the thread safety of the written code. Such a conclusion can be incorrect and premature. The article reveals a possible reason for ambiguity of the results received by a parallel program and offers a concise solution of the question.
{"title":"Ambiguous Results when Using Parallel Class Methods within the .NET Framework","authors":"R. Gibadullin, I. Viktorov","doi":"10.7256/2454-0714.2023.2.39801","DOIUrl":"https://doi.org/10.7256/2454-0714.2023.2.39801","url":null,"abstract":"\u0000 Parallel programming is a way of writing programs that can run in parallel on multiple processors or cores. This allows programs to process large amounts of data or perform more complex calculations in a reasonable amount of time than would be possible on a single processor. The advantages of parallel programming: increased performance, load sharing, processing large amounts of data, improved responsiveness, increased reliability. In general, parallel programming has many advantages that can help improve the performance and reliability of software systems, especially with the increasing complexity of computational tasks and data volumes. However, parallel programming can also have its own complexities related to synchronization management, data races, and other aspects that require additional attention and experience on the part of the programmer. When testing parallel programs, it is possible to get ambiguous results. For example, this can happen when we optimize concatenation of float- or double-type data by means of For or ForEach methods of the Parallel class. Such behavior of a program makes you doubt about the thread safety of the written code. Such a conclusion can be incorrect and premature. The article reveals a possible reason for ambiguity of the results received by a parallel program and offers a concise solution of the question.\u0000","PeriodicalId":155484,"journal":{"name":"Программные системы и вычислительные методы","volume":"18 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2023-02-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"129458762","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Pub Date : 2023-02-01DOI: 10.7256/2454-0714.2023.2.43403
P. Antonova
The paper is the result of the thorough research aimed at studying the principles of creation, modeling and practical use of queue-limited mass service systems (MSS) based on the .NET technology platform and implemented using the C# programming language. In the course of the paper, special attention is paid to both single-channel and multi-channel systems. In the introductory part of the article the fundamental concepts of the theory of mass service are considered. The basic characteristics of systems, such as fixed queue length systems, single-channel and multi-channel systems with probability of service failure, systems with unlimited and limited wait times, closed systems, and multi-channel systems with channel-to-channel interaction, are discussed. Detailed examples of C# code are presented to illustrate the class structures used to model both single-channel and multi-channel MSS. Specific scenarios for the use of the presented structures within the framework of MSS modeling are considered. The paper highlights the practical application of mass service systems in solving real-world problems. Using examples from banking and traffic management in telecommunications, it is demonstrated how MSS can contribute to optimizing waiting times and efficient resource management. Prospects for further research in the field of mass service systems are suggested. Given the importance of MSS in various industries such as banking, telecommunications, logistics and many others, the high relevance of the topic is due to the need to find new approaches and methods to improve the efficiency and optimization of these systems. In general, the article is a valuable research material for specialists involved in modeling and practical application of mass service systems.
{"title":"Principles of developing a limited-queue mass service system on the .NET platform","authors":"P. Antonova","doi":"10.7256/2454-0714.2023.2.43403","DOIUrl":"https://doi.org/10.7256/2454-0714.2023.2.43403","url":null,"abstract":"\u0000 The paper is the result of the thorough research aimed at studying the principles of creation, modeling and practical use of queue-limited mass service systems (MSS) based on the .NET technology platform and implemented using the C# programming language. In the course of the paper, special attention is paid to both single-channel and multi-channel systems. In the introductory part of the article the fundamental concepts of the theory of mass service are considered. The basic characteristics of systems, such as fixed queue length systems, single-channel and multi-channel systems with probability of service failure, systems with unlimited and limited wait times, closed systems, and multi-channel systems with channel-to-channel interaction, are discussed. Detailed examples of C# code are presented to illustrate the class structures used to model both single-channel and multi-channel MSS. Specific scenarios for the use of the presented structures within the framework of MSS modeling are considered. The paper highlights the practical application of mass service systems in solving real-world problems. Using examples from banking and traffic management in telecommunications, it is demonstrated how MSS can contribute to optimizing waiting times and efficient resource management. Prospects for further research in the field of mass service systems are suggested. Given the importance of MSS in various industries such as banking, telecommunications, logistics and many others, the high relevance of the topic is due to the need to find new approaches and methods to improve the efficiency and optimization of these systems. In general, the article is a valuable research material for specialists involved in modeling and practical application of mass service systems.\u0000","PeriodicalId":155484,"journal":{"name":"Программные системы и вычислительные методы","volume":"2 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2023-02-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"134549439","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Pub Date : 2023-01-01DOI: 10.7256/2454-0714.2023.1.39547
Marat Gumerovich Nuriev, E. Belashova, K. Barabash
Common text editors such as Microsoft Word, Notepad++ and others are cumbersome. Despite their enormous functionality, they do not eliminate the risk of incorrectly converting the document, for example, when opening the same Word files on older or, conversely, newer versions of Microsoft Word. The way out is the use of markup languages, which allow you to mark up text blocks in order to present them in the desired style. Currently, very popular are LaTeX (a set of macro-extensions of the TeX typesetting system) and Markdown (a lightweight markup language, designed to denote formatting in plain text). So the question of converting a Markdown document into a LaTeX document is relevant. There are various tools to convert Markdown files to LaTeX document, such as Pandoc library, Markdown.lua, Lunamark and others. But most of them have redundant steps to generate the output document. This paper highlights a solution method by integrating a Markdown file into a LaTeX document, which will potentially reduce the output document generation time unlike existing solutions. The developed Markdown to LaTeX document converter will automatically generate the output document and reduce the possibility of errors when manually converting text from Markdown format to LaTeX format.
常见的文本编辑器,如Microsoft Word、notepad++等都很麻烦。尽管它们功能强大,但它们并不能消除错误转换文档的风险,例如,在旧版本或新版本的Microsoft Word上打开相同的Word文件时。解决方法是使用标记语言,它允许您标记文本块,以便以所需的样式显示它们。目前,非常流行的是LaTeX (TeX排版系统的一组宏扩展)和Markdown(一种轻量级标记语言,旨在以纯文本表示格式)。因此,将Markdown文档转换为LaTeX文档的问题是相关的。有各种工具可以将Markdown文件转换为LaTeX文档,例如Pandoc库,Markdown。lua, lunmark等。但是它们中的大多数都有多余的步骤来生成输出文档。本文重点介绍了一种通过将Markdown文件集成到LaTeX文档中的解决方案,与现有的解决方案不同,这可能会减少输出文档的生成时间。开发的Markdown to LaTeX文档转换器将自动生成输出文档,并减少手动将文本从Markdown格式转换为LaTeX格式时出现错误的可能性。
{"title":"Markdown File Converter to LaTeX Document","authors":"Marat Gumerovich Nuriev, E. Belashova, K. Barabash","doi":"10.7256/2454-0714.2023.1.39547","DOIUrl":"https://doi.org/10.7256/2454-0714.2023.1.39547","url":null,"abstract":"\u0000 Common text editors such as Microsoft Word, Notepad++ and others are cumbersome. Despite their enormous functionality, they do not eliminate the risk of incorrectly converting the document, for example, when opening the same Word files on older or, conversely, newer versions of Microsoft Word. The way out is the use of markup languages, which allow you to mark up text blocks in order to present them in the desired style. Currently, very popular are LaTeX (a set of macro-extensions of the TeX typesetting system) and Markdown (a lightweight markup language, designed to denote formatting in plain text). So the question of converting a Markdown document into a LaTeX document is relevant. There are various tools to convert Markdown files to LaTeX document, such as Pandoc library, Markdown.lua, Lunamark and others. But most of them have redundant steps to generate the output document. This paper highlights a solution method by integrating a Markdown file into a LaTeX document, which will potentially reduce the output document generation time unlike existing solutions. The developed Markdown to LaTeX document converter will automatically generate the output document and reduce the possibility of errors when manually converting text from Markdown format to LaTeX format.\u0000","PeriodicalId":155484,"journal":{"name":"Программные системы и вычислительные методы","volume":"65 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2023-01-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"117199825","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Pub Date : 2023-01-01DOI: 10.7256/2454-0714.2023.1.38263
S. Vyatkin, B. Dolgovesov
The object of the study is a method of direct rendering of complex three-dimensional objects based on perturbation functions using graphics processors, using a variety of streaming multiprocessors. Direct rendering means that the visualization of functionally defined models takes place without their preliminary conversion to other formats, for example, into triangle grids. The research method is based on analytical geometry in space, differential geometry, interpolation theory and matrix theory, based on mathematical modeling and the theory of computing systems. The main conclusions of the study are: the possibility of direct rendering of functionally specified objects, when rendering it is important that the computing processors are not idle. The first problem that was solved was that different GPUs have different numbers of streaming multiprocessors. Therefore, it was necessary to choose during execution the optimal stage from which the work began. Thus, you can partially get rid of the problem with unused computing resources. The second problem, the balancing problem, was solved by using a large number of computing processors. For implementation, the CUDA parallel programming model was used, which, together with a set of software tools, allows implementing programs in the C language for execution on a GPU. The resulting system visualizes complex functionally defined objects with high resolution interactively. The dependence of performance on the computing power of graphics processors is investigated.
{"title":"Direct Rendering of Three-Dimensional Objects Based on Perturbation Functions Using GPUs","authors":"S. Vyatkin, B. Dolgovesov","doi":"10.7256/2454-0714.2023.1.38263","DOIUrl":"https://doi.org/10.7256/2454-0714.2023.1.38263","url":null,"abstract":"\u0000 The object of the study is a method of direct rendering of complex three-dimensional objects based on perturbation functions using graphics processors, using a variety of streaming multiprocessors. Direct rendering means that the visualization of functionally defined models takes place without their preliminary conversion to other formats, for example, into triangle grids. The research method is based on analytical geometry in space, differential geometry, interpolation theory and matrix theory, based on mathematical modeling and the theory of computing systems. The main conclusions of the study are: the possibility of direct rendering of functionally specified objects, when rendering it is important that the computing processors are not idle. The first problem that was solved was that different GPUs have different numbers of streaming multiprocessors. Therefore, it was necessary to choose during execution the optimal stage from which the work began. Thus, you can partially get rid of the problem with unused computing resources. The second problem, the balancing problem, was solved by using a large number of computing processors. For implementation, the CUDA parallel programming model was used, which, together with a set of software tools, allows implementing programs in the C language for execution on a GPU. The resulting system visualizes complex functionally defined objects with high resolution interactively. The dependence of performance on the computing power of graphics processors is investigated.\u0000","PeriodicalId":155484,"journal":{"name":"Программные системы и вычислительные методы","volume":"12 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2023-01-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"132781443","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Pub Date : 2023-01-01DOI: 10.7256/2454-0714.2023.1.36217
The Oberon-based language and systems in implementation demonstrate a minimalist approach to achieving reliability, significantly different from most software systems that seek to maximize the number of supported functions. The requirements for critical systems for Category A nuclear power plants prohibit the use of even more programming practices. In order to meet the category A requirement of a stable number of iterations, the use of conditional loop operators is prohibited. To ensure ergodicity, the prohibition of the use of dynamic memory and recursion is used. A buffer overflow type vulnerability is closed by prohibiting the system operations module SYSTEM. Restrictions can be set to identify the problem of a fragile base class, type change operations, and the use of nested procedures. It is noted that the transition to the Oberon-07 dialect mainly concerned additional restrictions and fits well into the framework of restrictive semantics. Instead of languages and dialects for each set of requirements, the author proposes an approach of restrictive semantics, in which one language with a system of restrictions is used. A single RESTRICT statement has been introduced into the language as a declaration of restrictions on this module. The Multioberon compiler is implemented with one frontend, including a system of restrictions, and several replaceable backends. The syntactic analysis of the compiler is demonstrated by examples. The strategy of scaling the compiler depending on the system requirements is shown. The novelty of the restrictive semantics approach is the achievement of a set of minimum necessary properties that meet the requirements for the system. The use of the "from limitations" approach by system developers is an advantage, because it declares the really necessary properties of the system, linked to the requirements.
{"title":"Restrictive language semantics in the Multioberon system","authors":"","doi":"10.7256/2454-0714.2023.1.36217","DOIUrl":"https://doi.org/10.7256/2454-0714.2023.1.36217","url":null,"abstract":"\u0000 The Oberon-based language and systems in implementation demonstrate a minimalist approach to achieving reliability, significantly different from most software systems that seek to maximize the number of supported functions. The requirements for critical systems for Category A nuclear power plants prohibit the use of even more programming practices. In order to meet the category A requirement of a stable number of iterations, the use of conditional loop operators is prohibited. To ensure ergodicity, the prohibition of the use of dynamic memory and recursion is used. A buffer overflow type vulnerability is closed by prohibiting the system operations module SYSTEM. Restrictions can be set to identify the problem of a fragile base class, type change operations, and the use of nested procedures. It is noted that the transition to the Oberon-07 dialect mainly concerned additional restrictions and fits well into the framework of restrictive semantics. Instead of languages and dialects for each set of requirements, the author proposes an approach of restrictive semantics, in which one language with a system of restrictions is used. A single RESTRICT statement has been introduced into the language as a declaration of restrictions on this module. The Multioberon compiler is implemented with one frontend, including a system of restrictions, and several replaceable backends. The syntactic analysis of the compiler is demonstrated by examples. The strategy of scaling the compiler depending on the system requirements is shown. The novelty of the restrictive semantics approach is the achievement of a set of minimum necessary properties that meet the requirements for the system. The use of the \"from limitations\" approach by system developers is an advantage, because it declares the really necessary properties of the system, linked to the requirements.\u0000","PeriodicalId":155484,"journal":{"name":"Программные системы и вычислительные методы","volume":"24 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2023-01-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"114504594","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}