Skip to content

Instantly share code, notes, and snippets.

@eliangcs
eliangcs / linode-security.md
Last active January 2, 2026 14:07
Basic security setup for a brand new Linode

Basic Security Setup for a Brand New Linode

Why

When you start a clean Linode, it isn't secured in the following aspects:

  • Allows root SSH login
  • Uses password authentication on SSH
  • Doesn't have a firewall
@eliangcs
eliangcs / pyenv+virtualenv.md
Last active August 15, 2024 15:17
Cheatsheet: pyenv, virtualenvwrapper, and pip

Cheatsheet: pyenv, virtualenvwrapper, and pip

Installation (for Mac OS)

Install pyenv with brew

brew update
brew install pyenv
@eliangcs
eliangcs / ensure_json_encodable.js
Created May 17, 2023 05:25
How to ensure a value is JSON encodable (Node.js)
const assert = require('assert');
const _ = require('lodash');
const ensureJSONEncodable = (obj, path = null, visited = null) => {
if (obj === null || _.isBoolean(obj) || _.isNumber(obj) || _.isString(obj)) {
return;
}
path = path || [];
@eliangcs
eliangcs / genfile_to_s3.py
Created August 15, 2022 04:49
Generate a file dynamically and upload it to S3
import os
from io import BytesIO
import boto3
BUCKET = 'bucket-name'
def gen_int():
a = 0
@eliangcs
eliangcs / secure-django-admin.rst
Last active June 8, 2021 16:10
Secure Django admin with self-signed SSL client certificate in Nginx.
@eliangcs
eliangcs / http-prompt-story.md
Last active June 3, 2020 06:49
How I created HTTP Prompt and got 5000+ stars on GitHub

How I Created HTTP Prompt and Got 5000+ Stars on GitHub

Two months ago, I published an open source project, which went viral by gaining 1200+ stars in the first 24 hours. As of this writing, it has attracted 5000+ stars. The project is called HTTP Prompt:

https://github.com/eliangcs/http-prompt

Here I want to share its development story.

It all began with Vertica. Not long ago, I used Vertica every day for my work. Vertica is a powerful database, but the official client (vsql) is not powerful at all. The GUI alternative, DbVisualizer, is bad as well.

@eliangcs
eliangcs / tornado_subprocess.py
Last active January 7, 2020 08:48
A minimal web server that runs shell commands, powered by Tornado and its Subprocess module
"""
A minimal web server that runs shell commands, powered by Tornado and its
Subprocess module. It does non-blocking IO and streams the response.
To start the server:
$ python tornado_subprocess.py
To send a shell command using httpie:
@eliangcs
eliangcs / httplogger.sh
Created July 27, 2018 03:48
A minimal netcat web server that prints everything it gets
httplogger() {
while true; do
echo -e "HTTP/1.1 200 OK\r\n\r\nok" | nc -vl 8989
test $? -gt 128 && break
echo
echo '----------------------------------------'
done
echo
}
@eliangcs
eliangcs / postgres9.3-install.sh
Last active May 28, 2018 11:33
Install PostgreSQL 9.3 on Ubuntu 12.04 LTS
sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt/ `lsb_release -cs`-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
sudo apt-get update
sudo apt-get upgrade
# sudo apt-get install postgresql-9.3
# sudo apt-get install postgresql-client-9.3
@eliangcs
eliangcs / search_github_issues_and_prs.py
Last active November 2, 2017 10:02
Script Filter for Alfred listing all the issues and PRs assigned to or created by you
#!/Users/YOUR_USERNAME/.pyenv/versions/3.6.2/envs/alfred/bin/python
import functools
import json
import os
from datetime import datetime
from threading import Thread
import requests