<?xml version="1.0" encoding="UTF-8" ?> decode.sh Home Page https://decode.sh Free tutorials and guides https://decode.sh/./. Alpine JS https://decode.sh/./alpine-js Alpine is a rugged, minimal tool for composing behavior directly in your markup. Think of it like jQuery for the modern web, it has an easy to learn syntax that can have you building reactive apps in minutes. Alternative to Eval in JS https://decode.sh/./alternative-to-eval-in-js The Eval function is super useful but extremely dangerous to use here's a simple alternative to in. Analytic Platforms Worth Checking Out https://decode.sh/./analytic-platforms-worth-checking-out A list of Google Analytics alternatives that can be self hosted. Basic's of Networking Protocalls https://decode.sh/./basic-s-of-networking-protocalls There are several networking protocols that can be used on the web, and each one serves a specific purpose. Here are some of the most common protocols. Basics of SEO in HTML https://decode.sh/./basics-of-seo-in-html Search engine optimization (SEO) is the process of improving the visibility and ranking of a website in search engines like Google. It involves making changes to the website's content and structure to make it more attractive to search engines and easier for users to navigate. Benchmarking Node JS vs Bun https://decode.sh/./benchmarking-node-js-vs-bun Recently Bun added a compiling feature in version 0.6.1. Curious about its functionality, I conducted a comparison between compiled and uncompiled versions as a baseline. I also tested it against Node JS compiled with pkg. Here are the results! Building a CodePen Type Editor from Scratch https://decode.sh/./building-a-code-pen-type-editor-from-scratch Wanting to show live examples of code on your website is very common, if you want to do it today there are a few services that provide that ability. However, if you are like me, you would rather roll your own. In this tutorial, I will be building my own codepen like editor for this site. Building a Highlighted Text Editor in the Browser https://decode.sh/./building-a-highlighted-text-editor-in-the-browser Trying to get highlighted code to be editable on your website can be tricky to implement. The idea behind successfully doing it is to display a code tag and highlight the code in there, then overlay a textarea with the font color and background set to transparent. Building a Portfolio Site - Planning it out https://decode.sh/./building-a-portfolio-site-planning-it-out Building a nice portfolio website is important when trying to get someone to pay attention to your work, especially if you are a web developer. In this post we will discuss some methods of building a portfolio site and the tech you might want to use. Building a Portfolio Site - Structure https://decode.sh/./building-a-portfolio-site-structure Picking the stack your portfolio uses is important as it allows you to show your competency with the frameworks you know. Pick something that you are comfortable with and that will provide a good-looking site in the end. Building GraphQL Resolvers https://decode.sh/./building-graph-ql-resolvers Figuring out how to make GraphQL resolvers is tricky when you get past the basic static routes. Here's a straight forward tutorial that goes over creating resolvers. Building SvelteKit for Node JS https://decode.sh/./building-svelte-kit-for-node-js SvelteKit is a powerful tool that is great for making all types of websites, with out of the box support for services like Vercel. In this tutorial you will learn how to setup up SvelteKit for Node JS to run on a platform like Digital Ocean. Bundling NPM packages for the browser https://decode.sh/./bundling-npm-packages-for-the-browser How to bundle your NPM package for production Chat GPT API OpenAI https://decode.sh/./chat-gpt-api-open-ai OpenAI has just released their Chat GPT api, it is a cheap to use language model that allow you to harness the power of Chat GPT in your own application. CSS Marquee Replacement https://decode.sh/./css-marquee-replacement The HTML marquee tag, which was used to create scrolling text or images on a web page, has been deprecated and is no longer supported in modern web development. This means that while it may still work in some older web browsers, it is not considered a valid HTML element in current web development standards and should not be used in new or updated websites. CSS Pseudo Elements https://decode.sh/./css-pseudo-elements CSS pseudo elements allow web developers to add specific elements to their webpages without having to write additional HTML or JavaScript. These elements are created by adding a colon and a keyword to the end of a CSS selector. Some of the most commonly used pseudo elements are :before and :after which can be used to add content before or after an element, :first-letter which can be used to style the first letter of a paragraph, and :hover which can be used to add interactive effects when a user hovers their mouse over an element. Deno JS: First Website https://decode.sh/./deno-js-first-website Deno is a runtime for JavaScript and TypeScript that allows developers to build web applications with the use of its built-in module system. One of the most popular web frameworks for Deno is Oak, which provides a simple and intuitive API for building web applications. In this tutorial, we will learn how to set up a basic Deno website using the Oak package. Deno JS: Oak Routing https://decode.sh/./deno-js-oak-routing Oak is a middleware framework for Deno that provides a simple and modular way to handle HTTP requests and responses. Here is how to setup basic routing. Ditch Algolia, Create Your Own Content Search Engine https://decode.sh/./ditch-algolia-create-your-own-content-search-engine Build a full-text search engine with autocorrect for the content of your website that directly connects to your database. Users being able to find the content they want on your site is essential. Out-of-the-box solutions like Algolia are great, but it probably isn't the best use of resources for a small website. With this tutorial, we will use flexsearch to search documents and use some custom code to make the result 10x better. DuckDuckGo Search JS https://decode.sh/./duck-duck-go-search-js Scraping search results from DuckDuckGo's Lite page using Node.js is a great way to gather data on a specific topic or group of keywords. In this blog post, we will walk through the process of scraping search results from DuckDuckGo's Lite page using the Node.js fetch and JSDOM libraries. Dynamically loading Google Fonts https://decode.sh/./dynamically-loading-google-fonts Google Fonts is a great tool for web developers, it allows you to load in almost any font on to you website and use it with only a few lines of code. However, sometimes you need to load in a font after the page loads. Here is a quick way to do it. Enabling the Use of the Tab Character in a HTML textarea Element with JavaScript https://decode.sh/./enabling-the-use-of-the-tab-character-in-a-html-textarea-element-with-java-script How to enable the use of the tab character in a HTML textarea element using JavaScript. It describes the process of adding an event listener to the textarea element that listens for the keydown event and checking the keyCode property of the event object to determine if the tab key has been pressed. If the tab key has been pressed, the default behavior of the tab key is prevented and a tab character is inserted into the textarea element using the insertText function. An example of the code required to implement this functionality is also provided. Express Plugins https://decode.sh/./express-plugins Express plugins can be used to process POST body data, serve static files, or serve content with CORS enabled. Learn the basics of app.use. Extracting URL Parts https://decode.sh/./extracting-url-parts JavaScript provides several built-in methods that can be used to extract different parts of a URL. Here is a tutorial on how to extract the protocol, hostname, pathname, and query parameters of a URL in JavaScript. Fetch API https://decode.sh/./fetch-api The Fetch API is a interface for making http requests using javascript in the browser and with node version +18. If you are familiar with the XMLHttpRequest or ajax() from jQuery this will feel familiar. Generating Images Based on a URL Slug https://decode.sh/./generating-images-based-on-a-url-slug Welcome to our tutorial on dynamically generating images using Node.js! In this post, we'll be exploring a technique for creating images on the fly based on the URL slug of a webpage. This can be a powerful tool for creating personalized, dynamic content for your website or application. Whether you're looking to create unique product images, customized social media graphics, or any other type of dynamic image, this tutorial will show you how to get started with Node.js. So let's dive in! Generating Random Colors on a Range https://decode.sh/./generating-random-colors-on-a-range If you want to add some visual interest to your website, consider incorporating random colors. While using the Math.random() function to generate colors can be a quick and easy option, it may result in some less-than-appealing hues. An alternative approach is to create a set of random colors that all conform to a specific color profile. Here's a simple method for doing so. GraphQL: The basics https://decode.sh/./graph-ql-the-basics GraphQL is a data aggregation framework designed to make accessing, updating, and creating data easier. It acts very similar to REST in the sense that it is a design spec on how to structure your API, like REST there are pre-built solutions you can implement which we will go over later in this post. How to install Daisy UI with Tailwind CSS https://decode.sh/./how-to-install-daisy-ui-with-tailwind-css Daisy UI is a collection of components and custom classes that can be easily used to rapidly create stunning websites. Daisy UI's secret is it's built using Tailwind CSS which provide out of the box support for easy customization of elements. How to setup Nginx server blocks for multiple sites - Ubuntu https://decode.sh/./how-to-setup-nginx-server-blocks-for-multiple-sites-ubuntu Setting up nginx server blocks is a process that allows you to host multiple websites on a single server. It is a useful technique for those who want to host multiple websites or applications on a single machine, as it allows you to use a single IP address and port to host multiple domains. In this article, we will explain how to set up nginx server blocks on a Ubuntu server. How to use Git https://decode.sh/./how-to-use-git Git is a popular version control system that allows developers to keep track of changes in their codebase and collaborate with others. Here is a step-by-step tutorial on how to use Git. HTML Unicode Escaped Characters https://decode.sh/./html-unicode-escaped-characters HTML escaped characters are special sequences of characters used in HTML to represent characters that cannot be easily typed using a keyboard or that have a special meaning in HTML. These characters are also known as HTML entities or character entities. HTTP Headers - Basics https://decode.sh/./http-headers-basics HTTP headers are a crucial part of the HTTP protocol, which is used to transmit data over the internet. These headers are used to provide additional information about the request or response, such as the type of content being sent, the length of the content, and the encoding used. Implementing GraphQL https://decode.sh/./implementing-graph-ql Learn to build a GraphQL query server in Node JS. Enable dynamic/high speed API endpoints with GraphQL and Express. Improving Node JS performance by 400% with Turb.js https://decode.sh/./improving-node-js-performance-by-400-with-turb-js Turb.js is a function caching server that turbo charges your application with safe and fast memory management. Today we will use Turb to increase the performance of static assets in our PocketBase database. Although this example is for PocketBase, Turb can be used anywhere in your application to speed up long processes. https://decode.sh/./. Install PicoCSS with Svelte https://decode.sh/./install-pico-css-with-svelte Pico CSS is a classless CSS framework that auto add styles to default HTML elements allowing you to effortlessly build beautiful websites. Here's how to install and use it in Svelte or SvelteKit. Install Tailwind CSS Svelte https://decode.sh/./install-tailwind-css-svelte Tailwind CSS is a CSS framework designed to be used with modular predefined classes instead of custom classes for each element. We will go over how to install Tailwind CSS and set it up to build with Svelte. Installing Deno JS https://decode.sh/./installing-deno-js Deno is a JavaScript and TypeScript runtime environment that was created as an alternative to Node.js. It is designed to be simple, secure, and fast, with a focus on making it easier for developers to build scalable and efficient applications. Installing Nginx on Ubuntu https://decode.sh/./installing-nginx-on-ubuntu NGINX (pronounced "engine x") is a free, open-source, high-performance HTTP server and reverse proxy. It is known for its high performance and low resource consumption, making it a popular choice for web servers and microservices architectures. In this article, we will go over the steps to install NGINX on an Ubuntu machine. Installing Node.js on DigitalOcean using NVM (Node Version Manager) https://decode.sh/./installing-node-js-on-digital-ocean-using-nvm-node-version-manager Node.js is a popular, open-source JavaScript runtime environment that is used for building scalable, high-performance applications. In this tutorial, you'll learn how to install Node.js on a DigitalOcean droplet using NVM (Node Version Manager), a popular tool for managing multiple Node.js versions on a single machine. Is Tailwind CSS Any Good? https://decode.sh/./is-tailwind-css-any-good Honest feedback from an average developer. JavaScript ClipBoard API https://decode.sh/./java-script-clip-board-api The JavaScript clipboard API provide the ability to programmatically interface with the devices clipboard, enabling cutting, copying, and pasting without user input. Javascript Loops https://decode.sh/./javascript-loops Loops are one of the most valuable tools in any programmer's arsenal, and Javascript is no exception. Loops allow you to execute the same code multiple times with different values, making them a great way to deal with repetitive tasks. There are three main types of loops in Javascript: for loops, while loops, and do-while loops, each with its own syntax and usage. JS Chunk Array https://decode.sh/./js-chunk-array Here's a simple function that uses generators to chunk an array. Generators are a type of function that returns an iterator and traverse it one at a time if you use the spread operator with a generator you get a very efficient function that is easy to work with. JSDoc Setup Guide https://decode.sh/./js-doc-setup-guide JSDoc is a popular tool used to generate documentation for JavaScript code. It allows developers to document their code in a standardized format, making it easier for others to understand and use their code. JS Push Notifications on iOS https://decode.sh/./js-push-notifications-on-i-os Push notifications are a great way to keep users engaged with your web application even when they're not actively using it. In this tutorial, I will guide you on how to use push notifications in JavaScript. JS Switches https://decode.sh/./js-switches The switch statement is a control structure used to perform multiple operations based on different cases, often as an alternative to if-else statements. JWT Authentication for Node.JS https://decode.sh/./jwt-authentication-for-node-js Here's a step-by-step tutorial on how to create a JSON Web Token (JWT) middleware for Express in Node.js. Kod.js https://decode.sh/./kod-js Kod.js is a code preview image generator that runs both in the browser and on Node JS. It is built using highlight.js and uses it for the themes and syntax highlighting. Lazy Loading Images https://decode.sh/./lazy-loading-images Lazy loading is a technique that defers the loading of images until they are needed, rather than loading them all at once when the page first loads. This can help improve the performance and user experience of a webpage, particularly on sites with a large number of images. LetsEncrypt and Securing Websites https://decode.sh/./lets-encrypt-and-securing-websites Let's Encrypt is a free alternative to paid SSL Certificate Authorities. Learn what they do and how to get started. Logging into Git from a Remote Server https://decode.sh/./logging-into-git-from-a-remote-server Git remote server setup can be tricky with the updated rules Github has, here we will dive into the basics of logging in while keeping your keys secure. Making Requests to a GraphQL API https://decode.sh/./making-requests-to-a-graph-ql-api Interfacing with a GraphQL API can be done with dedicated libraries, or with custom helper functions you create. We will only be covering the custom method here. Making sticky elements in HTML and CSS. https://decode.sh/./making-sticky-elements-in-html-and-css Sticky elements are a useful feature in modern web design, as they allow certain elements on a webpage to remain visible even when the user scrolls. This can be useful for elements such as the navigation bar or a call-to-action button, as it ensures that they are always accessible to the user. Mapping Wildcard Paths - Express Endpoints https://decode.sh/./mapping-wildcard-paths-express-endpoints Learn how to map wildcard paths to system paths for Svelte like endpoints in Express. Monitoring Variables for Changes https://decode.sh/./monitoring-variables-for-changes All frameworks have this ability, but what if you wanted to do it in plain JavaScript? In this tutorial, we will explore how to track the state of your application and update the DOM on the fly. Nix Package Manager https://decode.sh/./nix-package-manager Nix is a tool that enables reproducible package build in isolation allowing package's to be install on any Linux based operating system including Mac OS. Node JS Express Server https://decode.sh/./node-js-express-server Even though Node JS has a built in HTTP request handler using a web server framework can reduce the amount of code and increase the reliability of your site. There are many options to choose from however express is one of the most popular for it's easy to use syntax and wide support. Node JS HTTP Webserver https://decode.sh/./node-js-http-webserver Node JS comes out of the box with a built in HTTP module that can handle Hypertext Transfer Protocol requests. You can use this to build a web server without installing anything. NodeJS/Javascript Testing Using the Test Runner Module https://decode.sh/./node-js-javascript-testing-using-the-test-runner-module The test runner API is a new set of built-in tools allowing you to natively create tests for your code. No more need for Jest, Mocha, or Ava! This will bring Node up with most modern languages (Dart, Rust, GO) and reduce the package size of your code base. Node JS Read File Directory https://decode.sh/./node-js-read-file-directory Reading a directory in Node JS can be useful for many reasons, here's a quick way to get all the file paths in an array. Node JS Reading Files https://decode.sh/./node-js-reading-files In Node.js, there are various ways to read files from the file system. In this tutorial, we will explore the most commonly used methods to read files in Node.js. Node Serverless https://decode.sh/./node-serverless Serverless computing has gained immense popularity in recent years, especially with the rise of cloud computing. With the help of serverless architecture, developers can now focus more on the business logic of their applications rather than worrying about the infrastructure setup. In this tutorial, we will discuss how to make serverless APIs in Node.js using the Serverless Framework. Open AI GPT-3 API Tutorial JS https://decode.sh/./open-ai-gpt-3-api-tutorial-js How to use the GPT-3 API in Node JS to generate text for any use. Paraphrasing Text without Machine Learning in JavaScript https://decode.sh/./paraphrasing-text-without-machine-learning-in-java-script Being able to summarize a article is super useful and surprisingly it doesn't require machine learning to accomplish. Here we will go over the concepts behind frequency analysis and implement it to build a text summerization api. PicoCSS Dynamic Templates https://decode.sh/./pico-css-dynamic-templates Pico CSS has the ability to customize the dark and light templates here is how to change the template colors with JS. PicoCSS product page example https://decode.sh/./pico-css-product-page-example Pico CSS is a great tool for building low code interfaces, today we will be going through the process of creating a product page for a ecommerce store. The image below shows what you will have at the end. PocketBase Installation on Digital Ocean https://decode.sh/./pocket-base-installation-on-digital-ocean PocketBase is a fast growing beginner friendly database built in GO. PocketBase JS API https://decode.sh/./pocket-base-js-api Unlock the full potential of PocketBase's JS SDK with this comprehensive guide covering everything you need to know to avoid confusion. PocketBase list all records in a collection https://decode.sh/./pocket-base-list-all-records-in-a-collection When using the getList() method to fetch queries from your collection, you can run into issues where as your database grows, you are no longer collecting all the records. To fix this you can use the getFullList method. Promise Message Queuing https://decode.sh/./promise-message-queuing When building an application, if you are like me, you make multiple requests to your database per request. I recently ran into an issue with syncing the fetching of data from my database and returning a response as soon as possible. Here's how I fixed it. Promises VS Callbacks https://decode.sh/./promises-vs-callbacks Promises and callbacks are both ways to handle asynchronous code in JavaScript. A callback is a function passed as an argument to another function and executed after the first function has been completed. A Promise is an object that is returned immediately, representing a value that may not be available yet. Promises are more powerful than callbacks because they provide a way to compose asynchronous operations and methods to handle errors. Promises also provide better readability and maintainability by eliminating the need for nested code blocks. Redirecting Users to the Correct Page After a 404 Error https://decode.sh/./redirecting-users-to-the-correct-page-after-a-404-error Properly addressing 404 errors is crucial in preventing the loss of traffic to your website. In this tutorial learn how to rectify this error and redirect users to the right page. Remove Duplicate Items in an Array https://decode.sh/./remove-duplicate-items-in-an-array Eliminating duplicate items from an array can be challenging, but this simple one-liner makes it easy to do so in any situation. Running Spreadsheets in the Browser https://decode.sh/./running-spreadsheets-in-the-browser Spreadsheets are used everywhere in business and just about everyone knows how to use them at least at the surface level. If you want to build functionality into your website or blog post without building out a complete system you could opt to embed a spreadsheet instead. Seeded Random Number Generator in JS https://decode.sh/./seeded-random-number-generator-in-js Random numbers are an essential tool for developers, whether it's for generating random colors for page elements, creating dynamic content on canvas, or any other purpose. However, one issue with the default Math.random() function is you can not repeat the results. This can be a problem if you want to generate randomness but still need some control over the output. Setting Up GitHub Pages https://decode.sh/./setting-up-git-hub-pages GitHub Pages is a free service offered by GitHub that allows you to create a website or blog for your project, personal brand, or business. By default, GitHub Pages provides a subdomain for your site, such as username.github.io. However, you can also use a custom domain name for your site, which can help you establish your brand and make your site more memorable. Setting up Node.JS for production https://decode.sh/./setting-up-node-js-for-production Node.js is a popular JavaScript runtime that allows developers to build server-side applications with JavaScript. PM2 is a process manager for Node.js applications that helps to keep your applications running smoothly and automatically restart them in the event of any failures. Here's a guide on how to set up Node.js with PM2 and Let's Encrypt: Shared Hosting vs Serverless https://decode.sh/./shared-hosting-vs-serverless When building a web service should you build your application on a shared hosting plan like Digital Ocean, or should you use a service like AWS Lambda or Cloudflare's Workers? JS Tools https://decode.sh/./shortcuts Description Styling HTML Tables in CSS https://decode.sh/./styling-html-tables-in-css Tables in HTML play an important role in laying out complex sets of data. By default the table styling is boring, with this guide learn how to create awesome tables. Svelte: Building for Deno https://decode.sh/./svelte-building-for-deno Svelte is a popular web application framework that allows you to build reactive and dynamic web applications using JavaScript. Deno, on the other hand, is a secure runtime for JavaScript and TypeScript that aims to provide a modern and secure environment for running server-side applications. In this tutorial, we will walk through the steps to build a Svelte application to run on Deno. Svelte Environment Varibles https://decode.sh/./svelte-environment-varibles Environment variables are values that can be passed to an application at runtime, that influence the behavior or configuration of the application. They are stored in key-value pairs and can be used to store sensitive information, such as passwords, API keys, or configuration settings. This information is made available to the application through the operating system, so the application can use it without having to hardcode the values into the codebase. Svelte Full Text Search - flexsearch https://decode.sh/./svelte-full-text-search-flexsearch "flexsearch" is a JavaScript library for fast, flexible, and robust search and indexing. It provides a high-performance search engine that is optimized for search and indexing, and can be used in both client-side and server-side applications. It supports a range of features including full-text search, fuzzy search, query highlighting, and auto-suggestions. Here's how to implement it into a Svelte project. Svelte If Statements https://decode.sh/./svelte-if-statements If statements in Svelte make it easy to control whether or not content is displayed in your application. Here is a quick reference on how to use them Svelte Import Non-Svelte Scripts https://decode.sh/./svelte-import-non-svelte-scripts Importing non-Svelte libraries into a Svelte project can be confusing. Here's a guide on how to import both NPM and non-NPM JavaScript modules into your Svelte project. Svelte Markdown Component https://decode.sh/./svelte-markdown-component Using markdown with Svelte allows you to create super simple websites that require almost no-coding. The svelte-markdown component makes this easy with one line of Svelte. Svelte Static Site Generation https://decode.sh/./svelte-static-site-generation Svelte is a great platform to create any type of site. If you want to create a site and host it on Github Pages, you can use Svelte to generate a static site and upload the files to the desired GitHub repository. Here's how! Svelte Stores https://decode.sh/./svelte-stores Svelte stores are an important feature of the Svelte framework that enables the sharing of state between components. In this tutorial, we will learn how to use Svelte stores. Ternary Operators in JS https://decode.sh/./ternary-operators-in-js A ternary operator is a type of conditional operator that allows for inline if statements. The ternary operator is suer useful once you know how to use it and can reduce the amount of logic in an application and are often used when you need to assign a value to a variable based on a condition. Testing in JavaScript https://decode.sh/./testing-in-java-script Testing in Javascript can be done on your own, by writing application-specific tests to ensure your code is working the way you want it to or, it can be done with a testing library that can help remove some of the extra code. TF-IDF Visualizer https://decode.sh/./tf-idf-visualizer TF-IDF stands for Term Frequency - Inverse Document Frequency, the formula we will be going over in this document is used to measure the importance of a word in a sentence. This is heavily used in machine learning and data mining to identify stopwords and select sentence that can be used to form a summary. TOML Basics https://decode.sh/./toml-basics TOML is a configuration file format that is designed to be easy to read and write for both humans and machines. It stands for "Tom's Obvious, Minimal Language" and was created by Tom Preston-Werner, the co-founder of GitHub. In this tutorial, we will explore how to use TOML. Understanding Classes in JavaScript https://decode.sh/./understanding-classes-in-java-script Classes are blueprints for creating objects (a type of data structure), providing initial values for state (using a constructor), and implementations of behavior (member functions or methods). They support inheritance and polymorphism, which are fundamental concepts in object-oriented programming. Using Canvas in Node JS https://decode.sh/./using-canvas-in-node-js Have you ever wanted to generate dynamic images on the server side? With Node Canvas, it's easy! Node Canvas is a module that allows you to use the canvas element on the backend, making it simple to create images based on user input. Using CSS Media Queries for Responsive Design https://decode.sh/./using-css-media-queries-for-responsive-design Media queries in CSS are a powerful tool that allow you to adjust the layout and design of your website based on the characteristics of the device that is being used to view it. In this tutorial, we will cover the basics of using media queries in CSS. Using Different Servers with Svelte https://decode.sh/./using-different-servers-with-svelte Svelte by default uses the Node.JS http module as it's router. Here we will talk about using Express or Polka as middleware to implement API routes. Using Media Queries in JS https://decode.sh/./using-media-queries-in-js With media queries, developers can ensure that a website looks good and is easy to use on all types of devices, from smartphones to tablets to desktop computers. By optimizing the layout and design for each device, users can enjoy a seamless browsing experience no matter where they are accessing the website from. Using Sever Sent Events as Light Weight "WebSockets" https://decode.sh/./using-sever-sent-events-as-light-weight-web-sockets Until recently I never completely understood what server-sent events were. Of course, I had a general idea of how they work, they acted as a websocket that works in one direction, allowing you to send data at different times throughout a request. What I didn't realize is how simple they were to implement and how powerfull they could be. Variables in JavaScript https://decode.sh/./variables-in-java-script Today we will go over the most fundamental operator in programming, the variable. A variable is a keyword used to represent a piece of data in memory. Warp Terminal https://decode.sh/./warp-terminal Warp terminal claims to be a "a blazingly fast, rust-based terminal reimagined from the ground up to work like a modern app". Here we will go over some of my favorite features and discuss why I made the switch. What is HTML DOM? https://decode.sh/./what-is-html-dom The HTML Document Object Model (DOM) is an integral part of web development and is used to create dynamic web pages. It is a hierarchical tree-like structure that contains the content of the webpage, making it possible for developers to access and manipulate the content. Each element of the webpage is a node, with a unique ID and a set of attributes. The root node of the DOM tree is the HTML element, and all other elements of the webpage are descendants of the HTML element. Why using eval in JS can be dangerous https://decode.sh/./why-using-eval-in-js-can-be-dangerous It can cause malicious code to be executed with the same permissions as the webpage or extension, as well as it is slower than other alternatives due to the additional steps required for invoking the JavaScript interpreter. Minifiers also struggle with code transitively dependent on eval(), and how this can cause issues for variables.