41554 blogs · [ { "id": "01a087df-36c4-718d-b516-e72cdf68d06b", "title": "Use a proxy for LLM app development", "url": "https://sharats.me/posts/use-proxy-for-llm-app-dev/", "published_at": "2025-06-05T18:30:00+00:00" }, { "id": "01a087df-36c5-73b0-a910-ee23058edfc8", "title": "A Tale of Two Forwarded Headers", "url": "https://sharats.me/posts/tale-of-two-forwarded-headers/", "published_at": "2023-08-19T18:30:00+00:00" }, { "id": "01a087df-36c5-73b0-a910-ee2305d7ec45", "title": "Running Docker containers in network isolation with proxied traffic", "url": "https://sharats.me/posts/docker-with-proxy/", "published_at": "2023-04-15T18:30:00+00:00" }, { "id": "01a087df-36c5-73b0-a910-ee2306900680", "title": "Shell Script Best Practices", "url": "https://sharats.me/posts/shell-script-best-practices/", "published_at": "2022-10-26T18:30:00+00:00" }, { "id": "01a087df-36c5-73b0-a910-ee2306a476aa", "title": "Quick insecure TOTP", "url": "https://sharats.me/posts/quick-insucure-totp/", "published_at": "2022-09-09T18:30:00+00:00" }, { "id": "01a087df-36c5-73b0-a910-ee2307667687", "title": "Peeking into HTTPS Traffic with a Proxy", "url": "https://sharats.me/posts/peeking-into-https-traffic-with-a-proxy/", "published_at": "2022-06-16T18:30:00+00:00" }, { "id": "01a087df-36c5-73b0-a910-ee2308527ead", "title": "Time is different every time", "url": "https://sharats.me/posts/time-is-different-every-time/", "published_at": "2021-12-23T18:30:00+00:00" }, { "id": "01a087df-36c5-73b0-a910-ee2308d0156d", "title": "The Python `print` function", "url": "https://sharats.me/posts/python-print-function/", "published_at": "2020-04-04T18:30:00+00:00" }, { "id": "01a087df-36c6-7055-ba3a-7cca8bb610ce", "title": "Dependency Injection In Python", "url": "https://sharats.me/posts/dependency-injection-in-python/", "published_at": "2020-03-28T18:30:00+00:00" }, { "id": "01a087df-36c6-7055-ba3a-7cca8c83462a", "title": "The Magic of AutoHotkey — Part 2", "url": "https://sharats.me/posts/the-magic-of-autohotkey-2/", "published_at": "2020-03-21T18:30:00+00:00" }, { "id": "01a087df-36c6-7055-ba3a-7cca8c8920c5", "title": "Automating the Vim workplace — Chapter Ⅲ", "url": "https://sharats.me/posts/automating-the-vim-workplace-3/", "published_at": "2020-03-14T18:30:00+00:00" }, { "id": "01a087df-36c6-7055-ba3a-7cca8d41a398", "title": "The Weird `global`", "url": "https://sharats.me/posts/the-weird-global/", "published_at": "2020-03-07T18:30:00+00:00" }, { "id": "01a087df-36c6-7055-ba3a-7cca8e21708a", "title": "The Magic of AutoHotkey", "url": "https://sharats.me/posts/the-magic-of-autohotkey/", "published_at": "2020-02-29T18:30:00+00:00" }, { "id": "01a087df-36c6-7055-ba3a-7cca8e72e7b0", "title": "Guide to Comprehensions in Python", "url": "https://sharats.me/posts/guide-to-comprehensions-in-python/", "published_at": "2020-02-22T18:30:00+00:00" }, { "id": "01a087df-36c6-7055-ba3a-7cca8e800261", "title": "Automating the Vim workplace — Chapter Ⅱ", "url": "https://sharats.me/posts/automating-the-vim-workplace-2/", "published_at": "2020-02-15T18:30:00+00:00" }, { "id": "01a087df-36c6-7055-ba3a-7cca8f064cdb", "title": "Python's `itertools.groupby` callable", "url": "https://sharats.me/posts/python-itertools-groupby-callable/", "published_at": "2020-02-08T18:30:00+00:00" }, { "id": "01a087df-36c6-7055-ba3a-7cca8f46f252", "title": "The `tar` Command Clipboard", "url": "https://sharats.me/posts/the-tar-command-clipboard/", "published_at": "2020-02-01T18:30:00+00:00" }, { "id": "01a087df-36c6-7055-ba3a-7cca900934e9", "title": "Working with Strings in Python", "url": "https://sharats.me/posts/working-with-strings-in-python/", "published_at": "2020-01-25T18:30:00+00:00" }, { "id": "01a087df-36c6-7055-ba3a-7cca90639706", "title": "Automating the Vim workplace", "url": "https://sharats.me/posts/automating-the-vim-workplace/", "published_at": "2020-01-11T18:30:00+00:00" }, { "id": "01a087df-36c6-7055-ba3a-7cca91265ac0", "title": "Python's `map` builtin function", "url": "https://sharats.me/posts/python-map-function/", "published_at": "2020-01-03T18:30:00+00:00" }, { "id": "01a087df-36c6-7055-ba3a-7cca91fdd86c", "title": "The Jython Pillow Guide", "url": "https://sharats.me/posts/jython-pillow-guide/", "published_at": "2018-01-08T18:30:00+00:00" }, { "id": "01a087df-36c6-7055-ba3a-7cca9241bf5a", "title": "The Python Dictionary", "url": "https://sharats.me/posts/the-python-dictionary/", "published_at": "2017-09-28T18:30:00+00:00" }, { "id": "01a087df-36c6-7055-ba3a-7cca92ea768a", "title": "Migrate from Pelican to Hugo", "url": "https://sharats.me/posts/migrate-from-pelican-to-hugo/", "published_at": "2017-08-22T18:30:00+00:00" }, { "id": "01a087df-36c6-7055-ba3a-7cca9363ac62", "title": "The ever useful and neat subprocess module", "url": "https://sharats.me/posts/the-ever-useful-and-neat-subprocess-module/", "published_at": "2012-04-28T18:30:00+00:00" }, { "id": "01a087df-36c6-7055-ba3a-7cca9380b3af", "title": "Serializing python-requests' Session objects for fun and profit", "url": "https://sharats.me/posts/serializing-python-requests-session-objects-for-fun-and-profit/", "published_at": "2012-02-17T18:30:00+00:00" }, { "id": "01a087df-36c6-7055-ba3a-7cca9419983e", "title": "Dependency graph of all installed gems", "url": "https://sharats.me/posts/dependency-graph-of-all-installed-gems/", "published_at": "2011-09-29T18:30:00+00:00" }, { "id": "01a087df-36c6-7055-ba3a-7cca94ab7d66", "title": "Implementing an expressive search system with clojure", "url": "https://sharats.me/posts/implementing-an-expressive-search-system-with-clojure/", "published_at": "2011-09-27T18:30:00+00:00" }, { "id": "01a087df-36c6-7055-ba3a-7cca94fede5f", "title": "Vim undo breaks with auto-close plugins", "url": "https://sharats.me/posts/vim-undo-breaks-with-auto-close-plugins/", "published_at": "2011-09-27T18:30:00+00:00" }, { "id": "01a087df-36c6-7055-ba3a-7cca95b34788", "title": "Installing Crunchbang Linux on my old lappy", "url": "https://sharats.me/posts/installing-crunchbang-linux-on-my-old-lappy/", "published_at": "2011-02-24T18:30:00+00:00" }, { "id": "01a087df-36c6-7055-ba3a-7cca966e80e8", "title": "A tasty vim configuration setup with Vimpire and Pathogen", "url": "https://sharats.me/posts/a-tasty-vim-configuration-setup-with-vimpire-and-pathogen/", "published_at": "2010-12-13T18:30:00+00:00" } ] posts Claim your blog
Back to The Sharat's
Blog · corpus.blog/blogs/sharats.me/posts

The Sharat's

sharats.me

2025

2023

2022

2021

2020

2018

2017

2012

2011

2010