2007年11月雑記ログ

2007-11-29-1[PC]自動迷路生成アルゴリズム

 プログラムゼミで、友人が自動迷路生成アルゴリズムの問題を出してきた。楽しようとしたら、自分でも面白いアルゴリズムでできたので、記録してみる。

 問題。縦と横のマスは決まっており、スタート地点とゴールの地点のマスの座標は与えられ、壁と道を置く事で、迷路を規定する。ただし、マス目は上下左右にしか動けないものとする。
問題例:
□□□□□□□□
□S□□□□□□
□□□□□□□□
□□□□□□□□
□□□□□□□□
□□□□□□G□
□□□□□□□□
迷路例:
■□■□□□□□
□S■□■■■□
□■■□□□□□
□□□■□■□■
■□■□□■□■
□□■□■□G■
■□□□■□■□

 一応ループが無いようにとか、そういう事も考えてみると、横着だがこういうアルゴリズムができた。(正確にはアルゴリズムではない。)

まず、全てのマス目を壁にして、スタート地点のみを道にする。
以下を10000回ループさせる。
座標をランダムに選ぶ。以後、そのマスを中心として周り8個を考える。
そこが道であれば、座標の選定をやり直す。
そのマスの上、下、左、右の道の数を数える。
道の数が0か2なら、座標の選定をやり直す。
そのマスの右上、右下、左上、左下の道の数を数え、先の道の数に足す。
道の数が1か2なら、その選んだマス目を道にする。
もし、そのマス目がゴールなら迷路の作成を終了する。

 アルゴリズムで無いといったのは、必ずゴールに道ができるとは限らないから。でも、二回に一回くらいはゴールに到達できる。単純だけど、これでループができなくなる。すこし改良するだけで、必ずゴールに到達できるようにできないかなぁ。

2007-11-28-1[日記]冬期講習やらなくていいかな

 卒論、間に合うのだろうか。常識的に考えて、1月中旬提出だよなぁ。来週中に予稿を仕上げなきゃいけないし。

 冬期講習、今年高三3人持ってるけど、できないよなぁ。

2007-11-26-2[本]『入門vi 第6版 』オライリー・ジャパン2002

 今まで見よう見まねで、使いたい時に使いたい機能を探してvimを使っていたのだが、この本のおかげですっきりまとめられた。いままで、矢印キーでえっちらおっちらやっていた作業のほとんどが、一つか二つのキーで実現できる事を知って驚く。そして、既に完全なすばらしいエディタだと気づく。だが、この完全を手足として使えるようになるまでには修行が必要であるが。

以下引用

定理:viは完全である

証明:ローマ数字のVIは6である。6の約数となる6未満の自然数は、1、2、3。ここで1+2+3=6。よって6は完全数。したがってviは完全である。

2007-11-26-1[日記]三味線・お琴・尺八

 三味線がメインの伝統曲の演奏会を聞きに行った。若い人の演奏が多かった。伝統芸能もこれだけの若者が参加していれば安泰じゃないかと思えてしまう。そして、プロの人の演奏も聴く事が出来たのだが、上手い人ほど心地よくて眠気に誘われる。寝なかったけど。

 もう少し聞き込んで、楽しみ方が分かってから聞くと良さそう。

2007-11-24-1[先生]計算力低下

 ずっとセンター数学の講師をしている。個人指導のため、生徒に聞かれた質問をその場でアドリブで答えるという授業だ。高校時代自分がこれほどまでにベクトルや数列が出来たかと聞かれると怪しいが、不思議な物で今となっては全てが意味と理由を持って頭の中に存在している。

 しかし、説明するのはともかく、実際解くとなったら別のようだ。今日、あまり指針を見つけるのが上手くない生徒に回答の実演をして見せていたのだが、時間もなかったのでこちらで解こうと思った。しかし、計算が上手く進まない。立式はできるのだが、その先の数値を求めるのにやたら手間取る。正確に解く、という行為がうまくいかない。おかしなものだ。

2007-11-23-1[PC]Googleによると、ハードディスクは温度や使用頻度に関係なく故障する - GIGAZINE

 らしい。古い記事だが。いままでHDが故障した事は運の良い事に1度しか無く、しかも実質被害がなかった。大学のPCには、SMARTでHDが故障する日付を示してくれる「HDD Health」というソフトを導入している。が、その意味はこの記事によると無いらしい。

 実際の所、HDの全てをバックアップを取る余裕はないが、必要もない。考えてみると、メールと、現在作成途中のプログラム、東方のセーブデータ、その程度である事に気づく。考えてみると、1GBに収まる気がする。よって、今時千円代で手に入る1GBのUSBメモリにバックアップを取る事にする。

 サーバの方は、Cronでphpを起動して、phpにバックアップを取らせるプログラムを書いた。出力先はもちろんUSBメモリ。毎晩自動的にwikiとブログのバックアップを取る。きちんと、週毎に一個保管するようにした。

 で、問題はWindowsの方。こちらも、USBメモリ差しっぱでバックアップを取る事に。DriveMirrorというソフトを使ってみる。ドラッグドロップでバックアップするフォルダを指定、バックアップ間隔も設定できる。バックアップばかりに制御を取られないようにする措置もある。しばらく、これを使ってみる事にする。

 小説、プログラム等の完成物は、きちんとメディアにして残しておく事。小説はいざとなったら、googleのキャッシュが使えたりするのだが。まぁ、取っておこう。

2007-11-20-1[日記]PC復旧

 父の。ただし、Me。でも、父的には、インターネットをちょこっとやるだけだから、これで充分という事実。でも、最近のインターネットってjavascriptやらflashやら重たくなったよなぁ。便利になったけど。igoogleでRSSリーダーを使うようになってから、便利な反面、いつもトップページが重い。

2007-11-19-1[日記]麺屋 達

 美味しいと評判らしい「麺屋 達」に行ってみた。カウンターしかない小さな店内。店内に、十人ばかりの人が並んでいた。女性客もかなり見受けられた。

 味は、とんこつなんだけど、そんなにしつこいとんこつではなくて、ほどほどにしまった感じ。おいしい。一鶴の濃さとは違った感じ。あっさりと言うほどあっさりもしていないのだけど。

 麺を食べたところで、スープにご飯を入れて食べるのがルールらしい。入れてみると、これまたとんこつ雑炊で、スープを堪能できる。スープはなみなみと注がれていたので、冷めてもいない。

 中盛を頼んだが、さらにライスでお腹いっぱい。次は、ラーメン(並)700+ライス110+半熟卵50を頼もう。

 参考http://kawai.seesaa.net/article/12278348.html

2007-11-16-1[日記]技術者不在

 技術者不在の会議。できるに違いない、というか、違いないどころか、できる物として全て話が進む。一応アルバイト技術者である俺は話が進む度に、技術的に何を解析して、何を開発すべきか考える。それを知らずに相談なさる方々。怖々。

2007-11-13-1[物]USBフットウォーマー

 欲しい。USBあったか製品。特に、フットウォーマー。でも、USBあったか製品系試した事がないので、本当に暖かいのやら。amazonで、2,394円だったので、買っても良いかも。

2007-11-12-1[本]読了『なぜ若者は「半径1m以内」で生活したがるのか?』岸本裕紀子2007/09

 今の若者の生態系を、「肯定的に」見た本。あまりにも肯定的すぎて、ちょっと怖くなりもしたが、確かに今の競争社会に順応というか回避する方向に働いた結果、この若者像ができあがったというのは肯定できる。しかし、そのソースがほとんど著者が今の若者に触れて感じた事ばかりで、突拍子もないところが多々。若者は女将に憧れているとか。

 それでも特に、最終章の「政府は競争社会を目指すのに、若者はその方向に向かおうとしない。さて政府はどういう政策を目指していくべきか」の論は目を見張るものがあり面白かった。若者とかけ離れた政策をとっている政府(いつも変な事考えている俺にはその方が好都合に思えなくもないけど)は、確かに政策を変えなければおかしくなるのは見えている。そして、そのヴィジョンを持った政治家は現れるのやら。

2007-11-11-1[PC]ミニキーボードの妥協・キー配列変えれば勝利

 論文を自分の机の上で読もうと思うと、多少机が狭く感じることがある。特に今使っているキーボードの大きい事。大きいものは確かに便利なのだが、Linuxに使い慣れてくるとテンキーを使わなくても入力できるようになったり、vimなどを使っていると十時キーすら使わなくなってくる。となると、小さい小柄のキーボードが欲しくなってくる。

 そんなに高いお金を出す気はないので、3000円以下で腐ったようなキーボードを探していた。一応、ミニキーボードの最高峰はPFUのHappyHackingで5000円した(いや、本当の最高峰はこんな値段するけど)。

 しかし、安いキーボードというのはちょっと困った事が一つある。キー配列がおかしい事である。「ろ」の位置が変だったり、色々欠けてたりする。しかし、ちゃんとしたのは割高だったりする。

 そして、気づいてしまった。前述の、キー配列変更計画の技を使えばどんなキー配列のキーボードでも使いやすく…。と言う事で、今回格安1450円のミニキーボード(幅263mm)買ってきて、キー配列を弄り倒した。キータッチはちょっと悪いが許容範囲。

 にしても、気づいたとは言ったが、人に指摘されて初めて気づいた。ソフトウェアを弄り倒しつつ、ハードウェアを吟味しているつもりなのに、気づかないものだなぁ。

2007-11-10-1[PC]ゼミ資料を書く

 PHPを猛然と書く。いつもみたいに速度・機能・再利用重視じゃなくて、ゼミ資料なので可読なソースを心がける。次々と実装したいことが出てくるが、はしょりにはしょる。

 PHPは直感がそのまま結果になりやすいプログラム言語だと思う。コンパイル不要、DBとかXMLを簡単に扱う関数が揃っている、結果はブラウザ。C言語で全てを書いていた時から比べて、えらく生産性が上がっている。やりたいことを、自分の言葉のように吐ける。そして、人の言葉(ソース)も理解するのが容易い。そのくらい、人寄りに優しい仕様なのだ。

 自分のコードだけじゃなく、人のソースを読んでいると、楽しくなってきた最近。

2007-11-7-1[日記]きっとたぶん絶対になくならない、三菱製ノック式消しゴム

 消しゴムは良くなくす。本当に良くなくす。消しゴムとおさらばするときは、小さくなって使えなくなったときではなく、落とした拍子にこっそりと姿を消したときだ。この前なんて、塾講師の授業中に紛失した。生徒と一緒に探したが、結局見つからなかった(これでも講師です)。しかし、消しゴム以外のものをなくす事はない。後は全て棒状をしており、ポケットに引っかけるフックが付いており、そこに収まればなくす事はない。転がっても大きいので、見つかる。いや、以前、200円もする大きい消しゴムを使っていたが、やはり半年でなくなった。生徒と、こんなに大きければなくす事なんてないよねとか言っていたのに。

 そして、やはり他のペン同様フックが欲しい、棒状であって欲しい。そんな、ノック式消しゴムを持っていたと言えば持っていたが、それはおもちゃだった。大して消えない、形だけのもの、ずっとそう思っていた。

 今日大学生協で、「三菱製」の棒状のノック式消しゴムを見つけた。おっ、ちゃんと消える。しかし、大きな消しゴムみたいな、ごっそり消していく感じじゃなくて、細い先っぽで繊細に消していく。いつもみたいに消すには力の加え方も違い、何往復もしなければならない。少し面倒だ。

 しかし、ペン状ならきっとなくならない。たぶんなくならない。なくならないさー。なくならないで欲しい。絶対になくならないで欲しい。なくならなくなりなさい。

2007-11-6-2[PC]プログラマが指を吊る問題

 気づいてしまった。

 Emacs使いの人は、Windowsの左下にCtrlキーがある配置では指を吊る事もあるので、何かソフトウェアを使ってCapsLockキーにCtrlキーを割り付けるという。ならば、vi使いの人も、左上にあるESCキーをしょっちゅう押すにも関わらず遠く小指が吊りそうになるならば、CapsLockキーにESCキーを割り付ければよい。

 そこで、キーボードのキー入れ替えソフトを導入する。それには、常駐型と非常駐型のソフトウェアが存在する。どうせCapsLockキーなど使いはしないので、半永久的に入れ替えるため、非常駐型のソフトウェアで構わない。Windowsにおいては、レジストリを書き換えるだけでよい。それを実現するに丁度良いソフトウェアとして「ChangeKey(コンピュータ→フリーソフト→Windows関係のソフト→ChangeKey)」を見つけた。

 この調子で、色々変更しよう。使わないくせに時々押し間違えて悲しくなる、WindowsキーやApplicationキー、カタひらキーなどを一律Ctrlキーにしてしまう。しまった、昔やったAtokの操作変更とブッキングする!

2007-11-6-1[PC]コマンドラインタイプのランチャー

 パソコンにインストールするプログラムが増えてくると、「スタート」→「全てのプログラム」→「多すぎで探すのが大変!」という目に遭う。そのため、別途ランチャーというものを導入し、自分でプログラムをカテゴリ別けして管理したりするのが普通である。それに自分の場合は、Orchisというファイラーにもなるランチャーを用いている。それでも、「ランチャーを起動」→「カテゴリを探す」→「ソフトウェアを探す」という作業に変わったところで、確かに項目は減ったが「目で一覧を見て探す」作業はなくならない。

 その「探す」という作業を無くすには、「word」と言ったら「word」が起動するくらいでなくてはならない。その時に使えるのが、コマンドラインタイプのランチャーだ。これは「word」という文字列に「wordの起動」を登録する。こうすることで、コンソール上に「word」と入力すると「word」が起動するようになる。

 しかし、その登録という作業が思ったより面倒だ。いつものカテゴリ別けするランチャーの場合は、カテゴリ別けさえしておけば、そのソフトウェアの名前を忘れてしまっても、カテゴリ内のアイコン一覧を見ているうちに思い出すことも多い。ゆえに人的にカテゴライズする必要性が生じるため、必要性を持ってソフトウェアを登録するという作業を行える。しかし、コマンドラインタイプの場合は、カテゴリ別けは行わず、全てソフトウェアの「名称」だけが頼りだ。各ソフトウェアに既に名称はあるのだから、いちいち設定するのは手間である。

 その登録作業が無いコマンドラインランチャーが実在した。「fenrir」である。これは、ハードディスク内の全EXEファイルとフォルダを記憶し、コンソール上で入力された文字をその記憶の中から探す事によってランチャーの機能を果たしている。はっきり言えば全検索なのだが、最近使ったものを上位候補として挙げるという機能が加わったとたん、高機能なランチャーとして機能する。

 さらに起動がCapsLockだというのも良い。確かにCapsLockは単体ではほぼ使わないのに、とても良い位置にあるキーだ。Ctrlキーと交換したいくらいに。これは実に盲点だった。これで、目で見て探すという作業から離れて、ソフトウェアを起動できる。

2007-11-3-1[日記]UTF-8化

 トップのオリジナルブログスクリプトの文字コードをUTF-8にした。今まで記事XMLでもSJISを使っていたのだが、それを修正したかった。この際全てUTF-8にしてしまえと言うことで、実施。

 今日一日、文字がちゃんと表示されなかったのは、これで一度設定ミスっていたせい。前のスクリプトで、php.iniからSJIS特化した設定にしてあったのを忘れていて、その行を全て削除したらきちんと動きましたとさ。

2007-11-1-1[サイト]無料でSEO診断をしてくれるサイト

Dipperhttp://dipper.septeni.co.jp/

 SEOとは、「検索エンジン最適化」のこと。Google等の検索エンジンに特定のキーワードで引っかかってくれるようにあくせくすること。

 と言っても、身内しか見てないサイトなので、気にはしていないのだけど。だけど、検索エンジンで、「74」とか「74th」とか「74番」と検索した時くらい、一位になりたいなぁというくだらない野望がある。で、実際の所何位なのか、測ってみた。「74th」Yahoo!3位Google1位MSN1位。「74番」Yahoo!3位Google1位MSN1位。ここまでは良い感じ。3年前は「74th」でも10位くらいだったのだけど、続けていると上がるものだ。で、「74」Yahoo!88位Google57位MSN1位。おー、MSNマンセー、Yahoo!こんちきしょー。

close