Skip to content

Instantly share code, notes, and snippets.

View saippuakauppias's full-sized avatar
🤔
/dev/random

Denis Veselov saippuakauppias

🤔
/dev/random
View GitHub Profile
@saippuakauppias
saippuakauppias / gist:1567534
Created January 5, 2012 21:54
Arduino door opener
// Библиотеки для работы с дисплеем
#include <LiquidCrystal.h>
#include <LiquidCrystalRus.h>
// Цифровые PINы - кнопки
const int button1 = 10;
const int button2 = 9;
const int button3 = 8;
const int button4 = 7;
const int button5 = 6;
@saippuakauppias
saippuakauppias / install.sh
Last active September 30, 2015 00:48 — forked from nyumatova/install.sh
Virtualenv
sudo apt-get -y install git
sudo apt-get -y install curl
sudo apt-get -y install python-dev
sudo apt-get -y install libjpeg8-dev
sudo apt-get -y install libfreetype6-dev
curl http://python-distribute.org/distribute_setup.py | sudo python
curl https://raw.github.com/pypa/pip/master/contrib/get-pip.py | sudo python
sudo pip install virtualenv
@saippuakauppias
saippuakauppias / gist:3430432
Last active December 28, 2021 02:51
git shortcuts + zshrc
function git_current_branch () {
local ref
ref="$(git symbolic-ref --quiet HEAD 2>/dev/null)"
local ret=$?
if [[ $ret != 0 ]]
then
[[ $ret == 128 ]] && return 0
ref=$(git rev-parse --short HEAD 2>/dev/null) || return 0
fi
echo "${ref#refs/heads/}"
@saippuakauppias
saippuakauppias / gist:3482573
Created August 26, 2012 18:55
My Sublime Text 2 User Preferences
{
"color_scheme": "Packages/Color Scheme - Default/Sunburst.tmTheme",
"font_size": 12.0,
"translate_tabs_to_spaces": true,
"trim_trailing_white_space_on_save": true,
"highlight_line": true,
"draw_white_space": "all",
"ensure_newline_at_eof_on_save": true,
"fallback_encoding": "Cyrillic (Windows 1251)",
"highlight_modified_tabs": true,
@saippuakauppias
saippuakauppias / social_counts.js
Last active September 22, 2021 12:41
Get shares counts from social networks
$(document).ready(function() {
var location = document.location.href;
// fb
$.getJSON(
"http://graph.facebook.com/" + location + "&callback=?",
function(data) {
if(data.shares == undefined) {fb_shares = 0} else {fb_shares = data.shares}
$("#fb_soc_counter").html(fb_shares);
}

Nginx+gunicorn

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

  1. Nginx является frontend-ом, и браузеры общаются именно с ним. Мультидоменной конфигурацией рулит именно Nginx. Приняв запрос он решает какому backend-у его пробросить.
  2. Gunicorn - это WSGI веб-сервер. Каждый django-проект запускается на отдельном инстансе гуникорна. Именно ему будут приходить запросы от nginx-а
  3. Чтобы Gunicorn неожиданно не упал, а точнее, чтобы поднялся, если неожиданно упадет, запускать его будем с помощью supervisor. Вообще, есть несколько вариантов, но пока разберем только этот.
$ mktmpenv && pip install Django==1.4.3 Lemon==0.7.3 South==0.7.6 lemon-dashboard==0.1 && git clone git://github.com/trilan/lemon.git && cd lemon/ && git checkout 0.7.3 && cd test_project && echo "INSTALLED_APPS = ['dashboard'] + list(INSTALLED_APPS)" >> project/settings.py && echo "DASHBOARD_CONFIG = {'STATE': (('dashboard.appswidget',), ('dashboard.logwidget',),),}" >> project/settings.py && python manage.py syncdb --migrate && python manage.py runserver
@saippuakauppias
saippuakauppias / gist:4714695
Last active August 24, 2019 04:35
javascript vkontakte api wall post: постинг на стену к текущему пользователю на JS vk API. С помощью этого кода так же можно отправлять записи на стены групп, пользователей и публичных страниц (пабликов). Используется в iframe приложениях вконтакте.
/*
* message - сообщение, которое будет опубликовано
* image - картинка для постинга
* user_id - id текущего пользователя (к нему будет осуществлён постинг)
*/
function wallPost(message, image, user_id) {
VK.api('photos.getWallUploadServer', {
uid: user_id
}, function (data) {
if (data.response) {
@saippuakauppias
saippuakauppias / models.py
Created February 11, 2013 17:32
Django: denormalization in models vs. raw sql
from django.db import models
from django.db.models import signals
from django.utils.translation import ugettext_lazy as _
from .signals import update_thumbnail_image
class Gallery(models.Model):
title = models.CharField(_('title'), max_length=50)
@saippuakauppias
saippuakauppias / find_zyxel_nas.py
Created September 15, 2013 15:44 — forked from oxitnik/find_zyxel_nas.py
ZyXEL NSA325
import socket
host = ''
port = 50127
data = '\x00\x42\x02\x01\x40\x61\x86\xff\xbb\x97\x00\x14\xa9\xfe\x54\xb5\xff\xff\x00\x00'
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
s.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)
s.bind((host, port))