カテゴリー : 2011年 11月

[Mac] USキーボードの Control キーと CapsLock キーを入れ替える方法

英語圏のプログラマーはほぼ全員がしているらしい「Control キーと CapsLock キーを入れ替える」設定をしたので、手順をご紹介します。

Controlキーが押しにくいという問題は、プログラマーにとっては致命的なので、当然ながら解決方法があります。
・・・(略)・・・
英語圏のプログラマーはほぼ全員が設定してるような気がします。

・引用元:開発者のマシンを英語環境にしない理由はもはや一つもない – Hidden in Plain Sight

Control キーと CapsLock キーを入れ替える設定手順

・「システム環境設定」→「キーボード」→「キーボード」→「修飾キー」

以下のように、CapsLockとControlのキーを入れ替えます。

慣れるまでちょっと掛かりそうですが、Ctrl+aとかCtrl+eとか押しやすくなりそう!

[Heroku][Rails] Webアプリケーションのパフォーマンス計測と運用状況のモニタリングをしてくれる「NewRelic」

Web アプリケーションのパフォーマンス計測と運用状況のモニタリングをしてくれる NewRelic を Rails + Heroku の環境で使ってみました。

Heroku

続きを読む

[Java] StringUtils.isEmpty と StringUtils.isBlank の違い

Java には isEmpty と isBlank という似たような処理をするメソッドがあるみたいで、違いを調べたのでご紹介します。

Java

結論から書くと、

  • isBlank: 半角/全角空白文字も true と判定する
  • isEmpty: 半角/全角空白文字は false と判定する

みたいです。

続きを読む

[PEAR] Services_Amazon にて setProxy でプロキシ情報を設定する方法

PEAR の Services_Amazon クラスを利用するとエラーが発生しました。
 

■ エラー内容

Amazonの情報取得に失敗しました(HTTP_Request::sendRequest failed: Malformed response)

原因は、認証プロキシを利用しているせいでした。

よって、Services_Amazon クラスの setProxy で proxy 情報をセットしてあげる必要があります。

$amazon = new Services_Amazon($access_key_id, $secret_access_key);
$amazon->setProxy($host, $port, $user, $pass);

以下、Services_Amazon のマニュアルから引用。

setProxy

void setProxy( string $host, [int $port = 8080], [string $user = null], [string $pass = null])

Sets a proxy
Access: public

Parameters:

string $host — Proxy host
int $port — Proxy port
string $user — Proxy username
string $pass — Proxy password

[引用元]:Docs For Class Services_Amazon

以上です。

[PHP] Zend Framework 入門者向けの参考サイト・書籍まとめ

Zend Frameworkを使い始めたので、参考になりそうな記事や本をまとめてみました。

参考になりそうな記事

・公式(英語):Zend Framework

・DLサイト:Zend Framework: Downloads: Downloads

・ドキュメント(日本語):Zend Framework: Documentation: Zend Framework Manual
 

■ コードサンプルなどが検索できるサイト

Zend Framework by examples (ZfEx)
 

■ 連載記事など

「Zend Framework」で加速するPHP開発:第1回 PHP開発でZend Frameworkを知らないだなんて嘘ですよね? (1/2) – ITmedia エンタープライズ

「Zend Framework」で加速するPHP開発:第2回 Zend Frameworkの各コンポーネントを一気に制する (1/3) – ITmedia エンタープライズ

「Zend Framework」で加速するPHP開発:第3回 ブログツールで学ぶ実践的Zend Frameworkの使い方 (1/5) – ITmedia エンタープライズ

「Zend Framework」で加速するPHP開発:最終回:「ソースは明かせない……」――ソースコードをバイナリ/難読/暗号化する (1/2) – ITmedia エンタープライズ
 

連載:ZendFrameworkで作る『イマドキ』のWebアプリケーション|gihyo.jp … 技術評論社
 

Zend Framework入門:CodeZine(コードジン)
 

Zend Framework 入門書/参考書

Symfonyと比べて、Zendはたくさん書籍が出版されていていいですね。

僕は、会社にあった「オープンソース徹底活用 Zend FrameworkによるWebアプリケーション開発」を読みました。 

[PEAR] Strict、Deprecated error や Warning を表示させない設定方法

PHPのPEARを使い始めたら、早速エラーが大量に出てきました。

エラーの出力設定を変更できるようなので

Deprecated: Assigning the return value of new by reference is deprecated in ~

とか

Strict Standards

というエラーが出ます。

PHP: error_reporting – Manual

デフォルトの設定では以下のようになっています。

error_reporting = E_ALL | E_STRICT

これを以下のように、E_STRICT と E_DEPRECATED のエラーが出ないように設定すればOKです。

error_reporting = E_ALL & ~E_DEPRECATED

設定後に、Apacheを再起動して設定を反映します。

# /usr/local/apache2/bin/httpd -k graceful

error_reporting の設定が反映されているかの確認は # php -i | less コマンドで

Configuration File (php.ini) Path => /usr/local/lib
Loaded Configuration File => (none)

Loaded Configuration File が none となっているため、php.ini を読み込めていないようです。

何故か、僕は/usr/local/lib/php/php.ini に置いていたため読み込めていませんでした。

ちゃんと/usr/local/lib/ディレクトリ直下にphp.ini を移動させると、設定が反映されているようです。

Configuration File (php.ini) Path => /usr/local/lib
Loaded Configuration File => /usr/local/lib/php.ini
# php -i | grep error_reporting
error_reporting => 22527 => 22527

以上です。

【参考】
php5.3でDeprecatedエラーに遭遇 « kawama.jp

神経研メディアセンター: PHP5の安全設定

PHP5でPEAR::DBを教本通り使ったらStrict Standardsエラーが発生した件 – TMD45LOG!!!

PEARの呼び出しなどで出るStrict errorやWarningを一時的に消す方法 – Layer8 Reference

php5.3 Assigning the return value of new by reference is deprecated – 為せば成る・・・かもしれない

[Doctrine] SQLを直接実行する方法 [Symfony1.4]

Symfony1.4にて、SQLを直接実行する方法を調べたのでメモ。

以下の記事を参考にしました。

・参考:DoctrineでSQLを直接実行する – ゆっくり*ゆっくり

以上です。

[Doctrine] サブクエリ(副問合せ)を使う方法 [Symfony1.4]

Symfony1.4にて、Doctrineでサブクエリ(副問合せ)を使う方法を調べたのでメモ。

Doctrineでサブクエリを使う : アシアルブログ

The symfony Cookbook | データをDoctrineで読み取る | symfony | Web PHP Framework

なるほど、createSubquery()を使えばいいんですね。

MySQLのサブクエリについてはこちら。

MySQL :: MySQL 5.1 リファレンスマニュアル :: 12.2.8 サブクエリ構文

以上です。

[Rails3.0] scaffoldで出力される削除(Destroy)リンクが動作しないときは、jquery_ujs.js or rails.js が読み込まれているか確認する

Rails3.0にて、scaffoldで出力される削除リンク(Destroy)が動作しないときは、jquery_ujs.js or rails.js が読み込まれているか確認します。

※ 削除リンク(Destroy)は上記の部分です

prototype.jsを使用しなくて、jQueryを使う場合、削除リンクはこのままでは動作しません。

動作させるためには、jquery_ujs.js(rails.js)を読み込む必要があります。

<%= link_to 'Destroy', test_model, :confirm => 'Are you sure?', :method => :delete %>

僕の場合、jquery_ujs.js の役割を確認せずに削除していたのが原因でした。

ちなみに、jquery_ujs.js は Rails3.0 で jQuery を使う設定をするときに一緒に作成されます。

Rails3.0のjQuery対応手順

まず、Gemfileに以下のような記述を追加して、bundleします。

gem 'jquery-rails''

ジェネレータを実行して、不要なファイルの削除と必要なファイルの生成を行います。

$ rails g jquery:install

このジェネレータによって、prototype.js関連の以下のファイルが削除され、

public/javascripts/prototype.js
public/javascripts/effects.js
public/javascripts/dragdrop.js
public/javascripts/controls.js

jQuery関連の以下のファイルが生成されます(jquery-rails 1.0.2の場合はjQuery 1.6がインストールされます)。

public/javascripts/jquery.js
public/javascripts/jquery.min.js
public/javascripts/jquery_ujs.js(各種ヘルパーで生成した要素にイベントハンドラを設定したりするもの。かつてのrails.js)

・引用元:Rails 3.1ではjQueryが標準になるそうなので、すぐに要らない知識になるかもしれませんが、Rails 3.0でのjquery-ra… – Sooey はてなブックマーク - Rails 3.1ではjQueryが標準になるそうなので、すぐに要らない知識になるかもしれませんが、Rails 3.0でのjquery-ra... - Sooey

引用元記事のタイトルにあるように、Rails 3.1ではjQueryが標準になるので、ハマる人はあまりいないと思いますが参考になれば幸いです。

【参考】

rails/jquery-ujs – GitHub はてなブックマーク - rails/jquery-ujs - GitHub

Rails3にjQueryを導入する – ちょりぽんのふがふが日記 はてなブックマーク - Rails3にjQueryを導入する - ちょりぽんのふがふが日記

[Rails] scaffold.css を編集して table を見やすくする

Rails3.1で作成した scafold ファイルの index.html.erb の table を見やすくするために scaffold.css を編集してみました。

表に線があるだけでかなり見やすくなりますね。

■ public/stylesheets/scaffold.css

.scaffold_table {
  border-collapse: collapse;
  border: 1px #DCDCDC solid;
}
 
.scaffold_table th {
  border: 1px #DCDCDC solid;
  padding: 5px;
}
 
.scaffold_table td {
  border: 1px #DCDCDC solid;
  padding: 5px;
}

CSSファイルを編集したら、scafold機能で作成したテンプレートファイルの table タグに class=’scaffold_table’ を追加して、スタイルを反映させます。

■ app/views/books/index.html.erb

<h1>Listing books</h1>
 
<table class='scaffold_table'>
  <tr>
    <th>id</th>
    <th>Title</th>

以上です。

【参考】

スタイルシート[CSS]/テーブル/表の境界線を指定する – TAG index Webサイト はてなブックマーク - スタイルシート[CSS]/テーブル/表の境界線を指定する - TAG index Webサイト