<?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: Mayank Sahai</title>
    <description>The latest articles on DEV Community by Mayank Sahai (@mayanksahai).</description>
    <link>https://dev.to/mayanksahai</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%2F424129%2Ff9ce99da-eabd-4873-af65-fb4f75949388.jpeg</url>
      <title>DEV Community: Mayank Sahai</title>
      <link>https://dev.to/mayanksahai</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/mayanksahai"/>
    <language>en</language>
    <item>
      <title>Understanding WebSocket and creating from Scratch with JavaScript</title>
      <dc:creator>Mayank Sahai</dc:creator>
      <pubDate>Tue, 07 May 2024 20:39:35 +0000</pubDate>
      <link>https://dev.to/mayanksahai/understanding-websocket-and-creating-from-scratch-with-javascript-3e92</link>
      <guid>https://dev.to/mayanksahai/understanding-websocket-and-creating-from-scratch-with-javascript-3e92</guid>
      <description>&lt;p&gt;As developers, we often find ourselves on quests to understand new technologies. This past weekend, while battling a particularly stubborn bug (coffee wasn't helping!), I stumbled upon a cryptic note from my past self: "Explore WebSockets." Curiosity piqued, I set out to learn what these mysterious WebSockets were all about.&lt;/p&gt;

&lt;p&gt;WebSockets, in essence, enable real-time, two-way communication between a browser and a server. Unlike regular HTTP requests, which are one-off interactions, WebSockets allow for a continuous exchange of messages, similar to a live chat application.&lt;/p&gt;

&lt;p&gt;To understand how this works, I decided to build a simple WebSocket server using JavaScript. This was a learning experience, and the ever-reliable MDN Web Docs became my trusted companion (seriously, those folks are amazing!).&lt;/p&gt;

&lt;h2&gt;
  
  
  Data Frames: The Messengers of WebSockets
&lt;/h2&gt;

&lt;p&gt;Imagine data traveling between the browser and server in tiny packages called &lt;strong&gt;data frames&lt;/strong&gt;. Each frame carries a specific message and includes control bits that define how the data should be interpreted.&lt;/p&gt;

&lt;p&gt;Here's a simplified breakdown of a data frame :&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%2Fv1714939485444%2F2f727947-ec71-4e67-ae59-8f375222bfbf.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%2Fv1714939485444%2F2f727947-ec71-4e67-ae59-8f375222bfbf.png" alt="MDN"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Decoding the Data Frame:&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;FIN:&lt;/strong&gt; This bit indicates if the message is complete (FIN = 1) or if it's part of a fragmented message (FIN = 0).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Opcode:&lt;/strong&gt; This identifies the type of message being sent. Common opcodes include text (0x1), binary (0x2), and ping/pong for checking connection health.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Mask:&lt;/strong&gt; This bit (present only in client-to-server messages) specifies whether the payload is masked for security purposes. We'll delve into masking later.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Payload Length:&lt;/strong&gt; This indicates the length of the actual data being carried in the frame. The length can be encoded in one, two, or eight bytes depending on the message size.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Masking-key (optional):&lt;/strong&gt; If the Mask bit is set, this field contains a four-byte key used to unmask the payload for the receiver.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Payload:&lt;/strong&gt; This is the actual data being sent, which could be text, binary data, or any other information.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is just a simplified view of data frames for single messages. WebSockets can handle more complex scenarios with fragmented messages and masking, but that's a topic for another exploration!&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;A Toy Project with Big Learning&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Building this simple WebSocket server was a great way to gain practical experience with the protocol. It's a toy project, but it opened a door to the fascinating world of real-time communication in web applications.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Check out the Code!&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;The code for this WebSocket server is available on my GitHub repository: &lt;a href="https://github.com/mayank-sahai/socket-js" rel="noopener noreferrer"&gt;mayank-sahai/socket-js (&lt;/a&gt;&lt;a href="http://github.com" rel="noopener noreferrer"&gt;github.com&lt;/a&gt;&lt;a href="https://github.com/mayank-sahai/socket-js" rel="noopener noreferrer"&gt;)&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Feel free to explore the code and see how it implements the concepts discussed in this post.&lt;/p&gt;

&lt;p&gt;I'll be revisiting the code soon and updating it to delve deeper into functionalities like masking and fragmentation. In the meantime, if you're interested in learning more, check out the excellent resources on MDN Web Docs: &lt;a href="https://developer.mozilla.org/en-US/docs/Web/API/WebSocket" rel="noopener noreferrer"&gt;https://developer.mozilla.org/en-US/docs/Web/API/WebSocket&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Feel free to share your experiences with WebSockets in the comments below!&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>websockets</category>
      <category>http</category>
      <category>tcp</category>
    </item>
    <item>
      <title>CSS Art: Earth Day Challenge Submission</title>
      <dc:creator>Mayank Sahai</dc:creator>
      <pubDate>Wed, 24 Apr 2024 20:19:58 +0000</pubDate>
      <link>https://dev.to/mayanksahai/css-art-earth-day-challenge-submission-3mm</link>
      <guid>https://dev.to/mayanksahai/css-art-earth-day-challenge-submission-3mm</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for &lt;a href="https://dev.to/devteam/join-us-for-the-next-frontend-challenge-earth-day-edition-52e4"&gt;Frontend Challenge v24.04.17&lt;/a&gt;, CSS Art: Earth Day.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Inspiration
&lt;/h2&gt;

&lt;p&gt;You ever look around and think, "Man, we're really messing up this planet"? Yeah, me too. So, when I stumbled upon this Earth Day challenge, I saw it as a chance to do something about it – in my own little way.&lt;/p&gt;

&lt;p&gt;I wanted to create a digital space that reflects the urgency of our environmental crisis. You know, a place where Earth takes center stage, surrounded by reminders of our duty to protect it. And hey, who doesn't love a good metaphor? That's where our friendly janitor comes in – a symbol of the everyday actions we can take to clean up our act.&lt;/p&gt;

&lt;p&gt;Now, I'm no front-end wizard, but I figured, why not give it a shot? After all, sometimes the most meaningful journeys start with a leap of faith, right?&lt;/p&gt;

&lt;p&gt;So here’s to using my creative juices to annotate the issues that matter to remind ourselves of our responsibilities towards Planet Earth and to take action, big or small. Together, we can make a difference. 🌍✨&lt;/p&gt;

&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;p&gt;Here's a simple glimpse of my CSS Art project, created with HTML and CSS. If you'd like to take a closer look, you can find the code on my Github repo - &lt;a href="https://github.com/mayank-sahai/dev-css-art-earth-day"&gt;https://github.com/mayank-sahai/dev-css-art-earth-day&lt;/a&gt;.&lt;/p&gt;

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

&lt;p&gt;To view the final look, Please click &lt;a href="https://dev-css-art-earth-day.vercel.app/"&gt;here&lt;/a&gt; This is only created keeping a large screen size like a desktop or iPad in mind. It will not look good on Mobile screens. &lt;/p&gt;

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

&lt;h2&gt;
  
  
  Journey
&lt;/h2&gt;

&lt;p&gt;It all started with a simple idea – create a digital ode to Earth Day that captures the urgency of our environmental plight. Armed with nothing but HTML and CSS, I dove headfirst into the world of front-end development.&lt;/p&gt;

&lt;p&gt;First came the brainstorming session – how could I translate my vision into code? I decided to start with some humble info banners, little reminders of our planet's fragility. Then, it was time for the main event – Earth itself. But I didn't want just any static image; I wanted Earth to come alive, to be surrounded by reminders of our responsibility to protect it.&lt;/p&gt;

&lt;p&gt;That's when the technical wizardry came into play. I discovered CSS animations and keyframes, allowing me to breathe life into my creation. With a few clever tricks, I made Earth rotate gracefully, while a tiny janitor figure wandered across its surface, cleaning up digital debris along the way.&lt;/p&gt;

&lt;p&gt;At first, I thought, "Garbage everywhere! Let's surround Earth with it." But then I remembered, I'm not a frontend whiz. So, instead, I made the garbage fade away magically when the janitor got close. Pretty neat, huh?&lt;/p&gt;

&lt;p&gt;Now, the background. I wanted something out of this world, so I went with the stars. But let's be real, I just sprinkled them randomly. I mean, who has time for precise placement?&lt;/p&gt;

&lt;p&gt;And the cherry on top? The soundtrack – Lil Dicky's "Earth" on loop. But hey, it needed a little push from the viewer to start playing. So, I left a note, like a gentle reminder to allow the sound on the browser.&lt;/p&gt;

&lt;p&gt;With each line of code, I felt a sense of accomplishment. It may not be perfect, but it's my humble contribution to the cause – a digital call to action in the fight to protect our planet for future generations.&lt;/p&gt;

&lt;h2&gt;
  
  
  Acknowledgments
&lt;/h2&gt;

&lt;p&gt;A nod of appreciation to &lt;a href="https://www.w3schools.com/css/default.asp"&gt;W3Schools&lt;/a&gt; and &lt;a href="https://developer.mozilla.org/en-US/docs/Web/CSS"&gt;MDN Web Docs&lt;/a&gt; for their helpful CSS documentation. Couldn't have done it without you! 🙌📚&lt;/p&gt;

</description>
      <category>frontendchallenge</category>
      <category>devchallenge</category>
      <category>css</category>
      <category>html</category>
    </item>
    <item>
      <title>Introduction to Amazon Athena: A Fast and Cost-Effective Serverless Query Service</title>
      <dc:creator>Mayank Sahai</dc:creator>
      <pubDate>Wed, 24 Apr 2024 15:41:29 +0000</pubDate>
      <link>https://dev.to/mayanksahai/introduction-to-amazon-athena-a-fast-and-cost-effective-serverless-query-service-28be</link>
      <guid>https://dev.to/mayanksahai/introduction-to-amazon-athena-a-fast-and-cost-effective-serverless-query-service-28be</guid>
      <description>&lt;p&gt;Amazon Athena is a &lt;strong&gt;serverless&lt;/strong&gt; , &lt;strong&gt;interactive query&lt;/strong&gt; service that makes it easy for me to analyze data in Amazon S3 using standard &lt;strong&gt;SQL&lt;/strong&gt;. With its speed, cost-effectiveness, and user-friendly interface, Athena has become my go-to solution for efficient data exploration and analysis.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;How Athena Works:&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Athena leverages &lt;strong&gt;Presto&lt;/strong&gt; , a powerful open-source distributed SQL engine, to execute queries on data stored in my Amazon S3 buckets. As a serverless service, Athena eliminates the need for me to manage any infrastructure. I simply point Athena to my data in S3, define the schema, and start querying.&lt;/p&gt;

&lt;h3&gt;
  
  
  Key Benefits of Using Athena:
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Blazing Speed: Amazon Athena excels in processing vast amounts of data(like petabytes of data) within seconds. Athena's performance remains impressive, ensuring quick insights and analysis regardless of the data size.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Cost-Effectiveness: Athena's pricing structure follows a pay-per-query model. I am only billed for the queries I execute, optimizing cost efficiency. This approach is especially advantageous for me as I have varying query workloads.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Ease of Use: Athena is designed to be user-friendly, enabling me to use standard SQL to query my data. This familiarity eliminates the need for extensive training or specialized skills, making it accessible to users like me.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Versatile Data Support: Amazon Athena empowers users to run queries on a wide range of data types, including structured, semi-structured, and unstructured data. This flexibility allows for seamless analysis of diverse datasets.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Flexible Data Compatibility: Athena supports multiple data formats, including CSV, JSON, Apache Avro, Parquet, and ORC. This compatibility enables users to work with their data in the format that best suits their needs, enhancing convenience and flexibility in data analysis.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Use Cases for Athena:
&lt;/h3&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%2Fv1685778894685%2F15320094-204d-480f-9d4c-3292d4b53579.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%2Fv1685778894685%2F15320094-204d-480f-9d4c-3292d4b53579.png" alt="athena-usecase"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Data Warehousing: Athena allows me to create a robust data warehouse on Amazon S3. By defining schemas and running queries, I can efficiently organize and retrieve my data.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Data Analysis: With Athena, I can analyze large datasets residing in Amazon S3. By leveraging its querying capabilities, I can gain valuable insights, perform complex calculations, and uncover patterns within my data.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Reporting: Athena enables me to generate comprehensive reports based on data stored in Amazon S3. By querying relevant data, I can extract the necessary information and generate customized reports to facilitate decision-making.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Visualization: Integration between Athena and Amazon QuickSight, a data visualization service, allows me to create captivating and insightful visual representations of my data. This integration further enhances my data exploration and analysis capabilities.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Getting Started with Athena:
&lt;/h3&gt;

&lt;p&gt;To embark on your Athena journey, you need to create an AWS account. Once registered, you can proceed by creating an Athena table. This process entails specifying the S3 bucket that holds your data, defining the schema, and specifying the data format.&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%2Fv1685778986021%2F3b461a03-642b-49b7-9374-4a350babf72c.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%2Fv1685778986021%2F3b461a03-642b-49b7-9374-4a350babf72c.png" alt="athena-dashboard"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;After setting up an Athena table, you can start querying your data through multiple avenues such as the AWS Management Console, the AWS Command Line Interface (CLI), or the Athena API.&lt;/p&gt;

&lt;h3&gt;
  
  
  Pricing Details for Athena:
&lt;/h3&gt;

&lt;p&gt;Athena's pricing model is based on a pay-per-query structure. The cost of each query is determined by the amount of data scanned during its execution. For instance, scanning 1 TB of data incurs a charge of $5. It is worth noting that failed queries and Data Definition Language (DDL) queries, such as table creation or view definition, do not incur charges. However, canceled queries are charged for the data already scanned.&lt;/p&gt;

&lt;h3&gt;
  
  
  Conclusion:
&lt;/h3&gt;

&lt;p&gt;Amazon Athena offers a robust and efficient solution for analyzing data stored in Amazon S3. Its exceptional speed, cost-effectiveness, and ease of use make it a preferred choice for businesses seeking to derive valuable insights from their data. Whether you're looking to create data warehouses, perform in-depth analysis, generate reports, or visualize data, Athena provides the necessary tools and capabilities. Embrace the power of Athena and uncover the hidden potential within your datasets.&lt;/p&gt;

&lt;p&gt;I hope this article has provided you with some introduction to Amazon Athena. In the upcoming section of this series, we will do some hands-on and get a better understanding of &lt;strong&gt;AWS ATHENA&lt;/strong&gt;. :)&lt;/p&gt;

</description>
      <category>athena</category>
      <category>aws</category>
      <category>serverless</category>
      <category>sql</category>
    </item>
    <item>
      <title>ECMA and ECMAScript: What You Need to Know</title>
      <dc:creator>Mayank Sahai</dc:creator>
      <pubDate>Wed, 24 Apr 2024 15:14:13 +0000</pubDate>
      <link>https://dev.to/mayanksahai/what-is-ecma-and-ecmascript-49a0</link>
      <guid>https://dev.to/mayanksahai/what-is-ecma-and-ecmascript-49a0</guid>
      <description>&lt;h2&gt;
  
  
  Everyone loves using it, but doesn't know much about it.🤔
&lt;/h2&gt;

&lt;p&gt;Many people, whether new to the development field or with experience, have doubts and confusion around ECMA and ECMAScript.😵‍💫 In this article, we'll get it straight once and for all.😯&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Standardization in the Computer Industry:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Standardization plays a significant role in the computer industry, helping to consume data prepared by other parties with minimum alteration. In 1960, computer manufacturers around Europe formed an association to draw up laws and rules. This association became the European Computer Manufacturers Association (ECMA) in 1961 and was later renamed to Ecma International – European Association for standardizing information and communication systems.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;ECMA Standards:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Ecma International has developed more than 400 standards to facilitate and encourage the correct use of information and communication systems. Here is a snippet from Wiki that shows some ECMA international standards.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fx7ymm0u6yo66vq4hx68f.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fx7ymm0u6yo66vq4hx68f.png" alt="ECMA international standards" width="723" height="481"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;ECMA-262 and ECMAScript:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Today we will talk about ECMA-262, which is the specification for ECMAScript, a scripting language used for client-side scripting and in server-side applications and services using different runtimes. The purpose of ECMAScript is to provide standardization for scripting languages like JavaScript to facilitate interoperability of webpages across the internet and different browsers.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Multiple Editions of ECMAScript:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Multiple editions of ECMAScript have been published, and each edition has brought tremendous additions to the standards. In a future article, we'll delve into ECMAScript 2015 (ES6) onwards.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Conclusion:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Now that you understand what ECMA stands for and what ECMAScript is, you'll be better equipped to navigate the development field. Thanks for your time! 😬&lt;/p&gt;

</description>
      <category>ecma</category>
      <category>javascript</category>
      <category>beginners</category>
    </item>
  </channel>
</rss>
