basyura's blog

あしたになったらほんきだす。

Elasticsearch: The Definitive Guide を kindle で読む

Elasticserch のドキュメント。

web でも読めるけど電子書籍もある。

さらに GitHub で公開されている。amazon で買っても良かったのだけど、結構値がはるので・・・GitHub にあるものを有りがたく使わせてもらう。

必要なツールをインストール。

$ brew install asciidoc
・・・
$ brew install source-highlight
・・・
$ brew install Caskroom/cask/calibre
・・・

GitHub からソースを取得。

$ git clone https://github.com/elastic/elasticsearch-definitive-guide.git

こちらを参考に変換をかける。

$ asciidoc -n -d book -b html5 -a toclevel=2 book.asciidoc

a2x で変換がうまくできなかったので calibre で mobi に変換。その後に Send to Kindle で送信。

MacVim + Ruby 2.3

rbenv に乗り換えて ruby 2.3 を入れたまでは良かったけど vim から見える ruby がシステムデフォルトの 2.0 になってた。rvm を使っていたときは DYNAMIC_RUBY_DLL か rubydll で libruby.*.dylib を指定していたように思うけど設定ファイルを消失してしまって思い出せない。dropbox の履歴が去年の 11 月までしか見れず、"旧バージョンを表示" リンクを選んでも直近の履歴が表示されてループする (バグ?)。.rbenv 配下に dylib が無いようなので vimrc でパスを通したら動いた。

let $PATH = $HOME. '/.rbenv/shims:' .  $PATH
let $GEM_PATH = $HOME . '/.rbenv/versions/2.3.3/lib/ruby/gems/2.3.0'

set rubydll すると rubydll=libruby.2.0.0.dylib が出力されるけど、puts RUBY_VERSION が 2.3.3 って出るし gem も読んでくれてるのでとりあえず ok かな。

Firefox をリフレッシュ

常用している Firefox が重くなった気がしたのでリフレッシュしてみた。

ヘルプ → アドオンを無効にして再起動

f:id:basyura:20170107204940p:plain:w300

Firefox をリフレッシュ

f:id:basyura:20170107205012p:plain:w300

Firefox をリフレッシュ

f:id:basyura:20170107205036p:plain:w300

インストールしてた拡張

  • Evernote Web Clipper
  • Greasemoneky
  • Hatena Bookmark
  • KeySanil
  • NoScript
  • Paper
  • right_click_close
  • Stylish
  • ブックマークを新しいタブで開く
  • ロケーションバーから新しいタブを開く

Greasemoneky はほぼ使ってなかったので入れ直してない。NoScript の代替が無いものか。Hatena のページが読み込み中のままになるんだよな。

リフレッシュした結果・・・特に変わらない。

about:config の設定を毎回変えるのもだるいので、今更ながら常用してる keysnail の設定に書いてみる。

util.setPref("browser.tabs.closeWindowWithLastTab", false);
util.setPref("browser.sessionstore.max_tabs_undo", 50);
util.setPref("browser.tabs.loadDivertedInBackground", true);

便利。

Docker - GitLab を立てる

Docker で GitLab を立ててみる。

README にそって動かす。

$ docker pull gitlab/gitlab-ce
$ docker run --detach \
             --hostname localhost \
             --publish 443:443
             --publish 80:80
             --publish 22:22 \
             --name gitlab \
             --restart always \
             gitlab/gitlab-ce:latest

$ docker exec -it gitlab /bin/bash

http://localhost/ にアクセス。ログインしてユーザを作って commit & push できた。

Docker for Windows

mac でいい感じに動くのは分かったのだけど windows ではどうなのだろうか。

  • The current version of Docker for Windows runs on 64bit Windows 10 Pro, Enterprise and Education (1511 November update, Build 10586 or later). In the future we will support more versions of Windows 10.
  • Nested virtualization scenarios, such as running Docker for Windows on a VMWare or Parallels instance, might work, but come with no guarantees (i.e., not officially supported).

what-to-know-before-you-install

最新バージョンは Windows10 でしかサポートされてなかった。かつ VMWare では “たぶん動くけど保証してない” 状態。手元には VMWare Fusion の Windows しかないけど動いたので以下に記載。

VMWare の設定

f:id:basyura:20170105174901p:plain:w300

「この仮想マシンでハイバーバイザーアプリケーションを有効にする」にチェックを入れておく。

Windows10

インストーラをダウンロードして実行するだけ。hyper-v を有効にするか?と聞かれるので ok を押して進める。

f:id:basyura:20170105175033p:plain:w300

特に問題なく実行できた。apt-get update からの apt-get upgrade してからの apt-get install vim で vim も動かせた。

Windows8.1

同じようにインストーラを実行したところエラーがでた。

Running pre-create checks...
Error with pre-create check: "This computer doesn't have VT-X/AMD-v enabled. Enabling it in the BIOS is mandatory"
Looks like something went wrong in step ´Checking if machine default exists´... Press any key to continue...

Windows10 以外では docker toolbox を使うようだ。

ダウンロードしてインストール。こちらも特に問題なく ubuntu を起動できた。

まとめ

これまた、もっと速く知ってればあんな苦労やこんな苦労しなくても済んだのにっていう。仕事のアプリケーションは Windows 環境で動作するので docker の恩恵があまり受けられないのだけど、docker ベースだったらあんな苦労やこんな苦労もしなくて済んでるのにな。.Net Core が進化すれば linux 版の SQL Server もあるし移行できなくはなさそうだけど。

Windows で動いたのは嬉しいけどターミナルがやっぱりちょっと・・・。Window10 でかなりマシになったのだけど。cygwin ck に代わるものを早いとこ探さなきゃ。

Docker の一番いいところはアイコンがカワイイところだな。

Docker 入門

ずっと気になっていたのだけどようやく着手。これは便利だ (みんな知ってる)。

「docker」でググって入門を調べてみたりしたのだけど最初から本家を見ればよかった。ただ、2014 年から更新が止まっているようなのだけど Docker入門 は概要を把握しやすくてよかった。

以下、入門手順。

インストール @ Mac

Homebrew を使う方法もあるようなのだけど、本家の mac 版インストーラを使用。ダウンロードして実行するだけ。

入門

Get started に従う。

docker で起動しているコンテナの一覧を表示

$ docker ps

CONTAINER ID        IMAGE     COMMAND                   CREATED             STATUS                PORTS                                    NAMES
185fabcd9c5d        nginx       "nginx -g 'daemon off"   13 minutes ago     Up 11 seconds      0.0.0.0:80->80/tcp, 443/tcp    webserver

起動していないコンテナの一覧も表示

$ docker ps -a

CONTAINER ID   IMAGE        COMMAND                 CREATED         STATUS                     PORTS                         NAMES
185fabcd9c5d   nginx        "nginx -g 'daemon off"  15 minutes ago  Up About a minute          0.0.0.0:80->80/tcp, 443/tcp   webserver
10bc8846eada   hello-world  "/hello"                17 minutes ago  Exited (0) 17 minutes ago   

コンテナを止める

$ docker stop webserver

コンテナを削除す

$ docker rm -f webserver

イメージの一覧を表示 (rm してもイメージは削除されていない)

$ docker images

REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
nginx               latest              01f818af747d        6 days ago          181.6 MB
hello-world         latest              c54a2cc56cbb        6 months ago        1.848 kB

イメージを削除する

$ docker rmi nginx

Untagged: nginx:latest
Untagged: nginx@sha256:fab482910aae9630c93bd24fc6fcecb9f9f792c24a8974f5e46d8ad625ac2357
Deleted: sha256:01f818af747d88b4ebca7cdabd0c581e406e0e790be72678d257735fad84a15f
Deleted: sha256:473ebc9bec6f78c39877b6655ff7c464271d36464442ed27b10be957201e364a
Deleted: sha256:1802fbcbaa5e7496944e22a9fd0cb72051515a66e382b7148cf4098a92571221
Deleted: sha256:b6ca02dfe5e62c58dacb1dec16eb42ed35761c15562485f9da9364bb7c90b9b3

ubuntu を入れてみる

Get started に従って使い方が分かったので ↑ を参考に ubuntu を入れてみる。

$ docker pull ubuntu:latest
  → latest を指定しない場合は latest がつく

$ docker run -it --name ubuntu_test ubuntu /bin/bash
  → ubuntu イメージから ubuntu_test という名前でコンテナを作る
  → 名前を指定しない場合は自動で付けられる
  → 指定しない場合は /bin/bash が指定される

$ docker start ubuntu_test
  → イメージの再実行

$ docker exec -i -t ubuntu_test /bin/bash
  → ログイン

centos を入れてみる

ubuntu のインストールで感じがつかめたので勘で centos を入れてみる

$ docker pull centos
  → イメージを取ってくる

$ docker run -it —name centos centos
  → centos のイメージから centos という名前のコンテナをつくる

$ docker start -i centos
  → 対話モードでコンテナを起動

できた。

zsh completion

補完が欲しくなったのでダウンロードしてインストール

まとめ

便利。びっくりするぐらい便利。公式サイトから iso をダウンロードしてきて VMWare に食わせて起動することを考えると何倍も楽。一瞬で作れる。イメージからコンテナを別名で作れるのも楽。VMWare に比べて cpu 使用率が低いのが一番うれしいかも。VMWare の謎 CPU 使用率は結構辛い。Windows もどドッカーンと作れると嬉しいのだけど。VMWare Fusion が windows 10 と相性が悪いのかいつの間にか再起動地獄に陥るので辛い。windows 8 に切り替えて様子見。

さっさと Docker に取り掛かってればアレもコレも楽だったのにと悔やまれるけど、いい感じに入門できた。