Skip to content

Instantly share code, notes, and snippets.

@vinodjayachandran
vinodjayachandran / S3bucketAV.py
Last active December 8, 2025 11:52
Anti Virus Scan for AWS S3
import boto3
from botocore.exceptions import ClientError
import os
def upload_file_to_s3(file_path, bucket_name):
s3_client = boto3.client('s3')
object_name = os.path.basename(file_path)
try:
# Upload the file
@vinodjayachandran
vinodjayachandran / MDCFilter.java
Created November 5, 2025 04:18
Spring-Boot MDC (Mapped Diagnostic Context) Filter that adds a unique request ID to every HTTP request.
import java.io.IOException;
import java.util.UUID;
import jakarta.servlet.FilterChain;
import jakarta.servlet.ServletException;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import lombok.NonNull;
import lombok.extern.slf4j.Slf4j;
import org.slf4j.MDC;
package org.geeks;
public class StockSpan {
public static void main(String[] args) {
int[] arr = {10, 4, 5, 90, 120, 80};
int[] span = new int[arr.length];
for (int i = 0; i < arr.length; i++) {
int count = 0;
for (int j = i; j >= 0; j--) {
@vinodjayachandran
vinodjayachandran / Anagrams.java
Created February 8, 2025 03:21
Print Anagrams Together - Given an array of strings, return all groups of strings that are anagrams. The strings in each group must be arranged in the order of their appearance in the original array.
package org.geeks;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.LinkedHashMap;
/*
For detailed elaboration of the problem with examples refer below link
https://www.geeksforgeeks.org/problems/print-anagrams-together/1
*/
public class Anagrams {
@vinodjayachandran
vinodjayachandran / MajorityElement.java
Created February 7, 2025 17:14
Majority Element - Given an array arr. Find the majority element in the array. If no majority exists, return -1. A majority element in an array is an element that appears strictly more than arr.size()/2 times in the array.
package org.geeks;
import java.util.HashMap;
/*
Problem statement with Sample examples can be referred from
https://www.geeksforgeeks.org/problems/majority-element-1587115620/1?page=1&company=Atlassian&sortBy=submissions
*/
@vinodjayachandran
vinodjayachandran / RateLimit.java
Created February 7, 2025 11:11
Rate Limiter (Moving Window)
package org.RateLimiter;
import java.util.ArrayDeque;
import java.util.Deque;
import java.util.HashMap;
import java.util.Map;
public class RateLimit {
Map<String, Deque> userRequestMap = new HashMap<>();
@vinodjayachandran
vinodjayachandran / open_exchange.py
Created April 12, 2024 06:27
Python Script to fetch Open exchange rates
import requests
import os
def fetchExchangeRate(currencyDate, baseCurrency, currencySymbol):
"""
Method to fetch open Currency exchange rate of base currency (1 Unit) to a currencySymbol
Reference : https://docs.openexchangerates.org/reference/api-introduction
Args:
currencyDate: Date for which you need open exchange rate.
baseCurrency: ISO currency code
@vinodjayachandran
vinodjayachandran / LanguageTranslator.py
Created April 4, 2024 06:19
Language translations using OpenAI
from openai import OpenAI
# Read OpenAI API Key from environment variable
api_key = os.environ.get("OPENAI_API_KEY")
client = OpenAI(api_key=api_key)
def translate_text(text):
model = "gpt-4-turbo-preview",
response = client.chat.completions.create(
model="gpt-3.5-turbo-0125",
@vinodjayachandran
vinodjayachandran / main.py
Last active April 3, 2024 11:33
From a folder containing Invoice/Receipt Images, extract Information using Open AI (gpt-4-vision-preview)
# File showing usage of openaiUtil.py
import openaiUtil
# Press the green button in the gutter to run the script.
if __name__ == '__main__':
print(" Welcome")
print(openaiUtil.question_image(openaiUtil.generate_payload("image_folder_path")))
@vinodjayachandran
vinodjayachandran / LRUCache.java
Created October 26, 2023 11:57
Implementation of LRUCache using LinkedHashMap
import java.util.LinkedHashMap;
import java.util.Map;
public class LRUCache {
int capacity;
LinkedHashMap<String,String> cache;
public LRUCache(int capacity) {