メモの日々


2001年09月26日(水) サーバ選定

会社など

  • NECとDELLと富士通の営業から話を聞いた。高本さんが仕切っているのを聞くだけなのに疲れた。メーカーの人も大変だよねー。わけの分からん用件に対してシステムを提案しないといけないなんて。
  • K大とTV会議の実験をした。山下さんのパソコンになぜかTV会議のソフトが入っていた。もうあるんじゃん。K大のカメラはちゃんと写らないし音声も雑音ばかり。だめじゃん。
  • とにかく眠い。

2003年09月26日(金)

[fs] 2ndステージ 103266位(109728チーム中) 資産5億1120万

6節37fp、7節19fpでした。うーん。中西、グラウが出場停止になり期待外れ。松代、米山、トゥットも駄目。

次の選手を放出。

  • 松代直樹(−420万) キーパー交代
  • 宮本恒靖(±0万) 怪我したので
  • 中西永輔(−450万) 鈴木秀人と交代
  • 米山篤志(−230万) ポイント伸びないので
  • 石川竜也(−70万) 前節ベンチ入りしなかったようなので
  • 石丸清隆(+400万) 儲かったので
  • 前田遼一(+310万) グラウがいるので
  • トゥット(−90万) もっと頑張ってくれー
  • 玉田圭司(+1260万) 儲かったので
  • 高松大樹(−90万) 怪我しているようなので

次の選手を獲得。前回は資金をケチっていたのですが、今回は高額な磐田の選手を獲得してみました。

  • 櫛野亮(4430万) 新守護神として
  • 鈴木秀人(7730万) 実力を見込んで
  • 三木隆司(3050万) 大分は失点が少ないようなので
  • 加地亮(1810万) FC東京のDFが欲しかったので
  • 福西崇史(6000万) 得点力に期待して
  • 菊地直哉(250万) 次節先発しそうなので
  • 濱田武(420万) 要チェックなので
  • 宮沢正史(2870万) フリーキックを蹴っていたので
  • 戸田光洋(1460万) いい動きをしていたので
  • 平本一樹(2180万) ベルディのFWが欲しかったので

次節は次のメンバーで戦います。

GK櫛野 亮市原4430万
DF鈴木 秀人磐田7730万
DF三木 隆司大分3050万
DF加地 亮東京1810万
MF岩本 輝雄仙台1850万
MF福西 崇史磐田6000万
MF遠藤 保仁G大阪4190万
MF坂本 將貴市原2580万
MF宮沢 正史(C)東京2870万
FW平本 一樹東京V2180万
FWグラウ磐田3690万

2004年09月26日(日)

[link] 「fj-news.org」

fj.org.fjsgより。リニューアルでfj後援会幹事サイトとして生まれ変わったのかな?今の所、fj 年代記置き場に成り下がっている。

XOOPSはやっぱり見難くて嫌いだ。

(追記)

む、早くも「ネットニュース階層fjのWebサイト」として生まれ変わっている。どうしたのかな。

む、担当者交代ですか。なんで?

やること

  • プリンタ処分
  • リンク元のスリム化
  • クリーニング
  • 家賃

2005年09月26日(月)

  • 綾瀬はるかは田中達也に似ている。自信なし。

[life] 歯医者へ行く (3)

前回型を取った歯型の模型を見せてもらった。立派な模型ができるのかと思っていたら、粘土を固めただけのようなあっさりしたものだった。見ても新たな発見は特になし。

で、抜歯した。麻酔を注射され、感覚が無くなったところで引っこ抜かれ、傷口を縫われたようだ。痛みは全然なし。抜いた後も麻酔の影響で口がずっと痺れていた。

料金は1000円。初回と同じフロモックスと、痛み止めとしてロキソニンを600円で買わされた。ロキソニンは胃腸に負担をかけるようだな。まだ飲むほど痛くなってない。

歯を抜くと寂しい気持ちになるな。さらばおれの歯。

やること

  • ブラウンの安い電動歯ブラシ買う
  • 蛍光灯を捨てる

2006年09月26日(火)

  • ずっと仕様検討中。他のメンバーの進捗が進んでいないのでおれはわりと暇。

[c][soft][unix] LCOVを使ってカバレッジを測定

LCOVというツールを使うとカバレッジを測定して結果をHTMLファイルに出力してくれるみたい。結果ファイルのイメージはlcov を利用したコードカバレッジ解析にある感じ。

あまり情報を見つけられなかったが、Just another Ruby porter, の2004-04-132004-04-14などを参考にして使ってみた。バージョンは1.4。

対象ファイルのコンパイル

コンパイルはGCCを使って行う必要がある。コンパイル時にはオプションとして「-fprofile-arcs -ftest-coverage」を付与する。こうすると、xxx.o ファイル以外に xxx.gcno というファイルもできるようだ。

なお、カバレッジを測定するファイルと測定しないファイルをリンクする際にも上記のオプションが必要みたい。

実行

コンパイルしたプログラムを実行して終了させる。すると、xxx.gcda というファイルができる。

カバレッジ情報の収集

lcovコマンドを使う。

$ lcov -c -d . -o app.info

のような感じ。-cはカバレッジ情報を収集せよ、-dは指定したディレクトリから収集せよ、-oは指定したファイルに結果を出力せよ、という意味のようだ。サブディレクトリからも情報を収集しているようだが、この辺の挙動は把握できていない。

上を実行するとapp.infoに結果が出力されるが、これには余分なヘッダファイルに関する情報も含まれてしまっていた。余分な情報を削除するには

$ lcov -r app.info *yobun* -o app2.info

のようにするといいみたい。-rは指定したファイルから指定したパターンを削除せよ、という意味かな。

HTMLファイルの生成

genhtmlコマンドを使う。

$ genhtml -o lcovoutput -p `pwd` --num-spaces 4 -f app2.info

のようにした。-oは指定したディレクトリに結果を出力せよ、-pはよくわからんがここで調節しないと生成されたHTMLファイル内のリンクがうまく繋がらなかったりした、--num-spacesはタブを指定した数分のスペースに変換せよ、てな意味。-fを付けるとソースファイルの内容を表示した際にそのファイルの全体イメージが表示されるようになる。

やること

  • デザイン変更
  • 保険
  • 蛍光灯
  • 家賃

2007年09月26日(水)

  • 家賃払った。農協の場所を知った。

[life] 整形外科へ行く

腰が痛いのが治らないので整形外科へ行ってみた。高校生の頃腕を骨折したときに通った病院へ。

8時40分に着いてそれ程混んでいないように思えたが、2時間待たされた。座っている間腰の痛さはあまり気にならなかった(もっと痛そうな人がどんどん来るので痛くなくなるみたい)が、冷房の風が当たり寒いのが辛かった。

やっと呼ばれて診察室へ行くとおばさん先生でつっけんどんな感じ。どうされましたかと聞かれたので、1ヶ月前に急に痛くなってとかなんとか言ったがうまく伝えられなかったかも。で、ベッドに仰向けに寝かされ、片足ずつ持ち上げられて痛いか聞かれたり、足を組んで膝下や足裏をたたかれ反射を検査されたりした。次にうつ伏せで腰を押され痛いかどうかを確認された。

何をされても痛くないのでそう答えたが、なんか悔しい。立ったり座ったりするときは痛いのに。

次はレントゲン。立った状態で正面/側面/前屈みでの側面/後ろに反った状態での側面の写真を撮られた。で、腰骨の一番下が少しつぶれているようなこと言われた。「それだけ」と言われ、大したことない感じ。ずっと座っているのは良くないので、時々立ったり体操したりしなさいとのこと。それで治るのかなあ。

痛みは我慢可能なので、痛み止めや湿布は貰わなかった。コルセットも勧められたのでそれは貰った。嵌めてみると、少し痛くなくなった気はする。でもまだ痛い。

料金は約3000円だった。

[book] 地下鉄に乗って (浅田次郎)

地下鉄に乗って(浅田次郎/著) おじさん小沼真次が過去と現在を行ったり来たりさせられる話。おれのよく使用する地下鉄の駅が色々出てきて楽しい。過去の東京の描き方もとてもよかった。ストーリーは結構残酷。3.5点。


2024年09月26日(木)

[python] Pythonにおけるパッケージング(2)

7年前にPython 2でパッケージ化する方法をメモしていた。少し前にPython 3でパッケージを作る方法を調べたので、忘れないようにメモしておく。

情報源が https://packaging.python.org/ であることは変わっていない。日本語版もある。

pyproject.tomlを用意

現代ではsetup.pyの代わりにpyproject.tomlを使う。ここに次のような内容を設定する。

[project]
name = "oreore"
version = "0.1.0"

[build-system]
requires = ["setuptools"]
build-backend = "setuptools.build_meta"

[build-system] に指定可能なツールが色々あって悩みどころだが、本記事ではSetuptoolsを使う。

Pythonのコードを用意

以前と同じ構成のコードを用意する。ただし、コードは「src/パッケージ名」というディレクトリの下に置くのが標準的なようなのでそのようにする(参考:src レイアウト対フラットレイアウト)。

$ tree . --noreport
.
├── pyproject.toml
└── src
    └── oreore
        ├── hello
        │   ├── __init__.py
        │   └── hello.py
        └── world
            ├── __init__.py
            └── world.py

前回同様hello.pyを実行可能スクリプトと認識させたかったが、pyproject.tomlでそのような指定をする方法は無さそうだった。代わりに、hello.pyの関数を呼び出す実行可能スクリプトを自動生成させることはできて、そのためにはpyproject.tomlに次のような設定を追加すればよい(参考:Entry Points)。

[project.scripts]
hellohello = "oreore.hello.hello:hello"

これにより、oreore/hello/hello.py の関数hello()を呼び出すスクリプト hellohello が、oreoreパッケージのインストール時に作られるようになる。

Wheelファイルを作る

以上の準備により、Wheelファイルを作成できるようになる。

Wheelファイルを作成するにはbuildを使うことが標準的なようだ。ただし、別途インストールが必要。pipにもWheelの作成機能があるので、ここではbuildではなくpipを使う。

$ python -m pip wheel --no-deps .

これにより、カレントディレクトリに oreore-0.1.0-py3-none-any.whl が作られる。

pip wheelの注意点として、buildというディレクトリが作られその中にビルド時のソースコードが残るという点がある。これが次のpip wheel実行時にも参照されるので、例えばhello.pyをhello2.pyに改名してpip wheelを実行し直すとWheelファイル内に(本来は含まれるべきでない)hello.pyが含まれてしまう(pipのバージョン24.2で確認)。

なので、pip wheelの実行前にはbuildディレクトリは削除した方がよさそう。buildにはこの問題はなさそうだったので、pip wheelではなく素直にbuildを使う方がいいのかもしれない(この段落はディレクトリ名のbuildとツール名のbuildが混在していて分かりにくい…)。