Skip to content

Instantly share code, notes, and snippets.

View kaidokert's full-sized avatar

Kaido Kert kaidokert

View GitHub Profile
@kaidokert
kaidokert / demo.js
Created January 13, 2016 06:36
Easily make Node http requests with built in http and Promises module
var http = require('http');
function make_request(options, payload) {
return new Promise(function(resolve,reject) {
if(payload) options.method = 'POST'; else options.method = 'GET';
var request = http.request(options,function(response) {
var str = '';
response.on('error', function() { reject('Error'); } )
response.on('data', function (chunk) { str += chunk; })
response.on('end', function () { resolve(JSON.parse(str));})
@kaidokert
kaidokert / salt_repo.sls
Created January 25, 2016 06:41
Salt minion install from official repos, migrating from PPA
{% set ver_str = [grains.os|lower,grains.osrelease,grains.osarch]|join('/') %}
{% set release = latest %} {# currently 2015.8 #}
{% set release = 2015.5 %}
salt_repo:
pkgrepo.managed:
- humanname: salt-repo
- name: "deb http://repo.saltstack.com/apt/{{ ver_str }}/{{ release }} {{ grains.oscodename }} main"
- file: /etc/apt/sources.list.d/salt.list
- keyid: DE57BFBE
import urlparse
import argparse
import psycopg2
class Bunch:
def __init__(self, **kwds):
self.__dict__.update(kwds)
# pip install retryz backoff
from __future__ import print_function
import random
import retryz
import backoff
def naughty_func():
picky = random.randint(1, 3)
@kaidokert
kaidokert / staticapp.py
Last active July 14, 2016 16:08
Low fuss bottle app to serve static
import os
import sys
import bottle
bottle.debug(True)
static_root = os.path.abspath(os.path.dirname(__file__))
@bottle.route('/')
@kaidokert
kaidokert / beartype.py
Created July 22, 2016 04:57 — forked from leycec/beartype.py
`@beartype` Decorator and Unit Test Suite Thereof
#!/usr/bin/env python3
'''
`@beartype` decorator, implementing a rudimentary subset of PEP 484-style type
checking based on Python 3.x function annotations.
See Also
----------
https://stackoverflow.com/a/37961120/2809027
Stackoverflow answer introducing the `@beartype` decorator.
@kaidokert
kaidokert / celery_slow_query.py
Last active November 24, 2016 17:29
Django hooks to log slow database queries from celery tasks
import logging
from django.db import connection
from django.conf import settings
from celery.signals import task_prerun, task_postrun
from time import time
@task_prerun.connect()
@kaidokert
kaidokert / lambda_script.py
Created November 29, 2017 03:15
Simple AWS Lambda script that self-installs dependencies
import json
import logging
import pip
import site
# installed by lambda env
# import six
# import boto3
# from dateutil.easter import *
@kaidokert
kaidokert / angular-bootstrap.html
Last active January 1, 2018 22:59
Minimal standalone bootstrap/angular page
<!DOCTYPE html>
<html lang="en" xmlns="http://www.w3.org/1999/html">
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Title</title>
<link href="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet">
</head>
<body class="" style="" xmlns:ng="http://angularjs.org" ng-app="fooApp" ng-strict-di>
@kaidokert
kaidokert / re_snippet.py
Last active April 29, 2018 19:39
Tracing excessive callers to re.compile in re.py
callers = {}
def _ghetto_compile(pattern, flags=0):
import inspect
try:
frame = '{}'.format(inspect.currentframe().f_back.f_code)
val = callers.setdefault(frame,0)
callers[frame] = val + 1
# print(frame)
if 'rest_framework.py' in frame: