カテゴリー : 2011年 9月

[Facebook] Graph APIのリクエスト制限は1分間に600回?

 

Facebookの Graph API のリクエスト制限は1分間に600回という情報を見つけたのでメモ。(非公式ですが)
 

Graph APIを毎回叩くのは遅いし、API制限に引っかかりそうです。API制限を調べてみると、公式には何も書いてありませんが、どうも1分間に600回というようなことがまことしやかに言われています。
 

・引用元:Rails Hub情報局: 素人がWebサービスを作ってみて分かった9つのこと はてなブックマーク - Rails Hub情報局: 素人がWebサービスを作ってみて分かった9つのこと

 

APIの公式ドキュメントにちゃんと明記されてるよ!って情報があれば教えて下さい。
 

[DotCloud] Web/DBサーバーにファイル転送する方法

 

DotCloudで立ち上げたWebサーバーやDBサーバーにファイル転送する方法を@utahtaさんに教えてもらったのでメモ。
 

サーバにファイルを置くには、scpコマンドを使ってできるそうです。

(全てコマンドラインからの実行です)
 

まず、dotcloudのinfoコマンドを使って、以下のようにdbが動いているサーバのURLを調べます。
 

1
2
3
4
5
$ dotcloud info example.db
...
-   name: ssh
    url: ssh://[email protected]:ポート
...

 

続いて、取得したURL宛にscpコマンドを叩きます。
 

1
$ scp -P ポート -i ~/.dotcloud/dotcloud.key 転送するファイル [email protected]:

 

以上で、対象のサーバにファイルを転送できます。
 

[PEAR] Amazon API の ItemSearch を使った複数キーワードでの検索方法

 

Amazon API を使える PEAR :: Services_Amazon の ItemSearch を使って、複数キーワードでの検索をしてみました。
 

・参考:Docs For Class Services_Amazon
 

ItemSearch の使い方サンプルは以下のようになっています。
 

1
2
3
4
5
6
7
8
9
10
11
<?php
 
$amazon = new Services_Amazon('[your Access Key ID here]', '[your Secret Access key here]');
 
$options = array();
$options['Keywords'] = 'sushi';
$options['ResponseGroup'] = 'ItemIds,ItemAttributes,Images';
 
$result = $amazon->ItemSearch('Books', $options);
 
 ?>

これの $options[‘Keywords’] の部分を下記のようにすれば、「書籍名」「著者名」「出版社名」と複数のキーワードで検索できます。
 

1
2
3
4
5
$title = '検索したい書籍名';
$author = '検索したい著者名';
$publisher = '検索したい出版社名';
 
$options['Keywords'] = $title . $author . $publisher;

 

このとき、キーワードに含まれる「書籍名」「著者名」「出版社名」は、検索時にAmazon側での区別はされていません。
 

Amazonには、これらの文字列3つを連結した文字列の内容で検索しています。
 

以上です。
 

[PEAR] Services_Amazon をインストールして Amazon API を使ってみました

PEARの Services_Amazon をインストールして Amazon API を使ってみました。

・参考:Amazon APIを使って簡単にランキングを取得する – EC studio 技術ブログ はてなブックマーク - Amazon APIを使って簡単にランキングを取得する - EC studio 技術ブログ
 

1. PEAR HTTP_Request2 のインストール

# pear install -a HTTP_Request2-alpha

※Services_Amazonで使用しているHTTP_Request内で使用しているので、まずこちらをインストール。

※インストールのバージョン(state)は最新のものを指定してください

※インストールする際に、依存するパッケージも合わせてインストールするため、オプションに「-a」を指定しています。

 

2. PEAR Services_Amazon のインストール

# pear install -a Services_Amazon-beta

 

3. ちゃんとインストールされたか確認

# pear list

以下の4つがインストールされていればOKです。(バージョンは、2011/05/17 時点)

Cache            1.5.6    stable
HTTP_Request2    2.0.0RC1 beta
Services_Amazon  0.8.0    beta
XML_Serializer   0.20.2   beta

 

以上です。
 

[Symfony1.4] Strict、Deprecated エラーや Warning を表示させない設定方法

 

Symfony1.4 にて、PEARを使うと、StrictエラーやらDeprecatedエラーやらが大量に出力されました。
 

エラーの出力設定を php.ini で変更したのですが、Symfonyのプログラムでは反映されていませんでした。
 

Symfonyには プロジェクトホーム/apps/frontend/config/settings.yml に error_reporting が書かれているので、php.ini の設定をこれで上書きしてしまっているようです。
 

ちなみに、「error_reporting」というワードが記載されているファイルは以下のように grep コマンドで探します。
 

1
2
3
4
5
# grep -R error_reporting ./
 
./cache/frontend/dev/config/config_settings.yml.php:  'sf_error_reporting' => 32767,
./apps/frontend/config/settings.yml:    error_reporting:        <?php echo (E_ALL | E_STRICT)."\n" ?>
./apps/frontend/config/settings.yml:    error_reporting:        <?php echo ((E_ALL | E_STRICT) ^ E_NOTICE)."\n" ?>

 

該当しそうな部分が見つかりました。
 

cache の config_settings.yml.php に ‘sf_error_reporting’ => 32767, とあり、32767 デフォルトのE_ALL | E_STRICTなので、php.ini の設定がSymfony側に反映されていないことが、ここで確認できます。
 

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# You can find more information about this file on the symfony website:
# http://www.symfony-project.org/reference/1_4/en/04-Settings

prod:
  .settings:
    no_script_name:         true
    logging_enabled:        false

dev:
  .settings:
    error_reporting:        <?php echo (E_ALL | E_STRICT)."\n" ?>
    web_debug:              true
    cache:                  false
    no_script_name:         false
    etag:                   false

test:
  .settings:
    error_reporting:        <?php echo ((E_ALL | E_STRICT) ^ E_NOTICE)."\n" ?>
    cache:                  false
    web_debug:              false
    no_script_name:         false
    etag:                   false

all:
  .settings:
    # Form security secret (CSRF protection)
    csrf_secret:            ebfxa42b0x90387xd2fx4d24xd00xxx38c1a9x16
 
    # Output escaping settings
    escaping_strategy:      true
    escaping_method:        ESC_SPECIALCHARS
 
    # Enable the database manager
    use_database:           true

 

dev の部分を以下のように変更して、Strict エラーと Deprecated エラーを表示させないようにします。
 

1
2
3
dev:
  .settings:
    error_reporting:        <?php echo (E_ALL & ~E_DEPRECATED)."\n" ?>

 

以上です。
 
 

[Symfony1.4] フォーム(Form)/バリデーター(Validator)関連の参考サイトまとめ

 

Symfony1.4 にて フォームを使うときに読む記事を一覧にしました。
 

色んなページからアクセスするのが面倒なのでまとめてみました。
 

blogチュートリアル(9) 記事の追加 | 日本Symfonyユーザー会 はてなブックマーク - blogチュートリアル(9) 記事の追加 | 日本Symfonyユーザー会

blogチュートリアル(10) データのバリデーション | 日本Symfonyユーザー会 はてなブックマーク - blogチュートリアル(10) データのバリデーション | 日本Symfonyユーザー会
 

A Gentle Introduction to symfony | 第10章 – フォーム | symfony | Web PHP Framework はてなブックマーク - A Gentle Introduction to symfony | 第10章 - フォーム | symfony | Web PHP Framework
 

symfony Forms in Action | symfony | Web PHP Framework はてなブックマーク - symfony Forms in Action | symfony | Web PHP Framework
 
  ・第1章 – フォームの作成

  ・第2章 – フォームのバリデーション

  ・第3章 – Web デザイナのためのフォーム

  ・第4章 – Propel との統合

  ・第8章 – 国際化とローカライゼーション

  ・第11章 – Doctrine との統合

  ・付録 A – ウィジェット

  ・付録 B – バリデータ
 

The More with symfony book | 高度なフォーム | symfony | Web PHP Framework はてなブックマーク - The More with symfony book | 高度なフォーム | symfony | Web PHP Framework
 

直接、フォームとは関係ないですが、セッションは一緒によく使うのでメモ。
 

さぼてん: 【symfony】セッションの利用~アクション~ はてなブックマーク - さぼてん: 【symfony】セッションの利用~アクション~
 

(随時、更新予定です)
 

[Linux] ログイン時にコマンドやプログラムを自動実行させる方法

CentOS にログインした時にコマンドやプログラムを自動実行させる方法を調べたのでご紹介します。

Linux

続きを読む

[VirtualBox] 画面サイズ変更のために Guest Additions をインストール

VirtualBox にインストールした Windows7 の画面サイズを変更する設定をご紹介します。

VirtualBox

Guest Additions をインストールすれば画面サイズを変更できるようになるみたいです。

続きを読む

[yum] fastestpath を使わないようにする設定方法

とある認証付きプロキシの環境では http はできるのですが、ftp が通りません。

yum の fastestpath がONになっていると、最寄りのレポジトリが ftp 接続なのでエラーが返ってきてから、http接続できる別のレポジトリを探すまでに時間がかかります。

yum本家のレポジトリは http で接続できるので、デフォルトで本家と接続するように設定変更しました。

下記のように設定変更すればOKです。

# vi /etc/yum/pluginconf.d/fastestmirror.conf

■ fastestmirror.conf の中身

[main]
enabled=1
verbose=0
socket_timeout=3
hostfilepath=/var/cache/yum/timedhosts.txt
maxhostfileage=10
maxthreads=15
#exclude=.gov, facebook

enabled=1 を enabled=0 に変更すればOKです。

以上です。
 

[yum] Another app is currently holding the yum lock の解決方法

CentOS5.6にて、yum を使おうとしたらエラーが出て使えませんでした。解決方法を調べたのでメモ。

■ エラー内容

Another app is currently holding the yum lock

■ 解決方法

yum のプロセスがバックグラウンドで動いているとこうなるので、 # ps aux | grep yum で yum が動いている PID を特定して kill すればyumが使えるようになります。

・参考:Another app is currently holding the yum lockとは – [yum/Linux [Red Hatなど]] ぺんたん info はてなブックマーク - Another app is currently holding the yum lockとは - [yum/Linux [Red Hatなど]] ぺんたん info

ちなみに、yum のコマンドリストは下記のサイトを参考にしました。

@IT:yumコマンドでよく利用するコマンド はてなブックマーク - @IT:yumコマンドでよく利用するコマンド

以上です。