2008/08/18

[2ch, docomo]2ch rejects docomo users

2chで、docomoユーザが全規制されていたらしい。

しつこく掲示板を荒らすユーザがいて、docomoを使っていた模様。
荒らしユーザが個人情報を含む書き込み→2chは書き込み削除した上で、iモードIDで書き込み規制→荒らしユーザは、iモード再契約でiモードIDを変え、規制を回避→2chは~のイタチごっこ。

以前は端末固有ID(ser)を使って制限していたため、FOMA端末の買い増しか、オークションなどで機体を手に入れるかしないといけなかったらしいけど、iモードIDは、店頭で¥200程度払えば、それですむらしい。
端末固有IDを使った方が荒らしユーザへの経済的負荷は高いけど、docomoの店頭に行く必要がないので一長一短といったところ。iモードID, ser, icc(ICカードの製造番号)を全部使うのが一番効果はありそう。

この事例は、ISPやWebサービスの提供者がどう動くかの面白い事例だと思う。関係者がとった行動は以下

2ch
docomoユーザを完全規制。ひろゆき(管理人)が、2週間程度で規制解除を指示。それ以外は知らん振り。内部で何かごにょごにょしてる感はある。
docomo
「当事者同士で何とかしてください」と動かず。
2chユーザ A
言論の自由で2chを訴える。→論外。
2chユーザ B
「無料なのに 嫌なら来るな はおかしい。」→意味が分からない。
2chユーザ C
「個別に規制しろ」「iモードIDって何?」「とにかく解除しろ」× たくさん → 事態を把握していない。ただのノイズ。
2chユーザ D
docomoと交渉。「荒らしユーザを何とかしろ」→通信事業者であることを理由にきっぱり「できない」と拒否される。個人情報保護と、通信の秘密に関するものらしい。動くには警察の介入が必要→警察が動くには、当事者(2chか、個人情報を書かれた被害者)の訴えが必要 とのこと。
2chユーザ E
iモードIDの仕様変更を要求。
 719 名前:>>662 本日のレス 投稿日:2008/08/18(月) 14:51:13 H8BnJfdj0 
あいあーい docomoから返信来ましたよー。 


○○ 様 

いつもドコモをご愛顧いただきまして、誠にありがとうございます。 
ドコモ メール受付担当の××と申します。 
お客様よりお問い合わせいただきました2通のメールにつきましては 
1通にまとめてご回答させていただきます。あらかじめご了承ください。 

(中略) 

また、お客様からいただいているように名義変更、電話番号の変更、 
iモード契約の解約によりiモードIDは変更される仕様となっております。 
なお、iモード契約の解約と再契約を繰り返してもiモードIDを継続利用 
できるようにするかにつきましては現在のところ未定のためご案内いた 
しかねます。 
何とぞ、ご了承くださいますようお願いいたします。 

このたび、お客様からいただきましたご意見につきましては、貴重なお 
声として承り、今後のサービス改善などの参考とさせていただきたく存 
じます。 
ドコモは、これからもお客様のお声に耳を傾け、よりご満足いただける 
サービスを提供できるよう努めて参りますので、変わらぬご愛顧をくだ 
さいますようお願い申し上げます。 


窓口設置については完全スルーな上に、事実上の回答拒否とww 
せめて協議中です、とでも言えばまた心象は違っただろうにね。 
8月末でdocomo解約ケテーイします。 

ここで、docomoは仕様変更が「できない」とは言っていない。たぶん、要望が多ければ対応の可能性もあると思う。が、このユーザはその点に気づいていないらしい。

iモードIDに関しても、同一性が保証されればされるほど、悪意ある使い方(適当にググるべし)に弱くなるので、痛し痒しと言う感じだ。自分はiモードIDの仕様も2chのdocomo規制も今のままがいいので、黙っておこう…。

ラベル: ,

2008/08/12

[Apple] What is EA0449?

今日、iTunesのアップデートが来ているので適用しようとしたけど、ソフトウェアライセンスの一番後ろにEA0449っていう謎の文字列が… これ何だろう? 相変わらず、日本語としても微妙なままだし。

ラベル: ,

2008/05/30

[JIG] jig browser requires iModeID

jigブラウザが、iモードID常時ONを強制するようになった。 強制するような使い方はDoCoMoの意図する使い方じゃないし、iモードIDはセキュリティ上問題がある。 実際、DoCoMoはON/OFFをユーザが選択できるようにした。 しかも、ユーザに事前の説明もなし。 契約の残り期間の料金を返却して解約するような、ユーザにとっての最終手段も用意されていない。 # ブラウザを強制的にバージョンアップするっていう通知はあったけど 何を考えているのか分からない。 CSS機能をOFFにすると強制されない中途半端ぶりからして、 セキュリティに関して理解が足りてないのかも知れない。

ラベル: , , ,

2008/04/06

[aix]japanise encoding

AIXでのエンコーディング指定を調べてみた。Shift_JISとSJISじゃないらしい。 http://publib16.boulder.ibm.com/doc_link/Ja_JP/a_doc_lib/aixprggd/nlsgdrf/supportedlanguages.htm#japaneselang
表 25. 日本語
コード・セット言語国またはカテゴリーロケール
IBM-eucJP日本語EUCja_JP
UTF-8日本語日本JA_JP
IBM-943日本語PCJa_JP
何が違うって大文字と小文字が違う。他の言語も同様の指定方法らしい。 …なにこの変態仕様。

ラベル: , ,

2008/03/29

[Google, Docomo]google maps for mobile

Google Japan Blog: Google Maps for Mobile ( i アプリ版 ) に GPS 機能が加わりました にあった、Google Maps for Mobileの現在位置機能が、非GPS端末にも対応。(正式名は"My Location"?) DoCoMoの基地局情報も併用するようになったらしい。 ダウンロードサイトはhttp://www.google.co.jp/gmm InernetWarchの記事では、GoogleがDoCoMoから受け取っている情報は基地局の番号(正確にはエリアをさらに分割したセルという範囲の番号らしい)しか通知されていないが、今までGPS対応機から位置情報とセル番号から、セル番号→位置情報に変換するための情報を収集していたらしい。 cnetの記事には「位置情報のデータベースをGoogle Maps for Mobileユーザが構築している」とか言ってるけど、 セル番号を収集してたってのは聞いてないよ。どっかの規約にあったのを見落としてたのかな? それにしても怖いコトするなぁ…。 レスポンスは向上したし、リアルタイム計測もなかなかのもの。以前はGPS対応機だけだったし、その測位方法も何度もクリックが必要だった。(0キー→Googleサーバのページ→測位のリンククリック→端末の測位機能に何度かyesと答える→Googleのページ→地図表示のリンククリック) 機能的にはかなり良くなったんだけど、改良の余地や多少のバグもある。 まず、起動中ずっと位置情報取得が動き続けていること。単に、常に動いているのは邪魔くさいってだけなんだけど…。「さっき見た地図を見よう」とか思って起動すると、いきなり現在位置に飛んでいくし。 無効にするオプションは メニュー→ヘルプ→現在位置→ヘルプ文章の下の方 と奥底の方にあって、辿るのが面倒。切り替えに手間がかかってしょうがない。 ショートカットにするかメニュー直下に移動させて、起動時はオフにして欲しい。 あとは、一度検索機能を使ってからアプリを終了して、またアプリを起動すると、現在地に飛んで行ったあとキー入力が利かなくなった。現在地機能がふらふら勝手に動いているのを眺めるだけになってしまった。端末側のバグなのか不明。一応、検索だけは反応して、それ以降はほかのキーも効くようになった。

ラベル: ,

2007/12/20

[Windows]Open Word as read-only

以前書いた内容でだめだった、Wordファイルの読み取り専用。 Wordが開いていない状態で実行すると読み取り専用にならなかったんだけど、一回ファイルクローズ入れたらいけた。 一瞬更新可能な状態で表示されるから気持ち悪いけど…。 最初は普通に開くから、マクロの自動実行を無効にするオプションを付けている。 Wordの場合
  1. エクスプローラを開き、メニューから ツール → フォルダオプション
  2. ファイルの種類 タブを選択
  3. 登録されているファイルの種類 から、DOC を選択 → 詳細設定 ボタン
  4. 新規 ボタン
  5. 次の通り入力
    アクション
    読み取り専用で開く(&1)
    アクションを実行するアプリケーション
    Wordのパスを入力する"C:\Program Files\Microsoft Office\Office\WORD.EXE" /m "%1"
    DDEメッセージ
    [FileOpen ("%1"),,1]
    アプリケーション
    WinWord
    DDEアプリケーションが実行していないとき
    [FileClose()][FileOpen ("%1"),,1]
    トピック
    system
  6. 今まで開かれたウィンドウ全部 OK ボタン

ラベル: , ,

2007/10/01

customer wish excel documents

お客さんはシステムの内容が分かる資料がほしいんじゃない。何かが書かれたWordやExcelのファイルが欲しいんだ いままでのプロジェクトでちょっと思ったこと。 というのも、javaで実装寄りの資料はJavadocに書きたい。クラス構成やフレームワークなんかはUMLにしたい。でも、Wordで納品しろという希望が非常に多い。(Excelが提示された時はちょっと覚悟が必要だ)それを唯々諾々と受け入れているプロジェクトでは、Javadocを含め、ソースのコメントが非常に少なくてしょーもないことが書かれていることが多い。多分同じことを2度書く気が失せるんだと思う。そもそも、誰が見るためのドキュメントなのか考えていないんだろうな。 結局、JavadocやUMLをWordに変換するツールを使ってお茶を濁すことが多い。多少見栄えが悪くても、どうせ中身を見ていないし。日次で生成しておけば、「ドキュメントの更新状況がいい」とかいって、なぜか受けが良くなる。

2007/06/12

...(-_-)

やってしまった…。
午前試験のスコアは,655 点です。 
午後I試験のスコアは,665 点です。 
午後II試験のスコアは,200 点です。

2007/03/24

[Java]Code Value Type

とあるコード値を受け取るとき、そのフォーマットが正しいかどうかをチェックする必要が出てきて、コードが無駄に増えるし、チェック内容にぶれがある。それに、パフォーマンスが悪くなる。
という相談を受けた。適当に、顧客コードというものを仮定して、形式を考えてみる。
顧客コードの形式
名前桁数意味と形式
法人/個人10,1のどちらか
番号80~99999999までを、ゼロ埋めしたもの
チェックサム1妥当性検査用。0~9のどれか

単純にStringとして使っていた場合の問題点を挙げてみる。
#上で相談してきた内容そのものなんだけど
適当な文字列も渡せるので 桁数、各桁の文字がとりうる値、チェックサム のそれぞれをチェックする必要がある。そうすると、メソッドやコンストラクタは受け取った顧客コードを常にチェックを行う必要がある。妥当性チェックの内容を"数字としてパースできるか?"のように中途半端な上に体系の変更に対応できない形で勝手に実装する人が出てくる。チェックにかかるコストが無駄になる。

んで、対応はというと、顧客コード型 というクラスを作ってしまうこと。そして、そのインスタンスを生成する段階で、文字列の妥当性チェックを行う。内部で使うときは、Stringではなく、顧客コード型で使用する。これで、間違ったものを渡そうとした時点でコンパイルエラーになるし、チェックは外部(画面とか、ファイルとか、DBとか)から文字列として受け取る箇所だけでいい。体系変更があった場合、一箇所を直せばいい。あと、toStringメソッドが文字列表現を返すようにしておくと、出力が楽になるのでオススメ。

そのほかのメリットとしては、法人/個人の区別を知りたい というような内容を、顧客コード型のメソッドに実装できること。この手のユーティリティがstaticメソッドとして大量に作成されているプロジェクトでは、同じユーティリティがいくつも作成されているのを見かけることが多い。

ラベル:

2007/03/18

PASMO & Suica on Mobile

PASMOのサービスが始まって、Suicaでも私鉄に乗れるようになった。

今住んでいる所が東西線とJRがかぶっているあたりなので料金の体系には要注意。高くなるところがあるらしい。
ただ、定期も含めての計算がどうなるのかよく分からない。定期区間外→区間内→区間外と移動して、かつ私鉄とJRの改札がかぶっていて…なんてのはどう計算すればいいんだ?それぞれの区間について、定期区間内/区間外、路線がJR/私鉄、カードがPASMO/Suica、定期が連絡/普通 のパターンがあるけど、それをまとめたサイトが見当たらない。

それにしても、休日なんかの行動範囲はJRでモバイルSuica、通勤は私鉄のみの区間でパスネット という状態になっているので、一つにまとめられるのはうれしい。
それに、通勤を定期にしてしまいたいというのもある。いま定期にしていないのは面倒だからというだけなんだけど。ケータイの画面から買えるならそうしたい。
ただ、私鉄オンリーの定期はSuicaに入らないらしい。休日に使っているJRの区間との連絡定期という形にするかなぁ。ちょうど反対方向に使ってるから問題はないハズ。(同じ方向だと、JRの定期で東西線使ってることになる…のかな?)でも、現状と比べると利便性と料金のトレードオフが難しいな。

あと、気になるのはモバイル対応。対応することになったとして、同じケータイにPASMOとモバイルSuicaが入れられるのかということ。どっかのコンビニで、一つのリーダでお財布ケータイを使うために、客がどの機能(Suica/Edy/iDかな?)を使うか選択させていた気がする。コレでいくと、改札でPASMO/Suicaをいちいち選択することになる。…ありえないよなぁ。どちらを優先させるのか設定するか、一方しかインストールできなくするか。
優先順位を付けるってできるのか?>Sony&DoCoMo

因みに、FeliCaチップの容量という面では大丈夫だと思う。Suicaはチップの容量喰いすぎといわれることが多いけど、あれは領域を論理分割してるせいで一般のアプリから使えなくなってるだけのはず。Suicaが入っている側の領域にはPASMOを入れるだけの容量は残っているはず。中の人じゃないから仮定だけど。

2007/02/23

[Excel]how to remove outerlink

Excelの外部リンクについて。

入力されているデータが小さいのに、ファイルサイズが大きくなることがある。他にも、Excelファイルを開いたときにこのブックには、ほかのデータソースへのリンクが含まれています。というメッセージや、ファイルを指定するプロンプトが表示されることがある。

Excelは外部ファイルへのリンクを使うと、ファイルを開いたときにリンク先の更新を反映しようとする。メッセージが表示されるのは、実際に更新を行っていいか確認するとき。リンク先のファイルが無いと、正しいパスを入力させようとしてファイル選択のプロンプトを表示させる。
ファイルサイズが大きくなるのは、リンク先のファイルを丸ごと取り込んでいたりするからだ。これらを解決するには、外部リンクを全部削除する。大まかには

数式のリンクを削除する
セルをコピー→値の貼り付け を行ったり、xls・xlt・xlkなどをブック内で検索して適宜削除していく。
セル範囲の名前の設定を削除する
Ctrl+F3でセル範囲に付けた名前の一覧が出てくる。このリストのうち、名前の横にシート名が出ていないものは外部ファイルへのリンクになっているか、シートが削除されたためにリンク切れになっている。シート名が出ていない行を選択して、右下にある削除ボタンで削除していく。

名前設定の削除は、VBAを使える人なら、Worksheet.Namesプロパティを使って削除するマクロを組んでおくと便利。(ブック内のリンクを除外して削除するのがちょっと面倒だけど)

ラベル: ,

2007/02/18

[Cygwin]setup.exe losts /etc/profile

cygwinを久しぶりに更新した。 wgetを追加したかっただけなんだけど、しばらく更新をしていなかったのでインストール済みのモジュールは全部更新することに。いつもどおりsetup.exeから更新をかけてしばし待つ。

んで、使おうとしたらbash: wget: command not foundあれ、インストール失敗した?ls /binbash: ls: command not found…は?んなワケないだろう。/bin/ls /binずらずら出てくる。あるやん。wgetもあるやんけ。

バイナリはあるけど、パスが全然通っていないらしい。ちょっと調べてみると/etc/profileがいない。setup.exeが消したらしい。何てことをするんだ。cp /etc/defaults/etc/profile /etc bash: cp: command not found だぁ~っ!悪かったよ!!/bin/cp /etc/defaults/etc/profile /etc

コピーできたのでsource /etc/profileで何とか復活。設定がいくつか消えてしまった。怖いから今度からバックアップ取っておこう…。

ラベル:

[Java]log4j - RollingFileAppender 2

次のバージョン(log4j 1.3alpha-8)を見てみると、Streamベースに置き換わっていた。カウント方法も、出力する直前にバイト数を数えるように変更されてた。 自前でやるとバイト変換のコストが気になっていたけど、次からは気にしなくて済みそうだ。

ラベル: ,

2007/02/04

[Java]log4j - RollingFileAppender counts String.length()

jakarta log4jのRollingFileAppenderはファイルサイズでローリングする と説明されることが多いが、本当は出力した文字数を数えている。
Asciiしか使わないようなログなら問題ないんだけど、日本語を出力していると設定したサイズより大きくなる。メッセージ自体は英語にしていても、外部からの入力パラメータなんかを埋め込んでいるとそうはいかなくなってしまう。
カウントしているのはhelperパッケージにあるCountingQuietCounter#write(String)なので、コレを入れ替えることになる。
まず、CountingQuietCounter#writeメソッドをオーバーライドして、カウントの仕方を変更したQuietCounterを作成する。もとのコードを参考にして、下記の通り修正。
count += string.length();count += string.getBytes().length;
getBytes()は、出力文字コードに手を入れているならそのコードを指定できるようにしておく。

次に、CountingQuietCounterを生成している箇所を修正。これはRollingFileAppender#setQWForFiles(Writer writer)を同じくオーバーライドして、自作のCountingWriterに置き換えよう。
あとは、設定ファイルに指定するAppenderを自作Appenderに直して完了。

因みに、バイト変換するコストが発生するので注意。Log4jはWriterベースで作られているので、OutputStreamベースに作り変えるのはもう少し作業が必要になる。

ラベル: ,

2006/12/24

this blog's layout is broken

暇ができたのでこのブログをIEやFirefoxで表示させてみたら、なかなか面白いことになっている。
IEは、ソースコード表示のwhite-space:preが効いていない。改行無視しまくりの折り返しまくり。各投稿のタイトルにセットしている色指定も効いていない。
Firefoxでは、背景色と枠線がほとんど全滅。
因みに、普段使っているブラウザはOpera。表示確認もOperaでやっているので、このブログも意図したとおり表示されている。

このブログのテンプレートはCSSレイアウトになっている。大体の表示イメージは、Blogger templatesのBeckettと同じ。というか、コレに少し手を入れた状態だ。同じテンプレートを使ったブログはIEやFirefoxでもちゃんと表示されているので、自分で手を入れたところだけまずいんだろう。
どうするかな…

[CSS, HTML]table layout with CSS

毎日考ブログ:Web標準に進路を取れ 第5回「テーブルレイアウトは罪なのか」をみて思い出した。

CSS2のdisplayプロパティには、table形式の表示をする属性値がある。TABLE関連のそれぞれのタグに相当する属性値が用意されている。w3cの説明では、table要素があらかじめ用意されていない言語(XMLとか)でテーブル表示をやるために用意しているんだそうな。

この属性値を使えば、テーブルレイアウトが使い放題だ。やり方はレイアウト用のtableタグとほぼ同等だ。違いはcolspanやrowspanが無いこと。
CSSを使ったときの 大まかなレイアウトがやりにくい という問題も解決する。table, table-row, table-cellの3つが使えていればfloat使っていたら、要素がどこかに飛んでいってしまったみたいな大きな崩れも無いはずだ。

ちょっと気になるのは、CSSでもHTMLのtableタグと同等の構成が欲しいものなのか?
tableタグは結構ネストが深いので、単純なものでも<table><tbody><tr><td>と同じ深さのネストになる。入れ子にしていると結構辛いかも知れない。

table-rowやtable-cellは表示したい要素自身に設定するようにした方が余計なdivが増えない。colspanやrowspanはCSSの指定を工夫しよう、ページのヘッダをtable-header-group, フッタをtable-footer-group, メニューリストをtable-caption指定にすればOK。メニューリストをページの上下左右どこに表示するかはcaption-sideで調整できるはずだ。
#thead, tfootタグをまともにサポートしているブラウザが少ないので、table-header-groupとtable-footer-groupは表示位置がおかしいブラウザが多いかもしれない。

注意。IEはdisplay:tableをサポートしてません :P