• 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

show processlist だとすべてのDBのコネクションが表示されるので、 show processlist コマンドで出力される情報のもとになっている、 information_schema.processlist テーブルにクエリを発行して確認する。

   1  mysql> desc information_schema.processlist;
   2  +---------------+---------------------+------+-----+---------+-------+
   3  | Field         | Type                | Null | Key | Default | Extra |
   4  +---------------+---------------------+------+-----+---------+-------+
   5  | ID            | bigint(4)           | NO   |     | 0       |       |
   6  | USER          | varchar(16)         | NO   |     |         |       |
   7  | HOST          | varchar(64)         | NO   |     |         |       |
   8  | DB            | varchar(64)         | YES  |     | NULL    |       |
   9  | COMMAND       | varchar(16)         | NO   |     |         |       |
  10  | TIME          | int(7)              | NO   |     | 0       |       |
  11  | STATE         | varchar(64)         | YES  |     | NULL    |       |
  12  | INFO          | longtext            | YES  |     | NULL    |       |
  13  | TIME_MS       | bigint(21)          | NO   |     | 0       |       |
  14  | ROWS_SENT     | bigint(21) unsigned | NO   |     | 0       |       |
  15  | ROWS_EXAMINED | bigint(21) unsigned | NO   |     | 0       |       |
  16  | ROWS_READ     | bigint(21) unsigned | NO   |     | 0       |       |
  17  +---------------+---------------------+------+-----+---------+-------+
  18  12 rows in set (0.00 sec)
  19  
  20  mysql>select * from information_schema.processlist where db = <db_name>;

posted by Png akanuma on Fri 20 Sep 2013 at 11:35

2次関数 f(x) = pK ( x - pX ) ^ 2 + pY の定義域 [ pP, pQ ] で描かれる曲線を3次ベジエで近似しようとするとき、 2つのコントロールポイントの座標を以下のプログラムのように求めればよい。 x1, y1 と x2, y2

   1  double wPQ = pP * pQ;
   2  double wPP = pP * pP;
   3  double wQQ = pQ * pQ;
   4  double x1 = ( ( wPQ - 2 * wPP + wQQ ) / 3 ) / ( pQ - pP );
   5  double x2 = ( ( wPQ + wPP - 2 * wQQ ) / 3 ) / ( pP - pQ );
   6  double wA = pK * ( pQ + pP - 2 * pX );
   7  double wB = pY + pK * ( pX * pX - ( wPP + wPQ + wQQ ) / 3 );
   8  double y1 = x1 * wA + wB;
   9  double y2 = x2 * wA + wB;

考え方 線分 p->q を L とする。( wA は L の傾き) L に平行な直線で、f(x)に接する直線を M とする。 L からみて M 側にあり、L と M の距離の 4/3 倍の距離にある L に平行な直線を N とする。 ( y = wA * x + wB ) この N の上に2つのコントロールポイントをおく。 N と x = pP における接線との交点が1つめのコントロールポイント N と x = pQ における接線との交点が2つめのコントロールポイント である。

pP = 0, pQ = 1 のとき、

   1  double x1 = 1. / 3.;
   2  double x2 = 2. / 3.;
   3  double wN = pY + pK * ( pX * pX - 1. / 3. );
   4  double y1 = x1 * pK + wN;
   5  double y2 = x2 * pK + wN;

posted by Face Saturn on Thu 19 Sep 2013 at 17:55

   1  inline	CAAnimation*
   2  BounceAnimationElement( CGPoint pFrom, CGPoint pTo, double pBeginTime, double pDuration, CAMediaTimingFunction* pMTF )
   3  {	CABasicAnimation* v = [ CABasicAnimation animationWithKeyPath:@"position" ];
   4  	v.fromValue = [ NSValue valueWithCGPoint:pFrom ];
   5  	v.toValue = [ NSValue valueWithCGPoint:pTo ];
   6  	v.beginTime = pBeginTime;
   7  	v.duration  = pDuration;
   8  	v.timingFunction = pMTF;
   9  	return v;
  10  }
  11  
  12  inline	CAAnimation*
  13  BounceAnimation( CALayer* pL, CGPoint pDest, double pInitialDuration = 1, double pK = .3, size_t pRepeat = 10 )
  14  {	CAMediaTimingFunction* wMTF_D = [ CAMediaTimingFunction functionWithControlPoints:1./3. :0 :2./3. :1./3. ];
  15  	CAMediaTimingFunction* wMTF_U = [ CAMediaTimingFunction functionWithControlPoints:1./3. :2./3. :2./3. :1 ];
  16  
  17  	CGPoint wOrigin = pL.position;
  18  
  19  	NSMutableArray* wAnimationArray = NSMutableArray.array;
  20  	[ wAnimationArray addObject:BounceAnimationElement( pL.position, pDest, 0, pInitialDuration, wMTF_D ) ];
  21  
  22  	double	wBeginTime = pInitialDuration;
  23  
  24  	double	wK = 1;
  25  	while ( pRepeat-- )
  26  	{	wK *= pK;
  27  		CGPoint wPoint = CGPointMake
  28  		(	wOrigin.x * wK + pDest.x * ( 1 - wK )
  29  		,	wOrigin.y * wK + pDest.y * ( 1 - wK )
  30  		);
  31  		double wDuration = pInitialDuration * wK * ( 1 / sqrt( wK ) );
  32  		[ wAnimationArray addObject:BounceAnimationElement( pDest, wPoint, wBeginTime, wDuration, wMTF_U ) ];
  33  		wBeginTime += wDuration;
  34  		[ wAnimationArray addObject:BounceAnimationElement( wPoint, pDest, wBeginTime, wDuration, wMTF_D ) ];
  35  		wBeginTime += wDuration;
  36  	}
  37  
  38  	pL.position = pDest;
  39  
  40  	CAAnimationGroup* v = CAAnimationGroup.animation;
  41  	v.duration = wBeginTime;
  42  	v.animations = wAnimationArray;
  43  
  44  	return v;
  45  }
  46  
  47  -	(IBAction)
  48  Group
  49  {	[ mL addAnimation:BounceAnimation( mL, CGPointMake( 160, 240 ) ) forKey:nil ];
  50  }
  51  

posted by Face Saturn on Thu 19 Sep 2013 at 11:18

CATimingFunction は 0 ~ 1 の範囲の x を3次ベジエで表現する必要があるので、

落下のアニメーションをするためには、放物線 y = x^2 (以下 PB )を3次ベジエで近似する必要がある。

y = x で表される直線に平行な直線上に2つのコントロールポイント(以下 CP )を持つ3次ベジエで近似することにした場合、その座標の求め方は以下のとおり。

3次ベジエの以下の特性を利用する

t = 0 における接線は始点と1つめの CP がなす直線。
t = 1 における接線は終点と2つめの CP がなす直線。

このことから

PB の x = 0 における接線の方程式は y = 0 である。すなわち1つめの CP は X 軸上にある。
PB の x = 1 における接線の方程式は y = 2 x - 1 である。2つめの CP はこの式の上にある。

y = x に平行で PB に接する直線 y = x + n の n は x + n = x^2 の解が1つの時なので

y = x - 1/4

2つの CP がなす直線( L1 )が始点と終点がなす直線( L0 )と平行なとき、t = 1/2 のときに頂点が L1 - L0 の 3/4 の距離にあるという3次ベジエの性質から2つの CP がなす直線は

y = x - 1/3

これと y = 0 から1つめの CP は

( 1/3, 0 )

これと y = 2x - 1 から2つめの CP は

( 2/3, 1/3 )

なので、以下のように生成する。

[ CAMediaTimingFunction functionWithControlPoints:1./3. :0 :2./3. :1./3. ];

posted by Face Saturn on Thu 19 Sep 2013 at 11:18

さくらクラウドを使い始めて1週間程度、気づいたことをメモしておきます。

良い所

  • 安い(EC2に比べると半額以下のイメージ)
  • トラフィックに課金されない
  • GUIが使いやすい

悪いところ

  • 2〜3日経つと突然SSDにアクセスできなくなり、再起動を余儀なくされた(この一週間の間に2度)
  • diskの追加にrebootが必要

障害レポートを見ると、SSD関連の緊急メンテナンスがちょこちょこ入っているので、まだ熟れていない感じなのかも。 SSDが悪いなら標準ディスクに切り替えて検証してみようと思ったのですが、 再起動しないとdiskをアタッチできずに残念な感じ。 別サーバを立ててそっちに乗り換えるにしても、累積課金じゃなくて別課金になるので割高になる。

ともあれ、ec2の1強時代にあって、適正な競争が行われるためにもうちょっと応援していきたい。

posted by Png genki on Mon 16 Sep 2013 at 09:48
Contents
[MySQL] 特定のDBのコネクション数を確認する
2次関数を3次ベジエで近似
固いところでバウンドするアニメーション
放物線のタイミングファンクション
さくらクラウド利用レポート
Comments
瀧内元気: MacOS版は以下にあります * [genki/ViMouse](https://githu... '23-1
KingofSmack: Here also good reads for this mobile applicatio... '14-5
Spencer: You don't have to re-compile it, this version w... '14-4
staiano: Any chance we can get a recompile for 10.9? '14-1
dsjf: https://gist.github.com/6bf1bf2c3cbb5eb6e7a7 これ... '13-1
Services from s21g
twpro(ツイプロ)
Twitterプロフィールを快適検索
地価2009
土地の値段を調べてみよう
MyRestaurant
自分だけのレストラン手帳
Formula
ブログに数式を埋め込める数式コミュニティ