<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: shalomtash</title>
    <description>The latest articles on DEV Community by shalomtash (@shalomtash).</description>
    <link>https://dev.to/shalomtash</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F851929%2F61c67cb8-1c98-4082-8649-d0432f5465e5.png</url>
      <title>DEV Community: shalomtash</title>
      <link>https://dev.to/shalomtash</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/shalomtash"/>
    <language>en</language>
    <item>
      <title>Simulink server crash incident report</title>
      <dc:creator>shalomtash</dc:creator>
      <pubDate>Tue, 01 Nov 2022 13:57:20 +0000</pubDate>
      <link>https://dev.to/shalomtash/simulink-server-crash-incident-report-5324</link>
      <guid>https://dev.to/shalomtash/simulink-server-crash-incident-report-5324</guid>
      <description>&lt;p&gt;__## _&lt;strong&gt;By the Simulink backend developer team&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;_&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Earlier this week we experienced a crash in our servers that led to the interruption of over 500,000 client transactions
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;_.&lt;br&gt;
_&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ytqoNmVN--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/nc738jos3opdo2u4w80n.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ytqoNmVN--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/nc738jos3opdo2u4w80n.png" alt="Image description" width="500" height="282"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  How could we make such a massive fail?
&lt;/h3&gt;

&lt;p&gt;We are providing an incident report that details the nature of the outage and our response.&lt;/p&gt;

&lt;p&gt;The following is the incident report for the Simulink server crash that occurred on November 1, 2022. We understand this service issue has impacted our valued developers and users, and we apologize to everyone who was affected.&lt;/p&gt;

&lt;h4&gt;
  
  
  Issue summary
&lt;/h4&gt;

&lt;p&gt;From 12:10 PM to 8:50 PM EAT, all server requests to Simulink resulted in internal server error messages. This issue affected 100% of traffic to our servers. Users could only access certain APIs that run on separate infrastructures. The root cause of this outage was an invalid configuration change that exposed a bug in a widely used internal library.&lt;/p&gt;

&lt;h4&gt;
  
  
  Timeline
&lt;/h4&gt;

&lt;p&gt;11:05 AM: System update released&lt;br&gt;
12:05 PM: Servers restart after update&lt;br&gt;
12:10 PM: Outage begins&lt;br&gt;
14:30 PM: Pagers alerted teams&lt;br&gt;
6:00 PM: Identification of issue&lt;br&gt;
6:30 PM: Failed configuration change rollback&lt;br&gt;
6:50 PM: Successful configuration change rollback&lt;br&gt;
7:10 PM: Server restarts begin&lt;br&gt;
8:50 PM: 100% of traffic back online&lt;/p&gt;

&lt;h4&gt;
  
  
  Root cause
&lt;/h4&gt;

&lt;p&gt;At 11:05 AM EAT, a biannual system update was released to our production environment. The update was accompanied by an undetected configuration change that specified an invalid address for the authentication servers in production. This exposed a bug in the authentication libraries which caused them to block permanently while attempting to resolve the invalid address to physical services. In addition, the internal monitoring systems permanently blocked on this call to the authentication library. The combination of the update, bug, and configuration error quickly caused all of the serving threads to be consumed. Traffic was permanently queued waiting for a serving thread to become available. The servers began repeatedly hanging and restarting as they attempted to recover and at 12:10 PM EAT, the service outage began.&lt;/p&gt;

&lt;h4&gt;
  
  
  Resolution and recovery
&lt;/h4&gt;

&lt;p&gt;At 2:30 PM EAT, the DataDog monitoring systems alerted our backend engineers who investigated the issue. The ongoing start and restart of servers however led to a delay in resolving the problem. An abrupt stop of all server processes would have led to the inadvertent loss of client data from our servers. As such care had to be taken to backup and transfer all data to an availability zone before proceeding to stop all processes and identify the underlying issue. By 6:00 PM, the incident response team identified that the monitoring system was exacerbating the problem caused by this bug.&lt;/p&gt;

&lt;p&gt;At 6:30 PM, we attempted to roll back the problematic configuration change. This rollback failed due to complexity in the configuration system which caused our security checks to reject the rollback. These problems were addressed and we successfully rolled back at 6:50 PM. We then redid the system update with the servers still in offline monitoring mode.&lt;/p&gt;

&lt;p&gt;We decided to restart servers gradually (at 7:10 PM), to avoid possible cascading failures from a wide-scale restart. By 8:00 PM, 25% of traffic was restored and 100% of traffic was routed to the API infrastructure at 8:50 PM.&lt;/p&gt;

&lt;h4&gt;
  
  
  Corrective and preventative measures
&lt;/h4&gt;

&lt;p&gt;In the last two days, we’ve conducted an internal review and analysis of the outage. The following are actions we are taking to address the underlying causes of the issue and to help prevent recurrence and improve response times:&lt;/p&gt;

&lt;p&gt;Disable the current combined system update and configuration release mechanism until safer measures are implemented. (Completed.)&lt;br&gt;
Change monitoring alert process to be quicker and more robust.&lt;br&gt;
Fix the underlying authentication libraries and monitoring to correctly timeout/interrupt on errors.&lt;br&gt;
Programmatically enforce staged rollouts of all configuration changes.&lt;br&gt;
Improve process for auditing all high-risk configuration options.&lt;br&gt;
Add a faster rollback mechanism and improve the traffic ramp-up process, so any future problems of this type can be corrected quickly.&lt;br&gt;
Develop better mechanism for quickly delivering status notifications during incidents.&lt;br&gt;
Simulink is committed to continually and quickly improving our technology and operational processes to prevent outages. We appreciate your patience and again apologize for the impact to you, your users, and your organization. We thank you for your business and continued support.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--IwUbqJql--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6mdxagm3hrjp5maxlu54.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--IwUbqJql--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6mdxagm3hrjp5maxlu54.png" alt="Image description" width="498" height="278"&gt;&lt;/a&gt;Sincere apologies&lt;/p&gt;



</description>
    </item>
    <item>
      <title>Python for Web Development</title>
      <dc:creator>shalomtash</dc:creator>
      <pubDate>Sun, 01 May 2022 20:59:09 +0000</pubDate>
      <link>https://dev.to/shalomtash/python-for-web-development-3chm</link>
      <guid>https://dev.to/shalomtash/python-for-web-development-3chm</guid>
      <description>&lt;h1&gt;
  
  
  web development
&lt;/h1&gt;

&lt;p&gt;Web development - It broadly refers to the work involved in designing, developing, and managing websites for intranet or internet hosting. Web programming, database management, web design, web publishing, and other aspects of website creation are all covered.&lt;/p&gt;

&lt;p&gt;All of the codes that determine how a website works are included in web development. We can divide the entire web development process into two categories.&lt;/p&gt;

&lt;p&gt;Front-end&lt;/p&gt;

&lt;p&gt;Back-end&lt;/p&gt;

&lt;p&gt;Though frontend and backend web development are distinct, they are similar in that they are two sides of the same coin. Each side of a complete website relies on the other to communicate and operate as a unified entity. In web development, both the front-end and back-end are equally crucial.&lt;/p&gt;

&lt;p&gt;Real world examples of python web development include:&lt;br&gt;
Netflix, Reddit, Spotify, Dropbox, Quora etc.&lt;/p&gt;

&lt;h2&gt;
  
  
  python framework
&lt;/h2&gt;

&lt;p&gt;Python is one of the most widely used computer programming languages today. It has Web frameworks, such as Django and Flask, make Python considerably easier to use and remove a lot of the heavy lifting from backend writing.&lt;/p&gt;

&lt;h2&gt;
  
  
  Django
&lt;/h2&gt;

&lt;p&gt;Django is a high-level Python web framework that enables designers to create fast, clean, and pragmatic designs. Django takes care of many of the intricacies of web development, allowing you to concentrate on developing your app rather than reinventing the wheel. It's open source and free.&lt;/p&gt;

&lt;p&gt;Django utilizes ORM to map objects to database tables and to transfer data from one database to another.&lt;/p&gt;

&lt;p&gt;It supports the majority of popular databases, including Oracle, MySQL, PostgreSQL, SQLite, and others.&lt;/p&gt;

&lt;p&gt;Django is the major framework for backend development on a large number of websites in the business.&lt;/p&gt;

&lt;p&gt;Django's characteristics&lt;/p&gt;

&lt;p&gt;The following are some of the outstanding features of this Python web framework:&lt;/p&gt;

&lt;p&gt;-Routing URLs&lt;/p&gt;

&lt;p&gt;-Authentication&lt;/p&gt;

&lt;p&gt;-Migrations of database schema&lt;/p&gt;

&lt;p&gt;-ORM stands for Organizational Resource Management (Object-relational mapper)&lt;/p&gt;

&lt;p&gt;-Engine for creating templates&lt;/p&gt;

&lt;p&gt;A Django framework example:&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--5d4IJPgA--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7zjrt91x1mssfvypg79q.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--5d4IJPgA--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7zjrt91x1mssfvypg79q.png" alt="Image description" width="880" height="475"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Django is one of the greatest frameworks to consider if you're planning to construct a highly configurable project, such as a social media website. Django's strength is in user interaction and the ability to exchange various forms of material. Django's ability to leverage a broad community-based support network provides you with highly customisable third-party ready-to-use plugins in your applications.&lt;/p&gt;

&lt;h2&gt;
  
  
  flask
&lt;/h2&gt;

&lt;p&gt;Flask supports a number of extensions that extend the application's functionality as if they were built into the framework itself. Object-relational mappers, form validation, upload handling, different open authentication protocols, and other framework-related tools all have extensions.&lt;/p&gt;

&lt;p&gt;Flask Characteristics&lt;/p&gt;

&lt;p&gt;-Support for unit testing that is integrated&lt;/p&gt;

&lt;p&gt;-Request dispatching with a restful interface&lt;/p&gt;

&lt;p&gt;-This package includes a development server and a debugger.&lt;/p&gt;

&lt;p&gt;-Jinja2 templating is used.&lt;/p&gt;

&lt;p&gt;-Secure cookies are supported.&lt;/p&gt;

&lt;p&gt;-Unicode-based&lt;/p&gt;

&lt;p&gt;-WSGI 1.0 compliant to the nth degree&lt;/p&gt;

&lt;p&gt;-Documentation is extensive.&lt;/p&gt;

&lt;p&gt;-Compatibility with Google App Engine&lt;/p&gt;

&lt;p&gt;-Extensions are provided to improve desired characteristics.&lt;/p&gt;

&lt;p&gt;example:&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--XlcWq2nl--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9qdvyz20ce794m9wskvr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--XlcWq2nl--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9qdvyz20ce794m9wskvr.png" alt="Image description" width="880" height="538"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;To recapitulate, due of its lightweight, Flask is one of the most popular python web frameworks. Despite its diminutive size, it is a Python web framework that may be extended. Flask speeds up the construction of basic web applications by providing the essential features. As a result, Flask is better suited to simpler, smaller applications.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Ultimate Python Tutorial For Beginners</title>
      <dc:creator>shalomtash</dc:creator>
      <pubDate>Fri, 22 Apr 2022 20:06:45 +0000</pubDate>
      <link>https://dev.to/shalomtash/ultimate-python-tutorial-for-beginners-4ndg</link>
      <guid>https://dev.to/shalomtash/ultimate-python-tutorial-for-beginners-4ndg</guid>
      <description>&lt;p&gt;&lt;strong&gt;INTRODUCTION TO PYTHON&lt;/strong&gt;&lt;br&gt;
Python is one of the high level programming languages just like Java. A high level programming language means it is closer to the human language e.g., &lt;code&gt;print('hello world!')&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;So as to understand what python is with less time wastage, I have outlined various key concepts to read about such include;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Variables&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Operators&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Data Types&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Conditions&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Loops&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Exception Handling&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Lists&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Dictionary&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;String Operations&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;File Operations&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;VARIABLES&lt;/strong&gt;&lt;br&gt;
-This are whole numbers &lt;code&gt;[0,1,2,3,4,5,6,7,8,9]&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;DATA TYPES&lt;/strong&gt;&lt;br&gt;
-Data types are the classification or categorization of knowledge items. This represents the type useful to be performed for a specific data. &lt;br&gt;
There are 4 data types. This includes:   &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;string - This are alphabetic letters  &lt;code&gt;str('a', 'b', 'c', 'd')&lt;/code&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Boolean(bool) - This are &lt;code&gt;True&lt;/code&gt; or &lt;code&gt;False&lt;/code&gt; statements. They can even be represented using &lt;code&gt;0&lt;/code&gt; to mean &lt;code&gt;False&lt;/code&gt; and &lt;code&gt;1&lt;/code&gt; to mean &lt;code&gt;True&lt;/code&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;3.Float - This are decimal numbers. e.g., &lt;code&gt;0.12&lt;/code&gt; .&lt;/p&gt;

&lt;p&gt;4.Complex - This is a building function in python which is rarely used . &lt;code&gt;Complex number(real number + the imaginary number)&lt;/code&gt; .&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;LOOPS&lt;/strong&gt;&lt;br&gt;
Loop is iterable object such as a list, tuple, set etc.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;CONDITIONS&lt;/strong&gt;&lt;br&gt;
They are statements that are used to show if a statement is true  or not true . e.g., &lt;code&gt;if... else&lt;/code&gt; .&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;STRING OPERATIONS&lt;/strong&gt;&lt;br&gt;
They are special string operators .&lt;br&gt;
   example &lt;br&gt;
&lt;code&gt;*&lt;/code&gt; its used to concatenate multiple copies of the same string .&lt;br&gt;
&lt;code&gt;[]&lt;/code&gt; they give a character of the same index .&lt;br&gt;
&lt;code&gt;[:]&lt;/code&gt; it gives character from a given range .&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;LISTS&lt;/strong&gt;&lt;br&gt;
They are used to store multiple items in a single variable. e.g., &lt;code&gt;grocery = ['kales', 'tomatoes', 'onions']&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;FILE OPERATIONS&lt;/strong&gt;&lt;br&gt;
They are inbuilt functions&lt;br&gt;&lt;br&gt;
e.g.,&lt;br&gt;
 &lt;code&gt;r&lt;/code&gt; used to open a file for reading .&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
