不具合農場 地獄の大豊作不具合様は本日もすこやかなれば、本日も大豊作なり。 不具合様には不具合をお供えすべし。 今日もお供え物作ってますか? |
トップへ戻る ブログのトップへ戻る Word Press |
|
不具合道楽 地獄のフルコース不具合御飯 不具合味噌汁 不具合満漢全席 | ||
コンピューターのはらわた無修正大公開 | ||
不具合設計局キャンペーン中 |
2008-06-02 (Mon)
2008-06-03 (Tue)
_ [日々の生活] 仕事:進行中
Webベースのアプリケーションな訳ですが、ページ単位で実装中。当初はほとんどハリボテに近いものを想定していたのですが、データの検索機能が欲しいとのことです。実現の仕方としてはもっともお手軽な方法ということで、exeをcgiとして呼び出して、exeではcsvファイルを読み込んで、検索結果を返すようにしました。exeはちょろちょろっと書きました。
Ajaxを使ったのは初めてなのですが、検索する際、ページ遷移することなく検索結果を出せるのがいいですね。以前使ったパッケージでは検索するたびにページ全体を読み直すため、「なんとかならんのかいな」と思っていました。ページ全体を読み直したのではCPU負荷も回線負荷も高くなりますし、いかにもWebページというか、Web臭くていけません。
個人的に、今回のコンセプトの一つとして、Webベースであることを意識させないものにしたいと思っています。
2008-06-12 (Thu)
_ [日々の生活] 仕事:今後
デモ版の開発ということで一昨日のデモンストレーションで一区切りがつきました。仕事はこれで終わりではなくて、なし崩し的に本開発に進みそうです。今回はパッケージ開発なので特定の顧客向けの製品ではないのですが、とりあえずは今回デモを行った企業が最初の顧客になりそうですね。
サーバー側プラットフォームについてはっきり聞いていなかったのですが、Windows + Oracle + IIS + Tomcatだそうです。Tomcat単体でもWebサーバーの機能はあるのですが、IISをWebサーバーとして据えるようです。ApacheにすればLinuxでも動作可能になると思ったのですが、そこまではしないようです。しかし、IISの採用例ってほとんど聞いたことがないので、ちょっと心配な面もあります。
パッケージとしてはカスタマイズ機能を重視するという方針です。画面のカスタマイズについて、画面を格子状に区切って項目を並べていくという案が出たのですが、これだと複雑なものに対応できないです。ホームページビルダー等のHTMLエディタを使用することを提案しました。
2008-06-14 (Sat)
_ [科学] 対称
数学分野で対象というと線対称とか回転対称とかです。対称とは操作に対して変化しないことをいいます。たとえば、線対称であれば、図形を対称線で左右反転するという操作をしても図形は変わらないわけです。
2008-06-16 (Mon)
_ [開発メモ] IISにおけるURL引数デコード
IISのaspにおいて、与えられたURLの引数を全て列挙して一覧にするという処理です。あちこち調べたのですが載っていなくて、それでも何とかできるようになったので記録しておきます。function getParameters(request)
{
var method = request.serverVariables('REQUEST_METHOD');
var parameters = {};
var blocks
if(method == 'GET')
blocks = String(request.queryString).split('&');
else
blocks = String(request.form).split('&');
for(var index = 0; index < blocks.length; index ++){
var parameter = blocks[index].split('=');
parameters[parameter[0]] = decodeURIComponent(parameter[1]);
}
return parameters;
}
2008-06-19 (Thu)
_ [日々の生活] 仕事:現状の進行方向について
メールでやりとりしては指示をもらって作業という流れなのですが、どうにも腑に落ちないことがあるので、今回は電話で確認。メールについては関係者全員に流れているので、特定の人と話したい場合は電話になります。あと、メールだと公式な記録として残ってしまうので、内々の話などはやはり電話になります。
で、電話。現状の進行方向について。本番(製品版)開発はまだ先の話で、当面はデモ版の開発に注力するとのこと。デモ版の開発にあたっては本番に流用できるものにしたいという意向で、それに従って作業しています。しかし、サーバー側についてはデモとして持ち歩くことを考えるとお手軽なものにするしかありません。クライアント側については流用可能だがサーバー側については流用が難しい旨伝えると、「それで良い」との回答。また、DB構造とかいった中身については私の裁量で勝手にやってしまって良いとのこと。
パッケージとして発売する製品という都合上、デモ版は営業部隊に容易に配布できるものであること、というのが今のところの制限ですかね。
2008-06-20 (Fri)
_ [日々の生活] 仕事:JavaScript
JavaScriptは少し使う程度なら簡単な言語で、C言語が分かる人間なら見よう見まねでなんとかなります。私もそのクチで、正確な仕様は知らない状態で使っていました。今回のプロジェクトではJavaScriptをこれでもかというくらい駆使します。あちこち検索していたら、詳しい仕様書を発見。
http://developer.mozilla.org/ja/docs/JavaScript
メソッド内において{}で括ることでそこだけで有効な変数スコープを作るという機能はないんですね。てっきりあるものだと思ってコードを書いていました。あと、昔のC言語は関数の先頭でしか変数を宣言できないという縛りがありましたが、JavaScriptもこれに近い縛りがあります。メソッド内におけるローカル変数というのはメソッド内のどこからでも参照できてしまうのです。(以下のようなコードはOK。順番が逆になっているがローカル変数はメソッド内のどこからでも参照できるという仕様による) なんでこんな仕様にしたんだよと…。
alert(a);
var a = 0;
JavaScriptは型に対して非常にルーズな言語で、プログラマーがコンパイラやインタプリタに代わってデータ型を管理する必要があります。データ型の管理なんてやったことがないので、かなり負担です。あと、C言語ならコンパイルするときに出てくるエラーがJavaScriptでは実際に実行しないことには出てこず、これも負担です。GoogleなんかはGoogleDocsでJavaScriptで凄い物を作っていますが、よくもまあ作るものです。JavaScriptでは大きくて複雑なものを作るのはかなり難しいというのが実感です。
一応、JavaScriptにもいい点はあって、連想配列なんかはなかなか使い勝手がいいです。ただ、新しい要素を作る際は明示的に宣言しなければならないようにして欲しいです。要素を参照する際の参照名が綴りミスしたというだけでももうだめなんですから…。
JavaScriptはいい言語ではありますが、複雑なものや大きなものを作りやすくする工夫がないのは言語としてはかなり難点です。インタプリタ型言語であることを最大限に生かしているというのは評価できるのですが、インタプリタ型の欠点まで持ち込んでしまっています。
2008-06-25 (Wed)
_ [日々の生活] マシンのヒートシンク交換
この前マシンのCPUファンを水洗いしましたが、騒音が収まらないのでヒートシンクごと交換することにしました。今回はファンの形状が一般的で交換可能なモデルを選択しました。
まず作業台にマシンを寝かせて置いて、サイドパネルを開けます。今のファンはねじ止めタイプなのですが、電源が邪魔で作業しにくいので、電源も外します。で、ヒートシンクを交換。ここまでは問題ないです。
電源を元に戻そうというところで問題発生。ヒートシンクが以前より大きくなったため、電源がヒートシンクに干渉して元に戻せません。(死) ヒートシンクを無理矢理傾かせたところ、なんとか電源を元の位置に戻せました。マシンを元の場所に戻して起動。BIOS画面確認。「CPUファンの回転が検出できない」とかいうエラーが出ています。BIOSの設定でCPUファンの回転を検査しないように設定。再起動したところ、さらにエラー。HDDはRAID1を組んであるのですが、片方のHDDが検出できないとのこと。ケーブルの接続を確認して、さらに再起動。HDDは両方とも認識するようになったのですが、RAID1の再構築が必要とのこと。というわけで再構築。えらい時間がかかりました。さらに、ヒートシンクが大きすぎてサイドパネルのファンと干渉するという問題が発生。サイドパネルのファンの位置を変えました。
とりあえず、途中で何度かトラブルが起きましたが、作業完了できました。これで騒音も大丈夫でしょう。しかし、あまり大きなヒートシンクを使うと干渉の危険が大きいというのが分かりました。今後ヒートシンクを選ぶ際はこの点も考慮することとします。
2008-06-30 (Mon)
_ [日々の生活] 仕事:JavaScript
JavaScriptで複雑なもの書くのってすげえ難しいよ。っていうか可能なの??
C++なら変数宣言を見ればそれがどんな型か分かりますし、ヘッダファイルを見ればクラスにどんな関数があるかも分かります。しかしJavaScriptはそういうことが一切分かりません。ある変数があったとして、それがどんな型なのか、連想配列やクラスならどんなメンバーを持っているのか、書いているときには分からず、実行時にしか分からないのです。実行してみて正常に動かなくて、初めてコーディングが間違っていることが分かるのです。
これではプログラマーはちょっとしたコードを書くのにも細心の注意を要求されることとなり、プログラマーの手を煩わせることとなります。C++やJavaならデータ型の管理はコンパイラがやってくれますが、JavaScriptではプログラマーが行わなければならず、非常に負担です。