ページ

2011年7月15日金曜日

スマートフォンリンク ナビクレイドル(SPX-CS01)


とても面白そうだったのでSPX-CS01を購入しました。


特徴



  1. クレイドルなのでスマートフォンを車に置く場所として使える

  2. クレイドルについているmicroUSB端子でスマートフォンを充電できる

  3. クレイドルについているBluetoothでスマートフォンと通信でき、スマートフォンの音を出せる

  4. クレイドルにステレオミニジャックがついているので、車の音声外部入力(AUX)に接続することで車から音を出せる

  5. クレイドルのジャイロ/GPS連携でスマートフォンが高性能ナビになる

  6. ハンズフリー電話になるらしい(まだ電話がかかってこないので...)


感想


わたし的には大ヒットです。スマートフォンを充電しながら音楽が聞けるので、とても便利です。また、クレイドルにスマートフォンを載せなくてもBluetoothリンクできるので、同乗者のスマートフォンからでも(リンクさせれば)音楽を流せるはずです。

音楽再生手順は以下。



  1. PCで音楽入手し、DropBoxフォルダに置く

  2. スマートフォン側DropBoxアプリで同フォルダを同期(ダウンロード)

  3. クレイドルとスマートフォンをBluetoothでリンク

  4. スマートフォンで音楽再生すると車のスピーカから音楽が流れる


CD焼きから解放されて大満足です。

本来のメイン機能であるナビもクレイドルのジャイロ/GPSのおかげで精度/追従性が極めて高く、十分使えます。
ですが



  • ダッシュボードに配置すると(夏なので)スマートフォンが焼けそう

  • スマートフォンの画面はナビとしては少し小さい気がする

  • 別に7年前の純正ナビで困ってない

  • なんか邪魔


という保守的な理由からナビ機能は当面ベンチを温めてもらうことにしました。
何で買ったんだっけ…


愛車(初期型アテンザ)メモ



  • 音声外部入力(AUX)なんて近代的なものはついていないので、確保する必要あり。愛車には純正ナビがついていたので「純正ナビの外部入力への接続」をディーラに付けてもらった。

  • クレイドルの配置に関しては、運転席と助手席の間にあるカップ置きがちょうどいい

  • クレイドルの音声外部出力端子から音を出すには、DriveNetアプリの設定->クレイドル設定にある「内蔵スピーカを使用する」をオフにしないといけない。

  • 「純正ナビの外部入力への接続」した場合、外部入力をスピーカに出すには、テレビのチャンネルにあるVTRを選択すればよい。

  • 音が聞こえない場合は、(クレイドルではなく)スマートフォンの音量を確認。


2011年7月7日木曜日

Debian からUbuntuへ



お堅いDebianから元気一杯なUbuntu(11.04)に乗り換えてみました。
予想に反してほとんど困ることがなく移行できてしまいました。同系統だからでしょうか。
しかし、インストール環境もデスクトップも、とてもグラフィカルで安定したものになりましたね。

ネタがないので、ちょっと戸惑った事だけメモとして残しておきます。

ディスクの準備に気をつけよう


昔と違ってインストーラがグラフィカルかつスムースなのでシステムの根幹を変更しているような、あの緊張感に浸れません。
でも観光気分でのんきにクリックを繰り替えしていると、ディスク上の全パーティション消されます。
かわいい顔してても、やることはやるんですね。
ディストリビューションとは関係ない大事なファイルが入っているパーティション(別途確保している/homeとか)まで消されますので慎重に進めましょう。

PPPoEの設定はDSL


ネットワークの設定もGUIなんですね。設定->ネットワーク接続を開くと、ルータ予定のPC(今回移行実施PC)とかだと認識されている2つのEther I/Fが表示されているタブが見えるはずです。ここでどっちが外につながるんだっけ?、とか考えながら設定項目を見てしまいがちなんだけど、これはフェイクです。この設定はPPPoE設定では使いません。
設定は、DSLタブ->追加ボタン->DSLタブにあり、そこにあるユーザ名とパスワードエントリに入力するだけ。Ether I/Fは勝手に適切な方を選んでくれるみたい。どうやってんだろ...

FirewallやNAT設定は、UFW


なんだか強そうな名前になりましたね。iptablesのラッパーかな?
設定方法はググったらたくさん出てくるので、変更点メモだけ残しておきます。
パケットの転送を許可

/etc/default/ufw
DEFAULT_FORWARD_POLICY="ACCEPT"

/etc/ufw/sysctl.conf
net/ipv4/ip_forward=1

NATの設定

/etc/ufw/before.rulesの最初にnatルール追加。
また、MTU調整用ルール追加。
# nat Table rules
*nat
:POSTROUTING ACCEPT [0:0]

# Forward traffic through ppp0 - Change to match you out-interface
-A POSTROUTING -s 192.168.1.0/24 -o ppp0 -j MASQUERADE

# don't delete the 'COMMIT' line or these nat table rules won't
# be processed
COMMIT

# Don't delete these required lines, otherwise there will be error
*filter
...
# Path MTU Discovery Problem
-A ufw-before-forward -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
...

あと、ppp0をフレッツなら1454にしないとアクセスできないサイトが出ますので、ifconfigを使ってppp0のMTUを1454に変更します。
http://progma.blog136.fc2.com/blog-entry-10.html

2011年7月5日火曜日

スマートフォン(MEDIAS WP N-06C)とPCとUSB接続


付属のUSBケーブルをN-06Cに挿してPCに接続する状況下で
N-06CがUSB接続を認識してくれない(USB認識通知が出ない)事があります。

そんな時は、迷うことなく伝家の宝刀「再起動」です。
N-06Cの電源を一度off/onすると、私の場合は直りました。

まぁ、データ移動(音楽とか)だけでしたら、いまどきは
Dropboxなどのクラウド系サービスを使った方が楽ですね。

不具合繋がりでもう一つ。
N-06Cはまれに(2回/4日確認)再起動してますね。
条件はよく分かりませんが、夜中にされるとなかなか不気味です。

次のアップデートに期待しましょう。

P.S.
7/7のアップデート以降、再起動しなくなった気がする


GitHubにpushするREADME.mdの見た目を事前に確認する方法



見栄え調整のためだけに、3回もcommitしてしまいました。

  • gem install github-markup

  • gem install rdiscount

  • github-markup REAME.md > README.html

rdiscountは、.md(markdown)フォーマットで必要になります。
その他のフォーマットに関しては、下記にて確認しましょう。
http://rubydoc.info/gems/github-markup/0.5.3/frames

P.S.
もっとよい方法がありました。
下記リンクに書き込めばリアルタイムで変換結果を見ることができます。
http://github-preview.herokuapp.com/
これは非常に便利ですね。

ws2_32.dllとmsvcrt-ruby191.dllとSocket Error



MinGW環境上においてRuby拡張ライブラリでネットワークプログラムを書くときのメモ。

  • リンクの際には-lmsvcrt-ruby191より先に-lws2_32をいれるべし。


WSARecvFrom()がエラーで、WSAGetLastError()結果がWSAENOTSOCKだったら上記を確認。

2011年7月1日金曜日

携帯(N905i)からスマートフォン(MEDIAS WP N-06C)へメール移動


N905iに与えた度重なる衝撃のせいか、SDカードを認識してくれません。
しかたがないので、USB経由でメールを移動/変換/導入させました。
その方法をメモしておきます。

ちなみに、N905i側はi-modeメール、N-06C側はSPモードメールを前提としています。
この場合のポイントは、i-modeメールのデータをSPモードメールがimportできる.eml形式にすることです。



  1. datalinkを使って、メールをN905iから吸い出す

  2. datalinkを使って、メールをOutlook Expressにexport

  3. Outlook Expressを起動させ、取り込まれたメール(docomoディレクトリができてる)を一覧を表示させる

  4. メールを全選択、それらをドラッグ&ドロップ(※これ重要)でどこかのtmpフォルダに放り込む (これにより.emlファイルになる)

  5. PC Link Toolを使って、N-06CのSDカード内を見えるようにする

  6. PC Link Toolのメニューのファイル追加を使って、上記tmpフォルダに放り込んだ.emlファイルを、private/docomo/mail/importにコピーする

  7. SPメーラを立ち上げ、メニューボタン->取り込み、で上記importディレクトリからファイルを取り込む



ところが、最近のWindowsには、Outlook Expressがついて無いんですね!

我が家はWindowsXPなので上記で移行できましたが、もしいまどきのOSを使用されているなら、調べた限りでは
datalink[export] => Outlook => [import]Thunderbird[名前を付けて保存] => .eml
という手段でできるような気がします。

そろそろ、新しいWindowsとPC買おうかな。


Rubyの拡張ライブラリをC++で書く場合のメモ


ライブラリとしてロードされる関数は、C リンケージ化しておく


require “libcore.so”

としてRubyプログラムからロードしたい場合は以下のように書く。
extern "C" {
void Init_libcore();
}
void
Init_libcore()
{
// ロード時に呼び出したい初期化処理
// ここではSoundというRubyクラス作成処理を呼び出している
SoundAdapter::init();
}

作成するRubyクラスのC++実装部は、class method化しておく (static付けとく)


SoundというRubyクラスを実装する例
class SoundAdapter
{
public:
static VALUE cSound;
static void init();
static VALUE ruby_new(VALUE self);
static VALUE ruby_loadSound(VALUE self, VALUE fileName);
}
void
SoundAdapter::init()
{
cSound = rb_define_class("Sound", rb_cObject);
rb_define_singleton_method (cSound, "new",RUBY_METHOD_FUNC(ruby_new), -1);
rb_define_method(cSound, "loadSound",RUBY_METHOD_FUNC(ruby_loadSound), 1);
}

rdocに認識してもらうためには



  • rb_define_method()等では、RUBY_METHOD_FUNC()を使用 (これによりrdocのパーサが定義クラスのメソッドとして認識してくれるため)

  • class method処理内容は自動で認識してくれないので、コメントで頑張る


/*
* Document-method: new
*
* call-seq:
*  new() -> SoundObject
*
* fileNameの音声ファイルをロードし、そのfileIdを返却するメソッド。
*
* ====Return
* 音声ファイルID
*/
VALUE
SoundAdapter::ruby_new(VALUE self)
{
Sound* sound = new Sound();
return Data_Wrap_Struct(cSound, NULL, NULL, sound);
}
/*
* Document-method: loadSound
*
* call-seq:
*  loadSound(fileName) -> fileId
*
* fileNameの音声ファイルをロードし、そのfileIdを返却するメソッド。
*
* ==== Args
* fineName: 音声ファイル
* ==== Return
* fileId: 音声ファイルID
*/
VALUE
SoundAdapter::ruby_loadSound(VALUE self, VALUE fileName)
{
Sound *sound;
Data_Get_Struct(self, Sound, sound);
int fileId = sound->loadSound(StringValuePtr(fileName));
return INT2NUM(fileId);
}