現在地

ブログ

河童のクウと夏休み

作成者:mattz 作成日:2008/05/27(火) 20:35

僕は河童は居た、あるいは居る、と思ってます。でなきゃ日本中に河童や河童に類する物の怪に関する伝承がある理由が説明できない。日本中どころか 似たような話は海外にもあるそうですから、絶対河童は居たはずです。水木しげるも荒俣宏もそう言ってる[要出典]。

まぁ、それはともかく「河童のクゥと夏休み」です。昨年のロードショーの時に観てますが 、なかなかの秀作です。買えとは申しません(買っても損はしないと思いますけど)が、レンタルででも一度観てみてください。かなり涙腺を刺激しますよ。まぁそういうの嫌いな人もいるでしょうけど。

有名な話ですから今更ここに書くこともないでしょうが、この作品を監督した原恵一という人は、「クレヨンしんちゃん」の映画版なんかもいくつか手 がけている人です。「クレヨンしんちゃん」のしんちゃん、誤解している人も多いですが、映画だけでなくTVアニメの方でも実にいい子なんですよ。いたずらしたり粗相したりはしますけど、なんだかんだ言いながら家族は大事にしてますしね。

だいぶ話がそれました。ともかく、「河童のクゥ」は秀作です。内容だの受賞歴だのは、リンク先をご覧下さい。なお映像ソフトとしてはご紹介した「 ぬいぐるみ同梱版」の他にコレクターズBOX【通常版】てのがございます。よろしければどうぞ。

PEACE MAKER (1)を購入した

作成者:mattz 作成日:2008/05/26(月) 11:53

まったく内容を知らないまま、作:皆川亮二というだけでのブランド買い。

ガンマンとしては天才だけど、それ以外はちょっと抜けたところがあり、生活能力の希薄そうなホープ・エマーソンという名の主人公、こう言ってはなんだがほぼD-LIVE!!の斑鳩悟。そういや亡き父も天才ってところも一緒だな。(敵役も含めた)キャラクタ、ストーリーや設定にも大きな驚きは感じないが、アクションシーンのカッコよさは健在。

驚きは感じないと言いましたが、魅力がないわけでは決してなく、今後の展開には大いに期待できそうです。

やっと2回目行けました、BPUMP

作成者:mattz 作成日:2008/05/25(日) 23:00

なかなか2回目が行けないままに、3ヶ月近く経ってしまいました。久しぶりですし、大して 上達とかしてませんけど、楽しく遊んできました。

でも指が痛い。プログラマ向きのスポーツじゃないかもしれない。いや、走ったりするような激しいものじゃないし結構頭も使いますので、向いてるっ ちゃ向いてるんですが、如何せん指にダメージが残る。今も打ちにくいったらありゃしない。

2ログビューア(7)-そろそろちゃんとした形にする、その前に

作成者:mattz 作成日:2008/05/23(金) 18:59

ちょっとずつ形にするべくコードは書いているのだが、今のところ断片的なものしかできていないので、今回はコードを晒すんじゃなくていくつかメモ を。

リスト
perlでいうarray。
配列に順にアクセスするには
for attr in list:
  print attr
添え字
first_attr = list[0]
辞書(dictionary)
いわゆる連想配列
キーと値をセットで取り出して処理するには
for k, v in dict.iteritems():
  print "%s = %s" % ( k, v )
キーから値を取得
value = dict['key']
printf的なもの
pythonでなんていうのかは知らないけど。要するに
print "%s = %s" % ( k, v )

他にもやり方は色々あるようだけど、とりあえずはこれで。+で繋ぐよりはスマートだし。

正規表現
なんつーか、perlやphpと随分と作法が違うのでとっつきにくく感じるが、さっさと慣れてしまおう。
正規表現 HOWTO
osモジュール
環境変数の取得はos.getenv(key)ってな感じで。

sshでログインした時のpromptを変更する

作成者:mattz 作成日:2008/05/23(金) 16:01

さくらインターネットさんは、スタンダードプラン以上だとsshログインも可能になるんですが、デフォルトのpromptが

%

なので、見づらかった。ので「プロンプト表示の変更」を参考にして~/.cshrcに以下の記述を追加した。

$vi ~/.cshrc

if ($?prompt) thenの後に

set prompt = "[$USER@`hostname -s` %/]$ "

保存して↓を実行。

$source ~/.cshrc

実行後のprompt表示。

[mattz@www1486 /home/mattz/www/w]$

非常に見易くなった。

2ログビューア(6)-Class化の続き

作成者:mattz 作成日:2008/05/23(金) 02:12

続き

poptotype3.pyの中身

#!/usr/bin/env python
# -*- coding: utf-8 -*-
'''
read.cgi
'''
import sys
sys.path.append('/home/mattz/lib/python')
from read2ch import read2ch

import codecs
fout = codecs.getwriter('shift_jisx0213')(sys.stdout)

thread = read2ch( 'handygame', '1211373877' )
title  = thread.getThreadTitle()
count  = thread.getResCount()

print 'Content-Type: text/html;charset;Shift_JIS'
print
fout.write('''<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html lang="ja">
<head>
<meta http-equiv="Content-Type" content='text/html; charset="Shift_JIS"'>
<title>%s</title>
</head>
<body><h1>%s</h1><dl>
%s
</dl></body></html>
''' % (title, title, thread.getFormatedReses( range(count))))

んでもって、read2ch.pyの中身

#!/usr/bin/env python
# -*- coding: utf-8 -*-
'''
2ちゃんねるの.datファイルを扱うクラス
  0.0.1 prototype版
'''
import codecs,re
line_end_br = re.compile( '((<br>)?\s*)+$' )
normal_br   = re.compile( '\s*<br>' )
'''
1行分のログとレス番号からdt要素とdd要素を生成する
  TODO:
    本文中のURLと思われる文字列をリンクする処理
    アンカーと思われる文字列に対する処理
    IDの有無/強制/任意などの対応
    日付関係の処理
'''
def formatRes( rstr, rnum ):
        ar = re.split( '<>', rstr )
        resFormat  = u"<dt id='t-%d'>%d : 名前:%s %s</dt><dd id='d-%d'>%s<br><br></dd>\n"
        name = '<b>%s</b>' % ( ar[0] )
        if ar[1]:
                name = '<a href="mailto:%s">%s</a>' % ( ar[1], name )

        return resFormat % ( rnum, rnum, name, ar[2], rnum, normal_br.sub( '<br>', line_end_br.sub( "", ar[3])) )

class read2ch:
        base_dir = '/home/mattz/data/2channel/'
        resAll   = []

        def __init__( self, board, thread ):
                self.board  = board
                self.thread = thread
                self.dat    = "%s%s/%s.dat" % ( self.base_dir, board, thread )
                self.idx    = "%s%s/%s.idx" % ( self.base_dir, board, thread )
                fres = codecs.open( self.dat, 'r', 'shift_jisx0213', 'strict' )
                for line in fres:
                        self.resAll.append( line )
                fres.close()
                fres = codecs.open( self.idx, 'r', 'shift_jisx0213', 'strict' )
                lines = re.split( '', fres.readline() );
                self.title     = lines[0]
                self.standDate = lines[4]
                self.resCount  = lines[5]
                fres.close()
        def getDataFilename( self ):
                return self.dat

        def getThreadTitle( self ):
                return self.title

        def getFormatedReses( self, num ):
                ret = ''
                for n in num:
                        ret += formatRes( self.resAll[n], n + 1 )
                return ret

        def getResCount( self ):
                return int( self.resCount )

細かい中身のことは書かない。

build 10005が非常に重い件

作成者:mattz 作成日:2008/05/22(木) 22:22

メモリの余裕があり、非proxy環境で、メールがIMAP4な自宅環境では非常に軽快。しかしながら、メモリ半分、proxy接続、メールはPOP3というオフィス環境に来ると、頻繁にプチフリーズする。もっとも、Operaに限った話ではなくて、マイコンピュータのアイコンをダブルクリックして、Explorerが開くま でに10秒近くかかると言う、微妙なPC環境であり、基本的にメモリが足りないのは明白なのだが、にしても、ちょっと困る。

POP3サーバに問合せに行っているとき、Opera linkにSyncしに行っているとき、イントラなサーバのRSSフィードを取りに行っているとき。それぞれにOperaが固まる。結構泣ける。仕方がないのでメールとSyncは手動でやっているのだが、なんだかなぁ。

2ログビューア(5)-Class化する

作成者:mattz 作成日:2008/05/22(木) 21:35

いきなり級が上がる感じがするが、一応僕もperlやphpはそれなりにやってきてるし、今更分岐だループだを細かく勉強する必要もないので、これまでに書いたコードを元に、ログビューア関係のロジックをClass化してしまう作戦。

まずは「さくらのレンタルサーバ」で Python 外部モジュールを使う 改訂版 の記述を元に、ここまで書く。

#!/usr/bin/env python
# -*- coding: utf-8 -*-
'''
read.cgi
'''
import sys,codecs
sys.path.append('/home/mattz/lib/python')
from read2ch import read2ch

それとは別に/home/mattz/lib/python/read2ch.pyというファイルを用意。

#!/usr/bin/env python
# -*- coding: utf-8 -*-
'''
2ちゃんねるの.datファイルを扱うクラス
'''
class read2ch:

ホントは中身の方も結構書いてあって、スレ固定だし、htmlの体も為してなくて、かつ付加機能も一切ないけど、一応表示だけできるようになってる。と言ってもそんな簡単でもなかったので、その辺のことをこの後のエントリに書いていきます。今日のところはこの辺で。

ページ