2012-10-05 [長年日記]
on{X}でAndroidをカスタマイズ
スマフォの機能で、痒いところにちょっと手が届かないことがあるじゃないですか。Androidでいうと「設定」に項目があればいいんだけどなー、というかそのためだけにアプリ入れんのー?くらいの。そういうときに、Taskerを使ってもいいけど、もったいないよね500円、あとUIが案外使いにくいよねーということで、Microsoftが趣味で出しているプロダクトon{X}でいろいろなことを自動化していこうということです。
on{X}では、Android端末にアプリケーションをインストールして、ルールは別途PCなどからhttp://onx.msにアクセスし、Javascriptで記述する必要があります。まあJavascriptが分からなくても、サンプルコード読めばだいたいイメージはつかめると思います。
ということで、早速問題設定と、サンプルコード。
俺は携帯は常にマナーモードにしていて、着信やメールがあった場合はバイブだけ動作する設定で使ってるんですども、それでも夜寝てる時とかにメール来たらブーブーいうてうるさいじゃないですか。かといって、就寝時にモードを変えるのも面倒なので、これを自動化します。しかしスマフォにしてみればユーザが就寝しているかどうかはわかりません。
そこで、就寝時はクレードルに載せる、つまり充電中であることを利用し、充電の開始、停止をトリガーにすることにします。
device.battery.on("startedCharging",function(signal){ device.audio.ringerMode = "silent"; }); device.battery.on("stoppedCharging",function(signal){ device.audio.ringerMode = "vibrate"; });
説明するまでもなく、そのまんまです。あとはこれを"send to phone"すればOK。USBケーブルの抜き差しでモードが変わるのが確認できるはずです。イベントの発生した時間などの条件によって細かく挙動を制御することも可能です。ということで、現状Taskerにくらべるとtriggerやactionは少ないような気がしますが、気楽に端末の挙動をカスタマイズできます。
2012-10-14 [長年日記]
引っ越した
(ToDo:それっぽい写真を入れる)
ということで、あまり理由はありませんが、引越しました。築ウン十年からの新築なのであまりの設備の違いに戸惑っております。とりあえず給湯まわりが快適すぎです。もう水とお湯の蛇口をちょっとずつひねって温度調節する必要はないんだ!
まだダンボールの山が積まれているので、まずはこれを片付けないといけないわけですが、がんばって快適な空間にしていきたいと思います。
以下、発生したトラブル。まあ色々あるよね。
- 引越し当日に施工してもらったエアコンの室内機と室外機が違うことが判明。工事が延期に。
- 本体代金も多めに取られていたことが判明。
- 引越し業者に運んでもらったシーリングのカバーが破損。
- 同じ物を取り寄せ中らしいのだが、6年以上前に購入したものなのでまだあるか不明。
2012-10-17 [長年日記]
ウォシュレットをつけた
せっかく新築だし、温水洗浄便座を取り付けようということで、電気量販店に買いに行ったのだけど、目星をつけていたモデルは生産終了間際で欠品、上位モデルはスペック、予算共にオーバー気味、次モデルの発表も特になしということで、ネットで購入して自分で取り付けることにした。購入したのはTOTOのTCF426。
用意した工具はプラスとマイナスのドライバー、レンチ代わりのプライヤー、メジャー。
取り付け自体は取説通りにやっていけばまあ間違いようもないよねーという感じ。取説と違ったのは給水管とタンクの接続が金属ではなく、柔軟性のあるパイプだったので交換しなくてすんだくらい。動作確認含めて一時間ちょっとで完了した。
あとはリモコンの取り付けなのだけど、これは石膏ボードに下穴を開けないといけないということで以下続く。
2012-10-18 [長年日記]
haltで電源を落とす
ubuntuをアップデートしたどこかのタイミングでhaltで電源が落ちなくなっていたので色々調べた。状況としては、
- halt→システムは停止するけど、電源が落ちない
- reboot→再起動する
- shutdown (-r|-h)→どちらも正しく動作する
といった感じ。manpage読んでみると、電源まで落とすにはpoweroffもしくはhalt -pを使うのが正しいらしい。前までは電源まで落ちてたような気がするんだけど…。ちなみにshutdown -hで電源まで落とすかどうかは、/etc/default/haltで決まる。
$ cat /etc/default/halt # Default behaviour of shutdown -h / halt. Set to "halt" or "poweroff". HALT=poweroff
これだと電源まで落ちる。
で、たしかにsudo poweroffとすると電源まで落ちることは確認できたけど、いつものクセでsudo haltしちゃって自分で電源切る羽目になるし、システムだけ落とす用途が特にないのでhaltで電源が落ちるようにする。
.bashrcに以下を追加。
alias halt='halt -p'
反映して試したけどダメ。sudoにはaliasが効かないというのを思い出して検索。更に以下を追加。
alias sudo='sudo '
これでsudo haltで電源まで落ちるようになった。
2012-10-24 [長年日記]
ubuntuのインストールではまった
引っ越してからこっち、とりあえずのネットワーク環境は整えたのだけど、ちょっと試したいことがあってローカルでUbuntu Serverをインストールしようと思ったら、トラブル続きだったので作業メモを残しておく。
今回インストールするのはUbuntu12.10で、ターゲットはShuttle XS35V2。CD-ROMドライブがないのでSDカードでUSBブートしてネットワークインストールが簡単そうだなあということで、MinimalCDのイメージをダウンロードし、OSXでSDカードをブータブルにした。BIOSの設定をかえ、SDカードからブートまでは特に問題なかったんだけど、NICを認識しない。
shellでlspciして見てみると、デバイスは認識されているけど、インタフェースは存在しない。どうも、MinimalCDのrootにはXS35に搭載されているJMicronのGbEのドライバ(jme.ko)が入っていない模様。あと、buffaloのGbEのハブとリンクしている様子もないので検索したところ、チップ側の問題で特定のハブとリンクできないらしい。これは別のハブに接続したところリンクアップするようになった。
ともかくNICを認識しないと話しにならないので、ネットワークインストールは一旦あきらめ、SDカードでUSBブートしてメディアからインストールを試みることに。
Ubuntu Serverをダウンロードし、同様にブータブルメディアを作成。ブートしてキーボードの選択まではOK。その後、CD-ROMドライブの検出に失敗する。つないでないんだから当たり前、というかブートしたメディアにデータはあるんだからそこからインストールしてよ。と思いつつ検索してみたら、みんなハマっている模様。英語を読んでみたら、shellでUSBメモリをマウントしなおしてゴニョゴニョすればいいらしいというのは分かったのだけど、そもそもSDカードなので/dev/sdxでは認識されてないし、やっぱりドライバ入ってないのでマウントできないしでこちらも手詰まりになってしまった。
あとは、SDカードじゃなくてUSBメモリからブートするか、MinimalCDにドライバが入っていそうなNICを見つけてくるか、素直にDVD-ROMドライブなりを接続してインストールするかくらいなんだけど、LogitechのUSB-ETHERをみつけたのでこれを試してみる。続く。
2012-10-25 [長年日記]
Ubuntuをインストール
ということで続き。
Logitecの3PortUSBハブ付きイーサネットアダプタ、型番がLAN-TX/U2HB3というのが落ちていたのでこれでインストールを試みる。
結局使えなかったというのも嫌なので、インストールする前に、本当に使えんのかというのを確認してみた。まずは、Ubuntu Desktopが動作している環境でUSBに挿してみると、勝手に認識してNetworkManagerで設定できるようになった。このときどういうふうに認識しているかを確認する。
$dmesg | grep usb (中略) [ 1553.368102] usb 1-4.4.4: >new high-speed USB device number 4 using ehci_hcd [ 1553.489235] usb 1-4.4.4: >New USB device found, idVendor=0b95, idProduct=772a [ 1553.489241] usb 1-4.4.4: >New USB device strings: Mfr=1, Product=2, SerialNumber=3 [ 1553.489245] usb 1-4.4.4: >Product: AX88x72A [ 1553.489249] usb 1-4.4.4: >Manufacturer: ASIX Elec. Corp. [ 1553.489252] usb 1-4.4.4: >SerialNumber: 22xxxx [ 1554.025251] asix 1-4.4.4:1.0: >eth1: register 'asix' at usb-0000:00:1d.7-4.4.4, ASIX AX88772 USB 2.0 Ethernet, 00:01:8e:xx:xx:xx [ 1554.025889] usbcore: registered new interface driver asix
ということで、ASIXのAX88x72Aというチップが使われていて、asix.koで動いていることが判明。VID,PIDはそれぞれ、0x0b95,0x772a。
次に、MinimalCDにasixドライバが含まれているかを確認。インストールしたいバージョンをダウンロードし、適当な場所にマウントする。
#mkdir /mnt/iso #mount -o loop /path/to/mini.iso /mnt/iso
マウントした中身のinitrd.gzがインストール環境のルートなのでこれを適当な場所にコピーして展開。
$mkdir ~/initrd $cp /mnt/iso/initrd.gz ~/initrd $cd ~/initrd $gunzip -c | cpio -i
この中にasix.koが含まれているかを検索。
$find . -name asix.ko ./lib/modules/3.5.0-17-generic/kernel/drivers/net/usb/asix.ko
modinfoで確認。
$modinfo ./lib/modules/3.5.0-17-generic/kernel/drivers/net/usb/asix.ko license: GPL description: ASIX AX8817X based USB 2.0 Ethernet Devices version: 22-Dec-2011 author: David Hollis srcversion: 0889AC645D9EA92D3DE4C5B (中略) alias: usb:v0B95p772Ad*dc*dsc*dp*ic*isc*ip*
ということで、IDも大丈夫そう。
で、LAN-TX/U2HB3を実機に挿してインストーラ立ち上げたらあっさりネットワークインタフェースを検出してフェーズが進み、特に問題なくインストールは完了。ただ、インストールに使用したインタフェースがeth0に割り当てられるので、これをOnBoardのNICに割り当てなおしたい。まずは、OnBoardのNICを認識しているかを確認。
$ifconfig -a
で出てくる、p33p1というのがそれっぽい。ということで、イーサネットケーブルを接続して、動かしてみる。
#ifconfig p33p1 up #dhclient p33p1 $ifconfig p33p1 p33p1 Link encap:Ethernet HWaddr xx:xx:xx:xx:xx:xx inet addr:192.168.1.xx Bcast:192.168.1.255 Mask:255.255.255.0
ということで大丈夫そう。 起動時のネットワークインターフェースの認識を変更するには/etc/udev/rules.d/70-persistent-net.rulesを編集する。
#vi SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:01:8e:xx:xx:xx", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"
こんな感じで各インタフェースのエントリがあるので、MACアドレスを書き換える。必要であれば/etc/network/interfacesも書き換える。このあと再起動で、OnBoardのNICをeth0で認識してDHCPでアドレス取得まで確認できたのでとりあえずのインストール作業は完了した。
2012-10-26 [長年日記]
Dishonored
Xbox360版のDishororedが買えるのはAmazonだけ(ジャンプ風に)。ということで、発売日には届いていたのだけど、やっとプレイしはじめた。
完全一人称視点のステルスゲーで、複数の敵を相手にするとあっという間に殺されてしまうバランス。遠距離武器はあくまでも補助的な役割でそれほど強くなく、特殊能力を駆使して進めていくのがいいっぽい。現状は暗視、瞬間移動と移動速度を取得して、なるべく殺さず、でもやっちゃったらしょうがないや、取れるアイテムは取る、でもなんか遠くにあるのは今度でいいやくらいの心持ちで適当にプレイしている。Chapter4でそろそろ終盤かなーと思ったらChapter5で急展開で、まだ中盤かなーという感じ。
普通に魔法が出てくる世界なので、マルチエンディングで最後に時間をさかのぼって運命を変えるのだ!みたいな流れかと想像しながら、ベストを尽くさずに世界を改変する余地を残しながらプレイしている。
2012-10-29 [長年日記]
穴を開ける
ウォシュレットのリモコンを取付けようと思ったら、取説の「まず下穴を6mmで開けます」というので挫折していたのでしたの続き。
マンションの内壁はたいてい石膏ボードらしく、そのままネジ止めはできないということで、ウォシュレットの付属品として石膏ボード用のアンカーと木ねじが三本ずつ封入されていた。下地がない場合は下穴を開けてアンカーを打ち込み、その上にネジ止め、下地がある場合はそのままネジ止めするらしい。ということで、下地センサーとドリルビットが一本だけ付属していた電動ドライバーを購入した。
下地センサーで下地のある場所を探し、三点留めのうち真ん中を下地に止めることにして、まずは両脇に6mmの穴を開けアンカーをハンマーで打ち込み。これは問題なくできた。 問題は真ん中の穴で、木ねじをそのままねじ込んだらどうにも入っていかないので、両脇の二本だけで仮止めしておいた。
強度的には問題無さそうだったのだけど、今後下地にネジ止めしたくなることもあるんじゃないかなーと思って調べてみたら、最近のマンションの下地は軽量鉄骨で組まれていて、ネジ止めしたい場合は下穴を開けたうえでタッピングビスでネジ止めする必要がある、ということがわかったので、金属、木材兼用の六角軸のドリルビットを購入して再チャレンジ。
ネジ止めをしていた時にも感じたのだけど、どうも電動ドライバーのトルクが弱く*1、石膏ボードを貫通し、軽量鉄骨に到達したあたりで進まなくなるので、微妙にテンションをかけつつゆっくり回したらちょっとだけ入っていった感触があったので、ドリルを抜いてそのままネジ止め。これは上手くいった。一回できたら後は同じということで、掛け時計用にネジを打っといた。
本来は薄い板だとしてももう少し出力があるドリルなりドライバーで作業するべきなんだろうなーというところ。
*1 手で回すよりトルクがない