2011年01月15日

MR2(SW20)

mr2-20110115-800480


2009/9/28から2011/1/9まで

走行距離 3200km
給油 412L
燃費 7.76km/L
ガソリン価格 135.75円(ハイオク)
機器トラブルは特に無し
カーブでアンダーを出してしまった事1回


yamama009ma at 20:49|この記事のURLComments(0)TrackBack(0)

2010年09月03日

javascriptのデバッグ(メモ)

FireFoxのgreasemonkeyで読み込んだjavascriptをデバッグするには。

xxx.user.jsファイルはoperaとchromeでも動作するので、chromeとeclipseを使いリモートデバッグを設定するとブレークポイントが設定でき、変数も参照できる。

eclipse設定
デバッガ更新
http://chromedevtools.googlecode.com/svn/update/dev/
Google Chrome Developer Tools
リモート設定
デバッガの構成
ポート->9222

chromeの起動
"C:\chrome.exe" --no-sandbox -remote-shell-port=9222

デバッグ開始
chromeでhttp://m25.3gokushi.jp/village.php等のページを開いて置き
デバッグ開始、スクリプトを選択、ブレークポイント設定、ページリロード

すると、ブレークポイントで止まる。




yamama009ma at 15:55|この記事のURLComments(0)TrackBack(0)

2009年08月01日

ガンダムの潮風公園

会社の帰りにガンダムを見てきました。
品川駅から新橋駅に戻り、ゆりかもめに乗り換え台場駅で降ります。
10分ぐらい潮風公園まで歩きます。
もう夕方なのに人の流れがあって直ぐ判ります。

18mの高さは人型の為か巨大に見えます。
ただ見るだけですが、平日でも見に来ている人は多いです。
SA390034
SA390053
SA390067


yamama009ma at 18:17|この記事のURLComments(0)TrackBack(0)日常 

2008年10月18日

容疑者Xの献身。ガウスの加速器




ストーリーと直接関係ありませんが、ドラマのように湯川の実験を紹介する場面で、ガウスの加速器が出てました。

手元に丁度いい大きさの磁石は無かったのですが、ネオジム磁石があったので、アルミレールと鉄球を調達して来て、真似してみました。
もう少し大きい磁石を使って2段階で加速させれば更に加速するそうです。

映画の中では超電導コイルを使ったコイルガンも派手に使ってました。(張りぼてですが)
ネットを検索するとコイルガンやレールガンは人気のようで、自作してる人も多いですね。

2段にしてみました。

yamama009ma at 15:35|この記事のURLComments(0)TrackBack(0)日常 | 工作

2008年10月04日

PHPからGMPを使ってメルセンヌ素数を探す

javaのBigDecimalは遅かったのでPHPのGMPライブラリを使ってメルソンヌ素数をさがしてみました。
PHPのインストール時にGMPを有効にし、大きな数を確認する場合はphp.iniで使用メモリの制限を広げてください。
手元のPCでは5時間程度で26番目のメルセンヌ素数が出てきました。
初期値を変えれば見つかっている最大素数1300万桁の計算もできますが、GMPのライブラリだけでは現実的な時間ではIsMersenne()は戻ってきません。


//メルセンヌ素数をLucas-Lehmerテストによって確認する

// Lucas-Lehmerテストによって素数を判別する
function IsMersenne($sosu)
{
$worknumber = gmp_init(4);
$merse = gmp_sub(gmp_pow(2, $sosu), 1);

for ($i = 2; $i < $sosu; $i++){
$worknumber = gmp_mod(gmp_sub(gmp_mul($worknumber,$worknumber), 2), $merse);
}
if (gmp_scan1($worknumber, 0) < 0) {
echo date("H:i:s: ")." 2^".$sosu."-1=".gmp_strval($merse)."\n";
}
}

//ここでは初期値2から
$fromprime = 2;
$fromprime = gmp_intval(gmp_nextprime($fromprime));
echo "メルセンヌ素数探索 2^".$fromprime."-1より開始\n";
while(true)
{
IsMersenne($fromprime);
$fromprime = gmp_intval(gmp_nextprime($fromprime));
}
?>

C:\home\php>php -f Mersenne.php
メルセンヌ素数探索 2^3-1より開始
10:16:09: 2^3-1=7
10:16:09: 2^5-1=31
10:16:09: 2^7-1=127
10:16:09: 2^13-1=8191
10:16:09: 2^17-1=131071
10:16:09: 2^19-1=524287
10:16:09: 2^31-1=2147483647
10:16:09: 2^61-1=2305843009213693951
10:16:09: 2^89-1=618970019642690137449562111
10:16:09: 2^107-1=162259276829213363391578010288127
10:16:09: 2^127-1=170141183460469231731687303715884105727
10:16:09: 2^521-1=6864797660130609714981900799081393217269435300143305409394463
45918554318339765605212255964066145455497729631139148085803712198799971664381257
4028291115057151
10:16:09: 2^607-1=5311379928167670986895882065524686273295931177270319231994441
38200403559860852242739162502265229285668889329486246501015346579337652707239409
519978766587351943831270835393219031728127
10:16:10: 2^1279-1=104079321946643990819252403273640855386152622472667048053191
12350403608059673360298012239441732324184842421613954281007791383566248323464908
13990660567732076292412950938922034577318334966158355047295942054768981121169367
71475484788669625013844382602917323488853111608285384165850282556046662248318909
18801847068222203140521026698435488732958028878050869736186900714720710555703168
729087
10:16:13: 2^2203-1=147597991521418023508489862273738173631206614533316977514777
12164785702978780789493774073370493892893827485075314964804772812648387602591918
14463365330269540496961201113430156902396093989090226259326935025281409614983499
38822283144859860183431853623092377264139020949023183644689960821079548296376309
42366309454108327937699053999824571863229447296364188906233721717237421056364403
68218459649632948538696905872650486914434637457507280441823676813517852099348660
84717257940842231667809767022401199028017047489448742692474210882353680848507250
22405194525875428753499765585726702296339625752126374778977855015526465226099888
69914013540483809865681250419497686697771007
10:16:13: 2^2281-1=446087557183758429571151706402101809886208632412859901111991
21996340468579282047336911254526900398902615324593112431670239575870569367936479
09034974611470710652541933539381249782263079473124107988748690400702793284288103
11754844108094878252494866760969586998128982645877596028979171536962503068429617
33170218475032458300917183210491605015762888660637214550170222592512522407682960
54271735739648129952505694124807207384768552936816667128448311908776206067866638
62190240118570736831901886479225810414714078935386562497968178729127629594924411
96096138671394627989927500695491713975879606122380339353738103466649440295105205
9047968693255388647930440925104186817009640171764133172418132836351
10:16:23: 2^3217-1=259117086013202627776246767922441530941818887553125427303974
92316187401926658636208620120951680048340655069524173319417744168950923880701741
03777095975120423130666240829163535179523111861548622656045476911275958487756105
68757931191017711408826252153849035830401185072116424747461823031471398340229288
07454567790794103728823582070589235106843388298688861665865028092769208033960586
93087905004095037098759021190183719916209940025689351131365488297391126567973032
41986517250116412703509705427773477972349821676443446668383119322540099648994051
79024162405651905448369080961606162574304236172186333941585242643120873726659196
20617535357488928945996291951830826218608534009379328394202618665861425032514507
73096274235376822938649407127700846077124211823080804139298087057504713825264571
44837937112503208182612656664908425169945395188778961365024840573937859459944433
52311882801236604062624686092121503499375847822922371443396288584859382157388212
32393687046160677362909315071


2008年10月02日

メルセンヌ素数を求めるjavaプログラム

GIMPSにより最大の素数が更新されたニュースを見ました。
1000万桁を超えるメルセンヌ素数で2^n -1で表わされ、nも素数になります。

javaには多倍長計算用にBigDecimalが用意されていると言うことなので、エラトステネスの篩で素数を求めて、メルセンヌ素数になるかどうか判定するプログラムを作ってみました。
nは10000までの制限もありますが、まったく最適化に向かないコードで、かなり遅いです。

最初J#で書き始めましたがMSはBigDecimalを実装してないので、あらためてeclipse(windows版)のインストールから始めましたが、5時間で18番目のメルセンヌ素数が出てきました。

//実行結果(実行中)
メルセンヌ素数を探します。
0:2:55: 2^3-1 = 7
0:2:55: 2^5-1 = 31
0:2:55: 2^7-1 = 127
0:2:55: 2^13-1 = 8191
0:2:55: 2^17-1 = 131071
0:2:55: 2^19-1 = 524287
0:2:55: 2^31-1 = 2147483647
0:2:55: 2^61-1 = 2305843009213693951
0:2:55: 2^89-1 = 618970019642690137449562111
0:2:55: 2^107-1 = 162259276829213363391578010288127
0:2:55: 2^127-1 = 170141183460469231731687303715884105727
0:3:10: 2^521-1 = 6864797660130609714981900799081393217269435300143305409394463459185543183397656052122559640661454554977296311391480858037121987999716643812574028291115057151
0:3:22: 2^607-1 = 531137992816767098689588206552468627329593117727031923199444138200403559860852242739162502265229285668889329486246501015346579337652707239409519978766587351943831270835393219031728127
0:11:44: 2^1279-1 = 10407932194664399081925240327364085538615262247266704805319112350403608059673360298012239441732324184842421613954281007791383566248323464908139906605677320762924129509389220345773183349661583550472959420547689811211693677147548478866962501384438260291732348885311160828538416585028255604666224831890918801847068222203140521026698435488732958028878050869736186900714720710555703168729087
1:12:32: 2^2203-1 = 1475979915214180235084898622737381736312066145333169775147771216478570297878078949377407337049389289382748507531496480477281264838760259191814463365330269540496961201113430156902396093989090226259326935025281409614983499388222831448598601834318536230923772641390209490231836446899608210795482963763094236630945410832793769905399982457186322944729636418890623372171723742105636440368218459649632948538696905872650486914434637457507280441823676813517852099348660847172579408422316678097670224011990280170474894487426924742108823536808485072502240519452587542875349976558572670229633962575212637477897785501552646522609988869914013540483809865681250419497686697771007
1:23:45: 2^2281-1 = 446087557183758429571151706402101809886208632412859901111991219963404685792820473369112545269003989026153245931124316702395758705693679364790903497461147071065254193353938124978226307947312410798874869040070279328428810311754844108094878252494866760969586998128982645877596028979171536962503068429617331702184750324583009171832104916050157628886606372145501702225925125224076829605427173573964812995250569412480720738476855293681666712844831190877620606786663862190240118570736831901886479225810414714078935386562497968178729127629594924411960961386713946279899275006954917139758796061223803393537381034666494402951052059047968693255388647930440925104186817009640171764133172418132836351
5:2:38: 2^3217-1 = 259117086013202627776246767922441530941818887553125427303974923161874019266586362086201209516800483406550695241733194177441689509238807017410377709597512042313066624082916353517952311186154862265604547691127595848775610568757931191017711408826252153849035830401185072116424747461823031471398340229288074545677907941037288235820705892351068433882986888616658650280927692080339605869308790500409503709875902119018371991620994002568935113136548829739112656797303241986517250116412703509705427773477972349821676443446668383119322540099648994051790241624056519054483690809616061625743042361721863339415852426431208737266591962061753535748892894599629195183082621860853400937932839420261866586142503251450773096274235376822938649407127700846077124211823080804139298087057504713825264571448379371125032081826126566649084251699453951887789613650248405739378594599444335231188280123660406262468609212150349937584782292237144339628858485938215738821232393687046160677362909315071


//2008/10/1 少し判り易く修正
//さらに改修
//テストプログラム
import java.io.*;
import java.math.*;
import java.util.*;

//メルセンヌ素数をLucas-Lehmerテストによって確認するクラス
public class Mersenne {
static BigDecimal number2 = new BigDecimal(2);

static BigDecimal number1 = new BigDecimal(1);

static BigDecimal zero = new BigDecimal(0);

// Lucas-Lehmerテストによって素数を判別する
public static boolean IsMersenne(int sosu) {
BigDecimal worknumber = new BigDecimal(4);
BigDecimal merse = new BigDecimal(2);
BigDecimal result[] = new BigDecimal[2];
int i;
for(i=1; i merse = merse.multiply(number2);
}
merse = merse.subtract(number1);

for (i = 2; i < sosu; i++) {
worknumber = worknumber.multiply(worknumber);
worknumber = worknumber.subtract(number2);
result = worknumber.divideAndRemainder(merse);
worknumber = result[1];
}
result = worknumber.divideAndRemainder(merse);
if (result[1].compareTo((zero)) == 0) {
Calendar cal = Calendar.getInstance();
int hour = cal.get(Calendar.HOUR_OF_DAY);
int minu = cal.get(Calendar.MINUTE);
int sec = cal.get(Calendar.SECOND);
System.out.println(hour + ":" + minu + ":" + sec + ": 2^" + sosu
+ "-1 = " + merse);
return true;
}
return false;
}

/**
* @param args
*/
public static void main(String[] args) {
long time = System.currentTimeMillis();

System.out.println("メルセンヌ素数を探します。");
// エストラネスの篩を使ってmaxnumberまでの素数を探す
int maxnumber = 10000;
byte sosu[] = new byte[maxnumber];
for (int i = 2; i < maxnumber; i++) {
if (sosu[i] != 0) {
// 合成数
continue;
}
//素数なのでメルセンヌ素数になるかチェックする
if (IsMersenne(i)) {
}
//合成数を篩にかける
int j = i * 2;
while (j < maxnumber) {
sosu[j] = 1;
j = j + i;
}
}
System.out.println("総実行時間:" + (System.currentTimeMillis() - time)
+ "msec");
}
}


2008年07月27日

JPGGPSMODIFY

JPEG画像のGPS位置情報からGoogleMap上に位置を表示するプログラムを修正し、
GPS位置情報を修正するプログラムを追加しました。
位置情報を直接入力するか、位置の差分値から、撮影対象に位置に修正する時などに使うことを想定しています。

呼び出すGoogleMapのurlとパラメータも変更しました。
こちらのurlの場合マップ上に緯度経度の表示とバルーンが表示されています。
例 http://maps.google.co.jp/?q=35.894469,139.634050
このマップ上から撮影した対象物の座標を「ここへのルート」として選択すると新しい座標が表示されますので、変更先の座標として使えます。

http://www.ksky.ne.jp/~yamama/
http://www.ksky.ne.jp/~yamama/jpggpsmap/manual.htm


2008年07月04日

JPEG画像のGPS情報からGoogleMapへ

GPSの位置情報は利用方法が広がりそうで。

先週携帯で撮影した画像のEXIF情報にGPS情報が入っていたので、他の人が作ったツールやVBスクリプトで取り出してみてましたが、やっぱりVBSは使い難いです。

VBSは捨てて、C++よりイージーなC#でGPS情報を取り出すアプリを作り、撮影した位置をGoogleMapで表示するようにしてみました。
撮影地点を見てみるという最初の目的は達しましたが、もう少し使ってるうちに欲しくなる機能が膨らむかどうか。
GoogleMapAPIを使えば楽しい表示ができるかどうか。

ネット上の多くのJPEG画像にGPS情報が含まれているという記事が載ってましたが、探してみると全然ないので、観光写真や携帯の画像ではなくて、学術用や報道用なのかもしれません。

JPEGからGoogleMapを表示するアプリC#版
http://www.ksky.ne.jp/~yamama/jpggpsmap/manual.htm

2008年05月31日

InternetExplorerのタイムアウトを変更

InternetExplorer7(IE7)になって、サーバーからの応答を待つタイムアウトの設定が30秒と短くなっています。
応答の遅いDBサーバの場合でもIE6以前と同じようにタイムアウトを長く設定する為、レジストリを設定しました。

MicroSoftのサポートページ
http://support.microsoft.com/kb/181050/ja

1. 以下のレジストリ キーに、ReceiveTimeout という DWORD 値を追加して、値のデータを <秒数>*1000 に設定します。
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings
たとえば、タイムアウトの時間を 8 分に設定するには、ReceiveTimeout を 480000 (480*1000) に設定します。
2. コンピュータを再起動します。

注 : この設定は、Internet Explorer 4.0 SP1 より前のバージョンの Internet Explorer では機能しません。


2008年05月06日

状況依存ヘルプ

ダイアログの?をクリックしてコントロールのバルーンヘルプを表示するには、HelpWorkShopで作成したヘルプファイルをインストールします。

ヘルプファイルの作成手順
PRTGRAPH.hpjプロジェクトファイルを作成し、MicrosoftWordを使ってrtf形式でヘルプファイルを作成します。
検索項目を脚注として挿入し、1ページに1項目作成します。
脚注と検索番号をヘッダファイルで定義して、ヘルプコンパイラを起動してコンパイルするとprtgraph.hlpファイルが作成されます。