IRubyはじめました
表題のとおり、 IRuby をはじめてみました
インストール
インストールは簡単で gem install iruby
でいけますが、私の利用している環境では依存している czmq が古かったので手動でインストールして回避しています。
git clone https://github.com/zeromq/czmq.git
cd czmq
./autogen
./configure --prefix=${HOME}/.local
make -j4
make install
gem install iruby cztop
LD_LIBRARY_PATH=${HOME}/.local/lib iruby
でインストールと動作はできます。画像貼るのがメンドイので ipython
貼っておきます。
{
"cells": [
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
" <script>\n",
" requirejs.config({paths: { 'plotly': ['https://cdn.plot.ly/plotly-latest.min'] }})\n",
" </script>\n",
"\n",
"\n",
"<div id=\"c34db0db-dc37-4ae3-a2b3-33ab99830b89\" style=\"height: 100%; width: 100%;\"></div>\n",
"\n",
"<script>\n",
" require(['plotly'], function(Plotly) { \n",
"Plotly.newPlot(\n",
" 'c34db0db-dc37-4ae3-a2b3-33ab99830b89',\n",
" [{\"x\":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20],\"y\":[100,81,64,49,36,25,16,9,4,1,0,1,4,9,16,25,36,49,64,81,100],\"type\":null,\"mode\":\"\"}],\n",
" {\"width\":1000,\"height\":500},\n",
" {\"linkText\":\"Export to plot.ly\",\"showLink\":true}\n",
")\n",
"\n",
"window.addEventListener('resize', function() {\n",
" Plotly.Plots.resize(document.getElementById('c34db0db-dc37-4ae3-a2b3-33ab99830b89'))\n",
"})\n",
" }) \n",
"</script>"
],
"text/plain": [
"#<Plotly::Offline::HTML:0x000056356f14be00 @id=\"c34db0db-dc37-4ae3-a2b3-33ab99830b89\", @data=[{:x=>[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20], :y=>[100, 81, 64, 49, 36, 25, 16, 9, 4, 1, 0, 1, 4, 9, 16, 25, 36, 49, 64, 81, 100], :type=>nil, :mode=>\"\"}], @layout={:width=>1000, :height=>500}, @config={:linkText=>\"Export to plot.ly\", :showLink=>true}, @embedded=true>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"#<CZTop::Socket::PUB:0x56356e7f3620 last_endpoint=\"tcp://127.0.0.1:45835\">"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"require 'daru'\n",
"require 'daru/plotly'\n",
"include Daru::Plotly::Methods\n",
"\n",
"dv = Daru::Vector.new((-10..10).map{|n| n ** 2 })\n",
"plot(dv, x: \"x\", y: \"y\").show"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Ruby 2.4.2",
"language": "ruby",
"name": "ruby"
},
"language_info": {
"file_extension": ".rb",
"mimetype": "application/x-ruby",
"name": "ruby",
"version": "2.4.2"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
ウイスキーアドベントカレンダー2日目
ウイスキー Advent Calendar 2017 の2日目の記事です。
ウィスキーはピートの香りが強いほうがすきです。
とりあえず蒸留所に行ってきた話を 以前、白州蒸留所 と 山崎蒸留所 に行ったことがあるのでその話を。
白州蒸留所
白州へは5年くらい前に5人でわいわいしながら行ってきました。 ここでは、工場見学のツアーに参加しました。 また、テイスティングルームですこしウイスキーを試せて良いです。
山崎蒸留所
山崎は去年、京都へ行く機会があり、ウイスキーを買うために行きました。 ここでも工場見学可能だったのですが、事前に予約が必要であるため 今回はパスして、工場に併設されているウイスキーのテイスティングルーム で幾つかのウイスキーをたのしみ、ショップでウイスキーと梅酒を買って 鴨川へ
おわり
日本のウイスキーはあまり得意じゃないのですが、蒸留所に行くのは楽しいし 楽しみ方を教えてもらえるので近くに蒸留所がある方は一度行ってみるとよいとおもいます
mikutter合宿いってきた
mikutter Advent Calendar 1日目のエントリです 先月の11/23-26に @toshi_a の垢凍結記念の mikutter合宿 に行ってきた
なにしにいってきたの?
リフレッシュ、気分転換、野々村せんせーの気分を味わいに、toshi_aさんをAORIに。 蟹、但馬牛、温泉を楽しみに。 くわしくは @akkiesoft の ブログエントリ を読んで。 城崎は温泉もよく、宿も落ち着いており、周りの店が早く閉まる以外の不満はなかったですね。
でなにやってたの?
温泉、酒、飯以外なにもやってない。
mikutterのgtk3対応手をつけようかとおもったけど、無理だった。
ついでに天橋立もいってきた
室長()が天橋立いくぞっていってたので連れてってもらった。
-> <-
酒蔵
ついでに天橋立近くの酒蔵 向井酒造 にいってきた。ここは室長が9時までやってるから! って5時半くらいに行ったらすでに閉まってて、丁度女将さんが出てきたところだったので開けてもらい酒を買いました。
-> <-
おわり
おわり
Emacsの構成管理をitamaeで管理
仕事とプライベート環境でemacsのフォント等設定するのがいいかげんダるくなってきたので、Itamaeを流すだけでイイカンジにするようにした
もともとどうかんりしてたのか
もともとgithubで管理していたが、さすがにFontの環境異差をちょこちょこ変えるのが面倒になった
Itamae de kanri
gitで管理しているので環境異差ある部分をitamaeで管理するように方針を転換。
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を利用しようとすると失敗します。
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
を設定すると読み込まれるようになり実行できます。
$ export GI_TYPELIB_PATH=/path/to/girepository-1.0
$ irb -rarrow
とやるとエラーがなくなります。
最後にサンプルを実行して確認しました!
% 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をインストールしてみた
環境
$ 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
を実行すればインストールデキルはずです。
$ git clone git@github.com: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
再びつけて実行します。
$ LANG=C cmake .. -DCMAKE_BUILD_TYPE=Release
$ make
$ make install
これでC++のインストールは終了です。続いてglibをインストールします。
$ cd ../../c_glib
$ ./autgen.sh
$ ./configure
$ make
$ make install
でインストールできます。こちら久々に野良ビルドしたため PKG_CONFIG_PATH
や LD_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 ファイルは設定ファイルではないため当然といえば当然なのですが…
Jan 1 00:00:08 localhost dnsmasq[673]: bad option at line 1 of /etc/dnsmasq.d/hosts
今、/etc/defaults/dnsmasq
を調べてみるとそうなってました。はい。
CONFIG_DIR=/etc/dnsmasq.d,.dpkg-dist,.dpkg-old,.dpkg-new
/etc/hosts ファイルのパーミッションが 600
になっていたためエラー
こちらは上記問題を解決したあと、反映されないのでログを見たときにわかりました。
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 をインストールします。
sudo eix-sync
sudo emerge erlang
準備はこれだけです。
インストール
次にインストールなのですが、Elixir は Earlang VM 上で動くプログラミング言語のため、コンパイルされたバイナリを置くだけでインストールがおわります。
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
を起動して確認すればおわり
参考
-
elixir getting started, https://gist.github.com/zzak/a765d6a63860d75c4444e35f57daed13, 2017/04/01 閲覧 ↩