2012年2月19日日曜日

Pioneer Carrozzeria 楽ナビLite SDカードでエラー。初期化画面が出ない その2


の続き。

SDカードの初期化が完了したので、カーナビに差し込んだんだが、結局確認画面が出ない。
なんなんだ・・・

もう一回説明書をあさってみると、メモに 
・SDカード登録確認メッセージは、一度登録が完了したあとは表示されません。はじめに登録したSDカードを別のものに変更したい場合は、機能設定の「SDカード登録確認メッセージ表示」をONに設定してください。
とあるではないか・・・
ガガーン、これか・・・

見てみると、あった。ONにしてみると、出た出た。

新しいSDカードが挿入されました。
このSDカードをPCリンク用として登録しますか?
「はい」「いいえ」
はいにして登録が完了したので、また持って帰って「ナビスタジオ」で読み込ませる。

バージョンアップのデータも初期化してしまったはずなので、またダウンロード予約しなきゃだめなのかなぁと思っていたが、ダウンロード予約の確認メッセージが出なかった。
いつものごとく勝手にSDカードの更新が始まり、いつもより長めにかかって完了した。

で、またカーナビに差し込んだところ・・・

おーーー出た、バージョアップしますか?のメッセージ。なるほどー、1度ダウンロードしたら、PCにデータが入ってるんだろう。なので、もう一回ダウンロードする必要はなく、先程のフォーマット済みSDへの更新でバージョンアップ用のデータが入ったわけだな。

で、控えておいたパスワードを入れてやってみたところ、ばっちり。
はじまったではないか。

よしよし、できることはわかったのでキャンセルしよう。
?ん?キャンセルは?
なぬ、できない。

そんなもんはない?

このまま45分か・・・そういえばそういうメッセージ出てたっけ。ちゃんと読んでなかった俺が悪いな。
やべー、今日行く予定だったところ、場所わかんねーし。
家ギリギリに出たからもう時間ないし。

ということで、ところどころ停めて電話しながら、なんとか着いたわけだが、今回の教訓は、

・確認画面は設定でONにしないと再表示されない
・バージョンアップしはじめたらキャンセルできないよ

まさかこんなにはまるとは。。。とほほ・・・

免責
この記事やプログラムによって生じた事故・損害などは一切保証致しません。ご自身の責任でご使用ください。


子育てブログ「おとう日記」はじめました。
興味ある方、是非ご覧下さい!
おとう日記

コピペプログラマの倉庫を作りました。
サンプルプログラムなど置いておきますのでお立ち寄り下さい。
コピペプログラマ倉庫


良ければ↓投票お願いします↓ m(._.)m ペコッ
人気ブログランキングへ

2012年2月17日金曜日

sqliteのパフォーマンスを上げて郵便番号の住所補完高速化

現在郵便番号のサジェスト処理で格闘中。

クライアント

ajaxで4桁目を入れたら取得

sqliteに格納されている郵便番号&住所データをselect

返す

受け取って住所をリスト表示

今のシステムは前任者のものを引き継いだ形なので、何故郵便番号&住所データをメインのDBではなく、sqliteでやってるかは不明。ファイルとして扱えるから便利だからかな?
まぁ読み込みにしか使わないからね。
メインDBに移すのも考えたが、他でも使ってるので、失敗したときのリスクがでかいし、改修箇所も多くなるなぁ、ということで、sqlite側に手を入れることに。

出来上がっているsqliteに入って、index貼ろうと思ったわけで。


sqlite3 postcode.db

で試しに「.tables」とかselectとかしてみても


SQL error: file is encrypted or is not a database

と怒られる。????
これsqlite3のファイルでないの?

郵便番号DB(sqlite)を作成するphpのシェルを確認したところ、sqlite_openで作成していた。
phpのsqlite_openで作成すると、sqlite2になるんだよね・・・
それで怒られるわけか。
互換性とか持たせてくれててもいいのに・・・

開発環境にはsqlite2が無い。installして3と共存するようにするか?うーんめんどい。

じゃあいっそのことsqlite2ではなく、sqlite3でDB作るようにしちまうか?いや、これでプログラム側から読み込めないとかあったらまた改修範囲がでかくなる。

どっちもめんどいので、考えた。作成する時のphpのシェルで、続けてINDEXを貼っちまえばよくね?
テスト→できたっぽい。

さてさて、ではいよいよ改修に入ろう。

まずFirefoxのFirebugで、何桁目から取得し始めるのがいいか試した。
どうも4桁目がよさげ。
それより後ろだと、7桁目までを入力し終わる時間が短いので、取得して返ってくるのが1テンポ遅れる。
逆にそれより前だと、今度はデータが多すぎで待たされる。
ということで、4桁に標準を合わせた。

4桁目で取りに来たとすると、今のテーブルだと7桁の郵便番号フィールドに対してlikeで取得しにいくことになるが、likeは時間がかかる。

とはいってもINDEX貼ってみりゃ合格ラインにならんかな。
→貼ってやってみたら逆に遅くなったからビビった。

sqliteだとINDEX貼ってもlike検索ではINDEX使ってくれないらしい。

まぁlikeでも使えるようにする方法はあるんだが、
→例:CREATE TABLE t (c COLLATE NOCASE); のようにCOLLATE NOCASEを付ける

それより、4桁のフィールドを作った方がいいだろうという結論。
DB作成するシェルに、郵便番号のCSVを分解する部分で、7桁郵便番号から頭4桁を抽出して別フィールドに格納するようにした。7桁のフィールドはそのままだから、他で動いてる現行の処理には影響ない。

更に、その4桁フィールドにINDEXを貼る。

で、whereを、likeでなく完全一致で取りに行くように修正。
取得するsqlは、4桁なら4桁フィールドを、7桁なら7桁フィールドを、絶対指定で取りに行く、それ以外の桁は発生しない予定だが、まぁ一応Likeで動くようにだけしておこう。

めでたく取得速度が倍になりました。

ちなみにメインDBでindex貼って試してもみたんだが、チューニング後のsqliteと同等くらいだった。
sqliteあなどれんなぁ。

jqueryの方も読み込んだあとはcacheを使うとか、いろいろ細かい工夫を加えたところ、良い感じになったよ。

免責
この記事やプログラムによって生じた事故・損害などは一切保証致しません。ご自身の責任でご使用ください。


子育てブログ「おとう日記」はじめました。
興味ある方、是非ご覧下さい!
おとう日記

コピペプログラマの倉庫を作りました。
サンプルプログラムなど置いておきますのでお立ち寄り下さい。
コピペプログラマ倉庫


良ければ↓投票お願いします↓ m(._.)m ペコッ
人気ブログランキングへ

2012年2月13日月曜日

Pioneer Carrozzeria 楽ナビLite SDカードでエラー。初期化画面が出ない

表題の通り、うちの車のカーナビは、Pioneer Carrozzeria 楽ナビLiteを使ってるんだが、どうもSDカードがうまく認識されないことが多い。
最近、バージョンアップデータがリリースされたので、いつも使ってるSDカードで更新をしようとセットし、予約日を登録。

これがめんどくさいんだが、日を指定して予約しないといけない。数週間~1ヶ月くらい先なので、予約した日をうっかり過ぎてしまったこともしばしば。
ようやくダウンロードが出来て、そのままカーナビに差し込んだところ・・・反応しない。

いや、反応しないどころか、SDカードとしての認識もしていないようだ。
せっかく時間かけて更新したのに・・・なんとも虚しい。

悔やんでも仕方ないので、もう一回初期化して、入れなおすことにした。

また家に持って帰って、Windowsでフォーマットして・・・よし。
車に持って行ってフォーマットしたSDカードを挿す。
画面下に「SD」のマークが付く。お、SDカード自体は認識するようになったな。

ところが・・・今度はカーナビに挿した問に出るはずの「SDカードが挿入されました PCリンク用として登録しますか?」のメッセージが出ない。
これが出ないと初期化できない!

orz・・・
なんかなー・・・
やる気失せる。。。

適当にPioneerのサイト見てたら
「上記でも改善しない場合は、SDフォーマッターなどのツールにてSDカードのフォーマットをお試しください。」などという文言発見。
ほほう、SDフォーマッターなるものがあるのか。

早速ググッてみたらあった。
あるではないか。
https://www.sdcard.org/jp/downloads/formatter_3/

ということで、今フォーマット中だ。

オプションに関しては以下。

  • 論理サイズ調整
容量が正しく認識されていない場合はONにするらしい。とりあえずONにしておく。

  • 消去設定
クイックフォーマットは分かるんだが、イレースフォーマットと上書きフォーマットがよくわからん。とりあえずマニュアル読んでみて、イレースフォーマットやってみたが、どうもうちのSDカードは対応していないそうな。ということで、上書きフォーマット。

これでうまくいけばいいんだが。

Pioneer Carrozzeria 楽ナビLite SDカードでエラー。初期化画面が出ない その2に続く・・・


免責
この記事やプログラムによって生じた事故・損害などは一切保証致しません。ご自身の責任でご使用ください。


子育てブログ「おとう日記」はじめました。
興味ある方、是非ご覧下さい!
おとう日記

コピペプログラマの倉庫を作りました。
サンプルプログラムなど置いておきますのでお立ち寄り下さい。
コピペプログラマ倉庫


良ければ↓投票お願いします↓ m(._.)m ペコッ
人気ブログランキングへ

2012年2月3日金曜日

今日のLinuxコマンド

会社の上司と、Linuxのコマンドを問題出しをしたのでその記録。

  • w

ログイン状況やログインユーザの情報を表示する
http://bijo-linux.com/girls/w/

  • last

最近ログインしたユーザ名を表示する
http://bijo-linux.com/girls/last/

  • lastlog -u <ユーザー名>

ログインの記録ファイルを見る
http://bijo-linux.com/girls/lastlog/

  • df

ファイルシステムの使用状況を容量で表示する
http://bijo-linux.com/girls/df/

  • sar


CPU・ネットワーク・メモリ・ディスク情報確認
http://bijo-linux.com/girls/sar(→準備中らしい)



こつこつ勉強すべし。




子育てブログ「おとう日記」はじめました。
興味ある方、是非ご覧下さい!
おとう日記

コピペプログラマの倉庫を作りました。
サンプルプログラムなど置いておきますのでお立ち寄り下さい。
コピペプログラマ倉庫


良ければ↓投票お願いします↓ m(._.)m ペコッ
人気ブログランキングへ