Skip to content

Instantly share code, notes, and snippets.

@nobonobo
nobonobo / ringGen.py
Created January 11, 2012 01:39
AT620用 リングトーンファイルジェネレータ
#!/usr/bin/python
# encoding: utf-8
import sys
import os
import struct
import sunau
import wave
from StringIO import StringIO
@nobonobo
nobonobo / tone_detection.py
Created March 23, 2012 01:08
トーン検出してあそんでみた。
# encoding: utf-8
import sys
import time
import shlex
from subprocess import Popen, PIPE
import atexit
import wave
from numpy import *
@nobonobo
nobonobo / subproc_pipe.py
Created March 29, 2012 08:34
nonblocking pipe for subprocess
#!/usr/bin/env python
# encoding: utf-8
import sys
import os
import fcntl
import shlex
from time import sleep
from subprocess import Popen, PIPE
@nobonobo
nobonobo / gist:2316321
Created April 6, 2012 02:52
シリアライザの比較
ダンプ
>>> timeit.timeit('ujson.dumps(data)', setup='import ujson;'+setup, number=10)
0.05042099952697754
>>> timeit.timeit('cPickle.dumps(data)', setup='import cPickle;'+setup, number=10)
0.2684299945831299
>>> timeit.timeit('json.dumps(data)', setup='import json;'+setup, number=10)
0.10378503799438477
パース
>>> timeit.timeit('ujson.loads(text)', setup='import ujson;'+setup+';text=ujson.dumps(data)', number=10)
@nobonobo
nobonobo / gist:2879059
Created June 6, 2012 00:21
MacからSO-03Cをセルスタンバイ状態を解除する方法
# MacでAndroidSDK、p7zipのインストールをしておきます。
# ターゲットのSO-03Cは予めICSインストール、root取得、CWM-Installしておきます。
参考:
- ICS化&root取得: http://arkdroid.info/024/
- CWM-Install: https://play.google.com/store/apps/details?id=com.pvy.CWMinstaler
- 下記手順の基礎: http://blog.mapoyon.info/archives/106
CWMの使い方は、sonyロゴが明るくなるあたりでVolUPキーを連打
backup&restoreでSDカードにバックアップしたりレストアしたり出来る。
@nobonobo
nobonobo / checkloc.py
Created August 3, 2012 00:03
「「wi-fi の情報をつかって位置情報を得る」をPythonでやってみた」をOSX対応にした。
import sys
from subprocess import Popen, PIPE
import json
import requests
if sys.platform=='linux':
iwlist = Popen('iwlist wlan0 scan'.split(), stdout=PIPE)
grep = Popen('grep Address:'.split(),
stdin=iwlist.stdout, stdout=PIPE)
awk = Popen(['awk', '{print $5}'],
@nobonobo
nobonobo / gist:3547854
Created August 31, 2012 02:07
wxPythonでImageを2値化ストリームに変換する方法
from itertools import imap, islice, izip
def make_binstream(img):
def _bytestream(dt):
stream = izip(islice(dt,0,None,3), islice(dt,1,None,3), islice(dt,2,None,3))
while 1:
# bits: 8コのboolアレイ
bits = [stream.next()==('\x00','\x00','\x00') for i in range(8)]
yield chr(reduce(lambda a,b: (a<<1) + b, bits)) # bitsを1バイトに変換
dt = img.ConvertToMono(255,255,255).GetData()
@nobonobo
nobonobo / gist:3937729
Created October 23, 2012 08:53
Flattener from Nested Dict to 1d-dict
def flat(d):
res = []
for k,v in d.items():
if isinstance(v, dict):
res.extend([('.'.join([k,ck]), cv) for ck, cv in flat(v).items()])
else:
res.append((k,v))
return dict(res)
@nobonobo
nobonobo / singleproc.py
Created November 21, 2012 04:03
多重起動禁止処理 for Windows
import sys
import win32api
import win32security
import win32event
import win32gui
sa = win32security.SECURITY_ATTRIBUTES()
sa.SECURITY_DESCRIPTOR.SetSecurityDescriptorDacl(True, None, False)
# saを指定しておかないと別のユーザで起動したときにMutexが衝突しなくなる
mutex = win32event.CreateMutex(sa, False, 'unique-string...')
err = win32api.GetLastError()
@nobonobo
nobonobo / Makefile
Last active December 11, 2015 18:18
複数パッケージを寄せ集めてビルドチェイン組むサンプルをつくった。 pkg2をビルドしようとするとpkg1が先にビルドされてからpkg2のビルドが始まる。
BUILD_DIR=./build
DIST_DIR=./dist
define PullProc
$(BUILD_DIR)/$1:
@echo Pull: $(NAME)
mkdir -p $(BUILD_DIR)/$1
cd $(BUILD_DIR); #git clone $(URL)
endef