A Day In The Boy's Life -160ページ目

A Day In The Boy's Life

とあるエンジニアのとある1日のつぶやき。

インターネットに向いていないこと @ はてな匿名ダイアリー


あぁ。わかる。

検索エンジンでさえ、公式ページを結果の先頭に持ってこない場合がありますからね。

場合によっては都合がよくて、場合によっては都合が悪いんだけど。


結局のところネットの世界もリアルの世界も何を信ずるかは自分の判断だと思います。

ネットの人力検索で誰かが教えてくれたことを信じるのも、友人の友人の権威ある人から教わったことも、鵜呑みにしてたら痛い目見るかもよ、というのはあると思います。


確か(公式)なものもあることは確実なのですが、それが使えるかどうかはまた別の話になります。

例えば、民法の条文 をネットで読むことはできますけど、そんなの全部読んでられないよとか、読んでも今回のケースに当てはまるかどうか素人には判断できなかったり。

法律やライセンスなんかは特にそうで、わかりづらい点も多々あります。


自分の責任で判断できるぐらい理解を深めるまで、グレーな所には手を出さないほうがよいというのが個人的な意見です。

ネットの世界でも、みんながすげぇって言うからすごいんじゃなくて、自分で確かめてみて納得したらすげぇってなるだろうし、そうでないなら本当にすごいかもしれないけれど自分にとっては必要ないものと、そのときは捨て去っておけばよいだろうし。

そいういう一歩引いた視点から見てみる冷静さって大切なんじゃないかなぁと思います。


一つそういうことへの解決策というか、自分ではそうやっているというのは、なるべく沢山の情報に触れてみるということです。

いろんな人の考えを拾っておくということ。

それはネットだけでなく、本とか友人や先生の話とか、種類は問わないんですけど、情報は多いほうがいいと思います。

いっぱい集めて余計にわからなくなったというケースもありますけど、そこでわからないなら手を出さないほうがよいでしょうし。

検索した、誰かに聞いた、良しそれでいこうではなく、それが間違っていないという裏づける情報を集めておくことは重要かと。

そうやって情報を集めていって、考えを整理していけば答えは集約されていくと思いますよ。


こう考えるとネットでの情報の拾い方を知っているというのは結構重要になってくると思います。

人力検索で聞いて終わりというのは少し芸がなさ過ぎるので、検索の仕方とか普段からその分野でキーマンになる人を見つけておいて、その発言を追いかけておくとか、そういうことはしておいたほうがよいかと。


まぁ、何れにせよ最終的な判断は自分ですし、誰かが言ったからといっても誰も責任を取ってくれません、というのは確かなことです。




エンジニア的発想は危険な気がしている @ 矢野勉のはてな日記


確かにマニュアルを読まなくとも操作できるレベルというのは理想かもしれませんが、現実的には一般の人がそれに触ったときに感じる違和感や困惑のレベルとのギャップは大きいものだと感じます。

誰もが知っている、経験していることであれば、その自分の経験則よりあるべき振る舞いを予測できるのかもしれません。


プログラマのためのユーザインタフェースデザイン @ Joel on Software

人を幸せにするには、彼らが環境をコントロールしていると感じられるようにする必要がある。そのためには、あなたは彼らのアクションを正確に解釈する必要がある。インタフェースは彼らがそれに期待するように振る舞う必要がある。

従って、すべてのユーザインタフェースデザインの基本原理は:

ユーザインタフェースのデザインが良いというのは、そう振る舞うだろうとユーザが期待したようにプログラムが振る舞う ことである。

でも、はてなのサービスって経験したことのないサービスが多い気がします。

なので、アーリーアダプターにとっては勝手に予想して使うから問題ないけど、レイトマジョリティにとっては振舞いもわからないから使いようがないと。


それは、エンジニアが作るときの視点が、利用する側の視点と大きくかけ離れているからだと思います。

エンジニアって最先端のところで仕事をしているわけです。

特に、はてなって会社はIT系の中でも得意な文化を持っている会社ですし、そのエンジニアのITリテラシーってかなり高いと思います。

シリコンバレーを中心としたITの最先端の情報もウォッチしているでしょうから、そこで「これは面白い」という技術をどんどんと取り込んで、新しいサービスとしてリリースしていっているのでしょう。


ただ、それはあくまで最先端の現場で仕事をしているエンジニアの視点であって、それを使う側から見ればずいぶんとぶっ飛んだ視点で使うものだと感じるケースがあります。

はてブなんかのソーシャルブックマークは、一般の人から見れば未だにブラウザのお気に入り機能が中心でまだまだ認知されていないと思います。

IT系の仕事をしている人でも、私の周りではそれほど使っている人はいません。

車を作ろうとしたときに、エコとか低燃費とか考えて多くの人に受け入れられる考えて作る会社が多い中で、はてなが作る車ってナイト2000 を作っているような印象を受けます。

(Googleなんかはもっとぶっ飛んでてデロリアン を作ってるような)

今の普通車なら、免許を持っていれば誰でも運転できるでしょうけど、さすがにナイト2000にいきなり乗って運転できる人はいないでしょ。


話が少しそれますけど、IT系の言葉もそう。

システムの説明をするときに、この言葉って日常で使っているよねと思って、伝えてみても相手はぽか~んとしていることがよくあります。

エンジニアのレベルでは当たり前でも、一般の人には聞きなれない言葉はよくあるわけです。

今や当たり前に使われる「デフォルト」って言葉も10年前はまったく通じずに「最初から選ばれている項目」とかいう不細工で長い説明が必要だったりしました。


ギャップを埋めるためには、クールではなく一部でそういう不細工でなくてはならない点をエンジニアは許したくなかったりします。

クールに振舞いたい。クールに使ってほしいとか。

それを使いこなせる人も多いでしょうけど、そうでない人もいる。

今のはてなのサービスってクールに使える人が集まれているので、ある意味エンジニアにとっては理想の環境なのかなとも感じたりします。


近藤社長の言葉は、そこから脱するために悩んでの発言だと思いますけどね。
もっと認知されていけばよりよいサービスになっていくと思いますので、私は期待したいですが。



Tracのユーザー認証には、Basic認証やDigest認証が使えますが、ユーザー管理の機構が用意されているわけではありません。

そのため、パスワードファイルなどを予め用意する、またユーザーがパスワードを忘れたりした場合などはファイルを編集する作業が必要になってきます。

しかし、これではTracのシステム管理者の負担も大きくなってきます。


Account Manager プラグイン を使えば、Tracの管理サイト上からユーザーの追加・削除、パスワードの変更などが行えるようになります。

Account Manager プラグインは、Trac Hacks のサイトからダウンロードが行えます。



Account Manager プラグインをインストールする


Account Manager プラグインのインストールは、プラグインのページに書かれているように、easy_installコマンドを通して簡単に行うことが可能です。


# easy_install http://trac-hacks.org/svn/accountmanagerplugin/trunk

※ Trac0.11系の場合


easy_installコマンドは、setuptools を導入することで利用可能となります。

以前に書いた「Tracの使い方 - TracWebAdminインストール - 」の「1. setuptoolsのインストール」にsetuptoolsの導入方法を少し書いているので必要があれば参考にしてみてください。


Account Manager プラグインをeasy_installコマンドを通してインストールする場合、実際にはsubversionのリポジトリからチェックアウトを行っています。

そのため、ネットワーク環境により外部と通信ができずにうまくインストールができないかもしれません。

プロキシを介してインターネットにアクセスする必要がある環境では、subversionのプロキシ設定により、その問題を回避できるかもしれません。


# vi ~/.subversion/servers

上記ファイル内の[global]ディレクティブ内にある


http-proxy-host = proxy.hoge.co.jp
http-proxy-port = 7000 

のパラメータを環境に合うように変更しておきます。



Account Manager プラグインを有効にする


プラグインのインストールが完了したら、管理コンソール(WebAdmin)から有効にしてあげる必要があります。

TRAC_ADMIN権限があるユーザーでログインし、管理コンソールの「プラグイン」メニューを開きます。


A Day In The Boy’s Life-Account Manager プラグイン有効化


全てのコンポーネントを有効にするとエラーが発生するため、「EmailVerificationModule」コンポーネントを除いて有効化しておきます。



Account Manager プラグインを設定する


プラグインを導入すると管理コンソールに「Accounts」というメニューが追加されます。

ここにある3つのメニューからプラグインの動作設定やユーザーの追加・削除などが行えます。


- Configurationメニュー


A Day In The Boy’s Life-Account Manager プラグインConfigurationメニュー


Basic認証やDigest認証を行う場合の、ユーザーパスワードファイルのパスを指定します。

ここで設定したファイルにユーザー情報やパスワードが保存されていきます。

当然、Apacheのユーザーに書き込み権限があるディレクトリパスでないとエラーが発生します。



- Notificationメニュー


A Day In The Boy’s Life-Account Manager プラグインNotificationメニュー


Account Manager プラグインでは、デフォルトで一般ユーザーが好き勝手に新規ユーザーを作れるようになります。(変更可能)

もし、その機能を有効にするとしても、誰かがユーザーを作った場合は、アラートメールを飛ばしたいといった場合にその設定が行えます。



- Userメニュー


A Day In The Boy’s Life-Account Manager プラグインUserメニュー


ユーザーの追加・削除、パスワードの変更などが行えます。

ここで追加したユーザーとパスワードの情報は、「Configuration」メニューで登録したパスワードファイルに追加されていきます。



ユーザーのログイン方法を変更する


Account Manager プラグインを導入することでユーザーのログイン方法を変更することができます。

Tracのデフォルトでは、Basic認証やDigest認証が用意されていますが、それに加えてログインフォームを用意してそこからログインさせる方法も可能となります。

いづれにしても、参照されるパスワードファイルは管理コンソールのConfigurationメニュー内で設定したパスワードファイルが参照されます。


1. Basic認証を利用する場合


継続してBasic認証を利用したい場合は、Apacheの設定ファイル(httpd.conf)を変更する必要があります。

loginディレクトリにアクセスした際にBasic認証をかけていたかと思いますが、その項目の中から「AuthUserFile」のディレクティブに管理コンソールのConfigurationメニュー内で設定したパスワードファイルを指定します。


<LocationMatch "/trac/[^/]+/login">
AuthType Basic
AuthName "Trac"
AuthUserFile /home/hoge/htpasswd
Require valid-user
</LocationMatch>


Apacheを再起動させれば、今までどおりユーザーがTracにログインする際にはBasic認証を通してログインすることになります。

ただし、管理コンソールからパスワードファイルを変更してしまうと認証できなくなってしまうため、あまり有効ではないかもしれません。



2. ログインフォームを用意する


A Day In The Boy’s Life-Account Manager プラグインログイン画面


このように、ログインメニューをクリックしたときに、Basic認証ではなくログインフォームを表示することもできます。

まず、Apacheの設定ファイルでloginディレクトリのBasic認証に関する設定を削除またはコメントアウトします。


#<LocationMatch "/trac/[^/]+/login">
# AuthType Basic
# AuthName "Trac"
# AuthUserFile /home/hoge/htpasswd
# Require valid-user
#</LocationMatch>

続いて、Tracの設定ファイル(/path/to/project_dir/conf/trac.ini)のcomponentディレクティブ内に下記のパラメータを追加します。


[components]
trac.web.auth.LoginModule = disabled

Apacheを再起動させ、ログインメニューをクリックすると、ログインフォームが表示されるようになります。



Account Manager プラグインを使ってみる


Account Manager プラグインを導入することで、一般ユーザー側の画面にもいくつかメニューが追加されます。


A Day In The Boy’s Life-Account Manager プラグインユーザーメニュー


1. Registerメニュー


A Day In The Boy’s Life-Account Manager プラグインRegisterメニュー


Registerメニューでは、ユーザー側で自由にアカウントを追加することが可能となります。

社内でTracを使い、TRAC_ADMINの権限をあまり多くのユーザーに与えたくない、でもアカウントの発行・変更作業などの管理の手間をユーザーに任せたいといった場合などに使えると思います。


前述した、管理コンソールの「Notificationメニュー」の設定でいくつかの制御が行えます。(アカウントが作られた場合はアラートメールを飛ばすとか)


もし、Registerメニューを無効にしたい場合は、Tracの設定ファイル(/path/to/project_dir/conf/trac.ini)内の下記項目を変更します。


acct_mgr.web_ui.registrationmodule = disable


2. Forgot your password?メニュー


A Day In The Boy’s Life-Account Manager プラグインFYPメニュー

ユーザーがパスワードを忘れた場合に、このメニューから新しいパスワードを申請できます。

登録しているユーザー名とメールアドレスを入力すると、新しいパスワードを記載したメールが送信されます。


例)

Your Trac password has been reset.
Here is your account information:
Login URL: <http://trac.hoge.co.jp/trac/myproject/login>
Username: test1
Password: fK3madCv

--
intranet <http://example.org/>
My example project


3. ユーザ設定メニュー


A Day In The Boy’s Life-Account Manager プラグインユーザー設定メニュー

ユーザー設定メニューはもともと存在しますが、Account Manager プラグインを導入することで、新しくAccountタブが追加されています。

ここでは、ユーザーのパスワード変更と、そのアカウントの削除申請が行えます。


Account Manager プラグインを導入することで、柔軟なユーザー管理が行えますので、利用者が増えてきたら導入を検討してみては如何でしょうか。