Skip to content

Instantly share code, notes, and snippets.

View vgarvardt's full-sized avatar

Vladimir Garvardt vgarvardt

View GitHub Profile
@vgarvardt
vgarvardt / gist:1670947
Created January 24, 2012 16:22
Tornado session decorator
# -*- coding:utf-8 -*-
import os
import functools
import pprint
import base64
import json
from datetime import datetime
from tornado import gen
@vgarvardt
vgarvardt / gist:2923952
Created June 13, 2012 13:07
Tornado logging formatter
import logging
from tornado.options import enable_pretty_logging
enable_pretty_logging()
logger = logging.getLogger()
logger.setLevel(logging.DEBUG)
@vgarvardt
vgarvardt / copy_sqlite_db.py
Created August 6, 2012 09:49
Copy tables structure and data from one sqlite database file to another
#!/usr/bin/env python
import os
import argparse
import sqlite3
import logging
try:
# tornado is bundled with pretty formatter - try using it
from tornado.options import enable_pretty_logging
enable_pretty_logging()

Nginx+gunicorn

Схема работы в данном случае такая:

  1. Nginx является frontend-ом, и браузеры общаются именно с ним. Мультидоменной конфигурацией рулит именно Nginx. Приняв запрос он решает какому backend-у его пробросить.
  2. Gunicorn - это WSGI веб-сервер. Каждый django-проект запускается на отдельном инстансе гуникорна. Именно ему будут приходить запросы от nginx-а
  3. Чтобы Gunicorn неожиданно не упал, а точнее, чтобы поднялся, если неожиданно упадет, запускать его будем с помощью supervisor. Вообще, есть несколько вариантов, но пока разберем только этот.
@vgarvardt
vgarvardt / img.py
Last active December 11, 2015 02:29 — forked from bobuk/img.py
#!/usr/bin/env python
# -*- coding: utf-8 -*-
#
# Video of original screencast: https://vimeo.com/57296525
#
# Modified by Vladimir Garvardt
#
from __future__ import print_function
import os
AddHandler wsgi-script .wsgi
RewriteEngine on
RewriteBase /
RewriteRule ^(media/.*)$ - [L]
RewriteRule ^(static/.*)$ - [L]
RewriteCond %{REQUEST_URI} !(django.wsgi)
RewriteRule ^(.*)$ django.wsgi/$1 [L]
#!/usr/bin/python
venv = '/PATH_TO_ENVIRONMENT/bin/activate_this.py'
execfile(venv, dict(__file__=venv))
import locale
locale.setlocale(locale.LC_ALL, 'ru_RU.utf8')
import sys
import os
@vgarvardt
vgarvardt / gist:8889652
Last active August 29, 2015 13:56 — forked from ericallam/gist:1019446
How to log all queries for a PostgreSQL homebrew install on OS X

Open the postgresql.conf config file:

$> mate /usr/local/var/postgres/postgresql.conf

Uncomment the line with 'log_destination' and set it to 'syslog'

log_destination = 'syslog'

Open the syslog config:

@vgarvardt
vgarvardt / crawler.go
Last active August 29, 2015 14:03
Simple crawler in Go
// originally found @ http://venkat.io/posts/concurrent-crawling/
package main
//The builtins are limited. Making a lot of imports necessary
import ("sync"
"net/http"
"regexp"
"io/ioutil"
"os"
"bytes"
@vgarvardt
vgarvardt / fabfile.py
Created October 16, 2014 12:19
Fabric task to display currently installed packages and latest versions from pypi
# -*- coding:utf-8 -*-
import pip
import xmlrpclib
from fabric.api import task
@task
def pipversions():
"""
Check installed packeges updates on pypi