Floating Log 2004/2

2004-02-29

カレンダー

この PyDS で生成されたページのカレンダーが月曜日始まりだったのが気に食わなかったので、CalendarTool.py を2行だけ書き換えた。

calendar.setfirstweekday(calendar.MONDAY)

calendar.setfirstweekday(calendar.SUNDAY)

に。 そして、曜日の名前の列の国際化文字列を分割した後に、

wdnames = [wdnames[6]] + wdnames[:6]

を挿入。 (こういうやりかただと PyDS の新しいのが出るたびにこの作業をしなければいけなくなるので美しくないが…)

そのあと PyDS を再起動して、再レンダリング。

posted at 00:19:28   
 
2004-02-28

Rock Between The Lines

ピーター・バラカン「ロックの英詞を読む」集英社インターナショナル。 ピーター・バラカンがロックソングの歌詞を対訳して解説を加える、という趣向の本。 わりとこのおじさん好きなので買ったのだが、どっちかというとロックよりも英語に力点が置かれた本だったのでいまいち。

posted at 23:36:48   
 

ASCII を踏み越えるローマ字

つぁ行を表すのに ţ (U+0163)を使ったらどうかとか思ったり。 本来の音がどういうものか知らないが t にセディーユが付いてたら、[ts] でもおかしくないだろう。

posted at 14:15:44   
 
2004-02-27

プラネテス 4

幸村誠「プラネテス 4」モーニングKC。 一部完ということで詰め込んだらしく、分厚い。

ところで、デブリ回収って誰がお金を払うんだろう。 たとえば公海上で浮遊するゴミを回収する事業というのは恐らく存在しないわけで、宇宙というのは公海と同じようなものだと考えると不思議。 デブリ回収船にデブリが当たっても、隔壁で空気の漏出を押えたりして対処できている描写から考えても、旅客宇宙船にそういう対処策を施す方がデブリ回収に金を出すより安く済みそうに思える。

まあそういう疑問はさておき、作品として素晴らしいことは間違いない。

posted at 23:28:16   
 

卒研発表

数学科は卒論が義務でないので、それに代わるものとして今日は研究室の4年生達がそれぞれのテーマで発表する催し。 こっちは気楽に聞いていただけ。

posted at 22:22:08   
 

PyCS (保留)

PyCS (続々) に対し設定ファイルの読み込みは pycs_settings.py ですべし、とのことだったので一応そのように書き換えた。 影響を受けたファイルは pycs_settings.pysearch_engines.py の二つ。

とはいえ、これらはテストしてないので動くのか怪しい。 テストするには PyCS を動かしてみないといけないだろうし、設定ファイル用に makefile も修正しなきゃいけないだろうし、そこまでのテンションはない (元々少しだけ修正すればなんとかなるだろうと思っていじっていたので)。 というわけで、これ以上は当分お預け。

posted at 10:33:52   
 
2004-02-26

韓非子

冨谷至「韓非子」中公新書。 新鮮だった。 2000年前にこんな現実主義が存在してたのか、と驚いた。

中学校・高校の国語で習った漢文は味気ないものだったが、こういう思想的背景まで教えれば結構面白かったのではないだろうか。

posted at 22:24:16   
 

Mozilla のキャッシュ

今日はそんなに重くなっているわけではないのだが、about:cache を見ると

Memory cache device

Number of entries: 	287
Maximum storage size: 	7168 k
Storage in use: 	7750 k
Inactive Storage: 	0 k

と、キャッシュ上限を振り切っている。 試しに about:cache のタブのみ残してみたが、同じだった。 何かが間違っている。

posted at 01:53:20   
 

今度こそ Ebuild Uploader

復活。 pyds-0.7.1.ebuild も登録した。

posted at 00:04:32   
 
2004-02-25

pyds-0.7.1.ebuild

pyds-0.7.1.ebuild で日本語メッセージを置き換えるように修正した。 番号は上げなくていいよね。

00:09 追記:
このバージョンを ebuild uploader に登録した。
posted at 22:24:16   
 

Ebuild Uploader 続報

gentoo-user メーリングリストでもアナウンスがあった。 しかし、昨日(Ebuild Uploader)のエラーはそのままだ。 PyDS 0.7.1 の ebuild を登録したいんだけど…。

posted at 17:38:24   
 
2004-02-24

WORM_NETSKY.B

最近来る本文が1行だけのうざったいメールは WORM_NETSKY.B というらしい。

posted at 23:36:48   
 

Ebuild Uploader

新GentooLinux地獄 より。

復活したらしい。 ML にはまだアナウンスがないけど…

23:13 追記:
まだフライングだったかも。 登録しようとしたらエラーが出てしまった。
posted at 22:56:16   
 

インストール完了

先ほどの ebuild で PyDS 0.7.1 をインストールした。

  • 「設定」に「Archives」という項目が英語で出てくる。 日本語メッセージカタログに含まれていないんだろうな。
  • ChangeLog に BaseRendering.tmpl の文字コード指定を ISO-8859-1 決め打ちから変数 _PyDS.documentEncoding を参照するように変えた、と書いてあるが、テンプレートのアップデートをした方がいいのだろうか。
  • 右側のメニューに「Shutdown」が加わった(これも英語だ)。 ブラウザーから停止させたくなることは考えにくいが…。
posted at 11:05:52   
 

PyDS 0.7.1

岩田さん のところで知ったのだが、 PyDS 0.7.1 が出ている。

なんでも新しく SilverCity というのをインストールしないといけないらしいのだが、とりあえずこの週末に追加されたというのでない限り ebuild がない。 他の fpconst 0.6.0 と SOAPPy 0.11.1 は 0.7.0 の時に既にそのバージョンが入っているので、問題なし。

というわけで、まずは SilverCity の ebuild から。

silvercity-0.9.5.ebuild (注:ebuild uploader にアップロードしました)

続いて PyDS の ebuild。

pyds-0.7.1.ebuild (注: こちらもebuild uploader にアップロードしました)

自分自身でテストしてないけど、問題なくインストールできるはずだ。

posted at 08:47:12   
 
2004-02-23

でかい

本屋でクヌースの The Art of Computer Programming 1 を見かけた。 印象はとにかく「でかい」。 百科事典みたいなサイズで、持ち運ぶことを想像できない。 中身を見る気も失せてしまった。

posted at 18:53:04   
 

LINUX革命

今更ながら クリフ・ミラー「LINUX 革命」ソフトバンク。 あんまり得るところはなかったなあ。 妙にひらがなに開き過ぎで読みにくいし。

posted at 18:36:00   
 

ローマ字

正書法の変更は語の識別可能性を低下させる方向には進められないのではないか、と言ってみれば当然のことを考えた。 旧仮名から新仮名への変更時はおそらくこの基準は満たされていただろう。

そこで、タイトルのローマ字だが、日本語をローマ字化することはこの基準に照らして無理であることが解る。 漢字仮名交じり文から漢字ローマ字交じり文には変わるかもしれないが、漢字を取り除くことはできないだろう。

posted at 13:13:52   
 

PyCS (続々)

岩田さんがPyCS (続)に寄せて下さったコメントの仕様を(部分的に)実装した。 search_engines.py が書き換えたファイルで、正規表現は search_engines.conf に置くようにしてある。 一応、テストとして test_search_engines.py とそのテストに使ったデータファイル sample.conf も置いておく。

文字コードを使い分けるようにはできていない。

posted at 01:38:24   
 
2004-02-22

PyCS (続)

というわけで昨夜の続き。 修正すべき箇所は判ったので、あとは他と同じように書くだけ。

--- search_engines.py.orig	2004-02-22 14:57:48.000000000 +0900
+++ search_engines.py	2004-02-22 15:25:39.000000000 +0900
@@ -129,6 +129,21 @@
 	'szukaj.wp.pl': [
 		re.compile(r'http://szukaj.wp.pl/szukaj.html?szukaj=([^&]*).*$'),
 	],
+	'excite.co.jp': [
+		re.compile(r'http://www\.excite\.co\.jp/search\.gw.*[\?&]search=([^&]*).*$'),
+	],
+	'fresheye': [
+		re.compile(r'http://search\.fresheye\.com/*[\?&]kw=([^&]*).*$'),
+	],
+	'goo.ne.jp': [
+		re.compile(r'http://search\.goo\.ne\.jp/.*[\?&]MT=([^&]*).*$'),
+	],
+	'infoseek.co.jp': [
+		re.compile(r'http://www\.infoseek\.co\.jp/.*[\?&]qt=([^&]*).*$'),
+	],
+	'vivisimo': [
+		re.compile(r'http://vivisimo\.com/search*[\?&]query=([^&]*).*$'),
+	],
 	}
 
 def checkUrlForSearchEngine(url):

日本のばかり入れるのも気が引けたので、vivisimo も入れておく。 えっと、で、これをどうしよう。 岩田さんにメールかな。

posted at 15:41:04   
 
2004-02-21

PyCS

Python Desktop Server のサーバー側の相方であるところの Python Community Server のソースを持ってきてみた。 cvs ではなく SourceForge にあった latest という tar ボール。 展開してみると pycs-0.12pre2-src というディレクトリーができた。

目的は、提供されている「検索キーワードによるランキング」という機能にinfoseek からの検索結果が反映されないらしい原因を見ることだ。

modules/system というサブディレクトリーの中に目指す searches.py は置いてある。 127 行目からこんなループが始まる:

for row in referrerlist:
	(matched, term) = checkUrlForSearchEngine(row.referrer)
	if matched and term:
		try:
			term = term.decode('utf-8').encode('iso-8859-1')

もう一つの謎だった文字化けはここに起因しそうだという感じはするが、当面の目標の infoseek の謎は checkUrlForSearchEngine の向うに隠れている。 checkUrlForSearchEngine は、32行目の import 文:

from search_engines import checkUrlForSearchEngine

により、search_engines モジュールを見ないといけない。 search_engines.py はルート階層にある。

この search_engines.py の中にあるのは checkUrlForSearchEngine の関数定義と、その中で使われる engines という辞書だけである。 engines には、検索エンジンの名前をキーに、クエリーURLの骨格の正規表現をリストにしたものを納めてある。 そして、この中には infoseek というエントリーがない。 そういうことみたいだ。

posted at 22:00:48   
 

pyds-0.7.0.ebuild

本家の ebuild が用意されたようなので、 ebuild uploader から持っていったものは削除しましょう。

ebuild uploader が止まっていて掲示板に書き込めないので、一応こちらでお知らせ。

posted at 18:59:28   
 

対韓国(U-23) 2-0

1点め入ってた? ホームだからいいのか。 ともあれこれをはずみに、がんばっていらっしゃい。

posted at 18:01:52   
 

何故かナウシカで

イメージ ね。 C++ が巨神兵で、Perl は粘菌。 と何故かナウシカ関係のイメージが続いたので勢いで押し切ると、Smalltalk は森の人、Lisp はマニ族、どっちも遠い世界の話(アニメ版では省略)。 Python はユパ様の乗っていた駝鳥みたいなの (カイというらしい)、便利だがチョイ役。 Java はあのトルメキア軍の大型飛行機、工業製品的。

自分で書いといてナンだが、間違ってる。 そういえば昔、プログラミング言語を調理器具に譬えてみたことがあったような気がしたが、見つけられない。

posted at 02:06:08   
 
2004-02-20

追悼マルコ・パンターニ

今朝の新聞で初めて知った。

自転車=ツール・ド・フランスの元王者パンターニが急死、34歳

ツールの山岳ステージでの彼の勇姿が思い出される。 合掌。

posted at 09:25:36   
 

泥縄式シーケンス

イテレータとか呼ぶから難しそうなんじゃないかと、ふと思ったので、 適当な日本語訳を探す試み。 必要になってから要素を生み出すので泥縄式。 しかし、呼び出して初めてシーケンスになるわけだから、あんまり良い訳語ではないな。 「泥縄式シーケンスの素」の方が適当か、長いけど。

posted at 01:57:36   
 
2004-02-18

Pythonクイックリファレンス 3月発売

オライリー BOOKCLUB のニュースによると、 ようやく日本にも Python 2.3 対応の書籍が登場する。 Alex Martelli 氏の Python in a Nutshell 翻訳のようだ。

posted at 22:41:20   
 

対オマーン 1-0

ようやく勝ててほっと一息。

posted at 21:45:52   
 

AWK & CGI

昔、まだ Python よりも Awk に愛を捧げていた頃、Awk で CGI プログラムを書こう、というページを作ったことがある。 いや、実はそのまま放置してあるので見ることもできるのだが、 スイス人がわざわざ見るとは思わなかった。 今夜、メールが届いたのだ。 バーゼルから。 「英語では書いてないのか」と。 書くわけあるかっ!

posted at 02:08:16   
 

Mozilla が重くなる

Mozilla が重くなる。 原因は解らない。 強いて言えばしばらく立ち上げたままにしておくといけないらしい。

なんとなく、Bugzilla の Bug 145720 - repainting slowdown when hidden tabs have content loaded2番目のコメント が同じ症状っぽい。 っていうか裏に回ってるタブとかじゃなくて、履歴の管理がおかしいんじゃないかと思うのだが。

ちなみに
Mozilla/5.0 (X11; U; Linux i586; ja-JP; rv:1.6) Gecko/20040131

posted at 01:53:20   
 

光速より速い光

ジョアオ・マゲイジョ「光速より速い光」NHK出版。 光速変動理論(VSL)の発案者本人による一般向け解説。 というにはどうも夾雑物(大学の官僚的機構や雑誌の査読制度に対する批判など)が多いが、それもまた興味深い。 理論自身は宇宙論のインフレーション理論を置き換えるものとして発案され、多種多様な変種に発展し、この本の最後の方では特殊相対性理論を乗り越える可能性も示されている。 それは量子重力理論がうまくいくならば E = mc2 というあの有名な式はプランクエネルギー Ep を用いて、E = mc2 / (1 + mc2 / Ep) という形に修正されるという。 個人的には(別に深く考えたわけではないが)、一般相対性理論の方が量子力学と相容れないのかと思っていたので、特殊相対性理論を修正するというのは意外な感じがした。

posted at 01:06:24   
 
2004-02-17

手続きとか

来年度の身分を確定するための申請手続き。 大学の名前が変わるまで にはどうにかしたいものだ。

そのあとは多項式の無平方分解をコーディングしていたのだが、標数が正の場合がうまくいかない。 あとでやり直そう。

posted at 22:07:12   
 

ESR の肩入れは妥当か

ITmedia の記事 によるとエリック S. レイモンド氏は オープンソースコミュニティーではこの言語[Java]の普及が進まず、PythonやPerlなど競合するスクリプト言語にこの領域を(そして恐らく未来をも)譲り渡し、Sunの長期的な利益を損ねている といった内容を含んだ書簡を Sun に送ったらしい。

レイモンド氏の Python 贔屓は有名だが、Java と領域的に競合するには psyco のような実行時コンパイラーをコミュニティ挙げて推進するようにならなければいけないと思う。 そうでなければ、速度の壁は結構高い。 残念ながら今はそういう状況ではないので、この発言は煽りすぎだろう。

ブログぶってみました(^^;

posted at 10:10:24   
 

控え目なのか

Discreet Blog を今まで "Discrete Blog" だと勘違いしてた。 離散的なわけではなくて控え目だったんだ。

Common Errors in English ではThe more common word is 'discreet'とか書いてある。 そうか、専ら"discrete"にばかり遭遇してきたけどなあ(もちろん英語で生活しているわけではないので遭遇する単語が偏るのは当然だけど)。

posted at 09:34:08   
 

PyDS のショートカット

ショートカットはデフォルトのを展開すると、全て前後に " が付いている。 自分で作るのも前後に " が必要なのかと思って付けたら、自動で付いたので二重になってしまった。 ということで、 " は付けなくて良い。

posted at 01:27:44   
 
2004-02-15

そうか Cheetah なのか

この PyDS で使える"HTML"は制御構造とかマクロとかがあるのだが、 そのあたりの説明を見出せないまま、手探りで今まで書いていた。 が、この奇妙な"HTML"がCheetahというテンプレートエンジンで処理されるものであることが判った。 (自力で依存パッケージをインストールしていかないからそういう理解不足が発生するのだと言われればその通りと認めるしかない。)

posted at 10:50:56   
 

静電気

静電気体質」? そんなものないだろう。 単純に着ている物と体との間で摩擦が起き、そこで発生する静電気が空気や靴で絶縁されているために放電されずにいるだけだと思う。 空気の絶縁度は湿度の低下とともに上昇するだろうし、寒い時に裸足になる人はまずいないので、冬場には多くの人が帯電する。 そこに体質の関与する余地はほとんど無い。 ほとんどというのは、汗をかき易い人は自らの汗によって空気の絶縁度を下げられる可能性があるし、寒いのが平気な人は薄着でいることにより静電気の発生量を減らせるかもしれないという意味だ。 そういう少数の例外を除けば必ず帯電するので、そのことを忘れて放電して痛い目に遭うような人は「静電気体質」と呼ぶべきではなく「不注意な人」と呼ぶべきだ。

私も良く帯電するが、たとえばドアノブを握る前に手の平でドアに触るようにしている。 こうすると、指先の一点から放電する場合と違い、そんなに痛くない。

まあ何というか「静電気体質」などという言葉は「マイナスイオン」と同じく疑似科学的な言葉だと思う。 そんなものを信じる人は中学校の理科からやり直し。

posted at 02:04:00   
 

prefer-coding-system

P29 での問題だが、結局 .emacs の中に書いてあった

(prefer-coding-system 'japanese-iso-8bit)

(prefer-coding-system 'utf-8)

にしたら読めた。 昔はここを iso-2022-jp にしていたのを、何かの都合で japanese-iso-8bit に変更した記憶があるので、 この変更も他に影響を与えるはずだ。 それは避けたいので、.emacs は元のままにして、utf-8 のファイルを読む時はその場で M-x prefer-coding-system することにしよう。 美しくないけど。

posted at 00:28:00   
 
2004-02-14

現代日本語文法入門

小池清治「現代日本語文法入門」ちくま文庫。 提示している文法はそこそこ解り易い。 学校文法の修正としてはいい線ではないかと思う。 「。」とか「?」などを陳述として文の一要素と見做すのはいい発想だ。 「は」の取り扱いも真っ当だ。 惜しむらくは、形容動詞をあっさり認めている。 そこだけは引っ掛かる。

あと一つ付け加えるならば、例題・解答・解説という細切れの文章スタイルが読みにくくしていると思う。

posted at 20:24:48   
 

lynx

lynx が 2.8.5 になった。

posted at 01:53:20   
 
2004-02-13

utf-8

ここのサイトの出力ファイルは utf-8 なのだが、 これを Emacs で開いたら、読めなかった。 エンコーディングの表示は u なので、ユニコードであることは認識しているのだが、 ascii 以外は8進数とか半角豆腐とかになってしまっている。 Mule-UCS で問題無く読めるはずだと思っていたのだが、何を忘れているのだろう。

posted at 00:00:16   
 

ゆびさきミルクティー 2

というわけで 宮野ともちか「ゆびさきミルクティー 2」白泉社。 そうか、煮え切らないままなら、いつまでも続く話なのか。 長くて3巻で終ると思っていた自分の中の印象を修正。

posted at 21:28:48   
 
2004-02-12

実在論と科学の目的 上

カール・ポパー「実在論と科学の目的 上」岩波書店。 カール・ポパーといえば「反証可能性」の人、というのが10年前(もうそんなになるのか)に受けた科学史の講義で得た知識である。 その反証可能性やら帰納主義批判やらに対する批判への反論、というのがこの本の趣旨である。 ヒュームだのカントだのをまともに繙いたこともない浅学非才には難しかった。

posted at 21:41:36   
 

google

PyDS の右側のメニューに「リファラ」というのがあって、もちろんこのブログを見に来た人がどこから来たか判るという機能だ。 その中に google とか yahoo とかから「gentoo」で検索して来た人がいた。 気になって google で検索したら、Gentoo 日記 の上にあった。 なんて畏多い。 本当は1000倍ぐらい役に立たないと思われる。

posted at 00:38:40   
 
2004-02-11

DNS & BIND 入門

Langfeldt「DNS & BIND 入門」オーム社。 あまり明るくない分野なのでお勉強。 DNS の仕組みや BIND の設定からダイナミックDNSの話さらにはダイヤルアップでいかに通信費を節約するかという些細な話題まで扱われている。 実際に BIND を動かしてみるんだったら、多分オライリーの分厚い「DNS & BIND」に進むべきなんだろうけど、とりあえず今回はこれまで。

posted at 19:14:24   
 

ありがとう

というわけで mft という名前を頂きました。 http://lowlife.jp/mft/ でアクセスできるようになりました。 (前の mft/ でもアクセスできますが)

それから にむにむアンテナ もいつもながら素早い対応ありがとうございます。

posted at 18:55:12   
 

決断

メンバーズホームページ終了のお知らせ以来考えていたのだが、次のように決めた。

  1. 日記についてははここに移る。
  2. それ以外のページは新しく確保した @nifty のスペース に移動する。
  3. ついでに、geocities の Sakurawatari's Short Stories も捨てて、@nifty のスペースに統合する。

ということで、色々連絡して回るかね。

posted at 15:41:04   
 
2004-02-10

幻聴

眠いと幻聴が聞こえる。 正確には雑音が意味をもつように思える、というべきか。 今日は PC のファンの音の中に小田和正の声を聞いていた。 曲は多分でたらめだが、それなりに面白かった。 採譜能力があれば書き留められるのだろうが、残念ながら聞く端から消えていった。

小田和正の声をフーリエ展開の基底に取って…と無理矢理理屈を考えようとしたが、むしろ脳の中を調べた方がましな気がしてきたので止めた。

posted at 23:09:04   
 

ゆびさきミルクティー

宮野ともちか「ゆびさきミルクティー 1」白泉社。 女装する高校生の話、とか書くと身も蓋もないな。 でも主人公が女装をしていなかったら何の面白みもないという意味で、そこが最重要ポイントなのである。

えっと、2巻も出ているのかな。

posted at 22:28:32   
 

成功したらしい

うまくいったようだ。

trackback[0] とか表示されている部分の a タグの href URL を「トラックバック」のテキストボックスに放り込めば良かったらしい。 さっきは良く判らなかったので、rss.xml を読み込んで trackback:ping タグを読んでそれを入力した。

posted at 00:49:20   
 

テスト

「マクロのテスト」を標的にトラックバックのテスト。

ところで、「トラックバックする」「トラックバックを打つ」「トラックバックを投げる」…どの辺りが標準的な言い方なんだろう。

posted at 00:34:24   
 
2004-02-09

ls

portage 2.0.50 が正式リリースになったので更新。 それに合わせて、coreutils も更新した。 多分その所為だと思うのだが、ls -l の(正確には日本語環境の)出力の日付表示が、「2月 9日」から「2月 9」に変わった。 主観的には「劣化した」と表現したいところだ。 まあ、見た目以外の意味はないから影響は無いと言えば無い。

posted at 22:32:48   
 
2004-02-08

マクロのテスト

マクロの書き方のマニュアルとか無いものだろうか。 とりあえず、「初めてのマクロ」とかいうスナップショット画面だけは見つけたので、 どうやら Python のクラスメソッドを書けばいいらしいということは解った。

ということで…呼び出し方が解らん。 検索してみた結果、 PyDS Users Guide というのがあった。 なるほど、$macros か。

テストとして Amazon, 正規表現デスクトップリファレンス というリンクを生成してみる。

追記: マクロの中身も macros というディレクトリー以下に公開されるらしい。

posted at 21:22:24   
 
2004-02-07

pyds-0.7.0.ebuild

PyDS 0.7.0 の ebuild が無かったので、作った。 と言っても、0.6.5 のものをコピーして、metakit と Imaging のバージョンを上げただけ。 とりあえず、自分の環境の 0.6.5 を 0.7.0 に置き換えてみた。

うまくいったので ebuild uploader に投稿した。

posted at 22:26:24   
 

mesh

「メッシュ」というところを突っつくと:

Exception exceptions.KeyError: '__hash__'

ファイル関数ソース
Tool.py1067continue_requests = self.index_html(req)
MeshTool.py830index_htmltoolHasSig[tool] = False
NuggetsTool.py284__getattr__raise KeyError(name)
posted at 03:22:56   
 

いつ更新されるのか

設定をいじった後に、いつそれらの更新が反映されるのか。 ナゲットとかナビゲーションとか。

posted at 03:14:24   
 
2004-02-06

日本語の設定を忘れた

BaseRendering テンプレートの修正はオプションじゃなくて必須だった。

posted at 03:50:40   
 

引越し先候補

現在のサイトからの引越し先を検討中。

posted at 03:14:24   
2月 2004
1 2 3 4 5 6 7
8 91011121314
15161718192021
22232425262728
29      
1月
2004
 3月
2004

浮遊する思考・浮遊する言葉を拾い集めて記録しておくページ。

Python
Desktop
Server

© 2004-2013, Matsui Fe2+ Tetsushi