<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:media="http://search.yahoo.com/mrss/"><channel><title><![CDATA[Parthiban Rey ]]></title><description><![CDATA[Parthiban Rey ]]></description><link>https://parthibanrey.com/</link><image><url>https://parthibanrey.com/favicon.png</url><title>Parthiban Rey </title><link>https://parthibanrey.com/</link></image><generator>Ghost 5.80</generator><lastBuildDate>Wed, 06 May 2026 11:56:58 GMT</lastBuildDate><atom:link href="https://parthibanrey.com/rss/" rel="self" type="application/rss+xml"/><ttl>60</ttl><item><title><![CDATA[payment]]></title><description><![CDATA[<p></p>
<!--kg-card-begin: html-->
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>YugaPe Deep Link Test</title>
    <style>
        body {
            font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
            background-color: #f9fafb;
            color: #111827;
            padding: 24px;
            display: flex;
            flex-direction: column;
            align-items: center;
            text-align: center;
        }
        .container {
            max-width: 400px;
            width: 100%;
            background: white;
            padding: 32px 24px;
            border-radius: 16px;
            box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.</style></head></html>]]></description><link>https://parthibanrey.com/payment/</link><guid isPermaLink="false">69a9185673e5320477dea45b</guid><dc:creator><![CDATA[Parthiban Rey]]></dc:creator><pubDate>Thu, 05 Mar 2026 05:45:18 GMT</pubDate><content:encoded><![CDATA[<p></p>
<!--kg-card-begin: html-->
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>YugaPe Deep Link Test</title>
    <style>
        body {
            font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
            background-color: #f9fafb;
            color: #111827;
            padding: 24px;
            display: flex;
            flex-direction: column;
            align-items: center;
            text-align: center;
        }
        .container {
            max-width: 400px;
            width: 100%;
            background: white;
            padding: 32px 24px;
            border-radius: 16px;
            box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1);
        }
        h1 {
            font-size: 20px;
            margin-bottom: 8px;
        }
        p {
            font-size: 14px;
            color: #4b5563;
            margin-bottom: 24px;
            line-height: 1.5;
        }
        .btn {
            display: block;
            width: 100%;
            padding: 16px;
            margin-bottom: 12px;
            border-radius: 12px;
            font-size: 16px;
            font-weight: 600;
            text-decoration: none;
            color: white;
            box-sizing: border-box;
            transition: opacity 0.2s;
        }
        .btn:active {
            opacity: 0.8;
        }
        .btn-gpay { background-color: #1a73e8; }
        .btn-phonepe { background-color: #5f259f; }
        .btn-generic { background-color: #10b981; }
        
        .note {
            font-size: 12px;
            color: #6b7280;
            margin-top: 16px;
        }
    </style>
</head>
<body>

    <div class="container">
        <h1>P2P Deep Link Test</h1>
        <p>Paying <strong>&#x20B9;100.00</strong> to Manoj.<br><em>Note: The commercial &apos;tr&apos; parameter has been removed to test bank risk filters.</em></p>

        <a href="tez://upi/pay?pa=paytmqr6wnlbh@ptys&amp;mc=5499&amp;tr=9mar0121&amp;pn=Balraj&amp;cu=INR" class="btn btn-gpay">
            Pay with Google Pay
        </a>
        <div class="note">
            Testing for YugaPe.<br>Ensure you are not paying yourself.
        </div>
    </div>

</body>
</html>
<!--kg-card-end: html-->
]]></content:encoded></item><item><title><![CDATA[Pay Orders]]></title><description><![CDATA[<!--kg-card-begin: html-->
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Payment Link Generator</title>
    <script src="https://cdn.tailwindcss.com"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/qrcodejs/1.0.0/qrcode.min.js"></script>
</head>
<body class="bg-gradient-to-br from-blue-50 to-indigo-100 min-h-screen flex items-center justify-center p-4">
    <div class="bg-white rounded-2xl shadow-2xl p-8 w-full max-w-md">
        <div class="text-center mb-8">
            <h1 class="text-3xl font-bold text-gray-800 mb-2">Payment Link Generator</h1>
            <p class="text-gray-600">Generate UPI payment QR &amp; share via WhatsApp</p>
        </div>

        <!-- Redirect URL Configuration (Collapsible) -->
        <div class="mb-6 p-4 bg-blue-50 border border-blue-200 rounded-lg">
            <div class="flex items-center justify-between cursor-pointer" onclick="toggleConfig()">
                <div class="flex items-center gap-2">
                    <svg class="w-5 h-5 text-blue-600" fill="none" stroke="currentColor" viewbox="0 0 24 24">
                        <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"/>
                    </svg>
                    <span class="text-sm font-medium text-blue-800">Clickable Link Setup (Optional)</span>
                </div>
                <svg id="configArrow" class="w-4 h-4 text-blue-600 transform transition-transform" fill="none" stroke="currentColor" viewbox="0 0 24 24">
                    <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 9l-7 7-7-7"/>
                </svg>
            </div>
            <div id="configPanel" class="mt-3 hidden">
                <p class="text-sm text-blue-700 mb-3">To make payment links clickable in WhatsApp, host the &quot;pay.html&quot; file and enter its URL below:</p>
                <input type="url" id="redirectUrl" placeholder="https://glittery-jelly-f1a7cf.netlify.app/" class="w-full px-3 py-2 text-sm border border-blue-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-transparent">
                <p class="text-xs text-blue-600 mt-2">Leave empty to use direct UPI links (not clickable in WhatsApp)</p>
            </div>
        </div>

        <!-- Form -->
        <form id="paymentForm" class="space-y-6">
            <!-- Name Input -->
            <div>
                <label for="name" class="block text-sm font-medium text-gray-700 mb-2">
                    Recipient Name</label></div></form></div></body></html>]]></description><link>https://parthibanrey.com/pay-orders/</link><guid isPermaLink="false">699c95cd73e5320477dea43f</guid><dc:creator><![CDATA[Parthiban Rey]]></dc:creator><pubDate>Mon, 23 Feb 2026 18:01:20 GMT</pubDate><content:encoded><![CDATA[
<!--kg-card-begin: html-->
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Payment Link Generator</title>
    <script src="https://cdn.tailwindcss.com"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/qrcodejs/1.0.0/qrcode.min.js"></script>
</head>
<body class="bg-gradient-to-br from-blue-50 to-indigo-100 min-h-screen flex items-center justify-center p-4">
    <div class="bg-white rounded-2xl shadow-2xl p-8 w-full max-w-md">
        <div class="text-center mb-8">
            <h1 class="text-3xl font-bold text-gray-800 mb-2">Payment Link Generator</h1>
            <p class="text-gray-600">Generate UPI payment QR &amp; share via WhatsApp</p>
        </div>

        <!-- Redirect URL Configuration (Collapsible) -->
        <div class="mb-6 p-4 bg-blue-50 border border-blue-200 rounded-lg">
            <div class="flex items-center justify-between cursor-pointer" onclick="toggleConfig()">
                <div class="flex items-center gap-2">
                    <svg class="w-5 h-5 text-blue-600" fill="none" stroke="currentColor" viewbox="0 0 24 24">
                        <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"/>
                    </svg>
                    <span class="text-sm font-medium text-blue-800">Clickable Link Setup (Optional)</span>
                </div>
                <svg id="configArrow" class="w-4 h-4 text-blue-600 transform transition-transform" fill="none" stroke="currentColor" viewbox="0 0 24 24">
                    <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 9l-7 7-7-7"/>
                </svg>
            </div>
            <div id="configPanel" class="mt-3 hidden">
                <p class="text-sm text-blue-700 mb-3">To make payment links clickable in WhatsApp, host the &quot;pay.html&quot; file and enter its URL below:</p>
                <input type="url" id="redirectUrl" placeholder="https://glittery-jelly-f1a7cf.netlify.app/" class="w-full px-3 py-2 text-sm border border-blue-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-transparent">
                <p class="text-xs text-blue-600 mt-2">Leave empty to use direct UPI links (not clickable in WhatsApp)</p>
            </div>
        </div>

        <!-- Form -->
        <form id="paymentForm" class="space-y-6">
            <!-- Name Input -->
            <div>
                <label for="name" class="block text-sm font-medium text-gray-700 mb-2">
                    Recipient Name
                </label>
                <input type="text" id="name" required placeholder="Enter name" class="w-full px-4 py-3 border border-gray-300 rounded-lg focus:ring-2 focus:ring-indigo-500 focus:border-transparent transition">
            </div>

            <!-- UPI ID Input -->
            <div>
                <label for="upiId" class="block text-sm font-medium text-gray-700 mb-2">
                    UPI ID
                </label>
                <input type="text" id="upiId" required pattern="[a-zA-Z0-9.\-_]{2,256}@[a-zA-Z]{2,64}" placeholder="username@bank" class="w-full px-4 py-3 border border-gray-300 rounded-lg focus:ring-2 focus:ring-indigo-500 focus:border-transparent transition">
                <p class="text-xs text-gray-500 mt-1">Format: username@bankname</p>
            </div>

            <!-- Amount Input -->
            <div>
                <label for="amount" class="block text-sm font-medium text-gray-700 mb-2">
                    Amount (&#x20B9;)
                </label>
                <input type="number" id="amount" required min="1" step="0.01" placeholder="Enter amount" class="w-full px-4 py-3 border border-gray-300 rounded-lg focus:ring-2 focus:ring-indigo-500 focus:border-transparent transition">
            </div>

            <!-- Generate Button -->
            <button type="submit" class="w-full bg-indigo-600 hover:bg-indigo-700 text-white font-semibold py-3 px-6 rounded-lg transition duration-200 transform hover:scale-105 active:scale-95">
                Generate Payment Link
            </button>
        </form>

        <!-- QR Code Container (Hidden Initially) -->
        <div id="qrContainer" class="hidden mt-8">
            <div class="border-t border-gray-200 pt-6">
                <h2 class="text-xl font-semibold text-gray-800 text-center mb-4">Your Payment QR Code</h2>
                
                <!-- QR Code Display -->
                <div class="flex justify-center mb-6">
                    <div id="qrcode" class="p-4 bg-white rounded-lg shadow-inner"></div>
                </div>

                <!-- Payment Details -->
                <div class="bg-gray-50 rounded-lg p-4 mb-6 space-y-2">
                    <div class="flex justify-between text-sm">
                        <span class="text-gray-600">Name:</span>
                        <span class="font-medium text-gray-800" id="displayName"></span>
                    </div>
                    <div class="flex justify-between text-sm">
                        <span class="text-gray-600">UPI ID:</span>
                        <span class="font-medium text-gray-800" id="displayUpi"></span>
                    </div>
                    <div class="flex justify-between text-sm">
                        <span class="text-gray-600">Amount:</span>
                        <span class="font-medium text-gray-800" id="displayAmount"></span>
                    </div>
                </div>

                <!-- WhatsApp Share Button -->
                <button id="whatsappBtn" class="w-full bg-green-500 hover:bg-green-600 text-white font-semibold py-3 px-6 rounded-lg transition duration-200 flex items-center justify-center gap-2 transform hover:scale-105 active:scale-95">
                    <svg class="w-6 h-6" fill="currentColor" viewbox="0 0 24 24">
                        <path d="M17.472 14.382c-.297-.149-1.758-.867-2.03-.967-.273-.099-.471-.148-.67.15-.197.297-.767.966-.94 1.164-.173.199-.347.223-.644.075-.297-.15-1.255-.463-2.39-1.475-.883-.788-1.48-1.761-1.653-2.059-.173-.297-.018-.458.13-.606.134-.133.298-.347.446-.52.149-.174.198-.298.298-.497.099-.198.05-.371-.025-.52-.075-.149-.669-1.612-.916-2.207-.242-.579-.487-.5-.669-.51-.173-.008-.371-.01-.57-.01-.198 0-.52.074-.792.372-.272.297-1.04 1.016-1.04 2.479 0 1.462 1.065 2.875 1.213 3.074.149.198 2.096 3.2 5.077 4.487.709.306 1.262.489 1.694.625.712.227 1.36.195 1.871.118.571-.085 1.758-.719 2.006-1.413.248-.694.248-1.289.173-1.413-.074-.124-.272-.198-.57-.347m-5.421 7.403h-.004a9.87 9.87 0 01-5.031-1.378l-.361-.214-3.741.982.998-3.648-.235-.374a9.86 9.86 0 01-1.51-5.26c.001-5.45 4.436-9.884 9.888-9.884 2.64 0 5.122 1.03 6.988 2.898a9.825 9.825 0 012.893 6.994c-.003 5.45-4.437 9.884-9.885 9.884m8.413-18.297A11.815 11.815 0 0012.05 0C5.495 0 .16 5.335.157 11.892c0 2.096.547 4.142 1.588 5.945L.057 24l6.305-1.654a11.882 11.882 0 005.683 1.448h.005c6.554 0 11.89-5.335 11.893-11.893a11.821 11.821 0 00-3.48-8.413Z"/>
                    </svg>
                    Share on WhatsApp
                </button>

                <!-- Copy Link Button -->
                <button id="copyBtn" class="w-full mt-3 bg-blue-500 hover:bg-blue-600 text-white font-semibold py-3 px-6 rounded-lg transition duration-200 flex items-center justify-center gap-2 transform hover:scale-105 active:scale-95">
                    <svg class="w-5 h-5" fill="none" stroke="currentColor" viewbox="0 0 24 24">
                        <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z"/>
                    </svg>
                    Copy Payment Link
                </button>

                <!-- Reset Button -->
                <button id="resetBtn" class="w-full mt-3 bg-gray-200 hover:bg-gray-300 text-gray-700 font-semibold py-3 px-6 rounded-lg transition duration-200">
                    Generate New Link
                </button>
            </div>
        </div>
    </div>

    <script>
        const form = document.getElementById('paymentForm');
        const qrContainer = document.getElementById('qrContainer');
        const qrcodeDiv = document.getElementById('qrcode');
        const whatsappBtn = document.getElementById('whatsappBtn');
        const copyBtn = document.getElementById('copyBtn');
        const resetBtn = document.getElementById('resetBtn');
        
        let currentUpiLink = '';
        let currentClickableLink = '';

        // Toggle configuration panel
        function toggleConfig() {
            const panel = document.getElementById('configPanel');
            const arrow = document.getElementById('configArrow');
            panel.classList.toggle('hidden');
            arrow.classList.toggle('rotate-180');
        }

        form.addEventListener('submit', function(e) {
            e.preventDefault();
            
            // Get form values
            const name = document.getElementById('name').value.trim();
            const upiId = document.getElementById('upiId').value.trim();
            const amount = document.getElementById('amount').value.trim();

            // Validate UPI ID format
            const upiPattern = /^[a-zA-Z0-9.\-_]{2,256}@[a-zA-Z]{2,64}$/;
            if (!upiPattern.test(upiId)) {
                alert('Please enter a valid UPI ID (e.g., username@bank)');
                return;
            }

            // Validate amount
            if (isNaN(amount) || parseFloat(amount) <= 0) {
                alert('Please enter a valid amount greater than 0');
                return;
            }

            // Create UPI deep link
            currentUpiLink = `upi://pay?pa=${encodeURIComponent(upiId)}&pn=${encodeURIComponent(name)}&am=${encodeURIComponent(amount)}&cu=INR`;

            // Create clickable HTTPS link if redirect URL is provided
            const redirectUrl = document.getElementById('redirectUrl').value.trim();
            if (redirectUrl) {
                // Remove trailing slash if present
                const baseUrl = redirectUrl.replace(/\/$/, '');
                currentClickableLink = `${baseUrl}?pa=${encodeURIComponent(upiId)}&pn=${encodeURIComponent(name)}&am=${encodeURIComponent(amount)}&cu=INR`;
            } else {
                currentClickableLink = '';
            }

            // Clear previous QR code
            qrcodeDiv.innerHTML = '';

            // Generate new QR code
            new QRCode(qrcodeDiv, {
                text: currentUpiLink,
                width: 200,
                height: 200,
                colorDark: "#000000",
                colorLight: "#ffffff",
                correctLevel: QRCode.CorrectLevel.H
            });

            // Display payment details
            document.getElementById('displayName').textContent = name;
            document.getElementById('displayUpi').textContent = upiId;
            document.getElementById('displayAmount').textContent = `₹${parseFloat(amount).toFixed(2)}`;

            // Show QR container with animation
            qrContainer.classList.remove('hidden');
            qrContainer.scrollIntoView({ behavior: 'smooth', block: 'nearest' });

            // Hide form
            form.classList.add('hidden');
        });

        whatsappBtn.addEventListener('click', function() {
            const name = document.getElementById('displayName').textContent;
            const amount = document.getElementById('displayAmount').textContent;
            const upiId = document.getElementById('displayUpi').textContent;
            
            let message;
            
            if (currentClickableLink) {
                // Use clickable HTTPS link
                message = `🔔 *Payment Request*\n\n` +
                         `*Pay to:* ${name}\n` +
                         `*Amount:* ${amount}\n` +
                         `*UPI ID:* ${upiId}\n\n` +
                         `💳 *Click to Pay:*\n` +
                         `${currentClickableLink}\n\n` +
                         `_Click the link above to open your payment app and complete the payment._`;
            } else {
                // Fallback to instructions with UPI link
                message = `🔔 *Payment Request*\n\n` +
                         `*Pay to:* ${name}\n` +
                         `*Amount:* ${amount}\n` +
                         `*UPI ID:* ${upiId}\n\n` +
                         `📱 *To Pay:*\n` +
                         `1️⃣ Open any UPI app (Google Pay/PhonePe/Paytm)\n` +
                         `2️⃣ Click "Pay" or "Send Money"\n` +
                         `3️⃣ Enter UPI ID: *${upiId}*\n` +
                         `4️⃣ Enter amount: *${amount}*\n\n` +
                         `💳 *Or copy & paste this payment link:*\n` +
                         `${currentUpiLink}\n\n` +
                         `_Paste the above link in your mobile browser, it will open your payment app automatically._`;
            }
            
            // Encode message for URL
            const encodedMessage = encodeURIComponent(message);
            
            // Create WhatsApp URL (works on mobile and desktop)
            const whatsappUrl = `https://wa.me/?text=${encodedMessage}`;
            
            // Open WhatsApp
            window.open(whatsappUrl, '_blank');
        });

        copyBtn.addEventListener('click', async function() {
            // Use clickable link if available, otherwise use UPI link
            const linkToCopy = currentClickableLink || currentUpiLink;
            
            try {
                await navigator.clipboard.writeText(linkToCopy);
                
                // Visual feedback
                const originalText = copyBtn.innerHTML;
                copyBtn.innerHTML = `
                    <svg class="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24">
                        <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"></path>
                    </svg>
                    Copied!
                `;
                copyBtn.classList.add('bg-green-500', 'hover:bg-green-600');
                copyBtn.classList.remove('bg-blue-500', 'hover:bg-blue-600');
                
                setTimeout(() => {
                    copyBtn.innerHTML = originalText;
                    copyBtn.classList.remove('bg-green-500', 'hover:bg-green-600');
                    copyBtn.classList.add('bg-blue-500', 'hover:bg-blue-600');
                }, 2000);
            } catch (err) {
                // Fallback for older browsers
                const textArea = document.createElement('textarea');
                textArea.value = linkToCopy;
                textArea.style.position = 'fixed';
                textArea.style.left = '-999999px';
                document.body.appendChild(textArea);
                textArea.select();
                try {
                    document.execCommand('copy');
                    alert('Payment link copied to clipboard!');
                } catch (err) {
                    alert('Failed to copy. Please copy manually: ' + linkToCopy);
                }
                document.body.removeChild(textArea);
            }
        });

        resetBtn.addEventListener('click', function() {
            // Reset form
            form.reset();
            
            // Hide QR container
            qrContainer.classList.add('hidden');
            
            // Show form
            form.classList.remove('hidden');
            
            // Scroll to top
            window.scrollTo({ top: 0, behavior: 'smooth' });
        });
    </script>
</body>
</html>

<!--kg-card-end: html-->
]]></content:encoded></item><item><title><![CDATA[Arts & Crafts Archives]]></title><description><![CDATA[<p></p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://ajanthaschoolofarts.com/?ref=parthibanrey.com"><div class="kg-bookmark-content"><div class="kg-bookmark-title">AJANTHA SCHOOL OF ARTS :: &#xB85;&#xB9C;&#xBA8;&#xBCD;&#xBA4;&#xBBE; &#xBB8;&#xBCD;&#xB95;&#xBC2;&#xBB2;&#xBCD; &#xB86;&#xB83;&#xBAA;&#xBCD; &#xB86;&#xBB0;&#xBCD;&#xB9F;&#xBCD;&#xBB8;&#xBCD; ::</div><div class="kg-bookmark-description"></div><div class="kg-bookmark-metadata"></div></div><div class="kg-bookmark-thumbnail"><img src="https://ajanthaschoolofarts.com/images/logo.png" alt></div></a></figure><p><a href="https://www.instagram.com/ajanthaschoolofartschennai/?ref=parthibanrey.com">https://www.instagram.com/ajanthaschoolofartschennai/</a></p><p><a href="https://www.instagram.com/prasunfinearts/?ref=parthibanrey.com">https://www.instagram.com/prasunfinearts/</a></p><p>Courses from <a href="https://www.domestika.org/?ref=parthibanrey.com">https://www.domestika.org/</a></p>]]></description><link>https://parthibanrey.com/arts-crafts-archives/</link><guid isPermaLink="false">68450ea173e5320477dea3ae</guid><category><![CDATA[archives]]></category><dc:creator><![CDATA[Parthiban Rey]]></dc:creator><pubDate>Sun, 08 Jun 2025 04:20:18 GMT</pubDate><media:content url="https://images.unsplash.com/photo-1585840887185-dc28a1b86ea0?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wxMTc3M3wwfDF8c2VhcmNofDE1fHxkcmF3aW5nfGVufDB8fHx8MTc0OTM1NjMwMnww&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=2000" medium="image"/><content:encoded><![CDATA[<img src="https://images.unsplash.com/photo-1585840887185-dc28a1b86ea0?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wxMTc3M3wwfDF8c2VhcmNofDE1fHxkcmF3aW5nfGVufDB8fHx8MTc0OTM1NjMwMnww&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=2000" alt="Arts &amp; Crafts Archives"><p></p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://ajanthaschoolofarts.com/?ref=parthibanrey.com"><div class="kg-bookmark-content"><div class="kg-bookmark-title">AJANTHA SCHOOL OF ARTS :: &#xB85;&#xB9C;&#xBA8;&#xBCD;&#xBA4;&#xBBE; &#xBB8;&#xBCD;&#xB95;&#xBC2;&#xBB2;&#xBCD; &#xB86;&#xB83;&#xBAA;&#xBCD; &#xB86;&#xBB0;&#xBCD;&#xB9F;&#xBCD;&#xBB8;&#xBCD; ::</div><div class="kg-bookmark-description"></div><div class="kg-bookmark-metadata"></div></div><div class="kg-bookmark-thumbnail"><img src="https://ajanthaschoolofarts.com/images/logo.png" alt="Arts &amp; Crafts Archives"></div></a></figure><p><a href="https://www.instagram.com/ajanthaschoolofartschennai/?ref=parthibanrey.com">https://www.instagram.com/ajanthaschoolofartschennai/</a></p><p><a href="https://www.instagram.com/prasunfinearts/?ref=parthibanrey.com">https://www.instagram.com/prasunfinearts/</a></p><p>Courses from <a href="https://www.domestika.org/?ref=parthibanrey.com">https://www.domestika.org/</a></p>]]></content:encoded></item><item><title><![CDATA[How to get desktop chrome notification to smart (android) phone]]></title><description><![CDATA[<p></p><p>For an example lets take Microsoft Teams web view sends notification to your laptop&apos;s chrome and you wish to receive this notification on your smart phone ( here we considered android)</p><p>To get&#xA0;<strong>Microsoft Teams Chrome desktop notifications</strong>&#xA0;from a different Chrome profile on your&#xA0;<strong>Android</strong></p>]]></description><link>https://parthibanrey.com/how-to-get-desktop-chrome-notification-to-android-phone/</link><guid isPermaLink="false">679c5035f8a27104d3d1ec1f</guid><category><![CDATA[General]]></category><dc:creator><![CDATA[Parthiban Rey]]></dc:creator><pubDate>Mon, 03 Feb 2025 14:35:03 GMT</pubDate><media:content url="https://images.unsplash.com/photo-1584438784894-089d6a62b8fa?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wxMTc3M3wwfDF8c2VhcmNofDV8fG5vdGlmaWNhdGlvbnxlbnwwfHx8fDE3Mzg1OTMyNjh8MA&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=2000" medium="image"/><content:encoded><![CDATA[<img src="https://images.unsplash.com/photo-1584438784894-089d6a62b8fa?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wxMTc3M3wwfDF8c2VhcmNofDV8fG5vdGlmaWNhdGlvbnxlbnwwfHx8fDE3Mzg1OTMyNjh8MA&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=2000" alt="How to get desktop chrome notification to smart (android) phone"><p></p><p>For an example lets take Microsoft Teams web view sends notification to your laptop&apos;s chrome and you wish to receive this notification on your smart phone ( here we considered android)</p><p>To get&#xA0;<strong>Microsoft Teams Chrome desktop notifications</strong>&#xA0;from a different Chrome profile on your&#xA0;<strong>Android phone</strong>, follow these steps:</p><h3 id="solution-1-use-pushbullet-for-cross-device-notifications"><strong>Solution 1: Use Pushbullet for Cross-Device Notifications</strong></h3><p>Pushbullet can forward desktop notifications to your Android device.</p><h4 id="steps-to-set-up-pushbullet"><strong>Steps to Set Up Pushbullet:</strong></h4><ol><li><strong>Install Pushbullet on Chrome (Different Profile)</strong><ul><li>Open Chrome in the profile where Teams notifications appear.</li><li>Install&#xA0;<strong>Pushbullet Extension</strong>&#xA0;&#x2192;&#xA0;<a rel="noopener">Chrome&#xA0;Web&#xA0;Store</a></li><li>Sign in using Google.</li></ul></li><li><strong>Install Pushbullet on Android</strong><ul><li>Download from&#xA0;<a rel="noopener">Google&#xA0;Play&#xA0;Store</a>.</li><li>Log in with the&#xA0;<strong>same Google account</strong>.</li></ul></li><li><strong>Enable Notification Mirroring</strong><ul><li>Open the&#xA0;<strong>Pushbullet Android app</strong>&#xA0;&#x2192;&#xA0;<strong>Settings</strong>&#xA0;&#x2192;&#xA0;<strong>Enable Notification Mirroring</strong>.</li><li>Select Chrome as a source app.</li></ul></li><li><strong>Test by Receiving a Teams Notification</strong><ul><li>When Teams sends a notification in Chrome, it should&#xA0;<strong>automatically appear on your Android device</strong>.</li></ul></li></ol><hr><h3 id="solution-2-use-kde-connect-open-source-alternative"><strong>Solution 2: Use KDE Connect (Open Source Alternative)</strong></h3><p>If you prefer an open-source method, KDE Connect can sync notifications between devices.</p><h4 id="steps-to-set-up-kde-connect"><strong>Steps to Set Up KDE Connect:</strong></h4><ol><li><strong>Install KDE Connect Chrome Extension</strong><ul><li>Open Chrome in the required profile.</li><li>Install&#xA0;<strong>KDE Connect Extension</strong>&#xA0;&#x2192;&#xA0;<a rel="noopener">KDE&#xA0;Connect&#xA0;Chrome</a></li></ul></li><li><strong>Install KDE Connect on Android</strong><ul><li>Download from<a href="https://play.google.com/store/apps/details?id=org.kde.kdeconnect_tp&amp;ref=parthibanrey.com" rel="noreferrer">&#xA0;Google&#xA0;Play&#xA0;Store.</a></li></ul></li><li><strong>Pair Your Devices</strong><ul><li>Open the Android app &#x2192;&#xA0;<strong>Find &amp; pair your PC</strong>.</li><li>Approve the connection on both devices.</li></ul></li><li><strong>Enable Notification Sync</strong><ul><li>On Android: Go to&#xA0;<strong>Settings &#x2192; Notification Sync &#x2192; Enable</strong>.</li><li>Select Chrome as a source.</li></ul></li></ol><p>Now, Chrome notifications (including Microsoft Teams) will be forwarded to your Android device.</p><hr><h3 id="solution-3-use-microsofts-your-phone-app-windows-users"><strong>Solution 3: Use Microsoft&apos;s &quot;Your Phone&quot; App (Windows Users)</strong></h3><p>If you&apos;re using Windows, Microsoft&#x2019;s&#xA0;<strong>Phone Link (Your Phone Companion)</strong>&#xA0;can sync Teams notifications to Android.</p><h4 id="steps"><strong>Steps:</strong></h4><ol><li><strong>Install &quot;Your Phone&quot; on Windows</strong><ul><li>Download from Microsoft Store &#x2192;&#xA0;<a href="https://www.microsoft.com/en-us/p/microsoft-your-phone/9nmpj99vjbwv?ref=parthibanrey.com" rel="noopener"><strong>Your&#xA0;Phone</strong></a></li><li>Log in with the same Microsoft account.</li></ul></li><li><strong>Install &quot;Link to Windows&quot; on Android</strong><ul><li>Download from&#xA0;<a rel="noopener">Google&#xA0;Play&#xA0;Store</a>.</li></ul></li><li><strong>Enable Notification Sync</strong><ul><li>Open &quot;Your Phone&quot; on PC &#x2192;&#xA0;<strong>Settings &#x2192; Enable Notifications</strong>.</li></ul></li></ol><p>You will now receive&#xA0;<strong>Teams notifications from your Chrome profile on your Android device</strong>.</p>]]></content:encoded></item><item><title><![CDATA[Wordpress Shared Hosting and Web Hosting for Indian Users]]></title><description><![CDATA[<p>I have been searching the internet since very long and used some of the providers hosting raja, host gator and few others in the past. But recently i figured out <a href="https://my.milesweb.com/aff.php?aff=2125&amp;ref=parthibanrey.com" rel="noreferrer">Milesweb.com</a> is a perfect fit for me and it serves my purpose of local routing which giver better response</p>]]></description><link>https://parthibanrey.com/wordpress-hosting-for-indian-users/</link><guid isPermaLink="false">67727b6ef8a27104d3d1ebf5</guid><category><![CDATA[Wordpress]]></category><category><![CDATA[WebHosting]]></category><dc:creator><![CDATA[Parthiban Rey]]></dc:creator><pubDate>Mon, 30 Dec 2024 11:04:34 GMT</pubDate><media:content url="https://images.unsplash.com/photo-1597138768744-9f97be8cdd64?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wxMTc3M3wwfDF8c2VhcmNofDF8fGRhdGFjZW50ZXJ8ZW58MHx8fHwxNzM1NTU2Mzg4fDA&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=2000" medium="image"/><content:encoded><![CDATA[<img src="https://images.unsplash.com/photo-1597138768744-9f97be8cdd64?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wxMTc3M3wwfDF8c2VhcmNofDF8fGRhdGFjZW50ZXJ8ZW58MHx8fHwxNzM1NTU2Mzg4fDA&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=2000" alt="Wordpress Shared Hosting and Web Hosting for Indian Users"><p>I have been searching the internet since very long and used some of the providers hosting raja, host gator and few others in the past. But recently i figured out <a href="https://my.milesweb.com/aff.php?aff=2125&amp;ref=parthibanrey.com" rel="noreferrer">Milesweb.com</a> is a perfect fit for me and it serves my purpose of local routing which giver better response time and my clients are happy.</p><p>Link : <a href="https://my.milesweb.com/aff.php?aff=2125&amp;ref=parthibanrey.com" rel="noreferrer">www.milesweb.com</a></p><p>Their shared hosting Plan starts for <em>&#x20B9;</em>59/m upto <em>&#x20B9;</em>599/m when you buy for three years together and it will be beneficial , if you are planning for multiple site hosting.</p><p>The most effective plan i think is <a href="https://my.milesweb.com/aff.php?aff=2125&amp;ref=parthibanrey.com" rel="noreferrer">Elite</a> <strong><em>&#x20B9;</em>119/m </strong></p>]]></content:encoded></item><item><title><![CDATA[Wordpress ELF daemon attacks]]></title><description><![CDATA[<p></p><p>All of a sudden one of my wordpress site went down and a got a down status alert from betterstack. My first suspicion goes as some attack happened.</p><p>By drilling down the logs and status of the services I figured out that almost 10+ processes untilising high CPU and those</p>]]></description><link>https://parthibanrey.com/wordpress-elf-daemon-attacks/</link><guid isPermaLink="false">6764e15cf8a27104d3d1ebd1</guid><category><![CDATA[Tech Issues]]></category><dc:creator><![CDATA[Parthiban Rey]]></dc:creator><pubDate>Fri, 20 Dec 2024 04:05:08 GMT</pubDate><media:content url="https://images.unsplash.com/photo-1699891730676-037bed3c1bed?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wxMTc3M3wwfDF8c2VhcmNofDR8fHdvcmRwcmVzc3xlbnwwfHx8fDE3MzQ2Njc0Nzh8MA&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=2000" medium="image"/><content:encoded><![CDATA[<img src="https://images.unsplash.com/photo-1699891730676-037bed3c1bed?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wxMTc3M3wwfDF8c2VhcmNofDR8fHdvcmRwcmVzc3xlbnwwfHx8fDE3MzQ2Njc0Nzh8MA&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=2000" alt="Wordpress ELF daemon attacks"><p></p><p>All of a sudden one of my wordpress site went down and a got a down status alert from betterstack. My first suspicion goes as some attack happened.</p><p>By drilling down the logs and status of the services I figured out that almost 10+ processes untilising high CPU and those are from wordpress file locations with daemon as the user and these process are running as daemons . </p><p>Eventhough i have a crontab to restart all services once in a day , irrespective of that the apache php-fpm mariadb services were down.</p><p>Realised that the high utlising process are ELF executable files and it needs to removed and the process to be killed.</p><p>Now this is started repeating and i am cleaning it up now , but how about for future ? Working on finding a permanent solution...</p><p><strong>Found ELF file</strong>: <br><br>rate_accept03<br>xml_domit_xpath<br>sp_config<br>AttrTypes<br>lib_ajax_admin<br>viva_zoom<br>config_clicks<br>forgot_mail<br>phocagallerycos<br>livehelp_step1<br>project.inc<br>database.mysqli<br>com_wrapper<br>mygroupperm<br>core.rm_auto</p><p></p><pre><code>daemon     17812  0.0  0.0   2576     0 ?        S    Dec10   0:00 sh -c /opt/bitnami/wordpress/wp-includes/art/bandarqq/sp_config &gt; /dev/null 2&gt;&amp;1
daemon     17813  3.2  0.0  22048     4 ?        R    Dec10 434:50 /opt/bitnami/wordpress/wp-includes/art/bandarqq/sp_config
daemon     19632  0.0  0.0   2576     0 ?        S    Dec10   0:00 sh -c /opt/bitnami/wordpress/wp-includes/l10n/viva_zoom &gt; /dev/null 2&gt;&amp;1
daemon     19633  3.0  0.0  22704     4 ?        R    Dec10 416:21 /opt/bitnami/wordpress/wp-includes/l10n/viva_zoom
daemon     92992  0.0  0.0   2576     0 ?        S    Dec10   0:00 sh -c /opt/bitnami/wordpress/wp-includes/php-compat/database.mysqli &gt; /dev/null 2&gt;&amp;1
daemon     92993  3.1  0.0  23360     4 ?        R    Dec10 427:14 /opt/bitnami/wordpress/wp-includes/php-compat/database.mysqli
daemon    111178  0.0  0.0   2576     0 ?        S    Dec10   0:00 sh -c /opt/bitnami/wordpress/wp-includes/images/crystal/core.rm_auto &gt; /dev/null 2&gt;&amp;1
daemon    111179  3.3  0.0  21392     4 ?        R    Dec10 441:18 /opt/bitnami/wordpress/wp-includes/images/crystal/core.rm_auto
daemon    549029  0.0  0.0   2576     0 ?        S    Dec11   0:00 sh -c /opt/bitnami/wordpress/wp-includes/js/swfupload/AttrTypes &gt; /dev/null 2&gt;&amp;1
daemon    549030  2.9  0.0  20408     4 ?        R    Dec11 380:10 /opt/bitnami/wordpress/wp-includes/js/swfupload/AttrTypes
daemon   2177938  0.0  0.0   2576     0 ?        S    Dec18   0:00 sh -c /opt/bitnami/wordpress/wp-includes/blocks/column/phocagallerycos &gt; /dev/null 2&gt;&amp;1
daemon   2177939 10.4  0.0    564     4 ?        R    Dec18 306:48 /opt/bitnami/wordpress/wp-includes/blocks/column/phocagallerycos
daemon   2224076  0.0  0.0   2576     0 ?        S    Dec18   0:00 sh -c /opt/bitnami/wordpress/wp-includes/blocks/columns/config_clicks &gt; /dev/null 2&gt;&amp;1
daemon   2224077 10.6  0.0  18932     4 ?        R    Dec18 310:11 /opt/bitnami/wordpress/wp-includes/blocks/columns/config_clicks
daemon   2346064  0.0  0.0   2576     0 ?        S    Dec18   0:00 sh -c /opt/bitnami/wordpress/wp-includes/blocks/columns/config_clicks &gt; /dev/null 2&gt;&amp;1
daemon   2346065 17.3  0.0   2696     4 ?        R    Dec18 493:15 /opt/bitnami/wordpress/wp-includes/blocks/columns/config_clicks
daemon   2427842  0.0  0.0   2576     0 ?        S    Dec18   0:00 sh -c /opt/bitnami/wordpress/wp-includes/blocks/column/phocagallerycos &gt; /dev/null 2&gt;&amp;1
daemon   2427843 15.5  0.0    400     4 ?        R    Dec18 434:56 /opt/bitnami/wordpress/wp-includes/blocks/column/phocagallerycos
daemon   2431072  0.0  0.0   2576     0 ?        S    Dec18   0:00 sh -c /opt/bitnami/wordpress/wp-admin/css/colors/ocean/xml_domit_xpath &gt; /dev/null 2&gt;&amp;1
daemon   2431074 15.6  0.0   5484     4 ?        R    Dec18 435:14 /opt/bitnami/wordpress/wp-admin/css/colors/ocean/xml_domit_xpath
daemon   2439593  0.0  0.0   2576     0 ?        S    Dec18   0:00 sh -c /opt/bitnami/wordpress/wp-admin/css/colors/ocean/xml_domit_xpath &gt; /dev/null 2&gt;&amp;1
daemon   2439594 15.6  0.0   7124     4 ?        R    Dec18 435:22 /opt/bitnami/wordpress/wp-admin/css/colors/ocean/xml_domit_xpath
daemon   2481396  0.0  0.0   2576     0 ?        S    Dec18   0:00 sh -c /opt/bitnami/wordpress/wp-includes/blocks/columns/config_clicks &gt; /dev/null 2&gt;&amp;1
daemon   2481397 15.7  0.0   2860     4 ?        R    Dec18 435:03 /opt/bitnami/wordpress/wp-includes/blocks/columns/config_clicks
daemon   2548247  0.0  0.0   2576     0 ?        S    Dec18   0:00 sh -c /opt/bitnami/wordpress/wp-includes/blocks/table/forgot_mail &gt; /dev/null 2&gt;&amp;1
daemon   2548248 11.2  0.0   3844     4 ?        R    Dec18 307:55 /opt/bitnami/wordpress/wp-includes/blocks/table/forgot_mail
daemon   2633592  0.0  0.0   2576     0 ?        S    Dec18   0:00 sh -c /opt/bitnami/wordpress/wp-admin/css/colors/ocean/xml_domit_xpath &gt; /dev/null 2&gt;&amp;1
daemon   2633593 14.5  0.0   2204     4 ?        R    Dec18 388:36 /opt/bitnami/wordpress/wp-admin/css/colors/ocean/xml_domit_xpath
daemon   2633907  0.0  0.0   2576     0 ?        S    Dec18   0:00 sh -c /opt/bitnami/wordpress/wp-includes/blocks/columns/config_clicks &gt; /dev/null 2&gt;&amp;1
daemon   2633908 14.5  0.0   2696     4 ?        R    Dec18 388:39 /opt/bitnami/wordpress/wp-includes/blocks/columns/config_clicks</code></pre>]]></content:encoded></item><item><title><![CDATA[Macbook Setup]]></title><description><![CDATA[<p></p><h3 id="oh-my-zsh-for-iterm-2">Oh My ZSH for ITerm 2</h3><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://medium.com/@satriajanaka09/setup-zsh-oh-my-zsh-powerlevel10k-on-ubuntu-20-04-c4a4052508fd?ref=parthibanrey.com"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Setup Zsh + Oh my Zsh + Powerlevel10k + Dracula theme with auto-suggestions and syntax-higlighting</div><div class="kg-bookmark-description">Zsh (The Z shell) is an Unix shell that can be used as an interactive login shell and as a command interpreter for shell scripting. Zsh is&#x2026;</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://miro.medium.com/v2/resize:fill:304:304/10fd5c419ac61637245384e7099e131627900034828f4f386bdaa47a74eae156" alt><span class="kg-bookmark-author">Medium</span><span class="kg-bookmark-publisher">Satria Janaka</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://miro.medium.com/v2/resize:fit:1107/1*ZvBXl6zqOE29ekwGX85sdA.png" alt></div></a></figure><p></p><h3 id="asdf-for-multiple-runtime-manager-like-nodejs-ruby-python">asdf</h3>]]></description><link>https://parthibanrey.com/macbook-setup/</link><guid isPermaLink="false">673df038f8a27104d3d1eba8</guid><category><![CDATA[General]]></category><dc:creator><![CDATA[Parthiban Rey]]></dc:creator><pubDate>Wed, 20 Nov 2024 14:22:28 GMT</pubDate><media:content url="https://images.unsplash.com/photo-1611186871348-b1ce696e52c9?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wxMTc3M3wwfDF8c2VhcmNofDZ8fG1hY2Jvb2t8ZW58MHx8fHwxNzMyMTEyNDkzfDA&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=2000" medium="image"/><content:encoded><![CDATA[<img src="https://images.unsplash.com/photo-1611186871348-b1ce696e52c9?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wxMTc3M3wwfDF8c2VhcmNofDZ8fG1hY2Jvb2t8ZW58MHx8fHwxNzMyMTEyNDkzfDA&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=2000" alt="Macbook Setup"><p></p><h3 id="oh-my-zsh-for-iterm-2">Oh My ZSH for ITerm 2</h3><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://medium.com/@satriajanaka09/setup-zsh-oh-my-zsh-powerlevel10k-on-ubuntu-20-04-c4a4052508fd?ref=parthibanrey.com"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Setup Zsh + Oh my Zsh + Powerlevel10k + Dracula theme with auto-suggestions and syntax-higlighting</div><div class="kg-bookmark-description">Zsh (The Z shell) is an Unix shell that can be used as an interactive login shell and as a command interpreter for shell scripting. Zsh is&#x2026;</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://miro.medium.com/v2/resize:fill:304:304/10fd5c419ac61637245384e7099e131627900034828f4f386bdaa47a74eae156" alt="Macbook Setup"><span class="kg-bookmark-author">Medium</span><span class="kg-bookmark-publisher">Satria Janaka</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://miro.medium.com/v2/resize:fit:1107/1*ZvBXl6zqOE29ekwGX85sdA.png" alt="Macbook Setup"></div></a></figure><p></p><h3 id="asdf-for-multiple-runtime-manager-like-nodejs-ruby-python">asdf , for multiple runtime manager like nodejs, ruby, python</h3><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://asdf-vm.com/?ref=parthibanrey.com"><div class="kg-bookmark-content"><div class="kg-bookmark-title">asdf</div><div class="kg-bookmark-description">Manage multiple runtime versions with a single CLI tool</div><div class="kg-bookmark-metadata"><span class="kg-bookmark-author">Get Started</span></div></div></a></figure><p></p>]]></content:encoded></item><item><title><![CDATA[Google Sheet Filter Values From One Sheet To Another Sheet]]></title><description><![CDATA[<p></p><p>Let&apos;s say you have the following data in <code>Sheet1</code>:</p>
<!--kg-card-begin: html-->
<table><thead><tr><th>A</th><th>B</th><th>C</th></tr></thead><tbody><tr><td>Name</td><td>Age</td><td>Country</td></tr><tr><td>John</td><td>25</td><td>USA</td></tr><tr><td>Alice</td><td>30</td><td>UK</td></tr><tr><td>Bob</td><td>22</td><td>Canada</td></tr><tr><td>Charlie</td><td>25</td><td>USA</td></tr></tbody></table>
<!--kg-card-end: html-->
<p>You want to filter this data to show only the rows where the <code>Country</code> is &quot;USA&quot;.</p><p>In <code>FilteredSheet</code>, enter</p>]]></description><link>https://parthibanrey.com/google-sheet-filter-values-from-one-sheet-to-another-sheet/</link><guid isPermaLink="false">66b37a43f8a27104d3d1eb91</guid><category><![CDATA[Google Sheet]]></category><dc:creator><![CDATA[Parthiban Rey]]></dc:creator><pubDate>Wed, 07 Aug 2024 13:47:36 GMT</pubDate><media:content url="https://images.unsplash.com/photo-1599658880436-c61792e70672?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wxMTc3M3wwfDF8c2VhcmNofDE2fHxnb29nbGUlMjBkb2NzfGVufDB8fHx8MTcyMzAzODQ4M3ww&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=2000" medium="image"/><content:encoded><![CDATA[<img src="https://images.unsplash.com/photo-1599658880436-c61792e70672?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wxMTc3M3wwfDF8c2VhcmNofDE2fHxnb29nbGUlMjBkb2NzfGVufDB8fHx8MTcyMzAzODQ4M3ww&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=2000" alt="Google Sheet Filter Values From One Sheet To Another Sheet"><p></p><p>Let&apos;s say you have the following data in <code>Sheet1</code>:</p>
<!--kg-card-begin: html-->
<table><thead><tr><th>A</th><th>B</th><th>C</th></tr></thead><tbody><tr><td>Name</td><td>Age</td><td>Country</td></tr><tr><td>John</td><td>25</td><td>USA</td></tr><tr><td>Alice</td><td>30</td><td>UK</td></tr><tr><td>Bob</td><td>22</td><td>Canada</td></tr><tr><td>Charlie</td><td>25</td><td>USA</td></tr></tbody></table>
<!--kg-card-end: html-->
<p>You want to filter this data to show only the rows where the <code>Country</code> is &quot;USA&quot;.</p><p>In <code>FilteredSheet</code>, enter the following formula in cell <code>A1</code>:</p><p><code>FILTER(Sheet1!A:C, Sheet1!C:C = &quot;USA&quot;)</code><br></p><p>This will filter and display only the rows where the <code>Country</code> is &quot;USA&quot; in the <code>FilteredSheet</code>.</p><h3 id="explanation">Explanation:</h3><ul><li><code>FILTER(range, condition)</code>: The <code>FILTER</code> function takes two arguments: the range of data to filter and the condition to apply.</li><li><code>Sheet1!A:C</code>: This specifies the range of data in <code>Sheet1</code> from columns A to C.</li><li><code>Sheet1!C:C = &quot;USA&quot;</code>: This specifies the condition to filter the data where the values in column C are &quot;USA&quot;.</li></ul>]]></content:encoded></item><item><title><![CDATA[Wordpress site went down due to bots and crawlers like facebookexternalhit  and mj12bot]]></title><description><![CDATA[<p></p><p>One of my wordpress site went down 20 days back  and it is in the construction phase so i was less cared and didn&apos;t check for a while.</p><p>Last weekend I just tried to ssh the server and could not connect to it which is hosted in aws</p>]]></description><link>https://parthibanrey.com/wordpress-down-due-to-bots-and-crawlers/</link><guid isPermaLink="false">66852b68f8a27104d3d1eb66</guid><category><![CDATA[Tech Issues]]></category><dc:creator><![CDATA[Parthiban Rey]]></dc:creator><pubDate>Wed, 03 Jul 2024 10:57:42 GMT</pubDate><media:content url="https://images.unsplash.com/photo-1585378335564-c220f04a9ad0?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wxMTc3M3wwfDF8c2VhcmNofDh8fGJvdCUyMHZpcnVzJTIwYXR0YWN8ZW58MHx8fHwxNzIwMDA0MjEwfDA&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=2000" medium="image"/><content:encoded><![CDATA[<img src="https://images.unsplash.com/photo-1585378335564-c220f04a9ad0?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wxMTc3M3wwfDF8c2VhcmNofDh8fGJvdCUyMHZpcnVzJTIwYXR0YWN8ZW58MHx8fHwxNzIwMDA0MjEwfDA&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=2000" alt="Wordpress site went down due to bots and crawlers like facebookexternalhit  and mj12bot"><p></p><p>One of my wordpress site went down 20 days back  and it is in the construction phase so i was less cared and didn&apos;t check for a while.</p><p>Last weekend I just tried to ssh the server and could not connect to it which is hosted in aws lightsail. I restarted the server and after 5 mins I got into the server and checked all the services like webmin, mysqld etc. Everything looks fine and the site came up and was able to browse the pages. But, after 5 mins again it went down and I went and checked I was able to ssh and was curious is there any malicious script is blocking the site or keeping the server busy, got no clue.</p><p>Finally today I found in the access log of the site and understood that it was under attack by crawlers and bots of  <code>facebookexternalhit</code>  and <code>mj12bot</code> .  With the below given links I was not able to bring down the traffic. Like htaccess or robots.txt file did not help.</p><pre><code>85.208.96.204 - - [03/Jul/2024:04:41:48 +0000] &quot;GET /shop/page/1/?filter_flavor=robust%2Chigh%2Cvery-low%2Coriginal%2Csugar-free%2Clow&amp;lay_style=3&amp;query_typ
e_flavor=or&amp;shop_layout=4 HTTP/1.1&quot; 301 4326 &quot;-&quot; &quot;Mozilla/5.0 (compatible; SemrushBot/7~bl; +http://www.semrush.com/bot.html)&quot;
95.91.111.56 - - [03/Jul/2024:04:41:47 +0000] &quot;GET /size/5-5oz-20-servings/?filter_flavor=sugar-free,very-low&amp;query_type_flavor=or&amp;lay_style=1 HTTP/1.1&quot; 200
 252260 &quot;-&quot; &quot;Mozilla/5.0 (compatible; MJ12bot/v1.4.8; http://mj12bot.com/)&quot;</code></pre><p><a href="https://webmasters.stackexchange.com/questions/129316/trying-to-determine-if-bot-crawling-my-site-is-malicious-mj12bot?ref=parthibanrey.com">https://webmasters.stackexchange.com/questions/129316/trying-to-determine-if-bot-crawling-my-site-is-malicious-mj12bot</a></p><p><a href="https://wordpress.org/support/topic/facebookexternalhit-1-1-thousands-of-requests/?ref=parthibanrey.com">https://wordpress.org/support/topic/facebookexternalhit-1-1-thousands-of-requests/</a></p><p><a href="https://stackoverflow.com/questions/9773954/why-facebook-is-flooding-my-site?ref=parthibanrey.com">https://stackoverflow.com/questions/9773954/why-facebook-is-flooding-my-site</a></p><p><a href="https://developers.facebook.com/community/threads/974370274080457/?ref=parthibanrey.com">https://developers.facebook.com/community/threads/974370274080457/</a></p><p>We hosted our dns in cloudflare and it sparked the idea to explore and see any option for this. Found the WAF rules will help to sort the issue . Configured the custom rules to block the useragent of above mentioned bots. Still the traffic did not came down. After a while understood that to use the cloudflare rules , I should enable the proxy in DNS entries. Soon after this the traffic literally came down and I could see there are no entries anymore regarding the bots. Uff !!! </p><p>If any of you face such issues do let me know in the comments how did you solve or even you can suggest good solutions to the above said issue.</p>]]></content:encoded></item><item><title><![CDATA[Sample App: Spring Boot Rest API Example With Dockerfile - Java]]></title><description><![CDATA[<p>In the recent days I always wanted to have a Sample app or an example app which should expose Rest API and also it should be dockerised.</p><p>Eventhough there are many source codes available in github it hardly works as certain dependencies might have been outdated. Hence I found a</p>]]></description><link>https://parthibanrey.com/spring-boot-rest-api-example-with-dockerfile/</link><guid isPermaLink="false">6673b619f8a27104d3d1eb4d</guid><dc:creator><![CDATA[Parthiban Rey]]></dc:creator><pubDate>Thu, 20 Jun 2024 05:10:08 GMT</pubDate><media:content url="https://images.unsplash.com/photo-1495508348712-216a17cfbbc4?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wxMTc3M3wwfDF8c2VhcmNofDJ8fGRvY2tlciUyMGJ1aWxkfGVufDB8fHx8MTcxODg2MDE5M3ww&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=2000" medium="image"/><content:encoded><![CDATA[<img src="https://images.unsplash.com/photo-1495508348712-216a17cfbbc4?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wxMTc3M3wwfDF8c2VhcmNofDJ8fGRvY2tlciUyMGJ1aWxkfGVufDB8fHx8MTcxODg2MDE5M3ww&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=2000" alt="Sample App: Spring Boot Rest API Example With Dockerfile - Java"><p>In the recent days I always wanted to have a Sample app or an example app which should expose Rest API and also it should be dockerised.</p><p>Eventhough there are many source codes available in github it hardly works as certain dependencies might have been outdated. Hence I found a recent code , forked and created my own dockerfile and tested with a docker compose.</p><p>So anyone can use this source code to test RestAPI , docker deployments for CICD, or practise for ECS and Kuberenetes deployments with any managed services like EKS, AKS,  GKE</p><p>Repo Url:  <a href="https://github.com/reyparthi/springboot_crud_postgres?ref=parthibanrey.com">https://github.com/reyparthi/springboot_crud_postgres</a></p><p>From the Readme</p><h3 id="prerequisite">Prerequisite</h3><p><a href="https://github.com/reyparthi/springboot_crud_postgres?ref=parthibanrey.com#prerequisite"></a></p><p>Docker Desktop</p><h3 id="test-in-local">Test in Local</h3><p><a href="https://github.com/reyparthi/springboot_crud_postgres?ref=parthibanrey.com#test-in-local"></a></p><p>docker compose up -d</p><p>By using postman or curl you can verify the app,</p><pre><code>GET: http://localhost:8080/api/v1/employees
</code></pre><pre><code>POST: http://localhost:8080/api/v1/employees

{
    &quot;firstName&quot; : &#x201C;Test&#x201D;,
    &quot;lastName&quot; : &#x201C;User&#x201D;,
    &quot;email&quot; : &#x201C;testemail@example.app&quot;
}</code></pre><p>If the Post creation works , then you can also verify the postgres db for entries in the employee table.</p><p>If you have any queries do post in the comment , I am happy to help.</p>]]></content:encoded></item><item><title><![CDATA[Why Disposable or Temporary Email Address]]></title><description><![CDATA[<p>Disposable email addresses are temporary email addresses that self-destruct after a certain period or after a single use. They serve various purposes:</p><ol><li><strong>Spam Prevention</strong>: Disposable emails can be used to avoid spam. When you need to register for a service or website that you suspect might send unwanted emails, a</li></ol>]]></description><link>https://parthibanrey.com/why-temporary-email-address/</link><guid isPermaLink="false">665d9e5ff8a27104d3d1eb3a</guid><category><![CDATA[General]]></category><dc:creator><![CDATA[Parthiban Rey]]></dc:creator><pubDate>Mon, 03 Jun 2024 10:46:50 GMT</pubDate><media:content url="https://images.unsplash.com/photo-1603791452906-af1740e171bc?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wxMTc3M3wwfDF8c2VhcmNofDJ8fGRpc3Bvc2FibGUlMjBlbWFpbHxlbnwwfHx8fDE3MTc0MTE0OTl8MA&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=2000" medium="image"/><content:encoded><![CDATA[<img src="https://images.unsplash.com/photo-1603791452906-af1740e171bc?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wxMTc3M3wwfDF8c2VhcmNofDJ8fGRpc3Bvc2FibGUlMjBlbWFpbHxlbnwwfHx8fDE3MTc0MTE0OTl8MA&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=2000" alt="Why Disposable or Temporary Email Address"><p>Disposable email addresses are temporary email addresses that self-destruct after a certain period or after a single use. They serve various purposes:</p><ol><li><strong>Spam Prevention</strong>: Disposable emails can be used to avoid spam. When you need to register for a service or website that you suspect might send unwanted emails, a disposable email can keep your primary inbox clean.</li><li><strong>Privacy Protection</strong>: Using a disposable email can help protect your identity and personal information. If you don&apos;t trust a website or service with your real email, a disposable email provides an extra layer of privacy.</li><li><strong>Testing and Development</strong>: Developers and testers use disposable emails to test applications, especially those that require email verification. This avoids cluttering real email accounts with test data.</li><li><strong>Temporary Use</strong>: For one-time transactions or short-term engagements, such as signing up for a newsletter to get a discount code, a disposable email is convenient and practical.</li><li><strong>Reducing Digital Footprint</strong>: By using disposable emails, you can reduce your digital footprint and avoid having your personal email address stored in numerous databases, which could be vulnerable to data breaches.</li><li><strong>Avoiding Subscription Overload</strong>: When signing up for multiple services or newsletters, disposable emails can help manage and limit the influx of emails to your main inbox.</li></ol><p>Despite these advantages, it&apos;s important to note that some services block or limit the use of disposable emails to ensure genuine sign-ups and reduce misuse.<br><br>Some of the famous service I use are</p><ol><li><a href="https://wowmail.app/?ref=parthibanrey.com" rel="noreferrer">https://wowmail.app </a></li><li><a href="https://yopmail.com/?ref=parthibanrey.com" rel="noreferrer">https://yopmail.com</a></li></ol><p></p>]]></content:encoded></item><item><title><![CDATA[Articles Read Later]]></title><description><![CDATA[<p></p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://opensauced.pizza/blog/how-we-saved-thousands-of-dollars-deploying-low-cost-open-source-ai-technologies?ref=dailydev"><div class="kg-bookmark-content"><div class="kg-bookmark-title">How We Saved 10s of Thousands of Dollars Deploying Low Cost Open Source AI Technologies At Scale with Kubernetes</div><div class="kg-bookmark-description">Scaling up generative AI operations can be costly. At OpenSauced, we faced this challenge while building StarSearch, until we found a low cost solution to deploy an OpenAI-compatible API using open</div></div></a></figure>]]></description><link>https://parthibanrey.com/articles-read-later/</link><guid isPermaLink="false">6644a22ef8a27104d3d1ea81</guid><category><![CDATA[Read Later]]></category><dc:creator><![CDATA[Parthiban Rey]]></dc:creator><pubDate>Wed, 15 May 2024 11:54:36 GMT</pubDate><media:content url="https://images.unsplash.com/photo-1585829365295-ab7cd400c167?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wxMTc3M3wwfDF8c2VhcmNofDV8fGFydGljbGVzfGVufDB8fHx8MTcxNTc3NDAwN3ww&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=2000" medium="image"/><content:encoded><![CDATA[<img src="https://images.unsplash.com/photo-1585829365295-ab7cd400c167?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wxMTc3M3wwfDF8c2VhcmNofDV8fGFydGljbGVzfGVufDB8fHx8MTcxNTc3NDAwN3ww&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=2000" alt="Articles Read Later"><p></p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://opensauced.pizza/blog/how-we-saved-thousands-of-dollars-deploying-low-cost-open-source-ai-technologies?ref=dailydev"><div class="kg-bookmark-content"><div class="kg-bookmark-title">How We Saved 10s of Thousands of Dollars Deploying Low Cost Open Source AI Technologies At Scale with Kubernetes</div><div class="kg-bookmark-description">Scaling up generative AI operations can be costly. At OpenSauced, we faced this challenge while building StarSearch, until we found a low cost solution to deploy an OpenAI-compatible API using open source technology.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://opensauced.pizza/favicon.svg" alt="Articles Read Later"><span class="kg-bookmark-author">The Future of Open Source Collaboration is Here: Meet StarSearch</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://cdn.sanity.io/images/r7m53vrk/production/a329087041f0219d5a861a5cc26582297b591824-800x800.jpg" alt="Articles Read Later"></div></a></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://mattermost.com/blog/making-a-postgres-query-1000-times-faster/?ref=dailydev"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Making a Postgres query 1,000 times faster</div><div class="kg-bookmark-description">Learn how we discovered what was slowing down large database queries, and what we did to make Postgres queries 1000x faster.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://mattermost.com/wp-content/themes/mattermost-2021/frontend/dist/img/favicon/v2/apple-touch-icon.png" alt="Articles Read Later"><span class="kg-bookmark-author">Mattermost.com</span><span class="kg-bookmark-publisher">Alejandro Garc&#xED;a Montoro</span></div></div><div class="kg-bookmark-thumbnail"><img src="http://mattermost.com/wp-content/uploads/2024/05/03_Postgres_Faster@2x.png" alt="Articles Read Later"></div></a></figure>]]></content:encoded></item><item><title><![CDATA[Softwares - Open Source Schedulers , Caprover, Luigi]]></title><description><![CDATA[<p></p><p>Heroku Alternatives</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://dokku.com/?ref=parthibanrey.com"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Dokku - The smallest PaaS implementation you&#x2019;ve ever seen</div><div class="kg-bookmark-description"></div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.34.4/docs/assets/favicons/apple-touch-icon-180x180.png" alt><span class="kg-bookmark-author">Dokku</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://dokku.com/assets/dokku-logo.svg" alt></div></a></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://caprover.com/?ref=parthibanrey.com"><div class="kg-bookmark-content"><div class="kg-bookmark-title">CapRover &#xB7; Scalable, Free and Self-hosted PaaS!</div><div class="kg-bookmark-description">Scalable, Free and Self-hosted PaaS!</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://caprover.com/img/favicon.ico" alt></div></div><div class="kg-bookmark-thumbnail"><img src="https://caprover.com/img/logo.png" alt></div></a></figure><p></p><p>Sql Based Api </p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://tools.latitude.so/?ref=parthibanrey.com"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Latitude | Developer-first embedded analytics</div><div class="kg-bookmark-description">Latitude is an embedded analytics framework designed with developers in mind. It integrates seamlessly with your database</div></div></a></figure>]]></description><link>https://parthibanrey.com/softwares-i-explored-open-source-schedulers/</link><guid isPermaLink="false">6641b6c3f8a27104d3d1ea5e</guid><category><![CDATA[Softwares Explored]]></category><dc:creator><![CDATA[Parthiban Rey]]></dc:creator><pubDate>Mon, 13 May 2024 06:46:19 GMT</pubDate><media:content url="https://images.unsplash.com/photo-1611162617213-7d7a39e9b1d7?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wxMTc3M3wwfDF8c2VhcmNofDJ8fGFwcHN8ZW58MHx8fHwxNzE1NTgyNzQxfDA&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=2000" medium="image"/><content:encoded><![CDATA[<img src="https://images.unsplash.com/photo-1611162617213-7d7a39e9b1d7?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wxMTc3M3wwfDF8c2VhcmNofDJ8fGFwcHN8ZW58MHx8fHwxNzE1NTgyNzQxfDA&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=2000" alt="Softwares - Open Source Schedulers , Caprover, Luigi"><p></p><p>Heroku Alternatives</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://dokku.com/?ref=parthibanrey.com"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Dokku - The smallest PaaS implementation you&#x2019;ve ever seen</div><div class="kg-bookmark-description"></div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.34.4/docs/assets/favicons/apple-touch-icon-180x180.png" alt="Softwares - Open Source Schedulers , Caprover, Luigi"><span class="kg-bookmark-author">Dokku</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://dokku.com/assets/dokku-logo.svg" alt="Softwares - Open Source Schedulers , Caprover, Luigi"></div></a></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://caprover.com/?ref=parthibanrey.com"><div class="kg-bookmark-content"><div class="kg-bookmark-title">CapRover &#xB7; Scalable, Free and Self-hosted PaaS!</div><div class="kg-bookmark-description">Scalable, Free and Self-hosted PaaS!</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://caprover.com/img/favicon.ico" alt="Softwares - Open Source Schedulers , Caprover, Luigi"></div></div><div class="kg-bookmark-thumbnail"><img src="https://caprover.com/img/logo.png" alt="Softwares - Open Source Schedulers , Caprover, Luigi"></div></a></figure><p></p><p>Sql Based Api </p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://tools.latitude.so/?ref=parthibanrey.com"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Latitude | Developer-first embedded analytics</div><div class="kg-bookmark-description">Latitude is an embedded analytics framework designed with developers in mind. It integrates seamlessly with your database or data warehouse, leveraging SQL and straightforward frontend components.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://framerusercontent.com/images/SyEIguESGDBQFj4fhucvbz9xw.png" alt="Softwares - Open Source Schedulers , Caprover, Luigi"><span class="kg-bookmark-author">Developer-first embedded analytics</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://framerusercontent.com/assets/MIFkbzcEz2NsVy7ptXPPdMcrc8.png" alt="Softwares - Open Source Schedulers , Caprover, Luigi"></div></a></figure><p></p><p>Open source Schedulers</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://github.com/jhuckaby/Cronicle?ref=parthibanrey.com"><div class="kg-bookmark-content"><div class="kg-bookmark-title">GitHub - jhuckaby/Cronicle: A simple, distributed task scheduler and runner with a web based UI.</div><div class="kg-bookmark-description">A simple, distributed task scheduler and runner with a web based UI. - jhuckaby/Cronicle</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://github.githubassets.com/assets/pinned-octocat-093da3e6fa40.svg" alt="Softwares - Open Source Schedulers , Caprover, Luigi"><span class="kg-bookmark-author">GitHub</span><span class="kg-bookmark-publisher">jhuckaby</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://opengraph.githubassets.com/90f11e849c8069c8069dbb3a2489bbf1cd775bde706dcd253c438b01191b36f6/jhuckaby/Cronicle" alt="Softwares - Open Source Schedulers , Caprover, Luigi"></div></a></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://cronicle.net/?ref=parthibanrey.com"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Cronicle</div><div class="kg-bookmark-description">A simple distributed task scheduler and runner.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://cronicle.net/favicon.ico" alt="Softwares - Open Source Schedulers , Caprover, Luigi"><span class="kg-bookmark-publisher">Joseph Huckaby</span></div></div></a></figure><p></p><p><a href="https://dolphinscheduler.apache.org/en-us?ref=parthibanrey.com">https://dolphinscheduler.apache.org/en-us</a><br></p><p>Apache DolphinScheduler is a distributed and extensible open-source workflow orchestration platform with powerful DAG visual interfaces</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://luigi.readthedocs.io/en/latest/?ref=parthibanrey.com"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Getting Started &#x2014; Luigi 3.5.0 documentation</div><div class="kg-bookmark-description"></div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://luigi.readthedocs.io/favicon.ico" alt="Softwares - Open Source Schedulers , Caprover, Luigi"><span class="kg-bookmark-author">Luigi</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://raw.githubusercontent.com/spotify/luigi/master/doc/luigi.png" alt="Softwares - Open Source Schedulers , Caprover, Luigi"></div></a></figure><p>Luigi is a Python (3.6, 3.7, 3.8, 3.9, 3.10, 3.11, 3.12 tested) package that helps you build complex pipelines of batch jobs. It handles dependency resolution, workflow management, visualization, handling failures, command line integration, and much more</p>]]></content:encoded></item><item><title><![CDATA[FATAL ERROR: Reached heap limit Allocation failed - JavaScript heap out of memory]]></title><description><![CDATA[<p></p><p>Github Action gives my this error for the last &quot;run: npm run build&quot;</p><pre><code class="language-vhdl">FATAL ERROR: Reached heap limit Allocation failed - JavaScript heap out of memory
Error: Process completed with exit code 1.</code></pre><p></p><p>Solution is to update the workflow with these additional details</p><p><code>run</code></p><pre><code class="language-yaml">jobs:
  make-love:
    steps:
      -</code></pre>]]></description><link>https://parthibanrey.com/fatal-error-reached-heap-limit-allocation-failed-javascript-heap-out-of-memory/</link><guid isPermaLink="false">663c70f7f8a27104d3d1ea4b</guid><category><![CDATA[Tech Issues]]></category><dc:creator><![CDATA[Parthiban Rey]]></dc:creator><pubDate>Thu, 09 May 2024 06:47:01 GMT</pubDate><media:content url="https://images.unsplash.com/photo-1633356122544-f134324a6cee?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wxMTc3M3wwfDF8c2VhcmNofDd8fGphdmFzY3JpcHR8ZW58MHx8fHwxNzE1MjM3MTE4fDA&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=2000" medium="image"/><content:encoded><![CDATA[<img src="https://images.unsplash.com/photo-1633356122544-f134324a6cee?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wxMTc3M3wwfDF8c2VhcmNofDd8fGphdmFzY3JpcHR8ZW58MHx8fHwxNzE1MjM3MTE4fDA&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=2000" alt="FATAL ERROR: Reached heap limit Allocation failed - JavaScript heap out of memory"><p></p><p>Github Action gives my this error for the last &quot;run: npm run build&quot;</p><pre><code class="language-vhdl">FATAL ERROR: Reached heap limit Allocation failed - JavaScript heap out of memory
Error: Process completed with exit code 1.</code></pre><p></p><p>Solution is to update the workflow with these additional details</p><p><code>run</code></p><pre><code class="language-yaml">jobs:
  make-love:
    steps:
      - name: &quot;Just do it&quot;
        run: |
        export NODE_OPTIONS=&quot;--max_old_space_size=4096&quot;
        npm start
</code></pre><p><code>env</code></p><pre><code class="language-yaml">jobs:
  make-love:
    steps:
      - name: &quot;Nothing is impossible&quot;
        env:
          NODE_OPTIONS: &quot;--max_old_space_size=4096&quot;
        run: npm start</code></pre>]]></content:encoded></item><item><title><![CDATA[Software Tools]]></title><description><![CDATA[<p></p><p>gzip for mac - <a href="https://support.apple.com/en-in/guide/terminal/apdc52250ee-4659-4751-9a3a-8b7988150530/mac?ref=parthibanrey.com">https://support.apple.com/en-in/guide/terminal/apdc52250ee-4659-4751-9a3a-8b7988150530/mac</a></p>]]></description><link>https://parthibanrey.com/software-tools/</link><guid isPermaLink="false">663b0e29f8a27104d3d1ea40</guid><dc:creator><![CDATA[Parthiban Rey]]></dc:creator><pubDate>Wed, 08 May 2024 05:31:43 GMT</pubDate><media:content url="https://images.unsplash.com/photo-1636955903101-d6b4b926018c?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wxMTc3M3wwfDF8c2VhcmNofDQxfHxzb2Z0d2FyZSUyMGFwcHN8ZW58MHx8fHwxNzE2OTk5MjM2fDA&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=2000" medium="image"/><content:encoded><![CDATA[<img src="https://images.unsplash.com/photo-1636955903101-d6b4b926018c?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wxMTc3M3wwfDF8c2VhcmNofDQxfHxzb2Z0d2FyZSUyMGFwcHN8ZW58MHx8fHwxNzE2OTk5MjM2fDA&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=2000" alt="Software Tools"><p></p><p>gzip for mac - <a href="https://support.apple.com/en-in/guide/terminal/apdc52250ee-4659-4751-9a3a-8b7988150530/mac?ref=parthibanrey.com">https://support.apple.com/en-in/guide/terminal/apdc52250ee-4659-4751-9a3a-8b7988150530/mac</a></p>]]></content:encoded></item></channel></rss>