2017年2月5日日曜日

Raspberry Pi 3 Model Bで遊ぶ

今日のご飯が何かを確認したいためのラズパイカメラ作成

この前RaspberryPi 3 Model Bを買ってそこら辺に転がってたUSBカメラと繋げて台所に出て来るご飯をブラウザ上から見られるようにしたのでその時の経緯を記載.

  1. NOOBSを使ってRaspbianを入れる
    お前初心者かよwwと煽っているわけではないです.ラズパイ用に作られたDebianベースのOSであるRaspbianとかを簡単にインストールできるようにしたインストーラーです
    NOOBSダウンロードページでNOOBS落としてSDカードにブチ込んで終了.
  2. Raspbianを起動してsshdをRaspbian起動時に起動させるようにする
    sudo apt-get install sysv-rc-confでsysv-rc-confを入れてRaspbian起動時設定してもうまくいきません.
    どうやらRaspbianはsystemdで制御しないとだめみたいです.
    参考(自分がテラテイルで質問したやつ)
  3. IP固定設定をする
    これはそこら辺ググったら出てくるので投げちゃいます.
  4. uv4lのインストールをする
    uv4lっていうinstallしたらほぼほぼ何もしなくてもブラウザ上でWebカメラを見られるようにできるやつを使う.参考ページ(Qiita)を見ればおk.
  5. 確認
    以下の画像のようになってたらおk.

  6. ポート開放やその他
    僕はローカルのみでの運用なのであまり設定してないけどssh(22)とかuv4l(8090)で使うのポート変更&開放をする.

以上でおしまい!
本当はpythonとか使って自分でWebカメラキャプチャ用のプログラムとか組みたかったんだけど調べてる途中で面倒になってやめました・・・w
今後機会があればまたやってみたいと思います.

2017年1月23日月曜日

Macにpython環境を適当に作る

ラズパイで適当に遊ぼうと思って調べてたらpythonでプログラム作りましょうねーー^^
って感じだったのでMacに環境を作ってみた

  1. Brew入れる
    自分はもともと入れてたのでスキップ
  2. pyenvを入れる
    $brew install pyenv
  3. Anakondaちゃんをpyenvを使って入れる
    $pyenv install -lでインストールできるやつを表示
    $pyenv install バージョン指定でanacondaとかminicondaを入れる
    minicondaは最低環境のみインストールするらしい.
    # Anaconda pass
    export PATH="/Users//.pyenv/versions//bin:$PATH"
    これをホームディレクトリの.bash_profileとかに書いてcondaのパス通す.
  4. バージョン切り替えをpyenvでやってもいいけどAnacondaちゃんと喧嘩しちゃうのでAnaconda内で仮想環境?を作ったらいいみたい.
    $ conda create -n py27 python=2.7 anaconda 環境作成
    $ source activate py27 仮想環境に移行
    $ source deactivate 仮想環境にさよならバイバイ
    $ conda info -e 今何使ってるか/何があるか表示

AnacondaにあるSpyderを適当に動かしてみる

動いた :D

参考

Pythonの環境構築 on Mac ( pyenv, virtualenv, anaconda, ipython notebook )
Anaconda で Python 環境をインストールする
conda で python の環境つくり

pythonとは関係ないけどgistにmarkdownで書いて一つの記事として扱うのは賢いと思った.俺も使ってこ

2017年1月19日木曜日

TGL勉強会に行きました【キレイなコードの書き方】

ちょっと前に記事で書いていたUnityはいろいろあってとりあえず凍結しました.


勉強会の内容は

タイトル内容
綺麗なコードの定義,説明インデント,空行,並び順,名前,コメントを駆使した見た目の重要性の説明
グループ活動見たくもないクソコードをグループで解析してどこがゴミかを発表
まとめグループ活動で発表したクソコードの問題点のまとめ.資料のススメ

という感じでした.

今回学習した要点まとめ

  • 本来コードとは小説のようにすらすらと読めるものである
  • 人間はブロックで理解するのでソースコードをブロックに分けて書くことが大切
    • 空行を入れる
    • メソッドが長い場合(目安としては50行以上),別のメソッドを用意して処理を移す.
    • インデントを正そう()
  • JSで言うと「JSLint,JSHint,ESLint」などのコードチェックツールをいれましょうねー^^
  • 公開度の高い順に並べましょう(上からpublic->なし->protected->private)
  • メソッドは動詞で書くようにする
  • TODO:FIXME:OPTIMIZE:HACK:REVIEW:などのアノテーションコメントを活用する
  • コメントは常に正しくメンテナンスしよう
    • 正しくないコメントは無い方が良い
  • BeautifulCode買っとけ
  • Readableodeも買っとけ

アクセス修飾子の種類(忘れるのでメモ)

種類 説明
public 全てのクラスからアクセス可能
protected 同じクラス内、同じパッケージ、サブクラスからアクセス可能
なし 同じクラス内、同じパッケージからアクセス可能
private 同じクラス内のみアクセス可能

(http://www.gamesite8.com/archives/588322.html より)


汚ソースを見て思ったこと(他グループ含む)

  • 1クラスに対して量が多い
  • メソッド名関係
    • 名前が長い(1画面に収まりきらなくなっている)
    • 意味がわからん
    • 日本語と英語を混ぜるな(getGoukeiMoney)
  • コメント関係
    • 引数の説明が無い
    • docの表記に合わせる
    • コメントに嘘混在
    • 変数名でわかるのにコメントが有る
      • e.g.)String Myname; // ぼくのなまえ!!
  • returnで返せる場合は先に返す(これはリーダブルコードに書いてあったのを俺が適当に言っただけだからこの汚ソースにはなかったかも)
  • foreachのネストにforeach ▂▅▇█▓▒░(’ω’)░▒▓█▇▅▂うわあああああああ
  • 否定文をできるだけ肯定文にして書く
  • 三項演算子は単純なときのみ使用
    • (個人的に使うなは言い過ぎ)
  • 引数が多い場合は配列に入れて渡す
  • 無駄space
  • spaceと空行の混在
  • メソッド名と内容の不一致
  • 引数で渡されていて,使われていないものがある
  • マジックナンバー多い

他のグループの意見も入れるとこのぐらい上がりました.以上から論外を抜くと自分がやっちゃいそうなことを抽出すると

  • メソッド名関係
    • 意味がわからん
  • コメント関係
    • docの表記に合わせる
  • foreachのネストにforeach
  • 否定文をできるだけ肯定文にして書く
  • 引数が多い場合は配列に入れて渡す
  • 無駄space
  • spaceと空行の混在
  • メソッド名と内容の不一致

マジックナンバーとはなんじゃらほい

マジック・ナンバーとは,ソース内に埋め込まれた,プログラマ本人にしか意味が分からない数値のこと

(http://itpro.nikkeibp.co.jp/article/COLUMN/20070820/279836/ より)
_BkってのがあってBackの略(裏方の処理用らしい)って言われたけど,まじで意味不明だった.Bk201しかでてこない...


2017年1月2日月曜日

UNITY1週間でなんかつくる[9日目]

今日は時間があるので現状整理

日付 やること
12/25 何するかを決める
→この前の駅アプリをちゃんと作る
12/26 休憩( ˘ω˘)スヤァ
実装内容決め
  • どこの駅に向かっているかのツイート実装
  • ローカル通知の実装
  • コードの見直し
  • TGLで実装できなかったものを実装
12/27 Twitter用Asset[Let's Tweeet in Unity]の勉強[半分終了]
12/28 ローカル通知用Assetの勉強[延期]
12/29(今日) Twitter用Asset[Let's Tweeet in Unity]の後半勉強[ある程度終了]
ローカル通知用Assetの勉強[まだ]
ライセンスの確認[終了]
コードの見直し及び修正[まだ]
12/30 上記2つのAssetを導入[まだ]
12/31 TGLで間に合わなかった案を実装及びコード修正[まだ]

途中から何にもできてねぇ・・・
エロゲしてたからですねそうですね...

2016年12月29日木曜日

UNITY1週間でなんかつくる[5日目]

今日は時間があるので現状整理

日付 やること
12/25 何するかを決める
→この前の駅アプリをちゃんと作る
12/26 休憩( ˘ω˘)スヤァ
実装内容決め
  • どこの駅に向かっているかのツイート実装
  • ローカル通知の実装
  • コードの見直し
  • TGLで実装できなかったものを実装
12/27 Twitter用Asset[Let's Tweeet in Unity]の勉強[半分終了]
12/28 ローカル通知用Assetの勉強[延期]
12/29(今日) Twitter用Asset[Let's Tweeet in Unity]の後半勉強
ローカル通知用Assetの勉強
ライセンスの確認[終了]
コードの見直し及び修正
12/30 上記2つのAssetを導入
12/31 TGLで間に合わなかった案を実装及びコード修正

Let's Tweet in UnityについてはIwamotoBlog
ライセンスについてはITキヲスク
のページが役に立った

予定は予定通りにいかないものなの...

2016年12月27日火曜日

Unity1週間でなんかつくる

年末までの一週間でなんか作ろうかなと

日付 やること
12/25(昨日) 何するかを決める
→この前の駅アプリをちゃんと作る
12/26今日 休憩( ˘ω˘)スヤァ
実装内容決め
  • どこの駅に向かっているかのツイート実装
  • ローカル通知の実装
  • コードの見直し
  • TGLで実装できなかったものを実装
12/27 Twitter用Asset[Let's Tweeet in Unity]の勉強
12/28 ローカル通知用Assetの勉強
12/29 コードの見直し及び修正
12/30 上記2つのAssetを導入
12/31 TGLで間に合わなかった案を実装及びコード修正