アーカイブ:  « 2006年11月 | メイン | 2007年1月 »

2006年12月31日

2006年にはやった言葉

2006年はWebを中心に技術的に大きく飛躍した年だったと思う。
どんなワードがはやったか見てみよう。

広報手法
バイラルマーケティング
トラックバックping

ソフトウエア
Windows Vista

ハードウエア
PLC通信
Core 2 Duo

Webサイト
Second Life
Google Sitemap
Google Document & Spreadsheet Office(Office文章を共有する)
YouTube

プログラミング
Ajax
Flex2

その他
WEB2.0
CMS
MNP(ナンバーポータビリティー)
OP25B

その他参考サイト:
IT Media News:YouTubeとmixiの1年――今年最も読まれた記事は

アジャイル開発

開発プロセスの話。

特集:.NET開発者のための開発プロセス入門ではウォーターフォール型、反復型、アジャイル型の開発プロセスとは何か?そしてなぜこれらの開発プロセスが生まれたかについて詳しく説明してある。

そしてアジャイル開発における重要なポイントが記載されており、.NET開発者でなくてもより生産性の高いプログラミングを行いたいと考えている人には、一読の価値があるだろう。

現在検索中です。検索が終わるまでお待ちください。

Movable TypeをLinuxに乗せ変えてから&Ver.3.3へ移行してから連続して検索すると

現在検索中です。検索が終わるまでお待ちください。

というメッセージが表示されるようになった。しばらくたつと正しく検索できるようだが、表示がうるさい。

早速調べてみると、ti-web.net blogに解決方法が載っていた。
ti-web.net blogではエラーメッセージを工夫する方法が紹介されていたが、システム負荷といっても秒間1,000リクエスト以上をさばくサーバーでもないので、連打されることによる負荷が上がらない程度の2秒ということにすることとした。

この場合には、mt-config.cgiに
ThrottleSeconds 2
を設定するとよい。(再起動等は必要ない)

vsftpdでユーザー制限とディレクトリ制限をする

vsftpdでユーザー制限とディレクトリ制限をするには以下の方法をとる。いずれも/etc/vsftpd/vsftpd.conf を編集する。

ユーザー制限

ユーザー制限を行う場合(許可するユーザーが少ない場合)
userlist_enable=YES
userlist_deny=NO
を登録し、
/etc/vsftpd/user_list
にログインを許可ユーザーを記録する。

ユーザー制限を行う場合(拒否するユーザーが少ない場合)
userlist_enable=YES
userlist_deny=YES
を登録し、
/etc/vsftpd/user_list
にログインを拒否したいユーザーを記録する。


ディレクトリ制限

chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
を登録し、
/etc/vsftpd/chroot_list
に制限したいユーザーを記録する。なお、vsftpdの場合には、特定のユーザーを特定のディレクトリに制限すると言った細かい制限ではなく、ログインディレクトリをルートディレクトリとするかどうかと言う設定になる。

2006年12月30日

QRコードメーカー

携帯サイトが増えてきてQRコードを生成する機会も増えてきた。ただ、ソフトウエアで作るのが面倒と言う人は、QRコードのQRy(キューリー)というサイトを使うと良いだろう。
実際に使ってみたが、無料で使え、すぐにQRコードが送られてきて、なかなかいいサービスだった。
ただ、そんなにも使う機会はないと思うが・・・

ところで、QRコードを掲載する際には「QRコードは株式会社デンソーウェーブの登録商標です」という記載を入れなければならないので、注意が必要だ。

2006年12月28日

Kaspersky

あたらしいウィルスソフトKaspersky(カスペルスキー)
何がすごいかはここを見ると良くわかります。

NetEnum

管理ネットワーク配下にどんなマシンがつながっているかをチェックするためのソフトウエアとしてNetEnumがある。ネットワーク全体にpingパケットを送って応答するマシンをリストアップする。

ただどこにあるかがわからないので、MACアドレスからある程度メーカーを特定したいこともあるだろう。そんなときはコマンドプロンプトでarpコマンドを利用する。おそらくNetEnumを利用した直後であれば、

arp -a
でIPアドレスとMACアドレスのマップを表示できる。

メーカーは上位24ビット(OUI)をIEEEで検索すればよい。

Arax

AjaxではなくてArax。Ajaxの弱点とされるインターフェイス部分にFlash8を使うことで強化しているという。そういった点では、今取り組んでいるFlexに近いかもしれない。

@IT Ajaxのデメリットを克服する「Arax」、バージョン2を公開

ところでAjaxで優れたアプリケーションを見つけたので紹介してみます。

Ajax IME: Web-based Japanese Input Method
Webベースの日本語入力サービス。日本語IMEが使えない環境でも、日本語を使わなければならない海外にいるときなどは重宝しそう。

Ajax を使った手書き文字認識Ajax を使った手書き文字認識
正直重くて、認識率が低いように思えますが、なかなか面白い使い方だと思った。

Adobe Flex2の導入

Flex2が実際に利用可能なものなのか技術検証してみました。

Flex2について
Adobeのサイトをご覧いただければわかりますが、FlexはFlashをプログラマの立場から構築できるソフトウエアのことです。
EclipseプラグインもしくはGUIベースのFlex Builder2(30日間限定で無償体験できる/64,900円)、Flex Builder2にチャートの機能を追加した?Flex Builder2 with Charting(97,900円)、無償で開発できるCUIベースのFlex2 SDKがあります。

ダウンロードはこちらからでき、ダウンロードにあたりアカウントの登録(無料)が必要となります。

Flex Builder2とSDKの両方で作成する方法が紹介されているページがあります。これを見ながら、サンプルプログラムを作ってみるとよいと思います。

Flex Builder2の導入ガイド
Flex2 SDKの導入ガイド(FlashとFlexの関係についてもうまくまとめられています)
Flex2 SDKでゲームを作ってみる

実は、ダウンロードの際にホップアップブロッカーによってブロックされていてダウンロードが始まらないというオチがついてました。

Flex2でできることとその利点
ところでFlex2でなにができるのでしょうか?それはこのサンプルを見ていただくと良くわかります。まぁFlashだから当然という見方もありますが、HTML言語では出来ない限界を超えて、ほぼクライアントソフトと同等の表現が出来る可能性を見て取ることが出来ます。(Flash9でなければ背景色だけが表示されていて、何も表示されません。Ver.9へのアップグレードが必要なのですが、ダウンロードページに行ってもアップグレードできないという問題があるようです)

2004年にリリースされたJ2EEアプリケーションサーバの上で動作するため、既存のJ2EE環境の上に導入することができ、Flex Builderを使用することでVBやDelphiなどと同じようにRAD開発が可能となりそうです。

SDKとMXML
詳しくはこちらを見ると良くわかりますが、asファイルからswfを生成することはFlex2 SDKを利用して行うことができます。
Flexはただ単純にFlashファイル(SWF)を作成するものなので、動的にFlexを吐き出してユーザーに見せるといったことが出来ません。対して、Flex Data Services 2ではmxmlファイルからswfを動的に生成して見せることができます。(内部的には、XXX.mxmlがあるとするとXXX.mxml.swfというFlashファイルを呼び出すような仕組みになっていますが、キャッシュとして保持してクライアントに返すため、ファイルの実態としてswfが存在するわけではないようです)
Expressバージョンは無料で利用できるので、こちらでチェックすることが出来ます。

Ajaxのような非同期通信といえるのかどうか良くわかりませんが、Action Script3を利用してイベント発生時に通信を行うことでAjaxのような非同期ぽい通信を実現できるようです。

ところで、MXMLとは何のことでしょうか?
globe.toのサイトによれば

Macromedia Flex Markup Language. Macromedia Flexのプレゼンテーションを記述するためのXML言語。 対抗するものとして、サーバサイド製品LaszloのLZX、リッチメディアクライアントとしてはMicrosoft AvalonのXAMLがある。MXMLはSWFにプリコンパイルしてソースコードの保護を図ることができる。

とあります。つまり、Adobeに統合された今でもここに統合前の名残がのこっているようです。

Flex Data Services 2 Express
Windowsで先ほどのダウンロードページからFlex Data Services 2 Expressをダウンロードして使ってみよう。

インストールしたあと、スタート→プログラム→Adobe→Flex Data Services 2→Start Integrated Flex Server を実行するとWebサーバーが立ちあがります。
http://localhost:8700/samples/

ドキュメントルートはインストール先をC:\fds2にするとC:\fds2\jrun4\servers\defaultに設定されている。なぜかこの直下においてもプログラムを実行できませんでした。設定ファイルを見ていけばいいのかもしれませんが、実行する際には、samplesにおけばとりあえず実行できることを確認しました。

その他参考サイト
Flex User Group

ヤフオクの家電ドットコム被害、ヤフーが全額補償

またインターネットでの取引への信頼性が低下しそうなニュースだ。

Impress Watchより

「Yahoo!オークション」で電化製品を出品していた販売業者「家電ドットコム」が落札者に商品を発送せず、被害報告が相次いでいた件で、ヤフーは被害額を全額補償する。27日、ヤフーが被害者に通知した。27日までに判明した被害件数(Yahoo! JAPAN ID数)は989件、被害総額は約8,786万円に上るという。

これだけの金額の詐欺になってしまったのは、ヤフーに問題があったと言っても仕方ないだろう。ヤフーオークションというブランドを維持していくのは今後も難しそうだ。

Yahooの株価はこの事件がおおっぴらになってから2,000円以上も値を下げており、全額補償によって業績に影響するのは避けられない見通しだ。

あたらしい形のニュース

ニュースサイトはもう使っているからいいやと思ったそこのあなた、実は地方新聞が共同で立ち上げた47NEWS(よんななにゅーす)というのはご存知だろうか?

ついつい地元のニュースを調べたくなってしまうサイトで、Google Mapsとの連動で地理上の関係とあわせてわかりやすく構成されている。

PLCモデム BL-PA100KT 発売

電力線通信用のモデム BL-PA100KT がパナソニックからとうとう発売された。

無線では壁が厚いために電波が通らないというケースにおいても、ケーブルを部屋から部屋に通すといったことのないきれいなレイアウトにするための方法のひとつとなりそうだ。

解禁された高速PLCでシアワセになれるか?(IT Media)

(2007/01/11 追記)今日ヨドバシカメラでIOデータのPLCモデム「PLC-ET/M-S」の実物を見てきました。思ったよりもかなり小さくてびっくりです。

Visual Basicの罠

多くの言語では
false and c = 3
という評価式において、c = 3は実行されない。
これはfalseである時点で、この評価式が確実に失敗するため、c = 3を実行しても意味がないからである。

これを利用して、Perlではよく
open(IN, $filename) or die("ファイルの読み取りに失敗しました")
というのを見かける。これはopen関数が失敗したときにのみdie関数が呼ばれるという(ORの場合には左の式の戻り値がTRUEの時点で式全体がTRUEとなるため、右の式が実行されない。逆を言えば、左の式がFALSEを返すときだけ右の式が実行される)性質を利用したものである。
ところがである。

VBの言語使用においては、これらは利用されない。必ず左式も右式も評価されてしまう。
他の言語をやっていたときに陥りやすい罠のひとつといえよう。

2006年12月27日

Flex2

動的にAdobe Flash(旧Macromedia Flash)を生成できるFlex2について。
Flexはライセンス費用が非常に高く、一般ユーザーが手出しできるものではなかったが、Flex2になって非常に手ごろになった。

リッチコンテンツとして、Ajaxと並んで注目すべき技術の一つだろう。
実際に使ったレポートを今後掲載していきたいと思う。

Flex 2.0でリッチなWebアプリを作ろう

ところで、Flash9からMacromedia FlashではなくAdobe Flashとなっているのがまだなじめない。。。

Collectionの初期化

引き続きVBA(Visual Basic for Application)つながりで・・・

Collectionを初期化する方法が見つからなかったので、調べてみた。

Set XXX = New Collection
でいいらしい。できればclearメソッドなんていうのがあればいいんだが・・・

2006年12月26日

Google Notebook

仕事でニュースなどを見ている時などにひらめいた内容をメモしておいて、いつでも取り出せるようなものはないかなぁと思っていたらありました。

実は今年の5月にラボでリリースされていたGoogle Notebookというもの。Googleアカウントがあれば使え、Ajaxアプリケーションとなっている。ただ、ちょっと使いにくいと思うのは僕だけだろうか?

2006年12月24日

Postfixの配送エラー

Postfixをマルチドメインで運用している場合には、配送エラーに悩まされることが多い。
エラーメッセージとともに対応方法をリスト化しておきたい。

554 5.7.1 <(あて先アドレス)>: Relay access denied; from=<(送信元アドレス)> to=<(あて先アドレス)> proto=ESMTP helo=<(接続元サーバー)>

あて先アドレスが自ドメインでなければ、不正中継しようとしているわけなので拒否して問題ないが、これが自ドメインなのにもかかわらず不正中継扱いされるケースだとメールが届かない。これは
main.cfのmydestinationが正しく設定されているかどうかチェックする。

たとえばこのような形にすると改善されるかもしれない。
domain = (自ドメイン)
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain

Worksheet Visibleプロパティが設定できません

Excelシート自身を非表示にするためには、マクロでシートの属性の中にあるVisibleプロパティを変更するのだが、非表示にしようとするとこのエラーが出る場合がある。

いろいろ調べてみたところ、ブックが保護されているために発生していたようで、もしこの問題が起こるようであれば保護の状態をチェックしたほうがよさそうだ。

2006年12月21日

Business Wiki

CMSは数多くあれど、既存のサイトに簡単に埋め込めるCMSはないのだろうか?

pukiwikiから派生させたBusiness Wikiというものがあったので紹介する。サイト自身もBusiness Wikiで作られているそうで、今後検証をしてレポートしたいと思う。

2006年12月20日

プログラムのすすめ

プログラミングは言語が何であれ、以下に注意すべきだろう。

・ロジックとインターフェイスを分離する
フレームワーク云々の話もあるだろうけれども、ロジック内でエラーが発生し、メッセージを出したいような場合においてもロジックではエラーコードだけを返すようにして、呼び出し側でメッセージ処理をさせる必要がある。そもそも、これを行う上ではモジュールの細分化(機能単位で関数を分ける)は必要不可欠であるといえる。

・マジックナンバーを避ける
ロジック内に数値が入るとその数値の意味がわからなくなる。同じ目的で使用されている数値は特に定数化しなければ保守性が低下してしまう(1つの数値を直すときに、複数の箇所を直さなければならなくなる)。

・コピー&ペーストを避ける
ロジックをコピー&ペーストをしようとしているとしたら、それは大きな間違い。いくら工数が短くなるとはいえ、その部分は共通化できることを意味しているわけだから、少しくらい時間をかけてでも共通化し、保守性を高める努力を怠ってはならない。

2006年12月18日

やっかいなVBA

Excelのマクロで利用されているVBAはVisual Basicの派生だが、VB6では実装されているものがVBAでは実装されていない関係で、使いにくいことこの上ない。
どこが使いにくいかといえば・・・
・sortアルゴリズムが実装されていない
VBAではExcelのソート機能を使うらしい。Visual Basicは確かにソートアルゴリズムを自前で実装しなければならないことに愕然としていた記憶がよみがえった。

・変数にポインタを渡せない関係上、多次元配列が構築できない
多次元配列を動的に生成していこうとすると
$a = array(3)
$b = \$a
のようにポインタを渡してあげる必要がある。ところがVBではこれができない。
幸いなことにApplication.EvaluateメソッドというEvalに互換性がありそうなものがあるのだが多次元配列を文字列で作ってEval評価させようとするとエラーで落ちてしまう。まぁ、これは少し強引という見方もあるだろう。
Application.Evaluate("array(" & "1)(2" & ")"); #これは例外エラー

・連想配列が事実上サポートされていない。VB6のDictionaryが利用できれば良いんだが・・・

VBAをコーディングしている際にとても参考になったサイトがあったので紹介しておきます。
Excel VBAプログラミング講座

2006年12月17日

IT職場を3Kから3Tへ変える

IT職場の未来はこのままでは将来も明るくないかもしれない。

日経コンピュータの10月16日号に掲載されていた日本情報システム・ユーザー協会の細川さんの記事。

昔は3Kといえば、「きつい」、「汚い」、「危険」だったがITにおいても3Kとして「きつい」、「給料が安い」、「帰宅が遅い」が当てはまるんじゃないかと。学生が情報産業を選ばないことは今後IT業界の更なる人材不足を招くことになり、結果的に情報社会を支えていくことは難しいかもしれないというものだ。
そこで要件仕様を早期に決定する(要件仕様をつめる能力を高める)ことにより、3Kを3T(「楽しい」、「高い報酬」、「たまには定時に帰れる」)に変えられるのではないか?

確かに赤字プロジェクトが発生する原因は文章の中で指摘されているように「仕様の決定の遅れ」、「要件分析作業の不十分」があると思う。仕事を進める上でこれらに注意して仕事を進めていくことで3Tは得られるのかもしれない。

openAds

phpAds, phpAdsNew, phpPgAdsを統合した広告配信システムらしい。0.3のα版ではあるもののメンテナンスもされているので、一度使ってみる価値はある。

特定のサイトで文字コードを変更する

.htaccessで以下のように設定すると特定のサイトの文字コード設定を変更できる。(PHP5の場合)

php_value default_charset "Shift-JIS"

Apache + OpenSSLのインストール方法

#サーバーの秘密鍵の生成(key.pemが作成される)
openssl genrsa -des 1024 > private/key.pem

#パスフレーズの削除
openssl rsa -in private/key.pem -out private/key.pem

#証明書発行に必要なCSRの生成(key.pemからcsr.pemが作成される)
openssl req -new -days 365 -key private/key.pem -out csr.pem

#サイト証明書の作成(key.pemとcsr.pemからcert.pemが作成される)
#※自局認証でない場合には、この作業はCAに行ってもらう
openssl x509 -in csr.pem -out certs/cert.pem -req -signkey private/key.pem -days 365

#apacheのconfファイルへ設定する情報
SSLCertificateKeyFile key.pem
SSLCertificateFile cert.pem

2006年12月15日

Visual Basicで連想配列と参照渡しを実現する

Visual Basicをはじめたときは連想配列とか、参照渡しなんて考えたことは一度もなかったが、他の言語を勉強して改めてVBをやり始めたらこれが出来ないなんて変だなぁって思ってしまったが、実は実現する方法があるらしい。

Dim HashData AS New Collection
HashData.Add Value Key
rData = HashData.Item(Value) 'Keyが返される

setData HashData 'HashDataを参照渡しする

'参照渡しするときにはVariantでなければならないらしい
Sub setData(ByRef Data As Variant)
Data.Add Value2 Key2
End Sub

2006年12月13日

vodafoneへメールが送信できない

postfix/smtp[26573]: connect to mx.t.vodafone.ne.jp[210.169.176.59]: Connection timed out (port 25)
SMTP中継しようとするとOCN網からだと拒否されてしまう。

他のドメインでは発生しない症状なので、おそらくOCN側で携帯ドメインの転送をしないように設定していることが予想される。

mydnsのOPB25対策のサービスを利用することこの問題は回避できるが、本来であればOCNのSMTPサーバーをリレーしたいところ。そこで利用するのがSASL(SMTP-AUTH)になる。

SASLについては今後書いていきたいと思う。

2006年12月12日

ログを安全に管理する

syslogというのは実はファイル書き込みをする代わりにリモートホストにUDPを使ってログを転送することが出来るようだ。

ログサーバーを立ててsyslogポート以外をブロックしておくことで堅牢なログサーバーを設置し、改ざんされないログを管理することが出来る。

詳しくはこちらを参考にされたい。

2006年12月11日

ホワイトカラーエグゼンプション

恐ろしい問題が再来年発生しそうだ。もはや労働者に権利はないのだろうか・・・。

労働者は個々の権利を主張するあまり、経営者ならびに財界のシナリオどおりになってしまっているのだろうか?

労働組合というものは本当に面倒だ。でもやはり自分たちが仕事が出来るのは、自分の体があって、守るべきものがあるからだろう。心にゆとりがなくなってどう思いやりを持って顧客に接したりすることが出来るのだろうか?おそらくこの先にあるのはサービス業界の衰退でしかないように思う。

トップドメインおなかいっぱい

ICANNが「.asia」をトップレベルドメインとして承認したようだ。

もはやトップドメインをこれだけ多くすることに意味があるのだろうか?まぁ、あれば良いじゃないかと言われれば、確かにそうではあるが。。。

分散と集中の歴史

何事においても歴史を知ることは今後を予想する上で非常に重要であることは間違いなさそうだ。
コンピュータの歴史においても同じことが言える。コンピュータの歴史は半世紀程度しかないけれども常に分散と集中を繰り返しつづけているといえるだろう。

ホストコンピュータによる集中時代
マシンが非常に高価だったため、クライアント機はホストコンピュータにつながった端末であり、その端末時代には処理する機能は存在しなかった。(ホストコンピュータにログインして、そこで処理を行うので、画面への出力とキーボードの入力のみを処理)
そして時間単位で課金されていた。とはいっても僕はこの時代にマシンを利用していたわけではないので、詳しいことは良くわからない。

クライアントマシンによる分散の時代
マシンの単価が下がってくると、あえてサーバーで処理する必要もなくなり、より応答速度が速いローカルで処理するようになってきた。この流れは、サーバーの乱立を招く結果となる。

シンクライアントによる集中の時代
サーバーの乱立に伴う管理費用の増加とクライアントマシンにデータがあることによって発生する情報漏えいの2つの観点から、マシンを集約することになる。集約できるようになった大きな背景として、ネットワークの高速化が上げられる。

とくれば次は分散かもしれないが、分散の対象はおそらくマシンではなくネットワークになるだろうと予想する。

2006年12月 7日

おつかれさまです

ココログ、メンテナンス中に問題発生。バージョンアップ断念

今日はニフティの上場日。こんな日にこんなニュースはまったくもって嬉しくないだろうな。
ちなみに公募21万円 初値20.6万円 高値22.3万円 終値20.3万円でした。明日は暴落するかも・・・。

ただ、ただ、現場を想像するに、恐ろしい状態なんだろうと・・・。
ココログはずっとトラブル続き。もはやシステムが複雑化しすぎてどこがおかしいのかすらわからない。

よく勉強しているときに「どこが分からないかが分からない」ということがあったけども、まさに同じような状態。

こんな出口の見えない状態に置かれているエンジニアの方には同情します。

くれぐれも体を壊さないように。。。

2006年12月 6日

インストールとデプロイ

インストールとデプロイ(実は今までデプロイという言葉を使ったことがなく、今日はじめて聞いた)は同じようで微妙に違うみたいだ。

デプロイ
インストール(ソフトウエア)

技術の安売りをすること勿れ

インフラ系を中心に価格破壊が起きて久しいが、その結果多くのユーザーは安くなったことのありがたさは忘れ、いつもと同じように当たり前のように使い続けている。

ネットワークインフラにおいては、ブロードバンド化によって提供コストは確実に安くなっている一方で、運用ならびに保守にかかるコストはさほど低くすることは出来ていない。

不幸なことに、動画配信やIP電話の普及に伴い、ますますバックボーンは増強せざるを得ない状況になっている。おそらくコスト削減は行き着くところまで行き着いたようにも思える。

ネットワークインフラ保守のコストは以前から、(ほとんど誰も意識していないが)利用者全員がコストを負担しあうことによって成り立ってきた。しかしながら、一部では、大容量のコンテンツを配信しているようなコンテンツプロバイダーも目立つようになってきた。

プロバイダーは利用者から回線増強にかかるお金を取ることは難しくなってきているので、コンテンツプロバイダーからお金を請求せざるを得なくなっているが、コンテンツプロバイダーはそれに対して応じようという気配は見られない。

こうなってくるとプロバイダーは淘汰されるしかなくなってくる。以前から資金力が無いプロバイダーは次々と吸収されてきたが、それが今後はもっと加速化されるだろう。

エンドユーザーのためにと始まった価格破壊は、最終的に特定プロバイダーの寡占状態に陥って、不幸が始まるかもしれない。

安売りすることによって他に収益源が確保できる見通しがあれば問題ないが、ただ価格破壊をすることは誰にでも出来る。

技術の安売りをするときにはよくよく考えたほうが良いかもしれない。