<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
    <channel>
      <title>👨🏻‍💻 Zeyad&#039;s Notes</title>
      <link>https://notes.zeyadnotes.dev</link>
      <description>Last 50 notes on 👨🏻‍💻 Zeyad&#039;s Notes</description>
      <generator>Quartz -- quartz.jzhao.xyz</generator>
      <item>
    <title>Q&amp;A</title>
    <link>https://notes.zeyadnotes.dev/QA</link>
    <guid>https://notes.zeyadnotes.dev/QA</guid>
    <description>&lt;p&gt;This page will be for questions that I got from social media and i found them useful for community.&lt;/p&gt;
&lt;p&gt;If you’ve questions send them to me on &lt;a href=&quot;https://www.linkedin.com/in/zeyadetman&quot; class=&quot;external&quot;&gt;My LinkedIn Account&lt;/a&gt;.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Q: I have been hoping to pursue a career in software engineering / web development I have studied Python, HTML, CSS, JS and am starting to work my way through React I know this is very much the basics and am trying to work out the paths that other people with experience have taken, Would you have any advice?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Practice smart.&lt;/p&gt;
&lt;p&gt;a. Open figma community.
b. Search for a template of an idea you love to implement.
c. Start implementing it using react.&lt;/p&gt;
&lt;p&gt;While practicing try to see how the others implement this part, how they organize the folder structure, how they manage the state, which is better react query or redux thunk or sagas, how to create custom hook to do specific function, challenge yourself to do hard/new to you parts.&lt;/p&gt;
&lt;p&gt;Then you can add auth functionality, you can use orm to connect a db, search for how to build your database, how to build api for it, how to add some security features to your app.&lt;/p&gt;
&lt;p&gt;After building the fullstack app, you will like part more than the other, I mean frontend or backend, then begin your career with it. Don’t start your career as a fullstack, focus on side and then increase your knowledge of the other side step by step.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Use Typescript.&lt;/li&gt;
&lt;li&gt;Share your app on your linkedin and github accounts, also highlight the good parts of the app/codebase.&lt;/li&gt;
&lt;li&gt;Ask the experienced devs to give you some advises or reviews on the implemented code.&lt;/li&gt;
&lt;li&gt;Build a blog.&lt;/li&gt;
&lt;li&gt;Share articles.&lt;/li&gt;
&lt;/ul&gt;</description>
    <pubDate>Sat, 21 Oct 2023 10:35:57 GMT</pubDate>
  </item><item>
    <title>Zeyad&#039;s Notes</title>
    <link>https://notes.zeyadnotes.dev/</link>
    <guid>https://notes.zeyadnotes.dev/</guid>
    <description>&lt;h1 id=&quot;welcome-to-my-notes&quot;&gt;Welcome to my notes&lt;a aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot; href=&quot;#welcome-to-my-notes&quot; class=&quot;internal&quot;&gt; §&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;Hi, This is my &lt;a href=&quot;https://jzhao.xyz/posts/networked-thought/&quot; class=&quot;external&quot;&gt;digital garden&lt;/a&gt; built using the powerful project &lt;a href=&quot;https://quartz.jzhao.xyz/&quot; class=&quot;external&quot;&gt;Quartz 4&lt;/a&gt; and &lt;a href=&quot;https://obsidian.md/&quot; class=&quot;external&quot;&gt;obsidian app&lt;/a&gt; code hosted on &lt;a href=&quot;https://github.com/zeyadetman/Notes&quot; class=&quot;external&quot;&gt;GitHub&lt;/a&gt; and deployed and published with &lt;a href=&quot;https://pages.cloudflare.com/&quot; class=&quot;external&quot;&gt;Cloudflare Pages&lt;/a&gt;..&lt;/p&gt;
&lt;blockquote class=&quot;callout&quot; data-callout=&quot;tip&quot;&gt;
&lt;div class=&quot;callout-title&quot;&gt;
                  &lt;div class=&quot;callout-icon&quot;&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;100%&quot; height=&quot;100%&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;path d=&quot;M8.5 14.5A2.5 2.5 0 0 0 11 12c0-1.38-.5-2-1-3-1.072-2.143-.224-4.054 2-6 .5 2.5 2 4.9 4 6.5 2 1.6 3 3.5 3 5.5a7 7 0 1 1-14 0c0-1.153.433-2.294 1-3a2.5 2.5 0 0 0 2.5 2.5z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/div&gt;
                  &lt;div class=&quot;callout-title-inner&quot;&gt;&lt;p&gt;Keep informed &lt;/p&gt;&lt;/div&gt;
                  
                &lt;/div&gt;
&lt;p&gt;Give the notes a star on &lt;a href=&quot;https://github.com/zeyadetman/Notes&quot; class=&quot;external&quot;&gt;GitHub&lt;/a&gt; or keep informed with the notes updates using &lt;a href=&quot;https://notes.zeyadnotes.dev/index.xml&quot; class=&quot;external&quot;&gt;RSS Feed&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&quot;about-me&quot;&gt;About me&lt;a aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot; href=&quot;#about-me&quot; class=&quot;internal&quot;&gt; §&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;I’m Zeyad a software engineer from &lt;a href=&quot;https://en.wikipedia.org/wiki/Kafr_El_Dawwar&quot; class=&quot;external&quot;&gt;Egypt 🇪🇬&lt;/a&gt;, working as a Fullstack engineer (&lt;a href=&quot;./frontend&quot; class=&quot;internal&quot; data-slug=&quot;frontend&quot;&gt;frontend&lt;/a&gt; heavily). My type is &lt;a href=&quot;https://www.crystalknows.com/personality-type/intj&quot; class=&quot;external&quot;&gt;INTJ&lt;/a&gt; Currently I spend most of my time learning new stuff, and &lt;a href=&quot;./programming-languages/programming-languages&quot; class=&quot;internal&quot; data-slug=&quot;programming-languages/programming-languages&quot;&gt;Coding&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;./QA&quot; class=&quot;internal&quot; data-slug=&quot;QA&quot;&gt;QA&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.zeyadnotes.dev/about&quot; class=&quot;external&quot;&gt;Find me on the Internet&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://twitter.com/zeyadelmarsafy&quot; class=&quot;external&quot;&gt;Follow me on twitter&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&quot;about-this-site&quot;&gt;About this site&lt;a aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot; href=&quot;#about-this-site&quot; class=&quot;internal&quot;&gt; §&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;I created this site to track the things that might be useful to be shared with you, It’s not like &lt;a href=&quot;https://zeyadnotes.dev&quot; class=&quot;external&quot;&gt;my blog&lt;/a&gt;, the blog is more specific for articles I write, but here you’ll find my favs and notes 📝. for more information about how I created this site open the &lt;a href=&quot;./setup&quot; class=&quot;internal&quot; data-slug=&quot;setup&quot;&gt;setup&lt;/a&gt; page.&lt;/p&gt;
&lt;blockquote class=&quot;callout&quot; data-callout=&quot;warning&quot;&gt;
&lt;div class=&quot;callout-title&quot;&gt;
                  &lt;div class=&quot;callout-icon&quot;&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;100%&quot; height=&quot;100%&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;path d=&quot;m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3Z&quot;&gt;&lt;/path&gt;&lt;line x1=&quot;12&quot; y1=&quot;9&quot; x2=&quot;12&quot; y2=&quot;13&quot;&gt;&lt;/line&gt;&lt;line x1=&quot;12&quot; y1=&quot;17&quot; x2=&quot;12.01&quot; y2=&quot;17&quot;&gt;&lt;/line&gt;&lt;/svg&gt;&lt;/div&gt;
                  &lt;div class=&quot;callout-title-inner&quot;&gt;&lt;p&gt;Browsing the digital garden &lt;/p&gt;&lt;/div&gt;
                  
                &lt;/div&gt;
&lt;p&gt;To easily browse it, you can search for the keywords you’re interested in, or use the left sidebar for the full notes list. &lt;em&gt;Only on Desktop, If you’re on a Mobile device, Click on&lt;a href=&quot;./tags/obsidian&quot; class=&quot;tag-link internal&quot; data-slug=&quot;tags/obsidian&quot;&gt;#obsidian&lt;/a&gt;&lt;/em&gt;  .Also keep an eye on the backlinks and mentions pages.&lt;/p&gt;
&lt;/blockquote&gt;</description>
    <pubDate>Tue, 28 Oct 2025 00:50:18 GMT</pubDate>
  </item><item>
    <title>Customize MUI theme with TypeScript</title>
    <link>https://notes.zeyadnotes.dev/articles/mui-design-system</link>
    <guid>https://notes.zeyadnotes.dev/articles/mui-design-system</guid>
    <description>&lt;blockquote&gt;
&lt;p&gt;&lt;a href=&quot;https://zeyadnotes.dev/posts/mui-design-system&quot; class=&quot;external&quot;&gt;Published on my Blog&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Ok, this is a quick tutorial on how to customize the default theme in &lt;a href=&quot;https://mui.com/material-ui/getting-started/overview/&quot; class=&quot;external&quot;&gt;mui v5&lt;/a&gt;. we’ll just customize the button component.&lt;/p&gt;
&lt;p&gt;Project Template &lt;a href=&quot;https://github.com/zeyadetman/ts-mui-nextjs-storybook-boilerplate&quot; class=&quot;external&quot;&gt;here&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&quot;first-thing-lets-create-our-folder-structure&quot;&gt;First thing, let’s create our folder structure.&lt;a aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot; href=&quot;#first-thing-lets-create-our-folder-structure&quot; class=&quot;internal&quot;&gt; §&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Our folder structure is one of the basic setup we will do on our tutorial. it helps us to know where we will write our code in an organized way.
Ok, so I prefer this structure while setup any theming whatever the ui framework I use.&lt;/p&gt;
&lt;div data-rehype-pretty-code-fragment=&quot;&quot;&gt;&lt;pre style=&quot;background-color: var(--shiki-color-background)&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot; data-theme=&quot;default&quot;&gt;&lt;code data-language=&quot;bash&quot; data-theme=&quot;default&quot;&gt;&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-token-function)&quot;&gt;.&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-token-function)&quot;&gt;└──&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-string)&quot;&gt;theme/&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;    &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-function)&quot;&gt;├──&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-string)&quot;&gt;foundations/&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;    &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-function)&quot;&gt;│&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;   &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-string)&quot;&gt;├──&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-string)&quot;&gt;palette.ts&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;    &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-function)&quot;&gt;│&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;   &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-string)&quot;&gt;├──&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-string)&quot;&gt;typography.ts&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;    &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-function)&quot;&gt;│&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;   &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-string)&quot;&gt;├──&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-string)&quot;&gt;...&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;    &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-function)&quot;&gt;│&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;   &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-string)&quot;&gt;└──&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-string)&quot;&gt;index.ts&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;    &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-function)&quot;&gt;├──&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-string)&quot;&gt;components/&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;    &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-function)&quot;&gt;│&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;   &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-string)&quot;&gt;├──&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-string)&quot;&gt;button.ts&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;    &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-function)&quot;&gt;│&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;   &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-string)&quot;&gt;├──&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-string)&quot;&gt;...&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;    &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-function)&quot;&gt;│&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;   &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-string)&quot;&gt;└──&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-string)&quot;&gt;index.ts&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;    &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-function)&quot;&gt;└──&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-string)&quot;&gt;index.ts&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Now, we have two main folder, the first one will be &lt;code&gt;foundations&lt;/code&gt; folder, and it used for basic theme variables, and the other one is &lt;code&gt;components&lt;/code&gt; for components theming.
In each folder we created &lt;code&gt;index.ts&lt;/code&gt; file to export all from it.&lt;/p&gt;
&lt;h2 id=&quot;next--lets-build-the-theme-from-the-end-to-beginning&quot;&gt;&lt;em&gt;Next,&lt;/em&gt;  let’s build the theme from the end to beginning.&lt;a aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot; href=&quot;#next--lets-build-the-theme-from-the-end-to-beginning&quot; class=&quot;internal&quot;&gt; §&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;open the &lt;code&gt;theme/index.ts&lt;/code&gt; to import our &lt;code&gt;foundations&lt;/code&gt; and &lt;code&gt;components&lt;/code&gt; that structure our theme&lt;/p&gt;
&lt;div data-rehype-pretty-code-fragment=&quot;&quot;&gt;&lt;pre style=&quot;background-color: var(--shiki-color-background)&quot; tabindex=&quot;0&quot; data-language=&quot;ts&quot; data-theme=&quot;default&quot;&gt;&lt;code data-language=&quot;ts&quot; data-theme=&quot;default&quot;&gt;&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;import&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; { components } &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;from&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-string-expression)&quot;&gt;&quot;theme/components&quot;&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;import&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; { foundations } &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;from&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-string-expression)&quot;&gt;&quot;./foundations&quot;&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;import&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; { createTheme&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-punctuation)&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; ThemeOptions } &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;from&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-string-expression)&quot;&gt;&quot;@mui/material&quot;&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt; &lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;const&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-constant)&quot;&gt;themeOptions&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-function)&quot;&gt;Omit&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;&amp;#x3C;&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-function)&quot;&gt;ThemeOptions&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-punctuation)&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-string-expression)&quot;&gt;&quot;components&quot;&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; {&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;  &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;...&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;foundations&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-punctuation)&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;};&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt; &lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;export&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;const&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-constant)&quot;&gt;theme&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-function)&quot;&gt;ThemeOptions&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-function)&quot;&gt;createTheme&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;({&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;  &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;...&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;themeOptions&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-punctuation)&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;  components&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; {&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;    &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;...&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;components&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-punctuation)&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;  }&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-punctuation)&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;});&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt; &lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;No magic, ha?
&lt;code&gt;ThemeOptions&lt;/code&gt; will perfectly handles the types for the passed properties. We excluded the &lt;code&gt;components&lt;/code&gt; from &lt;code&gt;themeOptions&lt;/code&gt; vars and passed it inside the &lt;code&gt;createTheme&lt;/code&gt; function, you can modify it to update it directly inside the variable.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;../Pasted-image-20221123060835.png&quot; width=&quot;auto&quot; height=&quot;auto&quot;&gt; Based on mui, Here’s the &lt;code&gt;ThemeOptions&lt;/code&gt; interface, this will make our writing code is super easy and straightforward. How?
We need to customize the &lt;code&gt;theme&lt;/code&gt; colors for example, it called &lt;code&gt;palette&lt;/code&gt; and its type is &lt;code&gt;PaletteOptions&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;So here’s our &lt;code&gt;theme/foundations/palette.ts&lt;/code&gt;&lt;/p&gt;
&lt;div data-rehype-pretty-code-fragment=&quot;&quot;&gt;&lt;pre style=&quot;background-color: var(--shiki-color-background)&quot; tabindex=&quot;0&quot; data-language=&quot;ts&quot; data-theme=&quot;default&quot;&gt;&lt;code data-language=&quot;ts&quot; data-theme=&quot;default&quot;&gt;&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;import&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; { PaletteOptions } &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;from&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-string-expression)&quot;&gt;&quot;@mui/material&quot;&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt; &lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;export&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;const&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-constant)&quot;&gt;palette&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-function)&quot;&gt;PaletteOptions&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; {&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;  common&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; {&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;    white&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-string-expression)&quot;&gt;&quot;#fff&quot;&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-punctuation)&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;    black&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-string-expression)&quot;&gt;&quot;#000&quot;&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-punctuation)&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;  }&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-punctuation)&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;  primary&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; {&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;    main&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-string-expression)&quot;&gt;&quot;#33A3FF&quot;&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-punctuation)&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;    light&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-string-expression)&quot;&gt;&quot;#53B1FD66&quot;&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-punctuation)&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;  }&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-punctuation)&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;};&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;And because we’ve used the correct Interface so the editor will help us continue writing the remain properties&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;../Pasted-image-20221123061345.png&quot; width=&quot;auto&quot; height=&quot;auto&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;The Question&lt;/strong&gt; will be, What if I need to add a new color schema.
&lt;strong&gt;The Answer&lt;/strong&gt; is Simple as this&lt;/p&gt;
&lt;div data-rehype-pretty-code-fragment=&quot;&quot;&gt;&lt;pre style=&quot;background-color: var(--shiki-color-background)&quot; tabindex=&quot;0&quot; data-language=&quot;ts&quot; data-theme=&quot;default&quot;&gt;&lt;code data-language=&quot;ts&quot; data-theme=&quot;default&quot;&gt;&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;declare&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;module&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-string-expression)&quot;&gt;&quot;@mui/material/styles&quot;&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; {&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;  &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;export&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;interface&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-function)&quot;&gt;PaletteOptions&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; {&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;    blue&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;?:&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-function)&quot;&gt;PaletteColorOptions&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;  }&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;How did I know about &lt;code&gt;PaletteColorOptions&lt;/code&gt; ? it’s not a magic, I clicked on &lt;code&gt;PaletteOptions&lt;/code&gt; and checked the type for the already existing colors schema.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;../Pasted-image-20221123061927.png&quot; width=&quot;auto&quot; height=&quot;auto&quot;&gt;&lt;/p&gt;
&lt;p&gt;Ok, until now everything is super easy right?&lt;/p&gt;
&lt;h2 id=&quot;what-about-customizing-the-components-theme&quot;&gt;What about customizing the components theme?&lt;a aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot; href=&quot;#what-about-customizing-the-components-theme&quot; class=&quot;internal&quot;&gt; §&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Ok ok, the MUI Button component located &lt;a href=&quot;https://mui.com/material-ui/react-button/&quot; class=&quot;external&quot;&gt;here&lt;/a&gt; and they call it &lt;a href=&quot;https://mui.com/material-ui/api/button/#component-name&quot; class=&quot;external&quot;&gt;&lt;code&gt;MuiButton&lt;/code&gt;&lt;/a&gt;.
But let’s create the &lt;code&gt;components&lt;/code&gt; object that will be exported inside the &lt;code&gt;createTheme&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;and it’s simple as this &lt;code&gt;theme/components/index.ts&lt;/code&gt;&lt;/p&gt;
&lt;div data-rehype-pretty-code-fragment=&quot;&quot;&gt;&lt;pre style=&quot;background-color: var(--shiki-color-background)&quot; tabindex=&quot;0&quot; data-language=&quot;ts&quot; data-theme=&quot;default&quot;&gt;&lt;code data-language=&quot;ts&quot; data-theme=&quot;default&quot;&gt;&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;import&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; { Components } &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;from&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-string-expression)&quot;&gt;&quot;@mui/material&quot;&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt; &lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;export&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;const&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-constant)&quot;&gt;components&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-function)&quot;&gt;Components&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; {};&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;after that TS will help you writing your components.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;../Pasted-image-20221123062847.png&quot; width=&quot;auto&quot; height=&quot;auto&quot;&gt;&lt;/p&gt;
&lt;p&gt;First thing, let’s create our type for the &lt;code&gt;MuiButton&lt;/code&gt; component theme, open the &lt;code&gt;theme/components/button.ts&lt;/code&gt;&lt;/p&gt;
&lt;div data-rehype-pretty-code-fragment=&quot;&quot;&gt;&lt;pre style=&quot;background-color: var(--shiki-color-background)&quot; tabindex=&quot;0&quot; data-language=&quot;ts&quot; data-theme=&quot;default&quot;&gt;&lt;code data-language=&quot;ts&quot; data-theme=&quot;default&quot;&gt;&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;type&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-function)&quot;&gt;muiButton&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; {&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;  defaultProps&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;?:&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-function)&quot;&gt;ComponentsProps&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-string-expression)&quot;&gt;&quot;MuiButton&quot;&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;];&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;  styleOverrides&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;?:&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-function)&quot;&gt;ComponentsOverrides&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;&amp;#x3C;&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-function)&quot;&gt;Theme&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;&gt;[&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-string-expression)&quot;&gt;&quot;MuiButton&quot;&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;];&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;  variants&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;?:&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-function)&quot;&gt;ComponentsVariants&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-string-expression)&quot;&gt;&quot;MuiButton&quot;&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;];&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;};&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;We got it from the &lt;code&gt;.d.ts&lt;/code&gt; file located in the mui package files inside the &lt;code&gt;node_modules&lt;/code&gt; folder. No magic!&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.typescriptlang.org/docs/handbook/2/everyday-types.html#differences-between-type-aliases-and-interfaces&quot; class=&quot;external&quot;&gt;Note: Feel free to use interfaces or types for this.&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;After that let’s create our custom theme for &lt;code&gt;MuiButton&lt;/code&gt;&lt;/p&gt;
&lt;div data-rehype-pretty-code-fragment=&quot;&quot;&gt;&lt;pre style=&quot;background-color: var(--shiki-color-background)&quot; tabindex=&quot;0&quot; data-language=&quot;ts&quot; data-theme=&quot;default&quot;&gt;&lt;code data-language=&quot;ts&quot; data-theme=&quot;default&quot;&gt;&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;declare&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;module&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-string-expression)&quot;&gt;&quot;@mui/material/Button&quot;&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; {&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;  &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;export&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;interface&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-function)&quot;&gt;ButtonPropsVariantOverrides&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; {&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;    isActive&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-constant)&quot;&gt;true&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;  }&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt; &lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;export&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;const&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-constant)&quot;&gt;MuiButton&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-function)&quot;&gt;muiButton&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; {&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;  variants&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; [&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;    {&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;      props&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; { variant&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-string-expression)&quot;&gt;&quot;isActive&quot;&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; }&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-punctuation)&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;      &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-function)&quot;&gt;style&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; ({&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;        theme&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-punctuation)&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;      }&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; {&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;        theme&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-function)&quot;&gt;Theme&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;      }) &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;=&gt;&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; {&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt; &lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;        &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;return&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; {&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;          color&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-constant)&quot;&gt;theme&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-constant)&quot;&gt;palette&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-constant)&quot;&gt;common&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;.white&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-punctuation)&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;        };&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;      }&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-punctuation)&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;    }&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-punctuation)&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;  ]&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-punctuation)&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;};&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;ol&gt;
&lt;li&gt;I created a new variant for the &lt;code&gt;Button&lt;/code&gt; you can use it inside your code.&lt;/li&gt;
&lt;li&gt;TS will be your guide while customizing the component.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;em&gt;Note: I added &lt;code&gt;export&lt;/code&gt; word before &lt;code&gt;interface ButtonPropsVariantOverrides&lt;/code&gt; to avoid the eslint rule&lt;/em&gt; &lt;a href=&quot;https://github.com/sweepline/eslint-plugin-unused-imports/blob/master/docs/rules/no-unused-imports.md&quot; class=&quot;external&quot;&gt;&lt;code&gt;unused-imports/no-unused-vars&lt;/code&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Now, We need to wrap our app with this theme&lt;/p&gt;
&lt;div data-rehype-pretty-code-fragment=&quot;&quot;&gt;&lt;pre style=&quot;background-color: var(--shiki-color-background)&quot; tabindex=&quot;0&quot; data-language=&quot;tsx&quot; data-theme=&quot;default&quot;&gt;&lt;code data-language=&quot;tsx&quot; data-theme=&quot;default&quot;&gt;&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;import&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; { theme } &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;from&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-string-expression)&quot;&gt;&quot;theme&quot;&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt; &lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;&amp;#x3C;&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-constant)&quot;&gt;ThemeProvider&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-function)&quot;&gt;theme&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;{theme}&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;	{children}&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;&amp;#x3C;/&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-constant)&quot;&gt;ThemeProvider&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Tada! 🎉&lt;/p&gt;
&lt;p&gt;Another Things about &lt;a href=&quot;../frontend/design-systems&quot; class=&quot;internal&quot; data-slug=&quot;frontend/design-systems&quot;&gt;Design Systems&lt;/a&gt; or &lt;a href=&quot;../frontend/frontend&quot; class=&quot;internal&quot; data-slug=&quot;frontend/frontend&quot;&gt;Frontend&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Project Template &lt;a href=&quot;https://github.com/zeyadetman/ts-mui-nextjs-storybook-boilerplate&quot; class=&quot;external&quot;&gt;here&lt;/a&gt;&lt;/p&gt;</description>
    <pubDate>Thu, 21 Aug 2025 08:30:28 GMT</pubDate>
  </item><item>
    <title>Backend</title>
    <link>https://notes.zeyadnotes.dev/backend/backend</link>
    <guid>https://notes.zeyadnotes.dev/backend/backend</guid>
    <description>&lt;h2 id=&quot;articles&quot;&gt;Articles&lt;a aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot; href=&quot;#articles&quot; class=&quot;internal&quot;&gt; §&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://aaronfrancis.com/2022/efficient-pagination-using-deferred-joins&quot; class=&quot;external&quot;&gt;Efficient Pagination Using Deferred Joins.&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;See more:&lt;/strong&gt;
&lt;a href=&quot;../backend/nodejs&quot; class=&quot;internal&quot; data-slug=&quot;backend/nodejs&quot;&gt;nodejs&lt;/a&gt;
&lt;a href=&quot;../backend/nestjs&quot; class=&quot;internal&quot; data-slug=&quot;backend/nestjs&quot;&gt;nestjs&lt;/a&gt;
&lt;a href=&quot;../backend/graphql&quot; class=&quot;internal&quot; data-slug=&quot;backend/graphql&quot;&gt;graphql&lt;/a&gt;
&lt;a href=&quot;../database/database&quot; class=&quot;internal&quot; data-slug=&quot;database/database&quot;&gt;database&lt;/a&gt;&lt;/p&gt;</description>
    <pubDate>Sat, 21 Oct 2023 10:35:57 GMT</pubDate>
  </item><item>
    <title>GraphQL</title>
    <link>https://notes.zeyadnotes.dev/backend/graphql</link>
    <guid>https://notes.zeyadnotes.dev/backend/graphql</guid>
    <description>&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://olivier-thomas.medium.com/from-backend-to-frontend-typed-application-with-graphql-2d52d61b946a&quot; class=&quot;external&quot;&gt;From&lt;/a&gt;&lt;a href=&quot;.././tags/backend&quot; class=&quot;tag-link internal&quot; data-slug=&quot;tags/backend&quot;&gt;#backend&lt;/a&gt; to&lt;a href=&quot;.././tags/frontend&quot; class=&quot;tag-link internal&quot; data-slug=&quot;tags/frontend&quot;&gt;#frontend&lt;/a&gt; typed application with GraphQL&lt;a href=&quot;.././tags/typescript&quot; class=&quot;tag-link internal&quot; data-slug=&quot;tags/typescript&quot;&gt;#typescript&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description>
    <pubDate>Sat, 21 Oct 2023 10:35:57 GMT</pubDate>
  </item><item>
    <title>NestJS</title>
    <link>https://notes.zeyadnotes.dev/backend/nestjs</link>
    <guid>https://notes.zeyadnotes.dev/backend/nestjs</guid>
    <description>&lt;p&gt;&lt;a href=&quot;https://docs.nestjs.com/&quot; class=&quot;external&quot;&gt;Documentation | NestJS - A progressive Node.js framework&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&quot;build-nestjs-app&quot;&gt;Build NestJS App&lt;a aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot; href=&quot;#build-nestjs-app&quot; class=&quot;internal&quot;&gt; §&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.prisma.io/blog/nestjs-prisma-rest-api-7D056s1BmOL0&quot; class=&quot;external&quot;&gt;Build a REST API with NestJS, Prisma, PostgreSQL and Swagger.&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;tools&quot;&gt;Tools&lt;a aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot; href=&quot;#tools&quot; class=&quot;internal&quot;&gt; §&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/nestjs/throttler&quot; class=&quot;external&quot;&gt;nestjs/throttler&lt;/a&gt;: A rate limiting module for NestJS to work with Fastify, Express, GQL, Websockets, and RPC 🧭&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;articles&quot;&gt;Articles&lt;a aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot; href=&quot;#articles&quot; class=&quot;internal&quot;&gt; §&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.logrocket.com/nestjs-vs-express-js/&quot; class=&quot;external&quot;&gt;NestJS vs. Express.js&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;</description>
    <pubDate>Sat, 21 Oct 2023 10:35:57 GMT</pubDate>
  </item><item>
    <title>NodeJS</title>
    <link>https://notes.zeyadnotes.dev/backend/nodejs</link>
    <guid>https://notes.zeyadnotes.dev/backend/nodejs</guid>
    <description>&lt;h2 id=&quot;articles&quot;&gt;Articles&lt;a aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot; href=&quot;#articles&quot; class=&quot;internal&quot;&gt; §&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.freecodecamp.org/news/nodejs-api-best-practices-for-scaling/&quot; class=&quot;external&quot;&gt;Best Practices for Scaling Your Node.js REST APIs.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.digitalocean.com/community/tutorials/how-to-work-with-files-using-streams-in-node-js&quot; class=&quot;external&quot;&gt;How To Work with Files Using Streams in Node.js&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.digitalocean.com/community/tutorials/how-to-scale-node-js-applications-with-clustering&quot; class=&quot;external&quot;&gt;How To Scale Node.js Applications with Clustering&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.digitalocean.com/community/tutorials/how-to-handle-asynchronous-tasks-with-node-js-and-bullmq&quot; class=&quot;external&quot;&gt;How To Handle Asynchronous Tasks with Node.js and BullMQ&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;setup-a-new-app&quot;&gt;Setup a new app&lt;a aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot; href=&quot;#setup-a-new-app&quot; class=&quot;internal&quot;&gt; §&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.logrocket.com/how-to-set-up-node-typescript-express/&quot; class=&quot;external&quot;&gt;How to set up TypeScript with Node.js and Express&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://softwareontheroad.com/ideal-nodejs-project-structure&quot; class=&quot;external&quot;&gt;Bulletproof node.js project architecture 🛡️&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;</description>
    <pubDate>Sat, 21 Oct 2023 10:35:57 GMT</pubDate>
  </item><item>
    <title>API Design Patterns</title>
    <link>https://notes.zeyadnotes.dev/books/api-design-patterns</link>
    <guid>https://notes.zeyadnotes.dev/books/api-design-patterns</guid>
    <description>&lt;h2 id=&quot;notes&quot;&gt;Notes&lt;a aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot; href=&quot;#notes&quot; class=&quot;internal&quot;&gt; §&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id=&quot;chapter-1&quot;&gt;Chapter 1&lt;a aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot; href=&quot;#chapter-1&quot; class=&quot;internal&quot;&gt; §&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;RPC: Remote Procedure Call because it calls a remote function ‘procedure’.&lt;/li&gt;
&lt;li&gt;APIs are special types of interfaces that define how two computer systems interact with one another, coming in many forms, such as downloadable libraries and web APIs.&lt;/li&gt;
&lt;li&gt;Web APIs are special because they expose functionality over a network, hiding the specific implementation or computational requirements needed for that functionality.&lt;/li&gt;
&lt;li&gt;A list of RPC-oriented APIs, may be something like&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code&gt;ScheduleFlight()    -&gt; Schedules a new flight
GetFlightDetails()  -&gt; Shows information about a specific flight
ShowAllBookings()   -&gt; Shows all travel plans currently booked
CancelReservation() -&gt; Cancels an existing flight reservation
RescheduleFlight()  -&gt; Reschedules an existing flight to another date or time
UpgradeTrip()       -&gt; Upgrades from economy class to first class
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;But if we want to call each of them publicly, how can we remember that? For example, we need to remember whether the way to see all of our bookings is &lt;code&gt;ShowFlights()&lt;/code&gt;, &lt;code&gt;ShowAllFlights()&lt;/code&gt;, &lt;code&gt;ListFlights()&lt;/code&gt;, or &lt;code&gt;ListAllFlights()&lt;/code&gt; (in this case, it’s &lt;code&gt;ShowAllFlights()&lt;/code&gt;). But what can we do to solve this? The answer comes in the form of standardization “Resource orientation” resource-oriented APIs.
&lt;code&gt;&amp;#x3C;StandardMethod&gt;&amp;#x3C;Resource&gt;()&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;StandardMethod&lt;/strong&gt;: GET, POST, …etc
&lt;strong&gt;Resource&lt;/strong&gt;: in the prev example is the &lt;em&gt;FlightReservation&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;GET&amp;#x3C;FlightReservation&gt;()&lt;/code&gt;&lt;/p&gt;
&lt;h4 id=&quot;what-makes-an-api-good&quot;&gt;What makes an API “good”?&lt;a aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot; href=&quot;#what-makes-an-api-good&quot; class=&quot;internal&quot;&gt; §&lt;/a&gt;&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Operational&lt;/strong&gt;: it must do the thing users actually want. there may be nonoperational requirements related to things like &lt;em&gt;latency&lt;/em&gt; and &lt;em&gt;accuracy&lt;/em&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expressive&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Simple&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Predictable&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;chapter-2&quot;&gt;Chapter 2&lt;a aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot; href=&quot;#chapter-2&quot; class=&quot;internal&quot;&gt; §&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Software design pattern:&lt;/strong&gt; is what happens when a particular design can be applied over and over to lots of similar software problems.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Anatomy of an API design pattern&lt;/strong&gt;: &lt;em&gt;Name, Motivation, Overview, Implementation, Trade-offs.&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;API design patterns are important because APIs are generally very “rigid” and therefore not easy to change, so design patterns help minimize the need for large structural changes.&lt;/li&gt;
&lt;/ul&gt;</description>
    <pubDate>Sat, 21 Oct 2023 10:35:57 GMT</pubDate>
  </item><item>
    <title>books</title>
    <link>https://notes.zeyadnotes.dev/books/books</link>
    <guid>https://notes.zeyadnotes.dev/books/books</guid>
    <description>&lt;p&gt;&lt;a href=&quot;../books/api-design-patterns&quot; class=&quot;internal&quot; data-slug=&quot;books/api-design-patterns&quot;&gt;api-design-patterns&lt;/a&gt;&lt;/p&gt;</description>
    <pubDate>Sat, 21 Oct 2023 10:35:57 GMT</pubDate>
  </item><item>
    <title>Management</title>
    <link>https://notes.zeyadnotes.dev/career/management</link>
    <guid>https://notes.zeyadnotes.dev/career/management</guid>
    <description>&lt;h2 id=&quot;giving-feedback&quot;&gt;Giving Feedback&lt;a aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot; href=&quot;#giving-feedback&quot; class=&quot;internal&quot;&gt; §&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://snacknation.com/blog/positive-feedback-examples/&quot; class=&quot;external&quot;&gt;20 Positive Feedback Examples For Work In 2022 - It Really Matters&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.cultureamp.com/blog/employee-feedback-examples&quot; class=&quot;external&quot;&gt;Employee feedback: Examples to guide and drive development&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;/li&gt;
&lt;/ul&gt;</description>
    <pubDate>Sat, 21 Oct 2023 10:35:57 GMT</pubDate>
  </item><item>
    <title>Career Paths</title>
    <link>https://notes.zeyadnotes.dev/career/paths</link>
    <guid>https://notes.zeyadnotes.dev/career/paths</guid>
    <description>&lt;h2 id=&quot;frontend&quot;&gt;Frontend&lt;a aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot; href=&quot;#frontend&quot; class=&quot;internal&quot;&gt; §&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;If you’re a &lt;strong&gt;beginner&lt;/strong&gt; and want to learn frontend then here’s my recommendation: &lt;a href=&quot;../frontend/roadmap&quot; class=&quot;internal&quot; data-slug=&quot;frontend/roadmap&quot;&gt;roadmap&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&quot;computer-science&quot;&gt;Computer Science&lt;a aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot; href=&quot;#computer-science&quot; class=&quot;internal&quot;&gt; §&lt;/a&gt;&lt;/h2&gt;</description>
    <pubDate>Sat, 21 Oct 2023 10:35:57 GMT</pubDate>
  </item><item>
    <title>Clean Code</title>
    <link>https://notes.zeyadnotes.dev/clean-code/clean-code</link>
    <guid>https://notes.zeyadnotes.dev/clean-code/clean-code</guid>
    <description>&lt;p&gt;&lt;a href=&quot;../learning-notes&quot; class=&quot;internal&quot; data-slug=&quot;learning-notes&quot;&gt;learning-notes&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&quot;awesome&quot;&gt;Awesome&lt;a aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot; href=&quot;#awesome&quot; class=&quot;internal&quot;&gt; §&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/joebew42/study-path&quot; class=&quot;external&quot;&gt;An organized learning path on Clean Code, Test-Driven Development, Legacy Code, Refactoring, Domain-Driven Design and Microservice Architecture&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;See more:&lt;/strong&gt;
&lt;a href=&quot;../clean-code/links&quot; class=&quot;internal&quot; data-slug=&quot;clean-code/links&quot;&gt;links&lt;/a&gt;&lt;/p&gt;</description>
    <pubDate>Sat, 21 Oct 2023 10:35:57 GMT</pubDate>
  </item><item>
    <title>Clean Code Discussions</title>
    <link>https://notes.zeyadnotes.dev/clean-code/links</link>
    <guid>https://notes.zeyadnotes.dev/clean-code/links</guid>
    <description>&lt;p&gt;Ok, So I separated these stuff from the main page &lt;a href=&quot;../clean-code/clean-code&quot; class=&quot;internal&quot; data-slug=&quot;clean-code/clean-code&quot;&gt;clean-code&lt;/a&gt; to make this page for discussions and more specific topics.&lt;/p&gt;
&lt;h2 id=&quot;readability-over-abstraction&quot;&gt;Readability Over Abstraction&lt;a aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot; href=&quot;#readability-over-abstraction&quot; class=&quot;internal&quot;&gt; §&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://softwareengineering.stackexchange.com/questions/60900/do-abstractions-have-to-reduce-code-readability&quot; class=&quot;external&quot;&gt;https://softwareengineering.stackexchange.com/questions/60900/do-abstractions-have-to-reduce-code-readability&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/KISS_principle&quot; class=&quot;external&quot;&gt;https://en.wikipedia.org/wiki/KISS_principle&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://softwareengineering.stackexchange.com/questions/202477/can-too-much-abstraction-be-bad&quot; class=&quot;external&quot;&gt;https://softwareengineering.stackexchange.com/questions/202477/can-too-much-abstraction-be-bad&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://softwareengineering.stackexchange.com/questions/398739/too-much-abstraction-making-code-hard-to-extend&quot; class=&quot;external&quot;&gt;https://softwareengineering.stackexchange.com/questions/398739/too-much-abstraction-making-code-hard-to-extend&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://sandimetz.com/blog/2016/1/20/the-wrong-abstraction&quot; class=&quot;external&quot;&gt;https://sandimetz.com/blog/2016/1/20/the-wrong-abstraction&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description>
    <pubDate>Sat, 21 Oct 2023 10:35:57 GMT</pubDate>
  </item><item>
    <title>CLI</title>
    <link>https://notes.zeyadnotes.dev/cli/cli</link>
    <guid>https://notes.zeyadnotes.dev/cli/cli</guid>
    <description>&lt;p&gt;In this page will document my knowledge on command line interface.&lt;/p&gt;
&lt;h2 id=&quot;my-setup&quot;&gt;My setup&lt;a aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot; href=&quot;#my-setup&quot; class=&quot;internal&quot;&gt; §&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/tmux/tmux/wiki&quot; class=&quot;external&quot;&gt;Tmux&lt;/a&gt; for terminal management.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://starship.rs/&quot; class=&quot;external&quot;&gt;Starship&lt;/a&gt; as shell prompt.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;productivity-tools&quot;&gt;Productivity tools&lt;a aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot; href=&quot;#productivity-tools&quot; class=&quot;internal&quot;&gt; §&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/ankitpokhrel/jira-cli&quot; class=&quot;external&quot;&gt;https://github.com/ankitpokhrel/jira-cli&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;See more:&lt;/strong&gt;
&lt;a href=&quot;../cli/curl&quot; class=&quot;internal&quot; data-slug=&quot;cli/curl&quot;&gt;curl&lt;/a&gt;
&lt;a href=&quot;../cli/learn-cli&quot; class=&quot;internal&quot; data-slug=&quot;cli/learn-cli&quot;&gt;learn-cli&lt;/a&gt;
&lt;a href=&quot;../cli/tmux&quot; class=&quot;internal&quot; data-slug=&quot;cli/tmux&quot;&gt;tmux&lt;/a&gt;&lt;/p&gt;</description>
    <pubDate>Sat, 21 Oct 2023 10:35:57 GMT</pubDate>
  </item><item>
    <title>cURL</title>
    <link>https://notes.zeyadnotes.dev/cli/curl</link>
    <guid>https://notes.zeyadnotes.dev/cli/curl</guid>
    <description>&lt;h2 id=&quot;articles&quot;&gt;Articles&lt;a aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot; href=&quot;#articles&quot; class=&quot;internal&quot;&gt; §&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://phoenixnap.com/kb/curl-command&quot; class=&quot;external&quot;&gt;Linux curl Command Explained with Examples&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;examples&quot;&gt;Examples&lt;a aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot; href=&quot;#examples&quot; class=&quot;internal&quot;&gt; §&lt;/a&gt;&lt;/h2&gt;
&lt;div data-rehype-pretty-code-fragment=&quot;&quot;&gt;&lt;pre style=&quot;background-color: var(--shiki-color-background)&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot; data-theme=&quot;default&quot;&gt;&lt;code data-language=&quot;bash&quot; data-theme=&quot;default&quot;&gt;&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-token-function)&quot;&gt;curl&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-string)&quot;&gt;-X&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-string)&quot;&gt;POST&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;&amp;#x3C;&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-string)&quot;&gt;https://getpocket.com/v3/oauth/authoriz&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;e&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;&gt;&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-string)&quot;&gt;-d&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-string-expression)&quot;&gt;&quot;code=string&amp;#x26;consumer_key=string&quot;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;-X&lt;/code&gt; to specify the request type.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-d&lt;/code&gt; data.&lt;/li&gt;
&lt;/ul&gt;</description>
    <pubDate>Sat, 21 Oct 2023 10:35:57 GMT</pubDate>
  </item><item>
    <title>Learn CLI</title>
    <link>https://notes.zeyadnotes.dev/cli/learn-cli</link>
    <guid>https://notes.zeyadnotes.dev/cli/learn-cli</guid>
    <description>&lt;h2 id=&quot;resources&quot;&gt;Resources&lt;a aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot; href=&quot;#resources&quot; class=&quot;internal&quot;&gt; §&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://explainshell.com/&quot; class=&quot;external&quot;&gt;explainshell.com&lt;/a&gt; write down a command-line to see the help text that matches each argument.&lt;/li&gt;
&lt;/ul&gt;</description>
    <pubDate>Sat, 21 Oct 2023 10:35:57 GMT</pubDate>
  </item><item>
    <title>TMUX</title>
    <link>https://notes.zeyadnotes.dev/cli/tmux</link>
    <guid>https://notes.zeyadnotes.dev/cli/tmux</guid>
    <description>&lt;p&gt;&lt;a href=&quot;https://github.com/tmux/tmux/wiki&quot; class=&quot;external&quot;&gt;tmux&lt;/a&gt; is one of my favorite tools to manage terminal.&lt;/p&gt;
&lt;h2 id=&quot;articles&quot;&gt;Articles&lt;a aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot; href=&quot;#articles&quot; class=&quot;internal&quot;&gt; §&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://thevaluable.dev/tmux-config-mouseless/&quot; class=&quot;external&quot;&gt;Writing Your tmux Config: a Detailed Guide&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.dnmfarrell.com/post/organize-your-work-with-tmux/&quot; class=&quot;external&quot;&gt;Organize Your Work With tmux Sessions&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://arcolinux.com/everthing-you-need-to-know-about-tmux-introduction/&quot; class=&quot;external&quot;&gt;Everything you need to know about tmux – Introduction&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;cheatsheet&quot;&gt;Cheatsheet&lt;a aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot; href=&quot;#cheatsheet&quot; class=&quot;internal&quot;&gt; §&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://tmuxcheatsheet.com/&quot; class=&quot;external&quot;&gt;https://tmuxcheatsheet.com/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://gist.github.com/MohamedAlaa/2961058&quot; class=&quot;external&quot;&gt;https://gist.github.com/MohamedAlaa/2961058&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;my-config&quot;&gt;My Config&lt;a aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot; href=&quot;#my-config&quot; class=&quot;internal&quot;&gt; §&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;You’ll find my &lt;a href=&quot;https://github.com/zeyadetman/dotfiles/blob/main/.tmux.conf&quot; class=&quot;external&quot;&gt;&lt;code&gt;[.tmux.conf&lt;/code&gt; file here&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Find my &lt;a href=&quot;https://github.com/stars/zeyadetman/lists/tmux&quot; class=&quot;external&quot;&gt;tmux stars ⭐️ on github&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;</description>
    <pubDate>Sat, 21 Oct 2023 10:35:57 GMT</pubDate>
  </item><item>
    <title>Center elements in Css</title>
    <link>https://notes.zeyadnotes.dev/code-snippets/center-in-css</link>
    <guid>https://notes.zeyadnotes.dev/code-snippets/center-in-css</guid>
    <description>&lt;h2 id=&quot;centering-div&quot;&gt;Centering div&lt;a aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot; href=&quot;#centering-div&quot; class=&quot;internal&quot;&gt; §&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Using Grid&lt;/li&gt;
&lt;/ul&gt;
&lt;div data-rehype-pretty-code-fragment=&quot;&quot;&gt;&lt;pre style=&quot;background-color: var(--shiki-color-background)&quot; tabindex=&quot;0&quot; data-language=&quot;css&quot; data-theme=&quot;default&quot;&gt;&lt;code data-language=&quot;css&quot; data-theme=&quot;default&quot;&gt;&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-token-function)&quot;&gt;.parent&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; {&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;  &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-constant)&quot;&gt;display&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-constant)&quot;&gt;grid&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;  &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-constant)&quot;&gt;place-items&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-constant)&quot;&gt;center&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description>
    <pubDate>Sat, 21 Oct 2023 10:35:57 GMT</pubDate>
  </item><item>
    <title>Code Snippets</title>
    <link>https://notes.zeyadnotes.dev/code-snippets/code-snippets</link>
    <guid>https://notes.zeyadnotes.dev/code-snippets/code-snippets</guid>
    <description>&lt;ol&gt;
&lt;li&gt;&lt;a href=&quot;../programming-languages/golang&quot; class=&quot;internal&quot; data-slug=&quot;programming-languages/golang&quot;&gt;golang&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;../code-snippets/tic-tac-toe&quot; class=&quot;internal&quot; data-slug=&quot;code-snippets/tic-tac-toe&quot;&gt;tic-tac-toe&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;ol start=&quot;2&quot;&gt;
&lt;li&gt;CSS.&lt;/li&gt;
&lt;/ol&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;../code-snippets/center-in-css&quot; class=&quot;internal&quot; data-slug=&quot;code-snippets/center-in-css&quot;&gt;center-in-css&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description>
    <pubDate>Sat, 21 Oct 2023 10:35:57 GMT</pubDate>
  </item><item>
    <title>Tic Tac Toe using golang</title>
    <link>https://notes.zeyadnotes.dev/code-snippets/tic-tac-toe</link>
    <guid>https://notes.zeyadnotes.dev/code-snippets/tic-tac-toe</guid>
    <description>&lt;p&gt;&lt;a href=&quot;.././tags/golang&quot; class=&quot;tag-link internal&quot; data-slug=&quot;tags/golang&quot;&gt;#golang&lt;/a&gt;&lt;/p&gt;
&lt;div data-rehype-pretty-code-fragment=&quot;&quot;&gt;&lt;pre style=&quot;background-color: var(--shiki-color-background)&quot; tabindex=&quot;0&quot; data-language=&quot;go&quot; data-theme=&quot;default&quot;&gt;&lt;code data-language=&quot;go&quot; data-theme=&quot;default&quot;&gt;&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;package&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; main&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt; &lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;import&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-string-expression)&quot;&gt;&quot;fmt&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt; &lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;func&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-function)&quot;&gt;main&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;() {&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt; &lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;	xoBoard &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;:=&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; [&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-constant)&quot;&gt;3&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;][&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-constant)&quot;&gt;3&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;]&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;string&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;{}&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt; &lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;	&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;type&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-function)&quot;&gt;player&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;struct&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; {	&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;		name &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;string&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;		mark &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;string&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;	}&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt; &lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;	player1 &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;:=&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; player{mark: &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-string-expression)&quot;&gt;&quot;X&quot;&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;	player2 &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;:=&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; player{mark: &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-string-expression)&quot;&gt;&quot;O&quot;&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;	fmt.&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-function)&quot;&gt;Println&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-string-expression)&quot;&gt;&quot;Welcome to Tic Tac Toe!&quot;&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;	fmt.&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-function)&quot;&gt;Println&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-string-expression)&quot;&gt;&quot;Player 1, please enter your name:&quot;&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;	fmt.&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-function)&quot;&gt;Scanln&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;&amp;#x26;&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;player1.name)&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;	fmt.&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-function)&quot;&gt;Println&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-string-expression)&quot;&gt;&quot;Player 2, please enter your name:&quot;&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;	fmt.&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-function)&quot;&gt;Scanln&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;&amp;#x26;&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;player2.name)&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;	&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;	fmt.&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-function)&quot;&gt;Println&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-string-expression)&quot;&gt;&quot;Now we have two players, &quot;&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; player1.name &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-string-expression)&quot;&gt;&quot; and &quot;&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; player2.name &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-string-expression)&quot;&gt;&quot;, let&#039;s start the game!&quot;&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;	&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;	currentPlayer &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;:=&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; player1&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;	x, y &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;:=&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-constant)&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-constant)&quot;&gt;0&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt; &lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;  &lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt; &lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;	&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;for&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; {&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;		fmt.&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-function)&quot;&gt;Println&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-string-expression)&quot;&gt;&quot;Player &quot;&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; currentPlayer.mark &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-string-expression)&quot;&gt;&quot;, please enter the row and column number of the cell you want to mark:&quot;&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;		fmt.&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-function)&quot;&gt;Scanln&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;&amp;#x26;&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;x, &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;&amp;#x26;&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;y)&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;		&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;		&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; xoBoard[x][y] &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;==&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-string-expression)&quot;&gt;&quot;&quot;&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; {&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;			&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; x &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;&gt;=&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-constant)&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;&amp;#x26;&amp;#x26;&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; x &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;&amp;#x3C;&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-constant)&quot;&gt;3&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;&amp;#x26;&amp;#x26;&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; y &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;&gt;=&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-constant)&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;&amp;#x26;&amp;#x26;&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; y &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;&amp;#x3C;&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-constant)&quot;&gt;3&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; {&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;				xoBoard[x][y] &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; currentPlayer.mark&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;			} &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;else&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; {&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;				fmt.&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-function)&quot;&gt;Println&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-string-expression)&quot;&gt;&quot;Please enter a valid cell number!&quot;&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;				&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;continue&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;			}&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;		} &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;else&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; {&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;			fmt.&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-function)&quot;&gt;Println&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-string-expression)&quot;&gt;&quot;This cell is already marked, please choose another one!&quot;&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;			&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;continue&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;		}&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;	&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;		&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-comment)&quot;&gt;// validation&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;		&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;		&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;for&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; i &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;:=&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-constant)&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;; i &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;&amp;#x3C;&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-constant)&quot;&gt;3&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;; i&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;++&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; {&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;			&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; xoBoard[i][&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-constant)&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;] &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;==&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; xoBoard[i][&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-constant)&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;] &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;&amp;#x26;&amp;#x26;&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; xoBoard[i][&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-constant)&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;] &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;==&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; xoBoard[i][&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-constant)&quot;&gt;2&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;] &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;&amp;#x26;&amp;#x26;&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; xoBoard[i][&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-constant)&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;] &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;==&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; currentPlayer.mark {&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;				fmt.&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-function)&quot;&gt;Println&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-string-expression)&quot;&gt;&quot;Player &quot;&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; currentPlayer.mark &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-string-expression)&quot;&gt;&quot; wins!&quot;&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;				&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;return&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;			} &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;else&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; xoBoard[&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-constant)&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;][i] &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;==&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; xoBoard[&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-constant)&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;][i] &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;&amp;#x26;&amp;#x26;&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; xoBoard[&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-constant)&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;][i] &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;==&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; xoBoard[&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-constant)&quot;&gt;2&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;][i] &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;&amp;#x26;&amp;#x26;&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; xoBoard[&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-constant)&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;][i] &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;==&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; currentPlayer.mark {&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;				fmt.&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-function)&quot;&gt;Println&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-string-expression)&quot;&gt;&quot;Player &quot;&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; currentPlayer.mark &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-string-expression)&quot;&gt;&quot; wins!&quot;&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;				&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;return&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;			} &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;else&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; xoBoard[&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-constant)&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;][&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-constant)&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;] &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;==&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; xoBoard[&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-constant)&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;][&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-constant)&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;] &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;&amp;#x26;&amp;#x26;&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; xoBoard[&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-constant)&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;][&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-constant)&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;] &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;==&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; xoBoard[&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-constant)&quot;&gt;2&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;][&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-constant)&quot;&gt;2&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;] &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;&amp;#x26;&amp;#x26;&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; xoBoard[&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-constant)&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;][&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-constant)&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;] &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;==&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; currentPlayer.mark {&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;				fmt.&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-function)&quot;&gt;Println&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-string-expression)&quot;&gt;&quot;Player &quot;&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; currentPlayer.mark &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-string-expression)&quot;&gt;&quot; wins!&quot;&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;				&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;return&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;			} &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;else&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; xoBoard[&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-constant)&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;][&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-constant)&quot;&gt;2&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;] &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;==&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; xoBoard[&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-constant)&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;][&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-constant)&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;] &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;&amp;#x26;&amp;#x26;&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; xoBoard[&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-constant)&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;][&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-constant)&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;] &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;==&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; xoBoard[&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-constant)&quot;&gt;2&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;][&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-constant)&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;] &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;&amp;#x26;&amp;#x26;&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; xoBoard[&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-constant)&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;][&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-constant)&quot;&gt;2&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;] &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;==&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; currentPlayer.mark {&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;				fmt.&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-function)&quot;&gt;Println&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-string-expression)&quot;&gt;&quot;Player &quot;&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; currentPlayer.mark &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-string-expression)&quot;&gt;&quot; wins!&quot;&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;				&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;return&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;			} &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;else&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; xoBoard[&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-constant)&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;][&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-constant)&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;] &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;!=&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-string-expression)&quot;&gt;&quot;&quot;&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;&amp;#x26;&amp;#x26;&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; xoBoard[&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-constant)&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;][&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-constant)&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;] &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;!=&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-string-expression)&quot;&gt;&quot;&quot;&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;&amp;#x26;&amp;#x26;&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; xoBoard[&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-constant)&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;][&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-constant)&quot;&gt;2&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;] &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;!=&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-string-expression)&quot;&gt;&quot;&quot;&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;&amp;#x26;&amp;#x26;&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; xoBoard[&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-constant)&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;][&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-constant)&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;] &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;!=&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-string-expression)&quot;&gt;&quot;&quot;&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;&amp;#x26;&amp;#x26;&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; xoBoard[&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-constant)&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;][&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-constant)&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;] &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;!=&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-string-expression)&quot;&gt;&quot;&quot;&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;&amp;#x26;&amp;#x26;&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; xoBoard[&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-constant)&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;][&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-constant)&quot;&gt;2&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;] &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;!=&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-string-expression)&quot;&gt;&quot;&quot;&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;&amp;#x26;&amp;#x26;&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; xoBoard[&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-constant)&quot;&gt;2&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;][&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-constant)&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;] &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;!=&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-string-expression)&quot;&gt;&quot;&quot;&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;&amp;#x26;&amp;#x26;&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; xoBoard[&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-constant)&quot;&gt;2&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;][&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-constant)&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;] &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;!=&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-string-expression)&quot;&gt;&quot;&quot;&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;&amp;#x26;&amp;#x26;&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; xoBoard[&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-constant)&quot;&gt;2&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;][&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-constant)&quot;&gt;2&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;] &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;!=&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-string-expression)&quot;&gt;&quot;&quot;&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; {&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;				fmt.&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-function)&quot;&gt;Println&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-string-expression)&quot;&gt;&quot;It&#039;s a tie!&quot;&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;				&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;return&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;			}&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;		}&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;		&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;		fmt.&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-function)&quot;&gt;Println&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;(xoBoard[&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-constant)&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;])&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;		fmt.&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-function)&quot;&gt;Println&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;(xoBoard[&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-constant)&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;])&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;		fmt.&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-function)&quot;&gt;Println&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;(xoBoard[&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-constant)&quot;&gt;2&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;])&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;		&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;		&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; currentPlayer.mark &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;==&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-string-expression)&quot;&gt;&quot;X&quot;&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; {&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;			currentPlayer &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; player2&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;		} &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;else&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; {&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;			currentPlayer &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; player1&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;		}&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;	}&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description>
    <pubDate>Sat, 21 Oct 2023 10:35:57 GMT</pubDate>
  </item><item>
    <title>notes-on-typescript</title>
    <link>https://notes.zeyadnotes.dev/content/programming-languages/notes-on-typescript</link>
    <guid>https://notes.zeyadnotes.dev/content/programming-languages/notes-on-typescript</guid>
    <description></description>
    <pubDate>Thu, 07 Dec 2023 16:48:39 GMT</pubDate>
  </item><item>
    <title>Databases</title>
    <link>https://notes.zeyadnotes.dev/database/database</link>
    <guid>https://notes.zeyadnotes.dev/database/database</guid>
    <description>&lt;h2 id=&quot;tools&quot;&gt;Tools&lt;a aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot; href=&quot;#tools&quot; class=&quot;internal&quot;&gt; §&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://tableplus.com/&quot; class=&quot;external&quot;&gt;Table Plus.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.mysql.com/products/workbench/&quot; class=&quot;external&quot;&gt;Mysql Workbench&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;concepts&quot;&gt;Concepts&lt;a aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot; href=&quot;#concepts&quot; class=&quot;internal&quot;&gt; §&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id=&quot;normalization&quot;&gt;Normalization&lt;a aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot; href=&quot;#normalization&quot; class=&quot;internal&quot;&gt; §&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=GFQaEYEc8_8&quot; class=&quot;external&quot;&gt;Learn Database Normalization - 1NF, 2NF, 3NF, 4NF, 5NF ⭐️&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://youtu.be/J-drts33N8g&quot; class=&quot;external&quot;&gt;1st, 2nd and 3rd Normal Form (Database Normalisation)&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;n1-problem&quot;&gt;N+1 Problem&lt;a aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot; href=&quot;#n1-problem&quot; class=&quot;internal&quot;&gt; §&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://medium.com/the-marcy-lab-school/what-is-the-n-1-problem-in-graphql-dd4921cb3c1a&quot; class=&quot;external&quot;&gt;What is the N+1 Problem in GraphQL?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://schneide.blog/2021/12/06/understanding-identifying-and-fixing-the-n1-query-problem/&quot; class=&quot;external&quot;&gt;Understanding, identifying and fixing the N+1 query problem&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;articles&quot;&gt;Articles&lt;a aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot; href=&quot;#articles&quot; class=&quot;internal&quot;&gt; §&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.geeksforgeeks.org/difference-between-natural-join-and-inner-join-in-sql/&quot; class=&quot;external&quot;&gt;Difference between Natural join and Inner Join in SQL&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;See more&lt;/strong&gt;
&lt;a href=&quot;../database/firebase&quot; class=&quot;internal&quot; data-slug=&quot;database/firebase&quot;&gt;firebase&lt;/a&gt;
&lt;a href=&quot;../database/postgresql&quot; class=&quot;internal&quot; data-slug=&quot;database/postgresql&quot;&gt;postgresql&lt;/a&gt;&lt;/p&gt;</description>
    <pubDate>Sat, 21 Oct 2023 10:35:57 GMT</pubDate>
  </item><item>
    <title>Firebase</title>
    <link>https://notes.zeyadnotes.dev/database/firebase</link>
    <guid>https://notes.zeyadnotes.dev/database/firebase</guid>
    <description>&lt;p&gt;&lt;a href=&quot;https://firebase.google.com/&quot; class=&quot;external&quot;&gt;https://firebase.google.com/&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&quot;articles&quot;&gt;Articles&lt;a aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot; href=&quot;#articles&quot; class=&quot;internal&quot;&gt; §&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://firebase.blog/posts/2019/03/firebase-security-rules-admin-sdk-tips&quot; class=&quot;external&quot;&gt;7 tips on Firebase security rules and the Admin SDK&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;</description>
    <pubDate>Sat, 21 Oct 2023 10:35:57 GMT</pubDate>
  </item><item>
    <title>PostgreSQL</title>
    <link>https://notes.zeyadnotes.dev/database/postgresql</link>
    <guid>https://notes.zeyadnotes.dev/database/postgresql</guid>
    <description>&lt;p&gt;&lt;a href=&quot;https://www.postgresql.org/&quot; class=&quot;external&quot;&gt;https://www.postgresql.org/&lt;/a&gt; .&lt;/p&gt;
&lt;h2 id=&quot;learning&quot;&gt;Learning&lt;a aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot; href=&quot;#learning&quot; class=&quot;internal&quot;&gt; §&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.postgresqltutorial.com/&quot; class=&quot;external&quot;&gt;https://www.postgresqltutorial.com/&lt;/a&gt; If you prefer reading tutorials (with hands on).&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;tools&quot;&gt;Tools&lt;a aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot; href=&quot;#tools&quot; class=&quot;internal&quot;&gt; §&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.pgadmin.org/&quot; class=&quot;external&quot;&gt;https://www.pgadmin.org/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description>
    <pubDate>Sat, 21 Oct 2023 10:35:57 GMT</pubDate>
  </item><item>
    <title>Behavioral Design Patterns</title>
    <link>https://notes.zeyadnotes.dev/design-patterns/behavioral</link>
    <guid>https://notes.zeyadnotes.dev/design-patterns/behavioral</guid>
    <description>&lt;h4 id=&quot;strategy-design-pattern-behavioral&quot;&gt;&lt;a href=&quot;https://www.thisdot.co/blog/clean-up-your-code-with-design-patterns-in-javascript&quot; class=&quot;external&quot;&gt;Strategy Design Pattern (Behavioral)&lt;/a&gt;&lt;a aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot; href=&quot;#strategy-design-pattern-behavioral&quot; class=&quot;internal&quot;&gt; §&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;Define a family of algorithms, encapsulate each one, and make them interchangeable. Strategy lets the algorithm exist very independently from clients that use it.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://camo.githubusercontent.com/5a9d9c6c2071047d1b316ac2e2a0c874f52af235aa90e3c95ddf408ba698058e/68747470733a2f2f696d616765732e636f6e74656e7466756c2e636f6d2f7a6f6a7a7a646f7030667a782f66534433624f35555759494370626e7950327a726c2f34333233316439373036653834326439353831313537646666376236626332332f53747261746567792e676966&quot; class=&quot;external&quot;&gt;&lt;img src=&quot;https://camo.githubusercontent.com/5a9d9c6c2071047d1b316ac2e2a0c874f52af235aa90e3c95ddf408ba698058e/68747470733a2f2f696d616765732e636f6e74656e7466756c2e636f6d2f7a6f6a7a7a646f7030667a782f66534433624f35555759494370626e7950327a726c2f34333233316439373036653834326439353831313537646666376236626332332f53747261746567792e676966&quot; alt=&quot;strategy-pattern&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;div data-rehype-pretty-code-fragment=&quot;&quot;&gt;&lt;pre style=&quot;background-color: var(--shiki-color-background)&quot; tabindex=&quot;0&quot; data-language=&quot;ts&quot; data-theme=&quot;default&quot;&gt;&lt;code data-language=&quot;ts&quot; data-theme=&quot;default&quot;&gt;&lt;span data-line=&quot;&quot;&gt; &lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-token-comment)&quot;&gt;/**&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-token-comment)&quot;&gt; * The Context defines the interface of interest to clients.&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-token-comment)&quot;&gt; */&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;class&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-function)&quot;&gt;Context&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; {&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt; &lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;    &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;private&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; strategy&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-function)&quot;&gt;Strategy&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt; &lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;    &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;constructor&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;(strategy&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-function)&quot;&gt;Strategy&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;) {&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;        &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-constant)&quot;&gt;this&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;.strategy &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; strategy;&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;    }&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt; &lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;    &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;public&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-function)&quot;&gt;setStrategy&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;(strategy&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-function)&quot;&gt;Strategy&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;) {&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;        &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-constant)&quot;&gt;this&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;.strategy &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; strategy;&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;    }&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt; &lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;    &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;public&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-function)&quot;&gt;doSomeBusinessLogic&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;()&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-constant)&quot;&gt;void&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; {&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;        &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-constant)&quot;&gt;console&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-function)&quot;&gt;.log&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-string-expression)&quot;&gt;&#039;Context: Sorting data using the strategy (not sure how it\&#039;ll do it)&#039;&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;);&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;        &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;const&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-constant)&quot;&gt;result&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-constant)&quot;&gt;this&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-function)&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-constant)&quot;&gt;strategy&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-function)&quot;&gt;.doAlgorithm&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;([&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-string-expression)&quot;&gt;&#039;a&#039;&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-punctuation)&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-string-expression)&quot;&gt;&#039;b&#039;&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-punctuation)&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-string-expression)&quot;&gt;&#039;c&#039;&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-punctuation)&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-string-expression)&quot;&gt;&#039;d&#039;&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-punctuation)&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-string-expression)&quot;&gt;&#039;e&#039;&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;]);&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;        &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-constant)&quot;&gt;console&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-function)&quot;&gt;.log&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-constant)&quot;&gt;result&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-function)&quot;&gt;.join&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-string-expression)&quot;&gt;&#039;,&#039;&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;));&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;    }&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt; &lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;interface&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-function)&quot;&gt;Strategy&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; {&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;    &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-function)&quot;&gt;doAlgorithm&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;(data&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-constant)&quot;&gt;string&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;[])&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-constant)&quot;&gt;string&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;[];&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt; &lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;class&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-function)&quot;&gt;ConcreteStrategyA&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;implements&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-function)&quot;&gt;Strategy&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; {&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;    &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;public&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-function)&quot;&gt;doAlgorithm&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;(data&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-constant)&quot;&gt;string&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;[])&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-constant)&quot;&gt;string&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;[] {&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;        &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;return&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-constant)&quot;&gt;data&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-function)&quot;&gt;.sort&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;();&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;    }&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt; &lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;class&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-function)&quot;&gt;ConcreteStrategyB&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;implements&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-function)&quot;&gt;Strategy&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; {&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;    &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;public&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-function)&quot;&gt;doAlgorithm&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;(data&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-constant)&quot;&gt;string&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;[])&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-constant)&quot;&gt;string&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;[] {&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;        &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;return&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-constant)&quot;&gt;data&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-function)&quot;&gt;.reverse&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;();&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;    }&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt; &lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;const&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-constant)&quot;&gt;context&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;new&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-function)&quot;&gt;Context&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;new&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-function)&quot;&gt;ConcreteStrategyA&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;());&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-token-constant)&quot;&gt;console&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-function)&quot;&gt;.log&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-string-expression)&quot;&gt;&#039;Client: Strategy is set to normal sorting.&#039;&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;);&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-token-constant)&quot;&gt;context&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-function)&quot;&gt;.doSomeBusinessLogic&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;();&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt; &lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-token-constant)&quot;&gt;console&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-function)&quot;&gt;.log&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-string-expression)&quot;&gt;&#039;&#039;&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;);&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt; &lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-token-constant)&quot;&gt;console&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-function)&quot;&gt;.log&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-string-expression)&quot;&gt;&#039;Client: Strategy is set to reverse sorting.&#039;&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;);&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-token-constant)&quot;&gt;context&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-function)&quot;&gt;.setStrategy&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;new&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-function)&quot;&gt;ConcreteStrategyB&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;());&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-token-constant)&quot;&gt;context&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-function)&quot;&gt;.doSomeBusinessLogic&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;();&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description>
    <pubDate>Sat, 21 Oct 2023 10:35:57 GMT</pubDate>
  </item><item>
    <title>Design Patterns</title>
    <link>https://notes.zeyadnotes.dev/design-patterns/design-patterns</link>
    <guid>https://notes.zeyadnotes.dev/design-patterns/design-patterns</guid>
    <description>&lt;p&gt;Design patterns is a kinda tough to be remembered, so i created this pages to list what design patterns i do know, and what i need to know, and some links i find it useful.&lt;/p&gt;
&lt;h2 id=&quot;articles&quot;&gt;Articles&lt;a aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot; href=&quot;#articles&quot; class=&quot;internal&quot;&gt; §&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://lo-victoria.com/learning-design-patterns-a-summary&quot; class=&quot;external&quot;&gt;Learning Design Patterns: A Summary.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://refactoring.guru/design-patterns/decorator&quot; class=&quot;external&quot;&gt;Decorator design pattern&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;learn-more&quot;&gt;Learn more&lt;a aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot; href=&quot;#learn-more&quot; class=&quot;internal&quot;&gt; §&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/AbdurRKhalid/Design-Patterns&quot; class=&quot;external&quot;&gt;https://github.com/AbdurRKhalid/Design-Patterns&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;See more:&lt;/strong&gt;
&lt;a href=&quot;../design-patterns/behavioral&quot; class=&quot;internal&quot; data-slug=&quot;design-patterns/behavioral&quot;&gt;behavioral&lt;/a&gt;&lt;/p&gt;</description>
    <pubDate>Sat, 21 Oct 2023 10:35:57 GMT</pubDate>
  </item><item>
    <title>Devops</title>
    <link>https://notes.zeyadnotes.dev/devops/devops</link>
    <guid>https://notes.zeyadnotes.dev/devops/devops</guid>
    <description>&lt;h2 id=&quot;feature-flags&quot;&gt;Feature Flags&lt;a aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot; href=&quot;#feature-flags&quot; class=&quot;internal&quot;&gt; §&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id=&quot;articles&quot;&gt;Articles&lt;a aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot; href=&quot;#articles&quot; class=&quot;internal&quot;&gt; §&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.atlassian.com/continuous-delivery/principles/feature-flags&quot; class=&quot;external&quot;&gt;https://www.atlassian.com/continuous-delivery/principles/feature-flags&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description>
    <pubDate>Sat, 21 Oct 2023 10:35:57 GMT</pubDate>
  </item><item>
    <title>Frontend Articles</title>
    <link>https://notes.zeyadnotes.dev/frontend/Frontend</link>
    <guid>https://notes.zeyadnotes.dev/frontend/Frontend</guid>
    <description>&lt;h2 id=&quot;server-side&quot;&gt;Server Side&lt;a aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot; href=&quot;#server-side&quot; class=&quot;internal&quot;&gt; §&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.debugbear.com/blog/server-side-rendering&quot; class=&quot;external&quot;&gt;What Is Server-side Rendering And How Does It Improve Site Speed?&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;layout&quot;&gt;Layout&lt;a aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot; href=&quot;#layout&quot; class=&quot;internal&quot;&gt; §&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://css-tricks.com/the-inside-problem/&quot; class=&quot;external&quot;&gt;https://css-tricks.com/the-inside-problem/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;performance&quot;&gt;Performance&lt;a aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot; href=&quot;#performance&quot; class=&quot;internal&quot;&gt; §&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.joshwcomeau.com/performance/embracing-modern-image-formats&quot; class=&quot;external&quot;&gt;Embracing modern image formats.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://tamalweb.com/compress-images-reactjs#use-webpavif-images-for-even-better-compression&quot; class=&quot;external&quot;&gt;Best Practices on How to Compress Images For Reactjs.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.isquaredsoftware.com/2020/05/blogged-answers-a-mostly-complete-guide-to-react-rendering-behavior/&quot; class=&quot;external&quot;&gt;Blogged Answers: A (Mostly) Complete Guide to React Rendering Behavior&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.zhenghao.io/posts/react-rerender&quot; class=&quot;external&quot;&gt;When Does React Render Your Component?&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;regular-expressions&quot;&gt;Regular Expressions&lt;a aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot; href=&quot;#regular-expressions&quot; class=&quot;internal&quot;&gt; §&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://javascript.info/regexp-lookahead-lookbehind&quot; class=&quot;external&quot;&gt;Lookahead and lookbehind in javascript.&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;design-system&quot;&gt;Design System&lt;a aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot; href=&quot;#design-system&quot; class=&quot;internal&quot;&gt; §&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;&lt;a href=&quot;../frontend/design-systems#articles&quot; class=&quot;internal&quot; data-slug=&quot;frontend/design-systems&quot;&gt;Desgin System Articles&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&quot;styles&quot;&gt;Styles&lt;a aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot; href=&quot;#styles&quot; class=&quot;internal&quot;&gt; §&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.joshwcomeau.com/css/surprising-truth-about-pixels-and-accessibility/&quot; class=&quot;external&quot;&gt;The Surprising Truth About Pixels and Accessibility&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;icons&quot;&gt;Icons&lt;a aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot; href=&quot;#icons&quot; class=&quot;internal&quot;&gt; §&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;&lt;a href=&quot;https://lucide.dev&quot; class=&quot;external&quot;&gt;https://lucide.dev&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&quot;animation&quot;&gt;Animation&lt;a aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot; href=&quot;#animation&quot; class=&quot;internal&quot;&gt; §&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.framer.com/motion/&quot; class=&quot;external&quot;&gt;Framer Motion.&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Read more…&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;../reactjs/reactjs&quot; class=&quot;internal&quot; data-slug=&quot;reactjs/reactjs&quot;&gt;reactjs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;../frontend/assets-illustrations&quot; class=&quot;internal&quot; data-slug=&quot;frontend/assets-illustrations&quot;&gt;assets-illustrations&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;../frontend/colors&quot; class=&quot;internal&quot; data-slug=&quot;frontend/colors&quot;&gt;colors&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;../frontend/design-systems&quot; class=&quot;internal&quot; data-slug=&quot;frontend/design-systems&quot;&gt;design-systems&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;../frontend/roadmap&quot; class=&quot;internal&quot; data-slug=&quot;frontend/roadmap&quot;&gt;roadmap&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description>
    <pubDate>Wed, 08 Nov 2023 03:22:57 GMT</pubDate>
  </item><item>
    <title>Assets &amp; Illustrations</title>
    <link>https://notes.zeyadnotes.dev/frontend/assets-illustrations</link>
    <guid>https://notes.zeyadnotes.dev/frontend/assets-illustrations</guid>
    <description>&lt;ul&gt;
&lt;li&gt;100,000 icons, illustrations and emoji for all your projects. (&lt;a href=&quot;https://www.streamlinehq.com&quot; class=&quot;external&quot;&gt;streamlinehq.com&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;Open-source illustrations for any idea you can imagine and create. (&lt;a href=&quot;https://undraw.co&quot; class=&quot;external&quot;&gt;https://undraw.co/&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;</description>
    <pubDate>Sat, 21 Oct 2023 10:35:57 GMT</pubDate>
  </item><item>
    <title>Colors</title>
    <link>https://notes.zeyadnotes.dev/frontend/colors</link>
    <guid>https://notes.zeyadnotes.dev/frontend/colors</guid>
    <description>&lt;h4 id=&quot;generate-color-palette&quot;&gt;Generate color palette&lt;a aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot; href=&quot;#generate-color-palette&quot; class=&quot;internal&quot;&gt; §&lt;/a&gt;&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://coolors.co&quot; class=&quot;external&quot;&gt;https://coolors.co/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&quot;generate-color-gradients&quot;&gt;Generate Color Gradients&lt;a aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot; href=&quot;#generate-color-gradients&quot; class=&quot;internal&quot;&gt; §&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;&lt;a href=&quot;https://www.joshwcomeau.com/gradient-generator/&quot; class=&quot;external&quot;&gt;https://www.joshwcomeau.com/gradient-generator/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;My Preferred colors theme&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://colorable.jxnblk.com/090808/fab828&quot; class=&quot;external&quot;&gt;https://colorable.jxnblk.com/090808/fab828&lt;/a&gt;
&lt;img src=&quot;../Pasted-image-20221024140943.png&quot; width=&quot;auto&quot; height=&quot;auto&quot;&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://colorable.jxnblk.com/b73e25/001f31&quot; class=&quot;external&quot;&gt;https://colorable.jxnblk.com/b73e25/001f31&lt;/a&gt;
&lt;img src=&quot;../Pasted-image-20221024140924.png&quot; width=&quot;auto&quot; height=&quot;auto&quot;&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://colorable.jxnblk.com/f5a58b/065771&quot; class=&quot;external&quot;&gt;https://colorable.jxnblk.com/f5a58b/065771&lt;/a&gt;
&lt;img src=&quot;../Pasted-image-20221024141003.png&quot; width=&quot;auto&quot; height=&quot;auto&quot;&gt;&lt;/li&gt;
&lt;/ul&gt;</description>
    <pubDate>Sat, 21 Oct 2023 10:35:57 GMT</pubDate>
  </item><item>
    <title>CSS</title>
    <link>https://notes.zeyadnotes.dev/frontend/css</link>
    <guid>https://notes.zeyadnotes.dev/frontend/css</guid>
    <description>&lt;h1 id=&quot;generators-patterns-colors-etc&quot;&gt;Generators (Patterns, colors, …etc)&lt;a aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot; href=&quot;#generators-patterns-colors-etc&quot; class=&quot;internal&quot;&gt; §&lt;/a&gt;&lt;/h1&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://wweb.dev/resources/css-separator-generator&quot; class=&quot;external&quot;&gt;CSS Section Separator Generator&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://getwaves.io/&quot; class=&quot;external&quot;&gt;Make some waves!&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.blobmaker.app/&quot; class=&quot;external&quot;&gt;blob maker&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://haikei.app/&quot; class=&quot;external&quot;&gt;Haikei: Generate unique SVG design assets&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.joshwcomeau.com/gradient-generator/&quot; class=&quot;external&quot;&gt;Josh Comeau: Gradient Generator&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://cssgradient.io/&quot; class=&quot;external&quot;&gt;CSS Gradient&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://coolors.co/&quot; class=&quot;external&quot;&gt;Coolors&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;best-practices&quot;&gt;Best Practices&lt;a aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot; href=&quot;#best-practices&quot; class=&quot;internal&quot;&gt; §&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://ishadeed.com/article/aligning-logos-css/&quot; class=&quot;external&quot;&gt;Aligning Logo Images in CSS&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://fvsch.com/articles/button-css/test.html&quot; class=&quot;external&quot;&gt;Style a button&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description>
    <pubDate>Sun, 21 Jan 2024 16:10:30 GMT</pubDate>
  </item><item>
    <title>Design Systems</title>
    <link>https://notes.zeyadnotes.dev/frontend/design-systems</link>
    <guid>https://notes.zeyadnotes.dev/frontend/design-systems</guid>
    <description>&lt;h3 id=&quot;visualize-your-components&quot;&gt;Visualize your components&lt;a aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot; href=&quot;#visualize-your-components&quot; class=&quot;internal&quot;&gt; §&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/react-cosmos/react-cosmos&quot; class=&quot;external&quot;&gt;https://github.com/react-cosmos/react-cosmos&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://storybook.js.org/&quot; class=&quot;external&quot;&gt;storybook&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;document-your-components&quot;&gt;Document your components&lt;a aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot; href=&quot;#document-your-components&quot; class=&quot;internal&quot;&gt; §&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/styleguidist/react-styleguidist&quot; class=&quot;external&quot;&gt;react-styleguide&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;books&quot;&gt;Books&lt;a aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot; href=&quot;#books&quot; class=&quot;internal&quot;&gt; §&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://s3.amazonaws.com/designco-web-assets/uploads/2019/05/InVision_DesignSystemsHandbook.pdf&quot; class=&quot;external&quot;&gt;Invision design system handbook.&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;articles&quot;&gt;Articles&lt;a aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot; href=&quot;#articles&quot; class=&quot;internal&quot;&gt; §&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://varun.ca/styled-system/&quot; class=&quot;external&quot;&gt;Component Based Design System With Styled-System.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.chromatic.com/blog/ui-component-explorers---your-new-favorite-tool/&quot; class=&quot;external&quot;&gt;UI component explorers — your new favorite tool&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;../articles/mui-design-system&quot; class=&quot;internal&quot; data-slug=&quot;articles/mui-design-system&quot;&gt;Customize MUI theme with TypeScript&lt;/a&gt; - &lt;em&gt;by me&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;design-systems&quot;&gt;Design Systems&lt;a aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot; href=&quot;#design-systems&quot; class=&quot;internal&quot;&gt; §&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.figma.com/community/file/1048327171347943164&quot; class=&quot;external&quot;&gt;Building Box.&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;rich-components&quot;&gt;Rich Components&lt;a aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot; href=&quot;#rich-components&quot; class=&quot;internal&quot;&gt; §&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://baseweb.design/&quot; class=&quot;external&quot;&gt;https://baseweb.design/&lt;/a&gt; (Uber design system)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://chakra-ui.com/&quot; class=&quot;external&quot;&gt;https://chakra-ui.com/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;build-your-own&quot;&gt;Build your own&lt;a aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot; href=&quot;#build-your-own&quot; class=&quot;internal&quot;&gt; §&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://theme-ui.com/&quot; class=&quot;external&quot;&gt;https://theme-ui.com/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://styled-system.com/&quot; class=&quot;external&quot;&gt;https://styled-system.com/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;courses&quot;&gt;Courses&lt;a aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot; href=&quot;#courses&quot; class=&quot;internal&quot;&gt; §&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://frontendmasters.com/courses/design-systems/&quot; class=&quot;external&quot;&gt;Design Systems with React &amp;#x26; Storybook.&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;colors&quot;&gt;Colors&lt;a aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot; href=&quot;#colors&quot; class=&quot;internal&quot;&gt; §&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;&lt;a href=&quot;../frontend/colors&quot; class=&quot;internal&quot; data-slug=&quot;frontend/colors&quot;&gt;colors&lt;/a&gt;&lt;/p&gt;</description>
    <pubDate>Sat, 21 Oct 2023 10:35:57 GMT</pubDate>
  </item><item>
    <title>Interview Prep</title>
    <link>https://notes.zeyadnotes.dev/frontend/interview</link>
    <guid>https://notes.zeyadnotes.dev/frontend/interview</guid>
    <description>&lt;h2 id=&quot;resources&quot;&gt;Resources&lt;a aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot; href=&quot;#resources&quot; class=&quot;internal&quot;&gt; §&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://leetcode.com/discuss/interview-question/1074798/frontend-interview-preparation-resources-1-4-years-exp&quot; class=&quot;external&quot;&gt;This discussion on leetcode&lt;/a&gt; is one of my best resources in the frontend interview prep.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;paid-resources&quot;&gt;Paid Resources&lt;a aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot; href=&quot;#paid-resources&quot; class=&quot;internal&quot;&gt; §&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.greatfrontend.com&quot; class=&quot;external&quot;&gt;GreatFrontend ⭐️⭐️&lt;/a&gt;: They have some interesting discussions in design systems in frontend architecture, In addition to hands on exercises, and plans to prepare for the interviews.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;javascript&quot;&gt;JavaScript&lt;a aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot; href=&quot;#javascript&quot; class=&quot;internal&quot;&gt; §&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;&lt;a href=&quot;../programming-languages/javascript&quot; class=&quot;internal&quot; data-slug=&quot;programming-languages/javascript&quot;&gt;javascript&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://jsvault.com/&quot; class=&quot;external&quot;&gt;https://jsvault.com/&lt;/a&gt; collection of tricky JS interview questions.&lt;/li&gt;
&lt;/ul&gt;</description>
    <pubDate>Sat, 21 Oct 2023 23:01:32 GMT</pubDate>
  </item><item>
    <title>PWA</title>
    <link>https://notes.zeyadnotes.dev/frontend/pwa</link>
    <guid>https://notes.zeyadnotes.dev/frontend/pwa</guid>
    <description>&lt;p&gt;&lt;a href=&quot;https://blog.twitter.com/engineering/en_us/topics/open-source/2017/how-we-built-twitter-lite&quot; class=&quot;external&quot;&gt;How we built Twitter Lite&lt;/a&gt;&lt;/p&gt;</description>
    <pubDate>Sat, 21 Oct 2023 10:35:57 GMT</pubDate>
  </item><item>
    <title>Frontend Roadmap</title>
    <link>https://notes.zeyadnotes.dev/frontend/roadmap</link>
    <guid>https://notes.zeyadnotes.dev/frontend/roadmap</guid>
    <description>&lt;h1 id=&quot;frontend&quot;&gt;Frontend&lt;a aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot; href=&quot;#frontend&quot; class=&quot;internal&quot;&gt; §&lt;/a&gt;&lt;/h1&gt;
&lt;h2 id=&quot;frontend-learning-path-updated-2022&quot;&gt;Frontend Learning Path (Updated 2022)&lt;a aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot; href=&quot;#frontend-learning-path-updated-2022&quot; class=&quot;internal&quot;&gt; §&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id=&quot;notes-before-learning&quot;&gt;Notes before learning&lt;a aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot; href=&quot;#notes-before-learning&quot; class=&quot;internal&quot;&gt; §&lt;/a&gt;&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;Most of online courses just introduce basic information of the &lt;em&gt;&lt;strong&gt;X&lt;/strong&gt;&lt;/em&gt; in its current version of &lt;em&gt;&lt;strong&gt;X&lt;/strong&gt;&lt;/em&gt;, they will not introduce everything, and you’ll not learn everything from courses, &lt;strong&gt;Documentations&lt;/strong&gt; is the most important source/guide that you have to learn how to use it to use their product (&lt;em&gt;&lt;strong&gt;X&lt;/strong&gt;&lt;/em&gt;).&lt;/li&gt;
&lt;li&gt;Applying what you’re learning is a regular activity that you must do while learning anything in programming, &lt;strong&gt;code&lt;/strong&gt; everything you learn.&lt;/li&gt;
&lt;li&gt;While learning or doing, you’ll definitely struggle in doing things, I strongly recommend create a &lt;a href=&quot;http://stackoverflow.com&quot; class=&quot;external&quot;&gt;stackoverflow.com&lt;/a&gt; or &lt;a href=&quot;https://reddit.com&quot; class=&quot;external&quot;&gt;reddit.com&lt;/a&gt; account and &lt;strong&gt;ASK&lt;/strong&gt; the community, please don’t hesitate to ask communities, &lt;a href=&quot;https://stackoverflow.com/help/how-to-ask&quot; class=&quot;external&quot;&gt;Learn how to ask a good question&lt;/a&gt; it’s a powerful skill!&lt;/li&gt;
&lt;li&gt;Use coding communities like &lt;strong&gt;GitHub&lt;/strong&gt; to share what you’re coding with the public, It’ll be a reference for you in the future as well, Although it’ll help you to get job opportunities because people know you’re sharing code about &lt;em&gt;&lt;strong&gt;X&lt;/strong&gt;&lt;/em&gt;.&lt;/li&gt;
&lt;li&gt;Don’t get distracted, You wanna learn &lt;em&gt;&lt;strong&gt;X&lt;/strong&gt;&lt;/em&gt;** ** and you’ve asked someone, you got a resource, go with it, then apply! Don’t spend your days getting the perfect resource to learn &lt;em&gt;&lt;strong&gt;X&lt;/strong&gt;&lt;/em&gt;, __ in tech you never stop learning, so just start with any and increase your knowledge then.&lt;/li&gt;
&lt;li&gt;Don’t compare yourself to others, you don’t have the same abilities, time, environment, anything, you’re completely different/unique, persistence is the common factor for success.&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&quot;path&quot;&gt;Path&lt;a aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot; href=&quot;#path&quot; class=&quot;internal&quot;&gt; §&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;&lt;em&gt;Skip what you already know.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;strong&gt;If you prefer learning from videos.&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;
&lt;h4 id=&quot;introducing-to-internet&quot;&gt;Introducing to internet&lt;a aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot; href=&quot;#introducing-to-internet&quot; class=&quot;internal&quot;&gt; §&lt;/a&gt;&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;[en][video] &lt;a href=&quot;https://www.youtube.com/watch?v=7_LPdttKXPc&amp;#x26;ab_channel=Aaron&quot; class=&quot;external&quot;&gt;https://www.youtube.com/watch?v=7_LPdttKXPc&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;[en][video] &lt;a href=&quot;https://www.youtube.com/watch?v=Sfzo4xm5eX8&amp;#x26;ab_channel=BLASTERTECHNOLOGY&quot; class=&quot;external&quot;&gt;https://www.youtube.com/watch?v=Sfzo4xm5eX8&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;[en][article] &lt;a href=&quot;https://www.hp.com/us-en/shop/tech-takes/how-does-the-internet-work&quot; class=&quot;external&quot;&gt;https://www.hp.com/us-en/shop/tech-takes/how-does-the-internet-work&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;[ar][video] &lt;a href=&quot;https://www.youtube.com/watch?v=w1GpaH8XIUE&quot; class=&quot;external&quot;&gt;https://www.youtube.com/watch?v=w1GpaH8XIUE&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&quot;html&quot;&gt;HTML&lt;a aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot; href=&quot;#html&quot; class=&quot;internal&quot;&gt; §&lt;/a&gt;&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;[en][video] &lt;a href=&quot;https://www.youtube.com/watch?v=pQN-pnXPaVg&quot; class=&quot;external&quot;&gt;https://www.youtube.com/watch?v=pQN-pnXPaVg&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;[ar][video] &lt;a href=&quot;https://www.youtube.com/watch?v=q3yFo-t1ykw&amp;#x26;t=1109s&quot; class=&quot;external&quot;&gt;https://www.youtube.com/watch?v=q3yFo-t1ykw&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&quot;css&quot;&gt;CSS&lt;a aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot; href=&quot;#css&quot; class=&quot;internal&quot;&gt; §&lt;/a&gt;&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;[en][video] &lt;a href=&quot;https://www.youtube.com/watch?v=1Rs2ND1ryYc&quot; class=&quot;external&quot;&gt;https://www.youtube.com/watch?v=1Rs2ND1ryYc&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;[ar][video] &lt;a href=&quot;https://www.youtube.com/watch?v=Z-5QVutAEW4&amp;#x26;t=4735s&quot; class=&quot;external&quot;&gt;https://www.youtube.com/watch?v=Z-5QVutAEW4&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&quot;html-and-css-practice&quot;&gt;HTML and CSS Practice&lt;a aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot; href=&quot;#html-and-css-practice&quot; class=&quot;internal&quot;&gt; §&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;&lt;em&gt;Practice as much as you can, You could start with the next two resources:&lt;/em&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;[en][video] &lt;a href=&quot;https://www.youtube.com/watch?v=O7WbVj5apxU&quot; class=&quot;external&quot;&gt;https://www.youtube.com/watch?v=O7WbVj5apxU&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;[ar][video] &lt;a href=&quot;https://www.youtube.com/watch?v=cARGOrtiWt4&quot; class=&quot;external&quot;&gt;https://www.youtube.com/watch?v=cARGOrtiWt4&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&quot;javascript&quot;&gt;Javascript&lt;a aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot; href=&quot;#javascript&quot; class=&quot;internal&quot;&gt; §&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;&lt;a href=&quot;../programming-languages/javascript&quot; class=&quot;internal&quot; data-slug=&quot;programming-languages/javascript&quot;&gt;Javascript&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;[en][video] &lt;a href=&quot;https://www.youtube.com/watch?v=PkZNo7MFNFg&amp;#x26;t=9574s&quot; class=&quot;external&quot;&gt;https://www.youtube.com/watch?v=PkZNo7MFNFg&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;[ar][video] &lt;a href=&quot;https://www.youtube.com/watch?v=Ai_0ONyPay4&amp;#x26;t=5606s&quot; class=&quot;external&quot;&gt;https://www.youtube.com/watch?v=Ai_0ONyPay4&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&quot;javascript-practice&quot;&gt;Javascript Practice&lt;a aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot; href=&quot;#javascript-practice&quot; class=&quot;internal&quot;&gt; §&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;&lt;em&gt;Practice as much as you can, You could start with the next two resources:&lt;/em&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;[en][video] &lt;a href=&quot;https://www.youtube.com/watch?v=3PHXvlpOkf4&quot; class=&quot;external&quot;&gt;https://www.youtube.com/watch?v=3PHXvlpOkf4&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&quot;react&quot;&gt;React&lt;a aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot; href=&quot;#react&quot; class=&quot;internal&quot;&gt; §&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;&lt;a href=&quot;../reactjs/reactjs&quot; class=&quot;internal&quot; data-slug=&quot;reactjs/reactjs&quot;&gt;Reactjs&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;[en][video] &lt;a href=&quot;https://www.youtube.com/watch?v=LlvBzyy-558&quot; class=&quot;external&quot;&gt;https://www.youtube.com/watch?v=LlvBzyy-558&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;[en][video] &lt;a href=&quot;https://www.youtube.com/watch?v=MfIoAG3e7p4&quot; class=&quot;external&quot;&gt;https://www.youtube.com/watch?v=MfIoAG3e7p4&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&quot;react-practice&quot;&gt;React Practice&lt;a aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot; href=&quot;#react-practice&quot; class=&quot;internal&quot;&gt; §&lt;/a&gt;&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;[playlist] &lt;a href=&quot;https://www.youtube.com/watch?v=GDa8kZLNhJ4&amp;#x26;list=PL6QREj8te1P6wX9m5KnicnDVEucbOPsqR&quot; class=&quot;external&quot;&gt;https://www.youtube.com/watch?v=GDa8kZLNhJ4&amp;#x26;list=PL6QREj8te1P6wX9m5KnicnDVEucbOPsqR&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&quot;whats-next&quot;&gt;What’s next?&lt;a aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot; href=&quot;#whats-next&quot; class=&quot;internal&quot;&gt; §&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;Now, you able to get your first job as frontend developer, you have a good portfolio (GitHub, LinkedIn, Stack overflow), you’ve built apps.&lt;/p&gt;
&lt;p&gt;Some topics you can learn after that:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Micro frontends.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;../frontend/design-systems&quot; class=&quot;internal&quot; data-slug=&quot;frontend/design-systems&quot;&gt;Design Systems&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Testing.&lt;/li&gt;
&lt;li&gt;Server side rendering.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;../git/git&quot; class=&quot;internal&quot; data-slug=&quot;git/git&quot;&gt;Git&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;state machine.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;../design-patterns/design-patterns&quot; class=&quot;internal&quot; data-slug=&quot;design-patterns/design-patterns&quot;&gt;Design Patterns&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;learn other frontend frameworks.&lt;/li&gt;
&lt;/ul&gt;</description>
    <pubDate>Sat, 21 Oct 2023 10:35:57 GMT</pubDate>
  </item><item>
    <title>Tailwindcss Tips</title>
    <link>https://notes.zeyadnotes.dev/frontend/ui-frameworks/tailwindcss</link>
    <guid>https://notes.zeyadnotes.dev/frontend/ui-frameworks/tailwindcss</guid>
    <description>&lt;h2 id=&quot;setup-themes&quot;&gt;Setup themes&lt;a aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot; href=&quot;#setup-themes&quot; class=&quot;internal&quot;&gt; §&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;the easiest way to setup multiple themes or just dark mode in tailwindcss.
#tailwindcss&lt;/p&gt;
&lt;div data-rehype-pretty-code-fragment=&quot;&quot;&gt;&lt;pre style=&quot;background-color: var(--shiki-color-background)&quot; tabindex=&quot;0&quot; data-language=&quot;css&quot; data-theme=&quot;default&quot;&gt;&lt;code data-language=&quot;css&quot; data-theme=&quot;default&quot;&gt;&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;// global&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-function)&quot;&gt;.css&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt; &lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-token-function)&quot;&gt;.theme1&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; {&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;	--bg-color&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-constant)&quot;&gt;234&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-punctuation)&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-constant)&quot;&gt; 246&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-punctuation)&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-constant)&quot;&gt; 255&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt; &lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-token-function)&quot;&gt;.theme2&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; {&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;	--bg-color&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-constant)&quot;&gt;234&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-punctuation)&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-constant)&quot;&gt; 246&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-punctuation)&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-constant)&quot;&gt; 255&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt; &lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;// if you just want to handle dark/light themes&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt; &lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-token-function)&quot;&gt;:root&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; {&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;	--bg-color&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-constant)&quot;&gt;234&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-punctuation)&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-constant)&quot;&gt; 246&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-punctuation)&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-constant)&quot;&gt; 255&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;; // &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-constant)&quot;&gt;light&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt; &lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;@media&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; (prefers-color-schema&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; dark) {&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;	&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-function)&quot;&gt;:root&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; {&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;		--bg-color&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-constant)&quot;&gt;100&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-punctuation)&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-constant)&quot;&gt; 200&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-punctuation)&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-constant)&quot;&gt; 255&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;; // &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-constant)&quot;&gt;dark&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;	}&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;div data-rehype-pretty-code-fragment=&quot;&quot;&gt;&lt;pre style=&quot;background-color: var(--shiki-color-background)&quot; tabindex=&quot;0&quot; data-language=&quot;js&quot; data-theme=&quot;default&quot;&gt;&lt;code data-language=&quot;js&quot; data-theme=&quot;default&quot;&gt;&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-token-comment)&quot;&gt;// tailwind.config.js&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt; &lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-token-constant)&quot;&gt;module&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-constant)&quot;&gt;exports&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; {&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;	theme&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; {&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;		extend&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; {&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;			colors&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; {&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;					bgColor&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-string-expression)&quot;&gt;&quot;rgba(var(--bg-color))&quot;&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-punctuation)&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;				}&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;			}&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;		}&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;	}&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;And finally you can do something like this to the wrapper element of your app&lt;/p&gt;
&lt;div data-rehype-pretty-code-fragment=&quot;&quot;&gt;&lt;pre style=&quot;background-color: var(--shiki-color-background)&quot; tabindex=&quot;0&quot; data-language=&quot;html&quot; data-theme=&quot;default&quot;&gt;&lt;code data-language=&quot;html&quot; data-theme=&quot;default&quot;&gt;&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;&amp;#x3C;&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-string-expression)&quot;&gt;body&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-function)&quot;&gt;className&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-string-expression)&quot;&gt;&quot;theme1&quot;&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;...&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;em&gt;Note that we have used &lt;code&gt;rgba&lt;/code&gt; to handle cases like &lt;code&gt;class=&quot;bg-bg-color/50&quot;&lt;/code&gt; the opacity of the colors.&lt;/em&gt;&lt;/p&gt;
&lt;h2 id=&quot;merge-classes&quot;&gt;Merge Classes&lt;a aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot; href=&quot;#merge-classes&quot; class=&quot;internal&quot;&gt; §&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://www.npmjs.com/package/tailwind-merge&quot; class=&quot;external&quot;&gt;tailwind-merge&lt;/a&gt; is Utility function to efficiently merge &lt;a href=&quot;https://tailwindcss.com/&quot; class=&quot;external&quot;&gt;Tailwind CSS&lt;/a&gt; classes in JS without style conflicts.&lt;/p&gt;
&lt;div data-rehype-pretty-code-fragment=&quot;&quot;&gt;&lt;pre style=&quot;background-color: var(--shiki-color-background)&quot; tabindex=&quot;0&quot; data-language=&quot;ts&quot; data-theme=&quot;default&quot;&gt;&lt;code data-language=&quot;ts&quot; data-theme=&quot;default&quot;&gt;&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;import&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; { twMerge } &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;from&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-string-expression)&quot;&gt;&#039;tailwind-merge&#039;&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt; &lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-token-function)&quot;&gt;twMerge&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-string-expression)&quot;&gt;&#039;px-2 py-1 bg-red hover:bg-dark-red&#039;&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-punctuation)&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-string-expression)&quot;&gt;&#039;p-3 bg-[#B91C1C]&#039;&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-token-comment)&quot;&gt;// → &#039;hover:bg-dark-red p-3 bg-[#B91C1C]&#039;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href=&quot;https://youtu.be/aSlK3GhRuXA?si=RozkmUBwSMVcpdbv&quot; class=&quot;external&quot;&gt;10 Tailwind Tricks You NEED To Know&lt;/a&gt;&lt;/p&gt;</description>
    <pubDate>Sun, 09 Jun 2024 03:25:04 GMT</pubDate>
  </item><item>
    <title>Gitk</title>
    <link>https://notes.zeyadnotes.dev/git/Gitk</link>
    <guid>https://notes.zeyadnotes.dev/git/Gitk</guid>
    <description>&lt;p&gt;If you’re one of those who comments the code that you don’t need to use in the current rel&lt;/p&gt;</description>
    <pubDate>Mon, 15 Apr 2024 07:06:52 GMT</pubDate>
  </item><item>
    <title>Copy Changed Files between git branches</title>
    <link>https://notes.zeyadnotes.dev/git/copy-changed-files-between-git-branches</link>
    <guid>https://notes.zeyadnotes.dev/git/copy-changed-files-between-git-branches</guid>
    <description>&lt;h2 id=&quot;intro&quot;&gt;Intro&lt;a aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot; href=&quot;#intro&quot; class=&quot;internal&quot;&gt; §&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;In some cases, &lt;a href=&quot;https://git-scm.com/docs/git-cherry-pick&quot; class=&quot;external&quot;&gt;&lt;code&gt;cherry-pick&lt;/code&gt;&lt;/a&gt; commits will be tough when you’re working on a git project with a long history and a group of contributors. Conflicts may eat your time and focus leading you to a uncertainty action, or i mean action with no validation either it’s wrong or right.&lt;/p&gt;
&lt;h2 id=&quot;some-situations-could-be-solved-with-different-solutions&quot;&gt;Some situations could be solved with different solutions&lt;a aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot; href=&quot;#some-situations-could-be-solved-with-different-solutions&quot; class=&quot;internal&quot;&gt; §&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;The solution that will be introduced in this post is tailored specifically to some certain situations, just keep it in your mind, you may find it helpful to you someday.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Generate a file of the changed files by your fingers using your email&lt;/li&gt;
&lt;/ol&gt;
&lt;div data-rehype-pretty-code-fragment=&quot;&quot;&gt;&lt;pre style=&quot;background-color: var(--shiki-color-background)&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot; data-theme=&quot;default&quot;&gt;&lt;code data-language=&quot;bash&quot; data-theme=&quot;default&quot;&gt;&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-token-function)&quot;&gt;git&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-string)&quot;&gt;log&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-string)&quot;&gt;--author&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-string-expression)&quot;&gt;&quot;YOUR_EMAIL&quot;&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-string)&quot;&gt;--oneline&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-string)&quot;&gt;--pretty=format:%H&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;|&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-function)&quot;&gt;sort&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-string)&quot;&gt;-u&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;  &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;|&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-function)&quot;&gt;xargs&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-string)&quot;&gt;-I&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-string)&quot;&gt;{}&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-string)&quot;&gt;git&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-string)&quot;&gt;show&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-string)&quot;&gt;--pretty=format:&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-string)&quot;&gt;--name-only&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-string)&quot;&gt;{}&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;&gt;&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-string)&quot;&gt;changed_files.txt&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;The file will be something like this&lt;/p&gt;
&lt;div data-rehype-pretty-code-fragment=&quot;&quot;&gt;&lt;pre style=&quot;background-color: var(--shiki-color-background)&quot; tabindex=&quot;0&quot; data-language=&quot;txt&quot; data-theme=&quot;default&quot;&gt;&lt;code data-language=&quot;txt&quot; data-theme=&quot;default&quot;&gt;&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;path/file.txt&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;path/folder/file.ts&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;ol start=&quot;2&quot;&gt;
&lt;li&gt;Create a new clone of the project with the destination branch.&lt;/li&gt;
&lt;li&gt;Copy the files from the generated changed file to the destination repo, I use &lt;a href=&quot;https://man7.org/linux/man-pages/man1/rsync.1.html&quot; class=&quot;external&quot;&gt;&lt;code&gt;rsync&lt;/code&gt;&lt;/a&gt; instead of &lt;a href=&quot;https://man7.org/linux/man-pages/man1/cp.1.html&quot; class=&quot;external&quot;&gt;&lt;code&gt;cp&lt;/code&gt;&lt;/a&gt; to copy using the full path.&lt;/li&gt;
&lt;/ol&gt;
&lt;div data-rehype-pretty-code-fragment=&quot;&quot;&gt;&lt;pre style=&quot;background-color: var(--shiki-color-background)&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot; data-theme=&quot;default&quot;&gt;&lt;code data-language=&quot;bash&quot; data-theme=&quot;default&quot;&gt;&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-token-function)&quot;&gt;rsync&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-string)&quot;&gt;-a&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-string)&quot;&gt;--files-from=changed_files.txt&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-string)&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-string)&quot;&gt;../cloned-repo-destination-branch&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;blockquote class=&quot;callout&quot; data-callout=&quot;warning&quot;&gt;
&lt;div class=&quot;callout-title&quot;&gt;
                  &lt;div class=&quot;callout-icon&quot;&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;100%&quot; height=&quot;100%&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;path d=&quot;m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3Z&quot;&gt;&lt;/path&gt;&lt;line x1=&quot;12&quot; y1=&quot;9&quot; x2=&quot;12&quot; y2=&quot;13&quot;&gt;&lt;/line&gt;&lt;line x1=&quot;12&quot; y1=&quot;17&quot; x2=&quot;12.01&quot; y2=&quot;17&quot;&gt;&lt;/line&gt;&lt;/svg&gt;&lt;/div&gt;
                  &lt;div class=&quot;callout-title-inner&quot;&gt;&lt;p&gt;The commands run on macOS, find the suitable command lines that do the same thing on your OS. &lt;/p&gt;&lt;/div&gt;
                  
                &lt;/div&gt;
&lt;/blockquote&gt;
&lt;h2 id=&quot;lets-explain-the-terminal-commands&quot;&gt;Let’s explain the terminal commands&lt;a aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot; href=&quot;#lets-explain-the-terminal-commands&quot; class=&quot;internal&quot;&gt; §&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Log the commits hashes by specific author using its email&lt;/li&gt;
&lt;/ul&gt;
&lt;div data-rehype-pretty-code-fragment=&quot;&quot;&gt;&lt;pre style=&quot;background-color: var(--shiki-color-background)&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot; data-theme=&quot;default&quot;&gt;&lt;code data-language=&quot;bash&quot; data-theme=&quot;default&quot;&gt;&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-token-function)&quot;&gt;git&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-string)&quot;&gt;log&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-string)&quot;&gt;--author&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-string-expression)&quot;&gt;&quot;YOUR_EMAIL&quot;&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-string)&quot;&gt;--oneline&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-string)&quot;&gt;--pretty=format:%H&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;Sort and Just pick the unique, we just need the changed files without repetition.&lt;/li&gt;
&lt;/ul&gt;
&lt;div data-rehype-pretty-code-fragment=&quot;&quot;&gt;&lt;pre style=&quot;background-color: var(--shiki-color-background)&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot; data-theme=&quot;default&quot;&gt;&lt;code data-language=&quot;bash&quot; data-theme=&quot;default&quot;&gt;&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-token-function)&quot;&gt;sort&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-string)&quot;&gt;-u&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;To show just the commit changed files we use this line&lt;/li&gt;
&lt;/ul&gt;
&lt;div data-rehype-pretty-code-fragment=&quot;&quot;&gt;&lt;pre style=&quot;background-color: var(--shiki-color-background)&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot; data-theme=&quot;default&quot;&gt;&lt;code data-language=&quot;bash&quot; data-theme=&quot;default&quot;&gt;&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-token-function)&quot;&gt;git&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-string)&quot;&gt;show&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-string)&quot;&gt;--pretty=format:&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-string)&quot;&gt;--name-only&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-string-expression)&quot;&gt;&quot;hash&quot;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;Until then we have a list of commits hashes, we need to view the changed files in each commit. we will use &lt;a href=&quot;https://man7.org/linux/man-pages/man1/xargs.1.html&quot; class=&quot;external&quot;&gt;&lt;code&gt;xargs&lt;/code&gt;&lt;/a&gt; here to get the input from the prev commands using pipes&lt;/li&gt;
&lt;/ul&gt;
&lt;div data-rehype-pretty-code-fragment=&quot;&quot;&gt;&lt;pre style=&quot;background-color: var(--shiki-color-background)&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot; data-theme=&quot;default&quot;&gt;&lt;code data-language=&quot;bash&quot; data-theme=&quot;default&quot;&gt;&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-token-function)&quot;&gt;xargs&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-string)&quot;&gt;-I&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-string)&quot;&gt;{}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Some resources&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://mpov.timmorgan.org/use-rsync-instead-of-cp/&quot; class=&quot;external&quot;&gt;https://mpov.timmorgan.org/use-rsync-instead-of-cp/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote class=&quot;callout&quot; data-callout=&quot;note&quot;&gt;
&lt;div class=&quot;callout-title&quot;&gt;
                  &lt;div class=&quot;callout-icon&quot;&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;100%&quot; height=&quot;100%&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;line x1=&quot;18&quot; y1=&quot;2&quot; x2=&quot;22&quot; y2=&quot;6&quot;&gt;&lt;/line&gt;&lt;path d=&quot;M7.5 20.5 19 9l-4-4L3.5 16.5 2 22z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/div&gt;
                  &lt;div class=&quot;callout-title-inner&quot;&gt;&lt;p&gt;Use chatGPT to explain that more &lt;/p&gt;&lt;/div&gt;
                  
                &lt;/div&gt;
&lt;p&gt;If you’re still have questions, you can also share your thoughts with me, or use chatGPT to explain the commands more to you, also you can use google.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a href=&quot;../git/git&quot; class=&quot;internal&quot; data-slug=&quot;git/git&quot;&gt;git&lt;/a&gt;&lt;/p&gt;</description>
    <pubDate>Sat, 30 Dec 2023 23:03:03 GMT</pubDate>
  </item><item>
    <title>Git Bisect</title>
    <link>https://notes.zeyadnotes.dev/git/git-bisect</link>
    <guid>https://notes.zeyadnotes.dev/git/git-bisect</guid>
    <description>&lt;p&gt;You can use &lt;code&gt;git bisect&lt;/code&gt; to search for the first commit that cause an error or something.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;git bisect start&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;I’ve published a video about it you can &lt;a href=&quot;https://youtu.be/bkxvSQ0WMuE&quot; class=&quot;external&quot;&gt;view it from here&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.youtube.com/watch?ab_channel=ZeyadEtman&amp;#x26;v=bkxvSQ0WMuE&quot; class=&quot;external&quot;&gt;https://www.youtube.com/watch?ab_channel=ZeyadEtman&amp;#x26;v=bkxvSQ0WMuE&lt;/a&gt;”&lt;/p&gt;
&lt;p&gt;More details on &lt;a href=&quot;https://git-scm.com/docs/git-bisect&quot; class=&quot;external&quot;&gt;Git Documentation&lt;/a&gt;.&lt;/p&gt;</description>
    <pubDate>Sat, 21 Oct 2023 10:35:57 GMT</pubDate>
  </item><item>
    <title>Git Log</title>
    <link>https://notes.zeyadnotes.dev/git/git-log</link>
    <guid>https://notes.zeyadnotes.dev/git/git-log</guid>
    <description>&lt;h3 id=&quot;git-log&quot;&gt;Git Log&lt;a aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot; href=&quot;#git-log&quot; class=&quot;internal&quot;&gt; §&lt;/a&gt;&lt;/h3&gt;
&lt;h4 id=&quot;search-commits-for-specific-word&quot;&gt;Search commits for specific word&lt;a aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot; href=&quot;#search-commits-for-specific-word&quot; class=&quot;internal&quot;&gt; §&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;&lt;code&gt;git log -S &quot;import { blabla }&quot; --oneline&lt;/code&gt;&lt;/p&gt;</description>
    <pubDate>Sat, 21 Oct 2023 10:35:57 GMT</pubDate>
  </item><item>
    <title>Git</title>
    <link>https://notes.zeyadnotes.dev/git/git</link>
    <guid>https://notes.zeyadnotes.dev/git/git</guid>
    <description>&lt;p&gt;Here’s one of the best things to learn git by doing: &lt;a href=&quot;https://wyag.thb.lt&quot; class=&quot;external&quot;&gt;https://wyag.thb.lt&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&quot;visualizations&quot;&gt;Visualizations&lt;a aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot; href=&quot;#visualizations&quot; class=&quot;internal&quot;&gt; §&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://marklodato.github.io/visual-git-guide/index-en.html&quot; class=&quot;external&quot;&gt;A Visual Git Reference&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;tutorials&quot;&gt;Tutorials&lt;a aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot; href=&quot;#tutorials&quot; class=&quot;internal&quot;&gt; §&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://timothya.com/blog/git-stack/#rebase-no-conflict&quot; class=&quot;external&quot;&gt;A Better Model for Stacked (GitHub) Pull Requests&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;See more&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;../git/git-log&quot; class=&quot;internal&quot; data-slug=&quot;git/git-log&quot;&gt;git-log&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;../git/git-bisect&quot; class=&quot;internal&quot; data-slug=&quot;git/git-bisect&quot;&gt;git-bisect&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;../scripts/jira-ticket-git-flow&quot; class=&quot;internal&quot; data-slug=&quot;scripts/jira-ticket-git-flow&quot;&gt;jira-ticket-git-flow&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description>
    <pubDate>Sat, 21 Oct 2023 10:35:57 GMT</pubDate>
  </item><item>
    <title>Git Tips &amp; Tricks</title>
    <link>https://notes.zeyadnotes.dev/git/tips</link>
    <guid>https://notes.zeyadnotes.dev/git/tips</guid>
    <description>&lt;h2 id=&quot;ignore-files-changes-in-git-locally&quot;&gt;Ignore files changes in git locally&lt;a aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot; href=&quot;#ignore-files-changes-in-git-locally&quot; class=&quot;internal&quot;&gt; §&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;You can ignore files from the worktree&lt;/strong&gt;
&lt;code&gt;git update-index --skip-worktree [files]&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Remove files from ignoring&lt;/strong&gt;
&lt;code&gt;git update-index --no-skip-worktree [files]&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;To list the files you’ve added before&lt;/strong&gt;
&lt;code&gt;git ls-files -v . | grep &quot;^S&quot;&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;To understand this line:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://git-scm.com/docs/git-ls-files&quot; class=&quot;external&quot;&gt;https://git-scm.com/docs/git-ls-files&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://stackoverflow.com/a/42363882/5721245&quot; class=&quot;external&quot;&gt;https://stackoverflow.com/a/42363882/5721245&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description>
    <pubDate>Sat, 21 Oct 2023 10:35:57 GMT</pubDate>
  </item><item>
    <title>Configure Keycloak instance to run on localhost using https on macOS</title>
    <link>https://notes.zeyadnotes.dev/keycloak/handle-https</link>
    <guid>https://notes.zeyadnotes.dev/keycloak/handle-https</guid>
    <description>&lt;h2 id=&quot;prerequisites&quot;&gt;Prerequisites&lt;a aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot; href=&quot;#prerequisites&quot; class=&quot;internal&quot;&gt; §&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;You’re using macOS.&lt;/li&gt;
&lt;li&gt;You have keycloak instance running on your machine.&lt;/li&gt;
&lt;li&gt;I’ll use chrome for this tutorial.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;problems&quot;&gt;Problems&lt;a aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot; href=&quot;#problems&quot; class=&quot;internal&quot;&gt; §&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;The problem is we need to serve from two ports, the first one is the keycloak admin instance (Keycloak Dashboard), and the second one is the client which uses the keycloak service. we need to serve them via the secure protocol &lt;strong&gt;https&lt;/strong&gt;.&lt;/p&gt;
&lt;h3 id=&quot;your-connection-is-not-private&quot;&gt;Your connection is not private&lt;a aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot; href=&quot;#your-connection-is-not-private&quot; class=&quot;internal&quot;&gt; §&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;So when we try to use https on localhost, we’ll face &lt;em&gt;your connection is not private&lt;/em&gt; error, because we’re serving localhost via https&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;../Pasted-image-20230807040814.png&quot; alt=&quot;Your connection is not private&quot;&gt;&lt;/p&gt;
&lt;p&gt;To Solve this error All you have to do is write chrome://flags in the chrome url, and then search for &lt;em&gt;Allow invalid certificates for resources loaded from localhost.&lt;/em&gt; to enable it.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;../Pasted-image-20230807041239.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;Great! So now we can do the request to localhost with an invalid certificate.&lt;/p&gt;
&lt;h3 id=&quot;certificate-is-not-valid&quot;&gt;Certificate is not valid&lt;a aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot; href=&quot;#certificate-is-not-valid&quot; class=&quot;internal&quot;&gt; §&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Now we’re facing this error&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;../Pasted-image-20230807040044.png&quot; alt=&quot;The current case&quot;&gt;&lt;/p&gt;
&lt;p&gt;When you click over it, you’ll see that the certificate is not valid, in the next steps we’ll trust this certificate&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;../Pasted-image-20230807040342.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;To solve this issue, we need to trust the certificate on our machine, to do this&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Click on &lt;em&gt;Certificate is not valid&lt;/em&gt; button.&lt;/li&gt;
&lt;li&gt;You’ll see a Certificate Viewer popup, Click on the details tab.&lt;/li&gt;
&lt;li&gt;Click on &lt;strong&gt;Export&lt;/strong&gt; and select &lt;strong&gt;PKCS #7, single certificate&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Open &lt;strong&gt;Keychain Access&lt;/strong&gt; app on your macOS and select &lt;strong&gt;Login&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;File &gt; Import Items &gt; select the file/certificate you’ve exported from chrome.&lt;/li&gt;
&lt;li&gt;Click on the certificate &gt; Trust &gt; Always Trust.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Great! Now we passed the localhost issue for the client.&lt;/p&gt;
&lt;p&gt;The last step is creating a new certificate for keycloak instance, and trust it on our machine.&lt;/p&gt;
&lt;h3 id=&quot;keycloak-certificate&quot;&gt;Keycloak certificate&lt;a aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot; href=&quot;#keycloak-certificate&quot; class=&quot;internal&quot;&gt; §&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;To create a new certificate on macOS, copy this command and put it on your terminal&lt;/p&gt;
&lt;div data-rehype-pretty-code-fragment=&quot;&quot;&gt;&lt;pre style=&quot;background-color: var(--shiki-color-background)&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot; data-theme=&quot;default&quot;&gt;&lt;code data-language=&quot;bash&quot; data-theme=&quot;default&quot;&gt;&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-function)&quot;&gt;openssl&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-string)&quot;&gt;req&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-string)&quot;&gt;-x509&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-string)&quot;&gt;-out&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-string)&quot;&gt;localhost.crt&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-string)&quot;&gt;-keyout&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-string)&quot;&gt;localhost.key&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; \&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;  &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-string)&quot;&gt;-newkey&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-string)&quot;&gt;rsa:2048&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-string)&quot;&gt;-nodes&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-string)&quot;&gt;-sha256&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; \&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;  &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-string)&quot;&gt;-subj&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-string-expression)&quot;&gt;&#039;/CN=localhost&#039;&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-string)&quot;&gt;-extensions&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-string)&quot;&gt;EXT&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-string)&quot;&gt;-config&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-string-expression)&quot;&gt;&amp;#x3C;( \&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-token-string-expression)&quot;&gt;   &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-function)&quot;&gt;printf&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-string-expression)&quot;&gt; &quot;[dn]\nCN=localhost\n[req]\ndistinguished_name = dn\n[EXT]\nsubjectAltName=DNS:localhost\nkeyUsage=digitalSignature\nextendedKeyUsage=serverAuth&quot;)&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;   &lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;This will create two files for you, the first one is &lt;code&gt;localhost.crt&lt;/code&gt; the certificate itself, and the second one is the localhost key, we’ll use both in the keycloak folder configuration so you can copy them.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;../Pasted-image-20230807043106.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;You can use them via a keycloak/certs folder.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;localhost.crt -&gt; keycloak-server.pem&lt;/li&gt;
&lt;li&gt;localhost.key -&gt; keycloak-server-key.pem&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;You can also use this command&lt;/p&gt;
&lt;div data-rehype-pretty-code-fragment=&quot;&quot;&gt;&lt;pre style=&quot;background-color: var(--shiki-color-background)&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot; data-theme=&quot;default&quot;&gt;&lt;code data-language=&quot;bash&quot; data-theme=&quot;default&quot;&gt;&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-token-function)&quot;&gt;bin/kc.[sh&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;|&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-function)&quot;&gt;bat]&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-string)&quot;&gt;start&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-string)&quot;&gt;--https-certificate-file=/path/to/certfile.pem&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-string)&quot;&gt;--https-certificate-key-file=/path/to/keyfile.pem&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h3 id=&quot;resources&quot;&gt;Resources&lt;a aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot; href=&quot;#resources&quot; class=&quot;internal&quot;&gt; §&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.keycloak.org/server/enabletls&quot; class=&quot;external&quot;&gt;https://www.keycloak.org/server/enabletls&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://letsencrypt.org/docs/certificates-for-localhost/&quot; class=&quot;external&quot;&gt;https://letsencrypt.org/docs/certificates-for-localhost/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;em&gt;Have you learned something new? Want to learn more?&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;../git/tips&quot; class=&quot;internal&quot; data-slug=&quot;git/tips&quot;&gt;tips&lt;/a&gt;&lt;/p&gt;</description>
    <pubDate>Sat, 21 Oct 2023 10:35:57 GMT</pubDate>
  </item><item>
    <title>Learning Notes</title>
    <link>https://notes.zeyadnotes.dev/learning-notes</link>
    <guid>https://notes.zeyadnotes.dev/learning-notes</guid>
    <description>&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;SOLID&lt;/strong&gt; principles and how to apply them in your mind before your code.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;OOP&lt;/strong&gt; even if you’re writing functional code, you have to know Object Oriented Programming to strengthen your knowledge.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Design Patterns&lt;/strong&gt; is a great examples on how to use OOP and SOLID Principles in a real use cases, try to use them in your code.&lt;/li&gt;
&lt;li&gt;Data structures and Algorithms even if you’ll not implement them inside you code, know basics.&lt;/li&gt;
&lt;li&gt;Git and how to use it in your daily work.&lt;/li&gt;
&lt;/ul&gt;</description>
    <pubDate>Sat, 21 Oct 2023 10:35:57 GMT</pubDate>
  </item><item>
    <title>ERESOLVE unable to resolve dependency tree</title>
    <link>https://notes.zeyadnotes.dev/npm/ERESOLVE-unable-to-resolve-dependency-tree</link>
    <guid>https://notes.zeyadnotes.dev/npm/ERESOLVE-unable-to-resolve-dependency-tree</guid>
    <description>&lt;p&gt;Hi, This is a group of resources if you’re facing an error while trying to install a npm package in your project.&lt;/p&gt;
&lt;div data-rehype-pretty-code-fragment=&quot;&quot;&gt;&lt;pre style=&quot;background-color: var(--shiki-color-background)&quot; tabindex=&quot;0&quot; data-language=&quot;javascript&quot; data-theme=&quot;default&quot;&gt;&lt;code data-language=&quot;javascript&quot; data-theme=&quot;default&quot;&gt;&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;npm &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-constant)&quot;&gt;ERR&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;!&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; code &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-constant)&quot;&gt;ERESOLVE&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;npm &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-constant)&quot;&gt;ERR&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;!&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-constant)&quot;&gt;ERESOLVE&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; unable to resolve dependency tree&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;npm &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-constant)&quot;&gt;ERR&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;!&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;npm &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-constant)&quot;&gt;ERR&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;!&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; While resolving&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-punctuation)&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; nexttwin@&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-constant)&quot;&gt;0.1&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-constant)&quot;&gt;0&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;npm &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-constant)&quot;&gt;ERR&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;!&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; Found&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-punctuation)&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; react@&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-constant)&quot;&gt;17.0&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-constant)&quot;&gt;1&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;npm &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-constant)&quot;&gt;ERR&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;!&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; node_modules&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;react&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;npm &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-constant)&quot;&gt;ERR&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;!&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;   react@&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-string-expression)&quot;&gt;&quot;17.0.1&quot;&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; from the root project&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;npm &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-constant)&quot;&gt;ERR&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;!&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;npm &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-constant)&quot;&gt;ERR&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;!&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; Could not resolve dependency&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-punctuation)&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;npm &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-constant)&quot;&gt;ERR&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;!&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; peer react@&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-string-expression)&quot;&gt;&quot;^16.8.0&quot;&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; from react&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;hook&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;mousetrap@&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-constant)&quot;&gt;2.0&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-constant)&quot;&gt;4&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;npm &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-constant)&quot;&gt;ERR&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;!&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; node_modules&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;react&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;hook&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;mousetrap&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;npm &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-constant)&quot;&gt;ERR&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;!&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;   react&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;hook&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;mousetrap@&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-string-expression)&quot;&gt;&quot;*&quot;&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; from the root project&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;npm &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-constant)&quot;&gt;ERR&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;!&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;If you don’t know what’s going on, then please know more about&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href=&quot;https://docs.npmjs.com/about-semantic-versioning&quot; class=&quot;external&quot;&gt;About semantic versioning&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://stackoverflow.com/questions/18875674/whats-the-difference-between-dependencies-devdependencies-and-peerdependencie&quot; class=&quot;external&quot;&gt;What’s the difference between dependencies, devDependencies, and peerDependencies in NPM package.json file?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.linkedin.com/pulse/npm-install-legacy-peer-deps-vs-force-shaharyar-saleem?utm_source=share&amp;#x26;utm_medium=member_ios&amp;#x26;utm_campaign=share_via&quot; class=&quot;external&quot;&gt;npm install —legacy-peer-deps vs —force&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;So check all the links above and now you’ll have a better understanding of what’s happened and how to fix it.&lt;/p&gt;</description>
    <pubDate>Mon, 30 Oct 2023 14:50:23 GMT</pubDate>
  </item><item>
    <title>Object Oriented Programming</title>
    <link>https://notes.zeyadnotes.dev/oop/oop</link>
    <guid>https://notes.zeyadnotes.dev/oop/oop</guid>
    <description>&lt;h2 id=&quot;polymorphism&quot;&gt;Polymorphism&lt;a aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot; href=&quot;#polymorphism&quot; class=&quot;internal&quot;&gt; §&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id=&quot;articles&quot;&gt;Articles&lt;a aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot; href=&quot;#articles&quot; class=&quot;internal&quot;&gt; §&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;&lt;a href=&quot;https://www.digitalocean.com/community/tutorials/typescript-polymorphic-this&quot; class=&quot;external&quot;&gt;Polymorphic this Type in TypeScript | DigitalOcean&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.cloudhadoop.com/2018/07/learn-overloading-in-typescript-with.html&quot; class=&quot;external&quot;&gt;https://www.cloudhadoop.com/2018/07/learn-overloading-in-typescript-with.html&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.cloudhadoop.com/2018/09/typescript-understanding-polymorphism.html&quot; class=&quot;external&quot;&gt;https://www.cloudhadoop.com/2018/09/typescript-understanding-polymorphism.html&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description>
    <pubDate>Sat, 21 Oct 2023 10:35:57 GMT</pubDate>
  </item><item>
    <title>Follow me for PS</title>
    <link>https://notes.zeyadnotes.dev/problem-solving/me-on-problem-solving</link>
    <guid>https://notes.zeyadnotes.dev/problem-solving/me-on-problem-solving</guid>
    <description>&lt;p&gt;Here’s my digital presence on the popular problem solving sites.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://codeforces.com/profile/zeyadetman&quot; class=&quot;external&quot;&gt;&lt;strong&gt;CodeForces.&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://leetcode.com/zeyadetman/&quot; class=&quot;external&quot;&gt;&lt;strong&gt;LeetCode.&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://uhunt.onlinejudge.org/id/322321&quot; class=&quot;external&quot;&gt;&lt;strong&gt;uHunt.&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.hackerrank.com/zeyadetman&quot; class=&quot;external&quot;&gt;&lt;strong&gt;HackerRank.&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;</description>
    <pubDate>Sat, 21 Oct 2023 10:35:57 GMT</pubDate>
  </item><item>
    <title>Problem Solving</title>
    <link>https://notes.zeyadnotes.dev/problem-solving/problem-solving</link>
    <guid>https://notes.zeyadnotes.dev/problem-solving/problem-solving</guid>
    <description>&lt;h1 id=&quot;sorting-algorithms-resources&quot;&gt;Sorting Algorithms Resources&lt;a aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot; href=&quot;#sorting-algorithms-resources&quot; class=&quot;internal&quot;&gt; §&lt;/a&gt;&lt;/h1&gt;
&lt;h3 id=&quot;complexity-of-sort-types&quot;&gt;Complexity of Sort Types&lt;a aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot; href=&quot;#complexity-of-sort-types&quot; class=&quot;internal&quot;&gt; §&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;&lt;a href=&quot;http://stackoverflow.com/questions/1933759/when-is-each-sorting-algorithm-used&quot; class=&quot;external&quot;&gt;http://stackoverflow.com/questions/1933759/when-is-each-sorting-algorithm-used&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&quot;visual&quot;&gt;Visual&lt;a aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot; href=&quot;#visual&quot; class=&quot;internal&quot;&gt; §&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;&lt;a href=&quot;http://visualgo.net/sorting&quot; class=&quot;external&quot;&gt;http://visualgo.net/sorting&lt;/a&gt;
&lt;a href=&quot;https://www.toptal.com/developers/sorting-algorithms&quot; class=&quot;external&quot;&gt;https://www.toptal.com/developers/sorting-algorithms&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&quot;resources-to-get-started&quot;&gt;Resources to get started&lt;a aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot; href=&quot;#resources-to-get-started&quot; class=&quot;internal&quot;&gt; §&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://goo.gl/unDETI&quot; class=&quot;external&quot;&gt;Mustafa Saad sheet.&lt;/a&gt; ⭐️&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://leetcode.com/discuss/career/450215/How-to-use-LeetCode-to-help-yourself-efficiently-and-effectively-(for-beginners)&quot; class=&quot;external&quot;&gt;How to use LeetCode to help yourself efficiently and effectively (for beginners)&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;ides&quot;&gt;IDEs&lt;a aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot; href=&quot;#ides&quot; class=&quot;internal&quot;&gt; §&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;C++:&lt;/strong&gt; &lt;a href=&quot;https://www.codeblocks.org/&quot; class=&quot;external&quot;&gt;Code::Blocks&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;See more:&lt;/strong&gt;
&lt;a href=&quot;../problem-solving/me-on-problem-solving&quot; class=&quot;internal&quot; data-slug=&quot;problem-solving/me-on-problem-solving&quot;&gt;Follow me&lt;/a&gt;&lt;/p&gt;</description>
    <pubDate>Sat, 21 Oct 2023 10:35:57 GMT</pubDate>
  </item><item>
    <title>Productivity</title>
    <link>https://notes.zeyadnotes.dev/productivity</link>
    <guid>https://notes.zeyadnotes.dev/productivity</guid>
    <description>&lt;h2 id=&quot;articles&quot;&gt;Articles&lt;a aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot; href=&quot;#articles&quot; class=&quot;internal&quot;&gt; §&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://chaidarun.com/ten-years-of-logging-my-life&quot; class=&quot;external&quot;&gt;Ten Years of Logging My Life.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://fictivekin.github.io/pmarchive-jekyll/guide_to_personal_productivity.html&quot; class=&quot;external&quot;&gt;Pmarca Guide to Personal Productivity&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description>
    <pubDate>Sat, 21 Oct 2023 10:35:57 GMT</pubDate>
  </item><item>
    <title>C++ Programming Languages</title>
    <link>https://notes.zeyadnotes.dev/programming-languages/cpp</link>
    <guid>https://notes.zeyadnotes.dev/programming-languages/cpp</guid>
    <description>&lt;h1 id=&quot;c-notes-for-ps&quot;&gt;C++ notes for PS&lt;a aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot; href=&quot;#c-notes-for-ps&quot; class=&quot;internal&quot;&gt; §&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;This is my notes for problem solving in c++, that I’ve learned while coding in C++ and found them helpful.&lt;/p&gt;
&lt;h4 id=&quot;convert-string-to-lowercase&quot;&gt;convert string to lowercase.&lt;a aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot; href=&quot;#convert-string-to-lowercase&quot; class=&quot;internal&quot;&gt; §&lt;/a&gt;&lt;/h4&gt;
&lt;div data-rehype-pretty-code-fragment=&quot;&quot;&gt;&lt;pre style=&quot;background-color: var(--shiki-color-background)&quot; tabindex=&quot;0&quot; data-language=&quot;cpp&quot; data-theme=&quot;default&quot;&gt;&lt;code data-language=&quot;cpp&quot; data-theme=&quot;default&quot;&gt;&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-token-function)&quot;&gt;trasform&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-constant)&quot;&gt;s&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-punctuation)&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-function)&quot;&gt;begin&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;()&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-punctuation)&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-constant)&quot;&gt;s&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-punctuation)&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-function)&quot;&gt;end&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;()&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-punctuation)&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-constant)&quot;&gt;s&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-punctuation)&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-function)&quot;&gt;begin&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;()&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-punctuation)&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;::tolower);&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h4 id=&quot;check-this-character-is-alpha&quot;&gt;check this character is alpha.&lt;a aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot; href=&quot;#check-this-character-is-alpha&quot; class=&quot;internal&quot;&gt; §&lt;/a&gt;&lt;/h4&gt;
&lt;div data-rehype-pretty-code-fragment=&quot;&quot;&gt;&lt;pre style=&quot;background-color: var(--shiki-color-background)&quot; tabindex=&quot;0&quot; data-language=&quot;cpp&quot; data-theme=&quot;default&quot;&gt;&lt;code data-language=&quot;cpp&quot; data-theme=&quot;default&quot;&gt;&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-token-function)&quot;&gt;isalpha&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;char&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;);&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h4 id=&quot;check-the-character-is-in-upper-case&quot;&gt;check the character is in upper case&lt;a aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot; href=&quot;#check-the-character-is-in-upper-case&quot; class=&quot;internal&quot;&gt; §&lt;/a&gt;&lt;/h4&gt;
&lt;div data-rehype-pretty-code-fragment=&quot;&quot;&gt;&lt;pre style=&quot;background-color: var(--shiki-color-background)&quot; tabindex=&quot;0&quot; data-language=&quot;cpp&quot; data-theme=&quot;default&quot;&gt;&lt;code data-language=&quot;cpp&quot; data-theme=&quot;default&quot;&gt;&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-token-function)&quot;&gt;isupper&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;char&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;);&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h4 id=&quot;import-all-libs&quot;&gt;Import all libs&lt;a aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot; href=&quot;#import-all-libs&quot; class=&quot;internal&quot;&gt; §&lt;/a&gt;&lt;/h4&gt;
&lt;div data-rehype-pretty-code-fragment=&quot;&quot;&gt;&lt;pre style=&quot;background-color: var(--shiki-color-background)&quot; tabindex=&quot;0&quot; data-language=&quot;cpp&quot; data-theme=&quot;default&quot;&gt;&lt;code data-language=&quot;cpp&quot; data-theme=&quot;default&quot;&gt;&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;&amp;#x3C;&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;bits&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;stdc&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;++&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;.h&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h4 id=&quot;copy-contents-of-deque-of-chars-into-string&quot;&gt;copy contents of deque of chars into string&lt;a aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot; href=&quot;#copy-contents-of-deque-of-chars-into-string&quot; class=&quot;internal&quot;&gt; §&lt;/a&gt;&lt;/h4&gt;
&lt;div data-rehype-pretty-code-fragment=&quot;&quot;&gt;&lt;pre style=&quot;background-color: var(--shiki-color-background)&quot; tabindex=&quot;0&quot; data-language=&quot;cpp&quot; data-theme=&quot;default&quot;&gt;&lt;code data-language=&quot;cpp&quot; data-theme=&quot;default&quot;&gt;&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;std&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-punctuation)&quot;&gt;::&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-function)&quot;&gt;string&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-function)&quot;&gt;ss&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-function)&quot;&gt;dqu&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-function)&quot;&gt;begin&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;()&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-punctuation)&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-function)&quot;&gt;dqu&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-function)&quot;&gt;end&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;());&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h4 id=&quot;modulo-of-a-negative-number-example&quot;&gt;Modulo of a negative number &lt;a href=&quot;http://codeforces.com/contest/450/problem/B&quot; class=&quot;external&quot;&gt;[Example]&lt;/a&gt;&lt;a aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot; href=&quot;#modulo-of-a-negative-number-example&quot; class=&quot;internal&quot;&gt; §&lt;/a&gt;&lt;/h4&gt;
&lt;div data-rehype-pretty-code-fragment=&quot;&quot;&gt;&lt;pre style=&quot;background-color: var(--shiki-color-background)&quot; tabindex=&quot;0&quot; data-language=&quot;cpp&quot; data-theme=&quot;default&quot;&gt;&lt;code data-language=&quot;cpp&quot; data-theme=&quot;default&quot;&gt;&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;?&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;n)&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;%&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;k &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;==&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; (k&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;?&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;(n&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;%&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;k))&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;%&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;k&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h4 id=&quot;find-substring&quot;&gt;Find substring&lt;a aria-hidden=&quot;true&quot; tabindex=&quot;-1&quot; href=&quot;#find-substring&quot; class=&quot;internal&quot;&gt; §&lt;/a&gt;&lt;/h4&gt;
&lt;div data-rehype-pretty-code-fragment=&quot;&quot;&gt;&lt;pre style=&quot;background-color: var(--shiki-color-background)&quot; tabindex=&quot;0&quot; data-language=&quot;cpp&quot; data-theme=&quot;default&quot;&gt;&lt;code data-language=&quot;cpp&quot; data-theme=&quot;default&quot;&gt;&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;std&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-punctuation)&quot;&gt;::&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;size_t&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; zero7 &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-constant)&quot;&gt;s&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-punctuation)&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-function)&quot;&gt;find&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-string-expression)&quot;&gt;&quot;0000000&quot;&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;); &lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;(zero7&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;!=&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;std&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-punctuation)&quot;&gt;::&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;string&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-punctuation)&quot;&gt;::&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;npos) found&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-keyword)&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-token-constant)&quot;&gt;true&lt;/span&gt;&lt;span style=&quot;color: var(--shiki-color-text)&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description>
    <pubDate>Sat, 21 Oct 2023 10:35:57 GMT</pubDate>
  </item>
    </channel>
  </rss>