2010年11月27日土曜日

誰も書かなかった中島みゆき論ベスト200を聞いてみよう その12

91~100位です。

・南三条:97位。たった一つの通りが突然ドラマチックになる場面を描いているように思います。一寸先は闇というべきか、犬も歩けば棒に当たるというか…。そんなドラマチックさがあるから、縮こまってはならないし、逆に慎重さもなければならないと思う曲です。

・相席:98位。この二人はその喫茶店で出会い、そして別れる。3度の喫茶店への訪れで、2人は出会い、いい感じになり、そして別れるのです。それに無頓着でいながらも実は上手に結びあわせているマスター。客をちゃんと見ていないように見えるけれども、本当は客をちゃんと見ていたのではないだろうかと思います。

・旅人のうた:99位。それぞれにはそれぞれのルーツがあり、すべての場所にはその場所のルールがある。だからこそよそ者は・・・というような歌詞です。どこへいってもよそ者とされるような旅人、ルールが見つけられない旅人、そんな人だからと無下にする必要はなく、愛を伝えなければならないと、そんなように解釈しています。

2010年11月26日金曜日

新しいパソコンに入れるソフトを考える ~インターネット関連~

新しいパソコンが来たら、出来る限りスムーズに移行したいものです。私のパソコンはただでさえ酷使されていて、その上いろいろな設定をしていますから、情報が錯綜している状況です。ひとまず、その前提で、何を入れようかとゆっくり考えて、ソフトを揃えるところから行ってみようと思いました。インターネットに絡んだものとして「ブラウザ」「メーラー」「オンラインストレージ」「メッセンジャー」について書いてみます(WiresharkやGmailCheker等は別です)。

まずWindowsから。
ブラウザ:色々試してみたいものが多いので、かなりの候補が上がっています。ひと通り入れてみて、最終的に2~3種類に絞ると思います。
・Chrome(Linuxも同じ)
・Lunascape
・The World Browser
・KIKI
・ScriptBrowserK
メーラー:こちらはメールの数だけ。Gmail関連をGmail専用ソフトに任せてしまうのも手かもしれませんが。
・Sylpheed(Linuxも同じ)
・Thunderbird(Linuxも同じ)
・nPOP
メッセンジャー
・Skype(Linuxも同じ)
・Windows Live Messenger
といったところでしょうか。

Linuxは多分Ubuntu10.10ですが
・FireFox
・NetSurf
・Surfraw
・midori
・SeaMonkey
がブラウザで、メーラーは
・IlohaMail
をいれようと考えています。また、Windows Live Messenger対応のメッセンジャーとして
・Emesene
を入れるつもりです。

オンラインストレージはどちらも共通で
・Dropbox
・ソラ箱(でもLinux対応予定のサポートが完成してから)
という予定です。

このカテゴリで、なにかオススメがあれば是非教えてください。

2010年11月25日木曜日

トップダウン・タスク分析法による指導

ダイテル親子のプログラミングの著書には、プログラミングの何らかのタスクに対してそれをプログラムのレベルまで落とす方法として「トップダウン・タスク分析法」が載っています。ほとんどアルゴリズムの与えられているテキストでこれが必要かどうかはわからないのですが、しかしながら、これを用いて指導することはなかなかに有用であると思った出来事がありました。

問題は冪乗法による行列の固有値の計算方法でした。このアルゴリズムと原理が記されている参考書を友人が読んでいたのですが、よくわからないと。まず原理を説明した後に「アルゴリズムを呼んでもよくつかめない」と言われたので、試しにトップダウン・タスク分析法を用いてみました。

単純に、目的・入力・出力を書き、それから各手順に分解し、分解した手順をさらに分かりやすく書き換えるという方法ですが、それを行ったことでひとまずある程度の方針がたったようで、一度組んでみるとその友人は部屋に帰っていったのでした。

アルゴリズムを教えるときに、勿論その手順を教えれば後は組めるというのがあるべき姿なのでしょうが、まだプログラミング経験の浅い人にはトップダウンタスク分析法を実際に用いて教えるのもひとつの手ではないかと感じたのでした。

2010年11月23日火曜日

プログラマさんに100の質問 (by くろひょう)

100の質問を読むのは好きですが、答えるのはどうだろうと思ってやってみました。面白いですね。


Q1:年齢は?
A1:20歳ですね。
Q2:プロですか?アマですか?
A2:アマチュアです。
Q3:パソコン歴は?
A3:本格的には9年。いじりだしたから数えれば14年。
Q4:おデブ?
A4:違います。
Q5:職場(または学校)と自宅の両方に開発環境がある?
A5:ありますが、自宅のほうが良い環境です。
Q6:情報関係で持っている資格があればお書きくださいな。
A6:まだ無いです。
Q7:喫煙者ですか?
A7:いいえ。
Q8:視力はいくつくらい?
A8:裸眼0.3ぐらい、メガネかけると1.0程度。
Q9:コーディング中は、どんな飲み物・食べ物を口にします?
A9:飲み物は紅茶かハーブティ、食べ物は飴・クッキー・チョコレート。
Q10:使える言語、どんなのあります?
A10:C/Fortran90&95/HSP/Java/C++/goあたりでしょうか。後ろ3つは使えると言えるほどではないですけど。
Q11:はじめてプログラムを組んだのはいつ頃、どんな言語で、どんなプログラムでした?
A11:HSP2.6時代、作ったのはマスターマインドでしたかね。
Q12:VBしか使えない人はプログラマを名乗っちゃいけない?
A12:プログラムを作ってるからいいのでは?
Q13:なんちゃってプログラマってどんなプログラマだと思いますか?
A13:プログラミングを楽しいと思っていないプログラマ。
Q14:プログラマをやっててよかったなあと思うときは?
A14:なにか数学の問題の解答を思いついたときにパソコンで実験できるとき。これが一番。
Q15:じゃあプログラマなんてやるんじゃなかったと思うときは?
A15:質問が連発するとき。特に数人連続は疲れます。
Q16:得意な言語はなんですか?
A16:間違いなくC一択ですね。
Q17:不得意だけど使わねばならない言語とかあります?
A17:Fortranは使えますけどいつまでも苦手です。
Q18:UML はどう思います?
A18:使わないので特に何も。
Q19:開発に使ってる、ラブなツールを教えてください。
A19:Editraとemacsぐらいです。PAD2PSは開発用ではないですが好きです。
Q20:コード管理やってます?ツールは何を使ってます?
A20:していません。
Q21:タッチタイプ(ブラインドタッチ)はまかせとけ!って感じ?
A21:普通に。
Q22:コメントはしっかりつけてます?
A22:付けないことが多いです。長いコードなら少し付けますが、少しです。
Q23:開発系のMLとか、入ってます?
A23:入っていません。
Q24:開発系の雑誌で購読してるモノがあればどうぞ。
A24:ありません。
Q25:言語・開発系にかぎって、月に書籍代はいくらくらいですか?
A25:5000~10000円。かなり使ってます。
Q26:一次変換とか得意?
A26:勿論できます。
Q27:数学が苦手なプログラマはダメですか?
A27:ダメとは思いませんが、少し厳しいとは思います。
Q28:プログラマなら英語の読み書きくらいはできますよね?
A28:コメントとか識別子で困らない程度には。
Q29:学生の頃、得意だった科目って何ですか?
A29:今学生ですが…情報・数学でしょうか。
Q30:これまでに開発したことのあるプラットフォームは、どんなのあります?
A30:バラエティに飛んでいて自分でもわかりません。
Q31:Windows しか知らないプログラマはどうですか?
A31:言語によっては移植性に乏しい物しか書けなくなり、結果としてWindows依存性を高めてしまうと思います。
Q32:GNUマンセーですか?
A32:とまでは言いませんが、GNUは必須です。
Q33:今一番組んでみたいプログラム、なんですか?
A33:マルチコアプロセッサにおいて各コアを100%使い切れるように自動的にタスクを配置するプログラム。できたら儲かりそうな。
Q34:AIを自作してみたいですか?どんなの?
A34:自作したくないです。
Q35:これだけは許せない!っていうコーディングスタイルがあればどうぞ。
A35:スタイルと呼べるレベルなら許せます。
Q36:コーディング上のこだわりをお書きくださいな。
A36:コメントは少なく、メモリは少なく、速度は速く、出来る限り美しく、すべての行に意図あるコーディングを。
Q37:自分の書いたコードは美しい?
A37:Do my best!の美しさはありますが、一般に美しいと言われるほどではないです。
Q38:「バグ」という言葉の替わりに使ってる言葉があればお書きくださいな。
A38:特に無いです。
Q39:営業さんと仲いいですか?
A39:営業等は関係ないので…。
Q40:プログラマ以外の職場の人間の頭が悪くて困った、というようなエピソードがあればどうぞ。
A40:特に無いです。
Q41:職場等で、クラッキングやウイルスなどの印象的な事件があれば教えてください。
A41:印象的なものはありますが長すぎるので内緒。
Q42:あなたが自分で「やっちゃった!!」エピソードがあればぜひ。
A42:calloc関数の無限ループ。
Q43:レビュー・プレゼンは得意?
A43:まぁまぁですかね…。
Q44:自分が世に送り出した作品で、「これは自信作!」ってのがあったら教えてください。
A44:ありません。
Q45:「この会社を辞めようと思ったソースコード」があったら教えて下さい。
A45:会社とプログラムはあまり関係がないので。
Q46:月の実作業時間の最高は何時間くらい?
A46:平均的には60時間ぐらいですかね。
Q47:最高で何時間眠らずにプログラムを組んだことがありますか?
A47:10時間ぐらいです。
Q48:職場や現場で仮眠をとる際、どんなところで寝ます?
A48:仮眠を取る状況になったことがないので。
Q49:あなたのまわりの電波なプログラマがいたら、その電波っぷり全開なエピソードをどうぞ。
A49:いません。
Q50:あなたの遭遇したマーフィーの法則を教えてください
A50:多いので割愛。
Q51:尊敬しているプログラマは誰?
A51:プログラマと呼んでいいかどうかわかりませんが、D.E.Knuth
Q52:今までの中で一番ハードだった仕事はどんな仕事ですか?
A52:特には。
Q53:今までの中で一番楽だった仕事(プログラム)はどんな仕事(プログラム)ですか?
A53:特には。
Q54:ナイショのバグ、こっそり教えてください。
A54:いやです。
Q55:「自分はすごいプログラマだなあ」と一瞬でも思ってしまうときって、どんなときですか?
A55:Do my best!の美しさが完全に満たされたと感じた時ですね。
Q56:ひとりごとをよく言いますか?どんなひとりごとを言いますか?
A56:プログラミング中は言っていますが覚えていません。
Q57:コンピュータ関係以外で趣味と呼べそうなもの、ありますか?
A57:色々。
Q58:どんなマンガをよく読みますか?
A58:料理漫画。
Q59:あなたにとっての萌え対象を教えてください。
A59:萌えという概念がわかりません。
Q60:デスクトップの壁紙はどんな壁紙ですか?
A60:万年筆の時が多いですね。
Q61:PCの周りにおいているフィギュアとかがあれば教えてください。
A61:ありません。
Q62:徹夜するより寝た方が効率が上がる派ですか?
A62:寝たほうがいいですね。
Q63:好きな音楽はどんな音楽ですか?
A63:中島みゆきか山口百恵。カーペンターズあたりもいいですね。静かな。
Q64:カラオケはお好き?主にどんなの歌います?
A64:上記歌手の音楽オンパレードです。
Q65:プログラマはむっつりスケベが多いと思いますか?
A65:いいえ。
Q66:鉄ですか?
A66:いいえ。
Q67:麻雀は好きですか?
A67:できますけどそこまで好きではないです。
Q68:はっきりいってプログラマはオタクが多いと思う?
A68:この場合のオタクがいわゆるフィギュアetcの意味のオタクならばNO.パソコンおたくという意味ならYes。
Q69:ていうかむしろ自分がオタクである?
A69:Q68に同じ。
Q70:ゲーマーですか?ゲーマーなら、どんなゲームをよくやりますか?
A70:やります。桃鉄・風来のシレンが基本。
Q71:ゲームをやる際、プログラマ的な考え(アルゴリズムを考える、処理落ちが気になるなど)をしていることがある?
A71:というか、ゲームをやる際にアルゴリズムを考えないことがない。
Q72:実はこっそりクラックしたことがあったりして?
A72:クラックはないですね。技術的にはできても自分の心情的にできません。
Q73:職場の人たち(彼氏・彼女・夫・妻以外で)と、月に何回くらい飲み・お食事などに行きます?
A73:数えきれないぐらい食べに行きますが、飲みに行くことはないです。
Q74:仕事中に2ちゃんねるを読むことがありますか?
A74:ないです。
Q75:ていうかあなたは2ちゃんねらーですか?
A75:勿論ないです。
Q76:「フラグが立つ」「スタックに積む」「ポインタがずれる」など、ついつい日常会話で使ってしまうプログラミング用語があれば教えてくださいな。
A76:と聞かれても思いつきませんが、使っているかもしれません。
Q77:映画やドラマでプログラミングするシーンなどがでてきたら、気になります?
A77:無論です。
Q78:ウィルス作れます?あるいは作ろうとしたことがあります?
A78:昔一度作ったので、多分想い出せば作れるはずです。
Q79:今まで買ったもので一番高いものはなに?
A79:万年筆。
Q80:在宅勤務について思うところがあればお書きください。
A80:特に。
Q81:普段開発してるときは、どんな服装ですか?
A81:色々ありますね。
Q82:普段開発してる環境、ディスプレイは何インチでフォントサイズはいくつくらい?
A82:17インチ、フォントサイズはバラバラです。
Q83:職場の男女比はどのくらい?
A83:9:1ぐらいね。
Q84:女性プログラマってどうですか?
A84:もっと増えてもいいのではと思います。
Q85:特定のパートナー(彼女・彼氏・夫・妻)がいますか?パートナーがいる人は、それは同業者ですか?
A85:いません。
Q86:プログラマはモテないと思いますか?
A86:スポーティブな人に比べれば持てないのでは。
Q87:付き合うなら同業者?それとも別の職種がいい?
A87:いろいろな人が入れば、職業はどうでもいいです。
Q88:ぶっちゃけた話、給料は月額大体いくらですか?(手取りで)
A88:内緒です。
Q89:それって、自分にとっては多い?少ない?
A89:多い方ですね。減らして欲しいとは思いませんが。
Q90:ぶっちゃけた話、普段は何%くらいの力で仕事してます?仕事以外の部分って何してるの?
A90:さて、どれぐらいだろう?把握できてません。
Q91:運動とか体にいいこと、なにしてます?
A91:歩くぐらいですが。まぁ、食事には気をつけていますが。
Q92:ここだけの話・・・痔は悪くなりませんか?
A92:痔ではないので。
Q93:クラッシュしてしまうバグが見つかっているのですが、どうしても原因が分かりません。デッドラインまではあと24時間。どうしましょー!?
A93:機能低下した安全版にする。それすらできなければ開き直るか、最高速度で1から打ち直す。
Q94:プログラマの耐用年数ってどのくらいだと思いますか?
A94:好きならば、頭がパソコンの使い方を理解できる限り何時までも。
Q95:いつまでプログラマをやるつもりですか?
A95:いつまででしょうね。
Q96:座右の銘はなんですか?
A96:人間性があって初めて。
Q97:よいプログラマの条件を3つあげてください。
A97:他人のプログラマを無碍に批判せず、プログラミングの楽しさを人に伝えられて、複数の言語を楽しもうと思える。
Q98:悪い・使えないプログラマの条件を3つあげてください。
A98:プログラミングをいやいややっていて、PCの知識が最低限度しかなく、プログラムの力の発展に興味のないプログラマ。
Q99:プログラマとしての自分を100点満点で評価してください。
A99:30点。まだまだ発展途上です。
Q100:あなたにとってプログラムとは何ですか?
A100:趣味であり、交流の輪を広げるものです。

2010年11月22日月曜日

新PCのLinux環境を考え直す

新PCのLinux環境、あれこれ考えています。せっかくのヘキサコア・8GBメモリなので、仮想マシンではなくその潤沢な環境を生かしたプログラミングをしたい、ということでどう考えてもデュアルブートが正解だと思うのですが、悩みどころです。

最近はUbuntuが人気で、その実力を8.04を使って体験していたものの、今は使っていません。単にVineが5.1になったからというだけの理由でしたが、Vineを仮想マシン化して使っています。ただ、いくつかの不満点もあり、新しいパソコンでは何とかしたいというのが正直なところです。

別にUbuntuが嫌いなわけでもなく、情報量やパッケージの豊富さを考えるとUbuntuの利用価値は十分だと考えていましたので、新PCに引っ越す際にどうしようかと考えていました。当然デュアルブートにするのですが、共有フォルダが云々といろいろ調べていくうちに、一つ、決定打に出会いました。

Wubi です。

パーティションをいじらずにWindowsのアプリケーションのようにUbuntuをインストールしてDual Bootにしてくれるというものですが、Windowsのディスクを丸ごとマウントしてくれます。色々考えなくとも使える、ということで今回はパーティションをいじらずにやってみようかと思いました。ディスクの断片化問題があるようですが、ひとまずはディスクデフラグに頼ろうかと。

そうすると、Dropboxさえ無事に動いてくれれば、後はUbuntu内にストレージは必要なくなります。両側の設定を十分にして、WindowsでもUbuntuでも遜色ない動作をしてくれるようなカスタマイズをするつもりですが、それは現在のVineの設定を少し追加したり、逆に、Windowsのソフトをとったり、ということです。

であれば、後は情報収集だけです。Wubiのおかげで懸念していた問題が解決し、実現に一歩近づきました。結論、UbuntuとWin7のDual bootとし、Chrome OSは後ほどとします。
ひとまずソフトウェア群を揃えなければなりません。同一用途のソフトウェアを複数利用する趣味がある私、相当考えて選ばなければなりませんが、それでもいろいろな手段で強力な設定のパソコンにしたい。明日、11/23の勤労感謝の日は、ソフトウェア開発者たちに感謝を評しつつ、数年ぶりにフリーソフト狩りをします。すさまじい数のソフトウェア群を検討し、何をインストールするか考え、順序立てておかねばなりません。新しいパソコンは、私が本格的に使うものとしては6代目、その間に熟成されてきた設定を「引っ越す」のはかなり時間がかかります。目標は3~4日ですが、どんなに遅くとも1週間はかからないように出来ればと思います。

問題はUbuntuのバージョン。e-mobileのD31HWは接続状況が良くないのですが、やはり使いたいのでどうしようかというところです。D31HWで使うならばUbuntu10.10でなければすんなりとは接続できないようなのですが、これ、サポートが少し短いんですね。10.10から11.04かな?に無事アップロードできるならいいのですが・・・。サポートが切れるころには12.04が出ているでしょうし、きっとLTSでしょうから、こちらを使うほうが懸命かもしれません。10.10→12.04が正解かな?

2010年11月21日日曜日

興味ある後輩

親しくしている後輩は皆労たし、と私がいったところで別に何の反応が得られるわけでもなく、多くの友人は「またか」という程度ですが。

後輩を可愛いと思うのは今に始まったことではありません。学童保育に通っていた頃、既にその片鱗はあったように思い返しますので、三つ児の魂百までというのはよく言ったものだと思います。私の本質的な部分…見栄っ張りだとかおしゃべりだとか後輩好き(というよりは自分よりも立場的にあるいは年齢的に下の人好き)だとか…はちっとも変わっていません。この3点考えると、後輩の前では見栄をを張って話し放題だから後輩が好きなのだ、と言われるかもしれませんが、いえいえ、私は道端でまだ小学生になっていない子供を見ても、いとけなく可愛いなと思いますから、見栄とはあまり関係ないようです。

そんな後輩に話をしているときに、非常に興味深げに聞いてくれることがあります。題材にもよりますし、その後輩の興味の方向にもよりますが、興味深く話を聞いてもらえるというのは実にありがたい事です。例えば桃鉄の話をしていたら、興味を持って私の部屋にプレイしに来た後、はまってしまった後輩がいます。彼と食べに行くと、とりあえず桃鉄の話です。各々の考えた戦略を話し合うのですが、私が戦略を話しているとき、その後輩の反応は素晴らしいです。「そのターンで〇〇のようにするのはなぜですか?」「こうすることで〇〇となるのを防いで自分だけ得できるわけだ」「でも逆に〇〇をせず△△をするという手もあるのでは?」「あ、確かに!」といった具合です。

興味が有るか無いかは相手の反応の中で、特に相手が質問を多くするかどうか、自分の意見を発するかどうかで見えてきます。それも通り一遍ではない意見を発するかどうかです。

先日、ある後輩にCプログラミングの指導の第1回を行いました。「まだ現状ではよくわからなくてもいいけれど」といった上で、#includeやint main(void)、returnの意味を説明しました。後輩は、その各々について逐一質問した後に、「まだ実感を伴ってわかったようには思えないのですが、大丈夫でしょうか?」と聞いてきました。ひとまず「現状では完全な理解、体に染み込む理解は無理だと思うから、また後で再度同じことを説明する。それまではreturnは返却値を示して、mainの場合はプログラムの終了の状態をOSに出すということをなんとなく頭の片隅においておけばいいよ」と答えました。しかしながら、これは実に良い質問です。この質問一つでその後輩が興味を持っているということを感じましたし、その後輩は間違い無くプログラミングの才能があると感じました。

私は、才能=素質+興味 だと考えています。たとえどんなに素質があったところで、何がなんでもやりたくないと思っている人は、その分野に長じることはありません。わかり易い例で言えば、どんなに鋭敏な味覚を持っていたとしても、食べ物は栄養補給源でありさえすればいいという人は「食通」にはならないし、なれないでしょう。逆に、興味があれば、たとえその分野の素質で劣る点があったとしても、興味が有る故積極的に行動しますから、きっとその分野に長じることでしょう。体格的に劣っていてもバスケットボールが好きだからと必死に練習した人がトッププレイヤーになること、十分に考えられます。

天才と言われる人も含めて、多くの人が努力の大切さを述べています。その人々は才能はほんの少ししか寄与していない、といいます。この意味での才能は、私の言うところの「素質」であり、何より「その分野について努力できる才能」、つまり興味がなければ何の意味もなしません。努力は皆大切だといいますが、努力のために必要不可欠な才能、興味というものを有する後輩には、決してその興味を失ってもらいたくないと思いますし、また同時に、少しでもその興味を深められればと思うのです。