2017-11-10

rb-readlineと^Y

Gemfileにrb-readlineがあるとirbやpryで困ったことになる。入力中にうっかり^Y(Ctrl+Y)をタイプすると、いきなりプロセスがサスペンドしてしまうのだ。

^Zでプロセスをサスペンドさせるのはおなじみのジョブ制御であり、このときにはプロセスはシグナルSIGSTOPを受けることでサスペンドさせられることになる。

^Yでもプロセスをサスペンドさせられるのだが^Zとは異な...

続きます »

2017-11-01

macOS High SierraとRubyのforkの問題

おくればせながら試してみた。

環境はmacOS High Sierra (10.13)。最初の報告にあったpg.gemのためにPostgreSQL 10.0をhomebrewでインストールした。pg.gemのバージョンは0.21.0。

$ gem install pg
Building native extensions.  This could take a while...
Successfully...

続きます »

2017-10-26

UTF-8-MACとDir#each

OS Xのファイル名の濁点問題にあたらないようにUTF-8-MAC→UTF-8しておくかなと、ふと思ったのだが、実際にRubyでワンライナー書いてやってみるとそういうファイル名のファイルがそもそも見付からなかった。(まだmacOS High Sierraにしていない。)

でもシェルの補完のときなんかにちょいちょい出てきたんだがな? と思って調べてみたところ、なんと! Ruby側で対策済みだ...

続きます »

2017-10-18

systemdとinitスクリプト

systemdが採用されたことで、サービスの起動プロセスが変わった。systemdに対応した起動プロセスを用意しているサービスは、その挙動がsystemdによってコントロールされる。では、起動プロセスがsystemdに対応していないサービスはどうか? というのを調べてみた。

続きます »

2017-10-13

Rubyのメソッド呼び出しの比較

ふと思い付きでRubyのメソッド呼び出しのやり方で速度がどう変わるのかベンチマークをとってみた。

Benchmark.ips do |x|
  x.report 'direct' do |times|
    i = 0
    while i < times; i += 1
      obj.to_s
    end
  end

  x.report '__send__' do |times

続きます »

2017-07-11

can't activate foo-2.0 already activated foo-1.0

bundleを使わず、gemを使っていると時々発生する「can't activate activesupport-5.1.2, already activated activesupport-4.2.9」のようなエラー。

不要なほうのgemを削除すれば回避できるのだが、どうしても気になって調べてみた。

環境はRuby 2.4.1、RubyGemsはRuby同梱のもの。実際のエラーは以下の...

続きます »

2017-07-09

Opal、Vue.js、Sinatra

気になっていたOpalを試してみるのに、どうせならとVue.jsを組み合わせよう! と気軽に始めてみたら、思いのほかのめり込んでしまったという話。(はまった、とも)

OpalはRubyで書いたコードをJavaScriptで実行するためのフレームワーク。すごそうだなとは思っていたのだけど、実際にそれなりのコードを書いてみたところ、すごかった。

他のJavaScriptフレームワーク(今回ならVue.js)と組み合わせるとなると気をつかうところが出てくるものの、単体で考えるとこれもうRubyなんじゃってくらいRubyらしく書けてしまう。がんばってるなあ。

で、実際に書いてみたコードなんだけど、こんなの感じのが動きます。

続きます »

2017-07-06

RubyとMiddlemanを更新した

Rubyを2.4.0→2.4.1にしたついでにbundle updateした。middleman bulidしてみると

NOTE: Middleman::Sitemap::Resource#previous_article is deprecated; use article_previous instead. It will be removed on or after 2017-05-01...

続きます »