はちゅにっき

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

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

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

Angular2 で Angular2 Material 使ってみる

せっかく Angular2 を触ってみたので、Angular2 Material の方も使ってみることに。 よくありがちな NoPaste 的なアプリを目標にしたものの未完成でいったん休憩。 (未) 完成品はこちら。 https://hatyuki.github.io/nopaste-front/recent-posts リポジトリ…

Grape on Rack with ActiveRecord

「Ruby で API サーバを書くなら Grape がいいよ。」 ってよく見聞きするんだけれど、ほぼ + Rails の構成。 食わず嫌い的な感じで Rails を避けている (訳じゃないんだけど) ので、Rails 臭がする程度に Grape を Rack 上にマウントしたらどうなるのかなー…

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

ので前回作ったチュートリアルの Tour of Heroes も RC4 にアップデートしてみることに。 hatyuki.hatenablog.jp って、package.json 書き換えて npm update したらそのまま動きました。 CHANGELOG を流し読みしたけど、まぁ動いて当然というか、その程度に…

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

Angular2 が RC 版ということで、さわってみることに。 とりあえず公式のチュートリアル Tour of Heroes をやります。 完成品 github.com チャプターごとにコミットを分け、さらにタグを打っています。 Angular CLI を使うと簡単に Github Pages に Deploy …

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

なんかよく忘れるのでメモしておこう。 Proxy を通さなければいけない環境下で docker-machine を使う場合は、machine にログインして /var/lib/boot2docker/profile に export HTTPS_PROXY=http://example.com:8080/ # or HTTP_PROXY と書いてもいいけれど…

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 これで、以下のようにテストしてみたら、だいた…

Enumerable#each_with_object でハマった

[1, 2, 3].each_with_object(Array.new) do |i, memo| memo += [i, i * 2] end # => [ ] あれ!? [[1, 2], [2, 4], [3, 6]] になると思ったのに!? Ruby - Enumerable.each_with_object の使い道 - Qiitaqiita.com Ruby - injectとeach_with_objectって何…

ブロック内でのみ有効な Redis のインスタンスを起動したい

最近は Ruby をちょくちょく使っています。 Ruby で Redis を使ったテストを書く場合は fakeredis や mock_redis を使うのが一般的かと思いますが、ちょっとだけ Fake や Mock ではなく本物の Redis を使いたい時ってありませんか? 例えば Redis やその周辺…

本当に PHP の DoS 脆弱性 (CVE-2015-4024) キツくない?

PHP

PHPのDoS脆弱性(CVE-2015-4024)キツくない? - 出張おはき゛ろくhakaikosen.hateblo.jp 上記記事を「あら大変(棒読み)」とか思いながら読んでいたけれど、PHP の BTS の方を読んでみたら確かに原理から再現手順まで細かく記載されていて 「なんかこれまずそ…

mp3 の ID3 Tag をファイルパスに基づいて更新する

アーティスト名/アルバム名/01-曲名.mp3というファイルパスのルールで保存してある mp3 に対して、ファイルパスに基づいて適切な ID3 タグを一括で設定する Script を Ruby の taglib-ruby を使って書いてみました。taglib-rubytaglib-ruby は C++ で書かれ…

String#to_s と 文字列リテラル内の式展開と - その3

もうここまでくるとただの興味本位。 文字数・桁数によってどんな感じに処理時間が増加するのかを調べてみました。 今回は桁数を 1桁から100桁まで増加させたときの処理時間の変化。 グラフにしたらこんな感じ。 ノイズっぽいデータが一部あるけれど、String…

String#to_s と 文字列リテラル内の式展開と - その2

Float と Symbol についても気になったので追加してみました。 どれも予想通り Object#to_s の方が "#{Object}" の書き方よりも早いですね。 Float#to_s のコストは他と比べると比較的高いんですね。 といっても 100万回やってこの値なので、本当に気にする…

String#to_s と 文字列リテラル内の式展開と

やっぱ、こういうものですよね。 String#to_s (文字列を文字列にする) か Fixnum#to_s (数値を文字列にする) かでも、当然だけれど違いは出るんですね。

自分用に Debian の Docker Image を構築する

Docker Hub に Debian のイメージがあるので、それを使えばいいんだけれど、タイムゾーンを JST にしたかったり、やっぱりなんか自分で作ってみたかったので試してみることに。 あくまでもスタートとなる Base Image だけを作りたいので、Packer とか Ansibl…

AWS 上に Vagrant を使って CoreOS のマシンを起動する

今更な感じだし、ありきたりの話しですが、手順のメモメモ。 vagrant のインストール 普通にダウンロードしてインストールすれば OK。 rbenv を使っていますが、特にはまるポイントはありませんでした。 Vagrant http://www.vagrantup.com/ vagrant-aws plug…

AngularJS で Semaphore したい

とある API を AngularJS から呼び出す時、1秒間にコールできる回数が制限されているため、同時に大量のリクエストが飛ばないよう制御したかったんだけど、AngularJS の $resource ではその辺がうまく制御できないような感じがするので*1、とりあえず Semaph…

Lua を一般ユーザでソースコードからインストールする

ただし、readline も ncurses も一般ユーザでソースコードからインストールしている場合の方法。 そんな奇特な人はそんなにいないと思うけれど、自分のためにメモ。各ソフトウェアのバージョン等は以下の通りです。 Lua (5.2.3) ${HOME}/local/lua にインス…

GrowthForecast のバックエンドに PostgreSQL を使う

デフォルトで SQLite が利用できるし、たぶん得する人はいないと思うけれど、いろいろな理由で PostgreSQL しか選択肢がなかったので、PostgreSQL でも動くようにちょっと手を加えてみました。 といっても、CREATE TABLE しているところを PostgreSQL に対応…

2段階認証を実装したい

ちょっとした理由から Google などで使われている 2段階認証を実装してみることに。 Google の 2段階認証の場合はワンタイムパスワードを生成に、以下のスマホアプリを利用することができますので、今回はこのアプリに相乗りする形での実装を目指しました。 …

Perl の定数畳み込み

当然だけれど、定数の畳み込みが発生するのは constant モジュールを利用して宣言した場合のみですね。

64bit unsigned int を pack したい

ただし 32bit 環境で。

GitHub の Markdown Rendering API を Perl で手軽に利用したい

と思ったので、昔つくった Text::Markdown::GFM::Lite というのをちょっと手直ししてみると同時に Minilla を使ってみました。 Text-Markdown-GFM-Lite https://github.com/hatyuki/p5-Text-Markdown-GFM-Lite

Perl でプロセスの待ち合わせをする

たとえば以下のようなプログラムを書いて #!/usr/bin/env perl use strict; use warnings; use feature qw/ say /; use Parallel::ForkManager; use Time::HiRes ( ); my $process = 10; my $pm = Parallel::ForkManager->new($process); for (1..$process) …

placehold.it みたいなやつを作った

Web サイトのレイアウトを考えるときに、placehold.it や placehold.jp とかを使うと こうやって HTML を書くだけで、手軽に指定したサイズの画像が手に入ってすごく便利。 だけど、頻繁にアクセスが必要な場合や、社内のネットワークから出れない、出たくな…

Plack で PHP アプリの開発をしたら何故か捗った話し

普段のお仕事では相変わらず PHP な hatyuki です。普段お仕事では Windows PC に VirtualBox をインストールし、その中の Debian 上で開発しています。 Perl / PSGI で開発するときは plackup がありますが、PHP (Apache などをインストールしていましたが…

Perl と JavaScript 間で RSA 暗号を使いたい

サンプルが見つからないってことは、普通はやらないことをやろうとしているんだと思う。 ということで、以下のようなことをしてみたかったので、試してみました。 Client (JavaScript) 側で RSA 鍵 (秘密鍵・公開鍵) を生成 公開鍵を Server (Perl) に POST …

Chef-Solo できる Debian AMI をつくる

作業ログだけぺたり。たいしたことはやらず。 元の Debian の AMI は MarketPlace からもってきました。 AMI は Stable のものしかないんだけれど、事前に apt の設定を変えて Testing に dist-upgrade 済の AMI を作成して利用しました。 TimeZone や Local…

環境変数で config を切替えるためのクラス

PHP

id:cho45 さんが作成された Config::ENV という Perl モジュールがとても便利で、最近設定ファイルが必要な場合には、ほとんどのケースでこのモジュールを利用しています。 使い方については Advent Calendar に掲載された、以下の記事を読んでください。 環…

unstable からパッケージを借りて nginx 1.4.1 をインストール

Debian/weedy がリリースされたため、普段利用している環境も Debian/jessie へとアップグレードされました。 ということで(?)、前回の記事で CentOS に nginx 1.4.0 をインストールしましたが Debian/jessie にも SPDY 対応版の nginx をインストールする…