元タイ人留学生がのぞいたタイランド

元タイ人留学生が日本語で綴るタイのIT事情

4

2006


            1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30            

検索


カテゴリーリスト

タグリスト

2006年04月12日(水)

タイのコンピュータオリンピック [タイの電脳事情 電脳街情報]

いよいよコンピュータオリンピックの国内第3時審査が行われます。今年は東部地方がホストを勤めないといけません。ちょっと面倒な行事ですが、久々にプログラムをデバッグすることができて学生時代が懐かしいです。

実はテスト問題を出さなければならない立場になっていますが、いろいろなわけがあってほとんどノータッチでした。が、テスト問題を採点するプログラムを起動できるようにしてほしいという要望があって、この2-3日は去年他の大学で開発されたプログラムをいじることになりました。

しかし、システムを開発するとき、一番苦労するのは他人のプログラムのコードを読むことです。多くのプログラマはコード以外たいていコメントを書かないことが多いです。まして詳細な説明はいうまでもありません。今回の場合も例外ではなかったですが、唯一助かったのは開発者が学生時代、コンピュータオリンピックの世界チャンピオンとして金メダルをとったことがある人で、書いたコードが非常に読みやすかったことです。

どんなプログラムかというと、複数の参加者が書いたプログラムをブラウザーでサーバにアップロードして、サーバ側が瞬時にコンパイルし、あらかじめ用意してあったテストパターンと照合し、問題を採点をするクライアント・サーバ型プログラムです。もっと具体的にいうと、このプログラムはOS教科書に出ている生産者-消費者問題(producer-consumer problem)」 のような処理を行うものです。

参加者とのやりとりする部分はPHP,Mysqlが使われていますが、照合と採点する部分はVC++で書かれました。なぜ、VC++にしたのか最初は不思議に思ったのですが、複数の参加者の要求に同時に応えるために、スレッドによる並行処理が必要になったので、C言語系を選択したのではないかと思います。

実はVB以外のWindowsプログラミングをほとんどしたことがないので、VC++をいきなり触ってVC++のプロジェクトを設定する際かなり戸惑いました。けれども、プラットフォームが変わっても、所詮手続き型言語なので、少しインターネットで情報を探せば、たいていのことはわかります。

コードは千行程度のものでしたが、一番勉強になったのはmysqlのテーブルをロックする部分です。こういうタイプのプログラムはかなり競合処理が発生するので、共有している部分のロックをうまく処理しなければなりません。特にアトミックな動作が必要な場合、この辺りのコードをうまく処理しないと本番でほぼ間違いなくシステムが落ちます。

とりあえず、なんとか予定通りプログラムを動かすことができたので、残りの時間は本番に向けてコードの微調整を行わなければなりません。ソンクラーン明けまで少し忙しくなりますが、いろいろスリルがあり、さらにいい経験にもなるので、大変やりがいを感じています。

Posted by ぷーちゃん at 02時45分

コメント

コメント投稿フォーム

名前:(この情報をCookieに保存させたい場合にチェック)
メールアドレス: (表示はされません)
URL: (名前にリンクされて利用されます)
コメント:
パスワード: (削除時に利用)

ページのトップへ ページのトップへ

PHOTO

3Gの世界

3Gの世界

Excelで数字をタイ・英・日本語の文字列へ変換する関数

Excelで数字をタイ・英・日本語の文字列へ変換する関数

レパードアップデート10.5.1が登場しました

レパードアップデート10.5.1が登場しました

最近の記事

最近のコメント

最近のトラックバック

リンク集

RSS1.0

[Login]


powered by a-blog
コミュ ニケーションをもっと快適に タイ語翻訳会社ジーアイピーユー