7月 122013
 

手元に iPhone5 の iOS と MEDIAS LTE N-04D の Android4.0 があるのですが、ここに新たに Windows Phone OS が加わりました。

三台並べるとこんな感じ。

IMG_3313_smphoirir_1

僕は iOS はその名前が付く前、日本で iPhone3G が発売される前の iPod Touch 一世代の頃から利用していて、 Android は 2.3 -> 4.0 と使って、今回いよいよ Windows Phone OS (もっと短い名前ないのかな? 以下 WPOS8 と記述)も手元に来た状態なのであります。

今回は iOS・Android・Windows Phone OS の差についてちょっと書いてみたいと思います。

そもそも、 iOS は随分早い段階から手を出しました。 Android は成熟してから手を出しましたが、今回の WPOS8 はまだ日本国内では発売されていないのでどちらかかというと iOS の頃に雰囲気が近いでしょうかね。アプリをダウンロードしても広告が付いているのが少ないってのは良い傾向です。 iOS アプリも初期の頃は広告が付いているのは無かった。そー考えると今の WPOS8 は出たばかり。という感じがします。

僕が持っている WPOS8 が動作する匡体(というかスマートフォン)は Nokia Lumia 620 なのですが、 MicroSD が入ります。MicroSD をセットして OS に戻って「さてと。」と来たのですが、一番驚いたのが「ファイルマネージャねーよっ!!」ってことでした。 Windows OS はエクスプローラーでファイルを操作するのですが WPOS8 は iOS と一緒でファイルやデイレクトリを意識させない OS なんですね。美しい;-)。

「設定」のメニューでは唯一「音楽・動画を DS もしくは本体にに保存するか?」があるだけです。すごい潔い;-)。

ただ、OS 自体のデキも iOS 聡明期みたいな感じがして、欲しい機能がなかったり、こーいう設定がしたいんだけど・・。とか思うのが出来なかったりであんまり痒いところに手が届かない。まぁ、熟成されていけば機能が追いついてくることでしょう;-)。

WPOS8 は IPv6 に対応しています。その点も iOS と一緒ですね。 Android4.0 は IPv6 が動作しないし・・。僕の自宅では Wi-Fi 環境でも IPv6 Ready にしているので Wi-Fi に接続する OS が IPv6 に対応しているとサクっと利用できる状態です。 WPOS8 は Windows のネットワークスタックをそのまま利用しているのであればバリバリ IPv6 Ready なネットワーク機器ですね;-)。

メールアプリについてもちょっと書きます。
Windows8 の Windows UI 側のメールアプリって、オレオレ証明書を利用した SSL な imapd を使っているサイトにアクセスしようとすると「証明書インストールしろーっ!!」とか言われてアカウント登録できないんだけど、 Windows Phone8 のメールアプリはそんなことなくて「証明書がいんちき臭いけど OK?」とか言われるだけでちゃんとアカウント登録が行えて SSL-imap なサーバにアクセスできるようになります。この辺りは Windows8 よりも良い感じですね。

アカウントは複数作れるんだけどアカウント毎に “別アプリ” って認識になります。まぁ、動作さえすればそれはそれで良いのでそれはそれって感じですが、メールアカウントがたくさんあるとメールアプリがたくさんあるように見えます;-)。

Nokia Lumia 620 のことちょっと書きます。
例えば SIM カードを入れるトレイとか MicroSD カードを入れるスロットは随分怪しい作りです。その昔 HP の WindowsCE 機である Jornada 720 とかは PCMCIA TypeII を入れると下の方にズズズと出っ張るような作り(この辺り、知っている人はうんと少ないと思う;-)になっていたんだけど Lumia 620 はそれを思い出させてくれます;-)。

2,3 日使ってみて悪くはないと思いました。
少なくとも、僕的には Windows Phone8 な OS はアリだと思います。今は Nokia と HTC しか作ってないんだっけかな? なので Nokia の端末は完成度が高いと思います。ハードウェアベンダと OS ベンダが歩み寄って作り上げたような端末って感じです。
Nokia 謹製のアプリは(日本向けとしては)イマイチなのが多いけど・・f(^^;;。

そーなると僕的には Android が一番扱いにくい OS かなー。 WPOS8 のプリインストールアプリはサクっと削除できるものがあるんだけど Android のはそーは行かないものが多すぎるしね。

と、いうことで今回が第一回目。今後継続してツラツラと書いて行きたいと思います;-)

7月 092013
 

さてさて。全体的に KDE ライクで Qt ベースな Twitter クライアントである Choqok を FreeBSD で何人くらい利用しているのかわからないのですが、タイトルの通り Twitter API 1.1 に対応した Choqok の ports を作成してみました。

以下の URL に置きましたので使ってみたい方は利用してみてください。

http://icmpv6.org/Prog/FreeBSD_ports/ports-choqok-20130709.tgz

ちょっと説明させて頂くと、現在 FreeBSD ports の www/choqok はバージョンが 1.3 です。でもって、本家のダウンロード先である http://choqok.gnufolks.org/download/ でも 1.3 をリリースしています。しかし、このバージョンは Twitter API 1.0 にしか対応していなくて最近では Twitter にログインできなくなってしまっていたんですね。

そしたら debian とか ubuntu 方面では 1.4-2 というバージョンをリリースしていて、 Twitter API 1.1 に対応している。と、いうのでそれらを利用して ports を作ってしまいました。と、いうことです。

上記 URL からダウンロードしたファイルは以下の手順で展開、インストールしてください。

# cd /usr/ports/www
# mv choqok choqok.ORG
# tar xvzfp ~/ports-choqok-20130709.tgz
# cd choqok
# mv choqok-1.4.tar.bz2 /usr/ports/distfiles/
# make && make install
#

 
基本的に ports のほうは Makefile のバージョンと distinfo を変えただけです。同梱のソースのほうに手を加えています。

もとになるソースコードは以下の URL からダウンロードしています。

http://tech.chandrahasa.com/2013/06/19/choqok-patch-for-twitter-api-1-1/
https://launchpad.net/~pfoo/+archive/choqok/+packages

choqok_1.4-2.orig.tar.gz というソースコードに choqok_1.4-2-1git0.diff.gz のパッチを適用したあと、このソースコードには po ファイルがなかったので 1.3 から po/ ディレクトリを持ってきて choqok-1.4.tar.bz2 を生成しています。

ports の distinfo は以下のようになっています。

SHA256 (choqok-1.4.tar.bz2) = 101bd27bf75ffa8c2454efab2d86dcbae737e410cad01f6fe3496d22fb15f448
SIZE (choqok-1.4.tar.bz2) = 9782427

 
ports の Makefile でいろいろやるのが面倒だったのでソースの tar 玉のほうで吸収してしまうという、ちょっとインチキなことをしていますが、一応動くので作りました。まぁ、当然ノラ ports ですけど。

どうしても Choqok が使いたいーっ!! っていう方のみ、本家が Twitter API 1.1 に対応してくれるまでの間、ご利用ください;-)。

うーむ。せっかく po ファイルを用意したのに今回利用したソースは参照しないようだ。と、いうことで po ファイルをソースコードに混ぜたのは無駄な作業でした。メニューは英語のままとなります・・。しくしく。

7月 072013
 

今回 MovableType-3.3.3(以降 MT と記述) から WordPress-3.5.2(以降 WP と記述) に乗り換えたのですが、その顛末をちょと書いてみます。合わせて WordPress のテーマの日本語化の情報も書いてみます。
まず、今回 MT から WP に置き換えたドメインは以下の通り。後ろのカッコ内は WP で利用したテーマです。

http://icmpv6.org/blog/ (Atahualpa)
http://motsuyaki.org/ (Gray and Square)
http://running-dog.net/ (Suffusion)

FreeBSD の場合 WP は ports になっているのでインストールが簡単です。バージョンアップ時は ports から行うか WP の機能で行うかは自分の判断で。ただ ports からインストールした場合は /usr/local/www/wordpress/ にインストールされるのでサーバルートを違うところにしている場合には ports は最初の一回だけで良いかもですね。

以下に MT から WP に移行したときのはまり道をちょっと書いてみます。

 
1. MT からデータをエクスポート
MT からのエクスポート時にヘッダ情報を付加するために lib/MT/ImportExport.pm を編集する。ってのは色々なブログで書かれているのでここでは割愛します。

ただ、WP 側で「パーマリンク設定」をするのであればそのデータを取得しやすいように、自分の好みに改修したほうが良いかもしれません。

僕の場合は WP でのエントリ表示のためにカスタム構造で以下のようにしました。

/%year%/%monthnum%/post_%post_id%.html

 
http://URL/yyyy/mm/post_ID.html

ID というのは MT から取得できるのですが、そもそも MT が URL に勝手に post_ID.html って付けている場合が多くて、たまに hoge_hoge.html って URL で作成しているんですね。 WP 側では「パーマリンク設定」で MT が生成した URL の /yyyy/mm/post_ID.html の形式にしたので /yyyy/mm/hoge_hoge.html は全て mod_rewrite でぶっ飛ばす。ようにします。

で、私の場合は ID: ヘッダは PERMALINK を持って来ました。あとでスクリプトで不要な URL の文字列と “post_” と “\.html” を削除して ID: としました。

 
2. MT からエクスポートしたデータの編集
せっかく全記事の内容がテキストファイルになっているので一括して色々変更します。テキストで行なったのは以下の通り。

1). ID: を URL から
上にも書きましたが ID を PERMALINK から持ってきて変更します。
hoge_hoge.html の場合は post_ID.html にするのですが、MT からエクスポートした中身の最後の ID から順番に振りなおしてあげます。

使い捨てスクリプトで美しくないんだけど変換時のスクリプトはこんな感じ。

#!/usr/bin/perl
my $f = shift;
my $c = 234;
open(IN,"<$f");
while(<IN>) {
    if (/^ID:/) {
        my @tmp = split("/",$_);
        $tmp[5] =~ s/\.html//;
        if ($tmp[5] =~ /post_/) {
            $tmp[5] =~ s/post_//;
        } else {
            print "ID: $c\n";
            $c++;
            next;
        }
        if ($tmp[5]  =~ /^[0-9]*$/) {
            print "ID: $tmp[5]";
        } else {
            print "ID: $c\n";
            $c++;
        }
        next;
    }
    print;
}
close(IN);

 
$c には MT のエクスポート時の最後の post_ID.html で使われていた数値に +1 した値を書きます。 ID が一意になれば順番はどうでも良いのでこれで行けます;-)。hohe_hoge.html でも新規に WP では新規に ID を割り当てるのでその ID を利用して post_ID.html 形式にしました。

2). <br /> タグの追加
実際に WP にデータを突っ込んでみると改行が自分の思い通りにならないことが多々あるのでテキストファイルのうちにスクリプトで一括追加しました。
二行改行したい場合には <br />& nbsp;; とすると良いみたいです。

3). その他
自分で気に入らない部分をテキストファイルの内がガンガン変更してしまいましょう。あ。 そーいう環境がある人には。ですが。

4). この段階で RewriteRule が解るのであれば生成してしまう
まぁ、以前の URL を引き継ぎたい。という場合が多々あります。全エントリのテキストファイルがあるので .htaccess に書く RewriteRule もスクリプトで出力したほうが楽でしょうなぁ。
PERMALINK: と新規に生成した ID: から RewriteRule を生成すると良いです。

 
3. WP へエクスポート
“Movable Type and TypePad Importer” というプラグインを利用する。というのはあちこちに書かれているので詳細はここでは割愛します。

一点だけ書くと、 MT からエクスポートして編集したファイルをアップロードして MySQL に入れた場合、 ID をせっかく 1 からにしても 上記プラグインは WP 側の MySQL の 1 を勝手に利用してしまって ID が 2 からになってしまいます。つまりは RewriteRule をせっかく書いても一個ずれてしまうことになるんですね。あたたた。

なので、ウェブブラウザからアップロードするのではなく、ちゃんと wp-content/mt-export.txt に設置してからアップロードするほうが良いでしょうなぁ。ちなみに MySQL 内のポストテーブルとコメントテーブルを初期化するだけで何回でもアップロードできます。

MySQL の SQL 文は以下の通り。これをしたあとにインポートするとデータが無事に入ると思います。

mysql> delete from wp_posts;
mysql> delete from wp_comments;
mysql> alter table wp_posts auto_increment=1;
mysql> alter table wp_comments auto_increment=1;

 
何回か試行錯誤して試していると WP の中で ID がどうしてテキストファイルの ID とずれるのか解るようになるかと思います;-)。

 
4. .htaccess の RewriteRule
hoge_hoge.html を post_ID.html に mod_rewrite でぶっ飛ばす設定をツラツラと書いていきます。これについてもウェブ上に色々あるので詳しくは書かないですが、一点だけ。マッチしない場合は先頭の “/” を取ってみてください。ということでしょうか。

以下はサンプルです。

RewriteCond /2008/02/2_4.html !-f
RewriteRule 2008/02/2_4.html  /2008/02/post_847.html [L,R]

 
RewriteCond はパターンが “/” で始まっているのですが RewriteRule のほうは先頭の “/” を取ります。
どうしてもリダイレクトしてくれない場合、最後の手段として “/” を取って試してみてください。あと。右側の飛ばし先は http://domain.name を付けてみるのも良いかもしれないです。

そして、本文の記事の他にカテゴリの RewriteRule も書いて準備完了。
ブログには 1,000 エントリもあって RewriteRule は 300 行書かねばならん。なんてのはもはや手でやってられないですよね。なので MT からエクスポートしたデータを参考にしてスクリプトで RewriteRule を出力する必要があるんですね。その場合に利用するのが PERMALINK: から生成する ID: なんですね。

あとは SNS 用プラグインのインストールだとかカテゴリをソートするプラグインだとかをインストールして自分好みのものにして行きます。

 

MT からのデータをインポートしたあとに表示の確認をするかと思いますが気をつける点としては、僕のあ場合、コマンド系、表示系、設定系で table タグと pre 、 code タグを使っているのですが、それらの表示がおかしい場合はだいたいがテーマのスタイルシートでタグの宣言が書かれていることが多いのでそれを削除したりして、自分の思う通りに表示してくれるようにします。

 

さてさて。せっかくなので今回色々かいた WP のテーマの日本語ファイルを公開しましょうかね;-)。一応、日本語でブログ本文のほうは表示できると思います。wp-admin 側の日本語化はまだ出来ていませんし、多分しないのではないかなぁ。と思います。それでも良ければダウンロードしてみてください。
ちなみにどれも 2013/07/01 時点の最新バージョンです。

Atahualpa: http://icmpv6.org/Prog/ja.po/atahualpa-20130701-ja_JP.po
Suffusion: http://icmpv6.org/Prog/ja.po/suffusion-20130701-ja_JP.po
Gray and Square: http://icmpv6.org/Prog/ja.po/gray-and-square-20130701-ja_JP.po
Techozoic Fluid: http://icmpv6.org/Prog/ja.po/techozoic-fluid-20130701-ja_JP.po

僕は WP の翻訳だけでなく、フリーソフトウェア系アプリを色々翻訳してきているのでアレですが、 LANG は基本的に ja_JP です。WP の場合には wp-config.php の WPLANG に設定してあるファイル名にしてください。多分 default は ja.po になると思うんですけども。

あと、場所とかそれぞれのテーマによって格納場所が変わってきますし、msgfmt コマンドで po ファイルから mo ファイルに変換してあげる必要があります。

 # msgfmt -o ja.mo ja_JP.po

 
今回はこれくらいにしておきましょうかねぇ。僕が体験した MT から WP への移行です。一番難儀したのは MT からエクスポートしたファイルの ID が WP にインポートしたらずれてしまう件かな。ここを回避できたら随分と作業は捗るのではないかと思われます。

Gray and Square なテーマはカスタマイズオプションが少ないので実際に手で CSS を変更してしまいます。例えば、 default ではビビットな色しかないのでもっと地味な色にしたい場合には gray-and-square/css/color/ の下に色に対応した CSS ファイルがあるので aqua.css などを自分好みの色に編集すると、設定メニューで Aqua を選択していても色が変えられます;-)。

 

何を今更感が十分に感じられる今回のエントリですが、今後移行していく人の参考になればと思います;-)。

7月 042013
 

いやはや。ブログの外面を変更してみました。

とわ言いつつ実は、MovableType から WordPress に変更したので大移植なんですけども。(この文書使い回し;-)

僕は三つのブログを持っていて、全て MT-3.3.3 を利用していたのですが、今回 WordPress に乗り換えました。テーマも三つのテーマを使って、それを日本語化したりしてずいぶんとナンギしましたf(^^;;。

今回は投稿のテスト。と、いうことで。おいおい MT -> WP の移行についてや、 WP のテーマの日本語化ファイル (po ファイル)などを公開して行きたいと思います。

 
一番大変だったのが RewriteRule かもしれませんが、多分全部のエントリは古いのから新しい URI に転送できていると思います。

何か変な動作とかあったらコメント頂ければと思います。

今後とも宜しくお願いします。あ。ネタがあれば。なお話ですが・・f(^^;;。

6月 022013
 

一個前のエントリに「iPhone5 と Android4.0 の GPS 事情。」と、いうのを書きましたが、多少アップデートがあったので『そのに』を書いてみたいと思います。

と、いうのも、前回のエントリにおいて Android もしくは MEDIAS LTE N-04D は GPS の捕捉が遅い。と、書いていたのですが、それはどうやら僕のやり方がまずかったようです。どのように悪かったのか? というとそれは「LTE をオフにしていたため。」の一言になります。

そもそも、docomo のスマートフォンというか MEDIAS LTE N-04D は LTE をオンにしている(default でオン状態でオフにすることはできない)とバッテリーがむちゃくちゃなくなっていきます。自宅は LTE の電波があまり届かないのでなおさらなのですが、充電していてもバッテリーが減っていく状態となっています。

そのため、以前のエントリでも書きましたが僕は LTE on/off アプリを利用しています。 GMS/3G のみで運用すると通信速度は遅いですが、バッテリの持ちが良いので LTE をオフにしていたのですが GPS の補足については、それがどうやら悪かったようですね。

Android もしくは MEDIAS LTE N-04D は A-GPS を利用していますが、 LTE を利用したときのほうが GPS の捕捉の精度が高いということが解りました。

今回登場する Android の GPS のアプリは二つ。地図ロイド山旅ロガーです。

どちらも無料なアプリで広告が無いので非常に嬉しいアプリです。 300yen 程度ならお金払っても良いかなぁ。とか思えますが google にカード番号は預けたくないのでアンドロイドマーケットでは有料アプリを購入したことは無いです。 Apple みたいにカードが出ると良いのですけどね;-)。

地図ロイドアプリと山旅ロガーアプリの関係は、地図ロイドアプリは単体で地図を表示し、山旅ロガーアプリはログを取得するのみです。地図ロイドアプリで山旅ロガーアプリで収集したログを表示することが可能になっています。

で、 LTE をオフにして GPS を利用しようとすると全く GPS を何時間経っても捕捉できない、もしくは半径 50m くらいでずれている状態なのですが、 LTE をオンにして利用すると、あぁれー。電車に乗っているときにもちゃんと線路の通りにトレースしてくれるではありませんかっ!! すごいですねぇ。

Screenshot_Android_iPhone_GPS2_1.jpg

このキャプチャは山旅ロガーアプリをバックグラウンド起動していて、それとは別に地図ロイドアプリで経過を表示し、通ったところに線を引いたところです。他にも線は引きませんが google マップアプリでもずいぶんと的確に現在地の補足ができました。

と、いうことで、 LTE を利用する A-GPS 対応なスマートフォンは LTE を有効にして GPS なアプリを利用したほうが良い。と、いうことになりそうです。 LTE をオフにした 3G 回線のみで GPS は利用するモノではないですなぁ。

やはり、端末仕様は的確に準拠しないとダメだぁ。と、いうことで。

5月 142013
 

それにしても僕の持っている MEDIAS LTE N-04D の GPS がまともに動作しない。おかしいっててんで GPS 関連のアプリを色々インストールしてみました。その中で中々面白いのがあったのでちょっと記事を一つ書いてみます。

MEDIAS LTE N-04D は Android4.0 にしたあと、ついこの間 2013/04/25 にアップデートがありました。docomo のサイトの情報を読んでみると以下のように書かれています。

改善される事象
特定の環境において地図アプリでナビ機能を利用中、まれに携帯電話(本体)が再起動する場合がある。

となっています。ふむー。やはり GPS 回りで何かしらの改修が入ったのかなぁ。雰囲気的にこのアップデート適用後に GPS がまるで機能しなくなったような気がする・・。orz。

さてさて。IPhoen5 と比較した場合、 Android の性能なのか MEDIAS LTE N-04D の個体のせいなのかわかりませんが GPS がまともに動きません。ナビアプリを起動すると「現在地を特定しています。」から先に進まない。そらそーでしょ。現在地が特定できないんだから;-(。

で、見つけたアプリは GPS Test というヤツ。起動時のキャプチャはこんな感じです。

Screenshot_Android_iPhone_GPS_1.jpg

広告無いのが嬉しいねぇ。ってのは置いといたとしても、自分が今いる場所が真ん中として、その回りに GPS がどれくらいいるのかが解るアプリです。すげー。こーいうのがあるんですね。

左下の部分を押すと GPS からの電波の強さが確認できます。スマートフォンで GPS を利用する場合最低三個、高度まで知りたい時は四個を補足するとバッチリってことですが、上記のキャプチャで自分の回りの GPS を把握してそこからの電波の強度を確認して、さて利用。って状態です。

ちなみに Android というか MEDIAS LTE N-04D は A-GPS を利用しているので docomo の基地局のアンテナとか Wi-Fi のアクセスポイントの場所から所在地を特定する(Google ストリートビューを作成するために走り回った車が Wi-Fi ポイントの情報も収集したのはこのためか?)するんですが、その情報は場所が変わったら更新しなければならない。

この GPS Test アプリには Settings で今持っている A-GPS の情報の初期化と新しい情報の再取得の機能があるので、素早く現在地というか、現在地の GPS の情報を知りたい場合には便利です。

が、結局 Android4.0 というか MEDIAS LTE N-04D では GPS が全くもっって利用できないのよねぇ。何か無効にしたアプリがいけないのかな?

さてさて。以上は Andoird でのお話ですが、iPhone5 は GPS に加えロシアの GLONASS まで使えるので、 GPS を利用するアプリにおいては現在地の特定というのがサクっとできます。この速さ、素晴らしい。って感じ;-)。

で、 Android アプリの GPS Test みたいに自分の回りの GPS を確認できるアプリはないんかな?とか思い探しまわったのですが、なんとか見つけました。
Galileo & EGNOS Satellites
というアプリケーションです。アプリの名前からしていかにも EU 産チックですよね;-)。キャプチャはこんな感じです。

IMG_4870_Android_iPhone_GPS_2.jpg

表示されたメニューから一番上の丸いボタンを押すと、先ほどの GPS Test と似たような画面が表示されます。そして、こっちのアプリは Galileo と EGNOS と GPS 衛星が補足できる;-)。あと、補足できる衛星の数はこっちのアプリのほうが多いような気がするのは気のせいか?;-)。

下の棒の部分、真ん中が現在の時間でスライドさせると衛星が動いていく。ってのも中々良い感じです。他にも地図で表示したりの機能があります。 GPS の信号強度などは表示されないのがちょっと悲しいところではありますが、今のところ iOS 用のアプリで GPS を補足できるのはこれだけでした。

それにしても GPS を使うなら絶対に iPhone5 ですね(ロシアの GLONASS が使えるようなったのは iPhone4S から)。GPS の補足とか現在地の補足が圧倒的に速い。アプリとかマップが優れていても GPS が利用できない Android ではどうしようもない。

あ。 MEDIAS LTE N-04D の GPS の FAQ には以下のように書かれています。

Q. GPSで現在地の測位ができない、精度が悪い
A GPSは人工衛星からの電波を利用しているため、以下の条件では、電波を受信できない、または受信しにくい状況が発生しますのでご注意ください。

建物の中や直下
地下やトンネル、地中、水中
かばんや箱の中
ビル街や住宅密集地
密集した樹木の中や下
高圧線の近く
自動車、電車などの車内
大雨、雪などの悪天候
携帯電話の周囲に障害物(人や物)がある場合
携帯電話のGPSアンテナ部周辺を手で覆い隠すように持っている場合

自動車・電車などの車内で使えない GPS って一体・・。orz

って、これで終わったらやっぱり Andpoid の GPS って「ダメじゃん。」ってことになってしまうので、 GPS をずっとオンにした状態で三日くらい過ごしてみました。するとあーた。使いたい時だけオンにするよりも普段からずっとオンにしていたほうがマップアプリとか GPS Test アプリを起動したときに反応が良いですね。

Android というか MEDIAS LTE N-04D の場合、電池の持ちが気になって GPS は利用時のみオンにしていたんだけど、GPS よりもはるかにバッテリを消費するのは LTE 通信。なので通信は GMS/G3 のみにするとバッテリはずいぶんと長持ちします。そして GPS をずっとオンにしていてもそんなにバッテリが消費されないということが解りました。

と、いうことで、これからは Android 機でも GPS はオンにしたままにしておきます。写真撮っても GPS ポイントが保存されるしねぇ;-)。

4月 292013
 

以前に一回似たようなエントリとして 「G-SHOCK GB-6900 を試す。」 を書いているのですが、それの続編。と、いうことでお願いします。

僕は MEDIAS LTE N-04D を持っていて Android 2.3 から 4.0 に上げた。といのは以前のエントリで書いていてます。そのエントリでは G-SHOCK GB-6900 との連携は「まぁ。大丈夫。」みたいに書いていたのですが、実際にしばらく両方をリンクして持ち歩いてみると GB-6900 でアラートが上がらないことが多くなってきた。そのことについて書いてみたいと思います。

Medias_Android4.0_G-SHOCK2_1.jpg

G-SHCK アプリケーションの「時計連動設定」から見ていくことにしましょう。

1. 電話着信通知
これは無事に動作しています。電話がかかってくると GB-6900 がブルブル震えます。

2. メール受信通知
これねぇ。問題が色々多いです。 Android4.0 になって標準アプリに対して無効化することができるようになりました。普段利用しないアプリはガシガシ無効化していくのですが、これがまた痛い問題です。

例えば SP モードメールの場合は「SP モードメール」アプレリが動作していないと GB-6900 に通知が届きません。gmail にも対応していますが「Gmail」アプリ、あとフツーのメールの場合は「メール」アプリが動いてないと通知が来ません。

僕は「CommuniCase」というアプリを利用していますが、こいつはフツーの imap のメールアカウントと SP モードのメールを一つのアプリで管理していくれる docomo 謹製の中々良い感じのメールアプリなのですが、こいつが G-SHOCK に対応していないので、受信通知が鳴りません。

Medias_Android4.0_G-SHOCK2_2.jpg

色々テストしてみたのですが、SP モードメール が動作していて「CommuniCase」アプリが動作していた場合、新着メールが「CommuniCase」アプリに持っていかれた(CommuniCase が先に検知した)場合には G-SHOCK がギコギコ言いません。
以下、動作確認してみました。

1). SP モードメールアプリを起動します。
2).携帯宛に @docomo.ne.jp のメールを送信します。
3). SP モードメールアプリで新着確認をします。
4). G-SHOCK がギコギコ言います。

と、言う動作になりました。「CommuniCase」アプリよりも先に SP モードメールアプリが動作すると G-SHOCK に通知されます。

3.アラーム鳴動通知
こちらも電話と一緒で問題はありませんでした。ただし、僕の場合アラームのセットは default でインストールされている時計アプリで設定しています。他のアラームアプリは利用したことが無いのでそれらの動作についてはわかりません。

4.スケジュール鳴動通知
これが解らなかった。スケージュールアプリとしては関連するアプリがいっぱいありすぎる。不要と感じるものを無効化しているのですが、そのためにスケジュールの通知が G-SHOCK に伝わらないのだと思います。
パッと掲載するだけでスケジュール関連では以下のアプリが存在します。

o. スケジュール&メモ(全角)
o. スケジュール&メモ(半角 : 無効)
o. カレンダー(多分 google 謹製 : 無効)
o. Google カレンダーの同期(多分 google 謹製 : 無効)
o. カレンダーの保存(多分 google 謹製)

ここにもしかしたらメールアプリ(Gmail 含む)とかも絡んできているのかわかりません。上記で “無効” と記述してないのは利用しています。この設定というか、これらのアプリを有効・無効化していても G-SHOCK が鳴ることはありませんでした。なので、もっと色々有効化する必要のアプリがある。と、いうことなのでしょうなぁ。

あと、余談ですが、「カレンダーの保存」アプリを起動するようにしておかないとメール添付の ics ファイルがカレンダーにインポートできませんでした。ふむー。とか思うのですがね。まったく・・。

5.歩数計鳴動通知
こいつも素直ですね。歩数計ウィジェットを表示して、色々設定しておけばアラートがちゃんと上がります。一番素直に、毎日確実に G-SHOCK に通知してきてくれます。もうすぐサービスが終了する「MEDIAS WELLNESS」アプリを無効化しても歩数計は計測してくれます。

今となっては歩数計のノルマが達成できたか確認するために G-SHOCK を購入したのか? などと思えなくもないですが、そー思えるのもまたしかたないでしょうかねぇ・・。

docomo と NEC+CASIO 的にはとりあえずメールアプリをなんとかしてもらいたいですね。 「CommuniCase」アプリが Bluetooth 叩いてアラート上げてくれれば良いのでけどね。もしくは G-SHCK で default のアプリケーションが指定できると良いんですよね。メールの場合はこれ、スケジュールの場合はこれ。とかね。

あ。そーそー。 default のアプリケーションで思い出した。 docomo の「しゃべってコンシェル」アプリは『うめさんにメール』とか言うと「SP モードメールをダウンロードしろー。」とかヒツジさんに言われるんですよね。だから「しゃべってコンシェル」からはメールの送信は不可能だぁ。
それにしても docomo はケチだな。そんなにしてまで通信費を稼ぐ必要があるんかい? まぁ、Wi-Fi 経由で送信すれば良いんだけど、それにしてもやっぱり default のアプリケーションが指定できれば良いのになぁ。

と、いうことでダラダラと書いてしまいましたが、 Android4.0 になってアプリを無効化すると色々な情報が G-SHOCK に伝わらなくなります。MEDUAS と G-SHOCK の両方をお持ちの皆さんは極力ご注意ください。

4月 072013
 

久しぶりに「CPU コレクション」行ってみましょうかねぇ。今回のエントリはちょうど 60 回目ですね。でもって、今回登場するのは SUN Ultra SPARC III。UNIX 系のCPU です。以前に掲載した Sun Ultra SPARC II の上の CPU ですね。

まずは写真を。

Sun_Ultra_SPARC_III_1.jpg

この CPU は二つ持っています。 SMP な SPARC Station から抜き出したんだっけかな? 最近は当然のごとくマルチコアとか騒がれているのですが、SUN のサーバ及びワークステーションは当たり前のように SMP 構成だったんですね。

こちらが裏側。

Sun_Ultra_SPARC_III_2.jpg

あれあれ? Sun Ultra SPARC II の頃は LGA (Land Grid Array Package) パッケージだったのですが、 SPARC III の場合は以前と同様のピンベースの CPU に戻っていますね。何でなんでしょうかねぇ?中々面白いですね。

で、その Sun Ultra SPARC II と III を並べてみたのがこの写真。

Sun_Ultra_SPARC_III_3.jpg

II も III も二個ずつ持っている。ってのがいかにも SUN のサーバ。って感じがして良いでしょー;-)。 で、 CPU 自体もずいぶんと大きさが違いますよね。俗に「ダイサイズが大きくなった。」と言えば良いんでしょうかね。

一応、手持ちの UNIX 系と、言うか非 x86 系の最後の CPU になるのであります。

3月 252013
 

いやー。cvsup.icmpv6.org というサーバを立てていたのですが csup がいよいよ利用できなくなりましたね。 cvsupd から持ってきたソースコード、例えば ports を portmaster -D -a とかすると「もう使えないぜ。ベイビー。」とか怒られる。

それならば、と、いうことで ports などは snv で取ってくることにしましょう。基本的には以下のコマンドで svn で FreeBSD の ports ツリーを取ってくることができます。

# svn co https://svn0.us-west.FreeBSD.org/ports/head /usr/ports
# cd /usr/ports && svn update

 
FreeBSD のソースコードを取ってくるには svn というのが必要で、それはつまりは ports 的にいうと devel/subversion が必要になるのでこいつをインストールしてあげる必要があります。後で出てきますが、svn サーバを必要としない、クライアントのみで利用するのであれば devel/subversion-static のほうが、余計なのがインストールされないので良いかもしれません。

上記コマンドを実行するときには一旦 /usr/ports/ の中を綺麗にしたほうが良いかもしれんですね。 ports/distfiles/ の中に色々とゴミが残るのでどこかに一時的に移動するか、サッパリと \rm -r /usr/ports してしまったほうが良いかな? 個人的に自由にしてください;-)。

さてさて。svn コマンドを実行したときに、海外のサーバを見に行くことになるのですが、ちょっと遅いかもしれないし大変ですよねぇ。今まで cvsupd なサーバを自分で構築していたので svn なサーバも自分で構築してみましょう。 FreeBSD のための Subversion のミラーサイト (FreeBSD.org subversion mirror) を構築してみます。それが今回のお題目です。

まずは ports から devel/subversion をインストールします。こちらを make すると make config で色々聞いてきます。 devel/subversion-static のほうは特に何も聞いてきません。 FreeBSD の svn サーバを構築する場合には以下のオプションを [X] にして make install しましょう。

[X] MOD_DAV_SVN        mod_dav_svn module for Apache 2.X
[X] MOD_DONTDOTHAT     mod_dontdothat for Apache 2.X

 
すると apache22 までインストールしてくれます。うひっ。 php とか、この手の apache 絡みのヤツを ports からインストールすると強制的に apache までインストールされてしまうのは、ちょっとどーかと思う。僕は apache は自分で make する派なのでねぇ。 mod_* だけインストールしてくれれば嬉しいなぁ。

と、いうことで apache まで起動できる状態になったので svn サーバ (仮に svnweb と言います)を作成していきましょう。

まずは FreeBSD のソースコードや ports 一式を先に取ってきます。

# mkdir /home/svnweb
# cd /home/svnweb
# ftp -a ftp://ftp5.jp.freebsd.org/pub/FreeBSD/development/subversion/svnmirror-base-r238500.tar.xz
# ftp -a ftp://ftp5.jp.freebsd.org/pub/FreeBSD/development/subversion/svnmirror-ports-r301235.tar.xz
# tar xvzfp svnmirror-base-r238500.tar.xz
# tar xvzfp svnmirror-ports-r301235.tar.xz
# svnsync sync file:////home/svnweb/base
# svnsync sync file:////home/svnweb/ports

 
base のほうは FreeBSD のソースコードです。 ports は ports ですね。 r238500 とか r301235 ってのはレビジョンのようです。以下の URL が参考になるかと思います。

http://svnweb.freebsd.org/base/

ftp で取ってきたやつでさえも古いので更に sync して最新のものに揃えます。それが上記コマンドの下の二行です。 snvsync するとどこから取ってくるんでしょうなぁ? 後でキャプチャしてみよう(キャプチャした結果 svn.FreeBSD.org からでした;-)。

と、いうことで最新のソースがこれで準備できたと思います。あ。定期的に svnsync するには以下のスクリプトを書いて cron に登録すれば良いでしょうね。

#!/bin/sh
/usr/local/bin/svnsync sync file:////home/svnweb/base
/usr/local/bin/svnsync sync file:////home/svnweb/ports

 
ちなみに、base と ports だけで 20GByte くらいのディスク容量が必要になります。HDD の容量に気をつけてください。

さささ。続いてサーバのほうを設定していきましょう。基本的には httpd が動作していて port:80 にアクセスします。 SSL に対応しているのであれば https:// でアクセスできます。

まずは httpd.conf ですが、 devel/subversion をインストールしたのであれば特に何もせずとも動作します。うひっ。 ports/subversion インストール時に上に書いた二つのオプションを有効にしたのであれば、多分 httpd.conf に以下の設定が既に追加されているはず。

LoadModule dav_svn_module   libexec/apache22/mod_dav_svn.so
LoadModule authz_svn_module libexec/apache22/mod_authz_svn.so

 
ほー。svn のサーバって dav で動作するんだねぇ。するっていと多分 extra/httpd-dav.conf にも設定必要だね。って思うんですが、果たしてそのとおりで、 extra/httpd-dav.conf の中身を全部消して、以下の行を追加して上げます。

<Location />
    DAV svn
    SVNParentPath       /home/svnweb
    Order deny,allow
    <LimitExcept GET PROPFIND OPTIONS REPORT>
        Deny from all
    </LimitExcept>
</Location>

 
あとは httpd を起動すれば動作すると思います。あ。Include etc/apache22/extra/httpd-dav.conf の行は当然コメントアウトをはずす必要があります。

ウェブブラウザでアクセスすると http://svnweb.icmpv6.org/base/ こんな感じで見えるようになります;-)。

では実際に正しく動作するか確認してみましょう。手元にある FreeBSD から以下のコマンドを実行してみます。

# svn co http://svnweb.icmpv6.org/ports/head /usr/ports

 
既に一回、他の svnweb から /usr/ports に持ってきてしまうと svn のエラーコード E155000 で怒られます。その場合には違うディレクトリに co するか、 /usr/ports/.svn/ というディレクトリが svn の接続先情報を管理しているようなのでこのディレクトリを mv すれば良いかもしれません。

さてさて。 apache の設定に戻りますが、svnweb のためだけに httpd を起動する人は皆無だと思うので、多分 httpd-vhosts.conf で VirtualHost の設定をしているかと思います。 DAV svn の設定も簡単で VirtualHost ディレクティブの中に httpd-dav.conf で書いた設定をそのまま書いてあげると良いです。その場合は Include httpd-dav.conf の設定は必要なくなります。

と、いうことで 簡単な svn の使い方と svnweb の立て方をサラっと書いてみました。皆さんもどんどん日本に FreeBSD 用の svn のサーバを起動してみてください;-)。 ちなみにですが、以下を一応用意しました。それぞれのサーバに base/ と ports/ があります。

http://svnweb.icmpv6.org/ (IPv4/IPv6)
https://svnwebv4.icmpv6.org/ (IPv4)

いつも動作している保証はありません;-)。

3月 242013
 

VMwareESXi 5.1 の環境で FreeBSD/adm64 9.1-RELEASE がゲスト OS として動作しています。 PCI 接続の内蔵 NIC がもう無いので USB NIC を VMwareESXi が動作している物理サーバに接続したんですけども。

USB NIC ってのはすごいですね。 VMware vSphere Client から FreeBSD に USB デバイスを割り当てたら FreeBSD 側のドライバで NIC を認識しました。

以下のキャプチャは VMware vSphere Client の「仮想マシンの設定の編集」画面から USB デバイスを FreeBSD に追加して上げた状態です。

VMwareESXi_USB_NIC_add_1.JPG

この段階で FreeBSD 側は USB NIC を axe0 として認識して ue0 に割り当てました。

ugen1.2:  at usbus1
axe0:  on usbus1
miibus0:  on axe0
ukphy0:  PHY 16 on miibus0
ukphy0:  none, 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto, auto-flow
ue0:  on axe0
ue0: Ethernet address: 00:0e:c6:f0:24:zz
ue0: link state changed to DOWN

 
VMware ESXi で利用する NIC って vSwitch 経由で FreeBSD 的には em0 などに割り当てるという認識があるのですが VMwareESXi もゲスト OS である FreeBSD も起動している状態においては VMware ESXi を経由せずにサクっと FreeBSD 側で認識してしまった。ということですね。

$ ifconfig -a | grep -v "^\s"
em0: flags=8843 metric 0 mtu 1500
lo0: flags=8049 metric 0 mtu 16384
vmx3f0: flags=8843 metric 0 mtu 1500
ue0: flags=8802 metric 0 mtu 1500

 
こんな感じで、em0 と vmx3f0 は vSwitch 経由、 ue0 はダイレクトに接続されている FreeBSD ネーテブなドライバで認識されている NIC ということになります。

VMwareESXi は設定で NIC 一個を vSwitch を介さずにゲスト OS に渡す設定ができるんだっけかな?やったことが無いので解らないのですが。けど、 USB な NIC を利用するとサクっとそれができるようになります;-)。

しかし、このネタって既に一般常識? f(^^;;。