IRubyはじめました

2017-12-18 21:56:55 +0900

表題のとおり、 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日目

2017-12-02 00:00:00 +0900

ウイスキー Advent Calendar 2017 の2日目の記事です。

ウィスキーはピートの香りが強いほうがすきです。

とりあえず蒸留所に行ってきた話を 以前、白州蒸留所山崎蒸留所 に行ったことがあるのでその話を。

白州蒸留所

白州へは5年くらい前に5人でわいわいしながら行ってきました。 ここでは、工場見学のツアーに参加しました。 また、テイスティングルームですこしウイスキーを試せて良いです。

山崎蒸留所

山崎は去年、京都へ行く機会があり、ウイスキーを買うために行きました。 ここでも工場見学可能だったのですが、事前に予約が必要であるため 今回はパスして、工場に併設されているウイスキーのテイスティングルーム で幾つかのウイスキーをたのしみ、ショップでウイスキーと梅酒を買って 鴨川へ

おわり

日本のウイスキーはあまり得意じゃないのですが、蒸留所に行くのは楽しいし 楽しみ方を教えてもらえるので近くに蒸留所がある方は一度行ってみるとよいとおもいます

mikutter合宿いってきた

2017-12-01 00:58:40 +0900

mikutter Advent Calendar 1日目のエントリです 先月の11/23-26に @toshi_a の垢凍結記念の mikutter合宿 に行ってきた

なにしにいってきたの?

リフレッシュ、気分転換、野々村せんせーの気分を味わいに、toshi_aさんをAORIに。 蟹、但馬牛、温泉を楽しみに。 くわしくは @akkiesoftブログエントリ を読んで。 城崎は温泉もよく、宿も落ち着いており、周りの店が早く閉まる以外の不満はなかったですね。

でなにやってたの?

温泉、酒、飯以外なにもやってない。

mikutterのgtk3対応手をつけようかとおもったけど、無理だった。

ついでに天橋立もいってきた

室長()が天橋立いくぞっていってたので連れてってもらった。

-> <-

酒蔵

ついでに天橋立近くの酒蔵 向井酒造 にいってきた。ここは室長が9時までやってるから! って5時半くらいに行ったらすでに閉まってて、丁度女将さんが出てきたところだったので開けてもらい酒を買いました。

-> <-

おわり

おわり

Emacsの構成管理をitamaeで管理

2017-07-01 22:59:16 +0900

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

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

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

Itamae de kanri

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

emacs:
  font:
    family: Ricty
    height: 120
  packages:
    - auto-complete
  settings:
    - git

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

おわり

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

rustful web

2017-06-04 23:17:45 +0900

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

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

🍻

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

use red-arrow.gem

2017-05-31 23:27:57 +0900

こないだインストール した 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

2017-05-29 21:45:29 +0900

最近すとうさん一押ししている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_PATHLD_LIBRARY_PATH の設定をわすれてただけなのですんなりいけました。 で最後に gem install red-arrow を実行して目的を達成しました!!!!11

おわり

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

start watching dazn

2017-05-21 14:49:19 +0900

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

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

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

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

2017-04-09 00:00:00 +0900

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のインストール方法

2017-04-01 09:00:00 +0900

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 を起動して確認すればおわり

参考

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