ルータを新調した

息子がすごい。
拍手をしたり挙手をしたり出来るようになった。

///////////////////////////////////////////
ルータを新調した。機種名は秘密だがハイエンドモデルで当然ギガビット対応。

旧機種はio-dataのWN-GDN/R2。
仕様を見ると有線が100Mbps、無線が300Mbpsとなっている。
ん?無線の方が早いじゃん。

radishという回線速度測定サービスを利用して測ってみた。

無線:
上り→40Mbps
下り→40Mbps
有線:
上り→40Mbps
下り→70Mbps

おおう、有線も無線もあんまり変わらない。ちなみに測ったのは午後9時ごろで、3〜4回の測定平均がこれくらい。
東京サーバで精度高、圧縮効率低で測定した。

新ルータは有線が1Gbps、無線が450Mbps対応。

無線:
上り→60Mbps
下り→55Mbps
有線:
上り→300Mbps
下り→550Mbps

おおう!有線速い!8倍くらい!
無線の方は1.5倍位だからそれほどわからないかも。妻は今朝速くなったかわからないと言っていたな。
ルータの性能アップがそのまま出ている感じかな。
我が家には有線で使っているPCが2台(Linux/Windows)あって、今回の測定はWindows機で行った。
Linuxでネットをするとずっともたついて遅いな、と感じていたのだが、新ルータにしてからものすごく快適。
なぜLinuxであんなにもたついていたのだろう。Windowsの方はそうでもなかったのに。

これだけ速くなれば買ったかいがあったというものだ。
あとはルータ、lanボード、OSの設定をいじってどれだけ速度が変わるか試してみよう。
特に無線をもう少し速くしたい。

実は新ルータをセットアップしてから、旧ルータとの比較が公平でないことが気になって再度旧ルータをセットして比較した。
面倒だったけど楽しかった。すっきり。
ジャジャガッチ | コンピュータ | 23:10 | comments(0) | trackbacks(0) |

パナソニックの掃除機「ルーロ」

皆さんご存知かもしれないがPanasonicからロボット掃除機「ルーロ」が発売された。
昨日テレビCMで見た。

さてさて、何故僕が掃除機の話など取り上げるかというと、このルーロ、名前が「ルーローの三角形」からきているらしい。
こういう形。
これ三角形か?ってのは置いといて、数学の授業で聞いたことがある人も多いと思う。
ルーローの三角形はどこの幅を測っても一定という面白い性質がある。
つまり、ノギスでどういう風に測っても同じ幅ということだ。
マンホールの蓋にしても落ちないという話を聞いたことがある人も多いと思う。
 
面白い掃除機が発売されたので記念にルーローの三角形を描いてみよう。
ちなみに上の図は自分で描いた。正三角形の各頂点から円を描くだけなので簡単。次の図を元に説明する。
右の部分は
x=rcosθ
y=rsinθ
をθ=0〜60degで描けばok。
左の部分は
x=rcosθ+L
y=rsinθ
をθ=120〜180degで描けばok。
下の部分は
x=rcosθ+L/2
y=rsinθ+L*sqrt(3)/2
をθ=240〜300degで描けばok。
 
コードは次のとおり。
#include <math.h>
#include <stdio.h>
#define PI 3.141592653589793238462643383

int main()
{
	FILE *fp = fopen("tri,txt","w");
	double L = 1.0;
	double dx = L/1000.0;

	for(double x=0;x<=L;x+=dx)
	{
		fprintf(fp , "%e %e¥n",x,0);
	}
	for(double x=0;x<=L/2.;x+=dx)
	{
		fprintf(fp , "%e %e¥n",x,sqrt(3)*x);
	}
	for(double x=L/2.;x<=L;x+=dx)
	{
		fprintf(fp , "%e %e¥n",x,sqrt(3)*(-x+L));
	}

	double dtheta = PI/1000.;
	for(double theta=0;theta<=PI/3.;theta+=dtheta)
	{
		double x = L*cos(theta);
		double y = L*sin(theta);
		fprintf(fp , "%e %e¥n" , x , y);
	}
	for(double theta=PI*2./3.;theta<=PI;theta+=dtheta)
	{
		double x = L*cos(theta) + L;
		double y = L*sin(theta);
		fprintf(fp , "%e %e¥n" , x , y);
	}
	for(double theta=PI*4./3.;theta<=PI*5./3.;theta+=dtheta)
	{
		double x = L*cos(theta) + L/2.;
		double y = L*sin(theta) + sqrt(3)/2.*L;
		fprintf(fp , "%e %e¥n" , x , y);
	}
	fclose(fp);
	return 0;
}

出力されたファイルをgnuplotでplotする。
gnuplot> unset border
gnuplot> unset xtics
gnuplot> unset ytics
gnuplot> set size ratio -1
gnuplot> plot [0:1] "tri,txt"  w l  lc rgb "black" lw 2 t ""


ほら簡単。
ジャジャガッチ | - | 23:56 | comments(0) | trackbacks(0) |

CPUにグリスぬりぬり

子どもの成長がすごい。
この頃また一つステップアップした感じがする。
壁から顔を出したり隠したりして喜んでいる。セルフいないいないばあ的な。
これがかわいすぎてかわいすぎてどうしよう。
僕のメガネを奪うのも上手になった。顔面に攻撃をしかけておいて思わずうつむいた所に狙いを定めるという策士ぶり。
末恐ろしい。

//////////////////////////////////
最近我が家のデスクトップPC2号機の調子が悪い。
ブルースクリーンが頻発する。
とりあえず箱を開けて掃除した。
ついでにCPUのグリスも塗り直した。

ほい。これが2号機のCPU。
我が家のデスクトップPCにはインテル入ってない。
ちなみに裏はこんな感じ。
ピンがいっぱい。でも改めてみるとただのICじゃんって感じがする。

でもこんなにいっぱいピンあるのにソケットにどうやって入れるのよ・・・、って心配しなくても大丈夫。
乗っけてレバーぐいってやれば簡単に入る。これがソケットね。

CPUはめてグリスぬりぬり。冷えますように。

不調の原因としてメモリの接触不良を疑い、無水エタノールで掃除してみた。
起動。うーん、だめだ。しばらくしたら落ちる。
ん、なんか焼けるようなにおいが・・・。
あ、CPUクーラの電源挿し忘れた!
CPUクーラの電源挿したら安定して動くようになりました。よかったよかった。
CPUクーラの配線には注意しましょう。
僕は二回やりました。でも壊れないのが凄い。
ジャジャガッチ | コンピュータ | 22:49 | comments(0) | trackbacks(0) |

情報落ちこわい

今日は朝から片道2kmほど散歩をした。
学生時代から散歩は好きで、よく歩いていた。
歩きながら考え事をするのが好きだった。

今は妻としょうもないことを話しながら散歩するのが好きだ。
ここのところ寒かったり天気悪かったり忙しかったりで中々散歩できなかったのだがようやく散歩できた。
僕は新居に移って初めての散歩だ。

以前から見てみたかった店に行き、帰りにアポなしで友人宅を訪問。
帰りは息子がぐずったのでベビーカーダッシュ!
疲れた。

昼からはショッピングモールへ行き、ふらふらした。
腕時計の電池を交換してもらったが、電池の消費量が不安定で電池消耗に0.5年〜2年の幅が出そうとのこと。
原因を聞き忘れたな。老朽化のためだろうか。
学生時代に、ホームセンターの2000円の時計ではいくらなんでも、ということで父に買ってもらった腕時計だ。
もう10年近いだろうか。
愛着もあるので頑張ってもらおう。
幸い、2年以内に電池が切れた場合は無償で電池交換してくれるとのこと。助かる。

さあ寝るか。風邪はほぼ治った。
代わりに妻が風邪気味。すまん。

/////////////////////////////////////////////////
桁落ちに続いて情報落ち。これも意外と身近。
桁落ちは極端に大きい数と極端に小さい数を加減算したときに生じる。
例えば1e+10と1e-10を足し算しよう。
そのためにはまず小さい方の指数を大きい方の指数に合わせる。
→1e-10 = 0.00000000000000000001e+10
例えば倍精度で計算する場合、仮数部は10進15桁程度しかないので15桁以降は落ちる。
つまり1e+10+1e-10=1e+10になってしまうということ。

これもそんなに大きい数と小さい数足すことあるか?と思ってたんだが、あるじゃん。
それは積分だ。
積分では
S = 0;
for()
{
S += f(x)Δx
}
みたいな計算をする。
Sにどんどん足しこんでいってある程度大きくなったころに小さなf(x)Δxを足すと情報落ちが起こってしまう。
ああ、意外と身近、情報落ち。
ジャジャガッチ | C/C++ | 21:42 | comments(0) | trackbacks(0) |

桁落ち怖い

この前乳酸菌飲料を飲んだ。
パッケージを見ると乳酸菌は殺菌されているとのこと・・・。

乳酸菌飲料を飲むときは、乳酸菌さん頑張ってね、と声がけし、飲み干した後はお腹の中の乳酸菌さんを全力で応援している僕としては、乳酸菌さん・・・、という感じでした。
まさかお腹の中に辿り着く前に死んでいたとは・・・。

調べてみると乳酸菌さんは死んでいても問題ないらしい。なんだ。
でも生きたまま腸に届けるだか何だかって宣伝なかったっけ。
結局どっちなんだ。

よくわからんけど別に健康のために飲んでるわけじゃないしどっちでもいいや。
さ、葛根湯飲も。

//////////////////////
桁落ち。
どういうものなのか何となくは知っていたのだが、思ったよりも身近なところで発生するようだ。
桁落ちは浮動小数点で大きさの近い値同士減算した場合に発生する。

例えば
 1.23456789
-1.23456788
--------------
0.00000001 = 1e-8
となり、有効桁数9桁の計算だったはずなのに結果は1桁しかない。有効桁が落ちてしまったわけだ。

そんな近い数同士減算することってそんなにあるか?って思ってたんだけど、あるじゃん。
それは微分。数値的には
{f(x+Δx)-f(x)}/Δx
を計算すればいいわけで、出来るだけΔxを小さくして計算すれば精度が上がるはずだ。
試しにx^2を微分してみた。x=1のところで微分したので2になるはずだ。
dx	deriv
1.0e-01 2.100000000000002e+00
1.0e-02 2.010000000000001e+00
1.0e-03 2.000999999999697e+00
1.0e-04 2.000099999999172e+00
1.0e-05 2.000010000013930e+00
1.0e-06 2.000000999924367e+00
1.0e-07 2.000000101087806e+00
1.0e-08 1.999999987845058e+00
1.0e-09 2.000000165480742e+00
1.0e-10 2.000000165480742e+00
1.0e-11 2.000000165480742e+00
1.0e-12 2.000177801164682e+00
1.0e-13 1.998401444325282e+00
1.0e-14 1.998401444325282e+00
1.0e-15 2.220446049250313e+00
1e-8が一番いい。そこまではどんどん正解に収束しているが、そのあと遠ざかっていっている。桁落ちのせいだろう。
意外と身近だった桁落ちでした。
ジャジャガッチ | C/C++ | 21:28 | comments(0) | trackbacks(0) |

Open Dynamics EngineをCentOS6.6で使いたい(2)

そういえばうちの息子、ちょーだいと手を出すと持ってるものを渡してくれるようになった。
かわゆい。

家を建てて、子供が寝ていても妻とひそひそ話する必要がなくなったのがうれしい。
あと、家族が寝静まった後も色々作業が出来るのもうれしい。
ただ、睡眠時間が減る・・・。

///////////////////////
ODE無事動いた。

tar.gzを展開するとdrawstuffというディレクトリがある。
これが描画用ライブラリであるが、make installではコピーされないので手でコピーする。
僕は自分のホームディレクトリにコピーしておいた。
あと、tar.gzを展開した中にあるincludeディレクトリ内にdrawstuff関連のヘッダファイルもあるのでこれも適切な場所にコピーする。
僕は/usr/local/includeにコピーした。
例えばmakefileはこんな感じ。user_nameはアカウント名。-L/usr/lib64はglutのため。
ode_test: *.cpp
	g++ main.cpp -I/usr/local/include/ -L/home/user_name/drawstuff/src/.libs -L/usr/lib64 -lode -lGL -lGLU -lglut -ldrawstuff 

コードはこんな感じ。最初、終了時にsegmentation faultが出てたんだけどfn.stop = 0を入れたら出なくなった。
#include <ode/ode.h>
#include <drawstuff/drawstuff.h>
#include <iostream>
using namespace std;

#ifndef DRAWSTUFF_TEXTURE_PATH
#define DRAWSTUFF_TEXTURE_PATH "/home/user_name/drawstuff/textures"
#endif

// ステップごとに呼ばれる関数
static void simLoop(int pause)
{
}

//初期化関数
void start()
{
}

int main(int argc, char **argv)
{
	//シミュレーションの準備********************************************************
	dsFunctions fn;
	fn.version = DS_VERSION;    // ドロースタッフのバージョン
	fn.start   = &start;        // シミュレーションの初期化の際に呼ばれる関数を登録
	fn.step    = &simLoop;      // ループ中でステップごとに呼ばれる関数を登録
	fn.path_to_textures = DRAWSTUFF_TEXTURE_PATH;//テクスチャへのPATH

	//fn.command = 0;
	fn.stop = 0;
	dInitODE(); // ODEの初期化

	//シミュレーションの準備終わり**************************************************

	//シミュレーションの実行********************************************************
	dsSimulationLoop(argc,argv,640, 480,&fn);//シミュレーションループ
	//******************************************************************************

	//終了処理**********************************************************************
	dCloseODE(); // ODEの終了
	return 0;
}
ジャジャガッチ | C/C++ | 23:38 | comments(0) | trackbacks(0) |

Open Dynamics EngineをCentOS6.6で使いたい(1)

ねぎくんは順調に育っております。
スナップエンドウも植えてみた。おいしいからね。
あとは何だっけ?わからんけど何か植わっている。
妻によればもう少し土をしっかりいじる必要があるみたいだけど、食べられるようになるまで育つかな。
毎日仕事から帰ったらとりあえずねぎをチェックしています。

今日妻が2階を片付けてくれたおかげでにゃんちゃんはさらに自由に走り回れるようになった。
よかったな!

最近息子は真似をするようになってきてかわいい。
得意技は首ぶんぶんと手首ぐねぐねだ。さらに舌べーも加わった。
鏡で自分のことをそれほど観察しているように見えないのに上手に真似することに驚いた。
自分の舌と大人の舌が類似物だと認識しているのだろうか。
それともたまたま真似になったときに大人が喜ぶからだろうか。
不思議だ。

息子の行動が多様になってきているが、面倒でも出来るだけ先回りせずに好きにさせるよう心がけている。
例えば皿をひっくり返そうとしていたら止めないでひっくり返させている。
大人は数十年この物理法則の世界で生活しているが、息子はまだ1年にも満たない。
皿をひっくり返せば食べ物が落ちるということを身をもって理解してほしいのだ。
そうやって身をもって色々なことを学んでほしい。
掃除大変だけどな。

/////////////////
最近物理エンジンライブラリODEをLinuxでいじりたいと思っていて、今日インストールしてみた。
定番のコマンドでインストールはできた。
./configure
make
make install


drawstuffっちゅう描画ツールを使うため、glutも入れておく。
yum install *glut*

odeを使用したソースコードのコンパイル方法はまた。
何故ならば風邪でしんどいからだ!
こんなことやってる場合じゃねえ、寝よ寝よ。
ジャジャガッチ | C/C++ | 21:45 | comments(0) | trackbacks(0) |
1/1PAGES | |

03
--
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
--
>>
<<
--
PR
RECOMMEND
RECENT COMMENT
MOBILE
qrcode
OTHERS
Since 2013/09/17
LATEST ENTRY
CATEGORY
ARCHIVE
LINKS
PROFILE
SEARCH