Skip to content

Instantly share code, notes, and snippets.

@bholagabbar
bholagabbar / .pylintrc
Created June 12, 2020 17:05
Pylint configuration, sort of for pep8
[MASTER]
# A comma-separated list of package or module names from where C extensions may
# be loaded. Extensions are loading into the active Python interpreter and may
# run arbitrary code.
extension-pkg-whitelist=
# Add files or directories to the blacklist. They should be base names, not
# paths.
ignore=CVS
@bholagabbar
bholagabbar / klaytn.sh
Created July 14, 2022 12:32
Start a klaytn RPC
wget https://packages.klaytn.net/klaytn/v1.8.4/ken-v1.8.4-0-linux-amd64.tar.gz
tar zxf ken-v1.8.4-0-linux-amd64.tar.gz
export PATH=$PATH:/home/ec2-user/ken-linux-amd64/bin/
mkdir /home/ec2-user/ken-linux-amd64/data
sed -i.bak 's/^\(DATA_DIR=\).*/\1\/home\/ec2-user\/ken-linux-amd64\/data/' ken-linux-amd64/conf/kend.conf
cd /home/ec2-user/ken-linux-amd64
wget https://s3.ap-northeast-2.amazonaws.com/klaytn-chaindata/cypress/klaytn-cypress-chaindata-20220713010714.tar.gz
tar -C data/ -xf klaytn-cypress-chaindata-20220713010714.tar.gz
kend start
@bholagabbar
bholagabbar / docker-on-ubuntu-22-04.md
Created September 9, 2023 15:25
Install Docker and docker-compose on Ubuntu 22.04

Install Docker on Ubuntu 22.04:

  1. Update Software Repositories

    sudo apt update
  2. Install dependencies required to set up Docker's repository:

sudo apt install apt-transport-https ca-certificates curl software-properties-common

@bholagabbar
bholagabbar / nginx-basic-auth.md
Created September 9, 2023 15:52
Nginx Basic Auth

1. Install Nginx

If you haven't installed Nginx already, do so with:

sudo apt update
sudo apt install nginx

2. Setup Basic Authentication

@bholagabbar
bholagabbar / openrouter-client-readme.md
Last active April 28, 2025 12:19
openrouter.ts — stupid simple client for strict JSON output, fallback, and routing pricing control

openrouter.ts

Built a one-file OpenRouter client — figured I'd open-source it.

We deal with a lot of dynamic structured data, where different LLM calls have different priorities — sometimes speed, sometimes latency, sometimes cost. After a year of using OpenRouter heavily in production, I ran into plenty of real-world issues — bad providers, unreliable fallbacks, weird edge cases — so I baked all of that into this. We needed strong guarantees on output and simple, reliable handling around it. Also worth mentioning: OpenAI (and by extension OpenRouter) have their own quirks when dealing with Zod-based structured outputs — plenty of edge cases there too.

The primary motivations: