gcsfuse を利用して CoreOS に Google Cloud Storage を mount する
CoreOS なんだから Container でやりなさいって言われそうですが、手っ取り早く Google Cloud Storage を Data Volume として提供したいなぁと思ったのでやってみました。 ただしパフォーマンスはお察しくださいレベルなので、Data Volume として使う場合も使い方は考えた方がいいですね。
以下手順のメモです。 バイナリの作成は docker を利用してビルドしていきます。
Google Cloud Storage のマウントには gcsfuse
を利用します。
github.com
FUSE なのでこちらも必要になります。 github.com
続きを読むAngular2 で Angular2 Material 使ってみる
せっかく Angular2 を触ってみたので、Angular2 Material の方も使ってみることに。
よくありがちな NoPaste 的なアプリを目標にしたものの未完成でいったん休憩。
(未) 完成品はこちら。
https://hatyuki.github.io/nopaste-front/recent-posts
リポジトリはこっち。
続きを読むAngular CLI を使って Angular2 RC3 で Tour of Heroes
Angular2 が RC 版ということで、さわってみることに。 とりあえず公式のチュートリアル Tour of Heroes をやります。
完成品
チャプターごとにコミットを分け、さらにタグを打っています。
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
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 になって欲しいような部分もありそうだけど、どうでしょう?