自分の興味の赴くままにIT技術系のネタを取りとめもなくメモっています。
Ruby言語やLinuxのネタが多いです。

February 01, 2002 Ruby-GNOME [長年日記]

[Ruby] Gdk::Event周りの整理とGdk::DragContext周りの実装

あまりテストしていないので人柱ボシューです。CVS版に反映されていますのでこちらからどうぞ。

CVSの使い方がわからない方はCVS版の取得方法をご覧ください。


February 03, 2002 Ruby GetText Package 0.1.1 is released [長年日記]

[Ruby] Ruby GetText Package 0.1.1

Ruby GetText Package 0.1.1をリリースしました。ちょっとしたバグフィクスですので無理にバージョンアップしなくても良いと思います。
つーか、使っている人がいればですが。
というのも、平松さんからバグ報告があるまで気づかなかったんだけど、ドキュメントのめちゃくちゃ肝心なインストール方法の章に大ウソがあったんだよね。インストール用のスクリプトのファイル名はsetup.rbじゃなくてinstall.rb。インストールの際に絶対使うスクリプトなんだけど、これに気づく人が今までいなかったっつーことはつまりは誰も使ってくれてる人がいないってことだ(あるいはsetup.rb/install.rbの関係を熟知している人)。サムイ。
まぁ、平松さんが使ってくれたということで世の中に少なくとも二人は使っている人がいる、っていうだけでも良しとしよう。
#あり?つーことはRuWeexの最新版も使われていないのか?(T_T)。

[Tools] 付箋/Ruby

Ruby GetText Packageがあまりに使われないのも寂しいので、くわがたさんの付箋/RubyをRuby GetText Package化してメール(まぁ、いきがかり上というのもあったのですが(^^;))。採用してもらえそうな気配。採用されたら、RuWeexについで2つ目のRuby GetText Package対応ツールが誕生だ!

これでRuby GetText Packageを使ってる人が少なくとも3人に...(以下略)

#あ、もちろん、コントリビュートっすよ>くわがたさん

[Palm] CLIE(PEG-N700C)

OSアップグレードサービスで、今朝、日本通運の人が取りに来てくれた。自宅まで取りに来てくれてOS入れ替えて送り直してくれて6,000円は安いよね。SONYは大丈夫なのだろうかと逆に心配してしまう。あ、もちろん、一ユーザとしては安ければ安いほど良いのだけど(^^;)。

にしても、PDAが無いだけで、仕事ができるのだろうかちょっと不安になってしまう。かなり依存度高いなぁ。

#そういや、いつ帰って来るんだろう?聞くの忘れた...(^^;)。


February 04, 2002 s2.xrea.comのサーバがディスク障害! [長年日記]

[Misc] xreaのサーバってバックアップ取ってないのかな...。

zt日記経由で、kameriaの♪らんらんらん日記へ。 無料サービスだからしょうがないのかな....。にしてもこれはムゴイ。 とてもじゃないけど人ごとに思えないので、ひとまず、wgetにてローカルハードディスクにバックアップを取ることに。
$wget -N -r ftp://username:passwd@username.s5.xrea.com/
これって、考えてみるとweexの逆だよな〜。


February 05, 2002 付箋/Ruby-0.5 [長年日記]

ざっくり動かしてみていますがまだバグにはぶちあたってないです。

Ruby GetText Packageが無くても動くというのは良いアイデアだと思います。

#ただ、それでうれしいのは実は英語圏の人だけな気はしますが(^^;)。

ところでsrc/fusenの1行目の#!/usr/local/bin/rubyですが、これ、bin/fusenの時に2行になって表示されちゃいますね。実害はないですがpre-setup.rbをちょこっといじるとなお良しという気がしますです。

diff -ruN pre-setup.rb.org pre-setup.rb
--- pre-setup.rb.org    Tue Feb  5 22:46:29 2002
+++ pre-setup.rb        Tue Feb  5 22:58:17 2002
@@ -11,9 +11,7 @@
 
 open(TARGET, "w"){|file|
   file.print("#!#{config(\"ruby-path\")}\n")
-  open(SOURCE, "r"){|io|
-               file.print(io.read)
-  }
+  file.print(IO.readlines(SOURCE)[1..-1].flatten)
 }
 
 podir = srcdir_root + "/po/"

英語のREADMEの方はがんばってください。私も英語が苦手なのでこの辺はご助言いたしかねます(^^;)。

それと、xpmディレクトリがdata/fusen/配下から戻されていますが、これは、data/fusen/配下に置いておいた方が良いのでは?

というのも、Linux的には、/usr/share/配下にアプリケーションのデータファイルを置いた方が良いですよね。

data/fusen/配下に置いておけばinstall.rbで自動的に/usr/share/fusen配下に置かれます。今のままですとユーザが各自ローカルに画像ファイル等を配置しないとならないことになります(もちろん、それを意図してるのならそのままで問題ないです)。


February 06, 2002 [長年日記]

[Misc] tDiary本家に捕捉していただきました

Mary日記に捕捉していただいたのでご挨拶がてらツッコミに書き込んできました。これからもよろしくお願いします。

[Misc] Linuxビボ〜ろくメインページ

とうとう10,000アクセスに到達しそうです。記念ですのでキリ番取った方はご一報を。

#一番下の方にちっちゃくアクセスカウンタがあります、見つかるかな?(^^;)。

[Tools] 付箋/Ruby

なるほど。そういうことでしたら、以下のパッチはいかがでしょう。
$fusen --mofile /home/hoge/fusen/data/locale
とかで、mofileを指定できます。
--- fusen.org   Thu Feb  7 00:21:39 2002
+++ fusen       Thu Feb  7 00:28:52 2002
@@ -2659,12 +2659,8 @@
 #      Main
 #
 require 'getopts'
-if !$NO_GETTEXT
-       include GetText
-       bindtextdomain("fusen")
-end
 
-getopts( "", "browser:", "argfmt:", "face:", "rc:", "shape", "help", "stamp:")
+getopts( "", "browser:", "argfmt:", "face:", "rc:", "shape", "help", "stamp:", "mofile:")
 
 if $OPT_help
        STDERR.print <<"USAGE"
@@ -2689,6 +2685,9 @@
                --stamp XPMFILE
                        set complete stamp xpm.
 
+               --mofile
+                       set mofile path.
+
                --shape
                        use shape extention.
 
@@ -2696,6 +2695,11 @@
             show this message.
 USAGE
        exit 0
+end
+
+if !$NO_GETTEXT
+       include GetText
+       bindtextdomain("fusen", $OPT_mofile)
 end
 
 if !$OPT_face.nil?
やりすぎ?(^^;)

本日のツッコミ(全1件) [ツッコミを入れる]

ペン忍 [はじめまして。はじめてきたのに、10000踏んでしまいました(^^ゞ]


February 07, 2002 Linuxビボ〜ろく10,000カウント突破! [長年日記]

[Misc] 記念すべき10,000カウントはペン忍さんでした

つーか、ツッコミ第一号もペン忍さんです。なんと2冠です(^^;)。はじめていらっしゃったとのことですが、これも何かの縁だと思いますので、たまに覗いてやってくださいまし。

にしても、やっぱり感慨深いですね。Linuxビボ〜ろくをはじめた頃はまだLinux-2.2.0がリリースされたばっかりでUNIXなんてほとんど触ったことなくて....(以下略)。

[Ruby] Ruby-GNOMEメモruby-talkで紹介されちゃいました

このところ、加速度的に私のページを見に来てくれる人が増えてきていてとてもうれしいのですが、なんと、Ruby-GNOMEメモを読んでくれてる外国の方がいらっしゃいました。日本語しかないので、きっと、コードの断片から色々と想像して読んでるんでしょうけど、効率悪いだろうなぁ。Ruby-GNOMEメモは英語化したいコンテンツの一つなのですが、日本語部分すら満足に進んでいない現状、英語化はまだまだ先でしょう。つーか誰かやってくれる人いませんか?


February 09, 2002 [長年日記]

[Palm] Sony CLIE(PEG-N700C)がPalmOS 4.1になって帰宅

6,300円也。インストールされていたソフト等は全部クリアされちゃってるのね。まぁ、しょうがないか。

で、さっそくLinuxに取っておいたバックアップを戻そうとするとsyncできない....うーむ。

やっぱりOSが4.1になっちゃったのが原因かなぁ。

とりあえず、pilot-link portal pageを見てみてもよくわからん。なにやらCVS版はいろいろと手が加えられている様子だけど、あまりPalmOSのバージョンアップに関係はなさそうだなぁ。

[Kernel] Kernel 2.4.18-pre9

CLIEでsyncできないのはひょっとしてOSが原因?っと思って、OSを2.4.18-pre9にバージョンアップ。

でも変わんないや。残念。


February 11, 2002 [長年日記]

[Ruby] Ruby GetText Package

配布用のtar玉にCVSディレクトリが含まれていて、install.rbでインストールするとCVSディレクトリも一緒にインストールされてしまいます(平松さんご報告ありがとうございます)。 早急にCVSディレクトリがインストールされないようにしてバージョンアップをしたいと思いますが、それまでは以下のようにしてからインストールしてみれば(CVSディレクトリが削除されますので)問題を回避できます。
 $ruby pre-clean.rb
なお、インストール時にCVSディレクトリが一緒にインストールされても特には問題はないです。もし、気持ち悪いようでしたらCVSディレクトリ以下をざっくり削除してください。


February 12, 2002 [長年日記]

[Palm] 会社のMS Windows2000でCLIE(PEG-N750C相当(^^;))をsync

すげーはまった。PEG-N700Cの環境を残したままPEG-N750C用にCLIE付属ソフトをアップグレードしたのがまずかった。

初めてSyncした時、なぜか途中でエラー終了してしまう。

その状態でもなんとかブート(というんだろうか?)はするんだけどホーム画面が表示されない。はたまたSyncボタンも利かない。何より部分的にハイレゾになったりならなかったりでめちゃくちゃ動作が不安定。

なぜだろうと悩んでハードリセットを繰り返した挙げ句、以前の環境の(CLIEアプリのパス)\Backupフォルダに古いPEG-N700C用のアプリが残っていて、それをPEG-N750C化された本体のアプリを上書きしたのが原因だったことを突き止めた。

そんなわけで、(CLIEアプリのパス)\BackupフォルダのアプリでPEG-N750Cと重複しそうなアプリ(*.prcファイル)を全部削除してから再度Syncしたところ無事完了。ふぅ。

にしても、標準でMS OutlookとのSyncができるのが良いね。以前は有料のDesk Top To Goというツールを使ってたんだけど、もう使わないで済むとはうれしい限り。

#え?会社ではMS Outlook使ってるって?会社指定なんでしょうがないんです。でも、結構使いやすかったり(^^;)。

そうそう、英和・和英辞書も助かる。他にもおまけ(?)アプリ多数。なんか6,300円でこんだけいろいろ入っているのはお買い得感があってマル。


February 13, 2002 Ruby GetText Package 0.1.2 is released. [長年日記]

[Ruby] Ruby GetText Package 0.1.2をリリースしました

メインは平松さんに指摘された問題の修正版という位置づけですが、細かい変更もいくつか入っています。それからサンプルとしてRuby/Tk版を用意しました。


February 14, 2002 XREAのアクセスログ解析結果をローカルに取得 [長年日記]

[Tools] XREAのアクセスログ解析結果(analog出力)をローカルに取得保存する

今日からXREAのアクセスログページ(analog出力)のURLにアクセス制限がかかるようになった。実はこれまでアクセスログは誰でも見放題だったことには気づいていてちょっとまずいよなぁと密かに思っていたところだったので、それが改善されたのは喜ぶべきことだ(←えらそう(^^;))。

そんなわけで(?)、アクセスログをローカルに取得するツール(RubyのCGI)を作ってみた。ローカルに落とす途中にジャマな広告も削除してくれる。

一応、CGIとしてじゃなくても動くので、XREAユーザはお試しアレ。

#実は前からあったんだけど、アクセス制限なしで取得できちゃうのはさすがにマズイと発表するのやめてたんだよね。

そうそう、テキトーに気持ちの赴くままに作ってて、Rubyも1.7.2以降じゃないと動かないんだよね。すまそ。


February 15, 2002 XREAのアクセスログ解析結果取得 + FTPでデータのダウンロード [長年日記]

[Tools] get_xrea_analog → get_xrea_data

なんかちょっとだけ期待されてるような気がしたのでRuby1.6系で動くか確認するついでにバージョンアップしてみた

 今回は
  1. analogの結果と同時にFTP経由でXREA上のデータをダウンロードできるようにした
    といっても、wgetを呼んでこれと同じことをしているだけなんだけどね
  2. コマンドラインからの実行をちょっとだけユーザフレンドリにした
ってところが大きな変更点かな。

そんなわけで、スクリプト名もget_xrea_analogからget_xrea_dataに変更。

これで、XREAのtDiaryのデータもanalogの結果もローカルにダウンロードできるようになったので、サーバがダウンしても被害は抑えられるな。

そういや、cronで動かすってのも良いかも。

あ〜、肝心なこと忘れてた。Ruby 1.6.xでもたぶん大丈夫。少なくともRuby 1.6.5では大丈夫。れっつとらい。

本日のツッコミ(全1件) [ツッコミを入れる]

Nana [こにちわ。実はCGIとして(ブラウザで表示させる方です)やってみたのですがxreaからえらーページが表示されちゃいま..]


February 17, 2002 safeshutdown [長年日記]

[Tools] safeshutdownというshutdownのラッパスクリプトを作ってみた

何をするかっつーと、safeshutdownを実行するとshutdownする前にホスト名(hostnameコマンドの結果と比較)を聞いてきて、正しくホスト名を入力しないとshutdownはできない。そんだけ。他は全くshutdownコマンドと同じ。

Linuxを1台しか使っていない人にはピンと来ないと思うが、複数のサーバを管理し、リモートからX端末を使って作業をする人なんかは、「自分が思っていたサーバと違うサーバで作業していた」なんて経験があるはず。

特に作業系と実稼働系の両方で作業をしている場合で、間違えて実稼働系をシャットダウンしてしまった日にゃ目も当てられない。場合によっては始末書モノだよね。

というわけで、シャットダウンをする際にこのsafeshutdownを常日頃使うように心がけておけば、うっかりコマンドをたたいてしまっても、ホスト名を入力することで若干ではあるがミスを回避できる。ま、結局のところは程度問題なんだけどね。

にしても、こういうツールはディストリビューションに標準で入っていてくれるとうれしい気がするんだけどな....。

本日のツッコミ(全1件) [ツッコミを入れる]

ただただし [シンプルだけど有効でいいアイデアですねー]


February 18, 2002 [長年日記]

[Tools] safeshutdown

あ、たださんに感想もらっちゃった(*^o^*)。どーもありがとうございますです。

そうそう、調子に乗ってsafeshutdownの英語ページ用意してみた。添削くんボシュー。

[Misc] safeshutdownに絡めて最近思うこと

機械が便利になり、いろいろなモノが自動化されていくにしたがって、人間のミスつまりヒューマンエラーというのが比重を増していくよね。機械が決めれない部分を人間がやるわけだからそれだけ重要なことをするわけだし。

その割には*NIX系のコマンド・アプリケーションやツールはイマイチユーザフレンドリじゃ無いような気がするんだよね(というか対ヒューマンエラーレベルが低い)。特にrootのコマンドとかはね。もちろん「rootはスペシャリスト以外は触っちゃイカン!」って言う発想もわからないでもないけど、もうちょっとヒューマンエラーを避ける工夫があっても良いんじゃないのかなぁ。他の人たちよりも重要なことをやるわけだしね。

そんなわけでsafeshutdownを作ってみたんだけど、これ自体まだやれることはあるだろうし、まだ他にも改善できるコマンドとかがあるような気がするんだよね。

例えば、rmコマンド。やっぱりこれほど危険かつ頻繁に使われているコマンドって無いよね。

たぶん、普通の人はrm をrm -iにエイリアスしたりして使ってるんだろうけどこれぢゃ不十分な気がするんだよね。特にオイラなんかそっこーで\rm hogeとかエイリアスを効かないようにして実行しちゃってるからaliasだとあまり意味がないし。無理にaliasにしていてそれを効かないようにしている分、たちが悪かったり。

とはいえ、どんなrmコマンドが良いのだろうと聞かれるとちょっと困る。まぁ、おおざっぱに言えば、

「うっかり実行すると言うことを避けれて、かつ、やり直しが効く」

ってとこかなぁ。

そうだ。/usrとか/varとか/etcとかの重要そうなディレクトリは削除する際には必ずホスト名を聞かれるとかはど〜だろう(それを/etc/rm.confで指定できたりしたら面白いかも)。

まぁ、あれこれ考えると今のところの実装ではやっぱりMS WindowsやMacにあるゴミ箱かなぁ。そういや昔、mvコマンドで代用している人がいたなぁ。履歴が取れるようになれば良いのかな〜。でも、それぐらいだったらすでに実装がありそう。

#ま、それを言ったらsafeshutdownなんてどこにでも転がっていそうな気はするんだけど....(^^;)。

そんなわけで、ここで書いたことを実現しているツールとか(あるいはshellの設定とか(^^;))って知ってる人います?すでにあるなら使ってみたいなぁ。

P.S.

各種設定をWebから行うことで極力CUIを触らないようにするというのは解の一つではあるなぁ。そうするとWebminあたりが現実解なのかな。でも、それで管理者って言うのはちょっと寂しいかも....というのは偏見か....。なんかまとまらん。

[Tools] get_xrea_data

get_xrea_dataをバージョンアップしました。今回はProxy対応です。けど、オイラはProxy使ってないので試してないです(^^;)。 それから、ちょっとだけドキュメントとエラーメッセージを親切にしました。またチャレンジしてみてくださいね。> Nanaさん


February 19, 2002 サーバ管理者の憂鬱 [長年日記]

[Misc] safeshutdownに絡めて最近思うこと(2)

くわがたさんにコメントもらう。どもです。

consoleで言えば、一つのconsoleからいくつものサーバに(多段にリモートで)ログインして作業することをイメージしてます。あるいは複数の仮想端末からいくつものサーバにログインして作業する感じですね。

だからXのセッションとかは直接本旨とは関係ないです。safeshutdownもXとは一切関係ないです。書き方悪かったかな。

ちなみに、くわがたさんのところではXのセッションを終わらせてconsoleでシャットダウンとのことですが、私の場合、サーバは元々Xはあげて無くて、リモートからMS WindowsのTeraTermとかでtelnet/sshして作業してます(たまにX端末も使うけど)。で、safeshutdownはそこから使うことを想定してます。

それから、私は仕事ではLinuxは(ほとんど)使ったことないんで、Linux云々と言うよりも*NIX系の一般論として言ってるつもりです。BSD系も含むってな感じで。というわけで文化の違いと言われるのはちょっと抵抗を感じますです。

CVSのことですが、それは私の問題定義の意図とはちがいますよ〜。rmコマンドの代用にはなりませんよね。それに、やっちゃったモノを復元はできますが、やること自体を防ぐモノではないですよね。もちろん、それで充分といえば充分ですが元々の論点とはちょっとずれるです。

haltアカウントは以前使ってました。結構メジャーなテクですよね。まぁ、当時はsshではなくtelnetでしたけど(^^;)。確かにこの方法も有効ですよね。でも、なんか使わなくなっちゃったなぁ。なぜだろう。

「設定とかで甘やかすとどうかなぁ」という点に関しては現状の*NIXな管理者を育成するという観点からは私も同意しますが、最近流行のアプライアンス的なアプローチというのも(今回の問題定義に対する解の方向性としては)有効じゃないかなと思ってます。

実際、私はGUIというのは各種の設定を楽にするために必要とされている割合は高いと思ってます。RuWeexなんかもそれを意図して作ってます。

でも「設定はテキストファイルをそのまま編集するんじゃぁ」的な人にはきっとじゃまなもの以外の何モノでもないんでしょうねぇ(そーか、だからユーザが少ないのか....(-o-))。


February 20, 2002 サーバ管理者の憂鬱(2) [長年日記]

[Misc] safeshutdownに絡めて最近思うこと(3)

なんか若干誤解があったようで。

文化的とはそう言う意味でしたか。これは私が完全に読み違えてました。言い訳をさせていただくとすれば、

「しかし、良く考えるとDebianとかRedHatって.....(略)普通かも知れない(*7)。まぁこういうのも有りなのかも知れない。このへんが文化の差なのかもとも思う。

:

:

*7 BSD系のOSすきすき人間(ちょっと意味が異るが)でLinuxは(ちょっとしか)使った事無いので良く知らないけど」

のfootnoteとのつながりを見て、「Linuxはそういう文化かもしれないけど、BSDの文化とは違うよ」と言ってらっしゃるのかと思いました。昔、そういうこと言う人が周りに多くて、多少うんざりしていたので(^^;)。くわがたさんの中の文化が私と違うということですね。それなら納得です。たぶん、そう思われている方も多いと思いますし(つーか圧倒的多数だと思います。じゃなきゃ、すでにOSにそういう機能が搭載されてる思うし)。

P.S.

それと、たぶん、くわがたさんは推敲前の私の文章読まれたんですね。免罪符とか。結構、行き過ぎた表現があったので、そっこーで修正したんですが、どうやらその間に読まれてしまったみたいです。オンラインで更新される場合はその辺の書き方に気をつけないといかんですね(^^;)。不愉快な気分にさせてしまったようで申し訳ないです。は〜、反省。


February 21, 2002 Ruby GetText Package 0.2.0 is released. [長年日記]

[Ruby] Ruby GetText Package 0.2.0をリリースしました

GetText.N_(msg)というメソッドを追加しました(required by さかいさん)。

これで気がついたんだけど、Rubyって大文字で始まるメソッドを定義できるのね。しらんかった...。でも、RubyLexでは定数(TkCONSTANT)として認識される(通常、メソッドの場合はTkIDENTIFIERのはず)。どっちが正しいのだろう。

気持ち的には、大文字で始まるのは定数というイメージがあるから大文字で始まるメソッドはない方が良いような気がするけど、でも、そうするとGetTextの方を考えなおさなきゃだしなぁ。

そうかぁ。こんな事もできちゃうのか(ruby 1.7.2 (2002-01-05) [i686-linux])。

 def A=(a) a + 1; end
 
 def B(b) b + 1; end
 
 p A = 2  # -> 2 定数Aに値を代入しているだけ。メソッドA=(a)が呼ばれたわけではない。
 p A = 3  # -> 3 ここはwarningが出る。 warning: already initialized constant A
 
 p B(2)   # -> 3 こっちはメソッドB(b)を呼び出してる。
 p B(3)   # -> 4 こっちは大丈夫。
当たり前と言えば当たり前な振る舞いだけど、この違いはちょっとわかりづらいかも。まぁ、滅多に使うものでもないからこれはこれでも良いのかな。


February 22, 2002 目がかゆい、鼻水がとまらない [長年日記]

[Ruby] 大文字で始まるメソッド名

さっそくZnZさんがコメントしてくれました。どうもです。

なるほど、FloatとかArrayとかってメソッドなんすね。今まで特殊なオブジェクト生成方法(Float.new()のAlias)だなぁなんて思ってたりしてたというのはここだけのヒミツと言うことにしておいてください(^^;)。

RubyLexがTkCONSTANTになるのもそれでいいみたいです。

で、よく考えなおしてみると、昨日の例は、思いっきり考え違いしてる。アホだ < 自分。

 
 def A=(val); val + 1; end 
 def a=(val); val + 1; end
 
 p self.A = 2 #これはメソッド呼び出し
 p self.a = 2 #これもメソッド呼び出し
 
 p self.A = 3 #これもメソッド呼び出し
 p self.a = 3 #これもメソッド呼び出し
 
 p A = 1      #これは定数
 p a = 1      #これは変数
 
 p A = 2      #これは定数に二度目の代入をしようとしている。

うーぬ。それにしても=()メソッドはいつも難しい。

[Ruby] Ruby GetText Package 0.2.1

余計なこと(?)に気を取られて、思いっきりバグってました(←言い訳)。万が一、0.2.0をインストールしてしまった方は、0.2.1にアップデートしてください。


February 25, 2002 [長年日記]

[Misc] Linkavailable: Ruby,diary

捕捉していただいてありがとうございます。にしても、大丈夫なのだろうか? < 自分。


February 28, 2002 風邪ヒイタ [長年日記]

[Ruby] Ruby/GTKのDrag and Drop周りの実装をしてみた

一応完成。多少確認して(全部とは言えない(^^;))、明日、Neilに送ろう。

でも、今回のパッチはやたらでかい。いろいろ未実装なクラス・モジュールをいっぺんに実装しちゃったからね。

前にNeilに、できるだけ小さい単位でパッチを送ってくれって言われた事あるんだけど、また言われそう(^^;)。

つーか、大きすぎてパッチ取り込んでくれないかも....。ちょっと不安だ。

でも、サンプルスクリプト作って、ドラッグアンドドロップができるようになったときはちょっとかんどーした。