[{"content":"Art Gallery is a minimalist photography portfolio built with Hugo, showcasing curated galleries of city, nature, and festive moments captured through my lens.\nHighlights Built with Hugo. Responsive layout for desktop and mobile. Minimal presentation so the artwork stays prominent. Role Customized the Hugo setup, organized gallery content, and added custom CSS for styling, responsiveness, and layout improvements while maintaining a minimal photography-focused design.\n","permalink":"https://shreyyzsh.vercel.app/projects/art-gallery/","summary":"A Hugo-built art gallery focused on responsive layout, clean presentation, and simple browsing.","title":"Art Gallery"},{"content":"This project is a fully functional Google-linked login page built with Supabase Auth and PostgreSQL. It handles the real auth flow instead of stopping at a mock UI: users can sign in with Google, Supabase manages the OAuth session, and PostgreSQL stores the underlying user records.\nHighlights Integrated Google OAuth through Supabase Auth. Connected authentication state to a PostgreSQL-backed project. Built a clean login page with practical session handling. Structured the flow so it can be reused as the auth foundation for a larger app. What I Learned This helped me understand the full path from frontend login UI to managed auth, callback handling, persistent sessions, and database-backed user identity.\n","permalink":"https://shreyyzsh.vercel.app/projects/google-supabase-login/","summary":"A full Google-linked authentication page using Supabase Auth with PostgreSQL-backed user data, session handling, and a production-style login flow.","title":"Google Login with Supabase"},{"content":"LinkBot is a Discord bot that helps transfer links from one channel to another. It is meant for communities where useful resources often get buried in general chat, making it easier to preserve links in a dedicated channel without asking people to repost them manually.\nHighlights Watches configured Discord channels for links. Reposts or forwards links into a target channel. Helps keep shared resources organized and easier to revisit. Reduces repetitive moderation/admin work inside a server. Role I built the bot logic around a simple server workflow: capture useful links when they appear, move them to the right place, and keep the community resource channel cleaner.\n","permalink":"https://shreyyzsh.vercel.app/projects/linkbot/","summary":"A Discord bot for moving shared links between channels automatically, keeping useful resources organized without manual copying.","title":"Link Mover Bot"},{"content":"This project establishes a Model Context Protocol that bridges the Claude Desktop App with the US National Weather Service (NWS) API, enabling contextual, real-time weather information to be accessed directly within the Claude environment.\n","permalink":"https://shreyyzsh.vercel.app/projects/nwsclaudemcp/","summary":"\u003cp\u003eThis project establishes a \u003cstrong\u003eModel Context Protocol\u003c/strong\u003e that bridges the \u003ca href=\"https://claude.ai\"\u003eClaude Desktop App\u003c/a\u003e with the \u003cstrong\u003eUS National Weather Service (NWS) API\u003c/strong\u003e, enabling contextual, real-time weather information to be accessed directly within the Claude environment.\u003c/p\u003e","title":"NWS-Claude Protocol Bridge"},{"content":"iTerm2 Discord Rich Presence is a tiny macOS utility that makes terminal activity feel a little more alive. When iTerm2 is running, it updates Discord Rich Presence with session details like the active shell and elapsed time.\nIt is intentionally small: a focused developer tool with a simple loop, clean status updates, and no unnecessary dashboard around it.\nStack Python psutil pypresence Scope Detects local iTerm2 activity. Sends live presence updates to Discord. Keeps the project lightweight and easy to run. ","permalink":"https://shreyyzsh.vercel.app/projects/itermrpc/","summary":"A clean little Python utility that turns active iTerm2 sessions into Discord Rich Presence status.","title":"iTerm2 Discord Rich Presence"},{"content":"Rock Paper Scissors is a small browser game built with HTML, CSS, and JavaScript. It was one of my simpler frontend builds, focused on interaction, basic game logic, and a clean playable page.\nBuilt With HTML CSS JavaScript ","permalink":"https://shreyyzsh.vercel.app/projects/rock-paper-scissors/","summary":"A simple Rock Paper Scissors website built with HTML, CSS, and JavaScript.","title":"Rock Paper Scissors"},{"content":"In this blog, I will try to explain what exactly is gradient descent and it\u0026rsquo;s importance in optimizing machine learning models. Gradient descent is an algorithm (just like million other algorithms that exists in computer science) that is designed to minimize a cost function.\nWhat is a cost function? Well, it is essentially the error between predicted and actual outputs. Which means if we want to increase our model\u0026rsquo;s accuracy, we need to somehow reduce this cost function and for that we\u0026rsquo;ve got gradient descent. What is a Gradient? A gradient is essentially the derivative of a function, which tells us how the output is affected with little variations in input. This gradient, helps us in adjusting model parameters (like weights and biases) to reduce the cost function. Why Gradient Descent? It helps us in minimizing the error in predictions, bringing the model closer to the actual data. It iteratively keep adjusting the model\u0026rsquo;s parameters until minimum cost function state is achieved. This iterative process ensures the model learns and improves its performance. What are Weights and Biases? Weights: Weights (W) are parameters that define influence of an input on the model\u0026rsquo;s output. Biases: Biases (b) is an additional parameter that shifts the model\u0026rsquo;s prediction.\nFor Example, If we consider a model that is trained to determine house prices based on the area (in Sq. m), then in this case area\u0026rsquo;s impact on the price of the house is weight and other factors such as location, or the number of bedrooms are biases that can shift the prediction.\nHow does Gradient Descent Work? Firstly, we take a starting point (it can be any point as it\u0026rsquo;s just an arbitary point for us to evaluate the performance). Then the derivative (or slope) is calculated at this point, after which we can use a tangent line to observe the steepness of the slope. Finding out the slope is an important step as it will inform what updates need to be made to the parameters- i.e. the weights and bias. The starting point of the slope will be steeper, but as new parameters are generated, the steepness will gradually reduce and will slowly near zero as we reach the lowest point on the curve. This lowest point on the curve is known as the point of convergence.\nLike in linear regression, we try to find the bet fit line, the goal of gradient is to minimize the error between the predicted y and the actual y. In order to achieve this goal, it requires two data points- a direction and a learning rate. These factors determine the partial derivative calculations of future iterations, allowing it to gradually arrive at the local or global minimum (i.e. point of convergence).\nSteps: 1. Starting Point: Begin with initial parameter values, often set arbitrarily. 2. Calculate the Slope: Determine the gradient at this point to assess the steepness and direction of the slope. 3. Update Parameters: Use the slope to adjust the parameters, iteratively reducing the steepness until the curve flattens at the minimum. 4. Convergence: Continue until the gradient approaches zero, signifying that the minimum has been reached.\nKey Components Learning Rate (α) Determines the size of step we take after each calculation or the variation in input.\nHigh learning rate takes larger steps which speeds up the process but also increases the risk of overshooting the minimum. Low learning rate ensures precise steps but increases computation time as the number of iterations increases. Cost Function The cost function quantifies the error between the predicted output and the actual output.\nIt guides the model by providing feedback, enabling parameter updates to minimize the error. A loss function refers to the error for a single training example, while the cost function averages this error across the entire dataset. ","permalink":"https://shreyyzsh.vercel.app/posts/gradient/","summary":"\u003cp\u003eIn this blog, I will try to explain what exactly is \u003cstrong\u003egradient descent\u003c/strong\u003e and it\u0026rsquo;s importance in optimizing machine learning models. Gradient descent is an algorithm (just like million other algorithms that exists in computer science) that is designed to minimize a \u003cstrong\u003ecost function\u003c/strong\u003e.\u003c/p\u003e\n\u003ch3 id=\"what-is-a-cost-function\"\u003eWhat is a cost function?\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eWell, it is essentially the error between predicted and actual outputs. Which means if we want to increase our model\u0026rsquo;s accuracy, we need to somehow reduce this cost function and for that we\u0026rsquo;ve got gradient descent.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"what-is-a-gradient\"\u003eWhat is a Gradient?\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eA gradient is essentially the derivative of a function, which tells us how the output is affected with little variations in input. This gradient, helps us in adjusting model parameters \u003cem\u003e(like weights and biases)\u003c/em\u003e to reduce the cost function.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"why-gradient-descent\"\u003eWhy Gradient Descent?\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eIt helps us in minimizing the error in predictions, bringing the model closer to the actual data. It iteratively keep adjusting the model\u0026rsquo;s parameters until minimum cost function state is achieved.\u003c/li\u003e\n\u003cli\u003eThis iterative process ensures the model learns and improves its performance.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"what-are-weights-and-biases\"\u003eWhat are Weights and Biases?\u003c/h3\u003e\n\u003cp\u003e\u003cstrong\u003eWeights:\u003c/strong\u003e Weights (W) are parameters that define influence of an input on the model\u0026rsquo;s output.\n\u003cstrong\u003eBiases:\u003c/strong\u003e Biases (b) is an additional parameter that shifts the model\u0026rsquo;s prediction.\u003c/p\u003e","title":"A Beginner's Guide to Gradient Descent - Understanding the Core of Machine Learning Optimization"},{"content":"","permalink":"https://shreyyzsh.vercel.app/aboutme/","summary":"","title":""}]