Android Hacks

レベルの高い書です。やりたいことがうまくまとまっていますし、入門書にありがちな後もう少し知りたいに答えて、「HackをさらにHackする」コーナがあります。

本格的なアプリを作りたいのだが、入門書だど最初のとっかかりが見つからない。そんな時に本書は有効だと思います。

世代間格差って何だ

ちょっと前に読んだ世代間格差に関する書籍です。城さんほか何名かでの共著書です。

雇用問題、社会保障、政治参加、子育て教育家族という章立てで最後に政策提言が書かれています。

若者にこそ読んでもらいたいと思って書かれた書だと思いますが、若干難しい部分もあり、なかなか読み切れない人も多いかもしれません。

雇用の流動化や年金問題の不公正差など世代間格差を考えると日本の問題点がよく見えてきます。こういった話はむしろ年金世代に読んでもらいたいと思いました。

官邸敗北

長谷川幸洋氏の官邸敗北という書籍を読みました。発売は5月ですから記事としては鳩山氏、小沢氏両名の辞任前ということになります。

民主党政権ができてからのドタバタ、この裏側を記者の目を通じ記述しています。政治家の無防備、官僚のしたたかさ、マスコミの駄目さを中心に舞台裏が描かれています。

筆者の主張もあわせてなるほどと思わせる部分が多かったです。

今では鳩山氏、小沢氏は辞任し、菅首相になっているので今度の民主党の代表戦も含めて、筆者の続編を期待したいところです。

まぁそのころまでに日本が今の形で存在しているか少々疑問ではありますが。


日経平均も9000円を割り込み、円高も進み、日本の将来にさらに暗雲が立ち込めていると感じている今日この頃です。

総理がコロコロ変わると良くないから菅総理にはそのまま続けて欲しいという意見がありますが、党内の抗争に忙しく、国の舵取りができず、ダメであるならば早めに変えたほうがいいと思います。

それにしても菅首相は名前で損しているように思います。

スッカラ'菅'、'菅'国総理大臣、'菅'僚内閣、コリャアカンなどなど。

日本'菅'敗にならないようになって欲しいものです。

日本の運命 浅井隆著

よくある破綻本の一つです。近い将来にやってくるであろう日本国の破綻について書かれています。

これだけ借金をしているのですから、貸し手がいなくなれば私も破綻は必死だと思います。

どうすれば生き残れるかのヒントも書かれていますが、抽象的かつ精神論的で残念でした。

例えば、国内の資産が駄目になったときに、有効なのはドルなのか、金なのか、ダイアモンドなどの宝石なのか等々もう少し具体的な記述が欲しかったです。

現在、円高が進行していますが、これは日本破綻への弓を弾いている状況かもしれません。引いた手を話したときに弓は放たれ、円安へと向かうかもしれません。

金やプラチナは現在、高値ですのでここはドルを現金でナンピン買いしておくのがいいかもしれません。

破綻する、破綻しない色々な本がありますが、結局それは国民の選択なのかもしれません。

本書は読みやすいので、開いた時間にあれこれ考えながら読むのにちょうどいいかもしれません。

いずれにしても、国家が破産する前に、行方不明高齢者問題や無縁社会、新卒の就職、リストラされた人の再就職など、すでに社会は破壊された感があります。

覚悟を持って、次世代のために良い社会にしたいものです。

フォームを作ってみる

<html>
<head>
<title>BI</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="stylesheet" href="ext/resources/css/ext-all.css" type="text/css" />
<script type="text/javascript" src="ext/adapter/ext/ext-base.js"></script>
<script type="text/javascript" src="ext/ext-all.js"></script>
<script>
Ext.onReady(function () {
	var form01 = new Ext.FormPanel (
		{
			url: 'form.php',
			renderTo: document.body,
			frame: true,
			title: 'My Form',
			width: 250,
			items: [
				{
					xtype: 'textfield',
					fieldLabel: 'Name',
					name: 'name'
				}, {
					xtype: 'textfield',
					fieldLabel: 'Email',
					name: 'email'
				}, {
					xtype: 'datefield',
					fieldLabel: 'Date',
					name: 'date'
				}
			]
		}
	);
});
</script>
</head>
<body>
</body>

Validationを入れてみる。

				{
					xtype: 'textfield',
					fieldLabel: 'Name',
					name: 'name',
					allowBlank: false
				}, {
					xtype: 'textfield',
					fieldLabel: 'Email',
					name: 'email',
					vtype: 'alpha'
				}, {
					xtype: 'datefield',
					fieldLabel: 'Date',
					name: 'date',
					disabledDays: [1, 2, 3, 4, 5]
				}

onReadyの下にExt.QuickTips.init();をいれるとエラー時のヒントが出る。

Ext.onReady(function () {
	Ext.QuickTips.init();
}

vtypeを指定すると独自のValidationを設定できる。意外と下記の書き方は知られていないかも。

<html>
<head>
<title>BI</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="stylesheet" href="ext/resources/css/ext-all.css" type="text/css" />
<script type="text/javascript" src="ext/adapter/ext/ext-base.js"></script>
<script type="text/javascript" src="ext/ext-all.js"></script>
<script>
Ext.onReady(function () {
	Ext.QuickTips.init();
	var form01 = new Ext.FormPanel (
		{
			url: 'form.php',
			renderTo: document.body,
			frame: true,
			title: 'My Form',
			width: 250,
			items: [
				{
					xtype: 'textfield',
					fieldLabel: 'Name',
					name: 'name',
					allowBlank: false,
					vtype: 'name'
				}, {
					xtype: 'textfield',
					fieldLabel: 'Email',
					name: 'email',
					vtype: 'alpha'
				}, {
					xtype: 'datefield',
					fieldLabel: 'Date',
					name: 'date',
					disabledDays: [1, 2, 3, 4, 5]
				}
			]
		}
	);
	Ext.form.VTypes['nameVal'] = /[A-Z]/;
	Ext.form.VTypes['nameMask'] = /[A-Za-z]\- ]/;
	Ext.form.VTypes['nameText'] = 'Validation エラー';
	Ext.form.VTypes['name'] = function(v) {
		return Ext.form.VTypes['nameVal'].test(v);
	}
});
</script>
</head>
<body>
</body>

まずは入門から

Learnning Ext JSという洋書を参考にしています。

メッセージボックスを表示させる。onReadyが実行されるのでその中に書く。

<html>
<head>
<title>BI</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="stylesheet" href="ext/resources/css/ext-all.css" type="text/css" />
<script type="text/javascript" src="ext/adapter/ext/ext-base.js"></script>
<script type="text/javascript" src="ext/ext-all.js"></script>
<script>
Ext.onReady(function () {
	Ext.Msg.alert('Hello', 'World');
});
</script>
</head>
<body>
</body>

次にボタンをつけてみる。

<html>
<head>
<title>BI</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="stylesheet" href="ext/resources/css/ext-all.css" type="text/css" />
<script type="text/javascript" src="ext/adapter/ext/ext-base.js"></script>
<script type="text/javascript" src="ext/ext-all.js"></script>
<script>
Ext.onReady(function () {
	//これはhttp://extjs.com/s.gif を見に行かないようにするため。
	Ext.BLANK_IMAGE_URL = "ext/resources/images/default/s.gif";
	Ext.Msg.show(
		{
			title: 'Hello',
			msg: 'こんにちは',
			buttons: {
				yes: true,
				no: true,
				cancel: true
			}
		}
	);
});
</script>
</head>
<body>
</body>

関数にしてみる。

<html>
<head>
<title>BI</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="stylesheet" href="ext/resources/css/ext-all.css" type="text/css" />
<script type="text/javascript" src="ext/adapter/ext/ext-base.js"></script>
<script type="text/javascript" src="ext/ext-all.js"></script>
<script>
Ext.onReady(function () {
	//これはhttp://extjs.com/s.gif を見に行かないようにするため。
	Ext.BLANK_IMAGE_URL = "ext/resources/images/default/s.gif";
	function showMsg() {
		 Ext.Msg.show(
			{
				title: 'Hello',
				msg: 'こんにちは',
				buttons: {
					yes: true,
					no: true,
					cancel: true
				}
			}
		);
	}
	Ext.onReady(showMsg());
});
</script>
</head>
<body>
</body>

変数にしてみる。

<html>
<head>
<title>BI</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="stylesheet" href="ext/resources/css/ext-all.css" type="text/css" />
<script type="text/javascript" src="ext/adapter/ext/ext-base.js"></script>
<script type="text/javascript" src="ext/ext-all.js"></script>
<script>
Ext.onReady(function () {
	//これはhttp://extjs.com/s.gif を見に行かないようにするため。
	Ext.BLANK_IMAGE_URL = "ext/resources/images/default/s.gif";
	var myMsg =  Ext.Msg.show(
			{
				title: 'Hello',
				msg: 'こんにちは',
				buttons: {
					yes: true,
					no: true,
					cancel: true
				}
			}
	);
	Ext.onReady(myMsg);
});
</script>
</head>
<body>
</body>

ボタンが押された時の動作を記述してみる。

<html>
<head>
<title>BI</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="stylesheet" href="ext/resources/css/ext-all.css" type="text/css" />
<script type="text/javascript" src="ext/adapter/ext/ext-base.js"></script>
<script type="text/javascript" src="ext/ext-all.js"></script>
<script>
Ext.onReady(function () {
	//これはhttp://extjs.com/s.gif を見に行かないようにするため。
	Ext.BLANK_IMAGE_URL = "ext/resources/images/default/s.gif";
	var myMsg =  Ext.Msg.show(
			{
				title: 'Hello',
				msg: 'こんにちは',
				buttons: {
					yes: true,
					no: true,
					cancel: true
				},
				fn: function(btn) {
					Ext.Msg.alert("押された", btn);
				}
			}
	);
	Ext.onReady(myMsg);
});
</script>
</head>
<body>
</body>

プロンプトを表示する。

<html>
<head>
<title>BI</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="stylesheet" href="ext/resources/css/ext-all.css" type="text/css" />
<script type="text/javascript" src="ext/adapter/ext/ext-base.js"></script>
<script type="text/javascript" src="ext/ext-all.js"></script>
<script>
Ext.onReady(function () {
	Ext.Msg.prompt("Hello", "何か入れて");
});
</script>
</head>
<body>
</body>

プログレスバーを表示する。

<html>
<head>
<title>BI</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="stylesheet" href="ext/resources/css/ext-all.css" type="text/css" />
<script type="text/javascript" src="ext/adapter/ext/ext-base.js"></script>
<script type="text/javascript" src="ext/ext-all.js"></script>
<script>
Ext.onReady(function () {
	Ext.Msg.wait("処理中", "ちょっと待って");
});
</script>
</head>
<body>
</body>