2011年11月30日水曜日

一家に一台、専用の歯科衛生士が欲しい

最近、歯科医院に通っている。
そこでは歯科衛生士に歯のクリーニングをしてもらっている。
歯と歯の間を磨いたり、フロスをしたり、歯周ポケットを掃除してもらえる。
歯科衛生士という他人の目で直接、視認しながら、奥の方の歯や、歯ブラシの届きにくい死角まで、丁寧にやってくれる。
実感があるので、一回1000円以内で済むなら、喜んで毎月通いたいが、問題は時間だけだ。

家ではブラウンの電動歯ブラシを使っている。ヘッド部分が回転だけでなく叩きつける動きをすることで、歯垢を効果的に落とすらしい。ブラウンの電動歯ブラシはそのような機械的な仕組みなので、磨いた後、効果があるような気にさせられる。シェーバーも使っていたので、ブラウンというメーカーも信頼できる。
先日、新しいゴム製のワイパーのついた、ヘッドに取り替えてみた。
ヘッドが大きくなっていたので、細かい部分にブラシが届きにくくなるのではないかとも思えたが、ゴム製のワイパーが歯の隙間を磨くらしいので、カバーできるのではないかと考えた。ブラウンが言うのだから、きっとそうだ・・・

昔、ギザギザにカットされた歯ブラシのテレビCMをやっていたのを見たことがある(年がばれる…)。
もちろん、昔ながらの手で動かす歯ブラシだ。歯ブラシの毛先側に数ミリおきに山と谷がある。
山部分の毛先が歯と歯の間を磨くという狙いだ。
だが、歯というのはそんなに単純な形状ではない。前歯と奥歯では歯の大きさや厚みが違うし、歯並びも人それぞれ。ひと通りの波形形状がすべての人のすべての歯に一致するはずはない。少し考えれば、ギザギザカットの歯ブラシは十分機能しないことが分かる。

ギザギザカットで複数の歯を一度に磨こうなどという虫のいい話はなく、歯というのは一本一本丁寧に磨くべきだ。
そうすると、手で動かす歯ブラシの大半はヘッドが大きすぎる。
細かいところまで磨くための歯ブラシのブラシ部分の大きさは、大きすぎても、小さすぎても良くなく、微妙だ。

つまり、ブラウンの電動歯ブラシ用の新型ヘッドはやはり大きすぎた。大きくなったことで複雑な歯の隙間にブラシが入っていかない。
円形のヘッドは、外側より中心側の毛が短くなっている。カップ形状をしていて、歯に当てると包み込みように磨くというコンセプト。だがその時、外側の毛が、歯の隙間にまで入っていってはくれない。

歯科医院で歯科衛生士にクリーニングしてもらうと、ターゲットは歯の表面よりも、隙間ばかり。
それが正解だと思う。表面は汚れが落ちやすいが、隙間こそが問題だ。
ディスプレイ画面でいうと液晶表面よりも、液晶の隅っこの液晶とフレームの段差部分こそ、ほこりがたまりやすい。

最近は、歯科衛生士の勧めで、歯間ブラシを使っている。
歯間ブラシは短くて細い針金に細かい毛がついている小さなブラシだ。それを歯の隙間に挿入して、押したり引いたりして歯間を磨く。
使ったことがない人には、是非お勧めしたい。歯ブラシだけでは対処できていないことを実感できる。
実感できるというのは、出てくるということだ。歯を磨いた後なのに、歯間ブラシを入れると、間にあるものが出てくる。普通の歯ブラシでは足りないことを実感できる。
怖いように思うかもしれないが、慣れれば大丈夫。簡単で、効果が実感できるので、続けられるのではないかと思う。

歯科衛生士にお世話になりながら、こんなことを言うのは申し訳ないが、歯科衛生士が不要になるような歯のクリーナーが欲しい。ちゃんと歯の隙間や歯周ポケットを掃除してくれるような。
将来はそういうものも出てくるかもしれないし、ないということは技術的な困難もあるのだろうが、乗り越えられればビッグビジネスかも。

メール広告 ウェブサービス 望まれないものには効果がない

前記事で、so-netさんのメールが、配信停止操作をしても送られてくる件について書いたが、望まれないことをするということには考えさせられることがある。so-netさんに文句を言っているのはない。一般的なサービスとしての考えだ。
so-netさんは無償のサービスではないが、仮に無償だったとしたらどうだろうか?
無償でサービスを使うからには、ユーザーはあまり文句は言えない。サービスを使わなくなった後も、メールを送ってくるというのであれば問題だが、サービスを無償で利用する引き換えに、広告メールを受信しなければならないという決まりだとすれば、後はユーザーの選択次第だ。サービスは使いたいが、自分にとって不要なものは送るなという、いいとこ取りというわけにはいかないだろう。ただ、そうした場合であっても、サービス提供者に再考を促すことはできる。たまに気に入らないことがあるとすぐ癇癪を起こす人を見かけるが、現状が気に入らなくても、明日は分からない。サービス提供者の立場やこれから先のサービスのあり方を冷静に考え、よりよい方策をサービス提供者に提案することはできる。

ユーザーが望まないようなことをやり過ぎることは、ユーザーが離れるというようなマイナス面ではなく、何よりもプラスに働かないことがある。
その理由はユーザーが望んでいないからだ。必要のない人に必要のないものを押し付けても必要とされない。
必要としない人に広告メールを配信しても読まれないし、広告効果はない。
それならば、メールを読まないと仕方がないようにする方法はある。
メール本文のどこかにコードを埋め込んで、それを入力しないと本サービスを使えなくしたり、メールの文章を読んで意味を理解しないと分からないようなクイズを本サービス利用時に回答させる等の方法もひとつだろう。
ユーザーは渋々メールを読む。だが、それはメールの中から目的となる情報だけを目を皿のようにして探すだけだ。興味のないメールの内容や、広告には目もくれず、本サービスを利用するための答えとなる部分だけを、一生懸命見つけようとする。
ならば、さらに・・・と、イタチごっこを繰り返しても良いが、押せば押すほどユーザーは離れていく。
こうなってくると、メールを送る方も気持ちいいものではないはずだ。

広告メールを例にしたが、それ以外のサービスをする場合にも同様だ。
望まないサービスを押し付けるのは難しい。
だから、何もするな、メールを送るな、と言いたいのではない。
何事も効果的なやり方には工夫がいるということだ。

so-netのメールがしつこい件

「so-net モバイル 3G」というのを使うために、so-netというインターネットサービスプロバイダーに加入したのだが、やたら広告っぽいメールが送られてくる。
メールには配信停止するためのURLが記載されていて、そこにアクセスすると、いちおうは配信停止できるらしい。ご丁寧にその直後、配信停止しましたというメールまで送られてくる。
だが、それでもまだ送られてくる。もう何回も配信停止の手続きをしたはず。会員向けメールに種類がいろいろあるのか、止めても、止めても、送られてくる。

こうなってくると迷惑メールに近い。
@niftyにも加入しているが、そちらはそんなことないんだが。

私が毎月支払っているso-netの会費と「so-net モバイル 3G」の利用料では足りないのだろうか?メールでの広告配信による収益があって、それが計算に入っているからだろうか?

so-netさん。やり過ぎはイメージダウンかも・・・

2011年11月29日火曜日

PHPで金額等の数値に3桁毎のコンマを入れる

金額等の数値に3桁おきにコンマを入れるには
number_format()
を使う。
echo number_format(1234567);
とすれば
1,234,567
となる。
2つめ以降の引数に小数件以下の桁数や、小数点に使う文字、コンマ以外の区切り文字も指定できる。

ちなみに金額なら money_format() というのもあるが、この number_format() の方が簡単かも。

インターネット発の集団行動が気にかかる

大阪府と大阪市のダブル選挙が終わり、橋本徹さんの率いる大阪維新の会が圧勝する結果になった。
テレビのニュースを見ていると、無党派層と呼ばれる若い世代の支持を呼び起こしたことで投票率が上がったことも勝因のひとつとしてあげられていた。その際に、ツイッターやソーシャルネットワークの活用による呼びかけで、投票が広まったのではないかとの指摘があった。

近頃、こうしたインターネットによる社会への影響が見られることが多くなった。
特に、インターネット上の呼びかけで集団行動を引き起こすような現象だ。
先日も、都道府県が作ったマスコットキャラクターの人気投票があって、特定のキャラクターに投票が集中することが起こり、正常な人気投票を妨害するような事態になった。

世界的には、フラッシュモブという事前に申し合わせた人達が街中で通行人のような素振りで紛れこみ、突然、集団でダンスを始めたり、同じ行動をする等して、周囲を驚かす、ドッキリのようなイベントがある。
このような行動は、交通の迷惑になったりすることがあることから、非難の声もあるが、ほどほどなら、珍しいうちは、お遊びで済む。
しかし、不特定多数の集団行動であることから、店舗従業員の少人数では太刀打ちできないことをいいことに、集団万引きをするような事件も起きている。

アラブの春や中国国内での民主化運動等、インターネットを政治的な活動に活用できることは、ある方向性から見ると、有効と見ることができる。もちろん、政権から見ると、邪魔な存在だろう。

インターネットや、その中のソーシャルメディアは良いことに機能することもあるし、悪いことに機能することもある。
良いことはそれでいいのだが、最近は悪い面も目立ち始めているような気がする。

インターネットの呼びかけは、その場限りの無責任な「お祭り」だ。
若い人達は、深く物事を考えず感情で行動してしまうことがある。年をとっても感情で物を考えるが、若い人達よりは自立した考えがあったりして、他人の意見を真に受けない。悪いく言えば年をとると素直じゃないのだ。

インターネットを使って、責任の所在のない集団が、社会へ破壊的なインパクトを与える。
インターネットのユーザーひとりひとりの力を結集して、社会へ影響を与える。その結果がテレビでニュースとして取り上げられる。自分が若かったころのことを考えると、そういうのも面白いかもしれないと思うが、それなら想像が及んでいない。その裏で、悲しむ人や辛い思いをする人がいるかもしれないことを考えなければならない。

どうやって理解すれば「シミュレーション」が「シュミレーション」になるのか

この文章の入力に使っているGoogleのIMEで「シュミレーション」と入力すると「→シミュレーション <もしかして>」と表示される。
GoogleIMEの言うように、元の英単語が「simulation」で「simu~」で始まるから、「シュミ~」ではなく「シミュ~」の方がより適切だ。
もう少し英語っぽい発音では、「スィミュ~」の方が近いのかもしれないが、カタカナ表記に変換される方法としては「simu~」と来れば、「シミュ~」で自然だと思う。

この議論は、もう大昔から、言い尽くされている。
この話題はもう結構だ・・・だ・・・だ・・・だが、気になるのだ。
やはり、「シュミレーション」と書かれると気になる。

どのような発想から「シュミレーション」と書くのだろう?
なかには、本人も混乱しているのか「シュミュレーション」とか「シミレーション」と書く人もいる。
以前、あるコンピュータプログラム中に「syumirater」とう単語を見たことがある。これなんて読むの?シュミラーテー?
「simulator」のことだろうが、この一単語中だけでいったい何箇所勘違いしているのか。

ひょっとして「シュミレーション」と書く人は、どこかで「シミュレーション」という表記を見かけたときに、「うわ、ミスってる」と思っているのではないだろうか?どっちがミスっているのか。
いまだに、テレビでも「シュミレーション」の表記を見かけることがあるし、やはりまだ「シミュレーション」という言葉自体が定着しきっていないということかもしれない。

例え「シミュ」より「シュミ」の方が発音しやすくても、日本語の「趣味」を連想しようとも、元の単語が「simu」となっている以上、それを理解すれば、あらゆる言い訳は払拭される。

simulationの意味が分かりにくいことも原因の一端のような気がする。
simulationとは「擬態」等と訳されたりするが、それでも分かりにくい。
ようは、実際はしないけれど、試験的にやってみたり、本物の真似をするようなことだと理解している。
例えば、避難訓練とか、本物っぽく作られた航空機のコックピットとか。

「シミュレーション」が「シュミレーション」と書かれたところで、普通は困ることはないし、スルーするが、業務で商品名として扱ったりするようなシチュエーションでは、どうでも良い指摘だけにちょっと反応に苦慮する。
それだけに、間違って理解している人は、誰にも訂正されず、ずっと「シュミレーション」と言い続けるのかもしれない。

Excelの表は、完成されているか

Excelは表計算と呼ばれるソフトウェアであるが、何も計算しなくても、表形式で情報を管理したり、ワープロとして使われていたりすることがある。

最初にExcelを起動すると、縦横に罫線のひかれた真っ白な空の表が表示される。
ここで表示される罫線は、印刷では出力されない。
印刷でも出力されるようにするには実際の罫線を書く。

罫線や塗りつぶしを駆使して表作りに凝りだすと色々と装飾できる。
しかし、触れば触るほどメンテナンス性が落ちる。

外枠と中の線等を違う罫線で引いて、異なる罫線を混在させると、コピー&ペーストで罫線もいっしょに上書きされる。ペーストした後、罫線を引き直したりしなければならない等、手間がかかる。
一行ごとに行全体の色を変えてシマシマにすると、見た目に派手だが、行挿入に弱いのは容易に想像できる。
セルの結合をすると、あらゆる操作が複雑化することがある。

複数の人間で管理されるExcelファイルでは、人によって観察力や几帳面さが違うので、編集による表の乱れを細かいところまできっちり修正する人と、そのままにする人がいる。

これらを当たり前のことととるか、何か解決方法があると考えるか。
もう完成しているように見えるExcelでも、よく見ると、改良点はありそうだ。

私は今のままでも困らないが、それより他の人が表を作るときに、あんまり凝らないでほしい。
今、編集している誰かが作ったExcelファイルが面倒で、また、こんな記事を書いてしまった。

知能指数100が平均ということは?

知能指数を判定できるウェブサイトがある。私がやってみると120を超えるような、能力以上と思われる数値が出た。以前に似たようなものをやったことがあるのと、インターネットの知能指数テストの判定誤差によるものだろう。ただ、こんな私でも100前後程度の平均的な知能があるのではないかと勝手に思っている。

国による差や、知能指数という基準の捉え方もあるのだが、大雑把に頭の良さのようなものだとして、平均が100ということは100に満たない人が半数いるということである。
頭の良さというのは、生活において、かなり影響があると思う。
日々選択だ。道路を移動するにも、買い物をするにも、仕事でも、私生活でも、少なからず頭を使う。
ちょっと判断を誤ったからといって、すぐに命に関わったり、取り返しがつかなくなるようなことにはならないが、判断の積み重ねや、致命的な局面では、重要なこともあるだろう。
職業や性格形成にも影響しそうだ。
頭が悪いことで社会的に摩擦ができ、チンピラのようになってしまったり、反対に引っ込み思案になりすぎたりということがあるのかもしれない。
本人はそう思っていないだろうが、世の中、頭があまりよくないことで、不利な生活をおくっている人が結構いそうな気がしてきた。
おっと、ひょっとしてこれは私のことかも、どおりで世の中うまくいかないわけだ。

しかし、頭が良すぎることも不幸だろうと思う。
例えば、水の入ったコップを手に持ってひっくり返せば、水がこぼれて床を濡らす。分かりきったことだ。もしも、そのように明らかに分かりきったことをわざとする人がいたら、私はイライラするかもしれない。
つまり、考えられる人には当たり前のことが、考えられない人には当たり前でないということが起こる。
頭の良すぎる人は、日常的にその状態だ。頭の良い人にとって当たり前のことでも、周囲のほとんどの人はそんなに頭が良くないから、同じように予測できない。
頭の良すぎる人は、周囲の行動に「なに、分かりきったことを失敗してんだ」と、じれったく感じるばかりだ。

私はスーパーやコンビニで買い物をする時、レジで、買った物の金額を暗算している。正確にはしないが、だいたいの総額を計算する。
そして代金の支払い時に予想通りだったか確認できる。大きく違っていたら、レシートをチェックする。その時はたいてい私の勘違いで、後から気付かされて納得するだけだが。
日頃から頭を使うことを億劫がらず、先を見通すようにしておきたいとの思いから、そんなことをしている。

頭が良くなっても、そんなにバラ色の世界でもないのだが。

シェアウェアはどのくらい儲かるのか?

無料で使えるソフトウェアをフリーソフトウェア、有料のソフトウェアをシェアウェアと表現することにする。

シェアウェアを作ったとして、どのくらい儲かるものだろうか?
先に結論を言うと、まったく儲からない。
簡単なソフトウェアであれば、一本も売れないだろう。
そこそこよくできたものでも10本売れれば御の字。100本も売れたらヒット作だ。

シェアウェアは、インターネットを通して販売することが多いだろう。Vectorで公開するか、独自ホームページを設けてPayPal、銀行振込等で支払いを受けるようなやり方がある。

Vectorを例にすると、ユーザーははなっから支払いをするつもりがないのが大半だ。目的のカテゴリーのソフトウェア一覧ページを表示したら、フリーソフトウェアのアイコンのついたソフトウェア以外は、目もくれない。
Vectorを訪ずれる人のほとんんどは一切何も供するつもりなどなく、一方的にもらいに来るだけだ。その意識すらない。インターネット上にあるソフトウェアに対価を支払うという概念がない。
ソフトウェアを作る労力を知らないし、知ろうともしないし、知りたくもない。知ったとしても、知ったことではない。

自前のホームページに公開したソフトウェアなんかだったら、存在を知られることすら難しい。

あなたはメールチェッカーを使われているだろうか?仮に、それが100円のシェアウェアになったとする。
メールチェッカーなんて、どこにでも転がっているので、無料のものを探しても良いが、それまで使わせてもらっていたこと、これから先も使わせてもらうこと、他のソフトウェアに変えた時のインストールと再設定、使い方を覚える手間を考えれば、私なら缶コーヒー1本にも満たない金額なんか、とっとと払ってしまう。
だが、多数の人はそうではない。1円でも値段がつくと、多くの人は使わないだろう。手間や使い勝手を考えれば、どう考えても払ったほうが得だとしても、インターネットの世界では、誰も払わないのだ。
どんなに素晴らしいソフトウェアを作ったとしても、値段をつけると損得の勘定では売れない。
そればかりか、インターネットの世界で有料化すると「悪」とレッテルされ、感情的な反発をかうことすらある。
人が労して作ったものをただでもらえないから「悪」というのは、まったく道理にかなっていないが、インターネットの世界は無料が当然のごとくなっていて、そういう勘違いを起こしてしまう。それが正しいとは思わないがそういう発想を持つ人がいる。

ちょっと前に野田総理大臣という人が少々好感度が高かった。政策が良いからではない。前の総理より低姿勢だからだ。
傲慢ではなく、国民に対して、しおらい態度を見せているからだ。
野田総理大臣の良し悪しは置いておいて、こうした表面的なことでものを見る「人の愚かさ」のようなものを感じるが、現実はそういうことだ。
ソフトウェアも同じで実性能ではなく、他のことが重要だったりする。

こうしたことは、私の経験から考えさせられてきたことだが、そうした中からシェアウェアを売るためのコツというか、法則や、方法も見えてきた。
しかし、それをここでは書かない。いいアイディアがあれば黙っていて、他人に教えるということはしないからだ。

そう、このような書き方をすると、「ちぇッ、なんだ言わねえのか」となる。
私もあなたも、他人に理由もなく、一方的に与えなければならない理屈はないのだが、インターネットでは情報でもソフトウェアでももらえることが当たり前だと思ってしまうのだ。私の言い方もよくない。こうした上から目線のような物言いは反感をかう。
私が思いつくシェアウェアを売るつまらないアイディアのようなものは書いてもいいんだろうが、今回は主眼からそれるのでパスさせていただきたい。

こうした文章をひとつ書くにも何十分もかかる。こんなものでも、そこそこ面倒な作業だ。
時間と頭を使って、得られるものはほとんどない。
シェアウェアも同じようなことが想像できるのではないだろうか?

SQL Server2000でDTSのインポートのテーブル指定が面倒くさい

SQL Server2000 の SQL Server Enterprise Manager。DTSによるインポートという機能があり、別のデータベースからテーブルやビューをコピーすることができる。データベースのまるごとコピーなら、バックアップと復元を使う方法もあるが、ネットワーク経由だとバックアップファイルのコピーが必要になるためセキュリティ上許されないことがある。そこでポート1433を開放して、ネットワークごしにコピーするためのひとつの選択肢となる。

この機能、SQL Server2000で行おうとするとかなり使いにくい。
「データ変換サービス インポート/エクスポート ウィザード」を使い、「変換元データベースからテーブルとビューをコピー」というので行うと、テーブルとビューを選択するダイアログが表示される。
このダイアログが強烈に使いにくい。テーブル数が数百、数千とあるような大規模なシステムになると地獄を味わう。
テーブルとビューが一覧表示されるリストに、5行と半分ぐらいしかテーブルが表示されない。ダイアログのサイズは固定されていて、大きさを変えることもできない。ちょっとずつスクロールしながら1行ずつ設定していかなければならない。
「すべて選択」「すべて選択解除」というボタンがある。これをクリックするとすべての行のチェックボックスが変化する。あくまですべての行を一気に変えるものなので、部分的に変更したい場合は、ひとつひとつクリックしていく。ShiftキーやCtrlキーによる複数行選択も効かない。本当に一行、一行、設定していかなければならない。マウス操作ではチェックボックスの細かいクリックが辛いのでキーボードで行おうとすると、チェックのオン/オフはスペースキーでできるものの、次の行に移動しようと下矢印キーを押すと、2列目のセルがコンボボックスになっているので、コンボボックスの中身がスクロールしてしまう。
唯一の方法は、はじめにすべて選択にした後、チェックを解除したい行をクリックしてアクティブにし、スペースキーでその行のチェックを解除する、解除することにより2列目のコンボボックスが消える。それで下矢印キーで行移動が効くようになるので、次の行に移動できる。以降はスペースキーと下矢印キーを交互に連打する。選択しなければならない行よりも、選択しない行の方が多くても、マウスクリックでチェックするよりはキーボード連打の方が、幾分、速くて楽だ。
スペースキーと下矢印キー、2つのキーをがんばって連打しつづけて複数行の選択状態を変えることはできても数百行ともなると、かなり辛い。いや、辛かった。

各テーブルやビューには所有者がある。作成先はデフォルトで「dbo」になる。これまた一行ずつ、書き換えていかなければならない。
あらかじめクリップボードに所有者名をコピーしておいて、作成先のセルをクリックし、所有者名の位置までカーソル移動して、Ctrl+Vで貼り付け。次の行をクリックしては、カーソル移動して貼り付け。これを何百行と行わなければならない。いや、行った。

セルを編集状態から抜けようとしたり、なにかの拍子に、間違ってESCキーを押したりすれば、瞬時にダイアログが閉じて、行った編集が全部パーになる。いや、なった。
なったら、またひとつひとつやりなおしだ。涙が出る。

何時間もかけて、「次へ」ボタンを押す段階まで到達できたなら、次の画面でDTSパッケージとして保存しておくことができる。保存しなかったら、せっかく設定した内容は一回限りで終わるので注意したい。
保存したパッケージは、後から編集しなおすことができない。一度作ったら最後、先ほどの画面のテーブルとビューの選択を編集しなおすことはできない。一箇所でも間違っていれば、はじめからやりなおしとなる。

作ったDTSパッケージをちゃんと作って保存できたなら、「データ変換サービス」に登録されているので、そこから実行できる。実行にはかなり時間がかかる。

それで、苦労して作ったDTSパッケージを実行してみると、エラーの嵐・・・
もうエラーの内容を検証する気にもならず、あきらめて他の代替案で行った。代替案があったからいいけど。

これに限らず、SQL Server Enterprise Managerは、何をやっても反応が遅いし、どうにも使いにくい。

2011年11月28日月曜日

大量のファイルを複数のディレクトリに分散して格納する方法

最近はハードディスクもテラバイトクラスの容量なので、大量のファイルを作ることができる。

以前、linux上でPHPを使いウェブサイトのプログラムを書いた。
それは、使っているとファイルがどんどん増えてくるシステムだ。
linuxの場合、ひとつのディレクトリに作れるファイルは最大3万とか、そういう値だったと思う。
いずれにしてもひとつのディレクトリに何万もファイルがあれば、いい加減多すぎるし、何かの時に問題が起こりかねない。
そこで、増えてくるファイルを複数のディレクトリに分散する形をとることを思いつく。

最初はディレクトリ「00001」にファイルを入れていく。1万個まで達したら、次は「00002」というディレクトリを作ってそちらに入れる。というような手法だ。
これでは、ディレクトリにいくつファイルが入っているか、どこまでディレクトリを作ったか等の管理が必要になる。例えばそのカウンターをデータベースに記録しておくといったようにだ。その場合、ウェブシステムなら連番管理の排他制御も考えなければならないかもしれない。

少し面倒なので別の方法を考えた
まず年でディレクトリを作り、その下に月日でディレクトリを作る。実際のファイルはその月日ディレクトリの下に入れる。一日に数千個程度までのファイル数であれば、これで対処できる。まだ無理なら時刻でサブディレクトリを作っても良い。
ファイル名は時刻やuniqid()を使う。

しかしながら、このことは今のシステムを作ってから思いついた。
よく考えず、別の方法で作ってしまったのだ。
たぶん大丈夫だと思うが、自分の納得のいかない状態になっているのが、ちょっと気分が悪い。

無駄な会議にはノートパソコンがあると便利

仕事によっては無駄な会議に出なければならないことがある。
今日の私の定例の会議もまた、部署の長となる立場の人間が奥の席に座り、それを取り囲むように数十人が席に座るという、よくある日本の会議の風景となった。
数ページにわたる細かく書かれたドキュメントが配られて、関係あるのかないのか分からないようなことを、ひとつひとつ進めていく。

何枚にもなるような資料なんか、どうせ参加者の頭に入るわけがない。
資料を作るとしたら1枚がちょうど良い。要点を3項目程度にまとめ。それに箇条書きででも説明をつければ程良い形になる。
細かい数字もいらない。「売上は、1,400,000千円の目標に対して、実績は1,103,897千円。296,103千円不足している。」等とするより、「売上は、14億円の目標に対して、実績は約11億円。3億ほど足りない。」とでもした方がピンとくる。

会議に出席する側の気持ちになって考えてみよう。
何枚もの資料を目の前に出された時など、ため息が出るだけだ。
退屈な会議など眠たいだけで、何も残らず、全員にとって無駄な時間にしかならない。
翌日、内容を聞いてもほとんど覚えてなんかいない。

しかし、人の愚かなのは、人のふり見て・・・ということもあるので、まあ参考にすればよい。
そういうくだらない建て前や、セレモニーの中に付き合わされるときなどは、ノートパソコンがあると便利だ。
パソコンを使っていても会議に耳は傾けておけるので、あまり問題はない。
キーボードのタイプ音に注意はいるが、効率的な時間を過ごせるし、暇つぶしにもなる。

2011年11月25日金曜日

PHPでFTPアップロードする

PHPをcronで実行して、ロリポップのサーバーにFTPでファイルをアップロードする必要があって、その時に行ったPHPによるFTP処理の技術資料。

$connId = ftp_connect("ftp.aaa.com"); // 接続
ftp_login($connId, "user", "password"); // ユーザー名とパスワードでログイン
ftp_pasv($connId, true); // パッシブモードにする
ftp_chdir($connId, "upload"); // アップロード先のディレクトリに移動
ftp_put($connId, "filename", "/usr/local/filename", FTP_BINARY); // アップロード開始
ftp_close($connId); // FTP終了
こんな感じで一連の処理が行えます。
テキストファイルの場合は、ftp_putの第4引数に FTP_ASCII を指定します。
サーバーに既にファイルがあった場合は上書きされます。
ちなみにダウンロードは ftp_get です。

フリーソフトウェア、シェアウェアの公開方法

フリーソフトウェアやシェアウェアを作ったは良いが、次にどうやって公開するかが問題になる。
現在、これが簡単にできない世の中になっている。

順当なのは、Vectorに登録することだ。
Vectorは、そこそこ有名なサイトなので、作ったソフトウェアの宣伝になるし、ダウンロードする側に安心感を与えられる。
公開するのがシェアウェアなら、送金の代行もやってくれる。

ただ、Vectorはいざ使おうとすると不便な面もある。
ひとつは、登録時のチェックに日数がかかること。昔、ウィルス混入騒ぎがあったため、今はウィルス等のチェックが厳重に行われているからだと思うが、これに数日かかる。新規登録したときだけでなく、バージョンアップで差し替えるたびにチェックが行われる。
例えば、付属ドキュメントの記載に不正確な点があって、その部分をわずかに修正してアップロードしなおしただけでも、そのたびごとに公開まで待たされる。
また、紹介文の文字数や、紹介画像数に制限があるので、複雑なソフトウェアでは十分な紹介ができないかもしれない。
シェアウェアでは、シェアレジに登録することで代金支払いを仲介してくれるのだが、そのために郵送で書類のやり取りが必要なので手軽にすぐ始めるとはいかない。ソフトウェアの登録とは異なるシェアレジ用のアカウントが発行され、アカウント管理が二重になるのも少々煩雑に感じてしまう。
そして、シェアレジの手数料は結構重い。作者と購入者、両方に手数料がかかる。商品代金1,000円だとしても購入者は手数料と消費税で1,155円を支払い、作者側も別途手数料が引かれて、受け取るのは892円になる。
実質、購入者は作者が受け取る金額に30%上乗せした金額を支払うことになる。

Vectorを使うことで、自分でウェブサイトを用意する必要がなく、ほとんどほったらかしで公開できる。
Vectorの欠点は欠点として、利点を活かして、有効に利用させていただくのが一番賢い。

次に自分でウェブサイトを作る方法がある。
無料のホームページサービスの中には容量1GBとかと謳っているところもあって、問題なく使えそうに見えるが、実際は1ファイルのサイズやアップロードできるファイルの種類、HTMLファイルとデータファイルの比率、転送量等に制限がある。
実際のところ無料ホームページスペースでソフトウェアのダウンロード環境を作るのは難しい。
ダウンロードはVectorへリンクする方法で、無料ホームページではソフトウェアの紹介を詳細にするという活用はできる。
また、シェアウェアならPayPalや銀行振込等、別の支払い方法を紹介したり用意しておくためにも使えそうだ。

シェアウェアで、そこそこ売れるのなら有料のホームページスペースを使っても良いが、シェアウェアはほとんど売れるものではないし、フリーソフトウェアだったら収益は0。広告を掲載しても良いが、ある程度アクセスを集められるものでなければ、ホームページスペースの費用をまかなえないかもしれない。寄付というのも成立しないのは目に見えている。

ソフトウェアを作っても公開するのすら難しい。

Googleのサービスが無料なのは本当に良いことなのか

ずいぶん前に読んで、興味深かったブログ記事「Googleがネットを無料化する目的
Googleが無料でサービスやアプリケーションソフトウェアを提供するのは、広告スペースを広げるためであるという見方だ。
特に「ユーザは目先の利益しか考えないので…」という表現は、私も同じように考えそうなので、おもしろく感じた。そして、この記事に興味を持った本質的なところだと思う。

私は、このところGoogleには、以前のマイクロソフトのように独占による問題が頭をよぎる。
というのは、最近Googleのサービスを色々(Gmail、Analytics等)使っているとIEではレイアウトが崩れたりして、きれいに表示されないことが多いのだ。
Chromeを使え、ということなのだろうが、Chromeでは文字化けして、まだうまく表示されないウェブサイトがあったりするのと、シェアという意味ではまだまだIEが多いので、自分のウェブサイトを日常的に確認できるためにデフォルトブラウザをIEにしておきたいという事情がある。
Googleのサービスは優秀で、なにより無料で使える。だから使ってしまう。そしてウェブブラウザもChromeに変えざるを得なくなってくる。Googleの思う壺だ。

本来、ウェブサイトのコンテンツもアプリケーションソフトウェアも、制作するのに手間や費用がかかるはずである。にも係わらずインターネットでは無料が当たり前のようになっている。
コストを回収するには一見無料に見える広告でしか成立しない世界になってしまっている。しかし、広告は収益の効率があまりよくない。
有料にすれば、見向きもされないし、無料でやるには、儲からない広告でやるしかない。
コンテンツ提供者とユーザーの間に立つGoogleが中間搾取することで、コンテンツ提供者とユーザーは余計な費用を支払う構造になっている。
Googleの収益は、自然に湧いたものではない。どこかから生まれたものだ。それは突き詰めればユーザーからだ。

誰でも無料の方がありがたい。
だが「ただほど高いものはない」
よく裏を考えておかないと、実は大損をすることもある。

しかし、Googleが悪者と決め付けるつもりはない。広告代理店も価値あるサービスのひとつだ。
むしろ私はいつもGoogleのお世話になっている。このブログもGoogleのbloggerを使っているし。

元記事「Googleがネットを無料化する目的」に興味を引かれた本質や、こうした文章を書いているのは、何が正しいか間違っているかを言いたいのではない。これを考えることで何かを変えるつもりもない。本能や目先の利益だけではなく、元記事の筆者のように広い視野を持っておきたいということである。

lsのディレクトリ名が暗い青色で読めない

linuxのコマンドラインでlsコマンドを打つと、ディレクトリ名等の文字が色分けされて表示されるが、ディレクトリ名が暗い青色で表示されて、よく見えない。
顔を近づけて見るとなんとか読めるが、不便なので色を変更したい。

/etc/DIR_COLORS をホームディレクトリにコピーする。
# cd
# cp /etc/DIR_COLORS .dir_colors

次にコピーしたファイルを編集する。
# vi .dir_colors

以下の行を編集する。
DIR 01:34 # directory

例えば下のように 34→44に変更する。44は青色の反転表示。
色の種類はすぐ上のコメントに英語で書かれている。
DIR 01:44 # directory

変更を反映するために、evalコマンド実行。
# eval `dircolors .dir_colors -b`

このように読みやすくなった。

.dir_colorsファイルの設定しだいで、他にもファイルの種類や、zip、jpg等の拡張子で色分けできたり、太字、ブリンク等の修飾も可能。

2011年11月24日木曜日

MySQL Connector 64bitでMS-AccessからMySQLにテーブルリンクを作成できない

Linux上に構成したMySQLをMS-Accessから見られると便利だ。
MySQL Connector/ODBC でそれができる。
ODBC経由で接続して、MS-Accessからテーブルを表示したり、編集したりできる。

Windows 7の64bit版を使っているので、MySQLのサイトから
「Windows (x86, 64-bit), MSI Installer」
という64bit版のプログラムをダウンロードした。バージョンは5.1.9だ。
しかし、MS-Access上でテーブルへのリンクが作成できなかった。

どうやってもできなくて
「Windows (x86, 32-bit), MSI Installer」
という32bit版に入れ替えると、使うことができた。

それで使えているから別にいいのだが、Windows 7の64bit版なので、MySQL Connectorも64bit版が正しいような気が…なぜ?

ユーザー登録システムの捨てアド対策

ウェブサイト等のユーザー登録システムを作成していて、ユーザー登録フォームにメールアドレスの入力欄を設けている場合がある。
メールアドレスのフォーマットをチェックしたり、ドメインの存在チェックをして、正しいメールアドレスが入力されているか確認したりするのはよく行われる。

それ以外に短時間で消滅するメールアドレスが存在することも知っておいたほうが良い。
インターネットサービスの中には、10分程度の時間だけ一時的に存在して、しばらくすると消滅するメールアドレスを発行しているところがある。いわゆる「捨てアド」である。
そのようなメールアドレスでユーザー登録された場合は、ウェブサイトはユーザーと連絡不能になる。
ウェブサイトが何かのダウンロードサービスをしているような場合には、目的の物をダウンロードするために、そうした一時的なメールアドレスが使われることがあるようだ。
ウェブサイトに正しいメールアドレスを入力させるのが、スパムメール等、ユーザーが望まないものを送りつける目的であれば論外であるが、正当なウェブサイトなら、連絡不能になる不都合が起こることも考えておかなければならない。

一時的なメールアドレスが入力されたかをチェックするには、そうしたメールサービスが発行するメールアドレスのドメイン名部分をチェックする方法がある。
そして、ユーザー登録フォームに不正なメールアドレスが入力された場合はエラーを表示し、ユーザー登録できないようにする。

そのようなメールアドレスを入力する者がウェブサイトを利用する意思がないユーザーであるとみなすとすれば、不正なメールアドレスであることが分かった上でユーザー登録を許し、目的とする行為(消極的な投稿や目標とするものの取得)が行えないようにするのも方法だろう。

また、入力されたメールアドレス宛に確認のメールを送信し、メールに記載されたアドレスにアクセスさせることでユーザー登録を完了させるシステムとしている場合には、確認メール送信までの時間を長くするのも対策になる。

運用時には、新しいユーザーが登録されたら、常にドメイン名部分をチェックするようにしておきたい。日本国内でよく使われるドメインはISPや企業名、gmail、Yahoo等が多い。
実はそれほど種類は多くないし、一時的なメールアドレスのドメインはあまり見かけない名前のことの方が多いので、あやしいドメイン名というのはすぐに気がつく。あやしいドメイン名でユーザー登録された場合には、該当のウェブサイトをチェックして、一時的なメールサービスであることを確認し、ウェブサイトの不正メールアドレスリストに追加しておく運用とすることで、新たなドメインの登場に対抗する。

一時的なメールアドレス以外にも、無料で作成可能なフリーメールでも同様の心配がある。これはgmail、Yahoo、hotmail等、多くの種類がある。この辺りは仕方ないとするか、厳格に取り締まるかはサイトの運用方針次第だろう。

このような対策を考えることになるのは、メールアドレスを転売する業者や、広告メールを配信する業者が存在していることで、ユーザーがメールアドレスの登録をためらうためだ。
その結果、真っ当なウェブサイトまでもが怪しまれることになる。
しかし、ユーザーに悪質なケースも見られる。表に出てくることは少ないが、ウェブサイトを運営していると、遭遇するユーザーモラルは様々だ。
ウェブサイトは自分の身を守るために、ユーザーを甘く見て油断するようなことはできないのが現実だ。

PHPのPDOでデータベース接続をプールする方法

PHPのPDOでデータベースを扱う場合に、データベースの接続をプールして使い回してくれる方法がある。
スクリプト実行のたびに再接続しているとオーバーヘッドが生じるからだ。

例えば以下のようにしてPDOのインスタンスを作成すると良い。
----------
$pdo = new PDO('mysql:dbname=test;host=localhost', 'user', 'password', array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8", PDO::ATTR_PERSISTENT => true));
----------
「PDO::ATTR_PERSISTENT => true」の部分がそれ。
後はPHPにおまかせで良い。
こういうものが用意されているがPHPの便利なところだ。

接続プールとは関係ないが、この例ではMySQLで文字コードにutf8を指定している。MySQLでutf8を使っている方はこのようにして文字コードも指定すると良い。

ユーザー登録システムにおけるパスワードの強度チェック

ウェブサイト等でユーザー登録が必要なシステムを作成する場合に、注意する点がいくつかあるが、そうした中のひとつとして、ユーザーが設定するパスワードにも気をつけておきたい。
ユーザーが安全性の低いパスワードを設定した場合には、「あらし」や「なりすまし」が発生する危険性がある。
そのような場合には、ウェブサイトのセキュリティ管理にまで追求が及ぶこともあり、ユーザー、ウェブサイトともに被害を被る。
新規ユーザー登録時や、パスワード変更時に、パスワードの強度をチェックするようにしておき、強度が低すぎるパスワードは受け付けないようにしておく方が安全だ。

チェックする項目としては以下のようなことが考えられる。
・数字のみのパスワードは受け付けない。
 12345678
 111222333

・キーボード配列に沿ったパスワードは受け付けない。
 1qaz2wsx ・・・ 1キーと2キーから下に押していったパターン
 qazwsx ・・・ qキーとwキーから下に押していったパターン
 qwertyuiop ・・・ qキーから右に押していったパターン
 741852963 ・・・ テンキーを下方向に押していったパターン

・特定の文字列を含むパスワードは受け付けない。
 password
 pass
 hoge
 hogehoge
 hogefuga
 サイト名等

・繰り返しパターンのパスワードは受け付けない。
 abcdabcd
 abcabcabc
 abcddcba

・ユーザーIDを含むパスワードは受け付けない。
・含まれる文字の種類数が少ないパスワードは受け付けない。

キーボード配列等の文字列パターンは以下のPHPプログラムのように、正順、逆順どちらでも受け付けないようにしておくと良い。
----------
$pattern = "1234567890".
    "abcdefghijklmnopqrstuvwxyz".
    "qwertyuiopasdfghjklzxcvbnm".
    "qazwsxedcrfvtgbyhnujmikolp".
    "1qaz2wsx3edc4rfv5tgb6yhn7ujm8ik9ol0p".
    "zaqxswcdevfrbgtnhymjukilop".
    "zaq1xsw2cde3vfr4bgt5nhy6mju7ki8lo9p0".
    "741852963963852741";
if(stristr($pattern, $password) != false)
    return false;
if(stristr(strrev($pattern), $password) != false)
    return false;
return true;
----------

PHPでメール送信する方法

PHPのプログラムからメール送信するにはmail()を使うことで簡単に行える。

サンプルプログラムは下の通り。
通常、このプログラムで変更が必要なのは最初の4行の$toMailAddress、$subject、$mes、$headerに入れる内容だけで良いと思う。

-----------
$toMailAddress = "test@test.com";
$subject = "メールタイトル";
$mes = "こんにちは\n本文";
$header = "From: test@test.com\r\n";

mb_language("ja");
mb_internal_encoding("ISO-2022-JP");
$subject = mb_convert_encoding($subject, "ISO-2022-JP", "UTF-8");
$subject = mb_encode_mimeheader($subject,"ISO-2022-JP");
$mes = mb_convert_kana($mes, "KV", "UTF-8"); // 「半角カタカナ」を「全角カタカナ」に変換
$mes = mb_convert_encoding($mes, "ISO-2022-JP", "UTF-8");
if(!mail($toMailAddress, $subject, $mes, $header))
    error_log("メール送信エラー");
-----------

環境の文字コードはUTF-8、CentOS 5.7 + PHP 5.3.8を使っている。

複数システムの結合は絶対に一回でうまくいかない

古いシステム開発の手法では単体テスト、結合テスト、総合テスト等と呼ばれるテスト行程の種類がある。
結合テストはどのレベルの結合をいうのかということはあるが、プログラムのある部分同士を連動させて動作させた場合のテストである。

結合テストだけの話ではないのだが、異なる環境で作成されたプログラムを結合させた場合、確実に動作しないと思って間違いない。
結合部分が、関数呼び出しか、ファイルか、ネットワークか等に係わらず、双方のインタフェース仕様をどんなに厳格に定義したとしても、2つのプログラムを別々に作り、はじめて結合すると、絶対に動かない。

これは理屈ではなく、少し宗教じみた話である。マーフィーの法則のようなものだ。
簡単なインタフェースで自信満々でも、絶対に一発では動かない。
うまくいくことを信じてことを進めると確実に残業するはめになる。
うまくいかないことを前提に考えておいてよいし、心配しなくてもそのようになる。

キーボードのタイピング音がうるさい人は注意

もうずいぶん昔だが、UNIXサ-バーのとてもタイプ感の良いキーボードで仕事をしたことがあった。
そのキーボードを叩きながら、タッチタイピングで軽快に入力している自分の姿を想像して、きまっていると悦に入っていたかもしれない。
今思うと恥ずかしい。

今の時代、キーボードのタッチタイピングはすっかり見慣れた光景だ。IT関連の技術者だけでなく一般の人も普通に行なっている。識字や算数の感覚に近く、できることが当たり前で、もう意識すらしない。
いまさらキーボードのタッチタイピングがどうこうという話をしても懐かしく感じる。

最近、会社のオフィスで仕事をしていると、周囲のキーボードの音が気になることが多い。
私が神経質すぎるのが一番の原因だが、そうはいっても集中力を欠いてしまい一時的に頭の回転を止めさせられることがある。

大きな音のするキーボードを使っている人は周囲に迷惑をかけていることがある。
キーボードのタイピングが速いというのは、周囲から羨望の目でなく、顰蹙の目で見られているだけだ。

プラスティッキーなカチャカチャ音のするキーボード。エンターキーやスペースキ-等が、パンッ、カンッ、と、鋭い音のするキーボードは要注意。
特に高速にタイピングできる人こそ気をつけたい。

ブログやホームページのアクセスアップ方法を考える

ホームページやブログを作成しているような人は、自分のサイトに多くの人が訪れて欲しいと考えることがある。
純粋に自分の発信する情報を見てもらいたいと願ったり、アフィリエイト等で広告収益を得たいと考える人。
アクセスアップのためにランキングサイトに登録してみたり、SEOで検索エンジンから人を集めたいと考えたりする。

アクセスアップを願うことや、その活動をしてみることは良いと思う。その結果、残念ながらあまり結果は得られないだろう。
客観的に考えてみると良い。世の中、大量のウェブサイトがある。そう簡単にいくわけがない。

そういう私も色々考えたりするが、今思うことは、もうアクセスアップはあまり考えないようにしてはどうかと。
要するに、あきらめてしまうのだ。
アクセスなんかなくたっていいじゃないか。
自分が成長し、少数の訪問者か、あるいは自分ひとりが楽しめたらそれでよし。
自分色のサイトを作ろう、と。

アクセスアップばかり考えているサイトというのは、どうしても下心が見えてしまう。サイト訪問者というのはそうしたことを敏感に感じ取る。訪問者に余計なことを感じてもらってもイメージダウンになるだけだ。
ホームページにせよ、ブログにせよ、その作成にかかる労力に対して見返りは小さく、割に合わないのが普通だ。
結局、人の欲というのは尽きることがないので、どこまでいっても満足することなどない。

ブログだったら、100%自分のポリシーで満たされた世界一理想的なサイト。
ホームページだったら、細かなレイアウトまで思いのまま。部屋の中の家具の配置を考えるような楽しさがある。
アクセス数よりも、自分の頭の中に思い描くものを形にしていく。それを思うだけでエキサイティングだ。

2011年11月23日水曜日

海外ドラマのストリーミングサービスHuluはお得?

いろんなページを見ていると最近よく見かけるHuluっていう動画サイトの広告。「ふーるー」と読むらしい。
海外のテレビ番組や、ちょっと古めの洋画をインターネット経由のストリーミングで見ることができるサービス。
最初のひと月は無料でお試しできて、それ以降は月額1,480円。
パソコン以外にもiPadとかiPhone、Android端末等で見ることができるらしい。

画質はあまりいいとはいえないが、テレビ番組を見るのであれば、まあなんとか大丈夫。
字幕が時々変になっていることがあるけれど、脳内補完でなきないレベルではない。
オンデマンドなので、自宅に居ながらにして、見たいと思ったその瞬間に鑑賞できるメリットは大きい。

迷うのが月額約1,500円というところ。
レンタルビデオと一緒にして考えるのは違うのかもしれないが、やはり比較対象になってしまう。
私がたまに行くTSUTAYAというところでは、DVDが当日返却で300円。旧作だともう少し安かったかもしれない。
毎月コンスタントに5本以上レンタルビデオを借りるほど見るのならHuluもお得感があるのだが、私の場合は微妙なところ。
しかし本来は比較するのではなく、自分にとってその金額の価値があるかで判断するべきなのだろう。

で、実ははまってしまっている。
プリズンブレイクという海外ドラマを見てしまった。
このドラマの存在は知っていたし、昔に見ていた知人もいたのだが、特に何かしてまで見ようとは思わなかった。
今回、Huluはお試しで簡単に見れてしまう。
プリズンブレイクは全部で78話あって、半分ぐらいまで見たころは、こういうのが見れるのなら1,500円払うのなんか全然OKとか思っていたが、シーズン3あたりから飽きはじめてきた。
良いサービスに相応の費用を支払うのは当然だと思うし、まあ、他にも色々見られるようなので、Huluが自分に合うサービスなのか何ヶ月か様子を見てみようと思う。

金蔵寺で気分転換

少し遅れているようですが、京都の紅葉もピークを迎えつつあるようです。
ラジオのアルファステーションを聞いていると、渡月橋は通行規制になっているようで、嵐山方面はけっこうな人出なのでしょう。
息抜きに京都市西京区の金蔵寺というところに行ってきました。
京都でも、こうした穴場で静かに季節を感じる方が私には合っています。

金蔵寺入口
200円を寄付して入ります。

階段を上りきると、さっそくの紅葉

階段のもみじ
いい感じです。

もう少し階段を上がると、本堂に着きました。

線香一本10円。
太い線香です。
手が線香臭くなりました。
本堂の中からなにやらお経のようなものが聞こえてきます。

本堂の前も赤く色づいています。

本堂横にある開山堂。
ひっそりとした佇まいが、癒されます。

少し歩いて見晴らし台にきました。

京都市の南寄りが見えているようです。
京都タワーも見えました。

真っ赤なもみじと本堂
周囲をぐるっと回って散策しました。
30分ぐらいかけて、静かにじっくり楽しめました。

金蔵寺の近くには滝もあります。

休日のひととき、日ごろのストレスもありますから、よい気分転換になりました。

世の中にはまだ他人を思いやる人も残っている

ここのところ、というか、今年はずっと嫌な気分の一年だった。
そんな日々の中、先日めずらしくいいことがあった。
ポストに警察からのハガキが入っていたのだ。
遺失物の連絡である。
思い当たることがあったので、瞬時に分かった。

先日、ノートパソコンのメモリをインターネット通販で購入したのだが、動作せず、それで別のメモリに交換してもらって、それでも動作しない。どうやら相性が悪いようで返品、返金対応してもらうことになっていた。
それで、メモリを返品のための封筒に入れて用意しておき、昼休みに郵便局に持っていこうと思っていたのだが、会社に出勤すると、封筒がどこにも見当たらない。どこかで落としたのだ。
メモリの返金といってもたかだか2、3千円程度。完全にあきらめていたところ、わざわざ警察署に届けてくれた人がいた。
確かに自分だったら届けるかもしれないし、それが普通だと思う人もいるだろうが、ここしばらく嫌なことばかりで人間不信になっていたので、これが奇跡的な出来事に感じた。

警察署に行き、簡単な書類に記入して、印鑑を押し、身分証明書を見せると、無事、受け取ることができた。
落とした場所を教えてくれたが、お礼は結構ということで、届けてくれたのはどんな方か分からない。

メモリがどうとか、金額がどうとか、そういう問題ではない。
世の中には、まともな人がちゃんと存在することを認識できたことで、今の私の心を浄化してくれた気がする。

2011年11月22日火曜日

ユーザーサポートはメールより掲示板がベター

個人でウェブサイトを運営していたり、フリーソフトやシェアウェアを公開しているような場合に、ユーザーサポートの窓口が必要になることがある。
簡単なのはメールや掲示板を使う方法だ。
その両方にメリットとデメリットがある。サポートを受ける側とサポートする側でも、メリットとデメリットは変わってくる。
ここではサイト運営者やソフト開発者の立場から見たサポートする側の視点で考える。

もしもメールと掲示板、両方でサポートしていたとしたら、ユーザーはどちらを選択するだろうか?
多いのはメールである。
サポートを受ける側は、自分の問題を解決することだけが目的であるから、他人のことなど関係ない。むしろ他人の目に触れない方が都合が良い。問題が解決すれば、いつまでも掲示板に発言が残っている必要はない。
サポートをする側に直接メッセージが届くので、回答を得られる確率も高い。
他人の目に触れないメールでは、どのようなことでも書ける。サポートする側に対して第三者が見て首を傾げるようなこともメールなら言えてしまう。人前で言えないことこそメールで問い合わせるのである。
一方、サポートする側としては、メールで行なっても、その個別の対応で終わり、他の効果はなにも得られない。

掲示板にすることで、同じ問題を持つ他のユーザーがいた時の情報源になり、以後のサポートを少しでも減らすことができる。
簡単な問題であれば、掲示板を見ている他のユーザーが代わりに回答してくれることがあるかもしれない(まず、ないが)。
掲示板自体がコンテンツとして機能し、サイトの集客効果を高めることも少しは期待できる。
誠実な対応をすることで、他のユーザーから見た運営者の印象も良くなる。
なにより、白昼にさらされることで、ユーザーは人前で言えないような内容の要求をできなくなる抑止効果が一番大きい。本来、人前で言えないことならメールでも言うべきでない。

掲示板でサポートする場合には、選択肢を与えないためにメールアドレスを公開しない方が良い。
個人情報を含む等、運営者と直接やり取りしなければならないような内容は、いったんその必要性を掲示板で知らせてもらい、一時的なメールアドレスで連絡をとるようにする。

さらに良いのはメールアドレスを公開して、そのメールアドレス宛の問い合わせはすべて掲示板に転載すると宣言することである。メールで問い合わせても強制的に掲示板へ投稿されるようにする。回答をするとしたら転載した掲示板側で行う。
メールの内容を見て掲示板に掲載するべきでない内容かどうかを運営者が判断できるし、掲示板に掲載できない内容が含まれていた場合には、その部分だけ伏字にして掲載してしまえば良い。

イニシアティブをとっておくために、ユーザーサポートについては掲示板での運用が良いと思う。
今までの多くの残念な経験から学んだことである。

Yahoo!マップのmoveendでズーム変更時のイベントが起こらなくなった?

Yahoo!のJavaScriptマップ。ひょっとして最近仕様変更された?
「moveend」のイベントを登録しておけば、地図をスクロールした場合の他、ズームを変えたときにもイベントが発生していたはずなのだが、どうもイベントが起こらなくなっているみたい。
それならと「moveend」に加えて「zoomend」もイベントリスナーを登録して、あっさり問題は解決。

それにしても自分のサイトにYahoo!地図を使っていて突然動作がおかしくなると、訪れたユーザーからの信頼感が失われるようで嫌な感じがする。
事前に分かるとありがたいのだが。

いずれにせよ今後はYahoo!デベロッパーネットワークのお知らせRSSをチェックすることにしよう。

NECアクセステクニカのルーター Aterm WR8700Nを購入

これまでNECアクセステクニカのAterm WB7000Hという古いブロードバンドルーターを使っていた。
WANのスループットが良く、機能的にもほぼ問題なくて、なにより毎日、安定して動作してくれていた。
無線LANのアクセスポイントも内蔵していたのだが、11bにしか対応しておらず、使っているとたまにルーター全体をフリーズさせることがあったのが、少し痛かった。

最近、サーバーのメンテナンスをしていて、LANでファイルコピーしていると、100Mbpsではかなり時間がかかることがある。数百GBのファイルともなると、何時間もかかるので、夜寝る前にコピーしておくというような状態で作業がなかなかはかどらない。

そこでギガビットのハブを買おうとPC DEPOに買い出しに行ったのだが、4ポートのハブで安いものでも3000円~4000円する。すぐ近くの売り場にあるルーターを見ると7000円代で買える。ハブだけに数千円払うのであれば、いっそのことルーターごと買いかえてしまっては?

と、いうことで購入したのは、同じNECアクセステクニカのAterm WR8700Nという機種。
同じような価格水準の製品でバッファローのものもあったが、以前、バッファローのサポートに電話をしたことがあって、自動応答のメッセージで散々質問され、最後には待ち受けメロディが流れるばかりで、オペレーターには繋がらない。
バッファローは設定の難しいネットワーク関連の製品をはじめとした様々な周辺機器を数多く販売している。サポートはそうとうに多忙なのだろうと想像する。
そうすると万一のときのことを考えたときに不安なのと、同じ会社の製品であれば、古い機種でできたことは、新しい機種でもできるだろうし、設定方法を改めて学習しなおすことも面倒。
以前と同じNECアクセステクニカの製品を選択した。

新しく購入したAterm WR8700Nは、期待通り、機能的にはほぼ満たされていて、安定して動作している。
無線LANはa、b、g、n全部に対応していて、今のところルーターをフリーズさせることもない。
設定画面はさらに洗練されていて、DHCP固定IP割り当て、ポートマッピングのポート番号範囲指定等、機能的にも強化されている。
ほとんどの項目で設定した後にルーターを再起動する必要がないのには感動した。

以前のルーターでは、複数プロバイダーと契約している場合等に使うマルチセッション対応なのは良かったのだが、WANから入ってきた接続をLANから戻すとき、入ってきたセッションにちゃんとつないでくれなかった。LANからWANに出る接続はデフォルトで優先先セッションに抜けてしまうためだ。そうさせないために静的ルーティングで送信元ごとにルーティングを設定する必要があった。
新しいルーターではそこも改善されていて、もう静的ルーティングを設定する必要はない。WANから入ってきたセッションはLANからの接続先セッションを自動的に振り分けてくれる。
ただし、このためにダイナミックDNSでハマってしまった。WANからの接続がなく、純粋にLANからWANに抜ける場合には、優先先セッションが選択される。そのままではグローバルIPアドレスを片方だけ使うようになってしまうため、結局、DNSルーティング設定をする必要があった。

ルーターを変えたそもそもの目的はLAN内をギガビット化することだった。このルーターはLAN内の通信で940Mbpsというスループットを誇っていて、実際にかなり速い。Windows7とCentOS間でファイルコピーした時、平均500Mbps程度の速度が出ていたが、ネットワーク速度をモニタしていると細かく上がったり下がったりしている。たぶん速すぎてどこか別のところがボトルネックになっていると思われる。

探せば欠点もないわけではない。
些細なことではあるが、ポートマッピングで設定の無効化ができなくなっているのもそのひとつ。
以前のルーターでは設定だけ登録しておいて、チェックボックスで無効化しておくことができた。そのため、同じポート番号に複数設定しておき、必要に応じて切りかえるような使い方ができた。
新しいルーターでは、有効、無効を設定するチェックボックスはなく、設定したものが即有効になる。また、ひとつのポートマッピングの設定はIPアドレスだけ、ポート番号だけ、といった一部を編集しなおすことはできない。書き換えるためには、いったん削除して作りなおさなれけばならない。
頻繁にポートマッピングを変更するようなルーターの使い方をするには少し不便である。
こうした点は、今後のファームウェアアップデートに期待したい。

僅かな不満もあるが、高性能で満足のいくルーターだと思う。

SQL Serverで現在の年月日をYYYYMMDD形式で作る

技術的なメモです。
SQL Serverのテーブルに文字列型で日付を格納しているような場合に、20111231といったようなYYYYMMDD形式にしていることがあります。
それらの中から今日以前といった条件で取得するために、現在の日付からYYYYMMDD形式の文字列を作りたい時があります。
以下の構文で作れます。

CONVERT(varchar, GETDATE(), 112)

例えば
select CONVERT(varchar, GETDATE(), 112)
とすると
20111122
等と返されます。

MySQL5.5.17 + Research Artisan Lite

以前、CentOS5.6とMySQL5.1の環境でResearch Artisan Liteというアクセス解析を使わせていただいていたのだが、サーバーがクラッシュして再インストールしなおした際、ついでにとCentOS5.7+MySQL5.5.17にバージョンアップしたところ、Research Artisan Liteの設定ができなくなってしまった。

最初のインストール後の設定画面でデータベースの設定をした後、
赤色で「入力内容に誤りがある為、データベースに接続できません。」
と表示される。

Research Artisan LiteはまだMySQL5.5に対応していないらしい。
「ra_core」ディレクトリの中の「*.sql」ファイルから「TYPE = INNODB」や「TYPE = MYISAM」と書かれている場所をgrepで検索して、「TYPE」を「ENGINE」に書き換えることで動くようになるらしい。
MySQLがバージョンアップして構文が変わったのが原因だ。
全部で19個のSQLファイルを書き換えたところ、無事設定することができた。

私はResearch Artisan Liteの他、Google Analyticsも併用している。
セキュリティやプライバシーの問題からだと思うが、Google Analyticsではアクセス元のIPアドレスを見ることや、個別のサイト訪問者のユーザーエージェントやページ閲覧履歴を追跡することができない。
サイト運営者としては、時には個別のユーザーの動向を調査したいことがあるので、これでは不便だ。
サイト閲覧者の利益は重要であるが、閲覧者がサイトを利用できるのは、サイト運営者が存在するからである。
世間への貢献という意味では、どちらかと言えばサイト閲覧者よりもサイト運営者の方が大きく、閲覧者はただ一方的に情報を頂戴するだけのことが多いと思う。IPアドレスや訪問者の閲覧履歴、ユーザーエージェントが、セキュリティやプライバシー上、滅多なことで重大な問題になるとは思えないし、私はこのGoogle Analyticsの閲覧者保護の部分があまり気にいっていない。
その点、Research Artisan Liteでは、一人ひとりの訪問者の動きを確認することが可能であり、手放せなくなっている。
様々な考え方はあるが、サイト運営者としてはResearch Artisan Liteの存在はありがたい。

LinkWithin

Related Posts Plugin for WordPress, Blogger...