一から勉強させてください

最下級エンジニアが日々の学びをアウトプットしていくだけのブログです

2014-01-01から1年間の記事一覧

procとlambdaの挙動の違い

Ruby の Proc オブジェクトはKernel#proc(またはProc#new)で作るパターンとKernel#lambdaで作るパターンがありますが、それらは地味に結構挙動が違っていたりします。 そこで今回はこのKernel#procとKernel#lambda でつくった時の Proc オブジェクトの挙動…

Rubyのcase文はwhen節に渡すオブジェクトによって振る舞いが異なる

今回は Ruby の case 文についてです。 Ruby の case 文はどのように値を比較するか Ruby の case 文では case 節に比較対象となる値を、when 節に case 節の値と比較する値を記述します。 んで、when 節の値をレシーバとして、===メソッドによって比較が行…

Rubyのメソッド探索についてまとめてみた

今回はパーフェクト Ruby で「Ruby のメソッド探索」について学んだのでそのメモです。 オブジェクトに対してメソッド呼び出しが行われる際、どのようにメソッドが呼び出されているのか、書いてみたいと思います。 自身のメソッドを呼び出した時 class BaseC…

Rubyのインスタンス変数、クラス変数、クラスインスタンス変数

Ruby のクラスには インスタンス変数 クラス変数 クラスインスタンス変数 があって何かとややこしい。。 特にクラス変数とクラスインスタンス変数の違いについてはいまいち理解しきれていなかったので、今回は頭の整理もかねてメモです。 それぞれの特徴につ…

Railsでfakerのバージョンを上げたらspecが壊滅したけど設定で乗り越えたメモ

最近、Rails プロジェクト内で使用しているfakerのバージョンを最新(v1.4.3)に上げたら、今まで通っていた spec が壊滅したので、その際のメモです。 状況把握 こちらの記事に記述されているものと全く同じ状況に陥ったと思われます。 プロジェクト内の loca…

git-new-workdirを導入してGitのブランチを複数同時に扱えるようにした

Git

今、僕の仕事環境では「エンジニアそれぞれが作業用ブランチを切って開発を進め、Github に pull-req を出してレビューもらって、それが通ったらマージされる」、といったよくありがちなフローで開発を進めています。 で、今までは自分が開発をしている最中…

bundle openでgemのディレクトリを手軽にエディタから確認する

gem のソースって今まで基本 Github から確認していたのですが、実はエディタから手軽に確認できる方法がありました。地味に知らなかったです。 こちらの記事を参考にさせていただきました。 エディタの設定 環境変数EDITORにあらかじめどのエディタを開くの…

Rails4 + devise + paranoiaで論理削除を考慮したユーザーバリデーションを実現する

Rails でユーザー登録、認証機能を実装する際、deviseを使用することはわりと一般的かと思います。 またユーザーの論理削除を実現するための gem としてはparanoiaが有名かと思います。(Rails3 時代によく使われていた acts_as_paranoid をよりシンプルにし…

Rubyのビット演算子、論理演算子について

Ruby の論理演算子、ビット演算子についてメモ。 論理演算子 一番よく使うやつ。 Ruby の論理積、論理和ってtrue、falseじゃなくてオペランドのどちらかを返す。短絡評価。(片方を評価して結果がわかったら、もう片方を評価せずに結果を返す) 論理積はどち…

PowとtunnelsでRailsのローカル開発環境にSSL導入

仕事で Rails アプリのローカル開発環境に SSL 導入したのでメモ。 pow の導入 powは Rack アプリケーション用のサーバー。仮想的なドメイン名を割り当ててアクセスできるようにしてくれるぽい。 github のreadmeをみて導入。 $ curl get.pow.cx | sh $ cd ~…

Railsのbefore_validationで文字列の先頭、末尾にある全角スペースを取り除く

Strip#stripを使うだけでは半角スペースとか改行文字しか取り除けないので、before_validation時に全角スペースを取り除く方法を考える。 ちなみに Ruby は 2.1.2、Rails は 4.1.0 を前提に書いてます。 auto_strip_attributes の導入 auto_strip_attributes…

Rails4.1プロジェクトにteaspoon入れたらエラー出たので調査した

Rails4.1 のプロジェクトでJavaScriptのテストをするためにteaspoonを入れたらうまく動かなかったので調査。 Rails4.0 で入れたときは問題なかったのに…ツラい。 準備 まずはGemfileに記述して group :development, :test do #ここにrspec関連とか書いてる。…

Homebrewで特定バージョンのformulaに切り替える方法

Homebrew で古いバージョンのimagemagickを入れる必要に迫られたのでメモです。 現状確認 まずbrew updateをして homebrew をアップデートして、現状確認。 $ brew update $ brew versions imagemagick imagemagick: stable 6.8.9-1 (bottled), HEAD http://…

WiMAXを使用していて、ホスト名解決できない問題にハマってる人に捧ぐ

僕は最近 WiMAX ルーター「AtermWM3800R」を購入しまして、おかげ様で家でも外でもインターネットを楽しむことができているのですが、ひとつだけ悩みがあります。 WiMAX で陥った問題 その悩みとは 頻繁にホスト名解決ができなくなる というものです。 どこ…

浮動小数点数について本気出して考えてみた

(2016/12/30 追記)コメントでご指摘頂いた箇所に関して修正しました。 この前たまたまこちらの記事を見つけて、浮動小数点数について全然理解してないなって思ったので勉強してみました。 前提 コンピュータの中に保存されているデータはすべて 0 と 1 の…

GitHubのユーザー名を変更してみた

この前 GitHub のユーザー名を変更したので、メモがてら書いておきます。 自分は以下の懸念事項があって今までなかなか行動に移せていなかったのですが、今回無事に変更できたので似たような心配をしている人の参考になれば幸いです。 今まで作成した GitHub…

Vagrant, chef, Underscoresを使ったWordPress爆速開発について

僕がはじめて WordPress を触ったのは2年前… 当時は MAMP を使ったローカル開発環境で開発して、FTP で本番にアップ、、なんてやり方で作業をしていました。 MAMP が起動しなくなって気が狂いそうになったり、適当に作られた独自テーマがカオスすぎて発狂し…