NTTドコモがダメすぎる件

NTTドコモの携帯mobilephoneを使っている身としては悲しいweep
NTTドコモ、「P-07A」の販売を停止――iモード接続に関する不具合」(itmedia)

ドコモからのお知らせ

ソフトウェア不具合というこですが、どういったテストをしているのでしょうかね。
アップデートすると何かがダメになるとかって、各個人データとか設定などの発生条件がレアなのかどうか。
発売日は決定していて時間切れでリリースでしょうか?

知人が docomo 関連サービスの開発していますが、組み込みの部分とはまた違う開発プロセスなんだろうけど、品質管理って難しね。
いくらメトリクス的にOKでもだめだったらだめだもんなぁ。
いまだにステップあたりn件のテスト、バグを出しなさいとかやめてほしいbearing

と言ってみる。

yum update – depsolving problems 解決!

yum update したら依存関係でエラーが出たので調査して解決しました。
その時のメモ。
時間がない人向けの答えは↓

# yum clean all
# yum update

経過
# yum update すると

audispd-plugins-1.7.7-6.el5_3.2.i386 from updates has depsolving problems
  --> Missing Dependency: audit-libs = 1.7.7-6.el5_3.2 is needed by package audispd-plugins-1.7.7-6.el5_3.2.i386 (updates)
audispd-plugins-1.7.7-6.el5_3.2.i386 from updates has depsolving problems
  --> Missing Dependency: audit = 1.7.7-6.el5_3.2 is needed by package audispd-plugins-1.7.7-6.el5_3.2.i386 (updates)
Error: Missing Dependency: audit = 1.7.7-6.el5_3.2 is needed by package audispd-plugins-1.7.7-6.el5_3.2.i386 (updates)
Error: Missing Dependency: audit-libs = 1.7.7-6.el5_3.2 is needed by package audispd-plugins-1.7.7-6.el5_3.2.i386 (updates)

audispd-plugins に問題があるそうなので、チェック

# rpm -q audispd-plugins
パッケージ audispd-plugins はインストールされていません。

あり?ということなので、インストール

# yum install audispd-plugins
Installing:
  audispd-plugins    i386   1.7.7-6.el5_3.3   updates    44 k
Updating:
  audit              i386   1.7.7-6.el5_3.3   updates   365 k
  audit-libs         i386   1.7.7-6.el5_3.3   updates    77 k
  audit-libs-python  i386   1.7.7-6.el5_3.3   updates    77 k

これでこれは解決。はい、次!

--> Processing Dependency: /usr/share/magic.mime for package: httpd
--> Finished Dependency Resolution
httpd-2.2.3-22.el5.centos.i386 from installed has depsolving problems
--> Missing Dependency: /usr/share/magic.mime is needed by package httpd-2.2.3-22.el5.centos.i386 (installed)
Error: Missing Dependency: /usr/share/magic.mime is needed by package httpd-2.2.3-22.el5.centos.i386 (installed)

一応 ls で magic.mime の存在は確認できたので、パッケージをチェック。
どのファイルが rpm のパッケージに含まれているのかは rpm -qf で確認してパッケージの情報を参照してみた。

# rpm -qf /usr/share/magic.mime
file-4.17-15
# yum info file
Installed Packages
Name       : file
Arch       : i386
Version    : 4.17
Release    : 15
Size       : 1.6 M
Repo       : installed
Summary    : ファイルの種類を判断するためのユーティリティ
URL        : http://www.darwinsys.com/file/
License    : distributable
Description: ~~省略~~

Available Packages
Name       : file
Arch       : i386
Version    : 4.17
Release    : 15.el5_3.1
Size       : 316 k
Repo       : updates
Summary    : ファイルの種類を判断するためのユーティリティ
URL        : http://www.darwinsys.com/file/
License    : distributable
Description: ~~省略~~

インストール済みでバージョンアップできるようだ。
ただし、httpd の依存関係のエラーが出ているので単純にはいきそうにない。
一度 httpd を削除すれば問題ないと思うが、そうもいかないので 調べて「yum Dependency problem」を斜め読みして実行!
解決しました!
画面で見ていた限り問題は起きていませんが、rpm の更新で設定ファイルなどに変更が起きていないかチェックをします。

find / \( -name '*.rpmsave' -o -name '*.rpmnew' \) -print

特に変更が見られないようなので終了。

「Bigtableの使い方教えます」セッションのお申し込みはこちら

今日現在、内容は未定なようですが、Seasar Conference 2009 Spring の案内が発表されています。

Seasar Conference 2009 Spring - 6/13(SAT), Tokyo


ひがさんは blog で「Bigtableの使い方教えます」を中心にするようですね。当然 Slim3 の話題もするそうです。

今回は参加できそうにないので、プレゼン資料の公開してほしい。
まぁ流れで内容も変わる可能性もあるので、資料だけではなんとも読み取れないとは思いますが・・・。

Java での Web サービス開発において、今後のスタンダードなフレームワークはなにになっていくのだろう。淘汰は? 個人的には Struts2はない気がします。Strutsって名前にしなければよかったとも思う。
しかし、Struts 1.2.9 (Classic) ベースのシステムが多くあり、メンテも続き、これから作る周辺システムもそうなりそう。要員確保しやすいというのも理由なんだが、一度動くとね。。。

小さいシステムでは Slim3 とか使ってみたいなぁ。。。

iモード2.0(imode2.0)はCookieやAjax、インライン動画に対応

タイトルまんまですがびっくりしましたwobbly

いやね、実際は各社の機能が横並びでそろわないことにはコンテンツ提供者や私たちSEからすると困るわけで、底辺に合わせるしかないわけで、実際の業務ではもう少し先になるだろうけど、docomo専用に割り切るといろいろできそうだな。

しかし、cookie をサポートしてマルチウィンドウ(タブブラザ)ってことは同じ cookie を返してくると思われセッション管理とか泣けてきそう。どういう挙動をするのだろうか。端末保存のcookieとかあるのかなぁ<調べてない。

シミュレーターIIもV8.2としてちゃんと新機能サポートしてて JavaScript などに対応している模様です。いじった感じだと alert() とかもちゃんと動きます。

でもXMLHttpRequestがうまく動かないのが今のところのなぞ。

以下、超てきとーなコード。

<html>
<head><title>i-mode 2.0</title></head>
<script>
  function load() {
    var xmlhttp = new XMLHttpRequest();
    xmlhttp.onreadystatechange = function () {
      if (xmlhttp.readyState == 4) {
        alert(xmlhttp.responseText);
      }
    }
    xmlhttp.open("GET", "sample.txt");
    try {
      xmlhttp.send(null);
    }
    catch(e) {
      alert(e);
    }
  }
</script>
<body>
<input type="button" value="click" onclick="load()"><br>
</body>
</html>

send(null); が TypeError になる。空文字 “” でもだめだった。
だれか動いた人、教えてください。

そうそう、とりあえず UA は “DoCoMo/2.0 ISIM0808(c500;TB;W12H08)” でした。

(5/24 追記)
以下のいずれでもダメ。現在お手上げ。

  • send(“”);
  • open(“POST” …) & send(“p=1”);
  • setRequestHeader()

Oracle Pro*C/C++ での構造体配列のポインタ

某プロジェクトのお手伝いで10年ぶりくらいに Oracle Pro*C/C++ (proc) でプログラムをつくりました。
それでちょっとはまったのが、動的にメモリを確保して、そこに数行分のデータを一気に読み込むロジックです。

設計は以下のとおり。
1.構造体の定義
2.メモリの確保
3.カーソルの定義
4.フェッチ
書いたコードの抜粋は以下

typedef struct {
    char name[15];
    int  age;
} PERSON;
int limit = 100;
PERSON *p;
p = malloc(sizeof(PERSON) * 100);
EXEC SQL DECLARE c CURSOR FOR SELECT ...... ;
EXEC SQL FOR :limit FETCH c INTO :p;

(答え)構造体の定義で struct に構造体タグをつけ忘れたこと

(誤)
typedef struct {
    char name[15];
    int age;
} PERSON;
(正)
typedef struct _person {
    char name[15];
    int age;
} PERSON;
    or
struct _person {
    charname[15];
    int age;
};

コンパイルエラーは出ないがNGsign03

配列のサイズ計算がうまく行えず、バッファ内がぐちゃぐちゃに。(プログラマーズガイド「構造体の配列の宣言」)

次に読み取り行数の認識間違い。

問題は100件読み取ってもまだ続きがあるときの 2回目の FETCH での行数 sqlca.sqlerrd[2] の値。
処理した行数ではなくて、累積数が記録されているってこと。
ちゃんとマニュアル読めばわかる話だけど、記憶だけ書いちゃうとだめな例(同 ガイド「sqlca.sqlerrd[2]の使用方法」)