<?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: Raghavendra </title>
    <description>The latest articles on DEV Community by Raghavendra  (@raaghu).</description>
    <link>https://dev.to/raaghu</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%2F935104%2F72d2419f-507e-40aa-a719-99828cefbbac.jpeg</url>
      <title>DEV Community: Raghavendra </title>
      <link>https://dev.to/raaghu</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/raaghu"/>
    <language>en</language>
    <item>
      <title>Think OUTSIDE the Container</title>
      <dc:creator>Raghavendra </dc:creator>
      <pubDate>Fri, 19 May 2023 14:03:28 +0000</pubDate>
      <link>https://dev.to/raaghu/think-outside-the-container-1g9f</link>
      <guid>https://dev.to/raaghu/think-outside-the-container-1g9f</guid>
      <description>&lt;p&gt;With the latest news of Amazon Prime moving from serverless to a container, there are still many use-cases where serverless is better.&lt;/p&gt;

&lt;p&gt;Serverless is best suited for use-cases where the request rate is not too high. Many applications fall under this category. &lt;br&gt;
For example&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Enterprise applications, which are used by employees within an organization. &lt;/li&gt;
&lt;li&gt;Customer Review Apis in an ECommerce platform.&lt;/li&gt;
&lt;li&gt;Forgot password Apis&lt;/li&gt;
&lt;li&gt;Update UserProfile Apis&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Moving such use cases to serverless saves money by paying only for the used resource.&lt;/p&gt;

&lt;p&gt;Though from an infrastructure point of view, serverless is a better option for many scenarios. There is still a problem with developing and maintaining the code for serverless applications. SOMOD helps developers better organize serverless applications. &lt;/p&gt;

&lt;p&gt;Think outside the containers and try &lt;a href="https://somod.dev"&gt;https://somod.dev&lt;/a&gt; for your serverless applications.&lt;/p&gt;

</description>
      <category>serverless</category>
      <category>cloud</category>
      <category>container</category>
      <category>somod</category>
    </item>
    <item>
      <title>Split Larger Serverless Application in to smaller micro-apps</title>
      <dc:creator>Raghavendra </dc:creator>
      <pubDate>Sat, 06 May 2023 10:27:07 +0000</pubDate>
      <link>https://dev.to/raaghu/split-larger-serverless-application-in-to-smaller-micro-apps-3l3b</link>
      <guid>https://dev.to/raaghu/split-larger-serverless-application-in-to-smaller-micro-apps-3l3b</guid>
      <description>&lt;p&gt;Serverless applications are great because they remove the burden of maintaining the server, thus allowing developers and startups to focus on code instead of infrastructure. But what happens when the serverless application grow bigger? This article describes the strategies to maintain larger serverless applications.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;This article is about AWS SAM Applications. Terraform has modules to handle this use case. For other serverless platforms, let us discuss them in the comments&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;1. Nested Applications&lt;/strong&gt;&lt;br&gt;
Using the &lt;a href="https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-application.html"&gt;AWS::Serverless::Application&lt;/a&gt;, one can create a giant serverless application by combining the smaller applications recursively. &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;PROS

&lt;ul&gt;
&lt;li&gt;Native Support by AWS SAM.&lt;/li&gt;
&lt;li&gt;Share applications using a file-system share or AWS Managed &lt;a href="https://aws.amazon.com/serverless/serverlessrepo/"&gt;SAM Repository&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Deploy and Test the nested application independently.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;li&gt;CONS

&lt;ul&gt;
&lt;li&gt;Parameter passing between nested applications is difficult to manage.&lt;/li&gt;
&lt;li&gt;Common dependencies create duplicate resources. For example, if applications &lt;strong&gt;A&lt;/strong&gt; and &lt;strong&gt;B&lt;/strong&gt; include application &lt;strong&gt;X&lt;/strong&gt;, another application using both &lt;strong&gt;A&lt;/strong&gt; and &lt;strong&gt;B&lt;/strong&gt; will have two instances of &lt;strong&gt;X&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Extending an application is not possible. For example, application &lt;strong&gt;A&lt;/strong&gt; which includes application &lt;strong&gt;B&lt;/strong&gt; can not update the properties of a resource in application &lt;strong&gt;B&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;2. Using SOMOD&lt;/strong&gt;&lt;br&gt;
With SOMOD(Serverless Optimized MODules) framework, create Serverless applications in smaller chunks and merge them to form bigger solutions on multiple levels.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;PROS

&lt;ul&gt;
&lt;li&gt;Each Module is an NPM Package giving the inbuilt feature to manage the dependencies.&lt;/li&gt;
&lt;li&gt;Easy Parameter management. &lt;/li&gt;
&lt;li&gt;No Duplicate resources.&lt;/li&gt;
&lt;li&gt;Can update only selected resources from dependency modules.&lt;/li&gt;
&lt;li&gt;Extendable framework&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;li&gt;CONS

&lt;ul&gt;
&lt;li&gt;Need NPM as package/dependency manager.&lt;/li&gt;
&lt;li&gt;Some extra conventions to learn (easy learning curve)&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://docs.somod.dev/getting-started"&gt;Getting Started with SOMOD&lt;/a&gt; section in the SOMOD documentation has a step-by-step guide to work with SOMOD.&lt;/p&gt;

</description>
      <category>somod</category>
      <category>serverless</category>
      <category>aws</category>
      <category>javascript</category>
    </item>
    <item>
      <title>JavaScript pushes the WebApplication structures from Development to Deployment Stage</title>
      <dc:creator>Raghavendra </dc:creator>
      <pubDate>Mon, 01 May 2023 12:48:38 +0000</pubDate>
      <link>https://dev.to/raaghu/javascript-pushes-the-webapplication-structures-from-development-to-deployment-stage-2bbo</link>
      <guid>https://dev.to/raaghu/javascript-pushes-the-webapplication-structures-from-development-to-deployment-stage-2bbo</guid>
      <description>&lt;p&gt;The Web Applications needs HTML, JavaScript, CSS and Icons to work. Creating a web application in modular approach makes it hard for packaging HTML, JS, CSS and Icons of a component and combine them during deployment.&lt;/p&gt;

&lt;p&gt;The solution for modular web application development is to develop all these parts (HTML, JS, CSS and Icons) using the technologies which can be transpiled into Pure Javascript. The Javascript then can be shared as NPM package. JSX can be used to create HTML in javascript. CSS-IN-JS libraries (for example styled-components) used to create CSS in Javascript. The Icons created using SVG can be embedded in JSX which inturn compiled into pure javascript.&lt;/p&gt;

&lt;p&gt;During deployment, the bundler and other tools can re-generate the HTML, CSS and JS back from the Javascript. Tools like webpack, parcel, vite generates the web applications from these reusable NPM packages.&lt;/p&gt;

&lt;p&gt;Check out these Amazing Material UI Components here &lt;a href="https://sodaru.github.io/mui-extended"&gt;https://sodaru.github.io/mui-extended&lt;/a&gt;&lt;br&gt;
These components uses JSX, and Styled Components and can be included in any of your react application.&lt;/p&gt;

&lt;p&gt;Happy coding &lt;/p&gt;

</description>
      <category>javascript</category>
      <category>webdev</category>
      <category>css</category>
      <category>html</category>
    </item>
    <item>
      <title>PNG vs SVG for Logos and Icons</title>
      <dc:creator>Raghavendra </dc:creator>
      <pubDate>Tue, 25 Apr 2023 07:50:04 +0000</pubDate>
      <link>https://dev.to/raaghu/png-vs-svg-for-logos-and-icons-2bgb</link>
      <guid>https://dev.to/raaghu/png-vs-svg-for-logos-and-icons-2bgb</guid>
      <description>&lt;p&gt;In most of the applications, Icons will appear after a delay of 1 to 2 seconds. This is bad for the User Experience. There are multiple ways to improve the performance of icon rendering.&lt;br&gt;
The streategies are &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Using CDN

&lt;ul&gt;
&lt;li&gt;Reduces the network latency in fetching the image. Still there can be a latency for first load or less frequently used images&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;li&gt;Using Sprite and CSS

&lt;ul&gt;
&lt;li&gt;All icons are loaded in one image so there will be a delay till the sprite image is loaded for the first time&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;li&gt;SVG embedded into HTML

&lt;ul&gt;
&lt;li&gt;SVG can be embedded into HTML. This eliminates the extra fetch for the image. &lt;/li&gt;
&lt;li&gt;In many cases the size of the SVG is smaller comparable to other image formats&lt;/li&gt;
&lt;li&gt;The latency issue is still persist if SVG is loaded as a separate image file &lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Here is the example I tried to load the Logos and icons in different formats. Embedded SVG is loaded as part of HTML while the other formats loads after a delay.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--PPQy8Amj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7a7i5o7vef4acdzbqzfu.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--PPQy8Amj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7a7i5o7vef4acdzbqzfu.gif" alt="Example of SVG Image Performance" width="600" height="233"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The source code is at &lt;a href="https://github.com/sodaru/icon-performance-demo"&gt;https://github.com/sodaru/icon-performance-demo&lt;/a&gt;&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>performance</category>
      <category>svg</category>
      <category>icons</category>
    </item>
    <item>
      <title>Use GIT with SSH on Windows</title>
      <dc:creator>Raghavendra </dc:creator>
      <pubDate>Thu, 20 Apr 2023 09:18:49 +0000</pubDate>
      <link>https://dev.to/raaghu/use-git-with-ssh-on-windows-4ck</link>
      <guid>https://dev.to/raaghu/use-git-with-ssh-on-windows-4ck</guid>
      <description>&lt;p&gt;To connect git remotes using ssh url is sometime tricky in windows machines. Try the following steps to use git with ssh on windows&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Download and Install latest &lt;a href="https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html"&gt;Putty Executables&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Run Pageant and add private keys 

&lt;ul&gt;
&lt;li&gt;run pageant. It will start minimized on the task bar.&lt;/li&gt;
&lt;li&gt;Double-click the pageant icon the the task bar.&lt;/li&gt;
&lt;li&gt;add the private keys, whose public part is uploaded to github/gitlab&lt;/li&gt;
&lt;li&gt;Need to run the pageant and add keys after every restart&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;Use &lt;code&gt;puttygen.exe&lt;/code&gt; to generate the ssh key-pair&lt;br&gt;
Pageant does not accepts the openssh private key. &lt;br&gt;
puttygen.exe can be used to convert the private key generated from ssh-keygen to PKCS format&lt;/p&gt;
&lt;/blockquote&gt;

&lt;ul&gt;
&lt;li&gt;set environment variable &lt;code&gt;GIT_SSH=C:\Windows\plink.exe&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;To trust the remote host, run &lt;code&gt;plink.exe -agent -v git@github.com&lt;/code&gt; one-time for each host&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You are all set to clone a repo from github using ssh url. Example - &lt;code&gt;git clone git@github.com:somod-dev/somod.git&lt;/code&gt;&lt;/p&gt;

</description>
      <category>git</category>
      <category>github</category>
      <category>ssh</category>
      <category>putty</category>
    </item>
    <item>
      <title>SSL Wrapper on existing HTTP server</title>
      <dc:creator>Raghavendra </dc:creator>
      <pubDate>Wed, 19 Apr 2023 06:33:25 +0000</pubDate>
      <link>https://dev.to/raaghu/ssl-wrapper-on-existing-http-server-4ke3</link>
      <guid>https://dev.to/raaghu/ssl-wrapper-on-existing-http-server-4ke3</guid>
      <description>&lt;p&gt;There are many scenarios where the Application is running in port 80 and we need to enable SSL on that. Each frameworks/languages provides a different ways to enable the HTTPS. &lt;/p&gt;

&lt;p&gt;In this gist I created a small reverse-proxy server which handles the HTTPS connection and redirects to HTTP server internally &lt;/p&gt;


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


</description>
      <category>javascript</category>
      <category>node</category>
      <category>ssl</category>
      <category>https</category>
    </item>
    <item>
      <title>Serverless Infrastructure, Backend and Frontend in one Package : SOMOD</title>
      <dc:creator>Raghavendra </dc:creator>
      <pubDate>Thu, 06 Oct 2022 08:53:04 +0000</pubDate>
      <link>https://dev.to/raaghu/serverless-infrastructure-backend-and-frontend-in-one-package-somod-22jl</link>
      <guid>https://dev.to/raaghu/serverless-infrastructure-backend-and-frontend-in-one-package-somod-22jl</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;I'm writing this post to introduce the new framework for the serverless stack, the &lt;strong&gt;SOMOD&lt;/strong&gt;.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  SOMOD - Serverless Optimized MODules
&lt;/h2&gt;

&lt;p&gt;SOMOD Combines 3 parts of the application, &lt;strong&gt;Infrastructure&lt;/strong&gt;, &lt;strong&gt;Backend&lt;/strong&gt;, and &lt;strong&gt;Frontend&lt;/strong&gt; into a single NPM Package.&lt;/p&gt;

&lt;p&gt;Each Module (the NPM package created using SOMOD) is extendible and reusable. Complex applications can be made just by adding the smaller modules as dependencies.&lt;/p&gt;

&lt;h3&gt;
  
  
  Features of SOMOD
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Sharable&lt;/li&gt;
&lt;li&gt;Reusable&lt;/li&gt;
&lt;li&gt;Extendible&lt;/li&gt;
&lt;li&gt;Encapsulates everything needed for an application&lt;/li&gt;
&lt;li&gt;Serverless Optimized&lt;/li&gt;
&lt;li&gt;Compatible with any module developed using SOMOD&lt;/li&gt;
&lt;li&gt;Readily available modules from our library&lt;/li&gt;
&lt;li&gt;Easy learning curve.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://docs.somod.dev/getting-started"&gt;Try SOMOD&lt;/a&gt;&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>serverless</category>
      <category>nextjs</category>
      <category>aws</category>
    </item>
    <item>
      <title>Does serverless means no server at all? The answer is Yes and No.</title>
      <dc:creator>Raghavendra </dc:creator>
      <pubDate>Wed, 05 Oct 2022 14:11:35 +0000</pubDate>
      <link>https://dev.to/raaghu/does-serverless-means-no-server-at-all-the-answer-is-yes-and-no-1gm4</link>
      <guid>https://dev.to/raaghu/does-serverless-means-no-server-at-all-the-answer-is-yes-and-no-1gm4</guid>
      <description>&lt;p&gt;To run any web application, one needs a server comprised of a physical machine connected to the network and software services running in that machine to serve the incoming request. The cloud providers initially removed the overhead of maintaining the physical servers. But the maintenance and scaling of these virtual software servers is still an application owner's responsibility.&lt;/p&gt;

&lt;p&gt;In serverless, even the software servers are managed by cloud providers. The application owner develops the application and provides code to the serverless platform. The serverless platform takes care of the deployment and maintenance of the service.&lt;/p&gt;

&lt;p&gt;In summary, there is always a server at the back for all web applications. But maintenance of the server (both physical and software) is moved to cloud providers in the serverless architecture.&lt;/p&gt;

&lt;p&gt;Explore &lt;a href="https://somod.dev"&gt;SOMOD.DEV&lt;/a&gt; to create applications in serverless ecosystem.&lt;/p&gt;

</description>
      <category>serverless</category>
      <category>webdev</category>
      <category>programming</category>
      <category>aws</category>
    </item>
  </channel>
</rss>
