スバル純正ドライブレコーダーのマイクロSDカード
スバル純正ドライブレコーダーとマイクロSDカードの相性について
スバル車はアイサイトの誤動作防止の観点から、純正ドライブレコーダーを使うことを推奨されている。場所さえちゃんと考えれば、市販品の後付けでもいいとは思うが。
で、純正品は富士通テン製。おそらくDREC4000に近いものだと思うが、スペックは画像サイズなど違いがあって、スバル車向けの商品になっている模様。付属するマイクロSDカードは8GBのもので、繰り返し録画に強い産業用のSLCタイプのフラッシュメモリーを利用したものらしい。
できれば、もう少し容量が大きい方がいいかな。ということで、アマゾンでクラス10東芝のマイクロSDカードを買ってみたが、走行中にドライブレコーダーから頻繁に「ピーピー」と警告音が鳴り響く。FAT32でフォーマットしたりしたが、結局改善せず。
マイクロSDカードを取り出して、PCで確認すると、いくつか動画が入っていて、全く動いていないわけではなさそう。。。 ってことで、書き込み速度の問題で、動画の圧縮率が高くない状況で書き込みエラーが出ている?と推測。
今度は、もう少しスピードの速いものをということで、SanDiskのものを購入。30分ほど走っただけだが、エラー音は全くなくなった。
エラーの頻度はだいぶ少なくなったが、長時間ドライブしていると、何度かピーピーエラー音が出る。カードを挿し直すと、しばらくは症状が出ないのだが。。。誰か、純正以外で問題がないっていうSDカードあれば教えてください。
エラーが出ないSDカードありました。
Transcend 高耐久 microSDHCカード MLCフラッシュ搭載 (ドライブレコーダー向けメモリ) 16GB Class10 TS16GUSDHC10V
少しだけ、値段高くなりますが、純正品よりは格安。16GBがOKだったので、32GBも購入しようかと思います。
マイクロSDカード
- エラーが出たもの
メーカー | 型番 | 参考URL |
---|---|---|
東芝 | MSDAR40N16G | Amazon |
SanDisk | SDSQUNC-016G-GN6MA | Amazon |
- エラーが出なかったもの
メーカー | 型番 | 参考URL |
---|---|---|
Transcend | TS16GUSDHC10V | Amazon |
ドライブレコーダーでは基本的に繰り返し動画が録画されるので、耐久性を売りにしたSDカードがいいのだろうが、値段を考えると。純正だと5倍以上は価格差がある。書き換え寿命を迎えたら、新しいカードに交換するって割り切りでいいように思った。
Rails をInnteliJ IDEAでデバッグする
はじめに
Railsアプリケーションを開発にIntelliJ IDEAを利用し、デバッグ実行を行えるようにする。
色々試してみたが… 結論 remote-debug
IntelliJ IDEAにruby sdkを認識させ、gemsetを設定してみるが、うまくデバッグできることもあったが、再現性に乏しい。rbenv + gemsetでデバッグは正式にサポートされていないのか??
結局、リモートデバッグを利用することにした。リモートデバッグといっても、IDEAの設定をリモートデバッグにして、ローカルのターミナルでrailsを起動するので、新しい環境(サーバ)などは不要。
ruby/rails環境
rubyはrbenvを利用し、gemはrbenv gemsetを利用して管理する。
$ rbenv versions system * 2.4.1 (set by /Users/xxxxx/Develop/Repos/gemset_name/src/.ruby-version) $ rbenv gemset active gemset_name global
デバッグツール(gem)のインストール
$ rbenv gemset active gemset_name $ gem install ruby-debug-ide $ gem install debase
IDEA側設定
Project Settings > Project
一応SDKを設定する。
Project SDKにrbenv2.4.1 を選択する。
Run/Debug Configurations
+ボタンからruby remote debugを選択し、以下のように設定を行う。
項目 | 設定 |
---|---|
Server Command | rdebug-ide –host 0.0.0.0 –port 1234 –dispatcher-port 26162 – $COMMAND$ |
Remote host | localhost |
Remote port | 1234 |
Remote root folder | railsアプリケーションのルートフォルダ |
Local port | 26162 |
Local root folder | railsアプリケーションのルートフォルダ |
※ 今回はRemote と Localが同じマシンなので、root folderはいずれも同じになる。
デバッグの実行
リモートでrailsを起動
rdebug-ideでホスト、ポートなどを指定して、railsを起動する。
$ rdebug-ide --host 0.0.0.0 --port 1234 --dispatcher-port 26162 -- ./bin/rails server Fast Debugger (ruby-debug-ide 0.6.0, debase 0.2.1, file filtering is supported) listens on 0.0.0.0:1234
debug実行
リモートでrailsを起動した状態で、IDEAのデバッグを実行する。
デバッグを開始し接続ができると、リモート側のコンソールに以下のようにコンソール出力がされる。
=> Booting Puma => Rails 5.1.1 application starting in development on http://localhost:3000 => Run `rails server -h` for more startup options Puma starting in single mode... * Version 3.9.1 (ruby 2.4.1-p111), codename: Private Caller * Min threads: 5, max threads: 5 * Environment: development * Listening on tcp://0.0.0.0:3000 Use Ctrl-C to stop
ブレークポイントの設定
あとは通常通りブレークポイントを設定し、ブラウザなどでrailsのページを開くと、ブレークポイントでデバッガが停止する。
LocalDate型の変数をJSPで任意のフォーマットで表示する
サーブレット側で設定した日付(LocalDate)を保持した変数をjspに表示する。
こんな単純なことなのに、案外はまってしまった。
- コントローラ
@Service public class TestService { public Model getTest( Model model) throws ApplicationException { model.addAttribute("today", LocalDate.of(2017, 5, 1)); return model; } }
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> ... <fmt:parseDate value="${today}" pattern="yyyy-MM-dd" var="parsedToday" type="date" /> <fmt:formatDate value="${parsedToday}" var="newParsedToday" type="date" pattern="yyyy/MM/dd" /> <p>${newParsedToday}</p>
parseDateを利用して一度、var=“parsedToday” とした後、 formatDateを利用し、表示したい形式にする。