2012/02/03(Friday)
■[mysql] mysqlbinlog なんてやめて show binlog events を使おう
夜中に眠いのに master のディスク容量がいっぱいで、でも binlog 用のスペースがない slave たちはまだ明日起きてから対応するんでも間に合うとき。よくありますよね。
- ほっといてエラーになるよりかはその場しのげる方がマシ
- 多少サービス止めるなり i/o 負荷が高くてもいいから何とかしたい
- 根本的には master 切り替えるしかない
- だが、そこまで元気がない
そんなとき、いままで mysqlbinlog と格闘しながら pos のコピペに注意しつつやってたんですが、 show binlog events という便利コマンドがあることを今更知ったメモです。
基本的な方針
master から絶対に読み込みがないデータを消して、延命することにします。しかし innodb だったりするので単に delete しても容量は減りません。
そこで、えいやとアプリを止めて (or table lock して) 以下のようにすることにします。
CREATE TABLE hoge_history_new LIKE hoge_history; INSERT INTO hoge_history_new SELECT * FROM hoge_history WHERE date >= '2012-01-01'; RENAME TABLE hoge_history TO hoge_history_bak, hoge_history_new TO hoge_history; DROP TABLE hoge_histroy_bak;
ほんとに無停止でやりたいなら trigger で hoge_history_new に double write するとか。しかし trigger 仕込むのでミスするくらいなら、停止した上で停止時間短い方針考えるほうがいい時もあるかかも。
slave は drop してほしくない
これでなんとか master は 10 分停止くらいで drop したぶんの容量が稼げた。しかし slave はまだ容量に多少余裕あるので、できたらこんな drop して欲しくない。と言うよりデータ消しちゃだめじゃん!!
なので、データ消さない slave を 1 つ狙いを定め、上の sql を流す直前に master で show master status を実行し確認した pos まで replication を進めて止めておきます。
slave> STOP SLAVE; slave> START SLAVE UNTIL master_log_file='hoge-bin.000123', master_log_pos=456789;
drop table だけ skip しよう
さて、次は drop table の直前まで replication を進めた上で stop slave し、 sql_slave_skip_counter=1 して drop だけ飛ばしてやりたい。
こんなとき、 pos をどこまで進めればいいかを今までは mysqlbinlog コマンドで調べていました。しかし以下の理由で、絶対もっといい方法あんだろ、と思っていた。
- pos が境界の意味でどっちに含まれているのかよくわからん
- skip_counter は event 単位で、 pos との対応が明確でない
- だいたい出力多すぎで夜中にやると絶対ミスる
なんでドキュメントぷらぷら眺めてたら show binlog events という最強に見やすいコマンドがあったんですね!
つかいかた
まずは slave が何処まで replication しているか調べます。この例では pos=456789 の位置まで実行済み、ということになります。
slave> SHOW SLAVE STATUS\G
...
Master_Log_File: hoge-bin.000123
...
Exec_Master_Log_Pos: 456789
次に pos=456789 からのイベント内容を master で調べます。
master> SHOW BINLOG EVENTS IN 'hoge-bin.000123' FROM 456789 LIMIT 2; +-----------------+--------+------------+-----------+-------------+----------------------------------------+ | Log_name | Pos | Event_type | Server_id | End_log_pos | Info | +-----------------+--------+------------+-----------+-------------+----------------------------------------+ | hoge-bin.000123 | 456789 | Query | 100 | 456901 | use `aho`; drop table hoge_history_bak | | hoge-bin.000123 | 456901 | Intvar | 100 | 457005 | INSERT_ID=91187051 | +-----------------+--------+------------+-----------+-------------+----------------------------------------+ 2 rows in set (0.00 sec)
お、なんとも運がいいことにちょうど次のイベントが drop になってるじゃないですか! ということで slave で 1 イベントをスキップすれば ok。
slave> SET GLOBAL sql_slave_skip_counter=1 slave> START SLAVE;
これで、めでたく master だけデータが欠損した状態に出来ました。後はちゃんと寝てからこの slave に孫を作ってそのまま master に昇格させればよい。
pos と event
改めて考えてみれば、 pos は境界の場所であって、そこに対応する event があるわけじゃないんだよね。
1234567890123456789012345678901234567890 | event1 | event2 | event3 | ^pos=1 ^pos=10 ^pos=25 ^pos=40
たとえば pos=10 のときに 10 に対応する event はなく、前に event1 があって後ろに event2 がある、と。
■[solaris] おや?
https://twitter.com/#!/nslope/status/164802160524136448
なんかひっそりと Solaris11 のソースが公開されてるのかな?? あんまり「キタ━(゚∀゚)━!」と盛り上がってないけど...。
とりあえず du.c 探したけど見つかんない。 2 つめの zip に coreutils や ./osnet/usr/src/lib/libcmd/common/find.c とかは見つかったが。
[追記] まあ
https://twitter.com/#!/syoyo/status/165142247371845632
前からあったらしいですorz
■ [solaris][zfs][memo] comression と recordsize
Solaris 11 11/11 (5.11 11.0) での話。
中身は MySQL の MYD と MYI と frm です。やっぱ InnoDB とか忘れて、基本は bs=128k で生きてたほうが良いような気がする。
send/receive と rsync を状況に合わせて使い分ける場合、 recordsize を設定してたのを忘れてメンテナンス後に変わっちゃう危険があるので、ちまちま分けたくはない。なので公約数的な値を取りたいわけですが、 16k にするかどうかくらいは意識して分けておいたほうがいいかな。
% for i in 2 3 4; do time rsync -av --progress test1/* test$i >/dev/null; done rsync -av --progress test1/* test$i 83.51s user 57.11s system 103% cpu 2:16.36 total rsync -av --progress test1/* test$i 87.93s user 58.11s system 100% cpu 2:25.67 total rsync -av --progress test1/* test$i 79.15s user 49.77s system 99% cpu 2:09.13 total
% zfs list -o space,recordsize,compression,compressratio -r tank NAME AVAIL USED USEDSNAP USEDDS USEDREFRESERV USEDCHILD RECSIZE COMPRESS RATIO tank 20.8T 26.5G 0 123K 0 26.5G 128K off 1.28x tank/test1 20.8T 8.09G 0 8.09G 0 0 128K off 1.00x tank/test2 20.8T 4.45G 0 4.45G 0 0 128K on 1.82x tank/test3 20.8T 8.77G 0 8.77G 0 0 16K off 1.00x tank/test4 20.8T 5.15G 0 5.15G 0 0 16K on 1.76x tank/test5 20.8T 8.05G 0 8.05G 0 0 1M off 1.00x [追記] tank/test6 20.8T 4.37G 0 4.37G 0 0 1M on 1.84x [追記]
cf. http://www.c0t0d0s0.org/archives/5865-SSD,-ZFS,-L2ARC-and-mysql.html
du
余談ですが、 /usr/bin/du のオプション無しって何を表示してるんだろ?
それ以外については、ファイルサイズの合計ではなく、そのディレクトリ以下に含まれるファイルたちの disk usage を出してくれてるみたい。
% /usr/bin/du test* 16957022 test1 9331071 test2 18395314 test3 10803173 test4
% /usr/bin/du -h test* 8.1G test1 4.4G test2 8.8G test3 5.2G test4
% /usr/gnu/bin/du test* 8478511 test1 4665536 test2 9197657 test3 5401587 test4
% /usr/gnu/bin/du -h test* 8.1G test1 4.5G test2 8.8G test3 5.2G test4
2011/12/11(Sunday)
■[solaris] Solaris11 リリースおめでとう!!
だいぶ間があいちゃいましたが、とうとう Solaris11 がリリースされました。
私が Solaris の世界に足を踏み入れたきっかけは、ふだん扱うデータが多くて困ってたときに「いいファイルシステムないかなー」と 2ch を漁っていたところ、http://logsoku.com/thread/pc8.2ch.net/unix/1146631270/ というスレに出会ったことでした。
しかし ZFS はじめすごい便利な機能が盛りだくさんな OS なのに、 ksh とかキモくていやでたまりませんでした。しばらくして OpenSolaris に /usr/gnu/bin なディレクトリができたあたりから「やべえこれしかなくね」なんて思ってましたけど、業務で使うにはサポート契約などの関係でなかなか難しかった。
そんなガマン大会ももう終わりです。存分に新しい ZFS と暮らしやすいユーザランドで暮らすことができるようになりました。が、残念なこともあります。タダで業務に使える便利な OS ではなくなってしまったかもしれません。
さまざまな改善・変更点とか
Debian も Sarge が出るときに大変だったような気がしますが、次期バージョンのリリースまで時間がかかると、改善と共に変更も多く、移行も大変です。 ``the First Cloud OS'' なんて言ってるくらいで、ほんとに変わりました。
営業的な目玉や細かいところは Oracle の方がちゃんと営業活動をしてくださるので、 Transitioning From Oracle Solaris 10 to Oracle Solaris 11 から気になるところをピックアップしつつ、とりあえず触ってみたいけど live CD だと裏でいろいろやってくれすぎてよくわからん、という人向けに「私はこうやってインストールした」のメモを書いておきます。
とりあえずつかってみようの例
Debian や Solaris10 ならなんとなくインストールできる人が、デスクトップなどではなくサーバ向けのセットアップをしたいときの例です。
インストール
まずは http://oracle.com/solaris11 からインストーラをダウンロードします。いくつか種類がありますが text install のイメージを使います。
インストーラで設定することはそんなに多くないですが、ポイントとしては以下。
- 起動ディスク(?)は UFS ではなく ZFS になる
- ミラー設定はあとでやります
- ネットワークは ``Automatic'' ではなく ``None'' を選び、あとで手動で設定
- タイムゾーンをちゃんと選びつつ、そのタイムゾーンでの時刻を設定
- RTC は UTC になるようです。
- インストール終了後 reboot すると一瞬インストーラがまた起動したように見えますが、おとなしく待ちます。
最初のログイン
インストール時に作ったアカウントでログインし、 su または sudo で作業をします。
- root は role です
ネットワークまわりの設定
/etc にあるたくさんのファイルは、かなりのものが自動生成で SMF 管理に移行しました。
- ホスト名
- /etc/nodename は消えました
- これはすでにインストーラが設定してくれます
root@oscar:~# svccfg -s svc:/system/identity:node describe config
config application
Properties that control the configuration of the node
config/nodename astring oscar
Network name of the computer
config/loopback astring oscar
Hostname mapped to loopback
root@oscar:~# svccfg -s svc:/system/identity:node listcust
config/loopback astring admin oscar
general/enabled boolean admin true
- ホスト名を変える場合
- 以下で "# setprop config/nodename = astring: oscar" の # (コメント) を外し、astring: 以降を編集します
root@oscar:~# svccfg -s svc:/system/identity:node editprop
- 編集を反映するには、以下のようなかんじで試せばどれか当たるはず
root@oscar:~# svccfg -s svc:/system/identity:node validate root@oscar:~# svccfg -s svc:/system/identity:node refresh root@oscar:~# svcadm refresh svc:/system/identity:node root@oscar:~# svcadm restart svc:/system/identity:node
- NIC の設定
- NIC 一覧
- e1000g ドライバで認識された device e1000g0 が link net0 と認識されている
- vlan, link aggregation, vnic なども dladm の範疇です
root@oscar:~# dladm show-phys LINK MEDIA STATE SPEED DUPLEX DEVICE net0 Ethernet up 1000 full e1000g0 root@oscar:~# dladm show-ether LINK PTYPE STATE AUTO SPEED-DUPLEX PAUSE net0 current up yes 1G-f bi root@oscar:~# dladm show-link LINK CLASS MTU STATE OVER net0 phys 1500 up --
- IP 設定
- create-ip が ifconfig plumb 相当
- -ip なんだか -if なんだかは紛らわしい
root@oscar:~# ipadm show-if IFNAME CLASS STATE ACTIVE OVER lo0 loopback ok yes -- root@oscar:~# ipadm create-ip net0 root@oscar:~# ipadm show-if IFNAME CLASS STATE ACTIVE OVER lo0 loopback ok yes -- net0 ip down yes --
- IP address 設定
- net0 という link に IPv4 のアドレス 192.168.1.10/255.255.255.0 を設定します
root@oscar:~# ipadm show-addr ADDROBJ TYPE STATE ADDR lo0/v4 static ok 127.0.0.1/8 lo0/v6 static ok ::1/128 root@oscar:~# ipadm create-addr -T static -a 192.168.1.100/24 net0/v4 root@oscar:~# ipadm show-addr ADDROBJ TYPE STATE ADDR lo0/v4 static ok 127.0.0.1/8 net0/v4 static ok 192.168.1.100/24 lo0/v6 static ok ::1/128
- default route 設定
- ここは今まで通りのようです
root@oscar:~# route -p add default 192.168.1.1
- NSS 設定
- /etc/inet/hosts は存在しますが /etc/hostname.* がないので、あまり書くことはないかも。
- /etc/resolv.conf, /etc/nsswitch.conf も存在しますが自動生成されるので手で編集してはいけません
- resolv.conf に server 192.168.1.1 を設定する相当
- ほぼドキュメント通りに丁寧に書くと以下のようなかんじ。
- 最初は config/nameserver というエントリが無いので、ホスト名みたく editprop とはちょっと変わります
root@oscar:~# svccfg -s svc:/network/dns/client svc:/network/dns/client> setprop config/nameserver = net_address: 127.0.0.1 svc:/network/dns/client> select dns/client:default svc:/network/dns/client:default> refresh svc:/network/dns/client:default> validate svc:/network/dns/client:default> quit
- nsswitch.conf に dns を設定する相当
root@oscar:~# svccfg -s svc:/system/name-service/switch svc:/system/name-service/switch> setprop config/host = astring: "files dns mdns" svc:/system/name-service/switch> select system/name-service/switch:default svc:/system/name-service/switch:default> refresh svc:/system/name-service/switch:default> validate svc:/system/name-service/switch:default> quit
- ついでに mdns も有効にしちゃう
- ちなみに "svc:/network/" は部分一致で省略できます
root@oscar:~# svcadm enable svc:/network/dns/multicast
- なお nwam という言葉をご存じの方は、もうこの名前は使わなくなったと考えて下さい
- svcs -a | grep nwam で出てくるやつはダミーです
ブートディスクをミラー設定
- ブートディスクは EFI ラベルじゃなくて SMI ラベルが必要です
- 簡単にいえば同じフォーマットされてないとダメってこと
- ミラー追加
- うまくいったかは zpool status -lv とかで見てみてください
root@oscar:~# format -L vtoc c4t1d0
Searching for disks...done
selecting c4t1d0
[disk formatted]
c4t1d0 is labeled with VTOC successfully.
root@oscar:~# prtvtoc /dev/rdsk/c4t0d0s2 | fmthard -s - /dev/rdsk/c4t1d0s2
fmthard: Partition 2 specifies the full disk and is not equal
full size of disk. The full disk capacity is 33511590 sectors.
fmthard: Partition 2 specified as 33511590 sectors starting at 0
does not fit. The full disk contains 33511590 sectors.
fmthard: New volume table of contents now in place.
root@oscar:~# zpool attach -f rpool c4t0d0s0 c4t1d0s0
Make sure to wait until resilver is done before rebooting.
再起動あたり
kernel$ /platform/i86pc/kernel/amd64/unix -B $ZFS-BOOTFS,console=force-text
- デフォルトで fast reboot というのが有効になっています
で、 shutdown なのか init なのか halt なのか。みたかんじ poweroff と reboot でよさそうですね。
エラー検知
Solaris10 時代からそうですが FMA (Fault Manager?) という仕組みがあって、たいていの OS 的エラーはこれで検知できます。
- つかうコマンド
- fmadm faulty, fmdump, fmdump -e
- とりあえず打ってみてなんか出たら残念でした
- 検知したエラーを通知
- 以下コマンドで何か見つかったときに root 宛てにメールが来ます
- problem-diagnosed 以外にも updated, repaired, resolved とかがあります
root@oscar:~# svccfg setnotify problem-diagnosed mailto:active
- メールの例
- kernel panic で自動的に reboot してた場合に来たメールです
Date: Sat, 10 Dec 2011 18:47:50 +0900 (JST) From: No Access User <noaccess@localhost.localdomain> X-FMEV-HOSTNAME: oscar X-FMEV-CLASS: list.suspect X-FMEV-UUID: a7085088-582a-4aef-bf74-9d0d5cf3818d X-FMEV-CODE: SUNOS-8000-KL X-FMEV-SEVERITY: Major Subject: Fault Management Event: oscar:SUNOS-8000-KL To: root@localhost.localdomain SUNW-MSG-ID: SUNOS-8000-KL, TYPE: Defect, VER: 1, SEVERITY: Major EVENT-TIME: Sat Dec 10 18:47:50 JST 2011 PLATFORM: i86pc, CSN: -, HOSTNAME: oscar SOURCE: software-diagnosis, REV: 0.1 EVENT-ID: a7085088-582a-4aef-bf74-9d0d5cf3818d DESC: The system has rebooted after a kernel panic. AUTO-RESPONSE: The failed system image was dumped to the dump device. If savecore is enabled (see dumpadm(1M)) a copy of the dump will be written to the savecore directory /var/crash. IMPACT: There may be some performance impact while the panic is copied to the savecore directory. Disk space usage by panics can be substantial. REC-ACTION: Use 'fmadm faulty' to provide a more detailed view of this event. If savecore is not enabled then please take steps to preserve the crash image. Use 'fmdump -Vp -u a7085088-582a-4aef-bf74-9d0d5cf3818d' to view more panic detail. Please refer to the associated reference document at http://sun.com/msg/SUNOS-8000-KL for the latest service procedures and policies regarding this diagnosis.
ichii386@oscar% fmdump -Vp -u a7085088-582a-4aef-bf74-9d0d5cf3818d
TIME UUID SUNW-MSG-ID
Dec 10 2011 18:47:50.083117000 a7085088-582a-4aef-bf74-9d0d5cf3818d SUNOS-8000-KL
TIME CLASS ENA
Dec 10 18:47:46.4495 ireport.os.sunos.panic.dump_available 0x0000000000000000
Dec 10 18:47:37.7837 ireport.os.sunos.panic.dump_pending_on_device 0x0000000000000000
nvlist version: 0
version = 0x0
class = list.suspect
uuid = a7085088-582a-4aef-bf74-9d0d5cf3818d
code = SUNOS-8000-KL
...
panicstr = BAD TRAP: type=e (#pf Page fault) rp=ffffff001ef229c0 addr=5a occurred in module "si3124" due to a NULL pointer dereference
...
パッケージ
- たとえば mysql 入れたかったら以下のようにします。
- 175 は Solaris11 11/11 の snv 番号
root@oscar:~# pkg search 'pkg.fmri:*/mysql*' | grep 175 pkg.fmri set solaris/database/mysql-51 pkg:/database/mysql-51@5.1.37-0.175.0.0.0.2.537 pkg.fmri set solaris/database/mysql-51/library pkg:/database/mysql-51/library@5.1.37-0.175.0.0.0.2.537 pkg.fmri set solaris/database/mysql-51/tests pkg:/database/mysql-51/tests@5.1.37-0.175.0.0.0.2.537 pkg.fmri set solaris/database/mysql-common pkg:/database/mysql-common@0.5.11-0.175.0.0.0.2.537 pkg.fmri set solaris/database/mysql-51 pkg:/database/mysql-51@5.1.37-0.175.0.0.0.2.537 pkg.fmri set solaris/database/mysql-51/library pkg:/database/mysql-51/library@5.1.37-0.175.0.0.0.2.537 pkg.fmri set solaris/database/mysql-51/tests pkg:/database/mysql-51/tests@5.1.37-0.175.0.0.0.2.537 pkg.fmri set solaris/database/mysql-common pkg:/database/mysql-common@0.5.11-0.175.0.0.0.2.537 root@oscar:~# pkg install mysql-51 ...
まとめ
前提知識の置き方が、Solaris 知らない人、10 なら知ってる人、OpenSolaris や Solaris 11 Express 知ってる人とかなりバリエーションあるので、公式の移行ガイドにしてもキレイにまとめるのはかなり大変そうです。
最初の設定でよくつかうのは dladm, ipadm, svcadm, svccfg, svcs, pkg ってとこでしょうか。どれも Linux にはないコマンドですが、 MacOS の launchctl 同様に慣れてくればきっと便利に感じると思います。これを機に Solaris 派になってみてはいかが??
2011/12/08(Thursday)
■[git][book] 『Git によるバージョン管理』
献本で頂いたわけでもないんですが、かなりヒットな本。
仕事でしかたなく git をちょいちょい使い出したんですけど、 id:sotarok が git-daily 使えば全く理解しなくてもうまくいくように整備してくれてて、なかなか理解が進まなくいくつか本を眺めたりしてました。
この本は最初の例が dotfiles の git 管理とか、もうど真ん中じゃないですか。ちゃんと「こういうときに失敗して、なぜ失敗して、どう頭を切り替えなきゃいけないのか」が説明されているのもありがたいです。思えば git の由来からして、 Debian の人たちが書く本がわかりやすいのは必然なのかもしれません。
ということで、よく使う数パターンが問題なく回るぶんには使えるけど、細かいとこはよくわかってないんだよな、というひとにオススメです。
わかったこと
でね、たとえば svn に比べ git って何がいいのか。
ネットに繋がらなくてもコミットできるとかほかにいくらでも代替案があるし、マージが賢いとかは言い尽くされているので、私はこの本から知ったものとして
- hunk 単位の管理ができる
があるかな、と思ってます。副作用として空ディレクトリが作れないことはあるものの、ああ、たしかにこういうスタイルって大事だな、と思った。
■[iphone][docomo][disneymobile] ケータイの話
10月に Percona Live 2011 でロンドンに行ったときに、運良く現地のアップルストアで SIM unlocked な iPhone 4S を買うことが出来ました。もともと SoftBank の iPhone 3GS を持っていて 4S は買う気でいたので、まだ日本では予約しても手に入らなかった当時、「いいオモチャ」が手に入ったわけです。
正直なところ、 SIM フリーなんて一部の携帯マニアのもので、壊れても無保証な Jail Break とかして遊んでるんでしょ、くらいなイメージを持っていましたが、これがまた超絶便利すぎる。当初ドコモショップに行って mini UIM (MicroSIM) だけを追加で買い飽きたら解約する気でいましたが、たんにオモチャからメインの携帯に昇格することになりました。
いろいろ整理した結果、
- SoftBank 回線の iPhone 3GS, iPad2 3G, フォトフレーム, DM009SH を解約
- DoCoMo 回線の N-01B を UK 版 iPhone 4S に機種変更
- 新規で追加したドコモ回線を NMP 新規で DM011SH に移動
- 検証用の意図で KDDI iPhone 4S
- もとからある EMOBILE D41HW
と、手数料もりだくさんだけどすっきりさせました。
unlocked iPhone with DoCoMo
without contract もしくは unlocked, いわゆる SIM フリーな iPhone をわざわざ日本で使うメリットは何か。私には以下がありました。
ドコモ回線が選べる
国内旅行が好きな人にはとても大事です。以前種子島に遊びに行ったとき、現地レンタカーには当然カーナビなんぞ付いていないので、 iPhone で google map がすべての情報源でした。しかし SoftBank はほんと繋がらない。というより一部に入る集落がある、くらいでした。
なお、回線速度については、 ssh で軽く作業するぶんには全然問題ない速度が出ています。しかし EMOBILE の 42Mbps がちゃんと繋がる時と比べれば、やっぱり遅いです。
Tethering (Personal HotSpot) が使える
これにより iPad2 3G の回線契約を解約できました。もともと USB タイプの e-mobile も持っていて PocketWiFi にする案もあったんですけれど、すくなくとも WiFi が必要ならば Tethering で十分。ガッツリ作業するなら電源の意味で USB タイプは外せないので、 e-mobile が圏外のときの救済用と考えています。
ちなみに iPhone 4S での Tethering は以下の 3 通りがあります。
- WiFi AP
- iPhone の消費電力は多めだけど MacBook 側の電池は食わない。複数接続可能。
- USB 直結
- 速度はきっと一番ロスが少ない。しかし常に充電中になっちゃうので MacBook の電池が不安。
- セットアップ等は一切不要で、挿すだけでネットに繋がりました。
- Bluetoosh
- 他の 2 と比べてあまりメリットが感じられない
FaceTime が使える?
このへんは使わないのでよくわかんない。ほかにもそういうのありそうです (Skype とか?)。あとマナーモードでシャッター音が消えるとか、どうでもいい系。
海外ローミング
まだ試してないのでウソかもしれませんけど、ドコモショップの方によると「ここで保証はできないが、海外パケホーダイも含めたぶん使えるはず」だそうです。 b-mobile だと海外ローミングできないそうだし、 KDDI の回線もよくわからんので、これはかなりのポイント。
もっとも、せっかくの SIM unlocked なので、ある程度の期間滞在するならちゃんと現地でプリペイド SIM 買ったほうがいいですね :p
MMS (@docomo.ne.jp のメールアドレス) は使えない
これはデメリットです。 SMS が他キャリアに送れるようになったので、プライベートのレベルではそんなに困らなそうな予感。しかしアラート受信先でもあったので、ちょっと困っています。
そもそもドコモの MMS は転送設定ができず、また @ezweb.ne.jp のように IMAP を開放しているわけでもありません。まして @i.softbank.jp のように push 手段があるアドレスを用意してくれるわけでもない。 (まあ当然ですけどね...)
DoCoMo の Android 端末では i-mode に変わって sp-mode というのができ、APN spmode.net だか IMEI だかによるチェックが通れば、専用アプリで i-mode のメールが見れるようになっているようです。インターネットからは月々 210 円の imode.net を契約すると、 IE じゃないとうまく動かない web アプリから見えるようになります。
imode.net は、クライアント側はかなりクソですがサーバ側の CGI は比較的素直な作りのようで、 imoten のように頑張って必要な FORM を POST するプログラムなり iOS/Android アプリの実装がありました。詳しくは 仙石さんの記事 が参考になると思います。
アラートは別のところに送って見ることにして、いったんは遅延ありで imoten で吸出し、どっかに転送しようと思っています。
DisneyMobile DM011SH
ディズニーモバイルのスマートフォン 2 世代目です。ソフトバンクで言うところの 101SH になります。
DoCoMo iPhone をメインにすることを決心し、もう1回線どうしようかなと悩み、
- やっぱりお財布ケータイは欲しい
- ドコモが圏外のときの救済がしたい
- できたら Android (これを機に feature phone は卒業)
- でも横幅でかいのはイヤ
- というかディズニーがいいんだけど
という理由により、これを買うことにしました。
ふつうのスマフォではあるんですが、一見するとガラケーで、スライドするとハードウェアキーが付いています。正直あまり使いやすくなくて微妙ですが...。
おしらせ
ということで、私の連絡先は以下になりました。
- メイン: docomo iphone
- +81-90-1432-7637 (SMS/FaceTime/iMessage ready)
- サブ: disneymobile
- 090-3081-7637, ichii386sx@disney.ne.jp
ちなみに、たまに ichii386sx@docomo.ne.jp に英文スパムが来くる以外に、知ってる人がこれを見て電話してくるような場面すら、ほとんどないんですよね。まあそういう実験です。
むかしばなし
むかし東京デジタルホンが j-phone になってインターネットからメール送れるようになり、大学のメールを perl スクリプトで分割送信していた時代が懐かしい。電話番号も 010 から始まる 10 ケタだったなぁ。そこからドッチーモとかよくわかんない端末たくさん買ってました。








