<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Science | Kseniia Leonteva</title>
    <link>https://ksenia-leonteva.github.io/en/tag/science/</link>
      <atom:link href="https://ksenia-leonteva.github.io/en/tag/science/index.xml" rel="self" type="application/rss+xml" />
    <description>Science</description>
    <generator>Wowchemy (https://wowchemy.com)</generator><language>en</language><lastBuildDate>Wed, 15 Nov 2023 00:00:00 +0000</lastBuildDate>
    <image>
      <url>https://ksenia-leonteva.github.io/media/icon_hu0b7a4cb9992c9ac0e91bd28ffd38dd00_9727_512x512_fill_lanczos_center_3.png</url>
      <title>Science</title>
      <link>https://ksenia-leonteva.github.io/en/tag/science/</link>
    </image>
    
    <item>
      <title>Scientific programming languages</title>
      <link>https://ksenia-leonteva.github.io/en/post/science-languages/</link>
      <pubDate>Wed, 15 Nov 2023 00:00:00 +0000</pubDate>
      <guid>https://ksenia-leonteva.github.io/en/post/science-languages/</guid>
      <description>&lt;p&gt;&lt;strong&gt;Scientific programming&lt;/strong&gt; - a programming style focused on scientific calculations.&lt;/p&gt;
&lt;h2 id=&#34;scientific-programming-languages&#34;&gt;Scientific programming languages.&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Python&lt;/strong&gt; is a powerful general-purpose programming language developed by Guido van Rossum in 1989. Python is classified as a high-level programming language that automatically handles most of the fundamental operations (such as memory management) performed at the processor level (&amp;ldquo;machine code&amp;rdquo;). Python is considered a higher-level language than, for example, C because of its expressive syntax (which in many cases is close to natural language) and rich variety of built-in data structures such as lists, tuples, sets, and dictionaries.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Advantages:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;clear and simple syntax allows you to quickly write programs in Python and generally minimizes the possibility of making hidden errors,&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Python operating environment itself and its associated libraries are free and open source, unlike commercial offerings such as Mathematica and MATLAB,&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Python has a large library of modules and packages that extend its functionality,&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;multi-platform support: Python is available for every public computer system, including Windows, Unix, Linux and macOS,&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Python is a flexible language: it is often described as a &amp;ldquo;multi-paradigm&amp;rdquo; language that provides the best functionality for procedural, object-oriented, and functional programming.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Disadvantages:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Python program execution speed is not as fast as programs in other fully compiled languages, such as C and Fortran,&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;it is difficult to hide or disguise the source code of a Python program to protect it from being copied and/or modified,&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;throughout Python&amp;rsquo;s history, the most common complaints were that its development was too fast, leading to problems of incompatibility between versions.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ol start=&#34;2&#34;&gt;
&lt;li&gt;&lt;strong&gt;Fortran&lt;/strong&gt; programming language was developed in the mid-1950s and became the first high-level type. Today you can often hear that his time passed with the advent of mass-produced computers and remained in the era of punched cards and computers the size of an entire room. However, this language is still relevant. A program in the Fortran programming language is a system composed of library elements, including the main program text, modules, external subroutines and procedures. Any program includes a basic set of combinations of computer instructions and data. In addition, it may or may not contain additional software modules.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Advantages:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;a very simple and accessible version of the language for learning programming,&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;due to its prevalence throughout the world, Fortran has a large library and a large range of application applications that have been created over its long history,&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;the system has an extensive set of tools available free of charge,&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Fortran programming language has a set of tools (translators) for conversion to machine systems of different computers.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Disadvantages:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;strict requirements for code format,&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;a small set of commands to control the program structure,&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;weak set of tools for describing data.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ol start=&#34;3&#34;&gt;
&lt;li&gt;&lt;strong&gt;Matlab&lt;/strong&gt; is a popular tool used for working with matrix databases, virtualization, and mathematical calculations. It is not used for developing software such as games or business solutions. Matlab language is high-level and interpreted. It includes an application package as well as an integrated development environment. It is found primarily in mathematical and engineering problems. It is studied by mathematicians and physicists. The corresponding complex is a set of professional tools for technical calculations, as well as computer modeling. Differs in strict quality requirements. Matlab as a programming language was created in the 1970s by one Cleve Mowler, dean of the computer science department at the University of New Mexico. In its very first version, Matlab was not a full-fledged language. It was a simple interactive matrix calculator.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Advantages:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;this language is much simpler than the SI family and Fortan. It has an intuitive syntax, a good reference and documentation base from the developers,&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;using this language it is possible to work with an advanced library for processing and generating graphs, integrated functions of linear algebra, fast Fourier transform, polynomials, basic statistics, solving differential equations,&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;what is written in Matlab can be easily translated into C and C++ via Matlab Coder,&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;the package includes application applications from third-party and official developers. They extend the standard functionality of the language.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Disadvantages:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Matlab has many operators and commands. They make programs written in the language in question slower,&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;use of the tool is only supported in closed ecosystems. It is not effective on other software platforms,&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;the software environment is a commercial product. It is distributed only for a fee. To purchase the distribution kit at a minimum cost, you must be a university student.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Also considered scientific programming languages are: C/C++, ALGOL, APL, J, Julia, Maple and R.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Creating a report</title>
      <link>https://ksenia-leonteva.github.io/en/post/report/</link>
      <pubDate>Thu, 02 Nov 2023 00:00:00 +0000</pubDate>
      <guid>https://ksenia-leonteva.github.io/en/post/report/</guid>
      <description>&lt;h3 id=&#34;report-structure&#34;&gt;Report structure&lt;/h3&gt;
&lt;p&gt;According to the generally accepted standard, any research work must necessarily contain the following elements:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;title page,&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;abstract,&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;introduction,&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;theoretical part,&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;main part,&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;conclusion.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The standard also recommends including the following elements:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;list of performers,&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;content,&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;normative references,&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;definitions,&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;designations and abbreviations,&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;list of sources used,&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;applications.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;content-of-main-elements-of-the-report&#34;&gt;Content of main elements of the report&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Title page.&lt;/strong&gt; The first page of work is drawn up strictly according to the model, which is usually given in teaching aids. It not only requires you to indicate elements such as the name of the educational institution, type of work and information about the performer, but also arrange them in strict accordance with the standards.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Abstract.&lt;/strong&gt; The abstract is essentially a summary of your entire report and contains a number of statistical information. It must indicate the number of parts, pages of work, illustrations, appendices, tables, used literary sources and appendices. Here is a list of keywords of the work and the actual text of the abstract. The latter implies the main elements of work from set goals to results and recommendations for their implementation.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Introduction.&lt;/strong&gt; The introduction of a standard report usually states the goals of the research being conducted and the tasks that will help achieve the goals. It is also necessary to write a detailed introduction with proof of the relevance and novelty of the topic being studied. In the introduction, it is necessary to provide an assessment of the current state of the problem under consideration and justify the need for its solution.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Theoretical part.&lt;/strong&gt; The content of the theoretical part depends on the discipline in which the laboratory work is being done. This may be a description of formulas, theorems, measuring instruments and techniques, or the history of studying the problem. All this is presented briefly and as briefly as possible.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Main part.&lt;/strong&gt; This section of the report should reflect the essence of the work, describe its methodology and the results obtained. The main part contains the following elements:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;goals of the research;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;tasks, the implementation of which will help achieve the goals;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;progress of work, which describes the actions performed;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;other sections provided for in the teaching materials for the discipline being studied.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Conclusion.&lt;/strong&gt; In this part of the report, you need to draw conclusions based on the results obtained during the work. To do this, it is assessed how fully the assigned tasks have been completed. Complex work may also contain other elements, for example, recommendations for further application of the results of the work performed.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Markup language Markdown</title>
      <link>https://ksenia-leonteva.github.io/en/post/markdown/</link>
      <pubDate>Wed, 18 Oct 2023 00:00:00 +0000</pubDate>
      <guid>https://ksenia-leonteva.github.io/en/post/markdown/</guid>
      <description>&lt;p&gt;&lt;strong&gt;Markdown&lt;/strong&gt; is a lightweight markup language for creating formatted text using a plain-text editor. John Gruber created Markdown in 2004 as a markup language that is easy to read in its source code form. Markdown is widely used for blogging and instant messaging, and also used elsewhere in online forums, collaborative software, documentation pages, and readme files.&lt;/p&gt;
&lt;p&gt;The initial description of Markdown contained ambiguities and raised unanswered questions, causing implementations to both intentionally and accidentally diverge from the original version. This was addressed in 2014 when long-standing Markdown contributors released CommonMark, an unambiguous specification and test suite for Markdown.&lt;/p&gt;
&lt;h2 id=&#34;markdown-syntax&#34;&gt;Markdown syntax.&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;To create a heading, add number signs (#) in front of a word or phrase. The number of number signs you use should correspond to the heading level. For example, to create a heading level three (&amp;lt;h3&amp;gt;), use three number signs (e.g., ### My Header).&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;To create paragraphs, use a blank line to separate one or more lines of text.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;To create a line break or new line (&amp;lt;br&amp;gt;), end a line with two or more spaces, and then type return.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;To bold text, add two asterisks or underscores before and after a word or phrase. To bold the middle of a word for emphasis, add two asterisks without spaces around the letters.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;To italicize text, add one asterisk or underscore before and after a word or phrase. To italicize the middle of a word for emphasis, add one asterisk without spaces around the letters.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;To emphasize text with bold and italics at the same time, add three asterisks or underscores before and after a word or phrase. To bold and italicize the middle of a word for emphasis, add three asterisks without spaces around the letters.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;To create a blockquote, add a &amp;gt; in front of a paragraph.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;To create an ordered list, add line items with numbers followed by periods. The numbers don’t have to be in numerical order, but the list should start with the number one.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;To create an unordered list, add dashes (-), asterisks (*), or plus signs (+) in front of line items. Indent one or more items to create a nested list.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;To add an image, add an exclamation mark (!), followed by alt text in brackets, and the path or URL to the image asset in parentheses. You can optionally add a title in quotation marks after the path or URL.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;In-text formulas are created similarly to LaTeX formulas.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;To convert a Markdown-file to pdf or docx, you can use the following Makefile and use the &amp;ldquo;make all&amp;rdquo; command on the command line.
















&lt;figure  &gt;
  &lt;div class=&#34;d-flex justify-content-center&#34;&gt;
    &lt;div class=&#34;w-100&#34; &gt;&lt;img src=&#34;./image1.jpg&#34; alt=&#34;Makefile&#34; loading=&#34;lazy&#34; data-zoomable /&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;You can read more about this &lt;a href=&#34;https://skillbox.ru/media/code/yazyk-razmetki-markdown-shpargalka-po-sintaksisu-s-primerami/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;here&lt;/a&gt; and &lt;a href=&#34;https://ru.wikibooks.org/wiki/%D0%9C%D0%B0%D1%82%D0%B5%D0%BC%D0%B0%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%B5_%D1%84%D0%BE%D1%80%D0%BC%D1%83%D0%BB%D1%8B_%D0%B2_LaTeX&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;here&lt;/a&gt;.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Continuous Integration and Continuous Delivery (CI/CD)</title>
      <link>https://ksenia-leonteva.github.io/en/post/writing-technical-content/</link>
      <pubDate>Thu, 05 Oct 2023 00:00:00 +0000</pubDate>
      <guid>https://ksenia-leonteva.github.io/en/post/writing-technical-content/</guid>
      <description>&lt;p&gt;&lt;strong&gt;Continuous Integration and Continuous Delivery (CI/CD)&lt;/strong&gt; is a software development approach that aims to improve the speed, efficiency, and reliability of software delivery. This approach involves frequent code integration, automated testing, and continuous deployment of software changes to production.
Before the adoption of CI/CD in the software development industry, the common approach was a traditional, waterfall model of software development.
In this approach, developers worked in silos, with each stage of the software development life cycle completed in sequence. The process typically involved gathering requirements, designing the software, coding, testing, and deployment.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;The disadvantages&lt;/em&gt; of this traditional approach include:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Slow Release Cycles&lt;/li&gt;
&lt;li&gt;High Failure Rates&lt;/li&gt;
&lt;li&gt;Limited Collaboration&lt;/li&gt;
&lt;li&gt;High Cost&lt;/li&gt;
&lt;li&gt;Limited Agility&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;CI/CD emerged as a solution to these disadvantages, by introducing a more agile and collaborative approach to software development. CI/CD enables teams to work together, integrating their code changes frequently, and automating the testing and deployment process.&lt;/p&gt;
&lt;h2 id=&#34;continuous-integration-ci&#34;&gt;Continuous Integration (CI)&lt;/h2&gt;
&lt;p&gt;CI is the process of merging all the Developer code changes to a single shared main branch as often as possible, frequently.
Developers merge their code changes, many times a day to the remote Git Repository&amp;rsquo;s main branch. These code changes are then verified and validated by using automation to create builds and run tests on the created builds.
So, the new code changes being pushed are built, integrated and tested in a few minutes, providing immediate feedback to the developer about the code status and any issues.
Continuous Integration ensures that the application is not broken whenever new commits from all the developers are integrated into the Release branch of the Repository, as they are all tested well in advance.&lt;/p&gt;
&lt;h2 id=&#34;continuous-delivery-cd&#34;&gt;Continuous Delivery (CD)&lt;/h2&gt;
&lt;p&gt;Continuous Delivery is the practice where the code changes are released frequently in shorter cycles to customers, quickly and reliably.
In continuation with Automated Testing in CI, the application Release process is completely automated so that the code changes can be deployed incrementally at any point of time by just clicking a button (manual trigger).
Generally, shorter release cycles are recommended. Depending on the size of the project, and business requirements, you can configure daily, weekly, fortnightly release schedules.
The shorter the release cycle the easier it is to troubleshoot in case of any issue after deployment onto a Production environment.&lt;/p&gt;
&lt;h2 id=&#34;continuous-deployment-cd&#34;&gt;Continuous Deployment (CD)&lt;/h2&gt;
&lt;p&gt;Continuous Delivery without a manual trigger is Continuous Deployment.
In Continuous Deployment, every code change is directly released to customers without any manual intervention if it successfully passes all the stages of your CI/CD pipeline. So, if there are no failures in any pipeline tests, every code change is available to the customers immediately.
This level of automation is made possible by a combination of several different tools and processes that work together to verify and push the code changes to production.
Once the developer pushes the new code change, it is automatically built, integrated, tested, and directly deployed to the production environment.&lt;/p&gt;
&lt;p&gt;















&lt;figure  &gt;
  &lt;div class=&#34;d-flex justify-content-center&#34;&gt;
    &lt;div class=&#34;w-100&#34; &gt;&lt;img src=&#34;./image1.png&#34; alt=&#34;pic&#34; loading=&#34;lazy&#34; data-zoomable /&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&lt;em&gt;The key benefits&lt;/em&gt; of CI/CD include:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Faster Release Cycles&lt;/li&gt;
&lt;li&gt;Improved Quality&lt;/li&gt;
&lt;li&gt;Increased Collaboration&lt;/li&gt;
&lt;li&gt;Reduced Risk&lt;/li&gt;
&lt;li&gt;Cost-Effective&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In summary, CI/CD emerged as a solution to the limitations of the traditional, linear approach to software development. By introducing a more agile and collaborative approach to software development, CI/CD enables teams to work together, release software more frequently, and respond quickly to customer needs.&lt;/p&gt;
&lt;p&gt;You can read more about this &lt;a href=&#34;https://vegastack.com/blog/continuous-integration-continuous-deployment-continuous-delivery/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;here&lt;/a&gt; and &lt;a href=&#34;https://www.freecodecamp.org/news/what-is-ci-cd/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;here&lt;/a&gt;.&lt;/p&gt;
</description>
    </item>
    
  </channel>
</rss>
