感想
http://d.hatena.ne.jp/suzuchu/20091128/1259421947
を読んだ感想。
基本的にこの記事には完全に同意。
suzushu氏の記事の論旨は
「キモい」という言葉は、批判を意味ではなく理解の拒否を意味するので、
そんな言葉は決して使うべきではない。
お前が気軽に使ったその言葉がどれだけ人を追い詰めるのか想像してみろよ
って言うことだと理解した。
だから、ululun氏の記事は言われた側向けで、suzushu氏の記事は言う側向け。
前者は、「キモい」と言われたぐらいでへこむなといっていて、
後者は、「キモい」っていう言葉は決して使うなと言っている。
だから、ululun氏とsuzuchu氏が、どちらが正しいかで論争すると
議論がすれ違ってしまう気がする。
それとは別に、思考停止するのもしないのも完全に個人の自由だけれども、
相手への発言に関しては、自由を濫用するべきではないと思った。( c.f., 憲法第12条)
AsciiArt.py その2
昨日のスクリプト、ソースを載せるの忘れてました。
このプログラムはutf-8のエンコーディングで保存してください。
# -*- coding: utf-8 -*- import re from zenhan import * class AsciiArt: def __init__(self, filename): self.filename = filename for line in open(filename): if line.startswith("FONTBOUNDINGBOX") == True: matcher = re.compile("FONTBOUNDINGBOX (\d+) (\d+)") self.size = int(matcher.match(line).groups()[0]) self.font = [] def int2bin(self, integer): bin = [] for i in range(4): if integer % 2 == 1: bin.append(1) else: bin.append(0) integer /= 2 bin.reverse() return bin def getFont(self, encoding): found = False bitmap = False hex2int = "0123456789abcdef" for line in open(self.filename): if line.startswith("ENCODING") == True: matcher = re.compile("ENCODING (\d+)") enc = int ( matcher.match(line).groups()[0]) if enc == encoding: found = True if bitmap and line.startswith("ENDCHAR"): break if bitmap: self.font.append( [ hex2int.index(i) for i in line[:-1]] ) if found and line.startswith("BITMAP"): bitmap = True for i in range(len(self.font)): temp = [] for j in self.font[i]: temp.extend( self.int2bin(j) ) self.font[i] = temp def __str__(self): strings = "" for i in self.font: for j in i: if j == 1: strings += str(j)+str(j) else: strings += " " strings += "\n" return strings if __name__ == "__main__": import sys import zenhan teststring = sys.argv[1].decode("utf-8") iso = [] for s in teststring.split("\x1b$B"): iso.extend(s.split("\x1b(B")) strings = [] isAscii = True for i in range(len(iso)): if isAscii: iso[i] = zenhan.h2z(iso[i]).encode("iso-2022-jp")[3:-3] isAscii = False else: isAscii = True for j in range(0, len(iso[i]), 2): strings.append( ord(iso[i][j])*256 + ord(iso[i][j+1]) ) print strings for i in strings: obj = AsciiArt("jiskan16-2000-1.bdf") obj.getFont(i) print obj
[プログラム]AsciiArt.py
久々の書き込み。
今日は、文字列をAAにするスクリプトをpythonで書いた。
本スクリプトは、コマンドライン引数で文字列を受け取る。
引数の文字列が全角半角混在でも、すべて全角に変換したうえで表示する。
半角から全角は、setomitsさんのzenhan.py (http://matatabi.homeip.net/blog/setomits/139)を、
フォントには、imamuraさんのjiskan16-2000-1.bdf(http://www12.ocn.ne.jp/~imamura/jisx0213.html)を用いた。
このフォントはISO-2022-JPのエンコーディング、かつ全角文字を仮定しているので(たぶん)、
入力された文字列を全角のISO-2022-JPに変換する必要がある。
そこで、encodeメソッドでISO-2022-JPにエンコードし、
エスケープシーケンス( ESC $ B と ESC ( B )を基準にして半角と全角を区切り、
半角部分をzenhan.pyで全角にすることで、全文字列を全角に変換した。
以下に動作例を示すが、引数はutf-8を仮定しているので、
他のエンコードの文字列を入力するときは、65行目の"utf-8"を適切なコーディングに変えればいいと思う。たぶん。
たとえばウィンドウズならsjisとか。
11 11 11 11 11 11 11 1111111111111111 11 11 1111111111 11 1111 11 11 1111 11 11 11 1111 1111 11 111111111111 11 11 11 11 11 11 11 11 11 1111 1111111111111111 1111 11 11 11 11 11 1111 1111 11 11 11 11 11 11 11 1111 11 11 11 1111 1111 1111 11 111111 11 11 11 111111 11 11 11 11 11111111 11 11 11 11 11 11 11 11 11 11 11 11 11 11 1111111111 11111111111111 11 11 11 11 11 111111 11 11 11 1111 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 111111111111111111 11 11 11 111111111111111111 1111 1111 1111 1111 11111111111111 1111 1111 1111 1111 1111 11 111111 11 11 1111 11 11 11 1111 1111 11 1111 11111111111111
大学の入学式に用意したほうが良いもの
今日、サークルのビラを配りに行ってきました。
すると、いるんですね。強引な勧誘が。
「今度サークルのイベントするから、名前と電話番号教えて」
「今度花見するから、名前と電話番号教えて」
とか。
それはねーよwww 意味分からんwww 脈絡なさ杉www
っていうかイベントするならビラに書いて渡せよとか思うんです。
新入生も明らかに引いてるし。
僕も経験あります。入学式で
「家庭教師のバイトがあるんですけど、登録だけでもしてください。
名前と電話番号教えてください。」
バイトしませんか?とかは聞かないのがポイント。全部言ってしまう、みたいな。
そのときは偽名と嘘電話番号を書きました。
一応何か書けばたいてい他の獲物を探しに行ってくれます。
面識もない人に個人情報を与える必要はないので別に断ればいいんですが、
ちょっと前まで高校生だった人に強引な勧誘を断れというのは酷かもしれません。
そこで、ぜひ入学式には 偽名と嘘電話番号、あと嘘メールアドレスを用意していくと良いと思います。
さも自分の物のように書くor話す練習も。
・・・確認されたらどうしよう。
ま、そこまでやるヤツなら本当に無視するかだれかに助けを求めるかしたらいいんじゃないでしょうか。
渋滞シミュレータ
つい最近、渋滞学って言う本を買いました。amazon:渋滞学
で、ASEPというモデルについて書かれていたので、それで車の渋滞シミュレータを書いてみました。
道路のモデルはこんな感じ。
- 道路はマス目を並べて構成する。
- 車は1マスに1台だけ入る。
- 車は常に右に進む。
車の動くルールはこんな感じ。
- 進みたいマスに車がいれば一回休み。いなければ進む。
次のように動作します。oが車のあるマス、-が車のないマスです。
渋滞が少しずつ後ろに下がっているのが分かりますね。
道路の長さ : 60 車の数の設定 (0:割合で指定する[default], 1:数を指定する) 0 割合(0.00〜1.00): 0.6 |oooooo-o-----o--ooo-o-oo-oo-o-ooooo--ooo-o--o-oo--o-ooo-ooo-| |ooooo-o-o-----o-oo-o-oo-oo-o-ooooo-o-oo-o-o--oo-o--ooo-ooo-o| |ooooo--o-o-----ooo--ooo-o-o-ooooo-o-ooo--o-o-o-o-o-ooo-ooo-o| |oooo-o--o-o----oo-o-oo-oo--ooooo-o-ooo-o--o-oo--o-ooo-ooo-oo| |oooo--o--o-o---oo--oo-oo-o-ooooo--ooo-o-o--o-oo--ooo-ooo-ooo| |ooo-o--o--o-o--o-o-o-ooo--ooooo-o-ooo--o-o--o-oo-ooo-ooo-ooo| |oo-o-o--o--o-o--o-oo-oo-o-ooooo--ooo-o--o-o--o-oooo-ooo-oooo| |o-o-o-o--o--o-o--oo-oo-o-ooooo-o-oo-o-o--o-o--ooooo-ooo-oooo| |o--o-o-o--o--o-o-oo-o-o-oooooo--oo-o-o-o--o-o-oooo-ooo-ooooo| |-o--o-o-o--o--o-oo-oo--oooooo-o-oo--o-o-o--o-oooo-ooo-oooooo| |o-o--o-o-o--o--o-ooo-o-ooooo-o-oo-o--o-o-o--ooooo-ooo-ooooo-| |-o-o--o-o-o--o--oooo--ooooo-o-ooo--o--o-o-o-oooo-ooo-oooooo-| |--o-o--o-o-o--o-ooo-o-ooooo--ooo-o--o--o-o-oooo-oooo-ooooo-o| |o--o-o--o-o-o--ooo-o-ooooo-o-ooo--o--o--o-ooooo-ooo-ooooo-o-| |-o--o-o--o-o-o-oo-o-oooooo--ooo-o--o--o--ooooo-ooo-oooooo--o| |o-o--o-o--o-o-oo-o-oooooo-o-oo-o-o--o--o-ooooo-ooo-ooooo-o--| |-o-o--o-o--o-ooo--oooooo-o-oo-o-o-o--o--ooooo-ooo-oooooo--o-| |--o-o--o-o--ooo-o-ooooo-o-ooo--o-o-o--o-oooo-ooo-oooooo-o--o| |o--o-o--o-o-ooo--oooooo--ooo-o--o-o-o--ooooo-ooo-ooooo-o-o--| |-o--o-o--o-ooo-o-ooooo-o-ooo--o--o-o-o-oooo-ooo-oooooo--o-o-| |--o--o-o--ooo-o-oooooo--ooo-o--o--o-o-oooo-oooo-ooooo-o--o-o| |o--o--o-o-oo-o-oooooo-o-oo-o-o--o--o-oooo-oooo-oooooo--o--o-| |-o--o--o-ooo--oooooo-o-oo-o-o-o--o--ooooo-ooo-oooooo-o--o--o| |o-o--o--ooo-o-ooooo-o-ooo--o-o-o--o-oooo-oooo-ooooo-o-o--o--| |-o-o--o-oo-o-ooooo-o-ooo-o--o-o-o--ooooo-ooo-oooooo--o-o--o-| |--o-o--ooo--oooooo--oooo--o--o-o-o-oooo-ooo-oooooo-o--o-o--o|
ソースはこんな感じ。
続きを読むサイト
コレまで作ったプログラムをまとめたウェブサイトを作りました。
http://zlab.sakura.ne.jp/
移転
http://mzmt.ivory.ne.jp
開発日記はここで、成果はこのサイトで書くことにしようとおもいます。
Pythonで作る経営シミュレーションゲーム
ゲーム作ってみました。
今はまってるpythonで書いた、経営シミュレーションゲームの土台(ver 0.1)です。
一応、累積販売数と人気と売り上げが相互に関係するようなモデルは簡単に作っていますが、
面白みとかそういうのは 一 切 ないです。
これで遊んで暇を潰すより、その間ボーっとしてるほうがよほど有意義だと思います。
ちなみに経済モデルというかゲーム内設定は、こんな感じです。
商品仕入れ値 15
商品売値 20
商品販売数 = log(人気)
人気の変化 = log(今まで売れた商品の数)