ばかおもちゃ本店:Youtube twitter:@sashimizakana Amazon.co.jpアソシエイト

2017年7月16日日曜日

VSCodeでArduinoのコードを書く

Visual studio codeのArudino拡張がOSS化したというニュースを見た。
OSS化も何も、そんなものあったのか、と思って試してみた。
結論から言うと、結構使いやすいです。使う。

ここ最近は、デフォルトで使ってもそれなりに使いやすいことから、もっぱらVSCodeを使っている。仕事なんかだと、結構あっちやこっちでとりあえずコード書ける状態を作って作業するみたいなことがあるので、ライセンスを気にせずデフォルトでも書きやすいと嬉しい。それから、VSCodeに問題があってもGithubのイシューへの対応も早かったりする。これはよいことです。
で、コード書く環境ってあんまりあれこれ変えたくない。特にArduinoの標準の開発環境は使いやすいとは言いづらい。学習用途だからわざとだったりすんのかもしれないけど、たまにしか書かない言語でインテリセンスとかないと現代っ子はダルい訳です。
そういうことからArduino拡張を使ってみる。

1. 使わなくともArduino IDE入れておく必要があります。

2. インストールは拡張のライブラリから調べるだけなのでアレしてください。

インストールしたらコマンドパレットからArduino initializeとかしたら現在開いているフォルダ下に設定ファイル作ったりメインルーチンのファイル作ってくれたりします。シリアルポート設定したりボードの種別設定してArduino uploadでスケッチをアップロードできます。そしてお前はクソほど文字化けしてる出力を見ることになるんだ!



Arduino IDE自体の設定で言語設定をEnglishにしておけば英語出力になるので、ひとまずの精神の安定は保たれます。だいたいエラーメッセージなんて日本語である必要ないでしょう。MSDNの日本語訳とか英語原文より分かりにくいこと多いだろアレ…。

文字化けしてる原因はVSCodeの出力(ターミナルじゃなくて)がUTF-8じゃないせいだとかどうとかいうイシューがあったけど未対応っぽいので、詳しい人はアレ投げてアレしてもらったら良いんでないですかね。

2017年7月2日日曜日

AWS Cognito user pools使ってみた

JavaScriptのライブラリがJAVAっぽいのと、個人的な印象ではAWSのSDKってたいがいあんまり使いやすい感じなくてこれもそう。使ってる感じだと、同じような認証システムだとFirebaseとかのが使い。とはいえ、現状でAPI Gatewayの認証付きエンドポイントにリクエスト投げるみたいな役割で使いたいのでFirebase使うわけにもいかない。
cloud functionsがベータじゃなくなればGoocle cloud endpoints + cloud functionsとかで代用したほうが色々幸せになれるかもしれない(あまりよく知らない)。
あとそんな感じの用途で使うとIAMの設定が毎回辛い。私はIAMの設定を雰囲気でやっているしARNも雰囲気で把握している。このあたりAWSの制作チームは採用まで含めて完全に機能ごとに独立してるって聞いたのでそのせいなのかなと思うけど、毎度ARNが書いている位置が違ったり、そもそも書いてなくてnameとかから推測したり(多い)、不便極まりない。リソースごとにARN必ず表示するとか表示位置固定するとかやってくれないかなと切に思う。

とか色々文句ばっかり書いているけど、アプリでユーザー登録+パスワード変更とAPI Gatewayのエンドポイント認証させて叩くくらいまでなら一日で出来たので、すげー簡単と言えばすげー簡単かなという気もする。もし今自分が情報システムみたいなものがあまり無い中小企業に転職して、金かけずに一人でユーザー認証とか社内アプリとか作ってくれって言われたら、こんな感じのものを適当に組み合わせて作ると思う。
なんせCognito user poolsなんて普通に社内システムとして使うなら、よほど社員数の多い会社じゃない限りは無料枠で収まる。

2017年6月28日水曜日

pHAT三種買った

PimoroniからpHATを三種買った。


pHATというのはPimoroniが作っているRaspberryPi用の拡張ボードで今回買ったのはRaspberry Pi Zeroのサイズにぴったりのもの。装着するとちょうどRpiZeroのボードと同じサイズで重なるような感じ。

買ったのはスピーカー拡張のSperker pHATと、LEDマトリクスのScroll pHAT HD、カラーLEDマトリクスのUnicorn pHAT。どのモジュールもPythonのライブラリが公開されていて、ちょこっと使うなら簡単そう。

Pimoroniは送料も安くて、届くのも一週間程度なので使いやすいです。
スイッチサイエンスで買ってもそこまでの値段の差がないので、ケチらないならそっちでも良いかもしれない。

2017年6月13日火曜日

がんばらない

仕事でプログラムを書くとき、ややこしかったり、大きくなりそうな箇所に差し掛かると、とにかく「ゆっくりやる、ゆっくりやる、がんばらない、がんばらない」と念じて書いてる。そうすると集中力の途切れるまでの時間が多少は伸びる。ゆっくりやろうと思ったところで、さほど手の速度が落ちるわけでもないし、トータル早いし楽になる。そんな気がする。ライフハック。

2017年6月7日水曜日

npm-run-script実行時にwindowsとlinuxで統一的に環境変数を扱う

Node.jsでプログラム開発時なんかにnpm run scriptを利用することがよくある。で、開発中なのでデバッグ用の引数とか環境変数なんかを渡して実行することがあるのだけど、これはただのコマンドなので環境変数の指定の仕方はOSに依存する書き方になる。

Windowsのcmd.exeならset hoge=fuga&& node index.jsみたいな感じになるし、Linux系のshの場合はhoge=fuga node index.jsという書き方になる。PowerShellの場合また違うはずだけどよく知らない。

で、完全に実行や開発環境が同OSで固定されていればなんの問題もないのだけど、そうじゃないときもある。例えば、クライアントとサーバーがWindowsとLinuxで、同じスクリプトを利用するというようなときがある。もちろん、OSごとにscriptsに書いても良いんだけど、面倒くさい。で、調べてみるとcross-envというパッケージを使うのが定番らしい。

https://www.npmjs.com/package/cross-env

scriptの頭にcross-envを読んで、あとはshと同じ書き方で設定すれば、OS問わず環境変数を設定してくれるようになる。つまり、"cross-env hoge=fuga node index.js"とすればあとはcmd.exe上でも問題なく環境変数に設定してくれる。便利。