アルパカログ

カスタマーサポート (CS) とエンジニアリングを掛け算したい CRE (Customer Reliability Engineer) が気になる技術や思ったことなど。

Goで立てたgRPCサーバにRuby/Elixirクライアントで接続してみる

gRPCはGoogleOSSとして公開しているRPCフレームワークです。

gRPCを使うと、異なるマシン/言語間でもローカルオブジェクトかのごとくメソッドを呼び出すことができます。

詳細は下記をご覧ください。

今日はそれを確かめるために、公式のサンプルをそのまま使って、Goで立てたgRPCサーバのメソッドをRubyのgRPCクライアントから呼び出してみます。

続きを読む

【macOS/rbenv】OpenSSLのエラーでRubyのインストールが失敗する場合の解決方法

macOS にて rbenv で Ruby 2.4.4 や 2.5.1 をインストールしようとして次のような OpenSSL 関連のエラーが出る場合の解決方法。

/private/var/folders/c8/kt3b8mz57nn7f3l9jh0ps_2r0000gn/T/ruby-build.20180924132328.72126/ruby-2.4.4/lib/rubygems/core_ext/kernel_require.rb:55:in `require': dlopen(/private/var/folders/c8/kt3b8mz57nn7f3l9jh0ps_2r0000gn/T/ruby-build.20180924132328.72126/ruby-2.4.4/.ext/x86_64-darwin17/openssl.bundle, 9): Library not loaded: /usr/local/opt/openssl/lib/libssl.1.0.0.dylib (LoadError)
  Referenced from: /private/var/folders/c8/kt3b8mz57nn7f3l9jh0ps_2r0000gn/T/ruby-build.20180924132328.72126/ruby-2.4.4/.ext/x86_64-darwin17/openssl.bundle
  Reason: image not found - /private/var/folders/c8/kt3b8mz57nn7f3l9jh0ps_2r0000gn/T/ruby-build.20180924132328.72126/ruby-2.4.4/.ext/x86_64-darwin17/openssl.bundle
    from /private/var/folders/c8/kt3b8mz57nn7f3l9jh0ps_2r0000gn/T/ruby-build.20180924132328.72126/ruby-2.4.4/lib/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /private/var/folders/c8/kt3b8mz57nn7f3l9jh0ps_2r0000gn/T/ruby-build.20180924132328.72126/ruby-2.4.4/.ext/common/openssl.rb:13:in `<top (required)>'
    from /private/var/folders/c8/kt3b8mz57nn7f3l9jh0ps_2r0000gn/T/ruby-build.20180924132328.72126/ruby-2.4.4/lib/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /private/var/folders/c8/kt3b8mz57nn7f3l9jh0ps_2r0000gn/T/ruby-build.20180924132328.72126/ruby-2.4.4/lib/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /private/var/folders/c8/kt3b8mz57nn7f3l9jh0ps_2r0000gn/T/ruby-build.20180924132328.72126/ruby-2.4.4/lib/rubygems/security.rb:12:in `<top (required)>'
    from /private/var/folders/c8/kt3b8mz57nn7f3l9jh0ps_2r0000gn/T/ruby-build.20180924132328.72126/ruby-2.4.4/lib/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /private/var/folders/c8/kt3b8mz57nn7f3l9jh0ps_2r0000gn/T/ruby-build.20180924132328.72126/ruby-2.4.4/lib/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /private/var/folders/c8/kt3b8mz57nn7f3l9jh0ps_2r0000gn/T/ruby-build.20180924132328.72126/ruby-2.4.4/lib/rubygems/package.rb:44:in `<top (required)>'
    from /private/var/folders/c8/kt3b8mz57nn7f3l9jh0ps_2r0000gn/T/ruby-build.20180924132328.72126/ruby-2.4.4/lib/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /private/var/folders/c8/kt3b8mz57nn7f3l9jh0ps_2r0000gn/T/ruby-build.20180924132328.72126/ruby-2.4.4/lib/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /private/var/folders/c8/kt3b8mz57nn7f3l9jh0ps_2r0000gn/T/ruby-build.20180924132328.72126/ruby-2.4.4/lib/rubygems/installer.rb:10:in `<top (required)>'
    from /private/var/folders/c8/kt3b8mz57nn7f3l9jh0ps_2r0000gn/T/ruby-build.20180924132328.72126/ruby-2.4.4/lib/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /private/var/folders/c8/kt3b8mz57nn7f3l9jh0ps_2r0000gn/T/ruby-build.20180924132328.72126/ruby-2.4.4/lib/rubygems/core_ext/kernel_require.rb:55:in `require'
    from ./tool/rbinstall.rb:653:in `<module:RbInstall>'
    from ./tool/rbinstall.rb:596:in `<main>'
make: *** [do-install-all] Error 1

Homebrew で OpenSSL を更新してあげればOK。

$ brew update
$ brew install openssl

伊勢志摩で伊勢神宮にお参りして松阪牛ステーキを食べてきた

9月14日(金)から2泊3日で伊勢志摩へ行ってきました。

今回の旅の目的は3つ。伊勢うどんを食べること、シーカヤックを体験すること、松坂牛のステーキを食べることです。

続きを読む

【Ruby】特異メソッドを使ってインスタンスメソッドを再定義する

今日は Ruby の特殊な使い方、特異メソッドを使ってインスタンスメソッドを書き換えてしまう方法を紹介したいと思います。

黒魔術的になってしまうので推奨されませんが、こんな風にすればできるよということで、自己責任でお使いくださいね。

続きを読む

Nature Remoをしばらく使ってみて良かった点と注意点

Nature Remo mini を使ったエアコンのON/OFFについて以前書きましたが、実はそれから mini でない方も購入して2台構成でしばらく使ってみたのでレビューしたいと思います。

続きを読む