いぬれおがんばれお

がんばる日記です

さくらVPSにUbuntu LTS 14.04をインストールした話(2)

前回の記事を参考に、Rails環境とサーバのセキュリティ周りを構築していきます

vimをインストールする

前回vimをインストールするのを忘れていて、ファイル修正が地獄でした…

sudo apt-get install vim

nginxをインストールする

sysv-rc-confはサービスの起動設定を簡単に登録できるようにするものです

sudo apt-get install nginx
sudo apt-get install sysv-rc-conf
sudo sysv-rc-conf nginx on
sudo /etc/init.d/nginx restart

ここまででIPアドレスの直アクセスしたりすると下記画像のようなページにアクセスできます

f:id:inureo:20150403113009p:plain

ちなみに、下記コマンドで構文確認ができます

nginx -t

参考URL

これから始める人のためのNginx(2):Nginxのインストールと基本設定 (1/4) - @IT Ubuntu 12.04 + ruby 1.9.3 + nginx + unicorn + Redmine - くじらにっき++

rbenv, ruby-build, rubyのインストール

build-essentialは開発用パッケージを一括インストールできるそうです

sudo apt-get install build-essential
sudo apt-get install libssl-dev

git をインストールしてない方はしてくださいね

sudo apt-get install git

早速 rbenvruby-build をインストールしていきます

git clone https://github.com/sstephenson/rbenv.git ~/.rbenv
echo '' >> ~/.profile
echo '# rbenv' >> ~/.profile
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.profile
echo 'eval "$(rbenv init -)"' >> ~/.profile
source ~/.profile
type rbenv
git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build

rubyのバージョンを指定してインストール、そしてrehash

rbenv install -l
rbenv install 2.1.3
rbenv rehash

そしてrails環境を整えるために、bundlerとrailsをインストール

gem install bundler
gem install rails

Ubuntu 14.04 で rbenv, ruby-build を使用して Ruby のバージョンを管理する. | hirooka.pro Lector note - How to install build-essential and scim-anthy on Ubuntu 6.06 - Linux > Ubuntu 6.06 LTS - Documents apt - How to install build-essential? - Ask Ubuntu

サーバのgit設定

cd ~
mkdir .ssh
cd .ssh
ssh-keygen
# 下記コマンドで出力したものをGitHub / BitBucketなどのキー登録画面で登録
cat ~/.ssh/id_rsa.pub

僕は var/ 配下にアプリケーションを置くのでパーミッションを変更して、そこにgit cloneします

chown user:user var/
cd var/
git clone hogehoge

これで完了!ついでにbundle installもしてしまいました(╹◡╹)

mysqlのインストール

途中ピンク色の画面になり、パスワードを要求されます(びびった) また、libmysqlclient-devはmysql2 gemで必要だそうです

sudo apt-get install mysql-server
sudo apt-get install libmysqlclient-dev
sudo sysv-rc-conf mysql on

mysqlのユーザ追加

mysql -uroot -p
CREATE USER 'user'@'localhost' IDENTIFIED BY 'mypassword';
GRANT ALL PRIVILEGES ON *.* TO 'user'@'localhost';

mysqlの設定を変更

mysqlで使う文字コードUTF-8にします

sudo vim /etc/my.cnf

それぞれのセクションに下記を追加

[mysqld]
character-set-server=utf8
skip-character-set-client-handshake
default-storage-engine=INNODB

[mysqldump]
default-character-set=utf8

[mysql]
default-character-set=utf8

そして再起動

sudo service mysql restart

mysqlのセキュリティ設定もします

下記を実行。詳しくは参考URLをどうぞ!

/usr/bin/mysql_secure_installation

[CentOS] MySQLサーバーのインストールを行うの巻 ~mysql_secure_installationを使ってみよう~ - TrippyBoyの愉快な日々

参考サイト

セキュリティ設定

iptablesを設定して、不要なポートを閉じたり、怪しい通信をはじきます。shellで下記を実行していく。

iptables -A INPUT -p tcp --tcp-flags ALL NONE -j DROP
iptables -A INPUT -p tcp ! --syn -m state --state NEW -j DROP
iptables -A INPUT -p tcp --tcp-flags ALL ALL -j DROP

iptables -A INPUT -i lo -j ACCEPT 
iptables -A INPUT -p icmp -j ACCEPT

# 下記は許可するポート、80はhttp通信、443はhttps、10022はssh!
iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 443 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 10022 -j ACCEPT

iptables -I INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

iptables -P INPUT DROP 
iptables -P OUTPUT ACCEPT

参考サイト:iptablesの設定方法|さくらインターネット公式サポートサイト

次に、iptablesを再起動時に自動で反映するために設定していきます。/etcにファイルを作る。rootになって作業します。

sudo su -
cd /etc
iptables-save > iptables_rule
cp iptables_rule iptables_rule.org

下記が設定ファイルからの復活方法

iptables-restore < iptables_rule

if-pre-up.d に、サーバ起動時に実行されるshファイルをおいておく

cd /etc/network/if-pre-up.d/
vim set_iptables.sh

shの内容は下記

#!/bin/sh
/sbin/iptables-restore < /etc/iptables_rule
exit 0

実行権限をつけてあげて出来上がり

chmod +x set_iptables.sh

Unicornを動かす

MacでもよくみるQtないよエラー!ubuntuではどうやるのか。

Gem::Ext::BuildError: ERROR: Failed to build gem native extension.

    /home/inureo/.rbenv/versions/2.1.3/bin/ruby extconf.rb
Command 'qmake -spec linux-g++ ' not available

Makefile not found

Gem files will remain installed in /home/inureo/.rbenv/versions/2.1.3/lib/ruby/gems/2.1.0/gems/capybara-webkit-1.3.0 for inspection.
Results logged to /home/inureo/.rbenv/versions/2.1.3/lib/ruby/gems/2.1.0/extensions/x86_64-linux/2.1.0-static/capybara-webkit-1.3.0/gem_make.out
An error occurred while installing capybara-webkit (1.3.0), and Bundler cannot continue.
Make sure that `gem install capybara-webkit -v '1.3.0'` succeeds before bundling.

下記でOK

sudo apt-get install libqt4-dev

Installing Qt and compiling capybara webkit · thoughtbot/capybara-webkit Wiki

もう一度bundle install、無事に通る(╹◡╹)

アプリケーションのmysqlユーザを追加

GRANT ALL ON database.* TO 'user'@'127.0.0.1' IDENTIFIED BY 'password';

ユニコーンを起動

bundle exec unicorn -D -c ./config/unicorn/production.rb -E production

ユニコーンを殺す時は下記

kill -QUIT `cat tmp/pids/unicorn.pid`

nginx + unicorn + Railsの設定方法 - Qiita Ruby on Rails - Nginx & Unicorn で動かす! - mk-mode BLOG

シリーズ

さくらVPSにUbuntu LTS 14.04をインストールした話(1)

26歳 エンジニアのかばんの中身を晒す

こんにちは、いぬれおです。「nanapiカバンの中身出しアドベントカレンダー2014」というものが開催されておりまして、事業戦略室のアメリさんからバトンを受け取りましたので、カバンの中身を晒してみたいと思います。

と、その前にカバンに求めるものとかを書きたいと思います。

カバンに求めるもの

PCを入れたい

メインのカバンにはPCが入ることが必須です!常にPCを持ち歩きたい勢いなんです。PCがあれば充電もできるしテザリングがあればインターネットもできるし、ちょっとした時間でコードかけるし最強じゃん!みたいなところから…。

それなりのものを使いたい

「靴やカバンはいいものを使え」ってよく聞きますよね。個人的に激しく同意で、やっすい靴とかカバンとかって一目でわかっちゃうんですよね。学生とかならいいんですけどいい年(アラサー)にもなって、そういうの着ちゃうんだ…ってなるのが嫌なんです。

もちろん安いことが悪いなんて全くないんですけどね!安くて質がいいなら最高!ただそんなのほとんどなくて、値段相応なんですよねぇ。あと元々デザイナーだったということもあり、「デザインするやつがウンコみたいな格好してイケてるクリエイティブ生まれんのかよ!」という思いもあり、服装についてはめちゃくちゃ気にかけるようになりました。

ちなみに最近安くてよかったものは無印のウールハーフコートです、超ヘビーユーズしています。

f:id:inureo:20141219015104j:plain

捨てアウター(安くて最悪捨ててもいいレベルのもの)として買ったんですけど、多分余裕で3年は着ると思います。最高です。

さて話がそれましたが、本題です。

26歳 エンジニアのカバンの中身

f:id:inureo:20141219005145j:plain

  • master-pieceのトートバッグ
  • トートバッグにデフォルトでついてたポーチ
  • 財布
  • 名刺入れ
  • キーケース
  • 無印のノート
  • 3色ボールペン
  • スティックのり
  • メガネケース
  • iPhone
  • モバイルバッテリー
  • ライトニングケーブル
  • ハリスツイードのポーチ?
  • 目薬
  • ブレスケア
  • ティッシュ
  • ハンカチ
  • MacBookAir

master-pieceのカバン

f:id:inureo:20141219005155j:plain

昨年の冬に転職祝いに買ったものです。自分は13インチのAirを使っているのでそれが入るサイズで、自分の服にも合わせやすいものが欲しくてこちらにしました。内側は鮮やかな朱色になっていてかわいいです。

アウターに、チェスターコートやモッズコートやらハーフコートを着ているのですが、何にでもあうのでめちゃくちゃ気に入っているカバンです。

充実したディテール

f:id:inureo:20141219004137j:plain

また内ポケットなど細かい部分も充実していて、このポーチがカバンの中でベルトについてたりします。細かいもの(目薬・ブレスケア・ティッシュ)を入れるのに重宝しています。個人的にすた丼・王将・二郎などのニンニク臭くなる飯屋が好きなので常にブレスケアを持っています。

汗かきのため、夏場はこれに制汗スプレー・ギャツビーの汗ふきシートも追加されてにおい対策おじさんになります。

だいすきなPC

2011年モデルだと思います。nanapiにきてからシールを貼るようになったので微妙にシールが貼ってあります。が、会社のMBPを触る時間の方が多いので、そちらに良いシールを集約させています。

f:id:inureo:20141219004108j:plain

色んなケースたち

f:id:inureo:20141219004122j:plain

左から、キーケース・名刺入れ・財布です。

キーケース

渋谷のパルコ1のB1Fの雑貨屋で買いました、シマシマと好きな色(赤・青・金)だったのとリーズナブルな値段だったのですぐに買いました。赤+金・青+金ってめっちゃ好きなんですよね。

名刺入れ

無印の名刺入れが壊れたので、Amazonで一番安いかつ革製品であるという条件で購入したものです。すぐ買い換えるつもりだったのですが、なんだかんだ4年ほど使っています(;´Д`)

財布

エッティンガーの二つ折りの財布です。内側はキャメル色になっていてかわいいんです。購入した当時は外側が黒・内側が紫というモデルに変わったタイミングだったので、今使っている色の在庫を探すのに必死だったことを憶えています。

また、仲の良い友達がエッティンガーの財布を使っているということを共有していないのに、同じモデルの財布を買っていて複雑な気持ちになりました。

ハリスツイードのポーチ

f:id:inureo:20141219004152j:plain

前職で取材をした際にいただいたものです。丈夫で色々入るので重宝しています。 中身はモバイルバッテリーとメガネケース、ライトニングケーブル、スティックのりです。スティックのりが浮いていますが、封筒の糊付けする時に活躍します。

ハンカチ

f:id:inureo:20141219004112j:plain

いつも持ち歩いてるけど、カバンの中にあるのでいつも取り出せず使えていません。ハンカチって常にポケットとかに入れておくべきものなんですかね…。

ということで、26歳エンジニアのカバンの中身出しでした。

次のカバン出しブログ

次は、僕と近いスキルセットのぽりさんです!常に青を身にまとっていたり、異常に写真撮影が上手かったり、なぜか紙の種類・重さについて語れたり不思議な人です!お楽しみにどうぞ!

CircleCI上でRSpecを動かす時にfeatureテストだけ落ちていた時

なんかE2Eテストだけ落ちる…

取り敢えずCircleCIにSSHで接続して状況確認、Capybaraでエラーが出るタイミングでページを保存

couldn't find file 'jquery-1.11.1'
  (in /home/ubuntu/project/app/assets/javascripts/pc/application.js:14)

( ゚д゚)ハッ!

test:
  override:
    - bundle exec rake bower:install
    - bundle exec rake spec

〜fin〜

アホだったお話でした

さくらVPSにUbuntu LTS 14.04をインストールした話(1)

さくらVPSUbuntu LTS 14.04をインストールして、セットアップしたので備忘録的にまとめておきます

チームでWebサービスを作るぞ!ということで、さくらVPSRails環境を構築します 想定は nginx + Unicornです

OSのカスタムインストール

これはさくらインターネットさんの方で、画像付きの丁寧なマニュアルがありましたのでその通り進めて全く問題なかったのでそのまま参考URLをはっておきますね

Ubuntu 12.04/14.04|カスタムOSインストールガイド|さくらのVPS|さくらインターネット公式サポートサイト

rootになれるユーザを制限

vi /etc/pam.d/su
# 15行目:コメント解除し su を許可するグループ名追記
auth   required   pam_wheel.so   group=adm

sshdの設定

やること

  • Portが22番のままだと辞書攻撃の対象になるなどセキュリティ上不安なので、ポートの変更
  • sshでrootログインを遮断
  • X11Protcolを遮断

まずはsshdの設定ファイルを開く

vi /etc/ssh/sshd_config

49152番から65535番までの間の任意の一つを選んで設定する Port番号は参考URLでも書かれてるように上記の番号で設定する

--- snip ---
#Port 22
Port XXXXXX
...
#PermitRootLogin yes
PermitRootLogin no
...
#X11Forwarding yes
#X11DisplayOffset 10
X11Forwarding no

sshdをリロード

service ssh reload

無事にリロードができたらssh-p オプションでポートを指定してログインする

参考サイト

oceanweb : さくらの VPS : Ubuntu 12.04 導入後の設定(1)

aptの設定

multiverseというのがテストがいまいちということで、リポジトリリストからコメントアウトするよ

vi /etc/apt/sources.list

後ろに multiverse と付いているので、 multiverse で検索してコメントアウトしてあげると楽です

29: #deb http://jp.archive.ubuntu.com/ubuntu precise multiverse
30: #deb-src http://jp.archive.ubuntu.com/ubuntu precise multiverse
31: #deb http://jp.archive.ubuntu.com/ubuntu precise-updates multiverse
32: #deb-src http://jp.archive.ubuntu.com/ubuntu precise-updates multiverse

39: #deb http://jp.archive.ubuntu.com/ubuntu precise-backports main restricted unive
rse multiverse
40: #deb-src http://jp.archive.ubuntu.com/ubuntu precise-backports main restricted universe multiverse

44: #deb http://security.ubuntu.com/ubuntu precise-security multiverse
45: #deb-src http://security.ubuntu.com/ubuntu precise-security multiverse

パッケージの更新もしてあげるよ

apt-get update
apt-get upgrade

参考サイト

oceanweb : さくらの VPS : Ubuntu 12.04 導入後の設定(2)

ロケールの設定

日本語が使えるようにするよ、早速さっき設定したaptで日本語のパッケージをインストール

apt-get install language-pack-ja
dpkg-reconfigure locales
update-locale LANG=ja_JP.UTF-8

参考サイト

評判のさくらのVPSを使うときに最初にやっておきたいこと(Ubuntu編) | レンタルサーバー・自宅サーバー設定・構築のヒント

NTPクライアントの設定

サーバの時刻を標準時刻と同期できるようにするよ

vi /etc/default/ntpdate
#NTPSERVERS="ntp.ubuntu.com"
NTPSERVERS="ntp.nict.jp"

下記にスクリプトを制作

vi /etc/cron.daily/ntpdate

スクリプトの中身

# !/bin/sh
PATH=/sbin:/bin:/usr/sbin:/usr/bin

if [ ! -x /usr/sbin/ntpdate-debian ] && [ -d /usr/sbin ]; then
        exit 0
fi

/usr/sbin/ntpdate-debian

パーミッションを変更して実行可能にしてあげる

chmod 755 /etc/cron.daily/ntpdate

参考サイト

oceanweb : さくらの VPS : Ubuntu 12.04 導入後の設定(2)

色々インストール

sudo apt-get install git
sudo apt-get install tmux

Zshにする

Zshをカスタマイズするのが面倒なので、Preztoでセットアップします。ここは参考URLをまるまるコピーしています

// Zshインストール
sudo apt-get install zsh

// Zsh起動
zsh
 
// リポジトリをclone
git clone --recursive https://github.com/sorin-ionescu/prezto.git "${ZDOTDIR:-$HOME}/.zprezto"
 
// 設定ファイルを作成
setopt EXTENDED_GLOB
for rcfile in "${ZDOTDIR:-$HOME}"/.zprezto/runcoms/^README.md(.N); do
  ln -s "$rcfile" "${ZDOTDIR:-$HOME}/.${rcfile:t}"
done
 
// Shellのデフォルトに設定
chsh -s /bin/zsh

Zsh + Prezto で快適コマンド環境を構築する | Developers.IO

秘密鍵ログイン

scp -P XXXXX .ssh/id_rsa.pub user@IPAddress:/home/user

userのhomeディレクトリに届いているか確認したら、

mkdir .ssh
mv id_rsa.pub ~/.ssh/authorized_keys
sudo vi /etc/ssh/sshd_config

パスワードログインを禁止

#PasswordAuthentication yes
PasswordAuthentication no
sudo service sshd restart

公開鍵認証の設定とconfigファイルでssh接続の管理(Ubuntu)

ユーザにsudo追加

rootになって visudo でユーザを追加

su -
visudo

sudoersを開いたら下記を追加

user ALL=(ALL)       ALL

さくらVPS+CentOS:自分をsudoユーザに追加してみた | Suinasia

と、長くなりそうなのでここまで。 Rails環境をととのえるのは次回にします(╹◡╹)

SCSSファイルをSASSファイルにワンライナーでコンバートする

先日Railsプロジェクトのテンプレートをerbからslimに変換しました。今度はscssファイルをsass記述に一括でコンバートしようと思っています。

その時に使ったワンライナーを参考に、コマンドをちゃんと理解しようと思います\(^o^)/

前回使ったものを理解する

find app/views -name "*.erb" -exec bundle exec erb2slim {} \;

このワンライナーはほぼfindだけで完結していますね!構文は[path] [options] [action]というように書いているので、こちらを分解して説明してみます。

path

ディレクトリをapp/viewsに指定

options

nameオプションを使ってerbファイルに絞る

action

検索後,commandを実行する。このとき{}をコマンドで用いることにより,検索結果をコマンドに引き渡す なので対象ファイルが{}でわたってきているので、それに対してerb2slimを実行

Linuxコマンド集 - 【 find 】 ファイルやディレクトリを検索する:ITpro

1つずつまとめていくと楽勝ですね!

上記を理解した上でsass用ワンライナーを書く

結論から書くと下記です、順番に分解していきます!

find ./app/assets/stylesheets/* -name '*.scss' -type f | while read -r d; do path=${d%.*}; sass-convert $d "${path}.sass"; rm $d; done  

find

find ./app/assets/stylesheets/* -name '*.scss' -type f ここまでですね

path

Railsプロジェクトのトップディレクトリで使うので、./app/assets/stylesheets/*までパスを指定

name

erbと同じくscssファイルのみの指定

type

-type c 指定したファイル・タイプを検索する。cはdがディレクトリを,fが通常ファイルを,lがシンボリック・リンクを表す

ということで通常ファイルのみを選択

Linuxコマンド集 - 【 find 】 ファイルやディレクトリを検索する:ITpro

while

while read -r d;
  do
    path=${d%.*};
    sass-convert $d "${path}.sass";
    rm $d;
done

pipeでfindの結果を引き渡しています。

whileの条件

while read -r d;

引き渡された結果をreadして、$dという変数にして回しています。readとしているので、引き渡されたリストの行数分だけ回します。 また、-rについては下記のようなオプションになっています。

-r   バック・スラッシュをエスケープ文字とみなさない

Linuxコマンド集 - 【 read 】 読み出したファイルを解釈する:ITpro

path=${d%.*};

変数dを正規表現で拡張をとりのぞき、変数pathに代入しています

sass-convert

引き渡された$dを、同じファイル名で拡張子をsassに変えた先を変換先としてコンバートをさせています。

rm $d;

使ったファイルを削除!

その他参考サイト: findのexecが便利 - マツモブログ find の -exec 内でパイプ|PC-Unix弄り始めました。 TIPS/Linux/042 - PukiWiki

sass-convertがかなり賢いので、ほぼ手直しなしでOKでした!

〜 fin 〜

Railsのviews配下にある.erbファイルをslimに変換する

現在の業務で行っているプロジェクトでは、コーディングをデザイナーさんにやっていただいていたのでerbを使っています。しかしhtmlって長いよね、閉じるの面倒だよね、ということでslimに移行することにしました。(レンダリング時間が一番速いしね!)

デザイナーさんも新しいこと覚えたい!と前のめりだったので、取り敢えず現状のerbをslimに変換する方法を探す。

導入まで

サクーっと検索するとerbからhaml、そしてhamlからslimに変換する方法がよく出てきました。エントリを読んでみると変換途中でトラブルが起こるみたいだったので、なんとか一括で変換できるものがないか探してみるとやっぱりありました。

コミットログを見てみると2013/4にファーストバージョンがコミットされ、昨年末から活発になってきている模様です。

GitHub: slim-template/html2slim

参考サイト: Railsのviewsディレクトリ以下の.erbファイルをSlimに一括変換するgem (html2slim) とワンライナー記述 | もっちブログ 3/3 Slimテンプレートエンジンを使ってHTMLを出力する [Ruby] All About

いざ導入

コンバート

参考サイトに沿って進めていきます。projectにいれるのではなくローカルにhtml2slimをインストールします。

$ gem install html2slim

無事に入ったと思ったらcommand not found、、下記を試す

$ rbenv exec gem install html2slim

はいった!bundlerを雰囲気で使ってるのでここらへんはちゃんと調べてブログにまとめます。

$ rbenv exec html2slim -h
Usage: html2slim INPUT_FILENAME_OR_DIRECTORY [OUTPUT_FILENAME_OR_DIRECTORY] [options]
        --trace                      Show a full traceback on error
    -d, --delete                     Delete HTML files
    -h, --help                       Show this message
    -v, --version                    Print version

rbenv execも外してOK

$ html2slim -h
Usage: html2slim INPUT_FILENAME_OR_DIRECTORY [OUTPUT_FILENAME_OR_DIRECTORY] [options]
        --trace                      Show a full traceback on error
    -d, --delete                     Delete HTML files
    -h, --help                       Show this message
    -v, --version                    Print version

参考サイトにのっているワンライナーだとactive_admin、deviseを使っている場合ディレクトリが深い部分もあるので別のサイトのものを使用。(rbenvの部分はbundleなどに変更してみてくださいね)

find app/views -name "*.erb" -exec bundle exec erb2slim {} \;

こんな感じに!

f:id:inureo:20140808193904p:plain

コンバート後の対応

  • style記述に対応していない
  • scriptタグに対応していない
  • styleタグに対応していない
  • if、unlessのインデントがズレる

ある程度まではコンバートしてくれるのですが、上記の点で手直しが必要になります。

またslimの記述で角カッコでアトリビュートを囲う方法があるのですが、個人的には閉じ忘れが面倒になるので全て角カッコを抜いて下記のような形にしました。

h1 class="heading"

ザックリとですが備忘録的なメモです!

slimのREADME.md日本語訳 slim/README.md at README_ja · yterajima/slim

GitHub searchを使ってイケてるしヤバいメソッド名をつけよう!

コードレビューの中で「メソッド名がダサい」と、指摘をいただいた際に参考になるよと教えてもらった方法です。

GitHubのSearchを使う

Code Search

恥ずかしながら上記ページを知らなかったのですが、ここからパブリックなプロジェクト内の検索ができるようです。こちらを使って14.7Mもあるレポジトリの中からメソッド名の参考になるものを探してみましょう。

1. searchしたい部分を入力

f:id:inureo:20140806204655p:plain

rubyのmapを使ったソースがみたいなー、ということでmapで検索をします。たくさん出た!けどレポジトリ名での検索になってしまっているので、code検索に切り替えます。

2. codeを選択

f:id:inureo:20140806204709p:plain

code検索に切り替わったのですが、たくさんの言語が混ざっているのでサイドメニューのLanguagesの中から更に言語を選択します、ここではRubyを選択します。

3. 言語を選択

f:id:inureo:20140806204716p:plain

なんとなく…ぽくなってきた…?

検索内容がザックリすぎたので、もう少し詳細を入れて調べてみます。

より詳しい内容で検索

f:id:inureo:20140806204722p:plain

map(&:id)

で、idだけを抽出するメソッドの名前がほしーい!ということで画像を見るとids!

User.ids、実にオブジェクト指向な感じ。

簡単な例だったので参考になるかはわかりませんが、検索するならGitHubでの検索が一番数が多いと思うので備忘録的にブログを書きました。何かの参考になれば幸いです。

ちなみにメソッド名関連で調べてみると、CRUDを頭につけるとわかりやすいよねーとかあるので、ひとまずはそこらへんを参考にして、飛び道具的なメソッドが出てきたらGitHub Searchを使ってみるつもりです!

更に余談ですが下記エントリを見るとめちゃくちゃ勉強になりそうなので見て勉強してみることにします。

正しいコーディングが身につくエンジニア英語の手引き 〜文法とクラス/メソッド、命名規則〜 | Find Job ! Startup