Skip to content

Instantly share code, notes, and snippets.

View feifangit's full-sized avatar

Fan Fei feifangit

  • PANW
  • Santa Clara , CA
View GitHub Profile
@feifangit
feifangit / restart_heroku.py
Last active December 31, 2015 16:39
restart heroku apps
import heroku
HEROKU_TOKEN = "xx-xx-xx" #used for instance restart
APP_NAME = "xxx"
def restart_heroku(auto=False):
'''restart heroku instance to re-allocate IP'''
cloud = heroku.from_key(HEROKU_TOKEN)
app = cloud.apps[APP_NAME]
for p in app.processes:
p.restart()
@feifangit
feifangit / hw53.js
Created October 8, 2013 07:40
MongoDB university M101P HW5.3
db.stud.aggregate([
{$match:{"scores.type":{$in:["exam","homework"]}}},
{$unwind:"$scores"},
{$group:{_id:"$class_id",csall:{$avg:"$scores.score"}}},
{$sort:{csall:-1}},
{$limit:5}
]
)
@feifangit
feifangit / hw54.js
Last active December 24, 2015 23:29
MongoDB university M101P HW5.4
db.zips.aggregate([
{$project:
{
fc: {$substr : ["$city",0,1]},
city:1,pop:1
}
},
{$match:{fc:{$lte:"9",$gte:"0"}}} ,
{
$group: {
@feifangit
feifangit / hw51.js
Created October 8, 2013 07:38
MongoDB university HW5.1
db.posts.aggregate([
{$project:{comments:1, author:1}},
{$unwind:"$comments"},
{$group:{_id:"$comments.author",commentnum:{$sum:1}}},
{$sort:{commentnum:-1}},
{$limit:2}
]);
@feifangit
feifangit / hw52.js
Created October 8, 2013 06:39
MongoDB university M101P hw5.2
db.pop.aggregate([
{$group:{_id:{state:"$state",city:"$city"}, allpop:{$sum:"$pop"}}},
{$match:{allpop:{$gt:25000},"_id.state":{$in:["CA","NY"]}}},
{$group:{_id:null, avgpop:{$avg:"$allpop"}}}
]
)
a = set([hashabledict({1:11}), hashabledict({2:22})])
b = set([hashabledict({1:11}), hashabledict({3:33})])
for i in range(3):
print "set a:", a, id(a)
copyofa = set(a)
print "shallow copy ofset a:", copyofa, id(copyofa)
delta = copyofa-b
print "delta", delta
for item in delta:
print id(item)
a = set([hashabledict({1:11}), hashabledict({2:22})])
b = set([hashabledict({1:11}), hashabledict({3:33})])
for i in range(3):
print "set a:", a
delta = a-b
print "delta", delta, id(delta)
for item in delta:
print id(item) #always same
item[1] = "xx"
print "*"*10
import copy
a = set([hashabledict({1:11}), hashabledict({2:22})])
b = set([hashabledict({1:11}), hashabledict({3:33})])
for i in range(3):
print "set a:", a
delta = a-b
print "delta", delta
for item in copy.deepcopy(delta):
print id(item)
item[1] = "xx"
@feifangit
feifangit / loggingfilters.py
Last active December 19, 2015 14:19
skip exception because of ALLOWED_HOSTS setting
### in a seperated file define the function
from django.core.exceptions import SuspiciousOperation
def skip_suspicious_exception(record):
if record.exc_info:
exc_type, exc_value = record.exc_info[:2]
if isinstance(exc_value, SuspiciousOperation):
return False
return True
### in settings.py ###
@feifangit
feifangit / package_parser.py
Created April 26, 2013 08:31
get free space
def get_free_space(folder):
""" Return folder/drive free space
"""
if platform.system() == 'Windows':
free_bytes = ctypes.c_ulonglong(0)
ctypes.windll.kernel32.GetDiskFreeSpaceExW(ctypes.c_wchar_p(folder), None, None, ctypes.pointer(free_bytes))
return free_bytes.value
else:
st = os.statvfs(folder)
return st.f_bavail * st.f_frsize