読者です 読者をやめる 読者になる 読者になる

はちゅにっき

こっちのブログはまったり更新

gcsfuse を利用して CoreOS に Google Cloud Storage を mount する

CoreOS GCP

CoreOS なんだから Container でやりなさいって言われそうですが、手っ取り早く Google Cloud Storage を Data Volume として提供したいなぁと思ったのでやってみました。 ただしパフォーマンスはお察しくださいレベルなので、Data Volume として使う場合も使い方は考えた方がいいですね。

以下手順のメモです。 バイナリの作成は docker を利用してビルドしていきます。

Google Cloud Storage のマウントには gcsfuse を利用します。 github.com

FUSE なのでこちらも必要になります。 github.com

続きを読む

Angular2 で Angular2 Material 使ってみる

Angular2 Material

せっかく Angular2 を触ってみたので、Angular2 Material の方も使ってみることに。

よくありがちな NoPaste 的なアプリを目標にしたものの未完成でいったん休憩。

(未) 完成品はこちら。

https://hatyuki.github.io/nopaste-front/recent-posts

リポジトリはこっち。

github.com

続きを読む

Grape on Rack with ActiveRecord

Ruby Grape

RubyAPI サーバを書くなら Grape がいいよ。」

ってよく見聞きするんだけれど、ほぼ + Rails の構成。

食わず嫌い的な感じで Rails を避けている (訳じゃないんだけど) ので、Rails 臭がする程度に Grape を Rack 上にマウントしたらどうなるのかなー。と思い試してみました。

github.com

ディレクトリの構成からして Rails 臭が漂ってますね。 Rails を使ったことはないけれど、とりあえず Rails のブートプロセスを参考にしたら出来損ないの残念な感じになりました。

続きを読む

気づいたら Angular2 RC4 になっていた

Angular2

ので前回作ったチュートリアルの Tour of HeroesRC4 にアップデートしてみることに。

hatyuki.hatenablog.jp

って、package.json 書き換えて npm update したらそのまま動きました。 CHANGELOG を流し読みしたけど、まぁ動いて当然というか、その程度にしか使っていないというか。

オマケで他のモジュールもなるべく新しいものをインストールするように。 あ、Angular CLI も Beta9 になってましたね。

Angular CLI を使って Angular2 RC3 で Tour of Heroes

Angular2

Angular2 が RC 版ということで、さわってみることに。 とりあえず公式のチュートリアル Tour of Heroes をやります。

完成品

github.com

チャプターごとにコミットを分け、さらにタグを打っています。

Angular CLI を使うと簡単に Github Pages に Deploy できるとのことでしたので、実際に払い出しもしてみました。

https://hatyuki.github.io/tour-of-heroes/

あら簡単。

公式の Live Example が動かなくなっているので、今がチャンス?

続きを読む

docker-machine create 時に proxy を指定する

なんかよく忘れるのでメモしておこう。

Proxy を通さなければいけない環境下で docker-machine を使う場合は、machine にログインして /var/lib/boot2docker/profile

export HTTPS_PROXY=http://example.com:8080/
# or HTTP_PROXY

と書いてもいいけれど、machine を作成するときにあらかじめ

docker-machine create \
  --driver virtualbox \
  --engine-env HTTPS_PROXY=http://example.com:8080/ \
  default

と HTTP(S)_PROXY を指定して作成したほうがかっこいい。 かっこいいだけで、結局同じだけど。

ちなみに、クライアントも同様に Proxy 配下にいて HTTP(S)_PROXY の値を設定している場合に

docker ps
Cannot connect to the Docker daemon. Is the docker daemon running on this host?

と言われて悲しい思いをすることがあるけれど、これは docker コマンドが PROXY を経由してしまうせいなので、おちついて

export NO_PROXY="192.168.99.100,xxx.xxx.xxx.xxx,..."

という感じで NO_PROXY に docker の IP を書いてあげれば OK。

docker-machine env で得られる値を利用して

export no_proxy=$(docker-machine env | perl -nle 'm{DOCKER_HOST="tcp://(.+):.+"} and print $1')

とかやると便利なので alias でも作って eval $(docker-machine env) と同時に両方実行したらいいような気がする。

そうそう、しれっと書かずにやっているけれど docker-machine コマンドで machine 名を省略すると default が使われるみたいですよ。

Ruby で is_numeric

Ruby

PHP の is_numeric( ) みたいなのを Ruby でやる場合はこんな感じでいいのかなー?

def numeric? (value)
  return true if value.kind_of?(Numeric)
  !!(Integer(value) rescue Float(value)) rescue false
end

これで、以下のようにテストしてみたら、だいたい OK な気がする。

require 'minitest/autorun'

class TestNumeric < Minitest::Test
  def test_numeric
    assert_equal(true, numeric?(1))
    assert_equal(true, numeric?('2'))
    assert_equal(true, numeric?('3.4'))
    assert_equal(true, numeric?('-5'))
    assert_equal(true, numeric?('-6.7'))
    assert_equal(false, numeric?('Infinity'))
    assert_equal(false, numeric?('Float::INFINITY'))
    assert_equal(true, numeric?(Float::INFINITY))
    assert_equal(false, numeric?('1abc'))
    assert_equal(false, numeric?('def2.3'))
    assert_equal(true, numeric?('0x1f'))
    assert_equal(false, numeric?('0xfg'))
    assert_equal(false, numeric?('0b1a'))
    assert_equal(true, numeric?('0b1011'))
    assert_equal(true, numeric?('2.0e-10'))
    assert_equal(true, numeric?('-2.0e10'))
  end
end

場合によっては本当は false になって欲しいような部分もありそうだけど、どうでしょう?