<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/">
    <channel>
        <title>Ousmane Ndiaye's Blog</title>
        <link>https://ornous.vercel.app</link>
        <description>This is my personal feed!</description>
        <lastBuildDate>Sun, 14 Jul 2013 00:00:00 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>awesome</generator>
        <language>en</language>
        <image>
            <title>Ousmane Ndiaye's Blog</title>
            <url>http://example.com/image.png</url>
            <link>https://ornous.vercel.app</link>
        </image>
        <copyright>All rights reserved 2023, Ousmane Ndiaye</copyright>
        <item>
            <title><![CDATA[Open Telemetry: Simplifying Observability]]></title>
            <link>https://ornous.vercel.app/blog/building-resilient-applications-using-open-telemetry</link>
            <guid>https://ornous.vercel.app/blog/building-resilient-applications-using-open-telemetry</guid>
            <pubDate>Wed, 15 Jun 2022 18:04:47 GMT</pubDate>
            <description><![CDATA[Discover how Open Telemetry simplifies observability. Streamline telemetry data collection, analysis, and visualization. Optimize performance and troubleshoot issues with ease.]]></description>
            <content:encoded><![CDATA[<nav class="toc"><ol class="toc-level toc-level-1"></ol></nav><p>In today’s complex technology landscape, observability is crucial for ensuring optimal performance and troubleshooting issues. Open Telemetry is an open-source project that simplifies the collection, analysis, and visualization of telemetry data, making it easier to optimize your applications. In this blog post, we’ll dive into the benefits of Open Telemetry and explore how it streamlines observability to help you achieve your performance goals.</p>]]></content:encoded>
            <enclosure url="https://media.graphassets.com/resize=fit:clip,height:31,width:88/gNHK8oVHQWqnVVOAPLj8" length="0" type="image//resize=fit:clip,height:31,width:88/gNHK8oVHQWqnVVOAPLj8"/>
        </item>
        <item>
            <title><![CDATA[Chaos Engineering: Build Resilient Applications with These Best Practices]]></title>
            <link>https://ornous.vercel.app/blog/chaos-engineering-build-resilient-applications-with-these-best-practices</link>
            <guid>https://ornous.vercel.app/blog/chaos-engineering-build-resilient-applications-with-these-best-practices</guid>
            <pubDate>Wed, 15 Jun 2022 18:06:18 GMT</pubDate>
            <description><![CDATA[Discover the benefits of using Chaos Engineering to build more resilient applications. Learn about best practices and how to implement them in your workflow.]]></description>
            <content:encoded><![CDATA[<nav class="toc"><ol class="toc-level toc-level-1"><li class="toc-item toc-item-h3"><a class="toc-link toc-link-h3" href="#introduction">Introduction</a></li><li class="toc-item toc-item-h3"><a class="toc-link toc-link-h3" href="#understanding-chaos-engineering">Understanding Chaos Engineering</a></li><li class="toc-item toc-item-h3"><a class="toc-link toc-link-h3" href="#implementing-chaos-engineering-in-your-workflow">Implementing Chaos Engineering in your Workflow</a></li><li class="toc-item toc-item-h3"><a class="toc-link toc-link-h3" href="#best-practices-for-building-resilient-applications">Best Practices for Building Resilient Applications</a></li><li class="toc-item toc-item-h3"><a class="toc-link toc-link-h3" href="#conclusion">Conclusion</a></li></ol></nav><h2 id="introduction"><a aria-hidden="true" tabindex="-1" href="#introduction"><span class="sr-only">Read the “Introduction” section</span><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M579.8 267.7c56.5-56.5 56.5-148 0-204.5c-50-50-128.8-56.5-186.3-15.4l-1.6 1.1c-14.4 10.3-17.7 30.3-7.4 44.6s30.3 17.7 44.6 7.4l1.6-1.1c32.1-22.9 76-19.3 103.8 8.6c31.5 31.5 31.5 82.5 0 114L422.3 334.8c-31.5 31.5-82.5 31.5-114 0c-27.9-27.9-31.5-71.8-8.6-103.8l1.1-1.6c10.3-14.4 6.9-34.4-7.4-44.6s-34.4-6.9-44.6 7.4l-1.1 1.6C206.5 251.2 213 330 263 380c56.5 56.5 148 56.5 204.5 0L579.8 267.7zM60.2 244.3c-56.5 56.5-56.5 148 0 204.5c50 50 128.8 56.5 186.3 15.4l1.6-1.1c14.4-10.3 17.7-30.3 7.4-44.6s-30.3-17.7-44.6-7.4l-1.6 1.1c-32.1 22.9-76 19.3-103.8-8.6C74 372 74 321 105.5 289.5L217.7 177.2c31.5-31.5 82.5-31.5 114 0c27.9 27.9 31.5 71.8 8.6 103.9l-1.1 1.6c-10.3 14.4-6.9 34.4 7.4 44.6s34.4 6.9 44.6-7.4l1.1-1.6C433.5 260.8 427 182 377 132c-56.5-56.5-148-56.5-204.5 0L60.2 244.3z"></path></svg></a>Introduction</h2>
<p>Chaos Engineering is a software development practice that helps organizations build more resilient and reliable applications by proactively seeking out and fixing potential issues before they cause significant harm to customers. In today’s fast-paced world, organizations must be able to quickly and effectively respond to outages, failures, and other unexpected events. This is where Chaos Engineering comes in, as it provides a framework for systematically testing and improving the reliability and resilience of systems.</p>
<h2 id="understanding-chaos-engineering"><a aria-hidden="true" tabindex="-1" href="#understanding-chaos-engineering"><span class="sr-only">Read the “Understanding Chaos Engineering” section</span><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M579.8 267.7c56.5-56.5 56.5-148 0-204.5c-50-50-128.8-56.5-186.3-15.4l-1.6 1.1c-14.4 10.3-17.7 30.3-7.4 44.6s30.3 17.7 44.6 7.4l1.6-1.1c32.1-22.9 76-19.3 103.8 8.6c31.5 31.5 31.5 82.5 0 114L422.3 334.8c-31.5 31.5-82.5 31.5-114 0c-27.9-27.9-31.5-71.8-8.6-103.8l1.1-1.6c10.3-14.4 6.9-34.4-7.4-44.6s-34.4-6.9-44.6 7.4l-1.1 1.6C206.5 251.2 213 330 263 380c56.5 56.5 148 56.5 204.5 0L579.8 267.7zM60.2 244.3c-56.5 56.5-56.5 148 0 204.5c50 50 128.8 56.5 186.3 15.4l1.6-1.1c14.4-10.3 17.7-30.3 7.4-44.6s-30.3-17.7-44.6-7.4l-1.6 1.1c-32.1 22.9-76 19.3-103.8-8.6C74 372 74 321 105.5 289.5L217.7 177.2c31.5-31.5 82.5-31.5 114 0c27.9 27.9 31.5 71.8 8.6 103.9l-1.1 1.6c-10.3 14.4-6.9 34.4 7.4 44.6s34.4 6.9 44.6-7.4l1.1-1.6C433.5 260.8 427 182 377 132c-56.5-56.5-148-56.5-204.5 0L60.2 244.3z"></path></svg></a>Understanding Chaos Engineering</h2>
<p>Chaos Engineering involves simulating real-world scenarios and system failures to understand how an application behaves under stress. This approach helps organizations identify and fix potential issues before they become critical problems. By proactively seeking out weaknesses, organizations can improve their overall system reliability and reduce the likelihood of outages, data loss, and other costly incidents.</p>
<h2 id="implementing-chaos-engineering-in-your-workflow"><a aria-hidden="true" tabindex="-1" href="#implementing-chaos-engineering-in-your-workflow"><span class="sr-only">Read the “Implementing Chaos Engineering in your Workflow” section</span><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M579.8 267.7c56.5-56.5 56.5-148 0-204.5c-50-50-128.8-56.5-186.3-15.4l-1.6 1.1c-14.4 10.3-17.7 30.3-7.4 44.6s30.3 17.7 44.6 7.4l1.6-1.1c32.1-22.9 76-19.3 103.8 8.6c31.5 31.5 31.5 82.5 0 114L422.3 334.8c-31.5 31.5-82.5 31.5-114 0c-27.9-27.9-31.5-71.8-8.6-103.8l1.1-1.6c10.3-14.4 6.9-34.4-7.4-44.6s-34.4-6.9-44.6 7.4l-1.1 1.6C206.5 251.2 213 330 263 380c56.5 56.5 148 56.5 204.5 0L579.8 267.7zM60.2 244.3c-56.5 56.5-56.5 148 0 204.5c50 50 128.8 56.5 186.3 15.4l1.6-1.1c14.4-10.3 17.7-30.3 7.4-44.6s-30.3-17.7-44.6-7.4l-1.6 1.1c-32.1 22.9-76 19.3-103.8-8.6C74 372 74 321 105.5 289.5L217.7 177.2c31.5-31.5 82.5-31.5 114 0c27.9 27.9 31.5 71.8 8.6 103.9l-1.1 1.6c-10.3 14.4-6.9 34.4 7.4 44.6s34.4 6.9 44.6-7.4l1.1-1.6C433.5 260.8 427 182 377 132c-56.5-56.5-148-56.5-204.5 0L60.2 244.3z"></path></svg></a>Implementing Chaos Engineering in your Workflow</h2>
<ol>
<li>Preparation: Before you begin, it’s important to understand your application’s architecture and how it handles different types of failures. This will help you identify potential failure points and determine the most effective experiments to run.</li>
<li>Defining Experiments: Once you have a good understanding of your application, it’s time to define your experiments. This involves identifying the specific scenarios you want to test and the metrics you’ll use to evaluate success or failure.</li>
<li>Executing Experiments: Next, you’ll need to run your experiments and observe how your application behaves. This is the most important step in the process, as it allows you to uncover potential weaknesses and areas for improvement.</li>
<li>Analyzing Results: After your experiments have been completed, it’s important to analyze the results and understand what you learned. This will help you identify areas for improvement and make any necessary changes to your systems to ensure they are more resilient.</li>
</ol>
<h2 id="best-practices-for-building-resilient-applications"><a aria-hidden="true" tabindex="-1" href="#best-practices-for-building-resilient-applications"><span class="sr-only">Read the “Best Practices for Building Resilient Applications” section</span><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M579.8 267.7c56.5-56.5 56.5-148 0-204.5c-50-50-128.8-56.5-186.3-15.4l-1.6 1.1c-14.4 10.3-17.7 30.3-7.4 44.6s30.3 17.7 44.6 7.4l1.6-1.1c32.1-22.9 76-19.3 103.8 8.6c31.5 31.5 31.5 82.5 0 114L422.3 334.8c-31.5 31.5-82.5 31.5-114 0c-27.9-27.9-31.5-71.8-8.6-103.8l1.1-1.6c10.3-14.4 6.9-34.4-7.4-44.6s-34.4-6.9-44.6 7.4l-1.1 1.6C206.5 251.2 213 330 263 380c56.5 56.5 148 56.5 204.5 0L579.8 267.7zM60.2 244.3c-56.5 56.5-56.5 148 0 204.5c50 50 128.8 56.5 186.3 15.4l1.6-1.1c14.4-10.3 17.7-30.3 7.4-44.6s-30.3-17.7-44.6-7.4l-1.6 1.1c-32.1 22.9-76 19.3-103.8-8.6C74 372 74 321 105.5 289.5L217.7 177.2c31.5-31.5 82.5-31.5 114 0c27.9 27.9 31.5 71.8 8.6 103.9l-1.1 1.6c-10.3 14.4-6.9 34.4 7.4 44.6s34.4 6.9 44.6-7.4l1.1-1.6C433.5 260.8 427 182 377 132c-56.5-56.5-148-56.5-204.5 0L60.2 244.3z"></path></svg></a>Best Practices for Building Resilient Applications</h2>
<ol>
<li>Continuously Monitor your Applications: Continuously monitoring your applications is critical to ensuring they are always running smoothly. This allows you to quickly detect and respond to any issues, minimizing downtime and reducing the likelihood of data loss.</li>
<li>Embrace Failure as a Learning Opportunity: Embracing failure as a learning opportunity is key to improving your systems over time. By continuously testing and refining your systems, you can ensure they are always performing at their best.</li>
<li>Automate Response to Failures: Automating your response to failures can help you quickly recover from outages and other incidents. This can be achieved by implementing automation scripts that can detect issues and perform corrective actions without the need for manual intervention.</li>
</ol>
<p>Regularly Test and Improve your Systems: Regularly testing and improving your systems is essential to ensure they are always performing at their best. This can involve running regular chaos engineering experiments, continuously monitoring your systems, and making improvements to your architecture and processes as necessary.</p>
<h2 id="conclusion"><a aria-hidden="true" tabindex="-1" href="#conclusion"><span class="sr-only">Read the “Conclusion” section</span><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M579.8 267.7c56.5-56.5 56.5-148 0-204.5c-50-50-128.8-56.5-186.3-15.4l-1.6 1.1c-14.4 10.3-17.7 30.3-7.4 44.6s30.3 17.7 44.6 7.4l1.6-1.1c32.1-22.9 76-19.3 103.8 8.6c31.5 31.5 31.5 82.5 0 114L422.3 334.8c-31.5 31.5-82.5 31.5-114 0c-27.9-27.9-31.5-71.8-8.6-103.8l1.1-1.6c10.3-14.4 6.9-34.4-7.4-44.6s-34.4-6.9-44.6 7.4l-1.1 1.6C206.5 251.2 213 330 263 380c56.5 56.5 148 56.5 204.5 0L579.8 267.7zM60.2 244.3c-56.5 56.5-56.5 148 0 204.5c50 50 128.8 56.5 186.3 15.4l1.6-1.1c14.4-10.3 17.7-30.3 7.4-44.6s-30.3-17.7-44.6-7.4l-1.6 1.1c-32.1 22.9-76 19.3-103.8-8.6C74 372 74 321 105.5 289.5L217.7 177.2c31.5-31.5 82.5-31.5 114 0c27.9 27.9 31.5 71.8 8.6 103.9l-1.1 1.6c-10.3 14.4-6.9 34.4 7.4 44.6s34.4 6.9 44.6-7.4l1.1-1.6C433.5 260.8 427 182 377 132c-56.5-56.5-148-56.5-204.5 0L60.2 244.3z"></path></svg></a>Conclusion</h2>
<p>In conclusion, Chaos Engineering is a valuable tool for building more resilient and reliable applications. By proactively seeking out potential issues and fixing them before they become critical problems, organizations can improve their overall system reliability and reduce the likelihood of outages, data loss, and other costly incidents. By following best practices such as continuously monitoring applications, embracing failure as a learning opportunity, automating response to failures, and regularly testing and improving systems, organizations can ensure their applications are always performing at their best.</p>]]></content:encoded>
            <enclosure url="https://media.graphassets.com/resize=fit:clip,height:31,width:88/lG9ujlSATeWQQ4i2Hj8I" length="0" type="image//resize=fit:clip,height:31,width:88/lG9ujlSATeWQQ4i2Hj8I"/>
        </item>
        <item>
            <title><![CDATA[Estimating work in a Kanban System]]></title>
            <link>https://ornous.vercel.app/blog/estimating-work-in-a-kanban-system</link>
            <guid>https://ornous.vercel.app/blog/estimating-work-in-a-kanban-system</guid>
            <pubDate>Wed, 15 Jun 2022 18:08:30 GMT</pubDate>
            <description><![CDATA[Describe your blog post]]></description>
            <content:encoded><![CDATA[<nav class="toc"><ol class="toc-level toc-level-1"></ol></nav><p>Forecasting work is a key component of any Kanban system. In this article, learn how to accurately predict work delivery and improve workflow efficiency.</p>]]></content:encoded>
            <enclosure url="https://media.graphassets.com/resize=fit:clip,height:31,width:88/ZaokunC4R54ZOHcisHZn" length="0" type="image//resize=fit:clip,height:31,width:88/ZaokunC4R54ZOHcisHZn"/>
        </item>
        <item>
            <title><![CDATA[Implementing the strangler application pattern using change data capture]]></title>
            <link>https://ornous.vercel.app/blog/implementing-the-strangler-application-pattern-using-change-data-capture</link>
            <guid>https://ornous.vercel.app/blog/implementing-the-strangler-application-pattern-using-change-data-capture</guid>
            <pubDate>Wed, 15 Jun 2022 18:13:23 GMT</pubDate>
            <description><![CDATA[Describe your blog post]]></description>
            <content:encoded><![CDATA[<nav class="toc"><ol class="toc-level toc-level-1"></ol></nav><p>Migrating from a monolithic architecture to microservices can be daunting. This article covers key considerations and best practices for a successful transition.</p>
<blockquote>
<p>Gradually create a new system around the edges of the old, letting it grow slowly over several years until the old system is strangled.</p>
</blockquote>
<p>— Martin Fowler</p>
<p>“quote”</p>
<p>&#x3C;></p>]]></content:encoded>
            <enclosure url="https://media.graphassets.com/resize=fit:clip,height:31,width:88/iLQmS4bR0Sye1HanYKGA" length="0" type="image//resize=fit:clip,height:31,width:88/iLQmS4bR0Sye1HanYKGA"/>
        </item>
        <item>
            <title><![CDATA[Using event storming to find bounded contexts]]></title>
            <link>https://ornous.vercel.app/blog/using-event-storming-to-find-bounded-contexts</link>
            <guid>https://ornous.vercel.app/blog/using-event-storming-to-find-bounded-contexts</guid>
            <pubDate>Wed, 15 Jun 2022 18:14:43 GMT</pubDate>
            <description><![CDATA[Describe your blog post]]></description>
            <content:encoded><![CDATA[<nav class="toc"><ol class="toc-level toc-level-1"></ol></nav><p>Event storming is a powerful technique for identifying bounded contexts in domain-driven design. In this article, learn how to use event storming effectively.</p>]]></content:encoded>
            <enclosure url="https://media.graphassets.com/resize=fit:clip,height:31,width:88/kmnmQQwaSHOhLjBQ1oOE" length="0" type="image//resize=fit:clip,height:31,width:88/kmnmQQwaSHOhLjBQ1oOE"/>
        </item>
        <item>
            <title><![CDATA[Dealing with production incidents]]></title>
            <link>https://ornous.vercel.app/blog/dealing-with-production-incidents</link>
            <guid>https://ornous.vercel.app/blog/dealing-with-production-incidents</guid>
            <pubDate>Wed, 15 Jun 2022 18:18:22 GMT</pubDate>
            <description><![CDATA[Describe your blog post]]></description>
            <content:encoded><![CDATA[<nav class="toc"><ol class="toc-level toc-level-1"></ol></nav><p>Production incidents can be stressful and disruptive. In this article, learn best practices for dealing with incidents and minimizing their impact.</p>]]></content:encoded>
            <enclosure url="https://media.graphassets.com/resize=fit:clip,height:31,width:88/7qlXEfhRTdm2d0m0HEHH" length="0" type="image//resize=fit:clip,height:31,width:88/7qlXEfhRTdm2d0m0HEHH"/>
        </item>
        <item>
            <title><![CDATA[Build a great production release system]]></title>
            <link>https://ornous.vercel.app/blog/build-a-great-production-release-system</link>
            <guid>https://ornous.vercel.app/blog/build-a-great-production-release-system</guid>
            <pubDate>Wed, 15 Jun 2022 18:19:07 GMT</pubDate>
            <description><![CDATA[Describe your blog post]]></description>
            <content:encoded><![CDATA[<nav class="toc"><ol class="toc-level toc-level-1"></ol></nav><p>Releasing software into production can be a complex process. Learn how to build a reliable and efficient release system in our latest article.</p>]]></content:encoded>
            <enclosure url="https://media.graphassets.com/resize=fit:clip,height:31,width:88/FMinO8gRKm2ODcvcAN8G" length="0" type="image//resize=fit:clip,height:31,width:88/FMinO8gRKm2ODcvcAN8G"/>
        </item>
        <item>
            <title><![CDATA[Building fast applications driven by performance tests]]></title>
            <link>https://ornous.vercel.app/blog/building-fast-applications-driven-by-performance-tests</link>
            <guid>https://ornous.vercel.app/blog/building-fast-applications-driven-by-performance-tests</guid>
            <pubDate>Wed, 15 Jun 2022 18:21:49 GMT</pubDate>
            <description><![CDATA[Describe your blog post]]></description>
            <content:encoded><![CDATA[<nav class="toc"><ol class="toc-level toc-level-1"></ol></nav><p>Building applications driven by tests can improve quality and speed of development. Learn best practices for test-driven development in our latest article.</p>]]></content:encoded>
            <enclosure url="https://media.graphassets.com/resize=fit:clip,height:31,width:88/OYpzerrnScebJjDsmclD" length="0" type="image//resize=fit:clip,height:31,width:88/OYpzerrnScebJjDsmclD"/>
        </item>
        <item>
            <title><![CDATA[Rest, GraphQL, TRPC, gRPC, Oh My!]]></title>
            <link>https://ornous.vercel.app/blog/rest-graphql-trpc-grpc-oh-my</link>
            <guid>https://ornous.vercel.app/blog/rest-graphql-trpc-grpc-oh-my</guid>
            <pubDate>Wed, 15 Jun 2022 18:22:16 GMT</pubDate>
            <description><![CDATA[Describe your blog post]]></description>
            <content:encoded><![CDATA[<nav class="toc"><ol class="toc-level toc-level-1"></ol></nav><p>Understanding the different types of web application APIs is crucial for modern development. Learn about REST, GraphQL, tRPC, and gRPC in our latest article.</p>
<pre><code class="hljs language-javascript">  <span class="hljs-keyword">const</span> <span class="hljs-title function_">sayHello</span> = (<span class="hljs-params"></span>) => {
    <span class="hljs-variable language_">console</span>.<span class="hljs-title function_">log</span>(<span class="hljs-string">"hello (:"</span>);
  };

  <span class="hljs-title function_">sayHello</span>();
  
</code></pre>]]></content:encoded>
            <enclosure url="https://media.graphassets.com/resize=fit:clip,height:31,width:88/SPBlYpD9SJSnp3WJ8WHu" length="0" type="image//resize=fit:clip,height:31,width:88/SPBlYpD9SJSnp3WJ8WHu"/>
        </item>
        <item>
            <title><![CDATA[My favourite modern CSS features]]></title>
            <link>https://ornous.vercel.app/blog/my-favourite-modern-css-features</link>
            <guid>https://ornous.vercel.app/blog/my-favourite-modern-css-features</guid>
            <pubDate>Wed, 15 Jun 2022 18:22:42 GMT</pubDate>
            <description><![CDATA[Describe your blog post]]></description>
            <content:encoded><![CDATA[<nav class="toc"><ol class="toc-level toc-level-1"></ol></nav><p>Modern CSS features can revolutionize your web design. In this article, I’ll highlight my favorite features, such as CSS Grid and Flexbox, and how to use them effectively.</p>]]></content:encoded>
            <enclosure url="https://media.graphassets.com/resize=fit:clip,height:31,width:88/4aKZ8u9gTwShRRNN5X4M" length="0" type="image//resize=fit:clip,height:31,width:88/4aKZ8u9gTwShRRNN5X4M"/>
        </item>
        <item>
            <title><![CDATA[What is Site Reliability Engineering (SRE)]]></title>
            <link>https://ornous.vercel.app/blog/what-is-site-reliability-engineering-sre</link>
            <guid>https://ornous.vercel.app/blog/what-is-site-reliability-engineering-sre</guid>
            <pubDate>Thu, 16 Jun 2022 13:27:56 GMT</pubDate>
            <description><![CDATA[Describing stuff]]></description>
            <content:encoded><![CDATA[<nav class="toc"><ol class="toc-level toc-level-1"></ol></nav><p>Site Reliability Engineering (SRE) is a discipline that aims to improve the reliability and performance of software systems. Learn more in our latest article.</p>]]></content:encoded>
            <enclosure url="https://media.graphassets.com/resize=fit:clip,height:31,width:88/L0oYfkIBSLO2pbrkpSgO" length="0" type="image//resize=fit:clip,height:31,width:88/L0oYfkIBSLO2pbrkpSgO"/>
        </item>
        <item>
            <title><![CDATA[What is DevOps?]]></title>
            <link>https://ornous.vercel.app/blog/what-is-devops</link>
            <guid>https://ornous.vercel.app/blog/what-is-devops</guid>
            <pubDate>Thu, 16 Jun 2022 13:28:31 GMT</pubDate>
            <description><![CDATA[Describe your blog post]]></description>
            <content:encoded><![CDATA[<nav class="toc"><ol class="toc-level toc-level-1"></ol></nav><p>In the world of software development, DevOps has become an increasingly popular approach. But what exactly is it, and why is it important? In this article, we’ll explore the basics of DevOps, its benefits, and some best practices for implementing it successfully.</p>]]></content:encoded>
            <enclosure url="https://media.graphassets.com/resize=fit:clip,height:31,width:88/Tt2RGzH2ScaaBNgs47kb" length="0" type="image//resize=fit:clip,height:31,width:88/Tt2RGzH2ScaaBNgs47kb"/>
        </item>
        <item>
            <title><![CDATA[Keeping dependencies up-to-date with renovate]]></title>
            <link>https://ornous.vercel.app/blog/keeping-dependencies-up-to-date-with-renovate</link>
            <guid>https://ornous.vercel.app/blog/keeping-dependencies-up-to-date-with-renovate</guid>
            <pubDate>Thu, 26 Jan 2023 00:33:25 GMT</pubDate>
            <description><![CDATA[Automated dependency updates. Multi-platform and multi-language.]]></description>
            <content:encoded><![CDATA[<nav class="toc"><ol class="toc-level toc-level-1"></ol></nav><p>Outdated project dependencies can cause security vulnerabilities and compatibility issues. Learn best practices for keeping dependencies up to date in our article.</p>]]></content:encoded>
            <enclosure url="https://media.graphassets.com/resize=fit:clip,height:31,width:88/30XlORAzTYq51cJOoV0w" length="0" type="image//resize=fit:clip,height:31,width:88/30XlORAzTYq51cJOoV0w"/>
        </item>
        <item>
            <title><![CDATA[Learning Languages for Busy People]]></title>
            <link>https://ornous.vercel.app/blog/learning-languages</link>
            <guid>https://ornous.vercel.app/blog/learning-languages</guid>
            <pubDate>Tue, 07 Mar 2023 07:24:51 GMT</pubDate>
            <description><![CDATA[Learning Languages lead]]></description>
            <content:encoded><![CDATA[<nav class="toc"><ol class="toc-level toc-level-1"><li class="toc-item toc-item-h3"><a class="toc-link toc-link-h3" href="#my-journey-to-loving-languages-">My journey to loving languages 💙</a></li><li class="toc-item toc-item-h3"><a class="toc-link toc-link-h3" href="#forming-the-habit">Forming the Habit</a></li><li class="toc-item toc-item-h3"><a class="toc-link toc-link-h3" href="#comprehensible-input">Comprehensible Input</a></li><li class="toc-item toc-item-h3"><a class="toc-link toc-link-h3" href="#meaningful-and-familiar-content">Meaningful and Familiar Content</a></li><li class="toc-item toc-item-h3"><a class="toc-link toc-link-h3" href="#spaced-repetition">Spaced Repetition</a></li><li class="toc-item toc-item-h3"><a class="toc-link toc-link-h3" href="#the-lietner-system">The Lietner System</a></li><li class="toc-item toc-item-h3"><a class="toc-link toc-link-h3" href="#motivation">Motivation</a></li></ol></nav><p>I live in London and it is astounding how many people tell me about wanting to learn languages but not being able to because, somehow, it is too late. Presumably, because they are too old or don’t have the time to spare?</p>
<p>I don’t have time either so I thought I’d share some tips about how I approach this.</p>
<h2 id="my-journey-to-loving-languages-"><a aria-hidden="true" tabindex="-1" href="#my-journey-to-loving-languages-"><span class="sr-only">Read the “My journey to loving languages 💙” section</span><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M579.8 267.7c56.5-56.5 56.5-148 0-204.5c-50-50-128.8-56.5-186.3-15.4l-1.6 1.1c-14.4 10.3-17.7 30.3-7.4 44.6s30.3 17.7 44.6 7.4l1.6-1.1c32.1-22.9 76-19.3 103.8 8.6c31.5 31.5 31.5 82.5 0 114L422.3 334.8c-31.5 31.5-82.5 31.5-114 0c-27.9-27.9-31.5-71.8-8.6-103.8l1.1-1.6c10.3-14.4 6.9-34.4-7.4-44.6s-34.4-6.9-44.6 7.4l-1.1 1.6C206.5 251.2 213 330 263 380c56.5 56.5 148 56.5 204.5 0L579.8 267.7zM60.2 244.3c-56.5 56.5-56.5 148 0 204.5c50 50 128.8 56.5 186.3 15.4l1.6-1.1c14.4-10.3 17.7-30.3 7.4-44.6s-30.3-17.7-44.6-7.4l-1.6 1.1c-32.1 22.9-76 19.3-103.8-8.6C74 372 74 321 105.5 289.5L217.7 177.2c31.5-31.5 82.5-31.5 114 0c27.9 27.9 31.5 71.8 8.6 103.9l-1.1 1.6c-10.3 14.4-6.9 34.4 7.4 44.6s34.4 6.9 44.6-7.4l1.1-1.6C433.5 260.8 427 182 377 132c-56.5-56.5-148-56.5-204.5 0L60.2 244.3z"></path></svg></a>My journey to loving languages 💙</h2>
<p>My family lives in France and hails from Sénégal and we are descendants of the Fulani, a nomadic herding people with Peul as its lingua franca. This meant growing up with two cultures and languages, speaking Peul at home and French pretty much everywhere else.</p>
<p>When I was 23, I made a leap and moved to London with the aim to learn English, which I have been doing since.</p>
<p>This has greatly influenced the way I approach language acquisition, specifically, as an adult.</p>
<p>I think of it as a journey, with its ups and downs and I think of it as an integral part of how I experience the world rather than a separate time slot set aside for study.</p>
<h2 id="forming-the-habit"><a aria-hidden="true" tabindex="-1" href="#forming-the-habit"><span class="sr-only">Read the “Forming the Habit” section</span><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M579.8 267.7c56.5-56.5 56.5-148 0-204.5c-50-50-128.8-56.5-186.3-15.4l-1.6 1.1c-14.4 10.3-17.7 30.3-7.4 44.6s30.3 17.7 44.6 7.4l1.6-1.1c32.1-22.9 76-19.3 103.8 8.6c31.5 31.5 31.5 82.5 0 114L422.3 334.8c-31.5 31.5-82.5 31.5-114 0c-27.9-27.9-31.5-71.8-8.6-103.8l1.1-1.6c10.3-14.4 6.9-34.4-7.4-44.6s-34.4-6.9-44.6 7.4l-1.1 1.6C206.5 251.2 213 330 263 380c56.5 56.5 148 56.5 204.5 0L579.8 267.7zM60.2 244.3c-56.5 56.5-56.5 148 0 204.5c50 50 128.8 56.5 186.3 15.4l1.6-1.1c14.4-10.3 17.7-30.3 7.4-44.6s-30.3-17.7-44.6-7.4l-1.6 1.1c-32.1 22.9-76 19.3-103.8-8.6C74 372 74 321 105.5 289.5L217.7 177.2c31.5-31.5 82.5-31.5 114 0c27.9 27.9 31.5 71.8 8.6 103.9l-1.1 1.6c-10.3 14.4-6.9 34.4 7.4 44.6s34.4 6.9 44.6-7.4l1.1-1.6C433.5 260.8 427 182 377 132c-56.5-56.5-148-56.5-204.5 0L60.2 244.3z"></path></svg></a>Forming the Habit</h2>
<p>I’ve failed at getting into the habit several times and noticed that I would get into the same pattern every time. I would be super motivated and start at a grandiose, unsustainable, pace spending hours a day studying and practicing only to fall off a few days/weeks later when life got busier and that initial burst of motivation started fading. Getting back into it also felt super difficult since it entailed putting in so much time.</p>
<p>I now spend the first month creating the habit of studying 5 minutes a day, every day, and no longer.</p>
<p>At this pace, it would probably take me a couple of decades to achieve my goals yet every session would leave me wanting more. I am also usually impressed with how much I’ve improved by that point, which only serves to bolster up my motivation and stifles any kind of doubt I initially had about my ability to learn.</p>
<p>Once that first month has passed, I am okay with missing the odd session here and there, going longer, and whatnot. The habit is there and going back to it isn’t as much of an issue anymore.</p>
<h2 id="comprehensible-input"><a aria-hidden="true" tabindex="-1" href="#comprehensible-input"><span class="sr-only">Read the “Comprehensible Input” section</span><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M579.8 267.7c56.5-56.5 56.5-148 0-204.5c-50-50-128.8-56.5-186.3-15.4l-1.6 1.1c-14.4 10.3-17.7 30.3-7.4 44.6s30.3 17.7 44.6 7.4l1.6-1.1c32.1-22.9 76-19.3 103.8 8.6c31.5 31.5 31.5 82.5 0 114L422.3 334.8c-31.5 31.5-82.5 31.5-114 0c-27.9-27.9-31.5-71.8-8.6-103.8l1.1-1.6c10.3-14.4 6.9-34.4-7.4-44.6s-34.4-6.9-44.6 7.4l-1.1 1.6C206.5 251.2 213 330 263 380c56.5 56.5 148 56.5 204.5 0L579.8 267.7zM60.2 244.3c-56.5 56.5-56.5 148 0 204.5c50 50 128.8 56.5 186.3 15.4l1.6-1.1c14.4-10.3 17.7-30.3 7.4-44.6s-30.3-17.7-44.6-7.4l-1.6 1.1c-32.1 22.9-76 19.3-103.8-8.6C74 372 74 321 105.5 289.5L217.7 177.2c31.5-31.5 82.5-31.5 114 0c27.9 27.9 31.5 71.8 8.6 103.9l-1.1 1.6c-10.3 14.4-6.9 34.4 7.4 44.6s34.4 6.9 44.6-7.4l1.1-1.6C433.5 260.8 427 182 377 132c-56.5-56.5-148-56.5-204.5 0L60.2 244.3z"></path></svg></a>Comprehensible Input</h2>
<p>I’ve tried grammar and vocabulary-focused learning and didn’t find it effective.</p>
<p>What works for me is exposure to compelling content. (When I started learning English, I watched Scrubs and The IT Crowd and read Harry Potter books.)</p>
<p>The less you understand that piece of content, the more potential there is for learning. On the flip side, it is much more difficult to stay focused and actually understand what’s going on, which is not fun or effective.</p>
<p>Your mileage may vary but the sweet spot for me is about 65% comprehension (including any subtitles).</p>
<p>I take note of words that hinder my comprehension for spaced repetition and move on.</p>
<p>To begin with, for languages that use an alphabet I understand, I use subtitles in the target language, otherwise, I’ll just pick French or English. Once my comprehension is high enough without subtitles, I drop them. It’s a fun milestone and I learn much faster once I’ve done this.</p>
<p>To begin with, your understanding might be close to 0% though.</p>
<p>What I do here is pick something very small and get through it as many times as it takes to fully understand.</p>
<p>With Italian, I started with the golden rule of reciprocity “Non fare agli altri quello que non vorresti fosse fato a te”.</p>
<p>Picking a subject that I am very familiar with also takes a lot of pressure off of aural comprehension.</p>
<h2 id="meaningful-and-familiar-content"><a aria-hidden="true" tabindex="-1" href="#meaningful-and-familiar-content"><span class="sr-only">Read the “Meaningful and Familiar Content” section</span><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M579.8 267.7c56.5-56.5 56.5-148 0-204.5c-50-50-128.8-56.5-186.3-15.4l-1.6 1.1c-14.4 10.3-17.7 30.3-7.4 44.6s30.3 17.7 44.6 7.4l1.6-1.1c32.1-22.9 76-19.3 103.8 8.6c31.5 31.5 31.5 82.5 0 114L422.3 334.8c-31.5 31.5-82.5 31.5-114 0c-27.9-27.9-31.5-71.8-8.6-103.8l1.1-1.6c10.3-14.4 6.9-34.4-7.4-44.6s-34.4-6.9-44.6 7.4l-1.1 1.6C206.5 251.2 213 330 263 380c56.5 56.5 148 56.5 204.5 0L579.8 267.7zM60.2 244.3c-56.5 56.5-56.5 148 0 204.5c50 50 128.8 56.5 186.3 15.4l1.6-1.1c14.4-10.3 17.7-30.3 7.4-44.6s-30.3-17.7-44.6-7.4l-1.6 1.1c-32.1 22.9-76 19.3-103.8-8.6C74 372 74 321 105.5 289.5L217.7 177.2c31.5-31.5 82.5-31.5 114 0c27.9 27.9 31.5 71.8 8.6 103.9l-1.1 1.6c-10.3 14.4-6.9 34.4 7.4 44.6s34.4 6.9 44.6-7.4l1.1-1.6C433.5 260.8 427 182 377 132c-56.5-56.5-148-56.5-204.5 0L60.2 244.3z"></path></svg></a>Meaningful and Familiar Content</h2>
<p>This is the integration bit and probably why vocab and grammar binging don’t work for me. Learning how to say that I am buying plane tickets or that you cannot camp somewhere isn’t really meaningful or familiar to me. Sure, there are benefits to learning to say those things but I’m unlikely to remember that as it’s not really engaging.</p>
<p>My favourite thing to do is to bring those languages to my passions. I love reading, cooking, baking, and playing music. Watching a lesson on how to play Asturias (Leyenda) in Spanish, or how to make pasta in Italian is much more likely to keep me engaged and help me remember the language. It also happens to be information that I wouldn’t have been able to get from the horse’s proverbial mouth without my commitment to learning that language and that is incredibly rewarding.</p>
<p>It also means that I do not need to spend extra time on language learning because I am integrating it into my hobbies.</p>
<h2 id="spaced-repetition"><a aria-hidden="true" tabindex="-1" href="#spaced-repetition"><span class="sr-only">Read the “Spaced Repetition” section</span><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M579.8 267.7c56.5-56.5 56.5-148 0-204.5c-50-50-128.8-56.5-186.3-15.4l-1.6 1.1c-14.4 10.3-17.7 30.3-7.4 44.6s30.3 17.7 44.6 7.4l1.6-1.1c32.1-22.9 76-19.3 103.8 8.6c31.5 31.5 31.5 82.5 0 114L422.3 334.8c-31.5 31.5-82.5 31.5-114 0c-27.9-27.9-31.5-71.8-8.6-103.8l1.1-1.6c10.3-14.4 6.9-34.4-7.4-44.6s-34.4-6.9-44.6 7.4l-1.1 1.6C206.5 251.2 213 330 263 380c56.5 56.5 148 56.5 204.5 0L579.8 267.7zM60.2 244.3c-56.5 56.5-56.5 148 0 204.5c50 50 128.8 56.5 186.3 15.4l1.6-1.1c14.4-10.3 17.7-30.3 7.4-44.6s-30.3-17.7-44.6-7.4l-1.6 1.1c-32.1 22.9-76 19.3-103.8-8.6C74 372 74 321 105.5 289.5L217.7 177.2c31.5-31.5 82.5-31.5 114 0c27.9 27.9 31.5 71.8 8.6 103.9l-1.1 1.6c-10.3 14.4-6.9 34.4 7.4 44.6s34.4 6.9 44.6-7.4l1.1-1.6C433.5 260.8 427 182 377 132c-56.5-56.5-148-56.5-204.5 0L60.2 244.3z"></path></svg></a>Spaced Repetition</h2>
<p>Although I do not focus on vocabulary, I do want to commit some words to longer-term memory and I find spaced repetition to be a great low-cost way to do this.</p>
<p>Rather than cram through a list of words out of context, I pick words from the content that I consume and make flashcards out of them.</p>
<p>If you haven’t heard of it, the principle is based on the spacing effect: in order to learn, you must first forget (which sounds like something Mr. Myagi would say). The way I understand it, it would be extremely costly for us to just remember everything we are exposed to. Forgetting and re-encoding a piece of information signals the brain that we need to remember this longer term. Also, there’s only so much new information that we can process in a day, and trying to push beyond our limits leads to poorer retention rates.</p>
<p>Below is the Lietner System. You study items on the leftmost box every day and review less and less frequently as you move right.
<img src="https://media.graphassets.com/DDYxpEtYSaKFONK99qIz" alt="leitner_system_alternative.svg.png"></p>
<h2 id="the-lietner-system"><a aria-hidden="true" tabindex="-1" href="#the-lietner-system"><span class="sr-only">Read the “The Lietner System” section</span><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M579.8 267.7c56.5-56.5 56.5-148 0-204.5c-50-50-128.8-56.5-186.3-15.4l-1.6 1.1c-14.4 10.3-17.7 30.3-7.4 44.6s30.3 17.7 44.6 7.4l1.6-1.1c32.1-22.9 76-19.3 103.8 8.6c31.5 31.5 31.5 82.5 0 114L422.3 334.8c-31.5 31.5-82.5 31.5-114 0c-27.9-27.9-31.5-71.8-8.6-103.8l1.1-1.6c10.3-14.4 6.9-34.4-7.4-44.6s-34.4-6.9-44.6 7.4l-1.1 1.6C206.5 251.2 213 330 263 380c56.5 56.5 148 56.5 204.5 0L579.8 267.7zM60.2 244.3c-56.5 56.5-56.5 148 0 204.5c50 50 128.8 56.5 186.3 15.4l1.6-1.1c14.4-10.3 17.7-30.3 7.4-44.6s-30.3-17.7-44.6-7.4l-1.6 1.1c-32.1 22.9-76 19.3-103.8-8.6C74 372 74 321 105.5 289.5L217.7 177.2c31.5-31.5 82.5-31.5 114 0c27.9 27.9 31.5 71.8 8.6 103.9l-1.1 1.6c-10.3 14.4-6.9 34.4 7.4 44.6s34.4 6.9 44.6-7.4l1.1-1.6C433.5 260.8 427 182 377 132c-56.5-56.5-148-56.5-204.5 0L60.2 244.3z"></path></svg></a>The Lietner System</h2>
<p>The process essentially shows you what you get wrong often and what you know less and less frequently.</p>
<p>I’ve been using Anki for this (although I am currently building my own).</p>
<h2 id="motivation"><a aria-hidden="true" tabindex="-1" href="#motivation"><span class="sr-only">Read the “Motivation” section</span><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M579.8 267.7c56.5-56.5 56.5-148 0-204.5c-50-50-128.8-56.5-186.3-15.4l-1.6 1.1c-14.4 10.3-17.7 30.3-7.4 44.6s30.3 17.7 44.6 7.4l1.6-1.1c32.1-22.9 76-19.3 103.8 8.6c31.5 31.5 31.5 82.5 0 114L422.3 334.8c-31.5 31.5-82.5 31.5-114 0c-27.9-27.9-31.5-71.8-8.6-103.8l1.1-1.6c10.3-14.4 6.9-34.4-7.4-44.6s-34.4-6.9-44.6 7.4l-1.1 1.6C206.5 251.2 213 330 263 380c56.5 56.5 148 56.5 204.5 0L579.8 267.7zM60.2 244.3c-56.5 56.5-56.5 148 0 204.5c50 50 128.8 56.5 186.3 15.4l1.6-1.1c14.4-10.3 17.7-30.3 7.4-44.6s-30.3-17.7-44.6-7.4l-1.6 1.1c-32.1 22.9-76 19.3-103.8-8.6C74 372 74 321 105.5 289.5L217.7 177.2c31.5-31.5 82.5-31.5 114 0c27.9 27.9 31.5 71.8 8.6 103.9l-1.1 1.6c-10.3 14.4-6.9 34.4 7.4 44.6s34.4 6.9 44.6-7.4l1.1-1.6C433.5 260.8 427 182 377 132c-56.5-56.5-148-56.5-204.5 0L60.2 244.3z"></path></svg></a>Motivation</h2>
<p>I’d like to end on a note about motivation. I believe in language learning as a life-altering journey.</p>
<p>Regardless of your age and even if you only have 5 minutes a day to spare, I believe that anyone can learn languages. Sure, it’ll take more effort than when you picked up your mother tongue but it’s never too late.</p>
<p>Thanks for sticking with me.</p>
<p>I picked up Arabic and Vietnamese this year and hope to start learning some form of sign language.</p>
<p>What languages are/will you be learning next? Let me know in the comments!</p>]]></content:encoded>
            <enclosure url="https://media.graphassets.com/resize=fit:clip,height:31,width:88/Vt7sixBQEKhJypP7VcqA" length="0" type="image//resize=fit:clip,height:31,width:88/Vt7sixBQEKhJypP7VcqA"/>
        </item>
        <item>
            <title><![CDATA[Why Accessibility Matters: The Importance of Building Websites That Everyone Can Use]]></title>
            <link>https://ornous.vercel.app/blog/why-accessibility-matters-the-importance-of-building-websites-that-everyone-can-use</link>
            <guid>https://ornous.vercel.app/blog/why-accessibility-matters-the-importance-of-building-websites-that-everyone-can-use</guid>
            <pubDate>Mon, 13 Mar 2023 11:57:51 GMT</pubDate>
            <description><![CDATA[In this article, we explore why website accessibility is important and how to make your site more inclusive for all users. Create a better web experience.]]></description>
            <content:encoded><![CDATA[<nav class="toc"><ol class="toc-level toc-level-1"></ol></nav><p>Ensuring website accessibility is crucial for creating an inclusive online experience. Learn why it matters and how to make your site more accessible.</p>]]></content:encoded>
            <enclosure url="https://media.graphassets.com/resize=fit:clip,height:31,width:88/GKxdpLr4SAm5ztxCOElv" length="0" type="image//resize=fit:clip,height:31,width:88/GKxdpLr4SAm5ztxCOElv"/>
        </item>
        <item>
            <title><![CDATA[Responsive Design in 2023: Best Practices for Building Websites That Look Great on Any Device]]></title>
            <link>https://ornous.vercel.app/blog/responsive-design-in-2023-best-practices</link>
            <guid>https://ornous.vercel.app/blog/responsive-design-in-2023-best-practices</guid>
            <pubDate>Mon, 13 Mar 2023 12:11:14 GMT</pubDate>
            <description><![CDATA[Creating a website that looks great on any device is essential in 2023. Discover the best practices and modern tools for building responsive web designs in our latest article.]]></description>
            <content:encoded><![CDATA[<nav class="toc"><ol class="toc-level toc-level-1"></ol></nav><p>Creating a website that looks great on any device is essential in 2023. Discover the best practices and modern tools for building responsive web designs in our latest article.</p>]]></content:encoded>
            <enclosure url="https://media.graphassets.com/resize=fit:clip,height:31,width:88/B8cyLIuuT8aKbZBTTjdU" length="0" type="image//resize=fit:clip,height:31,width:88/B8cyLIuuT8aKbZBTTjdU"/>
        </item>
        <item>
            <title><![CDATA[The Theory of Constraints: A Practical Guide]]></title>
            <link>https://ornous.vercel.app/blog/the-theory-of-constraints-a-practical-guide</link>
            <guid>https://ornous.vercel.app/blog/the-theory-of-constraints-a-practical-guide</guid>
            <pubDate>Mon, 13 Mar 2023 13:09:50 GMT</pubDate>
            <description><![CDATA[Are you looking to optimize your workflow and improve business performance? Dive into the Theory of Constraints, a powerful methodology for identifying and eliminating bottlenecks.]]></description>
            <content:encoded><![CDATA[<nav class="toc"><ol class="toc-level toc-level-1"></ol></nav><p>Are you looking to optimize your workflow and improve business performance? Dive into the Theory of Constraints, a powerful methodology for identifying and eliminating bottlenecks.</p>]]></content:encoded>
            <enclosure url="https://media.graphassets.com/resize=fit:clip,height:31,width:88/cK2HxtdSMObTcfuveNMH" length="0" type="image//resize=fit:clip,height:31,width:88/cK2HxtdSMObTcfuveNMH"/>
        </item>
    </channel>
</rss>