ssk’s posterous

ブックマークレットでスクラップ 

News: Video Player All Time Top Ten! No. 2: TREEVENGE

Video

短編映画

Filed under  //   movie  
Posted by ssk 

Comments [0]

pythonとperlとphpとas3とjavascriptでJSON « taichino.com

python
2.6系だとJSONが標準で組み込まれてるらしいんですが、手元は2.5系なのでsimplejsonを使っています。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#!/usr/bin/python
# -*- coding: utf-8 -*-
import sys, codecs
sys.stdout = codecs.getwriter('utf_8')(sys.stdout)
 
import simplejson
 
data = { 'items':[
  {'name':'iPhone',  'price':50000},
  {'name':'macbook', 'price':100000},
  {'name':"マクド",  'price':100},
]}
text = simplejson.dumps(data)  # encode
copy = simplejson.loads(text)  # decode
 
print "data = " + str(data)
print "text = " + text
print "copy = " + str(copy)
for item in copy['items']:
  print item["name"]

Filed under  //   json   python  
Posted by ssk 

Comments [0]

arbiter's dream place in Utah: Python and MySQL technique - Render JSON ouput based on MySQLdb to MySQL

Here is the code.
import MySQLdb
import simplejson as json
db = MySQLdb.connect(host='xxx', user='xx', passwd='xx', db='xxx')
cursor = db.cursor()
def getSQLJSON(hostName,dbName,id,pw,sql):
global db,cursor
resultArray =[]
cursor.execute(sql)
tableDescription = cursor.description
result = cursor.fetchall()
for e in result:
resultRaw ={}
columnIndex =0
for ee in e:
vcoulumnName = tableDescription [columnIndex][0]
resultRaw[coulumnName]=ee
columnIndex +=1
resultArray.append(resultRaw)
jsonResult = json.dumps(resultArray, separators=(',',':'))
return jsonResult

mysql の出力を JSON 形式へ?

Filed under  //   json   mysql   python  
Posted by ssk 

Comments [0]

光画部日記[2003/08]

08/08(金) 248日のトラップ

サーバにログインしたら、[Unknown HZ value! (1) Assume 100.]なるメッセージが出現。タイミング悪く、times()を使ったプログラムで異常が見つかった。原因は、マシンの起動時間をカウントするカウンター。clock_t型(符号付き4バイト)の最大値を越えて負数になったのがトラブルの原因だった様子。

マシンのカウンタは、1/100sec毎にカウントするので、符号付き4バイトの最大値に達するのが (2^31-1)/(100*86400) = 約248日。確かに、トラブルが発生する前に稼動時間見たら251日だったから、どうやらこれが原因。

実害は多分ないだろうから放置してもよいかな。

Posted by ssk 

Comments [0]

gem install thin が loop

$ sudo gem install thin
Select which gem to install for your platform (i486-linux)
 1. thin 1.2.4 (ruby)
 2. thin 1.2.4 (x86-mswin32)
 3. thin 1.2.3 (ruby)
 4. thin 1.2.3 (x86-mswin32)
 5. Skip this gem
 6. Cancel installation
> 4
Install required dependency rack? [Yn]  y
Install required dependency thin? [Yn]  y
Select which gem to install for your platform (i486-linux)
 1. thin 1.2.4 (ruby)
 2. thin 1.2.4 (x86-mswin32)
 3. thin 1.2.3 (ruby)
 4. thin 1.2.3 (x86-mswin32)
 5. Skip this gem
 6. Cancel installation
> 1
Install required dependency rack? [Yn]  y
yInstall required dependency thin? [Yn]  y
Select which gem to install for your platform (i486-linux)
 1. thin 1.2.4 (ruby)
 2. thin 1.2.4 (x86-mswin32)
 3. thin 1.2.3 (ruby)
 4. thin 1.2.3 (x86-mswin32)
 5. Skip this gem
 6. Cancel installation
> 3
Install required dependency rack? [Yn]  y
Install required dependency thin? [Yn]  y
Select which gem to install for your platform (i486-linux)
 1. thin 1.2.4 (ruby)
 2. thin 1.2.4 (x86-mswin32)
 3. thin 1.2.3 (ruby)
 4. thin 1.2.3 (x86-mswin32)
 5. Skip this gem
 6. Cancel installation
> 6
ERROR:  While executing gem ... (Gem::RemoteInstallationCancelled)
    Installation of thin cancelled.

どうしたものか。

Posted by ssk 

Comments [0]

BLESS貼り紙全文。 on Twitpic

 
BLESS貼�����

小さなショップは生き残り大変そうです

Filed under  //   photo  
Posted by ssk 

Comments [0]

2606-36J: Amazon EBS Snapshotスクリプト

cronなんかに
0 0 * * * /path/to/snapshot.py 7 vol-00000000
という感じで登録しておく事を前提に作りました。

  1. #!/usr/bin/env python  
  2.   
  3. import sys  
  4. from boto.ec2.connection import EC2Connection  
  5.   
  6. if(len(sys.argv) != 3):  
  7.     print "Usage: snapshot.py <num> <volume-id>"  
  8.     quit()  
  9.   
  10. conn = EC2Connection('aws_access_key',' aws_secret_access_key');  
  11. conn.create_snapshot(sys.argv[2])  
  12. snapshot = {}  
  13. for x in conn.get_all_snapshots():  
  14.     if(x.volume_id == sys.argv[2]):  
  15.         tmp = {x.id:x.start_time}  
  16.         snapshot.update(tmp)  
  17. snapshot = sorted(snapshot.items(), key=lambda (k, v): (v, k), reverse=True)  
  18. for i in range(int(sys.argv[1]), len(snapshot)):  
  19.     conn.delete_snapshot(snapshot[i][0])  

amazon ec2

Filed under  //   amazonEC2   python  
Posted by ssk 

Comments [0]

2月版 OOM killerとの危険な関係に終止符は打てるか(1/2) - @IT

アプリケーションごとにチューニングする方法をはじめ、OOM killer対策の各種方法が編み出されています。そこに現れた新たな挑戦者が「mem_notify」です。

 1月24日、最初にMarcelo Tosattiが「oom notify」として書き始めたパッチに修正を加え、小崎資広さんが「mem_notify v5」パッチを提案しました。

 mem_notifyはシステム全体の空きメモリが足りなくなり、スワップが始まりそうになったタイミングで、メモリを開放するようにアプリケーションに通知するというフレームワークです。アプリケーションは/dev/mem_notifyをpollし、待ちます。

 Linux Kernelは、空きメモリ容量が少なくなり、スワップを利用しそうになった時点で、アプリケーションにメモリを開放するように通知します。/dev/mem_notify経由で通知を受けたアプリケーションは、明示的にメモリを開放してカーネルに返すため、スワップを利用しなくても済むという寸法です。結果として、OOMが発動するような状況になる前にアプリケーション側で対策が打てるようになるのです。

Filed under  //   linux  
Posted by ssk 

Comments [0]

[mmjp-users 2507] Re: ダブリ無のデフォルトは変更できますか?

> 設定の一括変更は、 > python -i /var/mailman/bin/withlist リスト名 > といった感じで時々やっているので、一括してできればやろうかなと思ったのでした。 会員のオプションは m.user_options にディクショナリとして 入っていますので、 def fix_option(m): members = m.user_options.keys() for i in members: m.user_options[i] |= 256 m.Save() m.Unlock() のようなスクリプトを作成すればよろしいかと。

引用すると改行が消えて困るなぁ

Filed under  //   mailman  
Posted by ssk 

Comments [0]

Printable Mazes for Kids

Maze

Filed under  //   Scribd  
Posted by ssk 

Comments [0]