カーシェアを使ってみた

カリテコ申し込みした

カリテコというサービスを契約した。なぜ数あるカーシェアサービスのうちでカリテコなのかというと、自宅近くに複数の駐車場があったからだ。それ以上の理由は特に無い。

ICカードが届いた

申込みをしてしばらく経ったらICカードが送られてきた。 f:id:hkou:20170402203318j:plain

カーシェアやってみる

予約から乗車までの大まかな流れ

  1. カリテコのサイトからログインして、借りる時間を設定する。
  2. ステーション(車がおいてある駐車場)の一覧が表示されるので、開いているところを選ぶ。
  3. 予約が完了すると予約確認メールが通知されてくる。
  4. 駐車場まで行って、車後部窓ガラスにICカードをかざしてドアロック解除する。
  5. グローブボックス内に車の鍵が入っているので抜き取る。
  6. 運転する

感想

  • まだ2台しか利用してないけど、近所の車の車内は非常に綺麗だった。変な匂いもしないし(禁煙)ゴミが落ちていることもない。
  • 雑な運転をしていると音声で警告をしてくる。わりと鬱陶しいので慎重に運転するようになった。ただ全部の車が警告してくるわけでもないらしく特に何も言わない車もあった。
  • レンタカーみたいに給油して返さなければならないわけではないので非常に楽。
  • 予約時間を見極めるのは結構面倒。一度多めに予約時間をとってしまったために1時間ぐらい無駄にしてしまったことがあった。タイムズカーシェアは予約時間よりも早く返却するとその分料金が減るらしい。
  • 名鉄協商パーキングが無料で使えるのは地味に便利。たまに車で行く場所の近くにパーキングがあったので良い。

TensorFlow環境構築メモ(Windows10)

CUDAのインストール

以下の公式サイトからインストーラをダウンロード

developer.nvidia.com

cuDNN のインストール

ユーザー登録が必要

NVIDIA cuDNN | NVIDIA Developer

Anaconda

Pythonのバージョン管理はanacondaを利用する。

インストール

公式サイトから64ビット版インストーラをダウンロード
Download Anaconda Now! | Continuum

tensorflow用の環境を作成

conda create -n tensorflow python=3.5

tensorflow用の環境に入る

C:\Users\<user>>activate tensorflow

(tensorflow) C:\Users\<user>>

作図ライブラリ(matplotlib)インストールする

(tensorflow) C:\Users\<user>>pip install matplotlib

Jupyter Notebookのインストール

(tensorflow) C:\Users\<user>>pip install jupyter

Jupyter Notebookの起動

(tensorflow) C:\Users\<user>>jupyter notebook

環境の一覧を取得

C:\Users\<user>>conda info -e
# conda environments:
#
tensorflow               C:\Users\<user>\Anaconda3\envs\tensorflow
root                  *  C:\Users\<user>\Anaconda3

「Haskellによる関数プログラミングの思考法」買った

今読んでいる。

最初の方の練習問題を少しやった。
stackで最新のHaskell環境を落としてきてやっているが、最新のghciは関数定義するときにletしなくてもよくなっているようで少しやりやすくなった。

gist.github.com

4Kモニタを買った

買ったのはコレ

Acer CB281HKbmjdprx www.acer.com

XPS15に接続して使っている。
HDMI接続だと規格が1.2だからか4K出力で30fpsになっちゃうのでしょうがないからDisplayportで接続するしかない。
ただXPS15にはDisplayportは無いので、代わりにUSB-C端子から下記のUSB-C→Displayport変換アダプタを噛ませて接続している。
ちゃんと60fps出力されているもよう(マウスがカクカクしない)

www2.elecom.co.jp

SFTPサーバーをさくっと立ち上げる

開発用にSFTPサーバーが必要になり、とりあえずの接続確認程度が出来れば良かったのでDockerでサクッと構築した。以下その時のメモ

Docker image

これを利用させてもらう。

https://hub.docker.com/r/atmoz/sftp/

以下コマンドで実行

  • SSH鍵を使わずにユーザーIDとパスワードのみの認証(ユーザーID:test_user, パスワード:test_pass)
  • ホスト側のポート122にポートフォワード
docker run --name sftpserver -p 122:22 -d atmoz/sftp test_user:test_pass:::upload

WinSCPで接続確認

  • Host name: localhost
  • Port number: 122
  • User name: test_user
  • Password: test_user

f:id:hkou:20170205105421p:plain

Login押下したら、先程作成したuploadディレクトリにアクセスすることが出来た

f:id:hkou:20170205105631p:plain

Rust1.14でWebAssemblyを出力する(Windows10)

つい先日、Rust 1.14がリリースされた。
1.14の大きな変更点としてWebAssemblyのコンパイルが出来るようになった。
「experimental support for WebAssembly」とのことなのでまだまだ実験段階みたいな感じらしいがとりあえず試してみた。

blog.rust-lang.org

Rust 1.14にアップデートする

rustup経由でのインストールが推奨されている。
細かな手順については、以前書いた以下の記事を参照(rustupでのインストールを追記した)。

hkou.hatenablog.com

1.14にVersionUpされていることを確認する。

>rustc --version
rustc 1.14.0 (e8a012324 2016-12-16)

Visual Studio 2013のインストール

Emscriptenコンパイルをするために必要。
注意点:VS2013(2015とか2017ではない)
自分の環境ではVS2015が既に入ってたので、それで代用しようとしたけど上手くいかなかった。

Microsoft Visual Studio Express 2013 for Windows Desktop Update 5

Download Microsoft Visual Studio Express 2013 for Windows Desktop Update 5 from Official Microsoft Download Center

Visual C++ ツールセットを有効にする

以下のコマンドを実行する。

"C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\vcvarsall.bat" x86_amd64

cmakeのインストール

以下のリンクから、「cmake-3.7.1-win64-x64.msi」をダウンロードしてインストールした。

Download | CMake

インストールされたことを確認

>cmake -version
cmake version 3.7.1

CMake suite maintained and supported by Kitware (kitware.com/cmake).

Emscriptenのインストール

RustからWebAssemblyを実行するにはversion1.37が必要だが、インストーラとして提供されているのは現時点で1.35なのでインストールしたあとにversion upしてやる必要がある。
とりあえず以下のページからインストーラー「emsdk-1.35.0-web-64bit.exe」をダウンロードしてインストールする。

Download and install — Emscripten 1.36.14 documentation

1.37にupdate

以下のコマンドを実行。コンパイルがはじまるので終わるまで気長に待つ(40分ぐらいかかった)

emsdk update
emsdk install sdk-incoming-64bit

コンパイルが終わったら以下のコマンドを実行して有効にする。

emsdk activate sdk-incoming-64bit

1.37になったことを確認する。

>emcc -v
emcc (Emscripten gcc/clang-like replacement + linker emulating GNU ld) 1.37.1

Rustコードコンパイル

WebAssemblyのtargetを追加

以下のコマンドを実行してtargetを追加

rustup target add wasm32-unknown-emscripten

Rustコード

とりあえずRust BlogのSampleどおりにHelloWorldのコードを書いて保存。(hello.rs)

fn main() {
    println!("hello world");
}

WebAssemblyにコンパイルする

RustBlogのコマンドそのままだと上手く動かなかった。Windowsの場合、linkerを明示的に指定してやる必要がある。(-C linker=emcc.bat の部分)

rustc --target=wasm32-unknown-emscripten -C linker=emcc.bat hello.rs -o hello.html

コンパイルが成功すると以下のファイルが生成される。

f:id:hkou:20170107101002p:plain

WebAssemblyの実行

Chrome Canaryのインストール

現行のChromeだとWebAssemblyに対応していないようなのでChrome Canaryをインストールする。
以下のリンクからインストーラをダウンロードしてインストールする。

www.google.co.jp

WebAssemblyの有効化

Chrome Canaryのアドレスバーに「chrome://flags/#enable-webassembly」を入力してエンター
プルダウンメニューを有効にしてChrome Canaryを再起動する。

f:id:hkou:20170107101432p:plain

Server立てる

htmlとかwasmが生成されたディレクトリで以下のコマンドを実行する。

python -m SimpleHTTPServer

hello.htmlへアクセス

Chrome Canaryで「http://localhost:8000/hello.html」にアクセスする。
hello worldが表示された。

f:id:hkou:20170107101924p:plain

参考にしたページ

Announcing Rust 1.14 - The Rust Programming Language Blog

rustc fails to compile to asmjs on Windows · Issue #38489 · rust-lang/rust · GitHub

RustからWebAssemblyにコンパイルしてみる - fine, later feeling