library

愛知県図書館

に行った。
「わたしはあなたに会ったことがある、覚えてる?図書館のこと。」
は全然関係無い。

どうでもいいけど library って翻訳すると図書館なんだね。

とにかくデカッ!
小牧岩倉のと規模が全然チゲェ!
しかも超綺麗、あの独特な学校臭さは皆無。
名古屋市内だけあって人も多い、寝ている人も多いのはどこも同じ。

ぐるりと回ってみる。
巨大スペースを生かした配置が上手いのか読んでみたい本がいくつも見つかる。
つか棚が多すぎて全部を見きるなんて無理。

これらが読み放題、ソファーに座って読んでも怒られない。
しかも無料どころか借りて持ち帰りさえできるんだから恐ろしい。
こんな場所はもっと活用しなければもったいないとさえ思ってしまう。

机のある閲覧席が山ほどある、席は埋まっていたけど。
NTT の無線 LAN が使えるみたい、席は埋まっていたけど。
全国の新聞まで揃っている、私には関係無いけど。
5階のスガキヤで飯も食える、外の喫煙所近辺に自販機は無いけど。
駐車場が小さい、こりゃ原付か電車しかないな。

でも本をじっくり読んでいると眠くなるのよね。
やはりミニノートを持ち込んでアレコレしながら活用したくなる。
あと近場に軽食屋が見当たらなかった。

プログラミングや Linux の本が少々古めとはいえ沢山あるなんて冗談みたい。
この手の本は覚えたら終わりなことが多いからレンタルできれば嬉しいわけで。
これはネタ切れで止まっている臭い Blog をなんとかでき…ゲフンゲフン。
思わず貸出カードを作ってしまった、遠いけど三週間借りられるし…

最後に。
貸出カードが作れずに困っているメガネの女の子はいませんでした。

text in liststore

そろそろ Y901x に機能追加をしようと先日より少しづつ弄くっております。
作った本人以外に使っている人がいないかもしれないがイイじゃないか。
少なくとも作っている本人は使っているんだから。

とりあえずファイルリストを Y901 と同様な下に位置変更できるようにしたい。
変更方法は Y901 と同じリストの右クリックメニューと Ctrl+F12 でいいだろう。
ということでリストに右クリックメニューを付けて上手く動くか実験中。
位置変更は空の GtkBox を配置してパレント変更するだけなので難しくないと思う。

そういえば現行では辞書で保持している設定を __slots__ 付き class に変更したい。
そうしておいたほうが後々の変更で凡ミスを防げる確率が高くなるはず。

self.setting = {"mimes": mimes,
                "position": False,
                "init_size_on": False,
                "init_size_val": 0,
                "esc_exit": False,
                "mem_rep": False,
                "mem_aspect": False,
                "loop": False,
                "severity": 25,
                "aspect_rate": [1,1],
                "set_size": [[320,240],[640,480],[1280,720]]}

# ↓

class CSetting(object):
    __slots__ = [
            "mimes", "position", "init_size_on", "init_size_val", "esc_exit",
            "mem_rep", "mem_aspect", "endressloop", "severity", "aspect_rate",
            "set_size"]
    def __init__(self):
        self.mimes = MIMES
        self.position = False
        self.init_size_on = False
        self.init_size_val = 0
        self.esc_exit = False
        self.mem_rep = False
        self.mem_aspect = False
        self.endressloop = False
        self.severity = 25
        self.aspect_rate = [1,1]
        self.set_size = [[320,240],[640,480],[1280,720]]

定数扱いなのに小文字だった mimes とかはキチンと大文字に変えて…
loop とか自分でもドレに相当するか解りにくい変数名は解りやすく変えて…
今になって見ると我ながら初心者丸出しで切ないよ。

setting[

で検索して地味に手書きで書き換えたけどドットを忘れるとかで間違えまくる。
ドット忘れだと動的言語は新規変数と扱ってしまうから間違いを見つけるのが大変。
問題なく動いている所をわざわざ書き換えてバグを作っているような気がするわな。

ところでリスト中にファイル名が存在するかを調べるのに

class CListBox(gtk.HBox):
    def __init__(self, window):
        self.sw = gtk.ScrolledWindow()
        self.view = gtk.TreeView()
        self.sw.add(self.view)
        self.liststore = gtk.ListStore(str)
        self.view.set_model(self.liststore)
        # etc...

    def is_text(self, text):
        # text in ListStore ?
        model = self.view.get_model()
        it = model.get_iter_first()
        while it:
            if model.get_value(it, 0) == text:
                return True
            it = model.iter_next(it)
        return False

こんな is_text というメソッドを作っていたのですが

def is_text(self, text):
    return text in [ r[0] for r in self.liststore ]

コレだけでイケたのね…
PyGtk って知れば知るほど親切な仕様だ。

とにかく書き換え箇所が多いので当面は自分でバグ探しになりそう。
ということでいつものようにバックアップ。
y901x-0.3.2b1.tar.gz

Ramen Timer for bash

時間を見つけては地味にシェルスクリプトの覚書に書きたししています。
ところで echo を man にてオプションを見てみると

-n で改行動作を行わない
-e でバックスラッシュによるエスケープ

ができるのか、単純に文字列そのままを stdout に出力するだけと勘違いしていた。

$ echo -e "きもー\tい\nあっちいけ\tてか死ね"
きもー い
あっちいけ   てか死ね
$

知ったからには何か作ってみないと気が済まない。
知って、積極的に書き出して、だけど何も作れない人、なんてマジで価値ゼロだもの。

#!/bin/bash

for i in {180..0}
do
    echo -e -n "$i  \r"
    sleep 1
done
echo timer_end

以上カップラーメンタイマーw

bash はこう書けば Python の range(整数) と同様に扱えるのね。
Ubuntu では bash 指定でないと dash になってしまうので /bin/bash 指定。
塗りつぶす必要がある部分は半角スペースで埋めておく、なるほどね。

よし新しいアプリとして公開、するようなシロモノじゃ無いよな。
ということで Blog に、どこかの知らない誰かの参考になればイイや。

どうでもいいが、先日原付でコケてしまい手を上げると鎖骨のあたりから激痛なう。
やっぱり折れている?
検索すると今の程度ならサポーター治療だけっぽいし、ほっとくべ。

shell

シェル・スクリプトの基本

こんなページをチマチマ作っているけど自分で勉強になるわ。
本や既存サイトから情報を集めて元 Windows ソフト作者っぽく書き換えているので。
C-c とかいう書き方はどうしても馴染めない、てか今の Linux でソレはないと思うし。

標準エラー出力のリダイレクトは 2> と書くなんて今日まで知らなかった。
C シェルは書き方が違うが Ubuntu 使いなら B シェルだけでいいだろう。

それと気がついたんだけど ImageMagic が入っていた、9.10 には無かったのを確認。
最初からなのか何かのパッケージにくっついていたのかは解らないけど。

display
convert
identify
import
xv
netpbm

のコマンドも使える、結構おもしろい。

$ convert -sample 160x90 input.jpg output.jpg
$ identify input.jpg

しかし SyntaxHighlighter 3.0.83 が出ていたので変更しようと思ったのだが…

Opera のフォントは相変わらずだな…
というか Opera も Chrome もアルファベットの下が欠けてしまう!
駄目だこりゃ、v2 のまま当面は様子見するか。

いや、アクセス状況を見ると Blog よりまとめページに力を入れたほうが良さそうなので。
Blog は終わったとかよく見かけるけど今まで日本人は使い方を間違えていたのが正されてきただけ。
とにかく結果として情報のまとめページのほうが検索上位に、つーことだろう。

しかし IronPython のまとめは全然アクセスが無い、まったく無い。
どうがんばっても Windows でスクリプトは受け入れられそうにないな、と感じる。