RSS

日々のメモ書き

Debian Developerが綴るメモ

whooshで日本語検索

Pythonの検索モジュールwhooshで日本語の検索

whooshはPythonで書かれた検索モジュールである。普通に英文の検索をするのならドキュメントを見ながらやれば問題ない。日本語の検索で昔から問題になるのが分かち書き。ただwhooshはN-gramインデックスも使えるので分かち書きは問題ではない。ただドキュメントの記述が不十分なので自分でごちゃごちゃ書いてみた。一応動くようだ。

#!/usr/bin/python
# -*- coding: utf-8 -*-

from whoosh.index import create_in
from whoosh.fields import *
from whoosh.analysis import NgramTokenizer

schema = Schema(body=TEXT(stored=True, analyzer=NgramTokenizer(minsize=1,maxsize
=4)))

ix = create_in("/tmp/w", schema)
writer = ix.writer()
writer.add_document(body=unicode("本日は晴天なり",'utf-8'))
writer.add_document(body=unicode("我輩は猫である",'utf-8'))
writer.add_document(body=unicode("あいうえおかきくけこ",'utf-8'))
writer.commit()

from whoosh.qparser import QueryParser
with ix.searcher () as searcher:
        query = QueryParser("body", ix.schema).parse(unicode("あ", 'utf-8'))
        results = searcher.search(query)
        for r in results:
                print r

海谷山塊その3

結局4時半には起きてしまう。しばらくあたりを散歩。やることがないのでさっさとテントも畳んで荷物の整理をする。今年もテントのところだけ雪が溶けないで段差ができる。10cmぐらいか…。このペースだと一月もすれば完全に消えてしまうんだろうな。

6時ぐらいに撤収を開始。ゴミの整理をして荷物をつめて…。ちゃんと一回で帰れるところまで荷物は減っている。担いでみたがまずまず。写真を見るとおかしな光景ではあるが…。

7時半ぐらいに撤収。雪が晴天続きで大分腐ってすかすかになっている。そこそこ重いが1時間も歩かず車まで到着。

そのまま出発し去年と同じ温泉に入って去年と同じラーメン屋で昼御飯を食べて、今年はR41で帰る。無事に19時過ぎに到着。

まとめ

今回は行く前からあまり緊張せずにいたら特にややこしいこともならずに普通に登って普通に下りてきた。同じところに行ったせいだろうか?必死で後ろをついていくのではなくて現場で多少は次に何をやるかが想像つくようになったのも多少の余裕になってきたかとは思う。

去年よりキックステップはましになっていたのは風邪を引いてなかったからかとか西穂と御在所で頑張った成果なのかはよくわからない。

どうも文章が冴えないのはエピソードになるようなわけのわからんことをしてないせいだろう。まあそれはめでたいということにしておく。

海谷山塊その2

5時起床…のはず4時半にはあきらめて起きる。寝る前に暑いと思ってダウンを抜いだが結局夜中に寒くなってきたが着るのも面倒だねえとぐだぐだしていたら眠りが浅い。起きたら昨日作っておいたインスタントの五目御飯を食べる。冷めた御飯を2人分も食べるのはちょっとうんざりする。食べたあとに荷物を整理して辺りをうろうろして準備運動。坂を登ると息が上がる。

隊長と準備をして6時半に出発。まず吉尾平を目指す。目の前に見えているところだから直接行ければ楽なのだがそうも行かない。いくつかの沢を渡る必要があるので面倒。

最初からアイゼンをつけての行動開始。早速トラバースで隊長からステップの踏み込みが適当だと怒られる。雪面を下り、沢を越える。ところどころ開口部があって沢を越えるときにずぼっと抜けたりしないか気にしながら…。よっぽどでないとそんなことにはならないとは思うが一番低いところを乗り越えるときは慎重に。

途中で滑落停止訓練をやった。結構スピードが出るもんだ。自分で停止開始位置を決めてやろうとしたが途中で速さに驚いて先に停止動作に入ってしまう…。視線が低い分だけ怖い。まあ、案外止まるものだけど。

あっちを渡ったりこっちを登ったりして林道のところを越えてさらに藪を漕いで抜けると吉尾平が広がっている。ここまで1時間半ぐらい。阿弥陀がすぐそばに見える…て1kmもない。スノーモービルらしき雪の跡。スキーに来ていた人がいるのかな?随分と昔に雪崩で薙ぎ倒されたであろう木々があちこちにある。夏はどんな風景なんだろうね。

てくてくと吉尾平のまばらな木々を抜け、登りにかかる。とは言うもののここらあたりは傾斜もきつくなく思ったより快調に登っていける。あまりにも快調なのであと1時間で登りますよとか軽口を叩くがそんなわけないのはわかっている。

のぼっていく過程は急な斜面はキックステップで階段を蹴り込んで登り、緩斜面の稜線を歩き…の繰り返しが主。今年はそれほど雪が腐ってないせいか割とスムーズに階段作りができる。一箇所雪が切れてややこしいところは岩場を枝を掴んで登る。急斜面は膝をつく感じでのぼる。気温は15度を越えている。寒くないのはありがたい。

およそ2時間半で稜線まで辿りつく。300mほどの距離ではあるが最後は45度以上の急斜面となった。残念ながら最後の稜線の手前で雪が切れてしまいどうにも登ることができなくなってしまった。ここで終了ということになった。稜線さえ越えてしまえば裏に雪がついていそうなんだが(阿弥陀には付いているのが見えた)。

昼御飯の魚肉ソーセージをかじったあとには下降が待っている。ああ、今年も厄介な…。前向きでこの急斜面を下りる技術がないのが問題だ。ただ、ここはそれほど高度差があるわけじゃないのですべりおちても運が良ければ無傷かもねー。

まず懸垂。隊長がピッケルでアンカーを作ったところを下りる。40mザイルをシングルで下りていく。ザイルを上から投げたが…キンクしたらしい。そこに辿りつくまでに確保ができそうな気が生えているところまで下りたからややこしいことにならなかった。下りてビレイを取ったあとにチューバーで確保しながら隊長が下りる。久しぶりだったからセットに時間が随分とかかる。どうやってやるんだっけ?隊長はザイルの巻取が追い付かない勢いで下りてきた。

次。枝でアンカーを取ってシングルで懸垂。次は確保できる安定点がないので少しだけ傾斜がゆるやかなところで停止。ここでピッケルをアンカーにして確保して下りてくるのを待つ。

次は自分がピッケルでアンカーをセットして隊長が先に下りていく。が途中でザイルが足りなくなる。先行する隊長も確保場所に到達したわけでもない。そのあとどうしたかと言うと自分のハーネスにザイルをセットして後ろ向きで降下。10mぐらい下ったところで再び隊長が降下。そしてアンカーを確保したところで下りる。うーん、なんかザイルで確保している意味がない瞬間があった気がするんだけど…。

そのあと前向き降下の練習ということで下りる。ちょっと傾斜がゆるやかになったのか割と問題なく下りれる。しばらく下りていくと気が生えているところまで到達。ただこのあたりで雪が割れていて…様子を伺う。まあ懸垂で土のところを選んでいけば大丈夫そうだねとここでセルフビレイ。隊長が下りてきたところで気にザイルをひっかけて懸垂。ここまで下りてきたら安心。

あとは勢いよく前向きで下りていく。雪崩の跡の真ん中を下りていく。1mぐらいの雪の塊が落ちている。ピッケルでたたいてみたが固い。あんなものに当たったら死ぬね。幸い今回も雪崩に遭遇することもなく。ただ一回遠くで岩が落ちるようなコーン・コーンという音が響いてきたのはあった。

さっさと吉尾平に到着。休憩と荷物の整理をして戻っていく。まだ登ったりトラバースをしたり渡ったりを繰り返してテントまで戻る。およそ14時ぐらいに到着。いやあ戻ったときのビールは旨い。

そのあと晩御飯を食べながら飲む。昨日飲みすぎたせいでビールの配給制限が行われた。来年はさらに酒の量が増えそうな気がする。

今日はあまり眠くならないが8時ぐらいに寝る。

海谷山塊その1

今年のGWも海谷山塊の春山登山。登るのは烏帽子岳。出発前はなんとも緊張感もなく適当にごちゃごちゃと荷物を詰めてこれで終わりだったけという感じだった。当日も適当に準備して出発という感じ。

1日の14時名古屋発。東海北陸道を通って糸魚川を目指す。天気は若干の雨。そ岐阜県内では雪はほとんど見えないのだが富山に入ると雪に覆われた山が見える。まだこのあたりの山の名前は把握できていない。北陸道では災害派遣の自衛隊の車両と結構すれ違う。

18時ぐらいに新潟と富山の県境ぐらいに到着。そこの駐車場で泊まることとなる。しばらくすると嵐となる。前線が通過したのか…。近くのたら汁食堂で晩御飯。3時間以上飲んで酔っ払ったところで駐車場にテントを立てる。ほとんど暗闇の中で酔ってテントを立てるだけでも面倒なのに、さらに強風。変な話だが今までで一番厳しい状況のテント設営だったと思う。アンカーを確保してからなので慌てることはなかったが見事に突風でテントがひっくり帰る。

テントの設営が終わると近くのコンビニ(歩いて10分)まで買い出しに行って就寝。23時ぐらい。時々貨物列車の音が(すぐ側に北陸本線が通っている)する。

5時ぐらいには明るくなり目が覚める。夜中には随分と強風でテントが揺られたが朝には収まっていた。起床。前日日本酒を飲みすぎたせいか軽く吐き気がする。そのまま車に乗って親不知を過ぎ…糸魚川。焼山温泉に向けて南下。去年登った昼闇山が見えてくるのだが黄砂の影響か霞んで見える。林道入口まで行くと雪の多さがよくわかる。去年より50cmから1mぐらい多い。去年用を足したところは雪がなかったはずだが今年は普通に雪で覆われていた。先客は車が一台。意外に少ないな。

荷物の準備を開始する。今年も120Lのバッグに背負子。さすがに去年のような一回で荷揚げしないで二回でやることとなったので多少は楽か。あと去年は風邪を引いていたが今年はそんなでもないのは好材料。ただ運動不足はあるのは仕方がない。春先はいつもそうだ。わかんを装着。背負子を背負う。さすがにザックのように普通に膝にのせて…というわけにはいかなかった。道路の脇の雪の上に一旦乗せてから背負う。今年は一人で背負える程度の重さ。それでも30kg以上はあるのだろうが…。

なおメンバーは去年と同じで男性x2・女性x1・ハスキー。わかんを装着して出発。およそ8時ぐらい。去年より圧倒的に多い雪。林道がほとんど見えない。雪に埋まって斜めになっている。去年休憩した場所も雪に埋まっていたり。だんだんと去年のことを思い出しながら歩く。歩くスピードは圧倒的に違う。去年の倍以上の速さで歩いている。 重いことは重いが身動きが取れないということもなく普通に歩いている。林の向こうに今年の目標の阿弥陀や烏帽子の姿が見える。林道の橋を渡ると去年ビールを一旦捨てた木が見えた。今年はそんなこともなく通過。アケビ平までだらだらとした登りが続く。やがて林道の脇にそれてごちゃごちゃと登ったりすると到着。去年と同じ場所に到着。

荷物を広げてテントを設営。自分のテントのところ、春の雪なのでそんなにふわふわでもないが、かなり丁寧に踏み固めた。西穂ではあっという間に床が滅茶苦茶になったからね。今回は自分のテントは寝るだけなのでひどい状態になっても大丈夫なんだが。荷物を軽く整理したところで2回目の荷揚げに向けて出発。下りは早い。空荷でさっさと歩いていったら30分ぐらいで到着した。

二回目の荷物の準備をしているときにちょっとした事件が起きた。焼山温泉の親父がやってきて車をこんなところに止めるなとかなんとか怒りだした。一時はどうなるかと思ったがどうも山菜取りに頭に来ているみたいで山屋はまあいいわみたいな話でおさまった。地元の農家が怒って重機を放置してとうせんぼとかするから気をつけろよーとかなんとか。

二回目の出発。荷物は一回目ほどはない。ちなみに何がそんなに荷物が多いって酒と食料が多い。ビール24缶・ワイン3リットル・食料3kg以上という具合。2回目は荷物はそんなにないのだがガス欠気味で足が動かない。菓子パンとおにぎりとか食べているわけなんだが…。と1時間半ぐらい歩いて到着。山スキーの人たちとすれ違うが、さーと消えていくのを見てあれはうらやましいなあと思う。

やっとのことで乾杯。ビールを飲んだところで水を汲みに。去年と同じところまで。今年はそれほど酔っ払う前に。ピッケル片手に雪面を下りていく。去年と同じところに沢の開口部があって。水量が多い。雪も多いが水量も多い。ちょっと苦労しながら下りる。枝を持ちながら…ずるずると滑り落ちる。なかなか水を汲むのも面倒で落ち込みがあるところまで行ったらちょっとバランスを崩しそうになる。まあ、危いので戻って足元の流れのところで汲む。氷水の中手をつっこんでプラティパス4袋。なかなか冷たい。そこから上がるのに雪面をピッケルで崩して階段を作って登るというちょっと面倒なところだった。

テントに戻りおよそ15時。ここから晩御飯の開始。ビール飲みすぎだな。持ってきた半分以上を飲んでしまった。

ときどき烏帽子のほうを見ながらルートを検討。雪崩の跡だらけでどう行くかねえという感じ。今年はながめているときには雪崩は起きなかった。

さすがに朝が早かったせいか19時過ぎに眠くなってくる。5時起床ということなので20時ぐらいには就寝。

CPU負荷とか

夏ですね。気温が上がってファンの音が気になる。

最近PCのファンの音がうるさいのでごちゃごちゃいじってみる。そのためのツールとしてはlm-sensorが基本。Gnome環境ならsensor-appletを使えばリアルタイムで見れる。hddtempも入れておくと良い。CPUに負荷をかけるツールはstressがある。-cとか-mオプションあたりで負荷を調整する。IOとかもできるけどとりあえずどうでもいい。

で実際負荷をかけてみたが…どうもフロントからの吸気が足りなすぎる。5インチベイを開放するとほぼミニマムまで落ち着くのであるが…。閉じて(それが普通だが)負荷をかけるとCPU温度が上昇…。だめだなこりゃ。フロントに吸気ファンがついてないのが問題だろうか。夏までに考えておこう。

DVD作成

LinuxでDVDを作ってみた

はじめてやってみた。どうすりゃいいのかねとオーサリングツールを探す。devedeを使ってみることにした。操作はGUIで簡単。ファイルを選択して実行していけばisoまで作ってくれてこれでOKかと思いきや…。

どうもエンコーディングがおかしい。YoutubleからダウンロードしたAACをmplayerで内部でmpegに変換しているのだがどうもちゃんと変換されない。こまったぞ…と。

ということでffmpegで自分で変換することにした。

ffmpeg -y -i input.avi -pass 1 -threads 4 -target ntsc-dvd \
        -vcodec mpeg2video -s 720x480 -aspect 4:3 -r 29.97 -an /dev/null && \
ffmpeg -i input.avi -pass 2 -threads 4 -target ntsc-dvd \
        -acodec ac3 -ar 48000 -vcodec mpeg2video -s 720x480 -aspect 16:9 \
        -r 29.97 output.mpg

という具合。やっていることは2パスエンコーディング。 変換が終わってdevedeで登録するときにAdvanced Option→Miscで"This file is already a DVD..."  を選択する。

HaskellでFastCGI

HaskellでFastCGIを作ってみた

まず普通のCGI

module Main where

import Network.CGI

cgiMain :: CGI CGIResult
cgiMain = do
          setHeader "Content-Type" "text/html; charset=utf-8"
          output "Hello, World! Haskell!"

main :: IO ()
main = runCGI $ handleErrors cgiMain

つぎにFastCGI版

module Main where

import Network.CGI
import Network.FastCGI

cgiMain :: CGI CGIResult
cgiMain = do
          setHeader "Content-Type" "text/html; charset=utf-8"
          output "Hello, World! Haskell!"


main :: IO ()
main = runFastCGI $ handleErrors cgiMain

まあなんとなく…。CGIモナドがまだよくわかってない…。

FCソウル戦

名古屋グランパスらしさが出てきたな

相手にボールは持たれるけど決めるところで決めてしまってなぜか勝利というような。FCソウルが先制されて飛ばしてきたのはわかったので60分まで耐えれば大丈夫と思ったら見事にガス欠。ありがとうございました。

でも藤川はひどいなー。カウンター潰しを随分やっていたな。きちんと収まれば楽なのにという場面を随分と見た。怪我人が多くて随分苦しい陣容だったがそれでも快勝できたのはすばらしい。中盤をもうちょっとなんとかしてくれ。

jigdoを使ってiso作成

Debianのインストーラのisoイメージをダウンロードするかわりにjigdoを使う。

Debianのインストーラを作成するとき、普通に思いつくのがHTTP/FTPでダウンロード。ちょっと気の効いたやりかたでBitTorrentでダウンロード。

Debianにはちょっと便利なツールのjigdoというものが用意されている。これを使うとかなり楽にisoイメージの入手ができる。

さて、まず使い方を説明。jibdo-fileパッケージをインストールする。つぎにjigdoファイルを入手。jigdoのページからjigdoのファイルのURLをコピー。そしてjigdo-liteを実行する。jigdoファイルのURLを尋ねられるので http://cdimage.debian.org/debian-cd/6.0.1a/amd64/jigdo-cd/debian-6.0.1a-amd64-netinst.jigdo などと入力する。次に古いイメージはあるかと聞かれるが、ないのでそのままEnter。ミラーサイトも適宜返答。するとファイルをサーバーからダウンロードしてきてそのあとisoを作成して終了。checksumも正しければこれでおしまい。

このようにjigdoは必要なファイルをダウンロードしてきてisoを生成する仕組みとなっている。古いisoからのアップグレードもできるのでネットワークにもやさしい。ただアップデートするのにloopbackでマウントする必要があるのがちょっと残念なところである。ともかくかなり早いのでお勧めである。

壊れたgrubを再インストール

あんまりあせらなかった

いつものようにアップグレードしていたらgrub-pcが途中でこける。うーん、なんかどうもあやしい状態だなあと思ってあきらめて再起動。見事にgrubが途中でこける。

ということで復旧作業開始をする。Debianのインストーラディスクを取り出し起動。advanced option(だったかな)からrescueモードを選択。ごにゃごにゃ言語とかの基本情報を入力すると root ファイルシステムの選択画面になるので選択。そのファイルシステム内でchrootを起動させる。あとは /bootをマウントして /var/cache/apt/archive に移動、dpkg -i grub-pc_xxxxx.deb grub-common_xxxx.deb を実行。はいきちんと再起動しました。終了。

< 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 >