■ 8/1
ステンレスパイプの加工の件。何度か失敗したので、先日ステンレス加工屋さんに
お願いした。とりあえず、2つ必要なのだけど、1つだけお願いして、完成した
ようなので、取りに行った。まず、パイプの厚み。私が加工に失敗したものは、
ホームセンターに売っていたもので、0.8mm 厚。しっかり作って欲しいとお願い
したところ 1.2mm 厚のパイプで作ってくれた。パイプの外径は 19mm と同じなの
だけど、重さもあって結構がっしりとした感じに仕上がった。曲げの加工はせずに、
全て溶接で作ってくれて、理由を聞いたところその方が楽なのだとか。取り予定の
バイクに付けてみたけど、少々修正の必要がありそう。図面の引きなおしだなぁ。
■ 8/2
見慣れない User-Agent のアクセスがあった。
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; GTB6; DS_gamingharbor;
desktopsmiley_3_1_....(略)
いつもなら、ふーん、と見流すのだけど、skype のエモーティコンのページへの
アクセスだったので、ちょっと気になった。任天堂 DS にも Skype がのるように
なったのか、と。が、調べてみると、DS には Skype は載らないようである。
User-Agent 詐称なのか、DS でエモーティコンを見ながらなアクセスなのか、
目的が気になる。
■ 8/3
私のページの画像を、直接どこかのページに張っている輩がいて。ま、そんな
ことに目くじらを立てる人間でもないので。お金儲けに使われていたら、少し
考えるけど。で、一応、そのページを確認したら、w3m では表示できない文字
だらけ。文字コードを確認したら、Cyrillic (CP1251) になってるし。この文字
コードのページは、一体何語なのか調べてみたら、キリル文字を使っている言語、
ということなので、いくつかあるみたい。ロシア語とかウクライナ語とか。多分
ロシア語なんだろうけど。中国語だったらなんとなく何が書かれているのか推測
できるけど、キリル文字だったらさっぱりだな。
■ 8/4
何気なく nginx のページを眺めていたら、geoip モジュールなんてのがあって。
IP から国やら場所やらを特定するもののようで、この元のデータは MaxMind の
ものを使っているようである。早速このデータをダウンロードして、中身を見て
みたら、バイナリだった。
$ wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz
どうやら、これを使うための API なんかも用意されていて、C 用のものがあった
ので、ダウンロードして使ってみることにした。
$ wget http://geolite.maxmind.com/download/geoip/api/c/GeoIP-1.4.6.tar.gz
test ディレクトリ以下に、デモのプログラムのソースがあって、これをコンパイル
したり、dat のファイルを置き換えたりして、色々な IP を表示させてみた。
全部とはいかないまでも、そこそこの IP が市レベルまで表示できた。これを
使って、ちょっと遊んでみようかな。
■ 8/5
C 言語の話で。文字列の最後が、ある文字列と一致しているのかを調べたかった。
strncmp は文字列の先頭から比較しているが、それを後ろ側で行いたい感じで。
何箇所かで使うので、関数化したいし。聞いたことがないけど、man strrcmp を
実行してみたら、No manual entry だし。手元にあるいくつかのソースを grep
してみたら、なんと Linux kernel の source で見つかった。手元にあったのは
linux-2.6.29.4 と少し古いものだったけど、2つ実装があった。
linux-2.6.29.4/scripts/basic/fixdep.c ----------
/* test is s ends in sub */
int strrcmp(char *s, char *sub)
{
int slen = strlen(s);
int sublen = strlen(sub);
if (sublen > slen)
return 1;
return memcmp(s + slen - sublen, sub, sublen);
}
linux-2.6.29.4/scripts/mod/modpost.c ----------
/**
* Test if string s ends in string sub
* return 0 if match
**/
static int strrcmp(const char *s, const char *sub)
{
int slen, sublen;
if (!s || !sub)
return 1;
slen = strlen(s);
sublen = strlen(sub);
if ((slen == 0) || (sublen == 0))
return 1;
if (sublen > slen)
return 1;
return memcmp(s + slen - sublen, sub, sublen);
}
後者の方が、チェックが多い。それと、使い方が strcmp とは違い最初の引数と
2番目の引数の順番が無関係ではなくなっている。とりあえず、このコードを
利用することにした。
■ 8/6
モニタを見てたら、最近はえらく安くなって驚いた。2万円で20インチワイド
とか変えてしまうし。24インチワイドぐらいになると、地デジチューナー内蔵
してくれれば助かるのだけど、地デジチューナーが付くと結構値段が高くなって
しまうんだよね。もう少し安ければ、買おうと思うのだけど。
■ 8/7
1つ別のコンテンツを立ち上げようとしているのであるが、どこにコンテンツを
置こうか考え中。このページの配下にいぶら下げても良いのだけど、海外からだと
更新するのが面倒そうだし、いつ止まるかわからないようなサーバだし。どこかの
ブログサービスを借りてみようかな、と調査中。
■ 8/8
Dovecot 1.2.3 がリリースされた。大きなものは、Mailbox 名で制御文字があった
場合、作成できなくなることの修正のようである。修正内容を見る限り、1.2 も
少し落ち着いて来た感じである。
■ 8/9
なんだか、今月に入ってからこの web サーバへのアクセス数が1~2割減った。
大学生が夏休みに入ったせいなのか、お盆休みを早くも取得している人が結構
いるためだろうか。ちょっと、去年のデータを見てみると、特に8月になって
からアクセスが減っている訳でもなく、お盆の週だけ1割ぐらい少ないかな、
という程度。ちょっと理由がわからない。このページにつまらないことを書いて
いるから、という単純な理由かもしれないけど。
■ 8/10
Amazon でお買い物をしていたら、オリンパスの μ-550WP という防水デジカメが
14800円で売っていて。安いなぁと調べてみたら、どうやら海外モデルのようで、
一応日本語の説明書も見つかったので、全くの海外専用ではないみたいだけど。
基本 xD カードだけど、アダプタを使って MicroSD も入るみたいだし、これは、
と思ったが、専用電池を使っての撮影枚数が何枚なのかの記述が見つからない。
よく、CIPA 規格、なんて書いてあるあれ。なんとか海外のページで 140枚という
記述があって、少し少ないなぁと悩む。他の機種も見てたら、いつの間にか、
FinePix の Z33WP も2万円を切った価格になっている。比べてみたけど、どうも
イマイチ決め手が無いと言うか。どちらも手袋で電源を入れるのは絶望的だし、
指でフラッシュを隠しそうだし。もうしばらく、考えてみるかな。
■ 8/11
朝から地震。なんか、揺れている時間が長かったので逃げようか少し悩んで。
収まってから、電気が止まってないのと、この web サーバと、ネットワークが
止まってないのを確認してから、二度寝。午後になって思ったけど、電気の次は
水道が止まってないのを確認すべきなんだろうな、なんて思って。
■ 8/12
仕事先で、Windows XP の PC を使っていて、ちょっとサボっていたら、勝手に
再起動しやがって。定例のセキュリティリリースらしいけど、書きかけのコード
とか、開いていたターミナルとか無くなって嫌な気分。仕事先の借り物 PC なんで
レジストリをゴニョゴニョいじって再起動させないようにするのもアレだし。
朝から気分が悪い。ま、朝からサボるのも問題だけど。
http://www.microsoft.com/japan/technet/security/bulletin/ms09-aug.mspx
■ 8/13
JAF にカルネの申請をしたいと伝えたら、26ページもある、えらい資料を送って
きた。見るからに面倒そう。そもそもカルネをなーんで JAF が扱っているのか
よくわからないし、社団法人なのに、会員だから安くなるとか良くわからないし、
そもそもサービスが民業圧迫してる気がするし。ま、電話の対応はすごく良かった
ので、そこまで殿様商売じゃないのかもしれないけど。
■ 8/14
いつもメールは gmail から送受信している。なので、From: アドレス付け替えを
恒常的に行っているのだが、今日 From: アドレスの追加を行うと、外部の SMTP
サーバが指定できる項目が出てきた。いつのまに対応したんだろう。送信で選べる
ポート番号は 587, 465, 25 の3つ。/etc/services を見ると。
smtp 25/tcp mail
smtp 25/udp mail
smtps 465/tcp # SMTP over SSL (TLS)
submission 587/tcp msa # mail message submission
submission 587/udp msa # mail message submission
のようで。そう言えば、今使っている Yahoo の ADSL では、OP25B(Outbound Port
25 Blocking) が掛かってるのだけど、Inbound だったら大丈夫なのかなぁ。今度
試しにやってみよう。
■ 8/15
もう15年ぐらい使っている安物のテントを買い換えようと、色々調べてみた。
ツーリングに使える大きさと重さで、そんなに高くないもの、で探したけど、
やっぱりダンロップのものにしようかな、と。ダンロップのツーリングテント、
今年モデルチェンジがあったようで、値段が高い。でも、重さが軽くなったので
古いモデルを買うか新しいモデルを買うか、悩むところ。
型番 | 設営サイズmm | 収納サイズmm | 重さ
| R134 | 2000×900×1030 | 340×130×160 | 約2.4
|
---|
R125 | 2100×900×1150 | 210×410×140 | 約1.98
|
---|
R224 | 2100×1200×1100 | 450×200×200 | 約3.5
|
---|
R225 | 2100×1200×1150 | 230×410×150 | 約2.26
|
---|
R324 | 2100×1500×1100 | 490×200×200 | 約3.7
|
---|
R325 | 2100×1500×1150 | 230×430×160 | 約2.47
|
---|
流石に幅900mmだと荷物で身動きできなくなるので、R224 か R225 にしたい。重さを
とって R225 にするか、値段をとって R224 にするか。しばらく考えよう。
■ 8/16
家の Firefox も、更新しろと言われたので、3.5 系の 3.5.2 にしたのだけど、
PDF を開くときの Adobe Acrobat の動作や、Flash の表示なんかが遅くなった。
Adobe Acrobat も Shockwave Flash も、バージョンを確認したら最新なので、
不具合でもなさそうだし。今更 3.0.13 に戻せるものなのかな。
■ 8/17
CVE-2009-2692 な感じの exploit を手元の古い Redhat Linux ES3(kernel 2.4.21)
で試してみた。
socket(PF_APPLETALK, SOCK_DGRAM, 0)
socket(PF_IPX, SOCK_DGRAM, 0)
socket(PF_IRDA, SOCK_DGRAM, 0)
socket(PF_X25, SOCK_DGRAM, 0)
socket(PF_AX25, SOCK_DGRAM, 0)
socket(PF_BLUETOOTH, SOCK_DGRAM, 0)
socket(PF_IUCV, SOCK_STREAM, 0)
socket(PF_INET6, SOCK_SEQPACKET, IPPROTO_SCTP)
socket(PF_PPPOX, SOCK_DGRAM, 0)
socket(PF_PPPOX, SOCK_DGRAM, PX_PROTO_OL2TP)
のうち、PF_IUCV, IPPROTO_SCTP, PX_PROTO_OL2TP が define されてないようで、
エラーが出た。残りの7つも全て。
socket: Address family not supported by protocol
と出て。幸か不幸か問題は起きなかった。なんだか、ちょっとつまらない。
■ 8/18
Dovecot 1.2.4 が出た。ACL の設定が読まれるようになった動作変更以外は、
不具合修正のようで。1.2.3 から10日ほどで 1.2.4 という相変わらずのペース。
もう少しゆっくりとしたペースでも良いと思うのだけど。最新を追っている人は
大変そうである。
■ 8/19
ふと、メールの From にアドレスを2つ指定できるのか、気になったので調べて
みることにした。SMTP 的には RFC2821 を読む限り、mail from は1回のみ、
アドレスも1つのみの指定で、実際に postfix 相手に喋ってみたけど、mail from
を複数回実行するとエラーになった。
220 kamino.example.net ESMTP Postfix
helo localhost
250 kamino.example.net
mail from: <test@example.com>
250 Ok
mail from: <aaa@example.com>
503 Error: nested MAIL command
複数指定の場合、エラーは起きなかったが最初のメールアドレスのみが有効に
なった。
220 kamino.example.net ESMTP Postfix
helo localhost
250 kamino.example.net
mail from: <test@example.com> <aaa@example.com>
250 Ok
rcpt to: <toyota@example.com>
250 Ok
data
354 End data with <CR><LF>.<CR><LF>
Subject: test
test mail
.
250 Ok: queued as 6B11574004
メールヘッダの from では、複数指定が可能、というかメールヘッダなので何でも
アリなのだけど、その場合受け取ったメーラーがどう処理するかという判断に
なる。試しに gmail 宛てにメールを送信してみた。
data
354 End data with <CR><LF>.<CR><LF>
Subject: test
From: <test@example.com> <aaa@example.com>
test mail
.
250 Ok: queued as 2f69d74004
こんな感じで。そうすると、gmail の表示では。
返信先 test@example.com,
aaa@example.com
となるのだが、このメールに返信すると、あて先が自分の @gmail.com アドレスに
なってしまう。多分、これは gmail のバグでしょう。
■ 8/20
Lynx なんかで yahoo.com にアクセスすると。
Supported browsers include:
Internet Explorer 7 optimized by Yahoo!
Firefox 3
Safari 3
Opera 9
Flock
と出る。この最後の Flock が聞いたことがなかったので、調べてみた。Mozilla
Firefox ベースのブラウザらしく。とりあえず、使ってみようとダウンロード
しようとしたら、英語版(US)の最新は 2.5.2 なのに、日本語版は 1.2.6 だし。
気にせず、英語版をダウンロードして使ってみた。2時間ほど使ってみたが、
特に使うメリットは見出せず。そして、User-Agent はまさかの。
Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.13)
Gecko/2009080717 Firefox/3.0.13
と、Flock な感じが一切ないし。使い道がないので、ディスクが足りなくなったら
そっとアンインストールしてしまおう。
■ 8/21
手元のボールペンのインクが出なくなった。見た感じまだインクは残っている
ようなのだけど。それが良くあるボールペンだったら捨ててしまうのだけど、
2色ボールペンで赤は問題なくインクが出て、それも旅行用のストラップ付きの
もの。調べると、10年近く前に買ったのに、Amazon で 346円でまだ売ってる。
値段がちょっとだけ高いので、このインクだけ売っているか、替え芯の型番を
調べてみたら、S-7S という型番みたい。これが、Amazon で 48円。決まった。
この替え芯を買うことにしよう。
■ 8/22
手っ取り早く core を吐いて落ちるプログラムを作りたくて。少し考えて、0 で
除算すれば良いことに気が付いた。
[toyota@mustafar]% cat test.c
int main(){
int i = 1 / 0;
}
[toyota@mustafar]% gcc test.c
test.c: In function `main':
test.c:2: warning: division by zero
[toyota@mustafar]% ./a.out
Floating exception (core dumped)
駄目だけど、良い感じ。
■ 8/23
某所で blog を書き始めたりしているのだけど、やっぱり画像の扱いが厄介と
言うか。デジカメの写真をそのままアップロードすると、リサイズされた画像を
blog に貼ってくれるまでは問題ない。この画像をクリックした先の画像は、元の
ファイル名のまま使われてしまうし、そのままの画像なので exif データが残って
いるのが気に食わない。もうね、リサイズされた 320×240 ぐらいの画像だけで
良いのだけど。なので、仕方なくリサイズして exif データを削除した画像を
アップロードしているのだけど。毎回面倒臭いし。
■ 8/24
えらい長い文字列があって、バイト数を制限して strstr を行いたい。strchr
だったら、代わりに memchr を使って、例えば 1000バイトだったら。
p = memchr(a, b, strlen(a) < 1000 ? strlen(a) : 1000);
とできるのだけど。これを strstr で行いたい。手元のソース庫を探してみると、
かなり昔に自分で作ったソースがあった。
char *memstr(s1, s1_len, s2)
const char *s1;
const int s1_len;
const char *s2;
{
const char *p1 = s1;
const char *p2 = s2;
int nl = 0;
while (*p1 && *p2 && (nl <= s1_len - (p2 == s2 ? strlen(s2): 0))) {
if (*p1 == *p2) {
p1++;
nl++;
p2++;
} else {
nl -= p2 - s2 - 1;
p1 -= p2 - s2 - 1;
p2 = s2;
}
}
return (*p2 ? NULL : (char *)(p1 - (p2 - s2)));
}
なんか、memstr というより、strnstr のような感じだし。何かの流用のような
感じ。そのときプログラムで必要だったからこうなったのだけど。memstr っぽく
するには。
void *memstr(s1, s2, n, s2_len)
const void *s1;
const void *s2;
const size_t n;
const size_t s2_len;
{
const unsigned char *p1 = (const unsigned char *)s1;
const unsigned char *p2 = (const unsigned char *)s2;
size_t nl = 0;
size_t m = 0;
while (nl <= n) {
if (*p1 == *p2) {
p1++;
nl++;
p2++;
m++;
if(m == s2_len) {
return((void *)((char *)p1 - ((char *)p2 - (char *)s2)));
}
} else {
nl -= (char *)p2 - (char *)s2 - 1;
p1 -= (char *)p2 - (char *)s2 - 1;
p2 = s2;
m = 0;
}
}
return (NULL);
}
かなぁ。もっとすっきりとできそうだけど。で、今日欲しかったのは、どちらかと
言うと strnstr のようなものだから、前者の方を改造して使った。
■ 8/25
昨日の続きで。strnstr 関数というのは、FreeBSD に存在するらしく。あと、
その流れで MacOS にもあるみたい。FreeBSD の実装とか、世の中の人の実装を
見たら、strncmp をうまく使っている。昨日の memstr も memcmp を使うともう
少しすっきりしそう。書き換えようと思ったが、速度は変わらない気がするので
そのままでいくことにした、
■ 8/26
一昨日の memstr というか、str じゃなくても良いのだけど、その関数、s2_len
が 0 のときに while の判定がうまくいってないのと、m の効率化。
void *memstr(s1, s2, n, s2_len)
const void *s1;
const void *s2;
const size_t n;
const size_t s2_len;
{
const unsigned char *p1 = (const unsigned char *)s1;
const unsigned char *p2 = (const unsigned char *)s2;
size_t nl = 0;
size_t m = s2_len;
while (nl <= n && m) {
if (*p1 == *p2) {
p1++;
nl++;
p2++;
m--;
} else {
nl -= (char *)p2 - (char *)s2 - 1;
p1 -= (char *)p2 - (char *)s2 - 1;
p2 = s2;
m = s2_len;
}
}
return (m ? NULL : (void *)((char *)p1 - ((char *)p2 - (char *)s2)));
}
よく見たら、m を追い出せそうなので、削除。
void *memstr(s1, s2, n, s2_len)
const void *s1;
const void *s2;
const size_t n;
const size_t s2_len;
{
const unsigned char *p1 = (const unsigned char *)s1;
const unsigned char *p2 = (const unsigned char *)s2;
size_t nl = 0;
while (nl <= n && ((char *)p2 - (char *)s2 != s2_len)) {
if (*p1 == *p2) {
p1++;
nl++;
p2++;
} else {
nl -= (char *)p2 - (char *)s2 - 1;
p1 -= (char *)p2 - (char *)s2 - 1;
p2 = s2;
}
}
return (((char *)p2 - (char *)s2 != s2_len) ? NULL
: (void *)((char *)p1 - ((char *)p2 - (char *)s2)));
}
nl も追い出せそうなのと、p1 と p2 のインクリメントをちょっと変えて。
void *memstr(s1, s2, n, s2_len)
const void *s1;
const void *s2;
size_t n;
const size_t s2_len;
{
const unsigned char *p1 = (const unsigned char *)s1;
const unsigned char *p2 = (const unsigned char *)s2;
while (n-- && (char *)p2 - (char *)s2 != s2_len) {
if (*p1++ != *p2++) {
p1 -= (char *)p2 - (char *)s2 - 1;
n += (char *)p2 - (char *)s2 - 1;
p2 = s2;
}
}
return ((char *)p2 - (char *)s2 == s2_len ? (void *)((char *)p1 - s2_len)
: NULL);
}
だいぶすっきりした。n - s2_len 文字数を超えたときの不要な処理を削りたい。
void *memstr(s1, s2, n, s2_len)
const void *s1;
const void *s2;
size_t n;
const size_t s2_len;
{
const unsigned char *p1 = (const unsigned char *)s1;
const unsigned char *p2 = (const unsigned char *)s2;
while ( n-- >= ((p2 == s2) ? s2_len : 1) &&
(char *)p2 - (char *)s2 != s2_len) {
if (*p1++ != *p2++) {
p1 -= (char *)p2 - (char *)s2 - 1;
n += (char *)p2 - (char *)s2 - 1;
p2 = s2;
}
}
return ((char *)p2 - (char *)s2 == s2_len ? (void *)((char *)p1 - s2_len)
: NULL);
}
return の部分をなんとかしたい気もする。完璧に動くかわからないけど、これで
完成としよう。
■ 8/27
折角なんで、strnstr も追い込んでみた。
char *strnstr(s1, s2, s1_len)
const char *s1;
const char *s2;
int s1_len;
{
const char *p1 = s1;
const char *p2 = s2;
while (*p1 && *p2 && s1_len-- >= ((p2 == s2) ? strlen(s2) : 1)) {
if (*p1++ != *p2++) {
s1_len += p2 - s2 - 1;
p1 -= p2 - s2 - 1;
p2 = s2;
}
}
return (*p2 ? NULL : (char *)(p1 - (p2 - s2)));
}
s1 は使ってないので、消せそうである。while の判定もすっきりさせる。
char *strnstr(s1, s2, s1_len)
const char *s1;
const char *s2;
int s1_len;
{
const char *p2 = s2;
while (*s1 && *p2 && s1_len-- >= strlen(p2)) {
if (*s1++ != *p2++) {
s1_len += p2 - s2 - 1;
s1 -= p2 - s2 - 1;
p2 = s2;
}
}
return (*p2 ? NULL : (char *)(s1 - (p2 - s2)));
}
s1_len の演算が遅い気がして、p1 を復活させて、速度向上を図る。while で
毎回 strlen 関数を呼んでいて遅そうなので改善したいが、変数を増やさずに
解決できなさそう。そこは s2 文字数分の無駄を承知で、妥協する。
char *strnstr(s1, s2, s1_len)
const char *s1;
const char *s2;
const int s1_len;
{
const char *p1 = s1;
const char *p2 = s2;
while (*p1 && *p2 && (p1 - s1) < s1_len) {
if (*p1++ != *p2++) {
p1 -= p2 - s2 - 1;
p2 = s2;
}
}
return (*p2 ? NULL : (char *)(p1 - (p2 - s2)));
}
外部関数を使わないと、これが限度かもしれない。あとは変数を用意して、最初に
s2 の文字数を while で計算して利用することができるけど、速度にどのぐらい
影響が出るのかわからないし。
■ 8/28
microSD を10枚ぐらい収納できるケースが欲しくて。探してみたけど、どの製品も
かなりの厚みがある。microSD は厚さが 1mm なので、厚さ 2mm ぐらいのカード型
製品があっても良いと思うのだけど、そんなものは見つからない。SD カードへの
変換アダプタのような感じで、裏側を 0.5mm のステンレス、表側をプラスチックで
作って 2mm ぐらいに抑えた製品というのが理想。最悪 3mm ぐらいでも妥協できる
ので、どこかに売ってないかなぁ。
■ 8/29
Apache のログを見てたら、見たことない Firefox の User-Agent があった。
Mozilla/5.0 (Windows; U; Windows NT 6.0; ja; rv:1.9.1.2) Gecko/20090729
Firefox/3.5.2 (.NET CLR 3.5.30729)
AutoPager/0.5.2.2 (http://www.teesoft.info/)
な感じ。この AutoPager が何なのか気になったので、www.teesoft.info なる
ところに行ってみた。どうやら、「次のページ」という先を読んで、1ページに
表示してしまう Add-on みたい。例えば、google の検索結果が10件づつ出ていた
場合、そのページに、次の10件も表示してしまおう的なもの。ちょっと便利そう
なので、インストールして使ってみた。便利なような、便利じゃないような。
あまり1ページが長くなっても、見辛い気がして。とりあえず、しばらく使って
みることにしよう。
■ 8/30
選挙に行ってきた。選挙票を持って、近所の公民館とやらに行き、受付の人に
選挙票を出した。これまでだったら、紙で印刷された名簿をパラパラめくって
割り印みたいな判子を押していたのに、選挙票に印字されているバーコードを
機械で使って読み取って受付終わり。やればできるじゃん、なんて妙に関心して
しまった。ま、世の中をみれば、当たり前のことなんだけど。
■ 8/31
今持っている PJ を、3G のプリモバイルにして、世界対応ケータイ対応の端末に
してしまえば、今度行く海外旅行で使えるのではないか、と調べてみた。世の中
そんなに甘くないようで、端末は使えても、プリモバイルの U-SIM では海外で
使うことができないようである。海外で使えるように契約をした U-SIM を買うか
レンタルしなきゃ駄目みたい。何か、良い方法は無いもんかな。
|