« 2008年4月21日 | 2008年4月23日の投稿 |
2008年4月25日 » |
一般システムエンジニア≠一般 + システムエンジニアではなくて
一般システムエンジニア=一般システム + エンジニアなのです。
番長ブートキャンプに入隊してからというもの、番長に物申す時には言葉の前と後ろにSirをつけるよう叩き込まれました。さて、今般番長よりお誘いをいただきまして「いままでで1番重かった本」について書くよう命令が出ました。反逆すると軍法会議なので素直に従いたいと思います。締め切りは5月7日だそうですが、おそらく4月中にエントリしておかないと「ベトナム行く前に戦争が終わっちまうぞ」と怒られるんじゃないかと思います。
「一般システム理論」という言葉を聞いたことがありますでしょうか。googleで「一般システム」を検索すると1番目がwikipediaによる一般システム理論の解説、2番目がAmazonの一般システム思考入門、3番目がAmazonの一般システム理論―その基礎・発展・応用となります。4番目が拙ブログとなります。
私が読んだ中で一番内容が重い本は、この3番目の『一般システム理論―その基礎・発展・応用』です。著者はルートヴィヒ・フォン・ベルタランフィという生物学者です。どういった本かというと、世界はシステムだ!という理論です。大学の時にゼミの先生の紹介で知って図書館で読みました。その方向性には大変な感銘を受けましたが、その一節を理解する事すら難しく、1ページ2秒くらいで読み飛ばしっきりで現在に至ります。次に読み直す機会は数十年後だと思っています。
では一般システム理論とは何なのでしょうか。wikipediaの解説でなんとなくわかるかと思いますが、確立され、完成された理論ではありません。世の中にはシステムと名のつくものが大量にありますが、その中に共通項を見出して一般システムなるものを探そうぞ、というようなものです(というように理解しております)。 以下、wikipediaからの引用です。
一般システム理論によれば、システムとは以下のようなものである。
- システムは互いに作用している要素からなるものである。
- システムは部分に還元することができない。
- システムは目的に向かって動いている。
- ひとつのシステムの中には独特の構造を持った複数の下位システムが存在する。
- 下位システムは相互に作用しあいながら調和し、全体としてまとまった存在をなしている。
これを身の回りに当てはめてみると様々なものが「システム」であることがわかると思います。というか身の回りのシステムっぽいものに共通する属性を切り出したのが上の定義ですので、当然と言えば当然です。例えば人間。
- 人間は人間同士で影響し合っていきています。
- 手や頭だけでは人間を構成できません。
- おおむね目的を持って生きています。
- 体の中には各種の器官があります。
- 器官は神経やホルモン等を通じてまとまった動きをしています。
人間の体の細胞を1つ取り出してみても、ミトコンドリアがあって、細胞分裂をしてとシステムと言えるものです。国と国との関係や、企業組織、株式、地球環境などシステムとシステムが影響し合ってシステムを作って、その上位システムがあって、とわけわからんくらい色々なシステムがありますが、それらには似ていると言えば似ているところもあるかな、という感じで考えておけばいいんじゃないかと思います。
この理論は役に立つのでしょうか。きっと偉い先生方にとってはそれなりの活用方法があると思いますが、普通に生きていたら豆知識くらいにしかならないものだと思います。ただし私が生業としている情報システムの開発においては、一般システム理論的な思考が役に立つ事があります。どこから入力があり、それを何が処理して、どこに出力するのか。すべてのシステムはそれさえ理解すれば全体像を捉える事ができるという自信を持つことができます。
この一般システム理論的にインターネットを捉えてみた事があります。今ではweb1.0と言われる時代、個人が”ホームページ”を持って相互にリンクをお願いしていました。これは人間同士のコミュニケーションが電子化されただけであまりシステム的ではありません。ところが検索エンジンの発達をきっかけとしたweb2.0の時代の到来により、非常にシステムっぽくなりました。
おもしろいサイトから引用されるサイトはおもしろく、おもしろくないサイトは検索エンジンの見出しからして「つまらない」と判断されて順位を落としていきます。ここには人間の手が加わってはいますが、相互リンクと違って「紹介してあげよう」とか「おもしろくないからリンクを切ろう」という意図が遮蔽されています。自分は本能に従って「見たい」「見たくない」の選択をするだけなのに、各サイトが推薦されたり貶められたりします。こうして人間とサイト、サイトとサイトが相互作用しあうようになりました。相互作用の行き過ぎによる炎上という副作用は、人間に例えると花粉症だとかリウマチのようなものと言えるかもしれません。
私の人生の目標のひとつに、私なりの一般システム理論を見つけるという夢があります。学術論文にしたいとかそういうものではありません。オリジナリティーがあるならば、居酒屋でそのへんのおっさんが「人生なんてな、野球みたいなもんなんだぜ』って言ってるのと変わらない自己満足的なもので良いと思っています。(具体的には南方曼荼羅のようなものをイメージ)。ひょっとするとそれは悟りだとかタオだとか言われるものに似ているのかもしれませんし、そうでないかもしれません。もし似ているならばあと50年くらい経って角が取れてこないと理解できないでしょう。
それくらいわけわからないものを追い求めたほうが人生がおもしろおかしくなって良いかな?なんて思っています。
スタンザ形式っぽい長いファイルをExcelで処理していました。(WindowsXP SP2+Office2003 SP1)
<ああああああ>
いいいいい 11111
うううううう 22222
<ええええええ>
おおおおお 33333
このようなテキストファイルをExcelのシートに読みとります。こんな感じになります。
あああああ | ||
いいいいい | 11111 | |
ううううう | 22222 | |
えええええ | ||
おおおおお | 33333 |
そこから、「ああああああ」というシートの中に「いいいいい」の行と「ううううう」の行を、「ええええええ」というシートの中に「おおおおお」の行を格納すると言うような処理です。
数10スタンザでテストをした時は正常に動いたのですが、300を超えたら急に動かなくなりました。どうも256シート以上生成しようとした時にエラーが出るようです。仕方ないので100シートごとに分割してファイルを作るように変更しました。ところが問題が解決しません。よくよく調べてみると、こんな処理をしていることが原因とわかりました。
- テキストファイルを読み込んだExcelブック内に1スタンザ分のシートを作成する
- 100スタンザ分のシートができたら新しいブックを作って異動する
- 新しいブックは保存して閉じる。
- 101スタンザ目から処理を再開する
こういった処理に変えたところ、テキストファイルを読ませたExcelブックで生成・消滅させたシートが120くらいを超えたときに落ちました。同時に存在するのは最大でも100シートなのですが、許してくれませんでした。エラーの内容は、シートのMoveに失敗しました、のような内容に変わりました。Moveがダメならと思ってCopyに変更し、Copyが終了次第Deleteにしてみてもだめでした。
100シートをまとめて処理するのではなくて1シートならどうだ、と思って試してみると180シートくらい頑張りました。これは何かの制御バッファが溢れてるのか?と思い、Excelが認識するシートのオブジェクト名を「st」という2文字に変更してみました。そうしたら256シートで落ちるようになりました。って全然解決になっていません。
しかたなく、テキストファイルを読み込んだブックとは別に空のブックを作り、その上に1シートずつ作成して100シートになったら保存して閉じる、ということをしました。これでうまく行きました。やれやれです。
Excel2003ではそもそも65535行を超えるデータを扱う事ができないため、ログの処理に不向きであると思います。だからといってExcel2007を買えばこのような問題がすっかり無くなるかというと、「400」とか「1004」という不親切なエラーを平気で返す様なソフトの遺伝子を受け継いでいるという事を考えるととてもそのような感じがしません。
以前、テクネコさんがおっしゃっていましたが、、大きなシステムから出てくるものはできるだけ汎用性のある形式にして、魅せる時はExcelやWordなどの手近なものにすると良いというのはその通りだと思います。汎用ログ解析ツールの検討でも始めようかと思いました。
てくてくテクネコ > こんな時にも年賀状作成ソフト
http://blogs.itmedia.co.jp/techneco/2008/03/post-141e.html
(今日はkwoutが重すぎて使えませんでした)
« 2008年4月21日 | 2008年4月23日の投稿 |
2008年4月25日 » |