<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>Tamilarasu Arunachalam</title>
    <link>https://tamilarasu.blog/</link>
    <description>Documenting my developer journey: unpacking the how, what, and why behind the technical situations I tackle every day.</description>
    <language>en-us</language>
    <lastBuildDate>Wed, 24 Jun 2026 02:13:36 +0000</lastBuildDate>
    <generator>Jekyll RSS</generator>
    
    <item>
      <title>How to Play Sound Effects on Validation Errors in Dynamics 365 CE Using JavaScript</title>
      <link>https://tamilarasu.blog/play-sound-effects-on-validation-errors-d365-crm-js.html</link>
      <guid isPermaLink="true">https://tamilarasu.blog/play-sound-effects-on-validation-errors-d365-crm-js.html</guid>
      <pubDate>Sun, 21 Jun 2026 11:11:00 +0000</pubDate>
      <description>&lt;p&gt;A few days ago, I came across a trending tweet where someone asked for a VS Code extension that plays a loud “Faaaaaaaaah” sound whenever an error occurs while coding.&lt;/p&gt;

</description>
    </item>
    
    <item>
      <title>Why AI Pair Programming Will Become a Must for All Developers in 2026</title>
      <link>https://tamilarasu.blog/why-ai-pair-programming-must-in-2025.html</link>
      <guid isPermaLink="true">https://tamilarasu.blog/why-ai-pair-programming-must-in-2025.html</guid>
      <pubDate>Tue, 16 Jun 2026 17:41:00 +0000</pubDate>
      <description>&lt;h2 id=&quot;the-shift-already-happening-in-dev-teams&quot;&gt;The Shift Already Happening in Dev Teams&lt;/h2&gt;

&lt;p&gt;Not long ago, pair programming meant pulling up a chair beside a colleague, sharing a screen, and thinking out loud together. It was powerful - but expensive in time and coordination. Then AI changed the equation.&lt;/p&gt;

&lt;p&gt;In 2025, &lt;strong&gt;GitHub Copilot alone reported over 1.8 million paid subscribers&lt;/strong&gt;, and surveys from Stack Overflow showed that &lt;strong&gt;62% of developers were already using or planning to use AI coding tools&lt;/strong&gt;. By 2026, that number isn’t just growing - it’s becoming the baseline expectation in most engineering teams.&lt;/p&gt;

&lt;p&gt;AI pair programming isn’t a productivity hack anymore. It’s becoming a professional standard.&lt;/p&gt;

&lt;h2 id=&quot;what-is-ai-pair-programming-really&quot;&gt;What Is AI Pair Programming, Really?&lt;/h2&gt;

&lt;p&gt;At its core, &lt;strong&gt;AI pair programming&lt;/strong&gt; is the practice of working alongside an AI model - in real time - to write, debug, refactor, and review code. Think of it less like autocomplete and more like having a brilliant junior developer who never gets tired, never gets defensive about feedback, and has read every documentation page ever written.&lt;/p&gt;

</description>
    </item>
    
    <item>
      <title>Build a Smart Approval System with Prediction Model in  Power Automate</title>
      <link>https://tamilarasu.blog/smart-approval-system-with-prediction-model-power-automate.html</link>
      <guid isPermaLink="true">https://tamilarasu.blog/smart-approval-system-with-prediction-model-power-automate.html</guid>
      <pubDate>Sun, 14 Jun 2026 23:11:00 +0000</pubDate>
      <description>&lt;p&gt;In this AI era, traditional approvals no longer make sense. Approvals play a major role everywhere, but they often require follow-ups and reminders to get things sorted. To address this, I planned to build a smart approval system using Dataverse, AI Builder, and Power Automate. This is a small prototype, but it can be extended to a larger solution.&lt;/p&gt;

</description>
    </item>
    
    <item>
      <title>Why Moosend Is the Best Email Marketing Platform for Small Businesses and Growing Brands</title>
      <link>https://tamilarasu.blog/why-moosend-best-email-platform.html</link>
      <guid isPermaLink="true">https://tamilarasu.blog/why-moosend-best-email-platform.html</guid>
      <pubDate>Tue, 09 Jun 2026 17:41:00 +0000</pubDate>
      <description>&lt;p&gt;Every business starts email marketing the same way - full of optimism, a growing contact list, and a simple goal: stay connected with customers. But somewhere between navigating confusing dashboards, hitting feature paywalls, and watching monthly costs climb as the subscriber list grows, that optimism fades.&lt;/p&gt;

</description>
    </item>
    
    <item>
      <title>How I Automated Chrome Extension Publishing with GitHub Actions</title>
      <link>https://tamilarasu.blog/automate-chrome-extension-publishing-with-github-actions.html</link>
      <guid isPermaLink="true">https://tamilarasu.blog/automate-chrome-extension-publishing-with-github-actions.html</guid>
      <pubDate>Tue, 02 Jun 2026 17:41:00 +0000</pubDate>
      <description>&lt;p&gt;Every time I shipped a new version of my Chrome extension, I dreaded the same ritual - bump the version, zip the build folder, log into the Chrome Web Store Developer Dashboard, upload the file, fill in the release notes, and hit publish. It sounds simple, but do it a dozen times and you start wondering: &lt;em&gt;why am I doing this manually?&lt;/em&gt;
That’s when I wired up GitHub Actions to handle it for me. Now every merge to &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;main&lt;/code&gt; ships my extension automatically. Here’s exactly how I did it.&lt;/p&gt;

</description>
    </item>
    
    <item>
      <title>How I Built a Stunning Admin Dashboard in Power Pages?</title>
      <link>https://tamilarasu.blog/built-stunning-admin-dashboard-power-pages.html</link>
      <guid isPermaLink="true">https://tamilarasu.blog/built-stunning-admin-dashboard-power-pages.html</guid>
      <pubDate>Sun, 24 May 2026 17:41:00 +0000</pubDate>
      <description>&lt;p&gt;When I started building a hospital management app as a weekend project, I never imagined the frontend would become the most exciting part. I set up Power Pages as an external-facing portal - patients could book appointments, staff could track them, and everyone had what they needed in one place. But then I looked at the default design and thought: &lt;em&gt;this has to change.&lt;/em&gt;&lt;/p&gt;

</description>
    </item>
    
    <item>
      <title>Just Found What Happens Behind the Scenes of Export to Excel in Model‑Driven Apps!</title>
      <link>https://tamilarasu.blog/bts-of-export-to-excel-model-driven-apps.html</link>
      <guid isPermaLink="true">https://tamilarasu.blog/bts-of-export-to-excel-model-driven-apps.html</guid>
      <pubDate>Sun, 17 May 2026 17:41:00 +0000</pubDate>
      <description>&lt;p&gt;I recently worked on something where I had to use &lt;strong&gt;Advanced Find&lt;/strong&gt; or filter views every time while exporting weekly or monthly reports. Although we can create &lt;strong&gt;personal views&lt;/strong&gt; to make the data sorted, I was curious to know how the filtered data actually gets exported.&lt;/p&gt;

</description>
    </item>
    
    <item>
      <title>How to Hide Sensitive Data in Power Automate Using Secure Inputs and Outputs?</title>
      <link>https://tamilarasu.blog/hide-sensitive-data-in-power-automate.html</link>
      <guid isPermaLink="true">https://tamilarasu.blog/hide-sensitive-data-in-power-automate.html</guid>
      <pubDate>Sun, 26 Apr 2026 17:41:00 +0000</pubDate>
      <description>&lt;p&gt;There was a moment while debugging a Power Automate flow when something unexpected showed up. Instead of just checking an error, the entire API request and response data were visible in the run history. It included sensitive details that should never be exposed so easily. That’s when the importance of secure inputs and outputs became very real.&lt;/p&gt;

</description>
    </item>
    
    <item>
      <title>How to Unit Test Dynamics 365 CRM JavaScript using QUnit?</title>
      <link>https://tamilarasu.blog/unit-test-javascript-using-qunit-d365-crm.html</link>
      <guid isPermaLink="true">https://tamilarasu.blog/unit-test-javascript-using-qunit-d365-crm.html</guid>
      <pubDate>Sun, 19 Apr 2026 17:41:00 +0000</pubDate>
      <description>&lt;p&gt;A few weeks ago, our team made an important decision — we wanted to improve the quality of our Dynamics 365 CRM project by introducing &lt;strong&gt;unit testing&lt;/strong&gt;. Until then, testing was mostly manual and relied heavily on functional testing inside the CRM environment. Unit testing felt like a natural next step.&lt;/p&gt;

</description>
    </item>
    
    <item>
      <title>How to Add a Favicon in Power Pages?</title>
      <link>https://tamilarasu.blog/how-to-add-a-favicon-in-power-pages.html</link>
      <guid isPermaLink="true">https://tamilarasu.blog/how-to-add-a-favicon-in-power-pages.html</guid>
      <pubDate>Sun, 12 Apr 2026 17:41:00 +0000</pubDate>
      <description>&lt;p&gt;When you open a website in your browser, one small detail quietly helps you recognize it instantly. That tiny icon shown in the browser tab, bookmarks, history, and address bar is called a &lt;strong&gt;favicon&lt;/strong&gt;. The word favicon stands for “favorite icon,” and even though it is small, it plays a big role in improving &lt;strong&gt;user experience&lt;/strong&gt; and maintaining &lt;strong&gt;brand consistency&lt;/strong&gt;.&lt;/p&gt;

</description>
    </item>
    
    <item>
      <title>Best Way to Troubleshoot Model-Driven Apps with Debugging Shortcuts</title>
      <link>https://tamilarasu.blog/best-way-to-troubleshoot-model-driven-apps-with-debugging-shortcuts.html</link>
      <guid isPermaLink="true">https://tamilarasu.blog/best-way-to-troubleshoot-model-driven-apps-with-debugging-shortcuts.html</guid>
      <pubDate>Mon, 06 Apr 2026 17:41:00 +0000</pubDate>
      <description>&lt;p&gt;There is a quote about debugging from Brian Kernighan (Author and Co-contributor for Unix):&lt;/p&gt;
&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.    – *Brian Kernighan*
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

</description>
    </item>
    
    <item>
      <title>How to Customize the Sign in page in Power Pages Easily</title>
      <link>https://tamilarasu.blog/customize-signin-page-power-pages.html</link>
      <guid isPermaLink="true">https://tamilarasu.blog/customize-signin-page-power-pages.html</guid>
      <pubDate>Sun, 29 Mar 2026 21:11:00 +0000</pubDate>
      <description>&lt;p&gt;Power Pages allows users to sign in using different providers like Entra ID, Google, LinkedIn, and others, which is great for authentication flexibility, but the default sign in page UI is quite basic and not easy to customize. Many developers struggle to match the login experience with their branding or modern UI expectations, so in this blog, we will see a simple and practical way to customize the sign in page by using content snippets, hiding the default components, and building a clean custom login page using Bootstrap.&lt;/p&gt;

</description>
    </item>
    
    <item>
      <title>Implement Data Summarization API for Dataverse in Power Pages</title>
      <link>https://tamilarasu.blog/data-summarization-api-power-pages.html</link>
      <guid isPermaLink="true">https://tamilarasu.blog/data-summarization-api-power-pages.html</guid>
      <pubDate>Sun, 15 Mar 2026 17:41:00 +0000</pubDate>
      <description>&lt;p&gt;In today’s AI-driven world, summarizing information has become incredibly easy. We can summarize long articles, web pages, books, and even lengthy videos within seconds using AI tools. Microsoft is gradually bringing similar AI capabilities into the Power Platform ecosystem.&lt;/p&gt;

</description>
    </item>
    
    <item>
      <title>Power Pages WebAPI with $pages Client API: Modern Dataverse CRUD Implementation Guide</title>
      <link>https://tamilarasu.blog/client-api-power-pages-crud-guide.html</link>
      <guid isPermaLink="true">https://tamilarasu.blog/client-api-power-pages-crud-guide.html</guid>
      <pubDate>Sun, 15 Feb 2026 17:41:00 +0000</pubDate>
      <description>&lt;p&gt;If you have worked with Power Pages, you probably got stuck at some point using webapi.safeAjax for Dataverse operations. Microsoft introduced the $pages Client API to simplify how developers interact with forms, authentication, Dataverse data, and multilingual configuration directly from custom HTML and JavaScript pages.&lt;/p&gt;

</description>
    </item>
    
    <item>
      <title>How to Integrate Power Pages with Firebase Realtime Database with Example CRUD</title>
      <link>https://tamilarasu.blog/integrate-power-pages-with-firebase-example-crud.html</link>
      <guid isPermaLink="true">https://tamilarasu.blog/integrate-power-pages-with-firebase-example-crud.html</guid>
      <pubDate>Sun, 11 Jan 2026 17:41:00 +0000</pubDate>
      <description>&lt;p&gt;For a long time, I have felt that Power Pages is capable of doing much more than what we usually limit it to. Most of the time, it stays tightly coupled with Dataverse and SharePoint, even though it has the flexibility to work beyond that boundary.&lt;/p&gt;

</description>
    </item>
    
    <item>
      <title>Server Logic in Power Pages Explained with Real Time API Example</title>
      <link>https://tamilarasu.blog/server-logic-power-pages-with-example.html</link>
      <guid isPermaLink="true">https://tamilarasu.blog/server-logic-power-pages-with-example.html</guid>
      <pubDate>Sun, 04 Jan 2026 17:41:00 +0000</pubDate>
      <description>&lt;p&gt;Power Pages is commonly used to build external websites on top of Dataverse. While it works well for forms, lists, and UI customization, handling sensitive logic and third-party APIs has always been a challenge.&lt;/p&gt;

</description>
    </item>
    
    <item>
      <title>How to Translate Metadata and Web Resources in Dynamics 365 CE</title>
      <link>https://tamilarasu.blog/translate-metadata-and-web-resources-d365-crm.html</link>
      <guid isPermaLink="true">https://tamilarasu.blog/translate-metadata-and-web-resources-d365-crm.html</guid>
      <pubDate>Sun, 21 Dec 2025 17:41:00 +0000</pubDate>
      <description>&lt;p&gt;If you have ever worked on a Dynamics 365 CE or Power Apps model-driven app that serves users from multiple countries, you already know how important language support is. Most of us start confidently because Dynamics 365 handles translations for standard tables automatically. But the moment you introduce custom tables, JavaScript alerts, or HTML web resources, things start getting confusing. If you are wondering, &lt;em&gt;“How do I translate custom web resource content properly?”&lt;/em&gt; - you are not alone. In this blog, I’ll walk you through practical and supported ways to handle translations in Dynamics 365 CE.&lt;/p&gt;

</description>
    </item>
    
    <item>
      <title>How to Set Up Google Authentication in Power Pages (Beginner Guide)?</title>
      <link>https://tamilarasu.blog/google-authentication-in-power-pages-guide.html</link>
      <guid isPermaLink="true">https://tamilarasu.blog/google-authentication-in-power-pages-guide.html</guid>
      <pubDate>Sun, 07 Dec 2025 17:41:00 +0000</pubDate>
      <description>&lt;p&gt;Power Pages, being a Microsoft-hosted low-code portal platform, gives us multiple authentication options out of the box - including Azure AD and External Authentication. But what many makers don’t realize is that Power Pages also supports popular OAuth 2.0 identity providers like &lt;strong&gt;Google, GitHub, Facebook, and LinkedIn&lt;/strong&gt;.&lt;/p&gt;

</description>
    </item>
    
    <item>
      <title>Show/Hide Ribbon Buttons for Subgrids of the Same Table in Model Driven Apps</title>
      <link>https://tamilarasu.blog/show-hide-subgrid-ribbon-buttons-of-same-table-in-d365-crm.html</link>
      <guid isPermaLink="true">https://tamilarasu.blog/show-hide-subgrid-ribbon-buttons-of-same-table-in-d365-crm.html</guid>
      <pubDate>Sun, 30 Nov 2025 17:41:00 +0000</pubDate>
      <description>&lt;p&gt;While working on one of my weekend Power Apps Model-Driven Apps projects, I ran into an interesting requirement. I had &lt;strong&gt;three subgrids of the same child entity&lt;/strong&gt; placed inside the parent entity’s main form. Each subgrid needed to show a drop-down command with buttons — but the tricky part was:&lt;/p&gt;

</description>
    </item>
    
    <item>
      <title>How to Edit Child and Parent Records Directly Within Forms in Dynamics 365 CRM?</title>
      <link>https://tamilarasu.blog/edit-child-and-parent-records-directly-within-forms-d365-crm.html</link>
      <guid isPermaLink="true">https://tamilarasu.blog/edit-child-and-parent-records-directly-within-forms-d365-crm.html</guid>
      <pubDate>Sun, 23 Nov 2025 17:41:00 +0000</pubDate>
      <description>&lt;p&gt;Recently, while working on a customization, a simple question hit me — &lt;strong&gt;“Can we edit related entity records directly inside the parent form in Dynamics 365 CRM?”&lt;/strong&gt; After checking, the answer was a clear yes. Here is how you can do it for both 1:N and N:1 relationships.&lt;/p&gt;

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