アーカイブ

2011 年 5 月 のアーカイブ

Eclipse 3.6(Helios)でMavenを利用する

2011 年 5 月 25 日 コメントはありません

m2eclipseを利用する。
MacOSX(snow leopard)のMaven 3.0.2、Windows環境で昔インストールしたMaven 2.2.1の環境で動作した。
jreはJDKのものを指定しないとエラーでる。

カテゴリー: 日記 タグ: ,

AsyncTaskのcancel時の動き

2011 年 5 月 11 日 コメント 1 件

Android 2.1 update 1 ~ Android 2.3.2
AsyncTaskのcancel(true)を外部から呼んだ場合と、doInBackgroundで呼んだ場合挙動が異なる。
あと、cancelしてもdoInBackgroundは最後まで実行される。


public class MainActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

new AsyncTask() {
@Override
protected Void doInBackground(Void… params) {
for (int i = 0, cnt = 10; i < cnt; i++) { publishProgress(i); SystemClock.sleep(1000); if (i == 5) { cancel(true); } } return null; } @Override public void onProgressUpdate(Integer... values) { Log.d(getLocalClassName(), "count "+values[0]); } @Override protected void onCancelled() { Log.d(getLocalClassName(), "onCancelled"); } @Override protected void onPostExecute(Void result) { Log.d(getLocalClassName(), "onPostExecute"); } }.execute(); } } [/java] 結果

count 0
count 1
count 2
count 3
count 4
count 5
onPostExecute
count 6
count 7
count 8
count 9

public class MainActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

AsyncTask task = new AsyncTask() {
@Override
protected Void doInBackground(Void… params) {
for (int i = 0, cnt = 10; i < cnt; i++) { publishProgress(i); SystemClock.sleep(1000); } return null; } @Override public void onProgressUpdate(Integer... values) { Log.d(getLocalClassName(), "count "+values[0]); } @Override protected void onCancelled() { Log.d(getLocalClassName(), "onCancelled"); } @Override protected void onPostExecute(Void result) { Log.d(getLocalClassName(), "onPostExecute"); } }; task.execute(); SystemClock.sleep(5000); task.cancel(true); } } [/java] 結果

count 0
count 1
count 2
count 3
count 4
onCancelled
count 5
count 6
count 7
count 8
count 9
カテゴリー: android タグ: ,

Apacheのリバースプロキシを利用してSERVER_NAMEが取れない時

2011 年 5 月 6 日 コメントはありません

Apacheのリバースプロキシを利用して、SERVER_NAMEがリバースプロキシサーバのIPになっちゃう場合は、リバースプロキシ側のApacheに以下の設定を追加。

ProxyPreserveHost On

PHPプログラムでSERVER_NAMEの値を超利用しまくりな場合は、問題ないようならぶち込んじゃってもいいかも。

$_SERVER['SERVER_NAME'] = isset($_SERVER['X_FORWARDED_HOST']) ? $_SERVER['X_FORWARDED_HOST'] : $_SERVER['SERVER_NAME'];
カテゴリー: linux タグ: ,

Mac OSXでApacheの利用

2011 年 5 月 4 日 コメントはありません

システム環境設定>共有>Web共有をチェック

httpd.confの設定

$ sudo vim /etc/apache2/httpd.conf

設定を上書きできないと困るので180行目のAllowOverrideを変更

    AllowOverride All

PHPを利用可能にするため116行目のコメントアウトを外す

LoadModule php5_module        libexec/apache2/libphp5.so

ヴァーチャルホストの設定ファイルvhosts以下に配置し読み込めるように最後の行に追加
デフォルトだと469行目でヴァーチャルホストの設定を読み込んでいるようだが、最終行のIncludeでPHPの設定が行われているので、それ以降に設定を書かないとPHPを利用できないため

Include /private/etc/apache2/vhosts/*.conf 

ヴァーチャルホストの設定ファイルを作成
ファイル名はお好みで

$ sudo vim /etc/apache2/vhosts/httpd-vhosts-hoge.example.com.conf

ファイルはhogeユーザのSite以下にドメインディレクトリを作成し、そこをドキュメントルートにしています
localhostから接続できるようにAllow fromを追加

<VirtualHost *:80>                                                          
    ServerName hoge.example.com
    DocumentRoot /Users/hoge/Sites/hoge.example.com
    <Directory /Users/hoge/Sites/hoge.example.com>
        Allow from ::1
        Allow from 127.0.0.1
    </Directory>
    ErrorLog /var/log/apache2/hoge.example.com-error_log
    CustomLog /var/log/apache2/hoge.example.com-access_log combined
</VirtualHost>

Apache設定ファイルにミスがないかチェック

sudo apache2ctl configtest

大丈夫なようなら再起動

sudo apache2ctl -k restart

hostsファイルに名前解決できるように追加

sudo vim /etc/hosts
::1 hoge.example.com
127.0.0.1 hoge.example.com
カテゴリー: macosx タグ: ,