ゆずめも

メモ的なブログです。主に勉強した事について書いてます。

skinny frameworkのh2 databaseの場所と中身を見る方法

皆さんJava書いてますか?
最近仕事でJavaのコードを読んだり書いたりする機会ができてHoge h = new Hoge();のようなコードがいっぱい出てきて
ここ最近TypeScriptばっかり書いてきた身としてはめんどくさいったらない。。

会社的にはJavaを使う機会が多いけおd、個人的にはScalaのほうが楽だしモチベあるなと思って勉強を始めた。
そこで以下のスライド見てskinny frameworkをやってみてる

www.slideshare.net

h2でハマる

./skinny db:migrateまでは特に問題なくscaffoldも動いた状態

ただ上のコマンドでテーブル作って、ブラウザからCRUD実行してデータがどこに保存されてるのかよくわからなかったので調べると
プロジェクトのディレクトリ直下にdbディレクトリができていて、その中にdevelopment.mv.dbというファイルができていた

h2のjarを探す

そもそもsbtで依存を解決しているのでh2のjarファイルがどこかにあるはず
いろいろ探しているとホームディレクトリから潜った所に保存されていた

~/.coursier/cache/v1/https/repo1.maven.org/maven2/com/h2database/h2/1.4.196/h2-1.4.196.jar

このjarを実行してやるとブラウザが開いて、h2のコンソール的なのが出てくる

java -jar h2-1.4.196.jar

f:id:yuzu441:20171117203249p:plain

JDBC URLの部分にjdbc:h2:~/<project dir path>/db/developmentと入力

ここでハマった点は、ファイル名がdevelopment.mv.dbであればdevelopmentだけで良い

ユーザー名とパスワードを入力して、接続テストに成功するとうまく読み込めている
(初期はユーザー名:sa, パスワード:saだった)

SQLの実行

ログインが完了したら、SQLが書いてある部分に作成したテーブル(仮にusers)に対してSQLを実行すると、データが入っていることが確認できる

Google Homeでテレビ消せるけどつけれない問題解決した

「OK Google テレビ消して」はできるのに
「OK Google テレビつけて」は「起動に失敗した製造元に確認して」的なことを言われて電源付かなかった

仕事から帰ってきてテレビの設定弄ってたらできるようになったので紹介

tl;dr

テレビのHDMIの設定で電源がOFFにはできるけど、ONにできない設定だった

画像とともに

検索してるとテレビが対応してないとできないよと書いてたので、うちのテレビではできないのか…と思ってたけど、よく考えたら消せるんだから付けれるだろうと思って設定見てた

(死ぬほど設定のある場所わかりにくいので、もうちょっとなんとかならんのかって気持ちになった)

HDMIからテレビの電源操作するのは、メーカーやテレビによって名称違うらしいので頑張って探してほしい

誰かの参考になればと家のテレビの画面写真撮った

家のテレビはビエラリンク設定っていうらしい
リモコンのメニューボタン押して
設定する > 初期設定 > 接続機器関連設定

f:id:yuzu441:20171011233159j:plain

ビエラリンク(HDMI)設定

f:id:yuzu441:20171011233210j:plain

電源オン連動を”する”に変更
(ここが”しない”になってたから起動できなかった)

f:id:yuzu441:20171011233220j:plain

まとめ

これでテレビの電源がオフの状態で「OK Google ○○の動画をテレビで流して」って言えば、自動でテレビの電源がついて動画の再生が始まる

出社前に乃木坂の動画見て、出社直前にテレビ消すのができて、天気等もGoogle Homeが教えてくれるのでリモコンいらないのとても良い

Google Homeで遊んでるとIRKitが欲しくてたまらなくなってきたので、どっかのタイミングでIRKitか類似品買ってしまうかも…

Google Homeのマルチユーザー設定でハマった

今話題のGoogle Homeを買ってきました

f:id:yuzu441:20171011000724j:plain

ビックカメラだと2台で2万円で買えるらしいですが、友達がいないぼっちなのでchromecastが無料でもらえる方にしました

適当に日本語で設定を済ませて、乃木坂46の"いつかできるから、今日できる"が再生できるのを確認したあと、そういえばマルチユーザー設定できるんだったなーと設定を始めたら予想外にハマった

www.itmedia.co.jp

tl;dr

iphoneの言語設定を日本語にしたら設定が出てきた

ドキュメント(説明書)を読む

適当に検索したらhelpがあったのでこれを読んでた

support.google.com

読みながらやってたけど駄目だった

書いてるものがGoogle Homeのアプリに出てこないし、やってる途中に日本語のヘルプ出てきたけど(リンクうまく貼れなかった)読んでもできなくて頭かかえてた

本来ならここに設定するボタンみたいなのが出てくる

f:id:yuzu441:20171011001939p:plain:w300

思いつきで言語設定変えてみる

iPhoneの言語設定をEnglish(US)にしてるんだけど、思いつきで日本語にしてみたすると

f:id:yuzu441:20171011002642p:plain:w300

でたーーーー

本当になんだったのか

設定後

連携したアカウントのカレンダーに適当に予定追加して

「OK Google 明日の予定を教えて」

と自分の声で言うと予定が読み上げられるけど、妹に言ってもらったら読み上げられなかったのでちゃんと設定できてるっぽい

あとがき

とりあえず日本語で設定したけど、発音とか英作文の練習になるしEnglish(US)とかにしたいと思ってる

ただ2つ問題点があって

市民権得ないと「OK Google」がうるさいと言われてしまうので(Hey Siriで経験済み)とりあえず日本語にして使ってもらおうと思ってる

どちらかというと2点目の方が個人的には問題大きくて、自分の発音が悪いのか音声操作の現時点での限界なのか英語モードにすると"乃木坂46"が聞き取ってもらえない

日本語と英語が混じったものを認識するのが難しいのはわかるので、こっちが認識しやすいように話すのでディープラーニングとかで頑張って認識してほしい

英語モードで乃木坂の曲狙ってかけれるよ!って方法があったら教えてください