My Photo

« May 2012 | Main | July 2012 »

June 21, 2012

サンクタム

TUSTAYAで準新作200円セールをしていたので借りてきた。期待して見たけど、うーんイマイチ。
以下、ネタバレ含む感想。


サンクタム [DVD]
サンクタム [DVD]
ジェネオン・ユニバーサル 2012-01-13
売り上げランキング : 5274


Amazonで詳しく見る
by G-Tools


大自然の驚異に直面するも、困難に仲間と力を合わせて立ち向かって(ほぼ)全員で脱出」みたいな、「生きてこそ」のような話かと思ってたんだけど、全然違うドロドロした話でした。
#「生きてこそ」はすごい感動した、いい映画だった。
有能な探検家のおっちゃんがいるのに、反発する息子、無能なマネージャーのおやじ、そのおやじのアホ女が足を引っ張る。
親子の絆とか感動する部分もあるけど、その前の仲間割れのせいで、後味の悪い映画になってる。
鍾乳洞や地底湖の美しさもあまり表現されてないし、アクションも特にすごいって感じでもない。
なんかいいところが思い出せない。
結構期待したんだけど、がっかり。
このがっかり感は「フライトプラン」並みだw

PHPメモ029:pearでインストールがうまくいかないとき

pear MDB2 をインストールしようとしたが、なんかエラーでうまくいかない。
エラーメッセージは保存してなかったが、たしか下記のようなものだったような。

No releases available for package ...

で、ググって調べて、"pear clear-cache" というの実行したらうまくいった。

C:\applications\php5>pear clear-cache
reading directory C:\Users\into\AppData\Local\Temp\pear\cache
250 cache entries cleared

C:\applications\php5>pear install MDB2-beta
downloading MDB2-2.5.0b2.tgz ...
Starting to download MDB2-2.5.0b2.tgz (128,775 bytes)
.............................done: 128,775 bytes
install ok: channel://pear.php.net/MDB2-2.5.0b2
MDB2: Optional feature fbsql available (Frontbase SQL driver for MDB2)
MDB2: Optional feature ibase available (Interbase/Firebird driver for MDB2)
MDB2: Optional feature mssql available (MS SQL Server driver for MDB2)
MDB2: Optional feature mysql available (MySQL driver for MDB2)
MDB2: Optional feature mysqli available (MySQLi driver for MDB2)
MDB2: Optional feature oci8 available (Oracle driver for MDB2)
MDB2: Optional feature pgsql available (PostgreSQL driver for MDB2)
MDB2: Optional feature querysim available (Querysim driver for MDB2)
MDB2: Optional feature sqlite available (SQLite2 driver for MDB2)
MDB2: To install optional features use "pear install pear/MDB2#featurename"

C:\applications\php5>pear install MDB2_Driver_mysql-beta
downloading MDB2_Driver_mysql-1.5.0b2.tgz ...
Starting to download MDB2_Driver_mysql-1.5.0b2.tgz (45,456 bytes)
.............done: 45,456 bytes
install ok: channel://pear.php.net/MDB2_Driver_mysql-1.5.0b2

参考ページによると、PHP5.3.xの場合はMDB2のベータ版の方がいいらしいのでベータ版を入れてみた。今のところ問題なく使えている。

参考ページ:
PEARコマンド - PEAR入門
pear installできないのがpear clear-cacheで解決 | 1000g
Qaplaの覚書・メモ・備忘録・独言 PHP5.3 + MDB2(pear) でエラー表示 メモメモ | hide_tk SELECT

June 18, 2012

葉山で釣りしてきた

葉山の方に釣りに行ってきた。
本当は朝から行くつもりだったが、朝食後に猛烈に胃が痛くなった。原因不明。
仕方ないので午前中は寝てお昼過ぎに出発。
#おせえよ。

「三浦半島1DAYきっぷ」を買って京急で新逗子へ。
新逗子の駅前、京急ストアとかコンビニがあるかと思ってたのに、何もないw
バスにのって第1目標の漁港へ。
しかし葉山の海岸通り、道細い!!
このバス路線の運転手さん、すごすぎる。

漁港に到着。平日の昼間なので先客は1組だけ。
サビキ釣りをした。
コマセ(アミ)をまくとイワシが集まってきた。でもスレているようで、アミだけ食べてなかなか針にはかからない。
最初の方に2匹釣れて、あとはまったく;;
あと、大きなフグが2匹いた。地元の漁師さんが釣ろうとしたけどダメだったみたい。
最初にいたカップルが帰っていって、かわってエギングの男性二人組がきた。
13:30から2時間ちょいやったが結局イワシ2匹とメジナ1匹。
メジナは釣れたというより針にひっかかったのだが^^;
ググって調べたが、スレたイワシ対策は
・朝に釣る。
・針を小さくする。
・トリックサビキにする
だそうだ。なるほど。
エギングの2人はまだ釣れていなかった。


続いて砂浜に移動。投げ釣りでキスをねらう。
天秤は持ってなかったので適当に3号のおもりを3個付けて投げた。
けっこうなんとかなった^^;
しかし、目当てのキスはなかなか釣れない。ヒイラギが多すぎる。
2時間でキスは2匹しか釣れなかったが、ヒイラギは5匹も釣れた。
ヒイラギは海に戻したが、1匹だけ波打ち際に置いたらトンビが持っていったw

18:30過ぎに撤収。
結局、メジナ1匹、イワシ2匹、キス2匹。
あとリリースしたのがヒイラギ5匹、フグ1匹。
Fishing120611_02_2


三浦半島1DAYきっぷは1800円、もと取れなかったなあ^^;

June 16, 2012

今日食べたもののカロリーをざっくりと計算した


食パン(6枚切り)1枚 145Kcal
ブルーベリージャム20g 39Kcal
ヨーグルト100g 62Kcal
オレンジ1/4 20Kcal
トマトジュース 32Kcal


菓子パン 462Kcal

おやつ
ココア1杯 76Kcal


ご飯1.5杯 350Kcal
納豆1パック 84Kcal
卵1個 90Kcal
中濃ソース 22
ロールキャベツ 150*3=450Kcal
キャベツ5枚? 50Kcal

トータル
1882Kcal

デスクワークの30代男性場合、1日の摂取カロリーの目安は2200Kcalというからカロリーの取りすぎということはないようだ。
栄養バランスはぜんぜんわからんけど。

新潟今期リーグ戦ホーム初勝利、磐田は今期ホーム初敗戦

どちらもJリーグタイムの情報のみ。


J's GOAL:試合詳細:2012 J1 第14節 アルビレックス新潟 1-0 清水エスパルス

柳下体制の初戦で今シーズンリーグ戦ホーム初勝利。よっしゃー。
イエローもらったジンスに代えて菊地を入れたら安定したらしい。
ジンスは攻撃力あるけど、カードもらいすぎかなあ^^;
まあとにかく勝った。先制して逃げ切った。今までにない勝負強さだ。
今後は先発はこのメンツで固定しましょう。ヤンツーさん。
#ジンスはどうするかは考えなきゃならんけど。
ここから反攻開始だ^^/


J's GOAL:試合詳細:2012 J1 第14節 ジュビロ磐田 1-3 ヴィッセル神戸

勝てば首位の可能性もあったのだが、うーん、残念。5位に後退。
ソンドンのケガしたけど、代わって入ったコースケがまた得点。6点目。山田と同じだ。出場時間を考えたらかなりの得点力。去年まで通算3点しか取ってないのに、どーしたんだw

そういえばドイツ2部のボーフムが山田を狙っているとか。
できれば今シーズン磐田を優勝させてからにして欲しいのだが、やっぱり本人は行きたいのだろうか^^;

June 15, 2012

日本の財政破綻は近いのか

日本は5年以内に財政破綻も、長期金利80%・ドル500円-藤巻氏(2) - Bloomberg

藤巻さんの意見に基本的に同意。
財政破綻回避するには
「収入を増やして支出を減らす」
しかない。裏技なんてない。
しかし、どちらもうまくいっていない。
生産年齢人口が減って年金を受給する老人が増えていく中で消費税を10%にするなんて焼け石に水だ。
なのにその10%でさえできるかどうか微妙な状況。
「消費税上げるのは景気が回復するまで待て」って言っている人に聞きたい。景気回復するのっていつ?バブル崩壊から20年たったけど、またバブルでも来るの?それは10年後?20年後?

票にならない少子化対策はおざなりだし、生産年齢人口を増やす特効薬である移民の受け入れも大半の日本人は反対らしい。
ヨーロッパ諸国が今やろうとしているような強力な緊縮財政でもやるのならまだ望みはあるが、次の選挙で自民党は政権を取ったら「災害に強い国土にする」という名目で200兆円の公共事業をやるとぶちあげている。時代錯誤も甚だしい。が、悲しいかな、田舎では票に直結する。

日本の家計の貯蓄はどんどん減っている。国債を国内で買い支えるのはいずれ限界が来る。
海外に資産がたくさんあろうが、それは直接は関係ない。「収入<<支出」で借金が増え続けているのが問題なんだから。
そう遠くない未来に日本もギリシャみたいになると思う。
ギリシャと一緒。自業自得だ。

June 12, 2012

Androidアプリ開発メモ064:コンテツプロバイダ その2:コンテンツURI

関連する以前の記事:Androidアプリ開発メモ022:コンテンツプロバイダ

定義済みコンテンツプロバイダ用URI

端末内の様々なデータ、たとえば電話帳のデータなどをコンテツプロバイダから取得できる。そのURIは定数として定義されている。

URI コンテンツ 必要なパーミッション
CallLog.Calls.CONTENT_URI
通話ログ(発着信履歴)
android.permission.READ_CONTACTS
ContactsContract.Contacts.CONTENT_URI
電話帳(1アカウント1レコード)
android.permission.READ_CONTACTS
ContactsContract.Data.CONTENT_URI
電話帳(1データ1レコード:1人の人に自宅電話、携帯電話、勤務先電話が登録されていれば3レコードになる)
android.permission.READ_CONTACTS
ContactsContract.CommonDataKinds.Phone.CONTENT_URI
電話帳に登録してある電話番号
android.permission.READ_CONTACTS
ContactsContract.CommonDataKinds.StructuredPostal.CONTENT_URI
電話帳に登録してある住所
android.permission.READ_CONTACTS
ContactsContract.CommonDataKinds.Email.CONTENT_URI
電話帳に登録してあるメールアドレス
android.permission.READ_CONTACTS
Settings.System.CONTENT_URI
端末の各種設定
Settings.Secure.CONTENT_URI
端末のセキュリティに関する設定
UserDictionary.Words.CONTENT_URI
ユーザー辞書
MediaStore.Images.Media.INTERNAL_CONTENT_URI
端末内のストレージにある画像データ
MediaStore.Images.Media.EXTERNAL_CONTENT_URI
外部メディアにある画像データ
MediaStore.Audio.Media.INTERNAL_CONTENT_URI
端末内のストレージにあるオーディオデータ
MediaStore.Audio.Media.EXTERNAL_CONTENT_URI
外部メディアにあるオーディオデータ
MediaStore.Video.Media.INTERNAL_CONTENT_URI
端末内のストレージにあるビデオデータ
MediaStore.Video.Media.EXTERNAL_CONTENT_URI
外部メディアにあるビデオデータ
Browser.BOOKMARKS_URI
ブラウザのブックマーク
com.android.browser.permission.READ_HISTORY_BOOKMARKS
com.android.browser.permission.WRITE_HISTORY_BOOKMARKS

APIDemosの Views>Lists>7.Cursor(Phones) が電話帳から電話番号を取ってきている。ソースコードは List7.java。
以下は電話番号を電話帳から取ってくる自分で作った超適当なサンプルコード。

package com.example.contactssample;

import android.app.Activity;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.provider.ContactsContract;
import android.util.Log;
import android.widget.TextView;

public class ContactsSample extends Activity {
	
	private static final String[] PROJECTION = new String[] {
//		ContactsContract.Contacts._ID,
//		ContactsContract.Contacts.DISPLAY_NAME,
//		ContactsContract.Contacts.HAS_PHONE_NUMBER,
//		ContactsContract.Contacts.LOOKUP_KEY
		ContactsContract.CommonDataKinds.Phone._ID,	// _id
		ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME,	// display_name
		ContactsContract.CommonDataKinds.Phone.NUMBER,	// data1 電話番号
		ContactsContract.CommonDataKinds.Phone.TYPE,	// data2 電話番号のタイプ(自宅、携帯、etc...)
		ContactsContract.CommonDataKinds.Phone.LABEL,	// data3 ?
	};

	Uri uri
//		= ContactsContract.Contacts.CONTENT_URI;
		= ContactsContract.CommonDataKinds.Phone.CONTENT_URI;
	
	/** Called when the activity is first created. */
	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		
		TextView textView1 = (TextView)findViewById(R.id.textView1);
		TextView textView2 = (TextView)findViewById(R.id.textView2);
		
		// Get a cursor with all people
		Cursor cursor = managedQuery(uri,
//				null,	// 何も指定しないと全カラムを取ってくるようだ
				PROJECTION,
				null, null, null);
		
		// 行数、列数をログに出力
		int count = cursor.getCount();
		int columnCount = cursor.getColumnCount();
		Log.v("CP", "count=" + count + ",columnCount=" + columnCount);
		
		// 列名をテキストビュー1に出力
		String[] columnNames = cursor.getColumnNames();
		StringBuffer sb = new StringBuffer();
		for (String s : columnNames) {
			sb.append(s);
			sb.append("/");
		}
		textView1.setText(sb.toString());
		
		// データをテキストビュー2に出力
		sb.delete(0, sb.length());
		while (cursor.moveToNext()) {
			for (int i = 0; i < columnCount; i++) {
				sb.append(cursor.getString(i));
				sb.append("/");
			}
			sb.append("\n");
		}
		textView2.setText(sb.toString());
	}
}

Activity#managedQuery() はdeprecatedになっていた。Android 3.0(API Level 11)以降は CursorLoader ってのを使うのが推奨らしい。

以下のコードはSDカードにあるファイルを取得している。 ContentResolver を使っているがURIが "file://" で始まっている。これはコンテンツプロバイダーを使っているといえるのだろうか?

InputStream is
    = getContentResolver()
        .openInputStream(Uri.parse("file:///sdcard/test.txt"));

参考ページ:
Androidのコンテントプロバイダで使えるURI一覧(1) | mucchinのAndroid戦記
ContactsContractを使った電話帳データの取得 | GE Android Blog
ContentProvider | Tech Booster
メモメモ - [Android]端末の電話帳を読み込む

June 10, 2012

2012夏アニメ視聴予定

2012年夏季開始の新作アニメ一覧 - GIGAZINE

「もやしもんリターンズ」は決定。「人類は衰退しました」と「じょしらく」はとりあえず見てみるつもり。
「人類」は原作1巻を読んだことがある。癒し系作品。妖精さんかわいいw
「じょしらく」は久米田康治が原作なので。

June 09, 2012

Androidアプリ開発メモ063:タッチモードとフォーカス

関連する以前の記事:Androidアプリ開発メモ015:タッチイベント

タッチモード

Androidの入力モードには「タッチモード」と「タッチモードではないモード(キー入力モード)」がある。
画面をタッチするとタッチモードになり、画面へのタッチ以外の操作(物理キーやトラックボールなど)でViewを選択するとタッチモードを抜ける。
タッチイベントはタッチモードで画面をタッチしたときに発生する。

フォーカス

キーイベントはフォーカスがあるビューに通知される。
Viewがフォーカスを取得できるかどうかの属性は以下の2つ。

focusable
フォーカス可能である。
focusableInTouchMode
タッチモードでフォーカス可能である。

TextView は focusable と focusableInTouchMode ともに false である。トラックボールでもタッチでもフォーカスを移せない。
EditText は focusable と focusableInTouchMode ともに true である。トラックボールでもフォーカスを移せるし、タッチしてもフォーカスを移せる。
Button は focusable は true であるが focusableInTouchMode は false である。トラックボールでフォーカスを移すことができ、その状態で物理キーの決定キーを押せば Button を押せる。画面上の Button をタッチした場合はタッチモードになるので focusableInTouchMode=false である Button にフォーカスは移らない。

focus属性はfocusable属性を含んでいるようで、
Button のように focusable=true、focusableInTouchMode=false はありうるが、
focusable=false、focusableInTouchMode=true はありえない、というか、そう設定してもfocusableの設定が効いてフォーカスを持つことはできない。View#setFocusable() の説明にも合致する。

focusable、focusableInTouchMode はXMLでもViewクラスのメソッドでも設定できる。
独自のViewを作ったときなどを除いて、設定が必要な場合はあまりないと思うが。

レイアウトファイルのでの設定の例。デフォルトと同じように設定しているから意味はないが。
<EditText
android:id="@+id/editText1"
  android:layout_width="fill_parent"
  android:layout_height="wrap_content"
  android:text="@string/hello"
  android:inputType="text"
  android:focusable="true"
  android:focusableInTouchMode="true" />

public void setFocusable(boolean focusable)
ビューがフォーカスを受け取れるかどうかを設定する。これをfalseに設定すると、このビューはタッチモードではフォーカス不可能であることが保証される。

public void setFocusableInTouchMode(boolean focusableInTouchMode)
タッチモードにおいてビューがフォーカスを受け取れるかどうかを設定する。これをtrueに設定すると、このビューがフォーカス可能であることを確認する。

public final boolean requestFocus()
特定のビューまたはその子孫のいずれかにフォーカスを与えることを試みるために、これを呼び出します。
戻り値  実際にフォーカスを得たかどうか

参考ページ:
l. タッチモード - ソフトウェア技術ドキュメントを勝手に翻訳
たかがフォーカス,されどフォーカス - 愚鈍人
Y.A.M の 雑記帳: Android Button の色や画像を変える <-フォーカスある/なしのボタンの画像を変えるとか
Android第87回 タッチイベントとは

June 05, 2012

Androidアプリ開発メモ062:国際化、ローカライズ

下記のコードはカレントのロケールの取得とリソースからの文字列の取得を行っている。

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

    Locale locale = getResources().getConfiguration().locale
    String localeName = locale.getLanguage()
    String description = getString(R.string.my_text);
    ...
}

ロケールに応じた処理が必要な場合は上記コード12行目のようにロケールを取得してロケール毎に処理を作りこめばよい。
14行目は文字列リソースを取得している。このコードやレイアウトファイル内の "@string/<リソース名>" は、文字列リソースのXMLファイルを言語に応じたフォルダに置けばロケールに応じて適切な文字列リソースを取得するようになっている。
言語毎のリソースのフォルダはresフォルダの下で、フォルダ名は以下。

言語 フォルダ名
日本語 values-ja
英語 values-en
ドイツ語 values-de
フランス語 values-fr
イタリア語 values-it
ロシア語 values-ru
中国語 values-zh
韓国語 values-ko

参考ページ:
遮蔽空間 Androidアプリ他言語対応
アプリを国際化してAndroid Marketから世界へ発信 (1/2) - @IT

June 03, 2012

咳、ぜんそくかも

先々週、喉が痛くなった。一旦痛みは引いたが先週の水曜日にまた痛くなって夜には38度の熱。
今は熱も37度前後で喉の痛みもなくなった。若干食欲が落ちているが。
それより問題なのが咳が止まらないこと。

10年くらい前にも同じような事があった。風邪をひいて他の症状が治まったのに咳だけしつこく続いた。咳止め薬も効かない。
呼吸器科の診察を受けたら咳ぜんそくと言われた。

また再発したのかも。電車や公共施設で咳がとまらなくなると、周りの人が嫌な思いするだろう。すごい困るなー。

« May 2012 | Main | July 2012 »

May 2017
Sun Mon Tue Wed Thu Fri Sat
  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      
無料ブログはココログ

日本blog村

  • にほんブログ村 IT技術ブログへ
  • にほんブログ村 アニメブログへ
  • にほんブログ村 サッカーブログ アルビレックス新潟へ

好きな音楽家

メモ

XI-Prof