ホーム > 結城浩の日記 > 2003年2月 | 検索 | 更新情報 |
読者の声 | 先月 | 来月 | 日記ダイジェスト |
|
多忙なり。
メモ。[Roba/2001]は約1500通、[Roba/2002]は約2200通。
木曜日は黙々お仕事。
[REF] JAVA Developer誌の連載記事「結城浩のリファクタリング・レッスン」の原稿書き。 今回はモデルとビューの分離(ドメインとプレゼンテーションの分離)という話、 にするつもりだったが、その前段階として、「観察されるデータの複製」というお話。 つまりはObserverパターンや、イベントリスナーにまつわるお話になる。 Swingのお話も。 とりあえずプログラムを書く。 …そして、Observerパターンのお約束、 updateの無限ループにはまりまくる。 やれやれ。
そして毎度のように「シンプルなサンプルを作るのは難しい」と思う。
そういえば、SUN SUPER TECH DAYSで販売されているはずの、 私のサイン本はどうなっただろう。 ブースに来たお客さんから、 「サインがついてない本はありませんか」 とか言われていたらどうしよう、などという妄想は、私の自己顕示欲の裏返し。 SUN SUPER TECH DAYSへ行ってソフトバンクパブリッシングの本を買う予定の方は、 以下の割引クーポン券のプリントアウトをお忘れなく。
…ということを日記に書いていたら、 レビューアさんのお一人からソフトバンクパブリッシングの売り場は盛況ですよ、 という現場レポート(?)が到着。すごいなあ、リアルタイムレポート。 感謝します(^_^)。
ふと、思いついた。
今日の私は、今日死ぬ。
明日の私は、明日生まれる。
今日一日を、せいいっぱいに生きるため、 「今日の私は、今日死んでしまう」と考えてみる。 そう考えると、過ぎ行く一分一分が、 血の一滴一滴のように、かけがえがないものに思えてくる。
今日の命を終えるまで、私は何をするべきだろう。 今日の命が終わるまで、私は誰を愛し、何を考え、誰を赦し、—— 誰から赦してもらうべきだろう。
かみさま、かみさま。 愛と知恵と勇気をください。
愛する天のお父さま。あなたの御名を賛美します。 あなたはすばらしいかた。あなたは偉大な方。大いなる方。 とこしえからとこしえまで変わることなく、 永遠を越えた永遠に住まわれる方。預言し、預言を成就なさる方。 何よりも強い方。万軍の王、万軍の主であられる方。 公正で、あわれみ深く、はかりしれないほどのお方。 あなたの御名とみわざをほめたたえます。
主よ。あなたはなんとすばらしい方でしょう。 強いものをくじき、弱い者を強めてくださる方。 人間の計画をはるかにこえた計画をととのえ、それを成就なさる方。 あなたの御名を賛美します。
あなたがその深き愛をもって、 私たち一人一人に「今日」という時間を与えてくださることを感謝します。 そうです、感謝します。私たちは忘れがちですが、 あなたが与えてくださる時間と命によって、 私たちはすべての活動を行っています。 つい「自分の力で行った」と勘違いしてしまいますが、 いま、もう一度、あなたのあわれみによって私たちに時間と命が与えられていることを覚え、 感謝します。
かみさま。あなたは私たちの一人一人を愛してくださいます。 そのことを感謝します。あなたは愛深い方。一人一人を最善の道へと導いてくださる方。 主よ、あなたを信頼します。あなたは誤りなき導き手だからです。 あなたが私たち一人一人に対して、最高の生涯を用意してくださること、 そしてあなたを信じる者すべてに、 さらに永遠のいのちを用意してくださっていることを覚えて感謝します。 私たちにはその資格がありませんのに、 かみさまは、その大切なひとりごイエスさまをこの地上に送ってくださいました。 それは何と尊い贈り物でしょう。何と高価な贈り物でしょう。 私たちの命の代償として、私たちの罪の身代わりとして、 イエスさまの血が流されました。 本来なら私たちがあの十字架にかかって、みにくく呪われた死に至るはずでしたのに、 イエスさまが私たちの代わりに十字架にかかってくださいました。 そのことを畏れつつも感謝します。
イエスさまの生涯は十字架で終わったのではありませんでした。 死に打ち勝ち、三日目によみがえられました。 それは私たちに大きな希望を与えてくださいます。 イエスさま。あなたを信じる信仰によって、義とされ、 来るべき時にあなたによって天へと引き上げられ、 栄光のからだに変えられることを感謝します。
永遠でないものは変わり果て、滅び行き、忘れ去られ、失われます。 しかし、主よ。 あなたはとこしえまで変わらない方。 あなたの御言葉は永遠です。 あなたの御名を賛美します。
神様。 毎日、自分勝手に、自分勝手な思いをもって生活しがちですけれど、 どうか、イエスさま。私たちをあわれんでください。愛を送ってください。 私たちは神様からの時間と命がなければ、神様からの愛がなければ、 ほんの少しの間も生きていることができません。
主よ。遠くにいる人のことだけではなく、 自分のすぐそばにいる人のことも祈ることができますように。 自分に良くしてくれる人に対してだけではなく、 自分を阻害する人に対しても祝福を祈ることができますように。 主よ。あなたの大いなる愛を送ってください。
現在、この不況の中にあって、多くの人が仕事をなくし、たいへんな苦労をしています。 神様。どうか苦しんでいる人の上に、最高の助けを与えてください。 自暴自棄に陥ることなく、またサタンの誘惑に負けることなく、 いつも主を見上げ、神様を信じて、希望に燃えて歩むことができますように。 前向きに考え、日々を歩むことができますように。
神様。また多くの人たちが人間関係に悩んでいます。 ある人は友がいないことを、ある人は友を傷つけたことを、 ある人は友に傷つけられたことを悩んでいます。 また結婚の希望を持ちつつも、なかなかよい出会いにめぐり合えない方もたくさんいらっしゃいます。 結婚していても、配偶者とうまく意思疎通をすることができず、 気持ちをひとつにできない方もいらっしゃいます。 あるいは、神様が悲しまれる不倫の関係から抜け出せず、 苦しみ・あるいは底なしの不安を感じている方もいらっしゃいます。
神様。人間関係に悩む一人一人の上に、神様のよい導きがありますように。 私たちの人生をしっかりとガイドしてくださる聖霊様が、 導いてくださいますように。 健全なよい出会いを与え、必要なコミュニケーションをとる機会を与え、 ふさわしい言葉を与え、そしてしっかりとした勇気と愛を与えてください。 過去の呪縛や、不実な人間関係の呪縛から、イエスさまが解放してくださいますように。
神様。そして何より、まだあなたを信じていない人々に、 よき信仰を与えてください。 あなたの愛に触れたことのない人の上に、 あふれんばかりの愛をそそいでください。 聖書のみことばを通して、イエスさまご自身が語ってくださいますように。
主よ、このサイトに集う一人びとりの上に、 豊かな祝福を与えてください。お願いします。 生き生きとした毎日、信仰と希望に燃えた人生を与えてください。 主からの愛をいっぱいに受けて日々を歩むことができますように。
この祈りを、尊きイエスキリストのお名前によって、 みまえにおささげいたします。
アーメン!
[CR](ra) 新しい章の書き始め。 まずは全体をばたばたばたと書いた。
新しい本のアイディアを思いついたのでメモをする。 ちょっとドキドキする。
[Wiki] オフ会以来、tDiaryのたださんのところも巡回するようになった。 以下のリンクは、Wikiの話。
WikiのSN比を改善するにはノイズを下げるだけではなくシグナルを上げるという方法もある。 ハイテク(技術的な対策)でノイズを下げるだけではなく、 ハイタッチ(運営体制)でシグナルを上げるのも有効、という話。
[DP/ML]でnekopさんが紹介してくださったDigesterは、 The Jakarta Commonsの一種。 The Jakarta Commonsは、Jakartaプロジェクトのサブプロジェクトで、 再利用できるさまざまな種類のJavaコンポーネントが集まっている模様。 すごく便利。すごく楽しい。
昨晩のオフ会の話を少し書きましょう。
もともとはyomoyomoさんが上京なさる機会をとらえて、 サイン会をやろう、わーわー、と yucoさんのtDiaryのツッコミ機能で盛り上がったのが発端(らしい)。 ツッコミ機能がコミュニティ活動を加速する一例。 参加者などは、yucoさんのページの このあたりに関連リンクがあります。 ふだん結城はオフ会には出ないようにしているのですが、 翻訳者のyomoyomoさんにお誘いをいただいたので、 出席させていただきました。
当日、小雨の中、JR田町駅から会場にむかう途中、ふと横を見ると、 いかにも今回の会に関連している様子の人たちが集っていたので、 声をかけてみると「当たり」でした。【どんな様子だ おれカネゴン】
当然ながら、WikiやtDiary利用者、 また自分のページや自分のドメインの所有者が多いという集まりですね。 いつもネットで見ているサイトの、 おれカネゴンさん、 shinoさん、 ほそのさん、 森山さん、それからもちろん yomoyomoさんにお会いできたのはなかなか貴重な体験でした(他の方々、はしょってしまってごめんなさい)。 みなさんだいたいイメージどおりだったかなあ。 いちばんイメージと違っていたのはyomoyomoさん。 なかなかハンサムな好青年なのである、この人。
そうそう、tDiaryの開発者 たださんにもお会いできました。
ちょっとした座興としてOpenOfficeのImpressを使って「Wiki Wayクイズ」を作っていき、 みなさんにご披露しました。けっこうウケてよかったよかった。
話題を列挙してみよう。
Web日記・blog・Wiki・ネットコミュニティ・ドメイン ・安価なプロバイダ・Wikiスタイル・Perl・Ruby・教育問題・住基ネット・ある会社のtDiary利用率が高い ・日記の更新頻度・サイトの魅力・Wikiの比較・XSS・@Random・家族にWeb日記は見せられるか ・Wikiとプログラマ心・関心空間・論理行と物理行・エディタとキーボード・山形浩生・Wikiの利用例・tDiaryの魅力…。 ここに書けない話題もたくさんお聞きしました。なるほど、なるほど、という感じです。
個人的には、 おれカネゴンさんのUNIXお師匠さんからうかがったお話(教育関連の話題)に特に興味がひかれましたね。
結城の日記を読んでくださっている方が多く、何だかとっても感激でした。 みなさん、お付き合いありがとうございます。
最後になりましたけれど、yucoさんのコーディネート力にも感謝します。
今日は、上京しているyomoyomoさんを囲む会に出席しました。 yomoyomoさんは、想像していたよりもやさしそうで素敵なナイスガイでした。 Wiki Wayの訳本にサインしていただきました♪ いろいろ書くことがあるのですが、もう眠いのでまたいつか。 おやすみなさい。
shinoさんに、 www.hyuki.comのサイトのために祈っていただきました。 感謝します。
読者からの質問
こんにちは、いつも楽しく拝見しています。 プログラムを学ぶようになって、 最初はわからなかったことが、 後から徐々に理解できてくるのが自分が成長しているようで楽しいです。
2つ質問があります。PERLとPHPはどのように違うのですか? またどちらを勉強したほうがよいと思われますか。
もう1つは、プログラムではないですがFlashについてです。 最近よくサイトに使われていますが、必要だと思われますか。 もしよろしければ、お答えください。
お体にはくれぐれも気をつけてください。 新刊楽しみにしています。
結城からの回答
こんにちは。 プログラミングを学ぶのは楽しいですよね。
PerlとPHPがどのように違うか、を一言で言うのは難しいですね。 どちらかといえば、PHPのほうがPerlよりもWeb指向だと思いますけれど、 PHPにできることはPerlにもできるし、 PerlにもできることはPHPにもできます。 片方で学んだことは他方を学ぶときに無駄にはならないと思います。
どちらを勉強したらよいか、 という問いについては「場合による」という答えになりますね。 Webをあちこち見て、 PHPはこういう風に使われているのか、 Perlはこんな風に使われているのか、 という情報をつかんでいくのがよいと思います。
もしもやりたいことがはっきりしているなら、 そのやりたいことと似たことをしている会社や個人を探し、 その人がどんな道具を使っているかを調べるのもよいでしょうね。
私はPHPよりもPerlを使っています。 PHPはそれほど詳しくはありません。 Perlを使っている理由はたまたまPerlを使い始めたからで、 自分がやりたいことがそれでできるので、 特にPHPを新たに使う必要性を感じなかったからです。
Flashについても「場合による」と思いますよ。 たとえばテクニカルな情報サイトだったらあまり好まれないでしょうけれど、 アート系(?)サイトの中にはFlashがないとつまらないというサイトもあるでしょうし。
数年前に比べて通信回線のスピードは格段に上昇していますから、 Flashを使っているからといってそれほどストレスを感じなくはなってきました。 でも、Flashを使っているサイトをよく見てみると、 代替ページとしてHTMLのサイトも用意していますね。 それは、Flashを見ることができないユーザにも対応したいからです。 Flash「だけ」という路線はあまり好まれないと思います。
要するに、PHPもPerlもFlashも道具ですから、 適切な場面で使えば有効ということですね。
[CR](ke)を何とか送付…。 これで、No.024とNo.025まで送ったことになります。
[CR/Review] レビューアとのやりとりは2554通。
[CR](ke)の章はどんどん長くなりつつある。 もう少し引き締めてからレビューアさんたちに送ることにしよう。
クニエさんの「てくてく」で「数列クイズ」に反応があった。 とてもうれしい。 特に、数列を思いつくことの大変さに言及してくださったことがうれしかった。 実はその通りでして、あのクイズは問題を作るのがけっこう大変なのです。 何も書くものもないし。 長男に添い寝して、二人で目をつぶって声だけでやりとりして、 最後には二人とも頭がぐるぐる回ってしまったのでした。
これまで、長男に出したことのあるクイズは次のようなものです。 いま思いつく限り列挙してみます。
出先から家に帰ってきたら本が届いていた。 せっせとサインし、この本が用いられますようにと祈る。
みなさま、いつも結城の活動を応援くださりありがとうございます。
毎回、私は新刊が出版されると「サイン本販売」のささやかなイベントを行っていますが、 今日はいつもと違うルートでの「サイン本販売」のご連絡をしたいと思います。
2003年2月26日(水)〜28日(金)の三日間、 パシフィコ横浜でSUN SUPER TECH DAYSが開催されます。 その中のソフトバンクパブリッシング(JAVA Developer)のコーナーで、 私のデザパタ本とスレッド本が購入できますが、 会場では、結城のサイン本も何冊かご用意する予定になっています。
ええと、予定、と書いているのは、 私はまだ実際にはサインしてないからであって、実際には「決定」です。 私んちに本が届いたらサインして送り返す手はずになっています。 私が会場でサインするわけではありません。 それから、いつもの新刊のサイン本では個人的なメッセージをお書きしていますが、 今回のサイン本ではそれはできません。…当たり前か(^_^;
なお、下のリンク先にあるPDFのクーポン券をプリントアウトして持参すると、15%オフで購入できますので、 ご購入予定の方は、プリントアウトをお忘れなく。
というわけで、SUN SUPER TECH DAYSに行かれる方は、 パシフィコ横浜会議センター3Fのソフトバンクパブリッシングのコーナーにぜひお立ち寄りください。
日付の年号が間違っていたので修正しました(2002→2003)。 ご指摘くださったshinoにゃん。に感謝します。
All About Japanさんが主催する 「All About Japan スーパーおすすめサイト大賞 2003」 の中で、メールマガジン「結城浩のPerlクイズ」が、 スーパーおすすめメールマガジン2003を受賞しました。
応援してくださる皆様に心から感謝し、主の御名をほめたたえます。
All About Japanさんからは、昨年2002年にも「スーパーおすすめサイト大賞2002」で、 www.hyuki.com全体が「編集長・審査員特別賞」をいただきました。 二年続けてのおめでたい話で、とても感謝しています。
長男「ねえ、寝る前に何かお話して」
私「じゃあ、クイズをしよう」
長男「うん!」
私「いまから4つの数を順番に言うから、次の数を当てるんだよ」
長男「わかった」
私「0, 1, 2, 3, 次は?」
長男「4」
私「正解。じゃあ次ね。1, 3, 5, 7, 次は?」
長男「9。簡単じゃん」
私「ここまでは小手調べ。だんだん難しくなるよ。1, 10, 100, 1000, 次は?」
長男「10000」
私「正解。0, 2, 4, 6, 次は?」
長男「8。簡単だよ」
私「次は難しいよ。1, 3, 6, 10, 次は?」
長男「え? 1, 3, 6, 10, ???…わかった『三角形の数』だね!」
私「そうそう」
長男「じゃあ、12だ!」
私「がっくり。ちがーう、計算違い」
長男「ごめん。15だった」
私「正解。じゃあ次は、1, 4, 27, 次は?」
長男「三つしか言ってないよ」
私「うん、これ以上になると暗算が難しいから」
長男「1, 4, 27, ???…3増えて、23増えて、…わかんない」
私「じゃあヒント。4は2の2乗です。27は3の3乗です」
長男「わかった。16」
私「がっくし。どうして?」
長男「4の4乗でしょ」
私「16は4の2乗だよ」
長男「あ、そうか16×4は…」
私「16は4の2乗だから、4の4乗を計算するには16の2乗を計算すればいい。答えは256」
長男「ふうん」
私「27を「20と7」って考えるだけじゃなく「3の3乗」って考えるのも大事だよ。これであなたは27とちょっとお友達になったんだ」
長男「ふうん」
私「じゃあ、次はすごく難しいよ。2, 3, 5, 7, 次は?」
長男「…うーん…9かな?」
私「ちがう」
長男「うーん、わかんない。どうして2なんだろう」
私「答えは、素数でした」
長男「2, 3, 5, 7, あ、ほんとうだ。次は11だね」
私「そう。次も難しいよ。7, 4, 1, 8, 次は?」
長男「うーん…わかった5だ!」
私「(びっくりして)どうしてわかったの?」
長男「あのね、うーんとね。10が0なんだ。7から4で3減るでしょう。4から1で3減るでしょう。1から3減るんだけど、マイナスになっちゃうから0に戻したの。それで8。そこから3引いたら5」
私「ふむふむ。なるほど。すごいね。お父さんが考えたルールは『7の段の下一桁』なんだ。でも、あなたの考え方もすばらしい。7は3を食べて10になるから、一の位は3ずつ減っていくんだね。すごいすごい」
長男「(自慢げな顔)次の問題は?」
私「じゃあねえ、一番難しいの。1, 2, 4, 6, 次は?」
長男「うーん、うーん…8かなあ。ちがうなあ…降参」
私「答えは、素数から1を引いた数、でした。だから6の次は10。さあ、そろそろ眠ろうか」
長男「うん」
(10分後、長男がもぞもぞ起きてくる)
長男「お父さーん。頭がぐるぐるして、眠れない」
私「そうだね。ごめんごめん。じゃあ『猫のミー・マー・ムー』の話をしてあげよう…」
『猫のミー・マー・ムー』
むかしむかし、あるところに三匹の子猫がいました。
三匹の子猫の名前はミーとマーとムーでした。
ミーとマーはとてもすばしこくて、 カーテンにつめを引っ掛けて駆け上がることができます。 どどどど。
でもムーはあまりすばしこくありません。 カーテンにつめを引っ掛けて途中までのぼるのですが、 そこで力尽き、ストップしてしまいます。 爪に全体重がかかり、 カーテンを引き裂きながら下に落っこちてきます。 びりびり、どすん。
ミルクの時間になりました。 ミルクが入った三枚のお皿が並べられます。 ミーとマーは上手にミルクをなめます。ペロ・ペロ・ペロ。
遅れてやってきたムーはお皿のふちに手をのせます。 お皿はくるりとひっくり返り、ぜんぶこぼれてしまいました。 ムーはミルクでびしょぬれです。 ムーは自分の体をなめます。ペロ・ペロ・ペロ。
でもミー・マー・ムーの三匹はいつもなかよし。 ミーがあくびをすると、マーとムーも大あくび。 三匹はいっしょに丸くなって、ぐっすり眠ります。
おやすみなさい、よい夢を。
一週間くらい前の話。 近所のコンビニまで牛乳を買いに出かけた。 次男に「一緒にいく?」と聞いたら「いく」との返事。 手をつなぎ、おしゃべりしながらゆっくりコンビニまで往復。
猫よけ(?)に、水を入れたペットボトルが10本ほど、電信柱の周りに縛り付けてあった。 次男はそれを見て一言。
次男「水、捕まっているねえ…」
それを聞いて、わたしはものすごく楽しい気持ちになった。
私「そうだねえ。どんな悪いことしたんだろうねえ…」
その午後、私が寝室で昼寝をしていると、 長男と次男の二人が侵入してきて遊び始めた。 どうも、長男は何かの戦闘シーンをイメージしているらしく、 次男と無線で通信している様子 (実際は二人で小さな紙の箱を無線機風に耳に当てている)。
長男「もしもし、応答せよ」
次男「どこに?」
長男「? もしもし、お・う・と・う・せ・よ」
次男「どこに落とすの?」
私「(くすくす笑いながら長男に)ねえ、『落とせよ』と『応答せよ』を間違えているらしいよ」
その後も、長男と派遣された次男との通信は続く。
長男「応答せよ。何か発見したか?」
次男「もしもし、プリンのカップですけど(ゴミが落ちていたらしい)」
長男「もしもし、ただちに破壊せよ」
次男「もしもし、トーマスの本ですけど」
長男「もしもし、ただちに破壊せよ」
次男「もしもし、ふとんですけど」
長男「もしもし、ただちに破壊せよ」
もう、私は、二人のまじめな通信のおかしな内容に、笑いがこらえきれない。
今日、久しぶりにアマゾンを見ていたら、 Javaの本のランキングで私の本がトップ10の中に4冊も入っていて驚いた。 応援してくださる読者のみなさんに感謝し、主の御名をほめたたえます。 がんばっていい本を書かなくちゃね。
Microsoft Internet Explorerでは、 Tabキーを押すとフォーカスが移動します。 Tabキーを押し続けると、連続的にフォーカスが移動し、 自動的にスクロールしていきます。 これを利用すると、パラパラ漫画風の「テキストの動画」を作ることができます。
この仕組みを使って「主の祈り」を祈ってみました。 以下の「パラパラテキストによる主の祈り」を開いて、 Tabキーを押し続けてみてください。 結城が入力した「主の祈り」を読むことができます。 仮名漢字変換の様子も見られるので、本当にお祈りしているみたいに見えます。
このページは、hirax.netの平林さんのツールを用いて作成しました。 面白いツールを作ってくださり、深く感謝します。
読者からの情報: Operaでは、aキーの連打でお祈りできるそうです。
まじめに仕事。
日記のインデクスを微妙に変更。
日記ダイジェストを更新。 2002年6月分より抜粋。
心の物語を更新。 「シダコちゃん」ね。
ちょっと微妙なトラブル発生中。回避策はあるが、原因はまだ不明。 どなたかご存知の方がいらっしゃいましたら、ご教示いただければありがたいです。
(1) ActivePerl 5.6を5.8.0にバージョンアップした。
(2) Net::FTPを使ってCGIスクリプトをputしたところ、 ASCIIモードでputしているのにCRLF → "\n" の変換がなされない。これがトラブルである。 CRLFが変換されないと #!/usr/bin/perl の行がCRLFで終わり、CGIスクリプトがエラーになってしまう。
(3) といっても、FTPのdebugコマンドで調べてみるとFTPのプロトコル的にはおかしいところはないようだ。 きちんとASCIIモードに切り替わるTYPEコマンドは送られている。ログは後述。
(4) 問題はファイルのI/OもしくはソケットのI/Oのようである。 しかし、Net::FTPのモジュールそのものは、私が以前使っていたものと5.8.0で違いがないようだ。
(5) Net::FTPを読んでみると、sysopen, sysreadを使ってファイルI/Oをしているようだ。
(6) ハックとして、FTP.pmの中のsub _store_cmdで、 sysreadの後に無理やり以下のコードを入れてみると、 CRLF → "\n" の変換がされるようになった(現在の回避策)。 でもこれはひどい回避策でして、 たとえば\015と\012の間にsysreadのバッファの境目が来たりすると破綻する。
if ($ftp->type ne 'I') { $buf =~ s/\015\012/\n/g; $len = length($buf); }
(7) perldoc perldeltaを使って5.8の差分を調べてみると、 PerlIOのあたりに大きな変更があった模様。Unicode対応に関連して、 layer (過去にdisciplineと呼んでいたもの)を追加できるらしい。 このあたりでCRLFの取り扱いが何か変化しちゃったのかな。
以下、ログ。
●サンプルスクリプト(put.pl) use Net::FTP; use strict; my $hostname = 'server.example.com'; my $username = 'sample@example.com'; my $password = 'samplepass'; my ($localfile, $remotedir) = ('sample.cgi', '/usr/sample/cgi-bin/'); my $ftp = Net::FTP->new($hostname, Debug => 1); $ftp->login($username, $password); $ftp->cwd($remotedir); $ftp->ascii(); $ftp->put($localfile); $ftp->quit; ●サンプルファイル(sample.cgi) バイナリモードで送ると100バイトになり、ASCIIモードで送ると90バイトになるはず。 12345678[CR][LF] 12345678[CR][LF] 12345678[CR][LF] 12345678[CR][LF] 12345678[CR][LF] 12345678[CR][LF] 12345678[CR][LF] 12345678[CR][LF] 12345678[CR][LF] 12345678[CR][LF] ●実行ログ(Net::FTPで送ると100バイトのままになってしまう) Net::FTP: Net::FTP(2.65) Net::FTP: Exporter(5.566) Net::FTP: Net::Cmd(2.21) Net::FTP: IO::Socket::INET(1.26) Net::FTP: IO::Socket(1.27) Net::FTP: IO::Handle(1.21) Net::FTP=GLOB(0x182e7ac)<<< 220 FTP server ready. Net::FTP=GLOB(0x182e7ac)>>> user sample@example.com Net::FTP=GLOB(0x182e7ac)<<< 331 Password required for sample. Net::FTP=GLOB(0x182e7ac)>>> PASS .... Net::FTP=GLOB(0x182e7ac)<<< 230 User sample logged in. Net::FTP=GLOB(0x182e7ac)>>> CWD /usr/sample/cgi-bin/ Net::FTP=GLOB(0x182e7ac)<<< 250 CWD command successful. Net::FTP=GLOB(0x182e7ac)>>> TYPE A Net::FTP=GLOB(0x182e7ac)<<< 200 Type set to A. Net::FTP=GLOB(0x182e7ac)>>> PORT xxx,xxx,xxx,xxx,xxx,xxx Net::FTP=GLOB(0x182e7ac)<<< 200 PORT command successful. Net::FTP=GLOB(0x182e7ac)>>> STOR sample.cgi Net::FTP=GLOB(0x182e7ac)<<< 150 Opening ASCII mode data connection for sample.cgi. Net::FTP=GLOB(0x182e7ac)<<< 226 Transfer complete. Net::FTP=GLOB(0x182e7ac)>>> QUIT Net::FTP=GLOB(0x182e7ac)<<< 221-You have transferred 100 bytes in 1 files. Net::FTP=GLOB(0x182e7ac)<<< 221-Total traffic for this session was xxx bytes in 1 transfers. Net::FTP=GLOB(0x182e7ac)<<< 221-Thank you for using the FTP service on example.com. Net::FTP=GLOB(0x182e7ac)<<< 221 Goodbye. ここでリモートには100バイトのファイルができた。 ●実行ログ(ftpコマンドで送るとCRLFが正しく変換され、90バイトになる) C:\WORK> ftp server.example.com Connected to server.example.com. 220 FTP server ready. User: sample@example.com 331 Password required for sample. Password: 230 User sample logged in. ftp> debug Debugging On . ftp> cd /usr/sample/cgi-bin/ ---> CWD /usr/sample/cgi-bin/ 250 CWD command successful. ftp> ascii ---> TYPE A 200 Type set to A. ftp> put sample.cgi ---> PORT xxx,xxx,xxx,xxx,xxx,xxx 200 PORT command successful. ---> STOR sample.cgi 150 Opening ASCII mode data connection for sample.cgi. 226 Transfer complete. ftp: 100 bytes sent in 0.00Seconds 100000.00Kbytes/sec. ftp> quit ---> QUIT 221-You have transferred 90 bytes in 1 files. 221-Total traffic for this session was xxx bytes in 1 transfers. 221-Thank you for using the FTP service on example.com. 221 Goodbye. ここでリモートには90バイトのファイルができた。
[CR](k) どうして一日にこれしか仕事が進まないのだろうといぶかしく思いながらも、楽しみつつ仕事。
すごく面白い話題があったとしても、それをうまく埋め込める文脈がないと、本の中に取り込むのは難しいなあ。
(@_@)φ
… ずっと仕事をしています。
うーん。むずかしいなあ。文章ってむずかしい。
困ったもんだぜ。
メールマガジン『Java言語Q&A』[JQ]と、 メールマガジン『Perlクイズ』[PQ]を久しぶりに発行。 実は「まぐまぐ」から「最近発行していないですね」というお知らせが来たのであった。 最近はずっと[CR]で盛り上がっていたから、メールマガジンも放置状態であった。 発行のタイミングにあわせて[JQ]のページを新しいレイアウトに更新する。
こういう作業をするときのコツは、 必要に応じて(オン・デマンドに)ちょこちょこやることかな。 そうすると、サイト全体がちょこちょこと新しくなっていく。 [JQ]だの[PQ]だの[CR]だのといったプロジェクトを順繰りにてこ入れしていくと、 タイムシェアリング(もしくは将棋の…なんていうんでしたっけ、一人で多数の人を相手にすること——多面指しだそうです。お知らせくださった方ありがとうございます)みたいに、 たくさんのプロジェクトを一人で切り盛りすることができる。 …というか、 単に自分の好きなことを好きなときに能天気にやっているだけだ、 という話もありますけれど。
放置状態で思い出したぞ。「文章教室」[WL]も放置状態だ。 いや、実は第11回も第12回も昨年のお正月ごろに準備はしてあるのだ。 まあ、気長にお待ちください。[WL]のスレッドが動き出すまで。
[IMIT] まだ進行中だけれど「キリストにならいて」をプロジェクト杉田玄白に正式参加した。 翻訳者名として暫定的に「結城浩ほか」にしておいたが、これはあとで何とかしたい。 デザインパターンFAQのときの「デザインパターン・メーリングリスト有志」のように しっくりくる総称が作れるといいのだけれど。 「キリストにならいて翻訳委員会」なんてやったら、最近の邦画みたいだし。
[CR] (@_@)φ
… ずっと仕事をしています。
またマクドナルド(朝とは別の店)にいる。 注文するとき、相手の言葉に思わず耳をすましてしまう。 さきほどは248円のところ、548円出したところ 「548円からお預かりいたします」と言われた。 端数の有無はあまり関係ないようだ。(^_^) この次はお釣りもいらないように出してみよう。
[CR](k) それはそれとして仕事だ仕事。 (k)の章を書く…が、うーん、行き詰まり。 とはいってもこの程度の行き詰まりは日常茶飯事。 まあ何とか解決するでしょう。とりあえず現在認識している問題点を原稿ファイルに書き込んで、バックアップを取る。
[REF] 編集部さんから分量の調整メールが入ったので、 コメントをつけて返信する。
2003年2月17日に、 もしかしたら、ちょっとめでたいことがあるかも。 現在確認中なので続報を待たれよ。
以下は、ほそかわたつみさんによる、 クラッシュしたディスクから何とかデータを復旧する話です。 これを読んだあと、思わず私もディスクをバックアップしました。
あちこちで話題になっているバイト言葉。 今日、マクドナルドでコーヒーを頼んで200円を出したら、 確かに「200円からお預かりいたします」と言われた。 うーん、いままで気がつかなかった。 マクドナルドの接客マニュアルにもそう書いてあるのだろうか。
[CR/Review] レビューアとのやりとりは2438通。 しかし、レビューアのみなさんは、 この長丁場によく付き合ってくださいますねえ。 感謝です。
[CR] 今日も仕事。仕事仕事仕事仕事。 ものすごく集中して文章を書くと、自分がどこにいるのか完全に忘れてしまう。 というのはこの日記でも何度も書いてきたことだ。 今日の発見。ものすごく集中して書いた文章は、読み返すとあっという間に読み終えてしまうということ。 ふんふん、なるほどね。と読み終えることができる。これはいいことなのか、わるいことなのか。 まあいいや。とりあえず、本を書くのは面白い仕事である。 いや、もしかしたら、どんな仕事でも真剣に取り組んだら面白い仕事なのかもしれないけれど。
違うな。 真剣に取り組む価値がある、と自分で信じることができる仕事に真剣に取り組むことができれば、 それは面白くなる、ということかもしれない。 ああっ、もうっ、そういうマイニュートなことはどうでもいい。
今日の、自分の、仕事をしよう。
[CR](k)の章に入った。めでたい。 残りは(k)(r)(p)(s)(r)(m)のたった6つだ…えーと(^_^;
気分転換にJavaで遊ぶ。
読者からの質問
就職活動中の者です。 プログラミング言語を効率的に身に着けるには、 どのような勉強方法をとればいいですか?
結城の回答
難しい質問ですね。 私は多数のプログラミング言語を学びましたけれど、 どの場合でも「効率的に身につけよう」と考えたことがないからです。 あまり効率的に学ぼう(短期間で、無駄な労力をかけずに学ぼう)とは考えず、 「きちんと学ぼう」としたほうがよいと思います。
「きちんと学ぶ」というのは、たっぷり時間をかけて、 よい参考書を読み、自分の頭で考え、自分の手を動かし、 本当に理解する、という意味です。
私の場合にはそれに加えて「最終的には原典にあたる」ということを習慣にしています。 例えばJavaならばJava Language Specification(JLS)で調べる、ということです。 とても遠回りのようですが、長期的にはそれが近道だと思っています。
ついでに言えば、 自分がきちんと学んだかどうかを調べるいい方法は、 他の人に説明してみることです。 他の人に説明しようとして、うまく説明できなかったら、 その内容をよく理解していないのです。
ともあれ、就職活動がんばってくださいね。 応援しています。
後日談: 上のリンクを読み直してみて「効率よく学ぶ」ということを 自分が考えていないわけではない、ということを知りました。 確かに、(上のリンク先のページに書かれているように)コンピュータがなければ プログラミングを学ぶのは「効率が悪い」でしょうね。
[CR/Review] レビューアとのやりとりは2385通。 いつもレビューありがとうございます。
[DP/ML] Singletonのサブクラス化について、簡単にまとめた。 もっといろいろ書きたいが、もう眠い。
こういう単発のページをまとめるのに「技術情報」というアバウトなくくりは具合がいいですね。
のどはまだ少々痛むが、土日ゆっくりしていたので、だいぶ復帰。
[CR](ce) ふみふみ言いながらも、まだ執筆は続く。
ばしっとまとまらないときのパターンは決まっていて、頭が先行しているのだ。 頭が先行して考えすぎ、手が止まっている状態だ。 あーだこーだ考えすぎ。 いったん頭の検閲や編集者に眠ってもらって、 手に任せる。よし、あんた(=手)の好きなように書いてよいよ。おまかせだ。 としてしばらく待つ。すると、手が勝手にぱたぱた書いていく。 しばらくすると、手が止まるから 「よしよし。よく書いたね。じゃあちょっと校正するから、 あんた(=手)は休んでいてよいよ」と言う。 そしてじっくりはじめから読んでいく。 そうすると、どんどん話は進み、形ができていく。
というわけで、今日か明日にはレビューアさんに(やっと)次の章を送れるであろうと思われる。
レビューアさんの一人から、 「章を追うごとに長くなっていませんか」というメールをいただく。 うう。確かにそうかもしれませんですう。 でもとりあえず書きたいだけ書くのである。
気分転換で、サイト全体の色をブルー系にかえてみました。 スタイルシートは偉大だ。
のどがいたくて、一日ベッドですごす。
あなたのご意見・感想をお送りください。 あなたの一言が大きなはげみとなりますので、どんなことでもどうぞ。
何かの理由でうまく送れない場合にはメール hyuki@hyuki.com でお願いします。