2018年11月10日土曜日

Node.jsでポケモンGoPlusのAPIをインストールする話

はい、いよいよ当初の目的に辿り着こうとしています。

http://sato7411.hatenablog.com/entry/2016/08/01/210854

Poke.io

こいつをいじるためにここ数週間調べ物やらつまづきやらしてきたんだ
いよいよインストールするぞ!!!


ズコー

ええ!?なんなの!?

まずはラズパイ上でSSLを許可
https://qiita.com/aryoa/items/86ddae2212c789ddece0
SSHだね、これ。
やったけど意味あったのかな。
リブートしたらnvmが動かなくて焦る焦る

. ~/nvm/nvm.sh

を実行しないとnvmは動かないようですね。
一つ賢くなった

というわけでSSL Error: CERT_UNTRUSTEDで検索
https://blog.yug1224.com/archives/563d9b67bf652a600632d01e/

ありがとう。神様。

で、実行

まだダメだ。
nodeのバージョンがやっぱダメなのかな。

エラー文を順番に読んで見る
・Error: No compatible version found long@^3.2.0'
やっぱりなにかの場0ジョンがおかしいようだ
その後のValid install targets:以下はその影響かな?

at installTartetsErrorはこちらもやはりバージョンなのだろうか

最後に出ているエラーはエラーログここだよってお話のようだ。


と、言うわけでまずはError: No compatible version found long@^3.2.0'
を調べる
やっぱりバージョンの問題

そこで最新版を見てみると10.13.0が推奨版とのこと
これにしてみよう

>nvm install v10.13.0

>nvm ls
にて現在のバージョンが10.13.0になっていることを確認してインストール実行!
やったか!?

いくつかワーニングは出ているな。。。
lockfileをpackage-lock.jsonとして作れと?
よくわかんないでござるな。
ただ、インストールは終わった感。

動作確認だ。
・・・Node.jsってどうやってプログラムかけばいいの???


続く

Node.js環境構築の話

さて、連投です。
完全に今日の作業記録です。
記憶が消える前に。。。


今度はNode.jsの環境をラズパイ上に構築していきます。
以前調べて実施した方法がなんかうまく行かなくて、数日放置していました。
(パスの設定がうまく行かず、NPMが使えなかった)

今回は本に頼ることにしました。
秀和システム出版の「Node.jp プログラミングガイド」
図書館においてあったので実質タダ!
最近の図書館は古めでもIT系の本がおいてあるのが嬉しいですね。
こちらの補足資料に書いてある環境構築を参考にしました。


>sudo apt-get install git-core
>git clone git://github.com/creationix/nvm.git ~/nvm
>nvm install v0.8.16

結局の所、実行したコマンドはこの3つでした。
あとはlsやnvm helpなどインストール確認系

Node.jsの最新版が今いくつなのか、など全く調べていないので、
ゴプラを作る際にはそのバージョンを設定しないといけないんだろうな、
とは思いつつ、これも一歩前進

ちなみに、URL入力中にRDP中のUSキーボード問題にぶち当たり、
キーボード配置をインストールするも失敗するという愚行を犯しています
2つくらいのやり方がごっちゃになった感があるので、シンボリックリンク貼り直したらいけるかなぁ。。。といったところ

しましまあコレで環境構築は成功
いよいよ本題に入れるはず・・・?

ラズパイとWindows10をRDPする話

先の投稿で自作ポケモンGoPlusという目標を立てるも、何はともあれ環境準備

HDMI切替器はあれど、いちいちWindowsとラズパイでマウスキーボードを置き換えるのが非常に苦痛
手段を探すとRDPで接続可能とのこと
LinuxなんてCLIで触れよなんて言わないでください
直感的に理解できるGUIもいいものだと思います

結局各種操作はコンソール開いてやるんだけどさ


さて、本題
全ては先人の知恵
私はただ追従するのみ

まずはxrdpの環境構築
https://qiita.com/t114/items/bfac508504b9a6b7570d
こちらを参考に
Qiitaで投稿される技術には感謝するばかりです

ところがどっこい、エラー発生
・Windows10からRDPを実施すると、ログイン画面まで表示可能
・piユーザのID, PWを入力してもエラーで弾かれる
という現象

調べるとすぐに出てきましたね
https://qiita.com/hiroyuki_jp/items/a4b17fa451adfe66d6a9
先人の知恵は本当に偉大

コレにてRDPは無事接続完了

ところが、RDP接続しているとキーボードがなぜかUSキーボードで認識される事態に
とりあえずは配置を覚えたのでなんとかなりますが、解決したいところです
・~=shift+半角/全角
・:=shift+;
・@=shift+2
というのは理解した

本日の成果
・Windows 10 からRaspberry pi 3にRDP接続の環境を作成
残課題
・キーボード配列がUSのまま(優先度低

素人プログラマにポケモンGo Plusは作れるのか

購入後、引き出しの奥で眠り始めてはや2年のRaspberry pi3...

せっかく買ったんだから何かに使いたい。
でも買ったはいいけど使いみちがない。(何故買った

そんなある日、ポケモンGoPlus(ゴプラ)が欲しくなるも価格は高騰中。
購入をためらっていたら、天啓が来たのです。

「作れば安く済むんじゃね???」

取り急ぎ先人の知恵を借りようをインターネットの海へ

結果、マイコンで実装している人の結果にたどり着く。
でも、環境整えるだけでなんと1万円over...

コレ意味ないぞ、と

で、更に思いつく。

「ラズパイでなんとかなるんじゃね?」

ラズパイとあいぽんをBLEで繋ぎ、適当なソースコードを書いてゴプラの機能を実装。
完璧だ。


下記のステップで進めていくプランを立てる
・机が狭い&ディスプレイが一つしかないので、RDPでラズパイを操作する環境構築
・今回はnode.jsを使用して開発するため、node.jsの環境構築
・BLEでラズパイとあいぽんをつなぐ
・ポケモンGoのAPIを弄ってあそぶ

さて、どこまでいけるのか。チャレンジです。


2018年10月13日土曜日

Pythonによる機械学習入門

Pythonによる機械学習入門 Ohmshaを読みました。
一通り目を通したレベルです。

アマゾン

なんで買ったのか

思い起こせば、鬱で休職中になにか自分のできることを広げたいという一心からでした。
買ったのは6月か7月頃、実際に読み始めたのは7月の半ば。
本腰入れてサンプルコードをいじっていたのはここしばらくでした。

本書に求めていたもの

いわゆる機械学習、ディープラーニングとはなんぞや?という理論を知りたかったんだと思います。それを理解することで、専門家とは行かなくとも社内でディープラーニングは語れる存在になりたかったんだと思います。
本を選んだ基準自体は、とにかくサンプルで動かせるコードの載っている本が欲しかっただけなので、上記のような目的は潜在的な意識の中にある「技術書とはこうあるべき」という先入観だったと思っています。

それは達成されたのか

前半については否でした。
一章で概要を掴むことはできましたが、その後は詳細な理論ではなく、実践的な関数の使い方とサンプルコードでした。
ですが、後半についてはとても有益だったと感じています。
少なくとも、なにか一冊の技術書を自分でじっくり読んで、消化するという経験を恥ずかしながらこれまでしてこなかったので、とても良い経験になりました。
本書は「Pythonを用いて機械学習を実践する入門書」でした。ですので、方法論、実際のソースコードが中心なのは当然のことでした。
最終章の実践については、私もなにかテーマを決めて実践するのにちょうどいいサンプルだと考えています。

人に薦められる?

Pythonでとにかくなにか機械学習をしてみたい、という方、Pythonを触ってみたい、という方にはちょうどいいかもしれません。私自身がそれくらいの立ち位置でしたが、理解しながら読むことができました。

ただし、すくなくとも、プログラミングをある程度理解している人でないと厳しいとは思います。
サンプルコードを理解するための基礎知識はある程度必要です。また、当然ですが数学の基礎知識はないとわけがわからないと思います。

2018年9月19日水曜日

スマフォを小さくして思ったこと

iPhoneXの新型が先日発表されましたね

iPhone歴3年ですが、どんどん大きくなるなぁ、という雑な感想を持ちました。

Xperiaの小型モデル→iPhone6(16G)→iPhoneSE(128G)と移行してきて、小型のスマフォがいいと信じて使ってきましたが、最近考えが変わってきたので、そのメモをば。

小型スマフォのメリットだと思っていたこと
・ポケットに入れやすく持ち運びやすい
・片手で操作できる(指が届く

小型スマフォでデメリットを感じ始めたこと
・情報が見づらい(特に漫画。漫画や動画をスマフォで見始めたことに起因
・UIが崩れることがまれにある(ポケモンGoで改行が気持ち悪い
・親指を酷使しすぎて腱鞘炎になってきた(自業自得

また、小型はどうしても大型の下位互換商品として出やすく、スペックが抑えられがちかな、と思っています。

最近はフィットネストラッカーを導入したこともあり、小型のメリットを他で代替できるガジェットが現れた、というのが最近の考え方の変化でもあります。
片手操作についても、端末を操作するときは立ち止まれるときに操作すれば良い、タッチペンを使って親指の負担を減らす、という意味でも、小型である必要がなくなってきたと感じています。

容量増強のときもそうなのですが、自分のストレスを軽減する方向で端末を選択しています。
今回の最大の要因はズバリ漫画や動画です。
来年かそれ以降で機種変更をするときは、iPhone○Plusにしてやろうかなぁ、と思っています。

2018年9月11日火曜日

フィットネストラッカーとの生活

スマホの通知が気になってしょうがないマンのため、下記のアイテムを導入してみました。


目的は下記2点でした。
1.ラインの通知を逃したくない
2.仕事中にスマホを開く回数を減らしたい

購入の経緯
スマホ依存気味の私は仕事中にもスマホが気になってしょうがありません。
ラインの通知が一瞬バーっと着た後、少し落ち着くともうそわそわ。
次の通知はいつ来るの?と更新を連打してしまいます。
ポケットに入っているスマホが振動した気がして取り出しても、実際はなんの通知も着ていない、なんてしょっちゅうです。

これではいけない!と思いつつ友人に相談したところ、
「アップルウォッチを使ったらいいんじゃない?」
とのアドバイス。

確かに!!
Apple Payを使うかはさておき、アップルウォッチならいろいろ便利そうじゃないか。
でも、当然お値段が…

そこでガジェットオタクのマイ・ブラザーに相談したところ、
「アップルウォッチ以外にも類似品は多いぞ」
とのこと。
日本国内で販売しているものはiPhoneに対応しているものが多い(そうでないと売れないとか)らしいので、早速探してみることに。

そこで見つけたのが今回のフィットネストラッカー。
新型はディスプレイがカラーだそうですが、今回は通知確認が目的のためモノクロの型落ちでおk。


感想
見た目
地味です。デジタル時計というか、シリコンのリストバンドというか。
とてもシンプルで会社に持っていっても問題なさそうなデザイン。

目的との合致度
完璧です。ソシャゲ、Twitter時以外のスマホを開く頻度がかなり下がりました。
ライン、メールの通知をしていますが、特に問題なく通知が来てくれます。

操作感
スワイプとタッチが間違われやすい。
スワイプしたつもりでタッチ操作が行われることがそれなりに。
慣れれば大丈夫なレベルです。

ジェスチャーで腕を上げればディスプレイが表示されるため、いちいちタッチしなくて良いのもグッド。
ただし、直立時が基準のため、デスクワーク中や寝転がっている体勢からだと、一度腕を下げたほうが確実に表示されます。


バッテリー持ち
5日程度つけっぱなしでも半分くらい持ちます。
充電頻度が少なく楽です。


注意点
・ジェスチャーでディスプレイがつくため、車の運転中についたり消えたりします。
 私は手元でチカチカするのが気になってしょうがないので、運転中は外しています。
 ドライバーの皆さんはちょっと注意。
・iPhoneSEで使用していますが、通知設定をちゃんとしないと通知が来ません。
 「ロック中の画面に通知が出る」状態のものがフィットネストラッカーに通知されるため、ロック中の画面に通知が出ない設定の場合はなんの通知も来ません。そのあたりの設定見直しが必要になります。

ざっとですがレビューです。
使用してまだ一週間なので、今後も継続して使っていきたいです。

2018年1月21日日曜日

Nasne接続方法変更 TVとつなぐのをやめる

録画機、家庭内共有フォルダとしてNasneを使っているのですが、こいつがどうしても配線しづらい。

繋がないといけない線
・アンテナ線2本(IN:壁から、OUT:テレビへ)
・LAN(無線非対応)
・電源(PS4からUSBバスパワーでとれたらいいのに)

ONU(無線LAN付き)を置く部屋と、テレビを置く部屋が必ずしもイコールではないため、どうしても室内を長ーいLANで繋がないといけませんでした。
もともとPS4は遅延とか気にするゲームやっていなかったので、そちらは無線に切り替えたのですが、Nasneは上記の通りどうしてもLANケーブルが必要でした。

しかし、ある日ふと思い立った
「TVと繋いでいる意味ないんじゃないか?」

PS4との接続はLANによるホームネットワークだし(そう、NasneとPS4を直接つなぐケーブルは存在しない)、アンテナ線なんでどの部屋にもあるし、わざわざテレビの横に置かなくて良いんじゃない?
と、いうお話。
昨日模様替えの際、LANケーブルの長さ不足もあり、実験してみました。


やってみたら行ける行ける。
TV録画(ポプテピピック3話)ができる
PS4との接続もOK(録画した映像が見れる)
と、いうわけで何の問題もなし。
公式で提示されている接続方法は、きっと壁のアンテナ線のジャックが一つしかないお家の想定なのでしょうな。
だったら確かに公式で提示されている接続方法でないと今度はテレビが映らなくなる。
(これもまぁNasne上のテレビ視聴機能を使えば見れるんだけど、PS4起動がテレビ視聴の前提になる)

と、いうわけで長年の不満が解決。
無線対応版のNasneって出てないのかな…?