(2015年までの)odaillyjp blog

イベント参加記録とプログラミング系の雑記

ActiveSupport::Callbacks を使ってメソッドに前処理を挟み込む

Rails の Controller には、アクションメソッドに前処理を挟み込むための before_action というメソッドが存在します。ActiveRecord などを継承していない普通の Ruby のクラスでも簡単に前処理を挟み込めるようにしたいと思う場面がありまして、便利なモジ…

MySQLのインデックスについて学びました

前回の記事に続き、MySQLに関するネタを書きます。今回の内容のほとんどは『実践ハイパフォーマンスMySQL』の読みながらまとめた内容になりますので、より詳しく知りたい方はそちらをご一読ください。実践ハイパフォーマンスMySQL 第3版作者: Baron Schwartz…

MySQLの「InnoDB」と「MyISAM」についての易しめな違い

今回はMySQLのストレージエンジンという重箱の隅をつつくようなネタをメモしておきます。 私はMySQLについてはよちよちレベルなので、込み入った内容には触れられません。初心者でも理解しやすい部分での違いを中心にまとめていこうと思います。 【復習】ス…

PointDNSでHerokuアプリにNaked domainを割り当てる

HerokuアプリにNaked domain(www無しのドメイン)を割り当てる方法は色々あります。あるアプリで「PointDNS」というHerokuのアドオンを利用してNaked domainを割り当ててみました。とても簡単に割り当てることができましたので、設定方法のメモと、名前解決…

Rubyで文字列を連結するのにString#+を使うと、状況によっては遅くなる

試したRubyのバージョン: 2.2.0 文字列を連結するのにString#+を使わないこと Rubyで文字列の後ろに別の文字列を破壊的に連結するには、String#+を使う方法と、String#concatを使う方法があります。 str = 'foo' puts str += 'foo' # => foofoo str = 'bar' …

Ruby2.2で新たに加わったitselfメソッドについて

2014年12月25日にRuby2.2.0がリリースされました。Rubyがアップデートされるたびに、新機能の紹介エントリを書いていたのですが、今回はitselfメソッドの追加が気になりましたので、このメソッドだけに絞ってエントリを書きます。 Kernel#itself itselfメソ…

Yochiyochi Committers Who's Who in 2014

この記事は「よちよちAdventCalender」の2日目の記事です。昨日の記事は『Precompile - じゃがいもエンジニアのブログ』でした。毎年のRubyKaigiで、近永さんという方が、1年間の内でCRubyに対してのコミット数が多かった方々を紹介する『CRuby Committers …

Railsのセッション管理方法について

セッション管理はWebアプリケーションを開発・運用するときに必ず関わってきますので、ある程度知っておかなければいけないことかと思うのですが、Railsのセッション管理について解説している資料が少ないように思えました。私もRailsのセッション管理につい…

「Forwardableモジュール」と「委譲」について学びました

ある程度の規模のWebサービスを作ろうとすると、Rubyの組み込みライブラリやRailsのMVC構造だけで設計することに限界を感じてきてしまいます。そんなときに、様々なデザインパターンや便利なモジュールを知っていれば、最適な設計を選択することができるかも…

RailsのCSRF対策の仕組みについて

先日、Rails で開発しているときに意図しない InvalidAuthenticityToken エラーが発生して、すごくハマってしまいました。そのときに Rails のCSRF対策の仕組みについて調べてみましたので、ブログに残しておきます。 Rails のCSRF対策 Rails が生成した App…

Chef の思想や基本を優しく学びました

知っていることはブログに書いておかないと不安になる病気にかかってしまいましたので、Chef についてのメモを残しておきます。 はじめに アプリケーションサーバに MySQL とか Nginx とか様々なパッケージをインストールしているかと思います。皆さんはこれ…

guard-rspec に送った Pull request がマージされました

rspec-rails は2014年6月にリリースされた v3.0.0 から rails_helper.rb という新しいヘルパーファイルを生成するようになりました。 純粋な RSpec の設定は spec_helper.rb に記述し、Rails で RSpec を使うときに必要な設定は別のヘルパーファイル(rails_…

第23回オフラインリアルタイムどう書くにへなちょこな感じで参加しました

『オフラインリアルタイムどう書く』というプログラミング勉強会があります。 オフラインリアルタイムどう書く | 横浜へなちょこプログラミング勉強会 たまに『オフラインリアルタイムどう書く』で過去に出題された問題を家でちまちまと解いていたのですが、…

パーフェクト Rails を読みました(7章)

この記事は『パーフェクト Rails を読みました』シリーズの7回目の記事です。 前回の記事は『パーフェクト Rails を読みました(6章) - Programming log - Shindo200』です。前回の記事を投稿してから間があいてしまったのですが、『パーフェクト Ruby on R…

パーフェクト Rails を読みました(6章)

この記事は『パーフェクト Rails を読みました』シリーズの6回目の記事です。 前回の記事は『パーフェクト Rails を読みました(5章) - Programming log - Shindo200』です。だいぶ時間がかかったのですが『パーフェクト Ruby on Rails』の6章を読み終えま…

パーフェクト Rails を読みました(5章)

この記事は『パーフェクト Rails を読みました』シリーズの5回目の記事です。 1回目の記事は『パーフェクト Rails を読みました(1章) - Programming log - Shindo200』です。 2回目の記事は『パーフェクト Rails を読みました(2章) - Programming log - …

パーフェクト Rails を読みました(4章)

この記事は『パーフェクト Rails を読みました』シリーズの4回目の記事です。 1回目の記事は『パーフェクト Rails を読みました(1章) - Programming log - Shindo200』です。 2回目の記事は『パーフェクト Rails を読みました(2章) - Programming log - …

パーフェクト Rails を読みました(3章)

この記事は『パーフェクト Rails を読みました』シリーズの3回目の記事です。 1回目の記事は『パーフェクト Rails を読みました(1章) - Programming log - Shindo200』です。 2回目の記事は『パーフェクト Rails を読みました(2章) - Programming log - …

パーフェクト Rails を読みました(2章)

この記事は『パーフェクト Rails を読みました』シリーズの2回目の記事です。 1回目の記事は『パーフェクト Rails を読みました(1章) - Programming log - Shindo200』です。午前中から引き続き、『パーフェクト Ruby on Rails』の2章を読み終えましたので…

パーフェクト Rails を読みました(1章)

技術評論社様から『パーフェクト Ruby on Rails』が発売されました。著者の皆様、お疲れ様でした。発売日は6月6日なのですが、ちょっとだけ早く手に入れることができましたので、これからじっくり読んでいきます。パーフェクト Ruby on Rails作者: すがわら…

APT について学びました

フィヨルドインターン学習週6日目に APT について学びましたので、まとめておきます。 APT APT は Debian 用のパッケージ管理システムです。apt-get か aptitude で呼び出すことができます。aptitude は TUI で起動できたり、apt-cache のようにパッケージの…

Linux の基本を学びました

フィヨルドインターン学習週5日目に Linux の基本を学びましたので、まとめてみます。 用語の整理 カーネル CPU やメモリやキーボードといった、ハードウェアと直接やり取りする機能を持ったソフトウェアを「カーネル」と呼びます。 ユーザランド ファイル操…

ActiveSupport::Concern のソースコードリーディング #1 復習編

Rails で複数のモデルに共通するメソッドをモジュールにまとめたいときに活躍するActiveSupport::Concern というライブラリがあります。ActiveSupport::Concern https://github.com/rails/rails/blob/master/activesupport/lib/active_support/concern.rbこ…

Github issue のコメントを Lingr に通知させる

フィヨルドインターンで Lingr というチャットツールを使っているのですが、 「Github の Issue や Pull request にコメントが付いたとき、Lingr に通知する仕組みが欲しい!」と思いました。Idobata でしたら Github API から直接に通知を受け取る機能があ…

HTML5 の基本を学びました

フィヨルドインターン学習週1日目で HTML の基本を学びましたので、まとめてみます。 HTML そもそも HTML とは何なのでしょうか。W3C のページを見てみます。 http://www.w3.org/standards/webdesign/htmlcss HTML is the language for describing the struc…

大江戸 Ruby 会議04 に参加しました

2014年4月19日に大江戸 Ruby 会議04 が開催されました。大江戸 Ruby 会議は「日常発表会」というテーマで、普段から Asakusa.rb に参加している方々が思い思いに発表されました。大江戸 Ruby 会議 04 http://regional.rubykaigi.org/oedo04/ レポート 2つだ…

フィヨルドインターンを始めました

合同会社フィヨルド様のリモートインターンに参加し始めました。現在、僕は Ruby プログラマを目指して勉強中&就活中です。 Ruby コミュニティで「Web アプリケーション開発のことが分かっている人」みたいに扱われることがあるのですが、Ruby に関わる技術…

Rroonga で複数キーワードの AND 検索や OR 検索がしたい #2

2012年11月に『Rroonga で複数キーワードのAND検索,OR検索』という記事を書きました。今でもこの記事を見に来てくださる方がいるようです。ありがとうございます。当時は map とか inject を使うと短く書けて楽だと思ったのですが、後々に見直すと結構分かり…

札幌市中央区Ruby会議01に参加しました

2014年2月8日に札幌市中央区Ruby会議01が開催され、るびまレポート執筆のお手伝いとして東京から参加してきました。会議全体の雰囲気や発表内容は後日『るびま』に掲載されると思いますので、この記事では私の行動記録と会議の感想を書きます。 札幌市中央区…

Ruby でスコープを自作する

最近 ipad の防水ケースと無線ルータを購入して、風呂場に ipad を持ち込めるようになったので、お風呂に入りながら ipad で電子書籍を読んでいます。ちょうど『作って学ぶプログラミング言語 RubyによるScheme処理系の実装』という書籍を読み終えたのですが…