10月19日(月曜) 午前4:00~4:30までの間、サーバ切断されるタイミングがあります。

1回だけ瞬断とのことですが、FTPアップ等時間かかるものは、あらかじめ控えてください。


よい子は寝てる時間だと思いますので、大丈夫ですよね?^^
本日 2008年9月15日14時10分~14時20分までの間、
一時的に、FTPサービスを停止していました。
現在、復旧しております。

ユーザ様の接続がないことを確認してからの停止でしたが、
その間のアクセスできなかったと思います。
ご迷惑おかけします。



原因として、
FTPへのアクセスをしてくる知らないホストがいました。
確か…java.garlic.com とかっていうホストから。


ユーザ名、Administrator でアクセスかけてきてましたので、
IISのFTPへのアタッカーでしょうか?

こちらのネット接続状況が悪くなっていたためサービス一時停止して
切ってみることにしました。

現在、収まっていますが、何かしらの対応しないといけないですね。。。


来週の

2008年8月28日(木) 3時45分~4時45分
の時間にて、ISPの伝送路設備でのメンテがあるため、
一時的にりりむサーバへの接続できなくなります。


この間のアクセスは控えたほうがよさげです。




良い子は寝てる時間と思いますが(・w・



参考URL
http://www.itscom.net/support/maintenance/detail.chtml?support_maintenance.pc_detail[id]=1190.1

本日 2008年7月21日 13時より、

サーバの再起動しました。

13時7分に稼動開始しています。


同タイミングにてwebページ利用されていた方には
ご迷惑おかけしました。


================================

現象は、ディスプレイでの入力受付しなかったため。

1.ローカルキーボードから入力しても、画面上変わらない。
2.sshではつながるし、各コマンドも動作する。
3.各サーバ機能も動いていた様子
4.rebootとかshutdownコマンドしても受け付けていない

うーん。


Xbox360のコントローラを手にいれた。

Xbox本体とワイヤレスレシーバをレジに持っていったけど、
なにやら非売品の箱もくれた。

家に帰って開けてみると、ワイヤードコントローラw

なんといっきに2つも手に入ったYO

ワイヤレスの方は、Xbox専用にしよう。

レシーバはしばらくお役待ち。



Xnaのバイブレーションのサンプルコードで動かしてみたら、
ものすごくキレイにぶるぶるなるぢゃないですか(・∀・)


ボタン入力部分は、DirectInputでも補足可能でした。
DirectInputのForceFeedBackには対応してなさそ。


しばらく、このパッドで遊ぼう。

ロジクールのワイヤレス、電池抜いてしばらく放置。


MSDNのDirectInput(unmanaged)参考に、
ForceFeedBackのコード書いてみたけど、
EffectObjectのコンストラクタで例外でちゃうよ。

ステップ1と2は、前回のコードに含まれてるゲームパッドデバイス取得とかのあたりなので省略。

例外でるのはいいんだけど、どこがおかしいのかもっと詳しく教えてほしいです(´・ω・`)
むしろ、MSDNのmanagedのサンプルコード載せてください。。

//===============================================
#region ステップ3

// 規定値取得
//ForceFeedbackGuid.Triangle;

// EffectGuid 列挙して取得
//foreach (EffectInformation effectInformation in game_diDevice.GetEffects(EffectType.Periodic))
//{
//  Guid effectGuid = effectInformation.EffectGuid;
//}
#endregion

#region ステップ4

DirectInput.Periodic diPeriodic = new Periodic();
diPeriodic.Magnitude = (Int32)DI.NominalMax;
diPeriodic.Offset = 0;
diPeriodic.Phase = 0;
diPeriodic.Period = (Int32)(0.05 * (Int32)DI.Seconds);

DirectInput.Envelope diEnvelope = new Envelope();
diEnvelope.AttackLevel = 0;
diEnvelope.AttackTime = (Int32)(0.5 * (Int32)DI.Seconds);
diEnvelope.FadeLevel = 0;
diEnvelope.FadeTime = (Int32)(1.0 * (Int32)DI.Seconds);

DirectInput.Effect diEffect = new Effect();
diEffect.Flags = EffectFlags.Polar | EffectFlags.ObjectOffsets;
diEffect.Duration = (Int32)(2.0 * (Int32)DI.Seconds);
diEffect.SamplePeriod = 0;
diEffect.Gain = (Int32)DI.NominalMax;
diEffect.TriggerButton = 0;
diEffect.TriggerRepeatInterval = 0;
JoystickState diJoystickState = new JoystickState();
Int32[] axes = { diJoystickState.X, diJoystickState.Y };
Int32[] direction = { 0, 0 };
diEffect.SetAxes(axes);
diEffect.SetDirection(direction);
diEffect.EnvelopeStruct = diEnvelope;
diEffect.Periodic = diPeriodic;

DirectInput.EffectObject diEffectObject = new EffectObject(ForceFeedbackGuid.Triangle, diEffect, game_diDevice);
// 値が有効な範囲じゃないエラーがでる

//DirectInput.EffectObject diEffectObject = new EffectObject(ForceFeedbackGuid.Triangle, game_diDevice);
// これは通るけど、どうやってブルブルさせるんだろ?

#endregion

//===============================================
DirectX 9 SDKを入れてみた。
時代はC#ということで、Managed DirectXを試してみる。
unmanagedの方は触ったことないので、初DirectX。

ゲームパッドの入力取るところからはじめてみることに。
これが結構てこずった。
結論からすると、ネット上のサンプルで、ほとんど取得は出来てたんだけど、
どこの値見ればいいのかとか、詳しく乗ってなくて困った。

//============================================

// ゲームコントローラ デバイスリスト取得
DirectInput.DeviceList diDeviceList = DirectInput.Manager.GetDevices(DeviceClass.GameControl, EnumDevicesFlags.AttachedOnly);
Guid instanceGuid = Guid.Empty;
Guid ffDriverGuid = Guid.Empty;
foreach (DeviceInstance di in diDeviceList)
{
  // コントローラのGuid取得。複数あるときの方法考えないと。
  ffDriverGuid = di.FFDriverGuid;
  instanceGuid = di.InstanceGuid;
}

// コントローラデバイス初期化
DirectInput.Device game_diDevice = new Device(instanceGuid);

// コントローラとの協調性の設定
game_diDevice.SetCooperativeLevel(null, CooperativeLevelFlags.Background | CooperativeLevelFlags.NonExclusive | CooperativeLevelFlags.NoWindowsKey);

// データ書式を、Joystickにする
game_diDevice.SetDataFormat(DeviceDataFormat.Joystick);

// コントローラ内すべてのobjectについてループ。ボタン、軸
foreach (DirectInput.DeviceObjectInstance doi in game_diDevice.Objects)
{
  // アナログ方向キーのレンジを、-1000~1000にする。
  if ((doi.ObjectId & (Int32)Microsoft.DirectX.DirectInput.DeviceObjectTypeFlags.Axis) != 0)
  {
    game_diDevice.Properties.SetRange(
        Microsoft.DirectX.DirectInput.ParameterHow.ById,
              doi.ObjectId,
              new Microsoft.DirectX.DirectInput.InputRange(-1000, 1000));

  }
}
// 絶対値で取得
game_diDevice.Properties.AxisModeAbsolute = true;

// 監視開始
game_diDevice.Acquire();

//==============================================

ここまでが初期化部分。


んで、

//==============================================

// ゲームデバイスはState取得前に、Poll実施
game_diDevice.Poll();
JoystickState diJoystickState = game_diDevice.CurrentJoystickState;

// ボタン
// Id1が押されていると、buttons[0]=128 となる。押されてないとbuttons[0]=0
Byte[] buttons = diJoystickState.GetButtons();

// ビュースイッチ pointoObView[0] に数値が入る。上が0 右回り45度毎に4500増加
Int32[] pointObView = diJoystickState.GetPointOfView();

//==============================================

この部分を、ループで取得すれば、パッドの状態がわかるっと。
てこずったのは、十字キーとアナログスティックの入力。

持ってるゲームパッドには、十字キーと、アナログスティックが2個付いてる。
どこで3つの入力がわかるんだろう??
いろいろいじってたら、デフォルトでは、
十字キー = ビュースイッチ(POV) となっているようだ。
なので、pointObViewで取得できた。

アナログスティックは、2つではなく、 2軸x2の4軸として扱うようだ。
// 左側スティック
diJoysticState.X
diJoysticState.Y

// 右側スティック
diJoysticState.Z
diJoysticState.Rz

X軸、Y軸  Z軸 は、直交座標系だろうけど、Z回転 なんてのは初耳。

Z軸固定しての回転する方向??
という認識で合ってるのかしら(´・ω・`)?

数学っぽい内容は、画像描画に移った頃にでも。。

さて、次は、うちのパッドぶるぶる機能もあるので、
フォースフィードバックの方法調べよう。

windows server2008のIIS7.0からphpサポートっぽい話がでてます
・・・まぁ動かすだけなら、2003のiis6でも動くんだけど、
個人で所有するには、値段の高いOSだからなぁ。

vine3.2の頃に一度monoとxsp入れて、なんとなく動いてたけど、結局いじることなく。

で、今回もmono入れてみた。
vine4.2のplusだと、mono1.1とか古いので、
mono projectから1.9.1のソース持ってきてビルドしてみた。
tarボールと、rhel用のspecファイルから、rpmbuild
mono-core、libgdiplus0、xsp、apache2-mod_mono

パッケージ名にnovellとか付いちゃったけど気にしない。
足りないdevelパッケージ入れれば、特に問題なくビルドできる。


mod_mono以外、インストール完了。
日本語情報少なくて困るな。
@ITもmono1.0の記事しかないし。

移行作業時間 2008年5月5日 13時30分~22時30分


上記時間にて、サーバ機交換によるデータ移行作業行いました。

現在、Web、FTP、Mailとも新サーバにて稼動してます。

■Web
cgiパーミションは、一応設定しておきました。
掲示板とか動作確認お願いします。

以下、推奨パーミション。
~.html 604
~.cgi  700
~.log , .txt, .dat 600
ログファイルディレクトリ 705

フリースクリプトで、cgiを755、ディレクトリを777へという説明があったりしますが、
それだと動かない可能性あります。

■FTP
アカウント、パスワードはそのまま引き継いでます。
ログイン、アップロード、ダウンロードの確認お願いします。

■Mail
https://www.lirim.net/webmail/
よりログイン。

なんか不具合とかありましたら、連絡くださーい。

処理速度上がったので、MovableTypeの書き込み速~い(´∀` )
いつもりりむサーバご利用ありがとうございます(・∀・)

明後日からの連休中に、サーバ機を交換しようと思ってます。
dellの安いサーバ手に入れました。

■現行機<lirim>
CPU:PentiumII 300MHz dual
MEM:512MB
HD:80GB (/home に約50GB

■新サーバ<kakao>
CPU:Pentium Dual-Core E2180 (2GHz
MEM:1GB
HD:80GB (/home に約50GB

HD容量は、web向けなら、余るほどなのでそのまま。
ATA100から,SATAII への転送速度変化とかはあります。

<>の中は、ホスト名。
内部的な事なので、外からのアクセスでのURL変更とかはなし。
メールのヘッダが一部変わる程度。

現在、アイドル稼動させて様子見。静かだ。

一応、予定表
3、4日:サーバ設定
5日0時にて、データ凍結。
5日:/home 下位のデータ移動
遅くても6日0時には、新サーバでの稼動に移行完了する予定。


5日0時より、/home以下のデータのバックアップ開始します。

5日0時以降の掲示板、ブログ等の書き込み内容は、
新サーバ稼動時には、ロールバックされます。