池上彰の学べるニュースで原子力特集、またやっていたのでまとめよう。
■プルトニウムについて
・プルトニウムは自然界にないもので核分裂の時にできるもの。
・プルトニウムも核分裂を起こす。
・プルトニウムとウランを混合した燃料をMOX燃料という。
・MOX燃料を使用した原子炉をプルサーマル原子炉といい、福島第一原発の3号機はこれ。
・核燃料からプルトニウムを増幅させようとしたものが、高速増殖炉(もんじゅ)である。
・プルトニウムは重いが出すアルファ線は人体影響を及ぼしやすい。
■放射線について
放射線には
・アルファ線
・ガンマ線
・ベータ線
・中性子線
がある。
アルファ線は紙とかも貫通しにくい。
ガンマ線はアルミニウム箔は貫通しにくい。
ベータ線は厚い鉄鋼は貫通しにくい。
中性子線は水やコンクリートを貫通しにくい。
プルトニウムはアルファ線。
2011年3月30日水曜日
2011年3月29日火曜日
Android MapViewへキー発行
ひさびさMapViewをつかってAndroidアプリを作成しようとおもったら、MapViewが表示されなかった。
理由は認証キーが変わっていたためでした。
念のため以下、認証キーの発行方法。
ただし、デバッグ用と正式版はちがいます!!これ注意しないと、実際にストアに上げた後に
地図が表示されない!っと騒ぐ羽目になっちゃいます。(自分はその口でした・・)
■発行手順(デバッグ用)
①Javaのkeytoolでandroidのフィンガープリントを発行
②①でandroidサイトから発行てもらう。
ただし、デバッグ用と正式版はちがいます!!これ注意しないと、実際にストアに上げた後に
地図が表示されない!っと騒ぐ羽目になっちゃいます。(自分はその口でした・・)
■発行手順(デバッグ用)
①Javaのkeytoolでandroidのフィンガープリントを発行
②①でandroidサイトから発行てもらう。
①Javaのkeytoolでandroidのフィンガープリントを発行
keytoolはJavaのbinに存在しますー。
cd "C:\Program Files\Java\jdk1.6.0_10\bin"
keytool -list -alias androiddebugkey -keystore "C:\Documents and Settings\KENZY\.android\debug.keystore" -storepass android -keypass android
keytool -list -alias androiddebugkey -keystore "C:\Documents and Settings\KENZY\.android\debug.keystore" -storepass android -keypass android
androiddebugkey, 2011/03/25, PrivateKeyEntry,
証明書のフィンガープリント (MD5): DC:A0:9C:F1:10:xxxx.....
あとは以下にアクセスし、上記の認証情報を入力して同意するとキーがもらえる。
http://code.google.com/intl/ja/android/maps-api-signup.html
■発行手順(androidストアアップ用)
手順はおなじだけど、①のフィンガープリントの発行方法が違います。
フィンガープリント発行する元となるkeystoreをAndroidMarketにアップする際に使用するkeystoreを使えばよいのです。xxxxがkeystore
keytool -list -keystore xxxx
でOK!!
②①でandroidサイトから発行てもらう。
あとは以下にアクセスし、上記の認証情報を入力して同意するとキーがもらえる。
http://code.google.com/intl/ja/android/maps-api-signup.html
■発行手順(androidストアアップ用)
手順はおなじだけど、①のフィンガープリントの発行方法が違います。
フィンガープリント発行する元となるkeystoreをAndroidMarketにアップする際に使用するkeystoreを使えばよいのです。xxxxがkeystore
keytool -list -keystore xxxx
でOK!!
2011年3月27日日曜日
スクレイピングって
Webサイトから必要な情報を引っ張ってくることをスクレイピング
っていうらしい。
確かに必要な情報を取りたい時に、サイトがAPIを提供していれば
それを使えばいいけど、そういうの提供していないサイトから情報を
取得するのってどうすればいいのかな!?っとちょっと思っててグーぐる
ったらこの単語に引っかかった。
で、調べたらjavascriptで以下のサイトでやっていた。
http://blog.goo.ne.jp/xmldtp/e/625be225495dcb649161d9a3c09d6816
あとAndroidだとWebViewをつかって!?簡単にできそうなので以下
参考にやってみようかな。
http://android.g.hatena.ne.jp/keigoi/20100211/1265892976
http://fromnorth.blogspot.com/2010/02/webview.html
っていうらしい。
確かに必要な情報を取りたい時に、サイトがAPIを提供していれば
それを使えばいいけど、そういうの提供していないサイトから情報を
取得するのってどうすればいいのかな!?っとちょっと思っててグーぐる
ったらこの単語に引っかかった。
で、調べたらjavascriptで以下のサイトでやっていた。
http://blog.goo.ne.jp/xmldtp/e/625be225495dcb649161d9a3c09d6816
あとAndroidだとWebViewをつかって!?簡単にできそうなので以下
参考にやってみようかな。
http://android.g.hatena.ne.jp/keigoi/20100211/1265892976
http://fromnorth.blogspot.com/2010/02/webview.html
2011年3月26日土曜日
Android -- 縦横描画の切り替え
■xmlで画面描画している場合
main.xmlで縦横の固定するかを管理するときは、AndroidManifest.xmlの以下configChangesを指定。
main.xmlで縦横の固定するかを管理するときは、AndroidManifest.xmlの以下configChangesを指定。
- portrait 縦固定
- landscape 横固定
- unspecified 固定なし(デフォルト)
実際には固定なしの場合以下のxmlから作られた描画クラスが使用される。
縦 ⇒ res/layout/xxx.xml
横 ⇒ res/layout-land/xxx.xml
■Viewクラス作成時
Activityクラスで縦、横が切り替わったことは判断できるので、その場合に
Viewクラスの表示内容を切り替える。以下使用するActivity。
// 設定が変更されたとき
public void onConfigurationChanged(Configuration conf){
super.onConfigurationChanged(conf);
}
// インスタンスの状態保管
public void onSaveInstanceState(Bundle savedInstanceState){
super.onRestoreInstanceState(savedInstanceState);
}
// インスタンスの状態を再現する
public void onRestoreInstanceState(Bundle outState){
super.onSaveInstanceState(outState);
}
画面を縦から横にしたときに呼び出される順番。
- onSavexxx(変更時の値を保持)
- onCreate(Activity作成しなおし)
- onRestore(再作成時の処理)
以下、ソースを表示。
MyViewerActivity
public class MyViewerActivity extends Activity {
static final String TAG = "MyViewerActivity";
private Configuration config;
private int orientation;
private static int[][] areas = new int[][]{
new int[]{5,5,200,200},
new int[]{5,5,300,300}
};
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
Log.d(TAG, "onCreate");
super.onCreate(savedInstanceState);
// Winddowsの変更
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
// 環境情報取得
Resources resouces = getResources();
config = resouces.getConfiguration();
if (config.orientation != Configuration.ORIENTATION_PORTRAIT) {
orientation = 1;
}
setContentView(R.layout.main);
// setContentView(new MyView(this));
}
@Override
// 設定が変更されたとき
public void onConfigurationChanged(Configuration conf){
super.onConfigurationChanged(conf);
Log.d(TAG, "config");
this.config = conf;
}
@Override
// インスタンスの状態保管
public void onSaveInstanceState(Bundle savedInstanceState){
Log.d(TAG, "onSave");
super.onRestoreInstanceState(savedInstanceState);
int ori = 0;
// 縦表示じゃないばあい
if (config.orientation != Configuration.ORIENTATION_PORTRAIT) {
ori = 1;
}
Log.d(TAG, "orient=" + ori);
savedInstanceState.putInt("ORIENTATION", ori);
}
@Override
// インスタンスの状態を再現する
public void onRestoreInstanceState(Bundle outState){
Log.d(TAG, "onRestore");
super.onSaveInstanceState(outState);
orientation = outState.getInt("ORIENTATION");
}
public Rect getArea() {
Log.d(TAG, "getArea");
int[] area = areas[orientation];
return new Rect(area[0],area[1],area[2],area[3]);
}
}
MyViewクラス
public class MyView extends View{
private MyViewerActivity context;
private Drawable drawable;
public MyView(Context context) {
this(context,null);
}
// main.xml使用時はこっちが呼ばれる
public MyView(Context context, AttributeSet attrs) {
super(context);
this.context = (MyViewerActivity)context;
Resources resources = context.getResources();
drawable = resources.getDrawable(R.drawable.pose08_g);
}
protected void onDraw(Canvas c) {
super.onDraw(c);
c.drawColor(Color.GREEN);
if (drawable != null) {
drawable.setBounds(context.getArea());
drawable.draw(c);
}
int w = this.getWidth();
int h = this.getHeight();
Paint p = new Paint();
p.setStyle(Style.STROKE);
p.setColor(Color.DKGRAY);
c.drawRect(new Rect(5, 5, w-10, h-10), p);
}
}
Android -- Viewクラス
久々なので思い出しながらまとめます。
■画像描画
画像描画には2つの方法がある
Viewerクラスを継承してのMyViewerを表示にはmain.xmlに独自Viewerの
パスを指定する必要がる。(com.hogeがそれ。)
なお、以下のどっちでも表示できる。
main.xmlを使用したときは、Viewerクラスの引数2つのコンストラクタが呼ばれる。
■画像表示
画像表示には2とおりある
ということで以下、Viewソース
■画像描画
画像描画には2つの方法がある
- main.xmlででの表示
- Viewerクラスを継承して新規に作成しての表示
Viewerクラスを継承してのMyViewerを表示にはmain.xmlに独自Viewerの
パスを指定する必要がる。(com.hogeがそれ。)
なお、以下のどっちでも表示できる。
setContentView(R.layout.main); //setContentView(new MyView(this));
main.xmlを使用したときは、Viewerクラスの引数2つのコンストラクタが呼ばれる。
■画像表示
画像表示には2とおりある
- BitmapFactoryで画像を作成し、それをCanvasで表示
- Resourcesでgetした画像をDrawableで表示
ということで以下、Viewソース
public class MyView extends View{
private Context context;
// private Bitmap image;
private Drawable drawable;
public MyView(Context context) {
super(context);
this.context = context;
}
// main.xml使用時はこっちが呼ばれる
public MyView(Context context, AttributeSet attrs) {
super(context);
this.context = context;
Resources resources = context.getResources();
// image = BitmapFactory.decodeResource(resources, R.drawable.pose08_g);
drawable = resources.getDrawable(R.drawable.pose08_g);
}
protected void onDraw(Canvas c) {
super.onDraw(c);
c.drawColor(Color.GREEN);
/* if (image != null) {
c.drawBitmap(image, 10, 10, new Paint());
}
*/
if (drawable != null) {
drawable.setBounds(10, 10, 310, 310);
drawable.draw(c);
}
int w = this.getWidth();
int h = this.getHeight();
Paint p = new Paint();
p.setStyle(Style.STROKE);
p.setColor(Color.DKGRAY);
c.drawRect(new Rect(5, 5, w-10, h-10), p);
for (int i = 0; i <10; i++){
Paint p2 = new Paint();
p2.setStyle(Style.FILL);
p2.setColor(Color.rgb(25*i, 0, 0));
c.drawCircle(25 * i + 125, 25 * i +125, 100, p2);
}
}
}
2011年3月25日金曜日
久々Androidやろうとしたら、アノテーションやらdebug.keyエラーやら
久々にAndroidをやろう、ということでつかってなかったノートPCに前つくったアプリを
持ってきて動かそうとしたらいろいろエラーがでたのでそれについて記載。(俺の4時間・・)
持ってきて動かそうとしたらいろいろエラーがでたのでそれについて記載。(俺の4時間・・)
- androidを最新にしようとしたらjava1.6に上げなきゃだめだめ
- ソースのアノテーションでエラーでまくり
- Error generating final archive: Debug certificate expired on・・・エラー
まず、最新のandroidが出てないかをandroid developersに見に行ったらありました。
http://dl.google.com/android/installer_r10-windows.exe
上記をクリックしてダウンロードすると、Programsの下にandroidフォルダとしてインストール
されました。前はファイル解凍して任意の場所において使っていたはずだけど
かわったんだ、、とここは特に問題なし。と思いきやjava1.6じゃないとだめなのでそれも
oracleサイトからインストールを強制的に促されたんでそれに従いインストール。
で次にインストールしたパスを設定しソースを表示すると大量にアノテーションでエラーが・・
でググるとjavaの設定が1.5だとアノテーションでエラーが出るようなので、プロジェクトの
プロパティ->Javaコンパイラーのコンパイラー準拠レベルを1.6に変更し再ビルド。
これでアノテーションエラーは回避できた、と思いきや・・・
最後に1つ以下のエラーが出てしまう。
Error generating final archive: Debug certificate expired on
いろいろDDMの設定とかいじったけどだめだったのでこれもググったら、Android開発するとき
に必要となるdebugkeyなるものの有効期限が切れているためエラーになっていたっぽい。
以下のサイトを参照に一旦C:\Documents and Settings\xxx\.android下のdebug.keystore
を削除し、その後タイムゾーンを変更したらサイド作成され、エラーも消えました。
ふー、やっぱ2ヶ月のブランクは大きかったか。。こまめに見るようにしよ。。
2011年3月23日水曜日
Rails + GAEでサイト立ち上げ
Rails + GAEでサイトを公開したい!!ということであれこれ検索すると、
Chihiro Itoさんがすでに行われていたので、それを参考にやってみた。
http://chirokings.blogspot.com/2011/02/gaerubyrails-on-windows-2311.html
手順は
つまるところは特になしだけど、5を行うことで6のファイルが作成される。
コマンドと補足
Chihiro Itoさんがすでに行われていたので、それを参考にやってみた。
http://chirokings.blogspot.com/2011/02/gaerubyrails-on-windows-2311.html
手順は
- ruby(1.8.7)にrails(2.3.11)をインストール
- rubyにappengine-jrubywoをインストール
- rails2311_appengine.rbをダウンロードしそれを一部修正
- 3ファイルをもとにプロジェクト作成
- dev_appserver.rb.baでサーバを起動
- アプリケーションIDを/WEB-INF/appengine-web.xmlに指定
- appcfg.rb.batでGAEにデプロイ
つまるところは特になしだけど、5を行うことで6のファイルが作成される。
コマンドと補足
- gem install rails -v 2.3.11
- gem install google-appengine
- Fetch configuration files ⇒FileUtils.mkdir_p 'app/controllers/rails'
- ruby rails2311_appengine.rb
- dev_appserver.rb.bat .
- <application>xxxIDapplication> のxxxIDをアプリ名にする
- appcfg.rb.bat --enable_jar_splitting update .
次はDBアクセスだー!
登録:
投稿 (Atom)
【スマート農業】 いまさらだけど、いまだからこその農業IoT
久々投稿 転職してはや2年半。バタバタしてる中で、あーっという間に時間は過ぎてきた。 仕事はそれなりに順調だけど、ただやっぱり自分で何かを起こす!ということはではできていなく、、、年齢45をこえ、、、、、とくに昔からずーとやろうやろうと言って実現できてなかっった農業IoT。。 去...
-
久々投稿 転職してはや2年半。バタバタしてる中で、あーっという間に時間は過ぎてきた。 仕事はそれなりに順調だけど、ただやっぱり自分で何かを起こす!ということはではできていなく、、、年齢45をこえ、、、、、とくに昔からずーとやろうやろうと言って実現できてなかっった農業IoT。。 去...
-
昨日の夜、CGーArtsエンジニアのベーシック、エキスパートの自己採点をした。 実は日曜日には回答が出ていたけど、自信がなく採点するのもやめようかと思っていたがタイミング&勢いでやってしまった。 <結果> ベーシック:85点 エキスパート:72.5点 70点以上で合格なので...
-
今日から12月。 いよいよあと1ヶ月で2020年もおわる。本当にこの一年はいろいろあった。 世の中的にはコロナで人の行き来がなくなり、予定していたオリンピックも延期になった。それによって外食や帰省などもなくなり、仕事はテレワークが進み人の関わりがどんどん希薄になっていったような気...