Skip to content

Instantly share code, notes, and snippets.

@nakamuray
nakamuray / statefulcallbacks.py
Created October 30, 2013 12:56
state monad like feature for python, with deferred support (it's not monad at all, though)
from __future__ import print_function
import functools
import types
from twisted.internet import defer
__all__ = ['StatefulCallbacks', 'statefulCallbacks', 'returnValue']
@nakamuray
nakamuray / vcs_info-support-qqueue.patch
Created November 7, 2013 01:41
add mq's qqueue support to zsh vcs_info
--- VCS_INFO_get_data_hg.orig 2013-11-07 10:37:51.044470438 +0900
+++ VCS_INFO_get_data_hg 2013-11-07 10:38:07.448264214 +0900
@@ -6,7 +6,7 @@
setopt localoptions extendedglob NO_shwordsplit
local hgbase bmfile branchfile rebasefile dirstatefile mqseriesfile \
- mqstatusfile mqguardsfile patchdir mergedir \
+ mqstatusfile mqguardsfile patchq patchdir mergedir \
r_csetid r_lrev r_branch i_bmhash i_bmname \
revformat branchformat hgactionstring hgchanges \
@nakamuray
nakamuray / yaml2dot.py
Created November 26, 2013 04:19
YAML to dot translator
#!/usr/bin/python
# vim: fileencoding=utf-8
u'''Translate YAML written text to graphviz dot language
Input YAML text like below:
---
employee:
- name
- age
@nakamuray
nakamuray / closure-object.py
Created January 23, 2014 14:31
python で closure 使って class みたいなの作る
def ClosureObject(x):
self = dict()
self['x'] = x
def getX():
return self['x']
self['getX'] = getX
def setX(x):
from tornado.platform.asyncio import AsyncIOMainLoop
AsyncIOMainLoop().install()
import tornado.platform.twisted
tornado.platform.twisted.install()
import asyncio
from twisted.internet import reactor
@nakamuray
nakamuray / docker-attach.py
Created June 4, 2014 15:28
implement docker attach like command using twisted
# vim: fileencoding=utf-8
from __future__ import print_function
import sys
from twisted.internet import defer
from twisted.internet.protocol import Protocol
from twisted.internet.stdio import StandardIO
from docker import dockerAPI
class Base(object):
def __init__(self):
print('original')
class Klass(Base):
pass
Klass()
# vim: fileencoding=utf-8
import sys
from PyQt4 import QtGui
app = QtGui.QApplication(sys.argv)
# 代入して呼ぶと動く (ウィンドウが出る)
win = QtGui.QMainWindow()
@nakamuray
nakamuray / lock.py
Created March 3, 2015 02:57
try to create portable lock using sqlite
import sqlite3
def lock(filename, timeout=0):
db = sqlite3.connect(filename,
timeout=timeout,
isolation_level='EXCLUSIVE')
db.execute('CREATE TABLE IF NOT EXISTS lock (id INT PRIMARY KEY)')
db.execute("INSERT INTO lock VALUES (1)")
--- gnome-settings-daemon-3.16.0/plugins/power/gsd-power-manager.c.orig 2015-04-06 23:29:49.524370265 +0900
+++ gnome-settings-daemon-3.16.0/plugins/power/gsd-power-manager.c 2015-04-06 23:30:50.168580365 +0900
@@ -1009,10 +1009,7 @@
g_error_free (error);
}
- if (manager->priv->is_tablet)
- action_suspend (manager);
- else
- screen_devices_disable (manager);