<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Saurabh Sharma</title>
    <description>The latest articles on DEV Community by Saurabh Sharma (@itsjzt).</description>
    <link>https://dev.to/itsjzt</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F41065%2F2dde0a31-7a8a-4089-ab15-ffdf8192e082.jpg</url>
      <title>DEV Community: Saurabh Sharma</title>
      <link>https://dev.to/itsjzt</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/itsjzt"/>
    <language>en</language>
    <item>
      <title>My Minimal Web Development Setup</title>
      <dc:creator>Saurabh Sharma</dc:creator>
      <pubDate>Mon, 08 Aug 2022 06:25:00 +0000</pubDate>
      <link>https://dev.to/itsjzt/my-minimal-web-development-setup-31j0</link>
      <guid>https://dev.to/itsjzt/my-minimal-web-development-setup-31j0</guid>
      <description>&lt;p&gt;This is the setup I use daily to get things done as a full-stack web developer. I love knowing about tools other people are using and here I'm sharing my exact set up so it can give inspiration to others. I will try to keep this guide updated.&lt;/p&gt;

&lt;h3&gt;
  
  
  Laptop and OS
&lt;/h3&gt;

&lt;p&gt;My main computer at the time of writing is an early 2020 Macbook pro (not M1) I'm really happy with the laptop but chances are I would upgrade to M2 MacBook air when it comes out 🤞. I use mac os but I don't think there is anything that makes it any better than windows 11 or Linux in general, I used to use windows in the past and the only reason I'm using macOS is that I can test and debug websites on safari if I ever need to.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyvxvaq9lpjx44yh0057z.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyvxvaq9lpjx44yh0057z.jpg" alt="mac os"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Apps
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Spotlight
&lt;/h3&gt;

&lt;p&gt;I use macOS's Spotlight to open apps, find files, and just get around the OS. I rarely ever use Launchpad to open apps.&lt;/p&gt;

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

&lt;h3&gt;
  
  
  Firefox
&lt;/h3&gt;

&lt;p&gt;I use &lt;a href="https://www.mozilla.org/en-GB/firefox/new/" rel="noopener noreferrer"&gt;Firefox&lt;/a&gt; as my default browser. I find chrome's design a bit too rounded and I don't use safari because I don't think it's good for me to get locked in apple's ecosystem.&lt;/p&gt;

&lt;p&gt;I use very few extensions. uBlockOirgin, Bitwarden, React Devtools and Grammarly are the only extension I have installed.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1658648182036%2FKA9HY9XBZ.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1658648182036%2FKA9HY9XBZ.png" alt="firefox-image.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Visual Studio Code
&lt;/h3&gt;

&lt;p&gt;I have tried many editors in the past, I have tried Sublime Text, VIM, Webstorm, and everything in-between but VS Code feels the one with the best defaults and most active development. I don't use (n)vim because of its configuration-heavy nature. I have written another post about &lt;a href="https://dev.to/itsjzt/my-vs-code-setup-for-2022-3klp"&gt;my exact setup in visual studio code and with all the plugins I use&lt;/a&gt;. bottom line I'm pretty happy with vs code and I don't think I will be changing editors anytime soon.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1658648157337%2FNTe9KEwnv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1658648157337%2FNTe9KEwnv.png" alt="vs-code-image.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Bitwarden
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://bitwarden.com/" rel="noopener noreferrer"&gt;Bitwarden&lt;/a&gt; is my password manager of choice. I'm still on the free plan and I don't have any complaints. I don't like the UI that much but on the functionality side of things it's good enough, It gives everything you might need from your password managers even in the free plan.&lt;/p&gt;

&lt;h3&gt;
  
  
  Obsidian
&lt;/h3&gt;

&lt;p&gt;I use &lt;a href="https://obsidian.md/" rel="noopener noreferrer"&gt;Obsidian&lt;/a&gt; for taking notes and writing posts. I have tried Notion, and Evernote in the past. Evernote feels kind of bloated and tailored for more advanced use cases and Notion is more tailored for teams and people who need very customized workflows, I just need a Markdown-based editor and cloud syncing. I have also tried Simplenote it was really good but there were two problems (1) it didn't support uploading images (2) It doesn't support folders so everything was flat and very hard to find.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1658647666405%2FIi11eVDC7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1658647666405%2FIi11eVDC7.png" alt="obsidian-image.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Insomnia
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://insomnia.rest/" rel="noopener noreferrer"&gt;Insomnia&lt;/a&gt; is a testing tool for graphql and REST APIs. I use it for testing our backend and sometimes external 3rd party APIs&lt;/p&gt;

&lt;h3&gt;
  
  
  Xcode
&lt;/h3&gt;

&lt;p&gt;I recently tried swift UI and it looks super cool. The UI layer is inspired by React and its cross-platform atleast in the Apple ecosystem.&lt;/p&gt;

&lt;h3&gt;
  
  
  Postbird
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://www.electronjs.org/apps/postbird" rel="noopener noreferrer"&gt;Postbird&lt;/a&gt; is a GUI for Postgres database nothing special I use it for creating new users/databases and sometimes connecting to a remote database.&lt;/p&gt;

&lt;h3&gt;
  
  
  Slack
&lt;/h3&gt;

&lt;p&gt;Our company uses slack for communication not much to talk about it, I don't use any custom themes or anything just have a few custom icons installed.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1658647553887%2FA-blGi1YJ.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1658647553887%2FA-blGi1YJ.png" alt="slack-custom-emoji.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Homebrew
&lt;/h3&gt;

&lt;p&gt;Every other operating system comes with a preinstalled package manager (even windows 11 has &lt;a href="https://docs.microsoft.com/en-us/windows/package-manager/winget/" rel="noopener noreferrer"&gt;winget&lt;/a&gt;) but you have to use this third-party service on macOS. It works well but I wish mac had something native for this.&lt;/p&gt;

&lt;h3&gt;
  
  
  NVM
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://github.com/nvm-sh/nvm" rel="noopener noreferrer"&gt;Node Version Manager or NVM&lt;/a&gt; helps you to use different versions of Node for different projects I don't work on projects that require a very specific version of node but it makes updating node easier so I have it installed.&lt;/p&gt;

&lt;h3&gt;
  
  
  Default Mac Terminal
&lt;/h3&gt;

&lt;p&gt;I use the default macOS terminal. I never found a use case for iTerm so I stick to the native terminal. I have increased the font size to 14 and that's all the customization I have done to my terminal.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1658647526689%2FAINeyuPlg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1658647526689%2FAINeyuPlg.png" alt="terminal-image.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Excalidraw and Figma
&lt;/h3&gt;

&lt;p&gt;I use this to make flow charts and rough design sketches. Excalidraw is good for doing whiteboard-like problem-solving.&lt;/p&gt;

&lt;p&gt;And sometimes when I need to create a UI mockup, I use Figma for that.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1658647407356%2Fs242PPifB.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1658647407356%2Fs242PPifB.png" alt="excildraw-image.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;I have tried to keep my setup minimal I feel once you start customizing things you just spend a lot of time on a never-ending quest for the perfect setup and end up spending more time in setup than what it would save you. You should watch &lt;a href="https://www.youtube.com/watch?v=dIjKJjzRX_E" rel="noopener noreferrer"&gt;this video by mpj&lt;/a&gt; for some context.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Originally posted on &lt;a href="https://itsjzt.com/posts/my-minimal-web-development-setup" rel="noopener noreferrer"&gt;itsjzt.com&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>productivity</category>
      <category>javascript</category>
    </item>
    <item>
      <title>My Visual Studio Code setup for Full Stack Web Development</title>
      <dc:creator>Saurabh Sharma</dc:creator>
      <pubDate>Mon, 11 Apr 2022 16:44:00 +0000</pubDate>
      <link>https://dev.to/itsjzt/my-vs-code-setup-for-2022-3klp</link>
      <guid>https://dev.to/itsjzt/my-vs-code-setup-for-2022-3klp</guid>
      <description>&lt;p&gt;I have been using visual studio code for the last 3 - 4 years and even though I don't like how resource-intensive it is but when it comes to features and customization it never disappoints me. I'm really loving the setup I have now so I thought I should write about my current vs code setup.&lt;/p&gt;

&lt;h2&gt;
  
  
  About me and my work
&lt;/h2&gt;

&lt;p&gt;I'm a full-stack web developer, I primarily work in Typescript. Our frontend is uses React, Apollo Client, and Next.js (when server rendering is needed). In Backend, we use Nodejs, Express, GraphQL, and Prisma and for deployments, serverless with Github CI/CD.&lt;/p&gt;

&lt;h2&gt;
  
  
  Theme
&lt;/h2&gt;

&lt;p&gt;I use the default vs code theme &lt;strong&gt;Dark +&lt;/strong&gt; most of the time and other times I use &lt;strong&gt;Github Dark&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ft6kou1f180gt01zlta6s.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ft6kou1f180gt01zlta6s.png" alt="https://dev-to-uploads.s3.amazonaws.com/uploads/articles/t6kou1f180gt01zlta6s.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyskaakmsefo173biuch9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyskaakmsefo173biuch9.png" alt="https://dev-to-uploads.s3.amazonaws.com/uploads/articles/yskaakmsefo173biuch9.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If I'm feeling super adventurous I use a &lt;a href="https://marketplace.visualstudio.com/items?itemName=felipe-mendes.slack-theme" rel="noopener noreferrer"&gt;Slack Theme&lt;/a&gt; which is a light color theme. It has a few bugs though.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Feczm86y7n8n4xoyfptcb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Feczm86y7n8n4xoyfptcb.png" alt="https://dev-to-uploads.s3.amazonaws.com/uploads/articles/eczm86y7n8n4xoyfptcb.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqaj3unscxvk0plg732wq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqaj3unscxvk0plg732wq.png" alt="https://dev-to-uploads.s3.amazonaws.com/uploads/articles/qaj3unscxvk0plg732wq.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Font and Settings
&lt;/h2&gt;

&lt;p&gt;My font of choice is &lt;a href="https://github.com/microsoft/cascadia-code" rel="noopener noreferrer"&gt;Cascadia code by Microsoft&lt;/a&gt; and out of all the ligatures-based fonts I have tried &lt;a href="https://github.com/microsoft/cascadia-code" rel="noopener noreferrer"&gt;Cascadia code&lt;/a&gt; and &lt;a href="https://www.jetbrains.com/lp/mono/" rel="noopener noreferrer"&gt;JetBrains Mono&lt;/a&gt; are the best two fonts in my opinion.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpnzza0nkjkiex11cuemb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpnzza0nkjkiex11cuemb.png" alt="https://dev-to-uploads.s3.amazonaws.com/uploads/articles/pnzza0nkjkiex11cuemb.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fppigoht0p02ss087qy2k.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fppigoht0p02ss087qy2k.png" alt="https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ppigoht0p02ss087qy2k.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Extensions
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint" rel="noopener noreferrer"&gt;EsLint&lt;/a&gt;: For linting in JS/TS.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://marketplace.visualstudio.com/items?itemName=waderyan.gitblame" rel="noopener noreferrer"&gt;GitBlame&lt;/a&gt;: shows blame information in the status bar I use instead of Gitlens because I don't need all the other stuff.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://marketplace.visualstudio.com/items?itemName=GitHub.copilot" rel="noopener noreferrer"&gt;Github Copilot&lt;/a&gt;: Autocomplete with AI. if you haven't tried it, it is so cool. &lt;a href="https://copilot.github.com/" rel="noopener noreferrer"&gt;join the waiting list&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://marketplace.visualstudio.com/items?itemName=wix.vscode-import-cost" rel="noopener noreferrer"&gt;Import Cost&lt;/a&gt;: Super helpful in making sure you don't import heavy dependencies in your frontend.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscode" rel="noopener noreferrer"&gt;Prettier&lt;/a&gt;: Code formatter&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://marketplace.visualstudio.com/items?itemName=WallabyJs.quokka-vscode" rel="noopener noreferrer"&gt;Quokka.js&lt;/a&gt;: A nice little tool to help you debug your code.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://marketplace.visualstudio.com/items?itemName=wayou.vscode-todo-highlight" rel="noopener noreferrer"&gt;TODO Highlight&lt;/a&gt;: Highlights // TODO: and // FIXME: comments in code.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://marketplace.visualstudio.com/items?itemName=WakaTime.vscode-wakatime" rel="noopener noreferrer"&gt;Wakatime&lt;/a&gt;: To track my coding related stats.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://marketplace.visualstudio.com/items?itemName=vscodevim.vim" rel="noopener noreferrer"&gt;VIM&lt;/a&gt;: for times when I feel like I need to use vim's keybindings (disabled most of the time).&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Language Support and Intellisense Extensions
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://marketplace.visualstudio.com/items?itemName=IronGeek.vscode-env" rel="noopener noreferrer"&gt;Env&lt;/a&gt;: language support for .env files&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://marketplace.visualstudio.com/items?itemName=GraphQL.vscode-graphql" rel="noopener noreferrer"&gt;GraphQL&lt;/a&gt;: syntax highlight graphql queries&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://marketplace.visualstudio.com/items?itemName=Prisma.prisma" rel="noopener noreferrer"&gt;Prisma&lt;/a&gt;: syntax highlight and IntelliSense .prisma files&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://marketplace.visualstudio.com/items?itemName=neilding.language-liquid" rel="noopener noreferrer"&gt;liquid language support&lt;/a&gt;: syntax highlight liquid files&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://marketplace.visualstudio.com/items?itemName=svelte.svelte-vscode" rel="noopener noreferrer"&gt;Svelte for VS Code&lt;/a&gt;: syntax highlight and IntelliSense .svelte files&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://marketplace.visualstudio.com/items?itemName=bradlc.vscode-tailwindcss" rel="noopener noreferrer"&gt;Tailwind CSS Intellisense&lt;/a&gt;: Intellisense for tailwind classnames&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://marketplace.visualstudio.com/items?itemName=cpylua.language-postcss" rel="noopener noreferrer"&gt;language post-css&lt;/a&gt;: language support for post CSS which is used for compiling in tailwind&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Extensions I used to use but are obsolete in 2022
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Bracket pair colorizer&lt;/li&gt;
&lt;li&gt;NPM IntelliSense&lt;/li&gt;
&lt;li&gt;path IntelliSense&lt;/li&gt;
&lt;li&gt;color picker&lt;/li&gt;
&lt;li&gt;setting sync&lt;/li&gt;
&lt;li&gt;auto close HTML tags&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Their functionality is now already available in vs code either through a setting or directly out of the box.&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>productivity</category>
      <category>vscode</category>
      <category>discuss</category>
    </item>
    <item>
      <title>Can I see your desk setup?</title>
      <dc:creator>Saurabh Sharma</dc:creator>
      <pubDate>Tue, 22 Feb 2022 17:34:27 +0000</pubDate>
      <link>https://dev.to/itsjzt/can-i-see-your-desk-setup-23mc</link>
      <guid>https://dev.to/itsjzt/can-i-see-your-desk-setup-23mc</guid>
      <description>&lt;p&gt;Because why not&lt;/p&gt;

&lt;p&gt;This is my setup at work&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--SkVpI1Ud--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/hdsu9rvelfp8q3br502w.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--SkVpI1Ud--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/hdsu9rvelfp8q3br502w.jpg" alt="my work setup" width="880" height="1173"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Keyboard: Keychron K2&lt;br&gt;
Monitor: don't remember the model number Samsung 32 inch curved&lt;br&gt;
Laptop: Legion Y540&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Neat way to handle array and individual inputs in same function</title>
      <dc:creator>Saurabh Sharma</dc:creator>
      <pubDate>Mon, 31 Aug 2020 14:27:08 +0000</pubDate>
      <link>https://dev.to/itsjzt/neat-way-to-handle-array-and-individual-inputs-in-same-function-3nnj</link>
      <guid>https://dev.to/itsjzt/neat-way-to-handle-array-and-individual-inputs-in-same-function-3nnj</guid>
      <description>&lt;p&gt;Lets say we need to make a function &lt;code&gt;doSomething&lt;/code&gt;. we need to do it in a way so that it can handle both arguments: (1) a string and (2) an array of strings.&lt;/p&gt;

&lt;p&gt;To achieve that previously I used to do something like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nx"&gt;doSomething&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;strs&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nx"&gt;_doSomething&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;str&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="c1"&gt;// some mysterious stuff happening here&lt;/span&gt;
    &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;str&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;

  &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;Array&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;isArray&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;strs&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nx"&gt;strs&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;map&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;str&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;_doSomething&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;str&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nx"&gt;_doSomething&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;strs&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="nx"&gt;doSomething&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;hello&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;world&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;
&lt;span class="nx"&gt;doSomething&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;hello&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;now since I learned recursion I do this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nx"&gt;doSomething&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;strs&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;Array&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;isArray&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;strs&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nx"&gt;strs&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;map&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;str&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;doSomething&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;str&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;strs&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="nx"&gt;doSomething&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;hello&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;world&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;
&lt;span class="nx"&gt;doSomething&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;hello&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;cover Photo by &lt;a href="https://unsplash.com/@pepe_nero?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText"&gt;pepe nero&lt;/a&gt; on &lt;a href="https://unsplash.com/s/photos/mirrors?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText"&gt;Unsplash&lt;/a&gt;&lt;/p&gt;

</description>
      <category>javascript</category>
    </item>
    <item>
      <title>Level up your CLI with these 5 tools</title>
      <dc:creator>Saurabh Sharma</dc:creator>
      <pubDate>Sun, 30 Aug 2020 14:32:44 +0000</pubDate>
      <link>https://dev.to/itsjzt/level-up-your-cli-with-these-5-tools-p6l</link>
      <guid>https://dev.to/itsjzt/level-up-your-cli-with-these-5-tools-p6l</guid>
      <description>&lt;ul&gt;
&lt;li&gt;
&lt;a href="http://www.starship.rs/"&gt;starship&lt;/a&gt; is a cross platform terminal prompt. It works with ZSH, FISH, BASH and even Powershell. It has lots of customization options. It shows git status, package info, current folder and lots of stuff. &lt;/li&gt;
&lt;/ul&gt;


&lt;div class="ltag_asciinema"&gt;
  
&lt;/div&gt;


&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/rupa/z"&gt;z&lt;/a&gt; lets you jump to any folder by just its name no matter how deeply nested the folder structures is. Recently I'm working on a project with &lt;a href="https://aws.amazon.com/amplify/"&gt;amplify&lt;/a&gt; which generates deeply nested lambda functions, thanks to z moving between functions is effortless. Z takes some learning so you have to cd around for a bit, after that, you can use z to auto jump.&lt;/li&gt;
&lt;/ul&gt;


&lt;div class="ltag_asciinema"&gt;
  
&lt;/div&gt;


&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://github.com/junegunn/fzf"&gt;FZF&lt;/a&gt; &amp;amp; &lt;a href="https://github.com/BurntSushi/ripgrep"&gt;Ripgrep&lt;/a&gt; are useful utilities if you use vim as your text editor. FZF is a fuzzy finder like &lt;code&gt;ctrl+p&lt;/code&gt; in vscode and sublime text. Ripgrep is a grep replacement that respects .gitignore and with some other sane defaults. &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://github.com/bntzio/wipe-modules"&gt;wipe-module&lt;/a&gt; deletes node_modules of non-active projects. If you work in javascript/typescript, you need to free some space definitely try this package. &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://ngrok.com/"&gt;ngrok&lt;/a&gt; I have used this tunneling service to get https addresses for local testing. very handy while making OAuth lambdas. It also makes sharing your local development server very easy.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;Cover Photo by &lt;a href="https://unsplash.com/@bady?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText"&gt;bady abbas&lt;/a&gt; on &lt;a href="https://unsplash.com/s/photos/productivity?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText"&gt;Unsplash&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

</description>
      <category>productivity</category>
      <category>cli</category>
      <category>commandline</category>
    </item>
    <item>
      <title>Understanding Svelte's $: (dollar label) syntax</title>
      <dc:creator>Saurabh Sharma</dc:creator>
      <pubDate>Tue, 18 Aug 2020 14:53:00 +0000</pubDate>
      <link>https://dev.to/itsjzt/understanding-svelte-s-dollar-label-syntax-3h2b</link>
      <guid>https://dev.to/itsjzt/understanding-svelte-s-dollar-label-syntax-3h2b</guid>
      <description>&lt;p&gt;In the long list of cool features of svelte, The one which I use more often is this dollar label thing. Initially, it looked strange to me but later I realized it is a valid javascript syntax. You can use it for doing side effects like &lt;code&gt;useEffect&lt;/code&gt; of React, there is also a syntactic sugar way of declaring computed properties.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Doing side effects on state change&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Let's say we have a messaging app.  You need to change the title when a new unread message comes and you need to update title when the message is read. Traditionally, we will make a function which will update the title and use that function in both places (1. where we are getting new messages from server 2. event listener on user clicking mark as read) but with the svelte's approach we can do this&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;$&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;unreadMessages&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;messages&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;filter&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;m&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;m&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;read&lt;/span&gt; &lt;span class="o"&gt;===&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="nb"&gt;document&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;title&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;`&lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;unreadMessages&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;length&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt; unread messages`&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;with this approach, we can just change the value of messages in both the places (1. where we are getting new messages from server 2. event listener on user reading the message) and it will be changed in the title. One thing to notice is unlike &lt;code&gt;useEffect&lt;/code&gt; of React you don't have to explicitly write the dependencies of this block.  The component would be something like this&lt;/p&gt;

&lt;p&gt;&lt;iframe src="https://codesandbox.io/embed/zghkj?module=App.svelte&amp;amp;view=split"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Computed properties&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;A computed property is one that will be recalculated if the property it dependents on changes.&lt;/p&gt;

&lt;p&gt;Let's say we get another requirement, we also need to show the numbers of unread messages to users above the message list. Since we already have the list of unread messages, we can copy the same logic in the template to show the unread messages or we can do this.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;$&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;unreadMessages&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;messages&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;filter&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;m&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;m&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;read&lt;/span&gt; &lt;span class="o"&gt;===&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="nl"&gt;$&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nb"&gt;document&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;title&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;`&lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;unreadMessages&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;length&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt; unread messages`&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;here we declared a computed property (unreadMessages). Essentially unreadMessage is a variable that will be recalculated if messages property change. Now we can use this unreadMessages array in the template to show numbers of unread messages.&lt;/p&gt;

&lt;p&gt;&lt;iframe src="https://codesandbox.io/embed/i11oj?module=App.svelte&amp;amp;view=split"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

</description>
      <category>svelte</category>
      <category>javascript</category>
    </item>
    <item>
      <title>Why most static typing example show a problem that can be solved by a test.</title>
      <dc:creator>Saurabh Sharma</dc:creator>
      <pubDate>Sat, 15 Aug 2020 06:59:32 +0000</pubDate>
      <link>https://dev.to/itsjzt/why-most-static-typing-example-show-a-problem-that-can-be-solved-by-a-test-5b37</link>
      <guid>https://dev.to/itsjzt/why-most-static-typing-example-show-a-problem-that-can-be-solved-by-a-test-5b37</guid>
      <description>&lt;p&gt;I think there is something I cant see. Whenever someone introduce static typing, they show an example problem that can be solved with a test case.&lt;/p&gt;

&lt;p&gt;Instead of comparing how tests would have solved it and how types can solve it, they don't even talk about tests&lt;/p&gt;

</description>
      <category>discuss</category>
    </item>
    <item>
      <title>My favorite people to stay updated in web development space</title>
      <dc:creator>Saurabh Sharma</dc:creator>
      <pubDate>Sun, 09 Aug 2020 16:28:00 +0000</pubDate>
      <link>https://dev.to/itsjzt/my-favorite-people-to-stay-updated-in-web-development-space-3950</link>
      <guid>https://dev.to/itsjzt/my-favorite-people-to-stay-updated-in-web-development-space-3950</guid>
      <description>&lt;p&gt;Even though JavaScript fatigue has settled down, now we only have a few major UI libraries, state management libraries,  routers, and recommended ways of server-side rendering. Now you can calmly make your app without messing with webpack and babel configs. But the pace of innovation hasn't slowed down. Things like GPT-3 are trying to make NLP better than ever before. As a Programmer, our knowledge is a deprecating resource we need to constantly feed it with new things to stay relevant in the market. Here are few people I followed to keep up in web dev space.&lt;/p&gt;

&lt;h3&gt;
  
  
  Twitter
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://twitter.com/addyosmani"&gt;Addy Osmani's&lt;/a&gt; tweets are focussed on improving the webpage's performance. He also tweets about new features in browsers and occasionally does PWA case studies.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://twitter.com/_developit"&gt;Jason Miller&lt;/a&gt; created Preact.js a 2KB alternative to React.js. Most of his tweets are about optimizing JavaScript bundles and using modern browser features to make your site faster. He occasionally tweets about games.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://twitter.com/dan_abramov"&gt;Dan Abromov&lt;/a&gt; is one of the public faces of the React.js team. He tweets about react.js and JavaScript related things. He occasionally tweets about Netflix content. If you haven't already read, I highly recommend you to take a look at his blog &lt;a href="https://overreacted.io/"&gt;overreacted.io&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://twitter.com/steveschoger"&gt;Steve Schoger&lt;/a&gt; tweets about design and tailwind CSS. You should also look at his Youtube channel where he tries to make site's design better &lt;/p&gt;

&lt;p&gt;&lt;a href="https://twitter.com/youyuxi"&gt;Evan you&lt;/a&gt; is the creator of the very admired framework Vue.js. Currently, he is also working on a better bundler Vite. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://twitter.com/wesbos"&gt;Wes Bos&lt;/a&gt; is an independent web developer. He tweets about tricks and tips. He has created many high quality &lt;a href="https://wesbos.com/courses"&gt;courses&lt;/a&gt; some free some paid. He co-hosts the podcast syntax.fm&lt;/p&gt;

&lt;p&gt;&lt;a href="https://twitter.com/sarah_edo"&gt;Sarah Edo&lt;/a&gt; tweet about vue.js, SVG, and animations. She is in the core vue.js team and VP of developer experience at Netlify.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://twitter.com/rauchg"&gt;Guillermo Rauch&lt;/a&gt; is the CEO of vercel (formally Zeit). He tweets about Next.js, React.js, and Server-side rendering.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://twitter.com/reactjs"&gt;Reactjs&lt;/a&gt; is the official twitter account of React.js. Tweets include new react.js features.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://twitter.com/vuejs"&gt;Vuejs&lt;/a&gt; is the official twitter account of vuejs. Tweets include new vue.js releases.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://twitter.com/b0rk"&gt;Julia Evans&lt;/a&gt; tweets about easy explanation to CS-related things.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://twitter.com/adamwathan"&gt;Adam Watham&lt;/a&gt; is the creator of tailwind css. He tweets about tailwind,  CSS, Laravel, and other design-related things.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://twitter.com/housecor"&gt;Cory House&lt;/a&gt; helps companies transition to react.js. His tweet includes React.js and occasionally he writes book reviews.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://twitter.com/_ericelliott"&gt;Eric Elliot&lt;/a&gt; talks about javascript, functional programming, and GPT-3.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://twitter.com/getify"&gt;Getify&lt;/a&gt; is the author of you don't know JS. he talks about weird javascript behaviors.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://twitter.com/kentcdodds"&gt;Kent C. Dodds&lt;/a&gt; tweet about new things in javascript and React.js&lt;/p&gt;

&lt;p&gt;&lt;a href="https://twitter.com/Rich_Harris"&gt;Rich Harris&lt;/a&gt; tweets about the modern web (SPA and frontend tooling), and svelte.js.&lt;/p&gt;

&lt;h3&gt;
  
  
  Youtube
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://www.youtube.com/channel/UCO1cgjhGzsSYb1rsB4bFe4Q"&gt;fun fun function&lt;/a&gt; is great channel to learn functional programming and JavaScript in general. Even though MPJ has left the channel so no new content will be added but it still has lots of good content.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.youtube.com/user/wesbos"&gt;wesbos's youtube channel&lt;/a&gt; has over 100 thousand subscribers probably because he uploads videos of his free tutorials there. He also uploads some quick explainer topics on youtube.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.youtube.com/user/LevelUpTuts"&gt;Leveluptuts&lt;/a&gt; is run by Scott tolinski. He constantly adds new content related to web development including React.js Svelte.js and react spring animations. A lot of his content is paid which is on his site but still lots of good content.&lt;/p&gt;

&lt;h2&gt;
  
  
  podcast
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://www.fullstackradio.com/"&gt;Full stack radio&lt;/a&gt;: is hosted by Adam watham. He regularly interviews famous people in web dev space.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://syntax.fm/"&gt;Syntax.fm&lt;/a&gt; is hosted by Scott tolinksi and wesbos, it is not an interview podcast. Mostly these 2 people talk about new things happening in webdev and classic questions in this space.&lt;/p&gt;

&lt;h2&gt;
  
  
  dev.to
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://dev.to/lydiahallie"&gt;Lydia Hallie&lt;/a&gt; visualize common javascript things like CORS, Event loop, Promises&lt;/p&gt;

&lt;p&gt;&lt;a href="https://dev.to/ananyaneogi"&gt;Ananya Neogi&lt;/a&gt; write about things that can be achieved using vanilla HTML, CSS.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://dev.to/emmabostian"&gt;Emma Bostian&lt;/a&gt; writes about UX, basic CS topics, and JavaScript.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://dev.to/zellwk"&gt;Zell Liew&lt;/a&gt; write about CSS and JavaScript, express.js things.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://dev.to/jacobherrington"&gt;Jacob Herrington&lt;/a&gt; posts about easy explanations, tips, and tricks, along with some discussion posts.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://dev.to/vaidehijoshi"&gt;Vaidehi Joshi&lt;/a&gt; is famous for his BaseCS series. she posts about underlying computer concepts like trees, searching, distributed computing, graph.&lt;/p&gt;

&lt;h2&gt;
  
  
  misc
&lt;/h2&gt;

&lt;p&gt;If you are interested in things related to computers in general, which don't quite fit in web dev space then here are few other resources for you.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.youtube.com/user/Computerphile"&gt;Computerphile youtube channel&lt;/a&gt; adds new videos regularly about computer science topics. their recent upload includes GPT 3, AI-related things, XSS issues, SQL injection.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.youtube.com/channel/UClcE-kVhqyiHCcjYwcpfj9w"&gt;Liveoverflow&lt;/a&gt; is a channel for pentesting and hacking its upload includes crazy XSS attacks, CTFs, and other common security-related things.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.youtube.com/user/McBacon1337"&gt;Game makers toolkit&lt;/a&gt; or GMTK (for short) is a youtube channel about understanding game mechanics, and game reviews (they are not that common)&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>javascript</category>
      <category>css</category>
    </item>
    <item>
      <title>when multitask and when one task at a time</title>
      <dc:creator>Saurabh Sharma</dc:creator>
      <pubDate>Sun, 05 Jul 2020 11:51:12 +0000</pubDate>
      <link>https://dev.to/itsjzt/when-multitask-and-when-one-task-at-a-time-29pj</link>
      <guid>https://dev.to/itsjzt/when-multitask-and-when-one-task-at-a-time-29pj</guid>
      <description>&lt;p&gt;For a while I was trying to listen to podcasts while I was coding; initially, it felt right but the more I did it the more it felt wrong.It was nice till I was doing tasks that don't require much analytical thinking but when I was doing anything which took a lot of brain power while listening to some podcasts, it doesn't work, I simply can't think. When I realized this I researched on the topic of multitasking and here is the gist of it:&lt;/p&gt;

&lt;h2&gt;
  
  
  1. History of Multitasking
&lt;/h2&gt;

&lt;p&gt;first of all the work multitasking wasn't made in the for humans tasks, it was made for computers. In computers, it was a more efficient use of resources to run multiple processes when one process was waiting for any external event such as user input or a network request. Initially, computers were doing very fast context switching between tasking which makes it feel like multitasking, later computers got multiple cores parallel processing became possible. Unfortunately, Neither human brains are good at context switching nor we have multiple cores. &lt;/p&gt;

&lt;h2&gt;
  
  
  2. When you should focus on one thing at a time
&lt;/h2&gt;

&lt;p&gt;According to some experiments, the human brain can be trained to better multitasking, but even after extensive training; how well you can multitask depends on the kind of work you're doing. Difficult task or tasks that require high creativity are much harder to multitask.&lt;/p&gt;

&lt;p&gt;There are some popular beliefs about women being a better multitasker than men's, but there isn't enough data to assert that proves that. Most of the theories are based on evolutionary explanations like Hunter-Gatherer Hypothesis.&lt;/p&gt;

&lt;p&gt;People have a limited ability to retain information, which worsens when the amount of information increases so if you are doing a task that requires keeping a lot of data in mind, It will be even better to split the tasks into smaller chunks which require fewer things to keep in mind.  &lt;/p&gt;

&lt;h2&gt;
  
  
  3. Often focussed work is more valuable than shallow work
&lt;/h2&gt;

&lt;p&gt;Most of the time in the real world, the reason for multitasking is because of the vast stream of constant data thrown at us. Your news app wants you to read this breaking news, Your game wants you to collect these new coins, Your friends have posted these new pictures, 30 people are talking about the dog pic you uploaded yesterday. These all are shallow tasks, they don't take a lot of time, but they distract you and their return of investment isn't big.  &lt;/p&gt;

&lt;p&gt;Focussed tasks are the opposite of them, they require more time to do, They require more creativity and thinking but they yield big results, often they are related to some long term goals.  &lt;/p&gt;

&lt;p&gt;You should be prioritizing focussed work and try to minimize shallow work. Shallow work is important but more often they aren't as valuable since they can be done by anyone or can be easily learned. &lt;/p&gt;

&lt;p&gt;Cover pic credits: Thanks to Marvin Meyer for sharing their work on Unsplash&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Try these 4 languages from 4 corners of Programming</title>
      <dc:creator>Saurabh Sharma</dc:creator>
      <pubDate>Sun, 28 Jun 2020 11:48:00 +0000</pubDate>
      <link>https://dev.to/itsjzt/try-these-4-languages-from-4-corners-of-programming-epm</link>
      <guid>https://dev.to/itsjzt/try-these-4-languages-from-4-corners-of-programming-epm</guid>
      <description>&lt;p&gt;There are thousands of programming languages, all having features unique than others. There are some more readable, others more performant, some are simple, others are complex. Here I'm presenting you 4 different programming languages from 4 different sides of programming. I invite you to try each of them, enjoy their strengths, find their weaknesses. Each one of them is very different than the others. They each are better for some kinds of problems. They will teach you the same problem in different ways.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. C
&lt;/h2&gt;

&lt;p&gt;While working on the Unix operating system at Bells Lab, Dennis Ritchie wanted a language that will suit the task of writing parts of the Operating System. He wrote C language taking inspiration from BCPL and B.  &lt;/p&gt;

&lt;p&gt;A lot of C's syntax maps directly to machine code. C has the power of assembly but unlike assembly, it is cross-platform, If you wrote your code with portability in mind then it can work on multiple OSes and CPU architecture without much code changes.&lt;/p&gt;

&lt;p&gt;When you want to talk directly to the machine, removing all the abstractions in between you and the machine, then C is the language for that kind of tasks.&lt;/p&gt;

&lt;p&gt;Here is some C code&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight c"&gt;&lt;code&gt;&lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="nf"&gt;square&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;number&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;number&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;number&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;and here it the assembly code generated by the compiler&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;square(int):
        push    rbp
        mov     rbp, rsp
        mov     DWORD PTR [rbp-4], edi
        mov     eax, DWORD PTR [rbp-4]
        imul    eax, eax
        pop     rbp
        ret
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  2. Smalltalk
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;When I made up the term object-oriented, and I can tell you I did not have C++ in mind.&lt;br&gt;
-- Alan Kay &lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Smalltalk was created to teach kids programming. Creator Alan Kay had revolutionary ideas about how programming should be done. He pioneered the idea of individual units communicating through message passing. He believed that languages should be built around a generalized concept. Smalltalk and Object Oriented Programming revolutionized the world of programming but certainly not a good way, the world misunderstood the whole idea of Object Oriented Programming. Classes became the epic center of Object Oriented Programming. &lt;/p&gt;

&lt;p&gt;here is some smalltalk code:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight smalltalk"&gt;&lt;code&gt;&lt;span class="c"&gt;"Return the weekday of a date"&lt;/span&gt;
&lt;span class="s"&gt;'2013/5/7'&lt;/span&gt; &lt;span class="nf"&gt;asDate&lt;/span&gt; &lt;span class="nf"&gt;dayOfWeekName&lt;/span&gt;

&lt;span class="c"&gt;"Save the HTML source of a web page to a file"&lt;/span&gt;
&lt;span class="s"&gt;'http://www.pharo.org'&lt;/span&gt; &lt;span class="nf"&gt;asUrl&lt;/span&gt; &lt;span class="nf"&gt;saveContentsToFile:&lt;/span&gt; &lt;span class="s"&gt;'page.html'&lt;/span&gt;

&lt;span class="c"&gt;"Count the number of, or show the leap years between two years"&lt;/span&gt;
&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="m"&gt;1914&lt;/span&gt; &lt;span class="nf"&gt;to:&lt;/span&gt; &lt;span class="m"&gt;1945&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="nf"&gt;count:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt; &lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="nv"&gt;each&lt;/span&gt; &lt;span class="p"&gt;|&lt;/span&gt; &lt;span class="nc"&gt;Year&lt;/span&gt; &lt;span class="nf"&gt;isLeapYear:&lt;/span&gt; &lt;span class="nv"&gt;each&lt;/span&gt; &lt;span class="p"&gt;].&lt;/span&gt;
&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="m"&gt;1895&lt;/span&gt; &lt;span class="nf"&gt;to:&lt;/span&gt; &lt;span class="m"&gt;1915&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="nf"&gt;select:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt; &lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="nv"&gt;each&lt;/span&gt; &lt;span class="p"&gt;|&lt;/span&gt; &lt;span class="nc"&gt;Year&lt;/span&gt; &lt;span class="nf"&gt;isLeapYear:&lt;/span&gt; &lt;span class="nv"&gt;each&lt;/span&gt; &lt;span class="p"&gt;].&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If you already know ruby, smalltalk will not take a lot of time to grasp, but its live debugger is something from another world. &lt;/p&gt;

&lt;h2&gt;
  
  
  3. Lisp
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;“Lisp is a programmable programming language.”&lt;br&gt;
— John Foderaro, CACM, September 1991&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;If you are looking for a language in functional programming world, there is a good chance you will hear about lisp. Lisp is a minimalist kind of programming language. Its has virtually no syntax. Lisp is one of those languages which is enlightening. Currently the most popular lisp variant is &lt;a href="https://clojure.org"&gt;Clojure&lt;/a&gt;.  &lt;/p&gt;

&lt;p&gt;Lisp is programmable. which means if you don't like any constructs of of the language, you can override it with what works better for your team. Imagine if javascript was lisp we could fix a lot of its bad parts. &lt;/p&gt;

&lt;p&gt;here is some clojure code:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight clojure"&gt;&lt;code&gt;&lt;span class="c1"&gt;;; define a var&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;def&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;42&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="c1"&gt;;; =&amp;gt; #'user/a&lt;/span&gt;&lt;span class="w"&gt;

&lt;/span&gt;&lt;span class="c1"&gt;;; call a function named `+`&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;+&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;8&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="c1"&gt;;; =&amp;gt; 50&lt;/span&gt;&lt;span class="w"&gt;

&lt;/span&gt;&lt;span class="c1"&gt;;; call a function named `even?`&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;even?&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="c1"&gt;;; =&amp;gt; true&lt;/span&gt;&lt;span class="w"&gt;

&lt;/span&gt;&lt;span class="c1"&gt;;; define a function that returns the remainder of `n` when divided by 10&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;defn&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;foo&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;rem&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="c1"&gt;;; =&amp;gt; #'user/foo&lt;/span&gt;&lt;span class="w"&gt;

&lt;/span&gt;&lt;span class="c1"&gt;;; call the function&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;foo&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="c1"&gt;;; =&amp;gt; 2&lt;/span&gt;&lt;span class="w"&gt;

&lt;/span&gt;&lt;span class="c1"&gt;;; if else &lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;str&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;"2 is "&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;even?&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;"even"&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;"odd"&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  4. Haskell
&lt;/h2&gt;

&lt;p&gt;Haskell is the language grown out of mathematics world, It is a statically typed (perhaps the best kind of static typing), functional programming language. Unlike most mainstream static typed languages it has strong type inference so you don't have to write types everywhere but you still get type safety. &lt;/p&gt;

&lt;p&gt;If you are writing in statically typed language, you should try Haskell, it has very strong type inference. You can see the below code which has type safety but I didn't wrote any types. &lt;br&gt;
Haskell has pattern matching, recursion, list comprehension, first class functions and all the other cool stuff of functional programming languages.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight haskell"&gt;&lt;code&gt;&lt;span class="c1"&gt;-- Using recursion (with the "if then else" expression)&lt;/span&gt;
&lt;span class="n"&gt;factorial&lt;/span&gt; &lt;span class="n"&gt;n&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kr"&gt;if&lt;/span&gt; &lt;span class="n"&gt;n&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;
              &lt;span class="kr"&gt;then&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;
              &lt;span class="kr"&gt;else&lt;/span&gt; &lt;span class="n"&gt;n&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;factorial&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;n&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;em&gt;cover image credits: Thanks to Ian Schneider for sharing their work on Unsplash&lt;/em&gt;&lt;/p&gt;

</description>
      <category>c</category>
      <category>haskell</category>
      <category>clojure</category>
      <category>smalltalk</category>
    </item>
    <item>
      <title>What javascript would look like if they could make breaking changes in it.</title>
      <dc:creator>Saurabh Sharma</dc:creator>
      <pubDate>Thu, 04 Jun 2020 17:24:38 +0000</pubDate>
      <link>https://dev.to/itsjzt/what-javascript-would-look-like-if-they-could-make-breaking-changes-in-it-5eal</link>
      <guid>https://dev.to/itsjzt/what-javascript-would-look-like-if-they-could-make-breaking-changes-in-it-5eal</guid>
      <description>&lt;p&gt;We all know most of the problems in javascript is because of the fact that it was designed in very short period of time. Result of that we have lot of bad parts and w3c dont want to break backwards compatiblity of web so they don't fix it.&lt;/p&gt;

&lt;p&gt;But just for this post imagine if we could make breaking changes in javascript.&lt;/p&gt;

&lt;p&gt;What it would look like then?  &lt;/p&gt;

</description>
    </item>
    <item>
      <title>What are some exciting compile to Js languages?</title>
      <dc:creator>Saurabh Sharma</dc:creator>
      <pubDate>Thu, 04 Jun 2020 14:39:44 +0000</pubDate>
      <link>https://dev.to/itsjzt/what-are-some-exciting-compile-to-js-languages-1fjj</link>
      <guid>https://dev.to/itsjzt/what-are-some-exciting-compile-to-js-languages-1fjj</guid>
      <description>&lt;p&gt;I mostly work with javascript and I and looking to learn a new language, better if it is compile to js, then I can use it in my projects.&lt;/p&gt;

&lt;p&gt;P.s. I'm already using typescript&lt;/p&gt;

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