_J Blog

学んだ事のまとめやメモなどが中心です

nginxのserver_nameを複数設定する

Nginxつかってて、vhostをきりたいときで、同一の名前で同じディレクティブで受けたいときってありますよね。 そういうときって、 server_name に複数並べて、下記みたいに書くと思います。 server { listen 80; server_name example.org www.example.org; .…

AWS Web Console から各IAMユーザー自身でパスワード変更およびMFAを設定できるIAM Policy

普段AWSのWebコンソールを利用していると、IAMで権限管理している人が多いと思います。 よくあるケースとして、IAMユーザーを新規発行してあげたときに、他の人にアカウントを作って初期パスワードを教えてあげたけど、その後はそのユーザー本人が自分でパス…

AWS Policy Simulator で簡単 IAM Policy チェック

aws

ついに満を持して(?)リリースされましたね! AWS Policy Simulator !! Amazon Web Services ブログ: 【AWS発表】 AWS Identity and Access Management (IAM) Policy Simulator ※ちなみに、ここで紹介されている説明動画はすごく分かりやすいです。 よく IAM …

Gitのフックスクリプトが実行されてないかも?というとき

色々原因はあると思いますが、その中の一つではまったものを紹介します。 それは exec git update-server-info です。 これがあるとその行以降のコマンドは実行されません。 まず最初に結論から どうすれば良いか。 exec を消して git update-server-info と…

Ruby の aws-sdk を使って色々操作する-その1

最近、AWS を触っています。 私は Ruby を使いがちなので、Ruby の aws-sdk をつかって 様々な操作をする事が多いです。その中でいくつか決まった書き方をする事が多いので、少しづつやり方をまとめておきます。■自らのEC2インスタンス情報を取得する(EBSのV…

GitoliteをつかってGitリポジトリを権限管理する

やりたかった事 対象のGitのリポジトリを ・限られたユーザーにしかPUSHさせたくない ・誰でも閲覧できるようにしたい という事がありました。 この事を解決する手段として、 1.sshプロトコルを利用し、ユーザーとグループで管理する 2.ツールを使う Gitosis…

setlocale: LC_ALL: cannot change locale (ja_JP.UTF-8)

Ubuntuで怒られてた。$ sudo locale-gen ja_JP.UTF-8 $ sudo update-locale LANG=ja_JP.UTF-8で解決しました。

/etc/hosts に設定を書いたときの確認と反映

/etc/hosts は書いて保存したら自動的に反映にされるようですね。 例えばhostsに 127.0.0.1 hogehoge.com と書いたとき、その確認をnslookupでやったらダメだった。 nslookup hogehoge.com > ;; connection timed out; no servers could be reached pingでや…

コマンドラインで画像のサイズ変換をする

ImageMagicを使ってみます。 OSはCentOS6.2です。インストール cd /usr/local/src wget ftp://ftp.imagemagick.org/pub/ImageMagick/ImageMagick.tar.gz tar zxvf ImageMagick.tar.gz cd ImageMagick-6.8.0-4 #ここのバージョンはそのときの最新に変更してく…

The NERD Commenterで独自のコメントアウトを定義する

vim

とあるファイルタイプで対応していないコメントアウトをしたいなと、 思い、拡張できるのかなとNERD Commenterのソース(Github)を読んでいたら、 下記記述があった if exists("g:NERDCustomDelimiters") call extend(s:delimiterMap, g:NERDCustomDelimiters…

git clone 時に origin の名前を指定して clone する

git

最近使ったので、メモ。ヘルプにも書いてるけど。$ git clone git@example.com:hogehoge.git -o hogeそうすれば、originの名前を指定しつつcloneできます gitconfigはこんな感じ $ cat hogehoge/.git/config [core] repositoryformatversion = 0 filemode = …

CentOS-6.3にNginx-1.3.6をインストールする

サーバーを構築する機会があったので、 せっかくだからNginxの現時点での最新バージョンを入れてみた。Nginxは一旦ビルドすると、モジュールの追加は再コンパイルが必要なので、 使うかもってのは一旦入れてみた。 まあ、開発機だから、いいかなと・・・ ・…

クラスインスタンス変数にアクセサを利用しアクセスする

クラスインスタンス変数、モジュール変数に対して、 attr_reader, attr_accessor などのアクセサでアクセスする方法 ※利用頻度が低い!って話はおいておいて・・・ class TestClass @var = 0 class << self attr_accessor :var end end p TestClass.var #=> …

Rubyでベンチマークの平均などとれるモジュールをかいてみた

練習がてらに作ってみました。 下記がコードです。 require 'benchmark' class BBenchmark def self.measure(n=1, &b) res = [] Benchmark.benchmark( ' ' * 7 +Benchmark::CAPTION, 7, Benchmark::FORMAT, #1.8.x では Benchmark::FMTSTR 'total:', 'avg:' …

method_missingの速度計測

遅くなるとは聞いていたが、どんなもんか興味で単純な関数呼び出しでのベンチマークをしてみた。 method_missing と 通常呼び出しの検証結果 user system total real 通常呼び出し 0.000000 0.000000 0.000000 0.000029 method_missing 0.000000 0.000000 0.…

クラスインスタンス変数とスコープ

気になったので、調べてみた module Hoge module Moge class Test # クラスインスタンス変数 @hoge= ->{ p 'called!!'; 'aaaa'}.call # 特異メソッド def self.get p @hoge end # インスタンスメソッド def get p @hoge end end end end # クラスメソッドは…

ターミナルで単語単位で戻ったり、進んだりする

zsh, bash, tcsh で確認済みです。 単語単位でカーソルを戻す Esc(Ctrl + [) + b 単語単位でカーソルを進める Esc(Ctrl + [) + f Esc は Ctrl + [ でもいいんですね。

SQLite3::ReadOnlyException のエラー

ちょっとサイト作ってるときに、さっきまで普通に動作していたのに、 rake db:migrate:reset を実行して、ブラウザから確認しようと思ったら、SQLite3::ReadOnlyException : attempt to write a readonly databaseとの文字が。調べてみると、どうやらパーミ…

特定のインスタンスのみにメソッドを追加する

作成したインスタンスのみメソッド追加するやり方がわからなくて、 試してみたのでメモ下記ソースコードは Test クラスのインスタンスの a に対して、 特異メソッドを追加してみたサンプルです。 class Test def hoge p 'pp' end end a = Test.new a.hoge #=…

ターミナル上のコマンドで並列処理を行う

パフォーマンスや複数プロセスに関する検証したかった時に知ったのでメモ*1 yes | head -{全部で何度実行するか} | xargs -L {引数の個数(基本1でよいはず)} -P {同時プロセス数} {実行コマンド} たとえば、test.shを10個のプロセスを立ち上げて 並列に実行…

DotCloud で Node.js を 使う

本日は楽天テクノロジーカンファレンスに参加してきました。 いろいろと興味深い話が聞けましたが、それはまた機会があれば。ホントいまさらって感じですが、DotCloud使ってみようかなと思い立って使ってみました。 最初は、Python が 2.4 の状態だったので …

Rubyで2つの配列をハッシュに変換するワンライナー

最近、ちょっとRubyを書いていて使った、 2つの配列をそれぞれ対応するキーと値の ハッシュに変換するときのやりかたをメモ。 hash = Hash[keys.zip vals] もしくは hash = Hash[*([keys, vals].transpose.flatten)] です。※2011/11/15追記 上の方はkeyesbe…

autoconf のインストール

最新版は以下のURLで確認 GNU Project Archives手順は下記です。 $ wget http://ftp.gnu.org/gnu/autoconf/autoconf-latest.tar.gz $ tar -zxvf autoconf-latest.tar.gz $ cd autoconf-2.68 #ここを適宜最新のバージョンのディレクトリに読み替えてください …

256色対応 gnu-screen 4.1.0 インストール

screenに入ってないときには vim が 256色で動いてるのに、 screen立ち上げると vim の色の設定が急に効かなくなるときは、 もしかして gnu-screen が256色に対応していないのかもしれません。バージョンを確認してみましょう $ screen -v Screen version 4.…

バックグラウンドで立ち上がってる screen を強制終了させるコマンド

色々弄っているうちにあるscreenに入れなくなってしまったときなどに使ってます。 たとえば、 $ screen -S ruby $ screen -S testなどで screenを2つ立ち上げていて ruby という名前の screen を強制終了したいとき $ screen -S ruby -X quit で終了できま…

NSDictionaryとNSArrayの高速列挙について

基本的な事を知らなかったでメモ NSDictionary *dictionary = [NSDictionary dictionaryWithObjectsAndKeys: @"value1", @"key1", @"value2", @"key2", @"value3", @"key3", nil ]; // キーでループする場合 for (id i in [dictionary keyEnumerator]) { // …

CentOS で Git や apt-get を yum で入れる方法

1.) yumのリポジトリファイルを編集 vim /etc/yum.repos.d/CentOS-Base.repo 一番下に下記を追記 [dag] name=Dag RPM Repository for Redhat EL5 baseurl=http://apt.sw.be/redhat/el$releasever/en/$basearch/dag gpgcheck=1 enabled=1 #ここを1にすると常…

vimでウィンドウサイズを変更する

vim

vimでwindowサイズを頻繁に変える事があったので、簡単な設定を書きました。 下記を .vimrc に貼付ければつかえます。 ※ こっちにvimscriptでplugin書いてみました。 よろしければご覧くださればよろこびます。(2011/11/06) "quick chenge window size "ウィ…