56,966 blogs · [ { "id": "01a087d7-3948-717a-a16d-9efe165140a0", "title": "Run Gemini CLI Safely with Firejail", "url": "https://www.rohanjain.in/gemini-cli/", "published_at": "2025-12-13T09:19:04+00:00" }, { "id": "01a087d7-3949-73c7-9590-f33b7ead752f", "title": "Self Hosting Gitlab using Quadlets", "url": "https://www.rohanjain.in/gitlab/", "published_at": "2025-10-26T03:57:21+00:00" }, { "id": "01a087d7-3949-73c7-9590-f33b7edb4771", "title": "Bootstrapping pipx for the obsessed", "url": "https://www.rohanjain.in/pipx/", "published_at": "2021-09-04T14:11:19+00:00" }, { "id": "01a087d7-3949-73c7-9590-f33b7fa1f77e", "title": "Cross Compiling Rust Binaries with Github Actions", "url": "https://www.rohanjain.in/cargo-cross/", "published_at": "2021-06-27T11:20:00+00:00" }, { "id": "01a087d7-3949-73c7-9590-f33b8005164f", "title": "Encrypting a home in a Raspberry Pi", "url": "https://www.rohanjain.in/fscrypt/", "published_at": "2021-05-24T05:52:27+00:00" }, { "id": "01a087d7-3949-73c7-9590-f33b80304e26", "title": "Hopping across the country with WireGuard", "url": "https://www.rohanjain.in/jumper/", "published_at": "2021-02-21T13:41:38+00:00" }, { "id": "01a087d7-3949-73c7-9590-f33b80571331", "title": "Cooling the Raspberry Pi 4 with Argon Neo", "url": "https://www.rohanjain.in/pi-cooling/", "published_at": "2021-01-08T04:51:02+00:00" }, { "id": "01a087d7-3949-73c7-9590-f33b8117c007", "title": "Some Light in the Background", "url": "https://www.rohanjain.in/light/", "published_at": "2020-04-15T03:52:34+00:00" }, { "id": "01a087d7-3949-73c7-9590-f33b820089f3", "title": "Window Management in OSX with Spark", "url": "https://www.rohanjain.in/spark/", "published_at": "2017-12-06T12:44:55+00:00" }, { "id": "01a087d7-3949-73c7-9590-f33b82602e95", "title": "The Purpose Of It All", "url": "https://www.rohanjain.in/42/", "published_at": "2017-05-10T02:34:01+00:00" }, { "id": "01a087d7-3949-73c7-9590-f33b82d73dbd", "title": "Dynamic DNS with Cloudflare", "url": "https://www.rohanjain.in/cloudflare-ddns/", "published_at": "2017-03-18T05:28:10+00:00" }, { "id": "01a087d7-3949-73c7-9590-f33b82e66b00", "title": "The two windows workflow", "url": "https://www.rohanjain.in/two-windows/", "published_at": "2017-02-27T06:15:12+00:00" }, { "id": "01a087d7-3949-73c7-9590-f33b83b645a5", "title": "Decentralized Twitter", "url": "https://www.rohanjain.in/decentralized-twitter/", "published_at": "2017-02-11T15:20:45+00:00" }, { "id": "01a087d7-3949-73c7-9590-f33b848d8b55", "title": "Find my code at Github", "url": "https://www.rohanjain.in/code/", "published_at": "2017-02-11T09:48:44+00:00" }, { "id": "01a087d7-3949-73c7-9590-f33b84b0d717", "title": "Navigating with the first telescope", "url": "https://www.rohanjain.in/telescope/", "published_at": "2016-05-12T00:00:00+00:00" }, { "id": "01a087d7-3949-73c7-9590-f33b85083cda", "title": "Gazing in the night sky", "url": "https://www.rohanjain.in/sky/", "published_at": "2016-05-04T00:00:00+00:00" }, { "id": "01a087d7-3949-73c7-9590-f33b85b4a337", "title": "You have infinite email addresses", "url": "https://www.rohanjain.in/infi-mail/", "published_at": "2016-04-02T00:00:00+00:00" }, { "id": "01a087d7-3949-73c7-9590-f33b8a95e3cd", "title": "About Me", "url": "https://www.rohanjain.in/about/", "published_at": "2016-02-19T02:34:01+00:00" }, { "id": "01a087d7-3949-73c7-9590-f33b85e63d3a", "title": "Categorizing archives by year with Hakyll", "url": "https://www.rohanjain.in/hakyll-years/", "published_at": "2015-08-31T00:00:00+00:00" }, { "id": "01a087d7-3949-73c7-9590-f33b86230e07", "title": "Clean URLs with Hakyll", "url": "https://www.rohanjain.in/hakyll-clean-urls/", "published_at": "2015-08-30T00:00:00+00:00" }, { "id": "01a087d7-3949-73c7-9590-f33b86af6e41", "title": "Sitemap with Hakyll", "url": "https://www.rohanjain.in/hakyll-sitemap/", "published_at": "2015-08-30T00:00:00+00:00" }, { "id": "01a087d7-3949-73c7-9590-f33b86d412ae", "title": "Testing tornado websockets without third party clients", "url": "https://www.rohanjain.in/ws-test/", "published_at": "2015-08-22T00:00:00+00:00" }, { "id": "01a087d7-3949-73c7-9590-f33b87d3fb8f", "title": "Using pulseaudio to play system beeps", "url": "https://www.rohanjain.in/bell/", "published_at": "2015-08-20T00:00:00+00:00" }, { "id": "01a087d7-3949-73c7-9590-f33b886c3916", "title": "Switch between networks based on availability", "url": "https://www.rohanjain.in/route-to/", "published_at": "2015-08-19T00:00:00+00:00" }, { "id": "01a087d7-3949-73c7-9590-f33b88ace85e", "title": "VNC over reverse SSH", "url": "https://www.rohanjain.in/vnc/", "published_at": "2015-05-10T00:00:00+00:00" }, { "id": "01a087d7-3949-73c7-9590-f33b88ef9027", "title": "The ubiquitous shell", "url": "https://www.rohanjain.in/bash/", "published_at": "2015-03-05T00:00:00+00:00" }, { "id": "01a087d7-3949-73c7-9590-f33b89411882", "title": "Emacs: Flymake with virtualenvs in python-mode", "url": "https://www.rohanjain.in/emacs-flymake-with-virtualenvs-in-python-mode/", "published_at": "2014-01-28T00:00:00+00:00" }, { "id": "01a087d7-3949-73c7-9590-f33b89deaa73", "title": "A productive workflow with vim sessions and servers", "url": "https://www.rohanjain.in/yet-another-vim-productivity-post-server-client/", "published_at": "2012-04-15T00:00:00+00:00" }, { "id": "01a087d7-3949-73c7-9590-f33b8b25f156", "title": "Configure ssh to handle proxies and tunnels seamlessly", "url": "https://www.rohanjain.in/configure-ssh-to-handle-proxies-and-tunnels-seamlessly/", "published_at": "2011-08-27T00:00:00+00:00" } ] posts Claim your blog
Back to rohanjain.in
Blog · corpus.blog/blogs/rohanjain.in/posts

rohanjain.in

rohanjain.in

2025

2021

2020

2017

2016

2015

2014

2012

2011