Skip to content

Instantly share code, notes, and snippets.

@eliangcs
eliangcs / httplogger.sh
Created Jul 27, 2018
A minimal netcat web server that prints everything it gets
View httplogger.sh
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 / search_github_issues_and_prs.py
Last active Nov 2, 2017
Script Filter for Alfred listing all the issues and PRs assigned to or created by you
View search_github_issues_and_prs.py
#!/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
@eliangcs
eliangcs / http-prompt-story.md
Last active Jun 3, 2020
How I created HTTP Prompt and got 5000+ stars on GitHub
View http-prompt-story.md

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 / guess_encoding.py
Created Jan 22, 2016
Guess encoding by looking at the content
View guess_encoding.py
def guess_encoding(s):
"""Guess the character encoding from a byte string."""
# Check BOM
# 0xFF, 0xFE -> UTF-16 LE
# 0xFE, 0xFF -> UTF-16 BE
# 0xEF, 0xBB, 0xBF -> UTF-8
bom = s[0:2]
if bom == '\xff\xfe':
return 'utf-16'
elif bom == '\xfe\xff':
@eliangcs
eliangcs / index.html
Last active Jan 18, 2016
Integrating sine with Monte Carlo / Metropolis algorithm
View index.html
<!DOCTYPE html>
<meta charset="utf-8">
<style>
.svg {
border: 1px solid #000;
}
.result {
color: #05c;
View index.html
<!DOCTYPE html>
<meta charset="utf-8">
<style>
.background {
fill: #e7e7e7;
}
.axis path,
.axis line {
@eliangcs
eliangcs / tornado_subprocess.py
Last active Jan 7, 2020
A minimal web server that runs shell commands, powered by Tornado and its Subprocess module
View tornado_subprocess.py
"""
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 / shortcuts.sh
Last active Jan 18, 2016
Shell shortcuts
View shortcuts.sh
# Clear local merged branches
function clearbranches(){
cur_branch=`git rev-parse --abbrev-ref HEAD`
if [[ "$cur_branch" == "master" ]]; then
git branch --merged | grep -v "\*" | xargs -n 1 git branch -d
else
echo "Not on master branch!"
fi
}
View vsql_commands.txt
See the Vertica Programmer's Guide for information on available commands.
General
\c[onnect] [DBNAME|- [USER]]
connect to new database (currently "localdev")
\cd [DIR] change the current working directory
\q quit vsql
\set [NAME [VALUE]]
set internal variable, or list all if no parameters
\timing toggle timing of commands (currently off)
@eliangcs
eliangcs / time_celery_task.py
Last active Dec 16, 2016
Log execution time for every Celery task, working on Celery 3.1.x.
View time_celery_task.py
import logging
import time
from celery import shared_task as orig_shared_task
def timeit(func):
"""A decorator used to log the function execution time."""
logger = logging.getLogger('tasks')