2017年のまとめ
さっくりとした2017年のまとめを。といってもそこまで大したことはしてないです。やったのは以下2つぐらい。
- 転職
- ブログ移行
転職
5月にそこそこ大きめの企業からベンチャーに転職しました。この記事を退職エントリにする気もないので詳細は書きませんが、給料はだいぶ下がり、たまにブラックっぽい感じになったりしますが、自由で開発に集中できるので非常に快適です。もう総務部の雑用を押し付けられないので色々楽しいです。
ちなみに前職ではPHPやjs、pythonなどを触っていましたが、今はもっぱらgolangです。
ブログ移行
確かgithub.ioで運用していたものをはてなブログに移行したんだったと思います。github.ioで運用していたときは、hugoでやっていましたが記事を書くPCごとにhugoの環境を作らないといけないのが面倒くさくなったとかそんな感じだったと思います。少し前にhugoを確認してみたときに相当使い方が変わっていたので移行してていてよかったなーとなんとなく思っています。
まとめ
2017年の1~3月は転職するかどうかを考えている期間で心身ともにダウンしてましたが、転職後は概ね平和だったように思います。しかし、そこまで生産的な行動を取れていなかったので、2018年は何かしらできるといいなーと思っています。概ね決めたらブログ書きます。
Elasticsearchで検索結果の件数のみを取得する
elasticsearchで検索するとレスポンスに検索内容とともに検索件数が返ってきますが、検索結果のみが欲しい場合があったので調べてみました。
結果としては、そもそも件数を取得するAPIであるCount API
が提供されていました。予想としてqueryで何か書くと思っていたのですが、少々驚きです。
エンドポイントは
/:index/:type/_count
で、あとは通常の検索クエリをくっつければ検索件数が返ってきます。
詳細は以下
LinearLayoutでViewを並べる
久しぶりにAndroidのアプリを触り始めたはいいものの、View周りについてびっくりするぐらいスッポ抜けてるので基礎から復習。LinearLayoutで中にある要素をどういった形で並べるかという話。
LinearLayoutは中にある要素を縦か横に並べるためのlayoutで要素の追加方向はandroid:orientation
属性で定義されている。android:orientation=vertical
にすると、中にある要素は縦並びに、android:orientation=horizontal
だと要素は横並びに配置される。配置を工夫すると、縦並びのLinearLayoutの中に、横並びのLinearLayoutを入れて、そこだけ横並びみたいなことができる。
詳しいことは以下の公式ドキュメントから。
EditTextで左斜め上から文字を入力できるようにする
久しぶりにandroidで遊んでいる中でEditTextで文字を入力するときに、左斜め上から文字を入力できるようにしたいと思って調べたので軽くメモ。
やり方はすごく簡単。android:gravity
にtop|left
を指定するだけ。
<EditText android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="top|left" >
なんでこうなっているかというとEditTextが継承しているTextViewで定義されているからです。なので、同様にTextViewやTextViewを継承している他のものも設定できるはずです。
詳細は以下。
Rasberry Piでサーボを動かしてみた
以前Rasberry Piでカメラを使えるようにしてみたものの、この次に何をするか特に思いつかなかったので、今度はサーボを動かせるようにしてみました。サーボは色々はっつければ遊べそうなので期待大。
買ったのは以下。欲しかったのはSG90でカメラマウントは特に欲しい訳ではなかったが、何か括りつけるのに便利そうだったのでついでに購入。
SG90サーボ用 2軸 カメラマウント 2軸アングル FPV 空撮にも (マウント+2個SG90)
- 出版社/メーカー: サンクスワールド
- メディア: おもちゃ&ホビー
- この商品を含むブログを見る
今回はブレッドボードとかは使わずに直接サーボとrasberry piを接続する形にしました。
ざっくりSG90の仕様を調べてみると、赤がvcc、オレンジがPWMで茶色がgroundのようなので、それぞれrasberry piの対応するpinに接続します。
SG90の仕様は以下で見られます。
http://akizukidenshi.com/download/ds/towerpro/SG90_a.pdf
rasberry piのpin配置については公式のREADMEに記載されていました。
GPIO: Models A+, B+, Raspberry Pi 2 B and Raspberry Pi 3 B - Raspberry Pi Documentation
ソースコードは以下の方のものを参考にしました。
Raspberry Pi講座 Servo ( SG90, SG92 ) - Hobby robot laboratory
とりあえず、もりもり動くことは確認できたので、次は何かに括りつけて動かしてみたいといいな。
Rasberry Piでカメラを使えるようにした
先日rasberry piを買ってみたものの結局の所、botを運用するサーバーに成り果てているので、それっぽいことをしてみたくカメラを使えるようにしました。
購入したカメラは以下。理由は単純に評価が良さそうだったから。
- 出版社/メーカー: Raspberry Pi
- メディア: Personal Computers
- この商品を含むブログを見る
rasberry piでカメラを使うようにする手順は以下。
- rasberry piでカメラを有効化する
- カメラを接続する
rasberry piでカメラを有効化する
やり方はとても単純。
以下のコマンドでrasberry piのconfigを開く。
sudo raspi-config
Interface Optionsという項目を選んで、先頭にあるP1 Camera
を選択。そのまま有効化するかどうか聞かれるので、有効化してrebootすればいい。
カメラを接続する
こっちはちょっと難しめ。実際に動画を見ながらやると捗ると思います。
私が参考にしたのは以下。爪をあげるところから見れるのでかなり役立ちました。
実際に写真を取れるか試したいのであれば、raspistill
コマンドでお試しできるので、やってみるといいかと。
Rasberry Pi 3 model B を買ってみた
今更ながらRasberry Piで遊んでみたかったので、今の所一番新し目のRasberry Pi 3 model B を買いました。OSのセットアップをするのは嫌だったので、最初からセットアップされているものを買いました。ちなみに買ったのは以下。
Raspberry Pi3 コンプリートスターターキット (Standard)
- 出版社/メーカー: TechShare
- メディア: エレクトロニクス
- この商品を含むブログを見る
あとはifconfigでip見て、sshできるようにしたり、ノリで買ったカメラモジュールで撮影できるようにしたりぐらいです。カメラ周りについてはまた後でまとめます。
Lチカをやってみたかったり、サーボ回したりしたければ、ブレッドボードとかを買う必要があります。暇なときに秋葉原にでも行って買ってきますかね。