Skip to content

Instantly share code, notes, and snippets.

View kmmbvnr's full-sized avatar
💭
#StopPutin #StopWar

Mikhail Podgurskiy kmmbvnr

💭
#StopPutin #StopWar
View GitHub Profile
@doochik
doochik / gist:575b94b20765b028dc70
Created November 26, 2014 16:25
IE10/11 can't execute blob-js with 114688 bytes size
var text = "var a = '";
for (var i = text.length; i < 114686; i++) {
text += '1';
}
text += "';";
console.log('text size:', text.length);
var blob = new Blob([text], {type: 'text/javascript'});
var url = URL.createObjectURL(blob);
var script = document.createElement('script');
@Uninen
Uninen / dbdamnit.py
Created July 1, 2011 22:40
DbDamnit -- Automagic db configuration for Django
# -*- coding: utf-8 -*-
"""
dbdamnit.py is a management command for creating and configuring MySQL
database settings automagically for Your Django project. This code
uses convention over configuration, feel free to modify and use it
for your own projects as You like.
Happy hacking! :)
- @uninen
@dpwiz
dpwiz / utils.py
Created July 15, 2011 07:49
xls stats from db
"""More specific helpers."""
from django.conf import settings
from django.core.mail.message import EmailMessage
from datetime import date, timedelta
import os
from core.extdb import ExtDB
@Lucretiel
Lucretiel / tail_recursion.py
Last active December 15, 2015 16:59
Decorator to enable tail recursion in python.
from functools import wraps
class tail(object):
def __init__(self, *args, **kwargs):
try:
self.func = args[0]._tail_function
except AttributeError:
self.func = args[0]
self.args = args[1:]
self.kwargs = kwargs
curl -XPOST -d "source=`git config user.name`&from_address=`git config user.email`&subject=pushed to production&content=`git log --pretty=format:'%s %H' -n 1`" https://api.flowdock.com/v1/messages/team_inbox/YOUR_TOKEN_GOES_HERE
class SomeView(View):
def dispatch(self, request, *args, **kwargs):
# imports and start profiling
import cProfile, pstats, StringIO
pr = cProfile.Profile()
pr.enable()
# all logic runs here
class ExampleFormMultipleView(MultipleFormsView):
template_name = 'preferences/change_group_multiple.html'
forms = {
'profile': ProfileForm,
'avatar': AvatarForm,
'contacts': ContactsForm,
}
def forms_valid(self, forms):
for key, form in forms.items():
@kmmbvnr
kmmbvnr / bigquery.sql
Created July 21, 2016 02:59
Query pypi package download stats
SELECT details.installer.name, COUNT(*)
FROM
TABLE_DATE_RANGE(
[the-psf:pypi.downloads],
TIMESTAMP("20160601"),
TIMESTAMP("20160630")
)
WHERE file.project='django-material'
group by details.installer.name
@creotiv
creotiv / django_browser_detection_middleware.py
Created September 13, 2012 12:01
Django browser detection middleware
import re
"""
Detect browser and it's version.
Now it works only for few moct common browsers. Full list of browsers and
theire user-agent you can find here: http://www.useragentstring.com/pages/useragentstring.php
Version: 0.1
Author: Andrey Nikishaev
Site: http://creotiv.in.ua/
@kmmbvnr
kmmbvnr / tox.ini
Last active June 15, 2018 11:50
Even less painless way to launch a script without activating first its virtual environment
[tox]
envlist = py36
skipsdist = True
[testenv]
deps = django==2.0.6
commands = {posargs:./manage.py runserver}
setenv =
PYTHONPATH={toxinidir}
PATH={envdir}/bin:{env:PATH}