<?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: Kenzy Limon</title>
    <description>The latest articles on DEV Community by Kenzy Limon (@itskenzylimon).</description>
    <link>https://dev.to/itskenzylimon</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%2F926951%2F477c7eb4-0096-4580-9295-1e10cfcc7caa.png</url>
      <title>DEV Community: Kenzy Limon</title>
      <link>https://dev.to/itskenzylimon</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/itskenzylimon"/>
    <language>en</language>
    <item>
      <title>Low code is undoubtedly the future of innovating faster and better software.</title>
      <dc:creator>Kenzy Limon</dc:creator>
      <pubDate>Thu, 05 Oct 2023 20:36:02 +0000</pubDate>
      <link>https://dev.to/itskenzylimon/low-code-is-undoubtedly-the-future-of-innovating-faster-and-better-software-38gm</link>
      <guid>https://dev.to/itskenzylimon/low-code-is-undoubtedly-the-future-of-innovating-faster-and-better-software-38gm</guid>
      <description>&lt;p&gt;If you're into tech or software development, you might have heard of the term Low-Code, for some, you might have a not-so-good opinion of it, and I understand where you’re coming from, just bear with me on this one.&lt;/p&gt;

&lt;p&gt;So what is this thing called Low-Code: Well its a software development technique that enables IT developers to build applications with minimal coding. &lt;/p&gt;

&lt;p&gt;it's able to understand both developers and product owners by allowing non-technical users {business/designers} and developers to apply their skill sets, collaborate, and co-develop solutions.&lt;/p&gt;

&lt;p&gt;Though some developers see it as a short-term solution to building long-lasting software, there are Low-Code Platforms that have proven to offer long-lasting solutions with some having full code generation.&lt;/p&gt;

&lt;p&gt;Gartner predicts that most enterprises will adopt Low-Code solutions in software development. As of 2023, the market revenue is at $26.9 billion from $7.8 billion in 2018. &lt;/p&gt;

&lt;p&gt;To conclude: Whether developers like it or not, we don't really have a better solution at the moment, in a world where ideas and innovation are at their highest, the demand for building fast reliable software is needed now more than ever, we need to adapt and adapt really fast from the traditional ways of scaffolding every project from scratch.&lt;/p&gt;

</description>
      <category>future</category>
      <category>softwaredevelopment</category>
      <category>lowcode</category>
      <category>development</category>
    </item>
    <item>
      <title>Meet Fiber: Super Fast Golang Framework Part 2</title>
      <dc:creator>Kenzy Limon</dc:creator>
      <pubDate>Wed, 10 May 2023 09:27:04 +0000</pubDate>
      <link>https://dev.to/itskenzylimon/meet-fiber-super-fast-golang-framework-part-2-335b</link>
      <guid>https://dev.to/itskenzylimon/meet-fiber-super-fast-golang-framework-part-2-335b</guid>
      <description>&lt;p&gt;There are a lot of &lt;strong&gt;Go frameworks&lt;/strong&gt; out there, and choosing the best one that can &lt;strong&gt;scale&lt;/strong&gt;, has &lt;strong&gt;consistent performance&lt;/strong&gt;, and has &lt;strong&gt;rich features&lt;/strong&gt; to build and maintain a project &lt;strong&gt;through its production stages&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Factors to consider when choosing the right Golang framework should be :&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Complexity&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Go language by itself is made to be powerful and simple, when you’re picking a framework look for the one that does not go against the nature of Go language. &lt;a href="https://gofiber.io/" rel="noopener noreferrer"&gt;Fiber framework&lt;/a&gt; is made in such a way that any &lt;a href="https://expressjs.com" rel="noopener noreferrer"&gt;express js&lt;/a&gt; developer will find it similar, it does this while giving Golangs great &lt;em&gt;performance and features&lt;/em&gt;.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Community&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;As with any new framework. Fiber framework has a new small growing community compared to other Golang frameworks. it has &lt;a href="https://github.com/gofiber/fiber" rel="noopener noreferrer"&gt;26.2k GitHub stars&lt;/a&gt; at the time of writing.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Documentation &amp;amp; Resources&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;There are things developers really appreciate the most, and that is nicely done documentation. documentation that is well covered, organized, and examples included, and if a nice UX/UI is added that’s a plus too 🤩.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5o5bfxr18m250r8164st.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5o5bfxr18m250r8164st.gif" alt="Im happy to know that" width="427" height="427"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Fiber framework has &lt;strong&gt;nice documentation&lt;/strong&gt; that lives you happy while learning. It makes debugging and learning an easy process. You can join the Fiber Discord community to share, engage and gain more insight into the framework.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>go</category>
      <category>development</category>
      <category>coding</category>
      <category>performance</category>
    </item>
    <item>
      <title>Meet Fiber: Super Fast Golang Framework Part 1</title>
      <dc:creator>Kenzy Limon</dc:creator>
      <pubDate>Tue, 09 May 2023 22:29:52 +0000</pubDate>
      <link>https://dev.to/itskenzylimon/meet-fiber-super-fast-golang-framework-part-1-4pa6</link>
      <guid>https://dev.to/itskenzylimon/meet-fiber-super-fast-golang-framework-part-1-4pa6</guid>
      <description>&lt;h2&gt;
  
  
  Fiber
&lt;/h2&gt;

&lt;p&gt;Designed to ease things up for &lt;strong&gt;fast development&lt;/strong&gt; with &lt;strong&gt;zero memory allocation&lt;/strong&gt; and &lt;strong&gt;performance&lt;/strong&gt; in mind.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://gofiber.io/" rel="noopener noreferrer"&gt;Fiber Framework&lt;/a&gt; is built to make Go web development feel like NodeJS Express architecture.&lt;/p&gt;

&lt;p&gt;This great framework is built on top of &lt;a href="https://github.com/valyala/fasthttp" rel="noopener noreferrer"&gt;Fasthttp&lt;/a&gt;, the fastest HTTP engine for &lt;a href="https://go.dev/doc/" rel="noopener noreferrer"&gt;Go&lt;/a&gt;. As seen below, the fiber framework outperformed other well-known frameworks in a &lt;a href="https://www.techempower.com/benchmarks/#section=data-r21&amp;amp;test=composite" rel="noopener noreferrer"&gt;Web Framework Benchmark round 21&lt;/a&gt;, which measured the performance of several web application platforms, full-stack frameworks, and micro-frameworks (collectively, “frameworks”).&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fiber at 22&lt;/li&gt;
&lt;li&gt;NodeJs at 81&lt;/li&gt;
&lt;li&gt;Phoenix at 113&lt;/li&gt;
&lt;li&gt;Express at 116&lt;/li&gt;
&lt;li&gt;Laravel at 130&lt;/li&gt;
&lt;li&gt;Django at 137&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For more information, read the &lt;a href="https://www.techempower.com/benchmarks/#section=intro" rel="noopener noreferrer"&gt;introduction&lt;/a&gt;, &lt;a href="https://www.techempower.com/benchmarks/#section=motivation" rel="noopener noreferrer"&gt;motivation&lt;/a&gt;, and l&lt;a href="https://www.techempower.com/benchmarks/#section=environment" rel="noopener noreferrer"&gt;atest environment details&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>go</category>
      <category>frameworks</category>
      <category>webdev</category>
      <category>programming</category>
    </item>
    <item>
      <title>several cases where companies have lost control of their domain names</title>
      <dc:creator>Kenzy Limon</dc:creator>
      <pubDate>Sat, 07 Jan 2023 10:49:49 +0000</pubDate>
      <link>https://dev.to/itskenzylimon/several-cases-where-companies-have-lost-control-of-their-domain-names-4mia</link>
      <guid>https://dev.to/itskenzylimon/several-cases-where-companies-have-lost-control-of-their-domain-names-4mia</guid>
      <description>&lt;p&gt;There have been several cases where companies have lost control of their domain names due to a variety of reasons. See some of the top trending companies' case studies that have led to this Article:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;&lt;em&gt;Case 1 in 2013:&lt;/em&gt;&lt;/strong&gt; Regions Online Bank forgot to pay their domain renewal bill. Customers couldn’t log in to regions.com accounts, prompting a wave of concern 🤯.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;&lt;em&gt;Case 2 in 2015:&lt;/em&gt;&lt;/strong&gt; Google amost sold google.com for $12. former Googler was checking out Google Domains when he saw that google.com was for sale. the ownership didn’t last long, though. Google Domains canceled the order because they controlled both the domain and registry service 🤔.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;&lt;em&gt;Case 3 in 2018:&lt;/em&gt;&lt;/strong&gt; The Avengers forgot to register their game out domain-name &lt;code&gt;endgame&lt;/code&gt;, By the time endgame trailer was being released, fans were being directed to the “Once Upon a Deadpool” site instead, creating exactly the kind of chaos that Deadpool thrives on. The solution was latter found after &lt;code&gt;@GuyInChair&lt;/code&gt;, a &lt;em&gt;Twitter&lt;/em&gt; user who offered to trade the domain for Endgame premiere tickets 🤩.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;These cases demonstrate the importance of properly managing and renewing domain names to avoid losing control of them and that if ignored it can affect all most every industry.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;It is important for companies to keep track of the expiration dates of their domain registrations and to renew them in a timely manner to avoid such incidents.&lt;/p&gt;

</description>
      <category>domain</category>
      <category>casestudy</category>
      <category>tech</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Create a Bare Minimum Chrome Extension App (Taskan)</title>
      <dc:creator>Kenzy Limon</dc:creator>
      <pubDate>Fri, 06 Jan 2023 00:48:51 +0000</pubDate>
      <link>https://dev.to/itskenzylimon/create-a-bare-minimum-chrome-extension-app-taskan-2n59</link>
      <guid>https://dev.to/itskenzylimon/create-a-bare-minimum-chrome-extension-app-taskan-2n59</guid>
      <description>&lt;p&gt;There is a chance an extension might be a viable solution to that native code integration limitation your having on your web platform.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxuv7a4uzi84tuo3q6wsl.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxuv7a4uzi84tuo3q6wsl.jpg" alt="Easily create a Bare Minimum Chrome Extension App (Taskan)" width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  All about Chrome Extension
&lt;/h3&gt;

&lt;p&gt;Chrome Extensions are software programs, built on web technologies (such as &lt;code&gt;HTML&lt;/code&gt;, &lt;code&gt;JavaScript&lt;/code&gt;, &lt;code&gt;CSS&lt;/code&gt;, and some resource Assets) that enable users to customize the Chrome browsing experience.&lt;/p&gt;

&lt;h2&gt;
  
  
  Some benefits of Chrome Extensions 🎅🏾
&lt;/h2&gt;

&lt;p&gt;Chrome Extensions have the advantage of benefiting from JavaScript APIs that the browser provides. Their access to Chrome APIs makes them more potent than a web app. The following are just a few examples of what extensions can do:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Change the functionality or behavior of a website.&lt;/li&gt;
&lt;li&gt;Allow users to collect and organize information across websites.&lt;/li&gt;
&lt;li&gt;Add features to Chrome DevTools.&lt;/li&gt;
&lt;li&gt;Change website design (layout, style, and appearance of websites).&lt;/li&gt;
&lt;li&gt;Some have the ability to block or filter Ads.&lt;/li&gt;
&lt;li&gt;Enhance Security.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What are Chrome Extension files.? 🤔
&lt;/h2&gt;

&lt;p&gt;When building a chrome extension there are a few things and guidelines you need to take into thought before you start development.&lt;/p&gt;

&lt;p&gt;Chrome Extensions contain different files, depending on the functionality provided. The following are some of the most frequently used files:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxkl82x4f867dqqygc1nc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxkl82x4f867dqqygc1nc.png" alt="Chrome extension folder" width="752" height="198"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Manifest file:&lt;/strong&gt; This file should be named strictly as manifest.json and has to be located in the root directory. This file is also responsible for recording important metadata, defining resources, and permission declarations, and indicating which files to run in the background.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Service worker:&lt;/strong&gt; This file handles and listens for browser events. There are many events, such as navigating to a new page, removing a bookmark, or closing a tab. It can use all the Chrome APIs.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Content scripts:&lt;/strong&gt; This file executes Javascript in the context of a web page. They can also read and modify the DOM of the pages they're injected into. Content Scripts can only use a subset of the Chrome APIs but can indirectly access the rest by exchanging messages with the extension service worker.&lt;/p&gt;

&lt;h3&gt;
  
  
  Let's start the development
&lt;/h3&gt;

&lt;p&gt;The Tech Stack of this project was based on a number of factors that lead to Flutter as the preferred framework.&lt;/p&gt;

&lt;h2&gt;
  
  
  Quick Introduction to Flutter 📽️
&lt;/h2&gt;

&lt;p&gt;Flutter is a simple and high-performance multiplatform framework based on Dart language, which provides high performance with a native look and feel. you can find a brief introduction to flutter, an easy computer setup guide, and some of its features that make it the ninja of all platforms right below this Dot.&lt;/p&gt;

&lt;p&gt;Flutter is a cross-platform UI toolkit designed to allow code reusing across multiple platforms such as iOS, Android, Web, and Desktop.&lt;/p&gt;

&lt;h2&gt;
  
  
  Lets get Technical 🕹️
&lt;/h2&gt;

&lt;p&gt;We will start by creating a new Flutter project&lt;br&gt;
using the flutter create command. use your preferred cli and input the following commands.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;flutter create taskan

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;The &lt;code&gt;main.dart&lt;/code&gt; file is the one we will be focusing on, that's where our logic and view will be.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9udm8vxiptz8cmk503z4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9udm8vxiptz8cmk503z4.png" alt="Flutter project folder" width="762" height="760"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Don't get worried when folder structures don't match, just make sure you have the necessary ones ( lib, web, and pubspec.yaml ) and the rest we won't be needing in our coverage.&lt;/p&gt;

&lt;p&gt;Your &lt;code&gt;lib/main.dart&lt;/code&gt; should look like this:&lt;/p&gt;


&lt;div class="ltag_gist-liquid-tag"&gt;
  
&lt;/div&gt;



&lt;p&gt;Part 2 Coming next...&lt;/p&gt;

&lt;p&gt;Follow us as we get to cover and learn interesting topic about api / websocket with race conditions, distributed systems, machine learning and ai development.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>chromeextension</category>
      <category>flutter</category>
      <category>javascript</category>
    </item>
    <item>
      <title>A bit about Go Programing language</title>
      <dc:creator>Kenzy Limon</dc:creator>
      <pubDate>Mon, 12 Dec 2022 08:41:02 +0000</pubDate>
      <link>https://dev.to/itskenzylimon/a-bit-about-go-programing-language-1ng3</link>
      <guid>https://dev.to/itskenzylimon/a-bit-about-go-programing-language-1ng3</guid>
      <description>&lt;p&gt;&lt;a href="https://go.dev" rel="noopener noreferrer"&gt;Golang&lt;/a&gt; is an open source programming language developed by Google engineers to allow developers to build fast, reliable, and efficient software at scale with memory safety, garbage collection, structural typing and CSP-style concurrency.&lt;/p&gt;

&lt;h2&gt;
  
  
  Features in Golang
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Easy to learn and get started with&lt;/li&gt;
&lt;li&gt;Built-in strong concurrency and a robust standard library&lt;/li&gt;
&lt;li&gt;High productivity &amp;amp; simplified usage&lt;/li&gt;
&lt;li&gt;Outstanding level of code efficiency ( Concise and Clear )&lt;/li&gt;
&lt;li&gt;No need for external dependency, Go can easily produce native binaries&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Companies using it
&lt;/h2&gt;

&lt;p&gt;Golang has been tried and tested with its distinct advantages, it has been the best choice for world-class products and industry giants.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Google&lt;/li&gt;
&lt;li&gt;PayPal&lt;/li&gt;
&lt;li&gt;Netflix&lt;/li&gt;
&lt;li&gt;Twitter&lt;/li&gt;
&lt;li&gt;Uber&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Frameworks
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://gin-gonic.com/" rel="noopener noreferrer"&gt;Gin&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://beego.vip/" rel="noopener noreferrer"&gt;Beego&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.iris-go.com/" rel="noopener noreferrer"&gt;Iris&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://echo.labstack.com/" rel="noopener noreferrer"&gt;Echo&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.gofiber.io/" rel="noopener noreferrer"&gt;Fiber&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Ideal Stack Setup
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Gin :- Golang MVC Framework&lt;/li&gt;
&lt;li&gt;Tailwind CSS :- UI framework that allows CSS inside HTML&lt;/li&gt;
&lt;li&gt;Alpine JS :- Tiny Javascript for client macro interactions&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Comunity Support
&lt;/h2&gt;

&lt;p&gt;Golang application development with swiftness, easy grasping, highly accessible development tools, fully stable &amp;amp; concurrent and above all, awesome Go community support.&lt;/p&gt;

&lt;p&gt;Originally posted from &lt;a href="https://medium.com/@itskenzylimon/why-choose-golang-over-elixir-in-backend-development-71ed82a2571c" rel="noopener noreferrer"&gt;Why Choose Golang over Elixir in backend development&lt;/a&gt;&lt;/p&gt;

</description>
      <category>go</category>
      <category>programming</category>
      <category>backend</category>
    </item>
    <item>
      <title>How to Practice Root Cause Analysis in tech problems</title>
      <dc:creator>Kenzy Limon</dc:creator>
      <pubDate>Thu, 01 Dec 2022 08:08:57 +0000</pubDate>
      <link>https://dev.to/itskenzylimon/how-to-practice-root-cause-analysis-in-tech-problems-2o0g</link>
      <guid>https://dev.to/itskenzylimon/how-to-practice-root-cause-analysis-in-tech-problems-2o0g</guid>
      <description>&lt;p&gt;&lt;strong&gt;RCA&lt;/strong&gt; is a collective term used to &lt;strong&gt;describe a wide range of approaches, tools, and techniques to uncover causes/events that happened&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Root Cause Analysis&lt;/strong&gt; is a process of determining &lt;strong&gt;the underlying reasons for an event&lt;/strong&gt; so that &lt;strong&gt;the most effective solutions can be observed or implemented&lt;/strong&gt; towards an &lt;em&gt;organization’s&lt;/em&gt; strategy for &lt;strong&gt;continuous improvement efforts&lt;/strong&gt;.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt; : This process generally &lt;strong&gt;serves as an input to a remediation process&lt;/strong&gt; whereby corrective actions need to be taken to prevent the problem from reoccurring again or when &lt;strong&gt;something works effectively and how to replicate it across all processes&lt;/strong&gt;.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Common Techniques
&lt;/h2&gt;

&lt;p&gt;These tools allow for analysis to be branched in order to provide multiple root causes.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;a)&lt;/strong&gt; &lt;strong&gt;Cause and Effect Analysis&lt;/strong&gt; (also known as &lt;strong&gt;Fishbone Diagrams&lt;/strong&gt;)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;b)&lt;/strong&gt; &lt;strong&gt;5 Whys&lt;/strong&gt; (also known as &lt;strong&gt;5Y&lt;/strong&gt;)&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  How Root Cause Analysis is Applied
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;RCA&lt;/strong&gt; It is widely used in IT operations, &lt;em&gt;telecommunications&lt;/em&gt;, &lt;em&gt;market research&lt;/em&gt;, &lt;em&gt;industrial process control&lt;/em&gt;, &lt;em&gt;accident analysis&lt;/em&gt; (e.g., in &lt;em&gt;aviation&lt;/em&gt;, or &lt;em&gt;nuclear plants&lt;/em&gt;), &lt;em&gt;medicine&lt;/em&gt; (for medical diagnosis), &lt;em&gt;healthcare industry&lt;/em&gt; (e.g., for epidemiology), etc.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;RCA&lt;/strong&gt; offers &lt;strong&gt;strategic&lt;/strong&gt;, &lt;strong&gt;simple&lt;/strong&gt;, &lt;strong&gt;effective ways&lt;/strong&gt; for uncovering the &lt;strong&gt;root of a problem&lt;/strong&gt;. You can use it in &lt;strong&gt;troubleshooting&lt;/strong&gt;, &lt;strong&gt;problem-solving&lt;/strong&gt;, and &lt;strong&gt;quality-improvement initiatives&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Want to keep in touch online? &lt;a href="https://medium.com/@itskenzylimon" rel="noopener noreferrer"&gt;Medium&lt;/a&gt; | &lt;a href="https://twitter.com/ItsKenzyLimon" rel="noopener noreferrer"&gt;Twitter&lt;/a&gt; | &lt;a href="https://www.instagram.com/itskenzylimon" rel="noopener noreferrer"&gt;Instagram&lt;/a&gt;&lt;/p&gt;

</description>
      <category>management</category>
      <category>documentation</category>
      <category>tasks</category>
      <category>productivity</category>
    </item>
    <item>
      <title>Getting Started on Elixir and Ecto Part 7</title>
      <dc:creator>Kenzy Limon</dc:creator>
      <pubDate>Wed, 16 Nov 2022 21:30:18 +0000</pubDate>
      <link>https://dev.to/itskenzylimon/getting-started-on-elixir-and-ecto-part-7-38pg</link>
      <guid>https://dev.to/itskenzylimon/getting-started-on-elixir-and-ecto-part-7-38pg</guid>
      <description>&lt;h2&gt;
  
  
  Deleting Data
&lt;/h2&gt;

&lt;p&gt;Similar to &lt;a href="https://dev.to/itskenzylimon/getting-started-on-elixir-and-ecto-part-6-64k"&gt;updating&lt;/a&gt;, we must first fetch a record from the database and then call &lt;code&gt;Taskers.Repo.delete&lt;/code&gt; to delete that record:&lt;/p&gt;


&lt;div class="ltag_gist-liquid-tag"&gt;
  
&lt;/div&gt;


&lt;p&gt;Similar to insert and &lt;a href="https://dev.to/itskenzylimon/getting-started-on-elixir-and-ecto-part-6-64k"&gt;update&lt;/a&gt;, delete returns a tuple. If the deletion succeeds, then the first element in the tuple will be &lt;code&gt;:ok&lt;/code&gt;, but if it fails then it will be an &lt;code&gt;:error&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;This marks the end of our 7 part &lt;strong&gt;Elixir Ecto tutorial&lt;/strong&gt;, if you’ve missed some parts, feel free to go through &lt;a href="https://dev.to/itskenzylimon"&gt;My profile posts&lt;/a&gt; and you can find a detailed scope of the topic.&lt;/p&gt;

</description>
      <category>elixir</category>
      <category>database</category>
      <category>programming</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Getting Started on Elixir and Ecto Part 6</title>
      <dc:creator>Kenzy Limon</dc:creator>
      <pubDate>Mon, 07 Nov 2022 11:40:22 +0000</pubDate>
      <link>https://dev.to/itskenzylimon/getting-started-on-elixir-and-ecto-part-6-64k</link>
      <guid>https://dev.to/itskenzylimon/getting-started-on-elixir-and-ecto-part-6-64k</guid>
      <description>&lt;h2&gt;
  
  
  Updating Data
&lt;/h2&gt;

&lt;p&gt;Updating records in Ecto requires us to first &lt;strong&gt;get a record from the database&lt;/strong&gt; then &lt;strong&gt;create a changeset from that record&lt;/strong&gt; and &lt;strong&gt;pass the new changes we want to make&lt;/strong&gt; to that record, and finally, call the &lt;em&gt;Ecto.Repo.update&lt;/em&gt; function.&lt;/p&gt;


&lt;div class="ltag_gist-liquid-tag"&gt;
  
&lt;/div&gt;


</description>
      <category>webdev</category>
      <category>elixir</category>
      <category>database</category>
      <category>phoenix</category>
    </item>
    <item>
      <title>Getting Started on Elixir and Ecto Part 5</title>
      <dc:creator>Kenzy Limon</dc:creator>
      <pubDate>Fri, 04 Nov 2022 12:32:17 +0000</pubDate>
      <link>https://dev.to/itskenzylimon/getting-started-on-elixir-and-ecto-part-5-26gh</link>
      <guid>https://dev.to/itskenzylimon/getting-started-on-elixir-and-ecto-part-5-26gh</guid>
      <description>&lt;h2&gt;
  
  
  Querying Data
&lt;/h2&gt;

&lt;p&gt;Querying a database requires two steps in Ecto. First, we must &lt;strong&gt;construct the query&lt;/strong&gt;, and then we must &lt;strong&gt;execute that query against the database&lt;/strong&gt; by passing the query to the repository.&lt;/p&gt;

&lt;p&gt;The &lt;code&gt;Ecto.Repo.one&lt;/code&gt; function will only &lt;strong&gt;return a struct if there is one record&lt;/strong&gt; in the result from the database and an &lt;strong&gt;error if there exists more than one record&lt;/strong&gt;. Let’s start off with fetching just one record from our tasks table.&lt;/p&gt;


&lt;div class="ltag_gist-liquid-tag"&gt;
  
&lt;/div&gt;


&lt;p&gt;To fetch all records from the schema, Ecto provides the &lt;code&gt;all&lt;/code&gt; function:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Taskers.Tasks |&amp;gt; Taskers.Repo.all
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;To fetch a record based on its &lt;strong&gt;ID&lt;/strong&gt;, you use the &lt;code&gt;get&lt;/code&gt; function:&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Taskers.Tasks |&amp;gt; Taskers.Repo.get(1)
#=&amp;gt; %Taskers.Tasks{__meta__: #Ecto.Schema.Metadata&amp;lt;:loaded, "tasks"&amp;gt;, id: 1, title: "Hello World", ...}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;If we want to get a record based on something other than the &lt;code&gt;id&lt;/code&gt; attribute, we can use &lt;code&gt;get_by&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Taskers.Tasks |&amp;gt; Taskers.Repo.get_by(title: "Hello World")
#=&amp;gt; %Taskers.Tasks{__meta__: #Ecto.Schema.Metadata&amp;lt;:loaded, "tasks"&amp;gt;, id: 1, title: "Hello World", ...}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;If we want to get multiple records matching a specific attribute, we can use &lt;code&gt;where&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Taskers.Tasks |&amp;gt; Ecto.Query.where(title: "Hello World") |&amp;gt; Taskers.Repo.all
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;blockquote&gt;
&lt;p&gt;NOTE: One important thing to note with Ecto query syntaxes is that they require variables to be pinned, using the pin operator (^). The pin operator instructs the query builder to use parameterized SQL queries to protect against SQL injection.&lt;br&gt;
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;title = "Hello World"
Taskers.Tasks |&amp;gt; Ecto.Query.where(title: ^title) |&amp;gt; Taskers.Repo.all
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;Ecto queries can be built up by calling &lt;a href="https://hexdocs.pm/ecto/Ecto.Query.html" rel="noopener noreferrer"&gt;Ecto.Query&lt;/a&gt; functions on existing queries.&lt;/p&gt;


&lt;div class="ltag_gist-liquid-tag"&gt;
  
&lt;/div&gt;



</description>
      <category>elixir</category>
      <category>database</category>
      <category>programming</category>
      <category>orm</category>
    </item>
    <item>
      <title>Getting Started on Elixir and Ecto Part 4</title>
      <dc:creator>Kenzy Limon</dc:creator>
      <pubDate>Wed, 02 Nov 2022 16:05:07 +0000</pubDate>
      <link>https://dev.to/itskenzylimon/getting-started-on-elixir-and-ecto-part-4-133j</link>
      <guid>https://dev.to/itskenzylimon/getting-started-on-elixir-and-ecto-part-4-133j</guid>
      <description>&lt;h2&gt;
  
  
  Creating and Validating input Data
&lt;/h2&gt;

&lt;p&gt;To insert a new record into our &lt;code&gt;tasks&lt;/code&gt; table, run this code:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;task = %Taskers.Tasks{}
Taskers.Repo.insert(task)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;To insert the data into our database, we call &lt;code&gt;insert&lt;/code&gt;. which is the module that uses Ecto to talk to our database. A successful insertion will return a tuple, like so:&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;{:ok, %Taskers.Tasks{__meta__: #Ecto.Schema.Metadata&amp;lt;:loaded, "tasks"&amp;gt;, title: nil, id: 1, ...}}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;The &lt;code&gt;:ok&lt;/code&gt; atom can be used for pattern matching purposes to ensure that the insertion succeeds.&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;{:ok, tasks} = Taskers.Repo.insert person
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;NOTE:&lt;/strong&gt; In Ecto, you may wish to validate changes before they go to the database. For this, Ecto has &lt;a href="https://hexdocs.pm/ecto/Ecto.Changeset.html" rel="noopener noreferrer"&gt;changesets&lt;/a&gt;. &lt;em&gt;Changeset will only allow defined parameters through and anything not in the list will be ignored.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;


&lt;div class="ltag_gist-liquid-tag"&gt;
  
&lt;/div&gt;



&lt;p&gt;This insertion will fail since the required values are not passed. The first return element is a tuple &lt;code&gt;:error&lt;/code&gt; which contains the specifics of the error&lt;/p&gt;


&lt;div class="ltag_gist-liquid-tag"&gt;
  
&lt;/div&gt;


&lt;p&gt;We can access these &lt;strong&gt;error messages&lt;/strong&gt; by doing some &lt;strong&gt;pattern matching:&lt;/strong&gt;&lt;/p&gt;


&lt;div class="ltag_gist-liquid-tag"&gt;
  
&lt;/div&gt;


&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;NOTE:&lt;/strong&gt; &lt;strong&gt;Since changeset had errors, no record was inserted&lt;/strong&gt; into the tasks table. For a better way to handle changeset, use a case statement on the turple.&lt;/p&gt;
&lt;/blockquote&gt;


&lt;div class="ltag_gist-liquid-tag"&gt;
  
&lt;/div&gt;


&lt;p&gt;&lt;strong&gt;To show these error messages&lt;/strong&gt; in a more &lt;strong&gt;human-friendly&lt;/strong&gt; way, we can use &lt;a href="https://hexdocs.pm/ecto/Ecto.Changeset.html#traverse_errors/2" rel="noopener noreferrer"&gt;Ecto.Changeset.traverse_errors/2:&lt;/a&gt;&lt;/p&gt;


&lt;div class="ltag_gist-liquid-tag"&gt;
  
&lt;/div&gt;
&lt;br&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;This will return the following output:
%{   
   user_id: ["can't be blank"],
   title: ["can't be blank"],
 }
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
      <category>elixir</category>
      <category>database</category>
      <category>programming</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Getting Started on Elixir and Ecto Part 3</title>
      <dc:creator>Kenzy Limon</dc:creator>
      <pubDate>Fri, 21 Oct 2022 17:34:41 +0000</pubDate>
      <link>https://dev.to/itskenzylimon/getting-started-on-elixir-and-ecto-part-3-fk8</link>
      <guid>https://dev.to/itskenzylimon/getting-started-on-elixir-and-ecto-part-3-fk8</guid>
      <description>&lt;h2&gt;
  
  
  Schema, Changeset and Data types
&lt;/h2&gt;

&lt;p&gt;At this point, you might start to wonder why you are doing essentially the same thing twice when dealing with &lt;em&gt;Schema and Changeset&lt;/em&gt;.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;While migrations are liable for giving us the database tables, schemas are liable for how Ecto interacts with those tables.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;em&gt;A schema is an Elixir declaration of data from our database.&lt;/em&gt; Besides working as &lt;strong&gt;data mappers, embedded_schema/1 and schema/2&lt;/strong&gt; can also be used together to decouple how the data is represented in your applications from the database.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;schema/2&lt;/strong&gt; is typically used to map data from a persisted source, usually a database table, into Elixir structs and vice-versa.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;embedded_schema/1&lt;/strong&gt; is used for defining schemas that are embedded in other schemas or only exist in memory without ever persisting elsewhere.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Changesets&lt;/strong&gt; define a pipeline of transformations our data needs to undergo before it will be ready for our application to use. These transformations might include type-casting, user input validation, and filtering out any extraneous parameters.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;NOTE: You can actually use an embedded schema to depict your UI, mapping and validating its inputs, and then you convert such embedded schema to other schemas that can persist data to the database.&lt;/p&gt;
&lt;/blockquote&gt;


&lt;div class="ltag_gist-liquid-tag"&gt;
  
&lt;/div&gt;


&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;NOTE:&lt;/strong&gt; The naming convention in Ecto for schemas is a singularized name.&lt;br&gt;
&lt;/p&gt;
&lt;/blockquote&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;ECTO TYPE  -&amp;gt; ELIXIR TYPE  -&amp;gt; LITERAL SYNTAX IN QUERY

:id -&amp;gt; integer  { 1, 2, ...}
:binary_id -&amp;gt; binary  { &amp;lt;&amp;lt;int, int, ...&amp;gt;&amp;gt; }
:integer -&amp;gt; integer  { 1, 2, ...}
:float -&amp;gt; float  { 1.0, 2.0, ... }
:boolean -&amp;gt; boolean  { true, false }
:string -&amp;gt; UTF-8 encoded string  { "hello" }
:binary -&amp;gt; binary { int, int, ... }
{:array, inner_type} -&amp;gt; list { [value, value, ...] }
:map -&amp;gt; map
{:map, inner_type} -&amp;gt; map
:decimal -&amp;gt; Decimal
:date -&amp;gt; Date
:time -&amp;gt; Time
:time_usec -&amp;gt; Time
:naive_datetime -&amp;gt; NaiveDateTime
:naive_datetime_usec -&amp;gt; NaiveDateTime
:utc_datetime -&amp;gt; DateTime
:utc_datetime_usec -&amp;gt; DateTime
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You can easily play around with schema by simply starting an IEx iex -S mix&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;task = %Taskers.Task{}

We can set values on these fields by generating a new struct:
task = %Taskers.Task{estimated_time: 28}
task = %{task | estimated_time: 3.0}

And retrieve values using this syntax:
task.estimated_time # =&amp;gt; 3.0
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
      <category>elixir</category>
      <category>database</category>
      <category>webdev</category>
      <category>codenewbie</category>
    </item>
  </channel>
</rss>
