サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
パリ五輪
shimotori.github.io
最終更新日:2012/6/30 これまでtherubyracerを使っていたのですが、突然assets:precompileでエラーが出るようになり(6時間前まではうまくいっていたのですが)、GitHubから持ってきてもうまくコンパイルできなかったので、いっそのことNode.jsに変更することにしました。 ちなみに、Herokuではtherubyracerが非推奨とのことです(メモリ使用量が多いため)。 参考:Rails 3.1+ Asset Pipeline on Heroku Cedar | Heroku Dev Center 環境 CentOS 5.8 Ruby on Rails 3.2.3 Node.js 0.6.18 Node.jsをインストール 以下の手順で、RPMでインストールします。 cd /tmp wget http://nodejs.tchol.org/repocfg/
npm installを実行する時に、-gオプションを付けるかいつも悩むので、調べてみました。 環境 npm 1.2.23 基本的な違い -gなし ローカル・インストール インストール先は./node_modules ※~/node_modulesではないので注意。 -gあり グローバル・インストール インストール先は、Unix系では/usr/local この情報だけだと、すべてグローバルにインストールすれば良い気がしますが、それで何度かはまりました。 使い分け -gオプションを付けるかどうかの判断基準は以下の2つです。 require()する場合はローカル。 コマンドラインから実行する場合はグローバル。 ただし、require()もコマンドライン実行も必要な場合は両方にインストールします。 参考情報 npm help folders
これまでRails+MySQLでWebアプリを開発してきたのですが、MongoDBについて調べ始めたところ、なかなか良さそうに思えてきました。 そこで、実際に使用できるかどうか検討してみましたが、その際に気になった点を挙げておきます。 メリットは何か? システムを停止しなくてもスキーマ変更が可能。 シャーディングの設定が簡単なので、容易にスケールアウトできる。 (オマケ的なメリットですが)idがデフォルト12バイト。 Rails ActiveRecordでは4バイトなので、もしかするとあふれる可能性があるかもしれないというのが頭に引っかかっていました。 MongoDBのObject IDでは、タイムスタンプ(4バイト)+マシンID(3バイト)+プロセスID(2バイト)+カウンター(3バイト)がデフォルトなので、あふれる可能性はかなり低くなると思われます。 参考: MongoDB マニュアル
Railsアプリをスマホアプリなどからも使えるようにする場合、まずはAjaxのリクエストでログインできるようにする必要があります。 その方法について調べてみました。 環境 Ruby on Rails 3.2.13 Devise 2.2.4 Deviseの設定 以下の2つの設定をconfig/initializers/devise.rbに追加します。 config.http_authenticatable_on_xhr = false config.navigational_formats = ["*/*", :html, :json] SessionsController DeviseのSessionsControllerを継承して、以下のようにAjax用のロジックを追加します。 class User::SessionsController < Devise::SessionsContro
Sencha TouchのネイティブアプリからRailsベースのアプリサーバーに対してAjaxリクエストを送信する方法について調べてみました。 環境 Sencha Touch 2.2.1 Android 4.1.1 Ruby on Rails 3.2.13 同一オリジンポリシーとCORS Sencha Touchのネイティブアプリからサーバーにリクエストを送る場合、アプリ側はlocalhostで、サーバー側は別のドメインになりますが、このままではうまくいきません。 これは同一オリジンポリシー(Same Origin Policy、同一生成元ポリシー)があるためであり、通常はドメインAからドメインBに対してAjaxリクエストを送ることができません。 しかし、CORS(Cross-Origin Resource Sharing)の規定に従うと、このようなリクエストを送ることができるようになりま
RailsのActionMailerでメールを送信した時に、 OpenSSL::SSL::SSLError: hostname does not match the server certificate というエラーが発生。 ググって見つかった対応に疑問を感じたので、少し深堀りしてみました。 環境 Rails 3.2.12 Postfix 2.6.6 CentOS 6.4 このエラーが意味すること スタックトレースを元にソースをざっと見てみると、どうやらconfig.action_mailer.smtp_settings[:address]の値とSSL証明書の情報が一致していないということのようです。 実際、今回のケースでは、確かにCommon Nameが一致していませんでした。 この機能は、ホスト名を偽ったサーバーを立てられた場合の対策だと思いますが、ローカルネットワーク内の場合はオフに
Deviseでユーザー登録などの際にユーザーに送信されるメールをbccで受け取るようにできないかと思い、調べてみました。 StackOverflowなどで古いバージョン用のやり方は見つかるのですが、最近のバージョン用のものが見つからなかったのでまとめておきます。 環境 Devise 2.2.3 Rails 3.2.12 概要 Devise::Mailerを継承するメーラークラスを作成し、そこでbccを設定するようにします。 独自のメーラークラスを作成 例えばDeviseMailerという名前のメーラーを生成することにします。 rails generate mailer DeviseMailer ベースクラスをDevise::Mailerに変更します。 class DeviseMailer < Devise::Mailer bccを追加するメソッドを入れます。 class DeviseMai
現在開発しているWebアプリのセッション管理にRedisを使うことにしたので、開発PC用にWindows版がないか探してみたところ、4月にMicrosoft Open Technologiesが提供を始めていました。 日本語の情報がまだあまりないようなので記録しておきます。 環境 Windows 7 Professional 64bit SP1 Redis on Windows 2012/8/8版(afe7873411) Redis on Windows Redis 2.4.11 をWindowsにポーティング。 GitHubで提供: MSOpenTech/redis 32ビット版のみ。 インスタンス監視用のWindowsサービス(RedisWatcher)が追加されている。 インストール手順 GitHubからソース一式を取得します。 $ git clone git://github.co
New Relicでは、メモリ使用率などが閾値(しきいち)を超えた場合にメールを送信するように設定することができますが、メールが頻繁に届いてうっとうしいことがあります。 閾値を変更することができるのですが、設定方法がわかりづらかったのでメモっておきます。 Serversのリストを表示します。 対象サーバーの行の横にある「歯車アイコン」をクリックします。 「Alerts & thresholds」のダイアログで設定します。 アラートをオフにする 同じダイアログで特定のアラートをオフにすることもできます。 参考 Server Monitoring Alerts – New Relic Documentation
このページを最初にブックマークしてみませんか?
『shimotori.github.io』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く