20170117

## twitchの配信環境セットアップ

  • 作業中の画面を垂れ流すことで強引に集中力を獲得したい
  • Stream InformationのNot Playing欄に今プレイしてるゲーム/作業を入れるとPlayingになるっぽい
  • Programmingとか入れると、自動でPlayingがCreativeになる
    • 入力したprogrammingとかはタイトルに入る

Rust開発環境作る

### Rustインストール * rustはrustup.rsで入れるのが良いらしく、brewで入れたから標準ライブラリが入ってないらしい * brew uninstallしてrustup.rsで入れ直す

$ brew uninstall rust
$ curl https://sh.rustup.rs -sSf | sh
$ vim localhost.yml # ansibleのplaybookからrust消す
  • やったけどrustcが見えない
  • PATHに何も追加されてない気がする
  • なぜかcurl https://sh.rustup.rs -sSf | lessするとpecoが起動する。。。
$ which less
less () {
peco | while read LINE
do
        $@ $LINE
done
}
  • 記憶にない謎のlessを作り出していた
    • とりあえずmoreを使ってお茶を濁す
  • 思考停止してもっかい動かすと何かよくわからない力でrustcとcargoが動いた

IntellijでRust開発環境作る

  • IntellijにRust Pluginがあるらしいのでやっていく
    • brewで入れてた時は以下のような警告が出ていた
    • No standard library sources found, some code insight will not work
    • rustup.rsで入れ直すと代わりに以下のエラー
    • invalid toolchain /usr/local/bin/cargo
      • プロジェクト作り直したら消えた
    • rustupで入れろっていうから入れたのにDownload via rustupとかでてくる
      • Intellij経由でrustup実行するとrustc src/main.rsが実行できるようになった
      • 実行はIntellijからはできないのでターミナルでやる

      $ rustc src/main.rs $ ./main Hello, world!

cargoの使い方調べる

  • Cargo.tomlで管理
    • 「Tomの理解しやすい、極小な言語」らしい
  • cargo buildでビルド
    • 生成したバイナリは./target/debugに置かれる
  • cargo runでビルド&実行を一度にできる
    • golangのgo runと同じっぽい
  • 実行ファイル名はCargo.tomlの[package] -> nameで決めるっぽい

jsonを受け取って表示するだけのプログラム作ってみる

  • 任意のjsonをパースできるライブラリ探す
  • cargoに依存を追加するのどうやるのか
    • cargo installでできる気がする
    • cargo install json_flexとかやると以下のエラー
      • error: specified package has no binaries
    • 普通にCargo.tomlに依存かいてbuildすれば良いのかな
    • Cargo.tomlに以下を追加

    toml [dependencies] json_flex = "0.3.2"

    • json_flexのサンプル動かすとエラー

    ```rust extern crate json_flex; #[warn(unused_imports)] use json_flex; use json_flex::{JFObject, Unwrap};

    fn main() { let array = json_flex::decode(r#”[1,2,3,4]”#.to_owned()); println!(“”, array); println!(“”, array.to_json());

      let array = json_flex::decode(r#"["1","2","3","4"]"#.to_owned());
      println!("{:?}", array[0].into_string());
      println!("{:?}", array.to_json());   }   ```
    
    • extern crateでimportしてるのにuse json_flexでもう一回importするのやめろって言われている気がする
    • extern crateuseの意味調べないとダメそう

TODO