Eclipse の各種設定メモ

Eclipse の各種設定を自分用にメモ。

■ 空白文字の表示

[環境設定]->[一般]->[エディター]->[テキスト・エディタ] にて、
「空白文字の表示」にチェックを入れます

■ タブでスペースを挿入する

[環境設定]->[一般]->[エディター]->[テキスト・エディタ] にて、
「タブでスペースを挿入」にチェックを入れます

[Android] 外部ライブラリ・SDKをインポートする方法

Android にて、外部ライブラリをインポートする方法をメモ。

  1. [ファイル] – [インポート] – [既存プロジェクトをワークスペースへ] から外部ライブラリ(Facebook SDKなど)インポートします。
  2. プロジェクトを右クリック – [プロパティー] – [Android] – [ライブラリー] で「追加」ボタンから利用するものを追加する

    そうすると、project.properties に下記のような感じで外部SDKへの参照の記述が追加されています。

    android.library.reference.1=../FacebookSDK

[参考]

プロジェクトの作成 << mixi Developer Center (ミクシィ デベロッパーセンター)

[GitHub] hub コマンドを使って PullRequest をもっと簡単に

GitHub で PullRequest を送る場合に、ブラウザからも出来ますが hub コマンドを使えばもっとカンタンにできます。

GitHub

続きを読む

[Ruby on Rails] PDFKit が NoMethodError (undefined method `chomp’ for nil:NilClass): というエラーで動かない

Ruby on Rails で PDFKit を使ってまして、CentOS で動かないという状況に陥りました。

NoMethodError (undefined method `chomp' for nil:NilClass):
  pdfkit (0.5.3) lib/pdfkit/configuration.rb:20:in `wkhtmltopdf'
  pdfkit (0.5.3) lib/pdfkit/pdfkit.rb:31:in `initialize'
  pdfkit (0.5.3) lib/pdfkit/middleware.rb:21:in `new'
  pdfkit (0.5.3) lib/pdfkit/middleware.rb:21:in `call'
  warden (1.2.1) lib/warden/manager.rb:35:in `block in call'
  warden (1.2.1) lib/warden/manager.rb:34:in `catch'
  warden (1.2.1) lib/warden/manager.rb:34:in `call'
  actionpack (3.2.13) lib/action_dispatch/middleware/best_standards_support.rb:17:in `call'

下記を参考に直してみても、RuntimeError pdfkit (0.5.3) lib/pdfkit/pdfkit.rb:73:in `to_pdf’ というエラーが出る。

NoMethodError · Issue #82 · pdfkit/pdfkit

原因は2つあって、1つ目はApacheにBasic認証を設定していたこと。

2つ目は /usr/local/bin へ path を通すことで解決しました。

path を通す方法は下記のとおりです。

まず、 /usr/local/bin/ruby_wrapper に下記の内容を記載して保存します。

#!/bin/sh
export PATH="$PATH:/usr/local/bin" 
exec "/usr/local/bin/ruby" "$@"

次に、Apache の httpd.conf で Passenger で使う Ruby の Path を ruby_wrapper に変更します。

PassengerRuby /usr/local/bin/ruby_wrapper

以上です。

[Ruby on Rails] ActionDispatch::Cookies::CookieOverflow error

Ruby on Rails で flash に大量の文字列を詰め込むと ActionDispatch::Cookies::CookieOverflow error が発生しました。

Raised when storing more than 4K of session data.

ActionDispatch::Cookies::CookieOverflow

解決方法は、セッションを Cookie ではなく ActiveRecord や Redis などで置き換えることです。

Ruby on Rails ActionDispatch::Cookies::CookieOverflow error – WILT

[Linux] ImageMagick をソースファイルからインストールする手順

CentOS 6 に ImageMagick をソースファイルからインストールする手順をご紹介します。

ImageMagick

続きを読む

[CentOS] ImageMagick を yum でインストール

CentOS 6.3 に ImageMagick を yum でインストールしました。

yum -y install libjpeg-devel libpng-devel
yum -y install ImageMagick ImageMagick-devel

identify と convert のバージョンとPathを確認して、インストールされたことを確認します。

# identify -version
Version: ImageMagick 6.5.4-7 2012-05-07 Q16 OpenMP http://www.imagemagick.org
Copyright: Copyright (C) 1999-2009 ImageMagick Studio LLC
 
# which identify
/usr/bin/identify
# convert -version
Version: ImageMagick 6.5.4-7 2012-05-07 Q16 OpenMP http://www.imagemagick.org
Copyright: Copyright (C) 1999-2009 ImageMagick Studio LLC
 
# which convert
/usr/bin/convert

CentOS 5 系とかだとソースファイルからインストールする方が良いみたいです。

[Apache] 実行ユーザーの umask の設定方法

Apache 実行ユーザーの umask の設定方法をメモ。

# find / -name envvars
/usr/local/apache2/bin/envvars
# vim /usr/local/apache2/bin/envvars
 
# umask 002 to create files with 0664 and folders with 0775
umask 002
# service httpd restart

例えば、Capistrano での自動デプロイ運用で、この設定が役に立つ。

Capistrano で自動デプロイするときに、色んなユーザから deploy できるようにしたい場合にぶつかるファイルのパーミッション問題を umask の設定で解決できる。

Apache とデプロイ権限のあるユーザを共通グループ(deploy とか)に所属させて、運用させたいWebアプリのファイルのグループ所有にする。

そして、パーミッションもファイルは 664、ディレクトリは 775 にすれば、cap deploy:cleanup とかでファイルを削除するタイミングでもエラーが出ることはなくなるはず。

[参考]:/etc/sysconfig/httpd

[Ruby] sunspot で関連テーブルの複数カラムで絞り込み

Ruby の Solr を扱うラッパーライブラリ sunspot で、ちょっと複雑な絞り込みの条件を作ったのでメモ。

# Sunspot/Search
searchable do
  # 表示設定ON ( visibility.visible == true ) かつ、
  # 指定された権限(role_id) で絞り込む
  integer :role_ids_with_visible, multiple: true do
    visibilities.select { |visibility| visibility.visible == true }
      .map { |visibility| visibility.role_id }
  end
end

SQL だと 関連テーブルを join して、where visible = true and role_id = xxx みたいな絞り込みをするのと同じ感じ。

[RSpec] Time.now をスタブ化

Ruby on Rails + RSpec で Time.now をスタブ化するコードをメモ。

time_now = Time.local(2013, 12, 31, 0, 0, 0)
Time.stub!(:now).and_return(time_now)