<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:cc="http://cyber.law.harvard.edu/rss/creativeCommonsRssModule.html">
    <channel>
        <title><![CDATA[Stories by Amish Shabani on Medium]]></title>
        <description><![CDATA[Stories by Amish Shabani on Medium]]></description>
        <link>https://medium.com/@outofindex?source=rss-f1da03756b6b------2</link>
        <image>
            <url>https://cdn-images-1.medium.com/fit/c/150/150/1*QfCZDRor90sIM8ojCkLdXg.jpeg</url>
            <title>Stories by Amish Shabani on Medium</title>
            <link>https://medium.com/@outofindex?source=rss-f1da03756b6b------2</link>
        </image>
        <generator>Medium</generator>
        <lastBuildDate>Thu, 09 Apr 2026 10:22:09 GMT</lastBuildDate>
        <atom:link href="https://medium.com/@outofindex/feed" rel="self" type="application/rss+xml"/>
        <webMaster><![CDATA[yourfriends@medium.com]]></webMaster>
        <atom:link href="http://medium.superfeedr.com" rel="hub"/>
        <item>
            <title><![CDATA[What is wrong with this screen (mobile interview question)]]></title>
            <link>https://outofindex.medium.com/what-is-wrong-with-this-screen-interview-question-45ccaf331803?source=rss-f1da03756b6b------2</link>
            <guid isPermaLink="false">https://medium.com/p/45ccaf331803</guid>
            <category><![CDATA[security]]></category>
            <category><![CDATA[android-app-development]]></category>
            <category><![CDATA[react-native-development]]></category>
            <category><![CDATA[ios-app-development]]></category>
            <category><![CDATA[mobile-app-development]]></category>
            <dc:creator><![CDATA[Amish Shabani]]></dc:creator>
            <pubDate>Fri, 29 Mar 2024 20:36:00 GMT</pubDate>
            <atom:updated>2024-03-29T20:37:58.215Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/940/1*D3GlcVNTWe3rSSVUQ85gHA.png" /></figure><p>Before I start this post I am super excited to share my first YouTube video on <a href="https://www.youtube.com/@beyondCodingWithAmish">Beyond Coding With Amish</a>! 🚀 Inspired by my experiences at <a href="https://www.linkedin.com/company/digikala/">Digikala.com</a> Ladder, I’ve launched this channel to delve into essential skills for success. From mastering both soft and technical skills, career growth strategies, fostering effective teamwork, and navigating project management &amp; engineering management tips, we’re in for an enriching journey! 💼🌱 Let’s learn and grow together!</p><p>Lately, I’ve had the opportunity to interview candidates for React Native roles, and I’ve been delving into various categories of questions. One crucial area I always touch upon is security. This question isn’t restricted to any specific field; it applies across the board, whether it’s frontend or backend, iOS, Android, Xamarin, or React Native. It’s essential to gauge a candidate’s understanding and approach to security, no matter the platform or technology stack.</p><p>Alright, let’s focus on this screen. You’ve got two inputs and a submit button to send your data. Once you’ve filled in the inputs and hit submit, the server responds with a message: “Your password is incorrect.”</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/241/1*ALLUNl3z6UxyVUQQ5Ooq8Q.png" /></figure><p>What’s the security issue here? Nearly 70% of candidates struggled to identify it initially. Even after guidance, only 10% could pinpoint it correctly. The rest were stumped.</p><p>The problem lies in the server’s response, which inadvertently reveals too much information. By stating “Your password is wrong,” it confirms to potential attackers that they’ve entered a valid email but failed with the password. This provides a clear advantage to attackers, as they can now focus solely on guessing the password without worrying about the validity of the email.</p><p>To address this vulnerability, the server’s response should be more generic, indicating that either the email or password is incorrect, without specifying which one. This adds an extra layer of security by not giving attackers any confirmation about the validity of the email they entered.</p><p>As a front-end or mobile developer, it’s essential to be aware of such security vulnerabilities and collaborate closely with back-end developers or security experts to ensure that these issues are resolved promptly. Ensuring app security is a shared responsibility, and understanding security issues is crucial for maintaining the integrity of your app.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=45ccaf331803" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Efficient CI/CD with Shared Configurations in GitLab]]></title>
            <link>https://outofindex.medium.com/efficient-ci-cd-with-shared-configurations-in-gitlab-0b0e28712892?source=rss-f1da03756b6b------2</link>
            <guid isPermaLink="false">https://medium.com/p/0b0e28712892</guid>
            <category><![CDATA[continuous-delivery]]></category>
            <category><![CDATA[gitlab]]></category>
            <category><![CDATA[gitlab-ci]]></category>
            <category><![CDATA[continuous-integration]]></category>
            <category><![CDATA[ci-cd-pipeline]]></category>
            <dc:creator><![CDATA[Amish Shabani]]></dc:creator>
            <pubDate>Sun, 21 Jan 2024 14:37:24 GMT</pubDate>
            <atom:updated>2024-01-21T14:37:24.978Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*AYK8LVZNwn4lfxUn25Jrow.png" /></figure><p>In the realm of Continuous Integration and Continuous Deployment (CI/CD), maintaining consistency across multiple projects can be challenging. GitLab CI offers a powerful feature called <strong>“Shared CI Configurations”,</strong> enabling teams to streamline their CI/CD workflows and foster code reuse.</p><p>In this blog post, we’ll explore how to leverage shared CI configurations to enhance efficiency and maintain a standardized approach across projects.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*O6yE4hUsc-lBTtPzQH3vbA.png" /></figure><h3>Understanding Shared CI Configurations:</h3><p>GitLab’s Shared CI Configurations allow teams to define CI/CD configurations in a separate repository and then include these configurations in other projects. This approach promotes code reuse, reduces duplication, and ensures a uniform CI/CD setup across different repositories.</p><h3>Use Case: Reusable CI Configurations for Mini-Apps</h3><p>Consider a scenario where a development team is managing several mini-apps or modules within a larger project. Each mini-app shares common CI/CD steps, such as building, testing, and deploying. Instead of duplicating these configurations in each mini-app, the team can centralize the CI/CD setup in a shared configuration repository.</p><h3>Getting Started:</h3><p><strong>Create a Shared CI Configurations Repository</strong>: Start by creating a new repository specifically for storing shared CI configurations. This repository will house the .gitlab-ci.yml file and any scripts or configurations that multiple projects can reuse.</p><p><strong>Define Shared CI Configurations</strong>: Craft the CI/CD configurations in the shared repository according to the needs of your projects. Consider defining stages, jobs, and environment variables that are commonly used across projects.</p><pre># .gitlab-ci.yml in Shared CI Configurations Repository<br><br>stages:<br>  - build<br>  - test<br><br>build_job:<br>  stage: build<br>  script:<br>    - echo &quot;Building the application...&quot;<br><br>test_job:<br>  stage: test<br>  script:<br>    - echo &quot;Running tests...&quot;</pre><p><strong>Include Shared Configurations in Projects</strong>:</p><p>In each mini-app or module repository, include the shared configurations using the include directive in the project&#39;s .gitlab-ci.yml file.</p><pre># .gitlab-ci.yml in Mini-App Repository<br><br>include:<br>  - project: &#39;your-group/shared-ci-configurations&#39;<br>    file: &#39;/path/to/.gitlab-ci.yml&#39;<br>    ref: main</pre><h3>Advantages of Shared CI Configurations:</h3><ol><li><strong>Consistency Across Projects</strong>: Shared CI configurations ensure that all mini-apps within the project follow the same CI/CD process. This consistency is crucial for a unified development and deployment experience.</li><li><strong>Ease of Maintenance</strong>: Updates or improvements to the CI/CD pipeline can be made in a single location — the shared configurations repository — making maintenance more straightforward.</li><li><strong>Code Reusability:</strong> Reusing CI configurations reduces redundancy and minimizes the effort needed to set up CI/CD for each mini-app. This is especially beneficial in projects with many modules.</li></ol><h3>Conclusion:</h3><p>Shared CI Configurations in GitLab CI offer a powerful solution for maintaining a cohesive CI/CD strategy across multiple projects. By centralizing configurations, teams can enhance consistency, reduce duplication, and optimize their development workflows. As teams continue to embrace CI/CD best practices, the use of shared configurations becomes a valuable asset in their toolset.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=0b0e28712892" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Skip CI in the next push commit]]></title>
            <link>https://outofindex.medium.com/skip-ci-in-the-next-push-commit-04201b6ea154?source=rss-f1da03756b6b------2</link>
            <guid isPermaLink="false">https://medium.com/p/04201b6ea154</guid>
            <category><![CDATA[gitlab]]></category>
            <category><![CDATA[devops]]></category>
            <category><![CDATA[cicd]]></category>
            <category><![CDATA[gitlab-ci]]></category>
            <dc:creator><![CDATA[Amish Shabani]]></dc:creator>
            <pubDate>Thu, 28 Dec 2023 09:18:29 GMT</pubDate>
            <atom:updated>2023-12-28T09:18:29.933Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*gwLq__RPhgDq_byValhKPg.png" /></figure><p>The automation of software development processes has significantly evolved through CI/CD (Continuous Integration / Continuous Delivery) pipelines. GitLab CI is one of the platforms that offer this feature, allowing developers to automatically trigger pipelines on every commit. However, sometimes you want to prevent running your CI. You have different reasons, like:</p><ol><li>You are in the middle of feat/fix, and no need to run ci</li><li>Your commit only includes fixing a typo, changing a word at docs, or …</li><li>You are testing a feature that does not need a ci</li><li>…</li></ol><p>This list can continue. But one thing is clear Don&#39;t run the ci. <br>In Gitlab ci, you can prevent running ci easily. There are 2 methods for that:</p><p>A. <strong>Custom Tag at Your message</strong><br>Put <strong>[Skip ci] </strong>or <strong>[ci Skip]</strong> in your commit message.</p><pre><br>git commit -m “Your fancy message [skip ci]” or git commit -m “Your fancy message [ci skip]</pre><p>B. <strong>Using Git push options</strong><br>In this scenario, you can skip ci execution for a specific commit push</p><pre>git push origin &lt;branch&gt; --push-option=ci.skip or git push -o ci.skip </pre><p>At Method B, you can do a lot of cool things. I recommend reading its <a href="https://docs.gitlab.com/ee/user/project/push_options.html">documentation</a>.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=04201b6ea154" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[React Native interview questions]]></title>
            <link>https://outofindex.medium.com/react-native-interview-questions-1cf5258d3760?source=rss-f1da03756b6b------2</link>
            <guid isPermaLink="false">https://medium.com/p/1cf5258d3760</guid>
            <category><![CDATA[react]]></category>
            <category><![CDATA[react-native]]></category>
            <category><![CDATA[javascript]]></category>
            <category><![CDATA[interview-questions]]></category>
            <category><![CDATA[interview]]></category>
            <dc:creator><![CDATA[Amish Shabani]]></dc:creator>
            <pubDate>Tue, 07 Nov 2023 09:03:57 GMT</pubDate>
            <atom:updated>2023-11-07T09:03:57.957Z</atom:updated>
            <content:encoded><![CDATA[<p>Hey guys, hope you are doing well.</p><p>Recently, I had some React Native interviews. In this post, I want to share some questions that they ask me. <strong>Pay Attention: I don’t answer them, google it, please!</strong></p><h3>Soft Skills</h3><ol><li>What is the most challenging task you have had?<br>Why this question is important? Because the interviewer wants to measure the scale of your projects. So answer carefully, please!</li><li>How do you improve your knowledge?</li><li>Do you can work under pressure? Tell me some examples.</li><li>How do you manage conflicts at work?</li><li>What are your strong/weak points? What are your plans for improving them?</li></ol><h3>Javascript</h3><ol><li>What is the event loop?</li><li>What is <em>this keyword? </em>how about Context?</li><li>Do you know Callstack?</li><li>Differences between var, let, const?<br>It is an easy question! But it shows you know</li><li>How about Hoist Up?</li><li>How does inheritance work on JS?</li><li>What are the differences between React and React Native?</li><li>What are the differences between Js and TS?</li><li>How does React work under the hood? How about React Native?</li><li>Could you please describe React Native architecture? The old and new ones.</li><li>What is Flux? Describe it.</li><li>What other state managements do you use?</li><li>Describe your project’s architecture.</li><li>What is Closure? Stale Closure?</li></ol><p><strong>This post will be updated regularly.</strong></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=1cf5258d3760" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[What is TDZ in Javacript engine?]]></title>
            <link>https://outofindex.medium.com/what-is-tdz-in-javacript-engine-e8b1a61c3482?source=rss-f1da03756b6b------2</link>
            <guid isPermaLink="false">https://medium.com/p/e8b1a61c3482</guid>
            <category><![CDATA[tdz]]></category>
            <category><![CDATA[temporal-dead-zone]]></category>
            <category><![CDATA[javascript]]></category>
            <dc:creator><![CDATA[Amish Shabani]]></dc:creator>
            <pubDate>Sat, 02 Sep 2023 13:56:59 GMT</pubDate>
            <atom:updated>2023-09-02T13:56:59.247Z</atom:updated>
            <content:encoded><![CDATA[<p><strong>TDZ </strong>stands for “<strong>Temporal Dead Zone</strong>” in JavaScript. It refers to the period of time in which a variable exists but cannot be accessed or referenced before it is declared with the let or const keywords.</p><p>In JavaScript, variables declared with let and const are hoisted to the top of their respective scopes, but they are not initialized immediately. Instead, they enter the TDZ until their declarations are reached during the execution of the code.</p><p>During the TDZ, if you try to access or reference a variable, a ReferenceError will be thrown. This is because the variable exists in the scope but has not been assigned any value yet.</p><p>For example:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/847/1*Q6QXej3xCH-2btspwYXfiA.png" /></figure><p>In this example, trying to access myVariable before its declaration will result in a ReferenceError due to the TDZ. Once the variable is declared, it can be accessed normally.</p><p>The TDZ is a mechanism in JavaScript that helps catch potential errors caused by accessing variables before they are declared and assigned a value. It promotes good coding practices and prevents accidental variable usage before initialization.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=e8b1a61c3482" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Fortify Your React App: 10 Expert Strategies to Bolster Security]]></title>
            <link>https://outofindex.medium.com/fortify-your-react-app-10-expert-strategies-to-bolster-security-8efb90011db3?source=rss-f1da03756b6b------2</link>
            <guid isPermaLink="false">https://medium.com/p/8efb90011db3</guid>
            <category><![CDATA[security]]></category>
            <category><![CDATA[react]]></category>
            <category><![CDATA[web-development]]></category>
            <dc:creator><![CDATA[Amish Shabani]]></dc:creator>
            <pubDate>Tue, 25 Jul 2023 06:19:34 GMT</pubDate>
            <atom:updated>2023-07-25T06:19:34.946Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*qqkXfMhn3E54SGVdzsNgJA.jpeg" /></figure><p>There are several ways to handle security in a React app. Here are some best practices:</p><p>1. <strong>Secure API calls</strong>: Use HTTPS for all API calls to ensure data encryption during transit. Avoid making API calls from the client-side directly, as it exposes sensitive information and can be manipulated by attackers. Instead, set up a server-side proxy or use serverless functions to make the API calls securely.</p><p>2. <strong>Input Validation</strong>: Always validate and sanitize user input on both the client-side and server-side to prevent potential security vulnerabilities like cross-site scripting (XSS) attacks. Use libraries like React Hook Form or Formik for client-side validation and implement server-side validation as an additional layer of security.</p><p>3. <strong>Authentication and Authorization</strong>: Implement a robust authentication and authorization mechanism to control access to protected resources. Use industry-standard protocols like <strong>OAuth</strong> or <strong>JWT</strong> (JSON Web Tokens) for authentication, and implement role-based access control (RBAC) to authorize users based on their roles or permissions.</p><p>4. <strong>Password Storage</strong>: Never store passwords in plain text. Instead, use a secure password hashing algorithm like <strong>bcrypt </strong>to store passwords securely. Additionally, consider implementing features like password strength requirements and account lockouts after multiple failed login attempts.</p><p>5. <strong>Cross-Site Scripting (XSS) Prevention</strong>: React provides built-in protection against XSS attacks by default through its use of JSX syntax and automatic escaping of user input. However, it’s still important to be cautious when rendering user-generated content and properly sanitize and validate any dynamic content before rendering it in the UI.</p><p>6. <strong>Cross-Site Request Forgery (CSRF) Protection</strong>: Implement CSRF protection techniques like using anti-CSRF tokens and ensuring that requests made to your server are coming from your own domain. Libraries like <strong>csrf </strong>or <strong>csurf </strong>can help with implementing CSRF protection in your React app.</p><p>7. <strong>Secure storage of Sensitive Data</strong>: Avoid storing sensitive information like API keys, secret keys, or database credentials directly in your React app’s source code. Instead, use environment variables or configuration files to store and access such sensitive data securely.</p><p>8. <strong>Regularly Update Dependencies</strong>: Keep all dependencies used in your React app up to date to ensure you have the latest security patches and bug fixes. Regularly review and update your project dependencies to avoid using outdated or vulnerable libraries.</p><p>9. <strong>Security Testing</strong>: Perform regular security testing, including vulnerability assessments and penetration testing, to identify and address any potential security vulnerabilities in your React app. Tools like OWASP ZAP, SonarQube, or Snyk can help in identifying security issues.</p><p>10. <strong>Educate Developers</strong>: Ensure that all developers working on the React app are aware of secure coding practices and best practices for handling security-related tasks. Regularly conduct training sessions or workshops to keep the team updated on the latest security practices.</p><p>Remember, security is an ongoing process, and it’s important to stay updated with the latest security practices and vulnerabilities to keep your React app secure.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=8efb90011db3" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[How To Improve Web Development Knowledge]]></title>
            <link>https://outofindex.medium.com/how-to-improve-web-development-knowledge-785c9cc6bfdf?source=rss-f1da03756b6b------2</link>
            <guid isPermaLink="false">https://medium.com/p/785c9cc6bfdf</guid>
            <category><![CDATA[css]]></category>
            <category><![CDATA[react]]></category>
            <category><![CDATA[react-native]]></category>
            <category><![CDATA[html]]></category>
            <dc:creator><![CDATA[Amish Shabani]]></dc:creator>
            <pubDate>Mon, 10 Apr 2023 13:42:34 GMT</pubDate>
            <atom:updated>2023-04-11T10:02:27.156Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/760/1*b_4Q8vMV6xVCYAEOLITsvw.jpeg" /><figcaption>image source: <a href="https://www.callcentrehelper.com/">https://www.callcentrehelper.com/</a></figcaption></figure><p>Hi guys :) How are you today? Did you learn a new thing today?</p><p>Everyone needs a mentor. I am trying to improve my web development knowledge. It includes HTML, CSS, JavaScript, TypeScript, React, and so on.</p><p>To achieve this goal I follow some great developers and coaches on LinkedIn, Youtube, Newsletters, and Blogs. Here I want to share with these guys.</p><h3><strong>Linkedin</strong></h3><ol><li><a href="https://www.linkedin.com/company/this-week-in-react/">ThisWeekInReact.com</a><br>I follow this page because of sharing React/React Native news.</li><li><a href="https://www.linkedin.com/in/mathew-dony/">Mathew Dony</a></li><li><a href="https://www.linkedin.com/in/sayehghaderi/">Sayeh Ghaderi</a><br>Sayeh shares posts about JavaScript.</li><li><a href="https://www.linkedin.com/in/adrian-%F0%9F%9F%A3-b-b52348181/">Adrian 🟣 Bogdan</a><br>He is React Developer and shares good posts about React and Next.</li><li><a href="https://www.linkedin.com/in/addyosmani/">Addy Osmany</a><br>Addy works at Google. I follow him because he posts nice articles about management, becoming a leader, and so on …</li><li><a href="https://www.linkedin.com/in/askharley/">Harley Ferguson</a><br>He teaches developers how to accelerate their careers.</li><li><a href="https://www.linkedin.com/in/murat-ozcan-3489898/">Murat Ozcan</a><br>Are you interested in Test and Cypress? Great! Follow him.</li></ol><h3><strong>Youtube</strong></h3><ol><li><a href="https://www.youtube.com/@OnlineTutorialsYT">Online Tutorials</a><br>If you want to learn HTML and CSS, this is a good option.</li><li><a href="https://www.youtube.com/@WebDevSimplified">Web Dev Simplified</a><br>is one of the most famous channels on Youtube to learn CSS and React.</li><li><a href="https://www.youtube.com/@KevinPowell">Kevin Powell</a><br>He is CSS King.</li></ol><h3><strong>Newsletters</strong></h3><ol><li><a href="https://css-weekly.com/">CSS Weekly</a></li><li>Your best source of web <a href="https://perf.email/">performance news</a>. Every two weeks.</li></ol><p>There are other great developers that share their knowledge. This is my list. If you want to follow me on Linkedin please click <a href="https://www.linkedin.com/in/schabaani/">here</a>.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=785c9cc6bfdf" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[What is the page render lifecycle?]]></title>
            <link>https://outofindex.medium.com/what-is-the-page-render-lifecycle-8d25d9640a64?source=rss-f1da03756b6b------2</link>
            <guid isPermaLink="false">https://medium.com/p/8d25d9640a64</guid>
            <category><![CDATA[web-vitals]]></category>
            <category><![CDATA[web-performance]]></category>
            <dc:creator><![CDATA[Amish Shabani]]></dc:creator>
            <pubDate>Fri, 03 Mar 2023 09:37:30 GMT</pubDate>
            <atom:updated>2023-03-03T09:37:30.490Z</atom:updated>
            <content:encoded><![CDATA[<p>If you search about how to improve your website’s performance, you will find some keywords like page lifecycle, FP, DOM, CSSOM, and so on.</p><p>The goal for this week was to re-learn about browser lifecycle and to boost performance by gaining a better understanding of page rendering.</p><p>I found some great articles that describe a lot of things.</p><p>1. <a href="https://stackoverflow.com/questions/44044956/how-does-browser-page-lifecycle-sequence-work">How does the browser page lifecycle sequence work?</a></p><p>2. <a href="https://developer.mozilla.org/en-US/docs/Web/Performance/How_browsers_work">Populating the page: how browsers work</a></p><p>3. <a href="https://blog.logrocket.com/how-browser-rendering-works-behind-scenes/">How browser rendering works — behind the scenes</a></p><p>4. <a href="https://developer.chrome.com/blog/page-lifecycle-api/">Page Lifecycle API</a></p><p>5. <a href="https://dzone.com/articles/browser-life-cycle">Browser Life Cycle</a></p><p>Hope to enjoy reading them and improving your knowledge.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=8d25d9640a64" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Happy Links: Feb 2023 — Mysteries in React]]></title>
            <link>https://outofindex.medium.com/happy-links-feb-2023-mysteries-in-react-c1959b009a0?source=rss-f1da03756b6b------2</link>
            <guid isPermaLink="false">https://medium.com/p/c1959b009a0</guid>
            <category><![CDATA[react-native]]></category>
            <category><![CDATA[ssl-certificate]]></category>
            <category><![CDATA[react]]></category>
            <dc:creator><![CDATA[Amish Shabani]]></dc:creator>
            <pubDate>Thu, 23 Feb 2023 07:47:13 GMT</pubDate>
            <atom:updated>2023-02-23T07:55:20.051Z</atom:updated>
            <content:encoded><![CDATA[<h3>Happy Links: Feb 2023 — Mysteries in React</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/680/1*k-UaBLALhCldVSP0hxtIKg.jpeg" /><figcaption>image from <a href="https://nybookeditors.com/2016/12/write-convincing-mystery/">https://nybookeditors.com/2016/12/write-convincing-mystery/</a></figcaption></figure><ol><li>React components composition: <a href="https://www.developerway.com/posts/components-composition-how-to-get-it-right">how to get it right</a></li><li>The <a href="https://www.developerway.com/posts/react-elements-children-parents">mystery of React</a> Element, children, parents, and re-renders. It is a very important article. It shows some great mysteries.</li><li>React component as prop: <a href="//www.developerway.com/posts/react-component-as-prop-the-right-way">the right way</a></li><li><a href="//www.developerway.com/posts/react-re-renders-guide">React re-renders guide</a></li><li>React launched a new doc. It is much better than the old one. Sebastian Carlos in a post describes <a href="https://sebastiancarlos.com/react-js-best-practices-from-the-new-docs-1c65570e785d">React JS Best Practices From The New Docs</a>.</li><li>Is your React Native application protected against sensitive data theft? Do <a href="https://www.callstack.com/blog/ssl-pinning-in-react-native-apps">SSL Pinning</a> today.</li></ol><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=c1959b009a0" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[What is z-index in css]]></title>
            <link>https://outofindex.medium.com/what-is-z-index-in-css-1254abcd4d3a?source=rss-f1da03756b6b------2</link>
            <guid isPermaLink="false">https://medium.com/p/1254abcd4d3a</guid>
            <category><![CDATA[react]]></category>
            <category><![CDATA[z-index]]></category>
            <category><![CDATA[css]]></category>
            <dc:creator><![CDATA[Amish Shabani]]></dc:creator>
            <pubDate>Thu, 16 Feb 2023 09:51:04 GMT</pubDate>
            <atom:updated>2023-02-16T09:51:57.518Z</atom:updated>
            <content:encoded><![CDATA[<h3>What is z-index in CSS</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/780/1*EhOCuR9Vt48oQuI52CpStA.png" /></figure><p>Hi guys! Long time no see. After a long time, I am here again. I hope you are well. Let’s jump to today’s post.</p><p>CSS is too tricky. You must know what is under the hood of properties to solve complex layouts or bugs.</p><p>One of these weird properties is the <strong>z-index.</strong></p><p>You use z-index when you want a certain DOM element to be on top of another. Sounds simple, right?</p><p>But in stylesheets we see:</p><blockquote>z-index: 9999999<br>z-index: 9999999999999</blockquote><p>The reason is we do not have enough knowledge about its mechanism. The secret is behind stacking context. But what is stacking context?</p><p>One important thing before diving into the deep is to remember that z-index values are not global.</p><p>I found 3 great articles that explain z-index and stacking context.</p><p><a href="https://www.freecodecamp.org/news/z-index-property-and-stacking-order-css/">https://www.freecodecamp.org/news/z-index-property-and-stacking-order-css/</a><br><a href="https://www.joshwcomeau.com/css/stacking-contexts/">https://www.joshwcomeau.com/css/stacking-contexts/</a><br><a href="https://web.dev/learn/css/z-index/">https://web.dev/learn/css/z-index/</a></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=1254abcd4d3a" width="1" height="1" alt="">]]></content:encoded>
        </item>
    </channel>
</rss>