投稿日:

ちょっと早いが今年一年を振り返る

今年は個人的には激動の一年でした。

まず、昨年受験した技術士ITストラテジスト、両方共なぜだかしらんが合格。ITストラテジストは年明け早々に合格通知が来てなんだか嬉しい限りだったのですが、特に何をするわけでもなく、そのまま合格証を受け取っただけ。

その後、もう一丁ということで春のシステム監査技術者試験に申し込んでみたりしました。実はシステム監査技術者は4,5年ほど前に一回受けて落ちてしまった経緯があります。結果を特にじっくり見ることもなく何が悪かったのかもさっぱりわからずじまい。論文がさほど良くなかったのでしょう。多分。。午前で落ちていたらショックですが。。

3月になると技術士試験の合格発表があり、合格したもんだから、早速技術士登録なんぞをしてみました。さすが士業ということもあり、意外と提出する書類が厳格。犯罪を犯したことがないことの証明書とかそんなのを揃えて、3万円だかを登録料として納めれば終了。実は3月末に引っ越すことが決まっていたのですが、なんか嬉しさもあまりに引っ越し直前に古い住所で登録してしまったりしました。

で、3まつには引っ越し。増税前ということもあり、何かと忙し目。一段落すると技術士会というものからのいろいろな案内状が届いたこともあり、いろいろ出てみることにしました。そうすると、あーら不思議なことにいろいろな人と知り合いになることができたりします。今までの仕事人生でこのような外部の優秀な人々と関わりあうことってなかったのですごく新鮮。さすがに皆さん士業ということもありものすごく知識が豊富で足元にも及びません。本を書いている人なんかそこら移住にいるような世界。圧倒されてしまします。

そうこうと色々出ているうちに、ITストラテジスト協会なるものにも入ってみることにしました。こちらも技術士会と同じで、すごい人ばかりの集まりだったりします。なんか趣味の集まりと違い、かなり新鮮で、刺激がものすごいです。

という感じで、激動?と言うかなんというか人生においてのかなりの節目を迎えた感があった一年でしたかね

投稿日:

ITストラテジストオープンフォーラム終わりました

先週の土曜日、ITストラテジスト関東支部のオープンフォーラムに出てみました。小雨がぱらつく中、いそいそと秋葉原まで。

少し早めに到着するようにし、久しぶりに秋葉原をうろついてみることにしました。秋葉原によく通っていたころ、20年ほど前でしょうか?その頃とはずいぶんと様変わり。

まず、メイド喫茶なんかありませんでした。あの通りは昔、マハーポーシャの呼び込みがいたあたりじゃなかったでしたっけ?

あと、駅の反対側が綺麗に整備されていたこと。ヨドバシができたせいだとは思いますが、あのあたりは汚いビルだかなんかがあって、誰も近寄ってなかった気がします。

で、オープンフォーラムですが、ビックデータ活用ということで基調講演が2本。JALでのオープンデータ活用事例が非常に面白かったです。ビックデータ、つまりWEBのアクセス録の解析ということだったのですが、分析結果からABテストなどで実証実験。仮説の検証をし次へと進む。

典型的なデータ解析手法ですが、これがなかなかうまく出来ているところは少ないのが現実。それほど難しいことはないように見えるのですが、実際のデータを前にすると、思った通りの結果はなかなか出ないのが常。

そこでデータを活かすも殺すもがデータサイエンティストの腕の見せどころといったところでしょうか?

まあ、なかなかためになった話ではあるのですが、具体的な事例がどうもぼやかされてしまうのでちょっと残念な印象。

とはいえなかなかの講演内容でした。

投稿日:

SQLを勉強しなおす

諸事情があり最近SQLを勉強し直しています。

勉強し直してみると、すでに忘れてしまっていたものや初めてしったもの、ぼんやりと理解していたのだけども、はっきりとは理解していなかったものなど、いろいろと問題があること(自分にね)がわかってきました。

結論から言えば、通常使っているSQLってSQL92という古〜い部分のみでほぼ全部だったということ。現在ではSQL99、SQL2003、SQL2008とどんどん進化しているようです。というわけで、SQL2003ハンドブックなるものを購入。SQL2003が現在ではほぼ最終系といった感じでしょうか?

XML構文が入ったのもこの2003。とは言いつつあまりXMLDBは流行らなかったかな?どちらかというとXML自体が縮小しがち。まあ電子商取引だとか有価証券取引書なんかはXMLを規格化して十分に使われていたりしますが、一般にWEB関連の技術で言えばXMLはもう終わりかけている感じです。

現状では、WEBのデータのやり取りではJSONがあっという的に優位ですね。この数年、WEBのフロントエンドはFlashなどのブラウザプラグインから、HTML5へと移行し、ほぼ画面周りはJAVAscriptで固められてしまいました。そのJavascriptとの親和性が最も良いのがJSON。まあJSON自体Javascriptのオブジェクトなので、当たり前ですけど。そういえば、本日ようやくHTML5の規格が正式にローンチしたとのニュースが流れていました。長かったですね。何年越しでしょうか?

ともあれ、DBの世界でもXMLではなくJSONが扱えるMongoDBなんかが結構人気になってきたりしています。その流れに逆行するように、SQLでのXML規格の再勉強。なかなか新鮮味がありますね!?その他、再帰問い合わせだのいろいろSQLも頑張っているようですが、WEBアプリの世界ではSQLを直接扱うことはだんだんと無くなっていき、O/Rマッピングなるフレームワーク?がDBとアプリケーション(JSPとかPHPとかそういうWebミドルウエアね)の橋渡しをするようになり、SQLは裏で自動生成されるようになっているのが最近の流行りです。

ということで生のすごく濃いSQLなんかお目にする機会もだんだんと少なくなってきていますが、SQLなしにデータベースは使うことはできないので、最新情報にもついていく必要があるのですね。

投稿日:

文章を書くことがあまり得意ではないと

子供の頃はさておき、高校生になり受験が近づいてくるとはっきりわかってきたことがあります。

「理系人間に国語は不要」

本当にそうだったのでしょうか?中学くらいまでは国語もそれなりにできたのですが、よくよーく考えてみると、中学までの国語は、問題文の中にある答えをいかに見つけるかというテストだったので、問題の箇所の前後をみればだいたい答えが書いてある、ということだったのです。

高校生になると現代文と古典に分かれる訳ですが、現代文はさすがに文章も難しくなり(たぶん、普通に問題を出すと全く差がつかないのであんなに分けのわからない難解な論文みたいな物を題材にするのだろう)、全くわからなくなってしまいました。理系なのに、共通テストの前は国語ばかり勉強していたような気がします。といっても古文漢文ばかりでしたが。まさにドラゴン桜の言っている通りの勉強法だったのでしょう。

そんな感じで、受験に関しても国語にはあまり近づくこともなく過ごしてきていたのでした。しかし、社会人に成ったとたん、実は国語力が試されるということが判明したのです。

まず、就職し最初の集合研修では、感想文だかレポートだかを毎日のように書かされてしまいます。まだインターネットなどそれほど普及もしておらず、当然のようにコピペなんかもできません。文系理系混合の集合研修だったのですが、やはり文系の人は文章がうまいうまいこと。本をよく読むとかそういう世界じゃないのですね。自分もそれほど本を読まない訳でもなく(といっても軽ーい小説とかそんな文章ばっかりでしたが)、結構がんばったのですが、文系人の文章のうまさと言ったら、何を食べたらそんなにうまくなるの?と思った物です。

仕事になると、最初は研究みたいなことをしていたので、実験結果をまとめるのにも文章書き、また、特許申請にも文章を書き、それはそれは国語の大事さを身にしみて感じる日々でした。

今からやり直せるのだとしたら、もっと国語の勉強でもしてみたい物です。といっても一番は英語の勉強でしょうが。。

投稿日:

最近のセキュリティ脆弱性に

4月のOpenSSLのセキュリティバグや先日のBashのバグ、最近結構大きめのセキュリティ脆弱性が発見されていますね。そもそもなぜセキュリティの脆弱性が起きてしまうのでしょうか?

やはりそのプログラムがc言語で書かれているからでしょうか?c言語はよく知られているように高級言語ではあるものの、メモリの取り扱い回りに特に制限もなく、プログラマが書いた通りに解釈し、配列を壊していったりする場合に、セキュリティの脆弱性が埋め込まれてしまうことが多いです。

配列とは何か?「確保した連続するメモリ領域」と言ってしまえば簡単ですが、その配列へのアクセスには、確保したメモリの先頭からの番地に対して操作を行うことに成ります。そのアクセスの際に、確保したメモリ領域を超えてアクセスした先が、プログラム領域など、本来書き換えてはいけない部分を書き換えてしまったばあいに、コンピュータ自体が、意図しない動きとなりそれが脆弱性に成ってしまいます。この意図しないアクセスには、最近ではOSやハードウエア的に制限がなされていたりするのですが、簡単な対処としては、言語的に配列を超えた場合にエラーと成ってくれる物を採用するのが一番ではないでしょうか?例えばJavaとかC#とかのバーチャルマシーン上で動く言語とか、pythonrubyのようなスクリプト言語ならばまず大丈夫です。

ただし、そのような言語の場合には、ハードウエアに直接アクセスしたりすることはできないし、そもそもOSなんかを記述することはできません。ということで、c言語のようなある意味危険な言語はなくなることもなく、脆弱性との戦いがずーっと続いていくことに成ります。

ソフトウエアにおいてバグをなくすことは不可能なのでしょうか?ソフトウエアは開発自体が少ない人数で行われており、また、その開発者の能力に大きく依存するということが他の工業製品とは大きく異なります。つまり他の人の目が入ることが少ない。

また、ソフトウエアの設計や製造は同じ処理をする物を作成するにしても、バリエーションがたくさんあり標準化がほとんど進んでいない問い埋めんも否めません。標準化もできない訳ではないでしょうが、ソフトウエア技術の進歩が他の分野の技術に比較しかなり早い、それゆえ、標準化してもすぐ陳腐化してしまう、これも一員かもしれません。

このように技術は進歩していく訳ですが、いつかソフトウエアの世界にもプログラミングという下流部分がすべて自動化されてしまい、バグは仕様のバグとかそういう部分だけに成る日もあるのかもしれません。