41554 blogs · [ { "id": "01a0d539-b31c-7344-ac00-583ae66efbe3", "title": "Trading psychology: why traders really fail", "url": "https://www.anupshinde.com/trading-psychology/", "published_at": "2026-06-09T15:00:00+00:00" }, { "id": "01a0d539-b31c-7344-ac00-583ae74cd4e6", "title": "Python for backtesting, a trader's view", "url": "https://www.anupshinde.com/python-for-backtesting/", "published_at": "2026-06-09T14:00:00+00:00" }, { "id": "01a0d539-b31c-7344-ac00-583ae79beed4", "title": "What an AI agent actually is, and how to build one", "url": "https://www.anupshinde.com/what-is-an-ai-agent/", "published_at": "2026-06-09T13:00:00+00:00" }, { "id": "01a0d539-b31c-7344-ac00-583ae7a523cf", "title": "How WebSockets actually work, and what bites you", "url": "https://www.anupshinde.com/how-websockets-work/", "published_at": "2026-06-09T12:00:00+00:00" }, { "id": "01a0d539-b31c-7344-ac00-583ae886a0d1", "title": "Prompt engineering examples that actually work", "url": "https://www.anupshinde.com/prompt-engineering-examples/", "published_at": "2026-06-09T11:00:00+00:00" }, { "id": "01a0d539-b31c-7344-ac00-583ae9018a6a", "title": "Claude Code: what it is and how I actually use it", "url": "https://www.anupshinde.com/how-i-use-claude-code/", "published_at": "2026-06-09T10:00:00+00:00" }, { "id": "01a0872c-3bb4-7354-afde-0fbe3b008b12", "title": "Backtesting the four classical harmonic patterns", "url": "https://www.anupshinde.com/harmonic-patterns-backtested/", "published_at": "2026-05-30T08:00:00+00:00" }, { "id": "01a0872c-3bb5-7044-bf4c-22a61de5608d", "title": "I backtested six classical candlestick patterns. One held up.", "url": "https://www.anupshinde.com/candlestick-patterns-backtested/", "published_at": "2026-05-29T12:00:00+00:00" }, { "id": "01a0872c-3bb5-7044-bf4c-22a61e2bec34", "title": "Backtesting Moving Average Crossover across four setups", "url": "https://www.anupshinde.com/ma-crossover-backtested/", "published_at": "2026-05-26T19:00:00+00:00" }, { "id": "01a0872c-3bb5-7044-bf4c-22a61e87622f", "title": "The Stock Market Looks Very Different When Measured in Gold", "url": "https://www.anupshinde.com/stock-market-measured-in-gold/", "published_at": "2026-05-23T17:00:00+00:00" }, { "id": "01a0872c-3bb5-7044-bf4c-22a61ef6927f", "title": "How to use godom", "url": "https://www.anupshinde.com/how-to-use-godom/", "published_at": "2026-05-11T10:00:00+00:00" }, { "id": "01a0872c-3bb5-7044-bf4c-22a61f0598c6", "title": "The thin bridge: keeping bridge.js dumb on purpose", "url": "https://www.anupshinde.com/godom-thin-bridge/", "published_at": "2026-05-09T10:00:00+00:00" }, { "id": "01a0872c-3bb5-7044-bf4c-22a61f1b7f23", "title": "Breakout, with my phone as the paddle", "url": "https://www.anupshinde.com/breakout-with-phone-controller/", "published_at": "2026-05-08T10:00:00+00:00" }, { "id": "01a0872c-3bb5-7044-bf4c-22a61f874307", "title": "A video player that decodes frames in Go", "url": "https://www.anupshinde.com/video-player-decoding-frames-in-go/", "published_at": "2026-05-07T10:00:00+00:00" }, { "id": "01a0872c-3bb5-7044-bf4c-22a62017151c", "title": "When to write plain JS in godom (and when not to)", "url": "https://www.anupshinde.com/when-to-write-js-in-godom/", "published_at": "2026-05-06T10:00:00+00:00" }, { "id": "01a0872c-3bb5-7044-bf4c-22a6201b8d1d", "title": "A 3D solar system in Go, drawn with Canvas 2D", "url": "https://www.anupshinde.com/3d-solar-system-engine-in-go/", "published_at": "2026-05-05T10:00:00+00:00" }, { "id": "01a0872c-3bb5-7044-bf4c-22a62073d7b7", "title": "How godom composes: islands, partials, and shared state", "url": "https://www.anupshinde.com/godom-islands-and-composition/", "published_at": "2026-05-04T10:00:00+00:00" }, { "id": "01a0872c-3bb5-7044-bf4c-22a621021b56", "title": "Backtesting Pattern Rotation strategy with a breakout filter across four setups", "url": "https://www.anupshinde.com/pattern-rotation-backtested/", "published_at": "2026-05-03T12:00:00+00:00" }, { "id": "01a0872c-3bb5-7044-bf4c-22a62168b2b3", "title": "I put Claude Code in a browser terminal I built in Go", "url": "https://www.anupshinde.com/claude-code-in-a-browser-terminal/", "published_at": "2026-05-03T10:00:00+00:00" }, { "id": "01a0872c-3bb5-7044-bf4c-22a621913392", "title": "godom's wire protocol: binary patches over WebSocket", "url": "https://www.anupshinde.com/godom-wire-protocol/", "published_at": "2026-05-02T10:00:00+00:00" }, { "id": "01a0872c-3bb5-7044-bf4c-22a62278127c", "title": "Building a UI framework in Go with Claude", "url": "https://www.anupshinde.com/building-godom-with-claude/", "published_at": "2026-05-01T10:00:00+00:00" }, { "id": "01a0872c-3bb5-7044-bf4c-22a622b956fa", "title": "Backtesting Breakout Continuation strategy across NQ, Gold, and a Daily timeframe", "url": "https://www.anupshinde.com/breakout-continuation-backtested/", "published_at": "2026-04-30T12:00:00+00:00" }, { "id": "01a0872c-3bb5-7044-bf4c-22a62304ce19", "title": "How godom's virtual DOM works", "url": "https://www.anupshinde.com/godom-virtual-dom/", "published_at": "2026-04-30T10:00:00+00:00" }, { "id": "01a0872c-3bb5-7044-bf4c-22a6231c7111", "title": "How to use godom with AI agents", "url": "https://www.anupshinde.com/how-to-use-godom-with-ai-agents/", "published_at": "2026-04-29T14:00:00+00:00" }, { "id": "01a0872c-3bb5-7044-bf4c-22a623ea3bf4", "title": "Why I built godom", "url": "https://www.anupshinde.com/why-i-built-godom/", "published_at": "2026-04-29T10:00:00+00:00" }, { "id": "01a0872c-3bb5-7044-bf4c-22a624580387", "title": "How I Ported a Python Astronomy Library to Go with AI", "url": "https://www.anupshinde.com/ai-assisted-skyfield-to-go-port/", "published_at": "2026-02-25T20:48:14+00:00" }, { "id": "01a0872c-3bb5-7044-bf4c-22a624b7fe76", "title": "Building AI Agents in Python", "url": "https://www.anupshinde.com/building-ai-agents-in-python-series/", "published_at": "2025-09-03T10:23:15+00:00" }, { "id": "01a0872c-3bb5-7044-bf4c-22a624de1eb7", "title": "AI Agent That Asks Before Acting in Python - Building Agents Part 3", "url": "https://www.anupshinde.com/clarifying-ai-agent-python/", "published_at": "2025-08-31T19:18:55+00:00" }, { "id": "01a0872c-3bb5-7044-bf4c-22a625cd5f37", "title": "LLM-Powered Agent in Python - Building Agents Part 2", "url": "https://www.anupshinde.com/llm-powered-agent-python/", "published_at": "2025-08-28T19:00:13+00:00" }, { "id": "01a0872c-3bb5-7044-bf4c-22a6265b948f", "title": "Simple Decision-Making Agent in Python - Building Agents Part 1", "url": "https://www.anupshinde.com/simple-decision-agent-python/", "published_at": "2025-08-28T13:12:21+00:00" }, { "id": "01a0872c-3bb5-7044-bf4c-22a62678026e", "title": "How I Built an SEO Analysis Tool with AI Agents", "url": "https://www.anupshinde.com/seo-analysis-tool-with-ai-agents/", "published_at": "2025-08-23T14:39:28+00:00" }, { "id": "01a0872c-3bb5-7044-bf4c-22a62729ea0e", "title": "Backtesting Random Trading Signals: From Chaos to Code", "url": "https://www.anupshinde.com/backtesting-random-trading-signals/", "published_at": "2025-08-11T15:17:51+00:00" }, { "id": "01a0872c-3bb5-7044-bf4c-22a627bdcd6b", "title": "Write Faster with AI - While Keeping It Yours", "url": "https://www.anupshinde.com/write-faster-with-ai/", "published_at": "2025-08-04T01:21:21+00:00" }, { "id": "01a0872c-3bb5-7044-bf4c-22a6285f329c", "title": "Why, When, And How I Use AI", "url": "https://www.anupshinde.com/why-when-how-i-use-ai/", "published_at": "2025-08-03T10:36:00+00:00" }, { "id": "01a0872c-3bb5-7044-bf4c-22a62881c7d5", "title": "AI is the Software. You are the Hardware.", "url": "https://www.anupshinde.com/how-ai-is-changing-human-roles/", "published_at": "2025-07-27T14:22:50+00:00" }, { "id": "01a0872c-3bb5-7044-bf4c-22a628de8f79", "title": "S3-Compatible XML on GCS Tricked Me", "url": "https://www.anupshinde.com/how-s3-compatible-xml-on-gcs-tricked-me/", "published_at": "2025-07-27T09:26:06+00:00" }, { "id": "01a0872c-3bb5-7044-bf4c-22a62947e4bb", "title": "Why I moved to Ghost Pro", "url": "https://www.anupshinde.com/switch-to-ghost-pro-blog-restart/", "published_at": "2025-07-26T07:38:00+00:00" }, { "id": "01a0872c-3bb5-7044-bf4c-22a629af6e20", "title": "The Truth About Prop Firms - Why Most Traders Fail Before They Begin", "url": "https://www.anupshinde.com/truth-about-prop-firms-why-most-traders-fail/", "published_at": "2025-07-25T21:40:00+00:00" }, { "id": "01a0872c-3bb5-7044-bf4c-22a62a04b112", "title": "Why Your Trading Strategy Fails You: It’s Not Just the Metrics", "url": "https://www.anupshinde.com/evaluating-trading-strategies/", "published_at": "2025-07-19T20:00:00+00:00" }, { "id": "01a0872c-3bb5-7044-bf4c-22a62a834ba7", "title": "The Trader's Accuracy Trap: Why Winning Too Often Can Break You", "url": "https://www.anupshinde.com/the-accuracy-trap/", "published_at": "2025-07-17T20:00:00+00:00" }, { "id": "01a0872c-3bb5-7044-bf4c-22a62a83c510", "title": "How to Backtest a Simple Trading Strategy Using ChatGPT", "url": "https://www.anupshinde.com/backtest-strategy-using-chatgpt/", "published_at": "2025-06-23T11:00:00+00:00" }, { "id": "01a0872c-3bb5-7044-bf4c-22a62b151016", "title": "The Backtester’s Edge: How Code and AI Transform Your Strategy Game", "url": "https://www.anupshinde.com/backtesting-with-code/", "published_at": "2025-06-22T20:00:00+00:00" }, { "id": "01a0872c-3bb5-7044-bf4c-22a62be551dd", "title": "Why I Built My Own Backtester - and Why You Might (or Might Not) Want To", "url": "https://www.anupshinde.com/why-i-built-my-own-backtester/", "published_at": "2025-06-21T20:00:00+00:00" }, { "id": "01a0872c-3bb5-7044-bf4c-22a62bfddd88", "title": "The Trader Ladder: Why Edge Alone Won’t Make You Profitable", "url": "https://www.anupshinde.com/trading-performance-ladder/", "published_at": "2025-06-14T20:00:00+00:00" }, { "id": "01a0872c-3bb5-7044-bf4c-22a62cf67e7c", "title": "8 Types of Trading Tilt – From Rookie Implosions to Professional Meltdowns", "url": "https://www.anupshinde.com/types-of-trading-tilt/", "published_at": "2025-04-19T20:00:00+00:00" }, { "id": "01a0872c-3bb5-7044-bf4c-22a62d0cd35b", "title": "Gold-Silver Ratio: A Market Thermometer for Fear and Confidence", "url": "https://www.anupshinde.com/gold-silver-ratio-a-market-thermometer-for-fear-and-confidence/", "published_at": "2025-04-14T20:00:00+00:00" }, { "id": "01a0872c-3bb5-7044-bf4c-22a62d7f7e3e", "title": "How I Use Audio Journaling and AI to Improve My Trading Decisions", "url": "https://www.anupshinde.com/how-i-use-audio-journaling-and-ai-to-improve-my-trading-decisions/", "published_at": "2025-04-12T20:00:00+00:00" }, { "id": "01a0872c-3bb5-7044-bf4c-22a62e3e3596", "title": "Mastering Pullbacks: The Key to Better Trade Timing", "url": "https://www.anupshinde.com/understanding-pullbacks-in-market-trends/", "published_at": "2025-04-01T20:00:00+00:00" }, { "id": "01a0872c-3bb5-7044-bf4c-22a62f129073", "title": "How to Add Textures to a 3D Game in JavaScript", "url": "https://www.anupshinde.com/adding-textures-to-a-3d-game/", "published_at": "2023-09-18T12:00:00+00:00" }, { "id": "01a0872c-3bb5-7044-bf4c-22a62f758b73", "title": "How to Build the Foundation of a 3D Game in JavaScript", "url": "https://www.anupshinde.com/how-to-create-a-3d-game-in-javascript/", "published_at": "2023-09-10T12:00:00+00:00" }, { "id": "01a0872c-3bb5-7044-bf4c-22a6300f48af", "title": "Plotting Earthquakes", "url": "https://www.anupshinde.com/plotting-earthquakes/", "published_at": "2018-08-17T20:00:00+00:00" }, { "id": "01a0872c-3bb5-7044-bf4c-22a63088d26b", "title": "Convert all external links to open in a new tab or window with JavaScript", "url": "https://www.anupshinde.com/javascript-open-external-links-new-tab/", "published_at": "2018-06-05T20:00:00+00:00" }, { "id": "01a0872c-3bb5-7044-bf4c-22a630dc8928", "title": "Managing GoLang dependencies in separate projects", "url": "https://www.anupshinde.com/managing-golang-dependencies-in-separate-projects/", "published_at": "2017-08-01T20:00:00+00:00" }, { "id": "01a0872c-3bb5-7044-bf4c-22a6310db3d2", "title": "How to upgrade GoLang", "url": "https://www.anupshinde.com/how-to-upgrade-golang/", "published_at": "2017-07-27T20:00:00+00:00" }, { "id": "01a0872c-3bb5-7044-bf4c-22a6316ff7dd", "title": "Server rendered web pages with React and TypeScript", "url": "https://www.anupshinde.com/react-typescript-server-render/", "published_at": "2016-11-04T20:00:00+00:00" }, { "id": "01a0872c-3bb5-7044-bf4c-22a631f7c12e", "title": "Building real-time web apps with AngularJS, NodeJS, and MongoDB", "url": "https://www.anupshinde.com/livebase-realtime-webapps-angularjs/", "published_at": "2014-01-19T20:00:00+00:00" }, { "id": "01a0872c-3bb5-7044-bf4c-22a632f6e924", "title": "Online Markdown Showdown Editor", "url": "https://www.anupshinde.com/online-markdown-showdown-editor/", "published_at": "2013-10-02T20:00:00+00:00" }, { "id": "01a0872c-3bb5-7044-bf4c-22a633f1b62c", "title": "How to move your Domain to DigitalOcean without changing your Name Servers", "url": "https://www.anupshinde.com/digitalocean-vps-custom-domain-without-nameserver-change/", "published_at": "2013-09-29T20:00:00+00:00" }, { "id": "01a0872c-3bb5-7044-bf4c-22a634b8e160", "title": "Visual Ping - Email alerts on web page changes", "url": "https://www.anupshinde.com/visual-ping-monitor-page-changes-email-alert/", "published_at": "2013-09-28T23:31:00+00:00" }, { "id": "01a0872c-3bb5-7044-bf4c-22a6358ed530", "title": "Hardware Trojans - Does your device leak data off-grid?", "url": "https://www.anupshinde.com/hardware-trojans-device-leak-off-grid/", "published_at": "2013-09-25T20:00:00+00:00" }, { "id": "01a0872c-3bb5-7044-bf4c-22a6364d2e02", "title": "Chrome has updated - How to fix the changed New Tab page", "url": "https://www.anupshinde.com/chrome-update-new-tab-apps/", "published_at": "2013-09-24T20:00:00+00:00" }, { "id": "01a0872c-3bb5-7044-bf4c-22a63718f707", "title": "Adding dependencies and data to the Node-NPM package", "url": "https://www.anupshinde.com/adding-dependencies-data-nodejs-npm-package/", "published_at": "2013-09-21T20:00:00+00:00" }, { "id": "01a0872c-3bb5-7044-bf4c-22a637551959", "title": "How to create a NodeJS NPM package", "url": "https://www.anupshinde.com/how-to-create-nodejs-npm-package/", "published_at": "2013-09-20T20:00:00+00:00" }, { "id": "01a0872c-3bb5-7044-bf4c-22a637f8c31b", "title": "Nirman - Flexible static site generator for NodeJS", "url": "https://www.anupshinde.com/nirman-static-site-generator/", "published_at": "2013-09-18T20:00:00+00:00" }, { "id": "01a0872c-3bb5-7044-bf4c-22a6385c1e25", "title": "Going Static - Why I don't need dynamic pages", "url": "https://www.anupshinde.com/going-static/", "published_at": "2013-09-07T20:00:00+00:00" }, { "id": "01a0872c-3bb5-7044-bf4c-22a63899b8f2", "title": "Bootstrap Form builder - Part 2", "url": "https://www.anupshinde.com/form-builder-part-2/", "published_at": "2013-04-27T20:00:00+00:00" }, { "id": "01a0872c-3bb5-7044-bf4c-22a639678c62", "title": "Data Explorer for Force.com", "url": "https://www.anupshinde.com/data-explorer-for-force-com/", "published_at": "2013-02-03T20:00:00+00:00" }, { "id": "01a0872c-3bb5-7044-bf4c-22a639eefb58", "title": "DataExplorer for Force.com", "url": "https://www.anupshinde.com/dataexplorer-for-force-com/", "published_at": "2013-02-03T20:00:00+00:00" }, { "id": "01a0872c-3bb5-7044-bf4c-22a63a6d9e59", "title": "Force.com Developer tip: Write faster JavaScript / CSS with VisualForce", "url": "https://www.anupshinde.com/writing-faster-js-css-on-force-dot-com/", "published_at": "2013-01-31T20:00:00+00:00" }, { "id": "01a0872c-3bb5-7044-bf4c-22a63abbb9ee", "title": "Google Chrome Extension for Salesforce's REST API with OAuth2", "url": "https://www.anupshinde.com/salesforce-rest-api-chrome-extension/", "published_at": "2013-01-30T20:00:00+00:00" }, { "id": "01a0872c-3bb5-7044-bf4c-22a63b310dd3", "title": "Salesforce Chatter Monitor - Google Chrome extension", "url": "https://www.anupshinde.com/chrome-extension-chatter-monitor/", "published_at": "2013-01-28T20:00:00+00:00" }, { "id": "01a0872c-3bb5-7044-bf4c-22a63ba14ea7", "title": "Blogging on Google App Engine", "url": "https://www.anupshinde.com/blogging-on-google-app-engine/", "published_at": "2013-01-27T20:00:00+00:00" }, { "id": "01a0872c-3bb5-7044-bf4c-22a63c949b46", "title": "A simple Form Builder using jQueryUI - Part 1", "url": "https://www.anupshinde.com/form-builder-part-1/", "published_at": "2013-01-26T20:00:00+00:00" }, { "id": "01a0872c-3bb5-7044-bf4c-22a63cddaa25", "title": "To GWT or not to GWT", "url": "https://www.anupshinde.com/to-gwt-or-not-to-gwt-my-learnings/", "published_at": "2011-02-06T23:47:00+00:00" }, { "id": "01a0872c-3bb5-7044-bf4c-22a63dc528f5", "title": "Latent Semantic Indexing - Part 2 - Indexing", "url": "https://www.anupshinde.com/latent-semantic-indexing-part-2/", "published_at": "2008-03-23T21:00:00+00:00" }, { "id": "01a0872c-3bb5-7044-bf4c-22a63e88091c", "title": "Latent Semantic Indexing - part 3 - Search", "url": "https://www.anupshinde.com/latent-semantic-indexing-part-3/", "published_at": "2008-03-23T20:40:00+00:00" }, { "id": "01a0872c-3bb5-7044-bf4c-22a63ee9344e", "title": "Latent Semantic Indexing", "url": "https://www.anupshinde.com/latent-semantic-indexing/", "published_at": "2008-03-23T20:00:00+00:00" }, { "id": "01a0872c-3bb5-7044-bf4c-22a63eeb3d6f", "title": "Tips on compiling Quake III source code with VC++ 6.0", "url": "https://www.anupshinde.com/quake3-compile-vc/", "published_at": "2007-04-12T05:53:00+00:00" }, { "id": "01a0872c-3bb5-7044-bf4c-22a63fe0de35", "title": "Modifying Quake 3 - The Homing Missile Approach", "url": "https://www.anupshinde.com/modifying-quake3/", "published_at": "2007-04-11T20:00:00+00:00" }, { "id": "01a0872c-3bb5-7044-bf4c-22a640bce127", "title": "Modifying Quake 3 - part 2- Gamer inputs", "url": "https://www.anupshinde.com/modifying-quake3-part-2/", "published_at": "2007-04-11T20:00:00+00:00" }, { "id": "01a0872c-3bb5-7044-bf4c-22a64147d94f", "title": "Modifying Quake 3 - part 3 - Missile behavior", "url": "https://www.anupshinde.com/modifying-quake3-part-3/", "published_at": "2007-04-11T20:00:00+00:00" }, { "id": "01a0872c-3bb5-7044-bf4c-22a6423ce1ef", "title": "Forcing Email Read-Receipts", "url": "https://www.anupshinde.com/forcing-email-read-receipts/", "published_at": "2006-11-08T20:00:00+00:00" }, { "id": "01a0872c-3bb5-7044-bf4c-22a642fe99ad", "title": "Geo-locate Emails part-3 - Conclusions.", "url": "https://www.anupshinde.com/geo-locate-emails-part-3/", "published_at": "2006-09-27T01:00:00+00:00" }, { "id": "01a0872c-3bb5-7044-bf4c-22a643636fb5", "title": "Geo-locate Emails - part-2 - Locating IP", "url": "https://www.anupshinde.com/geo-locate-emails-part-2/", "published_at": "2006-09-26T22:20:00+00:00" }, { "id": "01a0872c-3bb5-7044-bf4c-22a644503caa", "title": "Geo-locate Emails", "url": "https://www.anupshinde.com/geo-locate-emails/", "published_at": "2006-09-26T20:00:00+00:00" }, { "id": "01a0872c-3bb5-7044-bf4c-22a64487c658", "title": "Tunneling and Onion routing to access proxy / firewall restricted internet sites", "url": "https://www.anupshinde.com/tunneling-and-onion-routing/", "published_at": "2005-11-04T20:00:00+00:00" }, { "id": "01a0872c-3bb5-7044-bf4c-22a644c3e624", "title": "Integrating MS-Word in .NET", "url": "https://www.anupshinde.com/microsoft-word-in-dotnet/", "published_at": "2005-09-30T20:00:00+00:00" }, { "id": "01a0872c-3bb5-7044-bf4c-22a645ac2017", "title": "Microsoft Agent based Gmail reader", "url": "https://www.anupshinde.com/microsoft-agent-based-gmail-reader/", "published_at": "2005-09-12T20:00:00+00:00" } ] posts Claim your blog
Back to anupshinde.com
Blog · corpus.blog/blogs/anupshinde.com/posts

anupshinde.com

anupshinde.com

2026

2025

2023

2018

2017

2016

2014

2013

2011

2008

2007

2006

2005