タグ

ブックマーク / blog.livedoor.jp/sasata299 (22)

  • Rails開発をする上で知っておいた方が良さそうなこと - (゚∀゚)o彡 sasata299's blog

    2015年07月01日13:34 Ruby 勉強会 Rails開発をする上で知っておいた方が良さそうなこと 先週の木曜日、Speeeさんで開催された第2回SpeeeTeckPartyにお邪魔して発表してきました。 これは x 技術をテーマにした勉強会で、第1回は「寿司 x Ad」だったそうなんですが、なんでも今回は「からあげ x Ruby」だそうで、であればささたつさんしかいない!という人選だったそうですw (お寿司べたかったな・・w というわけで、Rails開発するなら知っておくと良さそうなことを10個(質疑応答で一つ増えて11個になったりもしましたが!)紹介してきました。以下がスライドです。 他にもいろいろとあると思いますが、少しでも役に立てば幸いです :D ツイート 「Ruby」カテゴリの最新記事 「勉強会」カテゴリの最新記事

    Rails開発をする上で知っておいた方が良さそうなこと - (゚∀゚)o彡 sasata299's blog
  • requireとrequire_relativeの違いとは? - (゚∀゚)o彡 sasata299's blog

    2014年10月28日10:57 Ruby requireとrequire_relativeの違いとは? 先日、require_relativeっていうのを見かけて、これなんだろうと思って調べました!どうもRuby1.9.2から導入されたモジュールみたいですね。 そもそも、Ruby1.9.2以降とそれより前のバージョンとでは、$LOAD_PATHの扱いに違いがあります。例えば、Ruby1.8.7では$LOAD_PATHにはカレントディレクトリも含まれます。 $ rbenv shell 1.8.7-p375 $ ruby -e 'puts $LOAD_PATH' /Users/sasata299/.rbenv/versions/1.8.7-p375/lib/ruby/site_ruby/1.8 /Users/sasata299/.rbenv/versions/1.8.7-p375/lib/r

    requireとrequire_relativeの違いとは? - (゚∀゚)o彡 sasata299's blog
  • Rubyで "&" を使うと幸せになれるらしいよ (*´Д`)ノ - (゚∀゚)o彡 sasata299's blog

    2010年02月03日21:31 Ruby Rubyで "&" を使うと幸せになれるらしいよ (*´Д`)ノ なんか似たようなタイトルを見たことあるな…まぁいいか。 Perlで+を使うと幸せになれるよ (*´Д`)ノ - (゚∀゚)o彡 sasata299's blog ブロック処理 ( do...end もしくは {...} ) の例としてはこのような3種類があります。 #1 ブロックの中に直接処理を書く方法 #2 ブロックの中でやらせたい処理の Proc オブジェクトを呼び出す方法 #3 ブロックを使わずに Proc オブジェクトに & を付けて渡してあげる方法 3つとも全く同じ処理です。#3 みたいに書く事も出来るんですね〜。& が Proc オブジェクトをブロックに変換してくれます。 #1 3.times do puts 'hogehoge' end proc = Proc.new

  • rails の alias_method_chain が素晴らしすぎる - (゚∀゚)o彡 sasata299's blog

    2009年01月08日00:49 Ruby rails の alias_method_chain が素晴らしすぎる 今日はrailsの話.。゚+.(・∀・)゚+.゚ メソッドを上書きするとき、元のメソッドも残しておくためには alias_method を使います。 alias_method :new_method, :original_method でも、これだと後から同名のメソッドを作ってしまい、重複してしまう可能性が。危険。そこでrailsでは、名前の衝突をなるべく避けるために、拡張する機能名をメソッド名に追加する習慣があります。 旧メソッド: "(メソッド名)_without_(機能名)" 新メソッド: "(メソッド名)_with_(機能名)" 例えば、既存の "hoge" メソッドに新機能 "sasata299" を追加する場合、こんな感じになります。 alias_method :

  • RubyistならデバッグにはPryのbinding.pryがおすすめ - (゚∀゚)o彡 sasata299's blog

    2012年09月19日10:58 Ruby RubyistならデバッグにはPryのbinding.pryがおすすめ Pry("ぷらぁい" と発音します)はirbをもっと便利にしたものでRubyistならぜひ使うべきなgemです。しかもインストールはたったこれだけと非常に簡単です。 # pry-docは無くてもまぁいいですが、いろいろ調べられるので入れとくと良いでしょう。 gem install pry pry-doc Pryを使うとどういうことが出来るのかについてはこちらの動画をご覧ください。 #280 Pry with Rails - RailsCasts さて、この動画の中でも説明されていますがbinding.pryと書くことで任意の場所にブレイクポイントを設置することができます。ブレイクポイントを設定しておけば、処理を実行した際にそこで止まって自動的にPryコンソールが立ち上がるため

  • 正規表現で最短マッチを知っとくとちょっと便利かも - (゚∀゚)o彡 sasata299's blog

    2012年05月01日21:34 Ruby 正規表現で最短マッチを知っとくとちょっと便利かも 正規表現ってあるじゃないですか。そうです。アレです。 とっても便利で、いろんな場面で役立つと思うんですが、ときどき最短マッチを使いたくなって「最短マッチってどう書くんだっけなぁ?」ってなってググることがあります(よね!) 通常は最長マッチになる 通常、正規表現内で * とか + とか付けると、直前の表現の0回/1回以上の繰り返しを表しますが、この書き方だとできるだけ長い要素にマッチしようとします。大事なことなのでもう一度言います。できるだけ長い要素にマッチしようとするんです。 大抵はそれで構わないんですが、ときどきそれでは困るケースがあります。例えばこんなケースを考えてみましょう(あんまり良い例が思いつかない)。 ・"名前(ニックネーム)"という形式 ・名前と(ニックネーム)の間には半角or全角ス

  • Rubyで日付の計算するならactive_support使っとけ - (゚∀゚)o彡 sasata299's blog

    2009年09月07日01:47 Ruby Rubyで日付の計算するならactive_support使っとけ Ruby で日付を扱うときに、active_support (rails をインストールすると一緒に入ってくるライブラリ) が凄い便利なんです!!ぐだぐだ説明するよりもコードを見たほうが早いと思うのでどうぞ。 #!/usr/bin/ruby require 'rubygems' require 'active_support' t = Time.now # Mon Sep 07 00:24:07 +0900 2009 t - 5.days # 5日前 (Wed Sep 02 00:24:07 +0900 2009) t - 1.week # 1週間前 (Mon Aug 31 00:24:07 +0900 2009) t - 2.years # 2年前 (Fri Sep 07 00:

  • Railsエンジニアならこれだけは知っておけっていう便利メソッド - (゚∀゚)o彡 sasata299's blog

    2011年07月26日13:29 Ruby Railsエンジニアならこれだけは知っておけっていう便利メソッド Object#presence と Object#try という便利なメソッドがあることをご存知ですか?この2つのメソッドはとっても便利なのでちょっと紹介してみます。 Object#presence メソッド これは以下のような定義となっています。 def presence self if present? end present? メソッドというのはみんな大好き blank? の反対のメソッド (!blank?) です。 つまり、nil, false, [](空配列), {}(空ハッシュ), ""(空文字列), " "(半角スペースだけの文字列)であれば false、それ以外であれば true になります(blank? って半角スペースだけの文字列を true と判定するの知って

  • ヒトメディアに入社しています - (゚∀゚)o彡 sasata299's blog

    2014年10月03日21:41 その他 ヒトメディアに入社しています だいぶ今更感はあるのですが、、 7月から「教育で世界をよくする」をビジョンに掲げているヒトメディアという会社に入社して、とある新規事業に関わっています。頑張っています。 ささたつの欲しいもの ツイート 「その他」カテゴリの最新記事

    ヒトメディアに入社しています - (゚∀゚)o彡 sasata299's blog
  • BASE技術勉強会で話してきました - (゚∀゚)o彡 sasata299's blog

    2014年09月30日13:34 勉強会 BASE技術勉強会で話してきました こんにちは。ささたつです。 先日、BASEさんの第1回?社内勉強会にお呼びいただいてお話してきました。そのときの資料です。前半はVagrantやDockerなどの仮想化周りの話を、後半は最近思っていることについてつらつらと話してきました〜。 このときのことについてはBASEのCTOであるえふしんさんがブログにまとめてくださったんですが、おにぎりやからあげ(!)も大量に用意してあり、ビールもプレモルで素晴らしい環境でした :D BASE技術勉強会〜ささたつさん勉強会を開催しました | F's Garage@fshin2000 最近は社内勉強会のようなクローズドな集まりに呼んでいただけることもちょくちょく出てきました。えふしんさんも書かれていますが、なんで僕だったのか聞いてみたら「直感」だったということで大変嬉しく思

    BASE技術勉強会で話してきました - (゚∀゚)o彡 sasata299's blog
  • factory_girl で最低限知っておきたい4つの使い方 - (゚∀゚)o彡 sasata299's blog

    2013年08月22日13:26 Ruby factory_girl で最低限知っておきたい4つの使い方 みなさん、テストを書くときには Fixture Replacement として何を使ってますか?一番メジャーなところだと factory_girl でしょうか。machinist も有名ですね。シンタックスの違いのようなので基的にはどちらでも良さそうです。 参考(stackoverflowMachinist vs FactoryGirl - pros and cons In other words, both are extremely similar, just with a different default syntax. 今回は(僕が factory_girl4.2.0 を使ってるので)factory_girl4.2.0 についての話です。 インストール まずインストールし

  • 迷ったら難しい方を選ぶということ - (゚∀゚)o彡 sasata299's blog

    2013年10月02日11:39 意識高い 迷ったら難しい方を選ぶということ 最近考えていることなのですがちょっと書いてみます。意識高い系です。 例えば、「どう使うんだろ??」とユーザが迷うようなページがあったときにどう解決するか。説明を追加したり、チュートリアルを入れたりといった方法もあれば、UIUXといった見せ方を工夫することで解決するような方法もあると思います。 こういうときに最近考えているのが、複数の方法があって迷う場合、まず難しい方法にチャレンジする ということ。もちろん面倒なので楽な方がいいんですが、より難しい方法で問題が解決できると余計な情報を追加する必要も無いし、サイト全体が驚くほどすっきりして「どうして今までこうじゃなかったんだ」と腹落ちすることが多いです。また、難しい方法は質的な解決策であることも多いように感じます。実装などの困難さを考えずにどちらがユーザにとって良

  • Spring無しでRailsを使おうだなんて正気ですかッ!? - (゚∀゚)o彡 sasata299's blog

    2013年08月06日18:47 Ruby Spring無しでRailsを使おうだなんて正気ですかッ!? Railsはフレームワーク自体や関連ライブラリの読み込みがあるため、ちょっとしたコマンドを実行するだけでかなり待たされてしまったりします(サーバ起動などなど)。そこで、あらかじめRailsプロセスをロードしておき、そのプロセスから各種コマンドを実行することで高速に実行しよう!という素敵なアプローチがあります。その一つが Spring です。 インストールはこれだけ!これだけでコマンドの実行が高速になるんだから入れない理由があるでしょうか。いや、無い。 gem install spring ただ、対象はRails3.2以上なので古いRailsを使っていると恩恵が受けられないです。。そういう場合はさっさとバージョンを上げましょう。そのくらい快適です。 実際に実行時間を計ってみても(かなり適

  • Rails4 + Capybara + PhantomJS (poltergeist) なテスト環境 - (゚∀゚)o彡 sasata299's blog

    2013年08月05日14:53 Ruby JavaScript Rails4 + Capybara + PhantomJS (poltergeist) なテスト環境 Rails4 でのエンドツーエンドなテスト環境を作ってみたのでメモです。 統合テストといえば Capybara さんなわけですが、デフォルトだと JavaScript を実行する際にドライバとして Selenium が使われてしまいます。 Selenium さん良い人なんですが、、、ブラウザが起動するので重いし、そもそも毎回ブラウザが起動する必要は無いのでヘッドレス(ブラウザの起動無しに JavaScript が実行できる)ドライバにしちゃいましょう。サヨナラ。 ヘッドレスドライバはいろいろあるんですが、最近は PhantomJS というライブラリが良いみたいなのでこれを使ってみます。Capybara から PhantomJ

  • homebrew-caskさえあればご飯大盛り三杯はイケる - (゚∀゚)o彡 sasata299's blog

    2014年06月26日11:42 ライフハック homebrew-caskさえあればご飯大盛り三杯はイケる 久しぶりにホッテントリメーカーを使いましたw 最近は不安定な天気で急な雨が振ることが多いですが、みなさんいかがお過ごしでしょうか。ところで homebrew-cask 使ってますか? 僕も少し前から使ってるんですが、なかなか便利なので紹介してみます。一言で言うと、Bundler の Homebrew 版です。 と言ってもよくわからないかと思うので説明すると、Bundler は Rubyプロジェクトで使われていて、設定ファイルに必要なライブラリを書いておけば、コマンド一発でそれらをまとめてインストールしてくれる、無くてはならない便利ツールです。 Homebrew は Mac OS X のパッケージ管理システムで、最近だと比較的当たり前に使われるようになってきたんじゃないでしょうか。

    homebrew-caskさえあればご飯大盛り三杯はイケる - (゚∀゚)o彡 sasata299's blog
  • jbuilderで良い感じのハッシュ形式のJSONを返したいならこれだけ押さえておけば大丈夫かも - (゚∀゚)o彡 sasata299's blog

    2014年04月09日11:24 Ruby JavaScript jbuilderで良い感じのハッシュ形式のJSONを返したいならこれだけ押さえておけば大丈夫かも JSON を返すときに、良い感じにごにょごにょしたいみたいなときってあるじゃないですか。そういうときに jbuilder ではどうやるのかなーと思ってちょっと調べたのでメモしておきます。 基的な使い方はこんな感じです。 # こう書くと json.user do |json| json.nickname @user.name end # こうなる { "user": { "nickname": "sasata299" } } ただ、これだとキーの部分("nickname" の部分)が定数となってしまい、変数が使えません。変数を使ってキーを動的に変えたい場合には set! というメソッドを使います。 例えば、"nickname"

    jbuilderで良い感じのハッシュ形式のJSONを返したいならこれだけ押さえておけば大丈夫かも - (゚∀゚)o彡 sasata299's blog
  • 4社の合同技術勉強会で発表してきました - (゚∀゚)o彡 sasata299's blog

    2014年02月20日15:51 勉強会 4社の合同技術勉強会で発表してきました 昨日、【 ヒカ☆ラボ 】 ITベンチャーを支えるテクノロジー  今、話題の4社が合同技術勉強会を開催!! 〜ChatWork、ブラケット、Lang-8、ランサーズ〜 で発表する機会をいただいたので、Lang-8について発表してきました。 他の会社の開発環境など、いろんな話が聞けてとても参考になりました〜。利用している外部サービスはどこもだいたい同じですねぇ。 資料はこちら。 最近、直接話すことが大事だな〜と感じていたり、Team Geakを読んでいたりするので(いまさらですがすごく面白い!)その辺の影響を強く受けている感じですw Team Geek ―Googleのギークたちはいかにしてチームを作るのか [単行(ソフトカバー)]Brian W. Fitzpatrickオライリージャパン2013-07-20

  • mysqlでCASE文を使ってみる - (゚∀゚)o彡 sasata299's blog

    2008年06月15日00:02 MySQL mysqlでCASE文を使ってみる 僕はいつもDBMSとして、MySQLを使っています。今日は勉強として、CASE文というものを使ってみます。早速ですが、使い方はこんな感じです。 CASE WHEN 条件 THEN 値1 ELSE 値2 END これは便利!( ゚∀゚)アハハ八八ノヽノヽノヽノ \ / \/ \ 条件が真だったら、値1が、偽だったら値2が使われます。 こんなテーブル (hogehoge) があったとして、 ----------------- | id | name | ----------------- | 1 | sasaki | | 2 | tanaka | | 3 | satou | | 4 | yamada | | 5 | sasaki | | 6 | nakamura | ----------------- こんな感じ

  • MySQLのLEFT JOIN, RIGHT JOIN, INNER JOINの自分用まとめ - (゚∀゚)o彡 sasata299's blog

    2008年09月03日00:53 MySQL MySQLのLEFT JOIN, RIGHT JOIN, INNER JOINの自分用まとめ MySQL の LEFT JOIN, RIGHT JOIN, INNER JOIN について、ちょっと混乱することが多いので自分用に簡単にまとめてみます。まぁ、タイトルのまんまです(・∀・;) まず、テスト用のテーブル (test1, test2) を用意します。 CREATE TABLE test1 ( test_id VARCHAR(255) PRIMARY KEY, hoge VARCHAR(255) ); CREATE TABLE test2 ( id INT PRIMARY KEY AUTO_INCREMENT, test_id VARCHAR(255) NOT NULL, fuga VARCHAR(255) ); テーブルの中身はこんな感じ

  • 実際のサイト上で動作するチュートリアルが簡単に作れるIntro.jsが便利すぎる件 - (゚∀゚)o彡 sasata299's blog

    2013年05月08日18:21 JavaScript 実際のサイト上で動作するチュートリアルが簡単に作れるIntro.jsが便利すぎる件 さて、先日簡単なチュートリアル作ろうと思ったんですが、どうやるのが良いのかなーと思って悩んでました。キャプチャ取ってそこに説明文を書いて…ってしてもいいんですけど、キャプチャだと一部分なのでサイト上のどの辺なのかわかりにくかったり、サイト側は変更したのにキャプチャが古いままとかになったりしちゃいますよね>< とか思って探してみたらこちらの Intro.js が便利だったので紹介してみます。 さて、この Intro.js を使うとですね、サイト上で動作するチュートリアルを簡単に作れるんですよ。使い方も簡単で、動作させたい要素に対して data-intro (表示する説明文) と data-step (チュートリアルの何番目に表示するか) を指定します。チ