Emacsの構成管理をitamaeで管理

仕事とプライベート環境でemacsのフォント等設定するのがいいかげんダるくなってきたので、Itamaeを流すだけでイイカンジにするようにした

もともとどうかんりしてたのか

もともとgithubで管理していたが、さすがにFontの環境異差をちょこちょこ変えるのが面倒になった

Itamae de kanri

gitで管理しているので環境異差ある部分をitamaeで管理するように方針を転換。

1
2
3
4
5
6
7
8
emacs:
  font:
    family: Ricty
    height: 120
  packages:
    - auto-complete
  settings:
    - git

とか書いてあとはItamaeを実行することで必要なパッケージのインストール、 必要な設定へのリンク追加などをするようにしました。

おわり

これでなにも考えなくてすむようになるのかな?

Rustful Web

rust で Web Application をつくろうと思って rustful を使ってやってみてたりした。

ドキュメントと利用しているバージョンのコードが異なり、必要なモジュールが読み込めなかったり、関数の引数が異なったりしてうごかねぇってなったのでHEADを使うことで解決。

🍻

とりあえずいつものメンバーで🍻にいってきた。浅草のカンピオンエールという店でのんでそのあと隣の店でお好み焼きをたべてた。お好み焼き屋のあとは河原まであるて吾妻橋からみえる やつをながめながらビールのんでた

Use red-arrow.gem

こないだインストール した Apache Arrow がとりあえず Ruby でうごくようになったのでメモ

メモ

gemのインストールは前回のインストールを行なえば問題ないです。ですが、arrowを利用しようとすると失敗します。

1
2
require "arrow"
/home/katsu/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/gobject-introspection-3.1.4/lib/gobject-introspection/loader.rb:37:in `require':GObjectIntrospection::RepositoryError::TypelibNotFound: Typelib file for namespace 'Arrow' (any version) not found

これは GObjectIntrospectionロードに失敗しているようです。 なのでここここを参考に環境変数 GI_TYPELIB_PATH を設定すると読み込まれるようになり実行できます。

1
2
$ export GI_TYPELIB_PATH=/path/to/girepository-1.0
$ irb -rarrow

とやるとエラーがなくなります。

最後にサンプルを実行して確認しました!

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
% ruby write-file.rb
% ruby read-file.rb
========================================
record-batch[0]:
  uint8: [1, 2, 4, 8]
  uint16: [1, 2, 4, 8]
  uint32: [1, 2, 4, 8]
  uint64: [1, 2, 4, 8]
  int8: [1, -2, 4, -8]
  int16: [1, -2, 4, -8]
  int32: [1, -2, 4, -8]
  int64: [1, -2, 4, -8]
  float: [1.100000023841858, -2.200000047683716, 4.400000095367432, -8.800000190734863]
  double: [1.1, -2.2, 4.4, -8.8]
========================================
record-batch[1]:
  uint8: [2, 4, 8]
  uint16: [2, 4, 8]
  uint32: [2, 4, 8]
  uint64: [2, 4, 8]
  int8: [-2, 4, -8]
  int16: [-2, 4, -8]
  int32: [-2, 4, -8]
  int64: [-2, 4, -8]
  float: [-2.200000047683716, 4.400000095367432, -8.800000190734863]
  double: [-2.2, 4.4, -8.8]

おわり

最初ろーどえらーでこまってた

Installing Apache Arrow

最近すとうさん一押ししているapache arrowをインストールしてみた

環境

1
2
3
4
5
6
7
8
9
10
$ uname -a
Linux rin 4.9.10-gentoo #6 SMP Tue Mar 28 01:29:26 JST 2017 x86_64 Intel(R) Xeon(R) CPU E5-2620 v4 @ 2.10GHz GenuineIntel GNU/Linux
$ gcc -v
組み込み spec を使用しています。
COLLECT_GCC=/usr/x86_64-pc-linux-gnu/gcc-bin/5.4.0/gcc
COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-pc-linux-gnu/5.4.0/lto-wrapper
ターゲット: x86_64-pc-linux-gnu
configure 設定: /var/tmp/portage/sys-devel/gcc-5.4.0-r3/work/gcc-5.4.0/configure --host=x86_64-pc-linux-gnu --build=x86_64-pc-linux-gnu --prefix=/usr --bindir=/usr/x86_64-pc-linux-gnu/gcc-bin/5.4.0 --includedir=/usr/lib/gcc/x86_64-pc-linux-gnu/5.4.0/include --datadir=/usr/share/gcc-data/x86_64-pc-linux-gnu/5.4.0 --mandir=/usr/share/gcc-data/x86_64-pc-linux-gnu/5.4.0/man --infodir=/usr/share/gcc-data/x86_64-pc-linux-gnu/5.4.0/info --with-gxx-include-dir=/usr/lib/gcc/x86_64-pc-linux-gnu/5.4.0/include/g++-v5 --with-python-dir=/share/gcc-data/x86_64-pc-linux-gnu/5.4.0/python --enable-languages=c,c++,fortran --enable-obsolete --enable-secureplt --disable-werror --with-system-zlib --enable-nls --without-included-gettext --enable-checking=release --with-bugurl=https://bugs.gentoo.org/ --with-pkgversion='Gentoo 5.4.0-r3 p1.3, pie-0.6.5' --enable-libstdcxx-time --enable-shared --enable-threads=posix --enable-__cxa_atexit --enable-clocale=gnu --enable-multilib --with-multilib-list=m32,m64 --disable-altivec --disable-fixed-point --enable-targets=all --disable-libgcj --enable-libgomp --disable-libmudflap --disable-libssp --disable-libcilkrts --disable-libmpx --enable-vtable-verify --enable-libvtv --enable-lto --without-isl --enable-libsanitizer
スレッドモデル: posix
gcc バージョン 5.4.0 (Gentoo 5.4.0-r3 p1.3, pie-0.6.5)

いんすとーる

今回まだGentooにパッケージがないのでgitからインストールします。ほしいのはrubygems.orgに公開されているred-arrowをコンパイルするためにglibとこれを利用するために必要な依存パッケージとしてcppをインストールします。インストールはかんたんで cmake を実行すればインストールデキルはずです。

1
2
3
4
5
$ git clone [email protected]:apache/arrow.git
$ cd arrow/cpp
$ mkdir release
$ cd release
$ cmake .. -DCMAKE_BUILD_TYPE=Release

でリリース用パッケージがビルドされるはずですがエラーが出ます。 これはJIRAで検索した結果より gcc のバージョン情報がとれずにエラーをだしているやりとりが発見されたのでわかりました。 ログを見ると実際に取得できていないことも確認しました。で cpp/cmake_modules/CompilerInfo.cmake をみるとどうやら日本語のバージョン情報は考慮されていないような作りになっていました。 なので LANG=C をつけて cmake 再びつけて実行します。

1
2
3
$ LANG=C cmake .. -DCMAKE_BUILD_TYPE=Release
$ make
$ make install

これでC++のインストールは終了です。続いてglibをインストールします。

1
2
3
4
5
$ cd ../../c_glib
$ ./autgen.sh
$ ./configure
$ make
$ make install

でインストールできます。こちら久々に野良ビルドしたため PKG_CONFIG_PATHLD_LIBRARY_PATH の設定をわすれてただけなのですんなりいけました。 で最後に gem install red-arrow を実行して目的を達成しました!!!!11

おわり

ほんとうのもくてきは fluentd のぷらぐいんをかくことですがつかれたのできょうはここまで

Start Watching Dazn

タイトルのとおり、DAZNを見はじめた。 Netflix, Huluを契約してたけど、ぜんぜん見ていなかったので解約した。 DAZN をみようとおもったきっかけはNBAのカンファレンスファイナルをみようとおもったため。

とりあえず視聴感想ですが、表示は色々なところで言われてるとおもいますが、 接続開始時にブロックノイズが気になりますが、一旦綺麗に表示されるとそのあとは 特に気になりません。

肝心の試合内容が現在非常に残念なため試合内の評価はしません。

Raspiでdnsを運用してみはじめた

RasPi2 が3台あってつかっていないので DNS として動かすようにしてみた。 RasPi とはいえ中身は Ubuntu Linux なのでのインストールは apt install dnsmasq するだけでおわります。

はまったところ

いつもどおりはまりました。今回は以下の二点

  • /etc/dnsmasq.d/ に hosts ファイルを置くとエラー
  • /etc/hosts ファイルのパーミッションが 600 になっていたためエラー

/etc/dnsmasq.d/ に hosts ファイルを置くとエラー

ログを見ても以下のログしか出ておらず理由の調査に時間がかかった。hosts ファイルは設定ファイルではないため当然といえば当然なのですが…

1
Jan  1 00:00:08 localhost dnsmasq[673]: bad option at line 1 of /etc/dnsmasq.d/hosts

今、/etc/defaults/dnsmasq を調べてみるとそうなってました。はい。

1
CONFIG_DIR=/etc/dnsmasq.d,.dpkg-dist,.dpkg-old,.dpkg-new

/etc/hosts ファイルのパーミッションが 600 になっていたためエラー

こちらは上記問題を解決したあと、反映されないのでログを見たときにわかりました。

1
Apr  8 08:57:20 localhost dnsmasq[4733]: failed to load names from /etc/hosts: Permission denied

これの原因は itamae でファイルを送信するときに mode '644' を指定する必要があったのだが、指定せずに 送信してしまったため発生。

おわり

おわり

関連リポジトリ

https://github.com/katsyoshi/itamae-recipes

Elixirのインストール方法

Elixir Conf Japan に行きましたが、よく考えてみたら まだこの PC に Elixir をインストールしていないことに気がついたので 隣の英語のうまいおじさんにインストール方法を教えてもらいながらインストールしました1

準備

ここでは Gentoo Linux を前提としております。 まず、Elixir を動かすために Erlang をインストールします。

1
2
sudo eix-sync
sudo emerge erlang

準備はこれだけです。

インストール

次にインストールなのですが、Elixir は Earlang VM 上で動くプログラミング言語のため、コンパイルされたバイナリを置くだけでインストールがおわります。

1
2
3
4
5
wget https://github.com/elixir-lang/elixir/releases/download/v1.4.2/Precompiled.zip
unzip Precompiled.zip -d elixir
mv elixir /path/to/elixir
echo 'export PATH=/path/to/elixir/bin:$PATH' >> ~/.bashrc
source ~/.bashrc

おわり

さいごに iex を起動して確認すればおわり

参考


  1. elixir getting started, https://gist.github.com/zzak/a765d6a63860d75c4444e35f57daed13, 2017/04/01 閲覧

Basic Authenticate in H2o

H2Oでベーシック認証したい場合は以下のようにします1

1
2
3
4
5
paths:
  "/":
    mruby.handler: |
      require "htpasswd.rb"
      Htpasswd.new("/etc/h2o/.htpasswd", "realm-name")

また、 .htpasswd で plain フォーマットはサポートされていません。

1
failed to validate password using file:/etc/h2o/.htpasswd:crypt-style password hash is not supported

.htpasswd を手動で作成したい場合は以下の方法でできます2

1
2
3
4
5
require "digest/sha1"
require "base64"
open("/etc/h2o/.htpasswd", "w") do |w|
  w.write("user:{SHA}#{Base64.encode64(Digest::SHA1.digest("password"))}")
end

  1. Configure > Using Basic Authentication, DeNA Co., Ltd. et al., https://h2o.examp1e.net/configure/basic_auth.html, 2017/02/20 閲覧

  2. Password Formats, The Apache Software Foundation., https://httpd.apache.org/docs/2.4/misc/password_encryptions.html, 2017/02/20 閲覧

Blogのテーマかえた

表題のとおり、Blog(octopress) のテーマをdefaultの classics から slash に変更した。 変更の方法は以下のようになります1

1
2
3
4
5
6
$ cd ~/octopress
$ git clone git://github.com/tommy351/Octopress-Theme-Slash.git .themes/slash
$ bundle exec rake install\['slash'\]
$ bundle exec rake generate
$ bundle exec rake preview
$ bundle exec rake deploy

ついでにfaviconもかえよう。


  1. Octopressのテーマを変更してみよう!, facestarbaby, http://qiita.com/fakestarbaby/items/ab532088453105e1bea4, 2017/02/12 閲覧

2016年買ってよかったもの

おおきな買いものなかったなぁとおもったが、わりとあったので書きとめておく

Acer H6510BD フルHD プロジェクターYAMAHA YSP-1600

このふたつはもともとホームシアターが欲しいなぁということで買いました。 プロジェクターは、4Kはまだまだ高いので音がうるさいの気にしないでもいいので FullHD のやつが欲くて購入。スピーカーもBTが利用できればいいなっておもってたのでこいつにしてたら、HDMIのパススルーができると聞いたので購入これも比較的安価だったので購入。 両方とも割と安く手に入るところが魅力でしたので購入、現在は主にAmazon Prime Videoの鑑賞に利用しています。

Sony Cyber-shot DCS-RX100M3

携帯をiPhoneからNexusに変更してからずっとカメラに不満だったので購入。これはカメラとの連携アプリがわかりやすいので大変よい買いものでした。

Philips Noodle Maker

こいつは買ったのではなく、頂きものですが、ずっとwish listに入ってたのでここに。 まだ1回しか使ってないけど、わいわい製麺できてたのしいので1台あると便利です。

おわり

おわり