気の向くままにプログラミング

南国ビーチでのリモートワーク生活を目指す凡人

CentOS 6.8でRubyインストール時のエラー対処方法

Rubyインストール

$rbenv install 2.2.3

BUILD FAILED (CentOS release 6.8 (Final) using ruby-build 20170201-7-g5d62e84)

Inspect or clean up the working tree at /home/crawl/tmp/ruby-build.20170302094138.1592
Results logged to /home/crawl/tmp/ruby-build.20170302094138.1592.log

Last 10 log lines:
~/tmp/ruby-build.20170302094138.1592/ruby-2.2.3 ~/tmp/ruby-build.20170302094138.1592 ~
checking build system type... x86_64-pc-linux-gnu
checking host system type... x86_64-pc-linux-gnu
checking target system type... x86_64-pc-linux-gnu
checking for gcc... no
checking for cc... no
checking for cl.exe... no
configure: error: in `/home/crawl/tmp/ruby-build.20170302094138.1592/ruby-2.2.3':
configure: error: no acceptable C compiler found in $PATH
See `config.log' for more details

Cコンパイラが見つからないと言っているので、Cコンパイラをインストール

$yum install -y gcc

再実行

$rbenv install 2.2.3

BUILD FAILED (CentOS release 6.8 (Final) using ruby-build 20170201-7-g5d62e84)

Inspect or clean up the working tree at /home/crawl/tmp/ruby-build.20170302094952.2754
Results logged to /home/crawl/tmp/ruby-build.20170302094952.2754.log

Last 10 log lines:
installing rdoc:              /home/crawl/.rbenv/versions/2.2.3/share/ri/2.2.0/system
installing capi-docs:         /home/crawl/.rbenv/versions/2.2.3/share/doc/ruby
The Ruby readline extension was not compiled.
ERROR: Ruby install aborted due to missing extensions
Try running `yum install -y readline-devel` to fetch missing dependencies.

今度も言われた通りにやってみる。

$yum install -y readline-devel

再実行

$rbenv install 2.2.3

$rbenv versions
  2.2.3

成功!

さくらレンタルサーバで新しいバージョンのRubyをインストールしてNokogiriを動かす方法

さくらレンタルサーバでnokogiriを動かしたときのメモ

初期状態でインストールされているRubyのバージョンが1.8と古いため、
nokogiriを動かすために、新しいバージョンのRubyのインストール・設定したときの手順。

・rbenvのダウンロード

git clone https://github.com/rbenv/rbenv.git ~/.rbenv
git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build

・rbenvの環境変数追加(~/.bash_profile)

export PATH="$HOME/.rbenv/bin:$PATH"
eval "$(rbenv init -)"
source ~/.bash_profile

・新しいバージョンのRubyのインストール

rbenv install 2.2.3
rbenv global 2.2.3
ruby -v

・nokogiriインストールのための環境変数追加(~/.bash_profile) ※「gem install nokogiri」時のエラー回避

export CPATH=/usr/local/include:$CPATH;
export LD_LIBRARY_PATH=$HOME/local/lib:/usr/local/lib:$LD_LIBRARY_PATH
export LIBRARY_PATH=$HOME/local/lib:/usr/local/lib:$LIBRARY_PATH
export TMPDIR=$HOME/tmp
source ~/.bash_profile

・nokogiriのインストール

gem install nokogiri

・動作確認

ruby xxxx.rb

以上。

ゼロから作るDeep Learning (2章 パーセプトロン)

ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装」の読書の記録です。

(2章 パーセプトロン)

パーセプトロン「重み」と「バイアス」をパラメータとして表現できる。
・AND,OR,NANDゲートは単層パーセプトロンで表現できる。
・XORゲートは単層パーセプトロンで表現できないが、層を重ねる(多層パーセプトロン)ことで表現できる。
・NANDゲートだけでコンピュータを表現できる。

ゼロから作るDeep Learning (1章 Python入門)

「ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装」の読書の記録です。

(1章 Python入門)

下記のプログラミング言語とライブラリの基本的な使用方法の説明
・Python3系
・NumPy
・Matplotlib

他のプログラミング言語経験がある方なら、特に悩むことなくサクサク読み進められます。
初めてPythonを触る私でも難なく1章終了。

Pythonっぽい言語仕様?
ブロックスコープは空白インデントで表現
・クラスのメソッド引数の第1引数はSelf

メルカリで本を売ってみた

話題のフリマアプリであるメルカリを使ってみました。

自宅にある不要な書籍を処分したい!ある程度の値段で買ってほしい!
と言った思いで、始めたみました。

技術書(定価1000円〜3500円)を中心に出品して1週間での収支はこんな感じ。

結果

出品数:70
売却済み:20
利益:16,000円
経費(梱包材など):1,200円

良いと思った点

・「らくらくメルカリ便」が良い!!
  ・出品者、購入者ともに匿名で発送ができる。
  ・送料が全国一律
・まとめ売りができる。
  amazonなどと違って、購入者との調整次第でまとめ売りができる。
  それにより、手数料、配送料、梱包にかかる手間などを削減でき、購入者、出品者ともにうれしい。
・なんか楽しい。
  いいね!をつけられるとうれしい。現代病的承認欲求が満たされる(笑)

悪いと思った点

・梱包、発送が面倒 (誰かやってくれよ。)
・サイズが大きい書籍など、ネコポスで送れない商品の場合、コンパクト宅急便での発送となり割高感がある。
   ネコポス:発送代195円
   コンパクト宅急便:発送代 445円 + 箱代65円
・商品が購入された場合、なるべく早く発送しないといけないという脅迫観念からくるストレス。笑

梱包、発送に時間をとられるということが最大のネックと感じたので、
次回は、amazon のFBAに挑戦してみようと思います。

virgin と version の違いが聴き取れない (「ʤ」/「ʒ」)

virgin と version の違いが聴き取れない!

日本人には判別の難しい英語の発音の一つに「ʤ」-「ʒ」があります。

下記の発音の違いが聴き取れますか?
(画像の単語部分をクリックすると発音が聞けます)
http://www.pronunciation-english.com/2008/06/ledger-leisure.html

私には違いが全くわかりません。いや、よく聴けば少しだけ違うようにも感じますが、気のせいにも感じます。(笑)
少なくとも現状の私のリスニング力では、文脈のない中で、どちらを言っているのかの判断はまず無理と感じます。

上記サイトでは、発音の仕方の違いもきっちり言葉で説明してくれていますが、
なんとなくわかるような、でも音として違いがわからないような。

この感覚って日本人(または同様に母国語にその音の区別がない国)にしかわからないでしょう。
そういった意味では、発音を学ぶなら日本人からが良いのではないでしょうか?

Syntax error near unexpected token 'then'

久しぶりにlinuxのシェルを書いてハマりました。

if文を使用した条件判定をこんな感じで書いてみた。

if["$? -eq "0"];then
echo "OK"
fi

そしたら、こんなエラー
Syntax error near unexpected token 'then'

正しくは、

if [ "$?” -eq "0" ];then
echo "OK"
fi

何がダメだったかと言うと、[ ]の前後はスペースが必要だとのこと。。。

正式仕様?見ても特にそのような記載はなさげ。
https://tiswww.case.edu/php/chet/bash/bashref.html#Conditional-Constructs

このような仕様になった経緯はどうあれ、
無駄な時間を使ったので、クソ仕様ということにしよう。