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

A Day In The Boy's Life

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

友人のブログを読んでいて、その意外性に驚かされる事が多いです。

こんな趣味もあったんだとか、ちゃんと人生考えているんだなぁとか。(笑


普段からよく会っている友人ならなお更。

話していると、考えると同時に言葉がでてくるから、あまり上手く伝えたい事を表現できない事もありますし、面と向かってなかなかいえないこともあります。

文章を書く場合は、考えをある程度まとめたから書くからその辺に、その人の思慮の深さが出てそう感じるのかもしれません。


ネットってその奥の人が見えにくいので、それによる弊害を指摘する人も多いですが、知っている人ならその心の奥を少しだけ覗かせてくれる利点もあると思います。

特定の人に発信しているわけではないので、自分に対して言える事と言えない事の壁を作りにくいという状況がそうさせるのかもしれません。

2人で酒を飲みながら話す事では、この人にここまで言ってはいけないとか、対象の人の立場や境遇から言いたい事の本当のところにストップがかかってしまう場合がありますが、特定の個人を限定しないネットではそこをあまり意識する必要もありません。


あとは、結構真面目な印象を受ける人なのに、ブログ見てみると絵文字使ってたり。

文章にするということは、いくらかの考える時間があってのことなので、その絵文字を使ったという事は、心の中でそんなイメージだったという事の表れじゃないかと思ったりして、読んでて少しほほえましい気持ちにもなったりします。

まぁ、イメージを変える打算めいたところを感じることもあるのですが、それもそれでその人が一面が見えてきます。


芸能人がブログ書いた際に読者が期待するのもそんなところなのではと感じます。

結構、「あの人にはブログを書いて欲しくなかった」とか聞きいたりもしますけどね。

理由は、「絵文字を使うイメージではないから」だとか。

その人が持っているイメージと、書き手の心の中のギャップが大きくと幻滅してしまいそうなのでしょう。


逆に、ブログとかネットでしかつながっていない人と実際に会ってみてもギャップが大きそうだなと思ったり。





前回 予告していたように、Tracのバージョンアップネタを。


まず前提として、Trac0.10を使っていてそろそろ0.11にバージョンアップしたいなぁという感じの人向けです。

Trac0.11へのアップグレード方法も基本的には、新規にインストールする方法とあまり変わりませんので、新規にインストールしたい場合でも流用可能だと思います。


まず、Trac0.11からテンプレートエンジンがClearSilver からGenshi に変わっています。

ということで、まずはGenshiのインストールをとなるのですが、Trac0.11をインストールしている途中で勝手にGenshiをインストールしてくれるので、いきなりTracのインストールを始めても問題ありません。

(Genshiを手動でインストールしたい場合は、末尾に記載の方法を参照してください)


それ以外の前提条件は、基本0.10の頃と変わりませんので、あわせて「バグトラッキングシステム「Trac」インストール 」の記事も参照してみてください。



Tracをバージョンアップする



1. Trac0.11のソースのダウンロードとサーバーへの展開


Tracのソースファイルですが、予め日本語化したものがインタアクト株式会社のサイト からダウンロードできますので、それを使います。


ダウンロードしたら、Tracをインストールしたいサーバーに持っていきます。



2. Trac0.11のインストール


適当なディレクトリにソースファイルを展開した後は、下記のコマンドでTracをインストールします。


# /usr/bin/python setup.py install

上記で、trac-adminなどのコマンドがバージョンアップされます。

実際に確認してみたければ


# trac-admin -v
trac-admin 0.11.ja1

とすれば、バージョンが変わっていることが分かります。



3. TracのプロジェクトディレクトリとWikiのアップグレード


最後に、Tracのプロジェクトを展開しているディレクトリをアップグレードしてあげます。

これでバージョン間の差が解消されます。


# trac-admin /home/trac/project1 upgrade --no-backup

※ 私の環境では、TracのDBにPostgreSQLを使用しているため、最後に「--no-backup」オプションをつけています。


同様に、Wikiのアップグレードも行います。


# trac-admin /home/trac/project1 wiki upgrade

これで全ての作業が完了です。

ブラウザからTracへアクセスしてみましょう。


バージョンアップの方法は、Tracのソースファイル内の「UPGRADE」ファイルにも記載されていますので、あわせて確認するとよいでしょう。


Trac0.10の時は、この後にTracWebAdminのインストールへ と進むのですが、Trac0.11からはデフォルトで組み込まれているので、何もする必要がありません。

予断ですが、Trac0.10で組み込んだTiming and Estimationプラグイン に関しては、バージョンアップしてもそのまま使えました。



Tracバージョンアップ時のエラーの対処法


1. バージョンアップ後にブラウザでアクセスしてみると「Internal ServerError」が表示される


Apacheのエラーログを見てみると、下記のようなエラーが出力されていました。


PythonHandler trac.web.modpython_frontend: File "/usr/lib/python2.4/site-packages/Genshi-0.5.1-py2.4-l
inux-i686.egg/genshi/_speedups.py", line 7, in ?
PythonHandler trac.web.modpython_frontend: File "/usr/lib/python2.4/site-packages/Genshi-0.5.1-py2.4-l
inux-i686.egg/genshi/_speedups.py", line 4, in __bootstrap__
PythonHandler trac.web.modpython_frontend: File "/usr/lib/python2.4/site-packages/setuptools-0.6c7-py2
.4.egg/pkg_resources.py", line 840, in resource_filename\n return get_provider(package_or_requirement).get_resource_filename(
PythonHandler trac.web.modpython_frontend: File "/usr/lib/python2.4/site-packages/setuptools-0.6c7-py2
.4.egg/pkg_resources.py", line 1310, in get_resource_filename\n self._extract_resource(manager, self._eager_to_zip(name))
PythonHandler trac.web.modpython_frontend: File "/usr/lib/python2.4/site-packages/setuptools-0.6c7-py2
.4.egg/pkg_resources.py", line 1331, in _extract_resource\n real_path = manager.get_cache_path(
PythonHandler trac.web.modpython_frontend: File "/usr/lib/python2.4/site-packages/setuptools-0.6c7-py2
.4.egg/pkg_resources.py", line 921, in get_cache_path\n self.extraction_error()
PythonHandler trac.web.modpython_frontend: File "/usr/lib/python2.4/site-packages/setuptools-0.6c7-py2
.4.egg/pkg_resources.py", line 887, in extraction_error\n raise err
PythonHandler trac.web.modpython_frontend: ExtractionError: Can't extract file(s) to egg cache\n\nThe fo
llowing error occurred while trying to extract file(s) to the Python egg\ncache:\n\n [Errno 13] Permission denied: '/root/.python-eggs'\n\nThe Python egg cache
directory is currently set to:\n\n /root/.python-eggs\n\nPerhaps your account does not have write

前半の方に記述があるように、どうもGenshiが原因のようです。

で、調べてみたら下記のサイトに解決策が書いていました。


Genshi 0.5 再インストール + trac 0.11rc2 日本語版 @ takanory.net


とても助かりました・・・。


という事で、まずはインストールされているGenshiを削除


# rm /usr/lib/python2.4/site-packages/Genshi-0.5.1-py2.4-linux-i686.egg

次に、書かれているように圧縮しないでGenshiをインストール


# easy_install --always-unzip Genshi==0.5

もし、社内のLAN環境からアクセスする場合などは、環境ファイル(bashの場合、.bash_profileなど)に下記を書いておくと幸せになるかもしれません。


export http_proxy=http://プロキシサーバーのアドレス:ポート/

あとは、Apacheを再起動してみてアクセスしてみたら、問題なく表示されるようになりました。





IT業の残念な秘密 @ Geekなぺーじ


結構、自分自身にも体験があるから笑ってしまった。

そんな自分の経験を幾つか思い出して書いてみたいと思います。


9. ユーザが馬鹿な行動を取るとあなたのせいになる

何が疲れるかってユーザーに「あなたが悪いんですよ」という事を理解させる事です。

問合せが入ったときは、(こういうユーザーは何処が悪いかをはっきりと説明できないため)まずはシステムなどに何らかの問題が発生した、つまりはこちら側の非を疑ったりもするのですが、よくよく調べてみるとなんてことはない、ユーザー自身がいらんことをしたために起こったトラブルだという事が分かったりします。


次に、取りあえず問題を取り除く事になるわけですが、ただ解決しただけではそのユーザーはまた同じ問題を繰り返しかねないため、問題を解決する過程で「あなたが悪いんですよ」という事をチクチク責めて理解させなければなりません。

ユーザーは、「俺は悪くない」と思っているため、頭ごなしに言ったところで効果はありません。

「あれ。ここの設定変更しました?この設定を変更することはマニュアルでも禁止するとか書かれているのですが・・・。あぁ。取りあえず戻しておきますね。」

そんなやり取りが凄く疲れるわけです。



6. 非エンジニアの同僚はあなたを無料サポートとして使いたがる

情報システム部門は、社内の全ITを統制するという立場にあるため、何かと便利屋として周りから重宝されたりもします。

一方で、情報システム部員も部内での狭い交友関係を超えて顔が広い方が、何かと協力を得られやすく有利だったりもするため、何かを頼まれる事にそこまで嫌な思いをしません。


悲惨なのは、対等な立場(もしくはこちらが上)でその相手と付き合えない場合、予期せぬ事態に巻き込まれる可能性があるということです。

ここで書かれているような、自宅のPCのサポートまでを任されるというような事態に。

しかし、相手のほうが立場が上であるため、断るに断れない。


ある意味、頼りにされているというところではありますが、一歩間違えれば単なる便利屋として不遇な立場に追いやられる危険性をはらんでいます。



4. 新しい技術に触れているよりも古い技術の子守をしている時間の方が長い

特に情報システム部門が扱うシステムには、新しい技術よりも枯れた技術のほうを重宝します。

そちらの方が、安定していますし経験を積んだエンジニアも多いため、保守がしやすいためです。

逆に言えば、新しい技術を持ち込む要素がほとんどない。

「それ、Ajaxっていう技術でできるみたいだけど、わざわざ非同期通信させなくて、ページを遷移させて描画するやり方でできるんだよね?じゃあそれで良いよね。技術的に分かりやすいし。」ってな具合。


まぁ、情報システム部門に限らず、最先端の技術に触れ、それを仕事に活かすというのは、一部の研究機関だけというような印象を受けたりもします。


※ 「社内システムとプログラミング言語 」という記事にも書いてみました。

3. 新しいテクノロジを構築する際の最大の障害はベテランエンジニアである

ベテランエンジニアというと、経験豊富で特定分野で高い能力を持っているエンジニアのようにも思えますが、実際に障害になるのは、長年レガシーシステムの保守・運用の一本で仕事をしてきたレガシーシステムシンパなエンジニアです。

2.0系ツール利用者に向いている人、向いていない人 」で書いたような。



1. IT専門家は難しい単語で非技術者を煙にまいて自分の失敗を誤魔化す

自分でも耳の痛いところではありますが、喋っていて注意すべき事は相手の技術のレベル感を意識する事ではないかと思います。

この言葉を理解できるかという事を意識して、難しいようであれば他の言い回しで伝えてあげる。

ヘルプデスクをしているエンジニアをも見ると、相手に伝えるべき内容と伝えなくても良い内容のすみわけができていないと感じたりします。

ユーザーにとってみれば、何が悪かったのか?という疑問に含まれる事象は技術的な要素ではなく、それが自分が犯したミスなのかそうではないのか、自分が悪かった場合は何に気をつけていれば良いのかということぐらいです。


確かにこれは、エンジニアにとって武器になる部分でもありますから、難しい言葉で相手を混乱させてあたかも自分の責任ではないように伝える事もできたりもします。

ただし、中途半端な説明にツッコミが入るとボロが出てしまう事がありますから注意が必要です。

そうなった場合、誤魔化そうとしたということが明白になってしまいますからね。